Popups by OptinMonster – Best WordPress Lead Generation Plugin - Version 2.6.5

Version Description

  • Security hardening, and improved notifications.
Download this release

Release Info

Developer jtsternberg
Plugin Icon 128x128 Popups by OptinMonster – Best WordPress Lead Generation Plugin
Version 2.6.5
Comparing to
See all releases

Code changes from version 2.0.4 to 2.6.5

Files changed (103) hide show
  1. CHANGELOG.md +134 -4
  2. OMAPI/Actions.php +112 -51
  3. OMAPI/Ajax.php +5 -3
  4. OMAPI/Api.php +49 -28
  5. OMAPI/ApiAuth.php +124 -0
  6. OMAPI/ApiKey.php +29 -8
  7. OMAPI/AssetLoader.php +22 -6
  8. OMAPI/Blocks.php +204 -58
  9. OMAPI/ClassicEditor.php +245 -0
  10. OMAPI/ConstantContact.php +2 -2
  11. OMAPI/Debug.php +156 -0
  12. OMAPI/Elementor.php +185 -0
  13. OMAPI/Elementor/ButtonWidget.php +126 -0
  14. OMAPI/Elementor/Widget.php +587 -0
  15. OMAPI/Inserter.php +11 -10
  16. OMAPI/InstallSkin.php +13 -0
  17. OMAPI/InstallSkinCompat.php +13 -0
  18. OMAPI/MailPoet.php +11 -11
  19. OMAPI/Menu.php +78 -127
  20. OMAPI/Notifications.php +109 -13
  21. OMAPI/Output.php +254 -97
  22. OMAPI/Pages.php +79 -12
  23. OMAPI/Partners.php +26 -23
  24. OMAPI/Plugins.php +38 -10
  25. OMAPI/Refresh.php +15 -4
  26. OMAPI/RestApi.php +316 -36
  27. OMAPI/Review.php +19 -112
  28. OMAPI/Rules.php +24 -45
  29. OMAPI/Save.php +42 -28
  30. OMAPI/Shortcode.php +26 -17
  31. OMAPI/Sites.php +109 -22
  32. OMAPI/Support.php +22 -2
  33. OMAPI/TrustPulse.php +14 -10
  34. OMAPI/Urls.php +219 -0
  35. OMAPI/Utils.php +69 -0
  36. OMAPI/Validate.php +17 -10
  37. OMAPI/Welcome.php +52 -2
  38. OMAPI/WooCommerce.php +224 -5
  39. assets/css/images/dashboard-icon.png +0 -0
  40. assets/css/images/icons/archie-color-icon.svg +54 -0
  41. assets/css/images/icons/archie-icon.svg +1 -0
  42. assets/dist/css/blocks-admin.min.css +114 -102
  43. assets/dist/css/blocks-admin.min.js +0 -1
  44. assets/dist/css/common.min.js +0 -1
  45. assets/dist/css/elementor-admin-dark.min.css +19 -0
  46. assets/dist/css/elementor-admin.min.css +88 -0
  47. assets/dist/css/elementor-frontend.min.css +167 -0
  48. assets/dist/css/metabox.min.css +162 -0
  49. assets/dist/css/trustpulse.min.js +0 -1
  50. assets/dist/js/admin.min.js +1 -1
  51. assets/dist/js/campaign-selector.min.js +12 -1
  52. assets/dist/js/editor.min.js +1 -0
  53. assets/dist/js/elementor.min.js +1 -0
  54. assets/dist/js/global.min.js +1 -0
  55. assets/dist/js/metabox.min.js +1 -0
  56. assets/dist/js/om-format.min.js +12 -0
  57. assets/dist/js/om-settings.min.js +12 -0
  58. assets/dist/js/trustpulse.min.js +1 -1
  59. assets/dist/js/wc-marketing.min.js +1 -0
  60. assets/images/archie-icon.svg +0 -1
  61. assets/images/icons/cross-sell.svg +1 -0
  62. assets/images/icons/gamified.svg +1 -0
  63. assets/images/icons/increase-conversions.svg +1 -0
  64. assets/images/icons/popup.svg +1 -0
  65. assets/images/icons/reduce-abandonment.svg +1 -0
  66. assets/images/icons/sticky-bar.svg +1 -0
  67. assets/images/metabox/cross-sell.svg +4 -0
  68. assets/images/metabox/gamified.svg +19 -0
  69. assets/images/metabox/increase-conversions.svg +4 -0
  70. assets/images/metabox/popup.svg +24 -0
  71. assets/images/metabox/reduce-abandonment.svg +4 -0
  72. assets/images/metabox/sticky-bar.svg +20 -0
  73. assets/js/Elementor/CampaignSelector.js +288 -0
  74. assets/js/Utils/campaigns.js +58 -0
  75. assets/js/Utils/monsterlink.js +10 -0
  76. assets/js/Utils/sites.js +1 -0
  77. assets/js/admin.js +12 -13
  78. assets/js/editor.js +417 -0
  79. assets/js/elementor.js +130 -0
  80. assets/js/global.js +65 -0
  81. assets/js/helper.js +6 -2
  82. assets/js/mailpoet.js +24 -21
  83. assets/js/metabox.js +82 -0
  84. assets/js/notice.js +0 -36
  85. assets/js/om-format.js +23 -0
  86. assets/js/om-settings.js +19 -0
  87. assets/js/trustpulse.js +20 -19
  88. assets/js/wc-marketing.js +53 -0
  89. optin-monster-wp-api.php +124 -40
  90. readme.txt +272 -252
  91. views/coupon-metabox.php +133 -0
  92. views/disable-warning-css.php +33 -0
  93. views/not-connected-buttons.php +9 -0
  94. views/product-metabox.php +210 -0
  95. views/review.php +0 -33
  96. views/shortcode-modal-css.php +243 -0
  97. views/shortcode-modal.php +109 -0
  98. views/woocommerce-marketing-card-css.php +91 -0
  99. views/woocommerce-marketing-card.php +27 -0
  100. vue/dist/css/campaign-edit.53a4526f.css +0 -1
  101. vue/dist/css/campaign-edit.cba31014.css +1 -0
  102. vue/dist/css/common.bc85e025.css +0 -1
  103. vue/dist/css/common.f542e3fc.css +1 -0
CHANGELOG.md CHANGED
@@ -1,14 +1,144 @@
1
  # Changelog
2
  All notable changes to the OptinMonster plugin will be documented in this file.
3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  ### 2.0.4
5
  * Security hardening.
6
 
7
- ### 2.0.3
8
  * Updates the "get started" interface to be more intuitive for existing users.
9
  * Remove incorrect concept of "pending" for split tests.
10
 
11
- ### 2.0.2
12
  * Include the JS source map files in the release to prevent unnecessary 404s in the dashboard.
13
  * Use `POST` request to save campaign output settings, since some servers don't like `PUT` requests.
14
  * Updated dependencies.
@@ -23,11 +153,11 @@ All notable changes to the OptinMonster plugin will be documented in this file.
23
  * Ensure campaign-creation errors are displayed on the Templates page.
24
  * Update description around site cookie settings.
25
 
26
- ### 2.0.1
27
  * Bug fixes and adjustments for compatibility with older versions of PHP.
28
  * Bug fixes related to wildcard domains and subdomains.
29
 
30
- ### 2.0.0
31
  * NEW: Overhaul of the plugin to make managing your popup campaigns easier than ever!
32
  * Added the ability to see all your popup campaigns in your dashboard (draft, pending and published)
33
  * Added a new dashboard to see stats and details about your popup optins
1
  # Changelog
2
  All notable changes to the OptinMonster plugin will be documented in this file.
3
 
4
+ ### 2.6.5 - 2021-10-06
5
+ * Security hardening, and improved notifications.
6
+
7
+ ### 2.6.1 - 2021-09-08
8
+ * Fixed: Security hardening for campaign previews.
9
+ * Updated the notification-fetch logic to not happen on every admin page-load.
10
+ * Updated the review request notice to only shown when significant milestones are met.
11
+
12
+ ### 2.6.0 - 2021-08-10
13
+ * Fix broken integration images for a few integrations.
14
+ * Improved rules debug output for support.
15
+ * Fixes for errors found in WordPress 4.8.
16
+ * Fix onboarding issue where other plugins would redirect to their welcome pages.
17
+ * Other syle improvements to the onboarding process.
18
+ * Fix issue with onboarding process not being able to reopen the app's registration-completion window.
19
+ * Add redirect to welcome page for when plugin is first installed.
20
+ * Fix issuer where the site's default integration setting would not load the available options.
21
+ * Fix styles for setting descriptions in site settings.
22
+
23
+ ### 2.5.2
24
+ * Security hardening.
25
+
26
+ ### 2.5.1 - 2021-07-22
27
+ * Fix issue with adblockers causing integration images not to be shown.
28
+
29
+ ### 2.5.0 - 2021-07-21
30
+ * Fix the Shareable MonsterLink URL for campaigns.
31
+ * Updated integration provider logo images, and prepared for new integrations.
32
+ * Improved workflow for Onboarding Wizard.
33
+ * Prevent wizard keyboard navigation when in input/textarea/form-element.
34
+ * Added filters to many of the script-tags we output.
35
+
36
+ ### 2.4.2
37
+ * Security hardening.
38
+
39
+ ### 2.4.1 - 2021-06-25
40
+ * Fix "Cannot read property 'isDevelopment' of undefined" when connecting woocommerce.
41
+ * Fix static modal positioning so page can scroll (when plugin has not been connected yet).
42
+
43
+ ### 2.4.0 - 2021-06-24
44
+ * Introduce Integrations page to manage and add email integration services, Monster Leads settings, webhooks, zapier connections, etc.
45
+ * Improved UX for select elements where posts/pages were displayed by adding the post/page ID to the label.
46
+ * Addressed some UI issues for RTL language mode.
47
+ * Updated dependencies in the javascript stack.
48
+ * Removing extra "This account does not have any campaigns to retrieve" error.
49
+ * Fixed an issue that could cause the Editor to break on Wordpress versions < 5.3.
50
+ * Update shortcodes to handle the id paramater for back-compat.
51
+ * Update classic editor shortcode button to use the slug parameter.
52
+ * Fix bug causing "To receive the requested features, you will need to upgrade to Pro" notice to show, even after upgrading.
53
+ * Fix preview-campaign not working when site is using OptinMonster custom domains.
54
+ * Improved information in the support data output.
55
+
56
+ ### 2.3.4
57
+ * Security hardening.
58
+
59
+ ### 2.3.3 - 2021-05-12
60
+ * Prevent autoloading WooCommerce classes. Fixes error when Jetpack is active while activating WooCommerce.
61
+
62
+ ### 2.3.2 - 2021-05-05
63
+ * Fixed an issue where the editor would not work in WordPress < 5.3.
64
+
65
+ ### 2.3.1 - 2021-04-02
66
+ * Fixed issues when multiple tinymce instances existed on a page (specifically, the double OptinMonster link button).
67
+ * Fix console/blocking errors JS errors because specific data was missing on the page related to the OptinMonster Monster Link buttons.
68
+ * Fix height of link search results when other fields added.
69
+ * Fix errors that can occur with WooCommerce data-store failures.
70
+
71
+ ### 2.3.0 - 2021-04-01
72
+ * Introduce the Personalization page, for documenting available rules/triggers.
73
+ * Introduce functionality for Classic Editor (and classic editor instances) for inserting inline campaign shortcodes, or adding Monster Links to text.
74
+ * Improvements to the Gutenberg Block.
75
+ * New setting for globally disabling campaigns for a given post/page/etc (Gutenberg sidebar setting, and a fallback settings metabox for the Classic Editor). Also adds error boundaries around all campaigns in the Gutenberg editor if this option is selected (since they will not work on the frontend).
76
+ * New Gutenberg text formatting option for adding Monster Links to text.
77
+ * Improved UX for select elements where campaigns were displayed by adding the campaign slug to the label.
78
+ * Better error handling and output when certain API requests fail.
79
+ * Better error handling and UX when user's site domain has changed (e.g. from a temp domain to the permanent one).
80
+ * Introduced caching for various requests to improve plugin page performance.
81
+ * Added helpful title attribute tooltips for the various options in the Output Settings (displaying the term slug and the associated taxonomy slug, etc).
82
+ * Improved various other tooltips on the Output Settings to be more helpful
83
+ * Improved UX for select elements where taxonomy terms were displayed by adding the term slug to the label.
84
+ * Add singular post-type options "Show on Post Types and Archives" output settings.
85
+ * Improved messaging in various errors.
86
+ * Fixed bug where exiting and then re-entering output settings, the advanced settings would disappear.
87
+ * Fixed conflict when BigCommerce plugin installed, triggered by their admin scripts.
88
+ * Fixed php warning, "strpos(): Empty needle in optin-monster-wp-api/OMAPI/Inserter.php..."
89
+ * Fixed bug where the "Product Archive Page (shop)" output setting option was only visible for inline campaigns.
90
+ * Fixed bug where output settings would conflict if a post and category had the same ID.
91
+ * Fixed `WP_Scripts::localize` deprecation warning by switching to `wp_add_inline_script()` where applicable.
92
+
93
+ ### 2.2.1
94
+ * Security hardening.
95
+
96
+ ### 2.2.0 - 2021-02-18
97
+ * Added Elementor Block and other integration.
98
+ * Added WooCommerce Integrations.
99
+ * Added features to onboarding flow.
100
+ * Fixed issue with search "X" button.
101
+ * Fixed issue with selecting posts in the campaign output settings.
102
+ * Additional fixes to the University page responsive styling.
103
+ * Fixed issue with campaign shortcode storage
104
+ * Improved live preview/rule preview for campaigns with shortcodes.
105
+ * Fix to put campaigns in preview mode when in the WordPress customizer preview or post preview.
106
+ * Fix PHP notices for using `$_SERVER['HTTP_REFERER']` when it doesn't exist.
107
+ * Fix some performance issues by only performing `wp_update_post` if the synced campaign contains changes.
108
+ * Fix help link in Gutenberg Block's sidebar settings.
109
+ * Fix help link in Gutenberg Block when no campaigns have yet been created.
110
+ * Added additional filter for filtering campaigns to embed on the frontend.
111
+
112
+ ### 2.1.2
113
+ * Security hardening.
114
+
115
+ ### 2.1.1 - 2021-01-20
116
+ * Notifications improvements.
117
+ * Better handling to prevent Gutenberg block from using same inline slug multiple times (which does not work).
118
+ * Fix output settings link in Gutenberg sidebar not working.
119
+ * Fixes University responsive styling.
120
+ * Code cleanup
121
+
122
+ ### 2.1.0 - 2021-01-14
123
+ * Introduce Subscribers page to manage Monster Leads for your WordPress site, with helpful analytics data, graphs, management, and export capabilities.
124
+ * Introduce the OptinMonster University page.
125
+ * Various help-text improvements, and fixed typos.
126
+ * Bug fixes, and error output for campaign-status changes.
127
+ * Better alert output.
128
+ * Better notification output, improving visibility/functionality.
129
+ * Improved communication around connection process.
130
+ * Include javascript source map files in build to prevent console notices.
131
+ * Improved account-upgrade workflow.
132
+ * Improved request performance on campaigns page.
133
+
134
  ### 2.0.4
135
  * Security hardening.
136
 
137
+ ### 2.0.3 - 2020-12-07
138
  * Updates the "get started" interface to be more intuitive for existing users.
139
  * Remove incorrect concept of "pending" for split tests.
140
 
141
+ ### 2.0.2 - 2020-11-24
142
  * Include the JS source map files in the release to prevent unnecessary 404s in the dashboard.
143
  * Use `POST` request to save campaign output settings, since some servers don't like `PUT` requests.
144
  * Updated dependencies.
153
  * Ensure campaign-creation errors are displayed on the Templates page.
154
  * Update description around site cookie settings.
155
 
156
+ ### 2.0.1 - 2020-11-16
157
  * Bug fixes and adjustments for compatibility with older versions of PHP.
158
  * Bug fixes related to wildcard domains and subdomains.
159
 
160
+ ### 2.0.0 - 2020-11-16
161
  * NEW: Overhaul of the plugin to make managing your popup campaigns easier than ever!
162
  * Added the ability to see all your popup campaigns in your dashboard (draft, pending and published)
163
  * Added a new dashboard to see stats and details about your popup optins
OMAPI/Actions.php CHANGED
@@ -59,6 +59,13 @@ class OMAPI_Actions {
59
 
60
  // Add validation messages.
61
  add_action( 'admin_init', array( $this, 'maybe_fetch_missing_data' ), 99 );
 
 
 
 
 
 
 
62
  }
63
 
64
  /**
@@ -71,48 +78,6 @@ class OMAPI_Actions {
71
  $this->base = OMAPI::get_instance();
72
  }
73
 
74
- /**
75
- * Clears the local cookies.
76
- *
77
- * @since 1.0.0
78
- */
79
- public function cookies() {
80
-
81
- $optins = $this->base->get_optins( array( 'post_status' => 'any' ) );
82
- if ( ! empty( $optins ) ) {
83
- foreach ( (array) $optins as $optin ) {
84
- if ( $optin ) {
85
- // Array of ids so all splits are included
86
- $ids = get_post_meta( $optin->ID, '_omapi_ids', true );
87
- foreach ( (array) $ids as $id ) {
88
- setcookie( 'om-' . $id, '', -1, COOKIEPATH, COOKIE_DOMAIN, false );
89
- setcookie( 'om-success-' . $id, '', -1, COOKIEPATH, COOKIE_DOMAIN, false );
90
- setcookie( 'omSuccess-' . $id, '', -1, COOKIEPATH, COOKIE_DOMAIN, false );
91
- setcookie( 'om-second-' . $id, '', -1, COOKIEPATH, COOKIE_DOMAIN, false );
92
- setcookie( 'omSlideClosed-' . $id, '', -1, COOKIEPATH, COOKIE_DOMAIN, false );
93
- setcookie( 'omSeen-' . $id, '', -1, COOKIEPATH, COOKIE_DOMAIN, false );
94
- setcookie( 'om-' . $id . '-closed', '', -1, COOKIEPATH, COOKIE_DOMAIN, false );
95
- }
96
- }
97
- }
98
- }
99
-
100
- // Clear out global cookie.
101
- setcookie( 'om-global-cookie', '', -1, COOKIEPATH, COOKIE_DOMAIN, false );
102
- setcookie( 'omGlobalSuccessCookie', '', -1, COOKIEPATH, COOKIE_DOMAIN, false );
103
- // Clear out interaction cookie.
104
- setcookie( 'om-interaction-cookie', '', -1, COOKIEPATH, COOKIE_DOMAIN, false );
105
- setcookie( 'omGlobalInteractionCookie', '', -1, COOKIEPATH, COOKIE_DOMAIN, false );
106
- // Clear out generic success cookie.
107
- setcookie( 'om-success-cookie', '', -1, COOKIEPATH, COOKIE_DOMAIN, false );
108
- setcookie( 'omSuccessCookie', '', -1, COOKIEPATH, COOKIE_DOMAIN, false );
109
- setcookie( 'omSessionStart', '', -1, COOKIEPATH, COOKIE_DOMAIN, false );
110
- setcookie( 'omSessionPageviews', '', -1, COOKIEPATH, COOKIE_DOMAIN, false );
111
-
112
- return true;
113
-
114
- }
115
-
116
  /**
117
  * When the plugin is first installed
118
  * Or Migrated from a pre-1.8.0 version
@@ -132,7 +97,7 @@ class OMAPI_Actions {
132
  return;
133
  }
134
 
135
- // Fetch the userId and accountId, if we don't have them
136
  if (
137
  empty( $option['userId'] )
138
  || empty( $option['accountId'] )
@@ -148,8 +113,13 @@ class OMAPI_Actions {
148
  }
149
  }
150
 
151
- // Fetch the SiteIds for this site, if we don't have them
152
- if ( empty( $option['siteIds'] ) || empty( $option['siteId'] ) || $this->site_ids_are_numeric( $option['siteIds'] ) ) {
 
 
 
 
 
153
 
154
  $result = $this->base->sites->fetch();
155
  if ( ! is_wp_error( $result ) ) {
@@ -158,22 +128,20 @@ class OMAPI_Actions {
158
  }
159
  }
160
 
161
- // Only update the option if we've changed something
162
  if ( $changed ) {
163
  update_option( 'optin_monster_api', $option );
164
  }
165
-
166
  }
167
 
168
-
169
  /**
170
  * In one version of the Plugin, we fetched the numeric SiteIds,
171
  * But we actually needed the alphanumeric SiteIds.
172
  *
173
- * So we use this check to determine if we need to re-fetch Site Ids
174
  *
175
- * @param array $siteIds
176
- * @return bool True if the ids are numeric
177
  */
178
  protected function site_ids_are_numeric( $site_ids ) {
179
  foreach ( $site_ids as $id ) {
@@ -184,4 +152,97 @@ class OMAPI_Actions {
184
 
185
  return true;
186
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
187
  }
59
 
60
  // Add validation messages.
61
  add_action( 'admin_init', array( $this, 'maybe_fetch_missing_data' ), 99 );
62
+
63
+ // We can run upgrade routines on cron runs and admin requests.
64
+ if ( defined( 'DOING_CRON' ) && DOING_CRON ) {
65
+ add_action( 'optin_monster_api_global_loaded', array( $this, 'check_upgrade_routines' ), 99 );
66
+ } else {
67
+ add_action( 'admin_init', array( $this, 'check_upgrade_routines_admin' ), 100 );
68
+ }
69
  }
70
 
71
  /**
78
  $this->base = OMAPI::get_instance();
79
  }
80
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
81
  /**
82
  * When the plugin is first installed
83
  * Or Migrated from a pre-1.8.0 version
97
  return;
98
  }
99
 
100
+ // Fetch the userId and accountId, if we don't have them.
101
  if (
102
  empty( $option['userId'] )
103
  || empty( $option['accountId'] )
113
  }
114
  }
115
 
116
+ // Fetch the SiteIds for this site, if we don't have them.
117
+ if (
118
+ empty( $option['siteIds'] )
119
+ || empty( $option['siteId'] )
120
+ || $this->site_ids_are_numeric( $option['siteIds'] )
121
+ || ! isset( $option['apiCname'] )
122
+ ) {
123
 
124
  $result = $this->base->sites->fetch();
125
  if ( ! is_wp_error( $result ) ) {
128
  }
129
  }
130
 
131
+ // Only update the option if we've changed something.
132
  if ( $changed ) {
133
  update_option( 'optin_monster_api', $option );
134
  }
 
135
  }
136
 
 
137
  /**
138
  * In one version of the Plugin, we fetched the numeric SiteIds,
139
  * But we actually needed the alphanumeric SiteIds.
140
  *
141
+ * So we use this check to determine if we need to re-fetch Site Ids.
142
  *
143
+ * @param array $site_ids Site ids to convert.
144
+ * @return bool True if the ids are numeric.
145
  */
146
  protected function site_ids_are_numeric( $site_ids ) {
147
  foreach ( $site_ids as $id ) {
152
 
153
  return true;
154
  }
155
+
156
+ /**
157
+ * Runs upgrade routines in the admin, and refreshes the page if needed
158
+ * (if options changed, etc).
159
+ *
160
+ * @since 2.6.5
161
+ *
162
+ * @return void
163
+ */
164
+ public function check_upgrade_routines_admin() {
165
+ $refresh = $this->check_upgrade_routines();
166
+ if ( $refresh ) {
167
+ wp_safe_redirect( esc_url_raw( add_query_arg( 'om', 1 ) ) );
168
+ exit;
169
+ }
170
+ }
171
+
172
+ /**
173
+ * Handles running the upgrade routines for each version.
174
+ *
175
+ * @since 2.6.5
176
+ *
177
+ * @return bool Whether page should be refreshed.
178
+ */
179
+ public function check_upgrade_routines() {
180
+ $in_progress = get_option( 'optinmonster_current_upgrade' );
181
+ if ( ! empty( $in_progress ) ) {
182
+ return false;
183
+ }
184
+
185
+ $refresh = false;
186
+ $plugin_version = $this->base->version;
187
+ $upgrade_completed = get_option( 'optinmonster_upgrade_completed', 0 );
188
+ $upgrade_map = array(
189
+ '2.6.5' => 'v265_upgrades',
190
+ );
191
+ foreach ( $upgrade_map as $upgrade_version => $method ) {
192
+ if (
193
+ version_compare( $plugin_version, $upgrade_version, '>=' )
194
+ && version_compare( $upgrade_completed, $upgrade_version, '<' )
195
+ ) {
196
+ update_option( 'optinmonster_current_upgrade', $upgrade_version );
197
+ $refresh = $this->{$method}();
198
+ delete_option( 'optinmonster_current_upgrade' );
199
+ }
200
+ }
201
+
202
+ if ( (string) $plugin_version !== (string) $upgrade_completed ) {
203
+ update_option( 'optinmonster_upgrade_completed', $plugin_version );
204
+ }
205
+
206
+ return $refresh;
207
+ }
208
+
209
+ /**
210
+ * Upgrades for version 2.6.5.
211
+ *
212
+ * @since 2.6.5
213
+ *
214
+ * @return bool Whether upgrade routine was completed successfully.
215
+ */
216
+ public function v265_upgrades() {
217
+ $creds = $this->base->get_api_credentials();
218
+
219
+ // Missing previous api key to verify.
220
+ if ( empty( $creds['apikey'] ) ) {
221
+ return false;
222
+ }
223
+
224
+ $api = OMAPI_Api::build( 'v1', 'verify/', 'POST', $creds );
225
+ $results = $api->request();
226
+
227
+ // Current key is fine.
228
+ if ( ! is_wp_error( $results ) ) {
229
+ return false;
230
+ }
231
+
232
+ $error_code = ! empty( $api->response_body->code )
233
+ ? $api->response_body->code
234
+ : 0;
235
+ if (
236
+ in_array( (string) $api->response_code, array( '410', '401', '424', '403' ), true )
237
+ && '10051' === (string) $error_code
238
+ ) {
239
+ OMAPI_ApiKey::regenerate( $creds['apikey'] );
240
+
241
+ // Regenerated, so we want to refresh the page.
242
+ return true;
243
+ }
244
+
245
+ // No luck.
246
+ return false;
247
+ }
248
  }
OMAPI/Ajax.php CHANGED
@@ -58,8 +58,10 @@ class OMAPI_Ajax {
58
  $this->set();
59
 
60
  // Load non-WordPress style ajax requests.
61
- if ( isset( $_REQUEST['optin-monster-ajax-route'] ) && $_REQUEST['optin-monster-ajax-route'] ) {
62
- if ( isset( $_REQUEST['action'] ) ) {
 
 
63
  add_action( 'init', array( $this, 'ajax' ), 999 );
64
  }
65
  }
@@ -82,7 +84,7 @@ class OMAPI_Ajax {
82
  */
83
  public function ajax() {
84
 
85
- switch ( $_REQUEST['action'] ) {
86
  case 'mailpoet':
87
  $this->base->mailpoet->handle_ajax_call();
88
  break;
58
  $this->set();
59
 
60
  // Load non-WordPress style ajax requests.
61
+ // phpcs:ignore Generic.Commenting.Todo.TaskFound
62
+ // TODO move all of this to RestApi, and use rest api for these requests!
63
+ if ( isset( $_REQUEST['optin-monster-ajax-route'] ) && $_REQUEST['optin-monster-ajax-route'] ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
64
+ if ( isset( $_REQUEST['action'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
65
  add_action( 'init', array( $this, 'ajax' ), 999 );
66
  }
67
  }
84
  */
85
  public function ajax() {
86
 
87
+ switch ( $_REQUEST['action'] ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
88
  case 'mailpoet':
89
  $this->base->mailpoet->handle_ajax_call();
90
  break;
OMAPI/Api.php CHANGED
@@ -149,10 +149,10 @@ class OMAPI_Api {
149
  *
150
  * @since 1.8.0
151
  *
152
- * @param string $version The Api Version (v1 or v2)
153
- * @param string $endpoint The Api Endpoint
154
- * @param string $method The Request method
155
- * @param array $creds Array of API credentials.
156
  *
157
  * @return self
158
  */
@@ -162,7 +162,7 @@ class OMAPI_Api {
162
 
163
  if ( ! empty( $creds ) ) {
164
 
165
- // Check if we have the new API and if so only use it
166
  $creds = ! empty( $creds['apikey'] )
167
  ? array( 'apikey' => $creds['apikey'] )
168
  : array(
@@ -183,7 +183,7 @@ class OMAPI_Api {
183
  * @param string $route The API route to target.
184
  * @param array $creds Array of API credentials.
185
  * @param string $method The API method.
186
- * @param string $version The version number of our API
187
  */
188
  public function __construct( $route, $creds, $method = 'POST', $version = 'v1' ) {
189
  // Set class properties.
@@ -203,6 +203,8 @@ class OMAPI_Api {
203
  *
204
  * @since 1.0.0
205
  *
 
 
206
  * @return mixed $value The response to the API call.
207
  */
208
  public function request( $args = array() ) {
@@ -225,8 +227,8 @@ class OMAPI_Api {
225
 
226
  $body = wp_parse_args( $args, $body );
227
  $url = in_array( $this->method, array( 'GET', 'DELETE' ), true )
228
- ? add_query_arg( array_map( 'urlencode', $body ), $this->getUrl() )
229
- : $this->getUrl();
230
 
231
  $url = esc_url_raw( $url );
232
 
@@ -240,6 +242,7 @@ class OMAPI_Api {
240
  'OMAPI-Referer' => site_url(),
241
  'OMAPI-Sender' => 'WordPress',
242
  'OMAPI-Site' => esc_attr( get_option( 'blogname' ) ),
 
243
  );
244
 
245
  if ( $this->apikey ) {
@@ -265,6 +268,7 @@ class OMAPI_Api {
265
  // Get the response code and response body.
266
  $this->response_code = wp_remote_retrieve_response_code( $this->response );
267
  $this->response_body = json_decode( wp_remote_retrieve_body( $this->response ) );
 
268
 
269
  // If we used the legacy api-creds, we'll get back a new api key.
270
  if (
@@ -274,11 +278,8 @@ class OMAPI_Api {
274
  $this->apikey = sanitize_text_field( $this->response['headers']['x-optinmonster-apikey'] );
275
  }
276
 
277
- // Get the correct success response code to check against.
278
- $response_code = 'DELETE' === $this->method ? 204 : 200;
279
-
280
- // If not a 200 status header, send back error.
281
- if ( $response_code != $this->response_code ) {
282
  $type = ! empty( $this->response_body->type ) ? $this->response_body->type : 'api-error';
283
  $error = ! empty( $this->response_body->message ) ? stripslashes( $this->response_body->message ) : '';
284
  if ( empty( $error ) ) {
@@ -288,6 +289,7 @@ class OMAPI_Api {
288
  $error = ! empty( $this->response_body->error ) ? stripslashes( $this->response_body->error ) : 'unknown';
289
  }
290
 
 
291
  return new WP_Error( $type, sprintf( __( 'The API returned a <strong>%1$s</strong> response with this message: <strong>%2$s</strong>', 'optin-monster-api' ), $this->response_code, $error ), $this->response_code );
292
  }
293
 
@@ -302,7 +304,7 @@ class OMAPI_Api {
302
  *
303
  * @return string The API url.
304
  */
305
- public function getUrl() {
306
  return $this->base . '/' . $this->version . '/' . $this->route;
307
  }
308
 
@@ -324,8 +326,9 @@ class OMAPI_Api {
324
  *
325
  * @since 1.0.0
326
  *
327
- * @param array $data
328
- * return void
 
329
  */
330
  public function set_additional_data( array $data ) {
331
  $this->additional_data = array_merge( $this->additional_data, $data );
@@ -344,6 +347,22 @@ class OMAPI_Api {
344
  return $this;
345
  }
346
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
347
  /**
348
  * Returns the last instantiated instance of this class.
349
  *
@@ -360,8 +379,8 @@ class OMAPI_Api {
360
  *
361
  * @since 2.0.0
362
  *
363
- * @param array $option Existing options array.
364
- * @param array $creds Existing credentials array.
365
  *
366
  * @return array Updated options array.
367
  */
@@ -385,17 +404,19 @@ class OMAPI_Api {
385
  if ( $api->user && $api->key ) {
386
 
387
  // Notifiy user of credentials replacement.
388
- OMAPI::get_instance()->notifications->add_event( array(
389
- 'type' => 'success',
390
- 'title' => 'Your API Access Credentials have been updated',
391
- 'content' => 'We have automatically replaced your deprecated user/key OptinMonster connection credentials with a new API key.',
392
- 'btns' => array(
393
- 'main' => array(
394
- 'text' => 'Manage API Keys',
395
- 'url' => esc_url_raw( OPTINMONSTER_APP_URL . '/account/api/' ),
 
 
396
  ),
397
- ),
398
- ) );
399
  }
400
  }
401
 
149
  *
150
  * @since 1.8.0
151
  *
152
+ * @param string $version The Api Version (v1 or v2).
153
+ * @param string $route The Api Endpoint/route.
154
+ * @param string $method The Request method.
155
+ * @param array $creds Array of API credentials.
156
  *
157
  * @return self
158
  */
162
 
163
  if ( ! empty( $creds ) ) {
164
 
165
+ // Check if we have the new API and if so only use it.
166
  $creds = ! empty( $creds['apikey'] )
167
  ? array( 'apikey' => $creds['apikey'] )
168
  : array(
183
  * @param string $route The API route to target.
184
  * @param array $creds Array of API credentials.
185
  * @param string $method The API method.
186
+ * @param string $version The version number of our API.
187
  */
188
  public function __construct( $route, $creds, $method = 'POST', $version = 'v1' ) {
189
  // Set class properties.
203
  *
204
  * @since 1.0.0
205
  *
206
+ * @param array $args Request args.
207
+ *
208
  * @return mixed $value The response to the API call.
209
  */
210
  public function request( $args = array() ) {
227
 
228
  $body = wp_parse_args( $args, $body );
229
  $url = in_array( $this->method, array( 'GET', 'DELETE' ), true )
230
+ ? add_query_arg( array_map( 'urlencode', $body ), $this->get_url() )
231
+ : $this->get_url();
232
 
233
  $url = esc_url_raw( $url );
234
 
242
  'OMAPI-Referer' => site_url(),
243
  'OMAPI-Sender' => 'WordPress',
244
  'OMAPI-Site' => esc_attr( get_option( 'blogname' ) ),
245
+ 'OMAPI-Version' => esc_attr( OMAPI::get_instance()->version ),
246
  );
247
 
248
  if ( $this->apikey ) {
268
  // Get the response code and response body.
269
  $this->response_code = wp_remote_retrieve_response_code( $this->response );
270
  $this->response_body = json_decode( wp_remote_retrieve_body( $this->response ) );
271
+ $code = (int) $this->response_code;
272
 
273
  // If we used the legacy api-creds, we'll get back a new api key.
274
  if (
278
  $this->apikey = sanitize_text_field( $this->response['headers']['x-optinmonster-apikey'] );
279
  }
280
 
281
+ // If not successful status header, send back error.
282
+ if ( $code >= 400 ) {
 
 
 
283
  $type = ! empty( $this->response_body->type ) ? $this->response_body->type : 'api-error';
284
  $error = ! empty( $this->response_body->message ) ? stripslashes( $this->response_body->message ) : '';
285
  if ( empty( $error ) ) {
289
  $error = ! empty( $this->response_body->error ) ? stripslashes( $this->response_body->error ) : 'unknown';
290
  }
291
 
292
+ /* translators: %1$s - API response code, %2$s - returned error from API. */
293
  return new WP_Error( $type, sprintf( __( 'The API returned a <strong>%1$s</strong> response with this message: <strong>%2$s</strong>', 'optin-monster-api' ), $this->response_code, $error ), $this->response_code );
294
  }
295
 
304
  *
305
  * @return string The API url.
306
  */
307
+ public function get_url() {
308
  return $this->base . '/' . $this->version . '/' . $this->route;
309
  }
310
 
326
  *
327
  * @since 1.0.0
328
  *
329
+ * @param array $data The data to set.
330
+ *
331
+ * @return void
332
  */
333
  public function set_additional_data( array $data ) {
334
  $this->additional_data = array_merge( $this->additional_data, $data );
347
  return $this;
348
  }
349
 
350
+ /**
351
+ * Get the request credentials for this API object.
352
+ *
353
+ * @since 2.3.0
354
+ *
355
+ * @return array Array containing API credentials.
356
+ */
357
+ public function get_creds() {
358
+ return ! empty( $this->apikey )
359
+ ? array( 'apikey' => $this->apikey )
360
+ : array(
361
+ 'user' => $this->user,
362
+ 'key' => $this->key,
363
+ );
364
+ }
365
+
366
  /**
367
  * Returns the last instantiated instance of this class.
368
  *
379
  *
380
  * @since 2.0.0
381
  *
382
+ * @param array $option Existing options array.
383
+ * @param array $creds Existing credentials array.
384
  *
385
  * @return array Updated options array.
386
  */
404
  if ( $api->user && $api->key ) {
405
 
406
  // Notifiy user of credentials replacement.
407
+ OMAPI::get_instance()->notifications->add_event(
408
+ array(
409
+ 'type' => 'success',
410
+ 'title' => 'Your API Access Credentials have been updated',
411
+ 'content' => 'We have automatically replaced your deprecated user/key OptinMonster connection credentials with a new API key.',
412
+ 'btns' => array(
413
+ 'main' => array(
414
+ 'text' => 'Manage API Keys',
415
+ 'url' => esc_url_raw( OPTINMONSTER_APP_URL . '/account/api/' ),
416
+ ),
417
  ),
418
+ )
419
+ );
420
  }
421
  }
422
 
OMAPI/ApiAuth.php ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Api Auth class.
4
+ *
5
+ * @since 2.6.5
6
+ *
7
+ * @package OMAPI
8
+ * @author Justin Sternberg
9
+ */
10
+
11
+ // Exit if accessed directly.
12
+ if ( ! defined( 'ABSPATH' ) ) {
13
+ exit;
14
+ }
15
+
16
+ /**
17
+ * Api Auth class.
18
+ *
19
+ * @since 2.6.5
20
+ */
21
+ class OMAPI_ApiAuth {
22
+
23
+ /**
24
+ * Get the auth token from the DB..
25
+ *
26
+ * @since 2.6.5
27
+ *
28
+ * @return array Auth token array.
29
+ */
30
+ public static function get_token() {
31
+ return get_option(
32
+ 'optinmonster_site_token',
33
+ array(
34
+ 'expires' => 0,
35
+ 'tt' => '',
36
+ )
37
+ );
38
+ }
39
+
40
+ /**
41
+ * Check if token exists in DB.
42
+ *
43
+ * @since 2.6.5
44
+ *
45
+ * @return boolean Whether it exists.
46
+ */
47
+ public static function has_token() {
48
+ $token = self::get_token();
49
+
50
+ return ! empty( $token['expires'] ) && ! empty( $token['tt'] );
51
+ }
52
+
53
+ /**
54
+ * Get the tt value from the auth token (or generate the auth token).
55
+ *
56
+ * @since 2.6.5
57
+ *
58
+ * @return string The tt value from the auth token.
59
+ */
60
+ public static function get_tt() {
61
+ $token = self::get_token();
62
+
63
+ if ( empty( $token['tt'] ) ) {
64
+
65
+ // if TT is empty, generate a new one, save it and then return it.
66
+ $token = array(
67
+ 'expires' => time() + ( 2 * MINUTE_IN_SECONDS ),
68
+ 'tt' => self::generate_tt(),
69
+ );
70
+ update_option( 'optinmonster_site_token', $token );
71
+ }
72
+
73
+ return $token['tt'];
74
+ }
75
+
76
+ /**
77
+ * Generate the tt value (long random string).
78
+ *
79
+ * @since 2.6.5
80
+ *
81
+ * @return string Tt value.
82
+ */
83
+ public static function generate_tt() {
84
+ return hash( 'sha512', wp_generate_password( 128, true, true ) . AUTH_SALT . uniqid( '', true ) );
85
+ }
86
+
87
+ /**
88
+ * Validate whether given tt value matches auth token tt value,
89
+ * and whether the auth token has expired.
90
+ *
91
+ * @since 2.6.5
92
+ *
93
+ * @param string $passed_tt The tt value to validate.
94
+ *
95
+ * @return bool Whether tt value is validated with the token.
96
+ */
97
+ public static function validate_token( $passed_tt = '' ) {
98
+ if ( empty( $passed_tt ) ) {
99
+ return false;
100
+ }
101
+
102
+ $token = self::get_token();
103
+ if ( empty( $token ) ) {
104
+ return false;
105
+ }
106
+
107
+ $expired = ! empty( $token['expires'] ) ? $token['expires'] < time() : true;
108
+ $tt = ! empty( $token['tt'] ) ? $token['tt'] : '';
109
+ $matches = hash_equals( $tt, $passed_tt );
110
+
111
+ return $matches && ! $expired;
112
+ }
113
+
114
+ /**
115
+ * Delete the auth token.
116
+ *
117
+ * @since 2.6.5
118
+ *
119
+ * @return bool True if the option was deleted, false otherwise.
120
+ */
121
+ public static function delete_token() {
122
+ return delete_option( 'optinmonster_site_token' );
123
+ }
124
+ }
OMAPI/ApiKey.php CHANGED
@@ -32,8 +32,8 @@ class OMAPI_ApiKey {
32
  public static function init_connection( $apikey ) {
33
  $base = OMAPI::get_instance();
34
 
35
- $creds = compact( 'apikey' );
36
- $option = $base->get_option();
37
  $option['api']['apikey'] = $apikey;
38
 
39
  // Let's store the api-key first.
@@ -51,10 +51,11 @@ class OMAPI_ApiKey {
51
  $option['auto_updates'] = 'all';
52
  $option['usage_tracking'] = true;
53
 
54
- // Remove any pre-saved site/user/account data, so we re-fetch it elsewhere
55
  unset( $option['siteId'] );
56
  unset( $option['siteIds'] );
57
  unset( $option['customApiUrl'] );
 
58
 
59
  // Fetch the userId and accountId now.
60
  $option = OMAPI_Api::fetch_me( $option, $creds );
@@ -76,7 +77,7 @@ class OMAPI_ApiKey {
76
  // Save the option one more time, with all the new good stuff..
77
  $base->save->update_option( $option, $creds );
78
 
79
- return true;
80
  }
81
 
82
  /**
@@ -92,7 +93,7 @@ class OMAPI_ApiKey {
92
  $option['connected'] = 0;
93
  $option['api']['apikey'] = '';
94
 
95
- // Remove any pre-saved site/user/account data, so we re-fetch it elsewhere
96
  unset( $option['userId'] );
97
  unset( $option['accountId'] );
98
  unset( $option['currentLevel'] );
@@ -100,6 +101,7 @@ class OMAPI_ApiKey {
100
  unset( $option['siteId'] );
101
  unset( $option['siteIds'] );
102
  unset( $option['customApiUrl'] );
 
103
  unset( $option['api']['user'] );
104
  unset( $option['api']['key'] );
105
 
@@ -116,10 +118,10 @@ class OMAPI_ApiKey {
116
  *
117
  * @return bool True if the Key can be validated
118
  */
119
- public static function verify( $apikey ) {
120
  $creds = compact( 'apikey' );
121
 
122
- // Verify this new API Key works by posting to the Legacy route
123
  return OMAPI_Api::build( 'v1', 'verify/', 'POST', $creds )->request();
124
  }
125
 
@@ -152,7 +154,7 @@ class OMAPI_ApiKey {
152
  }
153
 
154
  foreach ( $site_ids as $site_id ) {
155
- if ( in_array( $site_id, $api_key_sites['siteIds'] ) ) {
156
  return true;
157
  }
158
  }
@@ -185,5 +187,24 @@ class OMAPI_ApiKey {
185
 
186
  return ! empty( $creds['user'] ) && ! empty( $creds['key'] );
187
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
188
  }
189
 
32
  public static function init_connection( $apikey ) {
33
  $base = OMAPI::get_instance();
34
 
35
+ $creds = compact( 'apikey' );
36
+ $option = $base->get_option();
37
  $option['api']['apikey'] = $apikey;
38
 
39
  // Let's store the api-key first.
51
  $option['auto_updates'] = 'all';
52
  $option['usage_tracking'] = true;
53
 
54
+ // Remove any pre-saved site/user/account data, so we re-fetch it elsewhere.
55
  unset( $option['siteId'] );
56
  unset( $option['siteIds'] );
57
  unset( $option['customApiUrl'] );
58
+ unset( $option['apiCname'] );
59
 
60
  // Fetch the userId and accountId now.
61
  $option = OMAPI_Api::fetch_me( $option, $creds );
77
  // Save the option one more time, with all the new good stuff..
78
  $base->save->update_option( $option, $creds );
79
 
80
+ return $option;
81
  }
82
 
83
  /**
93
  $option['connected'] = 0;
94
  $option['api']['apikey'] = '';
95
 
96
+ // Remove any pre-saved site/user/account data, so we re-fetch it elsewhere.
97
  unset( $option['userId'] );
98
  unset( $option['accountId'] );
99
  unset( $option['currentLevel'] );
101
  unset( $option['siteId'] );
102
  unset( $option['siteIds'] );
103
  unset( $option['customApiUrl'] );
104
+ unset( $option['apiCname'] );
105
  unset( $option['api']['user'] );
106
  unset( $option['api']['key'] );
107
 
118
  *
119
  * @return bool True if the Key can be validated
120
  */
121
+ public static function verify( $apikey ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
122
  $creds = compact( 'apikey' );
123
 
124
+ // Verify this new API Key works by posting to the Legacy route.
125
  return OMAPI_Api::build( 'v1', 'verify/', 'POST', $creds )->request();
126
  }
127
 
154
  }
155
 
156
  foreach ( $site_ids as $site_id ) {
157
+ if ( in_array( $site_id, $api_key_sites['siteIds'] ) ) { // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict
158
  return true;
159
  }
160
  }
187
 
188
  return ! empty( $creds['user'] ) && ! empty( $creds['key'] );
189
  }
190
+
191
+ /**
192
+ * Handles regnerating api key.
193
+ *
194
+ * @since 2.6.5
195
+ *
196
+ * @param string $apikey Api Key to replace after regeneration.
197
+ *
198
+ * @return mixed $value The response to the API call.
199
+ */
200
+ public static function regenerate( $apikey ) {
201
+ return OMAPI_Api::build( 'v2', 'key/regenerate', 'POST', compact( 'apikey' ) )
202
+ ->request(
203
+ array(
204
+ 'tt' => OMAPI_ApiAuth::get_tt(),
205
+ )
206
+ );
207
+ }
208
+
209
  }
210
 
OMAPI/AssetLoader.php CHANGED
@@ -1,4 +1,18 @@
1
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  /**
3
  * A special asset loader built specifically to enqueue
4
  * JS and CSS built by create-react-app
@@ -55,8 +69,9 @@ class OMAPI_AssetLoader {
55
  *
56
  * @since 2.0.0
57
  *
58
- * @param array $options
59
  * @return void
 
60
  */
61
  public function enqueue( array $options = array() ) {
62
 
@@ -77,7 +92,7 @@ class OMAPI_AssetLoader {
77
  $isJs = preg_match( '/\.js$/', $assetPath );
78
  $isCss = ! $isJs && preg_match( '/\.css$/', $assetPath );
79
 
80
- // Ignore source maps and images
81
  if ( ! $isCss && ! $isJs ) {
82
  continue;
83
  }
@@ -116,9 +131,10 @@ class OMAPI_AssetLoader {
116
  */
117
  public function localize( $args ) {
118
  foreach ( $this->handles['js'] as $handle ) {
119
- wp_localize_script( $handle, 'omWpApi', $args );
 
120
  if ( isset( $args['omStaticDataKey'] ) ) {
121
- wp_localize_script( $handle, 'omStaticDataKey', $args['omStaticDataKey'] );
122
  }
123
  // We only need to output once.
124
  break;
@@ -132,7 +148,7 @@ class OMAPI_AssetLoader {
132
  *
133
  * @since 2.0.0
134
  *
135
- * @param string $assetPath
136
  * @return null|Array
137
  */
138
  protected function loadAssetFile( $assetPath ) {
@@ -173,7 +189,7 @@ class OMAPI_AssetLoader {
173
  *
174
  * @since 2.0.0
175
  *
176
- * @param string $directory The directory to append to the manifest file.
177
  * @return array The assets themselves or an array of parsed assets.
178
  */
179
  public function getAssetsList( $directory ) {
1
  <?php
2
+ /**
3
+ * Asset Loader class.
4
+ *
5
+ * @since 2.0.0
6
+ *
7
+ * @package OMAPI
8
+ * @author Justin Sternberg
9
+ */
10
+
11
+ // Exit if accessed directly.
12
+ if ( ! defined( 'ABSPATH' ) ) {
13
+ exit;
14
+ }
15
+
16
  /**
17
  * A special asset loader built specifically to enqueue
18
  * JS and CSS built by create-react-app
69
  *
70
  * @since 2.0.0
71
  *
72
+ * @param array $options Enqueue options.
73
  * @return void
74
+ * @throws Exception If webpack assets not found.
75
  */
76
  public function enqueue( array $options = array() ) {
77
 
92
  $isJs = preg_match( '/\.js$/', $assetPath );
93
  $isCss = ! $isJs && preg_match( '/\.css$/', $assetPath );
94
 
95
+ // Ignore source maps and images.
96
  if ( ! $isCss && ! $isJs ) {
97
  continue;
98
  }
131
  */
132
  public function localize( $args ) {
133
  foreach ( $this->handles['js'] as $handle ) {
134
+ OMAPI_Utils::add_inline_script( $handle, 'omWpApi', $args );
135
+
136
  if ( isset( $args['omStaticDataKey'] ) ) {
137
+ OMAPI_Utils::add_inline_script( $handle, 'omStaticDataKey', $args['omStaticDataKey'] );
138
  }
139
  // We only need to output once.
140
  break;
148
  *
149
  * @since 2.0.0
150
  *
151
+ * @param string $assetPath The asset path.
152
  * @return null|Array
153
  */
154
  protected function loadAssetFile( $assetPath ) {
189
  *
190
  * @since 2.0.0
191
  *
192
+ * @param string $directory The directory to append to the manifest file.
193
  * @return array The assets themselves or an array of parsed assets.
194
  */
195
  public function getAssetsList( $directory ) {
OMAPI/Blocks.php CHANGED
@@ -47,22 +47,49 @@ class OMAPI_Blocks {
47
  */
48
  public $base;
49
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50
  /**
51
  * Primary class constructor.
52
  *
53
  * @since 1.9.10
54
  */
55
  public function __construct() {
 
 
56
 
57
  if ( function_exists( 'register_block_type' ) ) {
58
 
59
- // Set our object.
60
- $this->set();
61
  $this->register_blocks();
62
 
63
  add_action( 'enqueue_block_editor_assets', array( $this, 'enqueue_block_editor_assets' ) );
64
- }
65
 
 
 
 
 
 
 
 
 
 
 
 
66
  }
67
 
68
  /**
@@ -92,7 +119,6 @@ class OMAPI_Blocks {
92
  'type' => 'boolean',
93
  ),
94
  ),
95
- // 'editor_style' => $this->base->plugin_slug . '-gutenberg-campaign-selector',
96
  'render_callback' => array( $this, 'get_output' ),
97
  )
98
  );
@@ -104,72 +130,192 @@ class OMAPI_Blocks {
104
  * @since 1.9.10
105
  */
106
  public function enqueue_block_editor_assets() {
107
- $version = $this->base->asset_version();
108
- $script_id = $this->base->plugin_slug . '-gutenberg-campaign-selector';
 
109
 
110
- wp_enqueue_style( $this->base->plugin_slug . '-blocks-admin', $this->base->url . 'assets/dist/css/blocks-admin.min.css', array(), $version );
 
 
 
111
 
 
 
 
 
 
112
  wp_enqueue_script(
113
- $script_id,
114
  $this->base->url . 'assets/dist/js/campaign-selector.min.js',
115
  array( 'wp-blocks', 'wp-i18n', 'wp-element' ),
116
  $version,
117
  true
118
  );
119
 
120
- // For translation of strings.
121
- $i18n = array(
122
- 'title' => esc_html__( 'OptinMonster', 'optin-monster-api' ),
123
- 'description' => esc_html__( 'Select and display one of your OptinMonster inline campaigns.', 'optin-monster-api' ),
124
- 'campaign_select' => esc_html__( 'Select a Campaign', 'optin-monster-api' ),
125
- 'campaign_settings' => esc_html__( 'OptinMonster Settings', 'optin-monster-api' ),
126
- 'campaign_selected' => esc_html__( 'Campaign', 'optin-monster-api' ),
127
- 'followrules_label' => esc_html__( 'Use Output Settings' ),
128
- 'followrules_help' => esc_html__( 'Ensure this campaign follows any conditions you\'ve selected in its %s.', 'optin-monster-api' ),
129
- 'output_settings' => esc_html__( 'Output Settings', 'optin-monster-api' ),
130
- 'no_sites' => esc_html__( 'Please create a free account or connect an existing account to use an OptinMonster block.', 'optin-monster-api' ),
131
- 'no_sites_button_create_account' => esc_html__( 'Create a Free Account', 'optin-monster-api' ),
132
- 'no_sites_button_connect_account' => esc_html__( 'Connect an Existing Account', 'optin-monster-api' ),
133
- 'no_campaigns' => esc_html__( 'You don’t have any campaigns yet!', 'optin-monster-api' ),
134
- 'no_campaigns_help' => esc_html__( 'Create an inline campaign to display in your posts and pages.', 'optin-monster-api' ),
135
- 'no_campaigns_button' => esc_html__( 'Create Your First Campaign', 'optin-monster-api' ),
136
- 'no_campaigns_button_help' => esc_html__( 'Learn how to create your first campaign', 'optin-monster-api' ),
137
- 'found_error' => esc_html__( 'An error was encountered', 'optin-monster-api' ),
138
  );
139
- $i18n['description'] = html_entity_decode( $i18n['description'], ENT_COMPAT, 'UTF-8' );
140
 
141
- $campaigns = $this->base->get_optins();
142
- $site_ids = $this->base->get_site_ids();
143
- wp_localize_script(
144
- $script_id,
145
- 'OMAPI',
146
- array(
147
- 'logoUrl' => $this->base->url . 'assets/images/archie-icon.svg',
148
- 'i18n' => $i18n,
149
- 'campaigns' => ! empty( $campaigns ) ? $campaigns : array(),
150
- 'site_ids' => ! empty( $site_ids ) ? $site_ids : array(),
151
- 'post' => get_post(),
152
- 'omEnv' => defined( 'OPTINMONSTER_ENV' ) ? OPTINMONSTER_ENV : '',
153
- 'templatesUri' => add_query_arg(
154
- array(
155
- 'page' => 'optin-monster-templates'
156
- ), admin_url( '/admin.php' )
157
- ),
158
- 'settingsUri' => add_query_arg(
159
- array(
160
- 'page' => 'optin-monster-settings'
161
- ), admin_url( '/admin.php' )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
162
  ),
163
- 'wizardUri' => add_query_arg(
164
- array(
165
- 'page' => 'optin-monster-onboarding-wizard'
166
- ), admin_url( '/admin.php' )
 
 
 
 
 
 
 
 
 
167
  ),
168
- 'apiUrl' => esc_url_raw( $this->base->get_api_url() ),
169
- 'omUserId' => $this->base->get_option( 'userId' ),
170
- 'editUrl' => $this->base->menu->edit_output_settings( '%s' ),
171
- )
172
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
173
  }
174
 
175
  /**
@@ -183,7 +329,7 @@ class OMAPI_Blocks {
183
  */
184
  public function get_output( $atts ) {
185
  $is_rest = defined( 'REST_REQUEST' ) && REST_REQUEST;
186
- $context = ! empty( $_REQUEST['context'] ) ? sanitize_text_field( $_REQUEST['context'] ) : '';
187
  $is_gutes = $is_rest && 'edit' === $context;
188
 
189
  // Our Guten-block handles the embed output manually.
47
  */
48
  public $base;
49
 
50
+ /**
51
+ * The data to be localized for JS.
52
+ *
53
+ * @since 2.2.0
54
+ *
55
+ * @var array
56
+ */
57
+ protected $data_for_js = array();
58
+
59
+ /**
60
+ * The campaign options list array.
61
+ *
62
+ * @var null|array
63
+ */
64
+ protected static $campaigns_list = null;
65
+
66
  /**
67
  * Primary class constructor.
68
  *
69
  * @since 1.9.10
70
  */
71
  public function __construct() {
72
+ // Set our object.
73
+ $this->set();
74
 
75
  if ( function_exists( 'register_block_type' ) ) {
76
 
77
+ // Register our blocks.
 
78
  $this->register_blocks();
79
 
80
  add_action( 'enqueue_block_editor_assets', array( $this, 'enqueue_block_editor_assets' ) );
 
81
 
82
+ // Register the global post campaign switch meta.
83
+ register_meta(
84
+ 'post',
85
+ 'om_disable_all_campaigns',
86
+ array(
87
+ 'show_in_rest' => true,
88
+ 'single' => true,
89
+ 'type' => 'boolean',
90
+ )
91
+ );
92
+ }
93
  }
94
 
95
  /**
119
  'type' => 'boolean',
120
  ),
121
  ),
 
122
  'render_callback' => array( $this, 'get_output' ),
123
  )
124
  );
130
  * @since 1.9.10
131
  */
132
  public function enqueue_block_editor_assets() {
133
+ $version = $this->base->asset_version();
134
+ $css_handle = $this->base->plugin_slug . '-blocks-admin';
135
+ wp_enqueue_style( $css_handle, $this->base->url . 'assets/dist/css/blocks-admin.min.css', array(), $version );
136
 
137
+ if ( function_exists( 'wp_add_inline_style' ) ) {
138
+ $data = get_post_type()
139
+ ? get_post_type_object( get_post_type() )
140
+ : array();
141
 
142
+ $css = $this->base->get_min_css_view_contents( 'disable-warning-css.php', (object) $data );
143
+ wp_add_inline_style( $css_handle, $css );
144
+ }
145
+
146
+ $campaign_selector_handle = $this->base->plugin_slug . '-gutenberg-campaign-selector';
147
  wp_enqueue_script(
148
+ $campaign_selector_handle,
149
  $this->base->url . 'assets/dist/js/campaign-selector.min.js',
150
  array( 'wp-blocks', 'wp-i18n', 'wp-element' ),
151
  $version,
152
  true
153
  );
154
 
155
+ OMAPI_Utils::add_inline_script( $campaign_selector_handle, 'OMAPI', $this->get_data_for_js() );
156
+
157
+ wp_enqueue_script(
158
+ $this->base->plugin_slug . '-gutenberg-sidebar-settings',
159
+ $this->base->url . 'assets/dist/js/om-settings.min.js',
160
+ array( $campaign_selector_handle, 'wp-plugins', 'wp-edit-post', 'wp-element' ),
161
+ $version
 
 
 
 
 
 
 
 
 
 
 
162
  );
 
163
 
164
+ if ( version_compare( get_bloginfo( 'version' ), '5.3', '>=' ) ) {
165
+ wp_enqueue_script(
166
+ $this->base->plugin_slug . '-gutenberg-format-button',
167
+ $this->base->url . 'assets/dist/js/om-format.min.js',
168
+ array( $campaign_selector_handle, 'wp-rich-text', 'wp-element', 'wp-editor' ),
169
+ $version
170
+ );
171
+ }
172
+ }
173
+
174
+ /**
175
+ * Get OptinMonster data for Gutenberg JS.
176
+ *
177
+ * @since 2.2.0
178
+ *
179
+ * @param string $key The js data to get, by key.
180
+ *
181
+ * @return array Array of data for JS.
182
+ */
183
+ public function get_data_for_js( $key = null ) {
184
+ if ( empty( $this->data_for_js ) ) {
185
+
186
+ // For translation of strings.
187
+ $i18n = array(
188
+ 'title' => esc_html__( 'OptinMonster', 'optin-monster-api' ),
189
+ 'description' => esc_html__( 'Select and display one of your OptinMonster inline campaigns.', 'optin-monster-api' ),
190
+ 'campaign_select' => esc_html__( 'Select Campaign...', 'optin-monster-api' ),
191
+ 'campaign_select_display' => esc_html__( 'Select and display your email marketing call-to-action campaigns from OptinMonster', 'optin-monster-api' ),
192
+ 'create_new_popup' => esc_html__( 'Create a New Popup Campaign', 'optin-monster-api' ),
193
+ 'create_new_inline' => esc_html__( 'Create a New Inline Campaign', 'optin-monster-api' ),
194
+ 'block_settings' => esc_html__( 'OptinMonster Block Settings', 'optin-monster-api' ),
195
+ 'settings' => esc_html__( 'OptinMonster Settings', 'optin-monster-api' ),
196
+ 'campaign_selected' => esc_html__( 'Campaign', 'optin-monster-api' ),
197
+ 'followrules_label' => esc_html__( 'Use Output Settings', 'optin-monster-api' ),
198
+ /* translators: %s - Output Settings (linked).*/
199
+ 'followrules_help' => esc_html__( 'Ensure this campaign follows any conditions you\'ve selected in its %s.', 'optin-monster-api' ),
200
+ 'output_settings' => esc_html__( 'Output Settings', 'optin-monster-api' ),
201
+ 'no_sites' => esc_html__( 'Please create a free account or connect an existing account to use an OptinMonster block.', 'optin-monster-api' ),
202
+ 'no_sites_button_create_account' => esc_html__( 'Create a Free Account', 'optin-monster-api' ),
203
+ 'no_sites_button_connect_account' => esc_html__( 'Connect an Existing Account', 'optin-monster-api' ),
204
+ 'no_inline_campaigns' => esc_html__( 'You don’t have any inline campaigns yet!', 'optin-monster-api' ),
205
+ 'no_campaigns_help' => esc_html__( 'Create an inline campaign to display in your posts and pages.', 'optin-monster-api' ),
206
+ 'create_inline_campaign' => esc_html__( 'Create Your First Inline Campaign', 'optin-monster-api' ),
207
+ 'create_popup_campaign' => esc_html__( 'Create Your First Popup', 'optin-monster-api' ),
208
+ 'no_campaigns_button_help' => esc_html__( 'Learn how to create your first campaign', 'optin-monster-api' ),
209
+ 'found_error' => esc_html__( 'An error was encountered', 'optin-monster-api' ),
210
+ 'disable_all' => esc_html__( 'Disable all OptinMonster campaigns.', 'optin-monster-api' ),
211
+ 'view_all' => esc_html__( 'View All Campaigns', 'optin-monster-api' ),
212
+ 'not_connected' => esc_html__( 'You Have Not Connected with OptinMonster', 'optin-monster-api' ),
213
+ 'no_campaigns_yet' => esc_html__( 'You don’t have any campaigns created yet.', 'optin-monster-api' ),
214
+ 'update_selected_popup' => esc_html__( 'Update Selected OptinMonster Campaign', 'optin-monster-api' ),
215
+ 'open_popup' => esc_html__( 'Open an OptinMonster Popup', 'optin-monster-api' ),
216
+ 'remove_popup' => esc_html__( 'Remove Campaign Link', 'optin-monster-api' ),
217
+ );
218
+ $i18n['description'] = html_entity_decode( $i18n['description'], ENT_COMPAT, 'UTF-8' );
219
+
220
+ $campaigns = $this->get_campaign_options();
221
+ $site_ids = $this->base->get_site_ids();
222
+
223
+ $this->data_for_js = array(
224
+ 'logoUrl' => $this->base->url . 'assets/css/images/icons/archie-icon.svg',
225
+ 'i18n' => $i18n,
226
+ 'campaigns' => array(
227
+ 'inline' => ! empty( $campaigns['inline'] ) ? $campaigns['inline'] : array(),
228
+ 'other' => ! empty( $campaigns['other'] ) ? $campaigns['other'] : array(),
229
  ),
230
+ 'site_ids' => ! empty( $site_ids ) ? $site_ids : array(),
231
+ 'post' => get_post(),
232
+ 'omEnv' => defined( 'OPTINMONSTER_ENV' ) ? OPTINMONSTER_ENV : '',
233
+ 'templatesUri' => OMAPI_Urls::templates(),
234
+ 'campaignsUri' => OMAPI_Urls::campaigns(),
235
+ 'settingsUri' => OMAPI_Urls::settings(),
236
+ 'wizardUri' => OMAPI_Urls::wizard(),
237
+ 'apiUrl' => esc_url_raw( OPTINMONSTER_APIJS_URL ),
238
+ 'omUserId' => $this->base->get_option( 'userId' ),
239
+ 'outputSettingsUrl' => OMAPI_Urls::campaign_output_settings( '%s' ),
240
+ 'editUrl' => OMAPI_Urls::om_app(
241
+ 'campaigns/--CAMPAIGN_SLUG--/edit/',
242
+ rawurlencode( OMAPI_Urls::campaign_output_settings( '--CAMPAIGN_SLUG--' ) )
243
  ),
244
+ 'monsterlink' => esc_url_raw( OPTINMONSTER_SHAREABLE_LINK ) . '/c/',
245
+ );
246
+ }
247
+
248
+ if ( $key ) {
249
+ return isset( $this->data_for_js[ $key ] ) ? $this->data_for_js[ $key ] : null;
250
+ }
251
+
252
+ return $this->data_for_js;
253
+ }
254
+
255
+ /**
256
+ * Does the user have any associated OM sites registered?
257
+ *
258
+ * @since 2.2.0
259
+ *
260
+ * @return boolean
261
+ */
262
+ public function has_sites() {
263
+ $site_ids = $this->base->get_site_ids();
264
+
265
+ return ! empty( $site_ids );
266
+ }
267
+
268
+ /**
269
+ * Get campaign options.
270
+ *
271
+ * @since 2.2.0
272
+ *
273
+ * @param boolean $titles_only Whether to include titles only, or separate data as array.
274
+ *
275
+ * @return array Array of campaign options.
276
+ */
277
+ public function get_campaign_options( $titles_only = false ) {
278
+ if ( null === self::$campaigns_list ) {
279
+ $campaigns_list = array(
280
+ 'inline' => array(),
281
+ 'other' => array(),
282
+ );
283
+
284
+ if ( $this->has_sites() ) {
285
+ $campaigns = $this->base->get_campaigns();
286
+
287
+ if ( ! empty( $campaigns ) ) {
288
+ foreach ( $campaigns as $campaign ) {
289
+ $title = mb_strlen( $campaign->post_title, 'UTF-8' ) > 100
290
+ ? mb_substr( $campaign->post_title, 0, 97, 'UTF-8' ) . '...'
291
+ : $campaign->post_title;
292
+ $title .= ' (' . $campaign->post_name . ')';
293
+
294
+ $type = 'inline' === $campaign->campaign_type ? 'inline' : 'other';
295
+
296
+ $campaigns_list[ $type ][ $campaign->post_name ] = array(
297
+ 'title' => $title,
298
+ 'pending' => empty( $campaign->enabled ),
299
+ );
300
+ }
301
+ }
302
+ }
303
+
304
+ self::$campaigns_list = $campaigns_list;
305
+ }
306
+
307
+ if ( $titles_only && ! empty( self::$campaigns_list ) ) {
308
+ $list = array();
309
+ foreach ( self::$campaigns_list as $type => $type_list ) {
310
+ foreach ( $type_list as $campaign_name => $args ) {
311
+ $list[ $type ][ $campaign_name ] = $args['title'] . ( $args['pending'] ? ' [Pending]' : '' );
312
+ }
313
+ }
314
+
315
+ return $list;
316
+ }
317
+
318
+ return self::$campaigns_list;
319
  }
320
 
321
  /**
329
  */
330
  public function get_output( $atts ) {
331
  $is_rest = defined( 'REST_REQUEST' ) && REST_REQUEST;
332
+ $context = ! empty( $_REQUEST['context'] ) ? sanitize_text_field( $_REQUEST['context'] ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
333
  $is_gutes = $is_rest && 'edit' === $context;
334
 
335
  // Our Guten-block handles the embed output manually.
OMAPI/ClassicEditor.php ADDED
@@ -0,0 +1,245 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Classic Editor class.
4
+ *
5
+ * @since 2.3.0
6
+ *
7
+ * @package OMAPI
8
+ * @author Justin Sternberg
9
+ */
10
+
11
+ // Exit if accessed directly.
12
+ if ( ! defined( 'ABSPATH' ) ) {
13
+ exit;
14
+ }
15
+
16
+ /**
17
+ * Classic Editor class.
18
+ *
19
+ * @since 2.3.0
20
+ */
21
+ class OMAPI_ClassicEditor {
22
+
23
+ /**
24
+ * Holds the class object.
25
+ *
26
+ * @since 2.3.0
27
+ *
28
+ * @var object
29
+ */
30
+ public static $instance;
31
+
32
+ /**
33
+ * Path to the file.
34
+ *
35
+ * @since 2.3.0
36
+ *
37
+ * @var string
38
+ */
39
+ public $file = __FILE__;
40
+
41
+ /**
42
+ * Holds the base class object.
43
+ *
44
+ * @since 2.3.0
45
+ *
46
+ * @var object
47
+ */
48
+ public $base;
49
+
50
+ /**
51
+ * Primary class constructor.
52
+ *
53
+ * @since 2.3.0
54
+ */
55
+ public function __construct() {
56
+ // Set our object.
57
+ $this->set();
58
+
59
+ add_action( 'media_buttons', array( $this, 'media_button' ), 15 );
60
+ add_action( 'add_meta_boxes', array( $this, 'settings_meta_box' ) );
61
+ add_action( 'save_post', array( $this, 'save_metabox_data' ), 10, 2 );
62
+ }
63
+
64
+ /**
65
+ * Sets our object instance and base class instance.
66
+ *
67
+ * @since 2.3.0
68
+ */
69
+ public function set() {
70
+ self::$instance = $this;
71
+ $this->base = OMAPI::get_instance();
72
+ }
73
+
74
+ /**
75
+ * Allow easy shortcode insertion via a custom media button.
76
+ *
77
+ * @since 2.3.0
78
+ *
79
+ * @param string $editor_id Unique editor identifier, e.g. 'content'.
80
+ */
81
+ public function media_button( $editor_id ) {
82
+
83
+ if ( ! $this->base->can_access( 'campaign_media_button' ) ) {
84
+ return;
85
+ }
86
+
87
+ // Provide the ability to conditionally disable the button, so it can be
88
+ // disabled for custom fields or front-end use such as bbPress. We default
89
+ // to only showing within the post editor page.
90
+ if ( ! apply_filters( 'optin_monster_display_media_button', $this->is_post_editor_page(), $editor_id ) ) {
91
+ return;
92
+ }
93
+
94
+ // Setup the icon.
95
+ $icon = '<span class="wp-media-buttons-icon optin-monster-menu-icon">' . $this->base->menu->icon_svg( 'currentColor', false ) . '</span>';
96
+
97
+ printf(
98
+ '<button type="button" class="button optin-monster-insert-campaign-button" data-editor="%s" title="%s">%s %s</button>',
99
+ esc_attr( $editor_id ),
100
+ esc_attr__( 'Add OptinMonster', 'optin-monster-api' ),
101
+ $icon, // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
102
+ esc_html__( 'Add OptinMonster', 'optin-monster-api' )
103
+ );
104
+
105
+ // If we have made it this far then load the JS.
106
+ $handle = $this->base->plugin_slug . '-editor';
107
+ wp_enqueue_script(
108
+ $handle,
109
+ $this->base->url . 'assets/dist/js/editor.min.js',
110
+ array( 'jquery' ),
111
+ $this->base->asset_version(),
112
+ true
113
+ );
114
+
115
+ OMAPI_Utils::add_inline_script(
116
+ $handle,
117
+ 'OMAPI_Editor',
118
+ array(
119
+ 'monsterlink' => esc_url_raw( OPTINMONSTER_SHAREABLE_LINK ) . '/c/',
120
+ )
121
+ );
122
+
123
+ add_action( 'admin_footer', array( $this, 'shortcode_modal' ) );
124
+ }
125
+
126
+ /**
127
+ * Check if we are on the post editor admin page.
128
+ *
129
+ * @since 2.3.0
130
+ *
131
+ * @returns boolean True if it is post editor admin page.
132
+ */
133
+ public function is_post_editor_page() {
134
+
135
+ if ( ! is_admin() ) {
136
+ return false;
137
+ }
138
+
139
+ // get_current_screen() is loaded after 'admin_init' hook and may not exist yet.
140
+ if ( ! function_exists( 'get_current_screen' ) ) {
141
+ return false;
142
+ }
143
+
144
+ $screen = get_current_screen();
145
+
146
+ return null !== $screen && 'edit' === $screen->parent_base;
147
+ }
148
+
149
+ /**
150
+ * Modal window for inserting the optin-monster shortcode into TinyMCE.
151
+ *
152
+ * Thickbox is old and busted so we don't use that. Creating a custom view in
153
+ * Backbone would make me pull my hair out. So instead we offer a small clean
154
+ * modal that is based off of the WordPress insert link modal.
155
+ *
156
+ * @since 2.3.0
157
+ */
158
+ public function shortcode_modal() {
159
+ $campaigns = $this->base->blocks->get_campaign_options( true );
160
+ $campaigns['inline'] = ! empty( $campaigns['inline'] )
161
+ ? array_merge( array( '' => esc_html__( 'Select Campaign...', 'optin-monster-api' ) ), $campaigns['inline'] )
162
+ : array();
163
+
164
+ $campaigns['other'] = ! empty( $campaigns['other'] )
165
+ ? array_merge( array( '' => esc_html__( 'Select Campaign...', 'optin-monster-api' ) ), $campaigns['other'] )
166
+ : array();
167
+
168
+ $this->base->output_view(
169
+ 'shortcode-modal.php',
170
+ array(
171
+ 'templatesUri' => $this->base->blocks->get_data_for_js( 'templatesUri' ),
172
+ 'campaigns' => $campaigns,
173
+ )
174
+ );
175
+ $this->base->output_min_css( 'shortcode-modal-css.php' );
176
+ }
177
+
178
+ /**
179
+ * Register the global OptinMonster Settings metabox.
180
+ *
181
+ * @since 2.3.0
182
+ */
183
+ public function settings_meta_box() {
184
+ $types = array_values( get_post_types( array( 'public' => true ) ) );
185
+ add_meta_box(
186
+ 'om-global-post-settings',
187
+ esc_html__( 'OptinMonster Settings', 'optin-monster-api' ),
188
+ array( $this, 'settings_meta_box_output' ),
189
+ $types,
190
+ 'side',
191
+ 'default',
192
+ array( '__back_compat_meta_box' => true )
193
+ );
194
+ }
195
+
196
+ /**
197
+ * Output the markup for the global OptinMonster Settings metabox.
198
+ *
199
+ * @since 2.3.0
200
+ *
201
+ * @param WP_Post $post The post object.
202
+ */
203
+ public function settings_meta_box_output( $post ) {
204
+ $disabled = get_post_meta( $post->ID, 'om_disable_all_campaigns', true );
205
+ wp_nonce_field( 'om_disable_all_campaigns', 'om_disable_all_campaigns_nonce' );
206
+ ?>
207
+ <p>
208
+ <label for="om_disable_all_campaigns">
209
+ <input class="widefat" type="checkbox" <?php checked( ! empty( $disabled ) ); ?> name="om_disable_all_campaigns" id="om_disable_all_campaigns" value="1" />&nbsp;
210
+ <?php esc_html_e( 'Disable all OptinMonster campaigns.', 'optin-monster-api' ); ?>
211
+ </label>
212
+ </p>
213
+ <?php
214
+ }
215
+
216
+ /**
217
+ * Save the global OptinMonster settings.
218
+ *
219
+ * @since 2.3.0
220
+ *
221
+ * @param int $post_id Post Id.
222
+ * @param WP_Post $post Post object.
223
+ */
224
+ public function save_metabox_data( $post_id, $post ) {
225
+ if (
226
+ empty( $_POST['om_disable_all_campaigns_nonce'] )
227
+ || ! wp_verify_nonce( $_POST['om_disable_all_campaigns_nonce'], 'om_disable_all_campaigns' )
228
+ || empty( $post->post_type )
229
+ ) {
230
+ return;
231
+ }
232
+
233
+ $type = get_post_type_object( $post->post_type );
234
+ if (
235
+ empty( $type->cap->edit_post )
236
+ || ! current_user_can( $type->cap->edit_post, $post_id )
237
+ ) {
238
+ return;
239
+ }
240
+
241
+ $disabled = ! empty( $_POST['om_disable_all_campaigns'] );
242
+ update_post_meta( $post_id, 'om_disable_all_campaigns', $disabled );
243
+ }
244
+
245
+ }
OMAPI/ConstantContact.php CHANGED
@@ -157,8 +157,8 @@ class OMAPI_ConstantContact {
157
  return;
158
  }
159
 
160
- $connect = $this->base->menu->get_onboarding_link();
161
- $learn_more = $this->base->menu->admin_page_url( array( 'page' => 'optin-monster-constant-contact' ) );
162
 
163
  // Output the notice message.
164
  ?>
157
  return;
158
  }
159
 
160
+ $connect = OMAPI_Urls::onboarding();
161
+ $learn_more = OMAPI_Urls::admin( array( 'page' => 'optin-monster-constant-contact' ) );
162
 
163
  // Output the notice message.
164
  ?>
OMAPI/Debug.php ADDED
@@ -0,0 +1,156 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Output class.
4
+ *
5
+ * @since 2.6.0
6
+ *
7
+ * @package OMAPI
8
+ * @author Justin Sternberg
9
+ */
10
+
11
+ // Exit if accessed directly.
12
+ if ( ! defined( 'ABSPATH' ) ) {
13
+ exit;
14
+ }
15
+
16
+ /**
17
+ * Output class.
18
+ *
19
+ * @since 2.6.0
20
+ */
21
+ class OMAPI_Debug {
22
+
23
+ /**
24
+ * Check if rules debug can be output.
25
+ *
26
+ * @since 2.0.0
27
+ *
28
+ * @return bool
29
+ */
30
+ public static function can_output_debug() {
31
+ $rules_debug = ! empty( $_GET['omwpdebug'] ) ? $_GET['omwpdebug'] : '';
32
+
33
+ if ( $rules_debug ) {
34
+ $omapi = OMAPI::get_instance();
35
+ $disable = 'off' === $rules_debug;
36
+ $decoded = base64_decode( base64_decode( $rules_debug ) );
37
+ $debug_enabled = $omapi->get_option( 'api', 'omwpdebug' );
38
+ $creds = $omapi->get_api_credentials();
39
+ if (
40
+ ! empty( $creds['apikey'] )
41
+ && ( $decoded === $creds['apikey'] || $disable )
42
+ ) {
43
+
44
+ $option = $omapi->get_option();
45
+
46
+ if ( $disable ) {
47
+ unset( $option['api']['omwpdebug'] );
48
+ $debug_enabled = false;
49
+ } else {
50
+ $option['api']['omwpdebug'] = true;
51
+ $debug_enabled = true;
52
+ }
53
+ update_option( 'optin_monster_api', $option );
54
+ }
55
+
56
+ $rules_debug = $debug_enabled || is_user_logged_in() && $omapi->can_access( 'rules_debug' );
57
+ }
58
+
59
+ // If query var is set and user can manage OM, output debug data.
60
+ return apply_filters( 'optin_monster_api_should_output_rules_debug', ! empty( $rules_debug ) );
61
+ }
62
+
63
+ /**
64
+ * Outputs general debug rule data.
65
+ *
66
+ * Borrowed heavily from Query Monitor plugin.
67
+ *
68
+ * @see https://github.com/johnbillion/query-monitor/blob/develop/collectors/conditionals.php#L25-L100
69
+ *
70
+ * @since 2.6.0
71
+ *
72
+ * @return void
73
+ */
74
+ public static function output_general() {
75
+ $results = array();
76
+
77
+ $post_types = array_keys( get_post_types( array( 'public' => true ), 'names' ) );
78
+ foreach ( $post_types as $post_type ) {
79
+ $results[ is_singular( $post_type ) ? 'TRUE' : 'FALSE' ][] = "is_singular('{$post_type}')";
80
+ }
81
+
82
+ $conditionals = array(
83
+ 'is_404',
84
+ 'is_admin',
85
+ 'is_archive',
86
+ 'is_attachment',
87
+ 'is_author',
88
+ 'is_blog_admin',
89
+ 'is_category',
90
+ 'is_comment_feed',
91
+ 'is_customize_preview',
92
+ 'is_date',
93
+ 'is_day',
94
+ 'is_embed',
95
+ 'is_favicon',
96
+ 'is_feed',
97
+ 'is_front_page',
98
+ 'is_home',
99
+ 'is_main_network',
100
+ 'is_main_site',
101
+ 'is_month',
102
+ 'is_network_admin',
103
+ 'is_page',
104
+ 'is_page_template',
105
+ 'is_paged',
106
+ 'is_post_type_archive',
107
+ 'is_preview',
108
+ 'is_privacy_policy',
109
+ 'is_robots',
110
+ 'is_rtl',
111
+ 'is_search',
112
+ 'is_single',
113
+ 'is_singular',
114
+ 'is_ssl',
115
+ 'is_sticky',
116
+ 'is_tag',
117
+ 'is_tax',
118
+ 'is_time',
119
+ 'is_trackback',
120
+ 'is_user_admin',
121
+ 'is_year',
122
+ );
123
+
124
+ foreach ( $conditionals as $conditional ) {
125
+ if ( ! function_exists( $conditional ) ) {
126
+ $results['N/A'][] = $conditional;
127
+ break;
128
+ }
129
+
130
+ // Special case for is_sticky to prevent PHP notices
131
+ $id = null;
132
+ if ( ( 'is_sticky' === $conditional ) && ! get_post( $id ) ) {
133
+ $results['FALSE'][] = $conditional;
134
+ break;
135
+ }
136
+
137
+ // Special case for multisite $conditionals to prevent them from
138
+ // being annoying on single site installations
139
+ if ( ! is_multisite() && in_array( $conditional, array( 'is_main_network', 'is_main_site' ), true ) ) {
140
+ $results['N/A'][] = $conditional;
141
+ break;
142
+ }
143
+
144
+ // Default case.
145
+ $results[ call_user_func( $conditional ) ? 'TRUE' : 'FALSE' ][] = $conditional;
146
+ }
147
+
148
+ $results[ OMAPI_Utils::is_front_or_search() ? 'TRUE' : 'FALSE' ][] = 'is_front_or_search';
149
+
150
+ sort( $results['FALSE'] );
151
+ sort( $results['TRUE'] );
152
+
153
+ echo '<xmp style="padding-top:15px;border-top:10px double red;" class="_om-optin">$conditionals: ' . print_r( $results, true ) . '</xmp>';
154
+ }
155
+
156
+ }
OMAPI/Elementor.php ADDED
@@ -0,0 +1,185 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Elementor class.
4
+ *
5
+ * @since 2.2.0
6
+ *
7
+ * @package OMAPI
8
+ * @author Justin Sternberg
9
+ */
10
+
11
+ // Exit if accessed directly.
12
+ if ( ! defined( 'ABSPATH' ) ) {
13
+ exit;
14
+ }
15
+
16
+ /**
17
+ * The Elementor class.
18
+ *
19
+ * @since 2.2.0
20
+ */
21
+ class OMAPI_Elementor {
22
+
23
+ /**
24
+ * Holds the class object.
25
+ *
26
+ * @since 1.7.0
27
+ *
28
+ * @var object
29
+ */
30
+ public static $instance;
31
+
32
+ /**
33
+ * Path to the file.
34
+ *
35
+ * @since 1.7.0
36
+ *
37
+ * @var string
38
+ */
39
+ public $file = __FILE__;
40
+
41
+ /**
42
+ * Holds the base class object.
43
+ *
44
+ * @since 1.7.0
45
+ *
46
+ * @var object
47
+ */
48
+ public $base;
49
+
50
+ /**
51
+ * Primary class constructor.
52
+ *
53
+ * @since 1.7.0
54
+ */
55
+ public function __construct() {
56
+
57
+ // Set our object.
58
+ $this->set();
59
+
60
+ // Skip if Elementor is not available.
61
+ if ( ! class_exists( '\Elementor\Plugin' ) ) {
62
+ return;
63
+ }
64
+
65
+ add_action( 'elementor/editor/after_enqueue_styles', array( $this, 'editor_assets' ) );
66
+ add_action( 'elementor/widgets/widgets_registered', array( $this, 'register_widget' ), 999 );
67
+ add_action( 'optin_monster_should_set_campaigns_as_preview', array( $this, 'maybe_set_campaigns_as_preview' ) );
68
+ add_action( 'optin_monster_display_media_button', array( $this, 'maybe_show_campaign_button' ), 10, 2 );
69
+ }
70
+
71
+ /**
72
+ * Sets our object instance and base class instance.
73
+ *
74
+ * @since 1.7.0
75
+ */
76
+ public function set() {
77
+ self::$instance = $this;
78
+ $this->base = OMAPI::get_instance();
79
+ }
80
+
81
+ /**
82
+ * Load an integration css in the elementor document.
83
+ *
84
+ * @since 2.2.0
85
+ */
86
+ public function editor_assets() {
87
+ if ( empty( $_GET['action'] ) || 'elementor' !== $_GET['action'] ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
88
+ return;
89
+ }
90
+
91
+ $css_handle = $this->base->plugin_slug . '-elementor-admin';
92
+ wp_enqueue_style(
93
+ $css_handle,
94
+ $this->base->url . 'assets/dist/css/elementor-admin.min.css',
95
+ array(),
96
+ $this->base->asset_version()
97
+ );
98
+
99
+ $this->maybe_enqueue_dark_mode( $css_handle );
100
+ }
101
+
102
+ /**
103
+ * Handle enqueueing the dark-mode css. Will be conditionally displayed based on the UI setting.
104
+ *
105
+ * We have to do this until Elementor has better handling for dark-mode via a body class
106
+ *
107
+ * @see https://github.com/elementor/elementor/issues/13419
108
+ *
109
+ * @since 2.2.0
110
+ *
111
+ * @param string $css_handle Non-dark mode handle.
112
+ *
113
+ * @return bool|string
114
+ */
115
+ protected function maybe_enqueue_dark_mode( $css_handle ) {
116
+
117
+ $ui_theme = \Elementor\Core\Settings\Manager::get_settings_managers( 'editorPreferences' )->get_model()->get_settings( 'ui_theme' );
118
+
119
+ if ( 'light' === $ui_theme ) {
120
+ return false;
121
+ }
122
+
123
+ $ui_theme_media_queries = 'auto' === $ui_theme
124
+ ? '(prefers-color-scheme: dark)'
125
+ : 'all';
126
+
127
+ wp_enqueue_style(
128
+ $css_handle . '-dark-mode',
129
+ $this->base->url . 'assets/dist/css/elementor-admin-dark.min.css',
130
+ array( $css_handle ),
131
+ $this->base->asset_version(),
132
+ $ui_theme_media_queries
133
+ );
134
+ }
135
+
136
+ /**
137
+ * Register WPForms Widget.
138
+ *
139
+ * @since 2.2.0
140
+ *
141
+ * @param \Elementor\Widgets_Manager $widget_manager Elementor widget manager object.
142
+ */
143
+ public function register_widget( $widget_manager ) {
144
+ $widget_manager->register_widget_type( new OMAPI_Elementor_Widget() );
145
+
146
+ // We need to override the button widget with our extended version.
147
+ $widget_manager->register_widget_type( new OMAPI_Elementor_ButtonWidget() );
148
+ }
149
+
150
+ /**
151
+ * Set the preview flag if in the elementor preview mode.
152
+ *
153
+ * @since 2.2.0
154
+ *
155
+ * @param bool $is_preview Whether we're currently in preview mode.
156
+ *
157
+ * @return bool Whether we're in preview mode.
158
+ */
159
+ public function maybe_set_campaigns_as_preview( $is_preview ) {
160
+ if ( ! $is_preview ) {
161
+ $is_preview = \Elementor\Plugin::instance()->preview->is_preview_mode();
162
+ }
163
+
164
+ return $is_preview;
165
+ }
166
+
167
+ /**
168
+ * Show the editor campaign media button if in the elementor editor.
169
+ *
170
+ * @since 2.3.0
171
+ *
172
+ * @param bool $show Whether button will show.
173
+ *
174
+ * @return bool Whether button will show.
175
+ */
176
+ public function maybe_show_campaign_button( $show, $editor_id ) {
177
+ $edit_mode = \Elementor\Plugin::instance()->editor->is_edit_mode();
178
+ if ( $edit_mode ) {
179
+ $show = true;
180
+ add_action( 'elementor/editor/footer', array( $this->base->classicEditor, 'shortcode_modal' ) );
181
+ }
182
+
183
+ return $show;
184
+ }
185
+ }
OMAPI/Elementor/ButtonWidget.php ADDED
@@ -0,0 +1,126 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Elementor Widget class.
4
+ *
5
+ * @since 2.2.0
6
+ *
7
+ * @package OMAPI
8
+ * @author Justin Sternberg
9
+ */
10
+
11
+ use Elementor\Plugin;
12
+ use Elementor\Widget_Button;
13
+ use Elementor\Controls_Manager;
14
+
15
+ /**
16
+ * OptinMonster widget for Elementor page builder.
17
+ *
18
+ * @since 2.2.0
19
+ */
20
+ class OMAPI_Elementor_ButtonWidget extends Widget_Button {
21
+
22
+ /**
23
+ * Register button widget controls.
24
+ *
25
+ * Adds different input fields to allow the user to change and customize the widget settings.
26
+ *
27
+ * @since 1.0.0
28
+ * @access protected
29
+ */
30
+ protected function _register_controls() { // phpcs:ignore PSR2.Methods.MethodDeclaration.Underscore
31
+ parent::_register_controls();
32
+
33
+ $campaigns = OMAPI::get_instance()->blocks->get_campaign_options( true );
34
+ $campaigns = ! empty( $campaigns['other'] )
35
+ ? array_merge( array( '' => esc_html__( 'Select Campaign...', 'optin-monster-api' ) ), $campaigns['other'] )
36
+ : array( '' => 'N/A' );
37
+
38
+ $this->add_control(
39
+ 'om_button_campaign_id',
40
+ array(
41
+ 'label' => esc_html__( 'Click to Load Popup', 'optin-monster-api' ),
42
+ 'type' => Controls_Manager::SELECT,
43
+ 'frontend_available' => true,
44
+ 'label_block' => true,
45
+ 'options' => $campaigns,
46
+ 'default' => '',
47
+ ),
48
+ array(
49
+ 'position' => array(
50
+ 'type' => 'control',
51
+ 'of' => 'link',
52
+ ),
53
+ )
54
+ );
55
+
56
+ $link_control = $this->get_controls( 'link' );
57
+
58
+ $link_control['condition'] = array(
59
+ 'om_button_campaign_id' => '',
60
+ );
61
+
62
+ $this->add_control(
63
+ 'link',
64
+ $link_control,
65
+ array(
66
+ 'overwrite' => true,
67
+ )
68
+ );
69
+ }
70
+
71
+ /**
72
+ * Render button widget output in the editor.
73
+ *
74
+ * Written as a Backbone JavaScript template and used to generate the live preview.
75
+ *
76
+ * @since 2.9.0
77
+ * @access protected
78
+ */
79
+ protected function content_template() {
80
+ ?>
81
+ <#
82
+ if ( settings.om_button_campaign_id ) {
83
+ settings.link = settings.link || {}
84
+ settings.link.url = '<?php echo esc_url_raw( OPTINMONSTER_SHAREABLE_LINK ); ?>/c/' + settings.om_button_campaign_id + '/';
85
+ settings.link.is_external = 'on';
86
+ settings.link.nofollow = false;
87
+ settings.link.custom_attributes = 'rel|noopener noreferrer';
88
+ }
89
+ #>
90
+ <?php
91
+ return parent::content_template();
92
+ }
93
+
94
+ /**
95
+ * Get active settings.
96
+ *
97
+ * Retrieve the settings from all the active controls.
98
+ *
99
+ * @since 1.4.0
100
+ * @since 2.1.0 Added the `controls` and the `settings` parameters.
101
+ * @access public
102
+ *
103
+ * @param array $settings Optional. Controls settings. Default is null.
104
+ * @param array $controls Optional. An array of controls. Default is null.
105
+ *
106
+ * @return array Active settings.
107
+ */
108
+ public function get_active_settings( $settings = null, $controls = null ) {
109
+ $settings = parent::get_active_settings( $settings, $controls );
110
+
111
+ if ( ! empty( $settings['om_button_campaign_id'] ) ) {
112
+ $settings['link'] = ! empty( $settings['link'] ) ? $settings['link'] : array();
113
+ $settings['link'] = wp_parse_args(
114
+ array(
115
+ 'url' => OPTINMONSTER_SHAREABLE_LINK . '/c/' . sanitize_text_field( $settings['om_button_campaign_id'] ) . '/',
116
+ 'is_external' => 'on',
117
+ 'nofollow' => false,
118
+ 'custom_attributes' => 'rel|noopener noreferrer',
119
+ ),
120
+ $settings['link']
121
+ );
122
+ }
123
+
124
+ return $settings;
125
+ }
126
+ }
OMAPI/Elementor/Widget.php ADDED
@@ -0,0 +1,587 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Elementor Widget class.
4
+ *
5
+ * @since 2.2.0
6
+ *
7
+ * @package OMAPI
8
+ * @author Justin Sternberg
9
+ */
10
+
11
+ use Elementor\Plugin;
12
+ use Elementor\Widget_Base;
13
+ use Elementor\Controls_Manager;
14
+
15
+ /**
16
+ * OptinMonster widget for Elementor page builder.
17
+ *
18
+ * @since 2.2.0
19
+ */
20
+ class OMAPI_Elementor_Widget extends Widget_Base {
21
+
22
+ /**
23
+ * Widget constructor.
24
+ *
25
+ * Initializing the widget class.
26
+ *
27
+ * @see https://code.elementor.com/methods/elementor-widget_base-__construct/
28
+ *
29
+ * @since 2.2.0
30
+ *
31
+ * @throws \Exception If arguments are missing when initializing a full widget
32
+ * instance.
33
+ *
34
+ * @param array $data Widget data. Default is an empty array.
35
+ * @param array|null $args Optional. Widget default arguments. Default is null.
36
+ */
37
+ public function __construct( $data = array(), $args = null ) {
38
+ parent::__construct( $data, $args );
39
+
40
+ // Load the base class object.
41
+ $this->base = OMAPI::get_instance();
42
+ }
43
+
44
+ /**
45
+ * Get widget name.
46
+ *
47
+ * Retrieve shortcode widget name.
48
+ *
49
+ * @see https://code.elementor.com/methods/elementor-controls_stack-get_name/
50
+ *
51
+ * @since 2.2.0
52
+ *
53
+ * @return string Widget name.
54
+ */
55
+ public function get_name() {
56
+ return 'optinmonster';
57
+ }
58
+
59
+ /**
60
+ * Get widget title.
61
+ *
62
+ * Retrieve widget title.
63
+ *
64
+ * @see https://code.elementor.com/methods/elementor-element_base-get_title/
65
+ *
66
+ * @since 2.2.0
67
+ *
68
+ * @return string Widget title.
69
+ */
70
+ public function get_title() {
71
+ return __( 'OptinMonster', 'optin-monster-api' );
72
+ }
73
+
74
+ /**
75
+ * Get widget icon.
76
+ *
77
+ * Retrieve widget icon.
78
+ *
79
+ * @see https://code.elementor.com/methods/elementor-widget_base-get_icon/
80
+ *
81
+ * @since 2.2.0
82
+ *
83
+ * @return string Widget icon.
84
+ */
85
+ public function get_icon() {
86
+ return 'icon-optinmonster';
87
+ }
88
+
89
+ /**
90
+ * Get widget keywords.
91
+ *
92
+ * Retrieve the list of keywords the widget belongs to.
93
+ *
94
+ * @see https://code.elementor.com/methods/elementor-widget_base-get_keywords/
95
+ *
96
+ * @since 2.2.0
97
+ *
98
+ * @return array Widget keywords.
99
+ */
100
+ public function get_keywords() {
101
+ return array(
102
+ 'popup',
103
+ 'form',
104
+ 'forms',
105
+ 'campaign',
106
+ 'email',
107
+ 'conversion',
108
+ 'contact form',
109
+ );
110
+ }
111
+
112
+ /**
113
+ * Get widget categories.
114
+ *
115
+ * @see https://code.elementor.com/methods/elementor-widget_base-get_categories/
116
+ *
117
+ * @since 2.2.0
118
+ *
119
+ * @return array Widget categories.
120
+ */
121
+ public function get_categories() {
122
+ return array(
123
+ 'basic',
124
+ );
125
+ }
126
+
127
+ /**
128
+ * Handle registering elementor editor JS assets.
129
+ *
130
+ * @see https://code.elementor.com/methods/elementor-element_base-get_script_depends/
131
+ *
132
+ * @since 2.2.0
133
+ *
134
+ * @return array
135
+ */
136
+ public function get_script_depends() {
137
+ if ( ! Plugin::instance()->preview->is_preview_mode() ) {
138
+ return array();
139
+ }
140
+
141
+ $script_id = $this->base->plugin_slug . '-elementor';
142
+ wp_register_script(
143
+ $script_id,
144
+ $this->base->url . 'assets/dist/js/elementor.min.js',
145
+ array( 'elementor-frontend', 'jquery' ),
146
+ $this->base->asset_version(),
147
+ true
148
+ );
149
+ OMAPI_Utils::add_inline_script( $script_id, 'OMAPI', $this->base->blocks->get_data_for_js() );
150
+
151
+ return array( $script_id );
152
+ }
153
+
154
+ /**
155
+ * Handle registering elementor editor CSS assets.
156
+ *
157
+ * @see https://code.elementor.com/methods/elementor-element_base-get_style_depends/
158
+ *
159
+ * @since 2.2.0
160
+ *
161
+ * @return array
162
+ */
163
+ public function get_style_depends() {
164
+ $css_handle = $this->base->plugin_slug . '-elementor-frontend';
165
+ wp_register_style(
166
+ $css_handle,
167
+ $this->base->url . 'assets/dist/css/elementor-frontend.min.css',
168
+ array(),
169
+ $this->base->asset_version()
170
+ );
171
+
172
+ return array( $css_handle );
173
+ }
174
+
175
+ /**
176
+ * Register widget controls.
177
+ *
178
+ * Adds different input fields to allow the user to change and customize the widget settings.
179
+ *
180
+ * @see https://code.elementor.com/methods/elementor-controls_stack-_register_controls/
181
+ *
182
+ * @since 2.2.0
183
+ */
184
+ protected function _register_controls() { // phpcs:ignore PSR2.Methods.MethodDeclaration.Underscore
185
+ $this->start_controls_section(
186
+ 'section_om_campaign',
187
+ array(
188
+ 'label' => esc_html__( 'OptinMonster Campaign', 'optin-monster-api' ),
189
+ 'tab' => Controls_Manager::TAB_CONTENT,
190
+ )
191
+ );
192
+
193
+ if ( ! $this->base->blocks->has_sites() ) {
194
+ $this->no_sites_controls();
195
+
196
+ } elseif ( ! $this->has_inline_campaigns() ) {
197
+ $this->no_campaign_controls();
198
+
199
+ } else {
200
+ $this->campaign_controls();
201
+ }
202
+
203
+ $this->end_controls_section();
204
+ }
205
+
206
+ /**
207
+ * Register no-site controls.
208
+ *
209
+ * @since 2.2.0
210
+ */
211
+ protected function no_sites_controls() {
212
+ $i18n = $this->base->blocks->get_data_for_js( 'i18n' );
213
+
214
+ $this->add_control(
215
+ 'add_om_campaign_notice',
216
+ array(
217
+ 'show_label' => false,
218
+ 'type' => Controls_Manager::RAW_HTML,
219
+ 'raw' => '
220
+ <p class="om-elementor-editor-no_sites-help">
221
+ <strong>' . esc_html__( 'You Have Not Connected to OptinMonster', 'optin-monster-api' ) . '</strong>
222
+ <br>
223
+ ' . esc_html__( 'Please create a Free Account or Connect an Existing Account', 'optin-monster-api' ) . '
224
+ </p>
225
+ ',
226
+ 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
227
+ )
228
+ );
229
+
230
+ $this->add_control(
231
+ 'om_create_account',
232
+ array(
233
+ 'show_label' => false,
234
+ 'label_block' => false,
235
+ 'type' => Controls_Manager::BUTTON,
236
+ 'button_type' => 'default',
237
+ 'text' => $i18n['no_sites_button_create_account'],
238
+ 'event' => 'elementorOMAPICreateAccount',
239
+ )
240
+ );
241
+
242
+ $this->add_control(
243
+ 'om_connect_account',
244
+ array(
245
+ 'show_label' => false,
246
+ 'label_block' => false,
247
+ 'type' => Controls_Manager::BUTTON,
248
+ 'button_type' => 'default',
249
+ 'separator' => 'after',
250
+ 'text' => $i18n['no_sites_button_connect_account'],
251
+ 'event' => 'elementorOMAPIConnectAccount',
252
+ )
253
+ );
254
+ }
255
+
256
+ /**
257
+ * Register no-campaign controls.
258
+ *
259
+ * @since 2.2.0
260
+ */
261
+ protected function no_campaign_controls() {
262
+ $this->add_control(
263
+ 'add_om_campaign_notice',
264
+ array(
265
+ 'show_label' => false,
266
+ 'type' => Controls_Manager::RAW_HTML,
267
+ 'raw' => wp_kses(
268
+ '<b>' . __( 'No inline campaigns available!', 'optin-monster-api' ) . '</b>',
269
+ array(
270
+ 'b' => array(),
271
+ )
272
+ ),
273
+ 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
274
+ )
275
+ );
276
+
277
+ $this->add_control(
278
+ 'add_campaign_btn',
279
+ array(
280
+ 'show_label' => false,
281
+ 'label_block' => false,
282
+ 'type' => Controls_Manager::BUTTON,
283
+ 'button_type' => 'default',
284
+ 'separator' => 'after',
285
+ 'text' => '<b>+</b>' . esc_html__( 'Create New Inline Campaign', 'optin-monster-api' ),
286
+ 'event' => 'elementorOMAPIAddInlineBtnClick',
287
+ )
288
+ );
289
+ }
290
+
291
+ /**
292
+ * Register campaign controls.
293
+ *
294
+ * @since 2.2.0
295
+ */
296
+ protected function campaign_controls() {
297
+ $campaigns = $this->base->blocks->get_campaign_options( true );
298
+ $campaigns = array_merge( array( '' => esc_html__( 'Select Campaign...', 'optin-monster-api' ) ), $campaigns['inline'] );
299
+
300
+ $this->add_control(
301
+ 'campaign_id',
302
+ array(
303
+ 'label' => esc_html__( 'Select Campaign', 'optin-monster-api' ),
304
+ 'type' => Controls_Manager::SELECT,
305
+ 'frontend_available' => true,
306
+ 'label_block' => true,
307
+ 'options' => $campaigns,
308
+ 'default' => '',
309
+ )
310
+ );
311
+
312
+ $this->add_control(
313
+ 'followrules',
314
+ array(
315
+ 'label' => esc_html__( 'Use Output Settings', 'optin-monster-api' ),
316
+ 'type' => Controls_Manager::SWITCHER,
317
+ 'label_on' => esc_html__( 'Yes', 'optin-monster-api' ),
318
+ 'label_off' => esc_html__( 'No', 'optin-monster-api' ),
319
+ 'return_value' => 'yes',
320
+ 'condition' => array(
321
+ 'campaign_id!' => '0',
322
+ ),
323
+ )
324
+ );
325
+
326
+ $this->add_control(
327
+ 'edit_campaign',
328
+ array(
329
+ 'show_label' => false,
330
+ 'type' => Controls_Manager::RAW_HTML,
331
+ 'raw' => sprintf(
332
+ wp_kses(
333
+ /* translators: %s - OptinMonster edit link. */
334
+ __( 'Need to make changes? <a href="%1s" class="skip-om-trigger" target="_blank" rel="noopener">Edit the selected campaign.</a>', 'optin-monster-api' ),
335
+ array(
336
+ 'a' => array(
337
+ 'href' => array(),
338
+ 'class' => array(),
339
+ 'target' => array(),
340
+ 'rel' => array(),
341
+ ),
342
+ )
343
+ ),
344
+ esc_url( $this->base->blocks->get_data_for_js( 'editUrl' ) )
345
+ ),
346
+ 'condition' => array(
347
+ 'campaign_id!' => '0',
348
+ ),
349
+ )
350
+ );
351
+
352
+ $this->add_control(
353
+ 'add_campaign_btn',
354
+ array(
355
+ 'show_label' => false,
356
+ 'label_block' => false,
357
+ 'type' => Controls_Manager::BUTTON,
358
+ 'button_type' => 'default',
359
+ 'separator' => 'before',
360
+ 'text' => '<b>+</b>' . esc_html__( 'Create New Inline Campaign', 'optin-monster-api' ),
361
+ 'event' => 'elementorOMAPIAddInlineBtnClick',
362
+ )
363
+ );
364
+ }
365
+
366
+ /**
367
+ * Render widget output.
368
+ *
369
+ * @see https://code.elementor.com/methods/elementor-element_base-render/
370
+ *
371
+ * @since 2.2.0
372
+ */
373
+ protected function render() {
374
+ if ( Plugin::instance()->editor->is_edit_mode() ) {
375
+ $this->render_edit_mode();
376
+ } else {
377
+ $this->render_frontend();
378
+ }
379
+ }
380
+
381
+ /**
382
+ * Get the editing-block render format.
383
+ *
384
+ * @since 2.2.0
385
+ *
386
+ * @return string Format html string.
387
+ */
388
+ protected function get_render_format() {
389
+ return '
390
+ <div class="om-elementor-editor" data-slug="%1$s">
391
+ %2$s
392
+ <div class="om-elementor-holder">
393
+ %3$s
394
+ </div>
395
+ <div class="om-errors" style="display:none;">
396
+ <strong>' . esc_html__( 'OptinMonster Campaign Error:', 'optin-monster-api' ) . '</strong><br><span class="om-error-description"></span>
397
+ </div>
398
+ </div>
399
+ ';
400
+ }
401
+
402
+ /**
403
+ * Get the campaign-selector html.
404
+ *
405
+ * @since 2.2.0
406
+ *
407
+ * @param bool $icon Whether to include Archie icon.
408
+ *
409
+ * @return string Html string.
410
+ */
411
+ protected function get_campaign_select_html( $icon = true ) {
412
+
413
+ $data = $this->base->blocks->get_data_for_js();
414
+
415
+ if ( ! $this->base->blocks->has_sites() ) {
416
+ $guts = '
417
+ <div class="om-elementor-editor-no_sites">
418
+ ' . ( $icon ? '<img src="' . $this->base->url . 'assets/css/images/icons/archie-color-icon.svg">' : '' ) . '
419
+ <p class="om-elementor-editor-no_sites-help">
420
+ <strong>' . esc_html__( 'You Have Not Connected to OptinMonster', 'optin-monster-api' ) . '</strong>
421
+ <br>
422
+ ' . esc_html__( 'Please create a Free Account or Connect an Existing Account', 'optin-monster-api' ) . '
423
+ </p>
424
+ <p class="om-elementor-editor-no_sites-button">
425
+ <a class="om-help-button skip-om-trigger components-button is-primary" href="' . $data['wizardUri'] . '" target="_blank" rel="noopener">
426
+ ' . $data['i18n']['no_sites_button_create_account'] . '
427
+ </a>
428
+ <span>or</span>
429
+ <a class="om-help-button skip-om-trigger components-button is-secondary" href="' . $data['settingsUri'] . '" target="_blank" rel="noopener">
430
+ ' . $data['i18n']['no_sites_button_connect_account'] . '
431
+ </a>
432
+ </p>
433
+ </div>
434
+ ';
435
+ } elseif ( ! $this->has_inline_campaigns() ) {
436
+ $guts = '
437
+ <div class="om-elementor-editor-no_campaigns">
438
+ ' . ( $icon ? '<img src="' . $this->base->url . 'assets/css/images/icons/archie-color-icon.svg">' : '' ) . '
439
+ <p class="om-elementor-editor-no_campaigns-help">
440
+ <strong>' . $data['i18n']['no_campaigns'] . '</strong>
441
+ <br>
442
+ ' . $data['i18n']['no_campaigns_help'] . '
443
+ </p>
444
+ <p class="om-elementor-editor-no_campaigns-button">
445
+ <a class="om-help-button skip-om-trigger components-button om-green omapi-link-arrow-after" href="' . $data['templatesUri'] . '&type=inline" target="_blank" rel="noopener">
446
+ ' . $data['i18n']['create_inline_campaign'] . '
447
+ </a>
448
+ </p>
449
+ <p class="om-elementor-editor-no_campaigns-button-help">
450
+ <a class="om-help-button skip-om-trigger components-button is-secondary" href="https://optinmonster.com/docs/getting-started-optinmonster-wordpress-checklist/?utm_source=plugin&utm_medium=link&utm_campaign=gutenbergblock" target="_blank" rel="noopener">
451
+ ' . esc_html__( 'Need some help? Check out our comprehensive guide.', 'optin-monster-api' ) . '
452
+ </a>
453
+ </p>
454
+ </div>
455
+ ';
456
+ } else {
457
+ $guts = '
458
+ <div class="om-elementor-editor-select-label">
459
+ ' . ( $icon ? '<img src="' . $this->base->url . 'assets/css/images/icons/archie-icon.svg">' : '' ) . '
460
+ OptinMonster
461
+ </div>
462
+ <p>' . esc_html__( 'Select and display your email marketing form or smart call-to-action campaigns from OptinMonster.', 'optin-monster-api' ) . '</p>
463
+ <div class="om-elementor-editor-select-controls">
464
+ <select></select>
465
+ <div class="om-elementor-editor-select-controls-button">
466
+ <a class="om-help-button skip-om-trigger components-button is-secondary" href="' . $data['templatesUri'] . '&type=inline" target="_blank" rel="noopener">
467
+ ' . esc_html__( 'Create a New Inline Campaign', 'optin-monster-api' ) . '
468
+ </a>
469
+ <a class="om-help-button skip-om-trigger components-button is-secondary" href="' . $data['templatesUri'] . '&type=popup" target="_blank" rel="noopener">
470
+ ' . esc_html__( 'Create a New Popup Campaign', 'optin-monster-api' ) . '
471
+ </a>
472
+ </div>
473
+ </div>
474
+ ';
475
+ }
476
+
477
+ return '<div class="om-elementor-editor-select">' . $guts . '</div>';
478
+ }
479
+
480
+ /**
481
+ * Get the campaign holder html.
482
+ *
483
+ * @since 2.2.0
484
+ *
485
+ * @param string $campaign_id Campaign Id string.
486
+ *
487
+ * @return string Html.
488
+ */
489
+ public function get_campaign_holder( $campaign_id ) {
490
+ return sprintf(
491
+ '
492
+ <div id="om-%1$s-holder">
493
+ <div class="om-elementor-editor-holder-loading om-elementor-editor-select-label">
494
+ <img src="' . $this->base->url . 'assets/css/images/icons/archie-icon.svg">
495
+ ' . esc_html__( 'Loading Campaign...', 'optin-monster-api' ) . '
496
+ </div>
497
+ </div>
498
+ ',
499
+ $campaign_id
500
+ );
501
+ }
502
+
503
+ /**
504
+ * Render widget output in edit mode.
505
+ *
506
+ * @since 2.2.0
507
+ */
508
+ protected function render_edit_mode() {
509
+ $campaign_id = esc_attr( $this->get_settings_for_display( 'campaign_id' ) );
510
+
511
+ // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped
512
+ printf(
513
+ $this->get_render_format(),
514
+ $campaign_id,
515
+ ! $campaign_id ? $this->get_campaign_select_html() : '',
516
+ $campaign_id ? $this->get_campaign_holder( $campaign_id ) : ''
517
+ );
518
+ // phpcs:enable
519
+ }
520
+
521
+ /**
522
+ * This method is used by the parent methods to output the backbone/underscore template.
523
+ *
524
+ * @see https://code.elementor.com/methods/elementor-element_base-_content_template/
525
+ *
526
+ * @since 2.2.0
527
+ */
528
+ protected function content_template() {
529
+ // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped
530
+ printf(
531
+ $this->get_render_format(),
532
+ '{{{ settings.campaign_id }}}',
533
+ '<# if ( ! settings.campaign_id ) { #>' . $this->get_campaign_select_html() . '<# } #>',
534
+ '<# if ( settings.campaign_id ) { #>' . $this->get_campaign_holder( '{{{ settings.campaign_id }}}' ) . '<# } #>'
535
+ );
536
+ // phpcs:enable
537
+ }
538
+
539
+ /**
540
+ * Render widget output on the frontend.
541
+ *
542
+ * @since 2.2.0
543
+ */
544
+ protected function render_frontend() {
545
+ echo do_shortcode( $this->get_shortcode_output() );
546
+ }
547
+
548
+ /**
549
+ * Render widget as plain content.
550
+ *
551
+ * @see https://code.elementor.com/methods/elementor-widget_base-render_plain_content/
552
+ *
553
+ * @since 2.2.0
554
+ */
555
+ public function render_plain_content() {
556
+ echo $this->get_shortcode_output(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
557
+ }
558
+
559
+ /**
560
+ * Render shortcode.
561
+ *
562
+ * @since 2.2.0
563
+ *
564
+ * @return string Shortcode
565
+ */
566
+ protected function get_shortcode_output() {
567
+ return sprintf(
568
+ '[optin-monster slug="%1$s"%2$s]',
569
+ sanitize_text_field( $this->get_settings_for_display( 'campaign_id' ) ),
570
+ $this->get_settings_for_display( 'followrules' ) === 'yes' ? ' followrules="true"' : ''
571
+ );
572
+ }
573
+
574
+ /**
575
+ * Does the user have any inline campaigns created?
576
+ *
577
+ * @since 2.2.0
578
+ *
579
+ * @return boolean
580
+ */
581
+ protected function has_inline_campaigns() {
582
+ $campaigns = $this->base->blocks->get_campaign_options();
583
+
584
+ return ! empty( $campaigns['inline'] );
585
+ }
586
+
587
+ }
OMAPI/Inserter.php CHANGED
@@ -54,11 +54,11 @@ class OMAPI_Inserter {
54
  *
55
  * @since 2.0.0
56
  *
57
- * @param string $content The original content.
58
- * @param string $to_insert The content to insert into the original content.
59
  */
60
  public function __construct( $content, $to_insert ) {
61
- $this->content = $content;
62
  $this->to_insert = $to_insert;
63
  }
64
 
@@ -112,7 +112,7 @@ class OMAPI_Inserter {
112
 
113
  foreach ( $paragraphs as $index => $paragraph ) {
114
 
115
- // Only add closing tag to non-empty paragraphs
116
  if ( trim( $paragraph ) ) {
117
 
118
  // Adding closing markup now, rather than at implode, means insertion
@@ -121,7 +121,7 @@ class OMAPI_Inserter {
121
  }
122
 
123
  // + 1 allows for considering the first paragraph as #1, not #0.
124
- if ( $paragraph_number === ( $index + 1 ) ) {
125
 
126
  // We found our paragraph, so append after it.
127
  $paragraphs[ $index ] .= $this->to_insert;
@@ -150,12 +150,13 @@ class OMAPI_Inserter {
150
  // The following splitting into words code is copied from the wp_trim_words function.
151
 
152
  $rawtext = wp_strip_all_tags( $this->content );
 
153
  /*
154
  * translators: If your word count is based on single characters (e.g. East Asian characters),
155
  * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.
156
  * Do not translate into your own language.
157
  */
158
- if ( strpos( _x( 'words', 'Word count type. Do not translate!' ), 'characters' ) === 0 && preg_match( '/^utf\-?8$/i', get_option( 'blog_charset' ) ) ) {
159
  $rawtext = trim( preg_replace( "/[\n\r\t ]+/", ' ', $rawtext ), ' ' );
160
  preg_match_all( '/./u', $rawtext, $words_array );
161
  $words_array = array_slice( $words_array[0], 0, $word_number + 1 );
@@ -181,7 +182,7 @@ class OMAPI_Inserter {
181
  $rest = array_pop( $words_array );
182
 
183
  foreach ( $words_array as $word ) {
184
- if ( false !== strpos( $word, $after_word ) ) {
185
  $number_occurrences++;
186
  }
187
  }
@@ -191,7 +192,7 @@ class OMAPI_Inserter {
191
  // We need to loop through the number of occurrences...
192
  while ( $number_occurrences-- ) {
193
 
194
- // Then find the word in the content to replace,
195
  $pos = strpos( $to_replace, $after_word ) + strlen( $after_word );
196
 
197
  // And split that content where the word was found...
@@ -216,7 +217,7 @@ class OMAPI_Inserter {
216
  *
217
  * @since 2.0.0
218
  *
219
- * @param string $content Content to replace/find.
220
  *
221
  * @return string Updated content.
222
  */
@@ -241,7 +242,7 @@ class OMAPI_Inserter {
241
  }
242
 
243
  // Ok... we found a tag that we should scoot behind.
244
- $split = substr( $content, $closing_pos + strlen( $closing_tag ) );
245
  $content = substr( $split, strpos( $split, '>' ) + 1 );
246
  }
247
 
54
  *
55
  * @since 2.0.0
56
  *
57
+ * @param string $content The original content.
58
+ * @param string $to_insert The content to insert into the original content.
59
  */
60
  public function __construct( $content, $to_insert ) {
61
+ $this->content = $content;
62
  $this->to_insert = $to_insert;
63
  }
64
 
112
 
113
  foreach ( $paragraphs as $index => $paragraph ) {
114
 
115
+ // Only add closing tag to non-empty paragraphs.
116
  if ( trim( $paragraph ) ) {
117
 
118
  // Adding closing markup now, rather than at implode, means insertion
121
  }
122
 
123
  // + 1 allows for considering the first paragraph as #1, not #0.
124
+ if ( ( $index + 1 ) === $paragraph_number ) {
125
 
126
  // We found our paragraph, so append after it.
127
  $paragraphs[ $index ] .= $this->to_insert;
150
  // The following splitting into words code is copied from the wp_trim_words function.
151
 
152
  $rawtext = wp_strip_all_tags( $this->content );
153
+
154
  /*
155
  * translators: If your word count is based on single characters (e.g. East Asian characters),
156
  * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.
157
  * Do not translate into your own language.
158
  */
159
+ if ( strpos( _x( 'words', 'Word count type. Do not translate!', 'optin-monster-api' ), 'characters' ) === 0 && preg_match( '/^utf\-?8$/i', get_option( 'blog_charset' ) ) ) {
160
  $rawtext = trim( preg_replace( "/[\n\r\t ]+/", ' ', $rawtext ), ' ' );
161
  preg_match_all( '/./u', $rawtext, $words_array );
162
  $words_array = array_slice( $words_array[0], 0, $word_number + 1 );
182
  $rest = array_pop( $words_array );
183
 
184
  foreach ( $words_array as $word ) {
185
+ if ( ! empty( $after_word ) && false !== strpos( $word, $after_word ) ) {
186
  $number_occurrences++;
187
  }
188
  }
192
  // We need to loop through the number of occurrences...
193
  while ( $number_occurrences-- ) {
194
 
195
+ // Then find the word in the content to replace...
196
  $pos = strpos( $to_replace, $after_word ) + strlen( $after_word );
197
 
198
  // And split that content where the word was found...
217
  *
218
  * @since 2.0.0
219
  *
220
+ * @param string $content Content to replace/find.
221
  *
222
  * @return string Updated content.
223
  */
242
  }
243
 
244
  // Ok... we found a tag that we should scoot behind.
245
+ $split = substr( $content, $closing_pos + strlen( $closing_tag ) );
246
  $content = substr( $split, strpos( $split, '>' ) + 1 );
247
  }
248
 
OMAPI/InstallSkin.php CHANGED
@@ -1,4 +1,17 @@
1
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
  /**
4
  * WordPress class extended for on-the-fly addon installations.
1
  <?php
2
+ /**
3
+ * Install Skin class.
4
+ *
5
+ * @since 1.9.10
6
+ *
7
+ * @package OMAPI
8
+ * @author Justin Sternberg
9
+ */
10
+
11
+ // Exit if accessed directly.
12
+ if ( ! defined( 'ABSPATH' ) ) {
13
+ exit;
14
+ }
15
 
16
  /**
17
  * WordPress class extended for on-the-fly addon installations.
OMAPI/InstallSkinCompat.php CHANGED
@@ -1,4 +1,17 @@
1
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
  /**
4
  * WordPress class extended for on-the-fly addon installations.
1
  <?php
2
+ /**
3
+ * Install Skin Compatibility class.
4
+ *
5
+ * @since 1.9.10
6
+ *
7
+ * @package OMAPI
8
+ * @author Justin Sternberg
9
+ */
10
+
11
+ // Exit if accessed directly.
12
+ if ( ! defined( 'ABSPATH' ) ) {
13
+ exit;
14
+ }
15
 
16
  /**
17
  * WordPress class extended for on-the-fly addon installations.
OMAPI/MailPoet.php CHANGED
@@ -41,18 +41,18 @@ class OMAPI_MailPoet {
41
  public static function get_lists() {
42
 
43
  // Prepare variables.
44
- $mailpoet = null;
45
- $lists = array();
46
- $ret = array();
47
- $listIdKey = 'id';
48
 
49
  // Get lists. Check for MailPoet 3 first. Default to legacy.
50
  if ( class_exists( '\\MailPoet\\Config\\Initializer' ) ) {
51
  $lists = \MailPoet\API\API::MP( 'v1' )->getLists();
52
  } else {
53
- $mailpoet = WYSIJA::get( 'list', 'model' );
54
- $lists = $mailpoet->get( array( 'name', 'list_id' ), array( 'is_enabled' => 1 ) );
55
- $listIdKey = 'list_id';
56
  }
57
 
58
  // Add default option.
@@ -65,7 +65,7 @@ class OMAPI_MailPoet {
65
  foreach ( (array) $lists as $list ) {
66
  $ret[] = array(
67
  'name' => $list['name'],
68
- 'value' => $list[ $listIdKey ],
69
  );
70
  }
71
 
@@ -161,7 +161,7 @@ class OMAPI_MailPoet {
161
  // Save the email address.
162
  $user['email'] = $email;
163
 
164
- // Save the phone number
165
  if ( ! empty( $phone_field ) && ! empty( $data['phone'] ) ) {
166
  $user[ $phone_field ] = stripslashes( $data['phone'] );
167
  }
@@ -202,8 +202,8 @@ class OMAPI_MailPoet {
202
  return wp_send_json_error( $e->getMessage(), 400 );
203
  }
204
  } else {
205
- $userHelper = WYSIJA::get( 'user', 'helper' );
206
- $userHelper->addSubscriber( $data );
207
  }
208
 
209
  // Send back a response.
41
  public static function get_lists() {
42
 
43
  // Prepare variables.
44
+ $mailpoet = null;
45
+ $lists = array();
46
+ $ret = array();
47
+ $list_id_key = 'id';
48
 
49
  // Get lists. Check for MailPoet 3 first. Default to legacy.
50
  if ( class_exists( '\\MailPoet\\Config\\Initializer' ) ) {
51
  $lists = \MailPoet\API\API::MP( 'v1' )->getLists();
52
  } else {
53
+ $mailpoet = WYSIJA::get( 'list', 'model' );
54
+ $lists = $mailpoet->get( array( 'name', 'list_id' ), array( 'is_enabled' => 1 ) );
55
+ $list_id_key = 'list_id';
56
  }
57
 
58
  // Add default option.
65
  foreach ( (array) $lists as $list ) {
66
  $ret[] = array(
67
  'name' => $list['name'],
68
+ 'value' => $list[ $list_id_key ],
69
  );
70
  }
71
 
161
  // Save the email address.
162
  $user['email'] = $email;
163
 
164
+ // Save the phone number.
165
  if ( ! empty( $phone_field ) && ! empty( $data['phone'] ) ) {
166
  $user[ $phone_field ] = stripslashes( $data['phone'] );
167
  }
202
  return wp_send_json_error( $e->getMessage(), 400 );
203
  }
204
  } else {
205
+ $user_helper = WYSIJA::get( 'user', 'helper' );
206
+ $user_helper->addSubscriber( $data );
207
  }
208
 
209
  // Send back a response.
OMAPI/Menu.php CHANGED
@@ -93,20 +93,23 @@ class OMAPI_Menu {
93
  *
94
  * @since 1.0.0
95
  *
96
- * @param bool $isTesting
97
  */
98
- public function __construct( $isTesting = false ) {
99
- if ( ! $isTesting ) {
100
  // Set our object.
101
  $this->set();
102
 
103
  // Load actions and filters.
104
  add_action( 'admin_menu', array( $this, 'menu' ) );
105
  add_action( 'admin_menu', array( $this, 'after_menu_registration' ), 999 );
106
- // Load helper body classes
107
  add_filter( 'admin_body_class', array( $this, 'admin_body_classes' ) );
108
 
109
  add_filter( 'plugin_action_links_' . plugin_basename( OMAPI_FILE ), array( $this, 'output_plugin_links' ) );
 
 
 
110
  }
111
  }
112
 
@@ -144,11 +147,11 @@ class OMAPI_Menu {
144
 
145
  // Just add a placeholder secondary page.
146
  $this->hooks[] = add_submenu_page(
147
- self::SLUG, // parent slug
148
- __( 'Dashboard', 'optin-monster-api' ), // page title,
149
- __( 'Dashboard', 'optin-monster-api' ),
150
- $this->base->access_capability( self::SLUG ), // cap
151
- self::SLUG, // slug
152
  array( $this->pages, 'render_app_loading_page' )
153
  );
154
 
@@ -177,11 +180,11 @@ class OMAPI_Menu {
177
  * @return string Archie SVG.
178
  */
179
  public function icon_svg( $fill = '#a0a5aa', $return_encoded = true ) {
180
- $icon = file_get_contents( plugin_dir_path( OMAPI_FILE ) . '/assets/images/archie-icon.svg' );
181
  $icon = str_replace( 'fill="currentColor"', 'fill="' . $fill . '"', $icon );
182
 
183
  if ( $return_encoded ) {
184
- $icon = 'data:image/svg+xml;base64,' . base64_encode( $icon );
185
  }
186
 
187
  return $icon;
@@ -200,16 +203,16 @@ class OMAPI_Menu {
200
  // Make sure the about page is still the last page.
201
  if ( isset( $submenu[ self::SLUG ] ) ) {
202
  $after = array();
203
- $at_end = array( 'optin-monster-about' );
204
  foreach ( $submenu[ self::SLUG ] as $key => $menu ) {
205
- if ( isset( $menu[2] ) && in_array( $menu[2], $at_end ) ) {
206
  $after[] = $menu;
207
  unset( $submenu[ self::SLUG ][ $key ] );
208
  }
209
  }
210
- $submenu[ self::SLUG ] = array_values( $submenu[ self::SLUG ] );
211
  foreach ( $after as $menu ) {
212
- $submenu[ self::SLUG ][] = $menu;
213
  }
214
  }
215
 
@@ -234,11 +237,11 @@ class OMAPI_Menu {
234
 
235
  $new_links = $this->base->get_api_credentials()
236
  ? array(
237
- sprintf( '<a href="%s">%s</a>', $this->get_link( 'campaigns' ), __( 'Campaigns', 'optin-monster-api' ) ),
238
- sprintf( '<a href="%s">%s</a>', $this->get_link( 'settings' ), __( 'Settings', 'optin-monster-api' ) ),
239
  )
240
  : array(
241
- sprintf( '<a href="%s">%s</a>', $this->get_onboarding_link(), __( 'Get Started', 'optin-monster-api' ) ),
242
  );
243
 
244
  $links = array_merge( $new_links, $links );
@@ -246,12 +249,46 @@ class OMAPI_Menu {
246
  return $links;
247
  }
248
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
249
  /**
250
  * Adds om admin body classes
251
  *
252
  * @since 1.3.4
253
  *
254
- * @param array $classes
255
  *
256
  * @return array
257
  */
@@ -290,7 +327,7 @@ class OMAPI_Menu {
290
  return true;
291
  }
292
  } else {
293
- $page = isset( $_GET['page'] ) ? $_GET['page'] : '';
294
  }
295
 
296
  return false !== strpos( $page, 'optin-monster' );
@@ -350,7 +387,9 @@ class OMAPI_Menu {
350
  }
351
 
352
  /**
353
- * Deque specific scripts that cause conflicts on settings page
 
 
354
  *
355
  * @since 1.1.5.9
356
  */
@@ -359,9 +398,20 @@ class OMAPI_Menu {
359
 
360
  // Dequeue scripts that might cause our settings not to work properly.
361
  wp_dequeue_script( 'optimizely_config' );
 
 
362
  }
363
  }
364
 
 
 
 
 
 
 
 
 
 
365
  /**
366
  * Customizes the footer text on the OptinMonster settings page.
367
  *
@@ -371,8 +421,9 @@ class OMAPI_Menu {
371
  * @return string $text Amended admin footer text.
372
  */
373
  public function footer( $text ) {
374
- $url = 'https://wordpress.org/support/plugin/optinmonster/reviews?filter=5#new-post';
375
- $text = sprintf( __( 'Please rate <strong>OptinMonster</strong> <a href="%1$s" target="_blank" rel="noopener">&#9733;&#9733;&#9733;&#9733;&#9733;</a> on <a href="%2$s" target="_blank" rel="noopener noreferrer">WordPress.org</a> to help us spread the word. Thank you from the OptinMonster team!', 'optin-monster-api' ), $url, $url );
 
376
 
377
  return $text;
378
  }
@@ -386,8 +437,8 @@ class OMAPI_Menu {
386
  $path = 'vue/dist';
387
  $dir = trailingslashit( dirname( $this->base->file ) ) . $path;
388
  $loader = new OMAPI_AssetLoader( $dir );
389
- $logo = '#';
390
- $help = '#';
391
 
392
  $list = $loader->getAssetsList( $dir );
393
  foreach ( $list as $item ) {
@@ -417,114 +468,17 @@ class OMAPI_Menu {
417
  return self::SLUG;
418
  }
419
 
420
- /**
421
- * Get the settings url.
422
- *
423
- * @param array $args Array of query args.
424
- *
425
- * @return string
426
- */
427
- public function get_settings_link() {
428
- return $this->get_link( 'settings' );
429
- }
430
-
431
- /**
432
- * Get a link to an OM admin page.
433
- *
434
- * @since 2.0.0
435
- *
436
- * @param string $page Page shortened slug.
437
- *
438
- * @return string
439
- */
440
- public function get_link( $page ) {
441
- return $this->admin_page_url( array(
442
- 'page' => 'optin-monster-' . $page,
443
- ) );
444
- }
445
-
446
- /**
447
- * Get the OM wizard url.
448
- *
449
- * @since 2.0.0
450
- *
451
- * @return string
452
- */
453
- public function get_wizard_link() {
454
- return $this->get_link( 'onboarding-wizard' );
455
- }
456
-
457
- /**
458
- * Get the campaign output settings edit url.
459
- *
460
- * @since 2.0.0
461
- *
462
- * @param string $campaign_slug The campaign slug to edit.
463
- *
464
- * @return string
465
- */
466
- public function edit_output_settings( $campaign_slug ) {
467
- return $this->admin_page_url( array(
468
- 'page' => 'optin-monster-campaigns',
469
- 'campaignId' => $campaign_slug,
470
- ) );
471
- }
472
-
473
- /**
474
- * Get the OM onboarding dashboard url.
475
- *
476
- * @since 2.0.0
477
- *
478
- * @return string
479
- */
480
- public function get_onboarding_link() {
481
- return $this->admin_page_url( array(
482
- 'page' => self::SLUG,
483
- 'info' => true,
484
- ) );
485
- }
486
-
487
- /**
488
- * Get the contextual OM dashboard url.
489
- *
490
- * @since 1.9.10
491
- *
492
- * @param array $args Array of query args.
493
- *
494
- * @return string
495
- */
496
- public function get_dashboard_link( $args = array() ) {
497
- $defaults = array( 'page' => self::SLUG );
498
-
499
- return $this->admin_page_url( wp_parse_args( $args, $defaults ) );
500
- }
501
-
502
- /**
503
- * Get an admin page url.
504
- *
505
- * @since 1.9.10
506
- *
507
- * @param array $args Array of query args.
508
- *
509
- * @return string
510
- */
511
- public function admin_page_url( $args = array() ) {
512
- $url = add_query_arg( $args, admin_url( 'admin.php' ) );
513
-
514
- return esc_url_raw( $url );
515
- }
516
-
517
  /**
518
  * Redirects to main OM page.
519
  *
520
  * @since 1.9.10
521
  *
522
- * @param array $args Array of query args.
523
  *
524
  * @return void
525
  */
526
  public function redirect_to_dashboard( $args = array() ) {
527
- $url = $this->get_dashboard_link( $args );
528
  wp_safe_redirect( esc_url_raw( $url ) );
529
  exit;
530
  }
@@ -539,9 +493,6 @@ class OMAPI_Menu {
539
  public function notifications_count() {
540
  $count = apply_filters( 'optin_monster_api_notifications_count', 0, $this );
541
  $count = absint( $count );
542
- if ( ! $this->base->get_api_credentials() ) {
543
- $count++;
544
- }
545
  $html = '';
546
 
547
  if ( $count ) {
93
  *
94
  * @since 1.0.0
95
  *
96
+ * @param bool $is_testing Whether we are doing integration testing.
97
  */
98
+ public function __construct( $is_testing = false ) {
99
+ if ( ! $is_testing ) {
100
  // Set our object.
101
  $this->set();
102
 
103
  // Load actions and filters.
104
  add_action( 'admin_menu', array( $this, 'menu' ) );
105
  add_action( 'admin_menu', array( $this, 'after_menu_registration' ), 999 );
106
+ // Load helper body classes.
107
  add_filter( 'admin_body_class', array( $this, 'admin_body_classes' ) );
108
 
109
  add_filter( 'plugin_action_links_' . plugin_basename( OMAPI_FILE ), array( $this, 'output_plugin_links' ) );
110
+
111
+ // Add upgrade link to plugin page.
112
+ add_filter( 'plugin_row_meta', array( $this, 'maybe_add_upgrade_link' ), 10, 2 );
113
  }
114
  }
115
 
147
 
148
  // Just add a placeholder secondary page.
149
  $this->hooks[] = add_submenu_page(
150
+ self::SLUG, // parent slug.
151
+ __( 'Dashboard', 'optin-monster-api' ), // page title.
152
+ __( 'Dashboard', 'optin-monster-api' ), // menu title.
153
+ $this->base->access_capability( self::SLUG ),
154
+ self::SLUG,
155
  array( $this->pages, 'render_app_loading_page' )
156
  );
157
 
180
  * @return string Archie SVG.
181
  */
182
  public function icon_svg( $fill = '#a0a5aa', $return_encoded = true ) {
183
+ $icon = file_get_contents( plugin_dir_path( OMAPI_FILE ) . '/assets/css/images/icons/archie-icon.svg' );
184
  $icon = str_replace( 'fill="currentColor"', 'fill="' . $fill . '"', $icon );
185
 
186
  if ( $return_encoded ) {
187
+ $icon = 'data:image/svg+xml;base64,' . base64_encode( $icon ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode
188
  }
189
 
190
  return $icon;
203
  // Make sure the about page is still the last page.
204
  if ( isset( $submenu[ self::SLUG ] ) ) {
205
  $after = array();
206
+ $at_end = array( 'optin-monster-about', 'optin-monster-upgrade' );
207
  foreach ( $submenu[ self::SLUG ] as $key => $menu ) {
208
+ if ( isset( $menu[2] ) && in_array( $menu[2], $at_end ) ) { // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict
209
  $after[] = $menu;
210
  unset( $submenu[ self::SLUG ][ $key ] );
211
  }
212
  }
213
+ $submenu[ self::SLUG ] = array_values( $submenu[ self::SLUG ] ); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
214
  foreach ( $after as $menu ) {
215
+ $submenu[ self::SLUG ][] = $menu; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
216
  }
217
  }
218
 
237
 
238
  $new_links = $this->base->get_api_credentials()
239
  ? array(
240
+ sprintf( '<a href="%s">%s</a>', OMAPI_Urls::campaigns(), __( 'Campaigns', 'optin-monster-api' ) ),
241
+ sprintf( '<a href="%s">%s</a>', OMAPI_Urls::settings(), __( 'Settings', 'optin-monster-api' ) ),
242
  )
243
  : array(
244
+ sprintf( '<a href="%s">%s</a>', OMAPI_Urls::onboarding(), __( 'Get Started', 'optin-monster-api' ) ),
245
  );
246
 
247
  $links = array_merge( $new_links, $links );
249
  return $links;
250
  }
251
 
252
+ /**
253
+ * Add upgrade link to the plugin row.
254
+ *
255
+ * @since 2.4.0
256
+ *
257
+ * @param array $links Default plugin row links.
258
+ * @param string $file The plugin file.
259
+ *
260
+ * @return array The links array.
261
+ */
262
+ public function maybe_add_upgrade_link( $links, $file ) {
263
+ if ( $file === plugin_basename( OMAPI_FILE ) ) {
264
+
265
+ // If user upgradeable, let's put an upgrade link.
266
+ $level = $this->base->can_ugrade();
267
+ if ( $level ) {
268
+ $label = 'vbp_pro' === $level
269
+ ? __( 'Upgrade to Growth', 'optin-monster-api' )
270
+ : __( 'Upgrade to Pro', 'optin-monster-api' );
271
+
272
+ $upgradeLink = sprintf(
273
+ '<a href="%s" aria-label="%s" target="_blank" rel="noopener">%s</a>',
274
+ esc_url_raw( OMAPI_Urls::upgrade( 'plugin_row_meta' ) ),
275
+ $label,
276
+ $label
277
+ );
278
+
279
+ array_splice( $links, 1, 0, array( $upgradeLink ) );
280
+ }
281
+ }
282
+
283
+ return $links;
284
+ }
285
+
286
  /**
287
  * Adds om admin body classes
288
  *
289
  * @since 1.3.4
290
  *
291
+ * @param array $classes Body classes.
292
  *
293
  * @return array
294
  */
327
  return true;
328
  }
329
  } else {
330
+ $page = isset( $_GET['page'] ) ? $_GET['page'] : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
331
  }
332
 
333
  return false !== strpos( $page, 'optin-monster' );
387
  }
388
 
389
  /**
390
+ * Deque specific scripts that cause conflicts on settings page. E.g.
391
+ * - optimizely
392
+ * - bigcommerce
393
  *
394
  * @since 1.1.5.9
395
  */
398
 
399
  // Dequeue scripts that might cause our settings not to work properly.
400
  wp_dequeue_script( 'optimizely_config' );
401
+
402
+ add_action( 'admin_print_footer_scripts', array( $this, 'dequeue_bigcommerce_admin_script' ), 100 );
403
  }
404
  }
405
 
406
+ /**
407
+ * Deque bigcommerce admin script, as it contains conflict with our app.
408
+ *
409
+ * @since 2.3.0
410
+ */
411
+ public function dequeue_bigcommerce_admin_script() {
412
+ wp_dequeue_script( 'bigcommerce-admin-scripts' );
413
+ }
414
+
415
  /**
416
  * Customizes the footer text on the OptinMonster settings page.
417
  *
421
  * @return string $text Amended admin footer text.
422
  */
423
  public function footer( $text ) {
424
+ $url = 'https://wordpress.org/support/plugin/optinmonster/reviews?filter=5#new-post';
425
+ /* translators: %1$s - OptinMonster plugin support url */
426
+ $text = sprintf( __( 'Please rate <strong>OptinMonster</strong> <a href="%1$s" target="_blank" rel="noopener">&#9733;&#9733;&#9733;&#9733;&#9733;</a> on <a href="%1$s" target="_blank" rel="noopener noreferrer">WordPress.org</a> to help us spread the word. Thank you from the OptinMonster team!', 'optin-monster-api' ), $url );
427
 
428
  return $text;
429
  }
437
  $path = 'vue/dist';
438
  $dir = trailingslashit( dirname( $this->base->file ) ) . $path;
439
  $loader = new OMAPI_AssetLoader( $dir );
440
+ $logo = '#';
441
+ $help = '#';
442
 
443
  $list = $loader->getAssetsList( $dir );
444
  foreach ( $list as $item ) {
468
  return self::SLUG;
469
  }
470
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
471
  /**
472
  * Redirects to main OM page.
473
  *
474
  * @since 1.9.10
475
  *
476
+ * @param array $args Array of query args.
477
  *
478
  * @return void
479
  */
480
  public function redirect_to_dashboard( $args = array() ) {
481
+ $url = OMAPI_Urls::dashboard( $args );
482
  wp_safe_redirect( esc_url_raw( $url ) );
483
  exit;
484
  }
493
  public function notifications_count() {
494
  $count = apply_filters( 'optin_monster_api_notifications_count', 0, $this );
495
  $count = absint( $count );
 
 
 
496
  $html = '';
497
 
498
  if ( $count ) {
OMAPI/Notifications.php CHANGED
@@ -104,6 +104,7 @@ class OMAPI_Notifications {
104
  public function hooks() {
105
  add_action( 'optin_monster_api_admin_notifications_update', array( $this, 'update' ) );
106
  add_filter( 'optin_monster_api_notifications_count', array( $this, 'get_count' ) );
 
107
  }
108
 
109
  /**
@@ -245,6 +246,24 @@ class OMAPI_Notifications {
245
  return false;
246
  }
247
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
248
  if ( ! empty( $dismissed ) && in_array( $notification['id'], $dismissed ) ) { // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict
249
 
250
  // Ignore if notification has already been dismissed.
@@ -331,6 +350,24 @@ class OMAPI_Notifications {
331
  // Notification is expired.
332
  unset( $notifications[ $key ] );
333
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
334
  }
335
 
336
  return $notifications;
@@ -351,22 +388,38 @@ class OMAPI_Notifications {
351
  return array();
352
  }
353
 
354
- $option = $this->get_option();
355
-
356
  // Update notifications using async task.
357
- if ( empty( $option['updated'] ) || time() > ( $option['updated'] + DAY_IN_SECONDS ) ) {
358
- if ( $can_update ) {
359
- $this->update();
360
- $option = $this->get_option();
361
- }
362
  }
363
 
 
364
  $events = ! empty( $option['events'] ) ? $this->verify_active( $option['events'] ) : array();
365
  $feed = ! empty( $option['feed'] ) ? $this->verify_active( $option['feed'] ) : array();
366
 
367
- $notifications = array_merge( $events, $feed );
368
-
369
- set_transient( 'om_notification_count', count( $notifications ), DAY_IN_SECONDS );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
370
 
371
  return $notifications;
372
  }
@@ -384,8 +437,13 @@ class OMAPI_Notifications {
384
  $this->get();
385
  $count = get_transient( 'om_notification_count' );
386
  }
 
 
 
 
 
387
 
388
- return absint( $count );
389
  }
390
 
391
  /**
@@ -410,7 +468,7 @@ class OMAPI_Notifications {
410
  }
411
 
412
  if ( empty( $notification['id'] ) ) {
413
- $notification['id'] = uniqid('event-');
414
  }
415
 
416
  $notification['id'] = (string) $notification['id'];
@@ -638,7 +696,7 @@ class OMAPI_Notifications {
638
  *
639
  * @since 2.0.0
640
  *
641
- * @param array $notification Notification array.
642
  */
643
  protected function set_created_timestamp( array $notification ) {
644
  // Set created timestamp if it's not already set.
@@ -654,4 +712,42 @@ class OMAPI_Notifications {
654
  return $notification;
655
  }
656
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
657
  }
104
  public function hooks() {
105
  add_action( 'optin_monster_api_admin_notifications_update', array( $this, 'update' ) );
106
  add_filter( 'optin_monster_api_notifications_count', array( $this, 'get_count' ) );
107
+ add_action( 'admin_enqueue_scripts', array( $this, 'scripts' ) );
108
  }
109
 
110
  /**
246
  return false;
247
  }
248
 
249
+ if (
250
+ ! empty( $notification['min'] )
251
+ && version_compare( $this->base->version, $notification['min'], '<' )
252
+ ) {
253
+
254
+ // Ignore if below minimum plugin version.
255
+ return false;
256
+ }
257
+
258
+ if (
259
+ ! empty( $notification['max'] )
260
+ && version_compare( $this->base->version, $notification['max'], '>' )
261
+ ) {
262
+
263
+ // Ignore if above maximum plugin version.
264
+ return false;
265
+ }
266
+
267
  if ( ! empty( $dismissed ) && in_array( $notification['id'], $dismissed ) ) { // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict
268
 
269
  // Ignore if notification has already been dismissed.
350
  // Notification is expired.
351
  unset( $notifications[ $key ] );
352
  }
353
+
354
+ if (
355
+ ! empty( $notification['min'] )
356
+ && version_compare( $this->base->version, $notification['min'], '<' )
357
+ ) {
358
+
359
+ // Ignore if below minimum plugin version.
360
+ unset( $notifications[ $key ] );
361
+ }
362
+
363
+ if (
364
+ ! empty( $notification['max'] )
365
+ && version_compare( $this->base->version, $notification['max'], '>' )
366
+ ) {
367
+
368
+ // Ignore if above maximum plugin version.
369
+ unset( $notifications[ $key ] );
370
+ }
371
  }
372
 
373
  return $notifications;
388
  return array();
389
  }
390
 
 
 
391
  // Update notifications using async task.
392
+ if ( $this->should_update() && $can_update ) {
393
+ $this->update();
 
 
 
394
  }
395
 
396
+ $option = $this->get_option();
397
  $events = ! empty( $option['events'] ) ? $this->verify_active( $option['events'] ) : array();
398
  $feed = ! empty( $option['feed'] ) ? $this->verify_active( $option['feed'] ) : array();
399
 
400
+ $notifications = array_merge( $feed, $events );
401
+
402
+ set_transient( 'om_notification_count', count( $notifications ), ( 12 * HOUR_IN_SECONDS ) );
403
+
404
+ if ( ! $this->base->get_api_credentials() ) {
405
+ $notifications = array_merge(
406
+ $notifications,
407
+ array(
408
+ array(
409
+ 'type' => 'action',
410
+ 'title' => esc_html__( 'You haven\'t finished setting up your site.', 'optin-monster-api' ),
411
+ 'content' => esc_html__( 'You\'re losing subscribers, leads and sales! Click on the button below to get started with OptinMonster.', 'optin-monster-api' ),
412
+ 'btns' => array(
413
+ 'main' => array(
414
+ 'text' => esc_html__( 'Connect Your Site', 'optin-monster-api' ),
415
+ 'url' => '?page=optin-monster-onboarding-wizard',
416
+ ),
417
+ ),
418
+ 'canDismiss' => false,
419
+ ),
420
+ )
421
+ );
422
+ }
423
 
424
  return $notifications;
425
  }
437
  $this->get();
438
  $count = get_transient( 'om_notification_count' );
439
  }
440
+ $count = absint( $count );
441
+
442
+ if ( ! $this->base->get_api_credentials() ) {
443
+ $count++;
444
+ }
445
 
446
+ return $count;
447
  }
448
 
449
  /**
468
  }
469
 
470
  if ( empty( $notification['id'] ) ) {
471
+ $notification['id'] = uniqid( 'event-' );
472
  }
473
 
474
  $notification['id'] = (string) $notification['id'];
696
  *
697
  * @since 2.0.0
698
  *
699
+ * @param array $notification Notification array.
700
  */
701
  protected function set_created_timestamp( array $notification ) {
702
  // Set created timestamp if it's not already set.
712
  return $notification;
713
  }
714
 
715
+ /**
716
+ * Checks if our notifications should be updated.
717
+ *
718
+ * @since 2.6.1
719
+ *
720
+ * @return bool Whether notifications should be updated.
721
+ */
722
+ public function should_update() {
723
+ $updated = $this->get_option( 'updated' );
724
+
725
+ return empty( $updated ) || time() > ( $updated + ( 12 * HOUR_IN_SECONDS ) );
726
+ }
727
+
728
+ /**
729
+ * Register and enqueue admin specific JS.
730
+ *
731
+ * @since 2.1.1
732
+ */
733
+ public function scripts() {
734
+ $handle = $this->base->plugin_slug . '-global';
735
+ wp_enqueue_script(
736
+ $handle,
737
+ $this->base->url . 'assets/dist/js/global.min.js',
738
+ array( 'jquery' ),
739
+ $this->base->asset_version(),
740
+ true
741
+ );
742
+
743
+ OMAPI_Utils::add_inline_script(
744
+ $handle,
745
+ 'OMAPI_Global',
746
+ array(
747
+ 'url' => esc_url_raw( rest_url( 'omapp/v1/notifications' ) ),
748
+ 'nonce' => wp_create_nonce( 'wp_rest' ),
749
+ 'fetchNotifications' => $this->base->notifications->should_update(),
750
+ )
751
+ );
752
+ }
753
  }
OMAPI/Output.php CHANGED
@@ -92,6 +92,33 @@ class OMAPI_Output {
92
  */
93
  public $shortcodes = array();
94
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
95
  /**
96
  * Primary class constructor.
97
  *
@@ -126,9 +153,24 @@ class OMAPI_Output {
126
 
127
  $rules = new OMAPI_Rules();
128
 
 
 
 
 
129
  // Keep these around for back-compat.
130
  $this->fields = $rules->fields;
131
 
 
 
 
 
 
 
 
 
 
 
 
132
  }
133
 
134
  /**
@@ -152,7 +194,12 @@ class OMAPI_Output {
152
  // Add the hook to allow OptinMonster to process.
153
  add_action( 'wp_footer', array( $this, 'load_optinmonster' ) );
154
 
155
- if ( ! empty( $_GET['om-live-preview'] ) || ! empty( $_GET['om-verify-site'] ) ) {
 
 
 
 
 
156
  add_action( 'wp_footer', array( $this, 'load_global_optinmonster' ) );
157
  }
158
  }
@@ -164,10 +211,16 @@ class OMAPI_Output {
164
  */
165
  public function api_script() {
166
 
167
- // A hook to change the API location. Using this hook, we can force to load in header; default location is footer
168
  $in_footer = apply_filters( 'optin_monster_api_loading_location', true );
169
 
170
- wp_enqueue_script( $this->base->plugin_slug . '-api-script', $this->base->get_api_url(), array(), null, $in_footer );
 
 
 
 
 
 
171
 
172
  if ( version_compare( get_bloginfo( 'version' ), '4.1.0', '>=' ) ) {
173
  add_filter( 'script_loader_tag', array( $this, 'filter_api_script' ), 10, 2 );
@@ -194,7 +247,7 @@ class OMAPI_Output {
194
  }
195
 
196
  // Adjust the output to the JS version embed and to add our custom script ID.
197
- return $this->om_script_tag(
198
  array(
199
  'id' => 'omapi-script',
200
  )
@@ -211,7 +264,7 @@ class OMAPI_Output {
211
  */
212
  public function filter_api_url( $url ) {
213
  // If the handle is not ours, do nothing.
214
- if ( false === strpos( $url, str_replace( 'https://', '', $this->base->get_api_url() ) ) ) {
215
  return $url;
216
  }
217
 
@@ -220,25 +273,6 @@ class OMAPI_Output {
220
 
221
  }
222
 
223
- /**
224
- * Set the default query arg filter for OptinMonster.
225
- *
226
- * @since 1.0.0
227
- *
228
- * @param bool $bool Whether or not to alter the query arg filter.
229
- * @return bool True or false based on query arg detection.
230
- */
231
- public function query_filter( $bool ) {
232
-
233
- // If "omhide" is set, the query filter exists.
234
- if ( isset( $_GET['omhide'] ) && $_GET['omhide'] ) {
235
- return true;
236
- }
237
-
238
- return $bool;
239
-
240
- }
241
-
242
  /**
243
  * Loads an inline optin form (sidebar and after post) by checking against the current query.
244
  *
@@ -260,15 +294,14 @@ class OMAPI_Output {
260
  }
261
 
262
  /**
263
- * Filters the content to output an optin form.
264
  *
265
  * @since 1.0.0
266
  *
267
  * @param string $content The current HTML string of main content.
268
- * @return string $content Amended content with possibly an optin.
269
  */
270
  public function load_optinmonster_inline_content( $content ) {
271
-
272
  global $post;
273
 
274
  // Checking if AMP is enabled.
@@ -278,19 +311,13 @@ class OMAPI_Output {
278
 
279
  // If the global $post is not set or the post status is not published, return early.
280
  if ( empty( $post ) || isset( $post->ID ) && 'publish' !== get_post_status( $post->ID ) ) {
281
- return $content;
282
  }
283
 
284
  // Don't do anything for excerpts.
285
  // This prevents the optin accidentally being output when get_the_excerpt() or wp_trim_excerpt() is
286
  // called by a theme or plugin, and there is no excerpt, meaning they call the_content and break us.
287
- global $wp_current_filter;
288
-
289
- if ( in_array( 'get_the_excerpt', (array) $wp_current_filter ) ) {
290
- return $content;
291
- }
292
-
293
- if ( in_array( 'wp_trim_excerpt', (array) $wp_current_filter ) ) {
294
  return $content;
295
  }
296
 
@@ -316,11 +343,11 @@ class OMAPI_Output {
316
  switch ( $position ) {
317
  case 'paragraphs':
318
  $paragraphs = get_post_meta( $optin->ID, '_omapi_auto_location_paragraphs', true );
319
- $content = $inserter->after_paragraph( absint( $paragraphs ) );
320
  break;
321
 
322
  case 'words':
323
- $words = get_post_meta( $optin->ID, '_omapi_auto_location_words', true );
324
  $content = $inserter->after_words( absint( $words ) );
325
  break;
326
 
@@ -342,58 +369,105 @@ class OMAPI_Output {
342
  }
343
 
344
  /**
345
- * Possibly loads an optin on a page.
346
  *
347
  * @since 1.0.0
348
  */
349
  public function load_optinmonster() {
 
 
 
 
 
350
 
351
- // Prepare variables.
352
- $post_id = self::current_id();
353
- $optins = $this->base->get_optins();
354
- $init = array();
355
 
356
- // If no optins are found, return early.
357
  if ( empty( $optins ) ) {
358
- return;
359
- }
360
 
361
- // Loop through each optin and optionally output it on the site.
362
- foreach ( $optins as $optin ) {
363
- $rules = new OMAPI_Rules( $optin, $post_id );
364
 
365
- if ( $rules->should_output() ) {
366
- $this->set_slug( $optin );
 
 
367
 
368
- // Prepare the optin campaign.
369
- $init[ $optin->post_name ] = $this->prepare_campaign( $optin );
370
- continue;
371
- }
372
 
373
- $fields = $rules->field_values;
 
 
 
374
 
375
- // Allow devs to filter the final output for more granular control over optin targeting.
376
- // Devs should return the value for the slug key as false if the conditions are not met.
377
- $init = apply_filters( 'optinmonster_output', $init ); // Deprecated.
378
- $init = apply_filters( 'optin_monster_output', $init, $optin, $fields, $post_id ); // Deprecated.
379
- $init = apply_filters( 'optin_monster_api_output', $init, $optin, $fields, $post_id );
380
- }
381
 
382
- // Run a final filter for all items.
383
- $init = apply_filters( 'optin_monster_api_final_output', $init, $post_id );
 
 
 
 
 
 
 
 
384
 
385
  // If the init code is empty, do nothing.
386
- if ( empty( $init ) ) {
387
  return;
388
  }
389
 
390
  // Load the optins.
391
- foreach ( (array) $init as $optin ) {
392
- if ( $optin ) {
393
- echo $optin;
394
  }
395
  }
396
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
397
  }
398
 
399
  /**
@@ -411,7 +485,7 @@ class OMAPI_Output {
411
 
412
  $option['id'] = 'omapi-script-global';
413
 
414
- echo $this->om_script_tag( $option );
415
  }
416
 
417
  /**
@@ -427,21 +501,51 @@ class OMAPI_Output {
427
  // Set the slug.
428
  $this->slugs[ $slug ] = array(
429
  'slug' => $slug,
430
- 'mailpoet' => (bool) get_post_meta( $optin->ID, '_omapi_mailpoet', true ),
431
  );
432
 
433
  // Maybe set shortcode.
434
- if ( get_post_meta( $optin->ID, '_omapi_shortcode', true ) ) {
435
  $this->shortcodes[] = get_post_meta( $optin->ID, '_omapi_shortcode_output', true );
436
  }
437
 
438
- if ( get_post_meta( $optin->ID, '_omapi_mailpoet', true ) ) {
439
  $this->wp_mailpoet();
440
  }
441
 
442
  return $this;
443
  }
444
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
445
  /**
446
  * Maybe outputs the JS variables to parse shortcodes.
447
  *
@@ -472,8 +576,8 @@ class OMAPI_Output {
472
  }
473
 
474
  echo '<div style="position:absolute;overflow:hidden;clip:rect(0 0 0 0);height:1px;width:1px;margin:-1px;padding:0;border:0">';
475
- echo '<div class="omapi-shortcode-helper">' . html_entity_decode( $shortcode, ENT_COMPAT, 'UTF-8' ) . '</div>';
476
- echo '<div class="omapi-shortcode-parsed omapi-encoded">' . htmlentities( do_shortcode( html_entity_decode( $shortcode, ENT_COMPAT, 'UTF-8' ) ), ENT_COMPAT, 'UTF-8' ) . '</div>';
477
  echo '</div>';
478
  }
479
  }
@@ -483,13 +587,49 @@ class OMAPI_Output {
483
  <script type="text/javascript">
484
  <?php
485
  foreach ( $this->slugs as $slug => $data ) {
486
- echo 'var ' . $slug . '_shortcode = true;'; }
 
487
  ?>
488
  </script>
489
  <?php
490
 
491
  }
492
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
493
  /**
494
  * Possibly localizes a JS variable for output use.
495
  *
@@ -510,14 +650,11 @@ class OMAPI_Output {
510
  // Set flag to true.
511
  $this->localized = true;
512
 
513
- // phpcs:ignore WordPress.WP.AlternativeFunctions.json_encode_json_encode
514
- $slugs = function_exists( 'wp_json_encode' )
515
- ? wp_json_encode( $this->slugs )
516
- : json_encode( $this->slugs );
517
 
518
  // Output JS variable.
519
  ?>
520
- <script type="text/javascript">var omapi_localized = { ajax: '<?php echo esc_url_raw( add_query_arg( 'optin-monster-ajax-route', true, admin_url( 'admin-ajax.php' ) ) ); ?>', nonce: '<?php echo wp_create_nonce( 'omapi' ); ?>', slugs: <?php echo $slugs; ?> };</script>
521
  <?php
522
  }
523
 
@@ -614,23 +751,23 @@ class OMAPI_Output {
614
  }
615
  }
616
 
617
- $output = array(
618
- 'wc_cart' => $this->woocommerce_cart(),
619
- 'object_id' => $object_id,
620
- 'object_key' => $object_key,
621
- 'object_type' => $object_type,
622
- 'term_ids' => $tax_terms,
 
 
 
623
  );
624
 
625
- // phpcs:ignore WordPress.WP.AlternativeFunctions.json_encode_json_encode
626
- $output = function_exists( 'wp_json_encode' )
627
- ? wp_json_encode( $output )
628
- : json_encode( $output );
629
 
630
  // Output JS variable.
631
  // phpcs:ignore XSS
632
  ?>
633
- <script type="text/javascript">var omapi_data = <?php echo $output; ?>;</script>
634
  <?php
635
  }
636
 
@@ -644,9 +781,11 @@ class OMAPI_Output {
644
  * @return string The optin campaign html.
645
  */
646
  public function prepare_campaign( $optin ) {
647
- return isset( $optin->post_content ) && ! empty( $optin->post_content )
648
  ? trim( html_entity_decode( stripslashes( $optin->post_content ), ENT_QUOTES, 'UTF-8' ), '\'' )
649
  : '';
 
 
650
  }
651
 
652
  /**
@@ -655,7 +794,7 @@ class OMAPI_Output {
655
  * @since 1.5.0
656
  *
657
  * @param bool $should_output Whether it should output.
658
- * @param OMAPI_Rules $rules OMAPI_Rules object
659
  *
660
  * @return array
661
  */
@@ -681,6 +820,11 @@ class OMAPI_Output {
681
  * @return int
682
  */
683
  public static function current_id() {
 
 
 
 
 
684
  $post_id = get_queried_object_id();
685
  if ( ! $post_id ) {
686
  if ( 'page' === get_option( 'show_on_front' ) ) {
@@ -761,22 +905,31 @@ class OMAPI_Output {
761
  *
762
  * @return string The embed script JS.
763
  */
764
- public function om_script_tag( $args = array() ) {
765
 
766
- $src = esc_url_raw( $this->base->get_api_url() );
767
 
768
  $script_id = ! empty( $args['id'] )
769
  ? sprintf( 's.id="%s";', esc_attr( $args['id'] ) )
770
  : '';
771
 
772
- $account_id = ! empty( $args['accountId'] )
773
  ? sprintf( 's.dataset.account="%s";', esc_attr( $args['accountId'] ) )
774
  : '';
775
 
 
 
 
 
776
  $user_id = ! empty( $args['userId'] )
777
  ? sprintf( 's.dataset.user="%s";', esc_attr( $args['userId'] ) )
778
  : '';
779
 
 
 
 
 
 
780
  $env = defined( 'OPTINMONSTER_ENV' )
781
  ? sprintf( 's.dataset.env="%s";', esc_attr( OPTINMONSTER_ENV ) )
782
  : '';
@@ -791,17 +944,21 @@ class OMAPI_Output {
791
  $tag .= '%3$s';
792
  $tag .= '%4$s';
793
  $tag .= '%5$s';
 
794
  $tag .= 'd.getElementsByTagName("head")[0].appendChild(s);';
795
  $tag .= '})(document);';
796
  $tag .= '</script>';
797
 
798
- return sprintf(
799
  $tag,
800
  $src,
801
  $script_id,
802
- $account_id,
803
  $user_id,
 
804
  $env
805
  );
 
 
806
  }
807
  }
92
  */
93
  public $shortcodes = array();
94
 
95
+ /**
96
+ * Whether we are in a live campaign preview.
97
+ *
98
+ * @since 2.2.0
99
+ *
100
+ * @var boolean
101
+ */
102
+ protected static $live_preview = false;
103
+
104
+ /**
105
+ * Whether we are in a live campaign rules preview.
106
+ *
107
+ * @since 2.2.0
108
+ *
109
+ * @var boolean
110
+ */
111
+ protected static $live_rules_preview = false;
112
+
113
+ /**
114
+ * Whether we are in a site verification request.
115
+ *
116
+ * @since 2.2.0
117
+ *
118
+ * @var boolean
119
+ */
120
+ protected static $site_verification = false;
121
+
122
  /**
123
  * Primary class constructor.
124
  *
153
 
154
  $rules = new OMAPI_Rules();
155
 
156
+ if ( OMAPI_Debug::can_output_debug() ) {
157
+ add_action( 'wp_footer', array( 'OMAPI_Debug', 'output_general' ), 99 );
158
+ }
159
+
160
  // Keep these around for back-compat.
161
  $this->fields = $rules->fields;
162
 
163
+ // phpcs:disable WordPress.Security.NonceVerification.Recommended
164
+ self::$live_preview = ! empty( $_GET['om-live-preview'] )
165
+ ? $_GET['om-live-preview']
166
+ : false;
167
+ self::$live_rules_preview = ! empty( $_GET['om-live-rules-preview'] )
168
+ ? $_GET['om-live-rules-preview']
169
+ : false;
170
+ self::$site_verification = ! empty( $_GET['om-verify-site'] )
171
+ ? $_GET['om-verify-site']
172
+ : false;
173
+ // phpcs:enable
174
  }
175
 
176
  /**
194
  // Add the hook to allow OptinMonster to process.
195
  add_action( 'wp_footer', array( $this, 'load_optinmonster' ) );
196
 
197
+ if ( self::$live_preview || self::$live_rules_preview ) {
198
+ add_filter( 'optin_monster_api_final_output', array( $this, 'load_previews' ), 10, 2 );
199
+ add_filter( 'optin_monster_api_empty_output', array( $this, 'load_previews' ), 10, 2 );
200
+ }
201
+
202
+ if ( self::$live_preview || self::$site_verification ) {
203
  add_action( 'wp_footer', array( $this, 'load_global_optinmonster' ) );
204
  }
205
  }
211
  */
212
  public function api_script() {
213
 
214
+ // A hook to change the API location. Using this hook, we can force to load in header; default location is footer.
215
  $in_footer = apply_filters( 'optin_monster_api_loading_location', true );
216
 
217
+ wp_enqueue_script(
218
+ $this->base->plugin_slug . '-api-script',
219
+ OMAPI_Urls::om_api(),
220
+ array(),
221
+ $this->base->asset_version(),
222
+ $in_footer
223
+ );
224
 
225
  if ( version_compare( get_bloginfo( 'version' ), '4.1.0', '>=' ) ) {
226
  add_filter( 'script_loader_tag', array( $this, 'filter_api_script' ), 10, 2 );
247
  }
248
 
249
  // Adjust the output to the JS version embed and to add our custom script ID.
250
+ return self::om_script_tag(
251
  array(
252
  'id' => 'omapi-script',
253
  )
264
  */
265
  public function filter_api_url( $url ) {
266
  // If the handle is not ours, do nothing.
267
+ if ( false === strpos( $url, str_replace( 'https://', '', OMAPI_Urls::om_api() ) ) ) {
268
  return $url;
269
  }
270
 
273
 
274
  }
275
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
276
  /**
277
  * Loads an inline optin form (sidebar and after post) by checking against the current query.
278
  *
294
  }
295
 
296
  /**
297
+ * Filters the content to output a campaign form.
298
  *
299
  * @since 1.0.0
300
  *
301
  * @param string $content The current HTML string of main content.
302
+ * @return string $content Amended content with possibly a campaign.
303
  */
304
  public function load_optinmonster_inline_content( $content ) {
 
305
  global $post;
306
 
307
  // Checking if AMP is enabled.
311
 
312
  // If the global $post is not set or the post status is not published, return early.
313
  if ( empty( $post ) || isset( $post->ID ) && 'publish' !== get_post_status( $post->ID ) ) {
314
+ return $content;
315
  }
316
 
317
  // Don't do anything for excerpts.
318
  // This prevents the optin accidentally being output when get_the_excerpt() or wp_trim_excerpt() is
319
  // called by a theme or plugin, and there is no excerpt, meaning they call the_content and break us.
320
+ if ( in_array( current_filter(), array( 'get_the_excerpt', 'wp_trim_excerpt' ), true ) ) {
 
 
 
 
 
 
321
  return $content;
322
  }
323
 
343
  switch ( $position ) {
344
  case 'paragraphs':
345
  $paragraphs = get_post_meta( $optin->ID, '_omapi_auto_location_paragraphs', true );
346
+ $content = $inserter->after_paragraph( absint( $paragraphs ) );
347
  break;
348
 
349
  case 'words':
350
+ $words = get_post_meta( $optin->ID, '_omapi_auto_location_words', true );
351
  $content = $inserter->after_words( absint( $words ) );
352
  break;
353
 
369
  }
370
 
371
  /**
372
+ * Possibly loads a campaign on a page.
373
  *
374
  * @since 1.0.0
375
  */
376
  public function load_optinmonster() {
377
+ $post_id = self::current_id();
378
+ $prevented = is_singular() && $post_id && get_post_meta( $post_id, 'om_disable_all_campaigns', true );
379
+ if ( $prevented ) {
380
+ add_action( 'wp_footer', array( $this, 'prevent_all_campaigns' ), 11 );
381
+ }
382
 
383
+ $optins = $prevented ? array() : $this->base->get_optins();
384
+ $campaigns = array();
 
 
385
 
 
386
  if ( empty( $optins ) ) {
 
 
387
 
388
+ // If no optins are found, send through filter to potentially add preview data.
389
+ $campaigns = apply_filters( 'optin_monster_api_empty_output', $campaigns, $post_id );
 
390
 
391
+ } else {
392
+ // Loop through each optin and optionally output it on the site.
393
+ foreach ( $optins as $campaign ) {
394
+ $rules = new OMAPI_Rules( $campaign, $post_id );
395
 
396
+ if ( $rules->should_output() ) {
397
+ $this->set_slug( $campaign );
 
 
398
 
399
+ // Prepare the optin campaign.
400
+ $campaigns[ $campaign->post_name ] = $this->prepare_campaign( $campaign );
401
+ continue;
402
+ }
403
 
404
+ $fields = $rules->field_values;
 
 
 
 
 
405
 
406
+ // Allow devs to filter the final output for more granular control over optin targeting.
407
+ // Devs should return the value for the slug key as false if the conditions are not met.
408
+ $campaigns = apply_filters( 'optinmonster_output', $campaigns ); // Deprecated.
409
+ $campaigns = apply_filters( 'optin_monster_output', $campaigns, $campaign, $fields, $post_id ); // Deprecated.
410
+ $campaigns = apply_filters( 'optin_monster_api_output', $campaigns, $campaign, $fields, $post_id );
411
+ }
412
+
413
+ // Run a final filter for all items.
414
+ $campaigns = apply_filters( 'optin_monster_api_final_output', $campaigns, $post_id );
415
+ }
416
 
417
  // If the init code is empty, do nothing.
418
+ if ( empty( $campaigns ) ) {
419
  return;
420
  }
421
 
422
  // Load the optins.
423
+ foreach ( (array) $campaigns as $campaign ) {
424
+ if ( $campaign ) {
425
+ echo $campaign; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
426
  }
427
  }
428
 
429
+ $is_preview = apply_filters(
430
+ 'optin_monster_should_set_campaigns_as_preview',
431
+ is_preview() || is_customize_preview()
432
+ );
433
+
434
+ if ( $is_preview ) {
435
+ remove_action( 'wp_footer', array( $this, 'prevent_all_campaigns' ), 11 );
436
+ add_action( 'wp_footer', array( $this, 'set_campaigns_as_preview' ), 99 );
437
+ }
438
+ }
439
+
440
+ /**
441
+ * Possibly loads a campaign preview on a page.
442
+ *
443
+ * @since 2.2.0
444
+ *
445
+ * @param array $campaigns Array of campaign objects to output.
446
+ * @param int $post_id The current post id.
447
+ *
448
+ * @return array Array of campaign objects to output.
449
+ */
450
+ public function load_previews( $campaigns, $post_id ) {
451
+ if ( self::$live_preview || self::$live_rules_preview ) {
452
+ $campaign_id = sanitize_text_field( self::$live_preview ? self::$live_preview : self::$live_rules_preview );
453
+ $campaign_id = sanitize_html_class( $campaign_id );
454
+
455
+ $embed = self::om_script_tag(
456
+ array(
457
+ 'id' => 'omapi-script-preview-' . $campaign_id,
458
+ 'campaignId' => $campaign_id,
459
+ 'userId' => $this->base->get_option( 'userId' ),
460
+ )
461
+ );
462
+
463
+ $embed = apply_filters( 'optin_monster_api_preview_output', $embed, $campaign_id, $post_id );
464
+
465
+ $this->set_preview_slug( $campaign_id );
466
+
467
+ $campaigns[ $campaign_id ] = $embed;
468
+ }
469
+
470
+ return $campaigns;
471
  }
472
 
473
  /**
485
 
486
  $option['id'] = 'omapi-script-global';
487
 
488
+ echo self::om_script_tag( $option ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
489
  }
490
 
491
  /**
501
  // Set the slug.
502
  $this->slugs[ $slug ] = array(
503
  'slug' => $slug,
504
+ 'mailpoet' => ! empty( $optin->ID ) && (bool) get_post_meta( $optin->ID, '_omapi_mailpoet', true ),
505
  );
506
 
507
  // Maybe set shortcode.
508
+ if ( ! empty( $optin->ID ) && get_post_meta( $optin->ID, '_omapi_shortcode', true ) ) {
509
  $this->shortcodes[] = get_post_meta( $optin->ID, '_omapi_shortcode_output', true );
510
  }
511
 
512
+ if ( ! empty( $this->slugs[ $slug ]['mailpoet'] ) ) {
513
  $this->wp_mailpoet();
514
  }
515
 
516
  return $this;
517
  }
518
 
519
+ /**
520
+ * Sets the preview slug for possibly parsing shortcodes.
521
+ *
522
+ * @since 2.2.0
523
+ *
524
+ * @param object $slug The campaign Id slug.
525
+ */
526
+ public function set_preview_slug( $slug ) {
527
+ $optin = $this->base->get_optin_by_slug( $slug );
528
+ if ( empty( $optin ) ) {
529
+ $optin = (object) array(
530
+ 'post_name' => $slug,
531
+ 'ID' => 0,
532
+ );
533
+ }
534
+
535
+ $this->set_slug( $optin );
536
+
537
+ // Request the shortcodes from the campaign preview object.
538
+ $user_id = $this->base->get_option( 'userId' );
539
+ $route = "embed/{$user_id}/{$slug}/preview/shortcodes";
540
+ $body = OMAPI_Api::build( 'v2', $route, 'GET' )->request();
541
+
542
+ if ( ! empty( $body->{$slug} ) ) {
543
+ $this->shortcodes[] = OMAPI_Save::get_shortcodes_string( $body->{$slug} );
544
+ }
545
+
546
+ return $this;
547
+ }
548
+
549
  /**
550
  * Maybe outputs the JS variables to parse shortcodes.
551
  *
576
  }
577
 
578
  echo '<div style="position:absolute;overflow:hidden;clip:rect(0 0 0 0);height:1px;width:1px;margin:-1px;padding:0;border:0">';
579
+ echo '<div class="omapi-shortcode-helper">' . html_entity_decode( $shortcode, ENT_COMPAT, 'UTF-8' ) . '</div>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
580
+ echo '<div class="omapi-shortcode-parsed omapi-encoded">' . htmlentities( do_shortcode( html_entity_decode( $shortcode, ENT_COMPAT, 'UTF-8' ) ), ENT_COMPAT, 'UTF-8' ) . '</div>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
581
  echo '</div>';
582
  }
583
  }
587
  <script type="text/javascript">
588
  <?php
589
  foreach ( $this->slugs as $slug => $data ) {
590
+ echo 'var ' . sanitize_html_class( $slug ) . '_shortcode = true;';
591
+ }
592
  ?>
593
  </script>
594
  <?php
595
 
596
  }
597
 
598
+ /**
599
+ * Sets all OM campaigns to preview mode, which disables their form fields.
600
+ *
601
+ * @since 2.2.0
602
+ */
603
+ public function set_campaigns_as_preview() {
604
+ ?>
605
+ <script type="text/javascript">
606
+ // Disable OM analytics.
607
+ window._omdisabletracking = true;
608
+ document.addEventListener('om.Optin.init', function(evt) {
609
+
610
+ // Disables form submission.
611
+ evt.detail.Optin.preview = true;
612
+ } );
613
+ </script>
614
+ <?php
615
+ }
616
+
617
+ /**
618
+ * Prevents any OM campaigns from loading if we're on a singular post
619
+ * with the `om_disable_all_campaigns` meta set.
620
+ *
621
+ * @since 2.3.0
622
+ */
623
+ public function prevent_all_campaigns() {
624
+ ?>
625
+ <script type="text/javascript">
626
+ document.addEventListener('om.Shutdown.init', function(evt) {
627
+ evt.detail.Shutdown.preventAll = true;
628
+ });
629
+ </script>
630
+ <?php
631
+ }
632
+
633
  /**
634
  * Possibly localizes a JS variable for output use.
635
  *
650
  // Set flag to true.
651
  $this->localized = true;
652
 
653
+ $slugs = OMAPI_Utils::json_encode( $this->slugs );
 
 
 
654
 
655
  // Output JS variable.
656
  ?>
657
+ <script type="text/javascript">var omapi_localized = { ajax: '<?php echo esc_url_raw( add_query_arg( 'optin-monster-ajax-route', true, admin_url( 'admin-ajax.php' ) ) ); ?>', nonce: '<?php echo wp_create_nonce( 'omapi' ); ?>', slugs: <?php echo $slugs; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> };</script>
658
  <?php
659
  }
660
 
751
  }
752
  }
753
 
754
+ $output = apply_filters(
755
+ 'optin_monster_display_rules_data_output',
756
+ array(
757
+ 'wc_cart' => $this->woocommerce_cart(),
758
+ 'object_id' => $object_id,
759
+ 'object_key' => $object_key,
760
+ 'object_type' => $object_type,
761
+ 'term_ids' => $tax_terms,
762
+ )
763
  );
764
 
765
+ $output = OMAPI_Utils::json_encode( $output );
 
 
 
766
 
767
  // Output JS variable.
768
  // phpcs:ignore XSS
769
  ?>
770
+ <script type="text/javascript">var omapi_data = <?php echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>;</script>
771
  <?php
772
  }
773
 
781
  * @return string The optin campaign html.
782
  */
783
  public function prepare_campaign( $optin ) {
784
+ $campaign_embed = ! empty( $optin->post_content )
785
  ? trim( html_entity_decode( stripslashes( $optin->post_content ), ENT_QUOTES, 'UTF-8' ), '\'' )
786
  : '';
787
+
788
+ return apply_filters( 'optin_monster_campaign_embed_output', $campaign_embed, $optin );
789
  }
790
 
791
  /**
794
  * @since 1.5.0
795
  *
796
  * @param bool $should_output Whether it should output.
797
+ * @param OMAPI_Rules $rules OMAPI_Rules object.
798
  *
799
  * @return array
800
  */
820
  * @return int
821
  */
822
  public static function current_id() {
823
+ $object = get_queried_object();
824
+ if ( is_object( $object ) && ! $object instanceof WP_Post ) {
825
+ return 0;
826
+ }
827
+
828
  $post_id = get_queried_object_id();
829
  if ( ! $post_id ) {
830
  if ( 'page' === get_option( 'show_on_front' ) ) {
905
  *
906
  * @return string The embed script JS.
907
  */
908
+ public static function om_script_tag( $args = array() ) {
909
 
910
+ $src = esc_url_raw( OMAPI_Urls::om_api() );
911
 
912
  $script_id = ! empty( $args['id'] )
913
  ? sprintf( 's.id="%s";', esc_attr( $args['id'] ) )
914
  : '';
915
 
916
+ $campaign_or_account_id = ! empty( $args['accountId'] )
917
  ? sprintf( 's.dataset.account="%s";', esc_attr( $args['accountId'] ) )
918
  : '';
919
 
920
+ if ( empty( $campaign_or_account_id ) && ! empty( $args['campaignId'] ) ) {
921
+ $campaign_or_account_id = sprintf( 's.dataset.campaign="%s";', esc_attr( $args['campaignId'] ) );
922
+ }
923
+
924
  $user_id = ! empty( $args['userId'] )
925
  ? sprintf( 's.dataset.user="%s";', esc_attr( $args['userId'] ) )
926
  : '';
927
 
928
+ $api_cname = OMAPI::get_instance()->get_option( 'apiCname' );
929
+ $api_cname = ! empty( $api_cname )
930
+ ? sprintf( 's.dataset.api="%s";', esc_attr( $api_cname ) )
931
+ : '';
932
+
933
  $env = defined( 'OPTINMONSTER_ENV' )
934
  ? sprintf( 's.dataset.env="%s";', esc_attr( OPTINMONSTER_ENV ) )
935
  : '';
944
  $tag .= '%3$s';
945
  $tag .= '%4$s';
946
  $tag .= '%5$s';
947
+ $tag .= '%6$s';
948
  $tag .= 'd.getElementsByTagName("head")[0].appendChild(s);';
949
  $tag .= '})(document);';
950
  $tag .= '</script>';
951
 
952
+ $tag = sprintf(
953
  $tag,
954
  $src,
955
  $script_id,
956
+ $campaign_or_account_id,
957
  $user_id,
958
+ $api_cname,
959
  $env
960
  );
961
+
962
+ return apply_filters( 'optin_monster_embed_script_tag', $tag, $args );
963
  }
964
  }
OMAPI/Pages.php CHANGED
@@ -1,6 +1,20 @@
1
  <?php
2
  /**
3
- * Menu class.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  *
5
  * @since 1.9.10
6
  *
@@ -110,11 +124,16 @@ class OMAPI_Pages {
110
  'callback' => array( $this, 'render_app_loading_page' ),
111
  );
112
 
113
- $this->pages['optin-monster-monsterleads'] = $subscribers_hook = array(
114
  'name' => __( 'Subscribers', 'optin-monster-api' ),
115
  'app' => true,
116
- 'redirect' => $this->base->app_url( 'leads/' ),
117
- 'callback' => '__return_null',
 
 
 
 
 
118
  );
119
 
120
  $this->pages['optin-monster-trustpulse'] = array(
@@ -127,6 +146,18 @@ class OMAPI_Pages {
127
  'callback' => array( $this, 'render_app_loading_page' ),
128
  );
129
 
 
 
 
 
 
 
 
 
 
 
 
 
130
  $this->pages['optin-monster-about'] = array(
131
  'name' => __( 'About Us', 'optin-monster-api' ),
132
  'app' => true,
@@ -139,6 +170,19 @@ class OMAPI_Pages {
139
  'hidden' => true,
140
  );
141
 
 
 
 
 
 
 
 
 
 
 
 
 
 
142
  foreach ( $this->pages as $slug => $page ) {
143
  $this->pages[ $slug ]['slug'] = $slug;
144
  }
@@ -147,6 +191,24 @@ class OMAPI_Pages {
147
  return $this->pages;
148
  }
149
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
150
  /**
151
  * Returns an array of our registered JS app pages.
152
  *
@@ -159,10 +221,12 @@ class OMAPI_Pages {
159
  /**
160
  * Whether given page slug is one of our registered JS app pages.
161
  *
 
 
162
  * @return boolean
163
  */
164
  public function is_registered_app_page( $page_slug ) {
165
- $pages = wp_list_pluck( $this->get_registered_app_pages(), 'slug' );
166
  $pages[] = 'optin-monster-api-settings';
167
  $pages[] = 'optin-monster-dashboard';
168
 
@@ -249,7 +313,7 @@ class OMAPI_Pages {
249
 
250
  if ( $this->is_registered_app_page( $plugin_page ) ) {
251
  $classes[] = 'omapi-app';
252
- $classes[] = 'omapi-app-'. str_replace( 'optin-monster-', '', $plugin_page );
253
  }
254
 
255
  $classes = implode( ' ', $classes );
@@ -299,7 +363,7 @@ class OMAPI_Pages {
299
  );
300
 
301
  $pages = array(
302
- 'optin-monster-dashboard' => __( 'Dashboard', 'optin-monster-api' )
303
  );
304
  foreach ( $this->get_registered_pages() as $page ) {
305
  $pages[ $page['slug'] ] = ! empty( $page['title'] ) ? $page['title'] : $page['name'];
@@ -307,8 +371,8 @@ class OMAPI_Pages {
307
 
308
  $creds = $this->base->get_api_credentials();
309
 
310
- $admin_parts = parse_url( admin_url( 'admin.php' ) );
311
- $url_parts = parse_url( $this->base->url );
312
 
313
  $current_user = wp_get_current_user();
314
 
@@ -320,7 +384,7 @@ class OMAPI_Pages {
320
  'siteId' => $this->base->get_site_id(),
321
  'siteIds' => $this->base->get_site_ids(),
322
  'wpUrl' => trailingslashit( site_url() ),
323
- 'adminUrl' => $this->base->menu->admin_page_url(),
324
  'restUrl' => rest_url(),
325
  'adminPath' => $admin_parts['path'],
326
  'apijsUrl' => OPTINMONSTER_APIJS_URL,
@@ -328,12 +392,13 @@ class OMAPI_Pages {
328
  'omAppApiUrl' => untrailingslashit( OPTINMONSTER_API_URL ),
329
  'omAppCdnURL' => untrailingslashit( OPTINMONSTER_CDN_URL ),
330
  'newCampaignUrl' => untrailingslashit( esc_url_raw( admin_url( 'admin.php?page=optin-monster-templates' ) ) ),
 
331
  'pluginPath' => $url_parts['path'],
332
  'omStaticDataKey' => 'omWpApi',
333
  'isItWp' => true,
334
  // 'scriptPath' => $path,
335
  'pages' => $pages,
336
- 'titleTag' => $this->title_tag,
337
  'isWooActive' => OMAPI::is_woocommerce_active(),
338
  'isWooConnected' => OMAPI_WooCommerce::is_connected(),
339
  'blogname' => esc_attr( get_option( 'blogname' ) ),
@@ -341,8 +406,10 @@ class OMAPI_Pages {
341
  'userFirstName' => esc_attr( $current_user->user_firstname ),
342
  'userLastName' => esc_attr( $current_user->user_lastname ),
343
  'betaVersion' => $this->base->beta_version(),
 
344
  'partnerId' => OMAPI_Partners::get_id(),
345
  'partnerUrl' => OMAPI_Partners::has_partner_url(),
 
346
  )
347
  );
348
 
@@ -350,7 +417,7 @@ class OMAPI_Pages {
350
 
351
  $loader->localize( $js_args );
352
 
353
- wp_enqueue_script( $this->base->plugin_slug . '-api-script', $this->base->get_api_url(), $loader->handles['js'], null, true );
354
  add_filter( 'script_loader_tag', array( $this, 'filter_api_script' ), 10, 2 );
355
 
356
  return $loader;
1
  <?php
2
  /**
3
+ * Pages class.
4
+ *
5
+ * @since 1.9.10
6
+ *
7
+ * @package OMAPI
8
+ * @author Erik Jonasson
9
+ */
10
+
11
+ // Exit if accessed directly.
12
+ if ( ! defined( 'ABSPATH' ) ) {
13
+ exit;
14
+ }
15
+
16
+ /**
17
+ * Pages class.
18
  *
19
  * @since 1.9.10
20
  *
124
  'callback' => array( $this, 'render_app_loading_page' ),
125
  );
126
 
127
+ $this->pages['optin-monster-monsterleads'] = array(
128
  'name' => __( 'Subscribers', 'optin-monster-api' ),
129
  'app' => true,
130
+ 'callback' => array( $this, 'render_app_loading_page' ),
131
+ );
132
+
133
+ $this->pages['optin-monster-integrations'] = array(
134
+ 'name' => __( 'Integrations', 'optin-monster-api' ),
135
+ 'app' => true,
136
+ 'callback' => array( $this, 'render_app_loading_page' ),
137
  );
138
 
139
  $this->pages['optin-monster-trustpulse'] = array(
146
  'callback' => array( $this, 'render_app_loading_page' ),
147
  );
148
 
149
+ $this->pages['optin-monster-personalization'] = array(
150
+ 'name' => __( 'Personalization', 'optin-monster-api' ),
151
+ 'app' => true,
152
+ 'callback' => array( $this, 'render_app_loading_page' ),
153
+ );
154
+
155
+ $this->pages['optin-monster-university'] = array(
156
+ 'name' => __( 'University', 'optin-monster-api' ),
157
+ 'app' => true,
158
+ 'callback' => array( $this, 'render_app_loading_page' ),
159
+ );
160
+
161
  $this->pages['optin-monster-about'] = array(
162
  'name' => __( 'About Us', 'optin-monster-api' ),
163
  'app' => true,
170
  'hidden' => true,
171
  );
172
 
173
+ // If user upgradeable, add an upgrade link to menu.
174
+ $level = $this->base->can_ugrade();
175
+ if ( $level ) {
176
+ $this->pages['optin-monster-upgrade'] = array(
177
+ 'name' => 'vbp_pro' === $level
178
+ ? __( 'Upgrade to Growth', 'optin-monster-api' )
179
+ : __( 'Upgrade to Pro', 'optin-monster-api' ),
180
+ 'redirect' => esc_url_raw( OMAPI_Urls::upgrade( 'pluginMenu' ) ),
181
+ 'callback' => '__return_null',
182
+ );
183
+ add_filter( 'om_add_inline_script', array( $this, 'addUpgradeUrlToJs' ), 10, 2 );
184
+ }
185
+
186
  foreach ( $this->pages as $slug => $page ) {
187
  $this->pages[ $slug ]['slug'] = $slug;
188
  }
191
  return $this->pages;
192
  }
193
 
194
+ /**
195
+ * Add the menu upgrade url to the data sento to the global JS file.
196
+ *
197
+ * @since 2.4.0
198
+ *
199
+ * @param array $data Array of data for JS.
200
+ * @param string $handle The script handle.
201
+ *
202
+ * @return $data Array of data for JS.
203
+ */
204
+ public function addUpgradeUrlToJs( $data, $handle ) {
205
+ if ( $this->base->plugin_slug . '-global' === $handle ) {
206
+ $data['upgradeUrl'] = esc_url_raw( OMAPI_Urls::upgrade( 'pluginMenu' ) );
207
+ }
208
+
209
+ return $data;
210
+ }
211
+
212
  /**
213
  * Returns an array of our registered JS app pages.
214
  *
221
  /**
222
  * Whether given page slug is one of our registered JS app pages.
223
  *
224
+ * @param string $page_slug Page slug.
225
+ *
226
  * @return boolean
227
  */
228
  public function is_registered_app_page( $page_slug ) {
229
+ $pages = wp_list_pluck( $this->get_registered_app_pages(), 'slug' );
230
  $pages[] = 'optin-monster-api-settings';
231
  $pages[] = 'optin-monster-dashboard';
232
 
313
 
314
  if ( $this->is_registered_app_page( $plugin_page ) ) {
315
  $classes[] = 'omapi-app';
316
+ $classes[] = 'omapi-app-' . str_replace( 'optin-monster-', '', $plugin_page );
317
  }
318
 
319
  $classes = implode( ' ', $classes );
363
  );
364
 
365
  $pages = array(
366
+ 'optin-monster-dashboard' => __( 'Dashboard', 'optin-monster-api' ),
367
  );
368
  foreach ( $this->get_registered_pages() as $page ) {
369
  $pages[ $page['slug'] ] = ! empty( $page['title'] ) ? $page['title'] : $page['name'];
371
 
372
  $creds = $this->base->get_api_credentials();
373
 
374
+ $admin_parts = OMAPI_Utils::parse_url( admin_url( 'admin.php' ) );
375
+ $url_parts = OMAPI_Utils::parse_url( $this->base->url );
376
 
377
  $current_user = wp_get_current_user();
378
 
384
  'siteId' => $this->base->get_site_id(),
385
  'siteIds' => $this->base->get_site_ids(),
386
  'wpUrl' => trailingslashit( site_url() ),
387
+ 'adminUrl' => OMAPI_Urls::admin(),
388
  'restUrl' => rest_url(),
389
  'adminPath' => $admin_parts['path'],
390
  'apijsUrl' => OPTINMONSTER_APIJS_URL,
392
  'omAppApiUrl' => untrailingslashit( OPTINMONSTER_API_URL ),
393
  'omAppCdnURL' => untrailingslashit( OPTINMONSTER_CDN_URL ),
394
  'newCampaignUrl' => untrailingslashit( esc_url_raw( admin_url( 'admin.php?page=optin-monster-templates' ) ) ),
395
+ 'shareableUrl' => untrailingslashit( OPTINMONSTER_SHAREABLE_LINK ),
396
  'pluginPath' => $url_parts['path'],
397
  'omStaticDataKey' => 'omWpApi',
398
  'isItWp' => true,
399
  // 'scriptPath' => $path,
400
  'pages' => $pages,
401
+ 'titleTag' => html_entity_decode( $this->title_tag ),
402
  'isWooActive' => OMAPI::is_woocommerce_active(),
403
  'isWooConnected' => OMAPI_WooCommerce::is_connected(),
404
  'blogname' => esc_attr( get_option( 'blogname' ) ),
406
  'userFirstName' => esc_attr( $current_user->user_firstname ),
407
  'userLastName' => esc_attr( $current_user->user_lastname ),
408
  'betaVersion' => $this->base->beta_version(),
409
+ 'pluginVersion' => $this->base->version,
410
  'partnerId' => OMAPI_Partners::get_id(),
411
  'partnerUrl' => OMAPI_Partners::has_partner_url(),
412
+ 'showReview' => $this->base->review->should_show_review(),
413
  )
414
  );
415
 
417
 
418
  $loader->localize( $js_args );
419
 
420
+ wp_enqueue_script( $this->base->plugin_slug . '-api-script', OPTINMONSTER_APIJS_URL, $loader->handles['js'], null, true );
421
  add_filter( 'script_loader_tag', array( $this, 'filter_api_script' ), 10, 2 );
422
 
423
  return $loader;
OMAPI/Partners.php CHANGED
@@ -49,25 +49,25 @@ class OMAPI_Partners {
49
  * @return string
50
  */
51
  public static function get_sas_id() {
52
- $sasId = '';
53
 
54
- // Check if sas ID is a constant
55
  if ( defined( 'OPTINMONSTER_SAS_ID' ) ) {
56
- $sasId = OPTINMONSTER_SAS_ID;
57
  }
58
 
59
- // Now run any filters that may be on the sas ID
60
- $sasId = apply_filters( 'optinmonster_sas_id', $sasId );
61
 
62
  /**
63
  * If we still don't have a sas ID by this point
64
  * check the DB for an option
65
  */
66
- if ( empty( $sasId ) ) {
67
- $sasId = get_option( 'optinmonster_sas_id', $sasId );
68
  }
69
 
70
- return $sasId;
71
  }
72
 
73
  /**
@@ -85,25 +85,25 @@ class OMAPI_Partners {
85
  * @return string
86
  */
87
  public static function get_trial_id() {
88
- $trialId = '';
89
 
90
- // Check if trial ID is a constant
91
  if ( defined( 'OPTINMONSTER_TRIAL_ID' ) ) {
92
- $trialId = OPTINMONSTER_TRIAL_ID;
93
  }
94
 
95
- // Now run any filters that may be on the trial ID
96
- $trialId = apply_filters( 'optinmonster_trial_id', $trialId );
97
 
98
  /**
99
  * If we still don't have a trial ID by this point
100
  * check the DB for an option
101
  */
102
- if ( empty( $trialId ) ) {
103
- $trialId = get_option( 'optinmonster_trial_id', $trialId );
104
  }
105
 
106
- return $trialId;
107
  }
108
 
109
  /**
@@ -136,19 +136,22 @@ class OMAPI_Partners {
136
  $type = 'sas';
137
  }
138
 
139
-
140
- // Return the regular WP landing page by default
141
  $url = self::LANDING_URL;
142
 
143
- // Return the trial link if we have a trial ID
144
  if ( ! empty( $id ) ) {
145
  $url = self::get_affiliate_url( $id );
146
  }
147
 
148
- return apply_filters( 'optin_monster_action_link', $url, array(
149
- 'type' => $type,
150
- 'id' => $id,
151
- ) );
 
 
 
 
152
  }
153
 
154
  /**
49
  * @return string
50
  */
51
  public static function get_sas_id() {
52
+ $sas_id = '';
53
 
54
+ // Check if sas ID is a constant.
55
  if ( defined( 'OPTINMONSTER_SAS_ID' ) ) {
56
+ $sas_id = OPTINMONSTER_SAS_ID;
57
  }
58
 
59
+ // Now run any filters that may be on the sas ID.
60
+ $sas_id = apply_filters( 'optinmonster_sas_id', $sas_id );
61
 
62
  /**
63
  * If we still don't have a sas ID by this point
64
  * check the DB for an option
65
  */
66
+ if ( empty( $sas_id ) ) {
67
+ $sas_id = get_option( 'optinmonster_sas_id', $sas_id );
68
  }
69
 
70
+ return $sas_id;
71
  }
72
 
73
  /**
85
  * @return string
86
  */
87
  public static function get_trial_id() {
88
+ $trial_id = '';
89
 
90
+ // Check if trial ID is a constant.
91
  if ( defined( 'OPTINMONSTER_TRIAL_ID' ) ) {
92
+ $trial_id = OPTINMONSTER_TRIAL_ID;
93
  }
94
 
95
+ // Now run any filters that may be on the trial ID.
96
+ $trial_id = apply_filters( 'optinmonster_trial_id', $trial_id );
97
 
98
  /**
99
  * If we still don't have a trial ID by this point
100
  * check the DB for an option
101
  */
102
+ if ( empty( $trial_id ) ) {
103
+ $trial_id = get_option( 'optinmonster_trial_id', $trial_id );
104
  }
105
 
106
+ return $trial_id;
107
  }
108
 
109
  /**
136
  $type = 'sas';
137
  }
138
 
139
+ // Return the regular WP landing page by default.
 
140
  $url = self::LANDING_URL;
141
 
142
+ // Return the trial link if we have a trial ID.
143
  if ( ! empty( $id ) ) {
144
  $url = self::get_affiliate_url( $id );
145
  }
146
 
147
+ return apply_filters(
148
+ 'optin_monster_action_link',
149
+ $url,
150
+ array(
151
+ 'type' => $type,
152
+ 'id' => $id,
153
+ )
154
+ );
155
  }
156
 
157
  /**
OMAPI/Plugins.php CHANGED
@@ -29,6 +29,11 @@ class OMAPI_Plugins {
29
  */
30
  protected $base;
31
 
 
 
 
 
 
32
  public function __construct() {
33
  $this->base = OMAPI::get_instance();
34
  }
@@ -62,6 +67,7 @@ class OMAPI_Plugins {
62
  'class' => 'google-analytics-for-wordpressgoogleanalyticsphp',
63
  'check' => array( 'function' => 'MonsterInsights' ),
64
  'name' => 'MonsterInsights',
 
65
  'desc' => sprintf( __( '%s makes it effortless to properly connect your WordPress site with Google Analytics, so you can start making data-driven decisions to grow your business.', 'optin-monster-api' ), 'MonsterInsights' ),
66
  'url' => 'https://downloads.wordpress.org/plugin/google-analytics-for-wordpress.zip',
67
  'pro' => array(
@@ -111,6 +117,7 @@ class OMAPI_Plugins {
111
  ),
112
  ),
113
  'name' => 'AIOSEO',
 
114
  'desc' => sprintf( __( 'Easily set up proper SEO foundations for your site in less than 10 minutes with %s. It’s the most powerful and user-friendly WordPress SEO plugin, used by over 2 MILLION sites.', 'optin-monster-api' ), 'All-in-One SEO' ),
115
  'url' => 'https://downloads.wordpress.org/plugin/all-in-one-seo-pack.zip',
116
  'pro' => array(
@@ -268,7 +275,7 @@ class OMAPI_Plugins {
268
  *
269
  * @since 2.0.0
270
  *
271
- * @param string $plugin_url The Plugin URL
272
  * @return array On success.
273
  * @throws Exception On error.
274
  */
@@ -316,19 +323,23 @@ class OMAPI_Plugins {
316
  $plugin_basename = $installer->plugin_info();
317
 
318
  // Activate the plugin silently.
319
- if ( ! is_wp_error( activate_plugin( $plugin_basename ) ) ) {
 
 
320
  return array(
321
  'message' => esc_html__( 'Plugin installed & activated.', 'optin-monster-api' ),
322
  'is_activated' => true,
323
  'basename' => $plugin_basename,
324
  );
325
- }
326
 
327
- return array(
328
- 'message' => esc_html__( 'Plugin installed.', 'optin-monster-api' ),
329
- 'is_activated' => false,
330
- 'basename' => $plugin_basename,
331
- );
 
 
 
332
  }
333
 
334
  /**
@@ -351,15 +362,32 @@ class OMAPI_Plugins {
351
  require_once ABSPATH . 'wp-admin/includes/plugin.php';
352
  }
353
 
354
- $activate = activate_plugins( sanitize_text_field( $plugin_id ) );
355
 
356
  if ( is_wp_error( $activate ) ) {
357
  $e = new OMAPI_WpErrorException();
358
  throw $e->setWpError( $activate );
359
  }
360
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
361
  return array(
362
- 'message' => esc_html__( 'Plugin activated.', 'optin-monster-api' ),
 
363
  );
364
  }
365
 
29
  */
30
  protected $base;
31
 
32
+ /**
33
+ * Constructor.
34
+ *
35
+ * @since 1.8.0
36
+ */
37
  public function __construct() {
38
  $this->base = OMAPI::get_instance();
39
  }
67
  'class' => 'google-analytics-for-wordpressgoogleanalyticsphp',
68
  'check' => array( 'function' => 'MonsterInsights' ),
69
  'name' => 'MonsterInsights',
70
+ /* translators: %s - MonsterInsights Plugin name.*/
71
  'desc' => sprintf( __( '%s makes it effortless to properly connect your WordPress site with Google Analytics, so you can start making data-driven decisions to grow your business.', 'optin-monster-api' ), 'MonsterInsights' ),
72
  'url' => 'https://downloads.wordpress.org/plugin/google-analytics-for-wordpress.zip',
73
  'pro' => array(
117
  ),
118
  ),
119
  'name' => 'AIOSEO',
120
+ /* translators: %s - AIOSEO Plugin name.*/
121
  'desc' => sprintf( __( 'Easily set up proper SEO foundations for your site in less than 10 minutes with %s. It’s the most powerful and user-friendly WordPress SEO plugin, used by over 2 MILLION sites.', 'optin-monster-api' ), 'All-in-One SEO' ),
122
  'url' => 'https://downloads.wordpress.org/plugin/all-in-one-seo-pack.zip',
123
  'pro' => array(
275
  *
276
  * @since 2.0.0
277
  *
278
+ * @param string $plugin_url The Plugin URL.
279
  * @return array On success.
280
  * @throws Exception On error.
281
  */
323
  $plugin_basename = $installer->plugin_info();
324
 
325
  // Activate the plugin silently.
326
+ try {
327
+ $this->activate_plugin( $plugin_basename );
328
+
329
  return array(
330
  'message' => esc_html__( 'Plugin installed & activated.', 'optin-monster-api' ),
331
  'is_activated' => true,
332
  'basename' => $plugin_basename,
333
  );
 
334
 
335
+ } catch ( \Exception $e ) {
336
+
337
+ return array(
338
+ 'message' => esc_html__( 'Plugin installed.', 'optin-monster-api' ),
339
+ 'is_activated' => false,
340
+ 'basename' => $plugin_basename,
341
+ );
342
+ }
343
  }
344
 
345
  /**
362
  require_once ABSPATH . 'wp-admin/includes/plugin.php';
363
  }
364
 
365
+ $activate = activate_plugin( sanitize_text_field( $plugin_id ), '', false, true );
366
 
367
  if ( is_wp_error( $activate ) ) {
368
  $e = new OMAPI_WpErrorException();
369
  throw $e->setWpError( $activate );
370
  }
371
 
372
+ // Prevent the various welcome/onboarding redirects that may occur when activating plugins.
373
+ switch ( $plugin_id ) {
374
+ case 'google-analytics-for-wordpress/googleanalytics.php':
375
+ delete_transient( '_monsterinsights_activation_redirect' );
376
+ break;
377
+ case 'wpforms-lite/wpforms.php':
378
+ update_option( 'wpforms_activation_redirect', true );
379
+ break;
380
+ case 'all-in-one-seo-pack/all_in_one_seo_pack.php':
381
+ update_option( 'aioseo_activation_redirect', true );
382
+ break;
383
+ case 'trustpulse-api/trustpulse.php':
384
+ delete_option( 'trustpulse_api_plugin_do_activation_redirect' );
385
+ break;
386
+ }
387
+
388
  return array(
389
+ 'message' => esc_html__( 'Plugin activated.', 'optin-monster-api' ),
390
+ 'basename' => $plugin_id,
391
  );
392
  }
393
 
OMAPI/Refresh.php CHANGED
@@ -210,7 +210,8 @@ class OMAPI_Refresh {
210
 
211
  // Set additional flags.
212
  $args['wp'] = $GLOBALS['wp_version'];
213
- $args['v'] = $this->base->asset_version();
 
214
  $args['restUrl'] = esc_url_raw( get_rest_url() );
215
  $args['homeUrl'] = esc_url_raw( home_url() );
216
 
@@ -252,10 +253,20 @@ class OMAPI_Refresh {
252
  * @return OMAPI_Refresh
253
  */
254
  protected function handle_error( $error ) {
 
 
 
 
 
 
255
 
256
- // If no optins available, make sure they get deleted.
257
- if ( in_array( $error->get_error_code(), array( 'optins', 'no-campaigns-error' ), true ) ) {
258
- $this->base->save->store_optins( array() );
 
 
 
 
259
  }
260
 
261
  // Set an error message.
210
 
211
  // Set additional flags.
212
  $args['wp'] = $GLOBALS['wp_version'];
213
+ $args['av'] = $this->base->asset_version();
214
+ $args['v'] = $this->base->version;
215
  $args['restUrl'] = esc_url_raw( get_rest_url() );
216
  $args['homeUrl'] = esc_url_raw( home_url() );
217
 
253
  * @return OMAPI_Refresh
254
  */
255
  protected function handle_error( $error ) {
256
+ switch ( $error->get_error_code() ) {
257
+ // If no optins available, make sure they get deleted.
258
+ case 'optins':
259
+ case 'no-campaigns-error':
260
+ $this->base->save->store_optins( array() );
261
+ break;
262
 
263
+ case 'referrer-error':
264
+ $api = OMAPI_Api::instance();
265
+ $result = $this->base->sites->check_existing_site( $api->get_creds() );
266
+ if ( is_wp_error( $result ) ) {
267
+ $error = $result;
268
+ }
269
+ break;
270
  }
271
 
272
  // Set an error message.
OMAPI/RestApi.php CHANGED
@@ -78,7 +78,7 @@ class OMAPI_RestApi {
78
  // Filter only available in WP 5.5.
79
  add_filter( 'rest_allowed_cors_headers', array( $this, 'set_allow_headers' ), 999 );
80
 
81
- // Fall-through to check if we still need to set header (WP < 5.5)
82
  add_filter( 'rest_send_nocache_headers', array( $this, 'fallback_set_allow_headers' ), 999 );
83
 
84
  // Fetch some quick info about this WP installation.
@@ -103,6 +103,26 @@ class OMAPI_RestApi {
103
  )
104
  );
105
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
106
  // Route for triggering refreshing/syncing of all campaigns.
107
  register_rest_route(
108
  $this->namespace,
@@ -258,6 +278,19 @@ class OMAPI_RestApi {
258
  )
259
  );
260
 
 
 
 
 
 
 
 
 
 
 
 
 
 
261
  register_rest_route(
262
  $this->namespace,
263
  'api',
@@ -287,6 +320,16 @@ class OMAPI_RestApi {
287
  'callback' => array( $this, 'update_settings' ),
288
  )
289
  );
 
 
 
 
 
 
 
 
 
 
290
  }
291
 
292
  /**
@@ -346,16 +389,17 @@ class OMAPI_RestApi {
346
  *
347
  * @since 1.9.10
348
  *
349
- * @param WP_REST_Request $request The REST Request.
350
  * @return WP_REST_Response The API Response
351
  */
352
- public function refresh_campaigns( $request ) {
353
- $this->base->refresh->refresh();
354
 
355
- return new WP_REST_Response(
356
- array( 'message' => esc_html__( 'OK', 'optin-monster-api' ) ),
357
- 200
358
- );
 
 
359
  }
360
 
361
  /**
@@ -366,11 +410,9 @@ class OMAPI_RestApi {
366
  *
367
  * @since 1.9.10
368
  *
369
- * @param WP_REST_Request $request The REST Request.
370
- *
371
  * @return WP_REST_Response
372
  */
373
- public function output_info( $request ) {
374
  return new WP_REST_Response( $this->base->refresh->get_info_args(), 200 );
375
  }
376
 
@@ -397,6 +439,67 @@ class OMAPI_RestApi {
397
  return new WP_REST_Response( $support->get_support_data( $format ), 200 );
398
  }
399
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
400
  /**
401
  * Triggering refreshing/syncing of a single campaign.
402
  *
@@ -554,7 +657,10 @@ class OMAPI_RestApi {
554
  : array();
555
 
556
  if ( $request->get_param( 'refresh' ) ) {
557
- $this->base->refresh->refresh();
 
 
 
558
  }
559
 
560
  $campaign_data = array();
@@ -1073,10 +1179,7 @@ class OMAPI_RestApi {
1073
  throw $e->setWpError( $result );
1074
  }
1075
 
1076
- return new WP_REST_Response(
1077
- array( 'message' => esc_html__( 'OK', 'optin-monster-api' ) ),
1078
- 200
1079
- );
1080
 
1081
  } catch ( Exception $e ) {
1082
  return $this->exception_to_response( $e );
@@ -1115,6 +1218,73 @@ class OMAPI_RestApi {
1115
  return OMAPI::get_instance()->can_access( 'store_api_key' );
1116
  }
1117
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1118
  /**
1119
  * Handles disconnecting the API key.
1120
  *
@@ -1223,17 +1393,32 @@ class OMAPI_RestApi {
1223
  'hide_announcements' => array(
1224
  'validate' => 'is_bool',
1225
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1226
  );
1227
 
1228
- $options = $this->base->get_option();
1229
- $hasSettings = false;
1230
 
1231
  foreach ( $settings as $setting => $value ) {
1232
  if ( empty( $allowed_settings[ $setting ] ) ) {
1233
  continue;
1234
  }
1235
 
1236
- $hasSettings = true;
1237
 
1238
  if ( isset( $options[ $setting ] ) && $value === $options[ $setting ] ) {
1239
  continue;
@@ -1250,10 +1435,37 @@ class OMAPI_RestApi {
1250
  $options[ $setting ] = sanitize_text_field( $value );
1251
  break;
1252
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1253
  }
 
 
 
 
 
 
 
 
1254
  }
1255
 
1256
- if ( ! $hasSettings ) {
1257
  throw new Exception( esc_html__( 'Invalid Settings!', 'optin-monster-api' ), 400 );
1258
  }
1259
 
@@ -1361,13 +1573,13 @@ class OMAPI_RestApi {
1361
  }
1362
 
1363
  /**
1364
- * Convert an exception to a REST API response object.
1365
  *
1366
  * @since 2.0.0
1367
  *
1368
  * @param Exception $e The exception.
1369
  *
1370
- * @return WP_REST_Response
1371
  */
1372
  protected function exception_to_response( Exception $e ) {
1373
 
@@ -1377,27 +1589,57 @@ class OMAPI_RestApi {
1377
  }
1378
 
1379
  $data = ! empty( $e->data ) ? $e->data : array();
 
 
 
 
 
 
 
 
 
 
1380
 
1381
- if ( rest_authorization_required_code() === $e->getCode() ) {
 
1382
 
1383
- $data = wp_parse_args(
1384
- $data,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1385
  array(
1386
- 'status' => $e->getCode(),
1387
- )
 
1388
  );
1389
 
1390
- return new WP_Error( 'omapp_rest_forbidden', $e->getMessage(), $data );
 
1391
  }
1392
 
1393
- $data = wp_parse_args(
1394
- $data,
1395
- array(
1396
- 'message' => $e->getMessage(),
1397
- )
1398
- );
1399
-
1400
- return new WP_REST_Response( $data, $e->getCode() );
1401
  }
1402
 
1403
  /**
@@ -1425,4 +1667,42 @@ class OMAPI_RestApi {
1425
  throw new Exception( esc_html__( 'Security token invalid!', 'optin-monster-api' ), rest_authorization_required_code() );
1426
  }
1427
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1428
  }
78
  // Filter only available in WP 5.5.
79
  add_filter( 'rest_allowed_cors_headers', array( $this, 'set_allow_headers' ), 999 );
80
 
81
+ // Fall-through to check if we still need to set header (WP < 5.5).
82
  add_filter( 'rest_send_nocache_headers', array( $this, 'fallback_set_allow_headers' ), 999 );
83
 
84
  // Fetch some quick info about this WP installation.
103
  )
104
  );
105
 
106
+ // Toggles rule debug.
107
+ register_rest_route(
108
+ $this->namespace,
109
+ 'support/debug/enable',
110
+ array(
111
+ 'methods' => 'GET',
112
+ 'permission_callback' => array( $this, 'logged_in_or_has_api_key' ),
113
+ 'callback' => array( $this, 'rule_debug_enable' ),
114
+ )
115
+ );
116
+ register_rest_route(
117
+ $this->namespace,
118
+ 'support/debug/disable',
119
+ array(
120
+ 'methods' => 'GET',
121
+ 'permission_callback' => array( $this, 'logged_in_or_has_api_key' ),
122
+ 'callback' => array( $this, 'rule_debug_disable' ),
123
+ )
124
+ );
125
+
126
  // Route for triggering refreshing/syncing of all campaigns.
127
  register_rest_route(
128
  $this->namespace,
278
  )
279
  );
280
 
281
+ // Only register the regenerate route when we have a token in the DB.
282
+ if ( OMAPI_ApiAuth::has_token() ) {
283
+ register_rest_route(
284
+ $this->namespace,
285
+ 'api/regenerate',
286
+ array(
287
+ 'methods' => 'POST',
288
+ 'permission_callback' => array( $this, 'can_store_regenerated_api_key' ),
289
+ 'callback' => array( $this, 'store_regenerated_api_key' ),
290
+ )
291
+ );
292
+ }
293
+
294
  register_rest_route(
295
  $this->namespace,
296
  'api',
320
  'callback' => array( $this, 'update_settings' ),
321
  )
322
  );
323
+
324
+ register_rest_route(
325
+ $this->namespace,
326
+ 'review/dismiss',
327
+ array(
328
+ 'methods' => 'POST',
329
+ 'permission_callback' => array( $this, 'can_dismiss_review' ),
330
+ 'callback' => array( $this, 'dismiss_review' ),
331
+ )
332
+ );
333
  }
334
 
335
  /**
389
  *
390
  * @since 1.9.10
391
  *
 
392
  * @return WP_REST_Response The API Response
393
  */
394
+ public function refresh_campaigns() {
395
+ $result = $this->base->refresh->refresh();
396
 
397
+ return is_wp_error( $result )
398
+ ? $this->wp_error_to_response( $result, OMAPI_Api::instance()->response_body )
399
+ : new WP_REST_Response(
400
+ array( 'message' => esc_html__( 'OK', 'optin-monster-api' ) ),
401
+ 200
402
+ );
403
  }
404
 
405
  /**
410
  *
411
  * @since 1.9.10
412
  *
 
 
413
  * @return WP_REST_Response
414
  */
415
+ public function output_info() {
416
  return new WP_REST_Response( $this->base->refresh->get_info_args(), 200 );
417
  }
418
 
439
  return new WP_REST_Response( $support->get_support_data( $format ), 200 );
440
  }
441
 
442
+ /**
443
+ * Enables the rules debug output for this site.
444
+ * (Still requires the omwpdebug query var on the frontend)
445
+ *
446
+ * Route: GET omapp/v1/support/debug/enable
447
+ *
448
+ * @since 2.4.0
449
+ *
450
+ * @param WP_REST_Request $request The REST Request.
451
+ *
452
+ * @return WP_REST_Response
453
+ */
454
+ public function rule_debug_enable() {
455
+ return $this->toggle_rule_debug( true );
456
+ }
457
+
458
+ /**
459
+ * Disables the rules debug output for this site.
460
+ *
461
+ * Route: GET omapp/v1/support/debug/disable
462
+ *
463
+ * @since 2.4.0
464
+ *
465
+ * @param WP_REST_Request $request The REST Request.
466
+ *
467
+ * @return WP_REST_Response
468
+ */
469
+ public function rule_debug_disable() {
470
+ return $this->toggle_rule_debug( false );
471
+ }
472
+
473
+ /**
474
+ * Toggles the rules debug setting.
475
+ *
476
+ * @since 2.4.0
477
+ *
478
+ * @param boolean $enable Whether to enable/disable the rules debug setting.
479
+ *
480
+ * @return WP_REST_Response
481
+ */
482
+ protected function toggle_rule_debug( $enable ) {
483
+ $options = $this->base->get_option();
484
+
485
+ if ( $enable ) {
486
+ $options['api']['omwpdebug'] = true;
487
+ } else {
488
+ unset( $options['api']['omwpdebug'] );
489
+ }
490
+
491
+ $updated = $this->base->save->update_option( $options );
492
+
493
+ return new WP_REST_Response(
494
+ array(
495
+ 'message' => $updated
496
+ ? esc_html__( 'OK', 'optin-monster-api' )
497
+ : esc_html__( 'Not Modified', 'optin-monster-api' ),
498
+ ),
499
+ $updated ? 200 : 202
500
+ );
501
+ }
502
+
503
  /**
504
  * Triggering refreshing/syncing of a single campaign.
505
  *
657
  : array();
658
 
659
  if ( $request->get_param( 'refresh' ) ) {
660
+ $result = $this->refresh_campaigns();
661
+ if ( is_wp_error( $result ) ) {
662
+ return $result;
663
+ }
664
  }
665
 
666
  $campaign_data = array();
1179
  throw $e->setWpError( $result );
1180
  }
1181
 
1182
+ return new WP_REST_Response( $result, 200 );
 
 
 
1183
 
1184
  } catch ( Exception $e ) {
1185
  return $this->exception_to_response( $e );
1218
  return OMAPI::get_instance()->can_access( 'store_api_key' );
1219
  }
1220
 
1221
+ /**
1222
+ * Handles storing the regenerated API key.
1223
+ *
1224
+ * Route: POST omapp/v1/api/regenerate
1225
+ *
1226
+ * @since 2.6.5
1227
+ *
1228
+ * @param WP_REST_Request $request The REST Request.
1229
+ *
1230
+ * @return WP_REST_Response The API Response
1231
+ */
1232
+ public function store_regenerated_api_key( $request ) {
1233
+ try {
1234
+ $apikey = $request->get_param( 'key' );
1235
+ if ( empty( $apikey ) ) {
1236
+ throw new Exception( esc_html__( 'API Key Missing!', 'optin-monster-api' ), 400 );
1237
+ }
1238
+
1239
+ $options = $this->base->get_option();
1240
+ $options['api']['apikey'] = $apikey;
1241
+ $this->base->save->update_option( $options );
1242
+
1243
+ OMAPI_ApiAuth::delete_token();
1244
+
1245
+ return $this->output_info();
1246
+
1247
+ } catch ( Exception $e ) {
1248
+ OMAPI_ApiAuth::delete_token();
1249
+
1250
+ return $this->exception_to_response( $e );
1251
+ }
1252
+
1253
+ }
1254
+
1255
+ /**
1256
+ * Determine if we can store given regenerated api key.
1257
+ *
1258
+ * @since 2.6.5
1259
+ *
1260
+ * @param WP_REST_Request $request The REST Request.
1261
+ *
1262
+ * @return bool
1263
+ */
1264
+ public function can_store_regenerated_api_key( $request ) {
1265
+ try {
1266
+ $tt = $request->get_param( 'tt' );
1267
+ $apikey = $request->get_param( 'key' );
1268
+
1269
+ if ( empty( $tt ) || empty( $apikey ) ) {
1270
+ throw new Exception( esc_html__( 'Required Credentials Missing!', 'optin-monster-api' ), rest_authorization_required_code() );
1271
+ }
1272
+
1273
+ $validated = OMAPI_ApiAuth::validate_token( $tt );
1274
+ if ( empty( $validated ) ) {
1275
+ throw new Exception( esc_html__( 'Invalid token!', 'optin-monster-api' ), 403 );
1276
+ }
1277
+
1278
+ return true;
1279
+
1280
+ } catch ( Exception $e ) {
1281
+
1282
+ OMAPI_ApiAuth::delete_token();
1283
+
1284
+ return $this->exception_to_response( $e );
1285
+ }
1286
+ }
1287
+
1288
  /**
1289
  * Handles disconnecting the API key.
1290
  *
1393
  'hide_announcements' => array(
1394
  'validate' => 'is_bool',
1395
  ),
1396
+ 'accountId' => array(
1397
+ 'validate' => 'is_string',
1398
+ ),
1399
+ 'currentLevel' => array(
1400
+ 'validate' => 'is_string',
1401
+ ),
1402
+ 'plan' => array(
1403
+ 'validate' => 'is_string',
1404
+ ),
1405
+ 'customApiUrl' => array(
1406
+ 'validate' => 'is_string',
1407
+ ),
1408
+ 'apiCname' => array(
1409
+ 'validate' => 'is_string',
1410
+ ),
1411
  );
1412
 
1413
+ $options = $this->base->get_option();
1414
+ $has_settings = false;
1415
 
1416
  foreach ( $settings as $setting => $value ) {
1417
  if ( empty( $allowed_settings[ $setting ] ) ) {
1418
  continue;
1419
  }
1420
 
1421
+ $has_settings = true;
1422
 
1423
  if ( isset( $options[ $setting ] ) && $value === $options[ $setting ] ) {
1424
  continue;
1435
  $options[ $setting ] = sanitize_text_field( $value );
1436
  break;
1437
  }
1438
+ switch ( $setting ) {
1439
+ case 'customApiUrl':
1440
+ $options[ $setting ] = $value
1441
+ ? 0 === strpos( $value, 'https://' )
1442
+ ? $value
1443
+ : 'https://' . $value . '/app/js/api.min.js'
1444
+ : '';
1445
+ break;
1446
+ }
1447
+ }
1448
+ }
1449
+
1450
+ // Looks like we want to toggle the omwpdebug setting.
1451
+ if ( isset( $settings['omwpdebug'] ) ) {
1452
+ $enabled = wp_validate_boolean( $settings['omwpdebug'] );
1453
+ if ( empty( $enabled ) ) {
1454
+ unset( $option['api']['omwpdebug'] );
1455
+ } else {
1456
+ $options['api']['omwpdebug'] = true;
1457
  }
1458
+ $has_settings = true;
1459
+ }
1460
+
1461
+ // Looks like we want to toggle the beta setting.
1462
+ if ( isset( $settings['omwpbeta'] ) ) {
1463
+ $enabled = wp_validate_boolean( $settings['omwpdebug'] );
1464
+ $options['beta'] = ! empty( $enabled );
1465
+ $has_settings = true;
1466
  }
1467
 
1468
+ if ( ! $has_settings ) {
1469
  throw new Exception( esc_html__( 'Invalid Settings!', 'optin-monster-api' ), 400 );
1470
  }
1471
 
1573
  }
1574
 
1575
  /**
1576
+ * Convert an exception to a REST API WP_Error object.
1577
  *
1578
  * @since 2.0.0
1579
  *
1580
  * @param Exception $e The exception.
1581
  *
1582
+ * @return WP_Error
1583
  */
1584
  protected function exception_to_response( Exception $e ) {
1585
 
1589
  }
1590
 
1591
  $data = ! empty( $e->data ) ? $e->data : array();
1592
+ $data = wp_parse_args(
1593
+ $data,
1594
+ array(
1595
+ 'status' => $e->getCode(),
1596
+ )
1597
+ );
1598
+
1599
+ $error_code = rest_authorization_required_code() === $e->getCode()
1600
+ ? 'omapp_rest_forbidden'
1601
+ : 'omapp_rest_error';
1602
 
1603
+ return new WP_Error( $error_code, $e->getMessage(), $data );
1604
+ }
1605
 
1606
+ /**
1607
+ * Convert a WP_Error to a proper REST API WP_Error object.
1608
+ *
1609
+ * @since 2.6.5
1610
+ *
1611
+ * @param WP_Error $e The WP_Error object.
1612
+ * @param mixed $data Data to include in the error data.
1613
+ *
1614
+ * @return WP_Error
1615
+ */
1616
+ protected function wp_error_to_response( WP_Error $e, $data = array() ) {
1617
+ $api = OMAPI_Api::instance();
1618
+
1619
+ $data = is_array( $data ) || is_object( $data ) ? (array) $data : array();
1620
+ $error_data = $e->get_error_data();
1621
+ $error_message = $e->get_error_message();
1622
+ $error_code = $e->get_error_code();
1623
+
1624
+ if ( empty( $error_data['status'] ) ) {
1625
+
1626
+ $status = is_numeric( $error_data ) ? $error_data : 400;
1627
+ $error_code = (string) rest_authorization_required_code() === (string) $status
1628
+ ? 'omapp_rest_forbidden'
1629
+ : 'omapp_rest_error';
1630
+
1631
+ $error_data = wp_parse_args(
1632
  array(
1633
+ 'status' => $status,
1634
+ ),
1635
+ $data
1636
  );
1637
 
1638
+ } else {
1639
+ $error_data = wp_parse_args( $error_data, $data );
1640
  }
1641
 
1642
+ return new WP_Error( $error_code, $error_message, $error_data );
 
 
 
 
 
 
 
1643
  }
1644
 
1645
  /**
1667
  throw new Exception( esc_html__( 'Security token invalid!', 'optin-monster-api' ), rest_authorization_required_code() );
1668
  }
1669
  }
1670
+
1671
+ /**
1672
+ * Determine if user can dismiss review.
1673
+ *
1674
+ * @since 2.6.1
1675
+ *
1676
+ * @param WP_REST_Request $request The REST Request.
1677
+ *
1678
+ * @return bool
1679
+ */
1680
+ public function can_dismiss_review( $request ) {
1681
+ try {
1682
+ $this->verify_request_nonce( $request );
1683
+ } catch ( Exception $e ) {
1684
+ return $this->exception_to_response( $e );
1685
+ }
1686
+
1687
+ return is_user_logged_in() &&
1688
+ OMAPI::get_instance()->can_access( 'review' );
1689
+ }
1690
+
1691
+ /**
1692
+ * Determine if user can dismiss review.
1693
+ *
1694
+ * @since 2.6.1
1695
+ *
1696
+ * @param WP_REST_Request $request The REST Request.
1697
+ *
1698
+ * @return bool
1699
+ */
1700
+ public function dismiss_review( $request ) {
1701
+ $this->base->review->dismiss_review( $request->get_param( 'later' ) );
1702
+
1703
+ return new WP_REST_Response(
1704
+ array( 'message' => esc_html__( 'OK', 'optin-monster-api' ) ),
1705
+ 200
1706
+ );
1707
+ }
1708
  }
OMAPI/Review.php CHANGED
@@ -19,149 +19,56 @@ if ( ! defined( 'ABSPATH' ) ) {
19
  * @since 1.1.4.5
20
  */
21
  class OMAPI_Review {
22
-
23
  /**
24
- * Holds the class object.
25
- *
26
- * @since 1.1.4.5
27
- *
28
- * @var object
29
- */
30
- public static $instance;
31
-
32
- /**
33
- * Path to the file.
34
- *
35
- * @since 1.1.4.5
36
  *
37
- * @var string
38
- */
39
- public $file = __FILE__;
40
-
41
- /**
42
- * Holds the base class object.
43
- *
44
- * @since 1.1.4.5
45
- *
46
- * @var object
47
- */
48
- public $base;
49
-
50
- /**
51
- * Primary class constructor.
52
  *
53
- * @since 1.1.4.5
54
  */
55
- public function __construct() {
56
- // If we are not in admin or admin ajax, return.
57
- if ( ! is_admin() ) {
58
- return;
59
- }
60
-
61
- // If user is not logged in, return.
62
- if ( ! is_user_logged_in() ) {
63
- return;
64
- }
65
-
66
- // If user cannot manage_options, return.
67
- if ( ! current_user_can( 'manage_options' ) ) {
68
- return;
69
- }
70
-
71
- // Set our object.
72
- $this->set();
73
-
74
- add_action( 'wp_ajax_omapi_dismiss_review', array( $this, 'dismiss_review' ) );
75
 
76
- // If user is in admin ajax or doing cron, return.
77
- if ( ( defined( 'DOING_AJAX' ) && DOING_AJAX ) || ( defined( 'DOING_CRON' ) && DOING_CRON ) ) {
78
- return;
79
  }
80
 
81
- // Review Notices
82
- add_action( 'admin_notices', array( $this, 'review' ) );
83
- }
84
-
85
- /**
86
- * Sets our object instance and base class instance.
87
- *
88
- * @since 1.1.4.5
89
- */
90
- public function set() {
91
- self::$instance = $this;
92
- $this->base = OMAPI::get_instance();
93
- }
94
-
95
- /**
96
- * Add admin notices as needed for reviews.
97
- *
98
- * @since 1.1.6.1
99
- */
100
- public function review() {
101
- $review = get_option( 'omapi_review' );
102
-
103
  // If already dismissed...
104
  if ( ! empty( $review['dismissed'] ) ) {
105
-
106
  if ( empty( $review['later'] ) ) {
107
-
108
  // Dismissed and no later, so do not show.
109
- return;
110
  }
111
 
112
  $delayed_less_than_month_ago = ! empty( $review['later'] ) && $review['time'] + ( 30 * DAY_IN_SECONDS ) > time();
113
- if ( $delayed_less_than_month_ago ) {
114
 
 
115
  // Delayed less than a month ago, so do not show.
116
- return;
117
  }
118
  }
119
 
120
- // Check the installation time and find if it's ok to show the review notice.
121
- $option = $this->base->get_option();
122
-
123
- $installed_less_than_week_ago = $option['installed'] + ( 7 * DAY_IN_SECONDS ) > time();
124
-
125
- if ( $installed_less_than_week_ago ) {
126
-
127
- // Do not show the review if the plugin was installed less than 1 week ago.
128
- return;
129
- }
130
-
131
- // We have a candidate! Output a review message.
132
-
133
- wp_enqueue_script( $this->base->plugin_slug . '-notice', plugins_url( 'assets/js/notice.js', OMAPI_FILE ), array( 'jquery' ), $this->base->version, true );
134
- wp_localize_script(
135
- $this->base->plugin_slug . '-notice',
136
- 'omNotice',
137
- array(
138
- 'nonce' => wp_create_nonce( 'om-review-nonce' ),
139
- )
140
- );
141
-
142
- $this->base->output_view( 'review.php' );
143
  }
144
 
145
  /**
146
- * Dismiss the review nag
 
 
147
  *
148
  * @since 1.1.6.1
 
149
  */
150
- public function dismiss_review() {
151
-
152
- // Checking ajax nonce.
153
- if ( empty( $_POST['nonce'] ) || ! wp_verify_nonce( $_POST['nonce'], 'om-review-nonce' ) ) {
154
- wp_send_json_error();
155
- }
156
-
157
  $option = array(
158
  'time' => time(),
159
  'dismissed' => true,
160
- 'later' => ! empty( $_POST['later'] ) && wp_validate_boolean( $_POST['later'] ),
161
  );
162
 
163
  $option['updated'] = update_option( 'omapi_review', $option );
164
 
165
- wp_send_json_success( $option );
166
  }
167
  }
19
  * @since 1.1.4.5
20
  */
21
  class OMAPI_Review {
 
22
  /**
23
+ * Determine if review message should be shown
24
+ * based on backend rules.
 
 
 
 
 
 
 
 
 
 
25
  *
26
+ * @since 2.6.1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  *
28
+ * @return bool If it should show the review bar
29
  */
30
+ public function should_show_review() {
31
+ $review = get_option( 'omapi_review' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
 
33
+ if ( ! is_user_logged_in() || ! OMAPI::get_instance()->can_access( 'review' ) ) {
34
+ return false;
 
35
  }
36
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  // If already dismissed...
38
  if ( ! empty( $review['dismissed'] ) ) {
 
39
  if ( empty( $review['later'] ) ) {
 
40
  // Dismissed and no later, so do not show.
41
+ return false;
42
  }
43
 
44
  $delayed_less_than_month_ago = ! empty( $review['later'] ) && $review['time'] + ( 30 * DAY_IN_SECONDS ) > time();
 
45
 
46
+ if ( $delayed_less_than_month_ago ) {
47
  // Delayed less than a month ago, so do not show.
48
+ return false;
49
  }
50
  }
51
 
52
+ return true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  }
54
 
55
  /**
56
+ * Dismiss the review bar
57
+ *
58
+ * @param bool $later If delay the review for later.
59
  *
60
  * @since 1.1.6.1
61
+ * @since 2.6.1 Avoid using any request variables and receive later as parameter
62
  */
63
+ public function dismiss_review( $later = false ) {
 
 
 
 
 
 
64
  $option = array(
65
  'time' => time(),
66
  'dismissed' => true,
67
+ 'later' => ! empty( $later ),
68
  );
69
 
70
  $option['updated'] = update_option( 'omapi_review', $option );
71
 
72
+ return $option;
73
  }
74
  }
OMAPI/Rules.php CHANGED
@@ -325,8 +325,8 @@ class OMAPI_Rules {
325
  }
326
 
327
  // If query var is set and user can manage OM, output debug data.
328
- if ( $this->can_output_debug() ) {
329
- $this->output_debug();
330
  }
331
 
332
  return $should_output;
@@ -432,6 +432,12 @@ class OMAPI_Rules {
432
  */
433
  public function default_checks() {
434
 
 
 
 
 
 
 
435
  // Exclude posts/pages from optin display
436
 
437
  // Set flag for possibly not loading globally.
@@ -488,6 +494,18 @@ class OMAPI_Rules {
488
  if ( $this->item_in_field( get_post_type(), 'show' ) && ! OMAPI_Utils::is_front_or_search() ) {
489
  throw new OMAPI_Rules_True( 'include on post type but not front/search' );
490
  }
 
 
 
 
 
 
 
 
 
 
 
 
491
  }
492
 
493
  /**
@@ -763,46 +781,6 @@ class OMAPI_Rules {
763
  throw new Exception( sprintf( esc_html__( 'Invalid %1$s property: %2$s', 'optin-monster-api' ), __CLASS__, $property ) );
764
  }
765
 
766
- /**
767
- * Check if rules debug can be output.
768
- *
769
- * @since 2.0.0
770
- *
771
- * @return bool
772
- */
773
- public function can_output_debug() {
774
- $rules_debug = ! empty( $_GET['omwpdebug'] ) ? $_GET['omwpdebug'] : '';
775
-
776
- if ( $rules_debug ) {
777
- $omapi = OMAPI::get_instance();
778
- $disable = 'off' === $rules_debug;
779
- $decoded = base64_decode( base64_decode( $rules_debug ) );
780
- $debug_enabled = $omapi->get_option( 'api', 'omwpdebug' );
781
- $creds = $omapi->get_api_credentials();
782
- if (
783
- ! empty( $creds['apikey'] )
784
- && ( $decoded === $creds['apikey'] || $disable )
785
- ) {
786
-
787
- $option = $omapi->get_option();
788
-
789
- if ( $disable ) {
790
- unset( $option['api']['omwpdebug'] );
791
- $debug_enabled = false;
792
- } else {
793
- $option['api']['omwpdebug'] = true;
794
- $debug_enabled = true;
795
- }
796
- update_option( 'optin_monster_api', $option );
797
- }
798
-
799
- $rules_debug = $debug_enabled || is_user_logged_in() && $omapi->can_access( 'rules_debug' );
800
- }
801
-
802
- // If query var is set and user can manage OM, output debug data.
803
- return apply_filters( 'optin_monster_api_should_output_rules_debug', ! empty( $rules_debug ) );
804
- }
805
-
806
  /**
807
  * Outputs some debug data for the current campaign object.
808
  *
@@ -810,11 +788,13 @@ class OMAPI_Rules {
810
  *
811
  * @return void
812
  */
813
- protected function output_debug() {
814
  $show = $this->caught instanceof OMAPI_Rules_True;
815
 
 
 
816
  echo '<xmp class="_om-post-id">$post_id: ' . print_r( $this->post_id, true ) . '</xmp>';
817
- echo '<xmp class="_om-post-id">$debug_enabled: ' . print_r( OMAPI::get_instance()->get_option( 'api', 'omwpdebug' ), true ) . '</xmp>';
818
  echo '<xmp class="_om-campaign-status" style="color: ' . ( $show ? 'green' : 'red' ) . ';">' . $this->optin->post_name . ":\n" . print_r( $this->caught->getMessage(), true );
819
  $reasons = $this->caught->get_exceptions();
820
  if ( ! empty( $reasons ) ) {
@@ -839,5 +819,4 @@ class OMAPI_Rules {
839
  echo '<xmp class="_om-global-override" style="display:none;">$global_override?: ' . print_r( $this->global_override, true ) . '</xmp>';
840
  echo '<xmp class="_om-optin" style="display:none;">$optin: ' . print_r( $this->optin, true ) . '</xmp>';
841
  }
842
-
843
  }
325
  }
326
 
327
  // If query var is set and user can manage OM, output debug data.
328
+ if ( OMAPI_Debug::can_output_debug() ) {
329
+ $this->output_rules_debug();
330
  }
331
 
332
  return $should_output;
432
  */
433
  public function default_checks() {
434
 
435
+ // Check for global disable.
436
+ if ( get_post_meta( $this->post_id, 'om_disable_all_campaigns', true ) ) {
437
+ $this->global_override = false;
438
+ throw new OMAPI_Rules_False( "all campaigns disabled for this post ($this->post_id)" );
439
+ }
440
+
441
  // Exclude posts/pages from optin display
442
 
443
  // Set flag for possibly not loading globally.
494
  if ( $this->item_in_field( get_post_type(), 'show' ) && ! OMAPI_Utils::is_front_or_search() ) {
495
  throw new OMAPI_Rules_True( 'include on post type but not front/search' );
496
  }
497
+
498
+ // Check if we should show on a selected singular post type.
499
+ if ( $this->field_not_empty_array( 'show' ) ) {
500
+ foreach ( $this->get_field_value( 'show' ) as $show_value ) {
501
+ if ( 0 === strpos( $show_value, 'singular___' ) ) {
502
+ $post_type = str_replace( 'singular___', '', $show_value );
503
+ if ( is_singular( $post_type ) ) {
504
+ throw new OMAPI_Rules_True( 'include on singular post type: ' . $post_type );
505
+ }
506
+ }
507
+ }
508
+ }
509
  }
510
 
511
  /**
781
  throw new Exception( sprintf( esc_html__( 'Invalid %1$s property: %2$s', 'optin-monster-api' ), __CLASS__, $property ) );
782
  }
783
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
784
  /**
785
  * Outputs some debug data for the current campaign object.
786
  *
788
  *
789
  * @return void
790
  */
791
+ protected function output_rules_debug() {
792
  $show = $this->caught instanceof OMAPI_Rules_True;
793
 
794
+ echo '<xmp class="_om-campaign-sep">' . str_repeat( '-', 10 ) . $this->optin->post_name . str_repeat( '-', 10 ) . '</xmp>';
795
+
796
  echo '<xmp class="_om-post-id">$post_id: ' . print_r( $this->post_id, true ) . '</xmp>';
797
+ echo '<xmp class="_om-post-id">$debug_setting_enabled: ' . print_r( OMAPI::get_instance()->get_option( 'api', 'omwpdebug' ), true ) . '</xmp>';
798
  echo '<xmp class="_om-campaign-status" style="color: ' . ( $show ? 'green' : 'red' ) . ';">' . $this->optin->post_name . ":\n" . print_r( $this->caught->getMessage(), true );
799
  $reasons = $this->caught->get_exceptions();
800
  if ( ! empty( $reasons ) ) {
819
  echo '<xmp class="_om-global-override" style="display:none;">$global_override?: ' . print_r( $this->global_override, true ) . '</xmp>';
820
  echo '<xmp class="_om-optin" style="display:none;">$optin: ' . print_r( $this->optin, true ) . '</xmp>';
821
  }
 
822
  }
OMAPI/Save.php CHANGED
@@ -138,9 +138,9 @@ class OMAPI_Save {
138
  *
139
  * @since 1.3.5
140
  *
141
- * @param array $local_optins Array of local optin objects to sync.
142
- * @param array $optins Array of optin objects to store.
143
- * @param bool $enabled Whether newly-added campaigns are auto-enabled. Default is true.
144
  */
145
  public function sync_optins( $local_optins, $remote_optins, $enabled = true ) {
146
  foreach ( $local_optins as $local ) {
@@ -187,14 +187,20 @@ class OMAPI_Save {
187
  $status = 'draft';
188
  }
189
 
190
- $this->optin_to_db(
191
- array(
192
- 'ID' => $local->ID, // Existing ID
193
- 'post_title' => $optin->title,
194
- 'post_content' => $optin->output,
195
- 'post_status' => $status,
196
- )
197
- );
 
 
 
 
 
 
198
 
199
  $this->update_optin_meta( $local->ID, $optin );
200
  }
@@ -205,7 +211,7 @@ class OMAPI_Save {
205
  * @since 1.3.5
206
  *
207
  * @param string $slug The campaign slug.
208
- * @param object $optin. The optin object.
209
  * @param bool $enabled Whether the new campaigns are auto-enabled. Default is true.
210
  *
211
  * @return void
@@ -316,12 +322,7 @@ class OMAPI_Save {
316
  */
317
  protected function update_shortcodes_meta( $post_id, $shortcodes = null ) {
318
  if ( ! empty( $shortcodes ) ) {
319
-
320
- $shortcodes = is_array( $shortcodes )
321
- ? implode( '|||', array_map( 'htmlentities', $shortcodes ) )
322
- : (array) htmlentities( $shortcodes, ENT_COMPAT, 'UTF-8' );
323
-
324
- update_post_meta( $post_id, '_omapi_shortcode_output', $shortcodes );
325
  update_post_meta( $post_id, '_omapi_shortcode', true );
326
  } else {
327
  delete_post_meta( $post_id, '_omapi_shortcode_output' );
@@ -334,8 +335,8 @@ class OMAPI_Save {
334
  *
335
  * @since 1.9.8
336
  *
337
- * @param array $option The full `optin_monster_api` option array.
338
- * @param array $data Optional. The parameters passed in via POST request.
339
  *
340
  * @return mixed The results of update_option.
341
  */
@@ -369,15 +370,16 @@ class OMAPI_Save {
369
  *
370
  * @return array
371
  */
372
- public function woocommerce_autogenerate( $wp_error = true ) {
373
  $cookies = array();
374
  foreach ( $_COOKIE as $name => $val ) {
 
375
  $cookies[] = "$name=" . rawurlencode( is_array( $val ) ? serialize( $val ) : $val );
376
  }
377
  $cookies = implode( '; ', $cookies );
378
 
379
  $request_args = array(
380
- 'sslverify' => apply_filters( 'https_local_ssl_verify', true ),
381
  'body' => array(
382
  'action' => 'woocommerce_update_api_key',
383
  'description' => esc_html__( 'OptinMonster API Read-Access (Auto-Generated)', 'optin-monster-api' ),
@@ -391,7 +393,7 @@ class OMAPI_Save {
391
  ),
392
  );
393
  $response = wp_remote_post( admin_url( 'admin-ajax.php' ), $request_args );
394
- if ( $wp_error && is_wp_error( $response ) ) {
395
  return $response;
396
  }
397
 
@@ -455,11 +457,7 @@ class OMAPI_Save {
455
  } else {
456
 
457
  // Get the shop hostname.
458
- // NOTE: Error suppression is used as prior to PHP 5.3.3, an
459
- // E_WARNING would be generated when URL parsing failed.
460
- $site = function_exists( 'wp_parse_url' )
461
- ? wp_parse_url( $url )
462
- : @parse_url( $url );
463
  $host = isset( $site['host'] ) ? $site['host'] : '';
464
 
465
  // Set up the connected WooCommerce options.
@@ -502,4 +500,20 @@ class OMAPI_Save {
502
  $this->update_option( $option, $data );
503
  }
504
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
505
  }
138
  *
139
  * @since 1.3.5
140
  *
141
+ * @param array $local_optins Array of local optin objects to sync.
142
+ * @param array $remote_optins Array of optin objects to store.
143
+ * @param bool $enabled Whether newly-added campaigns are auto-enabled. Default is true.
144
  */
145
  public function sync_optins( $local_optins, $remote_optins, $enabled = true ) {
146
  foreach ( $local_optins as $local ) {
187
  $status = 'draft';
188
  }
189
 
190
+ if (
191
+ $optin->title !== $local->post_title
192
+ || $optin->output !== $local->post_content
193
+ || $status !== $local->post_status
194
+ ) {
195
+ $this->optin_to_db(
196
+ array(
197
+ 'ID' => $local->ID, // Existing ID.
198
+ 'post_title' => $optin->title,
199
+ 'post_content' => $optin->output,
200
+ 'post_status' => $status,
201
+ )
202
+ );
203
+ }
204
 
205
  $this->update_optin_meta( $local->ID, $optin );
206
  }
211
  * @since 1.3.5
212
  *
213
  * @param string $slug The campaign slug.
214
+ * @param object $optin The optin object.
215
  * @param bool $enabled Whether the new campaigns are auto-enabled. Default is true.
216
  *
217
  * @return void
322
  */
323
  protected function update_shortcodes_meta( $post_id, $shortcodes = null ) {
324
  if ( ! empty( $shortcodes ) ) {
325
+ update_post_meta( $post_id, '_omapi_shortcode_output', self::get_shortcodes_string( $shortcodes ) );
 
 
 
 
 
326
  update_post_meta( $post_id, '_omapi_shortcode', true );
327
  } else {
328
  delete_post_meta( $post_id, '_omapi_shortcode_output' );
335
  *
336
  * @since 1.9.8
337
  *
338
+ * @param array $option The full `optin_monster_api` option array.
339
+ * @param array $data Optional. The parameters passed in via POST request.
340
  *
341
  * @return mixed The results of update_option.
342
  */
370
  *
371
  * @return array
372
  */
373
+ public function woocommerce_autogenerate() {
374
  $cookies = array();
375
  foreach ( $_COOKIE as $name => $val ) {
376
+ // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.serialize_serialize
377
  $cookies[] = "$name=" . rawurlencode( is_array( $val ) ? serialize( $val ) : $val );
378
  }
379
  $cookies = implode( '; ', $cookies );
380
 
381
  $request_args = array(
382
+ 'sslverify' => apply_filters( 'https_local_ssl_verify', true ), // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
383
  'body' => array(
384
  'action' => 'woocommerce_update_api_key',
385
  'description' => esc_html__( 'OptinMonster API Read-Access (Auto-Generated)', 'optin-monster-api' ),
393
  ),
394
  );
395
  $response = wp_remote_post( admin_url( 'admin-ajax.php' ), $request_args );
396
+ if ( is_wp_error( $response ) ) {
397
  return $response;
398
  }
399
 
457
  } else {
458
 
459
  // Get the shop hostname.
460
+ $site = OMAPI_Utils::parse_url( $url );
 
 
 
 
461
  $host = isset( $site['host'] ) ? $site['host'] : '';
462
 
463
  // Set up the connected WooCommerce options.
500
  $this->update_option( $option, $data );
501
  }
502
  }
503
+
504
+ /**
505
+ * Parse shortcodes into a string.
506
+ *
507
+ * @since 2.2.0
508
+ *
509
+ * @param mixed $shortcodes Convert shorcodes array to a concatenated string.
510
+ *
511
+ * @return string
512
+ */
513
+ public static function get_shortcodes_string( $shortcodes ) {
514
+ return is_array( $shortcodes )
515
+ ? '|||' . implode( '|||', array_map( 'htmlentities', $shortcodes ) )
516
+ : '|||' . htmlentities( $shortcodes, ENT_COMPAT, 'UTF-8' );
517
+ }
518
+
519
  }
OMAPI/Shortcode.php CHANGED
@@ -108,29 +108,36 @@ class OMAPI_Shortcode {
108
  'optin-monster'
109
  );
110
 
111
- $optin_id = false;
 
 
 
 
 
112
  if ( ! empty( $atts['id'] ) ) {
113
- $optin_id = absint( $atts['id'] );
114
- } elseif ( isset( $atts['slug'] ) ) {
115
- $optin = $this->base->get_optin_by_slug( $atts['slug'] );
116
- if ( $optin ) {
117
- $optin_id = $optin->ID;
118
- }
119
- } else {
120
  // A custom attribute must have been passed. Allow it to be filtered to grab the optin ID from a custom source.
121
- $optin_id = apply_filters( 'optin_monster_api_custom_optin_id', false, $atts, $post );
122
  }
123
 
124
  // Allow the optin ID to be filtered before it is stored and used to create the optin output.
125
- $optin_id = apply_filters( 'optin_monster_api_pre_optin_id', $optin_id, $atts, $post );
126
 
127
- // If there is no optin, do nothing.
128
- if ( ! $optin_id ) {
129
  return false;
130
  }
131
 
132
- if ( empty( $optin->ID ) || (int) $optin_id !== (int) $optin->ID ) {
133
- $optin = $this->base->get_optin( $optin_id );
 
 
 
 
 
134
  }
135
 
136
  // Try to grab the stored HTML.
@@ -151,7 +158,7 @@ class OMAPI_Shortcode {
151
  $this->base->output->set_slug( $optin );
152
 
153
  // Return the HTML.
154
- return $html;
155
  }
156
 
157
  /**
@@ -167,8 +174,10 @@ class OMAPI_Shortcode {
167
  public function shortcode_v1( $atts ) {
168
 
169
  // Run the v2 implementation.
170
- $atts['slug'] = $atts['id'];
171
- unset( $atts['id'] );
 
 
172
 
173
  return $this->shortcode( $atts );
174
  }
108
  'optin-monster'
109
  );
110
 
111
+ $identifier = false;
112
+
113
+ if ( ! empty( $atts['slug'] ) ) {
114
+ $identifier = $atts['slug'];
115
+ }
116
+
117
  if ( ! empty( $atts['id'] ) ) {
118
+ $identifier = $atts['id'];
119
+ }
120
+
121
+ if ( empty( $identifier ) ) {
 
 
 
122
  // A custom attribute must have been passed. Allow it to be filtered to grab the optin ID from a custom source.
123
+ $identifier = apply_filters( 'optin_monster_api_custom_optin_id', false, $atts, $post );
124
  }
125
 
126
  // Allow the optin ID to be filtered before it is stored and used to create the optin output.
127
+ $identifier = apply_filters( 'optin_monster_api_pre_optin_id', $identifier, $atts, $post );
128
 
129
+ // If there is no identifier, do nothing.
130
+ if ( empty( $identifier ) ) {
131
  return false;
132
  }
133
 
134
+ $optin = ctype_digit( (string) $identifier )
135
+ ? $this->base->get_optin( absint( $identifier ) )
136
+ : $this->base->get_optin_by_slug( sanitize_text_field( $identifier ) );
137
+
138
+ // If there is no identifier, do nothing.
139
+ if ( empty( $optin ) ) {
140
+ return false;
141
  }
142
 
143
  // Try to grab the stored HTML.
158
  $this->base->output->set_slug( $optin );
159
 
160
  // Return the HTML.
161
+ return apply_filters( 'optin_monster_shortcode_output', $html, $optin, $atts );
162
  }
163
 
164
  /**
174
  public function shortcode_v1( $atts ) {
175
 
176
  // Run the v2 implementation.
177
+ if ( ! empty( $atts['id'] ) ) {
178
+ $atts['slug'] = $atts['id'];
179
+ unset( $atts['id'] );
180
+ }
181
 
182
  return $this->shortcode( $atts );
183
  }
OMAPI/Sites.php CHANGED
@@ -3,6 +3,8 @@
3
  * Rest API Class, where we register/execute any REST API Routes
4
  *
5
  * @since 1.8.0
 
 
6
  */
7
 
8
  // Exit if accessed directly.
@@ -17,17 +19,41 @@ if ( ! defined( 'ABSPATH' ) ) {
17
  */
18
  class OMAPI_Sites {
19
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  /**
21
  * The Base OMAPI Object
22
  *
23
- * @since 1.8.0
24
  *
25
  * @var OMAPI
26
  */
27
  protected $base;
28
 
 
 
 
 
 
29
  public function __construct() {
30
- $this->base = OMAPI::get_instance();
 
31
  }
32
 
33
  /**
@@ -35,9 +61,10 @@ class OMAPI_Sites {
35
  *
36
  * @since 1.8.0
37
  *
38
- * @param mixed $api_key If we want to use a custom API Key, pass it in
 
39
  *
40
- * @return array|null $sites An array of sites if the request is successful
41
  */
42
  public function fetch( $api_key = null, $get_cached = false ) {
43
  $cache_key = 'om_sites' . md5( $api_key );
@@ -56,30 +83,32 @@ class OMAPI_Sites {
56
  $body = OMAPI_Api::build( 'v2', 'sites/origin', 'GET', $creds )->request();
57
 
58
  if ( is_wp_error( $body ) ) {
59
- return $this->handle_error( $body );
60
  }
61
 
 
62
  $results = array(
63
  'siteId' => '',
64
  'siteIds' => array(),
65
  'customApiUrl' => '',
 
66
  );
67
 
68
  $domain = $this->get_domain();
69
  $tld = $this->get_tld( $domain );
70
 
71
  if ( ! empty( $body->data ) ) {
72
- $checkCnames = true;
73
  foreach ( $body->data as $site ) {
74
  if ( empty( $site->domain ) ) {
75
  continue;
76
  }
77
 
78
- $matches = $domain === (string) $site->domain;
79
- $wildcardDomain = '*.' === substr( $site->domain, 0, 2 ) && $tld === $this->get_tld( $site->domain );
80
 
81
  // Doesn't match, and not a wildcard? Bail.
82
- if ( ! $matches && ! $wildcardDomain ) {
83
  continue;
84
  }
85
 
@@ -88,12 +117,12 @@ class OMAPI_Sites {
88
  // If we don't have a siteId yet, set it to this one.
89
  // If we DO already have a siteId and this one is NOT a wildcard,
90
  // we want to overwrite with this one.
91
- if ( empty( $results['siteId'] ) || ! $wildcardDomain ) {
92
  $results['siteId'] = (string) $site->siteId;
93
  }
94
 
95
  // Do we have a custom cnamed api url to use?
96
- if ( $site->settings->enableCustomCnames && $checkCnames ) {
97
 
98
  $found = false;
99
  if ( $site->settings->cdnCname && $site->settings->cdnCnameVerified ) {
@@ -102,29 +131,38 @@ class OMAPI_Sites {
102
  $results['customApiUrl'] = 'https://' . $site->settings->cdnUrl . '/app/js/api.min.js';
103
  $found = true;
104
 
105
- } elseif ( $site->settings->apiCname && $site->settings->apiCnameVerified ) {
106
- // Not sure if this will wreak havoc during verification of the domains, so leaving it commented out for now.
107
- // $results['customApiUrl'] = 'https://' . $site->settings->apiUrl . '/a/app/js/api.min.js';
108
- // $found = true;
 
 
109
  }
110
 
111
  // If this isn't a wildcard domain, and we found a custom api url, we don't
112
  // need to continue checking cnames.
113
- if ( $found && ! $wildcardDomain ) {
114
- $checkCnames = false;
115
  }
116
  }
117
  }
118
  }
119
 
120
  if ( empty( $results['siteId'] ) ) {
 
 
 
 
 
121
  $site = $this->attempt_create_site( $creds );
122
  if ( is_wp_error( $site ) ) {
123
- return $this->handle_error( $site );
124
  }
125
 
 
126
  if ( ! empty( $site->siteId ) ) {
127
  $results['siteId'] = (string) $site->siteId;
 
128
  }
129
  }
130
 
@@ -132,6 +170,7 @@ class OMAPI_Sites {
132
  set_transient( $cache_key, $results, 5 * MINUTE_IN_SECONDS );
133
  }
134
 
 
135
  return $results;
136
  }
137
 
@@ -174,7 +213,7 @@ class OMAPI_Sites {
174
  */
175
  public function get_domain() {
176
  $url = site_url();
177
- $parsed = parse_url( $url );
178
  $hostname = ! empty( $parsed['host'] ) ? $parsed['host'] : $url;
179
  $domain = preg_replace( '/^www\./', '', $hostname );
180
 
@@ -186,7 +225,7 @@ class OMAPI_Sites {
186
  *
187
  * @since 2.0.1
188
  *
189
- * @param string $domain Domain to get tld for.
190
  *
191
  * @return string The tld.
192
  */
@@ -207,20 +246,68 @@ class OMAPI_Sites {
207
  *
208
  * @return WP_Error
209
  */
210
- public function handle_error( $error ) {
211
  $instance = OMAPI_Api::instance();
212
  if ( 402 === (int) $error->get_error_data() && ! empty( $instance->response_body->siteAmount ) ) {
213
 
214
  $message = sprintf(
 
215
  __( 'We tried to register your WordPress site with OptinMonster, but You have reached the maximum number of registered sites for your current OptinMonster plan.<br>Additional sites can be added to your account by <a href="%1$s" target="_blank" rel="noopener">upgrading</a> or <a href="%2$s" target="_blank" rel="noopener">purchasing additional site licenses</a>.', 'optin-monster-api' ),
216
  esc_url_raw( OPTINMONSTER_APP_URL . '/account/upgrade/?utm_source=app&utm_medium=upsell&utm_campaign=header&feature=sites/' ),
217
  esc_url_raw( OPTINMONSTER_APP_URL . '/account/billing/#additional-licenses' )
218
  );
219
 
220
- $error = new WP_Error( $error->get_error_code(), $message, 402 );
221
  }
222
 
223
  return $error;
224
  }
225
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
226
  }
3
  * Rest API Class, where we register/execute any REST API Routes
4
  *
5
  * @since 1.8.0
6
+ * @package OMAPI
7
+ * @author Justin Sternberg
8
  */
9
 
10
  // Exit if accessed directly.
19
  */
20
  class OMAPI_Sites {
21
 
22
+ /**
23
+ * Holds the class object.
24
+ *
25
+ * @since 2.3.0
26
+ *
27
+ * @var object
28
+ */
29
+ public static $instance;
30
+
31
+ /**
32
+ * Path to the file.
33
+ *
34
+ * @since 2.3.0
35
+ *
36
+ * @var string
37
+ */
38
+ public $file = __FILE__;
39
+
40
  /**
41
  * The Base OMAPI Object
42
  *
43
+ * @since 1.8.0
44
  *
45
  * @var OMAPI
46
  */
47
  protected $base;
48
 
49
+ /**
50
+ * Sets our object instance and base class instance.
51
+ *
52
+ * @since 1.8.0
53
+ */
54
  public function __construct() {
55
+ self::$instance = $this;
56
+ $this->base = OMAPI::get_instance();
57
  }
58
 
59
  /**
61
  *
62
  * @since 1.8.0
63
  *
64
+ * @param mixed $api_key If we want to use a custom API Key, pass it in.
65
+ * @param bool $get_cached Whether to get the cached response. Defaults to false.
66
  *
67
+ * @return array|null $sites An array of sites if the request is successful.
68
  */
69
  public function fetch( $api_key = null, $get_cached = false ) {
70
  $cache_key = 'om_sites' . md5( $api_key );
83
  $body = OMAPI_Api::build( 'v2', 'sites/origin', 'GET', $creds )->request();
84
 
85
  if ( is_wp_error( $body ) ) {
86
+ return $this->handle_payment_required_error( $body );
87
  }
88
 
89
+ // phpcs:disable WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
90
  $results = array(
91
  'siteId' => '',
92
  'siteIds' => array(),
93
  'customApiUrl' => '',
94
+ 'apiCname' => '',
95
  );
96
 
97
  $domain = $this->get_domain();
98
  $tld = $this->get_tld( $domain );
99
 
100
  if ( ! empty( $body->data ) ) {
101
+ $check_cnames = true;
102
  foreach ( $body->data as $site ) {
103
  if ( empty( $site->domain ) ) {
104
  continue;
105
  }
106
 
107
+ $matches = $domain === (string) $site->domain;
108
+ $wildcard_domain = '*.' === substr( $site->domain, 0, 2 ) && $tld === $this->get_tld( $site->domain );
109
 
110
  // Doesn't match, and not a wildcard? Bail.
111
+ if ( ! $matches && ! $wildcard_domain ) {
112
  continue;
113
  }
114
 
117
  // If we don't have a siteId yet, set it to this one.
118
  // If we DO already have a siteId and this one is NOT a wildcard,
119
  // we want to overwrite with this one.
120
+ if ( empty( $results['siteId'] ) || ! $wildcard_domain ) {
121
  $results['siteId'] = (string) $site->siteId;
122
  }
123
 
124
  // Do we have a custom cnamed api url to use?
125
+ if ( $check_cnames && $site->settings->enableCustomCnames ) {
126
 
127
  $found = false;
128
  if ( $site->settings->cdnCname && $site->settings->cdnCnameVerified ) {
131
  $results['customApiUrl'] = 'https://' . $site->settings->cdnUrl . '/app/js/api.min.js';
132
  $found = true;
133
 
134
+ if (
135
+ ! empty( $site->settings->apiCname )
136
+ && ! empty( $site->settings->apiCnameVerified )
137
+ ) {
138
+ $results['apiCname'] = $site->settings->apiCname;
139
+ }
140
  }
141
 
142
  // If this isn't a wildcard domain, and we found a custom api url, we don't
143
  // need to continue checking cnames.
144
+ if ( $found && ! $wildcard_domain ) {
145
+ $check_cnames = false;
146
  }
147
  }
148
  }
149
  }
150
 
151
  if ( empty( $results['siteId'] ) ) {
152
+ $result = $this->check_existing_site( $creds );
153
+ if ( is_wp_error( $result ) ) {
154
+ return $result;
155
+ }
156
+
157
  $site = $this->attempt_create_site( $creds );
158
  if ( is_wp_error( $site ) ) {
159
+ return $this->handle_payment_required_error( $site );
160
  }
161
 
162
+ // phpcs:disable WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
163
  if ( ! empty( $site->siteId ) ) {
164
  $results['siteId'] = (string) $site->siteId;
165
+ // phpcs:enable
166
  }
167
  }
168
 
170
  set_transient( $cache_key, $results, 5 * MINUTE_IN_SECONDS );
171
  }
172
 
173
+ // phpcs:enable
174
  return $results;
175
  }
176
 
213
  */
214
  public function get_domain() {
215
  $url = site_url();
216
+ $parsed = OMAPI_Utils::parse_url( $url );
217
  $hostname = ! empty( $parsed['host'] ) ? $parsed['host'] : $url;
218
  $domain = preg_replace( '/^www\./', '', $hostname );
219
 
225
  *
226
  * @since 2.0.1
227
  *
228
+ * @param string $domain Domain to get tld for.
229
  *
230
  * @return string The tld.
231
  */
246
  *
247
  * @return WP_Error
248
  */
249
+ public function handle_payment_required_error( $error ) {
250
  $instance = OMAPI_Api::instance();
251
  if ( 402 === (int) $error->get_error_data() && ! empty( $instance->response_body->siteAmount ) ) {
252
 
253
  $message = sprintf(
254
+ /* translators: %1$s - Link to account upgrade page, %2$s Link to account page to purchase additional licenses */
255
  __( 'We tried to register your WordPress site with OptinMonster, but You have reached the maximum number of registered sites for your current OptinMonster plan.<br>Additional sites can be added to your account by <a href="%1$s" target="_blank" rel="noopener">upgrading</a> or <a href="%2$s" target="_blank" rel="noopener">purchasing additional site licenses</a>.', 'optin-monster-api' ),
256
  esc_url_raw( OPTINMONSTER_APP_URL . '/account/upgrade/?utm_source=app&utm_medium=upsell&utm_campaign=header&feature=sites/' ),
257
  esc_url_raw( OPTINMONSTER_APP_URL . '/account/billing/#additional-licenses' )
258
  );
259
 
260
+ $error = new WP_Error( $error->get_error_code(), $message, array( 'status' => 402 ) );
261
  }
262
 
263
  return $error;
264
  }
265
 
266
+ /**
267
+ * Check if user has already connected existing site, and return error.
268
+ *
269
+ * @since 2.3.0
270
+ *
271
+ * @param array $creds Array of credentials for request.
272
+ *
273
+ * @return WP_Error|bool WP_Error if user already has connected site.
274
+ */
275
+ public function check_existing_site( $creds ) {
276
+
277
+ // Check if they already have a registered site.
278
+ $site_id = $this->base->get_site_id();
279
+ if ( empty( $site_id ) ) {
280
+ return false;
281
+ }
282
+
283
+ // Now check for that previously-registered site in our API.
284
+ $body = OMAPI_Api::build( 'v2', "sites/{$site_id}", 'GET', $creds )->request();
285
+ if ( empty( $body->name ) ) {
286
+ return false;
287
+ }
288
+
289
+ $site_edit_url = OMAPI_Urls::om_app( "sites/{$site_id}/edit/" );
290
+
291
+ // 'This domain does not match your registered site, %s (%s)'
292
+ $message = sprintf(
293
+ /* translators: %s - Current site domain, Link to registered OptinMonster site, name of registered OptinMonster site, domain for registered OptinMonster site */
294
+ __( 'This domain (%1$s) does not match your registered site — <a href="%2$s" target="_blank" rel="noopener">%3$s (%4$s)</a>', 'optin-monster-api' ),
295
+ $this->get_domain(),
296
+ esc_url_raw( $site_edit_url ),
297
+ sanitize_text_field( $body->name ),
298
+ sanitize_text_field( $body->domain )
299
+ );
300
+
301
+ $args = array(
302
+ 'status' => 404,
303
+ 'site' => array(
304
+ 'name' => $body->name,
305
+ 'domain' => $body->domain,
306
+ 'editUrl' => $site_edit_url,
307
+ ),
308
+ );
309
+
310
+ return new WP_Error( 'omapp_wrong_site', $message, $args );
311
+ }
312
+
313
  }
OMAPI/Support.php CHANGED
@@ -44,6 +44,7 @@ class OMAPI_Support {
44
  public function get_support_data( $format = 'raw' ) {
45
  return array(
46
  'server' => $this->get_server_data( $format ),
 
47
  'campaigns' => $this->get_campaign_data( $format ),
48
  );
49
  }
@@ -87,7 +88,7 @@ class OMAPI_Support {
87
  );
88
 
89
  if ( OMAPI_Utils::is_inline_type( $design_type ) ) {
90
- $data[ $slug ]['Automatic Output Status'] = get_post_meta( $campaign->ID, '_omapi_automatic', true ) ? 'Enabled' : 'Disabled';
91
  $data[ $slug ]['Automatic Output Location'] = get_post_meta( $campaign->ID, '_omapi_auto_location', true );
92
  }
93
 
@@ -112,7 +113,8 @@ class OMAPI_Support {
112
  }
113
 
114
  $theme_data = wp_get_theme();
115
- $theme = 'raw' === $format
 
116
  ? array(
117
  'Name' => $theme_data->Name,
118
  'Author' => $theme_data->Author,
@@ -156,6 +158,8 @@ class OMAPI_Support {
156
  'PHP Version' => function_exists( 'phpversion' ) ? esc_html( phpversion() ) : 'Unable to check.',
157
  'Error Log Location' => function_exists( 'ini_get' ) ? ini_get( 'error_log' ) : 'Unable to locate.',
158
  'Default Timezone' => date_default_timezone_get(),
 
 
159
  'WordPress Home URL' => esc_url_raw( get_home_url() ),
160
  'WordPress Site URL' => esc_url_raw( get_site_url() ),
161
  'WordPress REST URL' => esc_url_raw( get_rest_url() ),
@@ -170,7 +174,23 @@ class OMAPI_Support {
170
  if ( 'raw' !== $format ) {
171
  $array['Multisite'] = $array['Multisite'] ? 'Multisite Enabled' : 'Not Multisite';
172
  }
 
173
 
174
  return $array;
175
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
176
  }
44
  public function get_support_data( $format = 'raw' ) {
45
  return array(
46
  'server' => $this->get_server_data( $format ),
47
+ 'settings' => $this->get_settings_data( $format ),
48
  'campaigns' => $this->get_campaign_data( $format ),
49
  );
50
  }
88
  );
89
 
90
  if ( OMAPI_Utils::is_inline_type( $design_type ) ) {
91
+ $data[ $slug ]['Automatic Output Status'] = get_post_meta( $campaign->ID, '_omapi_automatic', true ) ? 'Enabled' : 'Disabled';
92
  $data[ $slug ]['Automatic Output Location'] = get_post_meta( $campaign->ID, '_omapi_auto_location', true );
93
  }
94
 
113
  }
114
 
115
  $theme_data = wp_get_theme();
116
+ // phpcs:disable WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
117
+ $theme = 'raw' === $format
118
  ? array(
119
  'Name' => $theme_data->Name,
120
  'Author' => $theme_data->Author,
158
  'PHP Version' => function_exists( 'phpversion' ) ? esc_html( phpversion() ) : 'Unable to check.',
159
  'Error Log Location' => function_exists( 'ini_get' ) ? ini_get( 'error_log' ) : 'Unable to locate.',
160
  'Default Timezone' => date_default_timezone_get(),
161
+ 'Site Name' => esc_html( get_option( 'blogname' ) ),
162
+ 'Admin Email' => esc_html( get_site_option( 'admin_email' ) ),
163
  'WordPress Home URL' => esc_url_raw( get_home_url() ),
164
  'WordPress Site URL' => esc_url_raw( get_site_url() ),
165
  'WordPress REST URL' => esc_url_raw( get_rest_url() ),
174
  if ( 'raw' !== $format ) {
175
  $array['Multisite'] = $array['Multisite'] ? 'Multisite Enabled' : 'Not Multisite';
176
  }
177
+ // phpcs:enable
178
 
179
  return $array;
180
  }
181
+
182
+ /**
183
+ * Includes the plugin settings.
184
+ *
185
+ * @since 2.4.0
186
+ *
187
+ * @return array Array of plugin settings.
188
+ */
189
+ public function get_settings_data() {
190
+ $options = $this->base->get_option();
191
+ unset( $options['optins'] );
192
+
193
+ return $options;
194
+ }
195
+
196
  }
OMAPI/TrustPulse.php CHANGED
@@ -224,16 +224,20 @@ class OMAPI_TrustPulse {
224
  wp_enqueue_style( 'om-tp-admin-css', $this->base->url . 'assets/dist/css/trustpulse.min.css', false, $this->base->asset_version() );
225
  wp_enqueue_script( 'om-tp-admin-js', $this->base->url . 'assets/dist/js/trustpulse.min.js', false, $this->base->asset_version() );
226
 
227
- wp_localize_script( 'om-tp-admin-js', 'omapiTp', array(
228
- 'restUrl' => rest_url(),
229
- 'action' => $this->installed ? 'activate' : 'install',
230
- 'installNonce' => wp_create_nonce( 'install_plugin' ),
231
- 'activateNonce' => wp_create_nonce( 'activate_plugin' ),
232
- 'restNonce' => wp_create_nonce( 'wp_rest' ),
233
- 'pluginUrl' => isset( $this->plugin_data['url'] )
234
- ? $this->plugin_data['url']
235
- : 'https://downloads.wordpress.org/plugin/trustpulse-api.zip',
236
- ) );
 
 
 
 
237
  add_action( 'in_admin_header', array( $this, 'render_banner' ) );
238
  }
239
 
224
  wp_enqueue_style( 'om-tp-admin-css', $this->base->url . 'assets/dist/css/trustpulse.min.css', false, $this->base->asset_version() );
225
  wp_enqueue_script( 'om-tp-admin-js', $this->base->url . 'assets/dist/js/trustpulse.min.js', false, $this->base->asset_version() );
226
 
227
+ OMAPI_Utils::add_inline_script(
228
+ 'om-tp-admin-js',
229
+ 'omapiTp',
230
+ array(
231
+ 'restUrl' => rest_url(),
232
+ 'action' => $this->installed ? 'activate' : 'install',
233
+ 'installNonce' => wp_create_nonce( 'install_plugin' ),
234
+ 'activateNonce' => wp_create_nonce( 'activate_plugin' ),
235
+ 'restNonce' => wp_create_nonce( 'wp_rest' ),
236
+ 'pluginUrl' => isset( $this->plugin_data['url'] )
237
+ ? $this->plugin_data['url']
238
+ : 'https://downloads.wordpress.org/plugin/trustpulse-api.zip',
239
+ )
240
+ );
241
  add_action( 'in_admin_header', array( $this, 'render_banner' ) );
242
  }
243
 
OMAPI/Urls.php ADDED
@@ -0,0 +1,219 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Urls class.
4
+ *
5
+ * @since 2.2.0
6
+ *
7
+ * @package OMAPI
8
+ * @author Justin Sternberg
9
+ */
10
+
11
+ // Exit if accessed directly.
12
+ if ( ! defined( 'ABSPATH' ) ) {
13
+ exit;
14
+ }
15
+
16
+ /**
17
+ * Urls class.
18
+ *
19
+ * @since 2.2.0
20
+ */
21
+ class OMAPI_Urls {
22
+
23
+ /**
24
+ * Get the settings url.
25
+ *
26
+ * @since 2.2.0
27
+ *
28
+ * @param array $args Array of query args.
29
+ *
30
+ * @return string
31
+ */
32
+ public static function settings( $args = array() ) {
33
+ return self::om_admin( 'settings', $args );
34
+ }
35
+
36
+ /**
37
+ * Get the campaigns url.
38
+ *
39
+ * @since 2.2.0
40
+ *
41
+ * @param array $args Array of query args.
42
+ *
43
+ * @return string
44
+ */
45
+ public static function campaigns( $args = array() ) {
46
+ return self::om_admin( 'campaigns', $args );
47
+ }
48
+
49
+ /**
50
+ * Get the templates url.
51
+ *
52
+ * @since 2.2.0
53
+ *
54
+ * @param array $args Array of query args.
55
+ *
56
+ * @return string
57
+ */
58
+ public static function templates( $args = array() ) {
59
+ return self::om_admin( 'templates', $args );
60
+ }
61
+
62
+ /**
63
+ * Get the OM wizard url.
64
+ *
65
+ * @since 2.2.0
66
+ *
67
+ * @param array $args Array of query args.
68
+ *
69
+ * @return string
70
+ */
71
+ public static function wizard( $args = array() ) {
72
+ return self::om_admin( 'onboarding-wizard', $args );
73
+ }
74
+
75
+ /**
76
+ * Get the contextual OM dashboard url.
77
+ *
78
+ * @since 2.2.0
79
+ *
80
+ * @param array $args Array of query args.
81
+ *
82
+ * @return string
83
+ */
84
+ public static function dashboard( $args = array() ) {
85
+ return self::om_admin( 'dashboard', $args );
86
+ }
87
+
88
+ /**
89
+ * Get the campaign output settings edit url.
90
+ *
91
+ * @since 2.2.0
92
+ *
93
+ * @param string $campaign_slug The campaign slug to edit.
94
+ * @param array $args Array of query args.
95
+ *
96
+ * @return string
97
+ */
98
+ public static function campaign_output_settings( $campaign_slug, $args = array() ) {
99
+ $args = array_merge( $args, array( 'campaignId' => $campaign_slug ) );
100
+
101
+ return self::campaigns( $args );
102
+ }
103
+
104
+ /**
105
+ * Get the OM onboarding dashboard url.
106
+ *
107
+ * @since 2.2.0
108
+ *
109
+ * @param array $args Array of query args.
110
+ *
111
+ * @return string
112
+ */
113
+ public static function onboarding( $args = array() ) {
114
+ $args = array_merge( $args, array( 'info' => true ) );
115
+
116
+ return self::dashboard( $args );
117
+ }
118
+
119
+ /**
120
+ * Get a link to an OM admin page.
121
+ *
122
+ * @since 2.2.0
123
+ *
124
+ * @param string $page Page shortened slug.
125
+ * @param array $args Array of query args.
126
+ *
127
+ * @return string
128
+ */
129
+ public static function om_admin( $page, $args ) {
130
+ $defaults = array(
131
+ 'page' => 'optin-monster-' . $page,
132
+ );
133
+
134
+ return self::admin( wp_parse_args( $args, $defaults ) );
135
+ }
136
+
137
+ /**
138
+ * Get an admin page url.
139
+ *
140
+ * @since 2.2.0
141
+ *
142
+ * @param array $args Array of query args.
143
+ *
144
+ * @return string
145
+ */
146
+ public static function admin( $args = array() ) {
147
+ $url = add_query_arg( $args, admin_url( 'admin.php' ) );
148
+
149
+ return esc_url_raw( $url );
150
+ }
151
+
152
+ /**
153
+ * Get app url, with proper query args set to ensure going to correct account, and setting return
154
+ * query arg to come back (if relevant on the destination page).
155
+ *
156
+ * @since 2.2.0
157
+ *
158
+ * @param string $path The path on the app.
159
+ * @param string $return_url Url to return. Will default to wp_get_referer().
160
+ *
161
+ * @return string The app url.
162
+ */
163
+ public static function om_app( $path, $return_url = '' ) {
164
+ $app_url = OPTINMONSTER_APP_URL . '/';
165
+ $final_destination = $app_url . $path;
166
+
167
+ if ( empty( $return_url ) ) {
168
+
169
+ $return_url = wp_get_referer();
170
+ if ( empty( $return_url ) ) {
171
+ $return_url = self::dashboard();
172
+ }
173
+ }
174
+ $return_url = rawurlencode( $return_url );
175
+
176
+ $final_destination = add_query_arg( 'return', $return_url, $final_destination );
177
+
178
+ $url = add_query_arg( 'redirect_to', rawurlencode( $final_destination ), $app_url );
179
+
180
+ $account_id = OMAPI::get_instance()->get_option( 'userId' );
181
+ if ( ! empty( $account_id ) ) {
182
+ $url = add_query_arg( 'accountId', $account_id, $url );
183
+ }
184
+
185
+ return $url;
186
+ }
187
+
188
+ /**
189
+ * Get upgrade url, with utm_medium param and optional feature.
190
+ *
191
+ * @since 2.4.0
192
+ *
193
+ * @param string $utm_medium The utm_medium query param.
194
+ * @param string $return_url Url to return. Will default to wp_get_referer().
195
+ *
196
+ * @return string The upgrade url.
197
+ */
198
+ public static function upgrade( $utm_medium, $feature = 'none', $return_url = '' ) {
199
+ $path = sprintf(
200
+ 'account/upgrade/?utm_source=WordPress&%1$s=pluginMenu&utm_campaign=Plugin&feature=%2$s',
201
+ $utm_medium,
202
+ $feature
203
+ );
204
+
205
+ return self::om_app( $path, $return_url );
206
+ }
207
+
208
+ /**
209
+ * Returns the API credentials for OptinMonster.
210
+ *
211
+ * @since 2.2.0
212
+ *
213
+ * @return string The API url to use for embedding on the page.
214
+ */
215
+ public static function om_api() {
216
+ $custom_api_url = OMAPI::get_instance()->get_option( 'customApiUrl' );
217
+ return ! empty( $custom_api_url ) ? $custom_api_url : OPTINMONSTER_APIJS_URL;
218
+ }
219
+ }
OMAPI/Utils.php CHANGED
@@ -97,4 +97,73 @@ class OMAPI_Utils {
97
  return array_unique( $val );
98
  }
99
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
100
  }
97
  return array_unique( $val );
98
  }
99
 
100
+ /**
101
+ * A back-compatible parse_url helper.
102
+ *
103
+ * @since 2.3.0
104
+ *
105
+ * @param string $url URL to parse.
106
+ *
107
+ * @return array The URL parts.
108
+ */
109
+ public static function parse_url( $url ) {
110
+ // NOTE: Error suppression is used as prior to PHP 5.3.3, an
111
+ // E_WARNING would be generated when URL parsing failed.
112
+ return function_exists( 'wp_parse_url' )
113
+ ? wp_parse_url( $url )
114
+ : parse_url( $url ); // phpcs:ignore WordPress.WP.AlternativeFunctions.parse_url_parse_url
115
+ }
116
+
117
+ /**
118
+ * Build Inline Data
119
+ *
120
+ * @since 2.3.0
121
+ *
122
+ * @param string $object_name Name for the JavaScript object. Passed directly, so it should be qualified JS variable.
123
+ * @param string $data String containing the javascript to be added.
124
+ *
125
+ * @return string The formatted script string.
126
+ */
127
+ public static function build_inline_data( $object_name, $data ) {
128
+ return sprintf( 'var %s = %s;', $object_name, self::json_encode( $data ) );
129
+ }
130
+
131
+ /**
132
+ * Add Inline Script
133
+ *
134
+ * @since 2.3.0
135
+ *
136
+ * @see WP_Scripts::add_inline_script()
137
+ *
138
+ * @param string $handle Name of the script to add the inline script to.
139
+ * @param string $object_name Name for the JavaScript object. Passed directly, so it should be qualified JS variable.
140
+ * @param string $data String containing the javascript to be added.
141
+ * @param string $position Optional. Whether to add the inline script before the handle
142
+ * or after. Default 'after'.
143
+ *
144
+ * @return bool True on success, false on failure.
145
+ */
146
+ public static function add_inline_script( $handle, $object_name, $data, $position = 'before' ) {
147
+ $data = apply_filters( 'om_add_inline_script', $data, $handle, $position, $object_name );
148
+ $output = self::build_inline_data( $object_name, $data );
149
+ $output = apply_filters( 'om_add_inline_script_output', $output, $data, $handle, $position, $object_name );
150
+
151
+ return wp_add_inline_script( $handle, $output, $position );
152
+ }
153
+
154
+ /**
155
+ * Back-compatible wp_json_encode wrapper.
156
+ *
157
+ * @since 2.6.1
158
+ *
159
+ * @param mixed $data Data to encode.
160
+ *
161
+ * @return string JSON-encoded data.
162
+ */
163
+ public static function json_encode( $data ) {
164
+ return function_exists( 'wp_json_encode' )
165
+ ? wp_json_encode( $data )
166
+ : json_encode( $data ); // phpcs:ignore WordPress.WP.AlternativeFunctions.json_encode_json_encode
167
+ }
168
+
169
  }
OMAPI/Validate.php CHANGED
@@ -111,14 +111,21 @@ class OMAPI_Validate {
111
  public function validate() {
112
 
113
  $creds = $this->base->get_api_credentials();
 
 
 
 
 
 
 
114
 
115
- // Check for new apikey and only use the old user/key if we don't have it
116
- if ( ! $creds['apikey'] ) {
117
  $api = new OMAPI_Api(
118
  'validate/',
119
  array(
120
- 'user' => $creds['user'],
121
- 'key' => $creds['key'],
122
  )
123
  );
124
  } else {
@@ -181,7 +188,7 @@ class OMAPI_Validate {
181
  if ( 'optin-monster-dashboard' !== $page ) {
182
  if ( ! OMAPI_Partners::has_partner_url() ) {
183
  echo '<div class="notice notice-error"><p>' . esc_html__( 'There was an error verifying your OptinMonster API credentials. They are either missing or they are no longer valid.', 'optin-monster-api' ) . '</p>';
184
- echo '<p><a href="' . esc_url_raw( $this->base->menu->get_settings_link() ) . '" class="button button-primary button-large omapi-new-optin" title="' . esc_html__( 'View API Settings', 'optin-monster-api' ) . '">' . esc_html__( 'View API Settings', 'optin-monster-api' ) . '</a></p></div>';
185
  }
186
  }
187
  } elseif ( isset( $option['is_disabled'] ) && $option['is_disabled'] ) {
@@ -199,8 +206,8 @@ class OMAPI_Validate {
199
  <p>' . esc_html__( 'Please connect to or create an OptinMonster account to start using OptinMonster. This will enable you to start turning website visitors into subscribers & customers.', 'optin-monster-api' ) . '
200
  </p>
201
  <p>
202
- <a href="' . esc_url_raw( $this->base->menu->get_onboarding_link() ) . '" class="button button-primary button-large omapi-new-optin" title="' . esc_html__( 'Get Started', 'optin-monster-api' ) . '">' . esc_html__( 'Get Started' ) . '</a>
203
- <a style="margin-left:8px" href="'. esc_url( $this->base->menu->get_onboarding_link() ) . '" title="' . esc_attr__( 'Learn More', 'optin-monster-api' ) . '">' . esc_html__( 'Learn More &rarr;', 'optin-monster-api' ) . '</a>
204
  </p>
205
  </div>
206
  ';
@@ -251,16 +258,16 @@ class OMAPI_Validate {
251
  return false;
252
  }
253
 
254
- // Get array list of dismissed pointers for current user and convert it to array
255
  $dismissed_pointers = explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) );
256
 
257
- // Check if our pointer is not among dismissed ones and that the user should see this
258
  if (
259
  ! in_array( 'omapi_please_connect_notice', $dismissed_pointers, true )
260
  && current_user_can( 'activate_plugins' )
261
  ) {
262
 
263
- // Add footer script to save when user dismisses
264
  add_action( 'admin_print_footer_scripts', array( $this, 'hide_connect_notice_script' ) );
265
 
266
  return true;
111
  public function validate() {
112
 
113
  $creds = $this->base->get_api_credentials();
114
+ if (
115
+ empty( $creds['apikey'] )
116
+ && empty( $creds['user'] )
117
+ && empty( $creds['key'] )
118
+ ) {
119
+ return;
120
+ }
121
 
122
+ // Check for new apikey and only use the old user/key if we don't have it.
123
+ if ( empty( $creds['apikey'] ) ) {
124
  $api = new OMAPI_Api(
125
  'validate/',
126
  array(
127
+ 'user' => ! empty( $creds['user'] ) ? $creds['user'] : '',
128
+ 'key' => ! empty( $creds['key'] ) ? $creds['key'] : '',
129
  )
130
  );
131
  } else {
188
  if ( 'optin-monster-dashboard' !== $page ) {
189
  if ( ! OMAPI_Partners::has_partner_url() ) {
190
  echo '<div class="notice notice-error"><p>' . esc_html__( 'There was an error verifying your OptinMonster API credentials. They are either missing or they are no longer valid.', 'optin-monster-api' ) . '</p>';
191
+ echo '<p><a href="' . esc_url_raw( OMAPI_Urls::settings() ) . '" class="button button-primary button-large omapi-new-optin" title="' . esc_html__( 'View API Settings', 'optin-monster-api' ) . '">' . esc_html__( 'View API Settings', 'optin-monster-api' ) . '</a></p></div>';
192
  }
193
  }
194
  } elseif ( isset( $option['is_disabled'] ) && $option['is_disabled'] ) {
206
  <p>' . esc_html__( 'Please connect to or create an OptinMonster account to start using OptinMonster. This will enable you to start turning website visitors into subscribers & customers.', 'optin-monster-api' ) . '
207
  </p>
208
  <p>
209
+ <a href="' . esc_url_raw( OMAPI_Urls::onboarding() ) . '" class="button button-primary button-large omapi-new-optin" title="' . esc_html__( 'Get Started', 'optin-monster-api' ) . '">' . esc_html__( 'Get Started' ) . '</a>
210
+ <a style="margin-left:8px" href="' . esc_url( OMAPI_Urls::onboarding() ) . '" title="' . esc_attr__( 'Learn More', 'optin-monster-api' ) . '">' . esc_html__( 'Learn More &rarr;', 'optin-monster-api' ) . '</a>
211
  </p>
212
  </div>
213
  ';
258
  return false;
259
  }
260
 
261
+ // Get array list of dismissed pointers for current user and convert it to array.
262
  $dismissed_pointers = explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) );
263
 
264
+ // Check if our pointer is not among dismissed ones and that the user should see this.
265
  if (
266
  ! in_array( 'omapi_please_connect_notice', $dismissed_pointers, true )
267
  && current_user_can( 'activate_plugins' )
268
  ) {
269
 
270
+ // Add footer script to save when user dismisses.
271
  add_action( 'admin_print_footer_scripts', array( $this, 'hide_connect_notice_script' ) );
272
 
273
  return true;
OMAPI/Welcome.php CHANGED
@@ -76,6 +76,7 @@ class OMAPI_Welcome {
76
  $this->set();
77
 
78
  // Maybe load a dashboard widget.
 
79
  add_action( 'wp_dashboard_setup', array( $this, 'dashboard_widget' ) );
80
  }
81
 
@@ -89,13 +90,62 @@ class OMAPI_Welcome {
89
  $this->base = OMAPI::get_instance();
90
  }
91
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
92
  /**
93
  * Loads a dashboard widget if the user has not entered and verified API credentials.
94
  *
95
  * @since 1.1.5.1
96
  */
97
  public function dashboard_widget() {
98
- if ( $this->base->get_api_credentials() ) {
99
  return;
100
  }
101
 
@@ -124,7 +174,7 @@ class OMAPI_Welcome {
124
  <p><img src="<?php echo plugins_url( '/assets/images/logo-om.png', OMAPI_FILE ); ?>" alt="<?php esc_attr_e( 'OptinMonster', 'optin-monster-api' ); ?>" width="300px" height="45px"></p>
125
  <h3 style="font-weight:normal;font-size:1.3em;"><?php esc_html_e( 'Please Connect OptinMonster', 'optin-monster-api' ); ?></h3>
126
  <p><?php _e( 'Instantly grow your email list, get more leads and increase sales with the <strong>#1 most powerful conversion optimization toolkit in the world.</strong>', 'optin-monster-api' ); ?></p>
127
- <p><a href="<?php echo esc_url( $this->base->menu->get_onboarding_link() ); ?>" class="button button-primary" title="<?php esc_attr_e( 'Get Started', 'optin-monster-api' ); ?>"><?php esc_html_e( 'Get Started', 'optin-monster-api' ); ?></a><a style="margin-left:8px" href="<?php echo esc_url( $this->base->menu->get_onboarding_link() ); ?>" title="<?php esc_attr_e( 'Learn More', 'optin-monster-api' ); ?>"><?php esc_html_e( 'Learn More &rarr;', 'optin-monster-api' ); ?></a></p>
128
  </div>
129
  <?php
130
  }
76
  $this->set();
77
 
78
  // Maybe load a dashboard widget.
79
+ add_action( 'admin_init', array( $this, 'redirect' ), 9999 );
80
  add_action( 'wp_dashboard_setup', array( $this, 'dashboard_widget' ) );
81
  }
82
 
90
  $this->base = OMAPI::get_instance();
91
  }
92
 
93
+ /**
94
+ * Onboarding redirect.
95
+ *
96
+ * This function checks if a new install or update has just occurred. If so,
97
+ * then we redirect the user to the appropriate page.
98
+ *
99
+ * @since 2.6.0
100
+ */
101
+ public function redirect() {
102
+
103
+ // Check if we should consider redirection.
104
+ if ( ! get_transient( 'optin_monster_api_activation_redirect' ) ) {
105
+ return;
106
+ }
107
+
108
+ // If we are redirecting, clear the transient so it only happens once.
109
+ delete_transient( 'optin_monster_api_activation_redirect' );
110
+
111
+ // Check option to disable welcome redirect.
112
+ if ( get_option( 'optin_monster_api_activation_redirect_disabled', false ) ) {
113
+ return;
114
+ }
115
+
116
+ // Only do this for single site installs.
117
+ if ( isset( $_GET['activate-multi'] ) || is_network_admin() ) { // WPCS: CSRF ok.
118
+ return;
119
+ }
120
+
121
+ // Don't initiate onboarding if they are already connected.
122
+ if ( OMAPI_ApiKey::has_credentials() ) {
123
+ return;
124
+ }
125
+
126
+ $goto = OMAPI_Urls::dashboard();
127
+
128
+ // Check if they haven't yet been welcomed.
129
+ if ( 'welcomed' !== $this->base->get_option( 'welcome', 'status', 'none' ) ) {
130
+
131
+ $options = $this->base->get_option();
132
+ $options['welcome']['status'] = 'welcomed';
133
+ update_option( 'optin_monster_api', $options );
134
+
135
+ $goto = OMAPI_Urls::wizard();
136
+ }
137
+
138
+ wp_safe_redirect( $goto );
139
+ exit;
140
+ }
141
+
142
  /**
143
  * Loads a dashboard widget if the user has not entered and verified API credentials.
144
  *
145
  * @since 1.1.5.1
146
  */
147
  public function dashboard_widget() {
148
+ if ( OMAPI_ApiKey::has_credentials() ) {
149
  return;
150
  }
151
 
174
  <p><img src="<?php echo plugins_url( '/assets/images/logo-om.png', OMAPI_FILE ); ?>" alt="<?php esc_attr_e( 'OptinMonster', 'optin-monster-api' ); ?>" width="300px" height="45px"></p>
175
  <h3 style="font-weight:normal;font-size:1.3em;"><?php esc_html_e( 'Please Connect OptinMonster', 'optin-monster-api' ); ?></h3>
176
  <p><?php _e( 'Instantly grow your email list, get more leads and increase sales with the <strong>#1 most powerful conversion optimization toolkit in the world.</strong>', 'optin-monster-api' ); ?></p>
177
+ <p><a href="<?php echo esc_url( OMAPI_Urls::onboarding() ); ?>" class="button button-primary" title="<?php esc_attr_e( 'Get Started', 'optin-monster-api' ); ?>"><?php esc_html_e( 'Get Started', 'optin-monster-api' ); ?></a><a style="margin-left:8px" href="<?php echo esc_url( OMAPI_Urls::onboarding() ); ?>" title="<?php esc_attr_e( 'Learn More', 'optin-monster-api' ); ?>"><?php esc_html_e( 'Learn More &rarr;', 'optin-monster-api' ); ?></a></p>
178
  </div>
179
  <?php
180
  }
OMAPI/WooCommerce.php CHANGED
@@ -65,6 +65,14 @@ class OMAPI_WooCommerce {
65
 
66
  // Set our object.
67
  $this->set();
 
 
 
 
 
 
 
 
68
  }
69
 
70
  /**
@@ -77,6 +85,87 @@ class OMAPI_WooCommerce {
77
  $this->base = OMAPI::get_instance();
78
  }
79
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
80
  /**
81
  * Connects WooCommerce to OptinMonster.
82
  *
@@ -294,11 +383,7 @@ class OMAPI_WooCommerce {
294
  */
295
  public static function is_connected() {
296
  // Get current site details.
297
- // NOTE: Error suppression is used as prior to PHP 5.3.3, an
298
- // E_WARNING would be generated when URL parsing failed.
299
- $site = function_exists( 'wp_parse_url' )
300
- ? wp_parse_url( site_url() )
301
- : parse_url( site_url() );
302
  $host = isset( $site['host'] ) ? $site['host'] : '';
303
 
304
  // Get any options we have stored.
@@ -395,4 +480,138 @@ class OMAPI_WooCommerce {
395
  public static function is_minimum_version() {
396
  return self::version_compare( self::MINIMUM_VERSION );
397
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
398
  }
65
 
66
  // Set our object.
67
  $this->set();
68
+
69
+ add_action( 'admin_enqueue_scripts', array( $this, 'handle_enqueuing_assets' ) );
70
+
71
+ // Register WooCommerce Education Meta Boxes.
72
+ add_action( 'add_meta_boxes', array( $this, 'register_metaboxes' ) );
73
+
74
+ // Add custom OptinMonster note.
75
+ add_action( 'admin_init', array( $this, 'maybe_store_note' ) );
76
  }
77
 
78
  /**
85
  $this->base = OMAPI::get_instance();
86
  }
87
 
88
+ /**
89
+ * Enqueue Metabox Assets
90
+ *
91
+ * @since 2.2.0
92
+ *
93
+ * @return void
94
+ */
95
+ public function handle_enqueuing_assets() {
96
+ if ( ! function_exists( 'get_current_screen' ) ) {
97
+ return;
98
+ }
99
+
100
+ $screen = get_current_screen();
101
+ if ( empty( $screen->id ) ) {
102
+ return;
103
+ }
104
+
105
+ switch ( $screen->id ) {
106
+ case 'shop_coupon':
107
+ case 'product':
108
+ return $this->enqueue_metabox_assets();
109
+ case 'woocommerce_page_wc-admin':
110
+ return $this->enqueue_marketing_education_assets();
111
+ }
112
+ }
113
+
114
+ /**
115
+ * Enqueue Metabox Assets
116
+ *
117
+ * @since 2.2.0
118
+ *
119
+ * @return void
120
+ */
121
+ public function enqueue_metabox_assets() {
122
+ wp_enqueue_style(
123
+ $this->base->plugin_slug . '-metabox',
124
+ $this->base->url . 'assets/dist/css/metabox.min.css',
125
+ array(),
126
+ $this->base->asset_version()
127
+ );
128
+
129
+ wp_enqueue_script(
130
+ $this->base->plugin_slug . '-metabox-js',
131
+ $this->base->url . 'assets/dist/js/metabox.min.js',
132
+ array(),
133
+ $this->base->asset_version(),
134
+ true
135
+ );
136
+ }
137
+
138
+ /**
139
+ * Enqueue marketing box script.
140
+ * Adds an OM product education box on the WooCommerce Marketing page.
141
+ *
142
+ * @since 2.2.0
143
+ *
144
+ * @return void
145
+ */
146
+ public function enqueue_marketing_education_assets() {
147
+ wp_enqueue_script(
148
+ $this->base->plugin_slug . '-wc-marketing-box-js',
149
+ $this->base->url . 'assets/dist/js/wc-marketing.min.js',
150
+ array(),
151
+ $this->base->asset_version(),
152
+ true
153
+ );
154
+
155
+ add_action( 'admin_footer', array( $this, 'output_marketing_card_template' ) );
156
+ }
157
+
158
+ /**
159
+ * Handles outputting the marketing card html to the page.
160
+ *
161
+ * @since 2.2.0
162
+ *
163
+ * @return void
164
+ */
165
+ public function output_marketing_card_template() {
166
+ $this->base->output_view( 'woocommerce-marketing-card.php' );
167
+ }
168
+
169
  /**
170
  * Connects WooCommerce to OptinMonster.
171
  *
383
  */
384
  public static function is_connected() {
385
  // Get current site details.
386
+ $site = OMAPI_Utils::parse_url( site_url() );
 
 
 
 
387
  $host = isset( $site['host'] ) ? $site['host'] : '';
388
 
389
  // Get any options we have stored.
480
  public static function is_minimum_version() {
481
  return self::version_compare( self::MINIMUM_VERSION );
482
  }
483
+
484
+ /**
485
+ * Add a OM product education metabox on the WooCommerce coupon and product pages.
486
+ *
487
+ * @since 2.2.0
488
+ *
489
+ * @return void
490
+ */
491
+ public function register_metaboxes() {
492
+ add_meta_box(
493
+ 'woocommerce_promote_coupon_metabox',
494
+ __( 'Promote this coupon', 'optin-monster-api' ),
495
+ array( $this, 'output_coupon_metabox' ),
496
+ 'shop_coupon'
497
+ );
498
+ add_meta_box(
499
+ 'woocommerce_popup_metabox',
500
+ __( 'Product Popups', 'optin-monster-api' ),
501
+ array( $this, 'output_product_metabox' ),
502
+ 'product'
503
+ );
504
+ }
505
+
506
+ /**
507
+ * Output the markup for the coupon metabox.
508
+ *
509
+ * @since 2.2.0
510
+ *
511
+ * @return void
512
+ */
513
+ public function output_coupon_metabox() {
514
+ $args = $this->metabox_args();
515
+ if ( ! $args['has_sites'] ) {
516
+ $args['not_connected_message'] = esc_html__( 'Please create a Free Account or Connect an Existing Account to promote coupons.', 'optin-monster-api' );
517
+ }
518
+ $this->base->output_view( 'coupon-metabox.php', $args );
519
+ }
520
+
521
+ /**
522
+ * Output the markup for the product metabox.
523
+ *
524
+ * @since 2.2.0
525
+ *
526
+ * @return void
527
+ */
528
+ public function output_product_metabox() {
529
+ $args = $this->metabox_args();
530
+ if ( ! $args['has_sites'] ) {
531
+ $args['not_connected_message'] = esc_html__( 'Please create a Free Account or Connect an Existing Account to use Product Popups.', 'optin-monster-api' );
532
+ }
533
+ $this->base->output_view( 'product-metabox.php', $args );
534
+ }
535
+
536
+ /**
537
+ * Get the site-connected args for the metaboxes.
538
+ *
539
+ * @since 2.3.0
540
+ *
541
+ * @return array Array of site-connected args.
542
+ */
543
+ protected function metabox_args() {
544
+ $args = array(
545
+ 'has_sites' => $this->base->get_site_id(),
546
+ );
547
+
548
+ if ( ! $args['has_sites'] ) {
549
+ $args['not_connected_title'] = esc_html__( 'You Have Not Connected with OptinMonster', 'optin-monster-api' );
550
+ }
551
+
552
+ return $args;
553
+ }
554
+
555
+ /**
556
+ * Adds a note to the WooCommerce inbox.
557
+ *
558
+ * @since 2.2.0
559
+ *
560
+ * @return int
561
+ */
562
+ public function maybe_store_note() {
563
+
564
+ // Check for Admin Note support.
565
+ if ( ! class_exists( 'Automattic\WooCommerce\Admin\Notes\Notes', false ) || ! class_exists( 'Automattic\WooCommerce\Admin\Notes\Note', false ) ) {
566
+ return;
567
+ }
568
+
569
+ // Make sure the WooCommerce Data Store is available.
570
+ if ( ! class_exists( 'WC_Data_Store', false ) ) {
571
+ return;
572
+ }
573
+
574
+ $note_name = 'om-wc-grow-revenue';
575
+
576
+ try {
577
+
578
+ // Load the Admin Notes from the WooCommerce Data Store.
579
+ $data_store = WC_Data_Store::load( 'admin-note' );
580
+
581
+ $note_ids = $data_store->get_notes_with_name( $note_name );
582
+
583
+ } catch ( Exception $e ) {
584
+ return;
585
+ }
586
+
587
+ // This ensures we don't create a duplicate note.
588
+ if ( ! empty( $note_ids ) ) {
589
+ return;
590
+ }
591
+
592
+ // If we're here, we can create a new note.
593
+ $note = new Automattic\WooCommerce\Admin\Notes\Note();
594
+ $note->set_title( __( 'Grow your store revenue with OptinMonster', 'optin-monster-api' ) );
595
+ $note->set_content( __( 'Create high-converting OptinMonster campaigns to promote product sales, reduce cart abandonment and incentivize purchases with time-sensitive coupon offers.', 'optin-monster-api' ) );
596
+ $note->set_type( Automattic\WooCommerce\Admin\Notes\Note::E_WC_ADMIN_NOTE_INFORMATIONAL );
597
+ $note->set_layout( 'plain' );
598
+ $note->set_source( 'optinmonster' );
599
+ $note->set_name( $note_name );
600
+ $note->add_action(
601
+ 'om-note-primary',
602
+ __( 'Create a campaign', 'optin-monster-api' ),
603
+ 'admin.php?page=optin-monster-templates',
604
+ 'unactioned',
605
+ true
606
+ );
607
+ $note->add_action(
608
+ 'om-note-seconday',
609
+ __( 'Learn more', 'optin-monster-api' ),
610
+ 'admin.php?page=optin-monster-about&selectedTab=getting-started',
611
+ 'unactioned',
612
+ false
613
+ );
614
+
615
+ $note->save();
616
+ }
617
  }
assets/css/images/dashboard-icon.png DELETED
Binary file
assets/css/images/icons/archie-color-icon.svg ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <svg width="100" height="84" viewBox="0 0 100 84" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M84.7004 26.7949C85.4335 26.3551 85.5794 23.6457 85.6535 22.8417C85.8726 21.0113 88.1421 20.2065 89.6067 21.1571C92.1694 22.9875 93.4866 26.5025 93.8516 29.5035C94.2182 32.5778 93.9257 36.6776 91.7296 39.0937C89.3868 41.7298 83.4565 42.5354 79.9432 42.1689C78.9917 42.0955 78.1128 41.8756 77.2338 41.7298L75.55 26.6475L77.3821 27.0141C79.2117 27.3798 82.9458 27.7472 84.6295 26.7949H84.7004Z" fill="#999966"/>
3
+ <path d="M90.4055 23.8979C89.9664 23.3122 89.454 22.7265 88.8683 22.3607C88.2827 21.9208 87.1846 22.2874 87.1097 23.0197L87.038 23.5313C88.1368 23.1656 89.3807 23.4588 90.4055 23.8979ZM92.4558 34.2205C92.8949 31.8777 92.6749 29.1683 91.8701 26.8264C91.2844 26.094 90.6979 25.5091 89.5999 25.0693C88.2085 24.4836 87.477 24.7035 86.8204 25.2892C86.7463 25.8749 86.5981 26.314 86.4539 26.753C90.2605 27.9977 91.8709 31.6577 92.4566 34.293V34.2205H92.4558ZM81.3277 28.8026C80.0105 28.8026 78.6192 28.6559 77.2286 28.3635L78.545 40.5157C80.3045 40.8823 82.3524 40.8822 84.182 40.6631C85.5 35.9775 84.182 30.4872 81.2552 28.7301L81.3277 28.8026ZM85.4275 27.9978C84.9159 28.2902 84.1812 28.5101 83.3055 28.6559C85.9399 31.4386 86.7455 36.4899 85.7917 40.4432C87.9886 40.0041 89.8182 39.1985 90.7704 38.1737C90.9904 37.9538 91.1362 37.6605 91.3569 37.4414C91.3569 33.2682 89.6732 28.8026 85.6466 27.9244C85.5725 27.9978 85.5725 27.9978 85.4984 27.9978H85.4275Z" fill="#C0C0A0"/>
4
+ <path d="M84.696 35.8797C82.939 36.3195 81.0361 36.3928 79.644 36.2462C79.0591 36.1729 78.5459 36.0996 78.0335 35.953L77.1554 28.4131C78.5459 28.7055 79.938 28.8522 81.2552 28.8522C83.1589 30.0235 84.4052 32.8054 84.6244 35.8797H84.696ZM90.0414 25.2647C90.1123 25.7046 90.1864 26.1436 90.2597 26.5819C90.4063 27.4608 90.4063 28.4856 90.333 29.5112C89.38 28.3398 88.1369 27.315 86.4539 26.7293C86.5989 26.2902 86.7464 25.8504 86.8197 25.2647C87.403 24.7523 88.2086 24.459 89.5999 25.0455C89.7481 25.1181 89.894 25.1914 90.0414 25.2647ZM88.9425 22.4095C89.1624 22.7761 89.3075 23.1418 89.4549 23.5076C88.6493 23.2885 87.8444 23.2144 86.9655 23.4351L87.0388 22.9227C87.1105 22.1896 88.2086 21.8238 88.7959 22.2637L88.9433 22.3362V22.4095H88.9425ZM85.4284 27.974C84.916 28.2665 84.1821 28.4856 83.3055 28.6322C84.916 30.316 85.7925 32.8054 86.0866 35.4414C87.1105 35.074 88.0628 34.5624 88.6493 33.8309C89.2358 33.2444 87.697 28.3398 85.575 27.9007C85.5009 27.974 85.5009 27.974 85.4284 27.974Z" fill="#FBFAC4"/>
5
+ <path d="M16.03 26.7949C15.296 26.3551 15.151 23.6457 15.0761 22.8417C14.857 21.0113 12.5875 20.2065 11.1237 21.1571C8.56016 22.9875 7.24377 26.5025 6.87801 29.5035C6.51225 32.5778 6.80468 36.6776 9.00083 39.0937C11.3436 41.7298 17.2731 42.5354 20.7872 42.1689C21.7387 42.0955 22.6176 41.8756 23.4966 41.7298L25.1795 26.6475L23.3483 27.0141C21.5187 27.3798 17.7846 27.7472 16.1009 26.7949H16.03Z" fill="#999966"/>
6
+ <path d="M10.3181 23.8979C10.7571 23.3122 11.2695 22.7265 11.8544 22.3607C12.4409 21.9208 13.539 22.2874 13.6139 23.0197L13.6848 23.5313C12.5867 23.1656 11.342 23.4588 10.3181 23.8979ZM8.26694 34.2205C7.82867 31.8777 8.04861 29.1683 8.85343 26.8264C9.43913 26.094 10.0248 25.5091 11.1229 25.0693C12.5142 24.4836 13.2466 24.7035 13.9031 25.2892C13.9773 25.8749 14.1255 26.314 14.2697 26.753C10.4631 27.9977 8.85263 31.6577 8.26612 34.293V34.2205H8.26694ZM19.3959 28.8026C20.7131 28.8026 22.1045 28.6559 23.495 28.3635L22.1778 40.5157C20.4191 40.8823 18.3704 40.8822 16.5408 40.6631C15.2228 35.9775 16.5408 30.4872 19.4684 28.7301L19.3959 28.8026ZM15.2961 27.9978C15.8077 28.2902 16.5424 28.5101 17.4181 28.6559C14.7829 31.4386 13.9781 36.4899 14.9311 40.4432C12.735 40.0041 10.9054 39.1985 9.95233 38.1737C9.73239 37.9538 9.58736 37.6605 9.36662 37.4414C9.36662 33.2682 11.0504 28.8026 15.0769 27.9244C15.1503 27.9978 15.1503 27.9978 15.2252 27.9978H15.2961Z" fill="#C0C0A0"/>
7
+ <path d="M16.0314 35.8797C17.7885 36.3195 19.6914 36.3928 21.0827 36.2462C21.6684 36.1729 22.1808 36.0996 22.6932 35.953L23.5713 28.4131C22.1808 28.7055 20.7894 28.8522 19.4722 28.8522C17.5685 30.0235 16.3238 32.8054 16.1031 35.8797H16.0314ZM10.686 25.2647C10.6143 25.7046 10.541 26.1436 10.4669 26.5819C10.3211 27.4608 10.321 28.4856 10.3952 29.5112C11.3466 28.3398 12.5905 27.315 14.2735 26.7293C14.1285 26.2902 13.981 25.8504 13.9069 25.2647C13.3236 24.7523 12.5188 24.459 11.1275 25.0455C10.9792 25.1181 10.8334 25.1914 10.686 25.2647ZM11.7849 22.4095C11.5649 22.7761 11.4199 23.1418 11.2725 23.5076C12.0773 23.2885 12.883 23.2144 13.7619 23.4351L13.6878 22.9227C13.6169 22.1896 12.5188 21.8238 11.9315 22.2637L11.7841 22.3362V22.4095H11.7849ZM15.2991 27.974C15.8114 28.2665 16.5454 28.4856 17.4219 28.6322C15.8114 30.316 14.9341 32.8054 14.6409 35.4414C13.6169 35.074 12.6638 34.5624 12.0773 33.8309C11.4924 33.2444 13.0304 28.3398 15.1524 27.9007C15.2257 27.974 15.2257 27.974 15.2991 27.974Z" fill="#FBFAC4"/>
8
+ <path d="M24.1522 23.8788C21.5902 23.6588 19.1 24.1712 16.6114 24.5378L18.8076 22.4141C20.9312 20.3646 23.7864 18.5342 26.4974 17.2162C30.5223 15.1667 35.1354 13.6295 39.746 13.1905C36.5235 11.7991 32.8635 11.1401 29.4242 10.3345C42.6761 7.55348 59.658 6.5279 71.8125 16.8504C78.7684 22.7807 82.5742 33.7623 82.5742 43.7182C82.5742 81.276 18.5901 81.276 18.5901 43.7182C18.5901 38.6669 19.834 33.8356 22.1767 29.4425C21.2994 29.6624 20.4938 29.9548 19.6132 30.3214L15.7357 31.9319L18.5152 28.7835C20.1997 26.8806 22.1034 25.2701 24.2996 24.0254L24.1522 23.8788Z" fill="#8ED41E"/>
9
+ <path d="M52.852 12.3079C59.0755 13.0394 65.1508 15.0897 70.2005 19.4087C76.3499 24.6066 79.6449 34.2702 79.6449 42.9823C79.6449 58.9403 66.4672 67.2141 52.8512 67.6532V12.3079H52.852Z" fill="#70A91B"/>
10
+ <path d="M29.276 20.4478C34.1081 17.2261 42.0154 16.2013 51.5332 16.7145C49.8494 14.7383 48.3122 13.4928 46.0428 12.3947C50.3618 12.2481 53.8018 13.2004 62.3673 16.1288C54.9748 11.809 45.8978 9.83283 37.404 10.7843C40.4783 11.6624 43.4067 13.0537 46.1153 14.8841C37.404 13.9327 27.373 18.1051 23.3465 21.5459C25.9833 21.2535 28.3245 21.765 30.8155 22.8639C27.3013 24.1078 25.0311 25.2067 22.8341 27.3295C26.6407 25.4258 29.6425 23.8154 34.4747 22.7906C32.571 22.1316 31.5462 20.9602 29.276 20.4478Z" fill="#A1E141"/>
11
+ <path d="M50.5099 11.5754C59.297 11.5754 66.397 18.4572 66.397 27.0226C66.397 35.5148 59.297 42.4698 50.5099 42.4698C41.7261 42.4698 34.6261 35.5881 34.6261 27.0226C34.6245 18.5305 41.7261 11.5754 50.5099 11.5754Z" fill="#70A91B"/>
12
+ <path d="M25.3282 41.4364C25.8406 40.4841 74.0118 40.1184 74.964 41.4364C76.6462 43.6325 75.6964 45.7554 74.964 47.5858H25.3282C24.8891 45.6088 24.1568 43.4859 25.3282 41.4364Z" fill="#70A91B"/>
13
+ <path d="M25.9865 42.8361C26.4989 41.5914 73.4246 41.0791 74.3768 42.8361C75.9873 45.8371 75.035 48.7656 74.3768 51.255H25.9865C25.5466 48.5457 24.8884 45.6913 25.9865 42.8361Z" fill="#4B7113"/>
14
+ <path d="M65.0059 10.9487C64.3469 -1.57002 47.5084 -2.88805 43.1161 6.92216C50.8759 2.67566 58.7824 4.21363 65.0059 10.9487Z" fill="#70A91B"/>
15
+ <path d="M55.6331 0.534549C50.7301 -0.197772 45.3855 1.92589 43.1893 6.82978C46.117 5.21932 49.1196 4.48779 51.974 4.48779C52.5605 3.38971 53.951 1.26687 55.708 0.534549H55.6331Z" fill="#85C51F"/>
16
+ <path d="M50.5108 9.96411C58.4173 9.96411 64.7874 16.3334 64.7874 24.2399C64.7874 32.1464 58.4173 38.5157 50.5108 38.5157C42.606 38.5157 36.2374 32.1464 36.2374 24.2399C36.2374 16.3334 42.6052 9.96411 50.5108 9.96411Z" fill="#D3E8EF"/>
17
+ <path d="M41.5071 13.6432C46.2651 9.68991 52.9277 9.68989 56.2944 13.7898C59.662 17.8163 58.4914 24.3315 53.7325 28.358C48.9729 32.3113 42.3119 32.3113 38.9427 28.2114C35.5768 24.1848 36.749 17.6697 41.5071 13.6432Z" fill="white"/>
18
+ <path d="M50.8749 19.4363C56.4385 19.4363 60.905 23.6095 60.905 28.8066C60.905 34.0045 56.4369 38.1777 50.8749 38.1777C45.3128 38.1777 40.8456 34.0045 40.8456 28.8066C40.8456 23.6095 45.312 19.4363 50.8749 19.4363Z" fill="#0D82DF"/>
19
+ <path d="M50.8748 19.4363C53.5834 19.4363 56.0728 20.461 57.8298 22.0715C57.1716 24.3409 55.7803 26.6104 53.73 28.3675C49.7768 31.6617 44.5071 32.1749 40.9189 29.9779C40.8456 29.6122 40.8456 29.2464 40.8456 28.8066C40.8456 23.6094 45.312 19.4363 50.8748 19.4363Z" fill="#0399ED"/>
20
+ <path d="M50.8763 22.8054C54.3904 22.8054 57.3189 25.514 57.3189 28.8082C57.3189 32.1033 54.4638 34.811 50.8763 34.811C47.3629 34.811 44.4344 32.1033 44.4344 28.8082C44.4344 25.514 47.2888 22.8054 50.8763 22.8054Z" fill="#232323"/>
21
+ <path d="M50.8763 22.7816C53.1457 22.7816 55.1228 23.8796 56.2942 25.4901C55.6343 26.5149 54.7562 27.4663 53.7314 28.272C51.0946 30.4689 47.8729 31.4204 45.0193 31.2004C44.6536 30.4689 44.4344 29.59 44.4344 28.711C44.4344 25.4168 47.2888 22.7083 50.8763 22.7083V22.7816Z" fill="#323232"/>
22
+ <path d="M45.2374 19.925C47.8727 19.925 49.9955 21.9021 49.9955 24.3907C49.9955 26.8801 47.8727 28.8571 45.2374 28.8571C42.6022 28.8571 40.4794 26.8801 40.4794 24.3907C40.4794 21.9021 42.6022 19.925 45.2374 19.925Z" fill="white"/>
23
+ <path d="M17.2005 46.3593C39.3094 43.0651 61.4933 43.3576 83.6023 46.3593C85.2128 57.9258 84.3338 68.909 83.6023 79.9615C61.4933 80.8404 39.3094 80.9878 17.2005 79.9615C15.8824 68.7616 15.7374 57.5601 17.2005 46.3593Z" fill="#9CAEB3"/>
24
+ <path d="M23.5688 77.7092C41.5054 78.3666 59.3687 78.2957 77.3036 77.7092C70.8618 74.0476 64.4192 70.5359 57.1717 68.5589C54.8273 69.6569 52.3403 70.5359 49.8509 71.2674C49.4843 71.3399 49.4844 71.3399 49.1186 71.2674C47.0675 70.6084 45.0187 69.8028 43.0409 68.9254C36.0126 70.9741 29.6441 73.976 23.4947 77.7834L23.5688 77.7092ZM19.3223 50.1824C18.3709 59.0411 18.5167 67.9724 19.4697 76.8303C25.9124 72.8045 32.7933 69.5828 40.0399 67.3141C31.6944 62.9218 25.8375 56.625 19.3223 50.1824ZM79.6456 48.4261C60.1002 46.0817 40.4798 45.8626 20.9336 48.4261C28.9859 57.4291 37.8462 64.8247 49.6326 68.7031C62.1497 65.118 70.7877 57.284 79.6456 48.4261ZM81.3302 76.8303C81.9167 67.9724 82.5016 59.1144 81.5501 50.2565C74.9625 56.7725 67.9333 62.9944 59.7336 67.3126C67.3476 69.582 74.4501 72.9512 81.4051 76.8295H81.3302V76.8303Z" fill="#D3E8EF"/>
25
+ <path d="M23.5688 77.6992C32.206 77.9925 40.844 78.1383 49.5577 78.1383V71.2574C49.4844 71.2574 49.4119 71.2574 49.192 71.1833C47.1425 70.5267 45.0937 69.7203 43.1159 68.8413C36.0876 70.8908 29.719 73.8918 23.5688 77.6992ZM19.3223 50.1724C18.3709 59.0312 18.5167 67.9624 19.4697 76.8203C25.9124 72.7945 32.7933 69.5728 40.04 67.3042C31.6944 62.9119 25.8375 56.6151 19.3223 50.1724ZM49.5577 46.585C39.9675 46.585 30.4505 47.1706 20.9336 48.417C28.9142 57.4207 37.8463 64.7423 49.5577 68.6939V46.585Z" fill="white"/>
26
+ <path d="M37.1137 51.8426C37.0411 52.135 36.8945 52.4291 36.7495 52.7215C36.6013 53.1606 36.3088 53.598 35.9439 53.8913C35.0649 54.5503 33.9676 54.332 33.0138 53.9646C30.8909 53.0857 29.4279 50.9628 28.5482 48.9133C27.5242 46.5689 27.4501 44.8867 28.0358 42.324C42.824 41.5192 57.9787 41.3726 72.327 42.2507V42.324H72.5478C72.7677 44.8134 72.5478 45.8382 71.9629 47.8901C71.3031 50.2321 69.9109 53.0857 67.5698 54.1837C66.6908 54.6244 65.6661 54.8435 64.8604 54.257C64.4955 53.9646 64.2038 53.5255 63.9823 53.0857C63.4699 52.2808 63.3249 51.1111 63.1775 50.2313C62.885 50.817 62.5193 51.1828 61.9328 51.3286C60.9813 51.5485 59.8832 51.6935 58.931 51.7676C57.9795 51.8417 56.9564 51.9159 55.9292 51.9159C54.392 51.9159 52.7075 51.7676 51.2452 51.3302C51.0261 52.2091 50.6596 53.0123 49.7814 53.3048C48.83 53.598 47.6578 53.7455 46.633 53.8196C45.5349 53.8913 44.4368 53.9654 43.4121 53.9654C41.7283 53.9654 39.8246 53.8196 38.2875 53.1606C37.701 52.9406 37.3336 52.5008 37.1161 51.9159V51.8426H37.1137Z" fill="#999966"/>
27
+ <path d="M61.9283 41.8228C62.5148 45.117 62.3673 49.3635 61.4159 49.5827C59.9513 49.9492 54.3142 50.5357 51.5332 49.511C50.7993 48.1204 50.7993 44.6063 50.8734 41.7511C54.6808 41.7503 58.4874 41.7503 61.9283 41.8228ZM38.2814 42.4818C37.7698 44.0198 37.2574 45.7761 36.745 47.9005C36.4518 49.2185 36.2318 50.5357 36.0111 51.4864C35.7186 52.8036 35.0596 53.0243 33.8149 52.5111C30.5932 51.1214 28.9118 45.7043 29.056 42.4085C31.253 42.2619 34.5481 42.1161 38.2806 41.9694C41.8688 41.8961 45.8954 41.8228 49.9219 41.8228C50.2861 45.8494 50.2861 50.6815 49.4096 51.7055C47.87 52.2203 41.8688 52.9518 38.9387 51.6338C37.6207 51.0489 38.1331 46.1434 38.2064 42.5559L38.2814 42.4818ZM62.5148 41.8228C62.9522 43.5799 63.4654 45.4103 63.977 47.7531C64.2695 49.2169 64.4177 50.6098 64.636 51.5597C64.9293 53.0235 65.515 53.2434 66.6856 52.6586C69.5423 51.1931 71.1528 45.7753 71.0779 42.1894C68.9566 42.0428 65.9548 41.8961 62.5148 41.8228Z" fill="#C0C0A0"/>
28
+ <path d="M50.8753 43.8018C54.3161 43.8018 57.7586 43.8018 60.9054 43.8743C61.4178 45.7055 61.4178 48.9997 59.2208 49.8045C56.8788 50.0252 53.5105 50.0969 51.5343 49.3654C51.0227 48.3399 50.8753 46.0704 50.8753 43.8018ZM38.2099 44.0209C41.3583 43.9476 44.9458 43.8743 48.5333 43.8743C48.8974 46.5103 49.5573 51.7815 46.263 52.074C43.8469 52.2939 40.846 52.2939 38.9414 51.4882C37.8458 50.9759 37.9908 47.3159 38.1366 44.0942L38.2099 44.0209ZM29.2062 44.4608C30.7433 44.3141 32.792 44.24 35.2073 44.1675C35.5006 44.1675 36.0863 51.4149 36.0863 51.4149C35.793 52.7329 35.1348 52.9529 33.8901 52.4405C31.3274 51.3424 29.717 47.68 29.2771 44.5333L29.2062 44.4608ZM64.6387 51.5616C64.9311 53.0254 65.5176 53.2453 66.6882 52.6605C69.0326 51.4883 70.4956 47.6809 70.9355 44.3874C69.545 44.24 67.8612 44.1675 65.8826 44.0942C64.712 44.9731 64.4912 51.0492 64.6387 51.5616Z" fill="#FBFAC4"/>
29
+ <path d="M44.58 43.9476C44.7282 46.8044 44.58 49.6579 44.2158 49.877C43.4843 50.3185 40.775 50.9026 39.4578 49.8045C38.943 49.4396 39.0171 46.6561 39.0912 44.0209C40.8475 43.9476 42.6787 43.9476 44.6549 43.8743L44.58 43.9476ZM56.8804 43.8743C56.9529 45.9979 56.8063 47.9741 56.5138 48.1208C55.8556 48.4857 53.2921 48.9264 51.9749 48.0474C51.5358 47.755 51.5358 45.7772 51.6083 43.8018H56.8812V43.8743H56.8804ZM33.7458 44.24C33.6725 45.0457 33.6725 45.9987 33.6725 46.9494V49.877C33.6725 50.9759 33.3801 51.195 32.7936 50.6827C31.6238 49.8045 30.5974 47.0227 30.1583 44.4608C31.1831 44.3866 32.4286 44.3141 33.7458 44.24ZM70.0573 44.3141C69.1035 44.24 68.0062 44.1675 66.7623 44.1675C66.7623 44.9723 66.8364 45.8505 66.8364 46.8035V49.9512C66.8364 51.1225 67.0555 51.3425 67.6412 50.8293C68.666 49.877 69.6183 47.096 70.0573 44.3141Z" fill="white"/>
30
+ <path d="M21.5943 78.2922C20.7887 81.9522 17.1262 84.3683 13.4679 84.2216C8.41656 84.0009 0.582577 78.438 0.729202 72.9476C0.802514 69.8733 3.07199 67.0899 5.41477 65.3344C7.68423 63.5749 11.4909 61.7469 14.4201 62.5517C17.3478 63.3574 19.3973 67.3839 20.3496 70.0183C21.2269 72.2886 22.1067 75.8777 21.5194 78.293H21.5943V78.2922Z" fill="#85C51F"/>
31
+ <path d="M20.3481 77.9211C20.4198 77.4821 20.4948 77.0422 20.4948 76.5298C19.5433 72.5033 17.273 67.8918 14.7111 67.1603C10.7579 65.9873 2.77892 71.2594 3.21637 76.6772C5.41333 80.0448 10.0997 82.8266 13.4664 82.9716C16.5407 83.1191 19.6891 81.0679 20.3489 77.9936V77.9211H20.3481Z" fill="#70A91B"/>
32
+ <path d="M16.6884 73.8213C17.7123 71.7718 16.031 68.1844 13.4675 68.4768C10.7589 68.8434 4.90198 72.8699 4.90198 76.0183C4.90198 77.9953 7.61051 79.3866 10.4649 78.5818C12.5885 77.9953 15.8827 75.5059 16.6884 73.8213ZM18.9578 78.946C19.4702 77.7013 18.7379 75.5059 17.2741 75.7242C15.7369 76.0183 12.0753 78.6527 12.2228 80.1173C12.2945 81.2895 14.3456 82.3143 15.9569 81.7278C17.1274 81.2895 18.518 79.9707 18.9578 78.946Z" fill="#5D8D17"/>
33
+ <path d="M12.6624 64.2777C12.7357 65.5957 10.173 66.7655 9.14826 65.8148C8.26932 64.1302 8.49087 62.0807 9.22158 61.6416C10.0272 61.2025 12.0042 62.0082 12.6624 64.2777Z" fill="#2C440C"/>
34
+ <path d="M7.68426 66.7087C7.97509 68.1709 6.00048 69.4172 5.04742 68.7582C3.80352 67.5135 3.36525 65.3174 3.94852 64.805C4.53583 64.2926 6.65869 65.0983 7.68426 66.7087Z" fill="#2C440C"/>
35
+ <path d="M3.94885 70.3721C4.39033 71.3243 3.43647 72.6415 2.33839 72.569C1.16861 71.6901 0.0705336 69.6406 0.507992 69.1274C0.947867 68.5426 2.92489 69.1274 3.94885 70.3721Z" fill="#2C440C"/>
36
+ <path d="M22.6907 56.7711C23.2772 55.6731 21.6667 54.9391 20.3487 54.4267C19.029 53.9885 18.3717 53.9885 17.8593 55.0866C17.2728 56.1846 16.9803 57.8676 18.3717 58.3067C19.6889 58.7466 22.1783 57.8676 22.7648 56.7695H22.6907V56.7711Z" fill="#2C440C"/>
37
+ <path d="M23.8624 52.6524C24.009 53.8963 22.2504 54.5553 20.7881 54.8485C19.3968 55.1418 18.8103 54.9943 18.6653 53.7496C18.5171 52.5033 18.8844 50.5287 20.3491 50.2363C21.738 49.9438 23.715 51.4068 23.8624 52.6524Z" fill="#2C440C"/>
38
+ <path d="M24.1542 48.5749C24.3033 49.7471 22.5438 50.3344 21.0816 50.6268C19.6902 50.9177 19.1037 50.7726 18.9587 49.5288C18.8097 48.3566 19.1771 46.527 20.5684 46.2337C21.9605 45.9405 23.9359 47.3318 24.0826 48.5016L24.1542 48.5749Z" fill="#2C440C"/>
39
+ <path d="M12.664 45.8633C12.8831 46.8172 14.7135 46.5948 16.1048 46.3048C17.4953 45.9382 18.0085 45.645 17.7153 44.6935C17.4953 43.7413 16.6164 42.4241 15.2283 42.7898C13.837 43.1556 12.4456 44.9135 12.664 45.9382V45.8633Z" fill="#2C440C"/>
40
+ <path d="M11.4185 57.489L11.8568 58.7329L10.9053 58.0014C10.4646 57.6348 10.1005 57.1225 9.80721 56.5368C9.87891 57.1225 9.95385 57.4898 10.1005 58.0014C8.70995 55.7311 7.46362 53.2426 8.26845 49.9491C9.00238 46.9466 12.0042 45.5552 14.127 44.9703C15.4442 44.6046 16.9073 44.3847 18.2245 44.5313C19.0301 44.6046 20.4214 44.8237 21.0071 45.5552C21.5928 46.29 21.8861 47.8255 22.0319 48.8503C22.251 50.4607 22.1794 52.1445 21.9602 53.7549C21.7395 55.218 21.3012 56.6101 20.5689 57.7815C19.9832 58.6604 19.3234 59.3186 18.4468 59.686C17.4196 60.1242 16.3949 60.1975 15.296 59.9784C13.8338 59.686 12.5158 58.807 11.3436 57.5623L11.4185 57.489Z" fill="#85C51F"/>
41
+ <path d="M20.2758 46.5749C21.1547 47.6013 21.5938 51.922 20.5682 55.0688C20.2758 55.1429 19.9092 55.2154 19.5442 55.2154C17.933 55.3628 16.3942 54.6313 15.3703 53.7524C15.4436 54.1914 15.5902 54.4839 15.7368 54.7038C14.8579 54.3397 14.1264 53.2408 13.6132 51.9953C13.6849 53.0209 13.8331 53.4599 13.9789 54.0464C12.8801 53.6799 12.0027 52.4351 11.3429 51.1187C10.7572 49.9465 10.8305 48.262 11.8553 47.5312C14.5638 45.5542 19.1769 45.4076 20.2008 46.6523L20.2758 46.5749Z" fill="#A1E141"/>
42
+ <path d="M79.2066 78.2922C80.0115 81.9522 83.6715 84.3683 87.3331 84.2216C92.3836 84.0009 100.217 78.438 100.069 72.9476C99.9984 69.8733 97.7265 67.0899 95.3854 65.3344C93.1159 63.5749 89.3077 61.7469 86.38 62.5517C83.4531 63.3574 81.4028 67.3839 80.4505 70.0183C79.5716 72.2886 78.6935 75.8777 79.2808 78.293H79.2066V78.2922Z" fill="#85C51F"/>
43
+ <path d="M80.3806 77.9211C80.3065 77.4821 80.2316 77.0422 80.2316 76.5298C81.1838 72.5033 83.4533 67.8918 86.016 67.1603C89.9684 65.9873 97.9474 71.2594 97.5099 76.6772C95.313 80.0448 90.6266 82.8266 87.2607 82.9716C84.1856 83.1191 81.0372 81.0679 80.3782 77.9936V77.9211H80.3806Z" fill="#70A91B"/>
44
+ <path d="M84.1106 73.8213C83.0842 71.7718 84.768 68.1844 87.3323 68.4768C90.0409 68.8434 95.897 72.8699 95.897 76.0183C95.897 77.9953 93.1885 79.3866 90.3333 78.5818C88.2097 77.9953 84.9163 75.5059 84.1106 73.8213ZM81.8412 78.946C81.3288 77.7013 82.0603 75.5059 83.5249 75.7242C85.0621 76.0183 88.7213 78.6527 88.5762 80.1173C88.5029 81.2895 86.4534 82.3143 84.8421 81.7278C83.6707 81.2895 82.2802 79.9707 81.8412 78.946Z" fill="#5D8D17"/>
45
+ <path d="M88.064 64.2777C87.9898 65.5957 90.5534 66.7655 91.5774 65.8148C92.4564 64.1302 92.2356 62.0807 91.5049 61.6416C90.6992 61.2025 88.7214 62.0082 88.064 64.2777Z" fill="#2C440C"/>
46
+ <path d="M93.0413 66.7087C92.7504 68.1709 94.725 69.4172 95.6781 68.7582C96.9219 67.5135 97.3602 65.3174 96.7769 64.805C96.1896 64.2926 94.066 65.0983 93.0413 66.7087Z" fill="#2C440C"/>
47
+ <path d="M96.7783 70.3721C96.3376 71.3243 97.2915 72.6415 98.3888 72.569C99.5586 71.6901 100.657 69.6406 100.219 69.1274C99.7793 68.5426 97.8031 69.1274 96.7783 70.3721Z" fill="#2C440C"/>
48
+ <path d="M78.0361 56.7711C77.4504 55.6731 79.0608 54.9391 80.3804 54.4267C81.6984 53.9885 82.355 53.9885 82.8681 55.0866C83.4538 56.1846 83.7471 57.8676 82.355 58.3067C81.0386 58.7466 78.5484 57.8676 77.9628 56.7695H78.0361V56.7711Z" fill="#2C440C"/>
49
+ <path d="M76.9381 52.6524C76.7923 53.8963 78.5486 54.5553 80.0132 54.8485C81.4046 55.1418 81.9902 54.9943 82.1361 53.7496C82.2827 52.5033 81.9177 50.5287 80.4523 50.2363C79.0617 49.9438 77.0855 51.4068 76.9381 52.6524Z" fill="#2C440C"/>
50
+ <path d="M76.5721 48.5749C76.4239 49.7471 78.1826 50.3344 79.6448 50.6268C81.0361 50.9177 81.6227 50.7726 81.7677 49.5288C81.9167 48.3566 81.5493 46.527 80.1572 46.2337C78.7667 45.9405 76.7905 47.3318 76.6438 48.5016L76.5721 48.5749Z" fill="#2C440C"/>
51
+ <path d="M88.1406 45.8633C87.9199 46.8172 86.0895 46.5948 84.6981 46.3048C83.3092 45.9382 82.7952 45.645 83.0877 44.6935C83.3092 43.7413 84.1858 42.4241 85.5763 42.7898C86.9684 43.1556 88.3589 44.9135 88.1406 45.9382V45.8633Z" fill="#2C440C"/>
52
+ <path d="M89.3117 57.489L88.8727 58.7329L89.8241 58.0014C90.2656 57.6348 90.6297 57.1225 90.9222 56.5368C90.8505 57.1225 90.7764 57.4898 90.6297 58.0014C92.0203 55.7311 93.2666 53.2426 92.4609 49.9491C91.7278 46.9466 88.7252 45.5552 86.6032 44.9703C85.2852 44.6046 83.8229 44.3847 82.5049 44.5313C81.7001 44.6046 80.3088 44.8237 79.7231 45.5552C79.1366 46.29 78.8441 47.8255 78.6983 48.8503C78.4792 50.4607 78.5501 52.1445 78.7708 53.7549C78.9908 55.218 79.4282 56.6101 80.1613 57.7815C80.7462 58.6604 81.4069 59.3186 82.2834 59.686C83.3106 60.1242 84.3345 60.1975 85.4334 59.9784C86.8956 59.686 88.2137 58.807 89.3867 57.5623L89.3117 57.489Z" fill="#85C51F"/>
53
+ <path d="M80.4522 46.5749C79.5733 47.6013 79.1342 51.922 80.1598 55.0688C80.4522 55.1429 80.8188 55.2154 81.1837 55.2154C82.795 55.3628 84.333 54.6313 85.3578 53.7524C85.2836 54.1914 85.1378 54.4839 84.9912 54.7038C85.8701 54.3397 86.6017 53.2408 87.114 51.9953C87.0423 53.0209 86.8941 53.4599 86.7491 54.0464C87.848 53.6799 88.7245 52.4351 89.3851 51.1187C89.97 49.9465 89.8975 48.262 88.8727 47.5312C86.1642 45.5542 81.5511 45.4076 80.5271 46.6523L80.4522 46.5749Z" fill="#A1E141"/>
54
+ </svg>
assets/css/images/icons/archie-icon.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 189 159" fill="currentColor"><defs/><path d="M112.547 55.298c0 8.867-7.57 16.055-16.91 16.055-9.339 0-16.91-7.188-16.91-16.055s7.571-16.056 16.91-16.056c.955 0 1.89.075 2.802.22a8.824 8.824 0 1011.077 6.661c1.911 2.6 3.031 5.763 3.031 9.175z"/><path d="M134.604 31.662C120.805 19.652 103.51 15.729 86.45 15.69h-.33c-10.827.008-21.55 1.57-31.216 3.619 1.185.27 2.38.529 3.58.79 5.349 1.16 10.787 2.342 15.831 4.502-8.53.884-17.35 3.825-24.997 7.65-5.002 2.35-10.294 5.882-14.412 9.704l-4.119 4.118c1.324-.155 2.627-.352 3.914-.546 3.578-.54 7.038-1.063 10.499-.631-2.941 1.764-5.883 3.825-8.53 6.472-2.648 0-5.293-.296-6.763-1.177-.892-.447-1.276-3.59-1.538-5.728-.084-.685-.155-1.268-.226-1.625-.297-3.531-4.706-5.002-7.353-3.235-4.706 3.529-7.353 9.998-7.94 15.88-.59 5.883 0 13.532 4.115 17.941 3.531 4.118 11.201 5.56 17.67 5.856 0 .294-.181 4.174-.316 4.145H33.14c-.587-1.764-2.354-3.822-4.705-3.235-2.354.587-4.705 3.235-4.999 5.295-3.53 1.47-7.06 4.116-8.236 8.527-.587 2.355-.587 5.002 0 7.06 1.47 6.766 7.646 10.587 13.529 11.765.587.293.883.293 1.47.293v6.472c-.883-.883-2.057-1.47-3.234-1.764-1.471-.59-3.529-.59-5.296-.296-1.47-1.764-3.234-2.058-4.412-1.471-.586.297-1.174 1.767-1.174 3.238-2.06.88-3.824 1.764-5.295 2.941-1.47-.59-2.941-.883-3.528-.296-.587.296-.587 1.767-.294 3.237-.392.49-.784.948-1.177 1.405-.784.914-1.57 1.829-2.354 3.007-1.174-.59-2.351-.59-2.645 0-.59.881 0 2.351.881 3.822-.293 1.177-.587 2.354-.587 3.528 0 10.294 14.706 20.885 24.117 21.178 5.585.294 11.468-2.647 14.115-7.646 37.056 1.47 74.114 1.47 111.169 0 2.648 4.999 8.234 7.94 13.823 7.646 9.704-.293 24.41-10.884 24.116-21.178 0-1.174-.293-2.351-.59-3.528.884-1.471 1.471-2.941.297-3.822-.297-.59-1.471-.59-2.648 0-.883-1.471-2.057-2.941-3.528-4.412.293-1.47.293-2.647-.297-3.237-.587-.587-1.764-.294-3.234.296-1.471-.883-3.528-2.061-5.293-2.941 0-1.471-.59-2.941-1.177-3.238-.883-.587-2.941 0-4.411 1.471-1.765-.294-3.529-.294-5.293.296-1.177.294-2.06.881-3.237 1.764v-6.472c.123 0 .296-.051.498-.11.286-.083.629-.183.972-.183 5.882-1.178 12.058-4.999 13.529-11.765.59-2.058.59-4.412 0-7.06-.881-4.705-4.705-7.056-8.234-8.527-.293-2.06-2.647-4.708-4.998-5.295-2.355-.587-4.119 1.47-4.706 3.235-.59 0-.643-3.76-.643-4.054 6.47-.293 12.995-1.829 16.523-5.947 4.119-4.409 4.706-12.058 4.119-17.94-.59-5.586-3.235-12.059-7.943-15.587-2.645-1.764-7.057 0-7.35 3.235 0 1.47-.297 6.47-1.767 7.353-2.352 1.47-7.057 1.47-10.585.883-3.238-7.943-7.943-14.706-13.825-19.707zM27.553 126.365c4.705 1.471 9.117 10.001 10.88 17.647 0 .884 0 1.765-.293 2.942-1.177 5.882-7.056 9.707-12.939 9.413-6.472-.296-15.292-5.589-19.41-12.061-.884-10.294 14.409-19.998 21.762-17.941zm123.814 17.647c1.767-7.646 6.179-16.176 10.884-17.647 7.35-2.351 22.643 7.647 21.763 17.647-4.119 6.473-13.236 11.765-19.412 12.059-5.882.296-11.764-3.528-12.938-9.411-.297-.883-.297-1.764-.297-2.648zm-43.525-14.999c13.823 3.825 25.881 10.294 37.939 17.354-33.527.88-67.348 1.177-101.465-.294 11.471-7.059 23.53-12.648 36.762-16.47a91.5 91.5 0 0011.471 4.409c.506.17.721.242.924.217.151-.018.296-.091.547-.217 4.705-1.174 9.41-2.941 13.822-4.999zm-32.056-2.351c-12.059 3.528-23.823 8.82-34.705 15.293-.251-3.029-1.153-6.271-1.96-9.174-.134-.481-.265-.954-.39-1.414-.58-1.351-1.285-2.701-2.034-4.134-.394-.752-.799-1.528-1.204-2.338V111.66c.19-.126.394-.252.602-.382.76-.471 1.585-.982 2.045-1.675 2.06-.587 4.412-1.471 5-2.941.59-1.177-.588-2.354-2.059-3.235.294-.294.294-.59.294-.884.884-.293 2.06-.88 2.648-1.177 9.41 9.707 19.117 18.531 31.763 25.297zm37.055-.297c12.255-6.419 23.353-15.155 33.58-24.771l.241-.229c.59.59 1.47.884 2.354 1.177 0 .13.056.259.12.388l.053.108c.065.13.12.259.12.388-1.47.881-2.647 1.764-2.057 3.235.88 1.177 2.941 2.647 4.999 2.941.883.883 1.764 1.764 2.647 2.354 0 4.412 0 9.117-.293 13.529-1.177 2.057-2.354 4.118-2.941 6.176-1.178 2.941-2.061 6.763-2.355 10.294-11.764-6.473-23.823-11.765-36.468-15.59zM49.32 89.456c1.093-.128 2.185-.257 3.327-.386l.493-.055c.587 2.057 1.177 4.118 2.354 5.882 3.235 5.589 14.41 11.765 14.703 2.354 1.91 4.634 11.654 3.961 16.814 3.604a236.6 236.6 0 011.127-.076l1.011-.109c4.622-.496 6.987-.749 7.812-4.596 4.115 1.177 9.998 1.177 14.409.88l.925-.072c3.16-.242 5.945-.454 7.016-2.869l.066.4c.277 1.672.589 3.556 1.404 5.19 3.531 7.059 12.058.589 15.293-10.295 2.648.294 5.589.59 8.53.884 0 .129-.056.258-.12.384l-.053.112c-.065.129-.12.258-.12.384-.294 1.177 1.177 2.354 2.647 2.941-15.589 15.296-31.176 28.825-53.232 35.001-20.588-6.763-36.468-19.411-50.88-34.704 1.764-.59 2.94-1.47 2.94-3.531 0-.294 0-.587-.293-.88a592.84 592.84 0 003.827-.443zm76.166 8.97c-2.057.883-2.644.59-2.938-1.471-.346-2.304-.601-4.608-.855-6.894-.394-3.551-.783-7.059-1.499-10.457 4.412 0 8.824 0 12.942.293-.297 5.59-2.354 15.883-7.65 18.528zm-58.23-1.765c-.294 2.354-1.47 2.354-3.235 1.47-7.056-3.234-8.824-11.47-7.353-17.94l.771-.055c3.828-.274 7.43-.532 11.287-.532-.261 2.225-.464 5.265-.661 8.214-.246 3.676-.482 7.21-.81 8.843zm6.176-17.057c6.175-.296 12.351-.296 18.824-.296.293 2.647.88 16.766-.297 17.647-4.409 1.177-13.822 1.177-17.937-.587-2.061-.884-1.178-13.823-.59-16.764zm24.706 12.939c-1.47-.88-1.47-11.765-1.47-13.236 6.175-.293 12.645-.293 18.821-.293.293 1.764 1.177 13.235-.587 13.825-3.825 1.174-13.236 1.47-16.764-.296zM20.496 45.487c1.048-1.048 2.093-1.515 2.936-1.524h.044c1.021.003 1.726.69 1.726 1.817 0 1.84.47 3.45.78 4.397 0 0 .72 1.988 1.773 2.8l.027.021c1.2.793 3.096 1.33 4.476 1.606l1.177.05-2.474 4.285 5.709-2.278c.366-.121.72-.243 1.066-.363 1.321-.456 2.535-.875 3.933-1.107-3.529 6.472-5.88 13.529-6.763 20.882-1.177 0-2.648-.003-4.119-.297-.179-.035-2.553-.522-2.63-.58l-.017-.013c-3.531-.883-6.763-2.051-8.82-4.11-.58-.577-3.242-4.09-3.236-8.823l-.008-.085c-.273-3.59.625-12.886 4.42-16.678zm148.812 0c3.496 3.786 4.684 13.056 4.42 16.664-.088 2.662-.854 6.1-3.243 9.217-1.506 1.966-4.949 3.21-8.445 3.81l-3.026.601c-1.468.294-2.645.294-3.822.294-.587-7.353-2.354-14.41-4.706-21.176h3.822c.027.021.05.044.074.065l-.012-.059.233-.014c2.409-.154 4.15-.264 5.723-1.075 1.429-.733 2.694-1.573 3.402-3.346.294-.892.874-2.65.874-4.688 0-2.06 2.354-2.647 4.706-.293zM95.491 72.544c-13.823 0-25-11.177-25-25 0-13.528 11.177-24.706 25-24.706 13.822 0 24.997 10.884 24.997 24.706 0 13.823-11.175 25-24.998 25z"/><path d="M104.608 1C95.49-.249 85.49 3.72 81.374 12.836c14.704-7.94 29.703-5.292 41.174 7.65-.59-11.765-8.823-18.237-17.94-19.488z"/></svg>
assets/dist/css/blocks-admin.min.css CHANGED
@@ -1,112 +1,124 @@
1
  @charset "UTF-8";
2
  .optinmonster-gutenberg-campaign-selector-wrap {
3
- text-align: center !important;
4
  -webkit-box-align: center !important;
5
  -ms-flex-align: center !important;
6
  align-items: center !important; }
7
- .optinmonster-gutenberg-campaign-selector-wrap .optinmonster-gutenberg-campaign-selector-label {
8
- -webkit-box-align: center;
9
- -ms-flex-align: center;
10
- align-items: center;
11
- color: #23282D;
12
- display: -webkit-box;
13
- display: -ms-flexbox;
14
- display: flex;
15
- font-size: 14px;
16
- margin-bottom: -1em;
17
- /** Undo WordPress default **/
18
- padding-bottom: 10px; }
19
- .optinmonster-gutenberg-campaign-selector-wrap .optinmonster-gutenberg-campaign-selector-label img {
20
- height: 19px;
21
- margin-right: 7px;
22
- width: 22.79px; }
23
- .optinmonster-gutenberg-campaign-selector-wrap .optinmonster-gutenberg-campaign-selector-no_campaigns p,
24
- .optinmonster-gutenberg-campaign-selector-wrap .optinmonster-gutenberg-campaign-selector-no_sites p {
25
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
26
- line-height: 1.5;
27
- margin: 0 0 10px; }
28
- .optinmonster-gutenberg-campaign-selector-wrap .optinmonster-gutenberg-campaign-selector-no_campaigns-help,
29
- .optinmonster-gutenberg-campaign-selector-wrap .optinmonster-gutenberg-campaign-selector-no_sites-help {
30
- color: #4A4A4A; }
31
- .optinmonster-gutenberg-campaign-selector-wrap .optinmonster-gutenberg-campaign-selector-no_campaigns-header {
32
- color: #23282D;
33
- font-size: 14px;
34
- font-weight: bold; }
35
- .optinmonster-gutenberg-campaign-selector-wrap .optinmonster-gutenberg-campaign-selector-no_campaigns-button a {
36
- background: #087CE1;
37
- border: 0;
38
- -webkit-box-shadow: none;
39
- box-shadow: none;
40
- color: white;
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  font-weight: bold;
42
- height: auto;
43
- line-height: 1;
44
- outline: none;
45
- padding: 10px;
46
- text-decoration: none; }
47
- .optinmonster-gutenberg-campaign-selector-wrap .optinmonster-gutenberg-campaign-selector-no_campaigns-button a:after {
48
- content: "→";
49
- margin-left: 5px; }
50
- .optinmonster-gutenberg-campaign-selector-wrap .optinmonster-gutenberg-campaign-selector-no_campaigns-button a:focus, .optinmonster-gutenberg-campaign-selector-wrap .optinmonster-gutenberg-campaign-selector-no_campaigns-button a:active, .optinmonster-gutenberg-campaign-selector-wrap .optinmonster-gutenberg-campaign-selector-no_campaigns-button a:hover {
51
- background: #0661b0 !important;
52
- border: 0 !important;
53
- -webkit-box-shadow: none !important;
54
- box-shadow: none !important;
55
- color: white;
56
- outline: none !important; }
57
- .optinmonster-gutenberg-campaign-selector-wrap .optinmonster-gutenberg-campaign-selector-no_campaigns-button-help a {
58
- border: 0;
59
- -webkit-box-shadow: none;
60
- box-shadow: none;
61
- color: #087CE1;
62
- font-size: 12px;
63
- height: auto;
64
- line-height: 1;
65
- outline: none;
66
- padding: 0;
67
- text-decoration: none; }
68
- .optinmonster-gutenberg-campaign-selector-wrap .optinmonster-gutenberg-campaign-selector-no_campaigns-button-help a:focus, .optinmonster-gutenberg-campaign-selector-wrap .optinmonster-gutenberg-campaign-selector-no_campaigns-button-help a:active, .optinmonster-gutenberg-campaign-selector-wrap .optinmonster-gutenberg-campaign-selector-no_campaigns-button-help a:hover {
69
- border: 0;
70
- -webkit-box-shadow: none;
71
- box-shadow: none;
72
- color: #087CE1 !important;
73
- outline: none;
74
- text-decoration: underline; }
75
- .optinmonster-gutenberg-campaign-selector-wrap .optinmonster-gutenberg-campaign-selector-no_sites-button {
76
- -webkit-box-align: center;
77
- -ms-flex-align: center;
78
- align-items: center;
79
- display: -webkit-box;
80
- display: -ms-flexbox;
81
- display: flex;
82
- -webkit-box-pack: center;
83
- -ms-flex-pack: center;
84
- justify-content: center; }
85
- .optinmonster-gutenberg-campaign-selector-wrap .optinmonster-gutenberg-campaign-selector-no_sites-button a {
86
- background: transparent !important;
87
- border: 1px solid #CCCCCC;
88
- -webkit-box-shadow: none;
89
- box-shadow: none;
90
- color: #555555 !important;
91
- height: auto;
92
- line-height: 1;
93
- margin: 0 10px;
94
- outline: none;
95
- padding: 10px;
96
- text-decoration: none; }
97
- .optinmonster-gutenberg-campaign-selector-wrap .optinmonster-gutenberg-campaign-selector-no_sites-button a:focus, .optinmonster-gutenberg-campaign-selector-wrap .optinmonster-gutenberg-campaign-selector-no_sites-button a:active, .optinmonster-gutenberg-campaign-selector-wrap .optinmonster-gutenberg-campaign-selector-no_sites-button a:hover {
98
- background: transparent !important;
99
- border: 1px solid #CCCCCC;
100
  -webkit-box-shadow: none !important;
101
- box-shadow: none !important;
102
- color: #555555 !important;
103
- outline: none !important; }
104
- .optinmonster-gutenberg-campaign-selector-wrap .components-base-control {
105
- width: 100% !important; }
106
- .optinmonster-gutenberg-campaign-selector-wrap .components-base-control select {
107
- display: block;
108
- max-width: 90%;
109
- margin: 0 auto; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
110
 
111
  .om-archie-loader circle {
112
  -webkit-animation: 2s linear infinite circle-animation;
1
  @charset "UTF-8";
2
  .optinmonster-gutenberg-campaign-selector-wrap {
 
3
  -webkit-box-align: center !important;
4
  -ms-flex-align: center !important;
5
  align-items: center !important; }
6
+ .optinmonster-gutenberg-campaign-selector-wrap .components-placeholder__fieldset-wrapper {
7
+ text-align: center;
8
+ width: 100%; }
9
+ .optinmonster-gutenberg-campaign-selector-wrap .components-placeholder__fieldset-desc {
10
+ margin-bottom: 20px; }
11
+ .optinmonster-gutenberg-campaign-selector-wrap .components-placeholder__fieldset-fields {
12
+ width: 60%;
13
+ margin: auto;
14
+ margin-bottom: 16px; }
15
+ .optinmonster-gutenberg-campaign-selector-wrap .components-placeholder__fieldset-fields .components-button {
16
+ display: block;
17
+ margin-right: 0;
18
+ line-height: 12px; }
19
+
20
+ .optinmonster-gutenberg-campaign-selector-label {
21
+ -webkit-box-align: center;
22
+ -ms-flex-align: center;
23
+ align-items: center;
24
+ color: #23282D;
25
+ display: -webkit-box;
26
+ display: -ms-flexbox;
27
+ display: flex;
28
+ font-size: 14px;
29
+ margin-bottom: -1em;
30
+ /** Undo WordPress default **/
31
+ padding-bottom: 10px; }
32
+ .optinmonster-gutenberg-campaign-selector-label img {
33
+ margin-right: 7px;
34
+ width: 22.79px; }
35
+
36
+ .optinmonster-gutenberg-campaign-selector-no_sites-button {
37
+ -webkit-box-align: center;
38
+ -ms-flex-align: center;
39
+ align-items: center;
40
+ display: -webkit-box;
41
+ display: -ms-flexbox;
42
+ display: flex;
43
+ -webkit-box-pack: center;
44
+ -ms-flex-pack: center;
45
+ justify-content: center;
46
+ margin-bottom: 0 !important; }
47
+ .optinmonster-gutenberg-campaign-selector-no_sites-button a {
48
+ margin: 0 10px; }
49
+
50
+ .optinmonster-gutenberg-campaign-selector-no_campaigns {
51
+ text-align: center; }
52
+ .optinmonster-gutenberg-campaign-selector-no_campaigns-header {
53
  font-weight: bold;
54
+ margin-bottom: 5px !important; }
55
+ .optinmonster-gutenberg-campaign-selector-no_campaigns-button {
56
+ margin-bottom: 5px !important; }
57
+ .optinmonster-gutenberg-campaign-selector-no_campaigns-button a {
58
+ font-weight: bold; }
59
+ .optinmonster-gutenberg-campaign-selector-no_campaigns-button a:after {
60
+ content: "→";
61
+ margin-left: 5px; }
62
+ .optinmonster-gutenberg-campaign-selector-no_campaigns-button-help {
63
+ margin-bottom: -12px !important; }
64
+ .optinmonster-gutenberg-campaign-selector-no_campaigns-button-help .is-tertiary {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
65
  -webkit-box-shadow: none !important;
66
+ box-shadow: none !important; }
67
+
68
+ .om-campaigns-disabled [data-type="optinmonster/campaign-selector"] {
69
+ overflow: visible; }
70
+ .om-campaigns-disabled [data-type="optinmonster/campaign-selector"]:before {
71
+ content: 'OptinMonster campaigns have been disabled for this page';
72
+ position: absolute;
73
+ width: 100%;
74
+ height: calc(100% + 20px);
75
+ margin: -20px 0 0;
76
+ -webkit-box-shadow: 0 0 1px 6px #cc1818;
77
+ box-shadow: 0 0 1px 6px #cc1818;
78
+ color: #cc1818;
79
+ padding: 0 0 0 4px;
80
+ font-size: .8em; }
81
+
82
+ .om-campaigns-disabled .om-format-popover .components-popover__content:before {
83
+ content: '';
84
+ position: absolute;
85
+ width: 100%;
86
+ height: calc(100% + 23px);
87
+ margin: -18px 0 0 -18px;
88
+ -webkit-box-shadow: 0 0 1px 6px #cc1818;
89
+ box-shadow: 0 0 1px 6px #cc1818;
90
+ padding: 0 0 0 4px; }
91
+
92
+ .om-campaigns-disabled .om-format-popover .components-popover__content:after {
93
+ content: 'OptinMonster campaigns have been disabled for this page';
94
+ width: 100%;
95
+ height: 20px;
96
+ background: white;
97
+ z-index: 1;
98
+ display: block;
99
+ position: absolute;
100
+ bottom: -22px;
101
+ left: -1px;
102
+ color: #cc1818;
103
+ padding: 0 0 31px 17px; }
104
+
105
+ .components-popover .optinmonster-gutenberg-campaign-selector-no_sites, .components-popover .optinmonster-gutenberg-campaign-selector-no_campaigns {
106
+ padding: 46px 46px 38px;
107
+ text-align: center; }
108
+ .components-popover .optinmonster-gutenberg-campaign-selector-no_sites-help, .components-popover .optinmonster-gutenberg-campaign-selector-no_campaigns-help {
109
+ margin-bottom: 1.5em; }
110
+
111
+ .optinmonster-format-campaign-selector-no-campaigns {
112
+ display: block;
113
+ text-decoration: none; }
114
+ .optinmonster-format-campaign-selector-no-campaigns:after {
115
+ content: "→";
116
+ margin-left: 5px; }
117
+
118
+ .om-format-popover .components-popover__content {
119
+ padding: 17px;
120
+ min-width: 362px;
121
+ overflow: visible; }
122
 
123
  .om-archie-loader circle {
124
  -webkit-animation: 2s linear infinite circle-animation;
assets/dist/css/blocks-admin.min.js DELETED
@@ -1 +0,0 @@
1
- (function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={i:d,l:!1,exports:{}};return a[d].call(e.exports,e,e.exports,b),e.l=!0,e.exports}var c={};return b.m=a,b.c=c,b.d=function(a,c,d){b.o(a,c)||Object.defineProperty(a,c,{configurable:!1,enumerable:!0,get:d})},b.n=function(a){var c=a&&a.__esModule?function(){return a['default']}:function(){return a};return b.d(c,'a',c),c},b.o=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)},b.p='',b(b.s=103)})({103:function(){}});
 
assets/dist/css/common.min.js DELETED
@@ -1 +0,0 @@
1
- (function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={i:d,l:!1,exports:{}};return a[d].call(e.exports,e,e.exports,b),e.l=!0,e.exports}var c={};return b.m=a,b.c=c,b.d=function(a,c,d){b.o(a,c)||Object.defineProperty(a,c,{configurable:!1,enumerable:!0,get:d})},b.n=function(a){var c=a&&a.__esModule?function(){return a['default']}:function(){return a};return b.d(c,'a',c),c},b.o=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)},b.p='',b(b.s=45)})({45:function(){}});
 
assets/dist/css/elementor-admin-dark.min.css ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #elementor-editor-wrapper .icon-optinmonster, #elementor-editor-wrapper .elementor-edit-area .icon-optinmonster {
2
+ -webkit-filter: invert(97%) sepia(7%) saturate(53%) hue-rotate(181deg) brightness(93%) contrast(93%);
3
+ filter: invert(97%) sepia(7%) saturate(53%) hue-rotate(181deg) brightness(93%) contrast(93%); }
4
+
5
+ #elementor-editor-wrapper .elementor-element:hover .icon-optinmonster, #elementor-editor-wrapper .elementor-edit-area .elementor-element:hover .icon-optinmonster {
6
+ -webkit-filter: invert(87%) sepia(16%) saturate(5070%) hue-rotate(168deg) brightness(104%) contrast(94%);
7
+ filter: invert(87%) sepia(16%) saturate(5070%) hue-rotate(168deg) brightness(104%) contrast(94%); }
8
+
9
+ #elementor-editor-wrapper .elementor-control-type-wysiwyg .optin-monster-insert-campaign-button {
10
+ color: #E0E1E3;
11
+ border-color: #7D7E82;
12
+ background-color: #64666A; }
13
+
14
+ #optin-monster-modal-wrap {
15
+ color: #444; }
16
+ #optin-monster-modal-wrap select {
17
+ color: #32373c;
18
+ border-color: #7e8993;
19
+ background: #fff; }
assets/dist/css/elementor-admin.min.css ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #elementor-editor-wrapper .icon-optinmonster, #elementor-editor-wrapper .elementor-edit-area .icon-optinmonster {
2
+ display: inline-block;
3
+ width: 34px;
4
+ height: 28px;
5
+ background-repeat: no-repeat;
6
+ background: url(../../css/images/icons/archie-icon.svg) no-repeat center;
7
+ background-size: 34px;
8
+ background-position: center center;
9
+ -webkit-filter: invert(35%) sepia(13%) saturate(404%) hue-rotate(162deg) brightness(98%) contrast(90%);
10
+ filter: invert(35%) sepia(13%) saturate(404%) hue-rotate(162deg) brightness(98%) contrast(90%);
11
+ margin: 4px 0 -4px; }
12
+
13
+ #elementor-editor-wrapper .elementor-element:hover .icon-optinmonster, #elementor-editor-wrapper .elementor-edit-area .elementor-element:hover .icon-optinmonster {
14
+ -webkit-filter: invert(17%) sepia(50%) saturate(3951%) hue-rotate(316deg) brightness(80%) contrast(120%);
15
+ filter: invert(17%) sepia(50%) saturate(3951%) hue-rotate(316deg) brightness(80%) contrast(120%); }
16
+
17
+ #elementor-editor-wrapper .elementor-widget-empty-icon.icon-optinmonster, #elementor-editor-wrapper .elementor-edit-area .elementor-widget-empty-icon.icon-optinmonster {
18
+ margin: 10px auto;
19
+ -webkit-filter: grayscale(1) !important;
20
+ filter: grayscale(1) !important;
21
+ opacity: 0.5;
22
+ width: 22px; }
23
+
24
+ #elementor-editor-wrapper .elementor-navigator__item .icon-optinmonster, #elementor-editor-wrapper .elementor-edit-area .elementor-navigator__item .icon-optinmonster {
25
+ width: 11px;
26
+ height: 11px; }
27
+
28
+ #elementor-editor-wrapper .elementor-navigator__item.elementor-editing .icon-optinmonster, #elementor-editor-wrapper .elementor-edit-area .elementor-navigator__item.elementor-editing .icon-optinmonster {
29
+ -webkit-filter: invert(100%) sepia(0%) saturate(0%) hue-rotate(14deg) brightness(102%) contrast(104%);
30
+ filter: invert(100%) sepia(0%) saturate(0%) hue-rotate(14deg) brightness(102%) contrast(104%); }
31
+
32
+ #elementor-editor-wrapper .elementor-control.elementor-control-add_campaign_btn .elementor-button b, #elementor-editor-wrapper .elementor-edit-area .elementor-control.elementor-control-add_campaign_btn .elementor-button b {
33
+ margin: 0 10px 0 0;
34
+ font-size: 13px;
35
+ font-weight: 400;
36
+ line-height: 12px; }
37
+
38
+ #elementor-editor-wrapper .elementor-control.elementor-control-add_campaign_btn.elementor-label-inline > .elementor-control-content > .elementor-control-field > .elementor-control-input-wrapper,
39
+ #elementor-editor-wrapper .elementor-edit-area .elementor-control.elementor-control-add_campaign_btn.elementor-label-inline > .elementor-control-content > .elementor-control-field > .elementor-control-input-wrapper,
40
+ #elementor-editor-wrapper .elementor-control.elementor-control-om_create_account.elementor-label-inline > .elementor-control-content > .elementor-control-field > .elementor-control-input-wrapper,
41
+ #elementor-editor-wrapper .elementor-edit-area .elementor-control.elementor-control-om_create_account.elementor-label-inline > .elementor-control-content > .elementor-control-field > .elementor-control-input-wrapper,
42
+ #elementor-editor-wrapper .elementor-control.elementor-control-om_connect_account.elementor-label-inline > .elementor-control-content > .elementor-control-field > .elementor-control-input-wrapper,
43
+ #elementor-editor-wrapper .elementor-edit-area .elementor-control.elementor-control-om_connect_account.elementor-label-inline > .elementor-control-content > .elementor-control-field > .elementor-control-input-wrapper {
44
+ margin-right: auto; }
45
+
46
+ #elementor-editor-wrapper .elementor-control-type-wysiwyg .wp-media-buttons {
47
+ margin-bottom: 19px; }
48
+
49
+ #elementor-editor-wrapper .elementor-control-type-wysiwyg .optin-monster-insert-campaign-button {
50
+ height: initial;
51
+ line-height: 24px;
52
+ font-size: 10px;
53
+ color: #6d7882;
54
+ border-color: #d5dadf;
55
+ background-color: #e6e9ec;
56
+ min-height: initial;
57
+ margin-left: 6px; }
58
+
59
+ #optin-monster-modal-wrap .submitbox .submitdelete {
60
+ color: #a00; }
61
+
62
+ #optin-monster-modal-wrap p a {
63
+ color: #0073aa; }
64
+
65
+ #optin-monster-modal-wrap #optin-monster-modal-submit, #optin-monster-modal-wrap #optin-monster-modal-submit-inline {
66
+ display: inline-block;
67
+ text-decoration: none;
68
+ font-size: 13px;
69
+ line-height: 2.15384615;
70
+ min-height: 30px;
71
+ margin: 0;
72
+ padding: 0 10px;
73
+ cursor: pointer;
74
+ border-width: 1px;
75
+ border-style: solid;
76
+ -webkit-appearance: none;
77
+ border-radius: 3px;
78
+ white-space: nowrap;
79
+ -webkit-box-sizing: border-box;
80
+ box-sizing: border-box;
81
+ background: #007cba;
82
+ border-color: #007cba;
83
+ color: #fff;
84
+ text-shadow: none; }
85
+ #optin-monster-modal-wrap #optin-monster-modal-submit:hover, #optin-monster-modal-wrap #optin-monster-modal-submit-inline:hover {
86
+ background: #0071a1;
87
+ border-color: #0071a1;
88
+ color: #fff; }
assets/dist/css/elementor-frontend.min.css ADDED
@@ -0,0 +1,167 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @charset "UTF-8";
2
+ .elementor-element.elementor-widget-optinmonster.elementor-widget-empty {
3
+ background: none; }
4
+ .elementor-element.elementor-widget-optinmonster.elementor-widget-empty .elementor-widget-empty-icon {
5
+ display: none; }
6
+
7
+ .elementor-editor-preview .elementor-widget-optinmonster.elementor-widget-empty {
8
+ display: block; }
9
+
10
+ .om-elementor-editor {
11
+ font-family: Roboto, Arial, Helvetica, Verdana, sans-serif;
12
+ font-style: normal;
13
+ font-weight: normal;
14
+ font-size: 13px;
15
+ line-height: 150%;
16
+ text-align: center;
17
+ color: #4A4A4A;
18
+ padding-left: 20px;
19
+ padding-right: 20px; }
20
+ .om-elementor-editor-select {
21
+ display: -webkit-box;
22
+ display: -ms-flexbox;
23
+ display: flex;
24
+ -webkit-box-orient: vertical;
25
+ -webkit-box-direction: normal;
26
+ -ms-flex-direction: column;
27
+ flex-direction: column;
28
+ -webkit-box-align: center;
29
+ -ms-flex-align: center;
30
+ align-items: center;
31
+ padding: 5px 0 15px; }
32
+ .om-elementor-editor-select-label {
33
+ display: -webkit-box;
34
+ display: -ms-flexbox;
35
+ display: flex;
36
+ -webkit-box-align: center;
37
+ -ms-flex-align: center;
38
+ align-items: center;
39
+ -webkit-box-pack: center;
40
+ -ms-flex-pack: center;
41
+ justify-content: center;
42
+ margin: 10px 0;
43
+ font-size: 13px;
44
+ line-height: 15px;
45
+ font-weight: 500;
46
+ color: #23282D; }
47
+ .om-elementor-editor-select-label img {
48
+ width: 23px;
49
+ margin-right: 5px; }
50
+ .om-elementor-editor-select select {
51
+ display: block;
52
+ font-size: 14px;
53
+ width: 100%;
54
+ padding: 0;
55
+ height: 2em; }
56
+ .om-elementor-editor-select-controls {
57
+ padding-top: 14px !important;
58
+ width: 100%;
59
+ max-width: 430px; }
60
+ .om-elementor-editor-select-controls-button {
61
+ width: 100%;
62
+ -webkit-box-pack: justify;
63
+ -ms-flex-pack: justify;
64
+ justify-content: space-between;
65
+ margin-top: 15px; }
66
+ .om-elementor-editor-select-controls-button a {
67
+ margin: 0; }
68
+ .om-elementor-editor p {
69
+ font-family: Roboto, Arial, Helvetica, Verdana, sans-serif;
70
+ font-style: normal;
71
+ font-weight: normal;
72
+ font-size: 13px;
73
+ line-height: 15px;
74
+ text-align: center;
75
+ color: #4A4A4A; }
76
+ .om-elementor-editor-no_sites, .om-elementor-editor-no_campaigns, .om-elementor-editor-select-controls {
77
+ display: -webkit-box;
78
+ display: -ms-flexbox;
79
+ display: flex;
80
+ -webkit-box-orient: vertical;
81
+ -webkit-box-direction: normal;
82
+ -ms-flex-direction: column;
83
+ flex-direction: column;
84
+ -webkit-box-align: center;
85
+ -ms-flex-align: center;
86
+ align-items: center;
87
+ padding-top: 30px; }
88
+ .om-elementor-editor-no_sites > img, .om-elementor-editor-no_campaigns > img, .om-elementor-editor-select-controls > img {
89
+ display: block;
90
+ width: 100px;
91
+ height: auto;
92
+ margin: 0px 0 23px; }
93
+ .om-elementor-editor-no_sites-help, .om-elementor-editor-no_campaigns-help, .om-elementor-editor-select-controls-help {
94
+ line-height: 150% !important; }
95
+ .om-elementor-editor-no_sites-help strong, .om-elementor-editor-no_campaigns-help strong, .om-elementor-editor-select-controls-help strong {
96
+ font-size: 18px;
97
+ font-weight: 500; }
98
+ .om-elementor-editor-no_sites-button, .om-elementor-editor-no_campaigns-button, .om-elementor-editor-select-controls-button {
99
+ display: -webkit-box;
100
+ display: -ms-flexbox;
101
+ display: flex;
102
+ -webkit-box-align: center;
103
+ -ms-flex-align: center;
104
+ align-items: center; }
105
+ .om-elementor-editor-no_sites-button > *, .om-elementor-editor-no_campaigns-button > *, .om-elementor-editor-select-controls-button > * {
106
+ margin: 0 5px; }
107
+ .om-elementor-editor-no_sites-button a, .om-elementor-editor-no_campaigns-button a, .om-elementor-editor-select-controls-button a {
108
+ display: -webkit-box;
109
+ display: -ms-flexbox;
110
+ display: flex;
111
+ -webkit-box-orient: horizontal;
112
+ -webkit-box-direction: normal;
113
+ -ms-flex-direction: row;
114
+ flex-direction: row;
115
+ -webkit-box-align: center;
116
+ -ms-flex-align: center;
117
+ align-items: center;
118
+ padding: 9px 10px;
119
+ background: #F7F7F7;
120
+ border: 1px solid #CCCCCC;
121
+ -webkit-box-sizing: border-box;
122
+ box-sizing: border-box;
123
+ border-radius: 3px; }
124
+ .om-elementor-editor-no_sites-button a:hover, .om-elementor-editor-no_sites-button a:active, .om-elementor-editor-no_sites-button a:focus, .om-elementor-editor-no_campaigns-button a:hover, .om-elementor-editor-no_campaigns-button a:active, .om-elementor-editor-no_campaigns-button a:focus, .om-elementor-editor-select-controls-button a:hover, .om-elementor-editor-select-controls-button a:active, .om-elementor-editor-select-controls-button a:focus {
125
+ border-color: #087ce1;
126
+ background-color: #087ce1;
127
+ color: #fff;
128
+ text-decoration: none;
129
+ -webkit-box-shadow: none;
130
+ box-shadow: none; }
131
+ .om-elementor-editor-no_sites-button a.is-primary, .om-elementor-editor-no_campaigns-button a.is-primary, .om-elementor-editor-select-controls-button a.is-primary {
132
+ background: #087CE1;
133
+ border-color: #087ce1;
134
+ color: #fff; }
135
+ .om-elementor-editor-no_sites-button a.is-primary:hover, .om-elementor-editor-no_sites-button a.is-primary:active, .om-elementor-editor-no_sites-button a.is-primary:focus, .om-elementor-editor-no_campaigns-button a.is-primary:hover, .om-elementor-editor-no_campaigns-button a.is-primary:active, .om-elementor-editor-no_campaigns-button a.is-primary:focus, .om-elementor-editor-select-controls-button a.is-primary:hover, .om-elementor-editor-select-controls-button a.is-primary:active, .om-elementor-editor-select-controls-button a.is-primary:focus {
136
+ background-color: #096bc1;
137
+ border-color: #096bc1; }
138
+ .om-elementor-editor-no_sites-button a.om-green, .om-elementor-editor-no_campaigns-button a.om-green, .om-elementor-editor-select-controls-button a.om-green {
139
+ background: #46B450;
140
+ border-color: #46b450;
141
+ color: #fff;
142
+ padding-right: 30px;
143
+ padding-left: 30px;
144
+ font-weight: bold; }
145
+ .om-elementor-editor-no_sites-button a.om-green:hover, .om-elementor-editor-no_sites-button a.om-green:active, .om-elementor-editor-no_sites-button a.om-green:focus, .om-elementor-editor-no_campaigns-button a.om-green:hover, .om-elementor-editor-no_campaigns-button a.om-green:active, .om-elementor-editor-no_campaigns-button a.om-green:focus, .om-elementor-editor-select-controls-button a.om-green:hover, .om-elementor-editor-select-controls-button a.om-green:active, .om-elementor-editor-select-controls-button a.om-green:focus {
146
+ background-color: #3fa548;
147
+ border-color: #3fa548; }
148
+ .om-elementor-editor-no_sites-button-help a, .om-elementor-editor-no_campaigns-button-help a, .om-elementor-editor-select-controls-button-help a {
149
+ color: #6C7781; }
150
+ .om-elementor-editor .om-errors {
151
+ border-radius: 3px;
152
+ padding: 15px 20px;
153
+ border: solid 1px;
154
+ position: relative;
155
+ background-color: #FDF3F2;
156
+ border-color: #DC3232;
157
+ text-align: left; }
158
+
159
+ .omapi-link-arrow-after {
160
+ margin-right: 1em;
161
+ padding-right: 7px;
162
+ position: relative; }
163
+ .omapi-link-arrow-after:after {
164
+ content: '→';
165
+ font-family: 'FontAwesome', Roboto, Arial, Helvetica, Verdana, sans-serif;
166
+ font-size: 13px;
167
+ margin-left: 5px; }
assets/dist/css/metabox.min.css ADDED
@@ -0,0 +1,162 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @charset "UTF-8";
2
+ /* ========================================
3
+ Colors
4
+ ======================================== */
5
+ /* ========================================
6
+ Fonts
7
+ ======================================== */
8
+ /* ========================================
9
+ Item-Specific
10
+ ======================================== */
11
+ #woocommerce_promote_coupon_metabox .inside,
12
+ #woocommerce_popup_metabox .inside {
13
+ margin: 0;
14
+ padding: 0; }
15
+
16
+ #woocommerce_promote_coupon_metabox .postbox-header h2,
17
+ #woocommerce_popup_metabox .postbox-header h2 {
18
+ color: #444444; }
19
+
20
+ .omapi-metabox {
21
+ display: -webkit-box;
22
+ display: -ms-flexbox;
23
+ display: flex; }
24
+ .omapi-metabox__arrow-after:after {
25
+ content: '→';
26
+ margin-left: 3px; }
27
+ .omapi-metabox__link-style {
28
+ text-decoration: none;
29
+ color: #087CE1;
30
+ line-height: 1.5em; }
31
+ .omapi-metabox__link-style:hover {
32
+ color: #096BC1; }
33
+ .omapi-metabox__nav {
34
+ background: #F9F9F9;
35
+ border-right: 1px solid #EBEBEB; }
36
+ .omapi-metabox__nav ul {
37
+ margin: 0;
38
+ width: 235px; }
39
+ @media screen and (max-width: 1150px) {
40
+ .omapi-metabox__nav ul {
41
+ width: 100%; } }
42
+ .omapi-metabox__nav ul li {
43
+ margin: 0; }
44
+ .omapi-metabox__nav ul li a {
45
+ -webkit-box-align: stretch;
46
+ -ms-flex-align: stretch;
47
+ align-items: stretch;
48
+ border-bottom: 1px solid #EBEBEB;
49
+ color: #10649B;
50
+ display: -webkit-box;
51
+ display: -ms-flexbox;
52
+ display: flex;
53
+ padding: 10px;
54
+ text-decoration: none; }
55
+ .omapi-metabox__nav ul li a svg, .omapi-metabox__nav ul li a img {
56
+ margin-right: .618em; }
57
+ .omapi-metabox__nav ul li a:hover {
58
+ color: #10649B; }
59
+ .omapi-metabox__nav ul li a.active {
60
+ background: #EBEBEB;
61
+ color: #23282D;
62
+ font-weight: 500; }
63
+ .omapi-metabox__nav ul li a:active, .omapi-metabox__nav ul li a:focus {
64
+ -webkit-box-shadow: none;
65
+ box-shadow: none;
66
+ outline: none; }
67
+ .omapi-metabox__content {
68
+ -webkit-box-flex: 1;
69
+ -ms-flex: 1 1 80%;
70
+ flex: 1 1 80%; }
71
+ .omapi-metabox__tab {
72
+ -webkit-box-align: start;
73
+ -ms-flex-align: start;
74
+ align-items: flex-start;
75
+ display: -webkit-box;
76
+ display: -ms-flexbox;
77
+ display: flex;
78
+ padding: 30px 30px 26px;
79
+ color: #23282D; }
80
+ @media screen and (max-width: 1180px) {
81
+ .omapi-metabox__tab {
82
+ -webkit-box-orient: vertical;
83
+ -webkit-box-direction: normal;
84
+ -ms-flex-direction: column;
85
+ flex-direction: column; } }
86
+ .omapi-metabox__tab-coupon {
87
+ padding: 70px 40px 65px; }
88
+ @media screen and (max-width: 1300px) {
89
+ .omapi-metabox__tab-coupon {
90
+ padding: 30px 20px 25px; } }
91
+ .omapi-metabox__tab-case-studies {
92
+ padding: 0 30px 30px; }
93
+ .omapi-metabox__tab-case-studies hr {
94
+ margin: 0 0 26px; }
95
+ .omapi-metabox__tab-case-studies p {
96
+ font-size: 13px;
97
+ line-height: 1.4em;
98
+ margin: 0 0 4px;
99
+ color: #23282D; }
100
+ .omapi-metabox__tab-case-studies p.secondary {
101
+ font-weight: 400;
102
+ font-size: 13px;
103
+ color: #686868; }
104
+ .omapi-metabox__tab-case-studies ul {
105
+ list-style: disc;
106
+ margin: 17px 17px 10px;
107
+ color: #686868; }
108
+ .omapi-metabox__tab-case-studies ul li {
109
+ line-height: 1.5em;
110
+ margin-bottom: 4px; }
111
+ .omapi-metabox__tab-icon {
112
+ margin-right: 20px;
113
+ -webkit-box-flex: 0;
114
+ -ms-flex: 0 0 113px;
115
+ flex: 0 0 113px; }
116
+ @media screen and (max-width: 1180px) {
117
+ .omapi-metabox__tab-icon {
118
+ margin-right: 0;
119
+ margin-bottom: 6px;
120
+ -webkit-box-flex: 0;
121
+ -ms-flex: 0;
122
+ flex: 0; } }
123
+ .omapi-metabox__tab-icon svg {
124
+ height: auto;
125
+ width: 100%; }
126
+ .omapi-metabox__tab-icon-product {
127
+ margin-right: 26px;
128
+ -ms-flex-preferred-size: 78px;
129
+ flex-basis: 78px; }
130
+ .omapi-metabox__tab-icon-product svg, .omapi-metabox__tab-icon-product img {
131
+ width: 100%; }
132
+ .omapi-metabox__tab-content p {
133
+ font-size: 14px;
134
+ line-height: 21px;
135
+ margin: 0; }
136
+ .omapi-metabox__tab-content p.secondary {
137
+ font-weight: 400;
138
+ font-size: 13px;
139
+ color: #686868; }
140
+ .omapi-metabox__tab-content .omapi-button-wrap {
141
+ margin-top: 20px; }
142
+ .omapi-metabox__tab-content .omapi-button-wrap .button {
143
+ min-height: 30px;
144
+ line-height: 28px;
145
+ margin-bottom: 5px; }
146
+ .omapi-metabox__tab-content .omapi-button-wrap .button-primary {
147
+ background-color: #126CAC;
148
+ margin-right: 8px;
149
+ font-weight: 500; }
150
+ .omapi-metabox__tab-content .omapi-button-wrap .button-secondary {
151
+ border: solid 1px #ABB2BB;
152
+ background: #EEF0F1;
153
+ color: #555D66;
154
+ font-weight: 500; }
155
+ .omapi-metabox__tab-content-product .omapi-button-wrap {
156
+ margin-top: 10px; }
157
+ .omapi-metabox__tab-bottom {
158
+ padding: 30px; }
159
+ .omapi-metabox__slides-slide {
160
+ display: none; }
161
+ .omapi-metabox__slides-slide.active {
162
+ display: block; }
assets/dist/css/trustpulse.min.js DELETED
@@ -1 +0,0 @@
1
- (function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={i:d,l:!1,exports:{}};return a[d].call(e.exports,e,e.exports,b),e.l=!0,e.exports}var c={};return b.m=a,b.c=c,b.d=function(a,c,d){b.o(a,c)||Object.defineProperty(a,c,{configurable:!1,enumerable:!0,get:d})},b.n=function(a){var c=a&&a.__esModule?function(){return a['default']}:function(){return a};return b.d(c,'a',c),c},b.o=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)},b.p='',b(b.s=44)})({44:function(){}});
 
assets/dist/js/admin.min.js CHANGED
@@ -1 +1 @@
1
- (function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={i:d,l:!1,exports:{}};return a[d].call(e.exports,e,e.exports,b),e.l=!0,e.exports}var c={};return b.m=a,b.c=c,b.d=function(a,c,d){b.o(a,c)||Object.defineProperty(a,c,{configurable:!1,enumerable:!0,get:d})},b.n=function(a){var c=a&&a.__esModule?function(){return a['default']}:function(){return a};return b.d(c,'a',c),c},b.o=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)},b.p='',b(b.s=46)})({46:function(){'use strict';jQuery(document).ready(function(a){(function(){var b=document.querySelectorAll('a[href*="?page=optin-monster-"]');b.forEach(function(b){b.addEventListener('click',function(b){if(window.omWpApi&&window.omWpApi.main){var c=window.omWpApi.main.app.$router,d=b.target.search||b.target.closest('a').search,e=c.getRouteForQuery(d);e&&(window.omWpApi.elRemove&&a(window.omWpApi.elRemove).remove(),b.preventDefault(),c.push({name:e.name}))}})})})()})}});
1
+ (function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={i:d,l:!1,exports:{}};return a[d].call(e.exports,e,e.exports,b),e.l=!0,e.exports}var c={};return b.m=a,b.c=c,b.d=function(a,c,d){b.o(a,c)||Object.defineProperty(a,c,{configurable:!1,enumerable:!0,get:d})},b.n=function(a){var c=a&&a.__esModule?function(){return a['default']}:function(){return a};return b.d(c,'a',c),c},b.o=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)},b.p='',b(b.s=169)})({169:function(){'use strict';jQuery(document).ready(function(a){(function(){var b=document.querySelectorAll('a[href*="?page=optin-monster-"]');b.forEach(function(b){b.addEventListener('click',function(b){if(window.omWpApi&&window.omWpApi.main){var c=window.omWpApi.main.app.$router,d=b.target.search||b.target.closest('a').search,e=c.getRouteForQuery(d);e&&(window.omWpApi.elRemove&&a(window.omWpApi.elRemove).remove(),b.preventDefault(),c.push({name:e.name}))}})})})()})}});
assets/dist/js/campaign-selector.min.js CHANGED
@@ -1 +1,12 @@
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={};return 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=50)})([function(e){var t=e.exports={version:'2.6.9'};'number'==typeof __e&&(__e=t)},function(e){var t=e.exports='undefined'!=typeof window&&window.Math==Math?window:'undefined'!=typeof self&&self.Math==Math?self:Function('return this')();'number'==typeof __g&&(__g=t)},function(e,t,n){e.exports=!n(9)(function(){return 7!=Object.defineProperty({},'a',{get:function(){return 7}}).a})},function(e){var t={}.hasOwnProperty;e.exports=function(e,n){return t.call(e,n)}},function(e,t,n){var o=n(1),r=n(0),a=n(34),l=n(7),s=n(3),i='prototype',c=function(e,t,n){var p,m,u,d=e&c.F,g=e&c.G,f=e&c.S,y=e&c.P,_=e&c.B,h=e&c.W,E=g?r:r[t]||(r[t]={}),b=E[i],x=g?o:f?o[t]:(o[t]||{})[i];for(p in g&&(n=t),n)m=!d&&x&&void 0!==x[p],m&&s(E,p)||(u=m?x[p]:n[p],E[p]=g&&'function'!=typeof x[p]?n[p]:_&&m?a(u,o):h&&x[p]==u?function(e){var t=function(t,n,o){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n);}return new e(t,n,o)}return e.apply(this,arguments)};return t[i]=e[i],t}(u):y&&'function'==typeof u?a(Function.call,u):u,y&&((E.virtual||(E.virtual={}))[p]=u,e&c.R&&b&&!b[p]&&l(b,p,u)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,e.exports=c},function(e,t,n){var o=n(13),r=n(35),a=n(23),l=Object.defineProperty;t.f=n(2)?Object.defineProperty:function(e,t,n){if(o(e),t=a(t,!0),o(n),r)try{return l(e,t,n)}catch(t){}if('get'in n||'set'in n)throw TypeError('Accessors not supported!');return'value'in n&&(e[t]=n.value),e}},function(e,t,n){var o=n(31),r=n(18);e.exports=function(e){return o(r(e))}},function(e,t,n){var o=n(5),r=n(16);e.exports=n(2)?function(e,t,n){return o.f(e,t,r(1,n))}:function(e,t,n){return e[t]=n,e}},function(e){e.exports=function(e){return'object'==typeof e?null!==e:'function'==typeof e}},function(e){e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t,n){var o=n(21)('wks'),r=n(15),a=n(1).Symbol,l='function'==typeof a,s=e.exports=function(e){return o[e]||(o[e]=l&&a[e]||(l?a:r)('Symbol.'+e))};s.store=o},function(e,t,n){var o=n(18);e.exports=function(e){return Object(o(e))}},function(e,t,n){var o=n(30),r=n(22);e.exports=Object.keys||function(e){return o(e,r)}},function(e,t,n){var o=n(8);e.exports=function(e){if(!o(e))throw TypeError(e+' is not an object!');return e}},function(e){e.exports=!0},function(e){var t=0,n=Math.random();e.exports=function(e){return'Symbol('.concat(e===void 0?'':e,')_',(++t+n).toString(36))}},function(e){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t){t.f={}.propertyIsEnumerable},function(e){e.exports=function(e){if(e==void 0)throw TypeError('Can\'t call method on '+e);return e}},function(e){var t=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(0<e?n:t)(e)}},function(e,t,n){var o=n(21)('keys'),r=n(15);e.exports=function(e){return o[e]||(o[e]=r(e))}},function(e,t,n){var o=n(0),r=n(1),a='__core-js_shared__',l=r[a]||(r[a]={});(e.exports=function(e,t){return l[e]||(l[e]=t===void 0?{}:t)})('versions',[]).push({version:o.version,mode:n(14)?'pure':'global',copyright:'\xA9 2019 Denis Pushkarev (zloirock.ru)'})},function(e){e.exports=['constructor','hasOwnProperty','isPrototypeOf','propertyIsEnumerable','toLocaleString','toString','valueOf']},function(e,t,n){var o=n(8);e.exports=function(e,t){if(!o(e))return e;var n,r;if(t&&'function'==typeof(n=e.toString)&&!o(r=n.call(e)))return r;if('function'==typeof(n=e.valueOf)&&!o(r=n.call(e)))return r;if(!t&&'function'==typeof(n=e.toString)&&!o(r=n.call(e)))return r;throw TypeError('Can\'t convert object to primitive value')}},function(e){e.exports={}},function(e,t,n){var o=n(13),r=n(72),a=n(22),l=n(20)('IE_PROTO'),s=function(){},c='prototype',p=function(){var e,t=n(36)('iframe'),o=a.length,r='<',l='>';for(t.style.display='none',n(73).appendChild(t),t.src='javascript:',e=t.contentWindow.document,e.open(),e.write(r+'script'+l+'document.F=Object'+r+'/script'+l),e.close(),p=e.F;o--;)delete p[c][a[o]];return p()};e.exports=Object.create||function(e,t){var n;return null===e?n=p():(s[c]=o(e),n=new s,s[c]=null,n[l]=e),void 0===t?n:r(n,t)}},function(e,t,n){var o=n(5).f,r=n(3),a=n(10)('toStringTag');e.exports=function(e,t,n){e&&!r(e=n?e:e.prototype,a)&&o(e,a,{configurable:!0,value:t})}},function(e,t,n){t.f=n(10)},function(e,t,n){var o=n(1),r=n(0),a=n(14),l=n(27),s=n(5).f;e.exports=function(e){var t=r.Symbol||(r.Symbol=a?{}:o.Symbol||{});'_'==e.charAt(0)||e in t||s(t,e,{value:l.f(e)})}},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,n){var o=n(3),r=n(6),a=n(54)(!1),l=n(20)('IE_PROTO');e.exports=function(e,t){var n,s=r(e),c=0,i=[];for(n in s)n!=l&&o(s,n)&&i.push(n);for(;t.length>c;)o(s,n=t[c++])&&(~a(i,n)||i.push(n));return i}},function(e,t,n){var o=n(32);e.exports=Object('z').propertyIsEnumerable(0)?Object:function(e){return'String'==o(e)?e.split(''):Object(e)}},function(e){var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},function(e,t,n){var o=n(4),r=n(0),a=n(9);e.exports=function(e,t){var n=(r.Object||{})[e]||Object[e],l={};l[e]=t(n),o(o.S+o.F*a(function(){n(1)}),'Object',l)}},function(e,t,n){var o=n(57);e.exports=function(e,t,n){return(o(e),void 0===t)?e:1===n?function(n){return e.call(t,n)}:2===n?function(n,o){return e.call(t,n,o)}:3===n?function(n,o,r){return e.call(t,n,o,r)}:function(){return e.apply(t,arguments)}}},function(e,t,n){e.exports=!n(2)&&!n(9)(function(){return 7!=Object.defineProperty(n(36)('div'),'a',{get:function(){return 7}}).a})},function(e,t,n){var o=n(8),r=n(1).document,a=o(r)&&o(r.createElement);e.exports=function(e){return a?r.createElement(e):{}}},function(e,t,n){var o=n(3),r=n(11),a=n(20)('IE_PROTO'),l=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=r(e),o(e,a)?e[a]:'function'==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?l:null}},function(e,t,n){'use strict';function o(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var r=n(67),a=o(r),l=n(78),s=o(l),i='function'==typeof s.default&&'symbol'==typeof a.default?function(e){return typeof e}:function(e){return e&&'function'==typeof s.default&&e.constructor===s.default&&e!==s.default.prototype?'symbol':typeof e};t.default='function'==typeof s.default&&'symbol'===i(a.default)?function(e){return'undefined'==typeof e?'undefined':i(e)}:function(e){return e&&'function'==typeof s.default&&e.constructor===s.default&&e!==s.default.prototype?'symbol':'undefined'==typeof e?'undefined':i(e)}},function(e,t,n){'use strict';var o=n(14),r=n(4),a=n(40),l=n(7),s=n(24),i=n(71),c=n(26),p=n(37),m=n(10)('iterator'),u=!([].keys&&'next'in[].keys()),d='keys',g='values',f=function(){return this};e.exports=function(e,t,n,y,_,h,E){i(n,t,y);var b,x,O,S=function(e){return!u&&e in T?T[e]:e===d?function(){return new n(this,e)}:e===g?function(){return new n(this,e)}:function(){return new n(this,e)}},P=t+' Iterator',v=_==g,k=!1,T=e.prototype,M=T[m]||T['@@iterator']||_&&T[_],w=M||S(_),C=_?v?S('entries'):w:void 0,L='Array'==t?T.entries||M:M;if(L&&(O=p(L.call(new e)),O!==Object.prototype&&O.next&&(c(O,P,!0),!o&&'function'!=typeof O[m]&&l(O,m,f))),v&&M&&M.name!==g&&(k=!0,w=function(){return M.call(this)}),(!o||E)&&(u||k||!T[m])&&l(T,m,w),s[t]=w,s[P]=f,_)if(b={values:v?w:S(g),keys:h?w:S(d),entries:C},E)for(x in b)x in T||a(T,x,b[x]);else r(r.P+r.F*(u||k),t,b);return b}},function(e,t,n){e.exports=n(7)},function(e,t,n){var o=n(30),r=n(22).concat('length','prototype');t.f=Object.getOwnPropertyNames||function(e){return o(e,r)}},function(e,t,n){var o=n(17),r=n(16),a=n(6),l=n(23),s=n(3),i=n(35),c=Object.getOwnPropertyDescriptor;t.f=n(2)?c:function(e,t){if(e=a(e),t=l(t,!0),i)try{return c(e,t)}catch(t){}return s(e,t)?r(!o.f.call(e,t),e[t]):void 0}},function(e){e.exports=React},,,,,,,function(e,t,n){'use strict';function o(e){return e&&e.__esModule?e:{default:e}}var r,a,l,s=n(51),i=o(s),c=n(58),p=o(c),m=n(61),u=o(m),d=n(62),g=o(d),f=n(66),y=o(f),_=n(88),h=o(_),E=n(96),b=o(E),x=n(102),O=o(x),S=wp.i18n.__,P=wp.element,v=P.Component,k=P.Fragment,T=wp.blockEditor.InspectorControls,M=wp.components,w=M.Button,C=M.SelectControl,L=M.ToggleControl,N=M.PanelBody,I=M.Placeholder,R=M.Notice,A=[];wp.blocks.registerBlockType('optinmonster/campaign-selector',{title:OMAPI.i18n.title,description:OMAPI.i18n.description,icon:O.default,category:'embed',keywords:[S('Popup','optin-monster-api'),S('Form','optin-monster-api'),S('Campaign','optin-monster-api'),S('Email','optin-monster-api'),S('Conversion','optin-monster-api')],attributes:{slug:{type:'string'},followrules:{type:'boolean'}},edit:(a=r=function(e){function t(e){(0,u.default)(this,t);var n=(0,y.default)(this,(t.__proto__||(0,p.default)(t)).apply(this,arguments));return l.call(n),n.props=e,n.state={embed:{},loading:!1,hasError:null},n}return(0,h.default)(t,e),(0,g.default)(t,[{key:'componentDidMount',value:function(){document.addEventListener('om.Campaign.init',this.setAsPreview),document.addEventListener('om.Campaign.afterShow',this.loadingStop),document.addEventListener('om.Main.getCampaigns.error',this.foundError),document.addEventListener('om.Campaign.show.error',this.foundError),document.addEventListener('om.Campaign.load.error',this.foundError),this.slug()&&this.fetch()}},{key:'componentWillUnmount',value:function(){var e=this.campaign();e&&(A.push(e),e.off()),document.removeEventListener('om.Campaign.init',this.setAsPreview),document.removeEventListener('om.Campaign.afterShow',this.loadingStop),document.removeEventListener('om.Main.getCampaigns.error',this.foundError),document.removeEventListener('om.Campaign.show.error',this.foundError),document.removeEventListener('om.Campaign.load.error',this.foundError)}},{key:'componentDidUpdate',value:function(e){var t=this.slug(),n=this.getSlug(e);if(t&&n!==t){var o=this.campaign(),r=this.getCampaign(n);this.setState({loading:!0,hasError:!1}),o?o.reset():this.fetch()}}},{key:'render',value:function(){var e=this.props,t=e.attributes,n=t.slug,o=void 0===n?'':n,r=t.followrules,a=e.setAttributes,l=this.state,s=l.embed,i=l.hasError,c=this.getAvailableOptions(),p=this.hasSites(),m=this.getAvailableOptions(!0),u=function(e){return a({slug:e})},d=o&&(!s||this.state.loading),g=function(){return wp.element.createElement('div',{className:'optinmonster-gutenberg-campaign-selector-no_campaigns'},wp.element.createElement('p',{className:'optinmonster-gutenberg-campaign-selector-no_campaigns-header'},OMAPI.i18n.no_campaigns),wp.element.createElement('p',{className:'optinmonster-gutenberg-campaign-selector-no_campaigns-help'},OMAPI.i18n.no_campaigns_help),wp.element.createElement('p',{className:'optinmonster-gutenberg-campaign-selector-no_campaigns-button'},wp.element.createElement(w,{isPrimary:!0,href:OMAPI.templatesUri},OMAPI.i18n.no_campaigns_button)),wp.element.createElement('p',{className:'optinmonster-gutenberg-campaign-selector-no_campaigns-button-help'},wp.element.createElement(w,{href:'https://optinmonster.com/docs/creating-your-first-optin/?utm_source=plugin&utm_medium=link&utm_campaign=gutenbergblock'},OMAPI.i18n.no_campaigns_button_help)))},f=function(){return wp.element.createElement('div',{className:'optinmonster-gutenberg-campaign-selector-no_sites'},wp.element.createElement('p',{className:'optinmonster-gutenberg-campaign-selector-no_sites-help'},OMAPI.i18n.no_sites),wp.element.createElement('p',{className:'optinmonster-gutenberg-campaign-selector-no_sites-button'},wp.element.createElement(w,{isSecondary:!0,href:OMAPI.wizardUri},OMAPI.i18n.no_sites_button_create_account),'or',wp.element.createElement(w,{isSecondary:!0,href:OMAPI.settingsUri},OMAPI.i18n.no_sites_button_connect_account)))},y=function(){return p?0===c.length?g():null:f()};return wp.element.createElement(k,null,function(){return 0<m.length||o?wp.element.createElement(T,{key:'optinmonster-gutenberg-campaign-selector-inspector-controls'},wp.element.createElement(N,{title:OMAPI.i18n.campaign_settings},wp.element.createElement(C,{label:OMAPI.i18n.campaign_selected,value:o,options:m,onChange:u}),o?wp.element.createElement(L,{label:OMAPI.i18n.followrules_label,help:function(){var e=OMAPI.i18n.followrules_help.replace('%s',''),t=OMAPI.editUrl.replace('%s',o);return wp.element.createElement('span',null,wp.element.createElement('span',{dangerouslySetInnerHTML:{__html:e}}),' ',wp.element.createElement('a',{target:'_blank',href:t},OMAPI.i18n.output_settings),'.')}(),checked:!!r,onChange:function(){return a({followrules:!r})}}):null)):null}(),function(){return!i&&d&&wp.element.createElement(b.default,null)}(),function(){if(!i)return null;var e=OMAPI.i18n.found_error;return o&&-1===i.indexOf(o)&&(e=wp.element.createElement(k,null,e,' ',wp.element.createElement('code',null,wp.element.createElement('small',null,o)))),wp.element.createElement('p',{className:'error'},wp.element.createElement('strong',null,e,':'),' ',i)}(),s&&o?this.getOutput():function(){return wp.element.createElement(I,{key:'optinmonster-gutenberg-campaign-selector-wrap',className:'optinmonster-gutenberg-campaign-selector-wrap',label:wp.element.createElement('div',{className:'optinmonster-gutenberg-campaign-selector-label'},wp.element.createElement('img',{src:OMAPI.logoUrl}),'OptinMonster'),instructions:y()},0<c.length?wp.element.createElement(C,{key:'optinmonster-gutenberg-campaign-selector-select-control',value:o,options:c,onChange:u}):null)}())}}]),t}(v),l=function(){var e=this;this.setAsPreview=function(e){e.detail.Campaign.preview=!0},this.loadingStop=function(t){e.slug()===t.detail.Campaign.id&&e.setState({loading:!1,hasError:!1})},this.foundError=function(t){var n=t.detail,o=n.Campaign,r=n.error,a=e.slug();if(!(o&&a!==o.id)&&!(r.responseURL&&0>r.responseURL.indexOf(a))){var l=r;r.response&&(l=JSON.parse(r.response).message||JSON.parse(r.response).error),r.message&&(l=r.message),e.setState({loading:!1,hasError:l})}},this.fetch=function(){e.setState({loading:!0,hasError:!1});var t=e.slug(),n={type:'text/javascript',src:OMAPI.apiUrl,async:!0,"data-user":OMAPI.omUserId,"data-campaign":t};OMAPI.omEnv&&(n['data-env']=OMAPI.omEnv),e.setState({embed:n})},this.getSlug=function(e){var t=e.attributes.slug,n=t===void 0?'':t;return n},this.slug=function(){return e.getSlug(e.props)},this.getCampaign=function(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:'',t='om'+e;return window[t]?window[t]:null},this.campaign=function(){return e.getCampaign(e.slug())},this.getOutput=function(){var t=e.slug(),n=e.state.embed,o=e.campaign();if(!o&&(A.length&&(o=A.find(function(e){return t===e.id}),o&&(A.splice(A.indexOf(o),1),o.reset())),!o&&n&&0<(0,i.default)(n).length)){var r=document.getElementsByTagName('head')[0]||document.documentElement,a=document.createElement('script'),l=void 0;for(l in n)a.setAttribute(l,n[l]);r.appendChild(a)}return wp.element.createElement('div',{key:'om-'+t+'-holder',id:'om-'+t+'-holder'})},this.getAvailableOptions=function(){var t=!!(0<arguments.length&&void 0!==arguments[0])&&arguments[0],n=e.slug();if(!OMAPI.campaigns||1>OMAPI.campaigns.length||!OMAPI.omUserId)return[];if(!e.hasSites())return[];var o=OMAPI.campaigns.filter(function(e){return'inline'===e.campaign_type}),r=o.map(function(e){return{value:e.post_name,label:e.post_title}});return 0<r.length&&r.unshift({value:'',label:OMAPI.i18n.campaign_select}),r},this.hasSites=function(){return OMAPI.site_ids&&0<OMAPI.site_ids.length}},a),save:function(){return null}})},function(e,t,n){e.exports={default:n(52),__esModule:!0}},function(e,t,n){n(53),e.exports=n(0).Object.keys},function(e,t,n){var o=n(11),r=n(12);n(33)('keys',function(){return function(e){return r(o(e))}})},function(e,t,n){var o=n(6),r=n(55),a=n(56);e.exports=function(e){return function(t,n,l){var s,i=o(t),c=r(i.length),p=a(l,c);if(e&&n!=n){for(;c>p;)if(s=i[p++],s!=s)return!0;}else for(;c>p;p++)if((e||p in i)&&i[p]===n)return e||p||0;return!e&&-1}}},function(e,t,n){var o=n(19),r=Math.min;e.exports=function(e){return 0<e?r(o(e),9007199254740991):0}},function(e,t,n){var o=n(19),r=Math.max,a=Math.min;e.exports=function(e,t){return e=o(e),0>e?r(e+t,0):a(e,t)}},function(e){e.exports=function(e){if('function'!=typeof e)throw TypeError(e+' is not a function!');return e}},function(e,t,n){e.exports={default:n(59),__esModule:!0}},function(e,t,n){n(60),e.exports=n(0).Object.getPrototypeOf},function(e,t,n){var o=n(11),r=n(37);n(33)('getPrototypeOf',function(){return function(e){return r(o(e))}})},function(e,t){'use strict';t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError('Cannot call a class as a function')}},function(e,t,n){'use strict';t.__esModule=!0;var o=n(63),r=function(e){return e&&e.__esModule?e:{default:e}}(o);t.default=function(){function e(e,t){for(var n,o=0;o<t.length;o++)n=t[o],n.enumerable=n.enumerable||!1,n.configurable=!0,'value'in n&&(n.writable=!0),(0,r.default)(e,n.key,n)}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}()},function(e,t,n){e.exports={default:n(64),__esModule:!0}},function(e,t,n){n(65);var o=n(0).Object;e.exports=function(e,t,n){return o.defineProperty(e,t,n)}},function(e,t,n){var o=n(4);o(o.S+o.F*!n(2),'Object',{defineProperty:n(5).f})},function(e,t,n){'use strict';t.__esModule=!0;var o=n(38),r=function(e){return e&&e.__esModule?e:{default:e}}(o);t.default=function(e,t){if(!e)throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');return t&&('object'===('undefined'==typeof t?'undefined':(0,r.default)(t))||'function'==typeof t)?t:e}},function(e,t,n){e.exports={default:n(68),__esModule:!0}},function(e,t,n){n(69),n(74),e.exports=n(27).f('iterator')},function(e,t,n){'use strict';var o=n(70)(!0);n(39)(String,'String',function(e){this._t=e+'',this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=o(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t,n){var o=n(19),r=n(18);e.exports=function(e){return function(t,n){var c,a,p=r(t)+'',s=o(n),i=p.length;return 0>s||s>=i?e?'':void 0:(c=p.charCodeAt(s),55296>c||56319<c||s+1===i||56320>(a=p.charCodeAt(s+1))||57343<a?e?p.charAt(s):c:e?p.slice(s,s+2):(c-55296<<10)+(a-56320)+65536)}}},function(e,t,n){'use strict';var o=n(25),r=n(16),a=n(26),l={};n(7)(l,n(10)('iterator'),function(){return this}),e.exports=function(e,t,n){e.prototype=o(l,{next:r(1,n)}),a(e,t+' Iterator')}},function(e,t,n){var o=n(5),r=n(13),a=n(12);e.exports=n(2)?Object.defineProperties:function(e,t){r(e);for(var n,l=a(t),s=l.length,c=0;s>c;)o.f(e,n=l[c++],t[n]);return e}},function(e,t,n){var o=n(1).document;e.exports=o&&o.documentElement},function(e,t,n){n(75);for(var o=n(1),r=n(7),a=n(24),l=n(10)('toStringTag'),s='CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList'.split(','),c=0;c<s.length;c++){var i=s[c],p=o[i],m=p&&p.prototype;m&&!m[l]&&r(m,l,i),a[i]=a.Array}},function(e,t,n){'use strict';var o=n(76),r=n(77),a=n(24),l=n(6);e.exports=n(39)(Array,'Array',function(e,t){this._t=l(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,r(1)):'keys'==t?r(0,n):'values'==t?r(0,e[n]):r(0,[n,e[n]])},'values'),a.Arguments=a.Array,o('keys'),o('values'),o('entries')},function(e){e.exports=function(){}},function(e){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){e.exports={default:n(79),__esModule:!0}},function(e,t,n){n(80),n(85),n(86),n(87),e.exports=n(0).Symbol},function(e,t,n){'use strict';var o=n(1),r=n(3),a=n(2),l=n(4),s=n(40),c=n(81).KEY,i=n(9),p=n(21),m=n(26),u=n(15),d=n(10),g=n(27),f=n(28),y=n(82),_=n(83),h=n(13),E=n(8),b=n(11),x=n(6),O=n(23),S=n(16),v=n(25),P=n(84),T=n(42),M=n(29),w=n(5),C=n(12),L=T.f,N=w.f,I=P.f,R=o.Symbol,A=o.JSON,z=A&&A.stringify,D='prototype',F=d('_hidden'),Y=d('toPrimitive'),H={}.propertyIsEnumerable,U=p('symbol-registry'),G=p('symbols'),V=p('op-symbols'),W=Object[D],B='function'==typeof R&&!!M.f,K=o.QObject,J=!K||!K[D]||!K[D].findChild,q=a&&i(function(){return 7!=v(N({},'a',{get:function(){return N(this,'a',{value:7}).a}})).a})?function(e,t,n){var o=L(W,t);o&&delete W[t],N(e,t,n),o&&e!==W&&N(W,t,o)}:N,Q=function(e){var t=G[e]=v(R[D]);return t._k=e,t},X=B&&'symbol'==typeof R.iterator?function(e){return'symbol'==typeof e}:function(e){return e instanceof R},Z=function(e,t,n){return e===W&&Z(V,t,n),h(e),t=O(t,!0),h(n),r(G,t)?(n.enumerable?(r(e,F)&&e[F][t]&&(e[F][t]=!1),n=v(n,{enumerable:S(0,!1)})):(!r(e,F)&&N(e,F,S(1,{})),e[F][t]=!0),q(e,t,n)):N(e,t,n)},$=function(e,t){h(e);for(var n,o=y(t=x(t)),r=0,a=o.length;a>r;)Z(e,n=o[r++],t[n]);return e},ee=function(e){var t=H.call(this,e=O(e,!0));return(this!==W||!r(G,e)||r(V,e))&&(!(t||!r(this,e)||!r(G,e)||r(this,F)&&this[F][e])||t)},te=function(e,t){if(e=x(e),t=O(t,!0),e!==W||!r(G,t)||r(V,t)){var n=L(e,t);return n&&r(G,t)&&!(r(e,F)&&e[F][t])&&(n.enumerable=!0),n}},ne=function(e){for(var t,n=I(x(e)),o=[],a=0;n.length>a;)r(G,t=n[a++])||t==F||t==c||o.push(t);return o},oe=function(e){for(var t,n=e===W,o=I(n?V:x(e)),a=[],l=0;o.length>l;)r(G,t=o[l++])&&(!n||r(W,t))&&a.push(G[t]);return a};B||(R=function(){if(this instanceof R)throw TypeError('Symbol is not a constructor!');var e=u(0<arguments.length?arguments[0]:void 0),t=function(n){this===W&&t.call(V,n),r(this,F)&&r(this[F],e)&&(this[F][e]=!1),q(this,e,S(1,n))};return a&&J&&q(W,e,{configurable:!0,set:t}),Q(e)},s(R[D],'toString',function(){return this._k}),T.f=te,w.f=Z,n(41).f=P.f=ne,n(17).f=ee,M.f=oe,a&&!n(14)&&s(W,'propertyIsEnumerable',ee,!0),g.f=function(e){return Q(d(e))}),l(l.G+l.W+l.F*!B,{Symbol:R});for(var re=['hasInstance','isConcatSpreadable','iterator','match','replace','search','species','split','toPrimitive','toStringTag','unscopables'],ae=0;re.length>ae;)d(re[ae++]);for(var j=C(d.store),le=0;j.length>le;)f(j[le++]);l(l.S+l.F*!B,'Symbol',{for:function(e){return r(U,e+='')?U[e]:U[e]=R(e)},keyFor:function(e){if(!X(e))throw TypeError(e+' is not a symbol!');for(var t in U)if(U[t]===e)return t},useSetter:function(){J=!0},useSimple:function(){J=!1}}),l(l.S+l.F*!B,'Object',{create:function(e,t){return t===void 0?v(e):$(v(e),t)},defineProperty:Z,defineProperties:$,getOwnPropertyDescriptor:te,getOwnPropertyNames:ne,getOwnPropertySymbols:oe});var k=i(function(){M.f(1)});l(l.S+l.F*k,'Object',{getOwnPropertySymbols:function(e){return M.f(b(e))}}),A&&l(l.S+l.F*(!B||i(function(){var e=R();return'[null]'!=z([e])||'{}'!=z({a:e})||'{}'!=z(Object(e))})),'JSON',{stringify:function(e){for(var t,n,o=[e],r=1;arguments.length>r;)o.push(arguments[r++]);if(n=t=o[1],(E(t)||void 0!==e)&&!X(e))return _(t)||(t=function(e,t){if('function'==typeof n&&(t=n.call(this,e,t)),!X(t))return t}),o[1]=t,z.apply(A,o)}}),R[D][Y]||n(7)(R[D],Y,R[D].valueOf),m(R,'Symbol'),m(Math,'Math',!0),m(o.JSON,'JSON',!0)},function(e,t,n){var o=n(15)('meta'),r=n(8),a=n(3),l=n(5).f,s=0,i=Object.isExtensible||function(){return!0},c=!n(9)(function(){return i(Object.preventExtensions({}))}),p=function(e){l(e,o,{value:{i:'O'+ ++s,w:{}}})},m=e.exports={KEY:o,NEED:!1,fastKey:function(e,t){if(!r(e))return'symbol'==typeof e?e:('string'==typeof e?'S':'P')+e;if(!a(e,o)){if(!i(e))return'F';if(!t)return'E';p(e)}return e[o].i},getWeak:function(e,t){if(!a(e,o)){if(!i(e))return!0;if(!t)return!1;p(e)}return e[o].w},onFreeze:function(e){return c&&m.NEED&&i(e)&&!a(e,o)&&p(e),e}}},function(e,t,n){var o=n(12),r=n(29),a=n(17);e.exports=function(e){var t=o(e),n=r.f;if(n)for(var l,s=n(e),c=a.f,p=0;s.length>p;)c.call(e,l=s[p++])&&t.push(l);return t}},function(e,t,n){var o=n(32);e.exports=Array.isArray||function(e){return'Array'==o(e)}},function(e,t,n){var o=n(6),r=n(41).f,a={}.toString,l='object'==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(e){try{return r(e)}catch(t){return l.slice()}};e.exports.f=function(e){return l&&'[object Window]'==a.call(e)?s(e):r(o(e))}},function(){},function(e,t,n){n(28)('asyncIterator')},function(e,t,n){n(28)('observable')},function(e,t,n){'use strict';function o(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var r=n(89),a=o(r),l=n(93),s=o(l),i=n(38),c=o(i);t.default=function(e,t){if('function'!=typeof t&&null!==t)throw new TypeError('Super expression must either be null or a function, not '+('undefined'==typeof t?'undefined':(0,c.default)(t)));e.prototype=(0,s.default)(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(a.default?(0,a.default)(e,t):e.__proto__=t)}},function(e,t,n){e.exports={default:n(90),__esModule:!0}},function(e,t,n){n(91),e.exports=n(0).Object.setPrototypeOf},function(e,t,n){var o=n(4);o(o.S,'Object',{setPrototypeOf:n(92).set})},function(e,t,n){var o=n(8),r=n(13),a=function(e,t){if(r(e),!o(t)&&null!==t)throw TypeError(t+': can\'t set as prototype!')};e.exports={set:Object.setPrototypeOf||('__proto__'in{}?function(e,t,o){try{o=n(34)(Function.call,n(42).f(Object.prototype,'__proto__').set,2),o(e,[]),t=!(e instanceof Array)}catch(n){t=!0}return function(e,n){return a(e,n),t?e.__proto__=n:o(e,n),e}}({},!1):void 0),check:a}},function(e,t,n){e.exports={default:n(94),__esModule:!0}},function(e,t,n){n(95);var o=n(0).Object;e.exports=function(e,t){return o.create(e,t)}},function(e,t,n){var o=n(4);o(o.S,'Object',{create:n(25)})},function(e,t,n){'use strict';function o(e){return e&&e.__esModule?e:{default:e}}function r(e){var t=e.width,n=e.fill,o=(0,l.default)({},e.wrapperStyles,{display:'flex',alignItems:'center',justifyContent:'center'});return wp.element.createElement('div',{style:o,className:'om-archie-loader'},wp.element.createElement('svg',{height:'100%',width:'100%',version:'1.1',viewBox:'0 0 50 50',style:{maxWidth:t+'px'}},wp.element.createElement('circle',{cx:'25',cy:'25',r:'23',style:{stroke:n}}),wp.element.createElement('path',{d:'M12.75 27.84c.3.06.83.12 1.07.42l.12.11c.36-.05.72-.05 1.08-.11-.18-.12-.36-.24-.54-.3-.36-.6-.9-.72-1.61-.78V27c-1.32-.06-2.94-.36-3.66-1.2-.84-.9-.96-2.46-.84-3.66A4.7 4.7 0 0110 18.91c.54-.36 1.44-.06 1.5.66.06.3.12 1.38.36 1.5.3.18.84.24 1.38.24a8.83 8.83 0 011.73-1.32c-.96-.12-1.91.12-2.93.24l.84-.84a15.24 15.24 0 018.03-3.54c-1.26-.54-2.64-.78-3.96-1.08 5.1-1.07 11.63-1.5 16.24 2.52 1.2 1.02 2.16 2.4 2.81 4.02.72.11 1.68.11 2.16-.18.3-.18.36-1.2.36-1.5.06-.66.96-1.02 1.5-.66.96.72 1.5 2.04 1.62 3.17.12 1.2 0 2.76-.84 3.66-.72.84-2.28 1.14-3.6 1.2v.18c-.71 0-1.31.18-1.67.78-.18.06-.36.18-.54.3.36.06.78.11 1.14.11 0-.05.06-.11.12-.11.23-.3.77-.36 1.07-.42h.24c.12-.36.48-.78.96-.66s.96.66 1.02 1.08c.72.3 1.5.77 1.68 1.73a17.55 17.55 0 01-2.15 3.67 4 4 0 01-.6.17c-.13 0-.25.06-.3.06v.86c-.28.31-.57.6-.87.9.02-.67.02-1.35.02-2-.18-.12-.36-.3-.54-.48a1.72 1.72 0 01-1.01-.6c-.12-.3.12-.48.42-.66 0-.06-.06-.12-.06-.18a1.21 1.21 0 01-.48-.24 31.57 31.57 0 01-6.9 5.1c1.65.5 3.24 1.1 4.8 1.83-.37.2-.74.4-1.12.57a25.37 25.37 0 00-4.7-1.87c-.9.42-1.85.78-2.81 1.02-.12.06-.12.06-.3 0-.78-.24-1.56-.54-2.34-.9A29 29 0 0017.7 39c-.38-.17-.76-.36-1.12-.56 1.5-.73 3.04-1.34 4.62-1.8a26.15 26.15 0 01-6.48-5.15c-.12.06-.36.18-.53.24 0 .06 0 .12-.07.18.3.18.55.42.42.66-.11.3-.6.48-1.01.6-.12.18-.36.3-.54.42v2.24c-.38-.35-.74-.72-1.08-1.1v-.84c-.12 0-.18 0-.3-.06a4.24 4.24 0 01-.57-.16 17.6 17.6 0 01-2.18-3.7 2.7 2.7 0 011.67-1.71c.06-.42.54-.96 1.02-1.08.48-.12.84.3.96.66h.24zm1.73 2.21c2.94 3.12 6.18 5.7 10.37 7.07 4.5-1.25 7.67-4.01 10.84-7.13-.3-.12-.6-.36-.53-.6 0-.06.06-.12.06-.18l-1.74-.18c-.66 2.22-2.4 3.54-3.12 2.1-.18-.36-.24-.78-.3-1.14-.24.54-.9.54-1.61.6-.9.06-2.1.06-2.94-.18-.18.84-.72.84-1.8.96-.96.06-3.23.3-3.65-.72-.06 1.92-2.34.66-3-.48-.24-.36-.36-.78-.48-1.2l-1.56.18c.06.06.06.12.06.18 0 .42-.24.6-.6.72zm16.24.54c.06.42.18.48.6.3 1.08-.54 1.5-2.63 1.56-3.77-.84-.06-1.74-.06-2.64-.06.24 1.14.3 2.33.48 3.53zm-11.92.24c.36.18.6.18.66-.3.12-.6.18-2.45.3-3.47-.84 0-1.62.06-2.46.12-.3 1.32.06 3 1.5 3.65zM24.55 27c-1.32 0-2.58 0-3.83.06-.12.6-.3 3.23.11 3.41.84.36 2.76.36 3.66.12.24-.18.12-3.05.06-3.6zm.9 0c0 .3 0 2.51.3 2.7.72.35 2.64.3 3.41.05.36-.12.18-2.45.12-2.81-1.26 0-2.57 0-3.83.06zm-11.2-4.92c-.37.06-.67.18-1.02.3l-.84.36a5.36 5.36 0 00-.36 3.54c.3.06.6.06.84.06.18-1.5.66-2.94 1.37-4.26zm22.94-.06h-.78c.48 1.38.84 2.82.96 4.32.24 0 .48 0 .78-.06.42-1.62 0-3.42-.96-4.26zm-25.7 4.14a5.3 5.3 0 01.84-4.2c-.3-.06-.72-.18-.96-.36-1.26.36-1.86 1.8-1.98 3.24.12.18.18.36.3.48.42.42 1.08.66 1.8.84zm27.26 0a3.34 3.34 0 001.74-.78c.12-.12.24-.3.3-.48-.06-1.44-.66-2.82-1.98-3.24-.24.24-.6.3-.96.36.9.96 1.14 2.7.9 4.14zm-18.63-5.63a5.09 5.09 0 1010.18 0 5.04 5.04 0 00-5.09-5.04 5.08 5.08 0 00-5.1 5.04zm5.15-1.62c-.48 0-.96.06-1.38.24.6.18 1.08.78 1.08 1.44 0 .83-.72 1.55-1.68 1.55-.6 0-1.14-.3-1.44-.78-.06.24-.06.48-.06.78 0 1.8 1.56 3.24 3.42 3.24 1.92 0 3.47-1.44 3.47-3.24.06-1.8-1.5-3.23-3.41-3.23zm-14.2 2.22c-.06-.18-.18-.54-.18-.96 0-.42-.48-.54-.96-.06-.78.78-.96 2.7-.9 3.41.3-.9.9-1.92 2.04-2.4zm28.04 0a3.78 3.78 0 012.04 2.4c.06-.73-.18-2.64-.9-3.42-.48-.48-.96-.36-.96.06s-.12.78-.18.96zm-16.78-7.67c1.68-3.72 8.15-3.24 8.4 1.55-2.34-2.63-5.4-3.17-8.4-1.55z',fill:n})))}Object.defineProperty(t,'__esModule',{value:!0});var a=n(97),l=o(a),s=n(43),i=o(s);r.defaultProps={fill:'#858b98',width:100},t.default=r},function(e,t,n){'use strict';t.__esModule=!0;var o=n(98),r=function(e){return e&&e.__esModule?e:{default:e}}(o);t.default=r.default||function(e){for(var t,n=1;n<arguments.length;n++)for(var o in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}},function(e,t,n){e.exports={default:n(99),__esModule:!0}},function(e,t,n){n(100),e.exports=n(0).Object.assign},function(e,t,n){var o=n(4);o(o.S+o.F,'Object',{assign:n(101)})},function(e,t,n){'use strict';var o=n(2),r=n(12),a=n(29),l=n(17),s=n(11),i=n(31),c=Object.assign;e.exports=!c||n(9)(function(){var e={},t={},n=Symbol(),o='abcdefghijklmnopqrst';return e[n]=7,o.split('').forEach(function(e){t[e]=e}),7!=c({},e)[n]||Object.keys(c({},t)).join('')!=o})?function(e){for(var t=s(e),n=arguments.length,c=1,p=a.f,m=l.f;n>c;)for(var u,d=i(arguments[c++]),g=p?r(d).concat(p(d)):r(d),f=g.length,y=0;f>y;)u=g[y++],(!o||m.call(d,u))&&(t[u]=d[u]);return t}:c},function(e,t,n){'use strict';Object.defineProperty(t,'__esModule',{value:!0});var o=n(43),r=function(e){return e&&e.__esModule?e:{default:e}}(o);t.default=function(){return wp.element.createElement('svg',{xmlns:'http://www.w3.org/2000/svg',viewBox:'0 0 189 159',style:{maxWidth:'28px',maxHeight:'28px',minWidth:'28px',minHeight:'28px'}},wp.element.createElement('path',{d:'M112.547 55.298c0 8.867-7.57 16.055-16.91 16.055-9.339 0-16.91-7.188-16.91-16.055s7.571-16.056 16.91-16.056c.955 0 1.89.075 2.802.22a8.824 8.824 0 1011.077 6.661c1.911 2.6 3.031 5.763 3.031 9.175z'}),wp.element.createElement('path',{d:'M134.604 31.662C120.805 19.652 103.51 15.729 86.45 15.69h-.33c-10.827.008-21.55 1.57-31.216 3.619 1.185.27 2.38.529 3.58.79 5.349 1.16 10.787 2.342 15.831 4.502-8.53.884-17.35 3.825-24.997 7.65-5.002 2.35-10.294 5.882-14.412 9.704l-4.119 4.118c1.324-.155 2.627-.352 3.914-.546 3.578-.54 7.038-1.063 10.499-.631-2.941 1.764-5.883 3.825-8.53 6.472-2.648 0-5.293-.296-6.763-1.177-.892-.447-1.276-3.59-1.538-5.728-.084-.685-.155-1.268-.226-1.625-.297-3.531-4.706-5.002-7.353-3.235-4.706 3.529-7.353 9.998-7.94 15.88-.59 5.883 0 13.532 4.115 17.941 3.531 4.118 11.201 5.56 17.67 5.856 0 .294-.181 4.174-.316 4.145H33.14c-.587-1.764-2.354-3.822-4.705-3.235-2.354.587-4.705 3.235-4.999 5.295-3.53 1.47-7.06 4.116-8.236 8.527-.587 2.355-.587 5.002 0 7.06 1.47 6.766 7.646 10.587 13.529 11.765.587.293.883.293 1.47.293v6.472c-.883-.883-2.057-1.47-3.234-1.764-1.471-.59-3.529-.59-5.296-.296-1.47-1.764-3.234-2.058-4.412-1.471-.586.297-1.174 1.767-1.174 3.238-2.06.88-3.824 1.764-5.295 2.941-1.47-.59-2.941-.883-3.528-.296-.587.296-.587 1.767-.294 3.237-.392.49-.784.948-1.177 1.405-.784.914-1.57 1.829-2.354 3.007-1.174-.59-2.351-.59-2.645 0-.59.881 0 2.351.881 3.822-.293 1.177-.587 2.354-.587 3.528 0 10.294 14.706 20.885 24.117 21.178 5.585.294 11.468-2.647 14.115-7.646 37.056 1.47 74.114 1.47 111.169 0 2.648 4.999 8.234 7.94 13.823 7.646 9.704-.293 24.41-10.884 24.116-21.178 0-1.174-.293-2.351-.59-3.528.884-1.471 1.471-2.941.297-3.822-.297-.59-1.471-.59-2.648 0-.883-1.471-2.057-2.941-3.528-4.412.293-1.47.293-2.647-.297-3.237-.587-.587-1.764-.294-3.234.296-1.471-.883-3.528-2.061-5.293-2.941 0-1.471-.59-2.941-1.177-3.238-.883-.587-2.941 0-4.411 1.471-1.765-.294-3.529-.294-5.293.296-1.177.294-2.06.881-3.237 1.764v-6.472c.123 0 .296-.051.498-.11.286-.083.629-.183.972-.183 5.882-1.178 12.058-4.999 13.529-11.765.59-2.058.59-4.412 0-7.06-.881-4.705-4.705-7.056-8.234-8.527-.293-2.06-2.647-4.708-4.998-5.295-2.355-.587-4.119 1.47-4.706 3.235-.59 0-.643-3.76-.643-4.054 6.47-.293 12.995-1.829 16.523-5.947 4.119-4.409 4.706-12.058 4.119-17.94-.59-5.586-3.235-12.059-7.943-15.587-2.645-1.764-7.057 0-7.35 3.235 0 1.47-.297 6.47-1.767 7.353-2.352 1.47-7.057 1.47-10.585.883-3.238-7.943-7.943-14.706-13.825-19.707zM27.553 126.365c4.705 1.471 9.117 10.001 10.88 17.647 0 .884 0 1.765-.293 2.942-1.177 5.882-7.056 9.707-12.939 9.413-6.472-.296-15.292-5.589-19.41-12.061-.884-10.294 14.409-19.998 21.762-17.941zm123.814 17.647c1.767-7.646 6.179-16.176 10.884-17.647 7.35-2.351 22.643 7.647 21.763 17.647-4.119 6.473-13.236 11.765-19.412 12.059-5.882.296-11.764-3.528-12.938-9.411-.297-.883-.297-1.764-.297-2.648zm-43.525-14.999c13.823 3.825 25.881 10.294 37.939 17.354-33.527.88-67.348 1.177-101.465-.294 11.471-7.059 23.53-12.648 36.762-16.47a91.5 91.5 0 0011.471 4.409c.506.17.721.242.924.217.151-.018.296-.091.547-.217 4.705-1.174 9.41-2.941 13.822-4.999zm-32.056-2.351c-12.059 3.528-23.823 8.82-34.705 15.293-.251-3.029-1.153-6.271-1.96-9.174-.134-.481-.265-.954-.39-1.414-.58-1.351-1.285-2.701-2.034-4.134-.394-.752-.799-1.528-1.204-2.338V111.66c.19-.126.394-.252.602-.382.76-.471 1.585-.982 2.045-1.675 2.06-.587 4.412-1.471 5-2.941.59-1.177-.588-2.354-2.059-3.235.294-.294.294-.59.294-.884.884-.293 2.06-.88 2.648-1.177 9.41 9.707 19.117 18.531 31.763 25.297zm37.055-.297c12.255-6.419 23.353-15.155 33.58-24.771l.241-.229c.59.59 1.47.884 2.354 1.177 0 .13.056.259.12.388l.053.108c.065.13.12.259.12.388-1.47.881-2.647 1.764-2.057 3.235.88 1.177 2.941 2.647 4.999 2.941.883.883 1.764 1.764 2.647 2.354 0 4.412 0 9.117-.293 13.529-1.177 2.057-2.354 4.118-2.941 6.176-1.178 2.941-2.061 6.763-2.355 10.294-11.764-6.473-23.823-11.765-36.468-15.59zM49.32 89.456c1.093-.128 2.185-.257 3.327-.386l.493-.055c.587 2.057 1.177 4.118 2.354 5.882 3.235 5.589 14.41 11.765 14.703 2.354 1.91 4.634 11.654 3.961 16.814 3.604a236.6 236.6 0 011.127-.076l1.011-.109c4.622-.496 6.987-.749 7.812-4.596 4.115 1.177 9.998 1.177 14.409.88l.925-.072c3.16-.242 5.945-.454 7.016-2.869l.066.4c.277 1.672.589 3.556 1.404 5.19 3.531 7.059 12.058.589 15.293-10.295 2.648.294 5.589.59 8.53.884 0 .129-.056.258-.12.384l-.053.112c-.065.129-.12.258-.12.384-.294 1.177 1.177 2.354 2.647 2.941-15.589 15.296-31.176 28.825-53.232 35.001-20.588-6.763-36.468-19.411-50.88-34.704 1.764-.59 2.94-1.47 2.94-3.531 0-.294 0-.587-.293-.88a592.84 592.84 0 003.827-.443zm76.166 8.97c-2.057.883-2.644.59-2.938-1.471-.346-2.304-.601-4.608-.855-6.894-.394-3.551-.783-7.059-1.499-10.457 4.412 0 8.824 0 12.942.293-.297 5.59-2.354 15.883-7.65 18.528zm-58.23-1.765c-.294 2.354-1.47 2.354-3.235 1.47-7.056-3.234-8.824-11.47-7.353-17.94l.771-.055c3.828-.274 7.43-.532 11.287-.532-.261 2.225-.464 5.265-.661 8.214-.246 3.676-.482 7.21-.81 8.843zm6.176-17.057c6.175-.296 12.351-.296 18.824-.296.293 2.647.88 16.766-.297 17.647-4.409 1.177-13.822 1.177-17.937-.587-2.061-.884-1.178-13.823-.59-16.764zm24.706 12.939c-1.47-.88-1.47-11.765-1.47-13.236 6.175-.293 12.645-.293 18.821-.293.293 1.764 1.177 13.235-.587 13.825-3.825 1.174-13.236 1.47-16.764-.296zM20.496 45.487c1.048-1.048 2.093-1.515 2.936-1.524h.044c1.021.003 1.726.69 1.726 1.817 0 1.84.47 3.45.78 4.397 0 0 .72 1.988 1.773 2.8l.027.021c1.2.793 3.096 1.33 4.476 1.606l1.177.05-2.474 4.285 5.709-2.278c.366-.121.72-.243 1.066-.363 1.321-.456 2.535-.875 3.933-1.107-3.529 6.472-5.88 13.529-6.763 20.882-1.177 0-2.648-.003-4.119-.297-.179-.035-2.553-.522-2.63-.58l-.017-.013c-3.531-.883-6.763-2.051-8.82-4.11-.58-.577-3.242-4.09-3.236-8.823l-.008-.085c-.273-3.59.625-12.886 4.42-16.678zm148.812 0c3.496 3.786 4.684 13.056 4.42 16.664-.088 2.662-.854 6.1-3.243 9.217-1.506 1.966-4.949 3.21-8.445 3.81l-3.026.601c-1.468.294-2.645.294-3.822.294-.587-7.353-2.354-14.41-4.706-21.176h3.822c.027.021.05.044.074.065l-.012-.059.233-.014c2.409-.154 4.15-.264 5.723-1.075 1.429-.733 2.694-1.573 3.402-3.346.294-.892.874-2.65.874-4.688 0-2.06 2.354-2.647 4.706-.293zM95.491 72.544c-13.823 0-25-11.177-25-25 0-13.528 11.177-24.706 25-24.706 13.822 0 24.997 10.884 24.997 24.706 0 13.823-11.175 25-24.998 25z'}),wp.element.createElement('path',{d:'M104.608 1C95.49-.249 85.49 3.72 81.374 12.836c14.704-7.94 29.703-5.292 41.174 7.65-.59-11.765-8.823-18.237-17.94-19.488z'}))}}]);
 
 
 
 
 
 
 
 
 
 
 
1
+ (function(e){function t(n){if(o[n])return o[n].exports;var r=o[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var o={};return t.m=e,t.c=o,t.d=function(e,o,n){t.o(e,o)||Object.defineProperty(e,o,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var o=e&&e.__esModule?function(){return e['default']}:function(){return e};return t.d(o,'a',o),o},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p='',t(t.s=174)})([function(e){var t=e.exports={version:'2.6.9'};'number'==typeof __e&&(__e=t)},function(e){var t=e.exports='undefined'!=typeof window&&window.Math==Math?window:'undefined'!=typeof self&&self.Math==Math?self:Function('return this')();'number'==typeof __g&&(__g=t)},function(e,t,o){e.exports=!o(11)(function(){return 7!=Object.defineProperty({},'a',{get:function(){return 7}}).a})},function(e,t,o){var n=o(16),r=o(49),a=o(30),s=Object.defineProperty;t.f=o(2)?Object.defineProperty:function(e,t,o){if(n(e),t=a(t,!0),n(o),r)try{return s(e,t,o)}catch(t){}if('get'in o||'set'in o)throw TypeError('Accessors not supported!');return'value'in o&&(e[t]=o.value),e}},function(e){var t={}.hasOwnProperty;e.exports=function(e,o){return t.call(e,o)}},function(e,t,o){var n=o(1),r=o(0),a=o(48),s=o(7),l=o(4),i='prototype',p=function(e,t,o){var c,d,u,f=e&p.F,m=e&p.G,y=e&p.S,g=e&p.P,_=e&p.B,h=e&p.W,b=m?r:r[t]||(r[t]={}),x=b[i],E=m?n:y?n[t]:(n[t]||{})[i];for(c in m&&(o=t),o)d=!f&&E&&void 0!==E[c],d&&l(b,c)||(u=d?E[c]:o[c],b[c]=m&&'function'!=typeof E[c]?o[c]:_&&d?a(u,n):h&&E[c]==u?function(e){var t=function(t,o,n){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,o);}return new e(t,o,n)}return e.apply(this,arguments)};return t[i]=e[i],t}(u):g&&'function'==typeof u?a(Function.call,u):u,g&&((b.virtual||(b.virtual={}))[c]=u,e&p.R&&x&&!x[c]&&s(x,c,u)))};p.F=1,p.G=2,p.S=4,p.P=8,p.B=16,p.W=32,p.U=64,p.R=128,e.exports=p},function(e,t,o){var n=o(63),r='object'==typeof self&&self&&self.Object===Object&&self,a=n||r||Function('return this')();e.exports=a},function(e,t,o){var n=o(3),r=o(23);e.exports=o(2)?function(e,t,o){return n.f(e,t,r(1,o))}:function(e,t,o){return e[t]=o,e}},function(e){e.exports=function(e){return'object'==typeof e?null!==e:'function'==typeof e}},function(e,t,o){var n=o(66),r=o(31);e.exports=function(e){return n(r(e))}},function(e,t,o){var n=o(34)('wks'),r=o(25),a=o(1).Symbol,s='function'==typeof a,l=e.exports=function(e){return n[e]||(n[e]=s&&a[e]||(s?a:r)('Symbol.'+e))};l.store=n},function(e){e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t,o){var n=o(61);e.exports=function(e,t){for(var o=e.length;o--;)if(n(e[o][0],t))return o;return-1}},function(e,t,o){var n=o(21),r=n(Object,'create');e.exports=r},function(e,t,o){var n=o(87);e.exports=function(e,t){var o=e.__data__;return n(t)?o['string'==typeof t?'string':'hash']:o.map}},function(e){var t=Array.isArray;e.exports=t},function(e,t,o){var n=o(8);e.exports=function(e){if(!n(e))throw TypeError(e+' is not an object!');return e}},function(e){function t(){throw new Error('setTimeout has not been defined')}function o(){throw new Error('clearTimeout has not been defined')}function n(e){if(p===setTimeout)return setTimeout(e,0);if((p===t||!p)&&setTimeout)return p=setTimeout,setTimeout(e,0);try{return p(e,0)}catch(t){try{return p.call(null,e,0)}catch(t){return p.call(this,e,0)}}}function r(e){if(c===clearTimeout)return clearTimeout(e);if((c===o||!c)&&clearTimeout)return c=clearTimeout,clearTimeout(e);try{return c(e)}catch(t){try{return c.call(null,e)}catch(t){return c.call(this,e)}}}function a(){m&&u&&(m=!1,u.length?f=u.concat(f):y=-1,f.length&&s())}function s(){if(!m){var e=n(a);m=!0;for(var t=f.length;t;){for(u=f,f=[];++y<t;)u&&u[y].run();y=-1,t=f.length}u=null,m=!1,r(e)}}function l(e,t){this.fun=e,this.array=t}function i(){}var p,c,d=e.exports={};(function(){try{p='function'==typeof setTimeout?setTimeout:t}catch(o){p=t}try{c='function'==typeof clearTimeout?clearTimeout:o}catch(t){c=o}})();var u,f=[],m=!1,y=-1;d.nextTick=function(e){var t=Array(arguments.length-1);if(1<arguments.length)for(var o=1;o<arguments.length;o++)t[o-1]=arguments[o];f.push(new l(e,t)),1!==f.length||m||n(s)},l.prototype.run=function(){this.fun.apply(null,this.array)},d.title='browser',d.browser=!0,d.env={},d.argv=[],d.version='',d.versions={},d.on=i,d.addListener=i,d.once=i,d.off=i,d.removeListener=i,d.removeAllListeners=i,d.emit=i,d.prependListener=i,d.prependOnceListener=i,d.listeners=function(){return[]},d.binding=function(){throw new Error('process.binding is not supported')},d.cwd=function(){return'/'},d.chdir=function(){throw new Error('process.chdir is not supported')},d.umask=function(){return 0}},function(e,t,o){var n=o(51),r=o(35);e.exports=Object.keys||function(e){return n(e,r)}},function(e,t,o){var n=o(31);e.exports=function(e){return Object(n(e))}},function(e,t,o){var n=o(6),r=n.Symbol;e.exports=r},function(e,t,o){var n=o(72),r=o(78);e.exports=function(e,t){var o=r(e,t);return n(o)?o:void 0}},function(e,t,o){var n=o(26),r=o(43);e.exports=function(e){return'symbol'==typeof e||r(e)&&n(e)=='[object Symbol]'}},function(e){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e){e.exports=!0},function(e){var t=0,o=Math.random();e.exports=function(e){return'Symbol('.concat(e===void 0?'':e,')_',(++t+o).toString(36))}},function(e,t,o){function n(e){return null==e?void 0===e?i:l:p&&p in Object(e)?a(e):s(e)}var r=o(20),a=o(74),s=o(75),l='[object Null]',i='[object Undefined]',p=r?r.toStringTag:void 0;e.exports=n},function(e,t){t.f={}.propertyIsEnumerable},function(e){e.exports=React},function(e,t,o){(function(t){if('production'!==t.env.NODE_ENV){var n=o(53);e.exports=o(109)(n.isElement,!0)}else e.exports=o(112)()}).call(t,o(17))},function(e,t,o){var n=o(8);e.exports=function(e,t){if(!n(e))return e;var o,r;if(t&&'function'==typeof(o=e.toString)&&!n(r=o.call(e)))return r;if('function'==typeof(o=e.valueOf)&&!n(r=o.call(e)))return r;if(!t&&'function'==typeof(o=e.toString)&&!n(r=o.call(e)))return r;throw TypeError('Can\'t convert object to primitive value')}},function(e){e.exports=function(e){if(e==void 0)throw TypeError('Can\'t call method on '+e);return e}},function(e){var t=Math.ceil,o=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(0<e?o:t)(e)}},function(e,t,o){var n=o(34)('keys'),r=o(25);e.exports=function(e){return n[e]||(n[e]=r(e))}},function(e,t,o){var n=o(0),r=o(1),a='__core-js_shared__',s=r[a]||(r[a]={});(e.exports=function(e,t){return s[e]||(s[e]=t===void 0?{}:t)})('versions',[]).push({version:n.version,mode:o(24)?'pure':'global',copyright:'\xA9 2019 Denis Pushkarev (zloirock.ru)'})},function(e){e.exports=['constructor','hasOwnProperty','isPrototypeOf','propertyIsEnumerable','toLocaleString','toString','valueOf']},function(e){'use strict';e.exports='SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'},function(e){e.exports={}},function(e,t,o){var n=o(16),r=o(129),a=o(35),s=o(33)('IE_PROTO'),l=function(){},p='prototype',c=function(){var e,t=o(50)('iframe'),n=a.length,r='<',s='>';for(t.style.display='none',o(130).appendChild(t),t.src='javascript:',e=t.contentWindow.document,e.open(),e.write(r+'script'+s+'document.F=Object'+r+'/script'+s),e.close(),c=e.F;n--;)delete c[p][a[n]];return c()};e.exports=Object.create||function(e,t){var o;return null===e?o=c():(l[p]=n(e),o=new l,l[p]=null,o[s]=e),void 0===t?o:r(o,t)}},function(e,t,o){var n=o(3).f,r=o(4),a=o(10)('toStringTag');e.exports=function(e,t,o){e&&!r(e=o?e:e.prototype,a)&&n(e,a,{configurable:!0,value:t})}},function(e,t,o){t.f=o(10)},function(e,t,o){var n=o(1),r=o(0),a=o(24),s=o(40),l=o(3).f;e.exports=function(e){var t=r.Symbol||(r.Symbol=a?{}:n.Symbol||{});'_'==e.charAt(0)||e in t||l(t,e,{value:s.f(e)})}},function(e){e.exports=function(e){var t=typeof e;return null!=e&&('object'==t||'function'==t)}},function(e){e.exports=function(e){return null!=e&&'object'==typeof e}},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,o){function n(e){var t=-1,o=null==e?0:e.length;for(this.clear();++t<o;){var n=e[t];this.set(n[0],n[1])}}var r=o(67),a=o(68),s=o(69),l=o(70),i=o(71);n.prototype.clear=r,n.prototype['delete']=a,n.prototype.get=s,n.prototype.has=l,n.prototype.set=i,e.exports=n},function(e,t,o){var n=o(21),r=o(6),a=n(r,'Map');e.exports=a},function(e,t,o){function n(e){var t=-1,o=null==e?0:e.length;for(this.clear();++t<o;){var n=e[t];this.set(n[0],n[1])}}var r=o(79),a=o(86),s=o(88),l=o(89),i=o(90);n.prototype.clear=r,n.prototype['delete']=a,n.prototype.get=s,n.prototype.has=l,n.prototype.set=i,e.exports=n},function(e,t,o){var n=o(103);e.exports=function(e,t,o){return(n(e),void 0===t)?e:1===o?function(o){return e.call(t,o)}:2===o?function(o,n){return e.call(t,o,n)}:3===o?function(o,n,r){return e.call(t,o,n,r)}:function(){return e.apply(t,arguments)}}},function(e,t,o){e.exports=!o(2)&&!o(11)(function(){return 7!=Object.defineProperty(o(50)('div'),'a',{get:function(){return 7}}).a})},function(e,t,o){var n=o(8),r=o(1).document,a=n(r)&&n(r.createElement);e.exports=function(e){return a?r.createElement(e):{}}},function(e,t,o){var n=o(4),r=o(9),a=o(104)(!1),s=o(33)('IE_PROTO');e.exports=function(e,t){var o,l=r(e),p=0,i=[];for(o in l)o!=s&&n(l,o)&&i.push(o);for(;t.length>p;)n(l,o=t[p++])&&(~a(i,o)||i.push(o));return i}},function(e){var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},function(e,t,o){'use strict';(function(t){e.exports='production'===t.env.NODE_ENV?o(107):o(108)}).call(t,o(17))},function(e,t,o){var n=o(5),r=o(0),a=o(11);e.exports=function(e,t){var o=(r.Object||{})[e]||Object[e],s={};s[e]=t(o),n(n.S+n.F*a(function(){o(1)}),'Object',s)}},function(e,t,o){var n=o(4),r=o(19),a=o(33)('IE_PROTO'),s=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=r(e),n(e,a)?e[a]:'function'==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?s:null}},function(e,t,o){'use strict';function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var r=o(124),a=n(r),s=o(135),l=n(s),i='function'==typeof l.default&&'symbol'==typeof a.default?function(e){return typeof e}:function(e){return e&&'function'==typeof l.default&&e.constructor===l.default&&e!==l.default.prototype?'symbol':typeof e};t.default='function'==typeof l.default&&'symbol'===i(a.default)?function(e){return'undefined'==typeof e?'undefined':i(e)}:function(e){return e&&'function'==typeof l.default&&e.constructor===l.default&&e!==l.default.prototype?'symbol':'undefined'==typeof e?'undefined':i(e)}},function(e,t,o){'use strict';var n=o(24),r=o(5),a=o(58),s=o(7),l=o(37),i=o(128),p=o(39),c=o(55),d=o(10)('iterator'),u=!([].keys&&'next'in[].keys()),f='keys',m='values',y=function(){return this};e.exports=function(e,t,o,g,_,h,b){i(o,t,g);var x,E,O,S=function(e){return!u&&e in k?k[e]:e===f?function(){return new o(this,e)}:e===m?function(){return new o(this,e)}:function(){return new o(this,e)}},v=t+' Iterator',P=_==m,T=!1,k=e.prototype,j=k[d]||k['@@iterator']||_&&k[_],w=j||S(_),M=_?P?S('entries'):w:void 0,N='Array'==t?k.entries||j:j;if(N&&(O=c(N.call(new e)),O!==Object.prototype&&O.next&&(p(O,v,!0),!n&&'function'!=typeof O[d]&&s(O,d,y))),P&&j&&j.name!==m&&(T=!0,w=function(){return j.call(this)}),(!n||b)&&(u||T||!k[d])&&s(k,d,w),l[t]=w,l[v]=y,_)if(x={values:P?w:S(m),keys:h?w:S(f),entries:M},b)for(E in x)E in k||a(k,E,x[E]);else r(r.P+r.F*(u||T),t,x);return x}},function(e,t,o){e.exports=o(7)},function(e,t,o){var n=o(51),r=o(35).concat('length','prototype');t.f=Object.getOwnPropertyNames||function(e){return n(e,r)}},function(e,t,o){var n=o(27),r=o(23),a=o(9),s=o(30),l=o(4),i=o(49),p=Object.getOwnPropertyDescriptor;t.f=o(2)?p:function(e,t){if(e=a(e),t=s(t,!0),i)try{return p(e,t)}catch(t){}return l(e,t)?r(!n.f.call(e,t),e[t]):void 0}},function(e){e.exports=function(e,t){return e===t||e!==e&&t!==t}},function(e,t,o){var n=o(26),r=o(42);e.exports=function(e){if(!r(e))return!1;var t=n(e);return t=='[object Function]'||t=='[object GeneratorFunction]'||t=='[object AsyncFunction]'||t=='[object Proxy]'}},function(e,t,o){(function(t){var o='object'==typeof t&&t&&t.Object===Object&&t;e.exports=o}).call(t,o(73))},function(e){var t=Function.prototype,o=t.toString;e.exports=function(e){if(null!=e){try{return o.call(e)}catch(t){}try{return e+''}catch(t){}}return''}},function(e,t,o){var n=o(91);e.exports=function(e,t,o){var r=null==e?void 0:n(e,t);return r===void 0?o:r}},function(e,t,o){var n=o(52);e.exports=Object('z').propertyIsEnumerable(0)?Object:function(e){return'String'==n(e)?e.split(''):Object(e)}},function(e){e.exports=function(){this.__data__=[],this.size=0}},function(e,t,o){var n=o(12),r=Array.prototype,a=r.splice;e.exports=function(e){var t=this.__data__,o=n(t,e);if(0>o)return!1;var r=t.length-1;return o==r?t.pop():a.call(t,o,1),--this.size,!0}},function(e,t,o){var n=o(12);e.exports=function(e){var t=this.__data__,o=n(t,e);return 0>o?void 0:t[o][1]}},function(e,t,o){var n=o(12);e.exports=function(e){return-1<n(this.__data__,e)}},function(e,t,o){var n=o(12);e.exports=function(e,t){var o=this.__data__,r=n(o,e);return 0>r?(++this.size,o.push([e,t])):o[r][1]=t,this}},function(e,t,o){var n=o(62),r=o(76),a=o(42),s=o(64),l=/[\\^$.*+?()[\]{}|]/g,i=/^\[object .+?Constructor\]$/,p=Function.prototype,c=Object.prototype,d=p.toString,u=c.hasOwnProperty,f=RegExp('^'+d.call(u).replace(l,'\\$&').replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,'$1.*?')+'$');e.exports=function(e){if(!a(e)||r(e))return!1;var t=n(e)?f:i;return t.test(s(e))}},function(e){var t=function(){return this}();try{t=t||Function('return this')()||(1,eval)('this')}catch(o){'object'==typeof window&&(t=window)}e.exports=t},function(e,t,o){var n=o(20),r=Object.prototype,a=r.hasOwnProperty,s=r.toString,l=n?n.toStringTag:void 0;e.exports=function(e){var t=a.call(e,l),o=e[l];try{e[l]=void 0}catch(t){}var n=s.call(e);return t?e[l]=o:delete e[l],n}},function(e){var t=Object.prototype,o=t.toString;e.exports=function(e){return o.call(e)}},function(e,t,o){function n(e){return!!a&&a in e}var r=o(77),a=function(){var e=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||'');return e?'Symbol(src)_1.'+e:''}();e.exports=n},function(e,t,o){var n=o(6),r=n['__core-js_shared__'];e.exports=r},function(e){e.exports=function(e,t){return null==e?void 0:e[t]}},function(e,t,o){var n=o(80),r=o(45),a=o(46);e.exports=function(){this.size=0,this.__data__={hash:new n,map:new(a||r),string:new n}}},function(e,t,o){function n(e){var t=-1,o=null==e?0:e.length;for(this.clear();++t<o;){var n=e[t];this.set(n[0],n[1])}}var r=o(81),a=o(82),s=o(83),l=o(84),i=o(85);n.prototype.clear=r,n.prototype['delete']=a,n.prototype.get=s,n.prototype.has=l,n.prototype.set=i,e.exports=n},function(e,t,o){var n=o(13);e.exports=function(){this.__data__=n?n(null):{},this.size=0}},function(e){e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},function(e,t,o){var n=o(13),r=Object.prototype,a=r.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(n){var o=t[e];return o==='__lodash_hash_undefined__'?void 0:o}return a.call(t,e)?t[e]:void 0}},function(e,t,o){var n=o(13),r=Object.prototype,a=r.hasOwnProperty;e.exports=function(e){var t=this.__data__;return n?t[e]!==void 0:a.call(t,e)}},function(e,t,o){var n=o(13);e.exports=function(e,t){var o=this.__data__;return this.size+=this.has(e)?0:1,o[e]=n&&void 0===t?'__lodash_hash_undefined__':t,this}},function(e,t,o){var n=o(14);e.exports=function(e){var t=n(this,e)['delete'](e);return this.size-=t?1:0,t}},function(e){e.exports=function(e){var t=typeof e;return'string'==t||'number'==t||'symbol'==t||'boolean'==t?'__proto__'!==e:null===e}},function(e,t,o){var n=o(14);e.exports=function(e){return n(this,e).get(e)}},function(e,t,o){var n=o(14);e.exports=function(e){return n(this,e).has(e)}},function(e,t,o){var n=o(14);e.exports=function(e,t){var o=n(this,e),r=o.size;return o.set(e,t),this.size+=o.size==r?0:1,this}},function(e,t,o){var n=o(92),r=o(100);e.exports=function(e,t){t=n(t,e);for(var o=0,a=t.length;null!=e&&o<a;)e=e[r(t[o++])];return o&&o==a?e:void 0}},function(e,t,o){var n=o(15),r=o(93),a=o(94),s=o(97);e.exports=function(e,t){return n(e)?e:r(e,t)?[e]:a(s(e))}},function(e,t,o){function n(e,t){if(r(e))return!1;var o=typeof e;return!!('number'==o||'symbol'==o||'boolean'==o||null==e||a(e))||l.test(e)||!s.test(e)||null!=t&&e in Object(t)}var r=o(15),a=o(22),s=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,l=/^\w*$/;e.exports=n},function(e,t,o){var n=o(95),r=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g,s=n(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(''),e.replace(r,function(e,o,n,r){t.push(n?r.replace(a,'$1'):o||e)}),t});e.exports=s},function(e,t,o){var n=o(96);e.exports=function(e){var t=n(e,function(e){return o.size===500&&o.clear(),e}),o=t.cache;return t}},function(e,t,o){function n(e,t){if('function'!=typeof e||null!=t&&'function'!=typeof t)throw new TypeError(a);var o=function(){var n=arguments,r=t?t.apply(this,n):n[0],a=o.cache;if(a.has(r))return a.get(r);var s=e.apply(this,n);return o.cache=a.set(r,s)||a,s};return o.cache=new(n.Cache||r),o}var r=o(47),a='Expected a function';n.Cache=r,e.exports=n},function(e,t,o){var n=o(98);e.exports=function(e){return null==e?'':n(e)}},function(e,t,o){function n(e){if('string'==typeof e)return e;if(s(e))return a(e,n)+'';if(l(e))return c?c.call(e):'';var t=e+'';return'0'==t&&1/e==-i?'-0':t}var r=o(20),a=o(99),s=o(15),l=o(22),i=1/0,p=r?r.prototype:void 0,c=p?p.toString:void 0;e.exports=n},function(e){e.exports=function(e,t){for(var o=-1,n=null==e?0:e.length,r=Array(n);++o<n;)r[o]=t(e[o],o,e);return r}},function(e,t,o){var n=o(22);e.exports=function(e){if('string'==typeof e||n(e))return e;var t=e+'';return'0'==t&&1/e==-(1/0)?'-0':t}},function(e,t){'use strict';Object.defineProperty(t,'__esModule',{value:!0});t.hasSites=function(){return OMAPI.site_ids&&0<OMAPI.site_ids.length}},function(e,t,o){e.exports={default:o(113),__esModule:!0}},function(e){e.exports=function(e){if('function'!=typeof e)throw TypeError(e+' is not a function!');return e}},function(e,t,o){var n=o(9),r=o(105),a=o(106);e.exports=function(e){return function(t,o,s){var l,i=n(t),p=r(i.length),c=a(s,p);if(e&&o!=o){for(;p>c;)if(l=i[c++],l!=l)return!0;}else for(;p>c;c++)if((e||c in i)&&i[c]===o)return e||c||0;return!e&&-1}}},function(e,t,o){var n=o(32),r=Math.min;e.exports=function(e){return 0<e?r(n(e),9007199254740991):0}},function(e,t,o){var n=o(32),r=Math.max,a=Math.min;e.exports=function(e,t){return e=n(e),0>e?r(e+t,0):a(e,t)}},function(o,a){'use strict';/** @license React v16.13.1
2
+ * react-is.production.min.js
3
+ *
4
+ * Copyright (c) Facebook, Inc. and its affiliates.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */function s(t){if('object'==typeof t&&null!==t){var o=t.$$typeof;switch(o){case _:switch(t=t.type,t){case b:case l:case d:case f:case e:case n:return t;default:switch(t=t&&t.$$typeof,t){case h:case m:case r:case E:case g:return t;default:return o;}}case c:return o;}}}function i(e){return s(e)===l}var u='function'==typeof Symbol&&Symbol.for,_=u?Symbol.for('react.element'):60103,c=u?Symbol.for('react.portal'):60106,d=u?Symbol.for('react.fragment'):60107,e=u?Symbol.for('react.strict_mode'):60108,f=u?Symbol.for('react.profiler'):60114,g=u?Symbol.for('react.provider'):60109,h=u?Symbol.for('react.context'):60110,b=u?Symbol.for('react.async_mode'):60111,l=u?Symbol.for('react.concurrent_mode'):60111,m=u?Symbol.for('react.forward_ref'):60112,n=u?Symbol.for('react.suspense'):60113,p=u?Symbol.for('react.suspense_list'):60120,E=u?Symbol.for('react.memo'):60115,r=u?Symbol.for('react.lazy'):60116,t=u?Symbol.for('react.block'):60121,O=u?Symbol.for('react.fundamental'):60117,S=u?Symbol.for('react.responder'):60118,x=u?Symbol.for('react.scope'):60119;a.AsyncMode=b,a.ConcurrentMode=l,a.ContextConsumer=h,a.ContextProvider=g,a.Element=_,a.ForwardRef=m,a.Fragment=d,a.Lazy=r,a.Memo=E,a.Portal=c,a.Profiler=f,a.StrictMode=e,a.Suspense=n,a.isAsyncMode=function(e){return i(e)||s(e)===b},a.isConcurrentMode=i,a.isContextConsumer=function(e){return s(e)===h},a.isContextProvider=function(e){return s(e)===g},a.isElement=function(e){return'object'==typeof e&&null!==e&&e.$$typeof===_},a.isForwardRef=function(e){return s(e)===m},a.isFragment=function(e){return s(e)===d},a.isLazy=function(e){return s(e)===r},a.isMemo=function(e){return s(e)===E},a.isPortal=function(e){return s(e)===c},a.isProfiler=function(e){return s(e)===f},a.isStrictMode=function(t){return s(t)===e},a.isSuspense=function(e){return s(e)===n},a.isValidElementType=function(o){return'string'==typeof o||'function'==typeof o||o===d||o===l||o===f||o===e||o===n||o===p||'object'==typeof o&&null!==o&&(o.$$typeof===r||o.$$typeof===E||o.$$typeof===g||o.$$typeof===h||o.$$typeof===m||o.$$typeof===O||o.$$typeof===S||o.$$typeof===x||o.$$typeof===t)},a.typeOf=s},function(e,t,o){'use strict';(function(e){'production'!==e.env.NODE_ENV&&function(){function e(e){if('object'==typeof e&&null!==e){var t=e.$$typeof;switch(t){case a:var o=e.type;switch(o){case u:case f:case l:case p:case i:case y:return o;default:var n=o&&o.$$typeof;return n===d||n===m||n===h||n===_||n===c?n:t;}case s:return t;}}}function o(t){return S||(S=!0,console.warn('The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.')),n(t)||e(t)===u}function n(t){return e(t)===f}var r='function'==typeof Symbol&&Symbol.for,a=r?Symbol.for('react.element'):60103,s=r?Symbol.for('react.portal'):60106,l=r?Symbol.for('react.fragment'):60107,i=r?Symbol.for('react.strict_mode'):60108,p=r?Symbol.for('react.profiler'):60114,c=r?Symbol.for('react.provider'):60109,d=r?Symbol.for('react.context'):60110,u=r?Symbol.for('react.async_mode'):60111,f=r?Symbol.for('react.concurrent_mode'):60111,m=r?Symbol.for('react.forward_ref'):60112,y=r?Symbol.for('react.suspense'):60113,g=r?Symbol.for('react.suspense_list'):60120,_=r?Symbol.for('react.memo'):60115,h=r?Symbol.for('react.lazy'):60116,b=r?Symbol.for('react.block'):60121,x=r?Symbol.for('react.fundamental'):60117,E=r?Symbol.for('react.responder'):60118,O=r?Symbol.for('react.scope'):60119,S=!1;t.AsyncMode=u,t.ConcurrentMode=f,t.ContextConsumer=d,t.ContextProvider=c,t.Element=a,t.ForwardRef=m,t.Fragment=l,t.Lazy=h,t.Memo=_,t.Portal=s,t.Profiler=p,t.StrictMode=i,t.Suspense=y,t.isAsyncMode=o,t.isConcurrentMode=n,t.isContextConsumer=function(t){return e(t)===d},t.isContextProvider=function(t){return e(t)===c},t.isElement=function(e){return'object'==typeof e&&null!==e&&e.$$typeof===a},t.isForwardRef=function(t){return e(t)===m},t.isFragment=function(t){return e(t)===l},t.isLazy=function(t){return e(t)===h},t.isMemo=function(t){return e(t)===_},t.isPortal=function(t){return e(t)===s},t.isProfiler=function(t){return e(t)===p},t.isStrictMode=function(t){return e(t)===i},t.isSuspense=function(t){return e(t)===y},t.isValidElementType=function(e){return'string'==typeof e||'function'==typeof e||e===l||e===f||e===p||e===i||e===y||e===g||'object'==typeof e&&null!==e&&(e.$$typeof===h||e.$$typeof===_||e.$$typeof===c||e.$$typeof===d||e.$$typeof===m||e.$$typeof===x||e.$$typeof===E||e.$$typeof===O||e.$$typeof===b)},t.typeOf=e}()}).call(t,o(17))},function(e,t,o){'use strict';(function(t){function n(){return null}var r=o(53),a=o(110),s=o(36),l=o(111),i=Function.call.bind(Object.prototype.hasOwnProperty),p=function(){};'production'!==t.env.NODE_ENV&&(p=function(e){var t='Warning: '+e;'undefined'!=typeof console&&console.error(t);try{throw new Error(t)}catch(e){}}),e.exports=function(e,o){function c(e){var t=e&&(S&&e[S]||e[v]);if('function'==typeof t)return t}function d(e,t){return e===t?0!==e||1/e==1/t:e!==e&&t!==t}function u(e){this.message=e,this.stack=''}function f(e){function n(n,l,i,c,d,f,m){if(c=c||P,f=f||i,m!==s)if(o){var y=new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types');throw y.name='Invariant Violation',y}else if('production'!==t.env.NODE_ENV&&'undefined'!=typeof console){var g=c+':'+i;!r[g]&&3>a&&(p('You are manually calling a React.PropTypes validation function for the `'+f+'` prop on `'+c+'`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.'),r[g]=!0,a++)}return null==l[i]?n?null===l[i]?new u('The '+d+' `'+f+'` is marked as required '+('in `'+c+'`, but its value is `null`.')):new u('The '+d+' `'+f+'` is marked as required in '+('`'+c+'`, but its value is `undefined`.')):null:e(l,i,c,d,f)}if('production'!==t.env.NODE_ENV)var r={},a=0;var l=n.bind(null,!1);return l.isRequired=n.bind(null,!0),l}function m(e){return f(function(t,o,n,r,a){var s=t[o],l=b(s);if(l!==e){var i=x(s);return new u('Invalid '+r+' `'+a+'` of type '+('`'+i+'` supplied to `'+n+'`, expected ')+('`'+e+'`.'))}return null})}function y(e){return Array.isArray(e)?f(function(t,o,n,r,a){for(var s=t[o],l=0;l<e.length;l++)if(d(s,e[l]))return null;var i=JSON.stringify(e,function(e,t){var o=x(t);return'symbol'===o?t+'':t});return new u('Invalid '+r+' `'+a+'` of value `'+(s+'` ')+('supplied to `'+n+'`, expected one of '+i+'.'))}):('production'!==t.env.NODE_ENV&&(1<arguments.length?p('Invalid arguments supplied to oneOf, expected an array, got '+arguments.length+' arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'):p('Invalid argument supplied to oneOf, expected an array.')),n)}function g(e){function o(t,o,n,r,a){for(var l,p=0;p<e.length;p++)if(l=e[p],null==l(t,o,n,r,a,s))return null;return new u('Invalid '+r+' `'+a+'` supplied to '+('`'+n+'`.'))}if(!Array.isArray(e))return'production'===t.env.NODE_ENV?void 0:p('Invalid argument supplied to oneOfType, expected an instance of array.'),n;for(var r,a=0;a<e.length;a++)if(r=e[a],'function'!=typeof r)return p('Invalid argument supplied to oneOfType. Expected an array of check functions, but received '+E(r)+' at index '+a+'.'),n;return f(o)}function _(t){switch(typeof t){case'number':case'string':case'undefined':return!0;case'boolean':return!t;case'object':if(Array.isArray(t))return t.every(_);if(null===t||e(t))return!0;var o=c(t);if(o){var n,r=o.call(t);if(o!==t.entries){for(;!(n=r.next()).done;)if(!_(n.value))return!1;}else for(;!(n=r.next()).done;){var a=n.value;if(a&&!_(a[1]))return!1}}else return!1;return!0;default:return!1;}}function h(e,t){return'symbol'===e||!!t&&('Symbol'===t['@@toStringTag']||!!('function'==typeof Symbol&&t instanceof Symbol))}function b(e){var t=typeof e;return Array.isArray(e)?'array':e instanceof RegExp?'object':h(t,e)?'symbol':t}function x(e){if('undefined'==typeof e||null===e)return''+e;var t=b(e);if('object'===t){if(e instanceof Date)return'date';if(e instanceof RegExp)return'regexp'}return t}function E(e){var t=x(e);return'array'===t||'object'===t?'an '+t:'boolean'===t||'date'===t||'regexp'===t?'a '+t:t}function O(e){return e.constructor&&e.constructor.name?e.constructor.name:P}var S='function'==typeof Symbol&&Symbol.iterator,v='@@iterator',P='<<anonymous>>',T={array:m('array'),bool:m('boolean'),func:m('function'),number:m('number'),object:m('object'),string:m('string'),symbol:m('symbol'),any:function(){return f(n)}(),arrayOf:function(e){return f(function(t,o,n,r,a){if('function'!=typeof e)return new u('Property `'+a+'` of component `'+n+'` has invalid PropType notation inside arrayOf.');var l=t[o];if(!Array.isArray(l)){var p=b(l);return new u('Invalid '+r+' `'+a+'` of type '+('`'+p+'` supplied to `'+n+'`, expected an array.'))}for(var c,d=0;d<l.length;d++)if(c=e(l,d,n,r,a+'['+d+']',s),c instanceof Error)return c;return null})},element:function(){return f(function(t,o,n,r,a){var s=t[o];if(!e(s)){var l=b(s);return new u('Invalid '+r+' `'+a+'` of type '+('`'+l+'` supplied to `'+n+'`, expected a single ReactElement.'))}return null})}(),elementType:function(){return f(function(e,t,o,n,a){var s=e[t];if(!r.isValidElementType(s)){var l=b(s);return new u('Invalid '+n+' `'+a+'` of type '+('`'+l+'` supplied to `'+o+'`, expected a single ReactElement type.'))}return null})}(),instanceOf:function(e){return f(function(t,o,n,r,a){if(!(t[o]instanceof e)){var s=e.name||P,l=O(t[o]);return new u('Invalid '+r+' `'+a+'` of type '+('`'+l+'` supplied to `'+n+'`, expected ')+('instance of `'+s+'`.'))}return null})},node:function(){return f(function(e,t,o,n,r){return _(e[t])?null:new u('Invalid '+n+' `'+r+'` supplied to '+('`'+o+'`, expected a ReactNode.'))})}(),objectOf:function(e){return f(function(t,o,n,r,a){if('function'!=typeof e)return new u('Property `'+a+'` of component `'+n+'` has invalid PropType notation inside objectOf.');var l=t[o],p=b(l);if('object'!==p)return new u('Invalid '+r+' `'+a+'` of type '+('`'+p+'` supplied to `'+n+'`, expected an object.'));for(var c in l)if(i(l,c)){var d=e(l,c,n,r,a+'.'+c,s);if(d instanceof Error)return d}return null})},oneOf:y,oneOfType:g,shape:function(e){return f(function(t,o,n,r,a){var l=t[o],i=b(l);if('object'!==i)return new u('Invalid '+r+' `'+a+'` of type `'+i+'` '+('supplied to `'+n+'`, expected `object`.'));for(var p in e){var c=e[p];if(c){var d=c(l,p,n,r,a+'.'+p,s);if(d)return d}}return null})},exact:function(e){return f(function(t,o,n,r,l){var i=t[o],p=b(i);if('object'!==p)return new u('Invalid '+r+' `'+l+'` of type `'+p+'` '+('supplied to `'+n+'`, expected `object`.'));var c=a({},t[o],e);for(var d in c){var f=e[d];if(!f)return new u('Invalid '+r+' `'+l+'` key `'+d+'` supplied to `'+n+'`.\nBad object: '+JSON.stringify(t[o],null,' ')+'\nValid keys: '+JSON.stringify(Object.keys(e),null,' '));var m=f(i,d,n,r,l+'.'+d,s);if(m)return m}return null})}};return u.prototype=Error.prototype,T.checkPropTypes=l,T.resetWarningCache=l.resetWarningCache,T.PropTypes=T,T}}).call(t,o(17))},function(e){'use strict';/*
9
+ object-assign
10
+ (c) Sindre Sorhus
11
+ @license MIT
12
+ */function t(e){if(null===e||e===void 0)throw new TypeError('Object.assign cannot be called with null or undefined');return Object(e)}var o=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String('abc');if(e[5]='de','5'===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},o=0;10>o;o++)t['_'+String.fromCharCode(o)]=o;var n=Object.getOwnPropertyNames(t).map(function(e){return t[e]});if('0123456789'!==n.join(''))return!1;var r={};return['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t'].forEach(function(e){r[e]=e}),'abcdefghijklmnopqrst'===Object.keys(Object.assign({},r)).join('')}catch(e){return!1}}()?Object.assign:function(e){for(var a,l,p=t(e),c=1;c<arguments.length;c++){for(var s in a=Object(arguments[c]),a)n.call(a,s)&&(p[s]=a[s]);if(o){l=o(a);for(var d=0;d<l.length;d++)r.call(a,l[d])&&(p[l[d]]=a[l[d]])}}return p}},function(e,t,o){'use strict';(function(t){function n(e,o,n,i,p){if('production'!==t.env.NODE_ENV)for(var c in e)if(l(e,c)){var d;try{if('function'!=typeof e[c]){var u=Error((i||'React class')+': '+n+' type `'+c+'` is invalid; it must be a function, usually from the `prop-types` package, but received `'+typeof e[c]+'`.');throw u.name='Invariant Violation',u}d=e[c](o,c,i,n,null,a)}catch(e){d=e}if(d&&!(d instanceof Error)&&r((i||'React class')+': type specification of '+n+' `'+c+'` is invalid; the type checker function must return `null` or an `Error` but returned a '+typeof d+'. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).'),d instanceof Error&&!(d.message in s)){s[d.message]=!0;var f=p?p():'';r('Failed '+n+' type: '+d.message+(null==f?'':f))}}}var r=function(){};if('production'!==t.env.NODE_ENV){var a=o(36),s={},l=Function.call.bind(Object.prototype.hasOwnProperty);r=function(e){var t='Warning: '+e;'undefined'!=typeof console&&console.error(t);try{throw new Error(t)}catch(e){}}}n.resetWarningCache=function(){'production'!==t.env.NODE_ENV&&(s={})},e.exports=n}).call(t,o(17))},function(e,t,o){'use strict';function n(){}function r(){}var a=o(36);r.resetWarningCache=n,e.exports=function(){function e(e,t,o,n,r,s){if(s!==a){var l=new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types');throw l.name='Invariant Violation',l}}function t(){return e}e.isRequired=e;var o={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:r,resetWarningCache:n};return o.PropTypes=o,o}},function(e,t,o){o(114),e.exports=o(0).Object.keys},function(e,t,o){var n=o(19),r=o(18);o(54)('keys',function(){return function(e){return r(n(e))}})},function(e,t,o){e.exports={default:o(116),__esModule:!0}},function(e,t,o){o(117),e.exports=o(0).Object.getPrototypeOf},function(e,t,o){var n=o(19),r=o(55);o(54)('getPrototypeOf',function(){return function(e){return r(n(e))}})},function(e,t){'use strict';t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError('Cannot call a class as a function')}},function(e,t,o){'use strict';t.__esModule=!0;var n=o(120),r=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(){function e(e,t){for(var o,n=0;n<t.length;n++)o=t[n],o.enumerable=o.enumerable||!1,o.configurable=!0,'value'in o&&(o.writable=!0),(0,r.default)(e,o.key,o)}return function(t,o,n){return o&&e(t.prototype,o),n&&e(t,n),t}}()},function(e,t,o){e.exports={default:o(121),__esModule:!0}},function(e,t,o){o(122);var n=o(0).Object;e.exports=function(e,t,o){return n.defineProperty(e,t,o)}},function(e,t,o){var n=o(5);n(n.S+n.F*!o(2),'Object',{defineProperty:o(3).f})},function(e,t,o){'use strict';t.__esModule=!0;var n=o(56),r=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e,t){if(!e)throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');return t&&('object'===('undefined'==typeof t?'undefined':(0,r.default)(t))||'function'==typeof t)?t:e}},function(e,t,o){e.exports={default:o(125),__esModule:!0}},function(e,t,o){o(126),o(131),e.exports=o(40).f('iterator')},function(e,t,o){'use strict';var n=o(127)(!0);o(57)(String,'String',function(e){this._t=e+'',this._i=0},function(){var e,t=this._t,o=this._i;return o>=t.length?{value:void 0,done:!0}:(e=n(t,o),this._i+=e.length,{value:e,done:!1})})},function(e,t,o){var n=o(32),r=o(31);e.exports=function(e){return function(t,o){var p,a,c=r(t)+'',s=n(o),i=c.length;return 0>s||s>=i?e?'':void 0:(p=c.charCodeAt(s),55296>p||56319<p||s+1===i||56320>(a=c.charCodeAt(s+1))||57343<a?e?c.charAt(s):p:e?c.slice(s,s+2):(p-55296<<10)+(a-56320)+65536)}}},function(e,t,o){'use strict';var n=o(38),r=o(23),a=o(39),s={};o(7)(s,o(10)('iterator'),function(){return this}),e.exports=function(e,t,o){e.prototype=n(s,{next:r(1,o)}),a(e,t+' Iterator')}},function(e,t,o){var n=o(3),r=o(16),a=o(18);e.exports=o(2)?Object.defineProperties:function(e,t){r(e);for(var o,s=a(t),l=s.length,p=0;l>p;)n.f(e,o=s[p++],t[o]);return e}},function(e,t,o){var n=o(1).document;e.exports=n&&n.documentElement},function(e,t,o){o(132);for(var n=o(1),r=o(7),a=o(37),s=o(10)('toStringTag'),l='CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList'.split(','),p=0;p<l.length;p++){var i=l[p],c=n[i],d=c&&c.prototype;d&&!d[s]&&r(d,s,i),a[i]=a.Array}},function(e,t,o){'use strict';var n=o(133),r=o(134),a=o(37),s=o(9);e.exports=o(57)(Array,'Array',function(e,t){this._t=s(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,o=this._i++;return!e||o>=e.length?(this._t=void 0,r(1)):'keys'==t?r(0,o):'values'==t?r(0,e[o]):r(0,[o,e[o]])},'values'),a.Arguments=a.Array,n('keys'),n('values'),n('entries')},function(e){e.exports=function(){}},function(e){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,o){e.exports={default:o(136),__esModule:!0}},function(e,t,o){o(137),o(142),o(143),o(144),e.exports=o(0).Symbol},function(e,t,o){'use strict';var n=o(1),r=o(4),a=o(2),s=o(5),l=o(58),p=o(138).KEY,i=o(11),c=o(34),d=o(39),u=o(25),f=o(10),m=o(40),y=o(41),g=o(139),_=o(140),h=o(16),b=o(8),x=o(19),E=o(9),O=o(30),S=o(23),v=o(38),P=o(141),T=o(60),w=o(44),M=o(3),N=o(18),C=T.f,I=M.f,A=P.f,R=n.Symbol,z=n.JSON,L=z&&z.stringify,$='prototype',F=f('_hidden'),D=f('toPrimitive'),V={}.propertyIsEnumerable,U=c('symbol-registry'),Y=c('symbols'),B=c('op-symbols'),W=Object[$],H='function'==typeof R&&!!w.f,G=n.QObject,q=!G||!G[$]||!G[$].findChild,K=a&&i(function(){return 7!=v(I({},'a',{get:function(){return I(this,'a',{value:7}).a}})).a})?function(e,t,o){var n=C(W,t);n&&delete W[t],I(e,t,o),n&&e!==W&&I(W,t,n)}:I,J=function(e){var t=Y[e]=v(R[$]);return t._k=e,t},X=H&&'symbol'==typeof R.iterator?function(e){return'symbol'==typeof e}:function(e){return e instanceof R},Q=function(e,t,o){return e===W&&Q(B,t,o),h(e),t=O(t,!0),h(o),r(Y,t)?(o.enumerable?(r(e,F)&&e[F][t]&&(e[F][t]=!1),o=v(o,{enumerable:S(0,!1)})):(!r(e,F)&&I(e,F,S(1,{})),e[F][t]=!0),K(e,t,o)):I(e,t,o)},Z=function(e,t){h(e);for(var o,n=g(t=E(t)),r=0,a=n.length;a>r;)Q(e,o=n[r++],t[o]);return e},ee=function(e){var t=V.call(this,e=O(e,!0));return(this!==W||!r(Y,e)||r(B,e))&&(!(t||!r(this,e)||!r(Y,e)||r(this,F)&&this[F][e])||t)},te=function(e,t){if(e=E(e),t=O(t,!0),e!==W||!r(Y,t)||r(B,t)){var o=C(e,t);return o&&r(Y,t)&&!(r(e,F)&&e[F][t])&&(o.enumerable=!0),o}},oe=function(e){for(var t,o=A(E(e)),n=[],a=0;o.length>a;)r(Y,t=o[a++])||t==F||t==p||n.push(t);return n},ne=function(e){for(var t,o=e===W,n=A(o?B:E(e)),a=[],s=0;n.length>s;)r(Y,t=n[s++])&&(!o||r(W,t))&&a.push(Y[t]);return a};H||(R=function(){if(this instanceof R)throw TypeError('Symbol is not a constructor!');var e=u(0<arguments.length?arguments[0]:void 0),t=function(o){this===W&&t.call(B,o),r(this,F)&&r(this[F],e)&&(this[F][e]=!1),K(this,e,S(1,o))};return a&&q&&K(W,e,{configurable:!0,set:t}),J(e)},l(R[$],'toString',function(){return this._k}),T.f=te,M.f=Q,o(59).f=P.f=oe,o(27).f=ee,w.f=ne,a&&!o(24)&&l(W,'propertyIsEnumerable',ee,!0),m.f=function(e){return J(f(e))}),s(s.G+s.W+s.F*!H,{Symbol:R});for(var re=['hasInstance','isConcatSpreadable','iterator','match','replace','search','species','split','toPrimitive','toStringTag','unscopables'],ae=0;re.length>ae;)f(re[ae++]);for(var j=N(f.store),se=0;j.length>se;)y(j[se++]);s(s.S+s.F*!H,'Symbol',{for:function(e){return r(U,e+='')?U[e]:U[e]=R(e)},keyFor:function(e){if(!X(e))throw TypeError(e+' is not a symbol!');for(var t in U)if(U[t]===e)return t},useSetter:function(){q=!0},useSimple:function(){q=!1}}),s(s.S+s.F*!H,'Object',{create:function(e,t){return t===void 0?v(e):Z(v(e),t)},defineProperty:Q,defineProperties:Z,getOwnPropertyDescriptor:te,getOwnPropertyNames:oe,getOwnPropertySymbols:ne});var k=i(function(){w.f(1)});s(s.S+s.F*k,'Object',{getOwnPropertySymbols:function(e){return w.f(x(e))}}),z&&s(s.S+s.F*(!H||i(function(){var e=R();return'[null]'!=L([e])||'{}'!=L({a:e})||'{}'!=L(Object(e))})),'JSON',{stringify:function(e){for(var t,o,n=[e],r=1;arguments.length>r;)n.push(arguments[r++]);if(o=t=n[1],(b(t)||void 0!==e)&&!X(e))return _(t)||(t=function(e,t){if('function'==typeof o&&(t=o.call(this,e,t)),!X(t))return t}),n[1]=t,L.apply(z,n)}}),R[$][D]||o(7)(R[$],D,R[$].valueOf),d(R,'Symbol'),d(Math,'Math',!0),d(n.JSON,'JSON',!0)},function(e,t,o){var n=o(25)('meta'),r=o(8),a=o(4),s=o(3).f,l=0,i=Object.isExtensible||function(){return!0},p=!o(11)(function(){return i(Object.preventExtensions({}))}),c=function(e){s(e,n,{value:{i:'O'+ ++l,w:{}}})},d=e.exports={KEY:n,NEED:!1,fastKey:function(e,t){if(!r(e))return'symbol'==typeof e?e:('string'==typeof e?'S':'P')+e;if(!a(e,n)){if(!i(e))return'F';if(!t)return'E';c(e)}return e[n].i},getWeak:function(e,t){if(!a(e,n)){if(!i(e))return!0;if(!t)return!1;c(e)}return e[n].w},onFreeze:function(e){return p&&d.NEED&&i(e)&&!a(e,n)&&c(e),e}}},function(e,t,o){var n=o(18),r=o(44),a=o(27);e.exports=function(e){var t=n(e),o=r.f;if(o)for(var s,l=o(e),p=a.f,c=0;l.length>c;)p.call(e,s=l[c++])&&t.push(s);return t}},function(e,t,o){var n=o(52);e.exports=Array.isArray||function(e){return'Array'==n(e)}},function(e,t,o){var n=o(9),r=o(59).f,a={}.toString,s='object'==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],l=function(e){try{return r(e)}catch(t){return s.slice()}};e.exports.f=function(e){return s&&'[object Window]'==a.call(e)?l(e):r(n(e))}},function(){},function(e,t,o){o(41)('asyncIterator')},function(e,t,o){o(41)('observable')},function(e,t,o){'use strict';function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var r=o(146),a=n(r),s=o(150),l=n(s),i=o(56),p=n(i);t.default=function(e,t){if('function'!=typeof t&&null!==t)throw new TypeError('Super expression must either be null or a function, not '+('undefined'==typeof t?'undefined':(0,p.default)(t)));e.prototype=(0,l.default)(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(a.default?(0,a.default)(e,t):e.__proto__=t)}},function(e,t,o){e.exports={default:o(147),__esModule:!0}},function(e,t,o){o(148),e.exports=o(0).Object.setPrototypeOf},function(e,t,o){var n=o(5);n(n.S,'Object',{setPrototypeOf:o(149).set})},function(e,t,o){var n=o(8),r=o(16),a=function(e,t){if(r(e),!n(t)&&null!==t)throw TypeError(t+': can\'t set as prototype!')};e.exports={set:Object.setPrototypeOf||('__proto__'in{}?function(e,t,n){try{n=o(48)(Function.call,o(60).f(Object.prototype,'__proto__').set,2),n(e,[]),t=!(e instanceof Array)}catch(o){t=!0}return function(e,o){return a(e,o),t?e.__proto__=o:n(e,o),e}}({},!1):void 0),check:a}},function(e,t,o){e.exports={default:o(151),__esModule:!0}},function(e,t,o){o(152);var n=o(0).Object;e.exports=function(e,t){return n.create(e,t)}},function(e,t,o){var n=o(5);n(n.S,'Object',{create:o(38)})},function(e,t,o){'use strict';function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,'__esModule',{value:!0}),t.getCampaign=t.getOptions=void 0;var r=o(102),a=n(r),s=o(65),l=n(s),i=o(101),p=t.getOptions=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null,o=!(2<arguments.length&&void 0!==arguments[2])||arguments[2];if(o&&!(0,i.hasSites)())return[];var n=(0,l.default)(OMAPI,'campaigns.'+e,{});if(1>(0,a.default)(n).length||!OMAPI.omUserId)return[];var r=(0,a.default)(n).map(function(e){var o=(0,l.default)(n,e+'.title','');(0,l.default)(n,e+'.pending')&&(o+=' [Pending]');var r=null!==t&&(0,l.default)(OMAPI,'_usedSlugs.'+e)&&e!==t;return{value:e,label:o,selected:null!==t&&t===e,disabled:r}});return 0<r.length&&r.unshift({value:'',label:OMAPI.i18n.campaign_select}),r},c=t.getCampaign=function(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:'',t='om'+e;return window[t]?window[t]:null}},function(e,t,o){'use strict';t.__esModule=!0;var n=o(156),r=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=r.default||function(e){for(var t,o=1;o<arguments.length;o++)for(var n in t=arguments[o],t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}},function(e,t,o){'use strict';function n(e){return e&&e.__esModule?e:{default:e}}function r(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:r.defaultProps,t=(0,s.default)({maxWidth:e.width+'px',maxHeight:e.height+'px',minWidth:e.width+'px',minHeight:e.height+'px'},e.style);return wp.element.createElement('svg',{xmlns:'http://www.w3.org/2000/svg',width:e.width,height:e.height,viewBox:'0 0 189 159',style:t},wp.element.createElement('path',{d:'M112.547 55.298c0 8.867-7.57 16.055-16.91 16.055-9.339 0-16.91-7.188-16.91-16.055s7.571-16.056 16.91-16.056c.955 0 1.89.075 2.802.22a8.824 8.824 0 1011.077 6.661c1.911 2.6 3.031 5.763 3.031 9.175z'}),wp.element.createElement('path',{d:'M134.604 31.662C120.805 19.652 103.51 15.729 86.45 15.69h-.33c-10.827.008-21.55 1.57-31.216 3.619 1.185.27 2.38.529 3.58.79 5.349 1.16 10.787 2.342 15.831 4.502-8.53.884-17.35 3.825-24.997 7.65-5.002 2.35-10.294 5.882-14.412 9.704l-4.119 4.118c1.324-.155 2.627-.352 3.914-.546 3.578-.54 7.038-1.063 10.499-.631-2.941 1.764-5.883 3.825-8.53 6.472-2.648 0-5.293-.296-6.763-1.177-.892-.447-1.276-3.59-1.538-5.728-.084-.685-.155-1.268-.226-1.625-.297-3.531-4.706-5.002-7.353-3.235-4.706 3.529-7.353 9.998-7.94 15.88-.59 5.883 0 13.532 4.115 17.941 3.531 4.118 11.201 5.56 17.67 5.856 0 .294-.181 4.174-.316 4.145H33.14c-.587-1.764-2.354-3.822-4.705-3.235-2.354.587-4.705 3.235-4.999 5.295-3.53 1.47-7.06 4.116-8.236 8.527-.587 2.355-.587 5.002 0 7.06 1.47 6.766 7.646 10.587 13.529 11.765.587.293.883.293 1.47.293v6.472c-.883-.883-2.057-1.47-3.234-1.764-1.471-.59-3.529-.59-5.296-.296-1.47-1.764-3.234-2.058-4.412-1.471-.586.297-1.174 1.767-1.174 3.238-2.06.88-3.824 1.764-5.295 2.941-1.47-.59-2.941-.883-3.528-.296-.587.296-.587 1.767-.294 3.237-.392.49-.784.948-1.177 1.405-.784.914-1.57 1.829-2.354 3.007-1.174-.59-2.351-.59-2.645 0-.59.881 0 2.351.881 3.822-.293 1.177-.587 2.354-.587 3.528 0 10.294 14.706 20.885 24.117 21.178 5.585.294 11.468-2.647 14.115-7.646 37.056 1.47 74.114 1.47 111.169 0 2.648 4.999 8.234 7.94 13.823 7.646 9.704-.293 24.41-10.884 24.116-21.178 0-1.174-.293-2.351-.59-3.528.884-1.471 1.471-2.941.297-3.822-.297-.59-1.471-.59-2.648 0-.883-1.471-2.057-2.941-3.528-4.412.293-1.47.293-2.647-.297-3.237-.587-.587-1.764-.294-3.234.296-1.471-.883-3.528-2.061-5.293-2.941 0-1.471-.59-2.941-1.177-3.238-.883-.587-2.941 0-4.411 1.471-1.765-.294-3.529-.294-5.293.296-1.177.294-2.06.881-3.237 1.764v-6.472c.123 0 .296-.051.498-.11.286-.083.629-.183.972-.183 5.882-1.178 12.058-4.999 13.529-11.765.59-2.058.59-4.412 0-7.06-.881-4.705-4.705-7.056-8.234-8.527-.293-2.06-2.647-4.708-4.998-5.295-2.355-.587-4.119 1.47-4.706 3.235-.59 0-.643-3.76-.643-4.054 6.47-.293 12.995-1.829 16.523-5.947 4.119-4.409 4.706-12.058 4.119-17.94-.59-5.586-3.235-12.059-7.943-15.587-2.645-1.764-7.057 0-7.35 3.235 0 1.47-.297 6.47-1.767 7.353-2.352 1.47-7.057 1.47-10.585.883-3.238-7.943-7.943-14.706-13.825-19.707zM27.553 126.365c4.705 1.471 9.117 10.001 10.88 17.647 0 .884 0 1.765-.293 2.942-1.177 5.882-7.056 9.707-12.939 9.413-6.472-.296-15.292-5.589-19.41-12.061-.884-10.294 14.409-19.998 21.762-17.941zm123.814 17.647c1.767-7.646 6.179-16.176 10.884-17.647 7.35-2.351 22.643 7.647 21.763 17.647-4.119 6.473-13.236 11.765-19.412 12.059-5.882.296-11.764-3.528-12.938-9.411-.297-.883-.297-1.764-.297-2.648zm-43.525-14.999c13.823 3.825 25.881 10.294 37.939 17.354-33.527.88-67.348 1.177-101.465-.294 11.471-7.059 23.53-12.648 36.762-16.47a91.5 91.5 0 0011.471 4.409c.506.17.721.242.924.217.151-.018.296-.091.547-.217 4.705-1.174 9.41-2.941 13.822-4.999zm-32.056-2.351c-12.059 3.528-23.823 8.82-34.705 15.293-.251-3.029-1.153-6.271-1.96-9.174-.134-.481-.265-.954-.39-1.414-.58-1.351-1.285-2.701-2.034-4.134-.394-.752-.799-1.528-1.204-2.338V111.66c.19-.126.394-.252.602-.382.76-.471 1.585-.982 2.045-1.675 2.06-.587 4.412-1.471 5-2.941.59-1.177-.588-2.354-2.059-3.235.294-.294.294-.59.294-.884.884-.293 2.06-.88 2.648-1.177 9.41 9.707 19.117 18.531 31.763 25.297zm37.055-.297c12.255-6.419 23.353-15.155 33.58-24.771l.241-.229c.59.59 1.47.884 2.354 1.177 0 .13.056.259.12.388l.053.108c.065.13.12.259.12.388-1.47.881-2.647 1.764-2.057 3.235.88 1.177 2.941 2.647 4.999 2.941.883.883 1.764 1.764 2.647 2.354 0 4.412 0 9.117-.293 13.529-1.177 2.057-2.354 4.118-2.941 6.176-1.178 2.941-2.061 6.763-2.355 10.294-11.764-6.473-23.823-11.765-36.468-15.59zM49.32 89.456c1.093-.128 2.185-.257 3.327-.386l.493-.055c.587 2.057 1.177 4.118 2.354 5.882 3.235 5.589 14.41 11.765 14.703 2.354 1.91 4.634 11.654 3.961 16.814 3.604a236.6 236.6 0 011.127-.076l1.011-.109c4.622-.496 6.987-.749 7.812-4.596 4.115 1.177 9.998 1.177 14.409.88l.925-.072c3.16-.242 5.945-.454 7.016-2.869l.066.4c.277 1.672.589 3.556 1.404 5.19 3.531 7.059 12.058.589 15.293-10.295 2.648.294 5.589.59 8.53.884 0 .129-.056.258-.12.384l-.053.112c-.065.129-.12.258-.12.384-.294 1.177 1.177 2.354 2.647 2.941-15.589 15.296-31.176 28.825-53.232 35.001-20.588-6.763-36.468-19.411-50.88-34.704 1.764-.59 2.94-1.47 2.94-3.531 0-.294 0-.587-.293-.88a592.84 592.84 0 003.827-.443zm76.166 8.97c-2.057.883-2.644.59-2.938-1.471-.346-2.304-.601-4.608-.855-6.894-.394-3.551-.783-7.059-1.499-10.457 4.412 0 8.824 0 12.942.293-.297 5.59-2.354 15.883-7.65 18.528zm-58.23-1.765c-.294 2.354-1.47 2.354-3.235 1.47-7.056-3.234-8.824-11.47-7.353-17.94l.771-.055c3.828-.274 7.43-.532 11.287-.532-.261 2.225-.464 5.265-.661 8.214-.246 3.676-.482 7.21-.81 8.843zm6.176-17.057c6.175-.296 12.351-.296 18.824-.296.293 2.647.88 16.766-.297 17.647-4.409 1.177-13.822 1.177-17.937-.587-2.061-.884-1.178-13.823-.59-16.764zm24.706 12.939c-1.47-.88-1.47-11.765-1.47-13.236 6.175-.293 12.645-.293 18.821-.293.293 1.764 1.177 13.235-.587 13.825-3.825 1.174-13.236 1.47-16.764-.296zM20.496 45.487c1.048-1.048 2.093-1.515 2.936-1.524h.044c1.021.003 1.726.69 1.726 1.817 0 1.84.47 3.45.78 4.397 0 0 .72 1.988 1.773 2.8l.027.021c1.2.793 3.096 1.33 4.476 1.606l1.177.05-2.474 4.285 5.709-2.278c.366-.121.72-.243 1.066-.363 1.321-.456 2.535-.875 3.933-1.107-3.529 6.472-5.88 13.529-6.763 20.882-1.177 0-2.648-.003-4.119-.297-.179-.035-2.553-.522-2.63-.58l-.017-.013c-3.531-.883-6.763-2.051-8.82-4.11-.58-.577-3.242-4.09-3.236-8.823l-.008-.085c-.273-3.59.625-12.886 4.42-16.678zm148.812 0c3.496 3.786 4.684 13.056 4.42 16.664-.088 2.662-.854 6.1-3.243 9.217-1.506 1.966-4.949 3.21-8.445 3.81l-3.026.601c-1.468.294-2.645.294-3.822.294-.587-7.353-2.354-14.41-4.706-21.176h3.822c.027.021.05.044.074.065l-.012-.059.233-.014c2.409-.154 4.15-.264 5.723-1.075 1.429-.733 2.694-1.573 3.402-3.346.294-.892.874-2.65.874-4.688 0-2.06 2.354-2.647 4.706-.293zM95.491 72.544c-13.823 0-25-11.177-25-25 0-13.528 11.177-24.706 25-24.706 13.822 0 24.997 10.884 24.997 24.706 0 13.823-11.175 25-24.998 25z'}),wp.element.createElement('path',{d:'M104.608 1C95.49-.249 85.49 3.72 81.374 12.836c14.704-7.94 29.703-5.292 41.174 7.65-.59-11.765-8.823-18.237-17.94-19.488z'}))}Object.defineProperty(t,'__esModule',{value:!0});var a=o(154),s=n(a),l=o(28),i=n(l),p=o(29),c=n(p);r.propTypes={width:c.default.number,height:c.default.number,style:c.default.object},r.defaultProps={width:28,height:28,style:{}},t.default=r},function(e,t,o){e.exports={default:o(157),__esModule:!0}},function(e,t,o){o(158),e.exports=o(0).Object.assign},function(e,t,o){var n=o(5);n(n.S+n.F,'Object',{assign:o(159)})},function(e,t,o){'use strict';var n=o(2),r=o(18),a=o(44),s=o(27),l=o(19),i=o(66),p=Object.assign;e.exports=!p||o(11)(function(){var e={},t={},o=Symbol(),n='abcdefghijklmnopqrst';return e[o]=7,n.split('').forEach(function(e){t[e]=e}),7!=p({},e)[o]||Object.keys(p({},t)).join('')!=n})?function(e){for(var t=l(e),o=arguments.length,p=1,c=a.f,d=s.f;o>p;)for(var u,f=i(arguments[p++]),m=c?r(f).concat(c(f)):r(f),y=m.length,g=0;y>g;)u=m[g++],(!n||d.call(f,u))&&(t[u]=f[u]);return t}:p},function(e,t,o){'use strict';function n(e){return e&&e.__esModule?e:{default:e}}function r(e){return wp.element.createElement('div',{className:'optinmonster-gutenberg-campaign-selector-no_sites'},e.children,wp.element.createElement('p',{className:'optinmonster-gutenberg-campaign-selector-no_sites-help'},OMAPI.i18n.no_sites),wp.element.createElement('p',{className:'optinmonster-gutenberg-campaign-selector-no_sites-button'},wp.element.createElement(p,{isSecondary:!0,href:OMAPI.wizardUri,target:'_blank',rel:'noopener'},OMAPI.i18n.no_sites_button_create_account),'or',wp.element.createElement(p,{isSecondary:!0,href:OMAPI.settingsUri,target:'_blank',rel:'noopener'},OMAPI.i18n.no_sites_button_connect_account)))}Object.defineProperty(t,'__esModule',{value:!0});var a=o(28),s=n(a),l=o(29),i=n(l),p=wp.components.Button;r.propTypes={children:i.default.node},t.default=r},,function(e,t,o){var n=o(185),r=o(188),a=o(189);e.exports=function(e,t,o,s,l,i){var p=o&1,c=e.length,d=t.length;if(c!=d&&!(p&&d>c))return!1;var u=i.get(e),f=i.get(t);if(u&&f)return u==t&&f==e;var m=-1,y=!0,g=o&2?new n:void 0;for(i.set(e,t),i.set(t,e);++m<c;){var _=e[m],h=t[m];if(s)var b=p?s(h,_,m,t,e,i):s(_,h,m,e,t,i);if(void 0!==b){if(b)continue;y=!1;break}if(g){if(!r(t,function(e,t){if(!a(g,t)&&(_===e||l(_,e,o,s,i)))return g.push(t)})){y=!1;break}}else if(!(_===h||l(_,h,o,s,i))){y=!1;break}}return i['delete'](e),i['delete'](t),y}},function(e,t,o){(function(e){var n=o(6),r=o(206),a='object'==typeof t&&t&&!t.nodeType&&t,s=a&&'object'==typeof e&&e&&!e.nodeType&&e,l=s&&s.exports===a,i=l?n.Buffer:void 0,p=i?i.isBuffer:void 0;e.exports=p||r}).call(t,o(164)(e))},function(e){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],!e.children&&(e.children=[]),Object.defineProperty(e,'loaded',{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,'id',{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,o){var n=o(208),r=o(209),a=o(210),s=a&&a.isTypedArray,l=s?r(s):n;e.exports=l},function(e){e.exports=function(e){return'number'==typeof e&&-1<e&&0==e%1&&e<=9007199254740991}},,,,,,,,function(e,t,o){'use strict';function n(e){return e&&e.__esModule?e:{default:e}}var r=o(155),a=n(r),s=o(175),l=n(s),i=wp.i18n.__;wp.blocks.registerBlockType('optinmonster/campaign-selector',{title:OMAPI.i18n.title,description:OMAPI.i18n.description,icon:a.default,category:'embed',keywords:[i('Popup','optin-monster-api'),i('Form','optin-monster-api'),i('Campaign','optin-monster-api'),i('Email','optin-monster-api'),i('Conversion','optin-monster-api')],attributes:{slug:{type:'string'},followrules:{type:'boolean'}},edit:l.default,save:function(){return null}})},function(e,t,o){'use strict';function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,'__esModule',{value:!0});var r=o(102),a=n(r),s=o(115),l=n(s),i=o(118),p=n(i),c=o(119),d=n(c),u=o(123),f=n(u),m=o(145),y=n(m),g=o(28),_=n(g),h=o(29),b=n(h),x=o(176),E=n(x),O=o(153),S=o(101),v=o(221),P=n(v),T=o(222),k=n(T),j=o(223),w=n(j),M=wp.element,N=M.Component,C=M.Fragment,I=[];OMAPI._usedSlugs=OMAPI._usedSlugs||{};var A=function(e){function t(e){(0,p.default)(this,t);var o=(0,f.default)(this,(t.__proto__||(0,l.default)(t)).call(this,e));return R.call(o),o.props=e,o.state={embed:{},loading:!1,hasError:null,options:[],prevSlug:''},o}return(0,y.default)(t,e),(0,d.default)(t,[{key:'componentDidMount',value:function(){document.addEventListener('om.Campaign.init',this.setAsPreview),document.addEventListener('om.Campaign.afterShow',this.loadingStop),document.addEventListener('om.Main.getCampaigns.error',this.foundError),document.addEventListener('om.Campaign.show.error',this.foundError),document.addEventListener('om.Campaign.load.error',this.foundError);var e=this.slug();e&&this.fetch(),this.maybeUpdateOptions(e)}},{key:'componentWillUnmount',value:function(){var e=this.campaign();e&&(I.push(e),e.off()),this.slug()&&delete OMAPI._usedSlugs[this.slug()],document.removeEventListener('om.Campaign.init',this.setAsPreview),document.removeEventListener('om.Campaign.afterShow',this.loadingStop),document.removeEventListener('om.Main.getCampaigns.error',this.foundError),document.removeEventListener('om.Campaign.show.error',this.foundError),document.removeEventListener('om.Campaign.load.error',this.foundError)}},{key:'componentDidUpdate',value:function(e){var t=this.slug(),o=this.getSlug(e);if(this.maybeUpdateOptions(t,o),t&&o!==t){var n=this.campaign();this.setState({loading:!0,hasError:!1}),n?(n.reset(),OMAPI._usedSlugs[t]&&delete OMAPI._usedSlugs[t]):(this.fetch(),OMAPI._usedSlugs[t]=!0)}}},{key:'render',value:function(){var e=this.props,t=e.attributes,o=t.slug,n=void 0===o?'':o,r=t.followrules,a=e.setAttributes,s=this.state,l=s.embed,i=s.hasError,p=function(e){return a({slug:e})},c=n&&(!l||this.state.loading);return wp.element.createElement(C,null,wp.element.createElement(k.default,{slug:n,options:this.state.options,followrules:r,onSelectCampaign:p,onToggleFollowRules:function(e){return a({followrules:e})}}),function(){return!i&&c&&wp.element.createElement(P.default,null)}(),function(){if(!i)return null;var e=OMAPI.i18n.found_error;return n&&-1===i.indexOf(n)&&(e=wp.element.createElement(C,null,e,' ',wp.element.createElement('code',null,wp.element.createElement('small',null,n)))),wp.element.createElement('p',{className:'error'},wp.element.createElement('strong',null,e,':'),' ',i)}(),l&&n?this.getOutput():wp.element.createElement(w.default,{slug:n,hasSites:(0,S.hasSites)(),options:this.state.options,onSelectCampaign:p}))}}]),t}(N),R=function(){var e=this;this.maybeUpdateOptions=function(t){var o=1<arguments.length&&arguments[1]!==void 0?arguments[1]:'';t&&(OMAPI._usedSlugs[t]=!0),o&&o!==t&&delete OMAPI._usedSlugs[o];var n=(0,O.getOptions)('inline',t);(0,E.default)(n,e.state.options)||e.setState({options:n})},this.setAsPreview=function(e){e.detail.Campaign.preview=!0},this.loadingStop=function(t){e.slug()===t.detail.Campaign.id&&e.setState({loading:!1,hasError:!1})},this.foundError=function(t){var o=t.detail,n=o.Campaign,r=o.error,a=e.slug();if(!(n&&a!==n.id)&&!(r.responseURL&&0>r.responseURL.indexOf(a))){var s=r;r.response&&(s=JSON.parse(r.response).message||JSON.parse(r.response).error),r.message&&(s=r.message),e.setState({loading:!1,hasError:s})}},this.fetch=function(){e.setState({loading:!0,hasError:!1});var t=e.slug(),o={type:'text/javascript',src:OMAPI.apiUrl,async:!0,"data-user":OMAPI.omUserId,"data-campaign":t};OMAPI.omEnv&&(o['data-env']=OMAPI.omEnv),e.setState({embed:o})},this.getSlug=function(e){var t=e.attributes.slug,o=t===void 0?'':t;return o},this.slug=function(){return e.getSlug(e.props)},this.campaign=function(){return(0,O.getCampaign)(e.slug())},this.getOutput=function(){var t=e.slug(),o=e.state.embed,n=e.campaign();if(!n&&(I.length&&(n=I.find(function(e){return t===e.id}),n&&(I.splice(I.indexOf(n),1),n.reset())),!n&&o&&0<(0,a.default)(o).length)){var r=document.getElementsByTagName('head')[0]||document.documentElement,s=document.createElement('script'),l=void 0;for(l in o)s.setAttribute(l,o[l]);r.appendChild(s)}return wp.element.createElement('div',{key:'om-'+t+'-holder',id:'om-'+t+'-holder'})}};A.propTypes={attributes:b.default.object,setAttributes:b.default.func},t.default=A},function(e,t,o){var n=o(177);e.exports=function(e,t){return n(e,t)}},function(e,t,o){function n(e,t,o,s,l){return!(e!==t)||(null!=e&&null!=t&&(a(e)||a(t))?r(e,t,o,s,n,l):e!==e&&t!==t)}var r=o(178),a=o(43);e.exports=n},function(e,t,o){var n=o(179),r=o(162),a=o(190),s=o(194),l=o(216),i=o(15),p=o(163),c=o(165),d='[object Arguments]',u='[object Array]',f='[object Object]',m=Object.prototype,y=m.hasOwnProperty;e.exports=function(e,t,o,m,g,_){var h=i(e),b=i(t),x=h?u:l(e),E=b?u:l(t);x=x==d?f:x,E=E==d?f:E;var O=x==f,S=E==f,v=x==E;if(v&&p(e)){if(!p(t))return!1;h=!0,O=!1}if(v&&!O)return _||(_=new n),h||c(e)?r(e,t,o,m,g,_):a(e,t,x,o,m,g,_);if(!(o&1)){var P=O&&y.call(e,'__wrapped__'),T=S&&y.call(t,'__wrapped__');if(P||T){var k=P?e.value():e,j=T?t.value():t;return _||(_=new n),g(k,j,o,m,_)}}return!!v&&(_||(_=new n),s(e,t,o,m,g,_))}},function(e,t,o){function n(e){var t=this.__data__=new r(e);this.size=t.size}var r=o(45),a=o(180),s=o(181),l=o(182),i=o(183),p=o(184);n.prototype.clear=a,n.prototype['delete']=s,n.prototype.get=l,n.prototype.has=i,n.prototype.set=p,e.exports=n},function(e,t,o){var n=o(45);e.exports=function(){this.__data__=new n,this.size=0}},function(e){e.exports=function(e){var t=this.__data__,o=t['delete'](e);return this.size=t.size,o}},function(e){e.exports=function(e){return this.__data__.get(e)}},function(e){e.exports=function(e){return this.__data__.has(e)}},function(e,t,o){var n=o(45),r=o(46),a=o(47);e.exports=function(e,t){var o=this.__data__;if(o instanceof n){var s=o.__data__;if(!r||s.length<200-1)return s.push([e,t]),this.size=++o.size,this;o=this.__data__=new a(s)}return o.set(e,t),this.size=o.size,this}},function(e,t,o){function n(e){var t=-1,o=null==e?0:e.length;for(this.__data__=new r;++t<o;)this.add(e[t])}var r=o(47),a=o(186),s=o(187);n.prototype.add=n.prototype.push=a,n.prototype.has=s,e.exports=n},function(e){e.exports=function(e){return this.__data__.set(e,'__lodash_hash_undefined__'),this}},function(e){e.exports=function(e){return this.__data__.has(e)}},function(e){e.exports=function(e,t){for(var o=-1,n=null==e?0:e.length;++o<n;)if(t(e[o],o,e))return!0;return!1}},function(e){e.exports=function(e,t){return e.has(t)}},function(e,t,o){var n=o(20),r=o(191),a=o(61),s=o(162),l=o(192),i=o(193),p=n?n.prototype:void 0,c=p?p.valueOf:void 0;e.exports=function(e,t,o,n,p,d,u){switch(o){case'[object DataView]':if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case'[object ArrayBuffer]':return!!(e.byteLength==t.byteLength&&d(new r(e),new r(t)));case'[object Boolean]':case'[object Date]':case'[object Number]':return a(+e,+t);case'[object Error]':return e.name==t.name&&e.message==t.message;case'[object RegExp]':case'[object String]':return e==t+'';case'[object Map]':var f=l;case'[object Set]':var m=n&1;if(f||(f=i),e.size!=t.size&&!m)return!1;var y=u.get(e);if(y)return y==t;n|=2,u.set(e,t);var g=s(f(e),f(t),n,p,d,u);return u['delete'](e),g;case'[object Symbol]':if(c)return c.call(e)==c.call(t);}return!1}},function(e,t,o){var n=o(6),r=n.Uint8Array;e.exports=r},function(e){e.exports=function(e){var t=-1,o=Array(e.size);return e.forEach(function(e,n){o[++t]=[n,e]}),o}},function(e){e.exports=function(e){var t=-1,o=Array(e.size);return e.forEach(function(e){o[++t]=e}),o}},function(e,t,o){function n(e,t,o,n,s,i){var p=o&a,c=r(e),d=c.length,u=r(t),f=u.length;if(d!=f&&!p)return!1;for(var m,y=d;y--;)if(m=c[y],p?!(m in t):!l.call(t,m))return!1;var g=i.get(e),_=i.get(t);if(g&&_)return g==t&&_==e;var h=!0;i.set(e,t),i.set(t,e);for(var b=p;++y<d;){m=c[y];var x=e[m],E=t[m];if(n)var O=p?n(E,x,m,t,e,i):n(x,E,m,e,t,i);if(void 0===O?!(x===E||s(x,E,o,n,i)):!O){h=!1;break}b||(b='constructor'==m)}if(h&&!b){var S=e.constructor,v=t.constructor;S!=v&&'constructor'in e&&'constructor'in t&&!('function'==typeof S&&S instanceof S&&'function'==typeof v&&v instanceof v)&&(h=!1)}return i['delete'](e),i['delete'](t),h}var r=o(195),a=1,s=Object.prototype,l=s.hasOwnProperty;e.exports=n},function(e,t,o){var n=o(196),r=o(198),a=o(201);e.exports=function(e){return n(e,a,r)}},function(e,t,o){var n=o(197),r=o(15);e.exports=function(e,t,o){var a=t(e);return r(e)?a:n(a,o(e))}},function(e){e.exports=function(e,t){for(var o=-1,n=t.length,r=e.length;++o<n;)e[r+o]=t[o];return e}},function(e,t,o){var n=o(199),r=o(200),a=Object.prototype,s=a.propertyIsEnumerable,l=Object.getOwnPropertySymbols,i=l?function(e){return null==e?[]:(e=Object(e),n(l(e),function(t){return s.call(e,t)}))}:r;e.exports=i},function(e){e.exports=function(e,t){for(var o=-1,n=null==e?0:e.length,r=0,a=[];++o<n;){var s=e[o];t(s,o,e)&&(a[r++]=s)}return a}},function(e){e.exports=function(){return[]}},function(e,t,o){var n=o(202),r=o(211),a=o(215);e.exports=function(e){return a(e)?n(e):r(e)}},function(e,t,o){var n=o(203),r=o(204),a=o(15),s=o(163),l=o(207),i=o(165),p=Object.prototype,c=p.hasOwnProperty;e.exports=function(e,t){var o=a(e),p=!o&&r(e),d=!o&&!p&&s(e),u=!o&&!p&&!d&&i(e),f=o||p||d||u,m=f?n(e.length,String):[],y=m.length;for(var g in e)(t||c.call(e,g))&&!(f&&('length'==g||d&&('offset'==g||'parent'==g)||u&&('buffer'==g||'byteLength'==g||'byteOffset'==g)||l(g,y)))&&m.push(g);return m}},function(e){e.exports=function(e,t){for(var o=-1,n=Array(e);++o<e;)n[o]=t(o);return n}},function(e,t,o){var n=o(205),r=o(43),a=Object.prototype,s=a.hasOwnProperty,l=a.propertyIsEnumerable,i=n(function(){return arguments}())?n:function(e){return r(e)&&s.call(e,'callee')&&!l.call(e,'callee')};e.exports=i},function(e,t,o){var n=o(26),r=o(43);e.exports=function(e){return r(e)&&n(e)=='[object Arguments]'}},function(e){e.exports=function(){return!1}},function(e){var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,o){var n=typeof e;return o=null==o?9007199254740991:o,!!o&&('number'==n||'symbol'!=n&&t.test(e))&&-1<e&&0==e%1&&e<o}},function(e,t,o){var n=o(26),r=o(166),a=o(43),s={};s['[object Float32Array]']=s['[object Float64Array]']=s['[object Int8Array]']=s['[object Int16Array]']=s['[object Int32Array]']=s['[object Uint8Array]']=s['[object Uint8ClampedArray]']=s['[object Uint16Array]']=s['[object Uint32Array]']=!0,s['[object Arguments]']=s['[object Array]']=s['[object ArrayBuffer]']=s['[object Boolean]']=s['[object DataView]']=s['[object Date]']=s['[object Error]']=s['[object Function]']=s['[object Map]']=s['[object Number]']=s['[object Object]']=s['[object RegExp]']=s['[object Set]']=s['[object String]']=s['[object WeakMap]']=!1,e.exports=function(e){return a(e)&&r(e.length)&&!!s[n(e)]}},function(e){e.exports=function(e){return function(t){return e(t)}}},function(e,t,o){(function(e){var n=o(63),r='object'==typeof t&&t&&!t.nodeType&&t,a=r&&'object'==typeof e&&e&&!e.nodeType&&e,s=a&&a.exports===r,l=s&&n.process,i=function(){try{var e=a&&a.require&&a.require('util').types;return e?e:l&&l.binding&&l.binding('util')}catch(t){}}();e.exports=i}).call(t,o(164)(e))},function(e,t,o){var n=o(212),r=o(213),a=Object.prototype,s=a.hasOwnProperty;e.exports=function(e){if(!n(e))return r(e);var t=[];for(var o in Object(e))s.call(e,o)&&'constructor'!=o&&t.push(o);return t}},function(e){var t=Object.prototype;e.exports=function(e){var o=e&&e.constructor,n='function'==typeof o&&o.prototype||t;return e===n}},function(e,t,o){var n=o(214),r=n(Object.keys,Object);e.exports=r},function(e){e.exports=function(e,t){return function(o){return e(t(o))}}},function(e,t,o){var n=o(62),r=o(166);e.exports=function(e){return null!=e&&r(e.length)&&!n(e)}},function(e,t,o){var n=o(217),r=o(46),a=o(218),s=o(219),l=o(220),i=o(26),p=o(64),c='[object Map]',d='[object Promise]',u='[object Set]',f='[object WeakMap]',m='[object DataView]',y=p(n),g=p(r),_=p(a),h=p(s),b=p(l),x=i;(n&&x(new n(new ArrayBuffer(1)))!=m||r&&x(new r)!=c||a&&x(a.resolve())!=d||s&&x(new s)!=u||l&&x(new l)!=f)&&(x=function(e){var t=i(e),o=t=='[object Object]'?e.constructor:void 0,n=o?p(o):'';if(n)switch(n){case y:return m;case g:return c;case _:return d;case h:return u;case b:return f;}return t}),e.exports=x},function(e,t,o){var n=o(21),r=o(6),a=n(r,'DataView');e.exports=a},function(e,t,o){var n=o(21),r=o(6),a=n(r,'Promise');e.exports=a},function(e,t,o){var n=o(21),r=o(6),a=n(r,'Set');e.exports=a},function(e,t,o){var n=o(21),r=o(6),a=n(r,'WeakMap');e.exports=a},function(e,t,o){'use strict';function n(e){return e&&e.__esModule?e:{default:e}}function r(e){var t=e.width,o=e.fill,n=(0,s.default)({},e.wrapperStyles,{display:'flex',alignItems:'center',justifyContent:'center'});return wp.element.createElement('div',{style:n,className:'om-archie-loader'},wp.element.createElement('svg',{height:'100%',width:'100%',version:'1.1',viewBox:'0 0 50 50',style:{maxWidth:t+'px'}},wp.element.createElement('circle',{cx:'25',cy:'25',r:'23',style:{stroke:o}}),wp.element.createElement('path',{d:'M12.75 27.84c.3.06.83.12 1.07.42l.12.11c.36-.05.72-.05 1.08-.11-.18-.12-.36-.24-.54-.3-.36-.6-.9-.72-1.61-.78V27c-1.32-.06-2.94-.36-3.66-1.2-.84-.9-.96-2.46-.84-3.66A4.7 4.7 0 0110 18.91c.54-.36 1.44-.06 1.5.66.06.3.12 1.38.36 1.5.3.18.84.24 1.38.24a8.83 8.83 0 011.73-1.32c-.96-.12-1.91.12-2.93.24l.84-.84a15.24 15.24 0 018.03-3.54c-1.26-.54-2.64-.78-3.96-1.08 5.1-1.07 11.63-1.5 16.24 2.52 1.2 1.02 2.16 2.4 2.81 4.02.72.11 1.68.11 2.16-.18.3-.18.36-1.2.36-1.5.06-.66.96-1.02 1.5-.66.96.72 1.5 2.04 1.62 3.17.12 1.2 0 2.76-.84 3.66-.72.84-2.28 1.14-3.6 1.2v.18c-.71 0-1.31.18-1.67.78-.18.06-.36.18-.54.3.36.06.78.11 1.14.11 0-.05.06-.11.12-.11.23-.3.77-.36 1.07-.42h.24c.12-.36.48-.78.96-.66s.96.66 1.02 1.08c.72.3 1.5.77 1.68 1.73a17.55 17.55 0 01-2.15 3.67 4 4 0 01-.6.17c-.13 0-.25.06-.3.06v.86c-.28.31-.57.6-.87.9.02-.67.02-1.35.02-2-.18-.12-.36-.3-.54-.48a1.72 1.72 0 01-1.01-.6c-.12-.3.12-.48.42-.66 0-.06-.06-.12-.06-.18a1.21 1.21 0 01-.48-.24 31.57 31.57 0 01-6.9 5.1c1.65.5 3.24 1.1 4.8 1.83-.37.2-.74.4-1.12.57a25.37 25.37 0 00-4.7-1.87c-.9.42-1.85.78-2.81 1.02-.12.06-.12.06-.3 0-.78-.24-1.56-.54-2.34-.9A29 29 0 0017.7 39c-.38-.17-.76-.36-1.12-.56 1.5-.73 3.04-1.34 4.62-1.8a26.15 26.15 0 01-6.48-5.15c-.12.06-.36.18-.53.24 0 .06 0 .12-.07.18.3.18.55.42.42.66-.11.3-.6.48-1.01.6-.12.18-.36.3-.54.42v2.24c-.38-.35-.74-.72-1.08-1.1v-.84c-.12 0-.18 0-.3-.06a4.24 4.24 0 01-.57-.16 17.6 17.6 0 01-2.18-3.7 2.7 2.7 0 011.67-1.71c.06-.42.54-.96 1.02-1.08.48-.12.84.3.96.66h.24zm1.73 2.21c2.94 3.12 6.18 5.7 10.37 7.07 4.5-1.25 7.67-4.01 10.84-7.13-.3-.12-.6-.36-.53-.6 0-.06.06-.12.06-.18l-1.74-.18c-.66 2.22-2.4 3.54-3.12 2.1-.18-.36-.24-.78-.3-1.14-.24.54-.9.54-1.61.6-.9.06-2.1.06-2.94-.18-.18.84-.72.84-1.8.96-.96.06-3.23.3-3.65-.72-.06 1.92-2.34.66-3-.48-.24-.36-.36-.78-.48-1.2l-1.56.18c.06.06.06.12.06.18 0 .42-.24.6-.6.72zm16.24.54c.06.42.18.48.6.3 1.08-.54 1.5-2.63 1.56-3.77-.84-.06-1.74-.06-2.64-.06.24 1.14.3 2.33.48 3.53zm-11.92.24c.36.18.6.18.66-.3.12-.6.18-2.45.3-3.47-.84 0-1.62.06-2.46.12-.3 1.32.06 3 1.5 3.65zM24.55 27c-1.32 0-2.58 0-3.83.06-.12.6-.3 3.23.11 3.41.84.36 2.76.36 3.66.12.24-.18.12-3.05.06-3.6zm.9 0c0 .3 0 2.51.3 2.7.72.35 2.64.3 3.41.05.36-.12.18-2.45.12-2.81-1.26 0-2.57 0-3.83.06zm-11.2-4.92c-.37.06-.67.18-1.02.3l-.84.36a5.36 5.36 0 00-.36 3.54c.3.06.6.06.84.06.18-1.5.66-2.94 1.37-4.26zm22.94-.06h-.78c.48 1.38.84 2.82.96 4.32.24 0 .48 0 .78-.06.42-1.62 0-3.42-.96-4.26zm-25.7 4.14a5.3 5.3 0 01.84-4.2c-.3-.06-.72-.18-.96-.36-1.26.36-1.86 1.8-1.98 3.24.12.18.18.36.3.48.42.42 1.08.66 1.8.84zm27.26 0a3.34 3.34 0 001.74-.78c.12-.12.24-.3.3-.48-.06-1.44-.66-2.82-1.98-3.24-.24.24-.6.3-.96.36.9.96 1.14 2.7.9 4.14zm-18.63-5.63a5.09 5.09 0 1010.18 0 5.04 5.04 0 00-5.09-5.04 5.08 5.08 0 00-5.1 5.04zm5.15-1.62c-.48 0-.96.06-1.38.24.6.18 1.08.78 1.08 1.44 0 .83-.72 1.55-1.68 1.55-.6 0-1.14-.3-1.44-.78-.06.24-.06.48-.06.78 0 1.8 1.56 3.24 3.42 3.24 1.92 0 3.47-1.44 3.47-3.24.06-1.8-1.5-3.23-3.41-3.23zm-14.2 2.22c-.06-.18-.18-.54-.18-.96 0-.42-.48-.54-.96-.06-.78.78-.96 2.7-.9 3.41.3-.9.9-1.92 2.04-2.4zm28.04 0a3.78 3.78 0 012.04 2.4c.06-.73-.18-2.64-.9-3.42-.48-.48-.96-.36-.96.06s-.12.78-.18.96zm-16.78-7.67c1.68-3.72 8.15-3.24 8.4 1.55-2.34-2.63-5.4-3.17-8.4-1.55z',fill:o})))}Object.defineProperty(t,'__esModule',{value:!0});var a=o(154),s=n(a),l=o(28),i=n(l),p=o(29),c=n(p);r.propTypes={fill:c.default.string,width:c.default.number,wrapperStyles:c.default.string},r.defaultProps={fill:'#858b98',width:100},t.default=r},function(e,t,o){'use strict';function n(e){return e&&e.__esModule?e:{default:e}}function r(e){var t=e.slug,o=e.options,n=e.followrules,r=e.onSelectCampaign,a=e.onToggleFollowRules;return 0<o.length||t?wp.element.createElement(p,{key:'optinmonster-gutenberg-campaign-selector-inspector-controls'},wp.element.createElement(f,{title:OMAPI.i18n.block_settings},wp.element.createElement(d,{label:OMAPI.i18n.campaign_selected,value:t,options:o,onChange:r}),t?wp.element.createElement(u,{label:OMAPI.i18n.followrules_label,help:function(){var e=OMAPI.i18n.followrules_help.replace('%s',''),o=OMAPI.outputSettingsUrl.replace('%s',t);return wp.element.createElement('span',null,wp.element.createElement('span',{dangerouslySetInnerHTML:{__html:e}}),' ',wp.element.createElement('a',{target:'_blank',rel:'noopener noreferrer',href:o,className:'skip-om-trigger'},OMAPI.i18n.output_settings),'.')}(),checked:!!n,onChange:function(){a(!n)}}):null)):null}Object.defineProperty(t,'__esModule',{value:!0});var a=o(28),s=n(a),l=o(29),i=n(l),p=wp.blockEditor.InspectorControls,c=wp.components,d=c.SelectControl,u=c.ToggleControl,f=c.PanelBody;r.propTypes={slug:i.default.string,options:i.default.array,followrules:i.default.bool,onSelectCampaign:i.default.func,onToggleFollowRules:i.default.func},r.defaultProps={slug:'',options:[],followrules:!1,onSelectCampaign:function(){},onToggleFollowRules:function(){}},t.default=r},function(e,t,o){'use strict';function n(e){return e&&e.__esModule?e:{default:e}}function r(e){var t=e.slug,o=e.hasSites,n=e.options,r=e.onSelectCampaign;return wp.element.createElement(g,{key:'optinmonster-gutenberg-campaign-selector-wrap',className:'optinmonster-gutenberg-campaign-selector-wrap',label:wp.element.createElement('div',{className:'optinmonster-gutenberg-campaign-selector-label'},wp.element.createElement('img',{src:OMAPI.logoUrl,alt:'OptinMonster Logo'}),'OptinMonster'),instructions:function(){return o?0===n.length?wp.element.createElement(c.default,null):null:wp.element.createElement(u.default,null)}()},n.length?wp.element.createElement('div',{className:'components-placeholder__fieldset-wrapper'},wp.element.createElement('div',{className:'components-placeholder__fieldset-desc'},OMAPI.i18n.campaign_select_display),wp.element.createElement('div',{className:'components-placeholder__fieldset-fields'},wp.element.createElement(y,{key:'optinmonster-gutenberg-campaign-selector-select-control',value:t,options:n,onChange:r}),wp.element.createElement('div',null,wp.element.createElement(m,{href:OMAPI.templatesUri+'&type=popup',target:'_blank',rel:'noopener',isSecondary:!0,isSmall:!0},OMAPI.i18n.create_new_popup),wp.element.createElement(m,{href:OMAPI.templatesUri+'&type=inline',target:'_blank',rel:'noopener',isSecondary:!0,isSmall:!0},OMAPI.i18n.create_new_inline)))):null)}Object.defineProperty(t,'__esModule',{value:!0});var a=o(28),s=n(a),l=o(29),i=n(l),p=o(224),c=n(p),d=o(160),u=n(d),f=wp.components,m=f.Button,y=f.SelectControl,g=f.Placeholder;r.propTypes={slug:i.default.string,hasSites:i.default.bool,options:i.default.array,onSelectCampaign:i.default.func},r.defaultProps={slug:'',hasSites:!0,options:[],onSelectCampaign:function(){}},t.default=r},function(e,t,o){'use strict';function n(e){return e&&e.__esModule?e:{default:e}}function r(e){return wp.element.createElement('div',{className:'optinmonster-gutenberg-campaign-selector-no_campaigns'},e.children,wp.element.createElement('p',{className:'optinmonster-gutenberg-campaign-selector-no_campaigns-header'},OMAPI.i18n.no_inline_campaigns),wp.element.createElement('p',{className:'optinmonster-gutenberg-campaign-selector-no_campaigns-help'},OMAPI.i18n.no_campaigns_help),wp.element.createElement('p',{className:'optinmonster-gutenberg-campaign-selector-no_campaigns-button'},wp.element.createElement(p,{isPrimary:!0,href:OMAPI.templatesUri+'&type=inline',target:'_blank',rel:'noopener'},OMAPI.i18n.create_inline_campaign)),wp.element.createElement('p',{className:'optinmonster-gutenberg-campaign-selector-no_campaigns-button-help'},wp.element.createElement(p,{isTertiary:!0,href:'https://optinmonster.com/docs/getting-started-optinmonster-wordpress-checklist/?utm_source=plugin&utm_medium=link&utm_campaign=gutenbergblock',target:'_blank',rel:'noopener'},OMAPI.i18n.no_campaigns_button_help)))}Object.defineProperty(t,'__esModule',{value:!0});var a=o(28),s=n(a),l=o(29),i=n(l),p=wp.components.Button;r.propTypes={children:i.default.node},t.default=r}]);
assets/dist/js/editor.min.js ADDED
@@ -0,0 +1 @@
 
1
+ (function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={i:d,l:!1,exports:{}};return a[d].call(e.exports,e,e.exports,b),e.l=!0,e.exports}var c={};return b.m=a,b.c=c,b.d=function(a,c,d){b.o(a,c)||Object.defineProperty(a,c,{configurable:!1,enumerable:!0,get:d})},b.n=function(a){var c=a&&a.__esModule?function(){return a['default']}:function(){return a};return b.d(c,'a',c),c},b.o=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)},b.p='',b(b.s=233)})({161:function(a,b){'use strict';Object.defineProperty(b,'__esModule',{value:!0});b.getMonsterlink=function(a){return OMAPI.monsterlink+a+'/'}},233:function(a,b,c){'use strict';var d=c(161);window.OMAPI_Editor=window.OMAPI_Editor||{},function(a,b,c,f){a.OMAPI=a.OMAPI||{},OMAPI.monsterlink=f.monsterlink,f.getActiveEditorId=function(){var b=a.wpActiveEditor,c=a.tinymce;return wp.media.editor.activeEditor&&(b=wp.media.editor.activeEditor),!b&&c&&c.activeEditor&&(b=c.activeEditor.id),b},f.getActiveEditor=function(){var b=f.getActiveEditorId();return b&&a.tinymce?a.tinymce.get(b):null},f.mceLinkifyText=function(){var a=f.$select.val();a&&f.getActiveEditor().execCommand('mceInsertLink',!1,{href:(0,d.getMonsterlink)(a),target:'_blank',rel:'noopener noreferrer'})},f.modalOpenLink=function(){f.$toToggle.addClass('optin-monster-modal-monsterlink').removeClass('optin-monster-modal-inline'),f.$body.addClass('modal-open om-modal-open-monsterlink'),f.$modalWrap.show(),f.updateLinkSelectOptions(f.$select);var a=c('.wp-link-input').parent().find('.dashicons-admin-generic').parent();a.click(),c(b).trigger('om-modal-open-monsterlink')},f.modalOpenInline=function(){f.$toToggle.addClass('optin-monster-modal-inline').removeClass('optin-monster-modal-monsterlink').show(),f.$body.addClass('modal-open om-modal-open-inline'),f.updateInlineSelectOptions(),c(b).trigger('om-modal-open-inline')},f.modalClose=function(){['$select','$linkSelect','$inlineSelect'].forEach(function(a){f[a]&&f[a].length&&f[a].val('')}),f.$toToggle.hide();var a=f.$body.hasClass('om-modal-open-monsterlink')?'monsterlink':'inline';f.$body.removeClass('modal-open om-modal-open-monsterlink om-modal-open-inline'),c(b).trigger('om-modal-close-'+a)},f.insertShortcode=function(){var a=f.$inlineSelect.val();a&&wp.media.editor.insert('[optin-monster slug="'+a+'"]')},f.updateLinkSelectOptions=function(a){var b=c('#wp-link-wrap #link-selector'),e=b.find('#search-panel'),f=e.offset().top+e.outerHeight(),g=f-b.offset().top+12;c('.has-text-field #wp-link .query-results').css({top:g});var h=c('.wp-link-input input.ui-autocomplete-input').val();h&&a.find('option').each(function(){var b=c(this).val();b&&h===(0,d.getMonsterlink)(b)&&a.val(b)})},f.updateInlineSelectOptions=function(){var a=f.getActiveEditorId();if(a){var d=f.getActiveEditor(),e=d&&!d.isHidden()?d.getContent():b.getElementById(a).value;f.$inlineSelect.find('option').each(function(){var a=c(this),b=0<=e.indexOf('optin-monster slug="'+a.val()+'"');a.attr('disabled',b)})}},f.initLinkButton=function(){c('.wp-link-input').each(function(){var a=c(this).parent();if(!a.find('.optin-monster-insert-monsterlink').length){var b=c('<div class="mce-widget mce-btn mce-last" tabindex="-1" role="button" aria-label="OptinMonster" style="margin-left:-3px;"></div>'),d=c('<button role="presentation" type="button" tabindex="-1" class="optin-monster-insert-monsterlink"></button>');d.append(c('.wp-media-buttons-icon.optin-monster-menu-icon').first().clone()),b.append(d),a.find('.mce-last').removeClass('mce-last'),a.append(b)}})},f.initAdvancedSettings=function(){var b=c('\n\t\t\t<p class="howto" id="om-link-campaign-label">Or link to a popup campaign</p>\n\t\t\t<div style="margin-bottom: -8px;">\n\t\t\t\t<label><span>Select</span>\n\t\t\t\t\t<select name="om-link-class" id="om-link-campaign" aria-describedby="om-link-campaign-label">\n\t\t\t\t\t</select>\n\t\t\t\t</label>\n\t\t\t</div>\n\t\t');if(b.find('select').html(f.$select.find('option').clone()),c('#link-options').append(b),f.$linkSelect=c('#om-link-campaign'),'undefined'!=typeof a.wpLink){var e=wpLink.getAttrs;wpLink.getAttrs=function(){var a=e(),b=(0,d.getMonsterlink)(f.$linkSelect.val());return a.href===b&&(a.target='_blank',a.rel='noopener noreferrer'),a}}},f.initEditorMods=function(a){!a||a.hasInitiatedOm||(a.hasInitiatedOm=!0,a.on('ExecCommand',function(a){'WP_Link'===a.command&&f.initLinkButton()}),!f.$linkSelect&&f.initAdvancedSettings())},f.setupListeners=function(){c(b).on('click','.optin-monster-insert-campaign-button',function(a){a.preventDefault(),f.modalOpenInline()}).on('click','.optin-monster-insert-monsterlink',function(a){a.preventDefault(),f.modalOpenLink()}).on('click','#optin-monster-modal-backdrop, #optin-monster-modal-close, #optin-monster-modal-cancel a',function(a){a.preventDefault(),f.modalClose()}).on('click','#optin-monster-modal-submit-inline',function(a){a.preventDefault(),f.insertShortcode(),f.modalClose()}).on('click','#optin-monster-modal-submit',function(a){a.preventDefault(),f.mceLinkifyText(),f.modalClose()}).on('change','#om-link-campaign',function(){var a=f.$linkSelect.val();a&&(c('#wp-link-url').val((0,d.getMonsterlink)(a)),c('#wp-link-target').prop('checked',!0))}).on('wplink-open',function(){f.updateLinkSelectOptions(f.$linkSelect)}).on('wplink-close',function(){f.modalClose()}).on('om-modal-close-monsterlink',function(){if(wpLink){var a=f.getActiveEditor();a&&!a.isHidden()&&wpLink.close()}})},f.init=function(){f.$body=c(b.body),f.$modalWrap=c('#optin-monster-modal-wrap'),f.$toToggle=c('#optin-monster-modal-backdrop, #optin-monster-modal-wrap'),f.$select=c('#optin-monster-modal-select-campaign'),f.$inlineSelect=c('#optin-monster-modal-select-inline-campaign'),f.$linkSelect=null,f.setupListeners(),f.initEditorMods(f.getActiveEditor()),'undefined'!=typeof tinymce&&tinymce.on('SetupEditor',function(a){var b=a.editor;f.initEditorMods(b)})},c(f.init)}(window,document,jQuery,window.OMAPI_Editor)}});
assets/dist/js/elementor.min.js ADDED
@@ -0,0 +1 @@
 
1
+ (function(e){function t(n){if(o[n])return o[n].exports;var r=o[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var o={};return t.m=e,t.c=o,t.d=function(e,o,n){t.o(e,o)||Object.defineProperty(e,o,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var o=e&&e.__esModule?function(){return e['default']}:function(){return e};return t.d(o,'a',o),o},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p='',t(t.s=234)})([function(e){var t=e.exports={version:'2.6.9'};'number'==typeof __e&&(__e=t)},function(e){var t=e.exports='undefined'!=typeof window&&window.Math==Math?window:'undefined'!=typeof self&&self.Math==Math?self:Function('return this')();'number'==typeof __g&&(__g=t)},function(e,t,o){e.exports=!o(11)(function(){return 7!=Object.defineProperty({},'a',{get:function(){return 7}}).a})},function(e,t,o){var n=o(16),r=o(49),a=o(30),s=Object.defineProperty;t.f=o(2)?Object.defineProperty:function(e,t,o){if(n(e),t=a(t,!0),n(o),r)try{return s(e,t,o)}catch(t){}if('get'in o||'set'in o)throw TypeError('Accessors not supported!');return'value'in o&&(e[t]=o.value),e}},function(e){var t={}.hasOwnProperty;e.exports=function(e,o){return t.call(e,o)}},function(e,t,o){var n=o(1),r=o(0),a=o(48),s=o(7),l=o(4),i='prototype',p=function(e,t,o){var d,u,c,g=e&p.F,m=e&p.G,f=e&p.S,y=e&p.P,_=e&p.B,h=e&p.W,x=m?r:r[t]||(r[t]={}),S=x[i],b=m?n:f?n[t]:(n[t]||{})[i];for(d in m&&(o=t),o)u=!g&&b&&void 0!==b[d],u&&l(x,d)||(c=u?b[d]:o[d],x[d]=m&&'function'!=typeof b[d]?o[d]:_&&u?a(c,n):h&&b[d]==c?function(e){var t=function(t,o,n){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,o);}return new e(t,o,n)}return e.apply(this,arguments)};return t[i]=e[i],t}(c):y&&'function'==typeof c?a(Function.call,c):c,y&&((x.virtual||(x.virtual={}))[d]=c,e&p.R&&S&&!S[d]&&s(S,d,c)))};p.F=1,p.G=2,p.S=4,p.P=8,p.B=16,p.W=32,p.U=64,p.R=128,e.exports=p},function(e,t,o){var n=o(63),r='object'==typeof self&&self&&self.Object===Object&&self,a=n||r||Function('return this')();e.exports=a},function(e,t,o){var n=o(3),r=o(23);e.exports=o(2)?function(e,t,o){return n.f(e,t,r(1,o))}:function(e,t,o){return e[t]=o,e}},function(e){e.exports=function(e){return'object'==typeof e?null!==e:'function'==typeof e}},function(e,t,o){var n=o(66),r=o(31);e.exports=function(e){return n(r(e))}},function(e,t,o){var n=o(34)('wks'),r=o(25),a=o(1).Symbol,s='function'==typeof a,l=e.exports=function(e){return n[e]||(n[e]=s&&a[e]||(s?a:r)('Symbol.'+e))};l.store=n},function(e){e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t,o){var n=o(61);e.exports=function(e,t){for(var o=e.length;o--;)if(n(e[o][0],t))return o;return-1}},function(e,t,o){var n=o(21),r=n(Object,'create');e.exports=r},function(e,t,o){var n=o(87);e.exports=function(e,t){var o=e.__data__;return n(t)?o['string'==typeof t?'string':'hash']:o.map}},function(e){var t=Array.isArray;e.exports=t},function(e,t,o){var n=o(8);e.exports=function(e){if(!n(e))throw TypeError(e+' is not an object!');return e}},,function(e,t,o){var n=o(51),r=o(35);e.exports=Object.keys||function(e){return n(e,r)}},function(e,t,o){var n=o(31);e.exports=function(e){return Object(n(e))}},function(e,t,o){var n=o(6),r=n.Symbol;e.exports=r},function(e,t,o){var n=o(72),r=o(78);e.exports=function(e,t){var o=r(e,t);return n(o)?o:void 0}},function(e,t,o){var n=o(26),r=o(43);e.exports=function(e){return'symbol'==typeof e||r(e)&&n(e)=='[object Symbol]'}},function(e){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e){e.exports=!0},function(e){var t=0,o=Math.random();e.exports=function(e){return'Symbol('.concat(e===void 0?'':e,')_',(++t+o).toString(36))}},function(e,t,o){function n(e){return null==e?void 0===e?i:l:p&&p in Object(e)?a(e):s(e)}var r=o(20),a=o(74),s=o(75),l='[object Null]',i='[object Undefined]',p=r?r.toStringTag:void 0;e.exports=n},function(e,t){t.f={}.propertyIsEnumerable},,,function(e,t,o){var n=o(8);e.exports=function(e,t){if(!n(e))return e;var o,r;if(t&&'function'==typeof(o=e.toString)&&!n(r=o.call(e)))return r;if('function'==typeof(o=e.valueOf)&&!n(r=o.call(e)))return r;if(!t&&'function'==typeof(o=e.toString)&&!n(r=o.call(e)))return r;throw TypeError('Can\'t convert object to primitive value')}},function(e){e.exports=function(e){if(e==void 0)throw TypeError('Can\'t call method on '+e);return e}},function(e){var t=Math.ceil,o=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(0<e?o:t)(e)}},function(e,t,o){var n=o(34)('keys'),r=o(25);e.exports=function(e){return n[e]||(n[e]=r(e))}},function(e,t,o){var n=o(0),r=o(1),a='__core-js_shared__',s=r[a]||(r[a]={});(e.exports=function(e,t){return s[e]||(s[e]=t===void 0?{}:t)})('versions',[]).push({version:n.version,mode:o(24)?'pure':'global',copyright:'\xA9 2019 Denis Pushkarev (zloirock.ru)'})},function(e){e.exports=['constructor','hasOwnProperty','isPrototypeOf','propertyIsEnumerable','toLocaleString','toString','valueOf']},,function(e){e.exports={}},function(e,t,o){var n=o(16),r=o(129),a=o(35),s=o(33)('IE_PROTO'),l=function(){},p='prototype',d=function(){var e,t=o(50)('iframe'),n=a.length,r='<',s='>';for(t.style.display='none',o(130).appendChild(t),t.src='javascript:',e=t.contentWindow.document,e.open(),e.write(r+'script'+s+'document.F=Object'+r+'/script'+s),e.close(),d=e.F;n--;)delete d[p][a[n]];return d()};e.exports=Object.create||function(e,t){var o;return null===e?o=d():(l[p]=n(e),o=new l,l[p]=null,o[s]=e),void 0===t?o:r(o,t)}},function(e,t,o){var n=o(3).f,r=o(4),a=o(10)('toStringTag');e.exports=function(e,t,o){e&&!r(e=o?e:e.prototype,a)&&n(e,a,{configurable:!0,value:t})}},function(e,t,o){t.f=o(10)},function(e,t,o){var n=o(1),r=o(0),a=o(24),s=o(40),l=o(3).f;e.exports=function(e){var t=r.Symbol||(r.Symbol=a?{}:n.Symbol||{});'_'==e.charAt(0)||e in t||l(t,e,{value:s.f(e)})}},function(e){e.exports=function(e){var t=typeof e;return null!=e&&('object'==t||'function'==t)}},function(e){e.exports=function(e){return null!=e&&'object'==typeof e}},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,o){function n(e){var t=-1,o=null==e?0:e.length;for(this.clear();++t<o;){var n=e[t];this.set(n[0],n[1])}}var r=o(67),a=o(68),s=o(69),l=o(70),i=o(71);n.prototype.clear=r,n.prototype['delete']=a,n.prototype.get=s,n.prototype.has=l,n.prototype.set=i,e.exports=n},function(e,t,o){var n=o(21),r=o(6),a=n(r,'Map');e.exports=a},function(e,t,o){function n(e){var t=-1,o=null==e?0:e.length;for(this.clear();++t<o;){var n=e[t];this.set(n[0],n[1])}}var r=o(79),a=o(86),s=o(88),l=o(89),i=o(90);n.prototype.clear=r,n.prototype['delete']=a,n.prototype.get=s,n.prototype.has=l,n.prototype.set=i,e.exports=n},function(e,t,o){var n=o(103);e.exports=function(e,t,o){return(n(e),void 0===t)?e:1===o?function(o){return e.call(t,o)}:2===o?function(o,n){return e.call(t,o,n)}:3===o?function(o,n,r){return e.call(t,o,n,r)}:function(){return e.apply(t,arguments)}}},function(e,t,o){e.exports=!o(2)&&!o(11)(function(){return 7!=Object.defineProperty(o(50)('div'),'a',{get:function(){return 7}}).a})},function(e,t,o){var n=o(8),r=o(1).document,a=n(r)&&n(r.createElement);e.exports=function(e){return a?r.createElement(e):{}}},function(e,t,o){var n=o(4),r=o(9),a=o(104)(!1),s=o(33)('IE_PROTO');e.exports=function(e,t){var o,l=r(e),p=0,i=[];for(o in l)o!=s&&n(l,o)&&i.push(o);for(;t.length>p;)n(l,o=t[p++])&&(~a(i,o)||i.push(o));return i}},function(e){var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},,function(e,t,o){var n=o(5),r=o(0),a=o(11);e.exports=function(e,t){var o=(r.Object||{})[e]||Object[e],s={};s[e]=t(o),n(n.S+n.F*a(function(){o(1)}),'Object',s)}},function(e,t,o){var n=o(4),r=o(19),a=o(33)('IE_PROTO'),s=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=r(e),n(e,a)?e[a]:'function'==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?s:null}},function(e,t,o){'use strict';function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var r=o(124),a=n(r),s=o(135),l=n(s),i='function'==typeof l.default&&'symbol'==typeof a.default?function(e){return typeof e}:function(e){return e&&'function'==typeof l.default&&e.constructor===l.default&&e!==l.default.prototype?'symbol':typeof e};t.default='function'==typeof l.default&&'symbol'===i(a.default)?function(e){return'undefined'==typeof e?'undefined':i(e)}:function(e){return e&&'function'==typeof l.default&&e.constructor===l.default&&e!==l.default.prototype?'symbol':'undefined'==typeof e?'undefined':i(e)}},function(e,t,o){'use strict';var n=o(24),r=o(5),a=o(58),s=o(7),l=o(37),i=o(128),p=o(39),d=o(55),u=o(10)('iterator'),c=!([].keys&&'next'in[].keys()),g='keys',m='values',f=function(){return this};e.exports=function(e,t,o,y,_,h,x){i(o,t,y);var S,b,O,P=function(e){return!c&&e in T?T[e]:e===g?function(){return new o(this,e)}:e===m?function(){return new o(this,e)}:function(){return new o(this,e)}},E=t+' Iterator',v=_==m,k=!1,T=e.prototype,C=T[u]||T['@@iterator']||_&&T[_],M=C||P(_),L=_?v?P('entries'):M:void 0,I='Array'==t?T.entries||C:C;if(I&&(O=d(I.call(new e)),O!==Object.prototype&&O.next&&(p(O,E,!0),!n&&'function'!=typeof O[u]&&s(O,u,f))),v&&C&&C.name!==m&&(k=!0,M=function(){return C.call(this)}),(!n||x)&&(c||k||!T[u])&&s(T,u,M),l[t]=M,l[E]=f,_)if(S={values:v?M:P(m),keys:h?M:P(g),entries:L},x)for(b in S)b in T||a(T,b,S[b]);else r(r.P+r.F*(c||k),t,S);return S}},function(e,t,o){e.exports=o(7)},function(e,t,o){var n=o(51),r=o(35).concat('length','prototype');t.f=Object.getOwnPropertyNames||function(e){return n(e,r)}},function(e,t,o){var n=o(27),r=o(23),a=o(9),s=o(30),l=o(4),i=o(49),p=Object.getOwnPropertyDescriptor;t.f=o(2)?p:function(e,t){if(e=a(e),t=s(t,!0),i)try{return p(e,t)}catch(t){}return l(e,t)?r(!n.f.call(e,t),e[t]):void 0}},function(e){e.exports=function(e,t){return e===t||e!==e&&t!==t}},function(e,t,o){var n=o(26),r=o(42);e.exports=function(e){if(!r(e))return!1;var t=n(e);return t=='[object Function]'||t=='[object GeneratorFunction]'||t=='[object AsyncFunction]'||t=='[object Proxy]'}},function(e,t,o){(function(t){var o='object'==typeof t&&t&&t.Object===Object&&t;e.exports=o}).call(t,o(73))},function(e){var t=Function.prototype,o=t.toString;e.exports=function(e){if(null!=e){try{return o.call(e)}catch(t){}try{return e+''}catch(t){}}return''}},function(e,t,o){var n=o(91);e.exports=function(e,t,o){var r=null==e?void 0:n(e,t);return r===void 0?o:r}},function(e,t,o){var n=o(52);e.exports=Object('z').propertyIsEnumerable(0)?Object:function(e){return'String'==n(e)?e.split(''):Object(e)}},function(e){e.exports=function(){this.__data__=[],this.size=0}},function(e,t,o){var n=o(12),r=Array.prototype,a=r.splice;e.exports=function(e){var t=this.__data__,o=n(t,e);if(0>o)return!1;var r=t.length-1;return o==r?t.pop():a.call(t,o,1),--this.size,!0}},function(e,t,o){var n=o(12);e.exports=function(e){var t=this.__data__,o=n(t,e);return 0>o?void 0:t[o][1]}},function(e,t,o){var n=o(12);e.exports=function(e){return-1<n(this.__data__,e)}},function(e,t,o){var n=o(12);e.exports=function(e,t){var o=this.__data__,r=n(o,e);return 0>r?(++this.size,o.push([e,t])):o[r][1]=t,this}},function(e,t,o){var n=o(62),r=o(76),a=o(42),s=o(64),l=/[\\^$.*+?()[\]{}|]/g,i=/^\[object .+?Constructor\]$/,p=Function.prototype,d=Object.prototype,u=p.toString,c=d.hasOwnProperty,g=RegExp('^'+u.call(c).replace(l,'\\$&').replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,'$1.*?')+'$');e.exports=function(e){if(!a(e)||r(e))return!1;var t=n(e)?g:i;return t.test(s(e))}},function(e){var t=function(){return this}();try{t=t||Function('return this')()||(1,eval)('this')}catch(o){'object'==typeof window&&(t=window)}e.exports=t},function(e,t,o){var n=o(20),r=Object.prototype,a=r.hasOwnProperty,s=r.toString,l=n?n.toStringTag:void 0;e.exports=function(e){var t=a.call(e,l),o=e[l];try{e[l]=void 0}catch(t){}var n=s.call(e);return t?e[l]=o:delete e[l],n}},function(e){var t=Object.prototype,o=t.toString;e.exports=function(e){return o.call(e)}},function(e,t,o){function n(e){return!!a&&a in e}var r=o(77),a=function(){var e=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||'');return e?'Symbol(src)_1.'+e:''}();e.exports=n},function(e,t,o){var n=o(6),r=n['__core-js_shared__'];e.exports=r},function(e){e.exports=function(e,t){return null==e?void 0:e[t]}},function(e,t,o){var n=o(80),r=o(45),a=o(46);e.exports=function(){this.size=0,this.__data__={hash:new n,map:new(a||r),string:new n}}},function(e,t,o){function n(e){var t=-1,o=null==e?0:e.length;for(this.clear();++t<o;){var n=e[t];this.set(n[0],n[1])}}var r=o(81),a=o(82),s=o(83),l=o(84),i=o(85);n.prototype.clear=r,n.prototype['delete']=a,n.prototype.get=s,n.prototype.has=l,n.prototype.set=i,e.exports=n},function(e,t,o){var n=o(13);e.exports=function(){this.__data__=n?n(null):{},this.size=0}},function(e){e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},function(e,t,o){var n=o(13),r=Object.prototype,a=r.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(n){var o=t[e];return o==='__lodash_hash_undefined__'?void 0:o}return a.call(t,e)?t[e]:void 0}},function(e,t,o){var n=o(13),r=Object.prototype,a=r.hasOwnProperty;e.exports=function(e){var t=this.__data__;return n?t[e]!==void 0:a.call(t,e)}},function(e,t,o){var n=o(13);e.exports=function(e,t){var o=this.__data__;return this.size+=this.has(e)?0:1,o[e]=n&&void 0===t?'__lodash_hash_undefined__':t,this}},function(e,t,o){var n=o(14);e.exports=function(e){var t=n(this,e)['delete'](e);return this.size-=t?1:0,t}},function(e){e.exports=function(e){var t=typeof e;return'string'==t||'number'==t||'symbol'==t||'boolean'==t?'__proto__'!==e:null===e}},function(e,t,o){var n=o(14);e.exports=function(e){return n(this,e).get(e)}},function(e,t,o){var n=o(14);e.exports=function(e){return n(this,e).has(e)}},function(e,t,o){var n=o(14);e.exports=function(e,t){var o=n(this,e),r=o.size;return o.set(e,t),this.size+=o.size==r?0:1,this}},function(e,t,o){var n=o(92),r=o(100);e.exports=function(e,t){t=n(t,e);for(var o=0,a=t.length;null!=e&&o<a;)e=e[r(t[o++])];return o&&o==a?e:void 0}},function(e,t,o){var n=o(15),r=o(93),a=o(94),s=o(97);e.exports=function(e,t){return n(e)?e:r(e,t)?[e]:a(s(e))}},function(e,t,o){function n(e,t){if(r(e))return!1;var o=typeof e;return!!('number'==o||'symbol'==o||'boolean'==o||null==e||a(e))||l.test(e)||!s.test(e)||null!=t&&e in Object(t)}var r=o(15),a=o(22),s=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,l=/^\w*$/;e.exports=n},function(e,t,o){var n=o(95),r=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g,s=n(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(''),e.replace(r,function(e,o,n,r){t.push(n?r.replace(a,'$1'):o||e)}),t});e.exports=s},function(e,t,o){var n=o(96);e.exports=function(e){var t=n(e,function(e){return o.size===500&&o.clear(),e}),o=t.cache;return t}},function(e,t,o){function n(e,t){if('function'!=typeof e||null!=t&&'function'!=typeof t)throw new TypeError(a);var o=function(){var n=arguments,r=t?t.apply(this,n):n[0],a=o.cache;if(a.has(r))return a.get(r);var s=e.apply(this,n);return o.cache=a.set(r,s)||a,s};return o.cache=new(n.Cache||r),o}var r=o(47),a='Expected a function';n.Cache=r,e.exports=n},function(e,t,o){var n=o(98);e.exports=function(e){return null==e?'':n(e)}},function(e,t,o){function n(e){if('string'==typeof e)return e;if(s(e))return a(e,n)+'';if(l(e))return d?d.call(e):'';var t=e+'';return'0'==t&&1/e==-i?'-0':t}var r=o(20),a=o(99),s=o(15),l=o(22),i=1/0,p=r?r.prototype:void 0,d=p?p.toString:void 0;e.exports=n},function(e){e.exports=function(e,t){for(var o=-1,n=null==e?0:e.length,r=Array(n);++o<n;)r[o]=t(e[o],o,e);return r}},function(e,t,o){var n=o(22);e.exports=function(e){if('string'==typeof e||n(e))return e;var t=e+'';return'0'==t&&1/e==-(1/0)?'-0':t}},function(e,t){'use strict';Object.defineProperty(t,'__esModule',{value:!0});t.hasSites=function(){return OMAPI.site_ids&&0<OMAPI.site_ids.length}},function(e,t,o){e.exports={default:o(113),__esModule:!0}},function(e){e.exports=function(e){if('function'!=typeof e)throw TypeError(e+' is not a function!');return e}},function(e,t,o){var n=o(9),r=o(105),a=o(106);e.exports=function(e){return function(t,o,s){var l,i=n(t),p=r(i.length),d=a(s,p);if(e&&o!=o){for(;p>d;)if(l=i[d++],l!=l)return!0;}else for(;p>d;d++)if((e||d in i)&&i[d]===o)return e||d||0;return!e&&-1}}},function(e,t,o){var n=o(32),r=Math.min;e.exports=function(e){return 0<e?r(n(e),9007199254740991):0}},function(e,t,o){var n=o(32),r=Math.max,a=Math.min;e.exports=function(e,t){return e=n(e),0>e?r(e+t,0):a(e,t)}},,,,,,,function(e,t,o){o(114),e.exports=o(0).Object.keys},function(e,t,o){var n=o(19),r=o(18);o(54)('keys',function(){return function(e){return r(n(e))}})},function(e,t,o){e.exports={default:o(116),__esModule:!0}},function(e,t,o){o(117),e.exports=o(0).Object.getPrototypeOf},function(e,t,o){var n=o(19),r=o(55);o(54)('getPrototypeOf',function(){return function(e){return r(n(e))}})},function(e,t){'use strict';t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError('Cannot call a class as a function')}},function(e,t,o){'use strict';t.__esModule=!0;var n=o(120),r=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(){function e(e,t){for(var o,n=0;n<t.length;n++)o=t[n],o.enumerable=o.enumerable||!1,o.configurable=!0,'value'in o&&(o.writable=!0),(0,r.default)(e,o.key,o)}return function(t,o,n){return o&&e(t.prototype,o),n&&e(t,n),t}}()},function(e,t,o){e.exports={default:o(121),__esModule:!0}},function(e,t,o){o(122);var n=o(0).Object;e.exports=function(e,t,o){return n.defineProperty(e,t,o)}},function(e,t,o){var n=o(5);n(n.S+n.F*!o(2),'Object',{defineProperty:o(3).f})},function(e,t,o){'use strict';t.__esModule=!0;var n=o(56),r=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e,t){if(!e)throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');return t&&('object'===('undefined'==typeof t?'undefined':(0,r.default)(t))||'function'==typeof t)?t:e}},function(e,t,o){e.exports={default:o(125),__esModule:!0}},function(e,t,o){o(126),o(131),e.exports=o(40).f('iterator')},function(e,t,o){'use strict';var n=o(127)(!0);o(57)(String,'String',function(e){this._t=e+'',this._i=0},function(){var e,t=this._t,o=this._i;return o>=t.length?{value:void 0,done:!0}:(e=n(t,o),this._i+=e.length,{value:e,done:!1})})},function(e,t,o){var n=o(32),r=o(31);e.exports=function(e){return function(t,o){var p,a,d=r(t)+'',s=n(o),i=d.length;return 0>s||s>=i?e?'':void 0:(p=d.charCodeAt(s),55296>p||56319<p||s+1===i||56320>(a=d.charCodeAt(s+1))||57343<a?e?d.charAt(s):p:e?d.slice(s,s+2):(p-55296<<10)+(a-56320)+65536)}}},function(e,t,o){'use strict';var n=o(38),r=o(23),a=o(39),s={};o(7)(s,o(10)('iterator'),function(){return this}),e.exports=function(e,t,o){e.prototype=n(s,{next:r(1,o)}),a(e,t+' Iterator')}},function(e,t,o){var n=o(3),r=o(16),a=o(18);e.exports=o(2)?Object.defineProperties:function(e,t){r(e);for(var o,s=a(t),l=s.length,p=0;l>p;)n.f(e,o=s[p++],t[o]);return e}},function(e,t,o){var n=o(1).document;e.exports=n&&n.documentElement},function(e,t,o){o(132);for(var n=o(1),r=o(7),a=o(37),s=o(10)('toStringTag'),l='CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList'.split(','),p=0;p<l.length;p++){var i=l[p],d=n[i],u=d&&d.prototype;u&&!u[s]&&r(u,s,i),a[i]=a.Array}},function(e,t,o){'use strict';var n=o(133),r=o(134),a=o(37),s=o(9);e.exports=o(57)(Array,'Array',function(e,t){this._t=s(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,o=this._i++;return!e||o>=e.length?(this._t=void 0,r(1)):'keys'==t?r(0,o):'values'==t?r(0,e[o]):r(0,[o,e[o]])},'values'),a.Arguments=a.Array,n('keys'),n('values'),n('entries')},function(e){e.exports=function(){}},function(e){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,o){e.exports={default:o(136),__esModule:!0}},function(e,t,o){o(137),o(142),o(143),o(144),e.exports=o(0).Symbol},function(e,t,o){'use strict';var n=o(1),r=o(4),a=o(2),s=o(5),l=o(58),p=o(138).KEY,i=o(11),d=o(34),u=o(39),c=o(25),g=o(10),m=o(40),f=o(41),y=o(139),_=o(140),h=o(16),x=o(8),S=o(19),b=o(9),O=o(30),P=o(23),E=o(38),v=o(141),T=o(60),C=o(44),M=o(3),L=o(18),I=T.f,A=M.f,R=v.f,w=n.Symbol,D=n.JSON,N=D&&D.stringify,$='prototype',F=g('_hidden'),Y=g('toPrimitive'),z={}.propertyIsEnumerable,H=d('symbol-registry'),G=d('symbols'),U=d('op-symbols'),V=Object[$],B='function'==typeof w&&!!C.f,W=n.QObject,K=!W||!W[$]||!W[$].findChild,J=a&&i(function(){return 7!=E(A({},'a',{get:function(){return A(this,'a',{value:7}).a}})).a})?function(e,t,o){var n=I(V,t);n&&delete V[t],A(e,t,o),n&&e!==V&&A(V,t,n)}:A,Q=function(e){var t=G[e]=E(w[$]);return t._k=e,t},q=B&&'symbol'==typeof w.iterator?function(e){return'symbol'==typeof e}:function(e){return e instanceof w},X=function(e,t,o){return e===V&&X(U,t,o),h(e),t=O(t,!0),h(o),r(G,t)?(o.enumerable?(r(e,F)&&e[F][t]&&(e[F][t]=!1),o=E(o,{enumerable:P(0,!1)})):(!r(e,F)&&A(e,F,P(1,{})),e[F][t]=!0),J(e,t,o)):A(e,t,o)},Z=function(e,t){h(e);for(var o,n=y(t=b(t)),r=0,a=n.length;a>r;)X(e,o=n[r++],t[o]);return e},ee=function(e){var t=z.call(this,e=O(e,!0));return(this!==V||!r(G,e)||r(U,e))&&(!(t||!r(this,e)||!r(G,e)||r(this,F)&&this[F][e])||t)},te=function(e,t){if(e=b(e),t=O(t,!0),e!==V||!r(G,t)||r(U,t)){var o=I(e,t);return o&&r(G,t)&&!(r(e,F)&&e[F][t])&&(o.enumerable=!0),o}},oe=function(e){for(var t,o=R(b(e)),n=[],a=0;o.length>a;)r(G,t=o[a++])||t==F||t==p||n.push(t);return n},ne=function(e){for(var t,o=e===V,n=R(o?U:b(e)),a=[],s=0;n.length>s;)r(G,t=n[s++])&&(!o||r(V,t))&&a.push(G[t]);return a};B||(w=function(){if(this instanceof w)throw TypeError('Symbol is not a constructor!');var e=c(0<arguments.length?arguments[0]:void 0),t=function(o){this===V&&t.call(U,o),r(this,F)&&r(this[F],e)&&(this[F][e]=!1),J(this,e,P(1,o))};return a&&K&&J(V,e,{configurable:!0,set:t}),Q(e)},l(w[$],'toString',function(){return this._k}),T.f=te,M.f=X,o(59).f=v.f=oe,o(27).f=ee,C.f=ne,a&&!o(24)&&l(V,'propertyIsEnumerable',ee,!0),m.f=function(e){return Q(g(e))}),s(s.G+s.W+s.F*!B,{Symbol:w});for(var re=['hasInstance','isConcatSpreadable','iterator','match','replace','search','species','split','toPrimitive','toStringTag','unscopables'],ae=0;re.length>ae;)g(re[ae++]);for(var j=L(g.store),se=0;j.length>se;)f(j[se++]);s(s.S+s.F*!B,'Symbol',{for:function(e){return r(H,e+='')?H[e]:H[e]=w(e)},keyFor:function(e){if(!q(e))throw TypeError(e+' is not a symbol!');for(var t in H)if(H[t]===e)return t},useSetter:function(){K=!0},useSimple:function(){K=!1}}),s(s.S+s.F*!B,'Object',{create:function(e,t){return t===void 0?E(e):Z(E(e),t)},defineProperty:X,defineProperties:Z,getOwnPropertyDescriptor:te,getOwnPropertyNames:oe,getOwnPropertySymbols:ne});var k=i(function(){C.f(1)});s(s.S+s.F*k,'Object',{getOwnPropertySymbols:function(e){return C.f(S(e))}}),D&&s(s.S+s.F*(!B||i(function(){var e=w();return'[null]'!=N([e])||'{}'!=N({a:e})||'{}'!=N(Object(e))})),'JSON',{stringify:function(e){for(var t,o,n=[e],r=1;arguments.length>r;)n.push(arguments[r++]);if(o=t=n[1],(x(t)||void 0!==e)&&!q(e))return _(t)||(t=function(e,t){if('function'==typeof o&&(t=o.call(this,e,t)),!q(t))return t}),n[1]=t,N.apply(D,n)}}),w[$][Y]||o(7)(w[$],Y,w[$].valueOf),u(w,'Symbol'),u(Math,'Math',!0),u(n.JSON,'JSON',!0)},function(e,t,o){var n=o(25)('meta'),r=o(8),a=o(4),s=o(3).f,l=0,i=Object.isExtensible||function(){return!0},p=!o(11)(function(){return i(Object.preventExtensions({}))}),d=function(e){s(e,n,{value:{i:'O'+ ++l,w:{}}})},u=e.exports={KEY:n,NEED:!1,fastKey:function(e,t){if(!r(e))return'symbol'==typeof e?e:('string'==typeof e?'S':'P')+e;if(!a(e,n)){if(!i(e))return'F';if(!t)return'E';d(e)}return e[n].i},getWeak:function(e,t){if(!a(e,n)){if(!i(e))return!0;if(!t)return!1;d(e)}return e[n].w},onFreeze:function(e){return p&&u.NEED&&i(e)&&!a(e,n)&&d(e),e}}},function(e,t,o){var n=o(18),r=o(44),a=o(27);e.exports=function(e){var t=n(e),o=r.f;if(o)for(var s,l=o(e),p=a.f,d=0;l.length>d;)p.call(e,s=l[d++])&&t.push(s);return t}},function(e,t,o){var n=o(52);e.exports=Array.isArray||function(e){return'Array'==n(e)}},function(e,t,o){var n=o(9),r=o(59).f,a={}.toString,s='object'==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],l=function(e){try{return r(e)}catch(t){return s.slice()}};e.exports.f=function(e){return s&&'[object Window]'==a.call(e)?l(e):r(n(e))}},function(){},function(e,t,o){o(41)('asyncIterator')},function(e,t,o){o(41)('observable')},function(e,t,o){'use strict';function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var r=o(146),a=n(r),s=o(150),l=n(s),i=o(56),p=n(i);t.default=function(e,t){if('function'!=typeof t&&null!==t)throw new TypeError('Super expression must either be null or a function, not '+('undefined'==typeof t?'undefined':(0,p.default)(t)));e.prototype=(0,l.default)(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(a.default?(0,a.default)(e,t):e.__proto__=t)}},function(e,t,o){e.exports={default:o(147),__esModule:!0}},function(e,t,o){o(148),e.exports=o(0).Object.setPrototypeOf},function(e,t,o){var n=o(5);n(n.S,'Object',{setPrototypeOf:o(149).set})},function(e,t,o){var n=o(8),r=o(16),a=function(e,t){if(r(e),!n(t)&&null!==t)throw TypeError(t+': can\'t set as prototype!')};e.exports={set:Object.setPrototypeOf||('__proto__'in{}?function(e,t,n){try{n=o(48)(Function.call,o(60).f(Object.prototype,'__proto__').set,2),n(e,[]),t=!(e instanceof Array)}catch(o){t=!0}return function(e,o){return a(e,o),t?e.__proto__=o:n(e,o),e}}({},!1):void 0),check:a}},function(e,t,o){e.exports={default:o(151),__esModule:!0}},function(e,t,o){o(152);var n=o(0).Object;e.exports=function(e,t){return n.create(e,t)}},function(e,t,o){var n=o(5);n(n.S,'Object',{create:o(38)})},function(e,t,o){'use strict';function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,'__esModule',{value:!0}),t.getCampaign=t.getOptions=void 0;var r=o(102),a=n(r),s=o(65),l=n(s),i=o(101),p=t.getOptions=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null,o=!(2<arguments.length&&void 0!==arguments[2])||arguments[2];if(o&&!(0,i.hasSites)())return[];var n=(0,l.default)(OMAPI,'campaigns.'+e,{});if(1>(0,a.default)(n).length||!OMAPI.omUserId)return[];var r=(0,a.default)(n).map(function(e){var o=(0,l.default)(n,e+'.title','');(0,l.default)(n,e+'.pending')&&(o+=' [Pending]');var r=null!==t&&(0,l.default)(OMAPI,'_usedSlugs.'+e)&&e!==t;return{value:e,label:o,selected:null!==t&&t===e,disabled:r}});return 0<r.length&&r.unshift({value:'',label:OMAPI.i18n.campaign_select}),r},d=t.getCampaign=function(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:'',t='om'+e;return window[t]?window[t]:null}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,o){'use strict';var n=o(235),r=function(e){return e&&e.__esModule?e:{default:e}}(n);window.OMAPI_Elementor=window.OMAPI_Elementor||{},function(e,t,o,n){n.setAsPreview=function(e){e.detail.Campaign.preview=!0},n.triggerLoaded=function(e){var t=e.detail.Campaign.id;r.default.instances.forEach(function(e){e.trigger(e.campaignSlug()===t?'campaignLoaded':'otherCampaignLoaded')})},n.triggerError=function(e){var t=e.detail,o=t.Campaign,n=t.Main,a=t.error,s=n?n.defaults.campaign:o?o.id:'';if(s){var l=r.default.instances.find(function(e){return e.campaignSlug()===s});l&&(a.response&&(a=JSON.parse(a.response).message||JSON.parse(a.response).error),l.trigger('campaignError',a))}},n.triggerRemove=function(e){var t=e.detail.id;r.default.instances.forEach(function(e){e.campaignSlug()!==t&&e.trigger('otherCampaignRemoved',t)})},n.init=function(){t.addEventListener('om.Campaign.init',n.setAsPreview),t.addEventListener('om.Main.init',function(e){var t=e.detail;return n.utils=t._utils}),t.addEventListener('om.WebFonts.init',function(e){var t=e.detail.Campaign;t.Types.isInline()||t.off()}),o(e).on('elementor/frontend/init',function(){elementor.channels.editor.on('elementorOMAPIAddInlineBtnClick',function(){return e.open(OMAPI.templatesUri+'&type=inline')}),elementor.channels.editor.on('elementorOMAPICreateAccount',function(){return e.open(OMAPI.wizardUri)}),elementor.channels.editor.on('elementorOMAPIConnectAccount',function(){return e.open(OMAPI.settingsUri)}),elementorFrontend.hooks.addAction('frontend/element_ready/optinmonster.default',function(e){elementorFrontend.elementsHandler.addHandler(r.default,{$element:e})}),t.addEventListener('om.Campaign.afterShow',n.triggerLoaded),t.addEventListener('om.Main.getCampaigns.error',n.triggerError),t.addEventListener('om.Campaign.show.error',n.triggerError),t.addEventListener('om.Campaign.load.error',n.triggerError),t.addEventListener('om.Plugin.Elementor.Instance.removed',n.triggerRemove)})},n.init()}(window,document,jQuery,window.OMAPI_Elementor)},function(e,t,o){'use strict';function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,'__esModule',{value:!0});var r=o(115),a=n(r),s=o(118),l=n(s),i=o(119),p=n(i),d=o(123),u=n(d),c=o(145),g=n(c),m=o(153),f=[];OMAPI._usedSlugs=OMAPI._usedSlugs||{};var y=function(e){function t(){return(0,l.default)(this,t),(0,u.default)(this,(t.__proto__||(0,a.default)(t)).apply(this,arguments))}return(0,g.default)(t,e),(0,p.default)(t,[{key:'getDefaultSettings',value:function(){return{selectors:{holder:'.om-elementor-editor .om-elementor-holder',select:'.om-elementor-editor select',links:'.om-elementor-editor a'}}}},{key:'getDefaultElements',value:function(){var e=this.getSettings('selectors');return{$holder:this.$element.find(e.holder),$select:this.$element.find(e.select),$links:this.$element.find(e.links)}}},{key:'bindEvents',value:function(){var e=this;t.instances.push(this),this.oldSlug=this.campaignSlug(),this.campaignLoaded=!1,this.on('campaignLoaded',function(){e.campaignLoaded=!0,e.$element.find('.om-elementor-editor .om-errors').hide()}),this.on('otherCampaignLoaded',this.updateSelect.bind(this)),this.on('otherCampaignRemoved',this.updateSelect.bind(this)),this.on('campaignError',this.foundError.bind(this)),this.elements.$select.on('change',this.onSelect.bind(this)),this.elements.$links.on('click',this.onClickLinks.bind(this)),this.initCampaignPreview(),this.maybeTogglePanelSettings()}},{key:'unbindEvents',value:function(){var e=this.getCampaign();e&&(f.push(e),e.off()),this.oldSlug&&(delete OMAPI._usedSlugs[this.oldSlug],window.OMAPI_Elementor.utils.events.trigger(document,'Plugin.Elementor.Instance.removed',{id:this.oldSlug}))}},{key:'foundError',value:function(e){var t=this.campaignSlug();if(!(e.responseURL&&0>e.responseURL.indexOf(t))){var o=e;e.response&&(o=JSON.parse(e.response).message||JSON.parse(e.response).error),e.message&&(o=e.message),this.$element.find('.om-elementor-editor .om-errors').show().find('.om-error-description').html(o)}}},{key:'onClickLinks',value:function(e){e.preventDefault(),window.open(e.target.href)}},{key:'onSelect',value:function(e){e.preventDefault();var t=window.parent.jQuery('#elementor-controls .elementor-control-campaign_id select[data-setting="campaign_id"]');t.val(this.elements.$select.val()).trigger('change')}},{key:'onElementChange',value:function(e,o){var n=o.$el.find('select[data-setting="campaign_id"]');n.length&&(t.$editorSelect=n),this.maybeTogglePanelSettings(),'campaign_id'===e&&this.initCampaignPreview()}},{key:'initCampaignPreview',value:function(){this.initCampaign(),this.updateSelect()}},{key:'initCampaign',value:function(){var e=this.campaignSlug();if(e){this.oldSlug&&delete OMAPI._usedSlugs[this.oldSlug],this.oldSlug=e,OMAPI._usedSlugs[e]=!0,this.elements.$holder.html('<div id="om-'+e+'-holder"></div>');var t=this.getCampaign();if(!t){if(f.length&&(t=f.find(function(t){return e===t.id}),t))return f.splice(f.indexOf(t),1),setTimeout(function(){return t.reset()},200);if(!t){var o={id:'om-'+e+'-js',type:'text/javascript',src:OMAPI.apiUrl,async:!0,"data-user":OMAPI.omUserId,"data-campaign":e};OMAPI.omEnv&&(o['data-env']=OMAPI.omEnv);var n=document.getElementsByTagName('head')[0]||document.documentElement,r=document.createElement('script'),a=void 0;for(a in o)r.setAttribute(a,o[a]);n.appendChild(r)}}}}},{key:'updateSelect',value:function(){this.updateSelectOptions(this.elements.$select)}},{key:'updateSelectOptions',value:function(e){var t=this.campaignSlug(),n=document.createDocumentFragment();e.find('option').remove(),(0,m.getOptions)('inline',t).forEach(function(e){var t=document.createElement('option');t.textContent=e.label,t.value=e.value,e.selected&&(t.selected=!0),e.disabled&&(t.disabled=!0),n.appendChild(t)}),e.append(n)}},{key:'campaignSlug',value:function(){return this.getElementSettings('campaign_id')}},{key:'getCampaign',value:function(){return(0,m.getCampaign)(this.campaignSlug())}},{key:'onEditSettingsChange',value:function(e){'panel'===e&&this.maybeTogglePanelSettings()}},{key:'maybeTogglePanelSettings',value:function(){var e=this;setTimeout(function(){var t=elementor.getPanelView().getCurrentPageView(),o=e.campaignSlug();t.getControlViewByName&&['edit_campaign','followrules','campaign_id'].forEach(function(n){var r=t.getControlModel(n);if(r){var a=t.getControlViewByModel(r);if(a){if('campaign_id'===n){var s=a.$el.find('[data-setting="campaign_id"]');s.length&&e.updateSelectOptions(s)}else a.$el[o?'show':'hide']();if(o&&'edit_campaign'===n){var l=a.$el.find('a');l.length&&l.attr('href',OMAPI.editUrl.replace(/--CAMPAIGN_SLUG--/g,o))}}}})},10)}}]),t}(elementorModules.frontend.handlers.Base);y.$editorSelect=null,y.instances=[],t.default=y}]);
assets/dist/js/global.min.js ADDED
@@ -0,0 +1 @@
 
1
+ (function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={i:d,l:!1,exports:{}};return a[d].call(e.exports,e,e.exports,b),e.l=!0,e.exports}var c={};return b.m=a,b.c=c,b.d=function(a,c,d){b.o(a,c)||Object.defineProperty(a,c,{configurable:!1,enumerable:!0,get:d})},b.n=function(a){var c=a&&a.__esModule?function(){return a['default']}:function(){return a};return b.d(c,'a',c),c},b.o=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)},b.p='',b(b.s=170)})({170:function(){'use strict';window.OMAPI_Global=window.OMAPI_Global||{},function(a,b,c,d){d.updateNotifications=function(){c.ajax({async:!0,url:d.url,headers:{"x-wp-nonce":d.nonce}}).done(function(b){if(!a.omWpApi){var c=b.length,e=d.$.menu.find('.toplevel_page_optin-monster-dashboard .wp-menu-name'),f=e.find('.om-notifications-count'),g=c+'',h='om-notifications-count update-plugins count-'+g;f.length?(f.attr('class',h),f.find('.plugin-count').text(g)):e.html('OptinMonster <span class="'+h+'"><span class="plugin-count">'+g+'</span></span>')}})},d.init=function(){d.$={menu:c(b.getElementById('toplevel_page_optin-monster-dashboard'))},d.upgradeUrl&&d.$.menu.find('.wp-submenu [href="admin.php?page=optin-monster-upgrade"]').attr('target','_blank').attr('rel','noopener').attr('href',d.upgradeUrl),!a.omWpApi&&d.fetchNotifications&&d.updateNotifications()},c(d.init)}(window,document,jQuery,window.OMAPI_Global)}});
assets/dist/js/metabox.min.js ADDED
@@ -0,0 +1 @@
 
1
+ (function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={i:d,l:!1,exports:{}};return a[d].call(e.exports,e,e.exports,b),e.l=!0,e.exports}var c={};return b.m=a,b.c=c,b.d=function(a,c,d){b.o(a,c)||Object.defineProperty(a,c,{configurable:!1,enumerable:!0,get:d})},b.n=function(a){var c=a&&a.__esModule?function(){return a['default']}:function(){return a};return b.d(c,'a',c),c},b.o=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)},b.p='',b(b.s=240)})({240:function(){'use strict';window.OMAPI_WooCommerce_Metaboxes=window.OMAPI_WooCommerce_Metaboxes||{},function(a,b,c){c.cache=function(){c.options=b.querySelectorAll('.omapi-metabox__nav a'),c.slides=b.querySelectorAll('.omapi-metabox__slides-slide')},c.setEventListeners=function(){c.options.forEach(function(a){a.addEventListener('click',function(d){d.preventDefault(),c.removeActiveClass(c.options),a.classList.add('active');var e=a.getAttribute('href');e&&(c.removeActiveClass(c.slides),b.querySelector(e).classList.add('active'))})})},c.removeActiveClass=function(a){a.forEach(function(a){a.classList.remove('active')})},a.addEventListener('DOMContentLoaded',function(){c.hasSlides=b.querySelectorAll('.omapi-metabox.has-slides').length,c.hasSlides&&(c.cache(),c.setEventListeners())})}(window,document,window.OMAPI_WooCommerce_Metaboxes)}});
assets/dist/js/om-format.min.js ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function(e){function t(n){if(o[n])return o[n].exports;var r=o[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var o={};return t.m=e,t.c=o,t.d=function(e,o,n){t.o(e,o)||Object.defineProperty(e,o,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var o=e&&e.__esModule?function(){return e['default']}:function(){return e};return t.d(o,'a',o),o},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p='',t(t.s=227)})([function(e){var t=e.exports={version:'2.6.9'};'number'==typeof __e&&(__e=t)},function(e){var t=e.exports='undefined'!=typeof window&&window.Math==Math?window:'undefined'!=typeof self&&self.Math==Math?self:Function('return this')();'number'==typeof __g&&(__g=t)},function(e,t,o){e.exports=!o(11)(function(){return 7!=Object.defineProperty({},'a',{get:function(){return 7}}).a})},function(e,t,o){var n=o(16),r=o(49),a=o(30),s=Object.defineProperty;t.f=o(2)?Object.defineProperty:function(e,t,o){if(n(e),t=a(t,!0),n(o),r)try{return s(e,t,o)}catch(t){}if('get'in o||'set'in o)throw TypeError('Accessors not supported!');return'value'in o&&(e[t]=o.value),e}},function(e){var t={}.hasOwnProperty;e.exports=function(e,o){return t.call(e,o)}},function(e,t,o){var n=o(1),r=o(0),a=o(48),s=o(7),p=o(4),i='prototype',l=function(e,t,o){var c,d,u,f=e&l.F,y=e&l.G,m=e&l.S,g=e&l.P,h=e&l.B,_=e&l.W,x=y?r:r[t]||(r[t]={}),b=x[i],O=y?n:m?n[t]:(n[t]||{})[i];for(c in y&&(o=t),o)d=!f&&O&&void 0!==O[c],d&&p(x,c)||(u=d?O[c]:o[c],x[c]=y&&'function'!=typeof O[c]?o[c]:h&&d?a(u,n):_&&O[c]==u?function(e){var t=function(t,o,n){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,o);}return new e(t,o,n)}return e.apply(this,arguments)};return t[i]=e[i],t}(u):g&&'function'==typeof u?a(Function.call,u):u,g&&((x.virtual||(x.virtual={}))[c]=u,e&l.R&&b&&!b[c]&&s(b,c,u)))};l.F=1,l.G=2,l.S=4,l.P=8,l.B=16,l.W=32,l.U=64,l.R=128,e.exports=l},function(e,t,o){var n=o(63),r='object'==typeof self&&self&&self.Object===Object&&self,a=n||r||Function('return this')();e.exports=a},function(e,t,o){var n=o(3),r=o(23);e.exports=o(2)?function(e,t,o){return n.f(e,t,r(1,o))}:function(e,t,o){return e[t]=o,e}},function(e){e.exports=function(e){return'object'==typeof e?null!==e:'function'==typeof e}},function(e,t,o){var n=o(66),r=o(31);e.exports=function(e){return n(r(e))}},function(e,t,o){var n=o(34)('wks'),r=o(25),a=o(1).Symbol,s='function'==typeof a,p=e.exports=function(e){return n[e]||(n[e]=s&&a[e]||(s?a:r)('Symbol.'+e))};p.store=n},function(e){e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t,o){var n=o(61);e.exports=function(e,t){for(var o=e.length;o--;)if(n(e[o][0],t))return o;return-1}},function(e,t,o){var n=o(21),r=n(Object,'create');e.exports=r},function(e,t,o){var n=o(87);e.exports=function(e,t){var o=e.__data__;return n(t)?o['string'==typeof t?'string':'hash']:o.map}},function(e){var t=Array.isArray;e.exports=t},function(e,t,o){var n=o(8);e.exports=function(e){if(!n(e))throw TypeError(e+' is not an object!');return e}},function(e){function t(){throw new Error('setTimeout has not been defined')}function o(){throw new Error('clearTimeout has not been defined')}function n(e){if(l===setTimeout)return setTimeout(e,0);if((l===t||!l)&&setTimeout)return l=setTimeout,setTimeout(e,0);try{return l(e,0)}catch(t){try{return l.call(null,e,0)}catch(t){return l.call(this,e,0)}}}function r(e){if(c===clearTimeout)return clearTimeout(e);if((c===o||!c)&&clearTimeout)return c=clearTimeout,clearTimeout(e);try{return c(e)}catch(t){try{return c.call(null,e)}catch(t){return c.call(this,e)}}}function a(){y&&u&&(y=!1,u.length?f=u.concat(f):m=-1,f.length&&s())}function s(){if(!y){var e=n(a);y=!0;for(var t=f.length;t;){for(u=f,f=[];++m<t;)u&&u[m].run();m=-1,t=f.length}u=null,y=!1,r(e)}}function p(e,t){this.fun=e,this.array=t}function i(){}var l,c,d=e.exports={};(function(){try{l='function'==typeof setTimeout?setTimeout:t}catch(o){l=t}try{c='function'==typeof clearTimeout?clearTimeout:o}catch(t){c=o}})();var u,f=[],y=!1,m=-1;d.nextTick=function(e){var t=Array(arguments.length-1);if(1<arguments.length)for(var o=1;o<arguments.length;o++)t[o-1]=arguments[o];f.push(new p(e,t)),1!==f.length||y||n(s)},p.prototype.run=function(){this.fun.apply(null,this.array)},d.title='browser',d.browser=!0,d.env={},d.argv=[],d.version='',d.versions={},d.on=i,d.addListener=i,d.once=i,d.off=i,d.removeListener=i,d.removeAllListeners=i,d.emit=i,d.prependListener=i,d.prependOnceListener=i,d.listeners=function(){return[]},d.binding=function(){throw new Error('process.binding is not supported')},d.cwd=function(){return'/'},d.chdir=function(){throw new Error('process.chdir is not supported')},d.umask=function(){return 0}},function(e,t,o){var n=o(51),r=o(35);e.exports=Object.keys||function(e){return n(e,r)}},function(e,t,o){var n=o(31);e.exports=function(e){return Object(n(e))}},function(e,t,o){var n=o(6),r=n.Symbol;e.exports=r},function(e,t,o){var n=o(72),r=o(78);e.exports=function(e,t){var o=r(e,t);return n(o)?o:void 0}},function(e,t,o){var n=o(26),r=o(43);e.exports=function(e){return'symbol'==typeof e||r(e)&&n(e)=='[object Symbol]'}},function(e){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e){e.exports=!0},function(e){var t=0,o=Math.random();e.exports=function(e){return'Symbol('.concat(e===void 0?'':e,')_',(++t+o).toString(36))}},function(e,t,o){function n(e){return null==e?void 0===e?i:p:l&&l in Object(e)?a(e):s(e)}var r=o(20),a=o(74),s=o(75),p='[object Null]',i='[object Undefined]',l=r?r.toStringTag:void 0;e.exports=n},function(e,t){t.f={}.propertyIsEnumerable},function(e){e.exports=React},function(e,t,o){(function(t){if('production'!==t.env.NODE_ENV){var n=o(53);e.exports=o(109)(n.isElement,!0)}else e.exports=o(112)()}).call(t,o(17))},function(e,t,o){var n=o(8);e.exports=function(e,t){if(!n(e))return e;var o,r;if(t&&'function'==typeof(o=e.toString)&&!n(r=o.call(e)))return r;if('function'==typeof(o=e.valueOf)&&!n(r=o.call(e)))return r;if(!t&&'function'==typeof(o=e.toString)&&!n(r=o.call(e)))return r;throw TypeError('Can\'t convert object to primitive value')}},function(e){e.exports=function(e){if(e==void 0)throw TypeError('Can\'t call method on '+e);return e}},function(e){var t=Math.ceil,o=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(0<e?o:t)(e)}},function(e,t,o){var n=o(34)('keys'),r=o(25);e.exports=function(e){return n[e]||(n[e]=r(e))}},function(e,t,o){var n=o(0),r=o(1),a='__core-js_shared__',s=r[a]||(r[a]={});(e.exports=function(e,t){return s[e]||(s[e]=t===void 0?{}:t)})('versions',[]).push({version:n.version,mode:o(24)?'pure':'global',copyright:'\xA9 2019 Denis Pushkarev (zloirock.ru)'})},function(e){e.exports=['constructor','hasOwnProperty','isPrototypeOf','propertyIsEnumerable','toLocaleString','toString','valueOf']},function(e){'use strict';e.exports='SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'},function(e){e.exports={}},function(e,t,o){var n=o(16),r=o(129),a=o(35),s=o(33)('IE_PROTO'),p=function(){},l='prototype',c=function(){var e,t=o(50)('iframe'),n=a.length,r='<',s='>';for(t.style.display='none',o(130).appendChild(t),t.src='javascript:',e=t.contentWindow.document,e.open(),e.write(r+'script'+s+'document.F=Object'+r+'/script'+s),e.close(),c=e.F;n--;)delete c[l][a[n]];return c()};e.exports=Object.create||function(e,t){var o;return null===e?o=c():(p[l]=n(e),o=new p,p[l]=null,o[s]=e),void 0===t?o:r(o,t)}},function(e,t,o){var n=o(3).f,r=o(4),a=o(10)('toStringTag');e.exports=function(e,t,o){e&&!r(e=o?e:e.prototype,a)&&n(e,a,{configurable:!0,value:t})}},function(e,t,o){t.f=o(10)},function(e,t,o){var n=o(1),r=o(0),a=o(24),s=o(40),p=o(3).f;e.exports=function(e){var t=r.Symbol||(r.Symbol=a?{}:n.Symbol||{});'_'==e.charAt(0)||e in t||p(t,e,{value:s.f(e)})}},function(e){e.exports=function(e){var t=typeof e;return null!=e&&('object'==t||'function'==t)}},function(e){e.exports=function(e){return null!=e&&'object'==typeof e}},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,o){function n(e){var t=-1,o=null==e?0:e.length;for(this.clear();++t<o;){var n=e[t];this.set(n[0],n[1])}}var r=o(67),a=o(68),s=o(69),p=o(70),i=o(71);n.prototype.clear=r,n.prototype['delete']=a,n.prototype.get=s,n.prototype.has=p,n.prototype.set=i,e.exports=n},function(e,t,o){var n=o(21),r=o(6),a=n(r,'Map');e.exports=a},function(e,t,o){function n(e){var t=-1,o=null==e?0:e.length;for(this.clear();++t<o;){var n=e[t];this.set(n[0],n[1])}}var r=o(79),a=o(86),s=o(88),p=o(89),i=o(90);n.prototype.clear=r,n.prototype['delete']=a,n.prototype.get=s,n.prototype.has=p,n.prototype.set=i,e.exports=n},function(e,t,o){var n=o(103);e.exports=function(e,t,o){return(n(e),void 0===t)?e:1===o?function(o){return e.call(t,o)}:2===o?function(o,n){return e.call(t,o,n)}:3===o?function(o,n,r){return e.call(t,o,n,r)}:function(){return e.apply(t,arguments)}}},function(e,t,o){e.exports=!o(2)&&!o(11)(function(){return 7!=Object.defineProperty(o(50)('div'),'a',{get:function(){return 7}}).a})},function(e,t,o){var n=o(8),r=o(1).document,a=n(r)&&n(r.createElement);e.exports=function(e){return a?r.createElement(e):{}}},function(e,t,o){var n=o(4),r=o(9),a=o(104)(!1),s=o(33)('IE_PROTO');e.exports=function(e,t){var o,p=r(e),l=0,i=[];for(o in p)o!=s&&n(p,o)&&i.push(o);for(;t.length>l;)n(p,o=t[l++])&&(~a(i,o)||i.push(o));return i}},function(e){var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},function(e,t,o){'use strict';(function(t){e.exports='production'===t.env.NODE_ENV?o(107):o(108)}).call(t,o(17))},function(e,t,o){var n=o(5),r=o(0),a=o(11);e.exports=function(e,t){var o=(r.Object||{})[e]||Object[e],s={};s[e]=t(o),n(n.S+n.F*a(function(){o(1)}),'Object',s)}},function(e,t,o){var n=o(4),r=o(19),a=o(33)('IE_PROTO'),s=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=r(e),n(e,a)?e[a]:'function'==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?s:null}},function(e,t,o){'use strict';function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var r=o(124),a=n(r),s=o(135),p=n(s),i='function'==typeof p.default&&'symbol'==typeof a.default?function(e){return typeof e}:function(e){return e&&'function'==typeof p.default&&e.constructor===p.default&&e!==p.default.prototype?'symbol':typeof e};t.default='function'==typeof p.default&&'symbol'===i(a.default)?function(e){return'undefined'==typeof e?'undefined':i(e)}:function(e){return e&&'function'==typeof p.default&&e.constructor===p.default&&e!==p.default.prototype?'symbol':'undefined'==typeof e?'undefined':i(e)}},function(e,t,o){'use strict';var n=o(24),r=o(5),a=o(58),s=o(7),p=o(37),i=o(128),l=o(39),c=o(55),d=o(10)('iterator'),u=!([].keys&&'next'in[].keys()),f='keys',y='values',m=function(){return this};e.exports=function(e,t,o,g,h,_,x){i(o,t,g);var b,O,P,v=function(e){return!u&&e in k?k[e]:e===f?function(){return new o(this,e)}:e===y?function(){return new o(this,e)}:function(){return new o(this,e)}},E=t+' Iterator',T=h==y,S=!1,k=e.prototype,M=k[d]||k['@@iterator']||h&&k[h],N=M||v(h),R=h?T?v('entries'):N:void 0,A='Array'==t?k.entries||M:M;if(A&&(P=c(A.call(new e)),P!==Object.prototype&&P.next&&(l(P,E,!0),!n&&'function'!=typeof P[d]&&s(P,d,m))),T&&M&&M.name!==y&&(S=!0,N=function(){return M.call(this)}),(!n||x)&&(u||S||!k[d])&&s(k,d,N),p[t]=N,p[E]=m,h)if(b={values:T?N:v(y),keys:_?N:v(f),entries:R},x)for(O in b)O in k||a(k,O,b[O]);else r(r.P+r.F*(u||S),t,b);return b}},function(e,t,o){e.exports=o(7)},function(e,t,o){var n=o(51),r=o(35).concat('length','prototype');t.f=Object.getOwnPropertyNames||function(e){return n(e,r)}},function(e,t,o){var n=o(27),r=o(23),a=o(9),s=o(30),p=o(4),i=o(49),l=Object.getOwnPropertyDescriptor;t.f=o(2)?l:function(e,t){if(e=a(e),t=s(t,!0),i)try{return l(e,t)}catch(t){}return p(e,t)?r(!n.f.call(e,t),e[t]):void 0}},function(e){e.exports=function(e,t){return e===t||e!==e&&t!==t}},function(e,t,o){var n=o(26),r=o(42);e.exports=function(e){if(!r(e))return!1;var t=n(e);return t=='[object Function]'||t=='[object GeneratorFunction]'||t=='[object AsyncFunction]'||t=='[object Proxy]'}},function(e,t,o){(function(t){var o='object'==typeof t&&t&&t.Object===Object&&t;e.exports=o}).call(t,o(73))},function(e){var t=Function.prototype,o=t.toString;e.exports=function(e){if(null!=e){try{return o.call(e)}catch(t){}try{return e+''}catch(t){}}return''}},function(e,t,o){var n=o(91);e.exports=function(e,t,o){var r=null==e?void 0:n(e,t);return r===void 0?o:r}},function(e,t,o){var n=o(52);e.exports=Object('z').propertyIsEnumerable(0)?Object:function(e){return'String'==n(e)?e.split(''):Object(e)}},function(e){e.exports=function(){this.__data__=[],this.size=0}},function(e,t,o){var n=o(12),r=Array.prototype,a=r.splice;e.exports=function(e){var t=this.__data__,o=n(t,e);if(0>o)return!1;var r=t.length-1;return o==r?t.pop():a.call(t,o,1),--this.size,!0}},function(e,t,o){var n=o(12);e.exports=function(e){var t=this.__data__,o=n(t,e);return 0>o?void 0:t[o][1]}},function(e,t,o){var n=o(12);e.exports=function(e){return-1<n(this.__data__,e)}},function(e,t,o){var n=o(12);e.exports=function(e,t){var o=this.__data__,r=n(o,e);return 0>r?(++this.size,o.push([e,t])):o[r][1]=t,this}},function(e,t,o){var n=o(62),r=o(76),a=o(42),s=o(64),p=/[\\^$.*+?()[\]{}|]/g,i=/^\[object .+?Constructor\]$/,l=Function.prototype,c=Object.prototype,d=l.toString,u=c.hasOwnProperty,f=RegExp('^'+d.call(u).replace(p,'\\$&').replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,'$1.*?')+'$');e.exports=function(e){if(!a(e)||r(e))return!1;var t=n(e)?f:i;return t.test(s(e))}},function(e){var t=function(){return this}();try{t=t||Function('return this')()||(1,eval)('this')}catch(o){'object'==typeof window&&(t=window)}e.exports=t},function(e,t,o){var n=o(20),r=Object.prototype,a=r.hasOwnProperty,s=r.toString,p=n?n.toStringTag:void 0;e.exports=function(e){var t=a.call(e,p),o=e[p];try{e[p]=void 0}catch(t){}var n=s.call(e);return t?e[p]=o:delete e[p],n}},function(e){var t=Object.prototype,o=t.toString;e.exports=function(e){return o.call(e)}},function(e,t,o){function n(e){return!!a&&a in e}var r=o(77),a=function(){var e=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||'');return e?'Symbol(src)_1.'+e:''}();e.exports=n},function(e,t,o){var n=o(6),r=n['__core-js_shared__'];e.exports=r},function(e){e.exports=function(e,t){return null==e?void 0:e[t]}},function(e,t,o){var n=o(80),r=o(45),a=o(46);e.exports=function(){this.size=0,this.__data__={hash:new n,map:new(a||r),string:new n}}},function(e,t,o){function n(e){var t=-1,o=null==e?0:e.length;for(this.clear();++t<o;){var n=e[t];this.set(n[0],n[1])}}var r=o(81),a=o(82),s=o(83),p=o(84),i=o(85);n.prototype.clear=r,n.prototype['delete']=a,n.prototype.get=s,n.prototype.has=p,n.prototype.set=i,e.exports=n},function(e,t,o){var n=o(13);e.exports=function(){this.__data__=n?n(null):{},this.size=0}},function(e){e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},function(e,t,o){var n=o(13),r=Object.prototype,a=r.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(n){var o=t[e];return o==='__lodash_hash_undefined__'?void 0:o}return a.call(t,e)?t[e]:void 0}},function(e,t,o){var n=o(13),r=Object.prototype,a=r.hasOwnProperty;e.exports=function(e){var t=this.__data__;return n?t[e]!==void 0:a.call(t,e)}},function(e,t,o){var n=o(13);e.exports=function(e,t){var o=this.__data__;return this.size+=this.has(e)?0:1,o[e]=n&&void 0===t?'__lodash_hash_undefined__':t,this}},function(e,t,o){var n=o(14);e.exports=function(e){var t=n(this,e)['delete'](e);return this.size-=t?1:0,t}},function(e){e.exports=function(e){var t=typeof e;return'string'==t||'number'==t||'symbol'==t||'boolean'==t?'__proto__'!==e:null===e}},function(e,t,o){var n=o(14);e.exports=function(e){return n(this,e).get(e)}},function(e,t,o){var n=o(14);e.exports=function(e){return n(this,e).has(e)}},function(e,t,o){var n=o(14);e.exports=function(e,t){var o=n(this,e),r=o.size;return o.set(e,t),this.size+=o.size==r?0:1,this}},function(e,t,o){var n=o(92),r=o(100);e.exports=function(e,t){t=n(t,e);for(var o=0,a=t.length;null!=e&&o<a;)e=e[r(t[o++])];return o&&o==a?e:void 0}},function(e,t,o){var n=o(15),r=o(93),a=o(94),s=o(97);e.exports=function(e,t){return n(e)?e:r(e,t)?[e]:a(s(e))}},function(e,t,o){function n(e,t){if(r(e))return!1;var o=typeof e;return!!('number'==o||'symbol'==o||'boolean'==o||null==e||a(e))||p.test(e)||!s.test(e)||null!=t&&e in Object(t)}var r=o(15),a=o(22),s=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,p=/^\w*$/;e.exports=n},function(e,t,o){var n=o(95),r=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g,s=n(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(''),e.replace(r,function(e,o,n,r){t.push(n?r.replace(a,'$1'):o||e)}),t});e.exports=s},function(e,t,o){var n=o(96);e.exports=function(e){var t=n(e,function(e){return o.size===500&&o.clear(),e}),o=t.cache;return t}},function(e,t,o){function n(e,t){if('function'!=typeof e||null!=t&&'function'!=typeof t)throw new TypeError(a);var o=function(){var n=arguments,r=t?t.apply(this,n):n[0],a=o.cache;if(a.has(r))return a.get(r);var s=e.apply(this,n);return o.cache=a.set(r,s)||a,s};return o.cache=new(n.Cache||r),o}var r=o(47),a='Expected a function';n.Cache=r,e.exports=n},function(e,t,o){var n=o(98);e.exports=function(e){return null==e?'':n(e)}},function(e,t,o){function n(e){if('string'==typeof e)return e;if(s(e))return a(e,n)+'';if(p(e))return c?c.call(e):'';var t=e+'';return'0'==t&&1/e==-i?'-0':t}var r=o(20),a=o(99),s=o(15),p=o(22),i=1/0,l=r?r.prototype:void 0,c=l?l.toString:void 0;e.exports=n},function(e){e.exports=function(e,t){for(var o=-1,n=null==e?0:e.length,r=Array(n);++o<n;)r[o]=t(e[o],o,e);return r}},function(e,t,o){var n=o(22);e.exports=function(e){if('string'==typeof e||n(e))return e;var t=e+'';return'0'==t&&1/e==-(1/0)?'-0':t}},function(e,t){'use strict';Object.defineProperty(t,'__esModule',{value:!0});t.hasSites=function(){return OMAPI.site_ids&&0<OMAPI.site_ids.length}},function(e,t,o){e.exports={default:o(113),__esModule:!0}},function(e){e.exports=function(e){if('function'!=typeof e)throw TypeError(e+' is not a function!');return e}},function(e,t,o){var n=o(9),r=o(105),a=o(106);e.exports=function(e){return function(t,o,s){var p,i=n(t),l=r(i.length),c=a(s,l);if(e&&o!=o){for(;l>c;)if(p=i[c++],p!=p)return!0;}else for(;l>c;c++)if((e||c in i)&&i[c]===o)return e||c||0;return!e&&-1}}},function(e,t,o){var n=o(32),r=Math.min;e.exports=function(e){return 0<e?r(n(e),9007199254740991):0}},function(e,t,o){var n=o(32),r=Math.max,a=Math.min;e.exports=function(e,t){return e=n(e),0>e?r(e+t,0):a(e,t)}},function(o,a){'use strict';/** @license React v16.13.1
2
+ * react-is.production.min.js
3
+ *
4
+ * Copyright (c) Facebook, Inc. and its affiliates.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */function s(t){if('object'==typeof t&&null!==t){var o=t.$$typeof;switch(o){case _:switch(t=t.type,t){case b:case l:case d:case f:case e:case n:return t;default:switch(t=t&&t.$$typeof,t){case h:case m:case r:case O:case g:return t;default:return o;}}case c:return o;}}}function i(e){return s(e)===l}var u='function'==typeof Symbol&&Symbol.for,_=u?Symbol.for('react.element'):60103,c=u?Symbol.for('react.portal'):60106,d=u?Symbol.for('react.fragment'):60107,e=u?Symbol.for('react.strict_mode'):60108,f=u?Symbol.for('react.profiler'):60114,g=u?Symbol.for('react.provider'):60109,h=u?Symbol.for('react.context'):60110,b=u?Symbol.for('react.async_mode'):60111,l=u?Symbol.for('react.concurrent_mode'):60111,m=u?Symbol.for('react.forward_ref'):60112,n=u?Symbol.for('react.suspense'):60113,p=u?Symbol.for('react.suspense_list'):60120,O=u?Symbol.for('react.memo'):60115,r=u?Symbol.for('react.lazy'):60116,t=u?Symbol.for('react.block'):60121,P=u?Symbol.for('react.fundamental'):60117,v=u?Symbol.for('react.responder'):60118,x=u?Symbol.for('react.scope'):60119;a.AsyncMode=b,a.ConcurrentMode=l,a.ContextConsumer=h,a.ContextProvider=g,a.Element=_,a.ForwardRef=m,a.Fragment=d,a.Lazy=r,a.Memo=O,a.Portal=c,a.Profiler=f,a.StrictMode=e,a.Suspense=n,a.isAsyncMode=function(e){return i(e)||s(e)===b},a.isConcurrentMode=i,a.isContextConsumer=function(e){return s(e)===h},a.isContextProvider=function(e){return s(e)===g},a.isElement=function(e){return'object'==typeof e&&null!==e&&e.$$typeof===_},a.isForwardRef=function(e){return s(e)===m},a.isFragment=function(e){return s(e)===d},a.isLazy=function(e){return s(e)===r},a.isMemo=function(e){return s(e)===O},a.isPortal=function(e){return s(e)===c},a.isProfiler=function(e){return s(e)===f},a.isStrictMode=function(t){return s(t)===e},a.isSuspense=function(e){return s(e)===n},a.isValidElementType=function(o){return'string'==typeof o||'function'==typeof o||o===d||o===l||o===f||o===e||o===n||o===p||'object'==typeof o&&null!==o&&(o.$$typeof===r||o.$$typeof===O||o.$$typeof===g||o.$$typeof===h||o.$$typeof===m||o.$$typeof===P||o.$$typeof===v||o.$$typeof===x||o.$$typeof===t)},a.typeOf=s},function(e,t,o){'use strict';(function(e){'production'!==e.env.NODE_ENV&&function(){function e(e){if('object'==typeof e&&null!==e){var t=e.$$typeof;switch(t){case a:var o=e.type;switch(o){case u:case f:case p:case l:case i:case m:return o;default:var n=o&&o.$$typeof;return n===d||n===y||n===_||n===h||n===c?n:t;}case s:return t;}}}function o(t){return v||(v=!0,console.warn('The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.')),n(t)||e(t)===u}function n(t){return e(t)===f}var r='function'==typeof Symbol&&Symbol.for,a=r?Symbol.for('react.element'):60103,s=r?Symbol.for('react.portal'):60106,p=r?Symbol.for('react.fragment'):60107,i=r?Symbol.for('react.strict_mode'):60108,l=r?Symbol.for('react.profiler'):60114,c=r?Symbol.for('react.provider'):60109,d=r?Symbol.for('react.context'):60110,u=r?Symbol.for('react.async_mode'):60111,f=r?Symbol.for('react.concurrent_mode'):60111,y=r?Symbol.for('react.forward_ref'):60112,m=r?Symbol.for('react.suspense'):60113,g=r?Symbol.for('react.suspense_list'):60120,h=r?Symbol.for('react.memo'):60115,_=r?Symbol.for('react.lazy'):60116,x=r?Symbol.for('react.block'):60121,b=r?Symbol.for('react.fundamental'):60117,O=r?Symbol.for('react.responder'):60118,P=r?Symbol.for('react.scope'):60119,v=!1;t.AsyncMode=u,t.ConcurrentMode=f,t.ContextConsumer=d,t.ContextProvider=c,t.Element=a,t.ForwardRef=y,t.Fragment=p,t.Lazy=_,t.Memo=h,t.Portal=s,t.Profiler=l,t.StrictMode=i,t.Suspense=m,t.isAsyncMode=o,t.isConcurrentMode=n,t.isContextConsumer=function(t){return e(t)===d},t.isContextProvider=function(t){return e(t)===c},t.isElement=function(e){return'object'==typeof e&&null!==e&&e.$$typeof===a},t.isForwardRef=function(t){return e(t)===y},t.isFragment=function(t){return e(t)===p},t.isLazy=function(t){return e(t)===_},t.isMemo=function(t){return e(t)===h},t.isPortal=function(t){return e(t)===s},t.isProfiler=function(t){return e(t)===l},t.isStrictMode=function(t){return e(t)===i},t.isSuspense=function(t){return e(t)===m},t.isValidElementType=function(e){return'string'==typeof e||'function'==typeof e||e===p||e===f||e===l||e===i||e===m||e===g||'object'==typeof e&&null!==e&&(e.$$typeof===_||e.$$typeof===h||e.$$typeof===c||e.$$typeof===d||e.$$typeof===y||e.$$typeof===b||e.$$typeof===O||e.$$typeof===P||e.$$typeof===x)},t.typeOf=e}()}).call(t,o(17))},function(e,t,o){'use strict';(function(t){function n(){return null}var r=o(53),a=o(110),s=o(36),p=o(111),i=Function.call.bind(Object.prototype.hasOwnProperty),l=function(){};'production'!==t.env.NODE_ENV&&(l=function(e){var t='Warning: '+e;'undefined'!=typeof console&&console.error(t);try{throw new Error(t)}catch(e){}}),e.exports=function(e,o){function c(e){var t=e&&(v&&e[v]||e[E]);if('function'==typeof t)return t}function d(e,t){return e===t?0!==e||1/e==1/t:e!==e&&t!==t}function u(e){this.message=e,this.stack=''}function f(e){function n(n,p,i,c,d,f,y){if(c=c||T,f=f||i,y!==s)if(o){var m=new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types');throw m.name='Invariant Violation',m}else if('production'!==t.env.NODE_ENV&&'undefined'!=typeof console){var g=c+':'+i;!r[g]&&3>a&&(l('You are manually calling a React.PropTypes validation function for the `'+f+'` prop on `'+c+'`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.'),r[g]=!0,a++)}return null==p[i]?n?null===p[i]?new u('The '+d+' `'+f+'` is marked as required '+('in `'+c+'`, but its value is `null`.')):new u('The '+d+' `'+f+'` is marked as required in '+('`'+c+'`, but its value is `undefined`.')):null:e(p,i,c,d,f)}if('production'!==t.env.NODE_ENV)var r={},a=0;var p=n.bind(null,!1);return p.isRequired=n.bind(null,!0),p}function y(e){return f(function(t,o,n,r,a){var s=t[o],p=x(s);if(p!==e){var i=b(s);return new u('Invalid '+r+' `'+a+'` of type '+('`'+i+'` supplied to `'+n+'`, expected ')+('`'+e+'`.'))}return null})}function m(e){return Array.isArray(e)?f(function(t,o,n,r,a){for(var s=t[o],p=0;p<e.length;p++)if(d(s,e[p]))return null;var i=JSON.stringify(e,function(e,t){var o=b(t);return'symbol'===o?t+'':t});return new u('Invalid '+r+' `'+a+'` of value `'+(s+'` ')+('supplied to `'+n+'`, expected one of '+i+'.'))}):('production'!==t.env.NODE_ENV&&(1<arguments.length?l('Invalid arguments supplied to oneOf, expected an array, got '+arguments.length+' arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'):l('Invalid argument supplied to oneOf, expected an array.')),n)}function g(e){function o(t,o,n,r,a){for(var p,l=0;l<e.length;l++)if(p=e[l],null==p(t,o,n,r,a,s))return null;return new u('Invalid '+r+' `'+a+'` supplied to '+('`'+n+'`.'))}if(!Array.isArray(e))return'production'===t.env.NODE_ENV?void 0:l('Invalid argument supplied to oneOfType, expected an instance of array.'),n;for(var r,a=0;a<e.length;a++)if(r=e[a],'function'!=typeof r)return l('Invalid argument supplied to oneOfType. Expected an array of check functions, but received '+O(r)+' at index '+a+'.'),n;return f(o)}function h(t){switch(typeof t){case'number':case'string':case'undefined':return!0;case'boolean':return!t;case'object':if(Array.isArray(t))return t.every(h);if(null===t||e(t))return!0;var o=c(t);if(o){var n,r=o.call(t);if(o!==t.entries){for(;!(n=r.next()).done;)if(!h(n.value))return!1;}else for(;!(n=r.next()).done;){var a=n.value;if(a&&!h(a[1]))return!1}}else return!1;return!0;default:return!1;}}function _(e,t){return'symbol'===e||!!t&&('Symbol'===t['@@toStringTag']||!!('function'==typeof Symbol&&t instanceof Symbol))}function x(e){var t=typeof e;return Array.isArray(e)?'array':e instanceof RegExp?'object':_(t,e)?'symbol':t}function b(e){if('undefined'==typeof e||null===e)return''+e;var t=x(e);if('object'===t){if(e instanceof Date)return'date';if(e instanceof RegExp)return'regexp'}return t}function O(e){var t=b(e);return'array'===t||'object'===t?'an '+t:'boolean'===t||'date'===t||'regexp'===t?'a '+t:t}function P(e){return e.constructor&&e.constructor.name?e.constructor.name:T}var v='function'==typeof Symbol&&Symbol.iterator,E='@@iterator',T='<<anonymous>>',S={array:y('array'),bool:y('boolean'),func:y('function'),number:y('number'),object:y('object'),string:y('string'),symbol:y('symbol'),any:function(){return f(n)}(),arrayOf:function(e){return f(function(t,o,n,r,a){if('function'!=typeof e)return new u('Property `'+a+'` of component `'+n+'` has invalid PropType notation inside arrayOf.');var p=t[o];if(!Array.isArray(p)){var l=x(p);return new u('Invalid '+r+' `'+a+'` of type '+('`'+l+'` supplied to `'+n+'`, expected an array.'))}for(var c,d=0;d<p.length;d++)if(c=e(p,d,n,r,a+'['+d+']',s),c instanceof Error)return c;return null})},element:function(){return f(function(t,o,n,r,a){var s=t[o];if(!e(s)){var p=x(s);return new u('Invalid '+r+' `'+a+'` of type '+('`'+p+'` supplied to `'+n+'`, expected a single ReactElement.'))}return null})}(),elementType:function(){return f(function(e,t,o,n,a){var s=e[t];if(!r.isValidElementType(s)){var p=x(s);return new u('Invalid '+n+' `'+a+'` of type '+('`'+p+'` supplied to `'+o+'`, expected a single ReactElement type.'))}return null})}(),instanceOf:function(e){return f(function(t,o,n,r,a){if(!(t[o]instanceof e)){var s=e.name||T,p=P(t[o]);return new u('Invalid '+r+' `'+a+'` of type '+('`'+p+'` supplied to `'+n+'`, expected ')+('instance of `'+s+'`.'))}return null})},node:function(){return f(function(e,t,o,n,r){return h(e[t])?null:new u('Invalid '+n+' `'+r+'` supplied to '+('`'+o+'`, expected a ReactNode.'))})}(),objectOf:function(e){return f(function(t,o,n,r,a){if('function'!=typeof e)return new u('Property `'+a+'` of component `'+n+'` has invalid PropType notation inside objectOf.');var p=t[o],l=x(p);if('object'!==l)return new u('Invalid '+r+' `'+a+'` of type '+('`'+l+'` supplied to `'+n+'`, expected an object.'));for(var c in p)if(i(p,c)){var d=e(p,c,n,r,a+'.'+c,s);if(d instanceof Error)return d}return null})},oneOf:m,oneOfType:g,shape:function(e){return f(function(t,o,n,r,a){var p=t[o],i=x(p);if('object'!==i)return new u('Invalid '+r+' `'+a+'` of type `'+i+'` '+('supplied to `'+n+'`, expected `object`.'));for(var l in e){var c=e[l];if(c){var d=c(p,l,n,r,a+'.'+l,s);if(d)return d}}return null})},exact:function(e){return f(function(t,o,n,r,p){var i=t[o],l=x(i);if('object'!==l)return new u('Invalid '+r+' `'+p+'` of type `'+l+'` '+('supplied to `'+n+'`, expected `object`.'));var c=a({},t[o],e);for(var d in c){var f=e[d];if(!f)return new u('Invalid '+r+' `'+p+'` key `'+d+'` supplied to `'+n+'`.\nBad object: '+JSON.stringify(t[o],null,' ')+'\nValid keys: '+JSON.stringify(Object.keys(e),null,' '));var y=f(i,d,n,r,p+'.'+d,s);if(y)return y}return null})}};return u.prototype=Error.prototype,S.checkPropTypes=p,S.resetWarningCache=p.resetWarningCache,S.PropTypes=S,S}}).call(t,o(17))},function(e){'use strict';/*
9
+ object-assign
10
+ (c) Sindre Sorhus
11
+ @license MIT
12
+ */function t(e){if(null===e||e===void 0)throw new TypeError('Object.assign cannot be called with null or undefined');return Object(e)}var o=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String('abc');if(e[5]='de','5'===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},o=0;10>o;o++)t['_'+String.fromCharCode(o)]=o;var n=Object.getOwnPropertyNames(t).map(function(e){return t[e]});if('0123456789'!==n.join(''))return!1;var r={};return['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t'].forEach(function(e){r[e]=e}),'abcdefghijklmnopqrst'===Object.keys(Object.assign({},r)).join('')}catch(e){return!1}}()?Object.assign:function(e){for(var a,p,l=t(e),c=1;c<arguments.length;c++){for(var s in a=Object(arguments[c]),a)n.call(a,s)&&(l[s]=a[s]);if(o){p=o(a);for(var d=0;d<p.length;d++)r.call(a,p[d])&&(l[p[d]]=a[p[d]])}}return l}},function(e,t,o){'use strict';(function(t){function n(e,o,n,i,l){if('production'!==t.env.NODE_ENV)for(var c in e)if(p(e,c)){var d;try{if('function'!=typeof e[c]){var u=Error((i||'React class')+': '+n+' type `'+c+'` is invalid; it must be a function, usually from the `prop-types` package, but received `'+typeof e[c]+'`.');throw u.name='Invariant Violation',u}d=e[c](o,c,i,n,null,a)}catch(e){d=e}if(d&&!(d instanceof Error)&&r((i||'React class')+': type specification of '+n+' `'+c+'` is invalid; the type checker function must return `null` or an `Error` but returned a '+typeof d+'. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).'),d instanceof Error&&!(d.message in s)){s[d.message]=!0;var f=l?l():'';r('Failed '+n+' type: '+d.message+(null==f?'':f))}}}var r=function(){};if('production'!==t.env.NODE_ENV){var a=o(36),s={},p=Function.call.bind(Object.prototype.hasOwnProperty);r=function(e){var t='Warning: '+e;'undefined'!=typeof console&&console.error(t);try{throw new Error(t)}catch(e){}}}n.resetWarningCache=function(){'production'!==t.env.NODE_ENV&&(s={})},e.exports=n}).call(t,o(17))},function(e,t,o){'use strict';function n(){}function r(){}var a=o(36);r.resetWarningCache=n,e.exports=function(){function e(e,t,o,n,r,s){if(s!==a){var p=new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types');throw p.name='Invariant Violation',p}}function t(){return e}e.isRequired=e;var o={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:r,resetWarningCache:n};return o.PropTypes=o,o}},function(e,t,o){o(114),e.exports=o(0).Object.keys},function(e,t,o){var n=o(19),r=o(18);o(54)('keys',function(){return function(e){return r(n(e))}})},function(e,t,o){e.exports={default:o(116),__esModule:!0}},function(e,t,o){o(117),e.exports=o(0).Object.getPrototypeOf},function(e,t,o){var n=o(19),r=o(55);o(54)('getPrototypeOf',function(){return function(e){return r(n(e))}})},function(e,t){'use strict';t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError('Cannot call a class as a function')}},function(e,t,o){'use strict';t.__esModule=!0;var n=o(120),r=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(){function e(e,t){for(var o,n=0;n<t.length;n++)o=t[n],o.enumerable=o.enumerable||!1,o.configurable=!0,'value'in o&&(o.writable=!0),(0,r.default)(e,o.key,o)}return function(t,o,n){return o&&e(t.prototype,o),n&&e(t,n),t}}()},function(e,t,o){e.exports={default:o(121),__esModule:!0}},function(e,t,o){o(122);var n=o(0).Object;e.exports=function(e,t,o){return n.defineProperty(e,t,o)}},function(e,t,o){var n=o(5);n(n.S+n.F*!o(2),'Object',{defineProperty:o(3).f})},function(e,t,o){'use strict';t.__esModule=!0;var n=o(56),r=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e,t){if(!e)throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');return t&&('object'===('undefined'==typeof t?'undefined':(0,r.default)(t))||'function'==typeof t)?t:e}},function(e,t,o){e.exports={default:o(125),__esModule:!0}},function(e,t,o){o(126),o(131),e.exports=o(40).f('iterator')},function(e,t,o){'use strict';var n=o(127)(!0);o(57)(String,'String',function(e){this._t=e+'',this._i=0},function(){var e,t=this._t,o=this._i;return o>=t.length?{value:void 0,done:!0}:(e=n(t,o),this._i+=e.length,{value:e,done:!1})})},function(e,t,o){var n=o(32),r=o(31);e.exports=function(e){return function(t,o){var p,a,c=r(t)+'',s=n(o),i=c.length;return 0>s||s>=i?e?'':void 0:(p=c.charCodeAt(s),55296>p||56319<p||s+1===i||56320>(a=c.charCodeAt(s+1))||57343<a?e?c.charAt(s):p:e?c.slice(s,s+2):(p-55296<<10)+(a-56320)+65536)}}},function(e,t,o){'use strict';var n=o(38),r=o(23),a=o(39),s={};o(7)(s,o(10)('iterator'),function(){return this}),e.exports=function(e,t,o){e.prototype=n(s,{next:r(1,o)}),a(e,t+' Iterator')}},function(e,t,o){var n=o(3),r=o(16),a=o(18);e.exports=o(2)?Object.defineProperties:function(e,t){r(e);for(var o,s=a(t),p=s.length,l=0;p>l;)n.f(e,o=s[l++],t[o]);return e}},function(e,t,o){var n=o(1).document;e.exports=n&&n.documentElement},function(e,t,o){o(132);for(var n=o(1),r=o(7),a=o(37),s=o(10)('toStringTag'),p='CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList'.split(','),l=0;l<p.length;l++){var i=p[l],c=n[i],d=c&&c.prototype;d&&!d[s]&&r(d,s,i),a[i]=a.Array}},function(e,t,o){'use strict';var n=o(133),r=o(134),a=o(37),s=o(9);e.exports=o(57)(Array,'Array',function(e,t){this._t=s(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,o=this._i++;return!e||o>=e.length?(this._t=void 0,r(1)):'keys'==t?r(0,o):'values'==t?r(0,e[o]):r(0,[o,e[o]])},'values'),a.Arguments=a.Array,n('keys'),n('values'),n('entries')},function(e){e.exports=function(){}},function(e){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,o){e.exports={default:o(136),__esModule:!0}},function(e,t,o){o(137),o(142),o(143),o(144),e.exports=o(0).Symbol},function(e,t,o){'use strict';var n=o(1),r=o(4),a=o(2),s=o(5),p=o(58),l=o(138).KEY,i=o(11),c=o(34),d=o(39),u=o(25),f=o(10),y=o(40),m=o(41),g=o(139),h=o(140),_=o(16),x=o(8),b=o(19),O=o(9),P=o(30),v=o(23),E=o(38),T=o(141),S=o(60),M=o(44),N=o(3),R=o(18),A=S.f,w=N.f,C=T.f,I=n.Symbol,$=n.JSON,L=$&&$.stringify,F='prototype',z=f('_hidden'),D=f('toPrimitive'),V={}.propertyIsEnumerable,Y=c('symbol-registry'),H=c('symbols'),W=c('op-symbols'),U=Object[F],G='function'==typeof I&&!!M.f,B=n.QObject,q=!B||!B[F]||!B[F].findChild,K=a&&i(function(){return 7!=E(w({},'a',{get:function(){return w(this,'a',{value:7}).a}})).a})?function(e,t,o){var n=A(U,t);n&&delete U[t],w(e,t,o),n&&e!==U&&w(U,t,n)}:w,J=function(e){var t=H[e]=E(I[F]);return t._k=e,t},X=G&&'symbol'==typeof I.iterator?function(e){return'symbol'==typeof e}:function(e){return e instanceof I},Q=function(e,t,o){return e===U&&Q(W,t,o),_(e),t=P(t,!0),_(o),r(H,t)?(o.enumerable?(r(e,z)&&e[z][t]&&(e[z][t]=!1),o=E(o,{enumerable:v(0,!1)})):(!r(e,z)&&w(e,z,v(1,{})),e[z][t]=!0),K(e,t,o)):w(e,t,o)},Z=function(e,t){_(e);for(var o,n=g(t=O(t)),r=0,a=n.length;a>r;)Q(e,o=n[r++],t[o]);return e},ee=function(e){var t=V.call(this,e=P(e,!0));return(this!==U||!r(H,e)||r(W,e))&&(!(t||!r(this,e)||!r(H,e)||r(this,z)&&this[z][e])||t)},te=function(e,t){if(e=O(e),t=P(t,!0),e!==U||!r(H,t)||r(W,t)){var o=A(e,t);return o&&r(H,t)&&!(r(e,z)&&e[z][t])&&(o.enumerable=!0),o}},oe=function(e){for(var t,o=C(O(e)),n=[],a=0;o.length>a;)r(H,t=o[a++])||t==z||t==l||n.push(t);return n},ne=function(e){for(var t,o=e===U,n=C(o?W:O(e)),a=[],s=0;n.length>s;)r(H,t=n[s++])&&(!o||r(U,t))&&a.push(H[t]);return a};G||(I=function(){if(this instanceof I)throw TypeError('Symbol is not a constructor!');var e=u(0<arguments.length?arguments[0]:void 0),t=function(o){this===U&&t.call(W,o),r(this,z)&&r(this[z],e)&&(this[z][e]=!1),K(this,e,v(1,o))};return a&&q&&K(U,e,{configurable:!0,set:t}),J(e)},p(I[F],'toString',function(){return this._k}),S.f=te,N.f=Q,o(59).f=T.f=oe,o(27).f=ee,M.f=ne,a&&!o(24)&&p(U,'propertyIsEnumerable',ee,!0),y.f=function(e){return J(f(e))}),s(s.G+s.W+s.F*!G,{Symbol:I});for(var re=['hasInstance','isConcatSpreadable','iterator','match','replace','search','species','split','toPrimitive','toStringTag','unscopables'],ae=0;re.length>ae;)f(re[ae++]);for(var j=R(f.store),se=0;j.length>se;)m(j[se++]);s(s.S+s.F*!G,'Symbol',{for:function(e){return r(Y,e+='')?Y[e]:Y[e]=I(e)},keyFor:function(e){if(!X(e))throw TypeError(e+' is not a symbol!');for(var t in Y)if(Y[t]===e)return t},useSetter:function(){q=!0},useSimple:function(){q=!1}}),s(s.S+s.F*!G,'Object',{create:function(e,t){return t===void 0?E(e):Z(E(e),t)},defineProperty:Q,defineProperties:Z,getOwnPropertyDescriptor:te,getOwnPropertyNames:oe,getOwnPropertySymbols:ne});var k=i(function(){M.f(1)});s(s.S+s.F*k,'Object',{getOwnPropertySymbols:function(e){return M.f(b(e))}}),$&&s(s.S+s.F*(!G||i(function(){var e=I();return'[null]'!=L([e])||'{}'!=L({a:e})||'{}'!=L(Object(e))})),'JSON',{stringify:function(e){for(var t,o,n=[e],r=1;arguments.length>r;)n.push(arguments[r++]);if(o=t=n[1],(x(t)||void 0!==e)&&!X(e))return h(t)||(t=function(e,t){if('function'==typeof o&&(t=o.call(this,e,t)),!X(t))return t}),n[1]=t,L.apply($,n)}}),I[F][D]||o(7)(I[F],D,I[F].valueOf),d(I,'Symbol'),d(Math,'Math',!0),d(n.JSON,'JSON',!0)},function(e,t,o){var n=o(25)('meta'),r=o(8),a=o(4),s=o(3).f,p=0,i=Object.isExtensible||function(){return!0},l=!o(11)(function(){return i(Object.preventExtensions({}))}),c=function(e){s(e,n,{value:{i:'O'+ ++p,w:{}}})},d=e.exports={KEY:n,NEED:!1,fastKey:function(e,t){if(!r(e))return'symbol'==typeof e?e:('string'==typeof e?'S':'P')+e;if(!a(e,n)){if(!i(e))return'F';if(!t)return'E';c(e)}return e[n].i},getWeak:function(e,t){if(!a(e,n)){if(!i(e))return!0;if(!t)return!1;c(e)}return e[n].w},onFreeze:function(e){return l&&d.NEED&&i(e)&&!a(e,n)&&c(e),e}}},function(e,t,o){var n=o(18),r=o(44),a=o(27);e.exports=function(e){var t=n(e),o=r.f;if(o)for(var s,p=o(e),l=a.f,c=0;p.length>c;)l.call(e,s=p[c++])&&t.push(s);return t}},function(e,t,o){var n=o(52);e.exports=Array.isArray||function(e){return'Array'==n(e)}},function(e,t,o){var n=o(9),r=o(59).f,a={}.toString,s='object'==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],p=function(e){try{return r(e)}catch(t){return s.slice()}};e.exports.f=function(e){return s&&'[object Window]'==a.call(e)?p(e):r(n(e))}},function(){},function(e,t,o){o(41)('asyncIterator')},function(e,t,o){o(41)('observable')},function(e,t,o){'use strict';function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var r=o(146),a=n(r),s=o(150),p=n(s),i=o(56),l=n(i);t.default=function(e,t){if('function'!=typeof t&&null!==t)throw new TypeError('Super expression must either be null or a function, not '+('undefined'==typeof t?'undefined':(0,l.default)(t)));e.prototype=(0,p.default)(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(a.default?(0,a.default)(e,t):e.__proto__=t)}},function(e,t,o){e.exports={default:o(147),__esModule:!0}},function(e,t,o){o(148),e.exports=o(0).Object.setPrototypeOf},function(e,t,o){var n=o(5);n(n.S,'Object',{setPrototypeOf:o(149).set})},function(e,t,o){var n=o(8),r=o(16),a=function(e,t){if(r(e),!n(t)&&null!==t)throw TypeError(t+': can\'t set as prototype!')};e.exports={set:Object.setPrototypeOf||('__proto__'in{}?function(e,t,n){try{n=o(48)(Function.call,o(60).f(Object.prototype,'__proto__').set,2),n(e,[]),t=!(e instanceof Array)}catch(o){t=!0}return function(e,o){return a(e,o),t?e.__proto__=o:n(e,o),e}}({},!1):void 0),check:a}},function(e,t,o){e.exports={default:o(151),__esModule:!0}},function(e,t,o){o(152);var n=o(0).Object;e.exports=function(e,t){return n.create(e,t)}},function(e,t,o){var n=o(5);n(n.S,'Object',{create:o(38)})},function(e,t,o){'use strict';function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,'__esModule',{value:!0}),t.getCampaign=t.getOptions=void 0;var r=o(102),a=n(r),s=o(65),p=n(s),i=o(101),l=t.getOptions=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null,o=!(2<arguments.length&&void 0!==arguments[2])||arguments[2];if(o&&!(0,i.hasSites)())return[];var n=(0,p.default)(OMAPI,'campaigns.'+e,{});if(1>(0,a.default)(n).length||!OMAPI.omUserId)return[];var r=(0,a.default)(n).map(function(e){var o=(0,p.default)(n,e+'.title','');(0,p.default)(n,e+'.pending')&&(o+=' [Pending]');var r=null!==t&&(0,p.default)(OMAPI,'_usedSlugs.'+e)&&e!==t;return{value:e,label:o,selected:null!==t&&t===e,disabled:r}});return 0<r.length&&r.unshift({value:'',label:OMAPI.i18n.campaign_select}),r},c=t.getCampaign=function(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:'',t='om'+e;return window[t]?window[t]:null}},function(e,t,o){'use strict';t.__esModule=!0;var n=o(156),r=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=r.default||function(e){for(var t,o=1;o<arguments.length;o++)for(var n in t=arguments[o],t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}},function(e,t,o){'use strict';function n(e){return e&&e.__esModule?e:{default:e}}function r(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:r.defaultProps,t=(0,s.default)({maxWidth:e.width+'px',maxHeight:e.height+'px',minWidth:e.width+'px',minHeight:e.height+'px'},e.style);return wp.element.createElement('svg',{xmlns:'http://www.w3.org/2000/svg',width:e.width,height:e.height,viewBox:'0 0 189 159',style:t},wp.element.createElement('path',{d:'M112.547 55.298c0 8.867-7.57 16.055-16.91 16.055-9.339 0-16.91-7.188-16.91-16.055s7.571-16.056 16.91-16.056c.955 0 1.89.075 2.802.22a8.824 8.824 0 1011.077 6.661c1.911 2.6 3.031 5.763 3.031 9.175z'}),wp.element.createElement('path',{d:'M134.604 31.662C120.805 19.652 103.51 15.729 86.45 15.69h-.33c-10.827.008-21.55 1.57-31.216 3.619 1.185.27 2.38.529 3.58.79 5.349 1.16 10.787 2.342 15.831 4.502-8.53.884-17.35 3.825-24.997 7.65-5.002 2.35-10.294 5.882-14.412 9.704l-4.119 4.118c1.324-.155 2.627-.352 3.914-.546 3.578-.54 7.038-1.063 10.499-.631-2.941 1.764-5.883 3.825-8.53 6.472-2.648 0-5.293-.296-6.763-1.177-.892-.447-1.276-3.59-1.538-5.728-.084-.685-.155-1.268-.226-1.625-.297-3.531-4.706-5.002-7.353-3.235-4.706 3.529-7.353 9.998-7.94 15.88-.59 5.883 0 13.532 4.115 17.941 3.531 4.118 11.201 5.56 17.67 5.856 0 .294-.181 4.174-.316 4.145H33.14c-.587-1.764-2.354-3.822-4.705-3.235-2.354.587-4.705 3.235-4.999 5.295-3.53 1.47-7.06 4.116-8.236 8.527-.587 2.355-.587 5.002 0 7.06 1.47 6.766 7.646 10.587 13.529 11.765.587.293.883.293 1.47.293v6.472c-.883-.883-2.057-1.47-3.234-1.764-1.471-.59-3.529-.59-5.296-.296-1.47-1.764-3.234-2.058-4.412-1.471-.586.297-1.174 1.767-1.174 3.238-2.06.88-3.824 1.764-5.295 2.941-1.47-.59-2.941-.883-3.528-.296-.587.296-.587 1.767-.294 3.237-.392.49-.784.948-1.177 1.405-.784.914-1.57 1.829-2.354 3.007-1.174-.59-2.351-.59-2.645 0-.59.881 0 2.351.881 3.822-.293 1.177-.587 2.354-.587 3.528 0 10.294 14.706 20.885 24.117 21.178 5.585.294 11.468-2.647 14.115-7.646 37.056 1.47 74.114 1.47 111.169 0 2.648 4.999 8.234 7.94 13.823 7.646 9.704-.293 24.41-10.884 24.116-21.178 0-1.174-.293-2.351-.59-3.528.884-1.471 1.471-2.941.297-3.822-.297-.59-1.471-.59-2.648 0-.883-1.471-2.057-2.941-3.528-4.412.293-1.47.293-2.647-.297-3.237-.587-.587-1.764-.294-3.234.296-1.471-.883-3.528-2.061-5.293-2.941 0-1.471-.59-2.941-1.177-3.238-.883-.587-2.941 0-4.411 1.471-1.765-.294-3.529-.294-5.293.296-1.177.294-2.06.881-3.237 1.764v-6.472c.123 0 .296-.051.498-.11.286-.083.629-.183.972-.183 5.882-1.178 12.058-4.999 13.529-11.765.59-2.058.59-4.412 0-7.06-.881-4.705-4.705-7.056-8.234-8.527-.293-2.06-2.647-4.708-4.998-5.295-2.355-.587-4.119 1.47-4.706 3.235-.59 0-.643-3.76-.643-4.054 6.47-.293 12.995-1.829 16.523-5.947 4.119-4.409 4.706-12.058 4.119-17.94-.59-5.586-3.235-12.059-7.943-15.587-2.645-1.764-7.057 0-7.35 3.235 0 1.47-.297 6.47-1.767 7.353-2.352 1.47-7.057 1.47-10.585.883-3.238-7.943-7.943-14.706-13.825-19.707zM27.553 126.365c4.705 1.471 9.117 10.001 10.88 17.647 0 .884 0 1.765-.293 2.942-1.177 5.882-7.056 9.707-12.939 9.413-6.472-.296-15.292-5.589-19.41-12.061-.884-10.294 14.409-19.998 21.762-17.941zm123.814 17.647c1.767-7.646 6.179-16.176 10.884-17.647 7.35-2.351 22.643 7.647 21.763 17.647-4.119 6.473-13.236 11.765-19.412 12.059-5.882.296-11.764-3.528-12.938-9.411-.297-.883-.297-1.764-.297-2.648zm-43.525-14.999c13.823 3.825 25.881 10.294 37.939 17.354-33.527.88-67.348 1.177-101.465-.294 11.471-7.059 23.53-12.648 36.762-16.47a91.5 91.5 0 0011.471 4.409c.506.17.721.242.924.217.151-.018.296-.091.547-.217 4.705-1.174 9.41-2.941 13.822-4.999zm-32.056-2.351c-12.059 3.528-23.823 8.82-34.705 15.293-.251-3.029-1.153-6.271-1.96-9.174-.134-.481-.265-.954-.39-1.414-.58-1.351-1.285-2.701-2.034-4.134-.394-.752-.799-1.528-1.204-2.338V111.66c.19-.126.394-.252.602-.382.76-.471 1.585-.982 2.045-1.675 2.06-.587 4.412-1.471 5-2.941.59-1.177-.588-2.354-2.059-3.235.294-.294.294-.59.294-.884.884-.293 2.06-.88 2.648-1.177 9.41 9.707 19.117 18.531 31.763 25.297zm37.055-.297c12.255-6.419 23.353-15.155 33.58-24.771l.241-.229c.59.59 1.47.884 2.354 1.177 0 .13.056.259.12.388l.053.108c.065.13.12.259.12.388-1.47.881-2.647 1.764-2.057 3.235.88 1.177 2.941 2.647 4.999 2.941.883.883 1.764 1.764 2.647 2.354 0 4.412 0 9.117-.293 13.529-1.177 2.057-2.354 4.118-2.941 6.176-1.178 2.941-2.061 6.763-2.355 10.294-11.764-6.473-23.823-11.765-36.468-15.59zM49.32 89.456c1.093-.128 2.185-.257 3.327-.386l.493-.055c.587 2.057 1.177 4.118 2.354 5.882 3.235 5.589 14.41 11.765 14.703 2.354 1.91 4.634 11.654 3.961 16.814 3.604a236.6 236.6 0 011.127-.076l1.011-.109c4.622-.496 6.987-.749 7.812-4.596 4.115 1.177 9.998 1.177 14.409.88l.925-.072c3.16-.242 5.945-.454 7.016-2.869l.066.4c.277 1.672.589 3.556 1.404 5.19 3.531 7.059 12.058.589 15.293-10.295 2.648.294 5.589.59 8.53.884 0 .129-.056.258-.12.384l-.053.112c-.065.129-.12.258-.12.384-.294 1.177 1.177 2.354 2.647 2.941-15.589 15.296-31.176 28.825-53.232 35.001-20.588-6.763-36.468-19.411-50.88-34.704 1.764-.59 2.94-1.47 2.94-3.531 0-.294 0-.587-.293-.88a592.84 592.84 0 003.827-.443zm76.166 8.97c-2.057.883-2.644.59-2.938-1.471-.346-2.304-.601-4.608-.855-6.894-.394-3.551-.783-7.059-1.499-10.457 4.412 0 8.824 0 12.942.293-.297 5.59-2.354 15.883-7.65 18.528zm-58.23-1.765c-.294 2.354-1.47 2.354-3.235 1.47-7.056-3.234-8.824-11.47-7.353-17.94l.771-.055c3.828-.274 7.43-.532 11.287-.532-.261 2.225-.464 5.265-.661 8.214-.246 3.676-.482 7.21-.81 8.843zm6.176-17.057c6.175-.296 12.351-.296 18.824-.296.293 2.647.88 16.766-.297 17.647-4.409 1.177-13.822 1.177-17.937-.587-2.061-.884-1.178-13.823-.59-16.764zm24.706 12.939c-1.47-.88-1.47-11.765-1.47-13.236 6.175-.293 12.645-.293 18.821-.293.293 1.764 1.177 13.235-.587 13.825-3.825 1.174-13.236 1.47-16.764-.296zM20.496 45.487c1.048-1.048 2.093-1.515 2.936-1.524h.044c1.021.003 1.726.69 1.726 1.817 0 1.84.47 3.45.78 4.397 0 0 .72 1.988 1.773 2.8l.027.021c1.2.793 3.096 1.33 4.476 1.606l1.177.05-2.474 4.285 5.709-2.278c.366-.121.72-.243 1.066-.363 1.321-.456 2.535-.875 3.933-1.107-3.529 6.472-5.88 13.529-6.763 20.882-1.177 0-2.648-.003-4.119-.297-.179-.035-2.553-.522-2.63-.58l-.017-.013c-3.531-.883-6.763-2.051-8.82-4.11-.58-.577-3.242-4.09-3.236-8.823l-.008-.085c-.273-3.59.625-12.886 4.42-16.678zm148.812 0c3.496 3.786 4.684 13.056 4.42 16.664-.088 2.662-.854 6.1-3.243 9.217-1.506 1.966-4.949 3.21-8.445 3.81l-3.026.601c-1.468.294-2.645.294-3.822.294-.587-7.353-2.354-14.41-4.706-21.176h3.822c.027.021.05.044.074.065l-.012-.059.233-.014c2.409-.154 4.15-.264 5.723-1.075 1.429-.733 2.694-1.573 3.402-3.346.294-.892.874-2.65.874-4.688 0-2.06 2.354-2.647 4.706-.293zM95.491 72.544c-13.823 0-25-11.177-25-25 0-13.528 11.177-24.706 25-24.706 13.822 0 24.997 10.884 24.997 24.706 0 13.823-11.175 25-24.998 25z'}),wp.element.createElement('path',{d:'M104.608 1C95.49-.249 85.49 3.72 81.374 12.836c14.704-7.94 29.703-5.292 41.174 7.65-.59-11.765-8.823-18.237-17.94-19.488z'}))}Object.defineProperty(t,'__esModule',{value:!0});var a=o(154),s=n(a),p=o(28),i=n(p),l=o(29),c=n(l);r.propTypes={width:c.default.number,height:c.default.number,style:c.default.object},r.defaultProps={width:28,height:28,style:{}},t.default=r},function(e,t,o){e.exports={default:o(157),__esModule:!0}},function(e,t,o){o(158),e.exports=o(0).Object.assign},function(e,t,o){var n=o(5);n(n.S+n.F,'Object',{assign:o(159)})},function(e,t,o){'use strict';var n=o(2),r=o(18),a=o(44),s=o(27),p=o(19),i=o(66),l=Object.assign;e.exports=!l||o(11)(function(){var e={},t={},o=Symbol(),n='abcdefghijklmnopqrst';return e[o]=7,n.split('').forEach(function(e){t[e]=e}),7!=l({},e)[o]||Object.keys(l({},t)).join('')!=n})?function(e){for(var t=p(e),o=arguments.length,l=1,c=a.f,d=s.f;o>l;)for(var u,f=i(arguments[l++]),y=c?r(f).concat(c(f)):r(f),m=y.length,g=0;m>g;)u=y[g++],(!n||d.call(f,u))&&(t[u]=f[u]);return t}:l},function(e,t,o){'use strict';function n(e){return e&&e.__esModule?e:{default:e}}function r(e){return wp.element.createElement('div',{className:'optinmonster-gutenberg-campaign-selector-no_sites'},e.children,wp.element.createElement('p',{className:'optinmonster-gutenberg-campaign-selector-no_sites-help'},OMAPI.i18n.no_sites),wp.element.createElement('p',{className:'optinmonster-gutenberg-campaign-selector-no_sites-button'},wp.element.createElement(l,{isSecondary:!0,href:OMAPI.wizardUri,target:'_blank',rel:'noopener'},OMAPI.i18n.no_sites_button_create_account),'or',wp.element.createElement(l,{isSecondary:!0,href:OMAPI.settingsUri,target:'_blank',rel:'noopener'},OMAPI.i18n.no_sites_button_connect_account)))}Object.defineProperty(t,'__esModule',{value:!0});var a=o(28),s=n(a),p=o(29),i=n(p),l=wp.components.Button;r.propTypes={children:i.default.node},t.default=r},function(e,t){'use strict';Object.defineProperty(t,'__esModule',{value:!0});t.getMonsterlink=function(e){return OMAPI.monsterlink+e+'/'}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,o){'use strict';var n=o(228),r=function(e){return e&&e.__esModule?e:{default:e}}(n);wp.richText.registerFormatType('optinmonster/om-format',{title:OMAPI.i18n.open_popup,tagName:'a',className:'om-format',attributes:{url:'href',target:'target',rel:'rel',"data-slug":'data-slug'},edit:r.default})},function(e,t,o){'use strict';function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,'__esModule',{value:!0});var r=o(115),a=n(r),s=o(118),p=n(s),i=o(119),l=n(i),c=o(123),d=n(c),u=o(145),f=n(u),y=o(28),m=n(y),g=o(29),h=n(g),_=o(65),x=n(_),b=o(153),O=o(161),P=o(101),v=o(155),E=n(v),T=o(160),S=n(T),k=o(229),M=n(k),N=wp.blockEditor.RichTextToolbarButton,R=wp.components,A=R.Button,w=R.Popover,j=R.SelectControl,C=wp.element,I=C.Fragment,$=C.Component,L=wp.richText,F=L.applyFormat,D=L.removeFormat,z=wp.dom.getRectangleFromRange,V=function(e){function t(e){(0,p.default)(this,t);var o=(0,d.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e));return o.getSelectedCampaign=function(){var e=o.props,t=e.isActive,n=e.activeAttributes;return t&&n&&n['data-slug']?n['data-slug']:''},o.showPopup=function(){o.setState({showPopup:!0})},o.hideAndReset=function(){o.setState({showPopup:!1,anchorRect:null})},o.getAnchorRect=function(){if(o.state.anchorRect)return o.state.anchorRect;var e=o.props.isActive,t=window.getSelection(),n=''===t.toString(),r=0<t.rangeCount&&(!n||e);if(!r)return o.hideAndReset(),null;var a=t.getRangeAt(0);if(n&&'#text'!==(0,x.default)(a,'commonAncestorContainer.nodeName'))return null;var s=z(a);return o.setState({anchorRect:s}),s},o.onSelectCampaign=function(e){return e?void o.props.onChange(F(o.props.value,{type:'optinmonster/om-format',attributes:{url:(0,O.getMonsterlink)(e),target:'_blank',rel:'noopener noreferrer',"data-slug":e}})):o.removeFormatting()},o.onClickButton=function(){var e=o.props.isActive;o[e?'removeFormatting':'showPopup']()},o.removeFormatting=function(){o.props.onChange(D(o.props.value,'optinmonster/om-format')),o.hideAndReset()},o.renderPopupContent=function(){if(!(0,P.hasSites)())return wp.element.createElement(S.default,null,wp.element.createElement('h3',{style:{margin:'0 0 1em 0'}},OMAPI.i18n.not_connected));var e=(0,b.getOptions)('other');if(0===e.length)return wp.element.createElement(I,null,wp.element.createElement('p',{style:{margin:'1em 1em 0.5em'}},OMAPI.i18n.no_campaigns_yet),wp.element.createElement('p',{style:{margin:'0 1em 1.1em'}},wp.element.createElement('a',{className:'optinmonster-format-campaign-selector-no-campaigns',href:OMAPI.templatesUri+'&type=popup',target:'_blank',rel:'noopener noreferrer'},OMAPI.i18n.create_popup_campaign)));var t=o.getSelectedCampaign(),n=o.props.isActive?OMAPI.i18n.update_selected_popup:OMAPI.i18n.open_popup;return wp.element.createElement(I,null,wp.element.createElement('p',{style:{marginTop:'0'}},n),wp.element.createElement(j,{key:'optinmonster-format-campaign-selector-select-control',value:t,options:e,onChange:o.onSelectCampaign}),o.props.isActive&&wp.element.createElement(A,{style:{marginTop:'5px'},isLink:!0,onClick:o.removeFormatting},OMAPI.i18n.remove_popup))},o.render=function(){var e=o.props.isActive,t=wp.element.createElement(E.default,{width:24,height:24,style:{padding:'2px'}});return wp.element.createElement(I,null,wp.element.createElement(N,{icon:t,title:e?OMAPI.i18n.remove_popup:OMAPI.i18n.open_popup,isActive:e,onClick:o.onClickButton}),o.state.showPopup&&wp.element.createElement(w,{className:'om-format-popover',getAnchorRect:o.getAnchorRect,position:'bottom center',focusOnMount:'container',onClose:o.hideAndReset,noArrow:!1},o.renderPopupContent()))},o.state={showPopup:!1,anchorRect:null},o}return(0,f.default)(t,e),(0,l.default)(t,[{key:'shouldComponentUpdate',value:function(e,t){var o=!(0,M.default)(e.activeAttributes,this.props.activeAttributes)||e.isActive!==this.props.isActive||t.showPopup!==this.state.showPopup;return o}},{key:'componentDidUpdate',value:function(){if(this.props.isActive&&!this.state.showPopup){var e=document.activeElement&&document.activeElement.closest('.block-editor-block-toolbar');e||this.showPopup()}}}]),t}($);V.propTypes={isActive:h.default.bool,activeAttributes:h.default.object,onChange:h.default.func,value:h.default.object},t.default=V},function(e,t,o){'use strict';var n=o(230),r=o(231),s=Array.isArray;e.exports=function(e,t){if(e&&t){if(e.constructor===Object&&t.constructor===Object)return n(e,t);if(s(e)&&s(t))return r(e,t)}return e===t},e.exports.isShallowEqualObjects=n,e.exports.isShallowEqualArrays=r},function(e){'use strict';var t=Object.keys;e.exports=function(e,o){var n,r,a,s;if(e===o)return!0;if(n=t(e),r=t(o),n.length!==r.length)return!1;for(a=0;a<n.length;){if(s=n[a],e[s]!==o[s])return!1;a++}return!0}},function(e){'use strict';e.exports=function(e,t){var o;if(e===t)return!0;if(e.length!==t.length)return!1;for(o=0;o<e.length;o++)if(e[o]!==t[o])return!1;return!0}}]);
assets/dist/js/om-settings.min.js ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function(e){function t(n){if(o[n])return o[n].exports;var r=o[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var o={};return t.m=e,t.c=o,t.d=function(e,o,n){t.o(e,o)||Object.defineProperty(e,o,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var o=e&&e.__esModule?function(){return e['default']}:function(){return e};return t.d(o,'a',o),o},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p='',t(t.s=225)})([,,,,,,function(e,t,o){var n=o(63),r='object'==typeof self&&self&&self.Object===Object&&self,a=n||r||Function('return this')();e.exports=a},,,,,,function(e,t,o){var n=o(61);e.exports=function(e,t){for(var o=e.length;o--;)if(n(e[o][0],t))return o;return-1}},function(e,t,o){var n=o(21),r=n(Object,'create');e.exports=r},function(e,t,o){var n=o(87);e.exports=function(e,t){var o=e.__data__;return n(t)?o['string'==typeof t?'string':'hash']:o.map}},function(e){var t=Array.isArray;e.exports=t},,function(e){function t(){throw new Error('setTimeout has not been defined')}function o(){throw new Error('clearTimeout has not been defined')}function n(e){if(d===setTimeout)return setTimeout(e,0);if((d===t||!d)&&setTimeout)return d=setTimeout,setTimeout(e,0);try{return d(e,0)}catch(t){try{return d.call(null,e,0)}catch(t){return d.call(this,e,0)}}}function r(e){if(l===clearTimeout)return clearTimeout(e);if((l===o||!l)&&clearTimeout)return l=clearTimeout,clearTimeout(e);try{return l(e)}catch(t){try{return l.call(null,e)}catch(t){return l.call(this,e)}}}function a(){y&&f&&(y=!1,f.length?u=f.concat(u):m=-1,u.length&&p())}function p(){if(!y){var e=n(a);y=!0;for(var t=u.length;t;){for(f=u,u=[];++m<t;)f&&f[m].run();m=-1,t=u.length}f=null,y=!1,r(e)}}function s(e,t){this.fun=e,this.array=t}function i(){}var d,l,c=e.exports={};(function(){try{d='function'==typeof setTimeout?setTimeout:t}catch(o){d=t}try{l='function'==typeof clearTimeout?clearTimeout:o}catch(t){l=o}})();var f,u=[],y=!1,m=-1;c.nextTick=function(e){var t=Array(arguments.length-1);if(1<arguments.length)for(var o=1;o<arguments.length;o++)t[o-1]=arguments[o];u.push(new s(e,t)),1!==u.length||y||n(p)},s.prototype.run=function(){this.fun.apply(null,this.array)},c.title='browser',c.browser=!0,c.env={},c.argv=[],c.version='',c.versions={},c.on=i,c.addListener=i,c.once=i,c.off=i,c.removeListener=i,c.removeAllListeners=i,c.emit=i,c.prependListener=i,c.prependOnceListener=i,c.listeners=function(){return[]},c.binding=function(){throw new Error('process.binding is not supported')},c.cwd=function(){return'/'},c.chdir=function(){throw new Error('process.chdir is not supported')},c.umask=function(){return 0}},,,function(e,t,o){var n=o(6),r=n.Symbol;e.exports=r},function(e,t,o){var n=o(72),r=o(78);e.exports=function(e,t){var o=r(e,t);return n(o)?o:void 0}},function(e,t,o){var n=o(26),r=o(43);e.exports=function(e){return'symbol'==typeof e||r(e)&&n(e)=='[object Symbol]'}},,,,function(e,t,o){function n(e){return null==e?void 0===e?s:p:d&&d in Object(e)?a(e):i(e)}var r=o(20),a=o(74),i=o(75),p='[object Null]',s='[object Undefined]',d=r?r.toStringTag:void 0;e.exports=n},,function(e){e.exports=React},function(e,t,o){(function(t){if('production'!==t.env.NODE_ENV){var n=o(53);e.exports=o(109)(n.isElement,!0)}else e.exports=o(112)()}).call(t,o(17))},,,,,,,function(e){'use strict';e.exports='SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'},,,,,,function(e){e.exports=function(e){var t=typeof e;return null!=e&&('object'==t||'function'==t)}},function(e){e.exports=function(e){return null!=e&&'object'==typeof e}},,function(e,t,o){function n(e){var t=-1,o=null==e?0:e.length;for(this.clear();++t<o;){var n=e[t];this.set(n[0],n[1])}}var r=o(67),a=o(68),i=o(69),p=o(70),s=o(71);n.prototype.clear=r,n.prototype['delete']=a,n.prototype.get=i,n.prototype.has=p,n.prototype.set=s,e.exports=n},function(e,t,o){var n=o(21),r=o(6),a=n(r,'Map');e.exports=a},function(e,t,o){function n(e){var t=-1,o=null==e?0:e.length;for(this.clear();++t<o;){var n=e[t];this.set(n[0],n[1])}}var r=o(79),a=o(86),i=o(88),p=o(89),s=o(90);n.prototype.clear=r,n.prototype['delete']=a,n.prototype.get=i,n.prototype.has=p,n.prototype.set=s,e.exports=n},,,,,,function(e,t,o){'use strict';(function(t){e.exports='production'===t.env.NODE_ENV?o(107):o(108)}).call(t,o(17))},,,,,,,,function(e){e.exports=function(e,t){return e===t||e!==e&&t!==t}},function(e,t,o){var n=o(26),r=o(42);e.exports=function(e){if(!r(e))return!1;var t=n(e);return t=='[object Function]'||t=='[object GeneratorFunction]'||t=='[object AsyncFunction]'||t=='[object Proxy]'}},function(e,t,o){(function(t){var o='object'==typeof t&&t&&t.Object===Object&&t;e.exports=o}).call(t,o(73))},function(e){var t=Function.prototype,o=t.toString;e.exports=function(e){if(null!=e){try{return o.call(e)}catch(t){}try{return e+''}catch(t){}}return''}},function(e,t,o){var n=o(91);e.exports=function(e,t,o){var r=null==e?void 0:n(e,t);return r===void 0?o:r}},,function(e){e.exports=function(){this.__data__=[],this.size=0}},function(e,t,o){var n=o(12),r=Array.prototype,a=r.splice;e.exports=function(e){var t=this.__data__,o=n(t,e);if(0>o)return!1;var r=t.length-1;return o==r?t.pop():a.call(t,o,1),--this.size,!0}},function(e,t,o){var n=o(12);e.exports=function(e){var t=this.__data__,o=n(t,e);return 0>o?void 0:t[o][1]}},function(e,t,o){var n=o(12);e.exports=function(e){return-1<n(this.__data__,e)}},function(e,t,o){var n=o(12);e.exports=function(e,t){var o=this.__data__,r=n(o,e);return 0>r?(++this.size,o.push([e,t])):o[r][1]=t,this}},function(e,t,o){var n=o(62),r=o(76),a=o(42),i=o(64),p=/[\\^$.*+?()[\]{}|]/g,s=/^\[object .+?Constructor\]$/,d=Function.prototype,l=Object.prototype,c=d.toString,f=l.hasOwnProperty,u=RegExp('^'+c.call(f).replace(p,'\\$&').replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,'$1.*?')+'$');e.exports=function(e){if(!a(e)||r(e))return!1;var t=n(e)?u:s;return t.test(i(e))}},function(e){var t=function(){return this}();try{t=t||Function('return this')()||(1,eval)('this')}catch(o){'object'==typeof window&&(t=window)}e.exports=t},function(e,t,o){var n=o(20),r=Object.prototype,a=r.hasOwnProperty,i=r.toString,p=n?n.toStringTag:void 0;e.exports=function(e){var t=a.call(e,p),o=e[p];try{e[p]=void 0}catch(t){}var n=i.call(e);return t?e[p]=o:delete e[p],n}},function(e){var t=Object.prototype,o=t.toString;e.exports=function(e){return o.call(e)}},function(e,t,o){function n(e){return!!a&&a in e}var r=o(77),a=function(){var e=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||'');return e?'Symbol(src)_1.'+e:''}();e.exports=n},function(e,t,o){var n=o(6),r=n['__core-js_shared__'];e.exports=r},function(e){e.exports=function(e,t){return null==e?void 0:e[t]}},function(e,t,o){var n=o(80),r=o(45),a=o(46);e.exports=function(){this.size=0,this.__data__={hash:new n,map:new(a||r),string:new n}}},function(e,t,o){function n(e){var t=-1,o=null==e?0:e.length;for(this.clear();++t<o;){var n=e[t];this.set(n[0],n[1])}}var r=o(81),a=o(82),i=o(83),p=o(84),s=o(85);n.prototype.clear=r,n.prototype['delete']=a,n.prototype.get=i,n.prototype.has=p,n.prototype.set=s,e.exports=n},function(e,t,o){var n=o(13);e.exports=function(){this.__data__=n?n(null):{},this.size=0}},function(e){e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},function(e,t,o){var n=o(13),r=Object.prototype,a=r.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(n){var o=t[e];return o==='__lodash_hash_undefined__'?void 0:o}return a.call(t,e)?t[e]:void 0}},function(e,t,o){var n=o(13),r=Object.prototype,a=r.hasOwnProperty;e.exports=function(e){var t=this.__data__;return n?t[e]!==void 0:a.call(t,e)}},function(e,t,o){var n=o(13);e.exports=function(e,t){var o=this.__data__;return this.size+=this.has(e)?0:1,o[e]=n&&void 0===t?'__lodash_hash_undefined__':t,this}},function(e,t,o){var n=o(14);e.exports=function(e){var t=n(this,e)['delete'](e);return this.size-=t?1:0,t}},function(e){e.exports=function(e){var t=typeof e;return'string'==t||'number'==t||'symbol'==t||'boolean'==t?'__proto__'!==e:null===e}},function(e,t,o){var n=o(14);e.exports=function(e){return n(this,e).get(e)}},function(e,t,o){var n=o(14);e.exports=function(e){return n(this,e).has(e)}},function(e,t,o){var n=o(14);e.exports=function(e,t){var o=n(this,e),r=o.size;return o.set(e,t),this.size+=o.size==r?0:1,this}},function(e,t,o){var n=o(92),r=o(100);e.exports=function(e,t){t=n(t,e);for(var o=0,a=t.length;null!=e&&o<a;)e=e[r(t[o++])];return o&&o==a?e:void 0}},function(e,t,o){var n=o(15),r=o(93),a=o(94),i=o(97);e.exports=function(e,t){return n(e)?e:r(e,t)?[e]:a(i(e))}},function(e,t,o){function n(e,t){if(r(e))return!1;var o=typeof e;return!!('number'==o||'symbol'==o||'boolean'==o||null==e||a(e))||p.test(e)||!i.test(e)||null!=t&&e in Object(t)}var r=o(15),a=o(22),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,p=/^\w*$/;e.exports=n},function(e,t,o){var n=o(95),r=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g,i=n(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(''),e.replace(r,function(e,o,n,r){t.push(n?r.replace(a,'$1'):o||e)}),t});e.exports=i},function(e,t,o){var n=o(96);e.exports=function(e){var t=n(e,function(e){return o.size===500&&o.clear(),e}),o=t.cache;return t}},function(e,t,o){function n(e,t){if('function'!=typeof e||null!=t&&'function'!=typeof t)throw new TypeError(a);var o=function(){var n=arguments,r=t?t.apply(this,n):n[0],a=o.cache;if(a.has(r))return a.get(r);var i=e.apply(this,n);return o.cache=a.set(r,i)||a,i};return o.cache=new(n.Cache||r),o}var r=o(47),a='Expected a function';n.Cache=r,e.exports=n},function(e,t,o){var n=o(98);e.exports=function(e){return null==e?'':n(e)}},function(e,t,o){function n(e){if('string'==typeof e)return e;if(i(e))return a(e,n)+'';if(p(e))return l?l.call(e):'';var t=e+'';return'0'==t&&1/e==-s?'-0':t}var r=o(20),a=o(99),i=o(15),p=o(22),s=1/0,d=r?r.prototype:void 0,l=d?d.toString:void 0;e.exports=n},function(e){e.exports=function(e,t){for(var o=-1,n=null==e?0:e.length,r=Array(n);++o<n;)r[o]=t(e[o],o,e);return r}},function(e,t,o){var n=o(22);e.exports=function(e){if('string'==typeof e||n(e))return e;var t=e+'';return'0'==t&&1/e==-(1/0)?'-0':t}},,,,,,,function(o,a){'use strict';/** @license React v16.13.1
2
+ * react-is.production.min.js
3
+ *
4
+ * Copyright (c) Facebook, Inc. and its affiliates.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */function i(t){if('object'==typeof t&&null!==t){var o=t.$$typeof;switch(o){case _:switch(t=t.type,t){case b:case l:case d:case f:case e:case n:return t;default:switch(t=t&&t.$$typeof,t){case h:case m:case r:case O:case g:return t;default:return o;}}case c:return o;}}}function s(e){return i(e)===l}var u='function'==typeof Symbol&&Symbol.for,_=u?Symbol.for('react.element'):60103,c=u?Symbol.for('react.portal'):60106,d=u?Symbol.for('react.fragment'):60107,e=u?Symbol.for('react.strict_mode'):60108,f=u?Symbol.for('react.profiler'):60114,g=u?Symbol.for('react.provider'):60109,h=u?Symbol.for('react.context'):60110,b=u?Symbol.for('react.async_mode'):60111,l=u?Symbol.for('react.concurrent_mode'):60111,m=u?Symbol.for('react.forward_ref'):60112,n=u?Symbol.for('react.suspense'):60113,p=u?Symbol.for('react.suspense_list'):60120,O=u?Symbol.for('react.memo'):60115,r=u?Symbol.for('react.lazy'):60116,t=u?Symbol.for('react.block'):60121,v=u?Symbol.for('react.fundamental'):60117,T=u?Symbol.for('react.responder'):60118,x=u?Symbol.for('react.scope'):60119;a.AsyncMode=b,a.ConcurrentMode=l,a.ContextConsumer=h,a.ContextProvider=g,a.Element=_,a.ForwardRef=m,a.Fragment=d,a.Lazy=r,a.Memo=O,a.Portal=c,a.Profiler=f,a.StrictMode=e,a.Suspense=n,a.isAsyncMode=function(e){return s(e)||i(e)===b},a.isConcurrentMode=s,a.isContextConsumer=function(e){return i(e)===h},a.isContextProvider=function(e){return i(e)===g},a.isElement=function(e){return'object'==typeof e&&null!==e&&e.$$typeof===_},a.isForwardRef=function(e){return i(e)===m},a.isFragment=function(e){return i(e)===d},a.isLazy=function(e){return i(e)===r},a.isMemo=function(e){return i(e)===O},a.isPortal=function(e){return i(e)===c},a.isProfiler=function(e){return i(e)===f},a.isStrictMode=function(t){return i(t)===e},a.isSuspense=function(e){return i(e)===n},a.isValidElementType=function(o){return'string'==typeof o||'function'==typeof o||o===d||o===l||o===f||o===e||o===n||o===p||'object'==typeof o&&null!==o&&(o.$$typeof===r||o.$$typeof===O||o.$$typeof===g||o.$$typeof===h||o.$$typeof===m||o.$$typeof===v||o.$$typeof===T||o.$$typeof===x||o.$$typeof===t)},a.typeOf=i},function(e,t,o){'use strict';(function(e){'production'!==e.env.NODE_ENV&&function(){function e(e){if('object'==typeof e&&null!==e){var t=e.$$typeof;switch(t){case a:var o=e.type;switch(o){case f:case u:case p:case d:case s:case m:return o;default:var n=o&&o.$$typeof;return n===c||n===y||n===_||n===h||n===l?n:t;}case i:return t;}}}function o(t){return T||(T=!0,console.warn('The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.')),n(t)||e(t)===f}function n(t){return e(t)===u}var r='function'==typeof Symbol&&Symbol.for,a=r?Symbol.for('react.element'):60103,i=r?Symbol.for('react.portal'):60106,p=r?Symbol.for('react.fragment'):60107,s=r?Symbol.for('react.strict_mode'):60108,d=r?Symbol.for('react.profiler'):60114,l=r?Symbol.for('react.provider'):60109,c=r?Symbol.for('react.context'):60110,f=r?Symbol.for('react.async_mode'):60111,u=r?Symbol.for('react.concurrent_mode'):60111,y=r?Symbol.for('react.forward_ref'):60112,m=r?Symbol.for('react.suspense'):60113,g=r?Symbol.for('react.suspense_list'):60120,h=r?Symbol.for('react.memo'):60115,_=r?Symbol.for('react.lazy'):60116,b=r?Symbol.for('react.block'):60121,x=r?Symbol.for('react.fundamental'):60117,v=r?Symbol.for('react.responder'):60118,O=r?Symbol.for('react.scope'):60119,T=!1;t.AsyncMode=f,t.ConcurrentMode=u,t.ContextConsumer=c,t.ContextProvider=l,t.Element=a,t.ForwardRef=y,t.Fragment=p,t.Lazy=_,t.Memo=h,t.Portal=i,t.Profiler=d,t.StrictMode=s,t.Suspense=m,t.isAsyncMode=o,t.isConcurrentMode=n,t.isContextConsumer=function(t){return e(t)===c},t.isContextProvider=function(t){return e(t)===l},t.isElement=function(e){return'object'==typeof e&&null!==e&&e.$$typeof===a},t.isForwardRef=function(t){return e(t)===y},t.isFragment=function(t){return e(t)===p},t.isLazy=function(t){return e(t)===_},t.isMemo=function(t){return e(t)===h},t.isPortal=function(t){return e(t)===i},t.isProfiler=function(t){return e(t)===d},t.isStrictMode=function(t){return e(t)===s},t.isSuspense=function(t){return e(t)===m},t.isValidElementType=function(e){return'string'==typeof e||'function'==typeof e||e===p||e===u||e===d||e===s||e===m||e===g||'object'==typeof e&&null!==e&&(e.$$typeof===_||e.$$typeof===h||e.$$typeof===l||e.$$typeof===c||e.$$typeof===y||e.$$typeof===x||e.$$typeof===v||e.$$typeof===O||e.$$typeof===b)},t.typeOf=e}()}).call(t,o(17))},function(e,t,o){'use strict';(function(t){function n(){return null}var r=o(53),a=o(110),p=o(36),i=o(111),s=Function.call.bind(Object.prototype.hasOwnProperty),d=function(){};'production'!==t.env.NODE_ENV&&(d=function(e){var t='Warning: '+e;'undefined'!=typeof console&&console.error(t);try{throw new Error(t)}catch(e){}}),e.exports=function(e,o){function l(e){var t=e&&(T&&e[T]||e[P]);if('function'==typeof t)return t}function c(e,t){return e===t?0!==e||1/e==1/t:e!==e&&t!==t}function f(e){this.message=e,this.stack=''}function u(e){function n(n,i,s,l,c,u,y){if(l=l||$,u=u||s,y!==p)if(o){var m=new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types');throw m.name='Invariant Violation',m}else if('production'!==t.env.NODE_ENV&&'undefined'!=typeof console){var g=l+':'+s;!r[g]&&3>a&&(d('You are manually calling a React.PropTypes validation function for the `'+u+'` prop on `'+l+'`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.'),r[g]=!0,a++)}return null==i[s]?n?null===i[s]?new f('The '+c+' `'+u+'` is marked as required '+('in `'+l+'`, but its value is `null`.')):new f('The '+c+' `'+u+'` is marked as required in '+('`'+l+'`, but its value is `undefined`.')):null:e(i,s,l,c,u)}if('production'!==t.env.NODE_ENV)var r={},a=0;var i=n.bind(null,!1);return i.isRequired=n.bind(null,!0),i}function y(e){return u(function(t,o,n,r,a){var i=t[o],p=b(i);if(p!==e){var s=x(i);return new f('Invalid '+r+' `'+a+'` of type '+('`'+s+'` supplied to `'+n+'`, expected ')+('`'+e+'`.'))}return null})}function m(e){return Array.isArray(e)?u(function(t,o,n,r,a){for(var p=t[o],s=0;s<e.length;s++)if(c(p,e[s]))return null;var i=JSON.stringify(e,function(e,t){var o=x(t);return'symbol'===o?t+'':t});return new f('Invalid '+r+' `'+a+'` of value `'+(p+'` ')+('supplied to `'+n+'`, expected one of '+i+'.'))}):('production'!==t.env.NODE_ENV&&(1<arguments.length?d('Invalid arguments supplied to oneOf, expected an array, got '+arguments.length+' arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'):d('Invalid argument supplied to oneOf, expected an array.')),n)}function g(e){function o(t,o,n,r,a){for(var s,d=0;d<e.length;d++)if(s=e[d],null==s(t,o,n,r,a,p))return null;return new f('Invalid '+r+' `'+a+'` supplied to '+('`'+n+'`.'))}if(!Array.isArray(e))return'production'===t.env.NODE_ENV?void 0:d('Invalid argument supplied to oneOfType, expected an instance of array.'),n;for(var r,a=0;a<e.length;a++)if(r=e[a],'function'!=typeof r)return d('Invalid argument supplied to oneOfType. Expected an array of check functions, but received '+v(r)+' at index '+a+'.'),n;return u(o)}function h(t){switch(typeof t){case'number':case'string':case'undefined':return!0;case'boolean':return!t;case'object':if(Array.isArray(t))return t.every(h);if(null===t||e(t))return!0;var o=l(t);if(o){var n,r=o.call(t);if(o!==t.entries){for(;!(n=r.next()).done;)if(!h(n.value))return!1;}else for(;!(n=r.next()).done;){var a=n.value;if(a&&!h(a[1]))return!1}}else return!1;return!0;default:return!1;}}function _(e,t){return'symbol'===e||!!t&&('Symbol'===t['@@toStringTag']||!!('function'==typeof Symbol&&t instanceof Symbol))}function b(e){var t=typeof e;return Array.isArray(e)?'array':e instanceof RegExp?'object':_(t,e)?'symbol':t}function x(e){if('undefined'==typeof e||null===e)return''+e;var t=b(e);if('object'===t){if(e instanceof Date)return'date';if(e instanceof RegExp)return'regexp'}return t}function v(e){var t=x(e);return'array'===t||'object'===t?'an '+t:'boolean'===t||'date'===t||'regexp'===t?'a '+t:t}function O(e){return e.constructor&&e.constructor.name?e.constructor.name:$}var T='function'==typeof Symbol&&Symbol.iterator,P='@@iterator',$='<<anonymous>>',E={array:y('array'),bool:y('boolean'),func:y('function'),number:y('number'),object:y('object'),string:y('string'),symbol:y('symbol'),any:function(){return u(n)}(),arrayOf:function(e){return u(function(t,o,n,r,a){if('function'!=typeof e)return new f('Property `'+a+'` of component `'+n+'` has invalid PropType notation inside arrayOf.');var s=t[o];if(!Array.isArray(s)){var d=b(s);return new f('Invalid '+r+' `'+a+'` of type '+('`'+d+'` supplied to `'+n+'`, expected an array.'))}for(var l,c=0;c<s.length;c++)if(l=e(s,c,n,r,a+'['+c+']',p),l instanceof Error)return l;return null})},element:function(){return u(function(t,o,n,r,a){var i=t[o];if(!e(i)){var p=b(i);return new f('Invalid '+r+' `'+a+'` of type '+('`'+p+'` supplied to `'+n+'`, expected a single ReactElement.'))}return null})}(),elementType:function(){return u(function(e,t,o,n,a){var i=e[t];if(!r.isValidElementType(i)){var p=b(i);return new f('Invalid '+n+' `'+a+'` of type '+('`'+p+'` supplied to `'+o+'`, expected a single ReactElement type.'))}return null})}(),instanceOf:function(e){return u(function(t,o,n,r,a){if(!(t[o]instanceof e)){var i=e.name||$,p=O(t[o]);return new f('Invalid '+r+' `'+a+'` of type '+('`'+p+'` supplied to `'+n+'`, expected ')+('instance of `'+i+'`.'))}return null})},node:function(){return u(function(e,t,o,n,r){return h(e[t])?null:new f('Invalid '+n+' `'+r+'` supplied to '+('`'+o+'`, expected a ReactNode.'))})}(),objectOf:function(e){return u(function(t,o,n,r,a){if('function'!=typeof e)return new f('Property `'+a+'` of component `'+n+'` has invalid PropType notation inside objectOf.');var i=t[o],d=b(i);if('object'!==d)return new f('Invalid '+r+' `'+a+'` of type '+('`'+d+'` supplied to `'+n+'`, expected an object.'));for(var l in i)if(s(i,l)){var c=e(i,l,n,r,a+'.'+l,p);if(c instanceof Error)return c}return null})},oneOf:m,oneOfType:g,shape:function(e){return u(function(t,o,n,r,a){var i=t[o],s=b(i);if('object'!==s)return new f('Invalid '+r+' `'+a+'` of type `'+s+'` '+('supplied to `'+n+'`, expected `object`.'));for(var d in e){var l=e[d];if(l){var c=l(i,d,n,r,a+'.'+d,p);if(c)return c}}return null})},exact:function(e){return u(function(t,o,n,r,i){var s=t[o],d=b(s);if('object'!==d)return new f('Invalid '+r+' `'+i+'` of type `'+d+'` '+('supplied to `'+n+'`, expected `object`.'));var l=a({},t[o],e);for(var c in l){var u=e[c];if(!u)return new f('Invalid '+r+' `'+i+'` key `'+c+'` supplied to `'+n+'`.\nBad object: '+JSON.stringify(t[o],null,' ')+'\nValid keys: '+JSON.stringify(Object.keys(e),null,' '));var y=u(s,c,n,r,i+'.'+c,p);if(y)return y}return null})}};return f.prototype=Error.prototype,E.checkPropTypes=i,E.resetWarningCache=i.resetWarningCache,E.PropTypes=E,E}}).call(t,o(17))},function(e){'use strict';/*
9
+ object-assign
10
+ (c) Sindre Sorhus
11
+ @license MIT
12
+ */function t(e){if(null===e||e===void 0)throw new TypeError('Object.assign cannot be called with null or undefined');return Object(e)}var o=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String('abc');if(e[5]='de','5'===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},o=0;10>o;o++)t['_'+String.fromCharCode(o)]=o;var n=Object.getOwnPropertyNames(t).map(function(e){return t[e]});if('0123456789'!==n.join(''))return!1;var r={};return['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t'].forEach(function(e){r[e]=e}),'abcdefghijklmnopqrst'===Object.keys(Object.assign({},r)).join('')}catch(e){return!1}}()?Object.assign:function(e){for(var a,p,d=t(e),l=1;l<arguments.length;l++){for(var s in a=Object(arguments[l]),a)n.call(a,s)&&(d[s]=a[s]);if(o){p=o(a);for(var c=0;c<p.length;c++)r.call(a,p[c])&&(d[p[c]]=a[p[c]])}}return d}},function(e,t,o){'use strict';(function(t){function n(e,o,n,s,d){if('production'!==t.env.NODE_ENV)for(var l in e)if(p(e,l)){var c;try{if('function'!=typeof e[l]){var f=Error((s||'React class')+': '+n+' type `'+l+'` is invalid; it must be a function, usually from the `prop-types` package, but received `'+typeof e[l]+'`.');throw f.name='Invariant Violation',f}c=e[l](o,l,s,n,null,a)}catch(e){c=e}if(c&&!(c instanceof Error)&&r((s||'React class')+': type specification of '+n+' `'+l+'` is invalid; the type checker function must return `null` or an `Error` but returned a '+typeof c+'. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).'),c instanceof Error&&!(c.message in i)){i[c.message]=!0;var u=d?d():'';r('Failed '+n+' type: '+c.message+(null==u?'':u))}}}var r=function(){};if('production'!==t.env.NODE_ENV){var a=o(36),i={},p=Function.call.bind(Object.prototype.hasOwnProperty);r=function(e){var t='Warning: '+e;'undefined'!=typeof console&&console.error(t);try{throw new Error(t)}catch(e){}}}n.resetWarningCache=function(){'production'!==t.env.NODE_ENV&&(i={})},e.exports=n}).call(t,o(17))},function(e,t,o){'use strict';function n(){}function r(){}var a=o(36);r.resetWarningCache=n,e.exports=function(){function e(e,t,o,n,r,i){if(i!==a){var p=new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types');throw p.name='Invariant Violation',p}}function t(){return e}e.isRequired=e;var o={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:r,resetWarningCache:n};return o.PropTypes=o,o}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,o){'use strict';var n=o(226),r=function(e){return e&&e.__esModule?e:{default:e}}(n),a=wp.editPost.PluginDocumentSettingPanel;a&&wp.plugins.registerPlugin('om-global-post-settings',{render:r.default,icon:null,priority:999})},function(e,t,o){'use strict';function n(e){return e&&e.__esModule?e:{default:e}}function r(e){var t=e.allDisabled,o=e.onToggle;return wp.element.createElement(y,{name:'om-settings-panel',title:OMAPI.i18n.settings,className:'om-settings-panel'},wp.element.createElement(h,{label:OMAPI.i18n.disable_all,checked:!!t,onChange:o}),wp.element.createElement('hr',null),wp.element.createElement('div',null,wp.element.createElement(g,{href:OMAPI.templatesUri+'&type=popup',style:{display:'flex',justifyContent:'center',marginBottom:'10px',width:'100%'},target:'_blank',rel:'noopener',isPrimary:!0},OMAPI.i18n.create_new_popup),wp.element.createElement(g,{href:OMAPI.campaignsUri,target:'_blank',rel:'noopener',isLink:!0},OMAPI.i18n.view_all,' \u2192')))}Object.defineProperty(t,'__esModule',{value:!0});var a=o(28),i=n(a),p=o(29),s=n(p),d=o(65),l=n(d),c=wp.data,f=c.withSelect,u=c.withDispatch,y=wp.editPost.PluginDocumentSettingPanel,m=wp.components,g=m.Button,h=m.ToggleControl;r.propTypes={allDisabled:s.default.bool,onToggle:s.default.func};var _=u(function(e){return{onToggle:function(t){return document.body.classList.toggle('om-campaigns-disabled',!!t),e('core/editor').editPost({meta:{om_disable_all_campaigns:!!t}})}}}),b=!1,x=f(function(e){var t=(0,l.default)(e('core/editor').getEditedPostAttribute('meta'),'om_disable_all_campaigns',!1);return b||(b=!0,document.body.classList.toggle('om-campaigns-disabled',!!t)),{allDisabled:t}});t.default=_(x(function(e){var t=e.allDisabled,o=e.onToggle;return wp.element.createElement(r,{allDisabled:t,onToggle:o})}))}]);
assets/dist/js/trustpulse.min.js CHANGED
@@ -1 +1 @@
1
- (function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={i:d,l:!1,exports:{}};return a[d].call(e.exports,e,e.exports,b),e.l=!0,e.exports}var c={};return b.m=a,b.c=c,b.d=function(a,c,d){b.o(a,c)||Object.defineProperty(a,c,{configurable:!1,enumerable:!0,get:d})},b.n=function(a){var c=a&&a.__esModule?function(){return a['default']}:function(){return a};return b.d(c,'a',c),c},b.o=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)},b.p='',b(b.s=47)})({0:function(a){var b=a.exports={version:'2.6.9'};'number'==typeof __e&&(__e=b)},47:function(a,b,c){'use strict';var d=c(48),e=function(a){return a&&a.__esModule?a:{default:a}}(d);jQuery(document).ready(function(a){a('.install-plugin-form').submit(function(b){b.preventDefault();var c=a('.button-install'),d=a('.button-activate'),f=c.html(),g=d.html();c.html('Installing...'),d.html('Activating...'),a('#om-plugin-alerts').hide(),a.ajax({type:'POST',beforeSend:function(a){a.setRequestHeader('X-WP-Nonce',omapiTp.restNonce)},url:omapiTp.restUrl+'omapp/v1/plugins/',data:{id:'trustpulse-api/trustpulse.php',url:omapiTp.pluginUrl,nonce:'install'===omapiTp.action?omapiTp.installNonce:omapiTp.activateNonce,installAction:omapiTp.action},success:function(){window.location.reload()},error:function(b,h,i){c.html(f),d.html(g);var j='Something went wrong!';if(b.responseJSON&&b.responseJSON.message&&(j+='<br>Error found: '+b.responseJSON.message),b.responseJSON&&b.responseJSON.data)try{j+='<br>(data: '+(0,e.default)(b.responseJSON.data)+')'}catch(a){}console.error('Could not '+omapiTp.action+' the TrustPulse plugin',{jqXHR:b,textStatus:h,errorThrown:i}),a('#om-plugin-alerts').show().html(a('<p/>').html(j))}})})})},48:function(a,b,c){a.exports={default:c(49),__esModule:!0}},49:function(a,b,c){var d=c(0),e=d.JSON||(d.JSON={stringify:JSON.stringify});a.exports=function(){return e.stringify.apply(e,arguments)}}});
1
+ (function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={i:d,l:!1,exports:{}};return a[d].call(e.exports,e,e.exports,b),e.l=!0,e.exports}var c={};return b.m=a,b.c=c,b.d=function(a,c,d){b.o(a,c)||Object.defineProperty(a,c,{configurable:!1,enumerable:!0,get:d})},b.n=function(a){var c=a&&a.__esModule?function(){return a['default']}:function(){return a};return b.d(c,'a',c),c},b.o=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)},b.p='',b(b.s=171)})({0:function(a){var b=a.exports={version:'2.6.9'};'number'==typeof __e&&(__e=b)},171:function(a,b,c){'use strict';var d=c(172),e=function(a){return a&&a.__esModule?a:{default:a}}(d);jQuery(document).ready(function(a){a('.install-plugin-form').submit(function(b){b.preventDefault();var c=a('.button-install'),d=a('.button-activate'),f=c.html(),g=d.html();c.html('Installing...'),d.html('Activating...'),a('#om-plugin-alerts').hide(),a.ajax({type:'POST',beforeSend:function(a){a.setRequestHeader('X-WP-Nonce',omapiTp.restNonce)},url:omapiTp.restUrl+'omapp/v1/plugins/',data:{id:'trustpulse-api/trustpulse.php',url:omapiTp.pluginUrl,nonce:'install'===omapiTp.action?omapiTp.installNonce:omapiTp.activateNonce,installAction:omapiTp.action},success:function(){window.location.reload()},error:function(b,h,i){c.html(f),d.html(g);var j='Something went wrong!';if(b.responseJSON&&b.responseJSON.message&&(j+='<br>Error found: '+b.responseJSON.message),b.responseJSON&&b.responseJSON.data)try{j+='<br>(data: '+(0,e.default)(b.responseJSON.data)+')'}catch(a){}console.error('Could not '+omapiTp.action+' the TrustPulse plugin',{jqXHR:b,textStatus:h,errorThrown:i}),a('#om-plugin-alerts').show().html(a('<p/>').html(j))}})})})},172:function(a,b,c){a.exports={default:c(173),__esModule:!0}},173:function(a,b,c){var d=c(0),e=d.JSON||(d.JSON={stringify:JSON.stringify});a.exports=function(){return e.stringify.apply(e,arguments)}}});
assets/dist/js/wc-marketing.min.js ADDED
@@ -0,0 +1 @@
 
1
+ (function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={i:d,l:!1,exports:{}};return a[d].call(e.exports,e,e.exports,b),e.l=!0,e.exports}var c={};return b.m=a,b.c=c,b.d=function(a,c,d){b.o(a,c)||Object.defineProperty(a,c,{configurable:!1,enumerable:!0,get:d})},b.n=function(a){var c=a&&a.__esModule?function(){return a['default']}:function(){return a};return b.d(c,'a',c),c},b.o=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)},b.p='',b(b.s=241)})({241:function(){'use strict';window.OMAPI_WooCommerce_Marketing=window.OMAPI_WooCommerce_Marketing||{},function(a,b,c,d){d.interval,d.insertEducationBox=function(){var a=c('.woocommerce-card:nth-child(2)'),d=a.length?a:c('.components-card:nth-child(2)'),e=c(b.getElementById('components-card-om'));d.length&&d.after(e.show())},d.initBox=function(){c('.woocommerce-marketing-overview').length&&(d.interval&&clearInterval(d.interval),d.insertEducationBox())},d.init=function(){d.interval=setInterval(function(){return d.initBox()},1e3),d.initBox()},c(d.init)}(window,document,jQuery,window.OMAPI_WooCommerce_Marketing)}});
assets/images/archie-icon.svg DELETED
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="189" height="159" fill="currentColor"><defs/><path d="M112.547 55.298c0 8.867-7.57 16.055-16.91 16.055-9.339 0-16.91-7.188-16.91-16.055s7.571-16.056 16.91-16.056c.955 0 1.89.075 2.802.22a8.824 8.824 0 1011.077 6.661c1.911 2.6 3.031 5.763 3.031 9.175z"/><path d="M134.604 31.662C120.805 19.652 103.51 15.729 86.45 15.69h-.33c-10.827.008-21.55 1.57-31.216 3.619 1.185.27 2.38.529 3.58.79 5.349 1.16 10.787 2.342 15.831 4.502-8.53.884-17.35 3.825-24.997 7.65-5.002 2.35-10.294 5.882-14.412 9.704l-4.119 4.118c1.324-.155 2.627-.352 3.914-.546 3.578-.54 7.038-1.063 10.499-.631-2.941 1.764-5.883 3.825-8.53 6.472-2.648 0-5.293-.296-6.763-1.177-.892-.447-1.276-3.59-1.538-5.728-.084-.685-.155-1.268-.226-1.625-.297-3.531-4.706-5.002-7.353-3.235-4.706 3.529-7.353 9.998-7.94 15.88-.59 5.883 0 13.532 4.115 17.941 3.531 4.118 11.201 5.56 17.67 5.856 0 .294-.181 4.174-.316 4.145H33.14c-.587-1.764-2.354-3.822-4.705-3.235-2.354.587-4.705 3.235-4.999 5.295-3.53 1.47-7.06 4.116-8.236 8.527-.587 2.355-.587 5.002 0 7.06 1.47 6.766 7.646 10.587 13.529 11.765.587.293.883.293 1.47.293v6.472c-.883-.883-2.057-1.47-3.234-1.764-1.471-.59-3.529-.59-5.296-.296-1.47-1.764-3.234-2.058-4.412-1.471-.586.297-1.174 1.767-1.174 3.238-2.06.88-3.824 1.764-5.295 2.941-1.47-.59-2.941-.883-3.528-.296-.587.296-.587 1.767-.294 3.237-.392.49-.784.948-1.177 1.405-.784.914-1.57 1.829-2.354 3.007-1.174-.59-2.351-.59-2.645 0-.59.881 0 2.351.881 3.822-.293 1.177-.587 2.354-.587 3.528 0 10.294 14.706 20.885 24.117 21.178 5.585.294 11.468-2.647 14.115-7.646 37.056 1.47 74.114 1.47 111.169 0 2.648 4.999 8.234 7.94 13.823 7.646 9.704-.293 24.41-10.884 24.116-21.178 0-1.174-.293-2.351-.59-3.528.884-1.471 1.471-2.941.297-3.822-.297-.59-1.471-.59-2.648 0-.883-1.471-2.057-2.941-3.528-4.412.293-1.47.293-2.647-.297-3.237-.587-.587-1.764-.294-3.234.296-1.471-.883-3.528-2.061-5.293-2.941 0-1.471-.59-2.941-1.177-3.238-.883-.587-2.941 0-4.411 1.471-1.765-.294-3.529-.294-5.293.296-1.177.294-2.06.881-3.237 1.764v-6.472c.123 0 .296-.051.498-.11.286-.083.629-.183.972-.183 5.882-1.178 12.058-4.999 13.529-11.765.59-2.058.59-4.412 0-7.06-.881-4.705-4.705-7.056-8.234-8.527-.293-2.06-2.647-4.708-4.998-5.295-2.355-.587-4.119 1.47-4.706 3.235-.59 0-.643-3.76-.643-4.054 6.47-.293 12.995-1.829 16.523-5.947 4.119-4.409 4.706-12.058 4.119-17.94-.59-5.586-3.235-12.059-7.943-15.587-2.645-1.764-7.057 0-7.35 3.235 0 1.47-.297 6.47-1.767 7.353-2.352 1.47-7.057 1.47-10.585.883-3.238-7.943-7.943-14.706-13.825-19.707zM27.553 126.365c4.705 1.471 9.117 10.001 10.88 17.647 0 .884 0 1.765-.293 2.942-1.177 5.882-7.056 9.707-12.939 9.413-6.472-.296-15.292-5.589-19.41-12.061-.884-10.294 14.409-19.998 21.762-17.941zm123.814 17.647c1.767-7.646 6.179-16.176 10.884-17.647 7.35-2.351 22.643 7.647 21.763 17.647-4.119 6.473-13.236 11.765-19.412 12.059-5.882.296-11.764-3.528-12.938-9.411-.297-.883-.297-1.764-.297-2.648zm-43.525-14.999c13.823 3.825 25.881 10.294 37.939 17.354-33.527.88-67.348 1.177-101.465-.294 11.471-7.059 23.53-12.648 36.762-16.47a91.5 91.5 0 0011.471 4.409c.506.17.721.242.924.217.151-.018.296-.091.547-.217 4.705-1.174 9.41-2.941 13.822-4.999zm-32.056-2.351c-12.059 3.528-23.823 8.82-34.705 15.293-.251-3.029-1.153-6.271-1.96-9.174-.134-.481-.265-.954-.39-1.414-.58-1.351-1.285-2.701-2.034-4.134-.394-.752-.799-1.528-1.204-2.338V111.66c.19-.126.394-.252.602-.382.76-.471 1.585-.982 2.045-1.675 2.06-.587 4.412-1.471 5-2.941.59-1.177-.588-2.354-2.059-3.235.294-.294.294-.59.294-.884.884-.293 2.06-.88 2.648-1.177 9.41 9.707 19.117 18.531 31.763 25.297zm37.055-.297c12.255-6.419 23.353-15.155 33.58-24.771l.241-.229c.59.59 1.47.884 2.354 1.177 0 .13.056.259.12.388l.053.108c.065.13.12.259.12.388-1.47.881-2.647 1.764-2.057 3.235.88 1.177 2.941 2.647 4.999 2.941.883.883 1.764 1.764 2.647 2.354 0 4.412 0 9.117-.293 13.529-1.177 2.057-2.354 4.118-2.941 6.176-1.178 2.941-2.061 6.763-2.355 10.294-11.764-6.473-23.823-11.765-36.468-15.59zM49.32 89.456c1.093-.128 2.185-.257 3.327-.386l.493-.055c.587 2.057 1.177 4.118 2.354 5.882 3.235 5.589 14.41 11.765 14.703 2.354 1.91 4.634 11.654 3.961 16.814 3.604a236.6 236.6 0 011.127-.076l1.011-.109c4.622-.496 6.987-.749 7.812-4.596 4.115 1.177 9.998 1.177 14.409.88l.925-.072c3.16-.242 5.945-.454 7.016-2.869l.066.4c.277 1.672.589 3.556 1.404 5.19 3.531 7.059 12.058.589 15.293-10.295 2.648.294 5.589.59 8.53.884 0 .129-.056.258-.12.384l-.053.112c-.065.129-.12.258-.12.384-.294 1.177 1.177 2.354 2.647 2.941-15.589 15.296-31.176 28.825-53.232 35.001-20.588-6.763-36.468-19.411-50.88-34.704 1.764-.59 2.94-1.47 2.94-3.531 0-.294 0-.587-.293-.88a592.84 592.84 0 003.827-.443zm76.166 8.97c-2.057.883-2.644.59-2.938-1.471-.346-2.304-.601-4.608-.855-6.894-.394-3.551-.783-7.059-1.499-10.457 4.412 0 8.824 0 12.942.293-.297 5.59-2.354 15.883-7.65 18.528zm-58.23-1.765c-.294 2.354-1.47 2.354-3.235 1.47-7.056-3.234-8.824-11.47-7.353-17.94l.771-.055c3.828-.274 7.43-.532 11.287-.532-.261 2.225-.464 5.265-.661 8.214-.246 3.676-.482 7.21-.81 8.843zm6.176-17.057c6.175-.296 12.351-.296 18.824-.296.293 2.647.88 16.766-.297 17.647-4.409 1.177-13.822 1.177-17.937-.587-2.061-.884-1.178-13.823-.59-16.764zm24.706 12.939c-1.47-.88-1.47-11.765-1.47-13.236 6.175-.293 12.645-.293 18.821-.293.293 1.764 1.177 13.235-.587 13.825-3.825 1.174-13.236 1.47-16.764-.296zM20.496 45.487c1.048-1.048 2.093-1.515 2.936-1.524h.044c1.021.003 1.726.69 1.726 1.817 0 1.84.47 3.45.78 4.397 0 0 .72 1.988 1.773 2.8l.027.021c1.2.793 3.096 1.33 4.476 1.606l1.177.05-2.474 4.285 5.709-2.278c.366-.121.72-.243 1.066-.363 1.321-.456 2.535-.875 3.933-1.107-3.529 6.472-5.88 13.529-6.763 20.882-1.177 0-2.648-.003-4.119-.297-.179-.035-2.553-.522-2.63-.58l-.017-.013c-3.531-.883-6.763-2.051-8.82-4.11-.58-.577-3.242-4.09-3.236-8.823l-.008-.085c-.273-3.59.625-12.886 4.42-16.678zm148.812 0c3.496 3.786 4.684 13.056 4.42 16.664-.088 2.662-.854 6.1-3.243 9.217-1.506 1.966-4.949 3.21-8.445 3.81l-3.026.601c-1.468.294-2.645.294-3.822.294-.587-7.353-2.354-14.41-4.706-21.176h3.822c.027.021.05.044.074.065l-.012-.059.233-.014c2.409-.154 4.15-.264 5.723-1.075 1.429-.733 2.694-1.573 3.402-3.346.294-.892.874-2.65.874-4.688 0-2.06 2.354-2.647 4.706-.293zM95.491 72.544c-13.823 0-25-11.177-25-25 0-13.528 11.177-24.706 25-24.706 13.822 0 24.997 10.884 24.997 24.706 0 13.823-11.175 25-24.998 25z"/><path d="M104.608 1C95.49-.249 85.49 3.72 81.374 12.836c14.704-7.94 29.703-5.292 41.174 7.65-.59-11.765-8.823-18.237-17.94-19.488z"/></svg>
 
assets/images/icons/cross-sell.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg width="18" height="17" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0)"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.869 9.627c.8 1.526 1.575 1.859 2.346 1.945l.019.002h2.804V9.237l3.959 3.636-3.959 3.635v-2.336h-2.804c-1.068-.024-2.164-.222-3.446-1.567l-.015-.015a4.884 4.884 0 01-.269-.315 9.764 9.764 0 00.463-.81c.302-.567.602-1.19.902-1.838zm-8.87 1.898h2.308c.976.08 1.802-.666 2.507-2.086l.026-.063c.162-.39.322-.765.479-1.122l.031-.072.033-.074.042-.095.034-.075.041-.091.05-.11.049-.107.049-.107.04-.087.033-.071.038-.082.035-.074.036-.076.037-.076.034-.072.038-.078.037-.076.034-.071.034-.069.023-.045.022-.045.022-.044c.238-.475.468-.902.69-1.278.344-.578.668-1.035.972-1.36l.015-.016c1.282-1.344 2.378-1.542 3.446-1.566h2.804V0l3.959 3.636-3.959 3.635V4.934h-2.804l-.02.002c-.8.09-1.606.446-2.438 2.129l-.057.126c-.17.381-.34.763-.512 1.142l-.012.026-.097.217-.024.051a84.45 84.45 0 01-.11.243l-.002.003-.077.17-.004.008-.076.164-.02.04-.023.052-.044.093-.015.032-.023.05-.036.077-.029.06-.034.071-.018.039-.042.088-.04.082-.04.085-.017.034-.027.055-.038.076-.017.036-.03.061-.034.067-.019.038-.041.083-.016.032-.026.051-.04.077-.017.034-.03.058-.034.066-.019.036-.031.06-.031.06-.02.038-.013.024-.025.048-.01.02-.019.034-.02.04-.012.021-.027.049-.009.016c-1.048 1.899-2.545 2.926-4.545 2.974H0v-2.647zm0-9.188h2.275c1.586.037 2.856.691 3.836 1.907-.44.684-.91 1.561-1.405 2.613-.68-1.282-1.472-1.95-2.398-1.873H0V2.337z" fill="currentColor"/></g><defs><clipPath id="clip0"><path d="M0 0h18v16.527H0z"/></clipPath></defs></svg>
assets/images/icons/gamified.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg width="19" height="13" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x=".722" width="13" height="13" rx="6.5" fill="currentColor"/><path stroke="#F9F9F9" stroke-width=".5" d="M7.111 0v13M2.344 1.99l10.213 10.214M0 6.9h14.444M1.99 12.101L12.204 1.887"/><path d="M12.215 6.803l-.187.108.187.108 4.334 2.502.187.109V4.193l-.187.108-4.334 2.502z" fill="currentColor" stroke="#F9F9F9" stroke-width=".25"/></svg>
assets/images/icons/increase-conversions.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg width="18" height="14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17.143 12H1.07V.214H0v12.857h17.143V12zM16.07 1.554a.264.264 0 00-.267-.268h-3.642a.267.267 0 00-.184.46l1.013 1.013-3.884 3.884-1.95-1.95a.268.268 0 00-.385 0L1.875 9.589l1.607 1.607 3.482-3.482 1.95 1.95a.268.268 0 00.386 0l5.298-5.298 1.013 1.013c.176.176.46.05.46-.184V1.554z" fill="currentColor"/></svg>
assets/images/icons/popup.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg width="18" height="13" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x=".5" y=".5" width="17" height="12" rx="1.5" stroke="currentColor"/><rect x="4.5" y="2" width="9" height="9" rx="1" fill="currentColor"/></svg>
assets/images/icons/reduce-abandonment.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg width="18" height="17" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0)"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.736 5.417a289 289 0 012.358-2.716.716.716 0 01.625-.264l3.503-.003h.002c.216.001.409.097.54.249l2.168 2.184 1.774-1.724a.714.714 0 01.531-.236.717.717 0 01.445 1.278l-2.233 2.192a.715.715 0 01-1.075-.046l-1.285-1.267-2.106 2.405 1.838 1.86a.906.906 0 01.324.794l.005-.002-.01.048a.908.908 0 01-.027.117l-1.12 5.016a.91.91 0 11-1.751-.47l.871-3.842h-.016l.002-.014-2.186-2.118-1.931 2.131a.908.908 0 01-.787.296l.003.006-4.03-.005a.911.911 0 01-.193 0 .91.91 0 01.049-1.813v-.001h.033a1.326 1.326 0 01.038 0l3.325.013 4.852-5.616.017-.004-1.312.004L6.754 6.43l-.003-.002a.717.717 0 11-1.015-1.011zM3.325 7.344a.285.285 0 00-.285-.285H.284A.285.285 0 000 7.344v.858c0 .157.127.285.284.285H3.04a.285.285 0 00.285-.285v-.858zm1.836-3.39a.285.285 0 00-.285-.284H.284A.285.285 0 000 3.955v.858c0 .157.127.285.284.285h4.592a.285.285 0 00.285-.285v-.858zM13.835 0a1.409 1.409 0 11-.002 2.818A1.409 1.409 0 0113.835 0zm-2.446.571a.29.29 0 00-.29-.29H.288A.29.29 0 000 .57v.848c0 .16.13.29.29.29H11.1c.16 0 .29-.13.29-.29V.57z" fill="currentColor"/></g><defs><clipPath id="clip0"><path d="M0 0h18v16.062H0z"/></clipPath></defs></svg>
assets/images/icons/sticky-bar.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg width="18" height="13" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x=".5" y=".5" width="17" height="12" rx="1.5" stroke="currentColor"/><rect x="2.2" y="2" width="13.6" height="4" rx="1" fill="currentColor"/></svg>
assets/images/metabox/cross-sell.svg ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ <svg width="78" height="78" viewBox="0 0 78 78" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.5" y="0.5" width="77" height="77" rx="3.5" fill="#E5F1FC" fill-opacity="0.2" stroke="#E5F1FC"/>
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M38.6052 43.4196C41.0482 48.0833 43.4187 49.1015 45.7739 49.3652L45.8317 49.3715H54.4026V42.2284L66.5 53.339L54.4026 64.4497V57.3095H45.8317C42.5683 57.2354 39.219 56.6311 35.3026 52.5227L35.2565 52.4743C34.9877 52.1874 34.7138 51.8667 34.4348 51.513C34.9161 50.7591 35.3735 49.961 35.8076 49.1182C35.81 49.1137 35.8478 49.0401 35.8478 49.0401C36.7704 47.3043 37.6888 45.4004 38.6052 43.4196ZM11.5 49.2202H18.552C21.533 49.4663 24.0587 47.1864 26.2129 42.8458L26.293 42.6527C26.7882 41.4584 27.2759 40.3148 27.7552 39.2248L27.8521 39.0048L27.9523 38.7786L28.0813 38.4885L28.1837 38.2594L28.3092 37.9805L28.4604 37.6463L28.6111 37.3158L28.7612 36.9891L28.8837 36.7242L28.9854 36.506L29.1018 36.2572L29.2082 36.0314L29.3187 35.7982L29.4298 35.5651L29.5343 35.3472L29.65 35.1074L29.7624 34.8762L29.869 34.6584L29.9723 34.4485L30.0412 34.3093L30.1094 34.1721L30.1767 34.0373C30.9033 32.5852 31.6076 31.2806 32.2878 30.1326C33.3354 28.3649 34.3267 26.9678 35.2565 25.9754L35.3026 25.927C39.219 21.8185 42.5683 21.2143 45.8317 21.1402H54.4026V14L66.5 25.1107L54.4026 36.2212V29.0782H45.8317L45.7739 29.0845C43.3271 29.3585 40.864 30.4466 38.32 35.5904L38.147 35.9763C37.6258 37.14 37.105 38.3085 36.5831 39.4659L36.5469 39.5461C36.4473 39.7668 36.3477 39.987 36.248 40.2069L36.1766 40.3642C36.0636 40.613 35.9506 40.8609 35.8376 41.1076L35.834 41.1155C35.7549 41.2885 35.6758 41.4609 35.5966 41.6326L35.5845 41.6587C35.5073 41.8264 35.4301 41.9935 35.3527 42.16L35.2948 42.2846L35.2212 42.4429L35.0884 42.7269L35.0421 42.8257L34.972 42.975C34.9346 43.0544 34.8972 43.1337 34.86 43.2127L34.7736 43.3952L34.6697 43.6138L34.6138 43.7312L34.4851 44.0002L34.3638 44.2522L34.2386 44.511L34.1887 44.6136L34.1052 44.7846L33.9916 45.0165L33.9375 45.1265L33.8457 45.3121L33.7443 45.5162L33.6859 45.6334L33.5586 45.8871L33.5099 45.9835L33.4302 46.141L33.3105 46.3759L33.2571 46.48L33.1664 46.6564L33.0619 46.858L33.0041 46.9692L32.9083 47.152L32.813 47.3329L32.7506 47.4505L32.7128 47.5241L32.6372 47.6701L32.6046 47.7321L32.5494 47.8365L32.4841 47.9588L32.4489 48.024L32.3679 48.1725L32.3415 48.2205C29.1372 54.0244 24.5633 57.165 18.4492 57.3095H11.5V49.2202ZM11.5 21.1402H18.4492C23.2975 21.2548 27.1774 23.2533 30.1736 26.9698C28.8311 29.061 27.3915 31.7407 25.8793 34.9539C23.7989 31.0365 21.3804 28.996 18.552 29.2294H11.5V21.1402Z" fill="#087CE1"/>
4
+ </svg>
assets/images/metabox/gamified.svg ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <svg width="114" height="100" viewBox="0 0 113 100" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M57.4944 37.158C55.9794 36.338 54.1544 36.3579 52.6594 37.2129C43.7544 42.2929 12.6744 60.0279 2.93944 65.5829C2.33444 65.9279 1.9644 66.5679 1.9644 67.2579C1.9594 67.9529 2.33444 68.593 2.93444 68.938C12.2944 74.303 41.4644 91.013 52.3344 97.238C54.8894 98.703 58.0345 98.6879 60.5795 97.2029C71.1445 91.0179 99.0994 74.663 108.914 68.918C109.619 68.503 110.044 67.743 110.034 66.928C110.019 66.113 109.564 65.363 108.849 64.978C98.1894 59.203 66.5294 42.0529 57.4944 37.158Z" fill="#D7DFE5" fill-opacity="0.16"/>
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M29.4079 78.9615C28.8979 78.6265 28.5879 78.0516 28.5879 77.4366C28.5879 71.1516 28.5879 36.6965 28.5879 28.7665C28.5879 27.7565 29.1229 26.8266 29.9929 26.3216C36.9079 22.3166 67.1329 4.80655 73.2079 1.28655C73.8779 0.896549 74.6929 0.846544 75.4029 1.15654C76.3529 1.56654 77.6779 2.14158 78.5129 2.50158C78.9879 2.70658 79.2979 3.17658 79.2979 3.69158C79.2979 9.69658 79.2979 45.5916 79.2979 53.1166C79.2979 53.9716 78.8379 54.7566 78.0929 55.1816C71.4779 58.9466 39.5729 77.0966 33.5779 80.5066C32.9829 80.8466 32.2479 80.8216 31.6729 80.4466C30.9879 79.9966 30.0679 79.3915 29.4079 78.9615Z" fill="#E5F1FC"/>
4
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M29.043 79.5165C29.703 79.9515 30.6229 80.5516 31.3079 81.0016C32.0879 81.5166 33.093 81.5466 33.908 81.0866C39.903 77.6766 71.8079 59.5265 78.4229 55.7615C79.3729 55.2215 79.963 54.2116 79.963 53.1166C79.963 45.5916 79.963 9.69659 79.963 3.69159C79.963 2.90659 79.498 2.20154 78.778 1.88654C77.943 1.52654 76.618 0.956574 75.668 0.546574C74.763 0.151574 73.7279 0.211547 72.8729 0.706547C66.7979 4.22655 36.573 21.7366 29.663 25.7416C28.583 26.3666 27.918 27.5215 27.918 28.7665C27.918 36.6965 27.918 71.1516 27.918 77.4366C27.918 78.2766 28.343 79.0615 29.043 79.5165ZM29.778 78.4066C29.448 78.1916 29.2529 77.8266 29.2529 77.4366C29.2529 71.1516 29.2529 36.6965 29.2529 28.7665C29.2529 27.9965 29.6629 27.2815 30.3279 26.8965C37.2429 22.8915 67.468 5.38158 73.543 1.86158C74.028 1.58158 74.6229 1.54654 75.1379 1.76654C76.0879 2.17654 77.4129 2.75158 78.2479 3.11158C78.4779 3.21158 78.6279 3.44159 78.6279 3.69159C78.6279 9.69659 78.6279 45.5916 78.6279 53.1166C78.6279 53.7316 78.2979 54.2966 77.7629 54.6016C71.1479 58.3666 39.2429 76.5166 33.2479 79.9266C32.8679 80.1416 32.403 80.1265 32.038 79.8865L29.778 78.4066Z" fill="#1B374C"/>
5
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M78.8794 2.83152C78.8794 2.83152 41.9244 24.0165 34.3794 28.3415C33.4744 28.8565 32.9194 29.8215 32.9144 30.8615C32.8844 39.4115 32.7444 80.6866 32.7444 80.6866C32.7444 80.8216 32.8544 80.9366 32.9944 80.9366C33.1294 80.9366 33.2444 80.8266 33.2444 80.6866C33.2444 80.6866 33.3844 39.4115 33.4144 30.8615C33.4144 30.0015 33.8794 29.2065 34.6294 28.7765C42.1694 24.4515 79.1244 3.26651 79.1244 3.26651C79.2444 3.19651 79.2894 3.04655 79.2194 2.92655C79.1494 2.80655 78.9994 2.76152 78.8794 2.83152Z" fill="#1B374C"/>
6
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M76.2234 8.03857L45.0984 26.0436L45.1234 29.8136L76.2234 12.1136V8.03857Z" fill="white"/>
7
+ <path d="M41.8435 31.3926C42.8594 30.8075 43.6829 29.5096 43.6829 28.4938C43.6829 27.4779 42.8594 27.1287 41.8435 27.7138C40.8277 28.299 40.0042 29.5968 40.0042 30.6127C40.0042 31.6286 40.8277 31.9778 41.8435 31.3926Z" fill="#83C11F" fill-opacity="0.16"/>
8
+ <path d="M37.5496 33.7745C38.5655 33.1893 39.389 31.8915 39.389 30.8756C39.389 29.8597 38.5655 29.5105 37.5496 30.0957C36.5337 30.6808 35.7102 31.9787 35.7102 32.9945C35.7102 34.0104 36.5337 34.3596 37.5496 33.7745Z" fill="#FF0002" fill-opacity="0.13"/>
9
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M76.2235 15.6282L35.8135 38.2532L35.7085 76.0782L76.2235 52.9632V15.6282Z" fill="#BCDEF7"/>
10
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M76.4735 15.6282C76.4735 15.5382 76.4285 15.4582 76.3535 15.4132C76.2735 15.3682 76.1785 15.3682 76.1035 15.4082L35.6885 38.0332C35.6135 38.0782 35.5635 38.1632 35.5635 38.2532L35.4585 76.0732C35.4585 76.1632 35.5085 76.2482 35.5835 76.2932C35.6635 76.3382 35.7585 76.3382 35.8335 76.2932L76.3485 53.1832C76.4285 53.1382 76.4735 53.0532 76.4735 52.9632V15.6282ZM36.0635 38.3982L35.9635 75.6432L75.9735 52.8182V16.0532L36.0635 38.3982Z" fill="#1B374C"/>
11
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M76.2245 15.6292L88.8095 16.2342L85.2195 44.8192L49.1145 75.4592L35.7095 76.0742L35.8095 38.2542L76.2245 15.6292Z" fill="#63AEED" fill-opacity="0.15"/>
12
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M88.8096 16.233L49.2145 38.4018L49.1116 75.464L88.8096 52.8152V16.233Z" fill="#0482DF"/>
13
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M85.7978 28.7038C85.7978 28.6085 85.7476 28.5182 85.6649 28.4681C85.5796 28.4204 85.4768 28.4179 85.394 28.4655C83.726 29.3961 77.4003 32.9277 75.5693 33.9485C75.2583 34.1216 75.0676 34.4477 75.0676 34.8013C75.0676 36.4843 75.0676 41.3804 75.0676 42.8151C75.0676 42.9004 75.1128 42.9756 75.183 43.0183C75.2557 43.0609 75.3435 43.0634 75.4188 43.0208C77.0441 42.1153 83.8464 38.3179 85.4567 37.4199C85.6674 37.302 85.7978 37.0763 85.7978 36.8355C85.7978 35.3782 85.7978 30.2765 85.7978 28.7038Z" fill="#BCDEF7"/>
14
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M85.7978 39.011C85.7978 38.9584 85.7727 38.9107 85.7276 38.8856C85.6824 38.858 85.6273 38.8581 85.5821 38.8831C84.1976 39.6557 76.6002 43.8971 75.2658 44.6395C75.1429 44.7097 75.0676 44.8402 75.0676 44.9806C75.0676 45.4823 75.0676 46.6862 75.0676 47.2581C75.0676 47.3233 75.1027 47.3835 75.1579 47.4161C75.2156 47.4512 75.2833 47.4512 75.341 47.4186C76.861 46.5708 84.2452 42.4498 85.5896 41.6999C85.7175 41.6271 85.7978 41.4917 85.7978 41.3412C85.7978 40.812 85.7978 39.5478 85.7978 39.011Z" fill="white"/>
15
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M85.7978 43.2035C85.7978 43.1509 85.7727 43.1032 85.7276 43.0781C85.6824 43.0505 85.6273 43.0506 85.5821 43.0757C84.1976 43.8482 76.6002 48.0896 75.2658 48.832C75.1429 48.9022 75.0676 49.0327 75.0676 49.1731C75.0676 49.6748 75.0676 50.8787 75.0676 51.4506C75.0676 51.5158 75.1027 51.576 75.1579 51.6086C75.2156 51.6437 75.2833 51.6437 75.341 51.6111C76.861 50.7633 84.2452 46.6423 85.5896 45.8924C85.7175 45.8196 85.7978 45.6842 85.7978 45.5337C85.7978 45.0045 85.7978 43.7403 85.7978 43.2035Z" fill="#83C11F"/>
16
+ <path d="M62.2566 58.7306C67.2597 55.8489 71.3155 49.457 71.3155 44.4539C71.3155 39.4508 67.2597 37.7311 62.2566 40.6129C57.2535 43.4946 53.1978 49.8865 53.1978 54.8896C53.1978 59.8927 57.2535 61.6124 62.2566 58.7306Z" fill="#BCDEF7"/>
17
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M62.9578 48.9806L68.8148 37.71C68.8573 37.6285 68.9583 37.5965 69.0398 37.639C69.1213 37.6815 69.1533 37.7825 69.1108 37.864L63.2628 49.1161L74.1563 43.0706C74.2368 43.0261 74.3383 43.0551 74.3833 43.1356C74.4278 43.2161 74.3988 43.3176 74.3183 43.3621L63.2948 49.4796L71.7108 52.1481C71.7983 52.1761 71.8473 52.2701 71.8193 52.3576C71.7913 52.4451 71.6978 52.4936 71.6098 52.4661L63.0318 49.7461L64.2383 62.1816C64.2473 62.2731 64.1803 62.3546 64.0888 62.3636C63.9973 62.3721 63.9153 62.3051 63.9068 62.2136L62.7343 50.1331L56.1158 62.8676C56.0733 62.9496 55.9728 62.9811 55.8913 62.9391C55.8098 62.8966 55.7778 62.7956 55.8203 62.7141L62.4563 49.9451L51.4263 56.0666C51.3458 56.1111 51.2443 56.0821 51.1993 56.0016C51.1548 55.9211 51.1838 55.8196 51.2643 55.7751L62.4563 49.5636L53.1518 46.6136C53.0643 46.5856 53.0153 46.4921 53.0433 46.4041C53.0713 46.3166 53.1648 46.2681 53.2523 46.2956L62.6513 49.2756L61.6328 38.778C61.6238 38.6865 61.6908 38.6051 61.7823 38.5961C61.8738 38.5876 61.9558 38.6545 61.9643 38.746L62.9578 48.9806Z" fill="#0482DF"/>
18
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M71.8797 43.6802C72.0606 43.4819 72.2563 43.3088 72.4779 43.2138C73.0549 42.9665 73.5234 43.3223 73.5234 44.0078C73.5234 44.6933 73.0549 45.4507 72.4779 45.698C72.3297 45.7615 72.1887 45.7852 72.061 45.7738L72.0607 45.7737C71.9696 45.7671 71.9192 45.7587 71.8584 45.7404L70.3494 45.364C70.8615 44.805 71.4013 44.2048 71.8797 43.6802ZM73.0476 44.2117C73.0476 44.5908 72.7884 45.0096 72.4692 45.1465C72.1499 45.2833 71.8907 45.0866 71.8907 44.7075C71.8907 44.3285 72.1499 43.9096 72.4692 43.7728C72.7884 43.6359 73.0476 43.8327 73.0476 44.2117Z" fill="white"/>
19
+ </svg>
assets/images/metabox/increase-conversions.svg ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ <svg width="78" height="78" viewBox="0 0 78 78" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.5" y="0.5" width="77" height="77" rx="3.5" fill="#E5F1FC" fill-opacity="0.2" stroke="#E5F1FC"/>
3
+ <path d="M65.8571 56H14.4286V18.2857H11V59.4286H65.8571V56ZM62.4286 22.5714C62.4286 22.0893 62.0536 21.7143 61.5714 21.7143H49.9196C49.1696 21.7143 48.7679 22.625 49.3304 23.1875L52.5714 26.4286L40.1429 38.8571L33.9018 32.6161C33.5536 32.2679 33.0179 32.2679 32.6696 32.6161L17 48.2857L22.1429 53.4286L33.2857 42.2857L39.5268 48.5268C39.875 48.875 40.4107 48.875 40.7589 48.5268L57.7143 31.5714L60.9554 34.8125C61.5179 35.375 62.4286 34.9732 62.4286 34.2232V22.5714Z" fill="#0482DF"/>
4
+ </svg>
assets/images/metabox/popup.svg ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <svg width="114" height="100" viewBox="0 0 114 100" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0)">
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M57.7835 37.0532C56.2609 36.2291 54.4267 36.2492 52.9242 37.1085C43.9744 42.214 12.7383 60.0381 2.95435 65.621C2.34631 65.9678 1.97441 66.611 1.97441 67.3044C1.96939 68.0029 2.34631 68.6462 2.94932 68.9929C12.3564 74.3849 41.6729 91.1789 52.5975 97.4351C55.1654 98.9075 58.3262 98.8924 60.884 97.3999C71.5021 91.1838 99.5976 74.7467 109.462 68.9728C110.17 68.5557 110.598 67.7919 110.588 66.9728C110.572 66.1537 110.115 65.4 109.397 65.013C98.683 59.209 66.8639 41.9728 57.7835 37.0532Z" fill="#D7DFE5" fill-opacity="0.16"/>
4
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M29.5558 79.0669C29.0433 78.7302 28.7317 78.1523 28.7317 77.5342C28.7317 71.2177 28.7317 36.5895 28.7317 28.6196C28.7317 27.6046 29.2693 26.6699 30.1437 26.1624C37.0935 22.1373 67.4704 4.53925 73.5759 1.00156C74.2493 0.609605 75.0684 0.559349 75.7819 0.870907C76.7367 1.28297 78.0684 1.86089 78.9076 2.2227C79.3849 2.42873 79.6965 2.90109 79.6965 3.41868C79.6965 9.45385 79.6965 45.5292 79.6965 53.092C79.6965 53.9513 79.2342 54.7403 78.4855 55.1674C71.8372 58.9513 39.7719 77.1926 33.7468 80.6197C33.1488 80.9614 32.41 80.9363 31.8322 80.5594C31.1437 80.1071 30.2191 79.499 29.5558 79.0669Z" fill="#E5F1FC"/>
5
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M29.189 79.6247C29.8523 80.0619 30.7769 80.6649 31.4653 81.1172C32.2493 81.6348 33.2593 81.6649 34.0784 81.2026C40.1036 77.7754 72.1688 59.5342 78.8171 55.7503C79.7719 55.2076 80.3649 54.1925 80.3649 53.092C80.3649 45.5292 80.3649 9.45387 80.3649 3.41869C80.3649 2.62975 79.8975 1.92115 79.1739 1.60457C78.3347 1.24276 77.0031 0.669927 76.0483 0.257867C75.1388 -0.139118 74.0985 -0.0788439 73.2392 0.418644C67.1337 3.95633 36.7568 21.5544 29.8121 25.5795C28.7267 26.2076 28.0583 27.3684 28.0583 28.6196C28.0583 36.5895 28.0583 71.2177 28.0583 77.5343C28.0583 78.3785 28.4855 79.1674 29.189 79.6247ZM29.9277 78.5091C29.596 78.293 29.4 77.9262 29.4 77.5343C29.4 71.2177 29.4 36.5895 29.4 28.6196C29.4 27.8458 29.8121 27.1272 30.4804 26.7403C37.4302 22.7151 67.8071 5.11717 73.9126 1.57948C74.4001 1.29807 74.998 1.26286 75.5156 1.48397C76.4704 1.89603 77.802 2.47395 78.6412 2.83576C78.8724 2.93626 79.0231 3.16743 79.0231 3.41869C79.0231 9.45387 79.0231 45.5292 79.0231 53.092C79.0231 53.7101 78.6915 54.278 78.1538 54.5845C71.5056 58.3684 39.4402 76.6096 33.4151 80.0368C33.0332 80.2528 32.5659 80.2377 32.199 79.9965L29.9277 78.5091Z" fill="#1B374C"/>
6
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M79.276 2.55428C79.276 2.55428 42.1353 23.8457 34.5524 28.1925C33.6429 28.7101 33.0851 29.6799 33.08 30.7252C33.0499 39.3181 32.9092 80.8006 32.9092 80.8006C32.9092 80.9362 33.0197 81.0518 33.1604 81.0518C33.2961 81.0518 33.4117 80.9413 33.4117 80.8006C33.4117 80.8006 33.5524 39.3181 33.5826 30.7252C33.5826 29.8608 34.0499 29.0618 34.8037 28.6297C42.3816 24.2829 79.5223 2.99146 79.5223 2.99146C79.6429 2.92111 79.6881 2.77039 79.6177 2.64979C79.5474 2.52918 79.3966 2.48393 79.276 2.55428Z" fill="#1B374C"/>
7
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M76.6066 7.78751L45.3252 25.883L45.3503 29.672L76.6066 11.883V7.78751Z" fill="white"/>
8
+ <path d="M42.054 31.2589C43.0749 30.6708 43.9026 29.3664 43.9026 28.3454C43.9026 27.3244 43.0749 26.9735 42.054 27.5616C41.033 28.1496 40.2053 29.454 40.2053 30.475C40.2053 31.496 41.033 31.8469 42.054 31.2589Z" fill="#83C11F" fill-opacity="0.16"/>
9
+ <path d="M37.7383 33.6528C38.7593 33.0647 39.5869 31.7603 39.5869 30.7394C39.5869 29.7184 38.7593 29.3674 37.7383 29.9555C36.7173 30.5436 35.8896 31.848 35.8896 32.869C35.8896 33.8899 36.7173 34.2409 37.7383 33.6528Z" fill="#FF0002" fill-opacity="0.13"/>
10
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M76.6066 15.4153L35.9935 38.1539L35.8879 76.169L76.6066 52.9379V15.4153Z" fill="#FEFFFF"/>
11
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M76.8578 15.4152C76.8578 15.3248 76.8126 15.2444 76.7372 15.1992C76.6568 15.154 76.5614 15.154 76.486 15.1942L35.8679 37.9329C35.7925 37.9781 35.7423 38.0635 35.7423 38.1539L35.6367 76.164C35.6367 76.2544 35.687 76.3399 35.7623 76.3851C35.8427 76.4304 35.9382 76.4304 36.0136 76.3851L76.7322 53.159C76.8126 53.1138 76.8578 53.0283 76.8578 52.9379V15.4152ZM36.2448 38.2997L36.1443 75.7318L76.3553 52.7921V15.8424L36.2448 38.2997Z" fill="#1B374C"/>
12
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M69.2256 27.562L88.3009 26.3308L85.6477 44.7529L62.9793 65.4866L47.0095 60.7077L47.0648 39.969L69.2256 27.562Z" fill="#63AEED" fill-opacity="0.15"/>
13
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M69.2225 27.5637L47.0661 39.9687L47.0085 60.7078L69.2225 48.0341V27.5637Z" fill="#BCDEF7"/>
14
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M89.2565 27.203C89.2565 26.9119 89.1011 26.6407 88.8496 26.4918C88.5949 26.3429 88.284 26.3396 88.0259 26.4819C83.2688 29.1482 66.1691 38.7186 63.0198 40.4818C62.7121 40.6571 62.5203 40.9814 62.517 41.3353C62.5103 44.6302 62.464 61.108 62.4541 64.9752C62.4541 65.1439 62.5434 65.2994 62.689 65.3821C62.8345 65.4681 63.0132 65.4681 63.1587 65.3854C66.8407 63.2847 83.8478 53.582 88.2277 51.0844C88.8629 50.7205 89.2565 50.0423 89.2565 49.3112C89.2565 45.2058 89.2565 31.6326 89.2565 27.203Z" fill="#0482DF"/>
15
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M86.7723 30.9681C86.7723 30.7463 86.6538 30.5421 86.4622 30.4312C86.2706 30.3177 86.0362 30.3152 85.8421 30.4236C82.3203 32.395 69.8518 39.3754 66.9855 40.9813C66.6199 41.1855 66.3956 41.5712 66.3931 41.9871C66.388 43.8375 66.3754 48.9651 66.3704 50.8205C66.3704 50.9617 66.4435 51.0927 66.567 51.1633C66.688 51.2364 66.8393 51.2364 66.9603 51.1658C70.003 49.4314 83.79 41.5661 86.379 40.0888C86.6387 39.9426 86.7975 39.6653 86.7975 39.3679C86.7925 37.8427 86.7799 33.1059 86.7723 30.9681Z" fill="#BCDEF7"/>
16
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M86.7746 41.7489C86.7721 41.6607 86.7267 41.58 86.6511 41.5372C86.5755 41.4918 86.4822 41.4918 86.4065 41.5347C83.8553 42.964 68.7298 51.4319 66.6349 52.6041C66.4861 52.6873 66.3954 52.8436 66.3928 53.0125C66.3928 53.6276 66.3878 55.1099 66.3878 55.8284C66.3853 55.9141 66.4307 55.9922 66.5038 56.0326C66.5743 56.0754 66.6651 56.0754 66.7382 56.0351C69.2062 54.6309 83.8806 46.2841 86.4242 44.8371C86.6536 44.706 86.7973 44.459 86.7948 44.1943C86.7897 43.559 86.7797 42.3767 86.7746 41.7489Z" fill="white"/>
17
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M86.7748 46.7273C86.7723 46.6441 86.7294 46.5685 86.6563 46.5256C86.5832 46.4827 86.495 46.4827 86.4219 46.5231C83.9186 47.9272 68.6871 56.453 66.625 57.6076C66.4838 57.6883 66.3956 57.837 66.3956 58.0009C66.3931 58.6084 66.388 60.1109 66.3855 60.8344C66.3855 60.9176 66.4309 60.9933 66.5015 61.0336C66.5721 61.0764 66.6603 61.0764 66.7334 61.0361C69.2442 59.6067 84.5791 50.8868 86.5832 49.7474C86.7143 49.6692 86.7975 49.528 86.795 49.3743C86.7925 48.8096 86.7799 47.4155 86.7748 46.7273Z" fill="#83C11F"/>
18
+ </g>
19
+ <defs>
20
+ <clipPath id="clip0">
21
+ <rect width="113.065" height="100" fill="white"/>
22
+ </clipPath>
23
+ </defs>
24
+ </svg>
assets/images/metabox/reduce-abandonment.svg ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ <svg width="78" height="78" viewBox="0 0 78 78" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0.5" y="0.5" width="77" height="77" rx="3.5" fill="#E5F1FC" fill-opacity="0.2" stroke="#E5F1FC"/>
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M29.073 30.5952C34.4515 24.3636 35.9056 22.7116 36.2977 22.2741C36.6595 21.8264 37.1934 21.5235 37.7984 21.4665C37.8666 21.4601 37.936 21.4568 38.0063 21.4568C38.0749 21.4568 38.1427 21.4599 38.2095 21.4662C40.2218 21.4643 48.9407 21.4568 48.9407 21.4568H48.9478C49.6083 21.459 50.2005 21.7534 50.6017 22.2174C50.6017 22.2174 56.8608 28.5237 57.2426 28.9085L62.6769 23.6271C62.7403 23.5572 62.8081 23.4912 62.8798 23.43L62.8799 23.4299C63.2636 23.1021 63.7612 22.9042 64.3047 22.9042C65.5164 22.9042 66.5 23.8878 66.5 25.0995C66.5 25.6291 66.3121 26.1152 65.9994 26.4945C65.9006 26.6141 65.7896 26.7231 65.668 26.8197L58.8275 33.5353C58.4277 33.9524 57.8652 34.2121 57.2426 34.2121C56.732 34.2121 56.2618 34.0373 55.8885 33.7443C55.7574 33.6414 55.6384 33.5239 55.5337 33.3944L51.5979 29.5113L45.1479 36.8792L50.7775 42.5771C50.9192 42.6947 51.049 42.8263 51.1649 42.9692L51.1651 42.9694C51.5531 43.4483 51.7859 44.0583 51.7859 44.7223C51.7859 44.8195 51.7809 44.9155 51.771 45.0102L51.7859 45.0039L51.7531 45.1508C51.734 45.2732 51.7071 45.3931 51.6728 45.5097L48.2408 60.8754C48.2259 60.9604 48.2072 61.044 48.1848 61.126L48.1847 61.1261C47.8623 62.3088 46.7796 63.1795 45.4951 63.1795C43.9568 63.1795 42.7078 61.9304 42.7078 60.392C42.7078 60.0564 42.7671 59.7346 42.876 59.4368L45.5448 47.6662L45.4951 47.6635L45.5031 47.6226L38.8062 41.1363L32.8895 47.6635C32.3791 48.2319 31.6386 48.5897 30.8152 48.5897C30.7018 48.5897 30.5898 48.5828 30.4795 48.5695L30.4883 48.5897L18.1425 48.5745C18.0464 48.5845 17.949 48.5897 17.8501 48.5897C17.749 48.5897 17.6492 48.5842 17.5508 48.5737H17.5506C16.1528 48.4241 15.0627 47.2394 15.0627 45.8022C15.0627 44.3138 16.2318 43.0962 17.7009 43.0187L17.7011 43.0148L17.8028 43.0151C17.8185 43.015 17.8343 43.0148 17.8501 43.0148C17.8737 43.0148 17.8971 43.0151 17.9205 43.0156L28.1039 43.0564L42.9674 25.8528L43.0202 25.841L39.0005 25.851L32.1918 33.701L32.1828 33.6929C31.7835 34.1056 31.224 34.3624 30.6049 34.3624C29.3934 34.3624 28.4096 33.3786 28.4096 32.1671C28.4096 31.551 28.6639 30.994 29.073 30.5952ZM21.6867 36.4962C21.6867 36.0151 21.296 35.6245 20.8149 35.6245H12.3718C11.8907 35.6245 11.5 36.0151 11.5 36.4962V39.1265C11.5 39.6076 11.8907 39.9983 12.3718 39.9983H20.8149C21.296 39.9983 21.6867 39.6076 21.6867 39.1265V36.4962ZM27.3115 26.1141C27.3115 25.633 26.921 25.2423 26.4399 25.2423H12.3718C11.8907 25.2423 11.5 25.633 11.5 26.1141V28.7445C11.5 29.2256 11.8907 29.6161 12.3718 29.6161H26.4399C26.921 29.6161 27.3115 29.2256 27.3115 28.7445V26.1141ZM53.8823 14C56.263 14 58.1958 15.9327 58.1958 18.3135C58.1958 20.6941 56.263 22.627 53.8823 22.627C51.5017 22.627 49.5688 20.6941 49.5688 18.3135C49.5688 15.9327 51.5017 14 53.8823 14ZM46.3889 15.749C46.3889 15.2586 45.9906 14.8602 45.5001 14.8602H12.389C11.8983 14.8602 11.5 15.2586 11.5 15.749V18.3452C11.5 18.8357 11.8983 19.234 12.389 19.234H45.5001C45.9906 19.234 46.3889 18.8357 46.3889 18.3452V15.749Z" fill="#087CE1"/>
4
+ </svg>
assets/images/metabox/sticky-bar.svg ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <svg width="114" height="100" viewBox="0 0 110 99" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M56.7835 37.0532C55.2609 36.2291 53.4267 36.2492 51.9242 37.1085C42.9744 42.214 11.7383 60.0381 1.95435 65.621C1.34631 65.9677 0.974415 66.6109 0.974415 67.3044C0.96939 68.0029 1.34631 68.6462 1.94932 68.9929C11.3564 74.3849 40.6729 91.1788 51.5975 97.4351C54.1654 98.9075 57.3262 98.8924 59.884 97.3999C70.5021 91.1838 98.5976 74.7467 108.462 68.9728C109.17 68.5557 109.598 67.7919 109.588 66.9728C109.572 66.1537 109.115 65.3999 108.397 65.013C97.683 59.209 65.8639 41.9728 56.7835 37.0532Z" fill="#D7DFE5" fill-opacity="0.16"/>
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M28.5558 79.0669C28.0433 78.7302 27.7317 78.1524 27.7317 77.5343C27.7317 71.2177 27.7317 36.5895 27.7317 28.6197C27.7317 27.6046 28.2693 26.67 29.1437 26.1624C36.0935 22.1373 66.4704 4.53928 72.5759 1.0016C73.2493 0.609635 74.0684 0.559379 74.7819 0.870937C75.7367 1.283 77.0684 1.86092 77.9076 2.22273C78.3849 2.42876 78.6965 2.90112 78.6965 3.41871C78.6965 9.45389 78.6965 45.5292 78.6965 53.0921C78.6965 53.9514 78.2342 54.7403 77.4855 55.1674C70.8372 58.9514 38.7719 77.1926 32.7468 80.6197C32.1488 80.9614 31.41 80.9363 30.8322 80.5594C30.1437 80.1072 29.2191 79.4991 28.5558 79.0669Z" fill="#E5F1FC"/>
4
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M28.189 79.6246C28.8523 80.0618 29.7769 80.6649 30.4653 81.1171C31.2493 81.6347 32.2593 81.6648 33.0784 81.2025C39.1036 77.7754 71.1688 59.5342 77.8171 55.7503C78.7719 55.2075 79.3649 54.1925 79.3649 53.092C79.3649 45.5292 79.3649 9.45383 79.3649 3.41866C79.3649 2.62971 78.8975 1.92112 78.1739 1.60454C77.3347 1.24273 76.0031 0.669896 75.0483 0.257836C74.1388 -0.139149 73.0985 -0.0788744 72.2392 0.418613C66.1337 3.9563 35.7568 21.5543 28.8121 25.5794C27.7267 26.2076 27.0583 27.3684 27.0583 28.6196C27.0583 36.5895 27.0583 71.2176 27.0583 77.5342C27.0583 78.3784 27.4855 79.1674 28.189 79.6246ZM28.9277 78.5091C28.596 78.293 28.4 77.9262 28.4 77.5342C28.4 71.2176 28.4 36.5895 28.4 28.6196C28.4 27.8457 28.8121 27.1272 29.4804 26.7402C36.4302 22.7151 66.8071 5.11713 72.9126 1.57945C73.4001 1.29804 73.998 1.26283 74.5156 1.48394C75.4704 1.896 76.802 2.47392 77.6412 2.83573C77.8724 2.93623 78.0231 3.1674 78.0231 3.41866C78.0231 9.45383 78.0231 45.5292 78.0231 53.092C78.0231 53.7101 77.6915 54.2779 77.1538 54.5845C70.5056 58.3684 38.4402 76.6096 32.4151 80.0367C32.0332 80.2528 31.5659 80.2377 31.199 79.9965L28.9277 78.5091Z" fill="#1B374C"/>
5
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M78.276 2.55422C78.276 2.55422 41.1353 23.8457 33.5524 28.1924C32.6429 28.71 32.0851 29.6799 32.08 30.7251C32.0499 39.3181 31.9092 80.8005 31.9092 80.8005C31.9092 80.9362 32.0197 81.0518 32.1604 81.0518C32.2961 81.0518 32.4117 80.9412 32.4117 80.8005C32.4117 80.8005 32.5524 39.3181 32.5826 30.7251C32.5826 29.8608 33.0499 29.0618 33.8037 28.6296C41.3816 24.2829 78.5223 2.9914 78.5223 2.9914C78.6429 2.92105 78.6881 2.77033 78.6177 2.64973C78.5474 2.52912 78.3966 2.48387 78.276 2.55422Z" fill="#1B374C"/>
6
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M75.6066 7.78748L44.3252 25.883L44.3503 29.6719L75.6066 11.883V7.78748Z" fill="white"/>
7
+ <path d="M41.054 31.2588C42.0749 30.6707 42.9026 29.3664 42.9026 28.3454C42.9026 27.3244 42.0749 26.9735 41.054 27.5615C40.033 28.1496 39.2053 29.454 39.2053 30.475C39.2053 31.496 40.033 31.8469 41.054 31.2588Z" fill="#83C11F" fill-opacity="0.16"/>
8
+ <path d="M36.7383 33.6528C37.7593 33.0647 38.5869 31.7603 38.5869 30.7394C38.5869 29.7184 37.7593 29.3674 36.7383 29.9555C35.7173 30.5436 34.8896 31.848 34.8896 32.869C34.8896 33.8899 35.7173 34.2409 36.7383 33.6528Z" fill="#FF0002" fill-opacity="0.13"/>
9
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M75.6066 15.4152L34.9935 38.1539L34.8879 76.1689L75.6066 52.9378V15.4152Z" fill="#FEFFFF"/>
10
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M72.4225 35.0752L38.5737 54.0896L38.5193 56.6432L72.4225 37.5646V35.0752Z" fill="#E5F1FC"/>
11
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M72.4225 39.0199L38.5737 58.0343L38.5193 60.5879L72.4225 41.5093V39.0199Z" fill="#E5F1FC"/>
12
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M72.4225 45.8591L38.5737 64.8734L38.5193 67.427L72.4225 48.3485V45.8591Z" fill="#E5F1FC"/>
13
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M72.4225 49.8038L38.5737 68.8182L38.5193 71.3718L72.4225 52.2933V49.8038Z" fill="#E5F1FC"/>
14
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M75.8578 15.4152C75.8578 15.3247 75.8126 15.2444 75.7372 15.1991C75.6568 15.1539 75.5614 15.1539 75.486 15.1941L34.8679 37.9328C34.7925 37.978 34.7423 38.0634 34.7423 38.1539L34.6367 76.1639C34.6367 76.2544 34.687 76.3398 34.7623 76.3851C34.8427 76.4303 34.9382 76.4303 35.0136 76.3851L75.7322 53.159C75.8126 53.1137 75.8578 53.0283 75.8578 52.9378V15.4152ZM35.2448 38.2996L35.1443 75.7318L75.3553 52.7921V15.8424L35.2448 38.2996Z" fill="#1B374C"/>
15
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M72.4391 18.8636L38.5904 37.9037L38.5024 49.3479L72.4391 30.6002V18.8636Z" fill="#0482DF" fill-opacity="0.2"/>
16
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M72.4417 18.7823L87.2406 19.7573L87.0447 32.8527L47.0396 55.1542L38.502 49.3452L38.5874 37.903L72.4417 18.7823Z" fill="#63AEED" fill-opacity="0.15"/>
17
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M87.6115 20.2028C87.6115 20.0435 87.5311 19.894 87.3904 19.8143C87.2547 19.731 87.0839 19.7287 86.9432 19.8065C82.0135 22.5104 51.4658 39.2678 47.4356 41.4787C47.1643 41.6271 46.9985 41.9109 46.9934 42.2204C46.9784 44.3473 46.918 52.6338 46.8979 54.8837C46.8979 55.0014 46.9583 55.1108 47.0638 55.1683C47.1643 55.2294 47.2899 55.2311 47.3904 55.1745C51.6517 52.8219 82.0738 36.0158 86.9532 33.3202C87.3602 33.0957 87.6115 32.6682 87.6115 32.203C87.6115 29.837 87.6115 22.5833 87.6115 20.2028Z" fill="#0482DF"/>
18
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M85.839 25.7844C85.839 25.6253 85.7557 25.4774 85.618 25.3958C85.4816 25.3139 85.3111 25.3107 85.1709 25.3866C83.2397 26.4335 77.6861 29.4443 76.0745 30.3184C75.8004 30.4666 75.6299 30.7518 75.6286 31.0627C75.6236 31.9129 75.6135 33.6251 75.6084 34.5122C75.6072 34.6294 75.669 34.7385 75.7701 34.7981C75.8711 34.8582 75.9949 34.8608 76.0985 34.8046C77.7758 33.8866 83.2624 30.8849 85.1747 29.8385C85.5852 29.6141 85.839 29.1848 85.839 28.7175C85.839 27.8997 85.839 26.6034 85.839 25.7844Z" fill="#83C11F"/>
19
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M74.0997 32.4032C74.0997 32.244 74.0164 32.096 73.8796 32.0144C73.7428 31.9328 73.5733 31.9289 73.4335 32.0047C69.9002 33.9106 53.4175 42.8015 50.5028 44.374C50.2292 44.5213 50.0597 44.8035 50.0567 45.1124C50.0448 45.9644 50.021 47.6893 50.0091 48.5819C50.0062 48.7 50.0686 48.8092 50.1697 48.8691C50.2679 48.9309 50.3958 48.9329 50.4969 48.8778C53.5632 47.2178 69.9091 38.3651 73.4305 36.4584C73.8439 36.2347 74.0997 35.8035 74.0997 35.3344C74.0997 34.5155 74.0997 33.2209 74.0997 32.4032Z" fill="white"/>
20
+ </svg>
assets/js/Elementor/CampaignSelector.js ADDED
@@ -0,0 +1,288 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ import { getOptions, getCampaign } from '../Utils/campaigns';
4
+
5
+ const removed = [];
6
+ OMAPI._usedSlugs = OMAPI._usedSlugs || {};
7
+
8
+ class CampaignSelector extends elementorModules.frontend.handlers.Base {
9
+ static $editorSelect = null;
10
+ static instances = [];
11
+
12
+ getDefaultSettings() {
13
+ return {
14
+ selectors: {
15
+ holder: '.om-elementor-editor .om-elementor-holder',
16
+ select: '.om-elementor-editor select',
17
+ links: '.om-elementor-editor a',
18
+ },
19
+ };
20
+ }
21
+
22
+ getDefaultElements() {
23
+ const selectors = this.getSettings('selectors');
24
+
25
+ return {
26
+ $holder: this.$element.find(selectors.holder),
27
+ $select: this.$element.find(selectors.select),
28
+ $links: this.$element.find(selectors.links),
29
+ };
30
+ }
31
+
32
+ bindEvents() {
33
+ CampaignSelector.instances.push(this);
34
+
35
+ this.oldSlug = this.campaignSlug();
36
+ this.campaignLoaded = false;
37
+
38
+ this.on('campaignLoaded', () => {
39
+ this.campaignLoaded = true;
40
+ this.$element.find('.om-elementor-editor .om-errors').hide();
41
+ });
42
+
43
+ this.on('otherCampaignLoaded', this.updateSelect.bind(this));
44
+ this.on('otherCampaignRemoved', this.updateSelect.bind(this));
45
+ this.on('campaignError', this.foundError.bind(this));
46
+
47
+ this.elements.$select.on('change', this.onSelect.bind(this));
48
+ this.elements.$links.on('click', this.onClickLinks.bind(this));
49
+
50
+ this.initCampaignPreview();
51
+ this.maybeTogglePanelSettings();
52
+ }
53
+
54
+ unbindEvents() {
55
+ const campaign = this.getCampaign();
56
+
57
+ if (campaign) {
58
+ removed.push(campaign);
59
+ campaign.off();
60
+ }
61
+ if (this.oldSlug) {
62
+ delete OMAPI._usedSlugs[this.oldSlug];
63
+
64
+ window.OMAPI_Elementor.utils.events.trigger(document, 'Plugin.Elementor.Instance.removed', {
65
+ id: this.oldSlug,
66
+ });
67
+ }
68
+ }
69
+
70
+ /**
71
+ * Handles get-campaigns error.
72
+ *
73
+ * @2.2.0
74
+ *
75
+ * @param {Object} error Error event object
76
+ *
77
+ * @returns {void}
78
+ */
79
+ foundError(error) {
80
+ const slug = this.campaignSlug();
81
+
82
+ if (error.responseURL && 0 > error.responseURL.indexOf(slug)) {
83
+ return;
84
+ }
85
+
86
+ let msg = error;
87
+
88
+ if (error.response) {
89
+ msg = JSON.parse(error.response).message || JSON.parse(error.response).error;
90
+ }
91
+
92
+ if (error.message) {
93
+ msg = error.message;
94
+ }
95
+
96
+ this.$element.find('.om-elementor-editor .om-errors').show().find('.om-error-description').html(msg);
97
+ }
98
+
99
+ onClickLinks(event) {
100
+ event.preventDefault();
101
+ window.open(event.target.href);
102
+ }
103
+
104
+ onSelect(event) {
105
+ event.preventDefault();
106
+ const $select = window.parent.jQuery(
107
+ '#elementor-controls .elementor-control-campaign_id select[data-setting="campaign_id"]'
108
+ );
109
+
110
+ $select.val(this.elements.$select.val()).trigger('change');
111
+ }
112
+
113
+ onElementChange(propertyName, controlView, elementView) {
114
+ const $editorSelect = controlView.$el.find('select[data-setting="campaign_id"]');
115
+ if ($editorSelect.length) {
116
+ CampaignSelector.$editorSelect = $editorSelect;
117
+ }
118
+
119
+ this.maybeTogglePanelSettings();
120
+
121
+ if ('campaign_id' === propertyName) {
122
+ this.initCampaignPreview();
123
+ }
124
+ }
125
+
126
+ initCampaignPreview() {
127
+ this.initCampaign();
128
+ this.updateSelect();
129
+ }
130
+
131
+ initCampaign() {
132
+ const slug = this.campaignSlug();
133
+ if (!slug) {
134
+ return;
135
+ }
136
+
137
+ if (this.oldSlug) {
138
+ delete OMAPI._usedSlugs[this.oldSlug];
139
+ }
140
+ this.oldSlug = slug;
141
+
142
+ OMAPI._usedSlugs[slug] = true;
143
+
144
+ this.elements.$holder.html(`<div id="om-${slug}-holder"></div>`);
145
+
146
+ let campaign = this.getCampaign();
147
+ if (campaign) {
148
+ return;
149
+ }
150
+
151
+ if (removed.length) {
152
+ campaign = removed.find((c) => slug === c.id);
153
+ if (campaign) {
154
+ removed.splice(removed.indexOf(campaign), 1);
155
+ return setTimeout(() => campaign.reset(), 200);
156
+ }
157
+ }
158
+
159
+ if (campaign) {
160
+ return;
161
+ }
162
+
163
+ const embed = {
164
+ id: `om-${slug}-js`,
165
+ type: 'text/javascript',
166
+ src: OMAPI.apiUrl,
167
+ async: true,
168
+ 'data-user': OMAPI.omUserId,
169
+ 'data-campaign': slug,
170
+ };
171
+ if (OMAPI.omEnv) {
172
+ embed['data-env'] = OMAPI.omEnv;
173
+ }
174
+
175
+ // Attempt to append it to the <head>, otherwise append to the document.
176
+ const head = document.getElementsByTagName('head')[0] || document.documentElement;
177
+ const newScript = document.createElement('script');
178
+ let att;
179
+ for (att in embed) {
180
+ newScript.setAttribute(att, embed[att]);
181
+ }
182
+
183
+ head.appendChild(newScript);
184
+ }
185
+
186
+ updateSelect() {
187
+ this.updateSelectOptions(this.elements.$select);
188
+ }
189
+
190
+ updateSelectOptions($select) {
191
+ const slug = this.campaignSlug();
192
+ const fragment = document.createDocumentFragment();
193
+ $select.find('option').remove();
194
+ getOptions('inline', slug).forEach((o) => {
195
+ const option = document.createElement('option');
196
+ option.textContent = o.label;
197
+ option.value = o.value;
198
+ if (o.selected) {
199
+ option.selected = true;
200
+ }
201
+
202
+ if (o.disabled) {
203
+ option.disabled = true;
204
+ }
205
+
206
+ fragment.appendChild(option);
207
+ });
208
+ $select.append(fragment);
209
+ }
210
+
211
+ /**
212
+ * Get the campaign slug from element settings.
213
+ *
214
+ * @since 2.2.0
215
+ *
216
+ * @returns {string} Campaign slug.
217
+ */
218
+ campaignSlug() {
219
+ return this.getElementSettings('campaign_id');
220
+ }
221
+
222
+ /**
223
+ * Get the global campaign object from OM API.
224
+ *
225
+ * @since 2.2.0
226
+ *
227
+ * @returns {Object|null} The global campaign object or null.
228
+ */
229
+ getCampaign() {
230
+ return getCampaign(this.campaignSlug());
231
+ }
232
+
233
+ /**
234
+ * Called from parent classs.
235
+ *
236
+ * @since 2.2.0
237
+ *
238
+ * @param {string} changed The thing that changed.
239
+ *
240
+ * @returns {void}
241
+ */
242
+ onEditSettingsChange(changed) {
243
+ if ('panel' === changed) {
244
+ this.maybeTogglePanelSettings();
245
+ }
246
+ }
247
+
248
+ maybeTogglePanelSettings() {
249
+ setTimeout(() => {
250
+ const page = elementor.getPanelView().getCurrentPageView();
251
+ const slug = this.campaignSlug();
252
+
253
+ if (page.getControlViewByName) {
254
+ ['edit_campaign', 'followrules', 'campaign_id'].forEach((k) => {
255
+ const model = page.getControlModel(k);
256
+
257
+ if (!model) {
258
+ return;
259
+ }
260
+
261
+ const view = page.getControlViewByModel(model);
262
+ if (!view) {
263
+ return;
264
+ }
265
+
266
+ if ('campaign_id' === k) {
267
+ const $select = view.$el.find('[data-setting="campaign_id"]');
268
+ if ($select.length) {
269
+ this.updateSelectOptions($select);
270
+ }
271
+ } else {
272
+ // Toggle these controls from view.
273
+ view.$el[slug ? 'show' : 'hide']();
274
+ }
275
+
276
+ if (slug && 'edit_campaign' === k) {
277
+ const $link = view.$el.find('a');
278
+ if ($link.length) {
279
+ $link.attr('href', OMAPI.editUrl.replace(/--CAMPAIGN_SLUG--/g, slug));
280
+ }
281
+ }
282
+ });
283
+ }
284
+ }, 10);
285
+ }
286
+ }
287
+
288
+ export default CampaignSelector;
assets/js/Utils/campaigns.js ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import get from 'lodash/get';
2
+
3
+ import { hasSites } from './sites';
4
+
5
+ /**
6
+ * Get available inline campaign select options.
7
+ *
8
+ * @since [since]
9
+ *
10
+ * @param {string} type The campaign generic type (inline or other).
11
+ * @param {string} slug The campaign slug.
12
+ * @param {boolean} checkSites Whether to check for sites (return empty result if no sites connected).
13
+ *
14
+ * @returns {Array} Array of campaign options for select elements.
15
+ * Includes value, label, and selected/disabled properties.
16
+ */
17
+ export const getOptions = (type, slug = null, checkSites = true) => {
18
+ if (checkSites && !hasSites()) {
19
+ return [];
20
+ }
21
+
22
+ const campaigns = get(OMAPI, `campaigns.${type}`, {});
23
+ if (Object.keys(campaigns).length < 1 || !OMAPI.omUserId) {
24
+ return [];
25
+ }
26
+
27
+ let available = Object.keys(campaigns).map((value) => {
28
+ let label = get(campaigns, `${value}.title`, '');
29
+ if (get(campaigns, `${value}.pending`)) {
30
+ label += ' [Pending]';
31
+ }
32
+
33
+ const selected = null !== slug && slug === value;
34
+ const disabled = null !== slug && get(OMAPI, `_usedSlugs.${value}`) && value !== slug;
35
+
36
+ return { value, label, selected, disabled };
37
+ });
38
+
39
+ if (available.length > 0) {
40
+ available.unshift({ value: '', label: OMAPI.i18n.campaign_select });
41
+ }
42
+
43
+ return available;
44
+ };
45
+
46
+ /**
47
+ * Get the global campaign object from OM API for given slug.
48
+ *
49
+ * @since 2.3.0
50
+ *
51
+ * @param {string} slug The campaign slug.
52
+ *
53
+ * @returns {Object|null} The global campaign object or null.
54
+ */
55
+ export const getCampaign = (slug = '') => {
56
+ const key = `om${slug}`;
57
+ return window[key] ? window[key] : null;
58
+ };
assets/js/Utils/monsterlink.js ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Get a monsterlink from an id.
3
+ *
4
+ * @since 2.3.0
5
+ *
6
+ * @param {string} id Campaign Id.
7
+ *
8
+ * @returns {string} Campaign monsterlink url.
9
+ */
10
+ export const getMonsterlink = (id) => OMAPI.monsterlink + id + '/';
assets/js/Utils/sites.js ADDED
@@ -0,0 +1 @@
 
1
+ export const hasSites = () => OMAPI.site_ids && OMAPI.site_ids.length > 0;
assets/js/admin.js CHANGED
@@ -11,29 +11,28 @@ jQuery(document).ready(function ($) {
11
  *
12
  * @since 2.0.0
13
  *
14
- * @return {void}
15
  */
16
  function omapiHandleAppRouterLinks() {
17
  const links = document.querySelectorAll('a[href*="?page=optin-monster-"]');
18
- links.forEach( a => {
19
- a.addEventListener( 'click', evt => {
20
- if ( window.omWpApi && window.omWpApi.main ) {
21
  const router = window.omWpApi.main.app.$router;
22
- const url = evt.target.search || evt.target.closest('a').search
23
- const route = router.getRouteForQuery( url );
24
 
25
- if ( route ) {
26
-
27
- if ( window.omWpApi.elRemove ) {
28
- $( window.omWpApi.elRemove ).remove();
29
  }
30
 
31
  evt.preventDefault();
32
- router.push({ name: route.name })
33
  }
34
  }
35
- })
36
- })
37
  }
38
 
39
  omapiHandleAppRouterLinks();
11
  *
12
  * @since 2.0.0
13
  *
14
+ * @returns {void}
15
  */
16
  function omapiHandleAppRouterLinks() {
17
  const links = document.querySelectorAll('a[href*="?page=optin-monster-"]');
18
+ links.forEach((a) => {
19
+ a.addEventListener('click', (evt) => {
20
+ if (window.omWpApi && window.omWpApi.main) {
21
  const router = window.omWpApi.main.app.$router;
22
+ const url = evt.target.search || evt.target.closest('a').search;
23
+ const route = router.getRouteForQuery(url);
24
 
25
+ if (route) {
26
+ if (window.omWpApi.elRemove) {
27
+ $(window.omWpApi.elRemove).remove();
 
28
  }
29
 
30
  evt.preventDefault();
31
+ router.push({ name: route.name });
32
  }
33
  }
34
+ });
35
+ });
36
  }
37
 
38
  omapiHandleAppRouterLinks();
assets/js/editor.js ADDED
@@ -0,0 +1,417 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ==========================================================
2
+ * editor.js
3
+ * ==========================================================
4
+ * Copyright 2021 Awesome Motive.
5
+ * https://awesomemotive.com
6
+ * ========================================================== */
7
+
8
+ import { getMonsterlink } from './Utils/monsterlink';
9
+
10
+ window.OMAPI_Editor = window.OMAPI_Editor || {};
11
+
12
+ /**
13
+ * OptinMonster Classic Editor functionality.
14
+ */
15
+ (function (window, document, $, app, undefined) {
16
+ 'use strict';
17
+
18
+ // Make sure the OMAPI and OMAPI.monsterlink global is set.
19
+ window.OMAPI = window.OMAPI || {};
20
+ OMAPI.monsterlink = app.monsterlink;
21
+
22
+ /**
23
+ * Get the currently active mce editor Id.
24
+ *
25
+ * @since 2.3.0
26
+ *
27
+ * @returns {string|undefined} Tinymce editor instance Id if found.
28
+ */
29
+ app.getActiveEditorId = function () {
30
+ let { wpActiveEditor, tinymce } = window;
31
+
32
+ if (wp.media.editor.activeEditor) {
33
+ wpActiveEditor = wp.media.editor.activeEditor;
34
+ }
35
+
36
+ if (!wpActiveEditor && tinymce && tinymce.activeEditor) {
37
+ wpActiveEditor = tinymce.activeEditor.id;
38
+ }
39
+
40
+ return wpActiveEditor;
41
+ };
42
+
43
+ /**
44
+ * Get the active WP tinymce editor instance.
45
+ *
46
+ * @since 2.3.0
47
+ *
48
+ * @returns {Object|null} Tinymce editor instance or null if not found.
49
+ */
50
+ app.getActiveEditor = function () {
51
+ const editorId = app.getActiveEditorId();
52
+
53
+ // No luck...
54
+ if (!editorId || !window.tinymce) {
55
+ return null;
56
+ }
57
+
58
+ return window.tinymce.get(editorId);
59
+ };
60
+
61
+ /**
62
+ * Insert the selected campaign monsterlkink to the editor.
63
+ *
64
+ * @since 2.3.0
65
+ *
66
+ * @returns {void}
67
+ */
68
+ app.mceLinkifyText = function () {
69
+ const id = app.$select.val();
70
+ if (id) {
71
+ app.getActiveEditor().execCommand('mceInsertLink', false, {
72
+ href: getMonsterlink(id),
73
+ target: '_blank',
74
+ rel: 'noopener noreferrer',
75
+ });
76
+ }
77
+ };
78
+
79
+ /**
80
+ * Open campaign monsterlink modal
81
+ *
82
+ * @since 2.3.0
83
+ *
84
+ * @returns {void}
85
+ */
86
+ app.modalOpenLink = function () {
87
+ // Show our modal.
88
+ app.$toToggle.addClass('optin-monster-modal-monsterlink').removeClass('optin-monster-modal-inline');
89
+
90
+ app.$body.addClass('modal-open om-modal-open-monsterlink');
91
+ app.$modalWrap.show();
92
+
93
+ // When opening link modal, set "selected" option, if URL set.
94
+ app.updateLinkSelectOptions(app.$select);
95
+
96
+ // Trigger the original link link options button.
97
+ // This is a hack...
98
+ // We need this to be "open" (though we hide it with CSS)
99
+ // In order for the mce selection to remain in place, otherwise focus shifts.
100
+ const $optionsBtn = $('.wp-link-input').parent().find('.dashicons-admin-generic').parent();
101
+ $optionsBtn.click();
102
+
103
+ $(document).trigger('om-modal-open-monsterlink');
104
+ };
105
+
106
+ /**
107
+ * Open campaign shortcode modal
108
+ *
109
+ * @since 2.3.0
110
+ *
111
+ * @returns {void}
112
+ */
113
+ app.modalOpenInline = function () {
114
+ app.$toToggle.addClass('optin-monster-modal-inline').removeClass('optin-monster-modal-monsterlink').show();
115
+
116
+ app.$body.addClass('modal-open om-modal-open-inline');
117
+ app.updateInlineSelectOptions();
118
+
119
+ $(document).trigger('om-modal-open-inline');
120
+ };
121
+
122
+ /**
123
+ * Close campaign shortcode modal
124
+ *
125
+ * @since 2.3.0
126
+ *
127
+ * @returns {void}
128
+ */
129
+ app.modalClose = function () {
130
+ // When closing our modals, empty value for our campaign selects.
131
+ ['$select', '$linkSelect', '$inlineSelect'].forEach((k) => {
132
+ if (app[k] && app[k].length) {
133
+ app[k].val('');
134
+ }
135
+ });
136
+
137
+ app.$toToggle.hide();
138
+ const type = app.$body.hasClass('om-modal-open-monsterlink') ? 'monsterlink' : 'inline';
139
+ app.$body.removeClass('modal-open om-modal-open-monsterlink om-modal-open-inline');
140
+ $(document).trigger(`om-modal-close-${type}`);
141
+ };
142
+
143
+ /**
144
+ * Insert the selected campaign shortcode to the editor.
145
+ *
146
+ * @since 2.3.0
147
+ *
148
+ * @returns {void}
149
+ */
150
+ app.insertShortcode = function () {
151
+ const id = app.$inlineSelect.val();
152
+ if (id) {
153
+ wp.media.editor.insert(`[optin-monster slug="${id}"]`);
154
+ }
155
+ };
156
+
157
+ /**
158
+ * If url already has value, check if it matches our monsterlink options.
159
+ *
160
+ * @since 2.3.0
161
+ *
162
+ * @param {Object} $select jQuery object for campaign-select element.
163
+ *
164
+ * @returns {void}
165
+ */
166
+ app.updateLinkSelectOptions = function ($select) {
167
+ const $selector = $('#wp-link-wrap #link-selector');
168
+ const $search = $selector.find('#search-panel');
169
+ const searchBottom = $search.offset().top + $search.outerHeight();
170
+ const top = searchBottom - $selector.offset().top + 12; /* margin */
171
+
172
+ $('.has-text-field #wp-link .query-results').css({ top });
173
+
174
+ const url = $('.wp-link-input input.ui-autocomplete-input').val();
175
+ if (url) {
176
+ $select.find('option').each(function () {
177
+ const val = $(this).val();
178
+ if (val && url === getMonsterlink(val)) {
179
+ $select.val(val);
180
+ }
181
+ });
182
+ }
183
+ };
184
+
185
+ /**
186
+ * Disable any options already in use.
187
+ *
188
+ * @since 2.3.0
189
+ *
190
+ * @returns {void}
191
+ */
192
+ app.updateInlineSelectOptions = function () {
193
+ const editorId = app.getActiveEditorId();
194
+
195
+ // No luck...
196
+ if (!editorId) {
197
+ return;
198
+ }
199
+
200
+ const editor = app.getActiveEditor();
201
+ const editorText = editor && !editor.isHidden() ? editor.getContent() : document.getElementById(editorId).value;
202
+
203
+ // Set options to disabled if they are already used.
204
+ app.$inlineSelect.find('option').each(function () {
205
+ const $option = $(this);
206
+ const hasShortcode = editorText.indexOf(`optin-monster slug="${$option.val()}"`) >= 0;
207
+ $option.attr('disabled', hasShortcode);
208
+ });
209
+ };
210
+
211
+ /**
212
+ * Add the monsterlink button to the wplink modal.
213
+ * (which triggers the monsterlink-select modal)
214
+ *
215
+ * @since 2.3.0
216
+ *
217
+ * @returns {void}
218
+ */
219
+ app.initLinkButton = function () {
220
+ $('.wp-link-input').each(function () {
221
+ const $modal = $(this).parent();
222
+
223
+ if (!$modal.find('.optin-monster-insert-monsterlink').length) {
224
+ const $div = $(
225
+ '<div class="mce-widget mce-btn mce-last" tabindex="-1" role="button" aria-label="OptinMonster" style="margin-left:-3px;"></div>'
226
+ );
227
+
228
+ const $button = $(
229
+ '<button role="presentation" type="button" tabindex="-1" class="optin-monster-insert-monsterlink"></button>'
230
+ );
231
+ $button.append($('.wp-media-buttons-icon.optin-monster-menu-icon').first().clone());
232
+
233
+ $div.append($button);
234
+
235
+ $modal.find('.mce-last').removeClass('mce-last');
236
+ $modal.append($div);
237
+ }
238
+ });
239
+ };
240
+
241
+ /**
242
+ * Add the monsterlink select to the wplink advanced modal.
243
+ *
244
+ * @since 2.3.0
245
+ *
246
+ * @returns {void}
247
+ */
248
+ app.initAdvancedSettings = function () {
249
+ const $advanced = $(`
250
+ <p class="howto" id="om-link-campaign-label">Or link to a popup campaign</p>
251
+ <div style="margin-bottom: -8px;">
252
+ <label><span>Select</span>
253
+ <select name="om-link-class" id="om-link-campaign" aria-describedby="om-link-campaign-label">
254
+ </select>
255
+ </label>
256
+ </div>
257
+ `);
258
+ $advanced.find('select').html(app.$select.find('option').clone());
259
+
260
+ $('#link-options').append($advanced);
261
+ app.$linkSelect = $('#om-link-campaign');
262
+
263
+ // Monkey-patch the wpLink.getAttrs method to handle monster-link target/rel attributes.
264
+ if (typeof window.wpLink !== 'undefined') {
265
+ const orig = wpLink.getAttrs;
266
+ wpLink.getAttrs = function () {
267
+ const attrs = orig();
268
+ const ml = getMonsterlink(app.$linkSelect.val());
269
+
270
+ if (attrs.href === ml) {
271
+ attrs.target = '_blank';
272
+ attrs.rel = 'noopener noreferrer';
273
+ }
274
+
275
+ return attrs;
276
+ };
277
+ }
278
+ };
279
+
280
+ /**
281
+ * Handles modifying the wplink modals to inject monsterlink options.
282
+ *
283
+ * @since 2.3.0
284
+ *
285
+ * @param {Object} editor The editor object.
286
+ *
287
+ * @returns {void}
288
+ */
289
+ app.initEditorMods = function (editor) {
290
+ if (!editor || editor.hasInitiatedOm) {
291
+ return;
292
+ }
293
+
294
+ editor.hasInitiatedOm = true;
295
+
296
+ editor.on('ExecCommand', function (e) {
297
+ if ('WP_Link' === e.command) {
298
+ app.initLinkButton();
299
+ }
300
+ });
301
+
302
+ if (!app.$linkSelect) {
303
+ app.initAdvancedSettings();
304
+ }
305
+ };
306
+
307
+ /**
308
+ * Setup our event listeners.
309
+ *
310
+ * @since 2.3.0
311
+ *
312
+ * @returns {void}
313
+ */
314
+ app.setupListeners = function () {
315
+ $(document)
316
+ // Open inline modal when media button is clicked
317
+ .on('click', '.optin-monster-insert-campaign-button', function (event) {
318
+ event.preventDefault();
319
+ app.modalOpenInline();
320
+ })
321
+
322
+ // Open link modal when monsterlink button is clicked
323
+ .on('click', '.optin-monster-insert-monsterlink', function (event) {
324
+ event.preventDefault();
325
+ app.modalOpenLink();
326
+ })
327
+
328
+ // Close modal on close or cancel links or background click.
329
+ .on(
330
+ 'click',
331
+ '#optin-monster-modal-backdrop, #optin-monster-modal-close, #optin-monster-modal-cancel a',
332
+ function (event) {
333
+ event.preventDefault();
334
+ app.modalClose();
335
+ }
336
+ )
337
+
338
+ // When submitting the inline campaign selection,
339
+ // Insert the shortcode, and close the modal.
340
+ .on('click', '#optin-monster-modal-submit-inline', function (event) {
341
+ event.preventDefault();
342
+ app.insertShortcode();
343
+ app.modalClose();
344
+ })
345
+
346
+ // When submitting the link modal selection,
347
+ // Insert the link, and close the modal.
348
+ .on('click', '#optin-monster-modal-submit', function (event) {
349
+ event.preventDefault();
350
+ app.mceLinkifyText();
351
+ app.modalClose();
352
+ })
353
+
354
+ // When changing our campaigns select in the wplink modal,
355
+ // update the link url/target values as well.
356
+ .on('change', '#om-link-campaign', function () {
357
+ const id = app.$linkSelect.val();
358
+ if (id) {
359
+ $('#wp-link-url').val(getMonsterlink(id));
360
+ $('#wp-link-target').prop('checked', true);
361
+ }
362
+ })
363
+
364
+ // When opening wplink modal, set "selected" option.
365
+ .on('wplink-open', function (wrap) {
366
+ app.updateLinkSelectOptions(app.$linkSelect);
367
+ })
368
+
369
+ // When closing wplink modal, close our modals too.
370
+ .on('wplink-close', function (wrap) {
371
+ app.modalClose();
372
+ })
373
+
374
+ // When closing our link modal, also close the wplink modal
375
+ .on('om-modal-close-monsterlink', function (wrap) {
376
+ if (wpLink) {
377
+ // If in tinymce mode, close the (hidden) wplink modal as well.
378
+ const editor = app.getActiveEditor();
379
+ if (editor && !editor.isHidden()) {
380
+ wpLink.close();
381
+ }
382
+ }
383
+ });
384
+ };
385
+
386
+ /**
387
+ * Kicks things off when the DOM is ready.
388
+ *
389
+ * @since 2.3.0
390
+ *
391
+ * @returns {void}
392
+ */
393
+ app.init = function () {
394
+ // Store cached nodes.
395
+ app.$body = $(document.body);
396
+ app.$modalWrap = $('#optin-monster-modal-wrap');
397
+ app.$toToggle = $('#optin-monster-modal-backdrop, #optin-monster-modal-wrap');
398
+ app.$select = $('#optin-monster-modal-select-campaign');
399
+ app.$inlineSelect = $('#optin-monster-modal-select-inline-campaign');
400
+ app.$linkSelect = null;
401
+
402
+ app.setupListeners();
403
+
404
+ // Init the editor mods if we have an active editor.
405
+ app.initEditorMods(app.getActiveEditor());
406
+
407
+ if (typeof tinymce !== 'undefined') {
408
+ // Also init the editor mods whenever a new editor
409
+ // is initiated (looking at you, Elementor).
410
+ tinymce.on('SetupEditor', function ({ editor }) {
411
+ app.initEditorMods(editor);
412
+ });
413
+ }
414
+ };
415
+
416
+ $(app.init);
417
+ })(window, document, jQuery, window.OMAPI_Editor);
assets/js/elementor.js ADDED
@@ -0,0 +1,130 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ==========================================================
2
+ * elementor.js
3
+ * ==========================================================
4
+ * Copyright 2021 Awesome Motive.
5
+ * https://awesomemotive.com
6
+ * ========================================================== */
7
+
8
+ 'use strict';
9
+
10
+ import CampaignSelector from './Elementor/CampaignSelector';
11
+
12
+ window.OMAPI_Elementor = window.OMAPI_Elementor || {};
13
+
14
+ (function (window, document, $, app, undefined) {
15
+ /**
16
+ * Tells the campaign being initiated that it is in preview mode (form will not work).
17
+ *
18
+ * @since 2.2.0
19
+ *
20
+ * @param {Object} evt Event
21
+ *
22
+ * @returns {void}
23
+ */
24
+ app.setAsPreview = (evt) => {
25
+ // Disable form fields if called from the Gutenberg editor.
26
+ evt.detail.Campaign.preview = true;
27
+ };
28
+
29
+ /**
30
+ * Triggers a load event for backbone models to listen to.
31
+ *
32
+ * @since 2.2.0
33
+ *
34
+ * @param {Object} evt Event
35
+ *
36
+ * @returns {void}
37
+ */
38
+ app.triggerLoaded = (evt) => {
39
+ const { id } = evt.detail.Campaign;
40
+
41
+ CampaignSelector.instances.forEach((instance) => {
42
+ instance.trigger(instance.campaignSlug() === id ? 'campaignLoaded' : 'otherCampaignLoaded');
43
+ });
44
+ };
45
+
46
+ /**
47
+ * Handles outputting api.js render errors in the block when necessary.
48
+ *
49
+ * @since 2.2.0
50
+ *
51
+ * @param {[type]} evt [description]
52
+ *
53
+ * @returns {[type]} [description]
54
+ */
55
+ app.triggerError = (evt) => {
56
+ let { Campaign, Main, error } = evt.detail;
57
+
58
+ const id = Main ? Main.defaults.campaign : Campaign ? Campaign.id : '';
59
+ if (!id) {
60
+ return;
61
+ }
62
+
63
+ const instance = CampaignSelector.instances.find((i) => i.campaignSlug() === id);
64
+ if (!instance) {
65
+ return;
66
+ }
67
+
68
+ if (error.response) {
69
+ error = JSON.parse(error.response).message || JSON.parse(error.response).error;
70
+ }
71
+
72
+ instance.trigger('campaignError', error);
73
+ };
74
+
75
+ /**
76
+ * Triggers events for backbone models whenever a campaign is removed.
77
+ *
78
+ * @since 2.2.0
79
+ *
80
+ * @param {Object} evt Event
81
+ *
82
+ * @returns {void}
83
+ */
84
+ app.triggerRemove = (evt) => {
85
+ const { id } = evt.detail;
86
+
87
+ CampaignSelector.instances.forEach((instance) => {
88
+ if (instance.campaignSlug() !== id) {
89
+ instance.trigger('otherCampaignRemoved', id);
90
+ }
91
+ });
92
+ };
93
+
94
+ app.init = function () {
95
+ // Disable form fields
96
+ document.addEventListener('om.Campaign.init', app.setAsPreview);
97
+
98
+ // Store the API utils.
99
+ document.addEventListener('om.Main.init', ({ detail }) => (app.utils = detail._utils));
100
+
101
+ // Disable all non-inline campaigns from Elementor preview.
102
+ document.addEventListener('om.WebFonts.init', function (evt) {
103
+ var campaign = evt.detail.Campaign;
104
+ if (!campaign.Types.isInline()) {
105
+ campaign.off();
106
+ }
107
+ });
108
+
109
+ $(window).on('elementor/frontend/init', function () {
110
+ // Widget buttons click.
111
+ elementor.channels.editor.on('elementorOMAPIAddInlineBtnClick', () =>
112
+ window.open(OMAPI.templatesUri + '&type=inline')
113
+ );
114
+ elementor.channels.editor.on('elementorOMAPICreateAccount', () => window.open(OMAPI.wizardUri));
115
+ elementor.channels.editor.on('elementorOMAPIConnectAccount', () => window.open(OMAPI.settingsUri));
116
+
117
+ elementorFrontend.hooks.addAction('frontend/element_ready/optinmonster.default', ($element) => {
118
+ elementorFrontend.elementsHandler.addHandler(CampaignSelector, { $element });
119
+ });
120
+
121
+ document.addEventListener('om.Campaign.afterShow', app.triggerLoaded);
122
+ document.addEventListener('om.Main.getCampaigns.error', app.triggerError);
123
+ document.addEventListener('om.Campaign.show.error', app.triggerError);
124
+ document.addEventListener('om.Campaign.load.error', app.triggerError);
125
+ document.addEventListener('om.Plugin.Elementor.Instance.removed', app.triggerRemove);
126
+ });
127
+ };
128
+
129
+ app.init();
130
+ })(window, document, jQuery, window.OMAPI_Elementor);
assets/js/global.js ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ==========================================================
2
+ * global.js
3
+ * ==========================================================
4
+ * Copyright 2021 Awesome Motive.
5
+ * https://awesomemotive.com
6
+ * ========================================================== */
7
+ window.OMAPI_Global = window.OMAPI_Global || {};
8
+ (function (window, document, $, app, undefined) {
9
+ 'use strict';
10
+
11
+ app.updateNotifications = function () {
12
+ $.ajax({
13
+ async: true,
14
+ url: app.url,
15
+ headers: {
16
+ 'x-wp-nonce': app.nonce,
17
+ },
18
+ }).done(function (response) {
19
+ // If the app is running, we don't need to proceed (the app handles it).
20
+ if (window.omWpApi) {
21
+ return;
22
+ }
23
+
24
+ var total = response.length;
25
+ var $name = app.$.menu.find('.toplevel_page_optin-monster-dashboard .wp-menu-name');
26
+ var $count = $name.find('.om-notifications-count');
27
+ var countString = String(total);
28
+ var classes = 'om-notifications-count update-plugins count-' + countString;
29
+
30
+ if ($count.length) {
31
+ $count.attr('class', classes);
32
+ $count.find('.plugin-count').text(countString);
33
+ } else {
34
+ $name.html(
35
+ 'OptinMonster <span class="' +
36
+ classes +
37
+ '"><span class="plugin-count">' +
38
+ countString +
39
+ '</span></span>'
40
+ );
41
+ }
42
+ });
43
+ };
44
+
45
+ app.init = function () {
46
+ app.$ = {
47
+ menu: $(document.getElementById('toplevel_page_optin-monster-dashboard')),
48
+ };
49
+
50
+ if (app.upgradeUrl) {
51
+ app.$.menu
52
+ .find('.wp-submenu [href="admin.php?page=optin-monster-upgrade"]')
53
+ .attr('target', '_blank')
54
+ .attr('rel', 'noopener')
55
+ .attr('href', app.upgradeUrl);
56
+ }
57
+
58
+ // If the app is not running, and we should fetch updated notifications...
59
+ if (!window.omWpApi && app.fetchNotifications) {
60
+ app.updateNotifications();
61
+ }
62
+ };
63
+
64
+ $(app.init);
65
+ })(window, document, jQuery, window.OMAPI_Global);
assets/js/helper.js CHANGED
@@ -4,9 +4,13 @@
4
  * Copyright 2019 Awesome Motive.
5
  * https://awesomemotive.com
6
  * ========================================================== */
7
- document.addEventListener('om.Styles.positionFloating', function(event) {
8
  var campaign = event.detail.Campaign;
9
- if ('floating' === campaign.Types.type && 'top' === campaign.options.position && document.getElementById('wpadminbar')) {
 
 
 
 
10
  const marginTop = window.matchMedia('(max-width: 782px)').matches ? '46px' : '32px';
11
  campaign.contain.style.marginTop = marginTop;
12
  }
4
  * Copyright 2019 Awesome Motive.
5
  * https://awesomemotive.com
6
  * ========================================================== */
7
+ document.addEventListener('om.Styles.positionFloating', function (event) {
8
  var campaign = event.detail.Campaign;
9
+ if (
10
+ 'floating' === campaign.Types.type &&
11
+ 'top' === campaign.options.position &&
12
+ document.getElementById('wpadminbar')
13
+ ) {
14
  const marginTop = window.matchMedia('(max-width: 782px)').matches ? '46px' : '32px';
15
  campaign.contain.style.marginTop = marginTop;
16
  }
assets/js/mailpoet.js CHANGED
@@ -4,17 +4,16 @@
4
  * Copyright 2019 Awesome Motive.
5
  * https://awesomemotive.com
6
  * ========================================================== */
7
- jQuery(document).ready(function($){
8
  // Legacy Campaigns
9
- $(document).on('OptinMonsterPreOptin', function(event, optin, object){
10
  var slug = optin.optin.replace('-', '_');
11
- $.each(omapi_localized.slugs, function(i, v) {
12
-
13
- if ( ! v.mailpoet ) {
14
  return;
15
  }
16
 
17
- if ( i !== slug ) {
18
  return;
19
  }
20
 
@@ -32,26 +31,25 @@ jQuery(document).ready(function($){
32
  });
33
 
34
  // Default Campaigns
35
- document.addEventListener('om.Optin.init.submit', function(event){
36
  var campaign = event.detail.Campaign;
37
- var optin = event.detail.Optin;
38
-
39
- $.each(omapi_localized.slugs, function(i, v) {
40
 
41
- if ( ! v.mailpoet ) {
 
42
  return;
43
  }
44
 
45
- if ( i !== campaign.id ) {
46
  return;
47
  }
48
 
49
  // Send a request to force optin to work even if no provider is set.
50
- var data = optin.data;
51
  data.optin = campaign.id;
52
 
53
- if ( data.fields ) {
54
- $.extend( data, data.fields );
55
  }
56
 
57
  // Post to MailPoet.
@@ -63,11 +61,16 @@ jQuery(document).ready(function($){
63
 
64
  function postToMailPoet(data) {
65
  // Now make an ajax request to make the optin locally.
66
- $.post(omapi_localized.ajax, {
67
- action: 'mailpoet',
68
- nonce: omapi_localized.nonce,
69
- no_provider: true,
70
- optinData: data,
71
- }, function(){}, 'json');
 
 
 
 
 
72
  }
73
  });
4
  * Copyright 2019 Awesome Motive.
5
  * https://awesomemotive.com
6
  * ========================================================== */
7
+ jQuery(document).ready(function ($) {
8
  // Legacy Campaigns
9
+ $(document).on('OptinMonsterPreOptin', function (event, optin, object) {
10
  var slug = optin.optin.replace('-', '_');
11
+ $.each(omapi_localized.slugs, function (i, v) {
12
+ if (!v.mailpoet) {
 
13
  return;
14
  }
15
 
16
+ if (i !== slug) {
17
  return;
18
  }
19
 
31
  });
32
 
33
  // Default Campaigns
34
+ document.addEventListener('om.Optin.init.submit', function (event) {
35
  var campaign = event.detail.Campaign;
36
+ var optin = event.detail.Optin;
 
 
37
 
38
+ $.each(omapi_localized.slugs, function (i, v) {
39
+ if (!v.mailpoet) {
40
  return;
41
  }
42
 
43
+ if (i !== campaign.id) {
44
  return;
45
  }
46
 
47
  // Send a request to force optin to work even if no provider is set.
48
+ var data = optin.data;
49
  data.optin = campaign.id;
50
 
51
+ if (data.fields) {
52
+ $.extend(data, data.fields);
53
  }
54
 
55
  // Post to MailPoet.
61
 
62
  function postToMailPoet(data) {
63
  // Now make an ajax request to make the optin locally.
64
+ $.post(
65
+ omapi_localized.ajax,
66
+ {
67
+ action: 'mailpoet',
68
+ nonce: omapi_localized.nonce,
69
+ no_provider: true,
70
+ optinData: data,
71
+ },
72
+ function () {},
73
+ 'json'
74
+ );
75
  }
76
  });
assets/js/metabox.js ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ==========================================================
2
+ * metabox.js
3
+ * ==========================================================
4
+ * Copyright 2021 Awesome Motive.
5
+ * https://awesomemotive.com
6
+ * ========================================================== */
7
+ window.OMAPI_WooCommerce_Metaboxes = window.OMAPI_WooCommerce_Metaboxes || {};
8
+
9
+ /**
10
+ * Metabox Tabs
11
+ *
12
+ * This contains the functionality for our WooCommerce education metaboxes.
13
+ *
14
+ * @since 2.1.0
15
+ */
16
+ (function (window, document, app, undefined) {
17
+ /**
18
+ * Cache DOM objects.
19
+ *
20
+ * Setup everything needed.
21
+ *
22
+ * @since 2.1.0
23
+ *
24
+ * @returns {void}
25
+ */
26
+ app.cache = () => {
27
+ app.options = document.querySelectorAll('.omapi-metabox__nav a');
28
+ app.slides = document.querySelectorAll('.omapi-metabox__slides-slide');
29
+ };
30
+
31
+ /**
32
+ * Set Event Listeners
33
+ *
34
+ * Loop through each navigation option and set the event listener.
35
+ *
36
+ * @since 2.1.0
37
+ *
38
+ * @returns {void}
39
+ */
40
+ app.setEventListeners = () => {
41
+ app.options.forEach((option) => {
42
+ option.addEventListener('click', (e) => {
43
+ e.preventDefault();
44
+
45
+ app.removeActiveClass(app.options);
46
+ option.classList.add('active');
47
+
48
+ const target = option.getAttribute('href');
49
+ if (target) {
50
+ app.removeActiveClass(app.slides);
51
+
52
+ document.querySelector(target).classList.add('active');
53
+ }
54
+ });
55
+ });
56
+ };
57
+
58
+ /**
59
+ * Remove Active Class
60
+ *
61
+ * @param {NodeList} options the tab options.
62
+ *
63
+ * @since 2.1.0
64
+ *
65
+ * @returns {void}
66
+ */
67
+ app.removeActiveClass = (options) => {
68
+ options.forEach((option) => {
69
+ option.classList.remove('active');
70
+ });
71
+ };
72
+
73
+ // Set the event listeners once the DOM is ready.
74
+ window.addEventListener('DOMContentLoaded', () => {
75
+ app.hasSlides = document.querySelectorAll('.omapi-metabox.has-slides').length;
76
+
77
+ if (app.hasSlides) {
78
+ app.cache();
79
+ app.setEventListeners();
80
+ }
81
+ });
82
+ })(window, document, window.OMAPI_WooCommerce_Metaboxes);
assets/js/notice.js DELETED
@@ -1,36 +0,0 @@
1
- jQuery( document ).ready( function( $ ) {
2
-
3
- $( document ).on( 'click', '.om-review-btns', function( event ) {
4
- event.preventDefault();
5
-
6
- var target = $( this ).data( 'res' );
7
-
8
- $( '.om-steps' ).hide();
9
- $( '.om-step-' + target ).show();
10
- } );
11
-
12
- $( document ).on( 'click', '.om-dismiss-review-notice, .om-review-notice .notice-dismiss', function( event ) {
13
-
14
- if ( '#' === $( this ).attr( 'href' ) ) {
15
- event.preventDefault();
16
- }
17
-
18
- var later = false;
19
-
20
- if ( $( this ).hasClass( 'notice-dismiss' ) || $( this ).hasClass( 'om-dismiss-review-notice-delay' ) ) {
21
- later = true;
22
- }
23
-
24
- $.post(
25
- ajaxurl,
26
- {
27
- action : 'omapi_dismiss_review',
28
- nonce : omNotice.nonce,
29
- later : later
30
- },
31
- function( response ) {}
32
- );
33
-
34
- $( '.om-review-notice' ).remove();
35
- } );
36
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/js/om-format.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ==========================================================
2
+ * optinmonster-format.js
3
+ * ==========================================================
4
+ * Copyright 2021 Awesome Motive.
5
+ * https://awesomemotive.com
6
+ * ========================================================== */
7
+
8
+ 'use strict';
9
+
10
+ import MonsterLinkFormat from './Components/Formats/MonsterLink';
11
+
12
+ wp.richText.registerFormatType('optinmonster/om-format', {
13
+ title: OMAPI.i18n.open_popup,
14
+ tagName: 'a',
15
+ className: 'om-format',
16
+ attributes: {
17
+ url: 'href',
18
+ target: 'target',
19
+ rel: 'rel',
20
+ 'data-slug': 'data-slug',
21
+ },
22
+ edit: MonsterLinkFormat,
23
+ });
assets/js/om-settings.js ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ==========================================================
2
+ * om-settings.js
3
+ * ==========================================================
4
+ * Copyright 2021 Awesome Motive.
5
+ * https://awesomemotive.com
6
+ * ========================================================== */
7
+
8
+ 'use strict';
9
+
10
+ import SidebarSettings from './Components/SidebarSettings';
11
+ const { PluginDocumentSettingPanel } = wp.editPost;
12
+
13
+ if (PluginDocumentSettingPanel) {
14
+ wp.plugins.registerPlugin('om-global-post-settings', {
15
+ render: SidebarSettings,
16
+ icon: null,
17
+ priority: 999, // Supported in the future: https://github.com/WordPress/gutenberg/pull/16384
18
+ });
19
+ }
assets/js/trustpulse.js CHANGED
@@ -8,9 +8,9 @@ jQuery(document).ready(function ($) {
8
  $('.install-plugin-form').submit((e) => {
9
  e.preventDefault();
10
 
11
- const $install = $('.button-install');
12
- const $activate = $('.button-activate');
13
- const installText = $install.html();
14
  const activateText = $activate.html();
15
 
16
  $install.html('Installing...');
@@ -19,38 +19,39 @@ jQuery(document).ready(function ($) {
19
  $('#om-plugin-alerts').hide();
20
 
21
  $.ajax({
22
- type: "POST",
23
- beforeSend: function(request) {
24
  request.setRequestHeader('X-WP-Nonce', omapiTp.restNonce);
25
  },
26
  url: omapiTp.restUrl + 'omapp/v1/plugins/',
27
- data:{
28
- id : 'trustpulse-api/trustpulse.php',
29
- url : omapiTp.pluginUrl,
30
- nonce : omapiTp.action === 'install' ? omapiTp.installNonce : omapiTp.activateNonce,
31
  installAction: omapiTp.action,
32
  },
33
- success: function(data) {
34
  window.location.reload();
35
  },
36
- error: function(jqXHR, textStatus, errorThrown) {
37
  $install.html(installText);
38
  $activate.html(activateText);
39
 
40
- let message = 'Something went wrong!'
41
  if (jqXHR.responseJSON && jqXHR.responseJSON.message) {
42
- message += '<br>Error found: ' + jqXHR.responseJSON.message
43
  }
44
  if (jqXHR.responseJSON && jqXHR.responseJSON.data) {
45
  try {
46
- message += `<br>(data: ${JSON.stringify( jqXHR.responseJSON.data )})`
47
- } catch(e) {}
48
  }
49
 
50
- console.error(`Could not ${omapiTp.action} the TrustPulse plugin`, { jqXHR, textStatus, errorThrown })
 
51
 
52
- $('#om-plugin-alerts').show().html($( '<p/>' ).html( message ));
53
- }
54
  });
55
- })
56
  });
8
  $('.install-plugin-form').submit((e) => {
9
  e.preventDefault();
10
 
11
+ const $install = $('.button-install');
12
+ const $activate = $('.button-activate');
13
+ const installText = $install.html();
14
  const activateText = $activate.html();
15
 
16
  $install.html('Installing...');
19
  $('#om-plugin-alerts').hide();
20
 
21
  $.ajax({
22
+ type: 'POST',
23
+ beforeSend: function (request) {
24
  request.setRequestHeader('X-WP-Nonce', omapiTp.restNonce);
25
  },
26
  url: omapiTp.restUrl + 'omapp/v1/plugins/',
27
+ data: {
28
+ id: 'trustpulse-api/trustpulse.php',
29
+ url: omapiTp.pluginUrl,
30
+ nonce: omapiTp.action === 'install' ? omapiTp.installNonce : omapiTp.activateNonce,
31
  installAction: omapiTp.action,
32
  },
33
+ success: function (data) {
34
  window.location.reload();
35
  },
36
+ error: function (jqXHR, textStatus, errorThrown) {
37
  $install.html(installText);
38
  $activate.html(activateText);
39
 
40
+ let message = 'Something went wrong!';
41
  if (jqXHR.responseJSON && jqXHR.responseJSON.message) {
42
+ message += '<br>Error found: ' + jqXHR.responseJSON.message;
43
  }
44
  if (jqXHR.responseJSON && jqXHR.responseJSON.data) {
45
  try {
46
+ message += `<br>(data: ${JSON.stringify(jqXHR.responseJSON.data)})`;
47
+ } catch (e) {}
48
  }
49
 
50
+ // eslint-disable-next-line no-console
51
+ console.error(`Could not ${omapiTp.action} the TrustPulse plugin`, { jqXHR, textStatus, errorThrown });
52
 
53
+ $('#om-plugin-alerts').show().html($('<p/>').html(message));
54
+ },
55
  });
56
+ });
57
  });
assets/js/wc-marketing.js ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ==========================================================
2
+ * wc-marketing.js
3
+ * ==========================================================
4
+ * Copyright 2021 Awesome Motive.
5
+ * https://awesomemotive.com
6
+ * ========================================================== */
7
+ window.OMAPI_WooCommerce_Marketing = window.OMAPI_WooCommerce_Marketing || {};
8
+
9
+ (function (window, document, $, app, undefined) {
10
+ 'use strict';
11
+
12
+ app.interval;
13
+
14
+ /**
15
+ * Add Education Box
16
+ *
17
+ * @since 2.1.0
18
+ *
19
+ * @returns {void}
20
+ */
21
+ app.insertEducationBox = function () {
22
+ // When the Marketing Hub was introduced in 4.1, the class
23
+ // name used for their cards was ".woocommerce-card". Here
24
+ // we'll check for that first and use it if found. Otherwise,
25
+ // we'll use the current class name.
26
+ const $earlyCard = $('.woocommerce-card:nth-child(2)');
27
+ const $card = $earlyCard.length ? $earlyCard : $('.components-card:nth-child(2)');
28
+ const $newCard = $(document.getElementById('components-card-om'));
29
+
30
+ if ($card.length) {
31
+ $card.after($newCard.show());
32
+ }
33
+ };
34
+
35
+ app.initBox = function () {
36
+ if ($('.woocommerce-marketing-overview').length) {
37
+ if (app.interval) {
38
+ clearInterval(app.interval);
39
+ }
40
+ app.insertEducationBox();
41
+ }
42
+ };
43
+
44
+ app.init = function () {
45
+ // We have to wait for the Woo React app to finish before
46
+ // we can insert our box, So we'll keep trying until we get
47
+ // what we're looking for.
48
+ app.interval = setInterval(() => app.initBox(), 1000);
49
+ app.initBox();
50
+ };
51
+
52
+ $(app.init);
53
+ })(window, document, jQuery, window.OMAPI_WooCommerce_Marketing);
optin-monster-wp-api.php CHANGED
@@ -5,11 +5,15 @@
5
  * Description: OptinMonster is the best WordPress popup plugin that helps you grow your email list and sales with email popups, exit intent popups, floating bars and more!
6
  * Author: OptinMonster Team
7
  * Author URI: https://optinmonster.com
8
- * Version: 2.0.4
9
  * Text Domain: optin-monster-api
10
  * Domain Path: languages
 
11
  * WC requires at least: 3.2.0
12
- * WC tested up to: 4.7.0
 
 
 
13
  *
14
  * OptinMonster is free software: you can redistribute it and/or modify
15
  * it under the terms of the GNU General Public License as published by
@@ -33,7 +37,7 @@ if ( ! defined( 'ABSPATH' ) ) {
33
  // Autoload the class files.
34
  spl_autoload_register( 'OMAPI::autoload' );
35
 
36
- // Store base file location
37
  define( 'OMAPI_FILE', __FILE__ );
38
 
39
  /**
@@ -62,7 +66,7 @@ class OMAPI {
62
  *
63
  * @var string
64
  */
65
- public $version = '2.0.4';
66
 
67
  /**
68
  * The name of the plugin.
@@ -133,6 +137,20 @@ class OMAPI {
133
  */
134
  public $woocommerce;
135
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
  /**
137
  * OMAPI_MailPoet object.
138
  *
@@ -230,7 +248,7 @@ class OMAPI {
230
  // Load the plugin widgets.
231
  add_action( 'widgets_init', array( $this, 'widgets' ) );
232
 
233
- // Define Constants
234
  add_action( 'init', array( $this, 'define_constants' ) );
235
 
236
  // Load the plugin.
@@ -312,6 +330,10 @@ class OMAPI {
312
  if ( ! defined( 'OPTINMONSTER_APIJS_URL' ) ) {
313
  define( 'OPTINMONSTER_APIJS_URL', OPTINMONSTER_CDN_URL . '/app/js/api.min.js' );
314
  }
 
 
 
 
315
  }
316
 
317
  /**
@@ -391,8 +413,14 @@ class OMAPI {
391
  $this->output = new OMAPI_Output();
392
  $this->shortcode = new OMAPI_Shortcode();
393
  $this->woocommerce = new OMAPI_WooCommerce();
 
394
  $this->mailpoet = new OMAPI_MailPoet();
395
 
 
 
 
 
 
396
  // Fire a hook to say that the global classes are loaded.
397
  do_action( 'optin_monster_api_global_loaded' );
398
 
@@ -412,6 +440,7 @@ class OMAPI {
412
  $this->refresh = new OMAPI_Refresh();
413
  $this->save = new OMAPI_Save();
414
  $this->notifications = new OMAPI_Notifications();
 
415
 
416
  // Fire a hook to say that the global classes are loaded.
417
  do_action( 'optin_monster_api_rest_loaded' );
@@ -435,6 +464,7 @@ class OMAPI {
435
  $this->review = new OMAPI_Review();
436
  $this->sites = new OMAPI_Sites();
437
  $this->notifications = new OMAPI_Notifications();
 
438
 
439
  if ( OMAPI_Partners::has_partner_url() ) {
440
  $this->cc = new OMAPI_ConstantContact();
@@ -540,12 +570,29 @@ class OMAPI {
540
 
541
  foreach ( $optins as $optin ) {
542
  $optin->campaign_type = get_post_meta( $optin->ID, '_omapi_type', true );
 
543
  }
544
 
545
  // Return the optin data.
546
  return $optins;
547
  }
548
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
549
  /**
550
  * Returns the main option for the plugin.
551
  *
@@ -593,7 +640,7 @@ class OMAPI {
593
  $user = false;
594
  $apikey = false;
595
 
596
- // Attempt to grab the new API Key
597
  if ( empty( $option['api']['apikey'] ) ) {
598
  if ( defined( 'OPTINMONSTER_REST_API_LICENSE_KEY' ) ) {
599
  $apikey = OPTINMONSTER_REST_API_LICENSE_KEY;
@@ -619,9 +666,9 @@ class OMAPI {
619
  $user = $option['api']['user'];
620
  }
621
 
622
- // Check if we have any of the authentication data
623
  if ( ! $apikey ) {
624
- // Do we at least have Legacy API Key and User
625
  if ( ! $key || ! $user ) {
626
  return false;
627
  }
@@ -647,8 +694,7 @@ class OMAPI {
647
  * @return string The API url to use for embedding on the page.
648
  */
649
  public function get_api_url() {
650
- $customApiUrl = $this->get_option( 'customApiUrl' );
651
- return ! empty( $customApiUrl ) ? $customApiUrl : OPTINMONSTER_APIJS_URL;
652
  }
653
 
654
  /**
@@ -725,7 +771,39 @@ class OMAPI {
725
  * @return void
726
  */
727
  public function output_view( $file, $data = array() ) {
728
- require dirname( $this->file ) . '/views/' . $file;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
729
  }
730
 
731
  /**
@@ -739,9 +817,7 @@ class OMAPI {
739
  * @return void
740
  */
741
  public function output_min_css( $file, $data = array() ) {
742
- ob_start();
743
- $this->output_view( $file, $data );
744
- echo str_replace( array( "\n", "\r", "\t" ), '', ob_get_clean() );
745
  }
746
 
747
  /**
@@ -766,6 +842,28 @@ class OMAPI {
766
  return 'vbp_custom' === $this->get_option( 'plan' );
767
  }
768
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
769
  /**
770
  * Loads the default plugin options.
771
  *
@@ -777,7 +875,6 @@ class OMAPI {
777
 
778
  $options = array(
779
  'api' => array(),
780
- 'optins' => array(),
781
  'is_expired' => false,
782
  'is_disabled' => false,
783
  'is_invalid' => false,
@@ -888,7 +985,7 @@ class OMAPI {
888
 
889
  public function check_php_version() {
890
 
891
- // Display for PHP below 5.6
892
  if ( version_compare( PHP_VERSION, '5.5', '>=' ) ) {
893
  return;
894
  }
@@ -1031,34 +1128,13 @@ class OMAPI {
1031
  *
1032
  * @since 2.0.0
1033
  *
1034
- * @param string $path The path on the app.
1035
- * @param string $return_url Url to return. Will default to wp_get_referer().
1036
  *
1037
  * @return string The app url.
1038
  */
1039
  public function app_url( $path, $return_url = '' ) {
1040
- $app_url = OPTINMONSTER_APP_URL . '/';
1041
- $final_destination = $app_url . $path;
1042
-
1043
- if ( empty( $return_url ) ) {
1044
-
1045
- $return_url = wp_get_referer();
1046
- if ( empty( $return_url ) ) {
1047
- $return_url = $this->menu->get_dashboard_link();
1048
- }
1049
- }
1050
- $return_url = rawurlencode( $return_url );
1051
-
1052
- $final_destination = add_query_arg( 'return', $return_url, $final_destination );
1053
-
1054
- $url = add_query_arg( 'redirect_to', rawurlencode( $final_destination ), $app_url );
1055
-
1056
- $account_id = $this->get_option( 'userId' );
1057
- if ( ! empty( $account_id ) ) {
1058
- $url = add_query_arg( 'accountId', $account_id, $url );
1059
- }
1060
-
1061
- return $url;
1062
  }
1063
 
1064
  /**
@@ -1119,6 +1195,14 @@ function optin_monster_api_activation_hook( $network_wide ) {
1119
  $options['welcome']['status'] = 'none';
1120
  update_option( 'optin_monster_api', $options );
1121
  }
 
 
 
 
 
 
 
 
1122
  }
1123
 
1124
  register_uninstall_hook( __FILE__, 'optin_monster_api_uninstall_hook' );
5
  * Description: OptinMonster is the best WordPress popup plugin that helps you grow your email list and sales with email popups, exit intent popups, floating bars and more!
6
  * Author: OptinMonster Team
7
  * Author URI: https://optinmonster.com
8
+ * Version: 2.6.5
9
  * Text Domain: optin-monster-api
10
  * Domain Path: languages
11
+ *
12
  * WC requires at least: 3.2.0
13
+ * WC tested up to: 5.3.0
14
+ * Requires at least: 4.7.0
15
+ * Requires PHP: 5.3
16
+ * Tested up to: 5.8.1
17
  *
18
  * OptinMonster is free software: you can redistribute it and/or modify
19
  * it under the terms of the GNU General Public License as published by
37
  // Autoload the class files.
38
  spl_autoload_register( 'OMAPI::autoload' );
39
 
40
+ // Store base file location.
41
  define( 'OMAPI_FILE', __FILE__ );
42
 
43
  /**
66
  *
67
  * @var string
68
  */
69
+ public $version = '2.6.5';
70
 
71
  /**
72
  * The name of the plugin.
137
  */
138
  public $woocommerce;
139
 
140
+ /**
141
+ * OMAPI_Elementor object.
142
+ *
143
+ * @var OMAPI_Elementor
144
+ */
145
+ public $elementor;
146
+
147
+ /**
148
+ * OMAPI_ClassicEditor object.
149
+ *
150
+ * @var OMAPI_ClassicEditor
151
+ */
152
+ public $classicEditor;
153
+
154
  /**
155
  * OMAPI_MailPoet object.
156
  *
248
  // Load the plugin widgets.
249
  add_action( 'widgets_init', array( $this, 'widgets' ) );
250
 
251
+ // Define Constants.
252
  add_action( 'init', array( $this, 'define_constants' ) );
253
 
254
  // Load the plugin.
330
  if ( ! defined( 'OPTINMONSTER_APIJS_URL' ) ) {
331
  define( 'OPTINMONSTER_APIJS_URL', OPTINMONSTER_CDN_URL . '/app/js/api.min.js' );
332
  }
333
+
334
+ if ( ! defined( 'OPTINMONSTER_SHAREABLE_LINK' ) ) {
335
+ define( 'OPTINMONSTER_SHAREABLE_LINK', 'https://app.monstercampaigns.com' );
336
+ }
337
  }
338
 
339
  /**
413
  $this->output = new OMAPI_Output();
414
  $this->shortcode = new OMAPI_Shortcode();
415
  $this->woocommerce = new OMAPI_WooCommerce();
416
+ $this->elementor = new OMAPI_Elementor();
417
  $this->mailpoet = new OMAPI_MailPoet();
418
 
419
+ if ( defined( 'DOING_CRON' ) && DOING_CRON && ! $this->actions ) {
420
+ $this->save = new OMAPI_Save();
421
+ $this->actions = new OMAPI_Actions();
422
+ }
423
+
424
  // Fire a hook to say that the global classes are loaded.
425
  do_action( 'optin_monster_api_global_loaded' );
426
 
440
  $this->refresh = new OMAPI_Refresh();
441
  $this->save = new OMAPI_Save();
442
  $this->notifications = new OMAPI_Notifications();
443
+ $this->review = new OMAPI_Review();
444
 
445
  // Fire a hook to say that the global classes are loaded.
446
  do_action( 'optin_monster_api_rest_loaded' );
464
  $this->review = new OMAPI_Review();
465
  $this->sites = new OMAPI_Sites();
466
  $this->notifications = new OMAPI_Notifications();
467
+ $this->classicEditor = new OMAPI_ClassicEditor();
468
 
469
  if ( OMAPI_Partners::has_partner_url() ) {
470
  $this->cc = new OMAPI_ConstantContact();
570
 
571
  foreach ( $optins as $optin ) {
572
  $optin->campaign_type = get_post_meta( $optin->ID, '_omapi_type', true );
573
+ $optin->enabled = ! ! get_post_meta( $optin->ID, '_omapi_enabled', true );
574
  }
575
 
576
  // Return the optin data.
577
  return $optins;
578
  }
579
 
580
+ /**
581
+ * Returns all local campaigns. Cached.
582
+ *
583
+ * @since 2.2.0
584
+ *
585
+ * @return array|bool Array of optin data or false if none found.
586
+ */
587
+ public function get_campaigns() {
588
+ static $campaigns = null;
589
+ if ( null === $campaigns ) {
590
+ $campaigns = $this->get_optins();
591
+ }
592
+
593
+ return $campaigns;
594
+ }
595
+
596
  /**
597
  * Returns the main option for the plugin.
598
  *
640
  $user = false;
641
  $apikey = false;
642
 
643
+ // Attempt to grab the new API Key.
644
  if ( empty( $option['api']['apikey'] ) ) {
645
  if ( defined( 'OPTINMONSTER_REST_API_LICENSE_KEY' ) ) {
646
  $apikey = OPTINMONSTER_REST_API_LICENSE_KEY;
666
  $user = $option['api']['user'];
667
  }
668
 
669
+ // Check if we have any of the authentication data.
670
  if ( ! $apikey ) {
671
+ // Do we at least have Legacy API Key and User.
672
  if ( ! $key || ! $user ) {
673
  return false;
674
  }
694
  * @return string The API url to use for embedding on the page.
695
  */
696
  public function get_api_url() {
697
+ return OMAPI_Urls::om_api();
 
698
  }
699
 
700
  /**
771
  * @return void
772
  */
773
  public function output_view( $file, $data = array() ) {
774
+ // Potentially use validate_file() (WP function) if we end up needing sub-directories later.
775
+ require dirname( $this->file ) . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . basename( $file );
776
+ }
777
+
778
+ /**
779
+ * Get view file output content.
780
+ *
781
+ * @since 2.3.0
782
+ *
783
+ * @param string $file The view file.
784
+ * @param mixed $data Arbitrary data to be made available to the view file.
785
+ *
786
+ * @return string The view html content.
787
+ */
788
+ public function get_view_contents( $file, $data = array() ) {
789
+ ob_start();
790
+ $this->output_view( $file, $data );
791
+ return ob_get_clean();
792
+ }
793
+
794
+ /**
795
+ * Get and include a view file with css and minify the output.
796
+ *
797
+ * @since 2.3.0
798
+ *
799
+ * @param string $file The view file.
800
+ * @param mixed $data Arbitrary data to be made available to the view file.
801
+ *
802
+ * @return void
803
+ */
804
+ public function get_min_css_view_contents( $file, $data = array() ) {
805
+ $contents = $this->get_view_contents( $file, $data );
806
+ return str_replace( array( "\n", "\r", "\t" ), '', $contents );
807
  }
808
 
809
  /**
817
  * @return void
818
  */
819
  public function output_min_css( $file, $data = array() ) {
820
+ echo $this->get_min_css_view_contents( $file, $data );
 
 
821
  }
822
 
823
  /**
842
  return 'vbp_custom' === $this->get_option( 'plan' );
843
  }
844
 
845
+ /**
846
+ * Check if the OM user's plan is upgradeable.
847
+ *
848
+ * @since 2.4.0
849
+ *
850
+ * @return boolean Whether OM user's plan is upgradeable.
851
+ */
852
+ public function can_ugrade() {
853
+ $level = $this->get_level();
854
+
855
+ // If plan upgradeable... (e.g. not top tier).
856
+ return $level && ! in_array(
857
+ $level,
858
+ array(
859
+ 'vbp_agency',
860
+ 'vbp_team',
861
+ 'vbp_growth',
862
+ ),
863
+ true
864
+ ) ? $level : false;
865
+ }
866
+
867
  /**
868
  * Loads the default plugin options.
869
  *
875
 
876
  $options = array(
877
  'api' => array(),
 
878
  'is_expired' => false,
879
  'is_disabled' => false,
880
  'is_invalid' => false,
985
 
986
  public function check_php_version() {
987
 
988
+ // Display for PHP below 5.6.
989
  if ( version_compare( PHP_VERSION, '5.5', '>=' ) ) {
990
  return;
991
  }
1128
  *
1129
  * @since 2.0.0
1130
  *
1131
+ * @param string $path The path on the app.
1132
+ * @param string $return_url Url to return. Will default to wp_get_referer().
1133
  *
1134
  * @return string The app url.
1135
  */
1136
  public function app_url( $path, $return_url = '' ) {
1137
+ return OMAPI_Urls::om_app( $path, $return_url );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1138
  }
1139
 
1140
  /**
1195
  $options['welcome']['status'] = 'none';
1196
  update_option( 'optin_monster_api', $options );
1197
  }
1198
+
1199
+ // Abort so we only set the transient for single site installs.
1200
+ if ( isset( $_GET['activate-multi'] ) || is_network_admin() ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
1201
+ return;
1202
+ }
1203
+
1204
+ // Add transient to trigger redirect to the Welcome screen.
1205
+ set_transient( 'optin_monster_api_activation_redirect', true, 30 );
1206
  }
1207
 
1208
  register_uninstall_hook( __FILE__, 'optin_monster_api_uninstall_hook' );
readme.txt CHANGED
@@ -1,55 +1,67 @@
1
- === Marketing Toolkit by OptinMonster Popups, Email Optin Forms & Newsletter Subscribers ===
2
  Contributors: optinmonster, griffinjt, smub
3
- Tags: marketing, popups, popup builder, newsletter, conversion, optin forms, forms, subscribers, exit intent popup, email marketing, crm, popup maker, popup plugin, cart abandonment, spin a wheel popup, conversion optimization, a/b testing, email opt-in, retargeting, ecommerce, cro, lightbox, promotion, shipping bar, announcement bar, advertising, mailing list, popup slide-in
4
  Requires at least: 4.7.0
5
- Tested up to: 5.6
6
  Requires PHP: 5.3
7
- Stable tag: 2.0.4
8
  License: GNU General Public License v2.0 or later
9
 
10
- Create popups, opt-in forms, & floating bars to get more email newsletter subscribers, leads, and increase sales conversion - #1 marketing popup plugin.
11
 
12
  == Description ==
13
 
14
  = The Best WordPress Popup and Marketing Plugin =
15
 
16
- <a href="https://optinmonster.com/wp/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend" title="OptinMonster - WordPress Popup and Marketing Plugin">OptinMonster</a> is the ultimate popup builder and marketing plugin that helps you get more email subscribers, increase sales, and grow your business.
17
 
18
  With OptinMonster popups and conversion toolkit, you can turn abandoning website visitors into subscribers and customers.
19
 
20
- OptinMonster allows you to create beautiful popup forms, email subscription forms, sticky announcement bar (hello bar), gamified spin a wheel opt-in forms, and other types of interactive popups for your site in minutes, not hours!
21
 
22
- At OptinMonster, user experience is our #1 priority. This is why unlike typical WordPress popup plugins, OptinMonster comes with smart targeting and personalization features that lets you show the right popup message, to the right user, at the right time.
23
 
24
- OptinMonster popups and newsletter opt-in forms are 100% mobile responsive, so your marketing message modals will always look great on all devices (mobile, tablet, laptop, and desktop).
 
 
 
 
25
 
26
- We understand the importance of speed when it comes SEO, marketing, and conversion optimization. This is why we made sure that OptinMonster popups and marketing tools are optimized for both web and server performance.
27
 
28
  > <strong>OptinMonster App</strong><br />
29
- > OptinMonster is a SaaS service. OptinMonster popups and marketing tools are part of the standalone OptinMonster app. You will need to create an OptinMonster account to access our popup builder, opt-in form builder, newsletter subscribers, and other powerful conversion tools. <a href="https://optinmonster.com/wp/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend" title="OptinMonster">Click here to purchase OptinMonster Pro now!</a>
30
 
31
- We took the pain out of creating highly personalized popup forms and made it easy. Here's why smart business owners, designers, and developers love OptinMonster marketing toolkit, and you will too!
32
 
33
  https://www.youtube.com/watch?v=qVrgFndEQIY&rel=0
34
 
35
- = Drag & Drop Popup Maker =
36
 
37
- We were tired of the bloated and slow popup maker plugins. That's why we built OptinMonster to adapt to your marketing workflow and allow you to create custom popups, newsletter opt-in forms, slide-ins popups, announcement bars, and other high converting lead generation forms within minutes.
38
-
39
- By using our drag & drop popup maker, you can easily customize the look and feel of your opt-in popups, and even add dynamic popup elements like countdown timers, spin a wheel, etc that change based on user behavior (no code necessary).
 
 
 
 
 
 
 
 
 
40
 
41
- But don't just take our word. See what one WordPress expert is saying:
42
 
43
- > I was once a disbeliever myself. I didn't like popups at all. But we doubled our email signups, so the results speak for themselves, it just works. OptinMonster makes it super easy and is well worth the money.<br>
44
- > Joost de Valk, Founder of Yoast SEO (<a href="https://optinmonster.com/case-study-how-yoast-doubled-his-email-signups-and-added-10000-email-subscribers-in-a-month/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">See Case Study</a>)
45
 
46
- = Pre-built Popup Templates to Boost Conversions =
47
 
48
- Building high-converting marketing popups can be time consuming. Why?
49
 
50
- Because every other WordPress popup plugin requires you to build popups from scratch. The truth is it's often not necessary to create a popup or shipping bar from scratch unless you really want to.
 
51
 
52
- Whether you're looking to create a newsletter popup, coupon popup, free shipping bar, announcement bar with countdown timer, gamified spin a wheel popup, fullscreen welcome mat popup, slide-in scroll popup, or any other advanced popup modal, we have a popup template for you inside our easy to use popup builder.
53
 
54
  OptinMonster comes with hundreds of popup templates to help you save time. See our <a href="https://optinmonster.com/exit-intent-popup-examples/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">exit popup template gallery</a>.
55
 
@@ -66,7 +78,7 @@ With exit intent popups, your visitors see a targeted popup message at the preci
66
 
67
  Exit popups are proven to convert an additional 2 - 4% of your visitors into email subscribers and paying customers.
68
 
69
- You can use exit intent popups combined with <a href="https://optinmonster.com/features/onsite-retargeting/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">OnSite retargeting</a> to show different popup messages to new visitors vs returning visitors.
70
 
71
  These advanced popup triggers are highly effective in growing your email list, reducing WooCommerce cart abandonment, and saving you moeny on PPC advertising and retargeting ads.
72
 
@@ -87,37 +99,20 @@ These personalization features of OptinMonster popups make them highly effective
87
  > Cole Joseph, Owner of Cole's Classroom (<a href="https://optinmonster.com/coles-classroom-added-55494-sales?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">See Case Study</a>)
88
 
89
 
90
- = Popup A/B Testing, Email Marketing Integration, and Popup Analytics =
91
 
92
- Unlike other WordPress popup plugins, OptinMonster popups come with reliable A/B split testing and accurate popup analytics without slowing down your site.
93
 
94
- Typical WordPress popup plugins use wp-ajax to setup popup analytics. This slows down your site and also results in unreliable popup analytics due to cache plugin settings.
95
 
96
- Similarly, A/B testing in a basic WordPress popup plugin is broken because caching plugins can skew the data.
97
 
98
- We fixed both these issues with our superior popup infrastructure, so you can have reliable A/B testing for popups, accurate popup conversion analytics, and seamless email marketing / CRM integrations for your popups (bonus: popup lead storage & lead backup for popup is now included too).
99
 
100
  > Since we started using OptinMonster our email list conversion rate increased by 300% and our sales by 20%. The best investment you can make for your online business!<br>
101
  > Alex Chris, Digital Marketing Manager (<a href="https://optinmonster.com/case-study-how-reliablesoft-net-increased-conversions-by-300-using-optinmonster/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">See Case Study</a>)
102
 
103
 
104
- = Full OptinMonster Feature List =
105
-
106
- Popup Campaign Types for maximum conversions:
107
-
108
- * <a href="https://optinmonster.com/features/lightbox-popups/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Lightbox Popups</a> - Create custom popups to grow your email list, show coupons in popup, make a WooCommerce popup modal for cross-sell or upsell products, and more.
109
- * <a href="https://optinmonster.com/features/floating-bar/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Floating Bar Popups</a> - Create sticky header bars (also known as hello bar or floating footer bar) to show free shipping bar notice, website announcement alert, sale countdown timer, and more.
110
- * <a href="https://optinmonster.com/features/slide-in-forms/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Slide-in Popups</a> - Create scroll box popups that slide out from bottom of the screen to highlight related WooCommerce products, related posts, and show coupon popup to reduce cart abandonment.
111
- * <a href="https://optinmonster.com/features/fullscreen-welcome-gate/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Fullscreen Welcome Mat Popup</a> - Create full screen popups (also known as interstitials or welcome mats) to get maximum conversions. Great for getting new subscribers and marketing new products.
112
- * <a href="https://optinmonster.com/features/coupon-wheel-optins/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Gamified Spin a Wheel Popup</a> - Create coupon wheel optins to increase WooCommerce conversions (with gamification). This adds an interactive spin a wheel popup that's proven to increase sales and lead generation.
113
- * <a href="https://optinmonster.com/features/after-post-optin-forms/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Inline Signup Forms</a> - Unlike a popup, inline newsletter signup forms can be embedded inside your blog posts / page content. You can also use it to add an email opt-in form or custom call-to-action button (CTA) after your blog posts.
114
- * <a href="https://optinmonster.com/features/sidebar-optin-forms/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Sidebar Subscribe Forms</a> - Unlike a popup, sidebar opt-in form lets you add an email newsletter signup form in your blog's sidebar to get more subscribers.
115
- * <a href="https://optinmonster.com/features/content-lock/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Content Locker Popups</a> - Content locker popup turns any popular blog post into gated content, so you can get more email subscribers and boost marketing conversions.
116
- * <a href="https://optinmonster.com/features/countdown-timer/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Countdown Timer Popup</a> - Boost urgency and scarcity for limited time offers with countdown timer popups (great for sales promotion, live events, webinars, and product launches). You can even create evergreen countdown timer popups to increase sales conversion.
117
- * <a href="https://optinmonster.com/features/yes-no-forms/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Yes / No Popups</a> - Allows you to create multi-step popup and opt-in forms that results in better list segmentation and higher marketing conversions. Great for affiliate popups and showing different lead magnets.
118
- * <a href="https://optinmonster.com/features/mobile-friendly-popups/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Mobile Popups</a> - Unlike other popup plugins, OptinMonster also lets you create mobile-specific popups that are only shown to users on smart phones and tablets. Great for mobile app download popup or simply boosting marketing conversions for mobile users.
119
- * <a href="https://optinmonster.com/features/canvas/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Canvas Custom Popup</a> - Our blank canvas popup template allows you to create completely custom popup using our drag & drop popup builder for any use-case. Examples include: video popup, quiz popup, contest giveaway popup, social share popup, related post popup, related product popup, donations popup, and more.
120
-
121
  Popup Targeting and Personalization features:
122
 
123
  * <a href="https://optinmonster.com/features/page-level-targeting/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Popup Page Level Targeting</a> - Allows you to customize popups based on specific pages, category sections, and URL query / anchor tags.
@@ -151,72 +146,69 @@ Popup Triggers and Behavior Detection:
151
 
152
  Other Powerful Popup Features:
153
 
154
- * <a href="https://optinmonster.com/features/monstereffects/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Popup Animations</a> - Add popup animation effects to capture users' attention.
155
- * <a href="https://optinmonster.com/docs/how-to-add-sound-effects-to-your-campaign/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Popup Sound Effects</a> - Add popup sound effects to grab users' attention.
156
- * <a href="https://optinmonster.com/features/easy-ab-split-testing/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Smart A/B Testing for Popups</a> - A/B test popup ideas to increase conversions.
157
- * <a href="https://optinmonster.com/features/conversion-analytics/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Reliable Popup Conversion Analytics</a> - See how your marketing popups are converting with reliable analytics.
158
- * <a href="https://optinmonster.com/docs/how-optinmonster-uses-google-analytics-to-measure-conversion-analytics/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Advanced Google Analytics for Popups</a> - Connect popups with Google Analytics to see event tracking, enhanced eCommerce tracking, and more.
159
- * <a href="https://optinmonster.com/features/lead-sharing/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Popup Lead Sharing</a> - Easily share popup leads with joint venture / co-marketing partners while using the same popup form.
160
- * <a href="https://optinmonster.com/features/list-segmentation/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Popup List Segmentation</a> - Group email popup subscribers based on their interests for improved marketing automation.
161
- * <a href="https://optinmonster.com/docs/connect-monster-leads-optinmonster/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Popup Lead Backup / Storage</a> - Always backup your popup subscribers with MonsterLeads.
162
- * <a href="https://optinmonster.com/docs/how-to-create-a-shareable-monsterlink/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Share Popups on Social Media</a> - Create shareable popup links for social media using MonsterLinks.
163
- * <a href="https://optinmonster.com/features/success-tracking-and-retargeting-scripts/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Popup Success Tracking Scripts</a> - Setup advertising conversion and retargeting pixels based on popup interaction to improve your PPC results.
164
 
165
  > Within 1 month of setting up OptinMonster, our conversion rate of visitors to email subscribers shot up from 2.1% to 6.5% - I just wish we had signed up sooner!<br>
166
  > Ben Philbaum, Founder Biddyco (<a href="https://optinmonster.com/case-study-how-biddyco-tripled-their-conversions-with-optinmonster/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">See Case Study</a>)
167
 
168
  = Email Marketing and CRM Integrations =
169
 
170
- * <a href="https://optinmonster.com/integrations/constant-contact/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Constant Contact Forms</a> - Create Constant Contact popups and newsletter sign up forms.
171
- * <a href="https://optinmonster.com/integrations/mailchimp/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Mailchimp Forms</a> - Easily create MailChimp popup and email opt-in forms.
172
- * <a href="https://optinmonster.com/integrations/aweber/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">AWeber Popup Forms</a>- Make AWeber popups and email marketing forms.
173
  * <a href="https://optinmonster.com/integrations/aweber/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Infusionsoft (Keap)</a> - Create advanced Infusionsoft popups and lead generation forms.
174
- * <a href="https://optinmonster.com/integrations/active-campaign/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">ActiveCampaign Popup Forms</a> - Create ActiveCampaign popup and newsletter signup form.
175
- * <a href="https://optinmonster.com/integrations/convertkit/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">ConvertKit Popups</a> - Easily build ConvertKit popups and email signup forms.
176
- * <a href="https://optinmonster.com/integrations/sendinblue/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Sendinblue Opt-in Popup</a> - Create Sendinblue popups and email subscription forms.
177
- * <a href="https://optinmonster.com/integrations/getresponse/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">GetResponse Pop-ups</a> - Make GetResponse forms and popups with just a few clicks.
178
- * <a href="https://optinmonster.com/integrations/campaign-monitor/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Campaign Monitor Forms</a> - Embed a Campaign Monitor popup and email marketing signup form.
179
  * <a href="https://optinmonster.com/integrations/conversio/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">CM Commerce (formerly Conversio)</a> - Easily create exit intent popup for CM Commerce / Conversio.
180
- * <a href="https://optinmonster.com/integrations/drip/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Drip Popups</a> - Create smart marketing automation popup forms for Drip CRM and email marketing service.
181
- * <a href="https://optinmonster.com/integrations/eloqua/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Eloqua Forms</a> - Create dynamic popup and lead generation forms for Eloqua CRM.
182
- * <a href="https://optinmonster.com/integrations/emma/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Emma Popups</a> - Create exit popups and inline forms for Emma newsletter service.
183
- * <a href="https://optinmonster.com/integrations/hubspot/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">HubSpot Forms</a> - Create personalized popups forms to improve lead generation with HubSpot CRM.
184
- * <a href="https://optinmonster.com/integrations/icontact/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">iContact Popup</a> - Create smart opt-in forms and popups for iContact marketing.
185
- * <a href="https://optinmonster.com/docs/how-to-connect-optinmonster-with-jilt/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Jilt Pop-up Form</a> - Grow your WooCommere email list with smart Jilt popup and email marketing forms.
186
- * <a href="https://optinmonster.com/integrations/klaviyo/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Klaviyo Popups</a> - Build smart eCommerce popups and flyout modals for Klaviyo to increase sales conversion.
187
- * <a href="https://optinmonster.com/integrations/madmimi/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">MadMimi Signup Forms</a> - Create custom popups for Madmimi and get more email subscribers.
188
- * <a href="https://optinmonster.com/integrations/mailerlite/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">MailerLite Popups</a> - Easily create newlsetter subscribe popup for Mailerlite and grow your email list.
189
- * <a href="https://optinmonster.com/integrations/mailpoet/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">MailPoet Popup Form</a> - Use our popup maker to build smart MailPoet pop-up forms within minutes.
190
- * <a href="https://optinmonster.com/integrations/marketo/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Marketo Lead Capture Forms</a> - Create exit popups and floating bars for Marketo to improve your lead generation / conversions.
191
- * <a href="https://optinmonster.com/integrations/ontraport/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Ontraport Lightbox Popup</a> - Convert more leads with Ontraport CRM popups by OptinMonster.
192
  * <a href="https://optinmonster.com/integrations/pardot/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Pardot (by Salesforce)</a> - Build custom popups for Pardot to capture more leads and improve conversions.
193
- * <a href="https://optinmonster.com/integrations/sendloop/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Sendloop Forms</a> - Smart popup and floating bars for Sendloop email marketing.
194
- * <a href="https://optinmonster.com/integrations/sendpulse/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">SendPulse Subscription Popup</a> - Create subscription forms and popups for SendPulse to boost your marketing conversions.
195
- * <a href="https://optinmonster.com/integrations/sharp-spring/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">SharpSpring Forms</a> - Improve your marketing automation with powerful popups for SharpSpring.
196
- * <a href="https://optinmonster.com/integrations/totalsend/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">TotalSend WordPress Popup</a> - Reduce bounce rate and generate more leads with TotalSend popups for WordPress.
197
  * <a href="https://optinmonster.com/docs/how-to-connect-optinmonster-with-bronto/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Bronto (Oracle)</a> - Create email popups for Bronto (Oracle) to improve lead generation and conversions.
198
- * <a href="https://optinmonster.com/integrations/ipost/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">iPost Popups</a> - Grow your email list faster with iPost popups and newlsetter forms.
199
  * <a href="https://optinmonster.com/integrations/customer-io/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Customer.io</a> - Easily create smart popups and opt-in forms for customer.io.
200
  * EmailOctopus Subsription Popup - Add EmailOctopus popup subscription forms to WordPress.
201
- * <a href="https://optinmonster.com/integrations/feedblitz/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">FeedBlitz Popup</a> - Create smart email subscription popup and shopping cart popup for FeedBlitz.
202
- * <a href="https://optinmonster.com/integrations/feedburner/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">FeedBurner Email Subscriptoin Form</a> - Easily create Feedburner popups for WordPress.
203
  * <a href="https://optinmonster.com/integrations/custom-html-forms/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Custom HTML Forms Integration</a> - lets you embed any opt-in form inside OptinMonster's smart popup modals.
204
  * <a href="https://optinmonster.com/integrations/webhooks/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Webhooks</a> - connect your popup with any custom CRM, email marketing service, or third-party application.
205
  * <a href="https://optinmonster.com/docs/connect-optinmonster-with-zapier/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Zapier</a> - connect your WordPress popups with over 2000+ marketing apps. Route your popup form data to your favorite CRM, email marketing, etc.
206
 
207
  = Additional Marketing Integrations =
208
 
209
- * <a href="https://optinmonster.com/integrations/woocommerce/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">WooCommerce Popups</a> - Add upsell popups, cross sell popup, free shipping bar, announcement bar, wheel optin, and other WooCommerce popups.
210
- * <a href="https://optinmonster.com/integrations/bigcommerce/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">BigCommerce Popups</a> - Coupon popups, gamified spin a wheel popup opt-in forms, exit popups, and more eCommerce popups to reduce cart abandonment and increase conversions.
211
- * <a href="https://optinmonster.com/docs/connect-optinmonster-manychat/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">ManyChat Popups</a> - Create personalized popups for ManyChat to increase your chatbot subscribers on Facebook.
212
  * <a href="https://optinmonster.com/integrations/shopify/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Shopify Popups</a> - Exit intent popup, cart abandonment popup, upsell popup, free shipping bar, discount wheel popups, and more customized popups for Shopify stores.
213
- * <a href="https://optinmonster.com/integrations/magento/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Magento Popups</a> - Exit popups, cart abandonment popup, upsell popup, welcome mat popup, sticky hello bar, and more customized popups for Magento stores.
214
- * <a href="https://optinmonster.com/docs/how-to-connect-optinmonster-with-wpforms/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">WPForms Popup</a> - Create contact form popups, survey form popups, poll popups, or basically embed any WPForms form inside lightbox popup modals.
215
- * <a href="https://optinmonster.com/docs/how-to-use-wordpress-shortcodes-with-optinmonster/utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Gravity Forms Popup</a> - Create payment form popup, contact form popup, user registration popup, login form popup, and other Gravity Forms popup with just few clicks.
216
- * <a href="https://optinmonster.com/docs/how-to-use-wordpress-shortcodes-with-optinmonster/utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Contact Form 7 Popup</a> - Easily create contact form 7 popups with OptinMonster.
217
- * <a href="https://optinmonster.com/docs/how-to-use-wordpress-shortcodes-with-optinmonster/utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Ninja Form Popup</a> - Easily create contact form popups for Ninja Forms with OptinMonster.
218
-
219
- After reading this feature list, you can probably imagine why OptinMonster is the best WordPress popup form plugin in the market.
220
 
221
  <a href="https://optinmonster.com/wp/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Give OptinMonster a try</a>.
222
 
@@ -239,7 +231,7 @@ See our [Press &amp; Brand Assets page](https://optinmonster.com/press/ "OptinMo
239
 
240
  = What's Next =
241
 
242
- If you like this popup plugin, then consider checking out our other projects:
243
 
244
  * <a href="https://wpforms.com/" rel="friend" title="WPForms">WPForms</a> - Best WordPress form plugin (trusted by over 3 million users).
245
  * <a href="https://www.monsterinsights.com/" rel="friend" title="MonsterInsights">MonsterInsights</a> - See the Stats that Matter and Grow Your Business with Confidence. Best Google Analytics Plugin for WordPress.
@@ -264,72 +256,70 @@ Visit <a href="http://www.wpbeginner.com/" rel="friend" title="WPBeginner">WPBeg
264
 
265
  = Who should use OptinMonster Popups? =
266
 
267
- OptinMonster popups are perfect for business owners, bloggers, eCommerce sites, designers, developers, marketing agencies, and basically everyone else.
268
-
269
- If you want to create a custom WordPress popup, then you need to use OptinMonster drag & drop popup form builder.
270
 
271
- Popular OptinMonster use-cases include: growing your email list, improve lead generation, increase sales conversion, reduce cart abandonment, show targeted offers, and get more pageviews.
272
 
273
  = Do I need to have coding skills to use OptinMonster popups? =
274
 
275
- Absolutely not. You can create and manage popups without any coding knowledge (100% drag and drop popup maker). OptinMonster is the most user friendly popup plugin in the market.
276
 
277
  = What type of WordPress popups can I build with OptinMonster? =
278
 
279
- OptinMonster is the most powerful popup builder in the market. Here are just some types of popup you can create:
280
-
281
- * Email Opt-in Popup
282
- * Exit Popup
283
- * Announcement Popup
284
- * Spin a Wheel Popup
285
- * Slide-in Popup
286
- * Fullscreen Popup (aka Welcome Mats)
287
- * Video Popup
288
- * Contact Form Popup
289
- * Quiz Popup
290
- * Disclaimer Popup
291
- * WooCommerce Popup
292
- * Upsell Popup
293
- * Cross Sell Popup
294
- * Coupon Popup
295
- * Sales Popup
296
- * Custom lightbox popup
297
- * Survey Popup
298
- * Newsletter Popup
299
- * Popup on Click of Button or Image
300
- * Facebook popup
301
- * YouTube popup
302
- * Login Popup
303
- * Registration Popup
304
- * Lead Generation Popup
305
 
306
  ... and a whole lot more. Basically, you can use our drag & drop popup builder to create any type of custom popup that you need.
307
 
308
  = Can I integrate OptinMonster popups with my CRM or Email Marketing Service? =
309
 
310
- Yes, OptinMonster popups offer seamless integration with over 2000+ popular <a href="https://www.wpbeginner.com/showcase/best-email-marketing-services/">email marketing</a> and <a href="https://www.wpbeginner.com/showcase/best-crm-software-for-small-businesses-compared/">CRM software</a>.
311
 
312
- You can easily send data from your popup form to your favorite CRM, email newsletter, and other marketing platforms.
313
 
314
  Here is a list of our popular marketing integrations:
315
 
316
- * MailChimp popup forms
317
- * AWeber popup forms
318
- * Constant Contact popup forms
319
- * ActiveCampagin popup forms
320
- * ConvertKit popup forms
321
- * HubSpot popup forms
322
- * Campaign Monitor popup forms
323
- * GetResponse popup forms
324
- * SendinBlue popup forms
325
- * Infusionsoft (Keap) popup forms
326
- * Salesforce Pardot popup forms
327
- * Drip popup forms
328
- * Marketo popup forms
329
- * MailerLite popup forms
330
- * Klaviyo popup forms
331
- * Eloqua (oracle) popup forms
332
- * ManyChat messenger popup
333
 
334
  and dozens of other <a href="https://optinmonster.com/integrations/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme">email marketing integrations</a>.
335
 
@@ -356,78 +346,75 @@ OptinMonster popups also offer custom HTML form popups, webhooks and Zapier inte
356
 
357
  See all <a href="https://zapier.com/apps/optinmonster/integrations">OptinMonster Popup integrations with Zapier</a>.
358
 
359
- = Can I use OptinMonster to make WooCommerce popups? =
360
 
361
- Yes, you can easily create custom WooCommerce popups using OptinMonster popup maker.
362
 
363
- Here are unique WooCommerce popups that you can create:
364
 
365
- * WooCommerce discount popup
366
- * WooCommerce spin a wheel coupon popup
367
- * WooCommerce exit popup
368
- * WooCommerce product popup
369
- * WooCommerce upsell popups
370
- * WooCommerce cross-sell popup
371
- * WooCommerce cart abandonment popup
372
- * WooCommerce sales popup
373
- * WooCommerce free shipping popup
374
- * WooCommerce countdown timer popup
375
 
376
  ... and many more.
377
 
378
- The best part is that OptinMonster popup targeting feature lets you customize your popups based on specific WooCommerce triggers like: what items they have in cart, total shopping cart value, user's geolocation, and more.
379
 
380
  = Which design elements / form fields can I add in OptinMonster popups? =
381
 
382
  We made OptinMonster popup builder to be both easy and powerful.
383
 
384
- Here are the popup fields that comes with the OptinMonster popup builder:
385
 
386
- * Optin Form fields - great for newsletter popups
387
- * Image field - great for adding images in popup
388
  * Video field - great for creating video popups
389
- * Button Field - great for adding call-to-action in popups
390
- * Countdown Timer field - great for holiday sales popups
391
  * Coupon Wheel field - great for spin to win coupon popups
392
- * Chatbot field - great for creating messenger bot popups
393
  * Yes / No field - great for creating multi-step popups
394
- * Text field - easily add / customize text and headlines in popups
395
- * HTML field - add any custom HTML or shortcode in popup
396
- * Icon field - add custom FontAwesome icons inside popups
397
- * Spacer field - add spacing in between popup elements
398
- * Divider field - add divider styles in popups
399
- * Columns field - create multi-column popup layouts
400
- * Google ReCAPTCHA field - reduce popup form spam with Google ReCAPTCHA
401
- * GDPR privacy checkbox - make your popup GDPR compliant
402
-
403
- Using the HTML field, you can add tons of custom popup elements through iFrame embeds or WordPress shortcode. Here are some examples:
404
-
405
- * Quiz popups
406
- * Contact form popups
407
- * Survey popups
408
- * Popular post popups
409
- * Related post popups
410
- * WooCommerce product popups
411
- * Payment form popups
412
- * Webinar registration popup
413
- * Image gallery popup
414
- * Banner ad popup
415
- * Live chat popup
416
- * GDPR popup
417
- * Terms and Conditions popup
418
- * WordPress login form popup
419
- * WordPress user registration popup
420
- * Click to call popup
421
- * Announcement notification popup
422
- * Push notification popup
423
-
424
- ... and a whole lot more. Basically if another WordPress plugin or third-party apps provide a shortcode or iFrame, then you can embed that inside OptinMonster popups.
425
 
426
  = Do popups really work? Show me the results =
427
 
428
- Yes, popups are popular because they are proven to increase subscribers and sales.
429
-
430
- Here are just a few popup success stories from OptinMonster customers:
431
 
432
  > Before using OptinMonster, our website conversion rate was 2-3%, as expected. Since using OptinMonster, we have been able to improve conversion rates to 5.75%, a 189% increase.<br>
433
  > Adam Rowles (<a href="https://optinmonster.com/case-study-inbound-marketing-increased-conversions-189-lead-magnets/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">See Case Study</a>)
@@ -438,21 +425,21 @@ Here are just a few popup success stories from OptinMonster customers:
438
  > Exit-intent popups have doubled my email opt-in rate. When done right, you can see an instant 10% lift on driving sales. I highly recommend that you use OptinMonster for growing your email list and sales.<br>
439
  > Neil Patel
440
 
441
- <a href="https://optinmonster.com/testimonials/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Click here to see more popup case studies.</a>
442
 
443
 
444
  == Screenshots ==
445
 
446
- 1. Select a Popup type (popup, full screen, floating bar, slide-in, inline, etc)
447
- 2. Create and customize your popup with our easy drag-and-drop popup builder
448
- 3. Smart popup targeting and personalization
449
- 4. The most powerful popup targeting and display rules engine
450
- 5. Boost conversions and engagement with spin a wheel popup (gamification)
451
  6. Exit popup template gallery
452
  7. Floating Bar (aka Hello Bar / Sticky Bar) gallery
453
  8. Sidebar newsletter opt-in form template gallery
454
- 9. Reliable conversion analytics for popups
455
- 10. Free access to OptinMonster university (marketing courses)
456
 
457
  == Notes ==
458
 
@@ -471,51 +458,84 @@ Syed Balkhi
471
 
472
  **Most Recent Changes:**
473
 
474
- = 2.0.4 =
475
- * Security hardening.
476
-
477
- = 2.0.3 =
478
- * Updates the "get started" interface to be more intuitive for existing users.
479
- * Remove incorrect concept of "pending" for split tests.
480
-
481
- = 2.0.2 =
482
- * Include the JS source map files in the release to prevent unnecessary 404s in the dashboard.
483
- * Use `POST` request to save campaign output settings, since some servers don't like `PUT` requests.
484
- * Updated dependencies.
485
- * Better cache-busting for js files via file-name changes with new builds.
486
- * Fixed typos.
487
- * Move constants-setting to separate method, add a hook for just-in-time constants-setting.
488
- * Update our Amp checks to run at the correct hook, to prevent php notices in debug logs.
489
- * Better UI when connecting/disconnecting, showing loaders/success alerts, even while page is refreshing.
490
- * Improved alert notifications when actions fail in the Campaigns dashboard.
491
- * If campaign-status setting fails, output errors, and reset status to previous setting.
492
- * UI fixes/improvements.
493
- * Ensure campaign-creation errors are displayed on the Templates page.
494
- * Update description around site cookie settings.
495
-
496
- = 2.0.1 =
497
- * Bug fixes and adjustments for compatibility with older versions of PHP.
498
- * Bug fixes related to wildcard domains and subdomains.
499
-
500
- = 2.0.0 =
501
- * NEW: Overhaul of the plugin to make managing your popup campaigns easier than ever!
502
- * Added the ability to see all your popup campaigns in your dashboard (draft, pending and published)
503
- * Added a new dashboard to see stats and details about your popup optins
504
- * Added the ability to see all popup templates and create new popup campaigns from within the plugin
505
- * Added a new menu link to see all your popup subscribers
506
- * Added the ability to create popup split tests from within the plugin
507
- * Improved the popup output settings for each individual popup campaign
508
- * Many other performance improvements, product enhancements and bug fixes to the plugin
509
-
510
- = 1.9.18 =
511
- * Fixed a bug where review notice wouldn't get dismissed.
512
- * Update the readme to be explicit about OptinMonster being a service.
513
-
514
- = 1.9.17 =
515
- * Fixed a bug where taxonomy settings may not properly display.
516
- * Fixed an error that could occur when non-admins logged in.
517
-
518
- = 1.9.16 =
519
- * Fixed a bug where category settings may not properly display.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
520
 
521
  **[View entire changelog](https://plugins.svn.wordpress.org/optinmonster/trunk/CHANGELOG.md)**
1
+ === WordPress Popups for Marketing and Email Newsletters, Lead Generation and Conversions by OptinMonster ===
2
  Contributors: optinmonster, griffinjt, smub
3
+ Tags: popups, popup builder, conversion, marketing, newsletter, popup, popup maker, email marketing, exit popup, ecommerce, woocommerce, lightbox
4
  Requires at least: 4.7.0
5
+ Tested up to: 5.8.1
6
  Requires PHP: 5.3
7
+ Stable tag: 2.6.5
8
  License: GNU General Public License v2.0 or later
9
 
10
+ Create popups, opt-in forms, & floating bars to get more email newsletter subscribers, leads, and increase sales conversion - #1 marketing popup builder plugin.
11
 
12
  == Description ==
13
 
14
  = The Best WordPress Popup and Marketing Plugin =
15
 
16
+ <a href="https://optinmonster.com/wp/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend" title="OptinMonster - WordPress Popup and Marketing Plugin">OptinMonster</a> is the best popup builder and marketing plugin that helps you get more email subscribers, increase sales, and grow your business.
17
 
18
  With OptinMonster popups and conversion toolkit, you can turn abandoning website visitors into subscribers and customers.
19
 
20
+ OptinMonster's easy to use popup maker allows you to create beautiful popup campaigns, email subscription forms, sticky announcement bars like hello bar, gamified spin-a-wheel opt-n forms, and other types of interactive popups for your site in minutes, not hours!
21
 
22
+ Your visitor's experience is our #1 priority. OptinMonster's campaigns won't annoy your visitors like other WordPress popup plugins do. Our smart targeting and personalization features let you show the right message, to the right user, at the right time...no unwanted interruptions necessary.
23
 
24
+ We also offer mobile popups so your marketing messages will always look great on all devices (mobile, tablet, laptop, and desktop).
25
+
26
+ And we understand the importance of speed when it comes SEO, marketing, and conversion optimization. This is why we made sure that the OptinMonster popup builder is optimized for both web and server performance.
27
+
28
+ On top of offering the absolute best WordPress popup plugin, our Customer Success team is here to ensure you WIN, and win MORE OFTEN.
29
 
 
30
 
31
  > <strong>OptinMonster App</strong><br />
32
+ > OptinMonster is a SaaS service. You will need to create an OptinMonster account to use our popup builder and to gain newsletter subscribers using OptinMonster. We recommend <a href="https://optinmonster.com/wp/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend" title="OptinMonster">getting started with OptinMonster Pro!</a>
33
 
34
+ We took the pain out of creating highly personalized marketing campaigns with our easy to use popup maker. Here's why smart business owners, designers, and developers love OptinMonster marketing toolkit, and you will too!
35
 
36
  https://www.youtube.com/watch?v=qVrgFndEQIY&rel=0
37
 
38
+ = WordPress Popups From OptinMonster Increase Conversions =
39
 
40
+ * <a href="https://optinmonster.com/features/lightbox-popups/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Lightbox Popups</a> - Easily create custom popups to grow your email list, show coupons, make a WooCommerce cross-sell or WooCommerce upsell campaign, and more using our popup maker.
41
+ * <a href="https://optinmonster.com/features/floating-bar/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Floating Bar Popups</a> - Create sticky header bars (also known as hello bar or floating footer bar) to show free shipping notices, website announcement alert, sale countdown timer, and more using our popup builder.
42
+ * <a href="https://optinmonster.com/features/slide-in-forms/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Slide-in Popups</a> - Create scroll box popups that slide out from bottom of the screen to highlight related WooCommerce products, related posts, and coupon codes to reduce cart abandonment.
43
+ * <a href="https://optinmonster.com/features/fullscreen-welcome-gate/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Fullscreen Welcome Mats</a> - Create full screen popups (also known as interstitials or welcome mats) to get maximum conversions with our popup builder. Great for getting new subscribers and marketing new products.
44
+ * <a href="https://optinmonster.com/features/coupon-wheel-optins/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Gamified Spin a Wheel Popup</a> - Create coupon wheel optins to increase WooCommerce conversions with gamification. This adds an interactive element that's proven to increase sales and lead generation.
45
+ * <a href="https://optinmonster.com/features/after-post-optin-forms/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Inline Signup Forms</a> - Unlike a popup, inline newsletter signup forms can be embedded inside your blog posts / page content. You can also use it to add an email opt-in form or custom call-to-action button (CTA) after your blog posts.
46
+ * <a href="https://optinmonster.com/features/sidebar-optin-forms/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Sidebar Subscribe Forms</a> - Similar to Inline Signup Forms, sidebar opt-in forms lets you add an email newsletter signup form in your blog's sidebar to get more subscribers. We even made it easy to do if you're using Gutenberg Blocks.
47
+ * <a href="https://optinmonster.com/features/content-lock/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Content Locker Popups</a> - Content lockers turn any popular blog post into gated content, so you can get more email subscribers and boost marketing conversions. Turn any inline campaign into a content locker with our easy to use popup maker.
48
+ * <a href="https://optinmonster.com/features/countdown-timer/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Countdown Timers</a> - Boost urgency and scarcity for limited time offers with countdown timers (great for sales promotion, live events, webinars, and product launches). You can even create evergreen countdown timers to increase sales conversion.
49
+ * <a href="https://optinmonster.com/features/yes-no-forms/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Yes / No Popups</a> - Allows you to create multi-step campaigns and opt-in forms that results in better list segmentation and higher marketing conversions.
50
+ * <a href="https://optinmonster.com/features/mobile-friendly-popups/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Mobile Popups</a> - Unlike the other WordPress popup maker plugins, OptinMonster also lets you create mobile-specific popups that are only shown to users on smart phones and tablets. Great for mobile app downloads or making specific offers to your mobile visitors.
51
+ * <a href="https://optinmonster.com/features/canvas/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Canvas Custom Popup</a> - Our blank Canvas popup template allows you to create completely custom campaigns using our drag & drop popup builder for any use case.
52
 
53
+ = Our Drag and Drop Popup Maker Makes It Easy =
54
 
55
+ We were tired of the bloated and slow popup builder plugins. That's why we built OptinMonster to adapt to your marketing workflow and allow you to create custom popups, newsletter opt-in forms, slide-ins, announcement bars, and other high converting lead generation forms within minutes.
 
56
 
57
+ By using our drag & drop editor, you can easily customize the look and feel of your campaigns, and even add dynamic elements like countdown timers, spin a wheel, etc that change based on user behavior (no code necessary).
58
 
59
+ But don't just take our word. See what Joost De Valk from Yoast SEO is saying:
60
 
61
+ > I was once a disbeliever myself. I didn't like popups at all. But we doubled our email signups, so the results speak for themselves, it just works. OptinMonster makes it super easy and is well worth the money.<br>
62
+ > Joost de Valk, Founder of Yoast SEO (<a href="https://optinmonster.com/case-study-how-yoast-doubled-his-email-signups-and-added-10000-email-subscribers-in-a-month/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">See Case Study</a>)
63
 
64
+ = Pre-built Popup Templates using our Popup Builder =
65
 
66
  OptinMonster comes with hundreds of popup templates to help you save time. See our <a href="https://optinmonster.com/exit-intent-popup-examples/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">exit popup template gallery</a>.
67
 
78
 
79
  Exit popups are proven to convert an additional 2 - 4% of your visitors into email subscribers and paying customers.
80
 
81
+ You can use exit intent popups combined with <a href="https://optinmonster.com/features/onsite-retargeting/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">OnSite retargeting</a> to show different popup messages to new visitors vs returning visitors. The exit-intent trigger is just one of many triggers available in our popup maker.
82
 
83
  These advanced popup triggers are highly effective in growing your email list, reducing WooCommerce cart abandonment, and saving you moeny on PPC advertising and retargeting ads.
84
 
99
  > Cole Joseph, Owner of Cole's Classroom (<a href="https://optinmonster.com/coles-classroom-added-55494-sales?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">See Case Study</a>)
100
 
101
 
102
+ = Popup A/B Testing, Email Marketing Integrations, and Popup Analytics =
103
 
104
+ Unlike other WordPress lead generation plugins, OptinMonster comes with reliable A/B split testing and accurate analytics without slowing down your site.
105
 
106
+ Most of them use wp-ajax to setup nalytics. This slows down your site and also results in unreliable analytics due to cache plugin settings.
107
 
108
+ Similarly, A/B testing in a most WordPress popup plugins is broken because caching plugins can skew the data.
109
 
110
+ We fixed both these issues with our superior infrastructure, so you can have reliable A/B testing for popups, accurate conversion analytics, and seamless email marketing / CRM integrations for your marketing (bonus: lead storage & lead backup are now included, too).
111
 
112
  > Since we started using OptinMonster our email list conversion rate increased by 300% and our sales by 20%. The best investment you can make for your online business!<br>
113
  > Alex Chris, Digital Marketing Manager (<a href="https://optinmonster.com/case-study-how-reliablesoft-net-increased-conversions-by-300-using-optinmonster/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">See Case Study</a>)
114
 
115
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
116
  Popup Targeting and Personalization features:
117
 
118
  * <a href="https://optinmonster.com/features/page-level-targeting/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Popup Page Level Targeting</a> - Allows you to customize popups based on specific pages, category sections, and URL query / anchor tags.
146
 
147
  Other Powerful Popup Features:
148
 
149
+ * <a href="https://optinmonster.com/features/monstereffects/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Animations</a> - Add animation effects to capture users' attention.
150
+ * <a href="https://optinmonster.com/docs/how-to-add-sound-effects-to-your-campaign/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Sound Effects</a> - Add sound effects to grab users' attention.
151
+ * <a href="https://optinmonster.com/features/easy-ab-split-testing/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Smart A/B Testing</a> - A/B test popup ideas to increase conversions.
152
+ * <a href="https://optinmonster.com/features/conversion-analytics/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Reliable Conversion Analytics</a> - See how your OptinMonster campaigns are converting with reliable analytics.
153
+ * <a href="https://optinmonster.com/docs/how-optinmonster-uses-google-analytics-to-measure-conversion-analytics/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Advanced Google Analytics</a> - Connect with Google Analytics to see event tracking, enhanced eCommerce tracking, and more.
154
+ * <a href="https://optinmonster.com/features/lead-sharing/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Lead Sharing</a> - Easily share leads with joint venture / co-marketing partners while using the same optin form.
155
+ * <a href="https://optinmonster.com/features/list-segmentation/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Email Newsletter Segmentation</a> - Group email subscribers based on their interests and the unique optin form they subscribed through for improved marketing automation.
156
+ * <a href="https://optinmonster.com/docs/connect-monster-leads-optinmonster/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Lead Backup / Storage</a> - Always backup your subscribers with MonsterLeads.
157
+ * <a href="https://optinmonster.com/docs/how-to-create-a-shareable-monsterlink/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Share on Social Media</a> - Create shareable campaign links for social media using MonsterLinks.
158
+ * <a href="https://optinmonster.com/features/success-tracking-and-retargeting-scripts/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Success Tracking Scripts</a> - Setup advertising conversion and retargeting pixels based on popup interaction to improve your PPC results.
159
 
160
  > Within 1 month of setting up OptinMonster, our conversion rate of visitors to email subscribers shot up from 2.1% to 6.5% - I just wish we had signed up sooner!<br>
161
  > Ben Philbaum, Founder Biddyco (<a href="https://optinmonster.com/case-study-how-biddyco-tripled-their-conversions-with-optinmonster/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">See Case Study</a>)
162
 
163
  = Email Marketing and CRM Integrations =
164
 
165
+ * <a href="https://optinmonster.com/integrations/constant-contact/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Constant Contact</a> - Create Constant Contact popups and newsletter sign up forms.
166
+ * <a href="https://optinmonster.com/integrations/mailchimp/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Mailchimp</a> - Easily create MailChimp popup and email opt-in forms.
167
+ * <a href="https://optinmonster.com/integrations/aweber/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">AWeber</a>- Make AWeber popups and email marketing forms.
168
  * <a href="https://optinmonster.com/integrations/aweber/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Infusionsoft (Keap)</a> - Create advanced Infusionsoft popups and lead generation forms.
169
+ * <a href="https://optinmonster.com/integrations/active-campaign/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">ActiveCampaign</a> - Create ActiveCampaign popup and newsletter signup form.
170
+ * <a href="https://optinmonster.com/integrations/convertkit/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">ConvertKit</a> - Easily build ConvertKit popups and email signup forms.
171
+ * <a href="https://optinmonster.com/integrations/sendinblue/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Sendinblue</a> - Create Sendinblue popups and email subscription forms.
172
+ * <a href="https://optinmonster.com/integrations/getresponse/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">GetResponse</a> - Make GetResponse forms and popups with just a few clicks.
173
+ * <a href="https://optinmonster.com/integrations/campaign-monitor/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Campaign Monitor</a> - Embed a Campaign Monitor popup and email marketing signup form.
174
  * <a href="https://optinmonster.com/integrations/conversio/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">CM Commerce (formerly Conversio)</a> - Easily create exit intent popup for CM Commerce / Conversio.
175
+ * <a href="https://optinmonster.com/integrations/drip/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Drip</a> - Create smart marketing automation popup forms for Drip CRM and email marketing service.
176
+ * <a href="https://optinmonster.com/integrations/eloqua/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Eloqua</a> - Create dynamic popup and lead generation forms for Eloqua CRM.
177
+ * <a href="https://optinmonster.com/integrations/emma/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Emma</a> - Create exit popups and inline forms for Emma newsletter service.
178
+ * <a href="https://optinmonster.com/integrations/hubspot/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">HubSpot</a> - Create personalized popups forms to improve lead generation with HubSpot CRM.
179
+ * <a href="https://optinmonster.com/integrations/icontact/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">iContact</a> - Create smart opt-in forms and popups for iContact marketing.
180
+ * <a href="https://optinmonster.com/integrations/klaviyo/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Klaviyo</a> - Build smart eCommerce popups and flyout modals for Klaviyo to increase sales conversion.
181
+ * <a href="https://optinmonster.com/integrations/madmimi/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">MadMimi</a> - Create custom popups for Madmimi and get more email subscribers.
182
+ * <a href="https://optinmonster.com/integrations/mailerlite/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">MailerLite</a> - Easily create newlsetter subscribe popup for Mailerlite and grow your email list.
183
+ * <a href="https://optinmonster.com/integrations/mailpoet/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">MailPoet</a> - Use our popup maker to build smart MailPoet pop-up forms within minutes.
184
+ * <a href="https://optinmonster.com/integrations/marketo/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Marketo</a> - Create exit popups and floating bars for Marketo to improve your lead generation / conversions.
185
+ * <a href="https://optinmonster.com/integrations/ontraport/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Ontraport</a> - Convert more leads with Ontraport CRM popups by OptinMonster.
 
186
  * <a href="https://optinmonster.com/integrations/pardot/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Pardot (by Salesforce)</a> - Build custom popups for Pardot to capture more leads and improve conversions.
187
+ * <a href="https://optinmonster.com/integrations/sendloop/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Sendloop</a> - Smart popup and floating bars for Sendloop email marketing.
188
+ * <a href="https://optinmonster.com/integrations/sendpulse/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">SendPulse</a> - Create subscription forms and popups for SendPulse to boost your marketing conversions.
189
+ * <a href="https://optinmonster.com/integrations/sharp-spring/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">SharpSpring</a> - Improve your marketing automation with powerful popups for SharpSpring.
190
+ * <a href="https://optinmonster.com/integrations/totalsend/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">TotalSend</a> - Reduce bounce rate and generate more leads with TotalSend popups for WordPress.
191
  * <a href="https://optinmonster.com/docs/how-to-connect-optinmonster-with-bronto/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Bronto (Oracle)</a> - Create email popups for Bronto (Oracle) to improve lead generation and conversions.
192
+ * <a href="https://optinmonster.com/integrations/ipost/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">iPost</a> - Grow your email list faster with iPost popups and newlsetter forms.
193
  * <a href="https://optinmonster.com/integrations/customer-io/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Customer.io</a> - Easily create smart popups and opt-in forms for customer.io.
194
  * EmailOctopus Subsription Popup - Add EmailOctopus popup subscription forms to WordPress.
195
+ * <a href="https://optinmonster.com/integrations/feedblitz/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">FeedBlitz</a> - Create smart email subscription popup and shopping cart popup for FeedBlitz.
196
+ * <a href="https://optinmonster.com/integrations/feedburner/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">FeedBurner</a> - Easily create Feedburner popups for WordPress.
197
  * <a href="https://optinmonster.com/integrations/custom-html-forms/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Custom HTML Forms Integration</a> - lets you embed any opt-in form inside OptinMonster's smart popup modals.
198
  * <a href="https://optinmonster.com/integrations/webhooks/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Webhooks</a> - connect your popup with any custom CRM, email marketing service, or third-party application.
199
  * <a href="https://optinmonster.com/docs/connect-optinmonster-with-zapier/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Zapier</a> - connect your WordPress popups with over 2000+ marketing apps. Route your popup form data to your favorite CRM, email marketing, etc.
200
 
201
  = Additional Marketing Integrations =
202
 
203
+ * <a href="https://optinmonster.com/integrations/woocommerce/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">WooCommerce Popups</a> - Add upsell and cross-sell popups, free shipping bars, announcement bars, coupon wheels, and more.
204
+ * <a href="https://optinmonster.com/integrations/bigcommerce/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">BigCommerce Popups</a> - Coupon popups, gamified coupon wheels, exit popups, and more to reduce cart abandonment and increase conversions.
 
205
  * <a href="https://optinmonster.com/integrations/shopify/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Shopify Popups</a> - Exit intent popup, cart abandonment popup, upsell popup, free shipping bar, discount wheel popups, and more customized popups for Shopify stores.
206
+ * <a href="https://optinmonster.com/integrations/magento/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Magento Popups</a> - Exit popups, cart abandonment popup, upsell and cross-sell campaigns, welcome mats, sticky hello bar, and more for Magento.
207
+ * <a href="https://optinmonster.com/docs/how-to-connect-optinmonster-with-wpforms/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">WPForms Popup</a> - Create contact forms, survey popups, polls, or embed any WPForms form inside lightbox popup modals.
208
+ * <a href="https://optinmonster.com/docs/how-to-use-wordpress-shortcodes-with-optinmonster?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Gravity Forms Popup</a> - Create payment form, contact forms, user registrations, login forms, and other Gravity Forms camapigns with just few clicks.
209
+ * <a href="https://optinmonster.com/docs/how-to-use-wordpress-shortcodes-with-optinmonster?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Contact Form 7 Popup</a> - Easily create Contact Form 7 popups with OptinMonster.
210
+ * <a href="https://optinmonster.com/docs/how-to-use-wordpress-shortcodes-with-optinmonster?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Ninja Form Popup</a> - Easily create contact form popups for Ninja Forms with OptinMonster.
211
+ * <a href="https://optinmonster.com/docs/connect-optinmonster-manychat/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">ManyChat</a> - Create personalized campaigns that drive ManyChat conversations to increase your chatbot subscribers on Facebook.
 
212
 
213
  <a href="https://optinmonster.com/wp/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Give OptinMonster a try</a>.
214
 
231
 
232
  = What's Next =
233
 
234
+ If you like this WordPress popup plugin, then consider checking out our other projects:
235
 
236
  * <a href="https://wpforms.com/" rel="friend" title="WPForms">WPForms</a> - Best WordPress form plugin (trusted by over 3 million users).
237
  * <a href="https://www.monsterinsights.com/" rel="friend" title="MonsterInsights">MonsterInsights</a> - See the Stats that Matter and Grow Your Business with Confidence. Best Google Analytics Plugin for WordPress.
256
 
257
  = Who should use OptinMonster Popups? =
258
 
259
+ OptinMonster is perfect for business owners, bloggers, eCommerce sites, designers, developers, marketing agencies, and anyone who wants to grow their lists, leads and sales.
 
 
260
 
261
+ You can use OptinMonster's popup maker to grow your email list, improve lead generation, increase sales conversion, reduce cart abandonment, show targeted offers, and get more pageviews.
262
 
263
  = Do I need to have coding skills to use OptinMonster popups? =
264
 
265
+ Absolutely not. You can create and manage camapigns without any coding knowledge with our drag and drop popup maker.
266
 
267
  = What type of WordPress popups can I build with OptinMonster? =
268
 
269
+ Here are just some types of campaigns you can create:
270
+
271
+ * Email Opt-in Pop-up
272
+ * Exit Pop-up
273
+ * Announcement Pop-up
274
+ * Spin a Wheel Pop-up
275
+ * Slide-in Pop-up
276
+ * Fullscreen Pop-up (aka Welcome Mats)
277
+ * Video Pop-up
278
+ * Contact Form Pop-up
279
+ * Quiz Pop-up
280
+ * Disclaimer Pop-up
281
+ * WooCommerce Pop-up
282
+ * Upsell Pop-up
283
+ * Cross Sell Pop-up
284
+ * Coupon Pop-up
285
+ * Sales Pop-up
286
+ * Custom lightbox pop-up
287
+ * Survey Pop-up
288
+ * Newsletter Pop-up
289
+ * Pop-up on Click of Button or Image
290
+ * Facebook pop-up
291
+ * YouTube pop-up
292
+ * Login Pop-up
293
+ * Registration Pop-up
294
+ * Lead Generation Pop-up
295
 
296
  ... and a whole lot more. Basically, you can use our drag & drop popup builder to create any type of custom popup that you need.
297
 
298
  = Can I integrate OptinMonster popups with my CRM or Email Marketing Service? =
299
 
300
+ Yes, OptinMonster offers seamless integration with over 2000+ popular <a href="https://www.wpbeginner.com/showcase/best-email-marketing-services/">email marketing</a> and <a href="https://www.wpbeginner.com/showcase/best-crm-software-for-small-businesses-compared/">CRM software</a>.
301
 
302
+ You can easily send data from your campaign to your favorite CRM, email newsletter, and other marketing platforms.
303
 
304
  Here is a list of our popular marketing integrations:
305
 
306
+ * MailChimp pop-up forms
307
+ * AWeber pop-up forms
308
+ * Constant Contact pop-up forms
309
+ * ActiveCampagin pop-up forms
310
+ * ConvertKit pop-up forms
311
+ * HubSpot pop-up forms
312
+ * Campaign Monitor pop-up forms
313
+ * GetResponse pop-up forms
314
+ * SendinBlue pop-up forms
315
+ * Infusionsoft (Keap) pop-up forms
316
+ * Salesforce Pardot pop-up forms
317
+ * Drip pop-up forms
318
+ * Marketo pop-up forms
319
+ * MailerLite pop-pup forms
320
+ * Klaviyo pop-up forms
321
+ * Eloqua (oracle) pop-up forms
322
+ * ManyChat messenger pop-up
323
 
324
  and dozens of other <a href="https://optinmonster.com/integrations/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme">email marketing integrations</a>.
325
 
346
 
347
  See all <a href="https://zapier.com/apps/optinmonster/integrations">OptinMonster Popup integrations with Zapier</a>.
348
 
349
+ = Can I use OptinMonster to make a WooCommerce popup? =
350
 
351
+ Yes, you can easily create a custom WooCommerce popup using our WooCommerce integration.
352
 
353
+ Here are unique WooCommerce campaigns that you can create:
354
 
355
+ * WooCommerce discounts
356
+ * WooCommerce coupon wheels
357
+ * WooCommerce exit popups
358
+ * WooCommerce upsells
359
+ * WooCommerce cross-sells
360
+ * WooCommerce cart abandonment campaigns
361
+ * WooCommerce sales popups
362
+ * WooCommerce free shipping bars
363
+ * WooCommerce countdown timers
 
364
 
365
  ... and many more.
366
 
367
+ The best part is that OptinMonster popup targeting feature lets you customize your campaigns based on specific WooCommerce triggers like: what items they have in cart, total shopping cart value, geolocation, and more.
368
 
369
  = Which design elements / form fields can I add in OptinMonster popups? =
370
 
371
  We made OptinMonster popup builder to be both easy and powerful.
372
 
373
+ Here are the elements available in the OptinMonster popup builder:
374
 
375
+ * Optin Form fields - great for newsletter subscriptions
376
+ * Image field - great for adding images
377
  * Video field - great for creating video popups
378
+ * Button Field - great for adding call-to-action buttons
379
+ * Countdown Timer field - great for holiday sales timers
380
  * Coupon Wheel field - great for spin to win coupon popups
381
+ * Chatbot field - great for Facebook messenger
382
  * Yes / No field - great for creating multi-step popups
383
+ * Text field - easily add / customize text and headlines
384
+ * HTML field - add any custom HTML or shortcode
385
+ * Icon field - add custom FontAwesome icons
386
+ * Spacer field - add spacing
387
+ * Divider field - add dividers
388
+ * Columns field - create multi-column layouts
389
+ * Google ReCAPTCHA field - reduce form spam with Google ReCAPTCHA
390
+ * GDPR privacy checkbox - make your campaign GDPR compliant
391
+
392
+ Using the HTML field, you can add tons of custom elements through iFrame embeds or WordPress shortcode. Here are some examples:
393
+
394
+ * Quizzes
395
+ * Contact forms
396
+ * Surveys
397
+ * Popular posts
398
+ * Related posts
399
+ * WooCommerce products
400
+ * Payment forms
401
+ * Webinar registrations
402
+ * Image galleries
403
+ * Banner ads
404
+ * Live chat
405
+ * GDPR notices
406
+ * Terms and Conditions
407
+ * WordPress login forms
408
+ * WordPress user registration
409
+ * Click to call buttons
410
+ * Announcement notifications
411
+ * Push notifications
412
+
413
+ ... and a whole lot more. If another WordPress plugin or third-party apps provide a shortcode or iFrame, then you can embed that inside OptinMonster campaigns.
414
 
415
  = Do popups really work? Show me the results =
416
 
417
+ Here are just a few success stories from OptinMonster customers:
 
 
418
 
419
  > Before using OptinMonster, our website conversion rate was 2-3%, as expected. Since using OptinMonster, we have been able to improve conversion rates to 5.75%, a 189% increase.<br>
420
  > Adam Rowles (<a href="https://optinmonster.com/case-study-inbound-marketing-increased-conversions-189-lead-magnets/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">See Case Study</a>)
425
  > Exit-intent popups have doubled my email opt-in rate. When done right, you can see an instant 10% lift on driving sales. I highly recommend that you use OptinMonster for growing your email list and sales.<br>
426
  > Neil Patel
427
 
428
+ <a href="https://optinmonster.com/testimonials/?utm_source=orgplugin&utm_medium=link&utm_campaign=wpreadme" rel="friend">Click here to see more case studies.</a>
429
 
430
 
431
  == Screenshots ==
432
 
433
+ 1. Select a Campaign type (popup, full screen, floating bar, slide-in, inline or Gamified)
434
+ 2. Create and customize your campaign with our easy drag-and-drop builder
435
+ 3. Smart targeting and personalization
436
+ 4. The most powerful targeting and display rules engine
437
+ 5. Boost conversions and engagement with spin a wheel campaign (also called Gamification)
438
  6. Exit popup template gallery
439
  7. Floating Bar (aka Hello Bar / Sticky Bar) gallery
440
  8. Sidebar newsletter opt-in form template gallery
441
+ 9. Reliable conversion analytics for OptinMonster campaigns
442
+ 10. Free access to OptinMonster University (marketing courses and guides)
443
 
444
  == Notes ==
445
 
458
 
459
  **Most Recent Changes:**
460
 
461
+ = 2.6.5 =
462
+ * Security hardening, and improved notifications.
463
+
464
+ = 2.6.1 =
465
+ * Fixed: Security hardening for campaign previews.
466
+ * Updated the notification-fetch logic to not happen on every admin page-load.
467
+ * Updated the review request notice to only shown when significant milestones are met.
468
+
469
+ = 2.6.0 =
470
+ * Fix broken integration images for a few integrations.
471
+ * Improved rules debug output for support.
472
+ * Fixes for errors found in WordPress 4.8.
473
+ * Fix onboarding issue where other plugins would redirect to their welcome pages.
474
+ * Other syle improvements to the onboarding process.
475
+ * Fix issue with onboarding process not being able to reopen the app's registration-completion window.
476
+ * Add redirect to welcome page for when plugin is first installed.
477
+ * Fix issuer where the site's default integration setting would not load the available options.
478
+ * Fix styles for setting descriptions in site settings.
479
+
480
+ = 2.5.1 =
481
+ * Fix issue with adblockers causing integration images not to be shown.
482
+
483
+ = 2.5.0 =
484
+ * Fix the Shareable MonsterLink URL for campaigns.
485
+ * Updated integration provider logo images, and prepared for new integrations.
486
+ * Improved workflow for Onboarding Wizard.
487
+ * Prevent wizard keyboard navigation when in input/textarea/form-element.
488
+ * Added filters to many of the script-tags we output.
489
+
490
+ = 2.4.1 =
491
+ * Fix "Cannot read property 'isDevelopment' of undefined" when connecting woocommerce.
492
+ * Fix static modal positioning so page can scroll (when plugin has not been connected yet).
493
+
494
+ = 2.4.0 =
495
+ * Introduce Integrations page to manage and add email integration services, Monster Leads settings, webhooks, zapier connections, etc.
496
+ * Improved UX for select elements where posts/pages were displayed by adding the post/page ID to the label.
497
+ * Addressed some UI issues for RTL language mode.
498
+ * Updated dependencies in the javascript stack.
499
+ * Removing extra "This account does not have any campaigns to retrieve" error.
500
+ * Fixed an issue that could cause the Editor to break on Wordpress versions < 5.3.
501
+ * Update shortcodes to handle the id paramater for back-compat.
502
+ * Update classic editor shortcode button to use the slug parameter.
503
+ * Fix bug causing "To receive the requested features, you will need to upgrade to Pro" notice to show, even after upgrading.
504
+ * Fix preview-campaign not working when site is using OptinMonster custom domains.
505
+ * Improved information in the support data output.
506
+
507
+ = 2.3.3 =
508
+ * Prevent autoloading WooCommerce classes. Fixes error when Jetpack is active while activating WooCommerce.
509
+
510
+ = 2.3.2 =
511
+ * Fixed an issue where the editor would not work in WordPress < 5.3.
512
+
513
+ = 2.3.1 =
514
+ * Fixed issues when multiple tinymce instances existed on a page (specifically, the double OptinMonster link button).
515
+ * Fix console/blocking errors JS errors because specific data was missing on the page related to the OptinMonster Monster Link buttons.
516
+ * Fix height of link search results when other fields added.
517
+ * Fix errors that can occur with WooCommerce data-store failures.
518
+
519
+ = 2.3.0 =
520
+ * Introduce the Personalization page, for documenting available rules/triggers.
521
+ * Introduce functionality for Classic Editor (and classic editor instances) for inserting inline campaign shortcodes, or adding Monster Links to text.
522
+ * Improvements to the Gutenberg Block.
523
+ * New setting for globally disabling campaigns for a given post/page/etc (Gutenberg sidebar setting, and a fallback settings metabox for the Classic Editor). Also adds error boundaries around all campaigns in the Gutenberg editor if this option is selected (since they will not work on the frontend).
524
+ * New Gutenberg text formatting option for adding Monster Links to text.
525
+ * Improved UX for select elements where campaigns were displayed by adding the campaign slug to the label.
526
+ * Better error handling and output when certain API requests fail.
527
+ * Better error handling and UX when user's site domain has changed (e.g. from a temp domain to the permanent one).
528
+ * Introduced caching for various requests to improve plugin page performance.
529
+ * Added helpful title attribute tooltips for the various options in the Output Settings (displaying the term slug and the associated taxonomy slug, etc).
530
+ * Improved various other tooltips on the Output Settings to be more helpful
531
+ * Improved UX for select elements where taxonomy terms were displayed by adding the term slug to the label.
532
+ * Add singular post-type options "Show on Post Types and Archives" output settings.
533
+ * Improved messaging in various errors.
534
+ * Fixed bug where exiting and then re-entering output settings, the advanced settings would disappear.
535
+ * Fixed conflict when BigCommerce plugin installed, triggered by their admin scripts.
536
+ * Fixed php warning, "strpos(): Empty needle in optin-monster-wp-api/OMAPI/Inserter.php..."
537
+ * Fixed bug where the "Product Archive Page (shop)" output setting option was only visible for inline campaigns.
538
+ * Fixed bug where output settings would conflict if a post and category had the same ID.
539
+ * Fixed `WP_Scripts::localize` deprecation warning by switching to `wp_add_inline_script()` where applicable.
540
 
541
  **[View entire changelog](https://plugins.svn.wordpress.org/optinmonster/trunk/CHANGELOG.md)**
views/coupon-metabox.php ADDED
@@ -0,0 +1,133 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Product Education Metabox for WooCommerce Coupon Pages
4
+ *
5
+ * @since 2.1.0
6
+ */
7
+
8
+ $svgpath = plugin_dir_path( OMAPI_FILE ) . '/assets/images/icons/';
9
+ ?>
10
+ <div class="omapi-metabox has-slides">
11
+ <nav class="omapi-metabox__nav">
12
+ <ul>
13
+ <li>
14
+ <a href="#omapi-sticky-bar" title="Sticky Bar" class="active">
15
+ <?php include $svgpath . 'sticky-bar.svg'; ?>
16
+ <?php esc_html_e( 'Sticky Bar', 'optin-monster-api' ); ?>
17
+ </a>
18
+ </li>
19
+ <li>
20
+ <a href="#omapi-popup" title="Popup">
21
+ <?php include $svgpath . 'popup.svg'; ?>
22
+ <?php esc_html_e( 'Popup', 'optin-monster-api' ); ?>
23
+ </a>
24
+ </li>
25
+ <li>
26
+ <a href="#omapi-gamified" title="Gamified">
27
+ <?php include $svgpath . 'gamified.svg'; ?>
28
+ <?php esc_html_e( 'Gamified Spin to Win', 'optin-monster-api' ); ?>
29
+ </a>
30
+ </li>
31
+ </ul>
32
+ </nav>
33
+ <div class="omapi-metabox__content">
34
+ <div class="omapi-metabox__slides">
35
+ <div class="omapi-metabox__slides-slide active" id="omapi-sticky-bar">
36
+ <div class="omapi-metabox__tab omapi-metabox__tab-coupon">
37
+ <div class="omapi-metabox__tab-icon omapi-metabox__tab-icon-coupon">
38
+ <img src="<?php echo esc_url( $this->url . 'assets/images/metabox/sticky-bar.svg' ); ?>">
39
+ </div>
40
+ <div class="omapi-metabox__tab-content">
41
+ <p><strong>
42
+ <?php if ( $data['has_sites'] ) : ?>
43
+ <?php esc_html_e( 'Did you know that creating a sticky bar to promote your coupon can help you increase sales?', 'optin-monster-api' ); ?>
44
+ <?php else : ?>
45
+ <?php echo $data['not_connected_title']; ?>
46
+ <?php endif; ?>
47
+ </strong></p>
48
+ <p class="secondary">
49
+ <?php if ( $data['has_sites'] ) : ?>
50
+ <?php esc_html_e( 'See how one store owner added $23,700 in 5 months with a coupon promoted by an OptinMonster sticky bar.', 'optin-monster-api' ); ?>
51
+ <a href="https://optinmonster.com/freemium-software-company-unlocked-7000-anonymous-leads-using-popups/?utm_source=WordPress&utm_medium=WooCouponMetabox&utm_campaign=Plugin" class="omapi-metabox__arrow-after omapi-metabox__link-style" target="_blank" rel="noopener"><?php esc_html_e( 'View Case Study', 'optin-monster-api' ); ?></a>
52
+ <?php else : ?>
53
+ <?php echo $data['not_connected_message']; ?>
54
+ <?php endif; ?>
55
+ </p>
56
+ <div class="omapi-button-wrap">
57
+ <?php if ( $data['has_sites'] ) : ?>
58
+ <a href="admin.php?page=optin-monster-templates&type=floating" class="button button-primary omapi-metabox__arrow-after button-large" target="_blank" rel="noopener"><?php esc_html_e( 'Create a Sticky Bar Campaign', 'optin-monster-api' ); ?></a>
59
+ <a href="admin.php?page=optin-monster-campaigns" class="button button-secondary button-large" target="_blank" rel="noopener"><?php esc_html_e( 'View Existing Campaigns', 'optin-monster-api' ); ?></a>
60
+ <?php else : ?>
61
+ <?php $this->output_view( 'not-connected-buttons.php' ); ?>
62
+ <?php endif; ?>
63
+ </div>
64
+ </div>
65
+ </div>
66
+ </div>
67
+ <div class="omapi-metabox__slides-slide" id="omapi-popup">
68
+ <div class="omapi-metabox__tab omapi-metabox__tab-coupon">
69
+ <div class="omapi-metabox__tab-icon omapi-metabox__tab-icon-coupon">
70
+ <img src="<?php echo esc_url( $this->url . 'assets/images/metabox/popup.svg' ); ?>">
71
+ </div>
72
+ <div class="omapi-metabox__tab-content">
73
+ <p><strong>
74
+ <?php if ( $data['has_sites'] ) : ?>
75
+ <?php esc_html_e( 'Encourage purchases with a coupon popup!', 'optin-monster-api' ); ?>
76
+ <?php else : ?>
77
+ <?php echo $data['not_connected_title']; ?>
78
+ <?php endif; ?>
79
+ </strong></p>
80
+ <p class="secondary">
81
+ <?php if ( $data['has_sites'] ) : ?>
82
+ <?php esc_html_e( 'See how this store owner increased revenue by 300% using an OptinMonster coupon popup.', 'optin-monster-api' ); ?>
83
+ <a href="https://optinmonster.com/case-study-how-win-in-health-used-optinmonster-to-increase-revenue-by-300/?utm_source=WordPress&utm_medium=WooCouponMetabox&utm_campaign=Plugin" class="omapi-metabox__arrow-after omapi-metabox__link-style" target="_blank" rel="noopener"><?php esc_html_e( 'View Case Study', 'optin-monster-api' ); ?></a>
84
+ <?php else : ?>
85
+ <?php echo $data['not_connected_message']; ?>
86
+ <?php endif; ?>
87
+ </p>
88
+ <div class="omapi-button-wrap">
89
+ <?php if ( $data['has_sites'] ) : ?>
90
+ <a href="admin.php?page=optin-monster-templates&type=popup" class="button button-primary omapi-metabox__arrow-after button-large" target="_blank" rel="noopener"><?php esc_html_e( 'Create a Popup Campaign', 'optin-monster-api' ); ?></a>
91
+ <a href="admin.php?page=optin-monster-campaigns" class="button button-secondary button-large" target="_blank" rel="noopener"><?php esc_html_e( 'View Existing Campaigns', 'optin-monster-api' ); ?></a>
92
+ <?php else : ?>
93
+ <?php $this->output_view( 'not-connected-buttons.php' ); ?>
94
+ <?php endif; ?>
95
+ </div>
96
+ </div>
97
+ </div>
98
+ </div>
99
+ <div class="omapi-metabox__slides-slide" id="omapi-gamified">
100
+ <div class="omapi-metabox__tab omapi-metabox__tab-coupon">
101
+ <div class="omapi-metabox__tab-icon omapi-metabox__tab-icon-coupon">
102
+ <img src="<?php echo esc_url( $this->url . 'assets/images/metabox/gamified.svg' ); ?>">
103
+ </div>
104
+ <div class="omapi-metabox__tab-content">
105
+ <p><strong>
106
+ <?php if ( $data['has_sites'] ) : ?>
107
+ <?php esc_html_e( 'Gamified coupon wheels work! Create one for your store and watch sales grow!', 'optin-monster-api' ); ?>
108
+ <?php else : ?>
109
+ <?php echo $data['not_connected_title']; ?>
110
+ <?php endif; ?>
111
+ </strong></p>
112
+ <p class="secondary">
113
+ <?php if ( $data['has_sites'] ) : ?>
114
+ <?php esc_html_e( 'Learn how to create a gamified coupon wheel popup yourself with our step-by-step tutorial.', 'optin-monster-api' ); ?>
115
+ <a href="https://optinmonster.com/coupon-wheel-campaign/?utm_source=WordPress&utm_medium=WooCouponMetabox&utm_campaign=Plugin" class="omapi-metabox__arrow-after omapi-metabox__link-style" target="_blank" rel="noopener"><?php esc_html_e( 'View the Tutorial', 'optin-monster-api' ); ?></a>
116
+ <?php else : ?>
117
+ <?php echo $data['not_connected_message']; ?>
118
+ <?php endif; ?>
119
+ </p>
120
+ <div class="omapi-button-wrap">
121
+ <?php if ( $data['has_sites'] ) : ?>
122
+ <a href="admin.php?page=optin-monster-templates&type=gamified" class="button button-primary omapi-metabox__arrow-after button-large" target="_blank" rel="noopener"><?php esc_html_e( 'Create a Gamified Campaign', 'optin-monster-api' ); ?></a>
123
+ <a href="admin.php?page=optin-monster-campaigns" class="button button-secondary button-large" target="_blank" rel="noopener"><?php esc_html_e( 'View Existing Campaigns', 'optin-monster-api' ); ?></a>
124
+ <?php else : ?>
125
+ <?php $this->output_view( 'not-connected-buttons.php' ); ?>
126
+ <?php endif; ?>
127
+ </div>
128
+ </div>
129
+ </div>
130
+ </div>
131
+ </div>
132
+ </div>
133
+ </div>
views/disable-warning-css.php ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CSS to override default message for
4
+ *
5
+ * @since 2.2.0
6
+ */
7
+
8
+ if ( empty( $data->labels->singular_name ) ) {
9
+ return;
10
+ }
11
+
12
+ $message = sprintf(
13
+ /* translators: %s - The name of the post-type being edited. */
14
+ esc_attr__( 'OptinMonster campaigns have been disabled for this %s', 'optin-monster-api' ),
15
+ $data->labels->singular_name
16
+ );
17
+
18
+ $message2 = sprintf(
19
+ /* translators: %s - The name of the post-type being edited. */
20
+ esc_attr__( 'Campaigns disabled for this %s', 'optin-monster-api' ),
21
+ $data->labels->singular_name
22
+ );
23
+
24
+ /*
25
+ * Double selectors added for extra specificity (instead of using !important)
26
+ */
27
+ ?>
28
+ body.om-campaigns-disabled.om-campaigns-disabled [data-type="optinmonster/campaign-selector"]:before {
29
+ content: '<?php echo $message; ?>';
30
+ }
31
+ body.om-campaigns-disabled.om-campaigns-disabled .om-format-popover .components-popover__content:after {
32
+ content: '<?php echo $message2; ?>';
33
+ }
views/not-connected-buttons.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Buttons used when site not connected.
4
+ *
5
+ * @since 2.3.0
6
+ */
7
+ ?>
8
+ <a href="<?php echo OMAPI_Urls::wizard(); ?>" class="button button-primary button-large" target="_blank" rel="noopener"><?php esc_html_e( 'Create a Free Account', 'optin-monster-api' ); ?></a>
9
+ <a href="<?php echo OMAPI_Urls::settings(); ?>" class="button button-secondary button-large" target="_blank" rel="noopener"><?php esc_html_e( 'Connect an Existing Account', 'optin-monster-api' ); ?></a>
views/product-metabox.php ADDED
@@ -0,0 +1,210 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Product Education Metabox for WooCommerce Product Pages
4
+ *
5
+ * @since 2.1.0
6
+ */
7
+ $svgpath = plugin_dir_path( OMAPI_FILE ) . '/assets/images/icons/';
8
+ ?>
9
+ <div class="omapi-metabox has-slides">
10
+ <nav class="omapi-metabox__nav">
11
+ <ul>
12
+ <li>
13
+ <a href="#increase-conversions" title="Sticky Bar" class="active">
14
+ <?php include $svgpath . 'increase-conversions.svg'; ?>
15
+ <?php esc_html_e( 'Increase Conversions', 'optin-monster-api' ); ?>
16
+ </a>
17
+ </li>
18
+ <li>
19
+ <a href="#reduce-abandonment" title="Popup">
20
+ <?php include $svgpath . 'reduce-abandonment.svg'; ?>
21
+ <?php esc_html_e( 'Reduce Abandonment', 'optin-monster-api' ); ?>
22
+ </a>
23
+ </li>
24
+ <li>
25
+ <a href="#cross-sell" title="Gamified">
26
+ <?php include $svgpath . 'cross-sell.svg'; ?>
27
+ <?php esc_html_e( 'Cross Sell Popup', 'optin-monster-api' ); ?>
28
+ </a>
29
+ </li>
30
+ </ul>
31
+ </nav>
32
+ <div class="omapi-metabox__content">
33
+ <div class="omapi-metabox__slides">
34
+ <div class="omapi-metabox__slides-slide active" id="increase-conversions">
35
+ <div class="omapi-metabox__tab">
36
+ <div class="omapi-metabox__tab-icon omapi-metabox__tab-icon-product">
37
+ <img src="<?php echo esc_url( $this->url . 'assets/images/metabox/increase-conversions.svg' ); ?>">
38
+ </div>
39
+ <div class="omapi-metabox__tab-content omapi-metabox__tab-content-product">
40
+
41
+ <p><strong>
42
+ <?php if ( $data['has_sites'] ) : ?>
43
+ <?php esc_html_e( 'Increase Conversions', 'optin-monster-api' ); ?>
44
+ <?php else : ?>
45
+ <?php echo $data['not_connected_title']; ?>
46
+ <?php endif; ?>
47
+ </strong></p>
48
+ <p class="secondary">
49
+ <?php if ( $data['has_sites'] ) : ?>
50
+ <?php esc_html_e( 'Boost your store sales with one of OptinMonster\'s high-converting popup campaigns.', 'optin-monster-api' ); ?>
51
+ <?php else : ?>
52
+ <?php echo $data['not_connected_message']; ?>
53
+ <?php endif; ?>
54
+ </p>
55
+ <div class="omapi-button-wrap">
56
+ <?php if ( $data['has_sites'] ) : ?>
57
+ <a href="admin.php?page=optin-monster-templates&type=popup" class="button button-primary button-large omapi-metabox__arrow-after" target="_blank" rel="noopener"><?php esc_html_e( 'Create a Campaign', 'optin-monster-api' ); ?></a>
58
+ <a href="admin.php?page=optin-monster-campaigns" class="button button-secondary button-large" target="_blank" rel="noopener"><?php esc_html_e( 'View Existing Campaigns', 'optin-monster-api' ); ?></a>
59
+ <?php else : ?>
60
+ <?php $this->output_view( 'not-connected-buttons.php' ); ?>
61
+ <?php endif; ?>
62
+ </div>
63
+ </div>
64
+ </div>
65
+ <?php if ( $data['has_sites'] ) : ?>
66
+ <div class="omapi-metabox__tab-case-studies">
67
+ <hr>
68
+ <p><strong><?php esc_html_e( 'See Case Studies', 'optin-monster-api' ); ?></strong></p>
69
+ <p class="secondary"><?php esc_html_e( 'Learn how other stores just like yours found success with OptinMonster!', 'optin-monster-api' ); ?></p>
70
+ <ul>
71
+ <li>
72
+ <a href="https://optinmonster.com/marketing-handbags-case-study/?utm_source=WordPress&utm_medium=WooProductMetabox&utm_campaign=Plugin"
73
+ title="<?php esc_attr_e( 'How Urban Southern Increased Sales 400% Using OptinMonster', 'optin-monster-api' ); ?>"
74
+ class="omapi-metabox__link-style"
75
+ target="_blank" rel="noopener"><?php esc_html_e( 'How Urban Southern Increased Sales 400% Using OptinMonster', 'optin-monster-api' ); ?></a>
76
+ </li>
77
+ <li>
78
+ <a href="https://optinmonster.com/overcoming-sales-objections-with-popups/?utm_source=WordPress&utm_medium=WooProductMetabox&utm_campaign=Plugin"
79
+ title="<?php esc_attr_e( 'How Kennedy Blue Increased Sales 50% by Overcoming Sales Objections with Popups', 'optin-monster-api' ); ?>"
80
+ class="omapi-metabox__link-style"
81
+ target="_blank" rel="noopener"><?php esc_html_e( 'How Kennedy Blue Increased Sales 50% by Overcoming Sales Objections with Popups', 'optin-monster-api' ); ?></a>
82
+ </li>
83
+ </ul>
84
+ <a href="https://optinmonster.com/category/case-studies/?utm_source=WordPress&utm_medium=WooProductMetabox&utm_campaign=Plugin"
85
+ title="See more case studies"
86
+ class="omapi-metabox__arrow-after omapi-metabox__link-style"
87
+ target="_blank" rel="noopener"><?php esc_html_e( 'See more case studies', 'optin-monster-api' ); ?>
88
+ </a>
89
+ </div>
90
+ <?php endif; ?>
91
+ </div>
92
+ <div class="omapi-metabox__slides-slide" id="reduce-abandonment">
93
+ <div class="omapi-metabox__tab">
94
+ <div class="omapi-metabox__tab-icon omapi-metabox__tab-icon-product">
95
+ <img src="<?php echo esc_url( $this->url . 'assets/images/metabox/reduce-abandonment.svg' ); ?>">
96
+ </div>
97
+ <div class="omapi-metabox__tab-content omapi-metabox__tab-content-product">
98
+
99
+ <p><strong>
100
+ <?php if ( $data['has_sites'] ) : ?>
101
+ <?php esc_html_e( 'Reduce Abandonment', 'optin-monster-api' ); ?>
102
+ <?php else : ?>
103
+ <?php echo $data['not_connected_title']; ?>
104
+ <?php endif; ?>
105
+ </strong></p>
106
+ <p class="secondary">
107
+ <?php if ( $data['has_sites'] ) : ?>
108
+ <?php esc_html_e( 'Grow your store revenue by getting more people to complete your checkout funnel with an OptinMonster Exit Intent® campaign.', 'optin-monster-api' ); ?>
109
+ <?php else : ?>
110
+ <?php echo $data['not_connected_message']; ?>
111
+ <?php endif; ?>
112
+ </p>
113
+ <div class="omapi-button-wrap">
114
+ <?php if ( $data['has_sites'] ) : ?>
115
+ <a href="admin.php?page=optin-monster-templates&type=popup" class="button button-primary button-large omapi-metabox__arrow-after" target="_blank" rel="noopener"><?php esc_html_e( 'Create a Campaign', 'optin-monster-api' ); ?></a>
116
+ <a href="admin.php?page=optin-monster-campaigns" class="button button-secondary button-large" target="_blank" rel="noopener"><?php esc_html_e( 'View Existing Campaigns', 'optin-monster-api' ); ?></a>
117
+ <?php else : ?>
118
+ <?php $this->output_view( 'not-connected-buttons.php' ); ?>
119
+ <?php endif; ?>
120
+ </div>
121
+ </div>
122
+ </div>
123
+ <?php if ( $data['has_sites'] ) : ?>
124
+ <div class="omapi-metabox__tab-case-studies">
125
+ <hr>
126
+ <p><strong><?php esc_html_e( 'See Case Studies', 'optin-monster-api' ); ?></strong></p>
127
+ <p class="secondary"><?php esc_html_e( 'Learn how other stores just like yours found success with OptinMonster!', 'optin-monster-api' ); ?></p>
128
+ <ul>
129
+ <li>
130
+ <a href="https://optinmonster.com/case-study-how-shockbyte-more-than-doubled-their-sales-conversion-rate-with-exit-intent/?utm_source=WordPress&utm_medium=WooProductMetabox&utm_campaign=Plugin"
131
+ title="<?php esc_attr_e( 'How Shockbyte More Than Doubled Their Sales Conversion Rate With Exit Intent®', 'optin-monster-api' ); ?>"
132
+ class="omapi-metabox__link-style"
133
+ target="_blank" rel="noopener"><?php esc_html_e( 'How Shockbyte More Than Doubled Their Sales Conversion Rate With Exit Intent®', 'optin-monster-api' ); ?></a>
134
+ </li>
135
+ <li>
136
+ <a href="https://optinmonster.com/wild-water-adventures-case-study/?utm_source=WordPress&utm_medium=WooProductMetabox&utm_campaign=Plugin"
137
+ title="<?php esc_attr_e( 'How Wild Water Adventures Recovered $61,000 in Sales Using OptinMonster', 'optin-monster-api' ); ?>"
138
+ class="omapi-metabox__link-style"
139
+ target="_blank" rel="noopener"><?php esc_attr_e( 'How Wild Water Adventures Recovered $61,000 in Sales Using OptinMonster', 'optin-monster-api' ); ?></a>
140
+ </li>
141
+ </ul>
142
+ <a href="https://optinmonster.com/category/case-studies/?utm_source=WordPress&utm_medium=WooProductMetabox&utm_campaign=Plugin"
143
+ title="See more case studies"
144
+ class="omapi-metabox__arrow-after omapi-metabox__link-style"
145
+ target="_blank" rel="noopener"><?php esc_html_e( 'See more case studies', 'optin-monster-api' ); ?>
146
+ </a>
147
+ </div>
148
+ <?php endif; ?>
149
+ </div>
150
+ <div class="omapi-metabox__slides-slide" id="cross-sell">
151
+ <div class="omapi-metabox__tab">
152
+ <div class="omapi-metabox__tab-icon omapi-metabox__tab-icon-product">
153
+ <img src="<?php echo esc_url( $this->url . 'assets/images/metabox/cross-sell.svg' ); ?>">
154
+ </div>
155
+ <div class="omapi-metabox__tab-content omapi-metabox__tab-content-product">
156
+
157
+ <p><strong>
158
+ <?php if ( $data['has_sites'] ) : ?>
159
+ <?php esc_html_e( 'Cross Sell Popup', 'optin-monster-api' ); ?>
160
+ <?php else : ?>
161
+ <?php echo $data['not_connected_title']; ?>
162
+ <?php endif; ?>
163
+ </strong></p>
164
+ <p class="secondary">
165
+ <?php if ( $data['has_sites'] ) : ?>
166
+ <?php esc_html_e( 'Increase your average cart size and order value by promoting related products to your shoppers.', 'optin-monster-api' ); ?>
167
+ <?php else : ?>
168
+ <?php echo $data['not_connected_message']; ?>
169
+ <?php endif; ?>
170
+ </p>
171
+ <div class="omapi-button-wrap">
172
+ <?php if ( $data['has_sites'] ) : ?>
173
+ <a href="admin.php?page=optin-monster-templates&type=popup" class="button button-primary button-large omapi-metabox__arrow-after" target="_blank" rel="noopener"><?php esc_html_e( 'Create a Campaign', 'optin-monster-api' ); ?></a>
174
+ <a href="admin.php?page=optin-monster-campaigns" class="button button-secondary button-large" target="_blank" rel="noopener"><?php esc_html_e( 'View Existing Campaigns', 'optin-monster-api' ); ?></a>
175
+ <?php else : ?>
176
+ <?php $this->output_view( 'not-connected-buttons.php' ); ?>
177
+ <?php endif; ?>
178
+ </div>
179
+ </div>
180
+ </div>
181
+ <?php if ( $data['has_sites'] ) : ?>
182
+ <div class="omapi-metabox__tab-case-studies">
183
+ <hr>
184
+ <p><strong><?php esc_html_e( 'See Case Studies', 'optin-monster-api' ); ?></strong></p>
185
+ <p class="secondary"><?php esc_html_e( 'Learn how other stores just like yours found success with OptinMonster!', 'optin-monster-api' ); ?></p>
186
+ <ul>
187
+ <li>
188
+ <a href="https://optinmonster.com/how-to-create-a-woocommerce-popup-to-cross-sell/?utm_source=WordPress&utm_medium=WooProductMetabox&utm_campaign=Plugin"
189
+ title="<?php esc_attr_e( 'How to Create a WooCommerce Popup to Cross-Sell (Step-by-Step)', 'optin-monster-api' ); ?>"
190
+ class="omapi-metabox__link-style"
191
+ target="_blank" rel="noopener"><?php esc_html_e( 'How to Create a WooCommerce Popup to Cross-Sell (Step-by-Step)', 'optin-monster-api' ); ?></a>
192
+ </li>
193
+ <li>
194
+ <a href="https://optinmonster.com/nashville-pedal-tavern-selling-gift-certificates/?utm_source=WordPress&utm_medium=WooProductMetabox&utm_campaign=Plugin"
195
+ title="<?php esc_attr_e( 'How Nashville Pedal Tavern Lifted Sales $2,300 In Just 14 Days Selling Gift Certificates', 'optin-monster-api' ); ?>"
196
+ class="omapi-metabox__link-style"
197
+ target="_blank" rel="noopener"><?php esc_html_e( 'How Nashville Pedal Tavern Lifted Sales $2,300 In Just 14 Days Selling Gift Certificates', 'optin-monster-api' ); ?></a>
198
+ </li>
199
+ </ul>
200
+ <a href="https://optinmonster.com/category/case-studies/?utm_source=WordPress&utm_medium=WooProductMetabox&utm_campaign=Plugin"
201
+ title="See more case studies"
202
+ class="omapi-metabox__arrow-after omapi-metabox__link-style"
203
+ target="_blank" rel="noopener"><?php esc_html_e( 'See more case studies', 'optin-monster-api' ); ?>
204
+ </a>
205
+ </div>
206
+ <?php endif; ?>
207
+ </div>
208
+ </div>
209
+ </div>
210
+ </div>
views/review.php DELETED
@@ -1,33 +0,0 @@
1
- <div class="notice notice-info is-dismissible om-review-notice">
2
- <div class="om-notice-wrap">
3
- <h3><?php esc_html_e( 'Are you enjoying OptinMonster?', 'optin-monster-api' ); ?></h3>
4
- <p style="margin-bottom:0">
5
- <a href="#" class="button button-primary om-review-btns" data-res="yes" rel="noopener"><?php esc_html_e( 'Yes!', 'optin-monster-api' ); ?> 🙂</a>
6
- <a href="#" class="button button-secondary om-review-btns" data-res="no" target="_blank" rel="noopener"><?php esc_html_e( 'Not Really!', 'optin-monster-api' ); ?></a>
7
- <?php if ( ! $this->get_api_credentials() ) : ?>
8
- <a href="https://optinmonster.com/?utm_source=WordPress&utm_campaign=Plugin&utm_medium=ReviewNotice" class="om-dismiss-review-notice om-dismiss-review-notice-delay button button-secondary" target="_blank" rel="noopener">
9
- <?php esc_html_e( 'What is OptinMonster?', 'optin-monster-api' ); ?>
10
- </a>
11
- <?php endif; ?>
12
- </p>
13
- </div>
14
- <br>
15
- <div class="om-notice-review">
16
- <div class="om-steps om-step-yes" style="display: none">
17
- <p><?php esc_html_e( 'That\'s awesome! Could you please do me a BIG favor and give it a 5-star rating on WordPress to help us spread the word and boost our motivation?', 'optin-monster-api' ); ?></p>
18
- <p><strong>~ Thomas Griffin<br><?php printf( esc_html__( 'Co-Founder of %1$s', 'optin-monster-api' ), 'OptinMonster' ); ?></strong></p>
19
- <p>
20
- <a href="https://wordpress.org/support/plugin/optinmonster/reviews/?filter=5#new-post" class="om-dismiss-review-notice button button-primary" target="_blank" rel="noopener noreferrer"><?php esc_html_e( 'Ok, you deserve it', 'optin-monster-api' ); ?></a>&nbsp;&nbsp;
21
- <a href="#" class="om-dismiss-review-notice om-dismiss-review-notice-delay" rel="noopener noreferrer"><?php esc_html_e( 'Nope, maybe later!', 'optin-monster-api' ); ?></a>&nbsp;&nbsp;
22
- <a href="#" class="om-dismiss-review-notice" rel="noopener noreferrer"><?php esc_html_e( 'I already did!', 'optin-monster-api' ); ?></a>
23
- </p>
24
- </div>
25
- <div class="om-steps om-step-no" style="display: none">
26
- <p><?php printf( esc_html__( 'We\'re sorry to hear you aren\'t enjoying %1$s. We would love a chance to improve. Could you take a minute and let us know what we can do better?', 'optin-monster-api' ), 'OptinMonster' ); ?></p>
27
- <p>
28
- <a href="https://optinmonster.com/plugin-review-feedback/" class="om-dismiss-review-notice button button-primary" target="_blank" rel="noopener noreferrer"><?php esc_html_e( 'Give feedback', 'optin-monster-api' ); ?></a>&nbsp;&nbsp;
29
- <a href="#" class="om-dismiss-review-notice" rel="noopener noreferrer"><?php esc_html_e( 'No thanks!', 'optin-monster-api' ); ?></a>
30
- </p>
31
- </div>
32
- </div>
33
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
views/shortcode-modal-css.php ADDED
@@ -0,0 +1,243 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <style type="text/css">
2
+ .om-modal-open-monsterlink #wp-link-wrap {
3
+ visibility: hidden;
4
+ }
5
+
6
+ .optin-monster-modal-inline .optin-monster-modal-monsterlink-item {
7
+ display: none !important;
8
+ }
9
+
10
+ .optin-monster-modal-monsterlink .optin-monster-modal-inline-item {
11
+ display: none !important;
12
+ }
13
+
14
+ .optin-monster-insert-campaign-button .optin-monster-menu-icon {
15
+ font-size:16px;
16
+ margin-top:-2px;
17
+ background-repeat: no-repeat;
18
+ background-position: center;
19
+ background-size: 18px auto;
20
+ }
21
+
22
+ #optin-monster-modal-wrap {
23
+ display: none;
24
+ background-color: #fff;
25
+ -webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.3);
26
+ box-shadow: 0 3px 6px rgba(0, 0, 0, 0.3);
27
+ width: 578px;
28
+ height: 285px;
29
+ overflow: hidden;
30
+ margin-left: -250px;
31
+ margin-top: -125px;
32
+ position: fixed;
33
+ top: 50%;
34
+ left: 50%;
35
+ z-index: 100205;
36
+ -webkit-transition: height 0.2s, margin-top 0.2s;
37
+ transition: height 0.2s, margin-top 0.2s;
38
+ }
39
+
40
+ #optin-monster-modal-backdrop {
41
+ display: none;
42
+ position: fixed;
43
+ top: 0;
44
+ left: 0;
45
+ right: 0;
46
+ bottom: 0;
47
+ min-height: 360px;
48
+ background: #000;
49
+ opacity: 0.7;
50
+ filter: alpha(opacity=70);
51
+ z-index: 100200;
52
+ }
53
+
54
+ #optin-monster-modal {
55
+ position: relative;
56
+ height: 100%;
57
+ }
58
+
59
+ #optin-monster-modal-title {
60
+ background: #fcfcfc;
61
+ border-bottom: 1px solid #dfdfdf;
62
+ height: 36px;
63
+ font-size: 18px;
64
+ font-weight: 600;
65
+ line-height: 36px;
66
+ padding: 0 36px 0 16px;
67
+ top: 0;
68
+ right: 0;
69
+ left: 0;
70
+ }
71
+
72
+ #optin-monster-modal-close {
73
+ color: #666;
74
+ padding: 0;
75
+ position: absolute;
76
+ top: 0;
77
+ right: 0;
78
+ width: 36px;
79
+ height: 36px;
80
+ text-align: center;
81
+ background: none;
82
+ border: none;
83
+ cursor: pointer;
84
+ }
85
+
86
+ #optin-monster-modal-close:before {
87
+ font: normal 20px/36px 'dashicons';
88
+ vertical-align: top;
89
+ speak: none;
90
+ -webkit-font-smoothing: antialiased;
91
+ -moz-osx-font-smoothing: grayscale;
92
+ width: 36px;
93
+ height: 36px;
94
+ content: '\f158';
95
+ }
96
+
97
+ #optin-monster-modal-close:hover,
98
+ #optin-monster-modal-close:focus {
99
+ color: #2ea2cc;
100
+ }
101
+
102
+ #optin-monster-modal-close:focus {
103
+ outline: none;
104
+ -webkit-box-shadow: 0 0 0 1px #5b9dd9,
105
+ 0 0 2px 1px rgba(30, 140, 190, .8);
106
+ box-shadow: 0 0 0 1px #5b9dd9,
107
+ 0 0 2px 1px rgba(30, 140, 190, .8);
108
+ }
109
+
110
+ #optin-monster-modal-inner {
111
+ padding: 0 16px 50px;
112
+ }
113
+
114
+ #optin-monster-modal-search-toggle:after {
115
+ display: inline-block;
116
+ font: normal 20px/1 'dashicons';
117
+ vertical-align: top;
118
+ speak: none;
119
+ -webkit-font-smoothing: antialiased;
120
+ -moz-osx-font-smoothing: grayscale;
121
+ content: '\f140';
122
+ }
123
+
124
+ .optin-monster-modal-notice {
125
+ background-color: #d9edf7;
126
+ border: 1px solid #bce8f1;
127
+ color: #31708f;
128
+ padding: 10px;
129
+ margin: 0;
130
+ }
131
+
132
+ #optin-monster-modal #optin-monster-modal-options {
133
+ display: flex;
134
+ flex-direction: column;
135
+ justify-content: center;
136
+ height: 200px;
137
+ }
138
+
139
+ #optin-monster-modal #optin-monster-modal-options p {
140
+ margin: 0 0 20px;
141
+ }
142
+
143
+ #optin-monster-modal #optin-monster-modal-options .optin-monster-modal-inline {
144
+ display: inline-block;
145
+ margin: 0;
146
+ padding: 0 20px 0 0;
147
+ }
148
+
149
+ #optin-monster-modal-select-inline-campaign,
150
+ #optin-monster-modal-select-campaign {
151
+ margin-bottom: 20px;
152
+ width: 100%;
153
+ max-width: 100%;
154
+ }
155
+
156
+ #optin-monster-modal .submitbox {
157
+ padding: 8px 16px;
158
+ background: #fcfcfc;
159
+ border-top: 1px solid #dfdfdf;
160
+ position: absolute;
161
+ bottom: 0;
162
+ left: 0;
163
+ right: 0;
164
+ }
165
+
166
+ #optin-monster-modal-cancel {
167
+ line-height: 25px;
168
+ float: left;
169
+ }
170
+
171
+ #optin-monster-modal-update {
172
+ line-height: 23px;
173
+ float: right;
174
+ }
175
+
176
+ #optin-monster-modal-submit,
177
+ #optin-monster-modal-submit-inline {
178
+ float: right;
179
+ margin-bottom: 0;
180
+ }
181
+
182
+ @media screen and ( max-width: 782px ) {
183
+ #optin-monster-modal-wrap {
184
+ height: 280px;
185
+ margin-top: -140px;
186
+ }
187
+
188
+ #optin-monster-modal-inner {
189
+ padding: 0 16px 60px;
190
+ }
191
+
192
+ #optin-monster-modal-cancel {
193
+ line-height: 32px;
194
+ }
195
+ }
196
+
197
+ @media screen and ( max-width: 520px ) {
198
+ #optin-monster-modal-wrap {
199
+ width: auto;
200
+ margin-left: 0;
201
+ left: 10px;
202
+ right: 10px;
203
+ max-width: 578px;
204
+ }
205
+ }
206
+
207
+ @media screen and ( max-height: 520px ) {
208
+ #optin-monster-modal-wrap {
209
+ -webkit-transition: none;
210
+ transition: none;
211
+ }
212
+ }
213
+
214
+ @media screen and ( max-height: 290px ) {
215
+ #optin-monster-modal-wrap {
216
+ height: auto;
217
+ margin-top: 0;
218
+ top: 10px;
219
+ bottom: 10px;
220
+ }
221
+
222
+ #optin-monster-modal-inner {
223
+ overflow: auto;
224
+ height: -webkit-calc(100% - 92px);
225
+ height: calc(100% - 92px);
226
+ padding-bottom: 2px;
227
+ }
228
+ }
229
+
230
+ #wp-link-wrap.wp-core-ui {
231
+ height: 555px;
232
+ }
233
+
234
+ #om-link-campaign {
235
+ margin-top: 5px;
236
+ width: 70%;
237
+ }
238
+
239
+ .mce-container .wp-media-buttons-icon.optin-monster-menu-icon svg {
240
+ height: 20px;
241
+ color: #595959;
242
+ }
243
+ </style>
views/shortcode-modal.php ADDED
@@ -0,0 +1,109 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div id="optin-monster-modal-backdrop" class="optin-monster-modal-inline" style="display: none"></div>
2
+ <div id="optin-monster-modal-wrap" class="optin-monster-modal-inline" style="display: none">
3
+ <form id="optin-monster-modal" tabindex="-1">
4
+ <div id="optin-monster-modal-title">
5
+ <span class="optin-monster-modal-inline-item"><?php esc_html_e( 'Insert OptinMonster Campaign', 'optin-monster-api' ); ?></span>
6
+ <span class="optin-monster-modal-monsterlink-item"><?php esc_html_e( 'Insert/Edit Link to an OptinMonster Campaign', 'optin-monster-api' ); ?></span>
7
+ <button type="button" id="optin-monster-modal-close"><span class="screen-reader-text"><?php esc_html_e( 'Close', 'optin-monster-api' ); ?></span></button>
8
+ </div>
9
+ <div id="optin-monster-modal-inner">
10
+ <div id="optin-monster-modal-options">
11
+ <div class="optin-monster-modal-inline-item">
12
+ <?php
13
+ if ( ! empty( $data['campaigns']['inline'] ) ) {
14
+ printf( '<p><label for="optin-monster-modal-select-inline-campaign">%s</label></p>', esc_html__( 'Select and display your email marketing form or smart call-to-action campaign', 'optin-monster-api' ) );
15
+ echo '<select id="optin-monster-modal-select-inline-campaign">';
16
+ foreach ( $data['campaigns']['inline'] as $slug => $name ) {
17
+ printf( '<option value="%s">%s</option>', $slug, esc_html( $name ) );
18
+ }
19
+ echo '</select>';
20
+ echo '<p class="optin-monster-modal-notice">';
21
+ printf(
22
+ wp_kses( /* translators: %s - OptinMonster documentation URL. */
23
+ __( 'Or <a href="%s" target="_blank" rel="noopener noreferrer">create a new inline campaign</a> to embed in this post', 'optin-monster-api' ),
24
+ array(
25
+ 'a' => array(
26
+ 'href' => array(),
27
+ 'rel' => array(),
28
+ 'target' => array(),
29
+ ),
30
+ )
31
+ ),
32
+ $data['templatesUri'] . '&type=inline'
33
+ );
34
+ echo '</p>';
35
+ } else {
36
+ echo '<p>';
37
+ printf(
38
+ wp_kses(
39
+ /* translators: %s - OptinMonster Templates page. */
40
+ __( 'Whoops, you haven\'t created an inline campaign yet. Want to <a href="%s">give it a go</a>?', 'optin-monster-api' ),
41
+ array(
42
+ 'a' => array(
43
+ 'href' => array(),
44
+ ),
45
+ )
46
+ ),
47
+ $data['templatesUri'] . '&type=inline'
48
+ );
49
+ echo '</p>';
50
+ }
51
+ ?>
52
+ </div>
53
+ <div class="optin-monster-modal-monsterlink-item">
54
+ <?php
55
+ if ( ! empty( $data['campaigns']['other'] ) ) {
56
+ printf( '<p><label for="optin-monster-modal-select-campaign">%s</label></p>', esc_html__( 'Select a Click to Load Campaign to link.', 'optin-monster-api' ) );
57
+ echo '<select id="optin-monster-modal-select-campaign">';
58
+ foreach ( $data['campaigns']['other'] as $slug => $name ) {
59
+ printf( '<option value="%s">%s</option>', $slug, esc_html( $name ) );
60
+ }
61
+ echo '</select>';
62
+ echo '<p class="optin-monster-modal-notice">';
63
+ printf(
64
+ wp_kses( /* translators: %s - OptinMonster documentation URL. */
65
+ __( 'Or <a href="%s" target="_blank" rel="noopener noreferrer">create a new Click to Load Campaign</a>.', 'optin-monster-api' ),
66
+ array(
67
+ 'a' => array(
68
+ 'href' => array(),
69
+ 'rel' => array(),
70
+ 'target' => array(),
71
+ ),
72
+ )
73
+ ),
74
+ $data['templatesUri'] . '&type=popup'
75
+ );
76
+ echo '</p>';
77
+ } else {
78
+ echo '<p>';
79
+ printf(
80
+ wp_kses(
81
+ /* translators: %s - OptinMonster Templates page. */
82
+ __( 'Whoops, you haven\'t created a popup campaign yet. Want to <a href="%s">give it a go</a>?', 'optin-monster-api' ),
83
+ array(
84
+ 'a' => array(
85
+ 'href' => array(),
86
+ ),
87
+ )
88
+ ),
89
+ $data['templatesUri'] . '&type=popup'
90
+ );
91
+ echo '</p>';
92
+ }
93
+ ?>
94
+ </div>
95
+ </div>
96
+ </div>
97
+ <div class="submitbox">
98
+ <div id="optin-monster-modal-cancel">
99
+ <a class="submitdelete deletion" href="#"><?php esc_html_e( 'Cancel', 'optin-monster-api' ); ?></a>
100
+ </div>
101
+ <?php if ( ! empty( $data['campaigns']['inline'] ) || ! empty( $data['campaigns']['other'] ) ) : ?>
102
+ <div id="optin-monster-modal-update">
103
+ <button class="button button-primary optin-monster-modal-monsterlink-item" id="optin-monster-modal-submit"><?php esc_html_e( 'Link Campaign', 'optin-monster-api' ); ?></button>
104
+ <button class="button button-primary optin-monster-modal-inline-item" id="optin-monster-modal-submit-inline"><?php esc_html_e( 'Add Campaign', 'optin-monster-api' ); ?></button>
105
+ </div>
106
+ <?php endif; ?>
107
+ </div>
108
+ </form>
109
+ </div>
views/woocommerce-marketing-card-css.php ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Marketing Card CSS for WooCommerce Marketing Page
4
+ *
5
+ * @since 2.2.0
6
+ */
7
+ ?>
8
+ <style>
9
+ .components-card-om {
10
+ background: #fff;
11
+ border: 1px solid rgb(226, 228, 231);
12
+ border-radius: 3px;
13
+ box-sizing: border-box;
14
+ margin-bottom: 24px;
15
+ position: relative;
16
+ }
17
+
18
+ .components-card-om * {
19
+ box-sizing: border-box;
20
+ }
21
+
22
+ .components-card-om-header {
23
+ display: flex;
24
+ -webkit-box-align: center;
25
+ align-items: center;
26
+ -webkit-box-pack: justify;
27
+ justify-content: space-between;
28
+ border-bottom: 1px solid rgb(226, 228, 231);
29
+ border-top-left-radius: 3px;
30
+ border-top-right-radius: 3px;
31
+ padding: 16px 24px;
32
+ }
33
+
34
+ .components-card-om-header p {
35
+ margin-right: 0;
36
+ margin: 0px;
37
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
38
+ font-weight: 400;
39
+ font-size: 20px;
40
+ line-height: 28px;
41
+ }
42
+
43
+ .components-card-om-body {
44
+ border-bottom: 1px solid #e0e0e0;
45
+ display: flex;
46
+ align-items: center;
47
+ padding: 18px 24px;
48
+ }
49
+
50
+ .components-card-om-body-icon {
51
+ position: relative;
52
+ overflow: hidden;
53
+ width: 36px;
54
+ height: 36px;
55
+ flex-basis: 36px;
56
+ min-width: 36px;
57
+ }
58
+
59
+ .components-card-om-body-icon svg {
60
+ margin-top: 2px;
61
+ width: 36px;
62
+ height: auto;
63
+ }
64
+
65
+ .components-card-om-body-text-wrap {
66
+ flex-wrap: wrap;
67
+ display: flex;
68
+ align-items: center;
69
+ flex-grow: 2;
70
+ min-width: 0;
71
+ padding: 0 14px;
72
+ }
73
+
74
+ .components-card-om-body-text h4 {
75
+ font-weight: 400;
76
+ font-size: 16px;
77
+ margin: 0 0 5px;
78
+ color: #1e1e1e;
79
+ }
80
+
81
+ .components-card-om-body-text p {
82
+ color: #757575;
83
+ margin: 0;
84
+ max-width: 550px;
85
+ }
86
+
87
+ .components-card-om-body-text p:hover {
88
+ color: #1e1e1e;
89
+ }
90
+
91
+ </style>
views/woocommerce-marketing-card.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Marketing Card for WooCommerce Marketing Page
4
+ *
5
+ * @since 2.2.0
6
+ */
7
+ ?>
8
+ <div id="components-card-om" class="components-card-om" style="display:none;">
9
+ <?php $this->output_min_css( 'woocommerce-marketing-card-css.php' ); ?>
10
+ <div class="components-card-om-header">
11
+ <p><?php esc_html_e( 'Increase Your Store Sales Conversion', 'optin-monster-api' ); ?></p>
12
+ </div>
13
+ <div class="components-card-om-body">
14
+ <div class="components-card-om-body-icon">
15
+ <?php require dirname( $this->file ) . '/assets/css/images/icons/archie-color-icon.svg'; ?>
16
+ </div>
17
+ <div class="components-card-om-body-text-wrap">
18
+ <div class="components-card-om-body-text">
19
+ <h4>OptinMonster</h4>
20
+ <p><?php esc_html_e( 'Grow your business with OptinMonster! Use this plugin to help sell more of your product.', 'optin-monster-api' ); ?></p>
21
+ </div>
22
+ </div>
23
+ <div class="components-card-om-body-button">
24
+ <a class="button button-primary" href="admin.php?page=optin-monster-templates&type=popup" title="<?php esc_attr_e( 'Create a Campaign', 'optin-monster-api' ); ?>"><?php esc_html_e( 'Create a Campaign', 'optin-monster-api' ); ?></a>
25
+ </div>
26
+ </div>
27
+ </div>
vue/dist/css/campaign-edit.53a4526f.css DELETED
@@ -1 +0,0 @@
1
- .omapi-screen .omapi-campaign-settings p{font-size:14px}.omapi-screen .omapi-campaign-settings p.omapi-field-desc{font-size:13px}.omapi-screen .omapi-campaign-settings__wrapper{align-self:flex-start}@media screen and (max-width:1210px){.omapi-screen .omapi-campaign-settings__wrapper{max-width:59%}}@media screen and (max-width:1075px){.omapi-screen .omapi-campaign-settings__wrapper{max-width:100%;flex-basis:100%}}.omapi-screen .omapi-campaign-settings h1{display:flex;justify-content:space-between;align-items:center}.omapi-screen .omapi-campaign-settings .om-circle-loading{width:100%}.omapi-screen .omapi-campaign-settings .setting-label{font-weight:700;display:block;font-size:14px;line-height:1.4}.omapi-screen .omapi-campaign-settings .setting-label.inline{display:inline}.omapi-screen .omapi-campaign-settings .text-setting{margin-top:0}.omapi-screen .omapi-campaign-settings .omapi-codebox{margin:0 0 20px}.omapi-screen .omapi-campaign-settings__minor-publishing .omapi-input.omapi-input__select{max-width:1000px}.omapi-screen .omapi-campaign-settings .advanced-settings-enabled-flag{display:inline-block;visibility:hidden;background:rgba(70,180,80,.1);border-radius:4px;padding:5px 7px;font-style:normal;font-weight:700;font-size:13px;line-height:100%;color:#555d66;margin-left:10px}.omapi-screen .omapi-campaign-settings .advanced-settings-enabled-flag.advanced-settings-enabled{visibility:visible}.omapi-screen .omapi-campaign-settings-sections{align-items:flex-start}.omapi-screen .omapi-campaign-settings-sections.disabled>*{position:relative}.omapi-screen .omapi-campaign-settings-sections.disabled>:after,.omapi-screen .omapi-campaign-settings-sections.disabled>:before{content:"";background:#fff;position:absolute;top:0;right:0;left:0;bottom:0;display:block;z-index:99;opacity:.25}.omapi-screen .omapi-campaign-settings .omapi-woocommerce-settings__inactive{background-color:#f7f8fb;display:flex;border-radius:3px;padding:20px 40px;justify-content:space-between;align-items:center;margin-bottom:30px}@media screen and (max-width:585px){.omapi-screen .omapi-campaign-settings .omapi-woocommerce-settings__inactive{flex-direction:column;text-align:center}}.omapi-screen .omapi-campaign-settings .omapi-woocommerce-settings__logo{margin:0 20px;flex:0 0 98px}.omapi-screen .omapi-campaign-settings .omapi-woocommerce-settings__logo img{max-width:100%}.omapi-screen .omapi-campaign-settings .omapi-woocommerce-settings__text{font-size:14px;line-height:150%;margin-bottom:20px;color:#23282d}.omapi-screen .omapi-campaign-settings .omapi-woocommerce-settings__select-all{padding:4px 10px;font-size:12px;color:#6c7781}.omapi-screen .omapi-campaign-settings .omapi-woocommerce-settings__select-all:hover{color:#fff}.omapi-screen .omapi-campaign-settings__right-column{align-self:flex-start;max-width:32%}@media screen and (max-width:1210px){.omapi-screen .omapi-campaign-settings__right-column{max-width:40%;flex-basis:40%}}@media screen and (max-width:1075px){.omapi-screen .omapi-campaign-settings__right-column{max-width:100%;flex-basis:100%}}.omapi-screen .omapi-campaign-settings__publish .omapi-card__border{padding-bottom:4px}.omapi-screen .omapi-campaign-settings__publish .omapi-card-footer{background:#f5f5f5;justify-content:flex-end}.omapi-screen .omapi-campaign-settings__publish .omapi-button{margin:0}.omapi-screen .omapi-campaign-settings__publish .omapi-input__select{margin:12px 0 20px}.omapi-screen .omapi-campaign-settings__publish label{display:block}.omapi-screen .omapi-campaign-settings__status .omapi-has-tooltip .popper{max-width:840px;width:auto;white-space:normal}.omapi-screen .omapi-campaign-settings .omapi-rules-list{margin-top:0}.omapi-screen .omapi-campaign-settings .omapi-rules-list__wrapper .omapi-card-content>div{padding-bottom:25px}.omapi-screen .omapi-campaign-settings .omapi-rules-list__item{font-size:14px;color:#646970;line-height:200%}.omapi-screen .omapi-campaign-settings .omapi-rules-list__type{font-weight:600}.omapi-screen .omapi-campaign-settings .omapi-rules-list__toggle{text-align:center;height:1px;margin-top:30px;background:#f1f1f1}.omapi-screen .omapi-campaign-settings .omapi-rules-list__toggle .omapi-button__small{padding:2px 9px;font-size:12px;position:relative;top:-10px}
 
vue/dist/css/campaign-edit.cba31014.css ADDED
@@ -0,0 +1 @@
 
1
+ .omapi-screen .omapi-campaign-settings p{font-size:14px}.omapi-screen .omapi-campaign-settings p.omapi-field-desc{font-size:13px}.omapi-screen .omapi-campaign-settings__wrapper{align-self:flex-start}@media screen and (max-width:1210px){.omapi-screen .omapi-campaign-settings__wrapper{max-width:59%}}@media screen and (max-width:1075px){.omapi-screen .omapi-campaign-settings__wrapper{max-width:100%;flex-basis:100%}}.omapi-screen .omapi-campaign-settings h1{display:flex;justify-content:space-between;align-items:center}.omapi-screen .omapi-campaign-settings .om-circle-loading{width:100%}.omapi-screen .omapi-campaign-settings .setting-label{font-weight:700;display:block;font-size:14px;line-height:1.4}.omapi-screen .omapi-campaign-settings .setting-label.inline{display:inline}.omapi-screen .omapi-campaign-settings .omapi-codebox{margin:0 0 20px}.omapi-screen .omapi-campaign-settings__minor-publishing .omapi-input.omapi-input__select{max-width:1000px}.omapi-screen .omapi-campaign-settings .advanced-settings-enabled-flag{display:inline-block;visibility:hidden;background:rgba(70,180,80,.1);border-radius:4px;padding:5px 7px;font-style:normal;font-weight:700;font-size:13px;line-height:100%;color:#555d66;margin-left:10px}.omapi-screen .omapi-campaign-settings .advanced-settings-enabled-flag.advanced-settings-enabled{visibility:visible}.omapi-screen .omapi-campaign-settings-sections{align-items:flex-start}.omapi-screen .omapi-campaign-settings-sections.disabled>*{position:relative}.omapi-screen .omapi-campaign-settings-sections.disabled>:after,.omapi-screen .omapi-campaign-settings-sections.disabled>:before{content:"";background:#fff;position:absolute;top:0;right:0;left:0;bottom:0;display:block;z-index:99;opacity:.25}.omapi-screen .omapi-campaign-settings .omapi-woocommerce-settings__inactive{background-color:#f7f8fb;display:flex;border-radius:3px;padding:20px 40px;justify-content:space-between;align-items:center;margin-bottom:30px}@media screen and (max-width:585px){.omapi-screen .omapi-campaign-settings .omapi-woocommerce-settings__inactive{flex-direction:column;text-align:center}}.omapi-screen .omapi-campaign-settings .omapi-woocommerce-settings__logo{margin:0 20px;flex:0 0 98px}.omapi-screen .omapi-campaign-settings .omapi-woocommerce-settings__logo img{max-width:100%}.omapi-screen .omapi-campaign-settings .omapi-woocommerce-settings__text{font-size:14px;line-height:150%;margin-bottom:20px;color:#23282d}.omapi-screen .omapi-campaign-settings .omapi-woocommerce-settings__select-all{padding:4px 10px;font-size:12px;color:#6c7781}.omapi-screen .omapi-campaign-settings .omapi-woocommerce-settings__select-all:hover{color:#fff}.omapi-screen .omapi-campaign-settings__right-column{align-self:flex-start;max-width:32%}@media screen and (max-width:1210px){.omapi-screen .omapi-campaign-settings__right-column{max-width:40%;flex-basis:40%}}@media screen and (max-width:1075px){.omapi-screen .omapi-campaign-settings__right-column{max-width:100%;flex-basis:100%}}.omapi-screen .omapi-campaign-settings__publish .omapi-card__border{padding-bottom:4px}.omapi-screen .omapi-campaign-settings__publish .omapi-card-footer{background:#f5f5f5;justify-content:space-between}.omapi-screen .omapi-campaign-settings__publish .omapi-button{margin:0}.omapi-screen .omapi-campaign-settings__publish .omapi-input__select{margin:12px 0 20px}.omapi-screen .omapi-campaign-settings__publish label{display:block}.omapi-screen .omapi-campaign-settings__status .omapi-has-tooltip .popper{max-width:840px;width:auto;white-space:normal}.omapi-screen .omapi-campaign-settings .omapi-rules-list{margin-top:0}.omapi-screen .omapi-campaign-settings .omapi-rules-list__wrapper .omapi-card-content>div{padding-bottom:25px}.omapi-screen .omapi-campaign-settings .omapi-rules-list__item{font-size:14px;color:#646970;line-height:200%}.omapi-screen .omapi-campaign-settings .omapi-rules-list__type{font-weight:600}.omapi-screen .omapi-campaign-settings .omapi-rules-list__toggle{text-align:center;height:1px;margin-top:30px;background:#f1f1f1}.omapi-screen .omapi-campaign-settings .omapi-rules-list__toggle .omapi-button__small{padding:2px 9px;font-size:12px;position:relative;top:-10px}
vue/dist/css/common.bc85e025.css DELETED
@@ -1 +0,0 @@
1
- .close-alert [data-v-09ff7f10]{cursor:pointer}.form-checkbox-no-label,.form-checkbox-no-label .form-checkbox-wrapper{display:inline-block;width:18px;height:18px;line-height:18px}.form-checkbox{position:relative;display:inline-block;width:18px;height:18px;font:normal normal normal 14px/1 FontAwesome;color:#fff;vertical-align:bottom;text-align:center}.form-checkbox input{display:none}.form-checkbox input:checked+.fancy-checkbox{background:#0d82df}.form-checkbox input:checked+.fancy-checkbox:before{background:transparent}.form-checkbox input:disabled+.fancy-checkbox{cursor:default}.form-checkbox input.error+.fancy-checkbox{background:#f99}.form-checkbox .fancy-checkbox svg{color:#fff;width:12px;height:12px}.form-checkbox span{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#d7e5ff;transition:.2s;border-radius:3px;display:flex;align-items:center;justify-content:center}.form-checkbox span:before{position:absolute;content:"";height:16px;width:16px;left:1px;bottom:1px;background-color:#fff;transition:.2s;font-size:16px;line-height:18px;border-radius:2px}.input-copy-group{display:flex;align-items:flex-start}.input-copy-group input{margin-right:10px;font-family:monospace!important;font-size:.9em!important;line-height:14px;height:37px}.create-new-button{margin-left:10px;max-height:37px;position:relative;display:inline-block;width:auto}.create-new-button svg{width:32px;height:32px;vertical-align:top;transform:translateY(-50%) translateX(-50%);top:50%;left:50%;position:absolute}.preloader{position:relative}.preloader svg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#8a94ab}.circle-clipper,.gap-patch{overflow:hidden;border-color:inherit}.circle,.circle-clipper,.gap-patch,.preloader,.preloader-wrapper,.spinner-layer{font-size:0;box-sizing:border-box}.preloader-aligner{display:flex;justify-content:center}.preloader-wrapper{width:240px;height:240px;display:inline-block;position:relative;-webkit-animation:container-rotate 1568ms linear infinite;animation:container-rotate 1568ms linear infinite}.gap-patch,.spinner-layer{position:absolute;height:100%}@-webkit-keyframes container-rotate{to{transform:rotate(1turn)}}@keyframes container-rotate{to{transform:rotate(1turn)}}.spinner-layer{width:100%;opacity:0;border-color:#8a94ab}.active .spinner-layer{opacity:1;-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both}@-webkit-keyframes fill-unfill-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}to{transform:rotate(3turn)}}@keyframes fill-unfill-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}to{transform:rotate(3turn)}}.gap-patch{top:0;left:45%;width:10%}.gap-patch .circle{width:1000%;left:-450%}.circle-clipper{display:inline-block;position:relative;width:50%;height:100%}.circle-clipper .circle{width:200%;height:100%;border-style:solid;border-color:inherit;border-bottom-color:transparent!important;border-radius:50%;-webkit-animation:none;animation:none;position:absolute;top:0;right:0;bottom:0}.circle-clipper.left .circle{left:0;border-right-color:transparent!important;transform:rotate(129deg)}.circle-clipper.right .circle{left:-100%;border-left-color:transparent!important;transform:rotate(-129deg)}.active .circle-clipper.left .circle{-webkit-animation:left-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both;animation:left-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}.active .circle-clipper.right .circle{-webkit-animation:right-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both;animation:right-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}@-webkit-keyframes left-spin{0%,to{transform:rotate(130deg)}50%{transform:rotate(-5deg)}}@keyframes left-spin{0%,to{transform:rotate(130deg)}50%{transform:rotate(-5deg)}}@-webkit-keyframes right-spin{0%,to{transform:rotate(-130deg)}50%{transform:rotate(5deg)}}@keyframes right-spin{0%,to{transform:rotate(-130deg)}50%{transform:rotate(5deg)}}.dashboard-card{background:#fff;border-radius:5px}.dashboard-card .content,.dashboard-card .toolbar{display:block}.dashboard-card .toolbar{padding:20px}.dashboard-card .content{padding:0 20px 20px}body .v--modal-overlay{background:hsla(0,0%,100%,.7)}body .v--modal-overlay .v--modal{color:#41495b;border-radius:5px}body .v--modal-overlay .v--modal-box{overflow:visible}body .v--modal-overlay .v--modal .header{color:#fff;background:#41495b;padding:14px 20px;font-size:18px;font-weight:700;display:flex;align-items:center;max-height:50px;border-radius:5px 5px 0 0}body .v--modal-overlay .v--modal .header svg{width:20px;margin-right:10px}body .v--modal-overlay .v--modal .header .close{color:#fff;display:flex;flex-grow:1;max-height:50px;justify-content:flex-end;align-items:center}body .v--modal-overlay .v--modal .header .close button{display:flex;align-items:center}body .v--modal-overlay .v--modal .header .close svg{width:16px!important;height:16px;margin-right:0;cursor:pointer}body .v--modal-overlay .v--modal .content{padding:20px}.popper{width:auto;background-color:#fafafa;color:#212121;text-align:center;padding:2px;display:inline-block;border-radius:3px;position:absolute;font-size:14px;font-weight:400;border:1px solid #ebebeb;z-index:200000;box-shadow:0 0 6px 0 #3a3a3a}.popper .popper__arrow{width:0;height:0;border-style:solid;position:absolute;margin:5px}.popper[x-placement^=top]{margin-bottom:5px}.popper[x-placement^=top] .popper__arrow{border-width:5px 5px 0 5px;border-color:#fafafa transparent transparent transparent;bottom:-5px;left:calc(50% - 5px);margin-top:0;margin-bottom:0}.popper[x-placement^=bottom]{margin-top:5px}.popper[x-placement^=bottom] .popper__arrow{border-width:0 5px 5px 5px;border-color:transparent transparent #fafafa transparent;top:-5px;left:calc(50% - 5px);margin-top:0;margin-bottom:0}.popper[x-placement^=right]{margin-left:5px}.popper[x-placement^=right] .popper__arrow{border-width:5px 5px 5px 0;border-color:transparent #fafafa transparent transparent;left:-5px;top:calc(50% - 5px);margin-left:0;margin-right:0}.popper[x-placement^=left]{margin-right:5px}.popper[x-placement^=left] .popper__arrow{border-width:5px 0 5px 5px;border-color:transparent transparent transparent #fafafa;right:-5px;top:calc(50% - 5px);margin-left:0;margin-right:0}.input-select{display:inline-block;position:relative}.input-select .caret,.input-select .clear-results{position:absolute;top:14px;right:14px;z-index:50;color:#9db3dc}.input-select .caret svg,.input-select .clear-results svg{vertical-align:top;width:10px;height:auto;transition:.2s;cursor:pointer}.input-select .caret+.multiselect__clear .clear-results{top:13px;right:38px}.input-select .caret+.multiselect__clear .clear-results .clear-results-icon{width:8px;height:auto}.form-toggle{position:relative;display:inline-block;width:21px;height:14px}.form-toggle input{display:none}.form-toggle input:checked+.toggle-switch{background-color:#74ba0d}.form-toggle input:checked+.toggle-switch:before{transform:translateX(7px)}.form-toggle input:focus+.toggle-switch{box-shadow:0 0 1px #74ba0d}.form-toggle .toggle-switch{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ce1f32;border-radius:15px;transition:.2s}.form-toggle .toggle-switch:before{position:absolute;content:"";height:12px;width:12px;left:1px;bottom:1px;background-color:#fff;border-radius:50%;transition:.2s}._om_inbox-icon-fill[data-v-d69bdb96]{display:none}._om_inbox-icon-hover-fill:hover ._om_inbox-icon-fill[data-v-d69bdb96],._om_inbox-icon-solid ._om_inbox-icon-fill[data-v-d69bdb96]{display:block}.omapi-card{background-color:#fff;box-shadow:0 3px 2px rgba(0,0,0,.05);margin-bottom:16px;position:relative;flex-grow:0;flex-shrink:1;flex-basis:100%;color:#23282d;flex-direction:column}.omapi-card,.omapi-card__flex{display:flex;justify-content:space-between}.omapi-card__flex{flex-wrap:wrap}.omapi-card__half{flex-basis:49%}.omapi-card__third{flex-basis:32%}.omapi-card__third-two{flex-basis:67%}.omapi-card__fourth{flex-basis:23.5%}.omapi-card__fifth{flex-basis:calc(20% - 16px)}.omapi-card__sixth{flex-basis:calc(16% - 16px)}.omapi-card__closed{margin:0}.omapi-card-title{font-size:16px;font-weight:600;padding:24px 30px 22px;border-bottom:1px solid #ddd;display:flex;justify-content:space-between;align-items:center}.omapi-card-content{padding:20px 30px 0;cursor:default}.omapi-card.omapi-card__notitle .omapi-card-content{padding-top:30px}.omapi-card.omapi-card__notitle .omapi-card-icon__close{position:absolute;right:20px;top:20px}.omapi-card.omapi-card__nofooter .omapi-card-content{padding-bottom:30px}.omapi-card-footer{padding:20px 30px;display:flex;justify-content:space-between;align-items:center;cursor:default}.omapi-card-footer :last-child{margin-right:0}.omapi-card-footer .omapi-status .omapi-multi-column__meta-attr{color:#646970;font-size:14px;line-height:21px}.omapi-card-footer .omapi-status .omapi-multi-column__meta-value{font-size:14px;line-height:21px;font-weight:600;color:#23282d}.omapi-card-footer .omapi-status .omapi-multi-column__meta-green{color:#46b450}.omapi-card-footer .omapi-status .omapi-multi-column__meta-red{color:#dc3232}.omapi-card-icon{color:#606a73;cursor:pointer}.omapi-card-icon__close{content:url(../img/card-close.4249544e.svg)}.omapi-card-icon__min-closed,.omapi-card-icon__min-open{content:url(../img/expand-more.9be22a9c.svg);transition:transform .5s}.omapi-card-icon__min-closed{transform:rotate(180deg)}.omapi-card__border{border-bottom:1px solid #ddd;padding-bottom:10px}.omapi-card__no-border{border-bottom:none}.omapi-card__child{padding:0}.omapi-card__child .omapi-card{margin-bottom:0}.omapi-card-setting-section{border-bottom:1px solid #f1f1f1;display:flex;flex-direction:row;margin-bottom:30px;padding-bottom:30px}.omapi-card-setting-section.disabled>*{position:relative}.omapi-card-setting-section.disabled>:before{content:"";background:#fff;position:absolute;top:0;bottom:0;left:0;right:0;opacity:.5;z-index:1}.omapi-card-setting-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.omapi-card-setting-section>header{flex:0 0 210px;padding-right:20px}@media screen and (max-width:850px){.omapi-card-setting-section>header{flex:0 0 150px}}.omapi-card-setting-section>header>*{font-size:16px;font-weight:600;margin:0}.omapi-codebox[data-v-4be92179]{background-color:#f7f8fb;border-radius:3px;padding:25px;font-size:13px;color:#646970;line-height:150%;cursor:default}.omapi-codebox__help[data-v-4be92179]{margin-bottom:12px}.omapi-codebox__copy[data-v-4be92179]{display:inline-flex}.omapi-codebox__copy[data-v-4be92179]:focus{box-shadow:0 0 0 1px #007cba;outline:2px solid transparent;border-radius:3px}.omapi-codebox__copy span[data-v-4be92179]{border:1px solid #ddd;border-radius:3px;padding:16px;background-color:#fff;font-weight:600;cursor:copy}.omapi-codebox__copy span.omapi-codebox__copy-icon[data-v-4be92179]{border-top-left-radius:0;border-bottom-left-radius:0;border-left:none;color:#606a73;font-size:20px}.omapi-codebox__copy span.omapi-codebox__copy-icon .fa[data-v-4be92179]{font-weight:600}.omapi-codebox__copy span.omapi-codebox__code[data-v-4be92179]{color:#23282d;font-family:Courier,serif;border-top-right-radius:0;border-bottom-right-radius:0}.omapi-no-campaigns[data-v-387168e8]{text-align:center}.omapi-no-campaigns-title[data-v-387168e8]{font-size:16px;line-height:140%;font-weight:600}.omapi-no-campaigns-buttons[data-v-387168e8],.omapi-no-campaigns-subtitle[data-v-387168e8]{font-size:13px;line-height:150%;color:#646970;margin:5px 0 15px}.omapi-no-campaigns-buttons .omapi-button.omapi-button__medium[data-v-387168e8],.omapi-no-campaigns-subtitle .omapi-button.omapi-button__medium[data-v-387168e8]{margin:0 10px;font-size:14px}.omapi-no-connection[data-v-3baa3680]{text-align:center}.omapi-no-connection-title[data-v-3baa3680]{font-size:16px;line-height:140%;font-weight:600}.omapi-no-connection-buttons[data-v-3baa3680],.omapi-no-connection-subtitle[data-v-3baa3680]{font-size:13px;line-height:150%;color:#646970;margin:5px 0 15px}.omapi-no-connection-buttons .omapi-button.omapi-button__medium[data-v-3baa3680],.omapi-no-connection-subtitle .omapi-button.omapi-button__medium[data-v-3baa3680]{margin:0 10px 10px;font-size:14px}.omapi-no-connection .omapi-no-connection-buttons[data-v-3baa3680]{display:flex;justify-content:center;align-items:center}.omapi-no-connection .omapi-no-connection-buttons .omapi-button[data-v-3baa3680]{margin-bottom:0;padding:10px}.omapi-no-connection .omapi-no-connection-buttons .omapi-button[data-v-3baa3680]:last-child{padding:11px 10px}.omapi-progress-bar{display:flex;margin:0 auto 40px;justify-content:center}.omapi-progress-bar:after{background:#ddd;content:"";display:block;height:2px}.omapi-progress-bar__step{align-items:center;display:flex;justify-content:center}.omapi-progress-bar__step:before{background:#ddd;content:"";display:block;height:2px;width:76px}.omapi-progress-bar__step:after{background:#dcdde1;border:4px solid #f6f7f8;border-radius:50%;content:"";display:block;height:13.3px;width:13.3px}.omapi-progress-bar__step-active:after,.omapi-progress-bar__step-active:before{background:#087ce1}.omapi-progress-bar__step:first-child:before{display:none}#om-flyout[data-v-4839773f]{position:fixed;z-index:9998;transition:all .2s ease-in-out;right:40px;bottom:40px;opacity:1}@media (max-width:960px){#om-flyout[data-v-4839773f]{display:none}}#om-flyout .om-flyout-head[data-v-4839773f]{display:block}#om-flyout .om-flyout-head img[data-v-4839773f]{background-color:#fff;width:54px;height:54px;display:block;border-radius:50%;border:3px solid #a3c47b;overflow:hidden;box-shadow:0 3px 20px rgba(0,0,0,.2);transition:all .2s ease-in-out}#om-flyout .om-flyout-head:hover img[data-v-4839773f]{box-shadow:0 3px 30px rgba(0,0,0,.25)}#om-flyout .om-flyout-head .om-flyout-label[data-v-4839773f]{opacity:0;transform:translateY(-50%) scale(0);margin-right:-50px}#om-flyout .om-flyout-head:hover .om-flyout-label[data-v-4839773f]{opacity:1;transform:translateY(-50%) scale(1);margin-right:0}#om-flyout .om-flyout-head[data-v-4839773f]:focus{box-shadow:none}#om-flyout .om-flyout-head .om-flyout-label[data-v-4839773f]{right:calc(100% + 15px)}#om-flyout .om-flyout-label[data-v-4839773f]{position:absolute;display:block;top:50%;right:calc(100% + 25px);transform:translateY(-50%);-moz-transform:translateY(-50%);-webkit-transform:translateY(-50%);color:#fff;background:#5f5e5e 0 0 no-repeat padding-box;font-size:12px;white-space:nowrap;padding:5px 10px;height:auto!important;line-height:normal;transition:all .2s ease-out;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px}#om-flyout .om-flyout-item[data-v-4839773f]{position:absolute;left:10px;width:40px;height:40px;opacity:0;visibility:hidden;transition:all .2s ease-in-out;transform:scale(0);border-radius:50%;box-shadow:0 3px 20px rgba(0,0,0,.2);background:#036aab 0 0 no-repeat padding-box;text-align:center;vertical-align:middle}#om-flyout .om-flyout-item i[data-v-4839773f]{color:#fff;font-size:20px;line-height:40px;vertical-align:middle}#om-flyout .om-flyout-item.om-flyout-item-0[data-v-4839773f]{bottom:75px}#om-flyout .om-flyout-item.om-flyout-item-1[data-v-4839773f]{bottom:130px}#om-flyout .om-flyout-item.om-flyout-item-2[data-v-4839773f]{bottom:185px}#om-flyout .om-flyout-item.om-flyout-item-3[data-v-4839773f]{bottom:240px}#om-flyout .om-flyout-item.om-flyout-item-4[data-v-4839773f]{bottom:295px}#om-flyout .om-flyout-item[data-v-4839773f]:hover{box-shadow:0 3px 30px rgba(0,0,0,.25);background:#0096f0 0 0 no-repeat padding-box}#om-flyout .om-flyout-item:hover .om-flyout-label[data-v-4839773f]{background:#444 0 0 no-repeat padding-box}#om-flyout.opened .om-flyout-item[data-v-4839773f]{opacity:1;visibility:visible;transform:scale(1)}#om-flyout.opened .om-flyout-head .om-flyout-label[data-v-4839773f]{display:none}#om-flyout.opened .om-flyout-item-0[data-v-4839773f]{transition:transform .2s 0ms,background-color .2s}#om-flyout.opened .om-flyout-item-1[data-v-4839773f]{transition:transform .2s 35ms,background-color .2s}#om-flyout.opened .om-flyout-item-2[data-v-4839773f]{transition:transform .2s 70ms,background-color .2s}#om-flyout.opened .om-flyout-item-3[data-v-4839773f]{transition:transform .2s 105ms,background-color .2s}#om-flyout.opened .om-flyout-item-4[data-v-4839773f]{transition:transform .2s .14s,background-color .2s}#om-flyout.out[data-v-4839773f]{opacity:0;visibility:hidden}.omapi-tabnav{display:flex;border-bottom:2px solid #e8e8eb;margin-bottom:25px}.omapi-tabnav__item{display:flex;align-items:center;justify-content:center;height:60px;font-size:15px;color:#6c7781;padding:0 18px;cursor:pointer}.omapi-tabnav__item-active{font-weight:600;color:#23282d;border-bottom:2px solid #087ce1;margin-bottom:-2px}.omapi-create-campaign-card.omapi-card.omapi-card__notitle .omapi-card-content{padding:40px 40px 10px}@media screen and (max-width:1024px){.omapi-create-campaign-card .omapi-card-footer{text-align:center}}.omapi-create-campaign{display:flex;align-items:center}.omapi-create-campaign .omapi-multi-column__primary{flex-basis:60%}@media screen and (max-width:1024px){.omapi-create-campaign .omapi-multi-column__primary{margin-top:20px}}.omapi-create-campaign__subtitle{color:#6c7781;font-size:16px;font-weight:600;line-height:130%;margin-bottom:6px}.omapi-create-campaign__title{line-height:130%;font-size:32px;margin-top:0;letter-spacing:-1px;margin-bottom:20px}.omapi-create-campaign p.omapi-create-campaign__text{line-height:160%}.omapi-create-campaign__video{padding-left:5%;cursor:pointer}.omapi-create-campaign__video img{max-width:525px;display:block;box-shadow:0 2px 5px rgba(0,0,0,.2);width:100%}.omapi-create-campaign__link-more.omapi-create-campaign__link-more{display:block;width:400px;margin-top:10px;text-align:center;line-height:150%}@media screen and (max-width:1024px){.omapi-create-campaign__link-more.omapi-create-campaign__link-more{width:100%}}@media screen and (max-width:1024px){.omapi-create-campaign{flex-direction:column-reverse;text-align:center}}.omapi-welcomebox .omapi-card-footer{padding-left:40px;padding-right:40px}.omapi-welcomebox .omapi-card-footer .learn-more-content{width:100%}.omapi-welcomebox .omapi-card-footer .learn-more-content .omapi-connect{display:flex;justify-content:center;margin:60px 0}.omapi-welcomebox .omapi-card-footer .learn-more-content .omapi-connect.omapi-no-connection-buttons span{display:flex;align-items:center}.omapi-welcomebox .omapi-card-footer .learn-more-content .omapi-join-thousands{text-align:center;margin:60px auto;width:60%}@media screen and (max-width:1005px){.omapi-welcomebox .omapi-card-footer .learn-more-content .omapi-join-thousands{width:89%}}.omapi-welcomebox hr{margin:40px 0 60px 0}.welcome-video.v--modal-overlay{background:rgba(0,0,0,.9)}.welcome-video.v--modal-overlay .v--modal{background:#000}.welcome-video.v--modal-overlay .v--modal .content{padding:0}.welcome-video.v--modal-overlay .v--modal .content iframe{margin-bottom:-6px}.omapi-featured-in{text-align:center}.omapi-featured-in h2{font-size:20px;font-weight:700;margin-bottom:40px}.omapi-featured-in img{margin-bottom:60px;max-width:100%}.omapi-effect{display:flex;margin-bottom:80px;width:100%}.omapi-effect .omapi-effect_col:first-of-type{width:55%}@media screen and (max-width:1065px){.omapi-effect .omapi-effect_col:first-of-type{width:100%}}.omapi-effect .omapi-effect_col:last-of-type{width:45%}.omapi-effect .omapi-effect_col:last-of-type img{height:auto;width:100%}@media screen and (max-width:1065px){.omapi-effect .omapi-effect_col:last-of-type img{max-width:500px;margin:10px auto 0}}@media screen and (max-width:1065px){.omapi-effect .omapi-effect_col:last-of-type{width:100%}}.omapi-effect h2{font-size:28px;font-weight:700;margin-top:0;line-height:1.25}@media screen and (max-width:1065px){.omapi-effect{flex-direction:column;text-align:center;margin-bottom:30px}}.omapi-testimonials{display:flex;justify-content:space-between;margin:0 auto!important;width:90%}.omapi-testimonials .omapi-testimonials__item{border:1px solid #ddd;box-shadow:0 3px 2px rgba(0,0,0,.05);flex:0 0 25%;padding:30px;text-align:center;display:flex;flex-direction:column;align-items:center}.omapi-testimonials .omapi-testimonials__item .icon-rating{display:block;margin-bottom:20px}.omapi-testimonials .omapi-testimonials__item .icon-rating .person{width:80px;margin-bottom:10px}.omapi-testimonials .omapi-testimonials__item .copy p{color:#646970;font-size:14px}@media screen and (max-width:950px){.omapi-testimonials{flex-direction:column}}.omapi-top-4__title{margin-bottom:80px;text-align:center}.omapi-top-4__title h2{font-size:20px;font-weight:700}.omapi-top-4__title h3{color:#646970!important;font-size:15px;font-weight:700}.omapi-top-4__items{margin:0 auto!important;width:90%}.omapi-top-4__items .omapi-top-4__item{display:flex;margin-bottom:40px}.omapi-top-4__items .omapi-top-4__item .omapi-top-4__copy,.omapi-top-4__items .omapi-top-4__item .omapi-top-4__icon{display:flex;flex-direction:column;justify-content:center}.omapi-top-4__items .omapi-top-4__item .omapi-top-4__icon img{height:auto;width:350px}@media screen and (max-width:1065px){.omapi-top-4__items .omapi-top-4__item .omapi-top-4__icon img{max-width:350px;margin:0 auto 10px}}.omapi-top-4__items .omapi-top-4__item .omapi-top-4__icon.mr{margin-right:80px}@media screen and (max-width:1065px){.omapi-top-4__items .omapi-top-4__item .omapi-top-4__icon.mr{margin-right:0}}.omapi-top-4__items .omapi-top-4__item .omapi-top-4__icon.ml{margin-left:80px}@media screen and (max-width:1065px){.omapi-top-4__items .omapi-top-4__item .omapi-top-4__icon.ml{margin-left:0}}.omapi-top-4__items .omapi-top-4__item .omapi-top-4__copy h4{font-size:16px;font-weight:700}.omapi-top-4__items .omapi-top-4__item .omapi-top-4__copy p{font-size:14px}.omapi-top-4__items .omapi-top-4__item.measuring .omapi-top-4__copy{margin-right:40px}.omapi-top-4__items .omapi-top-4__item.measuring .omapi-top-4__icon img{height:auto;width:400px}@media screen and (max-width:1065px){.omapi-top-4__items .omapi-top-4__item.measuring .omapi-top-4__icon img{max-width:400px;margin:0 auto 10px}}@media screen and (max-width:1065px){.omapi-top-4__items .omapi-top-4__item{flex-direction:column;text-align:center}.omapi-top-4__items .omapi-top-4__item:nth-child(2n){flex-direction:column-reverse}}.close-alert [data-v-3e84c686]{cursor:pointer}.omapi-alert.omapi-alert-closed[data-v-3e84c686]{display:none}.omapi-screen .omapi-alert-bar{background:#f7f8fb;padding:8px 0 9px;height:38px;box-sizing:border-box;text-align:center;line-height:18px;position:relative}@media screen and (max-width:950px){.omapi-screen .omapi-alert-bar{height:60px}}.omapi-screen .omapi-alert-bar a,.omapi-screen .omapi-alert-bar a:hover{color:#f56e28!important;text-decoration:underline}@media screen and (max-width:950px){.omapi-screen .omapi-alert-bar a,.omapi-screen .omapi-alert-bar a:hover{display:block}}.omapi-screen .omapi-alert-bar:before{content:"";background:url(../img/bell.4c686e25.svg) 50% no-repeat;display:inline-block;width:15px;height:15px;position:relative;left:-4px;top:3px}.omapi-screen .omapi-alert-bar__needs-connection .om-circle-loading{display:inline-block;margin:0 5px -5px}.omapi-screen .omapi-alert-bar__needs-connection.ringing:before,.omapi-screen .omapi-alert-bar__needs-upgrade.ringing:before{-webkit-animation:omringbell 4s ease-in-out 0s 1;animation:omringbell 4s ease-in-out 0s 1;transform-origin:50% 4px}.omapi-screen.omapi-has-alert .omapi-plugin-header{padding-top:38px}@media screen and (max-width:950px){.omapi-screen.omapi-has-alert .omapi-plugin-header{padding-top:60px}}.omapi-screen.omapi-has-alert .omapi-alert-bar{position:fixed;right:0;left:0;margin-left:160px;border:1px solid #e0e0e0}.omapi-screen.omapi-has-alert .omapi-alert-bar-wrapper{position:absolute;top:-112px;right:0;width:100%;height:38px;background:#f7f8fb;z-index:1}@media screen and (max-width:950px){.omapi-screen.omapi-has-alert .omapi-alert-bar-wrapper{height:60px;top:-134px}}@media screen and (max-width:960px){.omapi-screen.omapi-has-alert .omapi-alert-bar{margin-left:36px}}@media screen and (max-width:782px){.omapi-screen.omapi-has-alert .omapi-alert-bar{margin-left:0}}.omapi-screen.omapi-has-alert.folded .omapi-alert-bar{margin-left:36px}@-webkit-keyframes omringbell{0%{transform:rotate(0)}1%{transform:rotate(30deg)}3%{transform:rotate(-28deg)}5%{transform:rotate(34deg)}7%{transform:rotate(-32deg)}9%{transform:rotate(30deg)}11%{transform:rotate(-28deg)}13%{transform:rotate(26deg)}15%{transform:rotate(-24deg)}17%{transform:rotate(22deg)}19%{transform:rotate(-20deg)}21%{transform:rotate(18deg)}23%{transform:rotate(-16deg)}25%{transform:rotate(14deg)}27%{transform:rotate(-12deg)}29%{transform:rotate(10deg)}31%{transform:rotate(-8deg)}33%{transform:rotate(6deg)}35%{transform:rotate(-4deg)}37%{transform:rotate(2deg)}39%{transform:rotate(-1deg)}41%{transform:rotate(1deg)}43%{transform:rotate(0)}to{transform:rotate(0)}}@keyframes omringbell{0%{transform:rotate(0)}1%{transform:rotate(30deg)}3%{transform:rotate(-28deg)}5%{transform:rotate(34deg)}7%{transform:rotate(-32deg)}9%{transform:rotate(30deg)}11%{transform:rotate(-28deg)}13%{transform:rotate(26deg)}15%{transform:rotate(-24deg)}17%{transform:rotate(22deg)}19%{transform:rotate(-20deg)}21%{transform:rotate(18deg)}23%{transform:rotate(-16deg)}25%{transform:rotate(14deg)}27%{transform:rotate(-12deg)}29%{transform:rotate(10deg)}31%{transform:rotate(-8deg)}33%{transform:rotate(6deg)}35%{transform:rotate(-4deg)}37%{transform:rotate(2deg)}39%{transform:rotate(-1deg)}41%{transform:rotate(1deg)}43%{transform:rotate(0)}to{transform:rotate(0)}}.omapi-no-connection-buttons span{display:inline-block;margin-right:10px}.loading-button[data-v-78056e4f],nav[data-v-4adeb596]{display:inline-block;position:relative}.loading-button .loading-button-spinner[data-v-78056e4f]{position:absolute;width:20px;height:20px;top:calc(50% - 10px);left:calc(50% - 10px)}.om-page{padding:30px 40px 0}#om-notifications-trigger .fade-enter-active,#om-notifications-trigger .fade-leave-active{transition:opacity .2s}#om-notifications-trigger .fade-enter,#om-notifications-trigger .fade-leave-to{opacity:0}.youve-got-mail{position:relative}.youve-got-mail:active .om-pulse:after,.youve-got-mail:focus .om-pulse:after,.youve-got-mail:hover .om-pulse:after{display:none}.om-pulse{text-align:center;cursor:pointer;display:inline-block;width:10px;height:10px;top:-5px;right:-7px;border:3px solid #087ce1;border-radius:100%}.om-pulse,.om-pulse:after{background-color:#df2a4a;position:absolute}.om-pulse:after{content:"";top:-2px;left:-2px;width:13px;height:13px;border-radius:100%;z-index:0;-webkit-animation:ompulse 10s infinite;animation:ompulse 10s infinite;will-change:transform}@-webkit-keyframes ompulse{0%{transform:scale(1);opacity:1}20%{transform:scale(2);opacity:0}to{transform:scale(2);opacity:0}}@keyframes ompulse{0%{transform:scale(1);opacity:1}20%{transform:scale(2);opacity:0}to{transform:scale(2);opacity:0}}@font-face{font-family:element-icons;src:url(../fonts/element-icons.535877f5.woff) format("woff"),url(../fonts/element-icons.732389de.ttf) format("truetype");font-weight:400;font-display:"auto";font-style:normal}[class*=" el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-ice-cream-round:before{content:"\E6A0"}.el-icon-ice-cream-square:before{content:"\E6A3"}.el-icon-lollipop:before{content:"\E6A4"}.el-icon-potato-strips:before{content:"\E6A5"}.el-icon-milk-tea:before{content:"\E6A6"}.el-icon-ice-drink:before{content:"\E6A7"}.el-icon-ice-tea:before{content:"\E6A9"}.el-icon-coffee:before{content:"\E6AA"}.el-icon-orange:before{content:"\E6AB"}.el-icon-pear:before{content:"\E6AC"}.el-icon-apple:before{content:"\E6AD"}.el-icon-cherry:before{content:"\E6AE"}.el-icon-watermelon:before{content:"\E6AF"}.el-icon-grape:before{content:"\E6B0"}.el-icon-refrigerator:before{content:"\E6B1"}.el-icon-goblet-square-full:before{content:"\E6B2"}.el-icon-goblet-square:before{content:"\E6B3"}.el-icon-goblet-full:before{content:"\E6B4"}.el-icon-goblet:before{content:"\E6B5"}.el-icon-cold-drink:before{content:"\E6B6"}.el-icon-coffee-cup:before{content:"\E6B8"}.el-icon-water-cup:before{content:"\E6B9"}.el-icon-hot-water:before{content:"\E6BA"}.el-icon-ice-cream:before{content:"\E6BB"}.el-icon-dessert:before{content:"\E6BC"}.el-icon-sugar:before{content:"\E6BD"}.el-icon-tableware:before{content:"\E6BE"}.el-icon-burger:before{content:"\E6BF"}.el-icon-knife-fork:before{content:"\E6C1"}.el-icon-fork-spoon:before{content:"\E6C2"}.el-icon-chicken:before{content:"\E6C3"}.el-icon-food:before{content:"\E6C4"}.el-icon-dish-1:before{content:"\E6C5"}.el-icon-dish:before{content:"\E6C6"}.el-icon-moon-night:before{content:"\E6EE"}.el-icon-moon:before{content:"\E6F0"}.el-icon-cloudy-and-sunny:before{content:"\E6F1"}.el-icon-partly-cloudy:before{content:"\E6F2"}.el-icon-cloudy:before{content:"\E6F3"}.el-icon-sunny:before{content:"\E6F6"}.el-icon-sunset:before{content:"\E6F7"}.el-icon-sunrise-1:before{content:"\E6F8"}.el-icon-sunrise:before{content:"\E6F9"}.el-icon-heavy-rain:before{content:"\E6FA"}.el-icon-lightning:before{content:"\E6FB"}.el-icon-light-rain:before{content:"\E6FC"}.el-icon-wind-power:before{content:"\E6FD"}.el-icon-baseball:before{content:"\E712"}.el-icon-soccer:before{content:"\E713"}.el-icon-football:before{content:"\E715"}.el-icon-basketball:before{content:"\E716"}.el-icon-ship:before{content:"\E73F"}.el-icon-truck:before{content:"\E740"}.el-icon-bicycle:before{content:"\E741"}.el-icon-mobile-phone:before{content:"\E6D3"}.el-icon-service:before{content:"\E6D4"}.el-icon-key:before{content:"\E6E2"}.el-icon-unlock:before{content:"\E6E4"}.el-icon-lock:before{content:"\E6E5"}.el-icon-watch:before{content:"\E6FE"}.el-icon-watch-1:before{content:"\E6FF"}.el-icon-timer:before{content:"\E702"}.el-icon-alarm-clock:before{content:"\E703"}.el-icon-map-location:before{content:"\E704"}.el-icon-delete-location:before{content:"\E705"}.el-icon-add-location:before{content:"\E706"}.el-icon-location-information:before{content:"\E707"}.el-icon-location-outline:before{content:"\E708"}.el-icon-location:before{content:"\E79E"}.el-icon-place:before{content:"\E709"}.el-icon-discover:before{content:"\E70A"}.el-icon-first-aid-kit:before{content:"\E70B"}.el-icon-trophy-1:before{content:"\E70C"}.el-icon-trophy:before{content:"\E70D"}.el-icon-medal:before{content:"\E70E"}.el-icon-medal-1:before{content:"\E70F"}.el-icon-stopwatch:before{content:"\E710"}.el-icon-mic:before{content:"\E711"}.el-icon-copy-document:before{content:"\E718"}.el-icon-full-screen:before{content:"\E719"}.el-icon-switch-button:before{content:"\E71B"}.el-icon-aim:before{content:"\E71C"}.el-icon-crop:before{content:"\E71D"}.el-icon-odometer:before{content:"\E71E"}.el-icon-time:before{content:"\E71F"}.el-icon-bangzhu:before{content:"\E724"}.el-icon-close-notification:before{content:"\E726"}.el-icon-microphone:before{content:"\E727"}.el-icon-turn-off-microphone:before{content:"\E728"}.el-icon-position:before{content:"\E729"}.el-icon-postcard:before{content:"\E72A"}.el-icon-message:before{content:"\E72B"}.el-icon-chat-line-square:before{content:"\E72D"}.el-icon-chat-dot-square:before{content:"\E72E"}.el-icon-chat-dot-round:before{content:"\E72F"}.el-icon-chat-square:before{content:"\E730"}.el-icon-chat-line-round:before{content:"\E731"}.el-icon-chat-round:before{content:"\E732"}.el-icon-set-up:before{content:"\E733"}.el-icon-turn-off:before{content:"\E734"}.el-icon-open:before{content:"\E735"}.el-icon-connection:before{content:"\E736"}.el-icon-link:before{content:"\E737"}.el-icon-cpu:before{content:"\E738"}.el-icon-thumb:before{content:"\E739"}.el-icon-female:before{content:"\E73A"}.el-icon-male:before{content:"\E73B"}.el-icon-guide:before{content:"\E73C"}.el-icon-news:before{content:"\E73E"}.el-icon-price-tag:before{content:"\E744"}.el-icon-discount:before{content:"\E745"}.el-icon-wallet:before{content:"\E747"}.el-icon-coin:before{content:"\E748"}.el-icon-money:before{content:"\E749"}.el-icon-bank-card:before{content:"\E74A"}.el-icon-box:before{content:"\E74B"}.el-icon-present:before{content:"\E74C"}.el-icon-sell:before{content:"\E6D5"}.el-icon-sold-out:before{content:"\E6D6"}.el-icon-shopping-bag-2:before{content:"\E74D"}.el-icon-shopping-bag-1:before{content:"\E74E"}.el-icon-shopping-cart-2:before{content:"\E74F"}.el-icon-shopping-cart-1:before{content:"\E750"}.el-icon-shopping-cart-full:before{content:"\E751"}.el-icon-smoking:before{content:"\E752"}.el-icon-no-smoking:before{content:"\E753"}.el-icon-house:before{content:"\E754"}.el-icon-table-lamp:before{content:"\E755"}.el-icon-school:before{content:"\E756"}.el-icon-office-building:before{content:"\E757"}.el-icon-toilet-paper:before{content:"\E758"}.el-icon-notebook-2:before{content:"\E759"}.el-icon-notebook-1:before{content:"\E75A"}.el-icon-files:before{content:"\E75B"}.el-icon-collection:before{content:"\E75C"}.el-icon-receiving:before{content:"\E75D"}.el-icon-suitcase-1:before{content:"\E760"}.el-icon-suitcase:before{content:"\E761"}.el-icon-film:before{content:"\E763"}.el-icon-collection-tag:before{content:"\E765"}.el-icon-data-analysis:before{content:"\E766"}.el-icon-pie-chart:before{content:"\E767"}.el-icon-data-board:before{content:"\E768"}.el-icon-data-line:before{content:"\E76D"}.el-icon-reading:before{content:"\E769"}.el-icon-magic-stick:before{content:"\E76A"}.el-icon-coordinate:before{content:"\E76B"}.el-icon-mouse:before{content:"\E76C"}.el-icon-brush:before{content:"\E76E"}.el-icon-headset:before{content:"\E76F"}.el-icon-umbrella:before{content:"\E770"}.el-icon-scissors:before{content:"\E771"}.el-icon-mobile:before{content:"\E773"}.el-icon-attract:before{content:"\E774"}.el-icon-monitor:before{content:"\E775"}.el-icon-search:before{content:"\E778"}.el-icon-takeaway-box:before{content:"\E77A"}.el-icon-paperclip:before{content:"\E77D"}.el-icon-printer:before{content:"\E77E"}.el-icon-document-add:before{content:"\E782"}.el-icon-document:before{content:"\E785"}.el-icon-document-checked:before{content:"\E786"}.el-icon-document-copy:before{content:"\E787"}.el-icon-document-delete:before{content:"\E788"}.el-icon-document-remove:before{content:"\E789"}.el-icon-tickets:before{content:"\E78B"}.el-icon-folder-checked:before{content:"\E77F"}.el-icon-folder-delete:before{content:"\E780"}.el-icon-folder-remove:before{content:"\E781"}.el-icon-folder-add:before{content:"\E783"}.el-icon-folder-opened:before{content:"\E784"}.el-icon-folder:before{content:"\E78A"}.el-icon-edit-outline:before{content:"\E764"}.el-icon-edit:before{content:"\E78C"}.el-icon-date:before{content:"\E78E"}.el-icon-c-scale-to-original:before{content:"\E7C6"}.el-icon-view:before{content:"\E6CE"}.el-icon-loading:before{content:"\E6CF"}.el-icon-rank:before{content:"\E6D1"}.el-icon-sort-down:before{content:"\E7C4"}.el-icon-sort-up:before{content:"\E7C5"}.el-icon-sort:before{content:"\E6D2"}.el-icon-finished:before{content:"\E6CD"}.el-icon-refresh-left:before{content:"\E6C7"}.el-icon-refresh-right:before{content:"\E6C8"}.el-icon-refresh:before{content:"\E6D0"}.el-icon-video-play:before{content:"\E7C0"}.el-icon-video-pause:before{content:"\E7C1"}.el-icon-d-arrow-right:before{content:"\E6DC"}.el-icon-d-arrow-left:before{content:"\E6DD"}.el-icon-arrow-up:before{content:"\E6E1"}.el-icon-arrow-down:before{content:"\E6DF"}.el-icon-arrow-right:before{content:"\E6E0"}.el-icon-arrow-left:before{content:"\E6DE"}.el-icon-top-right:before{content:"\E6E7"}.el-icon-top-left:before{content:"\E6E8"}.el-icon-top:before{content:"\E6E6"}.el-icon-bottom:before{content:"\E6EB"}.el-icon-right:before{content:"\E6E9"}.el-icon-back:before{content:"\E6EA"}.el-icon-bottom-right:before{content:"\E6EC"}.el-icon-bottom-left:before{content:"\E6ED"}.el-icon-caret-top:before{content:"\E78F"}.el-icon-caret-bottom:before{content:"\E790"}.el-icon-caret-right:before{content:"\E791"}.el-icon-caret-left:before{content:"\E792"}.el-icon-d-caret:before{content:"\E79A"}.el-icon-share:before{content:"\E793"}.el-icon-menu:before{content:"\E798"}.el-icon-s-grid:before{content:"\E7A6"}.el-icon-s-check:before{content:"\E7A7"}.el-icon-s-data:before{content:"\E7A8"}.el-icon-s-opportunity:before{content:"\E7AA"}.el-icon-s-custom:before{content:"\E7AB"}.el-icon-s-claim:before{content:"\E7AD"}.el-icon-s-finance:before{content:"\E7AE"}.el-icon-s-comment:before{content:"\E7AF"}.el-icon-s-flag:before{content:"\E7B0"}.el-icon-s-marketing:before{content:"\E7B1"}.el-icon-s-shop:before{content:"\E7B4"}.el-icon-s-open:before{content:"\E7B5"}.el-icon-s-management:before{content:"\E7B6"}.el-icon-s-ticket:before{content:"\E7B7"}.el-icon-s-release:before{content:"\E7B8"}.el-icon-s-home:before{content:"\E7B9"}.el-icon-s-promotion:before{content:"\E7BA"}.el-icon-s-operation:before{content:"\E7BB"}.el-icon-s-unfold:before{content:"\E7BC"}.el-icon-s-fold:before{content:"\E7A9"}.el-icon-s-platform:before{content:"\E7BD"}.el-icon-s-order:before{content:"\E7BE"}.el-icon-s-cooperation:before{content:"\E7BF"}.el-icon-bell:before{content:"\E725"}.el-icon-message-solid:before{content:"\E799"}.el-icon-video-camera:before{content:"\E772"}.el-icon-video-camera-solid:before{content:"\E796"}.el-icon-camera:before{content:"\E779"}.el-icon-camera-solid:before{content:"\E79B"}.el-icon-download:before{content:"\E77C"}.el-icon-upload2:before{content:"\E77B"}.el-icon-upload:before{content:"\E7C3"}.el-icon-picture-outline-round:before{content:"\E75F"}.el-icon-picture-outline:before{content:"\E75E"}.el-icon-picture:before{content:"\E79F"}.el-icon-close:before{content:"\E6DB"}.el-icon-check:before{content:"\E6DA"}.el-icon-plus:before{content:"\E6D9"}.el-icon-minus:before{content:"\E6D8"}.el-icon-help:before{content:"\E73D"}.el-icon-s-help:before{content:"\E7B3"}.el-icon-circle-close:before{content:"\E78D"}.el-icon-circle-check:before{content:"\E720"}.el-icon-circle-plus-outline:before{content:"\E723"}.el-icon-remove-outline:before{content:"\E722"}.el-icon-zoom-out:before{content:"\E776"}.el-icon-zoom-in:before{content:"\E777"}.el-icon-error:before{content:"\E79D"}.el-icon-success:before{content:"\E79C"}.el-icon-circle-plus:before{content:"\E7A0"}.el-icon-remove:before{content:"\E7A2"}.el-icon-info:before{content:"\E7A1"}.el-icon-question:before{content:"\E7A4"}.el-icon-warning-outline:before{content:"\E6C9"}.el-icon-warning:before{content:"\E7A3"}.el-icon-goods:before{content:"\E7C2"}.el-icon-s-goods:before{content:"\E7B2"}.el-icon-star-off:before{content:"\E717"}.el-icon-star-on:before{content:"\E797"}.el-icon-more-outline:before{content:"\E6CC"}.el-icon-more:before{content:"\E794"}.el-icon-phone-outline:before{content:"\E6CB"}.el-icon-phone:before{content:"\E795"}.el-icon-user:before{content:"\E6E3"}.el-icon-user-solid:before{content:"\E7A5"}.el-icon-setting:before{content:"\E6CA"}.el-icon-s-tools:before{content:"\E7AC"}.el-icon-delete:before{content:"\E6D7"}.el-icon-delete-solid:before{content:"\E7C9"}.el-icon-eleme:before{content:"\E7C7"}.el-icon-platform-eleme:before{content:"\E7CA"}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes rotating{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.el-pagination{white-space:nowrap;padding:2px 5px;color:#303133;font-weight:700}.el-pagination:after,.el-pagination:before{display:table;content:""}.el-pagination:after{clear:both}.el-pagination button,.el-pagination span:not([class*=suffix]){display:inline-block;font-size:13px;min-width:35.5px;height:28px;line-height:28px;vertical-align:top;box-sizing:border-box}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield;line-height:normal}.el-pagination .el-input__suffix{right:0;transform:scale(.8)}.el-pagination .el-select .el-input{width:100px;margin:0 5px}.el-pagination .el-select .el-input .el-input__inner{padding-right:25px;border-radius:3px}.el-pagination button{border:none;padding:0 6px;background:transparent}.el-pagination button:focus{outline:none}.el-pagination button:hover{color:#087ce1}.el-pagination button:disabled{color:#c0c4cc;background-color:#fff;cursor:not-allowed}.el-pagination .btn-next,.el-pagination .btn-prev{background:50% no-repeat;background-size:16px;background-color:#fff;cursor:pointer;margin:0;color:#303133}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700}.el-pagination .btn-prev{padding-right:12px}.el-pagination .btn-next{padding-left:12px}.el-pagination .el-pager li.disabled{color:#c0c4cc;cursor:not-allowed}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li,.el-pagination--small .el-pager li.btn-quicknext,.el-pagination--small .el-pager li.btn-quickprev,.el-pagination--small .el-pager li:last-child{border-color:transparent;font-size:12px;line-height:22px;height:22px;min-width:22px}.el-pagination--small .arrow.disabled{visibility:hidden}.el-pagination--small .more:before,.el-pagination--small li.more:before{line-height:24px}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){height:22px;line-height:22px}.el-pagination--small .el-pagination__editor,.el-pagination--small .el-pagination__editor.el-input .el-input__inner{height:22px}.el-pagination__sizes{margin:0 10px 0 0;font-weight:400;color:#646970}.el-pagination__sizes .el-input .el-input__inner{font-size:13px;padding-left:8px}.el-pagination__sizes .el-input .el-input__inner:hover{border-color:#087ce1}.el-pagination__total{margin-right:10px;font-weight:400;color:#646970}.el-pagination__jump{margin-left:24px;font-weight:400;color:#646970}.el-pagination__jump .el-input__inner{padding:0 3px}.el-pagination__rightwrapper{float:right}.el-pagination__editor{line-height:18px;padding:0 2px;height:28px;text-align:center;margin:0 2px;box-sizing:border-box;border-radius:3px}.el-pagination__editor.el-input{width:50px}.el-pagination__editor.el-input .el-input__inner{height:28px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 5px;background-color:#f4f4f5;color:#646970;min-width:30px;border-radius:2px}.el-pagination.is-background .btn-next.disabled,.el-pagination.is-background .btn-prev.disabled,.el-pagination.is-background .el-pager li.disabled{color:#c0c4cc}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev{padding:0}.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev:disabled{color:#c0c4cc}.el-pagination.is-background .el-pager li:not(.disabled):hover{color:#087ce1}.el-pagination.is-background .el-pager li:not(.disabled).active{background-color:#087ce1;color:#fff}.el-pagination.is-background.el-pagination--small .btn-next,.el-pagination.is-background.el-pagination--small .btn-prev,.el-pagination.is-background.el-pagination--small .el-pager li{margin:0 3px;min-width:22px}.el-pager{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;display:inline-block;vertical-align:top;font-size:0;padding:0;margin:0}.el-pager .more:before{line-height:30px}.el-pager li{padding:0 4px;background:#fff;vertical-align:top;display:inline-block;font-size:13px;min-width:35.5px;height:28px;line-height:28px;cursor:pointer;box-sizing:border-box;text-align:center;margin:0}.el-pager li.btn-quicknext,.el-pager li.btn-quickprev{line-height:28px;color:#303133}.el-pager li.btn-quicknext.disabled,.el-pager li.btn-quickprev.disabled{color:#c0c4cc}.el-pager li.btn-quicknext:hover,.el-pager li.btn-quickprev:hover{cursor:pointer}.el-pager li.active+li{border-left:0}.el-pager li:hover{color:#087ce1}.el-pager li.active{color:#087ce1;cursor:default}@-webkit-keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{to{opacity:0}}.el-dialog{position:relative;margin:0 auto 50px;background:#fff;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.3);box-sizing:border-box;width:50%}.el-dialog.is-fullscreen{width:100%;margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog__header{padding:20px;padding-bottom:10px}.el-dialog__headerbtn{position:absolute;top:20px;right:20px;padding:0;background:transparent;border:none;outline:none;cursor:pointer;font-size:16px}.el-dialog__headerbtn .el-dialog__close{color:#909399}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:#087ce1}.el-dialog__title{line-height:24px;font-size:18px;color:#303133}.el-dialog__body{padding:30px 20px;color:#646970;font-size:14px;word-break:break-all}.el-dialog__footer{padding:20px;padding-top:10px;text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px 25px 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.dialog-fade-enter-active{-webkit-animation:dialog-fade-in .3s;animation:dialog-fade-in .3s}.dialog-fade-leave-active{-webkit-animation:dialog-fade-out .3s;animation:dialog-fade-out .3s}@-webkit-keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-autocomplete{position:relative;display:inline-block}.el-autocomplete-suggestion{margin:5px 0;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:4px;border:1px solid #e4e7ed;box-sizing:border-box;background-color:#fff}.el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;box-sizing:border-box}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:#646970;font-size:14px;list-style:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li.highlighted,.el-autocomplete-suggestion li:hover{background-color:#f5f7fa}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid #000}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:#999}.el-autocomplete-suggestion.is-loading li:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:#fff}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-dropdown{display:inline-block;position:relative;color:#646970;font-size:14px}.el-dropdown .el-button-group{display:block}.el-dropdown .el-button-group .el-button{float:none}.el-dropdown .el-dropdown__caret-button{padding-left:5px;padding-right:5px;position:relative;border-left:none}.el-dropdown .el-dropdown__caret-button:before{content:"";position:absolute;display:block;width:1px;top:5px;bottom:5px;left:0;background:hsla(0,0%,100%,.5)}.el-dropdown .el-dropdown__caret-button.el-button--default:before{background:rgba(220,223,230,.5)}.el-dropdown .el-dropdown__caret-button:hover:before{top:0;bottom:0}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{padding-left:0}.el-dropdown__icon{font-size:12px;margin:0 3px}.el-dropdown .el-dropdown-selfdefine:focus:active,.el-dropdown .el-dropdown-selfdefine:focus:not(.focusing){outline-width:0}.el-dropdown-menu{position:absolute;top:0;left:0;z-index:10;padding:10px 0;margin:5px 0;background-color:#fff;border:1px solid #ebeef5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-dropdown-menu__item{list-style:none;line-height:36px;padding:0 20px;margin:0;font-size:14px;color:#646970;cursor:pointer;outline:none}.el-dropdown-menu__item:focus,.el-dropdown-menu__item:not(.is-disabled):hover{background-color:#e6f2fc;color:#3996e7}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{position:relative;margin-top:6px;border-top:1px solid #ebeef5}.el-dropdown-menu__item--divided:before{content:"";height:6px;display:block;margin:0 -20px;background-color:#fff}.el-dropdown-menu__item.is-disabled{cursor:default;color:#bbb;pointer-events:none}.el-dropdown-menu--medium{padding:6px 0}.el-dropdown-menu--medium .el-dropdown-menu__item{line-height:30px;padding:0 17px;font-size:14px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:6px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:6px;margin:0 -17px}.el-dropdown-menu--small{padding:6px 0}.el-dropdown-menu--small .el-dropdown-menu__item{line-height:27px;padding:0 15px;font-size:13px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:4px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:4px;margin:0 -15px}.el-dropdown-menu--mini{padding:3px 0}.el-dropdown-menu--mini .el-dropdown-menu__item{line-height:24px;padding:0 10px;font-size:12px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:3px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:3px;margin:0 -10px}.el-menu{border-right:1px solid #e6e6e6;list-style:none;position:relative;margin:0;padding-left:0;background-color:#fff}.el-menu:after,.el-menu:before{display:table;content:""}.el-menu:after{clear:both}.el-menu.el-menu--horizontal{border-bottom:1px solid #e6e6e6}.el-menu--horizontal{border-right:none}.el-menu--horizontal>.el-menu-item{float:left;height:60px;line-height:60px;margin:0;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover{background-color:#fff}.el-menu--horizontal>.el-submenu{float:left}.el-menu--horizontal>.el-submenu:focus,.el-menu--horizontal>.el-submenu:hover{outline:none}.el-menu--horizontal>.el-submenu:focus .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{color:#303133}.el-menu--horizontal>.el-submenu.is-active .el-submenu__title{border-bottom:2px solid #087ce1;color:#303133}.el-menu--horizontal>.el-submenu .el-submenu__title{height:60px;line-height:60px;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-submenu .el-submenu__title:hover{background-color:#fff}.el-menu--horizontal>.el-submenu .el-submenu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:-3px}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-submenu__title{background-color:#fff;float:none;height:36px;line-height:36px;padding:0 10px;color:#909399}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-submenu.is-active>.el-submenu__title{color:#303133}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:none;color:#303133}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid #087ce1;color:#303133}.el-menu--collapse{width:64px}.el-menu--collapse>.el-menu-item [class^=el-icon-],.el-menu--collapse>.el-submenu>.el-submenu__title [class^=el-icon-]{margin:0;vertical-align:middle;width:24px;text-align:center}.el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,.el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item span,.el-menu--collapse>.el-submenu>.el-submenu__title span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-submenu{min-width:200px}.el-menu--collapse .el-submenu{position:relative}.el-menu--collapse .el-submenu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;z-index:10;border:1px solid #e4e7ed;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:none}.el-menu--popup{z-index:100;min-width:200px;border:none;padding:5px 0;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--popup-bottom-start{margin-top:5px}.el-menu--popup-right-start{margin-left:5px;margin-right:5px}.el-menu-item{height:56px;line-height:56px;font-size:14px;color:#303133;padding:0 20px;list-style:none;cursor:pointer;position:relative;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box;white-space:nowrap}.el-menu-item *{vertical-align:middle}.el-menu-item i{color:#909399}.el-menu-item:focus,.el-menu-item:hover{outline:none;background-color:#e6f2fc}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:none!important}.el-menu-item [class^=el-icon-]{margin-right:5px;width:24px;text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:#087ce1}.el-menu-item.is-active i{color:inherit}.el-submenu{list-style:none;margin:0;padding-left:0}.el-submenu__title{height:56px;line-height:56px;font-size:14px;color:#303133;padding:0 20px;list-style:none;cursor:pointer;position:relative;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box;white-space:nowrap}.el-submenu__title *{vertical-align:middle}.el-submenu__title i{color:#909399}.el-submenu__title:focus,.el-submenu__title:hover{outline:none;background-color:#e6f2fc}.el-submenu__title.is-disabled{opacity:.25;cursor:not-allowed;background:none!important}.el-submenu__title:hover{background-color:#e6f2fc}.el-submenu .el-menu{border:none}.el-submenu .el-menu-item{height:50px;line-height:50px;padding:0 45px;min-width:200px}.el-submenu__icon-arrow{position:absolute;top:50%;right:20px;margin-top:-7px;transition:transform .3s;font-size:12px}.el-submenu.is-active .el-submenu__title{border-bottom-color:#087ce1}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:rotate(180deg)}.el-submenu.is-disabled .el-menu-item,.el-submenu.is-disabled .el-submenu__title{opacity:.25;cursor:not-allowed;background:none!important}.el-submenu [class^=el-icon-]{vertical-align:middle;margin-right:5px;width:24px;text-align:center;font-size:18px}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px 20px;line-height:normal;font-size:12px;color:#909399}.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow{transition:.2s;opacity:0}.el-radio-group{display:inline-block;line-height:1;vertical-align:middle;font-size:0}.el-radio-button,.el-radio-button__inner{position:relative;display:inline-block;outline:none}.el-radio-button__inner{line-height:1;white-space:nowrap;vertical-align:middle;background:#fff;border:1px solid #dcdfe6;font-weight:500;border-left:0;color:#646970;-webkit-appearance:none;text-align:center;box-sizing:border-box;margin:0;cursor:pointer;transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-radio-button__inner.is-round{padding:12px 20px}.el-radio-button__inner:hover{color:#087ce1}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;box-shadow:none!important}.el-radio-button__orig-radio{opacity:0;outline:none;position:absolute;z-index:-1}.el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#fff;background-color:#087ce1;border-color:#087ce1;box-shadow:-1px 0 0 0 #087ce1}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;box-shadow:none}.el-radio-button__orig-radio:disabled:checked+.el-radio-button__inner{background-color:#f2f6fc}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:4px}.el-radio-button--medium .el-radio-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-radio-button--medium .el-radio-button__inner.is-round{padding:10px 20px}.el-radio-button--small .el-radio-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:9px 15px}.el-radio-button--mini .el-radio-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-radio-button--mini .el-radio-button__inner.is-round{padding:7px 15px}.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled){box-shadow:0 0 2px 2px #087ce1}.el-switch{display:inline-flex;align-items:center;position:relative;font-size:14px;line-height:20px;height:20px;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{transition:.2s;height:20px;display:inline-block;font-size:14px;font-weight:500;cursor:pointer;vertical-align:middle;color:#303133}.el-switch__label.is-active{color:#087ce1}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__core{margin:0;display:inline-block;position:relative;width:40px;height:20px;border:1px solid #dcdfe6;outline:none;border-radius:10px;box-sizing:border-box;background:#dcdfe6;cursor:pointer;transition:border-color .3s,background-color .3s;vertical-align:middle}.el-switch__core:after{content:"";position:absolute;top:1px;left:1px;border-radius:100%;transition:all .3s;width:16px;height:16px;background-color:#fff}.el-switch.is-checked .el-switch__core{border-color:#087ce1;background-color:#087ce1}.el-switch.is-checked .el-switch__core:after{left:100%;margin-left:-17px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter,.el-switch .label-fade-leave-active{opacity:0}.el-select-dropdown{position:absolute;z-index:1001;border:1px solid #e4e7ed;border-radius:4px;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:5px 0}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#087ce1;background-color:#fff}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#f5f7fa}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{position:absolute;right:20px;font-family:element-icons;content:"\E6DA";font-size:12px;font-weight:700;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:#999;font-size:14px}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;box-sizing:border-box}.el-select-dropdown__item{font-size:14px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#646970;height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#fff}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#f5f7fa}.el-select-dropdown__item.selected{color:#087ce1;font-weight:700}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:#e4e7ed}.el-select-group__title{padding-left:20px;font-size:12px;color:#909399;line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{display:inline-block;position:relative}.el-select .el-select__tags>span{display:contents}.el-select:hover .el-input__inner{border-color:#c0c4cc}.el-select .el-input__inner{cursor:pointer;padding-right:35px}.el-select .el-input__inner:focus{border-color:#087ce1}.el-select .el-input .el-select__caret{color:#c0c4cc;font-size:14px;transition:transform .3s;transform:rotate(180deg);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{transform:rotate(0deg)}.el-select .el-input .el-select__caret.is-show-close{font-size:14px;text-align:center;transform:rotate(180deg);border-radius:100%;color:#c0c4cc;transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-select .el-input .el-select__caret.is-show-close:hover{color:#909399}.el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__inner:hover{border-color:#e4e7ed}.el-select .el-input.is-focus .el-input__inner{border-color:#087ce1}.el-select>.el-input{display:block}.el-select__input{border:none;outline:none;padding:0;margin-left:15px;color:#666;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-mini{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:1000;right:25px;color:#c0c4cc;line-height:18px;font-size:14px}.el-select__close:hover{color:#909399}.el-select__tags{position:absolute;line-height:normal;white-space:normal;z-index:1;top:50%;transform:translateY(-50%);display:flex;align-items:center;flex-wrap:wrap}.el-select .el-tag__close{margin-top:-2px}.el-select .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:#f0f2f5}.el-select .el-tag__close.el-icon-close{background-color:#c0c4cc;right:-7px;top:0;color:#fff}.el-select .el-tag__close.el-icon-close:hover{background-color:#909399}.el-select .el-tag__close.el-icon-close:before{display:block;transform:translateY(.5px)}.el-table{position:relative;overflow:hidden;box-sizing:border-box;flex:1;width:100%;max-width:100%;background-color:#fff;font-size:14px;color:#646970}.el-table__empty-block{min-height:60px;text-align:center;width:100%;display:flex;justify-content:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:#909399}.el-table__expand-column .cell{padding:0;text-align:center}.el-table__expand-icon{position:relative;cursor:pointer;color:#666;font-size:12px;transition:transform .2s ease-in-out;height:20px}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{position:absolute;left:50%;top:50%;margin-left:-5px;margin-top:-5px}.el-table__expanded-cell{background-color:#fff}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit td.gutter,.el-table--fit th.gutter{border-right-width:1px}.el-table--scrollable-x .el-table__body-wrapper{overflow-x:auto}.el-table--scrollable-y .el-table__body-wrapper{overflow-y:auto}.el-table thead{color:#909399;font-weight:500}.el-table thead.is-group th{background:#f5f7fa}.el-table td,.el-table th{padding:12px 0;min-width:0;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left}.el-table td.is-center,.el-table th.is-center{text-align:center}.el-table td.is-right,.el-table th.is-right{text-align:right}.el-table td.gutter,.el-table th.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table td.is-hidden>*,.el-table th.is-hidden>*{visibility:hidden}.el-table--medium td,.el-table--medium th{padding:10px 0}.el-table--small{font-size:12px}.el-table--small td,.el-table--small th{padding:8px 0}.el-table--mini{font-size:12px}.el-table--mini td,.el-table--mini th{padding:6px 0}.el-table tr{background-color:#fff}.el-table tr input[type=checkbox]{margin:0}.el-table td,.el-table th.is-leaf{border-bottom:1px solid #ebeef5}.el-table th.is-sortable{cursor:pointer}.el-table th{overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#fff}.el-table th>.cell{display:inline-block;box-sizing:border-box;position:relative;vertical-align:middle;padding-left:10px;padding-right:10px;width:100%}.el-table th>.cell.highlight{color:#087ce1}.el-table th.required>div:before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td div{box-sizing:border-box}.el-table td.gutter{width:0}.el-table .cell{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding-left:10px;padding-right:10px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--border,.el-table--group{border:1px solid #ebeef5}.el-table--border:after,.el-table--group:after,.el-table:before{content:"";position:absolute;background-color:#ebeef5;z-index:1}.el-table--border:after,.el-table--group:after{top:0;right:0;width:1px;height:100%}.el-table:before{left:0;bottom:0;width:100%;height:1px}.el-table--border{border-right:none;border-bottom:none}.el-table--border.el-loading-parent--relative{border-color:transparent}.el-table--border td,.el-table--border th{border-right:1px solid #ebeef5}.el-table--border td:first-child .cell,.el-table--border th:first-child .cell{padding-left:10px}.el-table--border th.gutter:last-of-type{border-bottom:1px solid #ebeef5;border-bottom-width:1px}.el-table--border th{border-bottom:1px solid #ebeef5}.el-table--hidden{visibility:hidden}.el-table__fixed,.el-table__fixed-right{position:absolute;top:0;left:0;overflow-x:hidden;overflow-y:hidden;box-shadow:0 0 10px rgba(0,0,0,.12)}.el-table__fixed-right:before,.el-table__fixed:before{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background-color:#ebeef5;z-index:4}.el-table__fixed-right-patch{position:absolute;top:-1px;right:0;background-color:#fff;border-bottom:1px solid #ebeef5}.el-table__fixed-right{top:0;left:auto;right:0}.el-table__fixed-right .el-table__fixed-body-wrapper,.el-table__fixed-right .el-table__fixed-footer-wrapper,.el-table__fixed-right .el-table__fixed-header-wrapper{left:auto;right:0}.el-table__fixed-header-wrapper{position:absolute;left:0;top:0;z-index:3}.el-table__fixed-footer-wrapper{position:absolute;left:0;bottom:0;z-index:3}.el-table__fixed-footer-wrapper tbody td{border-top:1px solid #ebeef5;background-color:#f5f7fa;color:#646970}.el-table__fixed-body-wrapper{position:absolute;left:0;top:37px;overflow:hidden;z-index:3}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__footer-wrapper{margin-top:-1px}.el-table__footer-wrapper td{border-top:1px solid #ebeef5}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td,.el-table__header-wrapper tbody td{background-color:#f5f7fa;color:#646970}.el-table__body-wrapper{overflow:hidden;position:relative}.el-table__body-wrapper.is-scrolling-left~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed-right,.el-table__body-wrapper.is-scrolling-right~.el-table__fixed-right{box-shadow:none}.el-table__body-wrapper .el-table--border.is-scrolling-right~.el-table__fixed-right{border-left:1px solid #ebeef5}.el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:1px solid #ebeef5}.el-table .caret-wrapper{display:inline-flex;flex-direction:column;align-items:center;height:34px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:5px solid transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:#c0c4cc;top:5px}.el-table .sort-caret.descending{border-top-color:#c0c4cc;bottom:7px}.el-table .ascending .sort-caret.ascending{border-bottom-color:#087ce1}.el-table .descending .sort-caret.descending{border-top-color:#087ce1}.el-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td{background:#fafafa}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td{background-color:#e6f2fc}.el-table__body tr.hover-row.current-row>td,.el-table__body tr.hover-row.el-table__row--striped.current-row>td,.el-table__body tr.hover-row.el-table__row--striped>td,.el-table__body tr.hover-row>td{background-color:#f5f7fa}.el-table__body tr.current-row>td{background-color:#e6f2fc}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:1px solid #ebeef5;z-index:10}.el-table__column-filter-trigger{display:inline-block;line-height:34px;cursor:pointer}.el-table__column-filter-trigger i{color:#909399;font-size:12px;transform:scale(.75)}.el-table--enable-row-transition .el-table__body td{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td{background-color:#f5f7fa}.el-table--fluid-height .el-table__fixed,.el-table--fluid-height .el-table__fixed-right{bottom:0;overflow:hidden}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:20px;line-height:20px;height:20px;text-align:center;margin-right:3px}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:1px solid #ebeef5;border-radius:2px;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:2px 0}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:14px}.el-table-filter__list-item:hover{background-color:#e6f2fc;color:#3996e7}.el-table-filter__list-item.is-active{background-color:#087ce1;color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid #ebeef5;padding:8px}.el-table-filter__bottom button{background:transparent;border:none;color:#646970;cursor:pointer;font-size:13px;padding:0 3px}.el-table-filter__bottom button:hover{color:#087ce1}.el-table-filter__bottom button:focus{outline:none}.el-table-filter__bottom button.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:block;margin-right:5px;margin-bottom:8px;margin-left:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover div{background-color:#f2f7fd}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:#646970}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table.is-week-mode .el-date-table__row.current div{background-color:#f2f7fd}.el-date-table td{width:32px;height:30px;padding:4px 0;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.el-date-table td div{height:30px;padding:3px 0;box-sizing:border-box}.el-date-table td span{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;transform:translateX(-50%);border-radius:50%}.el-date-table td.next-month,.el-date-table td.prev-month{color:#c0c4cc}.el-date-table td.today{position:relative}.el-date-table td.today span{color:#087ce1;font-weight:700}.el-date-table td.today.end-date span,.el-date-table td.today.start-date span{color:#fff}.el-date-table td.available:hover{color:#087ce1}.el-date-table td.in-range div{background-color:#f2f7fd}.el-date-table td.in-range div:hover{background-color:#f2f6fc}.el-date-table td.current:not(.disabled) span{color:#fff;background-color:#087ce1}.el-date-table td.end-date div,.el-date-table td.start-date div{color:#fff}.el-date-table td.end-date span,.el-date-table td.start-date span{background-color:#087ce1}.el-date-table td.start-date div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td.disabled div{background-color:#f5f7fa;opacity:1;cursor:not-allowed;color:#c0c4cc}.el-date-table td.selected div{margin-left:5px;margin-right:5px;background-color:#f2f7fd;border-radius:15px}.el-date-table td.selected div:hover{background-color:#f2f6fc}.el-date-table td.selected span{background-color:#087ce1;color:#fff;border-radius:15px}.el-date-table td.week{font-size:80%;color:#646970}.el-date-table th{padding:5px;color:#646970;font-weight:400;border-bottom:1px solid #ebeef5}.el-month-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;box-sizing:border-box}.el-month-table td.today .cell{color:#087ce1;font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-month-table td.disabled .cell:hover{color:#c0c4cc}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:#646970;margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:#087ce1}.el-month-table td.in-range div{background-color:#f2f7fd}.el-month-table td.in-range div:hover{background-color:#f2f6fc}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#fff;background-color:#087ce1}.el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:#087ce1}.el-year-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-year-table .el-icon{color:#303133}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:#087ce1;font-weight:700}.el-year-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-year-table td.disabled .cell:hover{color:#c0c4cc}.el-year-table td .cell{width:48px;height:32px;display:block;line-height:32px;color:#646970;margin:0 auto}.el-year-table td .cell:hover,.el-year-table td.current:not(.disabled) .cell{color:#087ce1}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-left{border-right:1px solid #e4e4e4}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:#303133}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:1px solid #ebeef5}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:#646970}.el-date-picker__header-label.active,.el-date-picker__header-label:hover{color:#087ce1}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.selected:not(.disabled){color:#087ce1;font-weight:700}.time-select-item.disabled{color:#e4e7ed;cursor:not-allowed}.time-select-item:hover{background-color:#f5f7fa;font-weight:700;cursor:pointer}.el-date-editor{position:relative;display:inline-block;text-align:left}.el-date-editor.el-input,.el-date-editor.el-input__inner{width:220px}.el-date-editor--monthrange.el-input,.el-date-editor--monthrange.el-input__inner{width:300px}.el-date-editor--daterange.el-input,.el-date-editor--daterange.el-input__inner,.el-date-editor--timerange.el-input,.el-date-editor--timerange.el-input__inner{width:350px}.el-date-editor--datetimerange.el-input,.el-date-editor--datetimerange.el-input__inner{width:400px}.el-date-editor--dates .el-input__inner{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .el-icon-circle-close{cursor:pointer}.el-date-editor .el-range__icon{font-size:14px;margin-left:-5px;color:#c0c4cc;float:left;line-height:32px}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:none;display:inline-block;height:100%;margin:0;padding:0;width:39%;text-align:center;font-size:14px;color:#646970}.el-date-editor .el-range-input::-webkit-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::-moz-placeholder{color:#c0c4cc}.el-date-editor .el-range-input:-ms-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::-ms-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::placeholder{color:#c0c4cc}.el-date-editor .el-range-separator{display:inline-block;height:100%;padding:0 5px;margin:0;text-align:center;line-height:32px;font-size:14px;width:5%;color:#303133}.el-date-editor .el-range__close-icon{font-size:14px;color:#c0c4cc;width:25px;display:inline-block;float:right;line-height:32px}.el-range-editor.el-input__inner{display:inline-flex;align-items:center;padding:3px 10px}.el-range-editor .el-range-input{line-height:1}.el-range-editor.is-active,.el-range-editor.is-active:hover{border-color:#087ce1}.el-range-editor--medium.el-input__inner{height:36px}.el-range-editor--medium .el-range-separator{line-height:28px;font-size:14px}.el-range-editor--medium .el-range-input{font-size:14px}.el-range-editor--medium .el-range__close-icon,.el-range-editor--medium .el-range__icon{line-height:28px}.el-range-editor--small.el-input__inner{height:32px}.el-range-editor--small .el-range-separator{line-height:24px;font-size:13px}.el-range-editor--small .el-range-input{font-size:13px}.el-range-editor--small .el-range__close-icon,.el-range-editor--small .el-range__icon{line-height:24px}.el-range-editor--mini.el-input__inner{height:28px}.el-range-editor--mini .el-range-separator{line-height:20px;font-size:12px}.el-range-editor--mini .el-range-input{font-size:12px}.el-range-editor--mini .el-range__close-icon,.el-range-editor--mini .el-range__icon{line-height:20px}.el-range-editor.is-disabled{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:#e4e7ed}.el-range-editor.is-disabled input{background-color:#f5f7fa;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled input::-webkit-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::-moz-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input:-ms-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::-ms-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::placeholder{color:#c0c4cc}.el-range-editor.is-disabled .el-range-separator{color:#c0c4cc}.el-picker-panel{color:#646970;border:1px solid #e4e7ed;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);background:#fff;border-radius:4px;line-height:30px;margin:5px 0}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid #e4e4e4;padding:4px;text-align:right;background-color:#fff;position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:#646970;padding-left:12px;text-align:left;outline:none;cursor:pointer}.el-picker-panel__shortcut:hover{color:#087ce1}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:#087ce1}.el-picker-panel__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:none;font-size:12px}.el-picker-panel__btn[disabled]{color:#ccc;cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:#303133;border:0;background:transparent;cursor:pointer;outline:none;margin-top:8px}.el-picker-panel__icon-btn:hover{color:#087ce1}.el-picker-panel__icon-btn.is-disabled{color:#bbb}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid #e4e4e4;box-sizing:border-box;padding-top:6px;background-color:#fff;overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:190px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active){background:#fff;cursor:default}.el-time-spinner__arrow{font-size:12px;color:#909399;position:absolute;left:0;width:100%;z-index:1;text-align:center;height:30px;line-height:30px;cursor:pointer}.el-time-spinner__arrow:hover{color:#087ce1}.el-time-spinner__arrow.el-icon-arrow-up{top:10px}.el-time-spinner__arrow.el-icon-arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner,.el-time-spinner__list{padding:0;text-align:center}.el-time-spinner__list{margin:0;list-style:none}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:#646970}.el-time-spinner__item:hover:not(.disabled):not(.active){background:#f5f7fa;cursor:pointer}.el-time-spinner__item.active:not(.disabled){color:#303133;font-weight:700}.el-time-spinner__item.disabled{color:#c0c4cc;cursor:not-allowed}.el-time-panel{margin:5px 0;border:1px solid #e4e7ed;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:2px;position:absolute;width:180px;left:0;z-index:1000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:content-box}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:"";top:50%;position:absolute;margin-top:-15px;height:32px;z-index:-1;left:0;right:0;box-sizing:border-box;padding-top:6px;text-align:left;border-top:1px solid #e4e7ed;border-bottom:1px solid #e4e7ed}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{padding-left:50%;margin-right:12%;margin-left:12%}.el-time-panel__content.has-seconds:after{left:66.66667%}.el-time-panel__content.has-seconds:before{padding-left:33.33333%}.el-time-panel__footer{border-top:1px solid #e4e4e4;padding:4px;height:36px;line-height:25px;text-align:right;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:none;font-size:12px;color:#303133}.el-time-panel__btn.confirm{font-weight:800;color:#087ce1}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px}.el-time-range-picker__cell{box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid #e4e7ed}.el-popover{position:absolute;background:#fff;min-width:150px;border-radius:4px;border:1px solid #ebeef5;padding:12px;z-index:2000;color:#646970;line-height:1.4;text-align:justify;font-size:14px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);word-break:break-all}.el-popover--plain{padding:18px 20px}.el-popover__title{color:#303133;font-size:16px;line-height:1;margin-bottom:12px}.el-popover:focus,.el-popover:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.v-modal-enter{-webkit-animation:v-modal-in .2s ease;animation:v-modal-in .2s ease}.v-modal-leave{-webkit-animation:v-modal-out .2s ease forwards;animation:v-modal-out .2s ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.el-popup-parent--hidden{overflow:hidden}.el-message-box{display:inline-block;width:420px;padding-bottom:10px;vertical-align:middle;background-color:#fff;border-radius:4px;border:1px solid #ebeef5;font-size:18px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-message-box__wrapper{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center}.el-message-box__wrapper:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box__header{position:relative;padding:15px;padding-bottom:10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:18px;line-height:1;color:#303133}.el-message-box__headerbtn{position:absolute;top:15px;right:15px;padding:0;border:none;outline:none;background:transparent;font-size:16px;cursor:pointer}.el-message-box__headerbtn .el-message-box__close{color:#909399}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:#087ce1}.el-message-box__content{padding:10px 15px;color:#646970;font-size:14px}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__input input.invalid,.el-message-box__input input.invalid:focus{border-color:#f56c6c}.el-message-box__status{position:absolute;top:50%;transform:translateY(-50%);font-size:24px!important}.el-message-box__status:before{padding-left:1px}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px}.el-message-box__status.el-icon-success{color:#67c23a}.el-message-box__status.el-icon-info{color:#909399}.el-message-box__status.el-icon-warning{color:#e6a23c}.el-message-box__status.el-icon-error{color:#f56c6c}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:#f56c6c;font-size:12px;min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;text-align:right}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{flex-direction:row-reverse}.el-message-box--center{padding-bottom:30px}.el-message-box--center .el-message-box__header{padding-top:30px}.el-message-box--center .el-message-box__title{position:relative;display:flex;align-items:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__content{text-align:center}.el-message-box--center .el-message-box__content{padding-left:27px;padding-right:27px}.msgbox-fade-enter-active{-webkit-animation:msgbox-fade-in .3s;animation:msgbox-fade-in .3s}.msgbox-fade-leave-active{-webkit-animation:msgbox-fade-out .3s;animation:msgbox-fade-out .3s}@-webkit-keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes msgbox-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes msgbox-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{display:table;content:""}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:#c0c4cc}.el-breadcrumb__separator[class*=icon]{margin:0 6px;font-weight:400}.el-breadcrumb__item{float:left}.el-breadcrumb__inner{color:#646970}.el-breadcrumb__inner.is-link,.el-breadcrumb__inner a{font-weight:700;text-decoration:none;transition:color .2s cubic-bezier(.645,.045,.355,1);color:#303133}.el-breadcrumb__inner.is-link:hover,.el-breadcrumb__inner a:hover{color:#087ce1;cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover{font-weight:400;color:#646970;cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px 0}.el-form--inline .el-form-item{display:inline-block;margin-right:10px;vertical-align:top}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item:after,.el-form-item:before{display:table;content:""}.el-form-item:after{clear:both}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label{line-height:36px}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini.el-form-item{margin-bottom:18px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label-wrap{float:left}.el-form-item__label-wrap .el-form-item__label{display:inline-block;float:none}.el-form-item__label{text-align:right;vertical-align:middle;float:left;font-size:14px;color:#646970;line-height:40px;padding:0 12px 0 0;box-sizing:border-box}.el-form-item__content{line-height:40px;position:relative;font-size:14px}.el-form-item__content:after,.el-form-item__content:before{display:table;content:""}.el-form-item__content:after{clear:both}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:#f56c6c;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{content:"*";color:#f56c6c;margin-right:4px}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{border-color:#f56c6c}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#f56c6c}.el-form-item--feedback .el-input__validateIcon{display:inline-block}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:#087ce1;z-index:1;transition:transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.el-tabs__new-tab{float:right;border:1px solid #d3dce6;height:18px;width:18px;line-height:18px;margin:12px 0 9px 10px;border-radius:3px;text-align:center;font-size:12px;color:#d3dce6;cursor:pointer;transition:all .15s}.el-tabs__new-tab .el-icon-plus{transform:scale(.8)}.el-tabs__new-tab:hover{color:#087ce1}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:#e4e7ed;z-index:1}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:#909399}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;position:relative;transition:transform .3s;float:left;z-index:2}.el-tabs__nav.is-stretch{min-width:100%;display:flex}.el-tabs__nav.is-stretch>*{flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:40px;box-sizing:border-box;line-height:40px;display:inline-block;list-style:none;font-size:14px;font-weight:500;color:#303133;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:none}.el-tabs__item:focus.is-active.is-focus:not(:active){box-shadow:inset 0 0 2px 2px #087ce1;border-radius:3px}.el-tabs__item .el-icon-close{border-radius:50%;text-align:center;transition:all .3s cubic-bezier(.645,.045,.355,1);margin-left:5px}.el-tabs__item .el-icon-close:before{transform:scale(.9);display:inline-block}.el-tabs__item .el-icon-close:hover{background-color:#c0c4cc;color:#fff}.el-tabs__item.is-active{color:#087ce1}.el-tabs__item:hover{color:#087ce1;cursor:pointer}.el-tabs__item.is-disabled{color:#c0c4cc;cursor:default}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid #e4e7ed}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid #e4e7ed;border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .el-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid #e4e7ed;transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:#fff}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close{width:14px}.el-tabs--border-card{background:#fff;border:1px solid #dcdfe6;box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:#f5f7fa;border-bottom:1px solid #e4e7ed;margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{transition:all .3s cubic-bezier(.645,.045,.355,1);border:1px solid transparent;margin-top:-1px;color:#909399}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:#087ce1;background-color:#fff;border-right-color:#dcdfe6;border-left-color:#dcdfe6}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:#087ce1}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:#c0c4cc}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid #dcdfe6}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left:after{left:auto;right:0}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid #e4e7ed;border-bottom:none;border-top:1px solid #e4e7ed;text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid #e4e7ed;border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid #e4e7ed;border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid #e4e7ed;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid #dfe4ed}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid #e4e7ed}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid #e4e7ed;border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid #e4e7ed;border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid #e4e7ed;border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid #dfe4ed}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{-webkit-animation:slideInRight-enter .3s;animation:slideInRight-enter .3s}.slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave .3s;animation:slideInRight-leave .3s}.slideInLeft-enter{-webkit-animation:slideInLeft-enter .3s;animation:slideInLeft-enter .3s}.slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave .3s;animation:slideInLeft-leave .3s}@-webkit-keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@-webkit-keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}to{transform-origin:0 0;transform:translateX(100%);opacity:0}}@keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}to{transform-origin:0 0;transform:translateX(100%);opacity:0}}@-webkit-keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(-100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(-100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@-webkit-keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}to{transform-origin:0 0;transform:translateX(-100%);opacity:0}}@keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}to{transform-origin:0 0;transform:translateX(-100%);opacity:0}}.el-tree{position:relative;cursor:default;background:#fff;color:#646970}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#909399;font-size:14px}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:#087ce1}.el-tree-node{white-space:nowrap;outline:none}.el-tree-node:focus>.el-tree-node__content{background-color:#f5f7fa}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:#087ce1;color:#fff}.el-tree-node__content{display:flex;align-items:center;height:26px;cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:#f5f7fa}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:#c0c4cc;font-size:12px;transform:rotate(0deg);transition:transform .3s ease-in-out}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.el-tree-node__label{font-size:14px}.el-tree-node__loading-icon{margin-right:8px;font-size:14px;color:#c0c4cc}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:#ebf5fd}.el-alert{width:100%;padding:8px 16px;margin:0;box-sizing:border-box;border-radius:4px;position:relative;background-color:#fff;overflow:hidden;opacity:1;display:flex;align-items:center;transition:opacity .2s}.el-alert.is-light .el-alert__closebtn{color:#c0c4cc}.el-alert.is-dark .el-alert__closebtn,.el-alert.is-dark .el-alert__description{color:#fff}.el-alert.is-center{justify-content:center}.el-alert--success.is-light{background-color:#f0f9eb;color:#67c23a}.el-alert--success.is-light .el-alert__description{color:#67c23a}.el-alert--success.is-dark{background-color:#67c23a;color:#fff}.el-alert--info.is-light{background-color:#f4f4f5;color:#909399}.el-alert--info.is-dark{background-color:#909399;color:#fff}.el-alert--info .el-alert__description{color:#909399}.el-alert--warning.is-light{background-color:#fdf6ec;color:#e6a23c}.el-alert--warning.is-light .el-alert__description{color:#e6a23c}.el-alert--warning.is-dark{background-color:#e6a23c;color:#fff}.el-alert--error.is-light{background-color:#fef0f0;color:#f56c6c}.el-alert--error.is-light .el-alert__description{color:#f56c6c}.el-alert--error.is-dark{background-color:#f56c6c;color:#fff}.el-alert__content{display:table-cell;padding:0 8px}.el-alert__icon{font-size:16px;width:16px}.el-alert__icon.is-big{font-size:28px;width:28px}.el-alert__title{font-size:13px;line-height:18px}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:12px;margin:5px 0 0 0}.el-alert__closebtn{font-size:12px;opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.el-alert__closebtn.is-customed{font-style:normal;font-size:13px;top:9px}.el-alert-fade-enter,.el-alert-fade-leave-active{opacity:0}.el-notification{display:flex;width:330px;padding:14px 26px 14px 13px;border-radius:8px;box-sizing:border-box;border:1px solid #ebeef5;position:fixed;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s;overflow:hidden}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:13px;margin-right:8px}.el-notification__title{font-weight:700;font-size:16px;color:#303133;margin:0}.el-notification__content{font-size:14px;line-height:21px;margin:6px 0 0 0;color:#646970;text-align:justify}.el-notification__content p{margin:0}.el-notification__icon{height:24px;width:24px;font-size:24px}.el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:#909399;font-size:16px}.el-notification__closeBtn:hover{color:#646970}.el-notification .el-icon-success{color:#67c23a}.el-notification .el-icon-error{color:#f56c6c}.el-notification .el-icon-info{color:#909399}.el-notification .el-icon-warning{color:#e6a23c}.el-notification-fade-enter.right{right:0;transform:translateX(100%)}.el-notification-fade-enter.left{left:0;transform:translateX(-100%)}.el-notification-fade-leave-active{opacity:0}.el-input-number{position:relative;display:inline-block;width:180px;line-height:38px}.el-input-number .el-input{display:block}.el-input-number .el-input__inner{-webkit-appearance:none;padding-left:50px;padding-right:50px;text-align:center}.el-input-number__decrease,.el-input-number__increase{position:absolute;z-index:1;top:1px;width:40px;height:auto;text-align:center;background:#f5f7fa;color:#646970;cursor:pointer;font-size:13px}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:#087ce1}.el-input-number__decrease:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),.el-input-number__increase:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled){border-color:#087ce1}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 4px 4px 0;border-left:1px solid #dcdfe6}.el-input-number__decrease{left:1px;border-radius:4px 0 0 4px;border-right:1px solid #dcdfe6}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:#e4e7ed;color:#e4e7ed}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:#e4e7ed;cursor:not-allowed}.el-input-number--medium{width:200px;line-height:34px}.el-input-number--medium .el-input-number__decrease,.el-input-number--medium .el-input-number__increase{width:36px;font-size:14px}.el-input-number--medium .el-input__inner{padding-left:43px;padding-right:43px}.el-input-number--small{width:130px;line-height:30px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:32px;font-size:13px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number--small .el-input__inner{padding-left:39px;padding-right:39px}.el-input-number--mini{width:130px;line-height:26px}.el-input-number--mini .el-input-number__decrease,.el-input-number--mini .el-input-number__increase{width:28px;font-size:12px}.el-input-number--mini .el-input-number__decrease [class*=el-icon],.el-input-number--mini .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number--mini .el-input__inner{padding-left:35px;padding-right:35px}.el-input-number.is-without-controls .el-input__inner{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__inner{padding-left:15px;padding-right:50px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{height:auto;line-height:19px}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-radius:0 4px 0 0;border-bottom:1px solid #dcdfe6}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;bottom:1px;top:auto;left:auto;border-right:none;border-left:1px solid #dcdfe6;border-radius:0 0 4px 0}.el-input-number.is-controls-right[class*=medium] [class*=decrease],.el-input-number.is-controls-right[class*=medium] [class*=increase]{line-height:17px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{line-height:15px}.el-input-number.is-controls-right[class*=mini] [class*=decrease],.el-input-number.is-controls-right[class*=mini] [class*=increase]{line-height:13px}.el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing){outline-width:0}.el-tooltip__popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2;min-width:10px;word-wrap:break-word}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow:after{content:" ";border-width:5px}.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-tooltip__popper[x-placement^=top] .popper__arrow{bottom:-6px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-5px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{top:-6px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-5px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=right]{margin-left:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{left:-6px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=right] .popper__arrow:after{bottom:-5px;left:1px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=left]{margin-right:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{right:-6px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-5px;margin-left:-5px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper.is-dark{background:#303133;color:#fff}.el-tooltip__popper.is-light{background:#fff;border:1px solid #303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow:after{border-top-color:#fff}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow:after{border-bottom-color:#fff}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:#303133}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow:after{border-left-color:#fff}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:#303133}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow:after{border-right-color:#fff}.el-slider:after,.el-slider:before{display:table;content:""}.el-slider:after{clear:both}.el-slider__runway{width:100%;height:6px;margin:16px 0;background-color:#e4e7ed;border-radius:3px;position:relative;cursor:pointer;vertical-align:middle}.el-slider__runway.show-input{margin-right:160px;width:auto}.el-slider__runway.disabled{cursor:default}.el-slider__runway.disabled .el-slider__bar{background-color:#c0c4cc}.el-slider__runway.disabled .el-slider__button{border-color:#c0c4cc}.el-slider__runway.disabled .el-slider__button-wrapper.dragging,.el-slider__runway.disabled .el-slider__button-wrapper.hover,.el-slider__runway.disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{transform:scale(1)}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{cursor:not-allowed}.el-slider__input{float:right;margin-top:3px;width:130px}.el-slider__input.el-input-number--mini{margin-top:5px}.el-slider__input.el-input-number--medium{margin-top:0}.el-slider__input.el-input-number--large{margin-top:-2px}.el-slider__bar{height:6px;background-color:#087ce1;border-top-left-radius:3px;border-bottom-left-radius:3px;position:absolute}.el-slider__button-wrapper{height:36px;width:36px;position:absolute;z-index:1001;top:-15px;transform:translateX(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:normal}.el-slider__button-wrapper:after{content:"";height:100%}.el-slider__button-wrapper .el-tooltip,.el-slider__button-wrapper:after{display:inline-block;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button-wrapper.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__button{width:16px;height:16px;border:2px solid #087ce1;background-color:#fff;border-radius:50%;transition:.2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__stop{position:absolute;height:6px;width:6px;border-radius:100%;background-color:#fff;transform:translateX(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;transform:translateX(-50%);font-size:14px;color:#909399;margin-top:15px}.el-slider.is-vertical{position:relative}.el-slider.is-vertical .el-slider__runway{width:6px;height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:6px;height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:-15px;transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical.el-slider--with-input{padding-bottom:58px}.el-slider.is-vertical.el-slider--with-input .el-slider__input{overflow:visible;float:none;position:absolute;bottom:22px;width:36px;margin-top:15px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input__inner{text-align:center;padding-left:5px;padding-right:5px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{top:32px;margin-top:-1px;border:1px solid #dcdfe6;line-height:20px;box-sizing:border-box;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease{width:18px;right:18px;border-bottom-left-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{width:19px;border-bottom-right-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase~.el-input .el-input__inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__increase{border-color:#c0c4cc}.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__increase{border-color:#087ce1}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;transform:translateY(50%)}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:hsla(0,0%,100%,.9);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:#087ce1;margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:42px;width:42px;-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#087ce1;stroke-linecap:round}.el-loading-spinner i{color:#087ce1}.el-loading-fade-enter,.el-loading-fade-leave-active{opacity:0}@-webkit-keyframes loading-rotate{to{transform:rotate(1turn)}}@keyframes loading-rotate{to{transform:rotate(1turn)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-row{position:relative;box-sizing:border-box}.el-row:after,.el-row:before{display:table;content:""}.el-row:after{clear:both}.el-row--flex{display:flex}.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-justify-center{justify-content:center}.el-row--flex.is-justify-end{justify-content:flex-end}.el-row--flex.is-justify-space-between{justify-content:space-between}.el-row--flex.is-justify-space-around{justify-content:space-around}.el-row--flex.is-align-middle{align-items:center}.el-row--flex.is-align-bottom{align-items:flex-end}[class*=el-col-]{float:left;box-sizing:border-box}.el-col-0{display:none;width:0}.el-col-offset-0{margin-left:0}.el-col-pull-0{position:relative;right:0}.el-col-push-0{position:relative;left:0}.el-col-1{width:4.1666666667%}.el-col-offset-1{margin-left:4.1666666667%}.el-col-pull-1{position:relative;right:4.1666666667%}.el-col-push-1{position:relative;left:4.1666666667%}.el-col-2{width:8.3333333333%}.el-col-offset-2{margin-left:8.3333333333%}.el-col-pull-2{position:relative;right:8.3333333333%}.el-col-push-2{position:relative;left:8.3333333333%}.el-col-3{width:12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{position:relative;right:12.5%}.el-col-push-3{position:relative;left:12.5%}.el-col-4{width:16.6666666667%}.el-col-offset-4{margin-left:16.6666666667%}.el-col-pull-4{position:relative;right:16.6666666667%}.el-col-push-4{position:relative;left:16.6666666667%}.el-col-5{width:20.8333333333%}.el-col-offset-5{margin-left:20.8333333333%}.el-col-pull-5{position:relative;right:20.8333333333%}.el-col-push-5{position:relative;left:20.8333333333%}.el-col-6{width:25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{position:relative;right:25%}.el-col-push-6{position:relative;left:25%}.el-col-7{width:29.1666666667%}.el-col-offset-7{margin-left:29.1666666667%}.el-col-pull-7{position:relative;right:29.1666666667%}.el-col-push-7{position:relative;left:29.1666666667%}.el-col-8{width:33.3333333333%}.el-col-offset-8{margin-left:33.3333333333%}.el-col-pull-8{position:relative;right:33.3333333333%}.el-col-push-8{position:relative;left:33.3333333333%}.el-col-9{width:37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{position:relative;right:37.5%}.el-col-push-9{position:relative;left:37.5%}.el-col-10{width:41.6666666667%}.el-col-offset-10{margin-left:41.6666666667%}.el-col-pull-10{position:relative;right:41.6666666667%}.el-col-push-10{position:relative;left:41.6666666667%}.el-col-11{width:45.8333333333%}.el-col-offset-11{margin-left:45.8333333333%}.el-col-pull-11{position:relative;right:45.8333333333%}.el-col-push-11{position:relative;left:45.8333333333%}.el-col-12{width:50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{position:relative;left:50%}.el-col-13{width:54.1666666667%}.el-col-offset-13{margin-left:54.1666666667%}.el-col-pull-13{position:relative;right:54.1666666667%}.el-col-push-13{position:relative;left:54.1666666667%}.el-col-14{width:58.3333333333%}.el-col-offset-14{margin-left:58.3333333333%}.el-col-pull-14{position:relative;right:58.3333333333%}.el-col-push-14{position:relative;left:58.3333333333%}.el-col-15{width:62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{position:relative;right:62.5%}.el-col-push-15{position:relative;left:62.5%}.el-col-16{width:66.6666666667%}.el-col-offset-16{margin-left:66.6666666667%}.el-col-pull-16{position:relative;right:66.6666666667%}.el-col-push-16{position:relative;left:66.6666666667%}.el-col-17{width:70.8333333333%}.el-col-offset-17{margin-left:70.8333333333%}.el-col-pull-17{position:relative;right:70.8333333333%}.el-col-push-17{position:relative;left:70.8333333333%}.el-col-18{width:75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{position:relative;right:75%}.el-col-push-18{position:relative;left:75%}.el-col-19{width:79.1666666667%}.el-col-offset-19{margin-left:79.1666666667%}.el-col-pull-19{position:relative;right:79.1666666667%}.el-col-push-19{position:relative;left:79.1666666667%}.el-col-20{width:83.3333333333%}.el-col-offset-20{margin-left:83.3333333333%}.el-col-pull-20{position:relative;right:83.3333333333%}.el-col-push-20{position:relative;left:83.3333333333%}.el-col-21{width:87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{position:relative;right:87.5%}.el-col-push-21{position:relative;left:87.5%}.el-col-22{width:91.6666666667%}.el-col-offset-22{margin-left:91.6666666667%}.el-col-pull-22{position:relative;right:91.6666666667%}.el-col-push-22{position:relative;left:91.6666666667%}.el-col-23{width:95.8333333333%}.el-col-offset-23{margin-left:95.8333333333%}.el-col-pull-23{position:relative;right:95.8333333333%}.el-col-push-23{position:relative;left:95.8333333333%}.el-col-24{width:100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{position:relative;right:100%}.el-col-push-24{position:relative;left:100%}@media only screen and (max-width:767px){.el-col-xs-0{display:none;width:0}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{width:4.1666666667%}.el-col-xs-offset-1{margin-left:4.1666666667%}.el-col-xs-pull-1{position:relative;right:4.1666666667%}.el-col-xs-push-1{position:relative;left:4.1666666667%}.el-col-xs-2{width:8.3333333333%}.el-col-xs-offset-2{margin-left:8.3333333333%}.el-col-xs-pull-2{position:relative;right:8.3333333333%}.el-col-xs-push-2{position:relative;left:8.3333333333%}.el-col-xs-3{width:12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{width:16.6666666667%}.el-col-xs-offset-4{margin-left:16.6666666667%}.el-col-xs-pull-4{position:relative;right:16.6666666667%}.el-col-xs-push-4{position:relative;left:16.6666666667%}.el-col-xs-5{width:20.8333333333%}.el-col-xs-offset-5{margin-left:20.8333333333%}.el-col-xs-pull-5{position:relative;right:20.8333333333%}.el-col-xs-push-5{position:relative;left:20.8333333333%}.el-col-xs-6{width:25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{width:29.1666666667%}.el-col-xs-offset-7{margin-left:29.1666666667%}.el-col-xs-pull-7{position:relative;right:29.1666666667%}.el-col-xs-push-7{position:relative;left:29.1666666667%}.el-col-xs-8{width:33.3333333333%}.el-col-xs-offset-8{margin-left:33.3333333333%}.el-col-xs-pull-8{position:relative;right:33.3333333333%}.el-col-xs-push-8{position:relative;left:33.3333333333%}.el-col-xs-9{width:37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{width:41.6666666667%}.el-col-xs-offset-10{margin-left:41.6666666667%}.el-col-xs-pull-10{position:relative;right:41.6666666667%}.el-col-xs-push-10{position:relative;left:41.6666666667%}.el-col-xs-11{width:45.8333333333%}.el-col-xs-offset-11{margin-left:45.8333333333%}.el-col-xs-pull-11{position:relative;right:45.8333333333%}.el-col-xs-push-11{position:relative;left:45.8333333333%}.el-col-xs-12{width:50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{width:54.1666666667%}.el-col-xs-offset-13{margin-left:54.1666666667%}.el-col-xs-pull-13{position:relative;right:54.1666666667%}.el-col-xs-push-13{position:relative;left:54.1666666667%}.el-col-xs-14{width:58.3333333333%}.el-col-xs-offset-14{margin-left:58.3333333333%}.el-col-xs-pull-14{position:relative;right:58.3333333333%}.el-col-xs-push-14{position:relative;left:58.3333333333%}.el-col-xs-15{width:62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{width:66.6666666667%}.el-col-xs-offset-16{margin-left:66.6666666667%}.el-col-xs-pull-16{position:relative;right:66.6666666667%}.el-col-xs-push-16{position:relative;left:66.6666666667%}.el-col-xs-17{width:70.8333333333%}.el-col-xs-offset-17{margin-left:70.8333333333%}.el-col-xs-pull-17{position:relative;right:70.8333333333%}.el-col-xs-push-17{position:relative;left:70.8333333333%}.el-col-xs-18{width:75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{width:79.1666666667%}.el-col-xs-offset-19{margin-left:79.1666666667%}.el-col-xs-pull-19{position:relative;right:79.1666666667%}.el-col-xs-push-19{position:relative;left:79.1666666667%}.el-col-xs-20{width:83.3333333333%}.el-col-xs-offset-20{margin-left:83.3333333333%}.el-col-xs-pull-20{position:relative;right:83.3333333333%}.el-col-xs-push-20{position:relative;left:83.3333333333%}.el-col-xs-21{width:87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{width:91.6666666667%}.el-col-xs-offset-22{margin-left:91.6666666667%}.el-col-xs-pull-22{position:relative;right:91.6666666667%}.el-col-xs-push-22{position:relative;left:91.6666666667%}.el-col-xs-23{width:95.8333333333%}.el-col-xs-offset-23{margin-left:95.8333333333%}.el-col-xs-pull-23{position:relative;right:95.8333333333%}.el-col-xs-push-23{position:relative;left:95.8333333333%}.el-col-xs-24{width:100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;width:0}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{width:4.1666666667%}.el-col-sm-offset-1{margin-left:4.1666666667%}.el-col-sm-pull-1{position:relative;right:4.1666666667%}.el-col-sm-push-1{position:relative;left:4.1666666667%}.el-col-sm-2{width:8.3333333333%}.el-col-sm-offset-2{margin-left:8.3333333333%}.el-col-sm-pull-2{position:relative;right:8.3333333333%}.el-col-sm-push-2{position:relative;left:8.3333333333%}.el-col-sm-3{width:12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{width:16.6666666667%}.el-col-sm-offset-4{margin-left:16.6666666667%}.el-col-sm-pull-4{position:relative;right:16.6666666667%}.el-col-sm-push-4{position:relative;left:16.6666666667%}.el-col-sm-5{width:20.8333333333%}.el-col-sm-offset-5{margin-left:20.8333333333%}.el-col-sm-pull-5{position:relative;right:20.8333333333%}.el-col-sm-push-5{position:relative;left:20.8333333333%}.el-col-sm-6{width:25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{width:29.1666666667%}.el-col-sm-offset-7{margin-left:29.1666666667%}.el-col-sm-pull-7{position:relative;right:29.1666666667%}.el-col-sm-push-7{position:relative;left:29.1666666667%}.el-col-sm-8{width:33.3333333333%}.el-col-sm-offset-8{margin-left:33.3333333333%}.el-col-sm-pull-8{position:relative;right:33.3333333333%}.el-col-sm-push-8{position:relative;left:33.3333333333%}.el-col-sm-9{width:37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{width:41.6666666667%}.el-col-sm-offset-10{margin-left:41.6666666667%}.el-col-sm-pull-10{position:relative;right:41.6666666667%}.el-col-sm-push-10{position:relative;left:41.6666666667%}.el-col-sm-11{width:45.8333333333%}.el-col-sm-offset-11{margin-left:45.8333333333%}.el-col-sm-pull-11{position:relative;right:45.8333333333%}.el-col-sm-push-11{position:relative;left:45.8333333333%}.el-col-sm-12{width:50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{width:54.1666666667%}.el-col-sm-offset-13{margin-left:54.1666666667%}.el-col-sm-pull-13{position:relative;right:54.1666666667%}.el-col-sm-push-13{position:relative;left:54.1666666667%}.el-col-sm-14{width:58.3333333333%}.el-col-sm-offset-14{margin-left:58.3333333333%}.el-col-sm-pull-14{position:relative;right:58.3333333333%}.el-col-sm-push-14{position:relative;left:58.3333333333%}.el-col-sm-15{width:62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{width:66.6666666667%}.el-col-sm-offset-16{margin-left:66.6666666667%}.el-col-sm-pull-16{position:relative;right:66.6666666667%}.el-col-sm-push-16{position:relative;left:66.6666666667%}.el-col-sm-17{width:70.8333333333%}.el-col-sm-offset-17{margin-left:70.8333333333%}.el-col-sm-pull-17{position:relative;right:70.8333333333%}.el-col-sm-push-17{position:relative;left:70.8333333333%}.el-col-sm-18{width:75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{width:79.1666666667%}.el-col-sm-offset-19{margin-left:79.1666666667%}.el-col-sm-pull-19{position:relative;right:79.1666666667%}.el-col-sm-push-19{position:relative;left:79.1666666667%}.el-col-sm-20{width:83.3333333333%}.el-col-sm-offset-20{margin-left:83.3333333333%}.el-col-sm-pull-20{position:relative;right:83.3333333333%}.el-col-sm-push-20{position:relative;left:83.3333333333%}.el-col-sm-21{width:87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{width:91.6666666667%}.el-col-sm-offset-22{margin-left:91.6666666667%}.el-col-sm-pull-22{position:relative;right:91.6666666667%}.el-col-sm-push-22{position:relative;left:91.6666666667%}.el-col-sm-23{width:95.8333333333%}.el-col-sm-offset-23{margin-left:95.8333333333%}.el-col-sm-pull-23{position:relative;right:95.8333333333%}.el-col-sm-push-23{position:relative;left:95.8333333333%}.el-col-sm-24{width:100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0{display:none;width:0}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{width:4.1666666667%}.el-col-md-offset-1{margin-left:4.1666666667%}.el-col-md-pull-1{position:relative;right:4.1666666667%}.el-col-md-push-1{position:relative;left:4.1666666667%}.el-col-md-2{width:8.3333333333%}.el-col-md-offset-2{margin-left:8.3333333333%}.el-col-md-pull-2{position:relative;right:8.3333333333%}.el-col-md-push-2{position:relative;left:8.3333333333%}.el-col-md-3{width:12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{width:16.6666666667%}.el-col-md-offset-4{margin-left:16.6666666667%}.el-col-md-pull-4{position:relative;right:16.6666666667%}.el-col-md-push-4{position:relative;left:16.6666666667%}.el-col-md-5{width:20.8333333333%}.el-col-md-offset-5{margin-left:20.8333333333%}.el-col-md-pull-5{position:relative;right:20.8333333333%}.el-col-md-push-5{position:relative;left:20.8333333333%}.el-col-md-6{width:25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{width:29.1666666667%}.el-col-md-offset-7{margin-left:29.1666666667%}.el-col-md-pull-7{position:relative;right:29.1666666667%}.el-col-md-push-7{position:relative;left:29.1666666667%}.el-col-md-8{width:33.3333333333%}.el-col-md-offset-8{margin-left:33.3333333333%}.el-col-md-pull-8{position:relative;right:33.3333333333%}.el-col-md-push-8{position:relative;left:33.3333333333%}.el-col-md-9{width:37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{width:41.6666666667%}.el-col-md-offset-10{margin-left:41.6666666667%}.el-col-md-pull-10{position:relative;right:41.6666666667%}.el-col-md-push-10{position:relative;left:41.6666666667%}.el-col-md-11{width:45.8333333333%}.el-col-md-offset-11{margin-left:45.8333333333%}.el-col-md-pull-11{position:relative;right:45.8333333333%}.el-col-md-push-11{position:relative;left:45.8333333333%}.el-col-md-12{width:50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{width:54.1666666667%}.el-col-md-offset-13{margin-left:54.1666666667%}.el-col-md-pull-13{position:relative;right:54.1666666667%}.el-col-md-push-13{position:relative;left:54.1666666667%}.el-col-md-14{width:58.3333333333%}.el-col-md-offset-14{margin-left:58.3333333333%}.el-col-md-pull-14{position:relative;right:58.3333333333%}.el-col-md-push-14{position:relative;left:58.3333333333%}.el-col-md-15{width:62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{width:66.6666666667%}.el-col-md-offset-16{margin-left:66.6666666667%}.el-col-md-pull-16{position:relative;right:66.6666666667%}.el-col-md-push-16{position:relative;left:66.6666666667%}.el-col-md-17{width:70.8333333333%}.el-col-md-offset-17{margin-left:70.8333333333%}.el-col-md-pull-17{position:relative;right:70.8333333333%}.el-col-md-push-17{position:relative;left:70.8333333333%}.el-col-md-18{width:75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{width:79.1666666667%}.el-col-md-offset-19{margin-left:79.1666666667%}.el-col-md-pull-19{position:relative;right:79.1666666667%}.el-col-md-push-19{position:relative;left:79.1666666667%}.el-col-md-20{width:83.3333333333%}.el-col-md-offset-20{margin-left:83.3333333333%}.el-col-md-pull-20{position:relative;right:83.3333333333%}.el-col-md-push-20{position:relative;left:83.3333333333%}.el-col-md-21{width:87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{width:91.6666666667%}.el-col-md-offset-22{margin-left:91.6666666667%}.el-col-md-pull-22{position:relative;right:91.6666666667%}.el-col-md-push-22{position:relative;left:91.6666666667%}.el-col-md-23{width:95.8333333333%}.el-col-md-offset-23{margin-left:95.8333333333%}.el-col-md-pull-23{position:relative;right:95.8333333333%}.el-col-md-push-23{position:relative;left:95.8333333333%}.el-col-md-24{width:100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;width:0}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{width:4.1666666667%}.el-col-lg-offset-1{margin-left:4.1666666667%}.el-col-lg-pull-1{position:relative;right:4.1666666667%}.el-col-lg-push-1{position:relative;left:4.1666666667%}.el-col-lg-2{width:8.3333333333%}.el-col-lg-offset-2{margin-left:8.3333333333%}.el-col-lg-pull-2{position:relative;right:8.3333333333%}.el-col-lg-push-2{position:relative;left:8.3333333333%}.el-col-lg-3{width:12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{width:16.6666666667%}.el-col-lg-offset-4{margin-left:16.6666666667%}.el-col-lg-pull-4{position:relative;right:16.6666666667%}.el-col-lg-push-4{position:relative;left:16.6666666667%}.el-col-lg-5{width:20.8333333333%}.el-col-lg-offset-5{margin-left:20.8333333333%}.el-col-lg-pull-5{position:relative;right:20.8333333333%}.el-col-lg-push-5{position:relative;left:20.8333333333%}.el-col-lg-6{width:25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{width:29.1666666667%}.el-col-lg-offset-7{margin-left:29.1666666667%}.el-col-lg-pull-7{position:relative;right:29.1666666667%}.el-col-lg-push-7{position:relative;left:29.1666666667%}.el-col-lg-8{width:33.3333333333%}.el-col-lg-offset-8{margin-left:33.3333333333%}.el-col-lg-pull-8{position:relative;right:33.3333333333%}.el-col-lg-push-8{position:relative;left:33.3333333333%}.el-col-lg-9{width:37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{width:41.6666666667%}.el-col-lg-offset-10{margin-left:41.6666666667%}.el-col-lg-pull-10{position:relative;right:41.6666666667%}.el-col-lg-push-10{position:relative;left:41.6666666667%}.el-col-lg-11{width:45.8333333333%}.el-col-lg-offset-11{margin-left:45.8333333333%}.el-col-lg-pull-11{position:relative;right:45.8333333333%}.el-col-lg-push-11{position:relative;left:45.8333333333%}.el-col-lg-12{width:50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{width:54.1666666667%}.el-col-lg-offset-13{margin-left:54.1666666667%}.el-col-lg-pull-13{position:relative;right:54.1666666667%}.el-col-lg-push-13{position:relative;left:54.1666666667%}.el-col-lg-14{width:58.3333333333%}.el-col-lg-offset-14{margin-left:58.3333333333%}.el-col-lg-pull-14{position:relative;right:58.3333333333%}.el-col-lg-push-14{position:relative;left:58.3333333333%}.el-col-lg-15{width:62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{width:66.6666666667%}.el-col-lg-offset-16{margin-left:66.6666666667%}.el-col-lg-pull-16{position:relative;right:66.6666666667%}.el-col-lg-push-16{position:relative;left:66.6666666667%}.el-col-lg-17{width:70.8333333333%}.el-col-lg-offset-17{margin-left:70.8333333333%}.el-col-lg-pull-17{position:relative;right:70.8333333333%}.el-col-lg-push-17{position:relative;left:70.8333333333%}.el-col-lg-18{width:75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{width:79.1666666667%}.el-col-lg-offset-19{margin-left:79.1666666667%}.el-col-lg-pull-19{position:relative;right:79.1666666667%}.el-col-lg-push-19{position:relative;left:79.1666666667%}.el-col-lg-20{width:83.3333333333%}.el-col-lg-offset-20{margin-left:83.3333333333%}.el-col-lg-pull-20{position:relative;right:83.3333333333%}.el-col-lg-push-20{position:relative;left:83.3333333333%}.el-col-lg-21{width:87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{width:91.6666666667%}.el-col-lg-offset-22{margin-left:91.6666666667%}.el-col-lg-pull-22{position:relative;right:91.6666666667%}.el-col-lg-push-22{position:relative;left:91.6666666667%}.el-col-lg-23{width:95.8333333333%}.el-col-lg-offset-23{margin-left:95.8333333333%}.el-col-lg-pull-23{position:relative;right:95.8333333333%}.el-col-lg-push-23{position:relative;left:95.8333333333%}.el-col-lg-24{width:100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;width:0}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{width:4.1666666667%}.el-col-xl-offset-1{margin-left:4.1666666667%}.el-col-xl-pull-1{position:relative;right:4.1666666667%}.el-col-xl-push-1{position:relative;left:4.1666666667%}.el-col-xl-2{width:8.3333333333%}.el-col-xl-offset-2{margin-left:8.3333333333%}.el-col-xl-pull-2{position:relative;right:8.3333333333%}.el-col-xl-push-2{position:relative;left:8.3333333333%}.el-col-xl-3{width:12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{width:16.6666666667%}.el-col-xl-offset-4{margin-left:16.6666666667%}.el-col-xl-pull-4{position:relative;right:16.6666666667%}.el-col-xl-push-4{position:relative;left:16.6666666667%}.el-col-xl-5{width:20.8333333333%}.el-col-xl-offset-5{margin-left:20.8333333333%}.el-col-xl-pull-5{position:relative;right:20.8333333333%}.el-col-xl-push-5{position:relative;left:20.8333333333%}.el-col-xl-6{width:25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{width:29.1666666667%}.el-col-xl-offset-7{margin-left:29.1666666667%}.el-col-xl-pull-7{position:relative;right:29.1666666667%}.el-col-xl-push-7{position:relative;left:29.1666666667%}.el-col-xl-8{width:33.3333333333%}.el-col-xl-offset-8{margin-left:33.3333333333%}.el-col-xl-pull-8{position:relative;right:33.3333333333%}.el-col-xl-push-8{position:relative;left:33.3333333333%}.el-col-xl-9{width:37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{width:41.6666666667%}.el-col-xl-offset-10{margin-left:41.6666666667%}.el-col-xl-pull-10{position:relative;right:41.6666666667%}.el-col-xl-push-10{position:relative;left:41.6666666667%}.el-col-xl-11{width:45.8333333333%}.el-col-xl-offset-11{margin-left:45.8333333333%}.el-col-xl-pull-11{position:relative;right:45.8333333333%}.el-col-xl-push-11{position:relative;left:45.8333333333%}.el-col-xl-12{width:50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{width:54.1666666667%}.el-col-xl-offset-13{margin-left:54.1666666667%}.el-col-xl-pull-13{position:relative;right:54.1666666667%}.el-col-xl-push-13{position:relative;left:54.1666666667%}.el-col-xl-14{width:58.3333333333%}.el-col-xl-offset-14{margin-left:58.3333333333%}.el-col-xl-pull-14{position:relative;right:58.3333333333%}.el-col-xl-push-14{position:relative;left:58.3333333333%}.el-col-xl-15{width:62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{width:66.6666666667%}.el-col-xl-offset-16{margin-left:66.6666666667%}.el-col-xl-pull-16{position:relative;right:66.6666666667%}.el-col-xl-push-16{position:relative;left:66.6666666667%}.el-col-xl-17{width:70.8333333333%}.el-col-xl-offset-17{margin-left:70.8333333333%}.el-col-xl-pull-17{position:relative;right:70.8333333333%}.el-col-xl-push-17{position:relative;left:70.8333333333%}.el-col-xl-18{width:75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{width:79.1666666667%}.el-col-xl-offset-19{margin-left:79.1666666667%}.el-col-xl-pull-19{position:relative;right:79.1666666667%}.el-col-xl-push-19{position:relative;left:79.1666666667%}.el-col-xl-20{width:83.3333333333%}.el-col-xl-offset-20{margin-left:83.3333333333%}.el-col-xl-pull-20{position:relative;right:83.3333333333%}.el-col-xl-push-20{position:relative;left:83.3333333333%}.el-col-xl-21{width:87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{width:91.6666666667%}.el-col-xl-offset-22{margin-left:91.6666666667%}.el-col-xl-pull-22{position:relative;right:91.6666666667%}.el-col-xl-push-22{position:relative;left:91.6666666667%}.el-col-xl-23{width:95.8333333333%}.el-col-xl-offset-23{margin-left:95.8333333333%}.el-col-xl-pull-23{position:relative;right:95.8333333333%}.el-col-xl-push-23{position:relative;left:95.8333333333%}.el-col-xl-24{width:100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}@-webkit-keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}.el-upload{display:inline-block;text-align:center;cursor:pointer;outline:none}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:#646970;margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0;filter:alpha(opacity=0)}.el-upload--picture-card{background-color:#fbfdff;border:1px dashed #c0ccda;border-radius:6px;box-sizing:border-box;width:148px;height:148px;cursor:pointer;line-height:146px;vertical-align:top}.el-upload--picture-card i{font-size:28px;color:#8c939d}.el-upload--picture-card:hover,.el-upload:focus{border-color:#087ce1;color:#087ce1}.el-upload:focus .el-upload-dragger{border-color:#087ce1}.el-upload-dragger{background-color:#fff;border:1px dashed #d9d9d9;border-radius:6px;box-sizing:border-box;width:360px;height:180px;text-align:center;cursor:pointer;position:relative;overflow:hidden}.el-upload-dragger .el-icon-upload{font-size:67px;color:#c0c4cc;margin:40px 0 16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:1px solid #dcdfe6;margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:#646970;font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:#087ce1;font-style:normal}.el-upload-dragger:hover{border-color:#087ce1}.el-upload-dragger.is-dragover{background-color:rgba(32,159,255,.06);border:2px dashed #087ce1}.el-upload-list{margin:0;padding:0;list-style:none}.el-upload-list__item{transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:#646970;line-height:1.8;margin-top:5px;position:relative;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item:first-child{margin-top:10px}.el-upload-list__item .el-icon-upload-success{color:#67c23a}.el-upload-list__item .el-icon-close{display:none;position:absolute;top:5px;right:5px;cursor:pointer;opacity:.75;color:#646970}.el-upload-list__item .el-icon-close:hover{opacity:1}.el-upload-list__item .el-icon-close-tip{display:none;position:absolute;top:5px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:#087ce1}.el-upload-list__item:hover{background-color:#f5f7fa}.el-upload-list__item:hover .el-icon-close{display:inline-block}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:block}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:#087ce1;cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon-close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon-close-tip,.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label,.el-upload-list__item.is-success:not(.focusing):focus .el-icon-close-tip{display:none}.el-upload-list.is-disabled .el-upload-list__item:hover .el-upload-list__item-status-label{display:block}.el-upload-list__item-name{color:#646970;display:block;margin-right:40px;overflow:hidden;padding-left:4px;text-overflow:ellipsis;transition:color .3s;white-space:nowrap}.el-upload-list__item-name [class^=el-icon]{height:100%;margin-right:7px;color:#909399;line-height:inherit}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:#646970;display:none}.el-upload-list__item-delete:hover{color:#087ce1}.el-upload-list--picture-card{margin:0;display:inline;vertical-align:top}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;box-sizing:border-box;width:148px;height:148px;margin:0 8px 8px 0;display:inline-block}.el-upload-list--picture-card .el-upload-list__item .el-icon-check,.el-upload-list--picture-card .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon-close,.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;transform:rotate(45deg);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;text-align:center;color:#fff;opacity:0;font-size:20px;background-color:rgba(0,0,0,.5);transition:opacity .3s}.el-upload-list--picture-card .el-upload-list__item-actions:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:15px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-block}.el-upload-list--picture-card .el-progress{top:50%;left:50%;transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;box-sizing:border-box;margin-top:10px;padding:10px 10px 10px 90px;height:92px}.el-upload-list--picture .el-upload-list__item .el-icon-check,.el-upload-list--picture .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{background:transparent;box-shadow:none;top:-2px;right:-12px}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name{line-height:70px;margin-top:0}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item-thumbnail{vertical-align:middle;display:inline-block;width:70px;height:70px;float:left;position:relative;z-index:1;margin-left:-80px;background-color:#fff}.el-upload-list--picture .el-upload-list__item-name{display:block;margin-top:20px}.el-upload-list--picture .el-upload-list__item-name i{font-size:70px;line-height:1;position:absolute;left:9px;top:10px}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:#13ce66;text-align:center;transform:rotate(45deg);box-shadow:0 1px 1px #ccc}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;transform:rotate(45deg);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-cover__label i{font-size:12px;margin-top:11px;transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.72);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);margin-top:60px}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:#303133}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-progress{position:relative;line-height:1}.el-progress__text{font-size:14px;color:#646970;display:inline-block;vertical-align:middle;margin-left:10px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;transform:translateY(-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:#67c23a}.el-progress.is-success .el-progress__text{color:#67c23a}.el-progress.is-warning .el-progress-bar__inner{background-color:#e6a23c}.el-progress.is-warning .el-progress__text{color:#e6a23c}.el-progress.is-exception .el-progress-bar__inner{background-color:#f56c6c}.el-progress.is-exception .el-progress__text{color:#f56c6c}.el-progress-bar{padding-right:50px;display:inline-block;vertical-align:middle;width:100%;margin-right:-55px;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:#ebeef5;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:#087ce1;text-align:right;border-radius:100px;line-height:1;white-space:nowrap;transition:width .6s ease}.el-progress-bar__inner:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:#ececec;stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{to{transform:rotate(1turn)}}@keyframes rotate{to{transform:rotate(1turn)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-message{min-width:380px;box-sizing:border-box;border-radius:4px;border-width:1px;border-style:solid;border-color:#ebeef5;position:fixed;left:50%;top:20px;transform:translateX(-50%);background-color:#edf2fc;transition:opacity .3s,transform .4s,top .4s;overflow:hidden;padding:15px 15px 15px 20px;display:flex;align-items:center}.el-message.is-center{justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:#909399}.el-message--success{background-color:#f0f9eb;border-color:#e1f3d8}.el-message--success .el-message__content{color:#67c23a}.el-message--warning{background-color:#fdf6ec;border-color:#faecd8}.el-message--warning .el-message__content{color:#e6a23c}.el-message--error{background-color:#fef0f0;border-color:#fde2e2}.el-message--error .el-message__content{color:#f56c6c}.el-message__icon{margin-right:10px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message__closeBtn{position:absolute;top:50%;right:15px;transform:translateY(-50%);cursor:pointer;color:#c0c4cc;font-size:16px}.el-message__closeBtn:focus{outline-width:0}.el-message__closeBtn:hover{color:#909399}.el-message .el-icon-success{color:#67c23a}.el-message .el-icon-error{color:#f56c6c}.el-message .el-icon-info{color:#909399}.el-message .el-icon-warning{color:#e6a23c}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;transform:translate(-50%,-100%)}.el-badge{position:relative;vertical-align:middle;display:inline-block}.el-badge__content{background-color:#f56c6c;border-radius:10px;color:#fff;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;white-space:nowrap;border:1px solid #fff}.el-badge__content.is-fixed{position:absolute;top:0;right:10px;transform:translateY(-50%) translateX(100%)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:#087ce1}.el-badge__content--success{background-color:#67c23a}.el-badge__content--warning{background-color:#e6a23c}.el-badge__content--info{background-color:#909399}.el-badge__content--danger{background-color:#f56c6c}.el-card{border-radius:4px;border:1px solid #ebeef5;background-color:#fff;overflow:hidden;color:#303133;transition:.3s}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-card__header{padding:18px 20px;border-bottom:1px solid #ebeef5;box-sizing:border-box}.el-card__body{padding:20px}.el-rate{height:20px;line-height:1}.el-rate:active,.el-rate:focus{outline-width:0}.el-rate__item{font-size:0;vertical-align:middle}.el-rate__icon,.el-rate__item{display:inline-block;position:relative}.el-rate__icon{font-size:18px;margin-right:6px;color:#c0c4cc;transition:.3s}.el-rate__icon.hover{transform:scale(1.15)}.el-rate__decimal,.el-rate__icon .path2{position:absolute;left:0;top:0}.el-rate__decimal{display:inline-block;overflow:hidden}.el-rate__text{font-size:14px;vertical-align:middle}.el-steps{display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:#f5f7fa}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;flex-flow:column}.el-step{position:relative;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{flex-basis:auto!important;flex-shrink:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{color:#303133;border-color:#303133}.el-step__head.is-wait{color:#c0c4cc;border-color:#c0c4cc}.el-step__head.is-success{color:#67c23a;border-color:#67c23a}.el-step__head.is-error{color:#f56c6c;border-color:#f56c6c}.el-step__head.is-finish{color:#087ce1;border-color:#087ce1}.el-step__icon{position:relative;z-index:1;display:inline-flex;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;box-sizing:border-box;background:#fff;transition:.15s ease-out}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{transform:translateY(1px)}.el-step__line{position:absolute;border-color:inherit;background-color:#c0c4cc}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;transition:.15s ease-out;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:#303133}.el-step__title.is-wait{color:#c0c4cc}.el-step__title.is-success{color:#67c23a}.el-step__title.is-error{color:#f56c6c}.el-step__title.is-finish{color:#087ce1}.el-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.el-step__description.is-process{color:#303133}.el-step__description.is-wait{color:#c0c4cc}.el-step__description.is-success{color:#67c23a}.el-step__description.is-error{color:#f56c6c}.el-step__description.is-finish{color:#087ce1}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:flex}.el-step.is-vertical .el-step__head{flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{padding-left:10px;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{display:flex;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.el-step.is-simple .el-step__icon{background:transparent;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{position:relative;display:flex;align-items:stretch;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{flex-grow:1;display:flex;align-items:center;justify-content:center}.el-step.is-simple .el-step__arrow:after,.el-step.is-simple .el-step__arrow:before{content:"";display:inline-block;position:absolute;height:15px;width:1px;background:#c0c4cc}.el-step.is-simple .el-step__arrow:before{transform:rotate(-45deg) translateY(-4px);transform-origin:0 0}.el-step.is-simple .el-step__arrow:after{transform:rotate(45deg) translateY(4px);transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-carousel{position:relative}.el-carousel--horizontal{overflow-x:hidden}.el-carousel--vertical{overflow-y:hidden}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:none;padding:0;margin:0;height:36px;width:36px;cursor:pointer;transition:.3s;border-radius:50%;background-color:rgba(31,45,61,.11);color:#fff;position:absolute;top:50%;z-index:10;transform:translateY(-50%);text-align:center;font-size:12px}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:rgba(31,45,61,.23)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{position:absolute;list-style:none;margin:0;padding:0;z-index:2}.el-carousel__indicators--horizontal{bottom:0;left:50%;transform:translateX(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:26px;text-align:center;position:static;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:#c0c4cc;opacity:.24}.el-carousel__indicators--labels{left:0;right:0;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:12px 4px}.el-carousel__indicator--vertical{padding:4px 12px}.el-carousel__indicator--vertical .el-carousel__button{width:2px;height:15px}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:30px;height:2px;background-color:#fff;border:none;outline:none;padding:0;margin:0;cursor:pointer;transition:.3s}.carousel-arrow-left-enter,.carousel-arrow-left-leave-active{transform:translateY(-50%) translateX(-10px);opacity:0}.carousel-arrow-right-enter,.carousel-arrow-right-leave-active{transform:translateY(-50%) translateX(10px);opacity:0}.el-carousel__item{position:absolute;top:0;left:0;width:100%;height:100%;display:inline-block;overflow:hidden;z-index:0}.el-carousel__item.is-active{z-index:2}.el-carousel__item--card,.el-carousel__item.is-animating{transition:transform .4s ease-in-out}.el-carousel__item--card{width:50%}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:1}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:2}.el-carousel__mask{position:absolute;width:100%;height:100%;top:0;left:0;background-color:#fff;opacity:.24;transition:.2s}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:opacity .2s linear}.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:opacity .2s linear}.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.el-fade-in-enter,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:top left}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:height .3s ease-in-out,padding-top .3s ease-in-out,padding-bottom .3s ease-in-out}.horizontal-collapse-transition{transition:width .3s ease-in-out,padding-left .3s ease-in-out,padding-right .3s ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;transform:translateY(-30px)}.el-opacity-transition{transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-collapse{border-top:1px solid #ebeef5;border-bottom:1px solid #ebeef5}.el-collapse-item.is-disabled .el-collapse-item__header{color:#bbb;cursor:not-allowed}.el-collapse-item__header{display:flex;align-items:center;height:48px;line-height:48px;background-color:#fff;color:#303133;cursor:pointer;border-bottom:1px solid #ebeef5;font-size:13px;font-weight:500;transition:border-bottom-color .3s;outline:none}.el-collapse-item__arrow{margin:0 8px 0 auto;transition:transform .3s;font-weight:300}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:#087ce1}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:#fff;overflow:hidden;box-sizing:border-box;border-bottom:1px solid #ebeef5}.el-collapse-item__content{padding-bottom:25px;font-size:13px;color:#303133;line-height:1.7692307692}.el-collapse-item:last-child{margin-bottom:-1px}.el-popper .popper__arrow,.el-popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-popper .popper__arrow{border-width:6px;-webkit-filter:drop-shadow(0 2px 12px rgba(0,0,0,.03));filter:drop-shadow(0 2px 12px rgba(0,0,0,.03))}.el-popper .popper__arrow:after{content:" ";border-width:6px}.el-popper[x-placement^=top]{margin-bottom:12px}.el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#ebeef5;border-bottom-width:0}.el-popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.el-popper[x-placement^=bottom]{margin-top:12px}.el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#ebeef5}.el-popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.el-popper[x-placement^=right]{margin-left:12px}.el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#ebeef5;border-left-width:0}.el-popper[x-placement^=right] .popper__arrow:after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.el-popper[x-placement^=left]{margin-right:12px}.el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#ebeef5}.el-popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.el-tag{background-color:#e6f2fc;border-color:#cee5f9;display:inline-block;height:32px;padding:0 10px;line-height:30px;font-size:12px;color:#087ce1;border-width:1px;border-style:solid;border-radius:4px;box-sizing:border-box;white-space:nowrap}.el-tag.is-hit{border-color:#087ce1}.el-tag .el-tag__close{color:#087ce1}.el-tag .el-tag__close:hover{color:#fff;background-color:#087ce1}.el-tag.el-tag--info{background-color:#f4f4f5;border-color:#e9e9eb;color:#909399}.el-tag.el-tag--info.is-hit{border-color:#909399}.el-tag.el-tag--info .el-tag__close{color:#909399}.el-tag.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag.el-tag--success{background-color:#f0f9eb;border-color:#e1f3d8;color:#67c23a}.el-tag.el-tag--success.is-hit{border-color:#67c23a}.el-tag.el-tag--success .el-tag__close{color:#67c23a}.el-tag.el-tag--success .el-tag__close:hover{color:#fff;background-color:#67c23a}.el-tag.el-tag--warning{background-color:#fdf6ec;border-color:#faecd8;color:#e6a23c}.el-tag.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#e6a23c}.el-tag.el-tag--danger{background-color:#fef0f0;border-color:#fde2e2;color:#f56c6c}.el-tag.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f56c6c}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:16px;width:16px;line-height:16px;vertical-align:middle;top:-1px;right:-5px}.el-tag .el-icon-close:before{display:block}.el-tag--dark{background-color:#087ce1;color:#fff}.el-tag--dark,.el-tag--dark.is-hit{border-color:#087ce1}.el-tag--dark .el-tag__close{color:#fff}.el-tag--dark .el-tag__close:hover{color:#fff;background-color:#3996e7}.el-tag--dark.el-tag--info{background-color:#909399;border-color:#909399;color:#fff}.el-tag--dark.el-tag--info.is-hit{border-color:#909399}.el-tag--dark.el-tag--info .el-tag__close{color:#fff}.el-tag--dark.el-tag--info .el-tag__close:hover{color:#fff;background-color:#a6a9ad}.el-tag--dark.el-tag--success{background-color:#67c23a;border-color:#67c23a;color:#fff}.el-tag--dark.el-tag--success.is-hit{border-color:#67c23a}.el-tag--dark.el-tag--success .el-tag__close{color:#fff}.el-tag--dark.el-tag--success .el-tag__close:hover{color:#fff;background-color:#85ce61}.el-tag--dark.el-tag--warning{background-color:#e6a23c;border-color:#e6a23c;color:#fff}.el-tag--dark.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--dark.el-tag--warning .el-tag__close{color:#fff}.el-tag--dark.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#ebb563}.el-tag--dark.el-tag--danger{background-color:#f56c6c;border-color:#f56c6c;color:#fff}.el-tag--dark.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--dark.el-tag--danger .el-tag__close{color:#fff}.el-tag--dark.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f78989}.el-tag--plain{background-color:#fff;border-color:#9ccbf3;color:#087ce1}.el-tag--plain.is-hit{border-color:#087ce1}.el-tag--plain .el-tag__close{color:#087ce1}.el-tag--plain .el-tag__close:hover{color:#fff;background-color:#087ce1}.el-tag--plain.el-tag--info{background-color:#fff;border-color:#d3d4d6;color:#909399}.el-tag--plain.el-tag--info.is-hit{border-color:#909399}.el-tag--plain.el-tag--info .el-tag__close{color:#909399}.el-tag--plain.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag--plain.el-tag--success{background-color:#fff;border-color:#c2e7b0;color:#67c23a}.el-tag--plain.el-tag--success.is-hit{border-color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close{color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close:hover{color:#fff;background-color:#67c23a}.el-tag--plain.el-tag--warning{background-color:#fff;border-color:#f5dab1;color:#e6a23c}.el-tag--plain.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#e6a23c}.el-tag--plain.el-tag--danger{background-color:#fff;border-color:#fbc4c4;color:#f56c6c}.el-tag--plain.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f56c6c}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{transform:scale(.8)}.el-tag--small{height:24px;padding:0 8px;line-height:22px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag--mini{height:20px;padding:0 5px;line-height:19px}.el-tag--mini .el-icon-close{margin-left:-3px;transform:scale(.7)}.el-cascader{display:inline-block;position:relative;font-size:14px;line-height:40px}.el-cascader:not(.is-disabled):hover .el-input__inner{cursor:pointer;border-color:#c0c4cc}.el-cascader .el-input{cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis}.el-cascader .el-input .el-input__inner:focus{border-color:#087ce1}.el-cascader .el-input .el-icon-arrow-down{transition:transform .3s;font-size:14px}.el-cascader .el-input .el-icon-arrow-down.is-reverse{transform:rotate(180deg)}.el-cascader .el-input .el-icon-circle-close:hover{color:#909399}.el-cascader .el-input.is-focus .el-input__inner{border-color:#087ce1}.el-cascader--medium{font-size:14px;line-height:36px}.el-cascader--small{font-size:13px;line-height:32px}.el-cascader--mini{font-size:12px;line-height:28px}.el-cascader.is-disabled .el-cascader__label{z-index:2;color:#c0c4cc}.el-cascader__dropdown{margin:5px 0;font-size:14px;background:#fff;border:1px solid #e4e7ed;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-cascader__tags{position:absolute;left:0;right:30px;top:50%;transform:translateY(-50%);display:flex;flex-wrap:wrap;line-height:normal;text-align:left;box-sizing:border-box}.el-cascader__tags .el-tag{display:inline-flex;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:#f0f2f5}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{flex:none;background-color:#c0c4cc;color:#fff}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:#909399}.el-cascader__suggestion-panel{border-radius:4px}.el-cascader__suggestion-list{max-height:204px;margin:0;padding:6px 0;font-size:14px;color:#646970;text-align:center}.el-cascader__suggestion-item{display:flex;justify-content:space-between;align-items:center;height:34px;padding:0 15px;text-align:left;outline:none;cursor:pointer}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:#f5f7fa}.el-cascader__suggestion-item.is-checked{color:#087ce1;font-weight:700}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__empty-text{margin:10px 0;color:#c0c4cc}.el-cascader__search-input{flex:1;height:24px;min-width:60px;margin:2px 0 2px 15px;padding:0;color:#646970;border:none;outline:none;box-sizing:border-box}.el-cascader__search-input::-webkit-input-placeholder{color:#c0c4cc}.el-cascader__search-input::-moz-placeholder{color:#c0c4cc}.el-cascader__search-input:-ms-input-placeholder{color:#c0c4cc}.el-cascader__search-input::-ms-input-placeholder{color:#c0c4cc}.el-cascader__search-input::placeholder{color:#c0c4cc}.el-color-predefine{display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:flex;flex:1;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px #087ce1}.el-color-predefine__color-selector>div{display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px}.el-color-hue-slider__bar{position:relative;background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(180deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.el-color-svpanel__black{background:linear-gradient(0deg,#000,transparent)}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-alpha-slider__bar{position:relative;background:linear-gradient(90deg,hsla(0,0%,100%,0) 0,#fff);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(180deg,hsla(0,0%,100%,0) 0,#fff)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper:after{content:"";display:table;clear:both}.el-color-dropdown__btns{margin-top:6px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-dropdown__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:none;font-size:12px}.el-color-dropdown__btn[disabled]{color:#ccc;cursor:not-allowed}.el-color-dropdown__btn:hover{color:#087ce1;border-color:#087ce1}.el-color-dropdown__link-btn{cursor:pointer;color:#087ce1;text-decoration:none;padding:15px;font-size:12px}.el-color-dropdown__link-btn:hover{color:tint(#087ce1,20%)}.el-color-picker{display:inline-block;position:relative;line-height:normal;height:40px}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--medium{height:36px}.el-color-picker--medium .el-color-picker__trigger{height:36px;width:36px}.el-color-picker--medium .el-color-picker__mask{height:34px;width:34px}.el-color-picker--small{height:32px}.el-color-picker--small .el-color-picker__trigger{height:32px;width:32px}.el-color-picker--small .el-color-picker__mask{height:30px;width:30px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker--mini{height:28px}.el-color-picker--mini .el-color-picker__trigger{height:28px;width:28px}.el-color-picker--mini .el-color-picker__mask{height:26px;width:26px}.el-color-picker--mini .el-color-picker__empty,.el-color-picker--mini .el-color-picker__icon{transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker__mask{height:38px;width:38px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:hsla(0,0%,100%,.7)}.el-color-picker__trigger{display:inline-block;box-sizing:border-box;height:40px;width:40px;padding:4px;border:1px solid #e6e6e6;border-radius:4px;font-size:0;position:relative;cursor:pointer}.el-color-picker__color{position:relative;display:block;box-sizing:border-box;border:1px solid #999;border-radius:2px;width:100%;height:100%;text-align:center}.el-color-picker__color.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-picker__color-inner{position:absolute;left:0;top:0;right:0;bottom:0}.el-color-picker__empty{color:#999}.el-color-picker__empty,.el-color-picker__icon{font-size:12px;position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0)}.el-color-picker__icon{display:inline-block;width:100%;color:#fff;text-align:center}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;box-sizing:content-box;background-color:#fff;border:1px solid #ebeef5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:14px}.el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;color:#646970;background-color:#fff;background-image:none;border:1px solid #dcdfe6;border-radius:4px;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea__inner::-moz-placeholder{color:#c0c4cc}.el-textarea__inner:-ms-input-placeholder{color:#c0c4cc}.el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea__inner:hover{border-color:#c0c4cc}.el-textarea__inner:focus{outline:none;border-color:#087ce1}.el-textarea .el-input__count{color:#909399;background:#fff;position:absolute;font-size:12px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea.is-exceed .el-textarea__inner{border-color:#f56c6c}.el-textarea.is-exceed .el-input__count{color:#f56c6c}.el-input{position:relative;font-size:14px;display:inline-block;width:100%}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:#fff}.el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.el-input .el-input__clear{color:#c0c4cc;font-size:14px;cursor:pointer;transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-input .el-input__clear:hover{color:#909399}.el-input .el-input__count{height:100%;display:inline-flex;align-items:center;color:#909399;font-size:12px}.el-input .el-input__count .el-input__count-inner{background:#fff;line-height:normal;display:inline-block;padding:0 5px}.el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #dcdfe6;box-sizing:border-box;color:#646970;display:inline-block;font-size:inherit;height:40px;line-height:40px;outline:none;padding:0 15px;transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input__inner::-moz-placeholder{color:#c0c4cc}.el-input__inner:-ms-input-placeholder{color:#c0c4cc}.el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input__inner::placeholder{color:#c0c4cc}.el-input__inner:hover{border-color:#c0c4cc}.el-input__inner:focus{outline:none;border-color:#087ce1}.el-input__suffix{position:absolute;height:100%;right:5px;top:0;text-align:center;color:#c0c4cc;transition:all .3s;pointer-events:none}.el-input__suffix-inner{pointer-events:all}.el-input__prefix{position:absolute;left:5px;top:0;color:#c0c4cc}.el-input__icon,.el-input__prefix{height:100%;text-align:center;transition:all .3s}.el-input__icon{width:25px;line-height:40px}.el-input__icon:after{content:"";height:100%;width:0;display:inline-block;vertical-align:middle}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__inner{outline:none;border-color:#087ce1}.el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__inner{border-color:#f56c6c}.el-input.is-exceed .el-input__suffix .el-input__count{color:#f56c6c}.el-input--suffix .el-input__inner{padding-right:30px}.el-input--prefix .el-input__inner{padding-left:30px}.el-input--medium{font-size:14px}.el-input--medium .el-input__inner{height:36px;line-height:36px}.el-input--medium .el-input__icon{line-height:36px}.el-input--small{font-size:13px}.el-input--small .el-input__inner{height:32px;line-height:32px}.el-input--small .el-input__icon{line-height:32px}.el-input--mini{font-size:12px}.el-input--mini .el-input__inner{height:28px;line-height:28px}.el-input--mini .el-input__icon{line-height:28px}.el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate;border-spacing:0}.el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.el-input-group__append,.el-input-group__prepend{background-color:#f5f7fa;color:#909399;vertical-align:middle;display:table-cell;position:relative;border:1px solid #dcdfe6;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:none}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:-10px -20px}.el-input-group__append button.el-button,.el-input-group__append div.el-select .el-input__inner,.el-input-group__append div.el-select:hover .el-input__inner,.el-input-group__prepend button.el-button,.el-input-group__prepend div.el-select .el-input__inner,.el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append{border-left:0}.el-input-group--prepend .el-input__inner,.el-input-group__append{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input-group--append .el-input__inner{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input__inner::-ms-clear{display:none;width:0;height:0}.el-transfer{font-size:14px}.el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.el-transfer__button{display:block;margin:0 auto;padding:10px;border-radius:50%;color:#fff;background-color:#087ce1;font-size:0}.el-transfer__button.is-with-texts{border-radius:4px}.el-transfer__button.is-disabled,.el-transfer__button.is-disabled:hover{border:1px solid #dcdfe6;background-color:#f5f7fa;color:#c0c4cc}.el-transfer__button:first-child{margin-bottom:10px}.el-transfer__button:nth-child(2){margin:0}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer__button [class*=el-icon-]+span{margin-left:0}.el-transfer-panel{border:1px solid #ebeef5;border-radius:4px;overflow:hidden;background:#fff;display:inline-block;vertical-align:middle;width:200px;max-height:100%;box-sizing:border-box;position:relative}.el-transfer-panel__body{height:246px}.el-transfer-panel__body.is-with-footer{padding-bottom:40px}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:246px;overflow:auto;box-sizing:border-box}.el-transfer-panel__list.is-filterable{height:194px;padding-top:0}.el-transfer-panel__item{height:30px;line-height:30px;padding-left:15px;display:block!important}.el-transfer-panel__item+.el-transfer-panel__item{margin-left:0}.el-transfer-panel__item.el-checkbox{color:#646970}.el-transfer-panel__item:hover{color:#087ce1}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;box-sizing:border-box;padding-left:24px;line-height:30px}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;margin:15px;box-sizing:border-box;display:block;width:auto}.el-transfer-panel__filter .el-input__inner{height:32px;width:100%;font-size:12px;display:inline-block;box-sizing:border-box;border-radius:16px;padding-right:10px;padding-left:30px}.el-transfer-panel__filter .el-input__icon{margin-left:5px}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{height:40px;line-height:40px;background:#f5f7fa;margin:0;padding-left:15px;border-bottom:1px solid #ebeef5;box-sizing:border-box;color:#000}.el-transfer-panel .el-transfer-panel__header .el-checkbox{display:block;line-height:40px}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:#303133;font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;color:#909399;font-size:12px;font-weight:400}.el-transfer-panel .el-transfer-panel__footer{height:40px;background:#fff;margin:0;padding:0;border-top:1px solid #ebeef5;position:absolute;bottom:0;left:0;width:100%;z-index:1}.el-transfer-panel .el-transfer-panel__footer:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:#646970}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:30px;line-height:30px;padding:6px 15px 0;color:#909399;text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner:after{height:6px;width:3px;left:4px}.el-container{display:flex;flex-direction:row;flex:1;flex-basis:auto;box-sizing:border-box;min-width:0}.el-container.is-vertical{flex-direction:column}.el-header{padding:0 20px}.el-aside,.el-header{box-sizing:border-box;flex-shrink:0}.el-aside,.el-main{overflow:auto}.el-main{display:block;flex:1;flex-basis:auto;padding:20px}.el-footer,.el-main{box-sizing:border-box}.el-footer{padding:0 20px;flex-shrink:0}.el-timeline{margin:0;font-size:14px;list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline-item{position:relative;padding-bottom:20px}.el-timeline-item__wrapper{position:relative;padding-left:28px;top:-3px}.el-timeline-item__tail{position:absolute;left:4px;height:100%;border-left:2px solid #e4e7ed}.el-timeline-item__icon{color:#fff;font-size:13px}.el-timeline-item__node{position:absolute;background-color:#e4e7ed;border-radius:50%;display:flex;justify-content:center;align-items:center}.el-timeline-item__node--normal{left:-1px;width:12px;height:12px}.el-timeline-item__node--large{left:-2px;width:14px;height:14px}.el-timeline-item__node--primary{background-color:#087ce1}.el-timeline-item__node--success{background-color:#67c23a}.el-timeline-item__node--warning{background-color:#e6a23c}.el-timeline-item__node--danger{background-color:#f56c6c}.el-timeline-item__node--info{background-color:#909399}.el-timeline-item__dot{position:absolute;display:flex;justify-content:center;align-items:center}.el-timeline-item__content{color:#303133}.el-timeline-item__timestamp{color:#909399;line-height:1;font-size:13px}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-link{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:none;cursor:pointer;padding:0;font-size:14px;font-weight:500}.el-link.is-underline:hover:after{content:"";position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid #087ce1}.el-link.is-disabled{cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default{color:#646970}.el-link.el-link--default:hover{color:#087ce1}.el-link.el-link--default:after{border-color:#087ce1}.el-link.el-link--default.is-disabled{color:#c0c4cc}.el-link.el-link--primary{color:#087ce1}.el-link.el-link--primary:hover{color:#3996e7}.el-link.el-link--primary:after{border-color:#087ce1}.el-link.el-link--primary.is-disabled{color:#84bef0}.el-link.el-link--primary.is-underline:hover:after{border-color:#087ce1}.el-link.el-link--danger{color:#f56c6c}.el-link.el-link--danger:hover{color:#f78989}.el-link.el-link--danger:after{border-color:#f56c6c}.el-link.el-link--danger.is-disabled{color:#fab6b6}.el-link.el-link--danger.is-underline:hover:after{border-color:#f56c6c}.el-link.el-link--success{color:#67c23a}.el-link.el-link--success:hover{color:#85ce61}.el-link.el-link--success:after{border-color:#67c23a}.el-link.el-link--success.is-disabled{color:#b3e19d}.el-link.el-link--success.is-underline:hover:after{border-color:#67c23a}.el-link.el-link--warning{color:#e6a23c}.el-link.el-link--warning:hover{color:#ebb563}.el-link.el-link--warning:after{border-color:#e6a23c}.el-link.el-link--warning.is-disabled{color:#f3d19e}.el-link.el-link--warning.is-underline:hover:after{border-color:#e6a23c}.el-link.el-link--info{color:#909399}.el-link.el-link--info:hover{color:#a6a9ad}.el-link.el-link--info:after{border-color:#909399}.el-link.el-link--info.is-disabled{color:#c8c9cc}.el-link.el-link--info.is-underline:hover:after{border-color:#909399}.el-divider{background-color:#dcdfe6;position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative}.el-divider__text{position:absolute;background-color:#fff;padding:0 20px;font-weight:500;color:#303133;font-size:14px}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translateX(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-image__error,.el-image__inner,.el-image__placeholder{width:100%;height:100%}.el-image{position:relative;display:inline-block;overflow:hidden}.el-image__inner{vertical-align:top}.el-image__inner--center{position:relative;top:50%;left:50%;transform:translate(-50%,-50%);display:block}.el-image__error,.el-image__placeholder{background:#f5f7fa}.el-image__error{display:flex;justify-content:center;align-items:center;font-size:14px;color:#c0c4cc;vertical-align:middle}.el-image__preview{cursor:pointer}.el-image-viewer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.el-image-viewer__btn{position:absolute;z-index:1;display:flex;align-items:center;justify-content:center;border-radius:50%;opacity:.8;cursor:pointer;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-image-viewer__close{top:40px;right:40px;width:40px;height:40px;font-size:40px}.el-image-viewer__canvas{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.el-image-viewer__actions{left:50%;bottom:30px;transform:translateX(-50%);width:282px;height:44px;padding:0 23px;background-color:#606266;border-color:#fff;border-radius:22px}.el-image-viewer__actions__inner{width:100%;height:100%;text-align:justify;cursor:default;font-size:23px;color:#fff;display:flex;align-items:center;justify-content:space-around}.el-image-viewer__prev{left:40px}.el-image-viewer__next,.el-image-viewer__prev{top:50%;transform:translateY(-50%);width:44px;height:44px;font-size:24px;color:#fff;background-color:#606266;border-color:#fff}.el-image-viewer__next{right:40px;text-indent:2px}.el-image-viewer__mask{position:absolute;width:100%;height:100%;top:0;left:0;opacity:.5;background:#000}.viewer-fade-enter-active{-webkit-animation:viewer-fade-in .3s;animation:viewer-fade-in .3s}.viewer-fade-leave-active{-webkit-animation:viewer-fade-out .3s;animation:viewer-fade-out .3s}@-webkit-keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes viewer-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes viewer-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;border-color:#dcdfe6;color:#646970;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:none;margin:0;transition:.1s;font-weight:500;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;padding:12px 20px;font-size:14px;border-radius:4px}.el-button+.el-button{margin-left:10px}.el-button.is-round{padding:12px 20px}.el-button:focus,.el-button:hover{color:#087ce1;border-color:#b5d8f6;background-color:#e6f2fc}.el-button:active{color:#0770cb;border-color:#0770cb;outline:none}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon-]+span{margin-left:5px}.el-button.is-plain:focus,.el-button.is-plain:hover{background:#fff;border-color:#087ce1;color:#087ce1}.el-button.is-plain:active{background:#fff;outline:none}.el-button.is-active,.el-button.is-plain:active{border-color:#0770cb;color:#0770cb}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5}.el-button.is-disabled.el-button--text{background-color:transparent}.el-button.is-disabled.is-plain,.el-button.is-disabled.is-plain:focus,.el-button.is-disabled.is-plain:hover{background-color:#fff;border-color:#ebeef5;color:#c0c4cc}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:hsla(0,0%,100%,.35)}.el-button.is-round{border-radius:20px;padding:12px 23px}.el-button.is-circle{border-radius:50%;padding:12px}.el-button--primary{color:#fff;background-color:#087ce1;border-color:#087ce1}.el-button--primary:focus,.el-button--primary:hover{background:#3996e7;border-color:#3996e7;color:#fff}.el-button--primary:active{outline:none}.el-button--primary.is-active,.el-button--primary:active{background:#0770cb;border-color:#0770cb;color:#fff}.el-button--primary.is-disabled,.el-button--primary.is-disabled:active,.el-button--primary.is-disabled:focus,.el-button--primary.is-disabled:hover{color:#fff;background-color:#84bef0;border-color:#84bef0}.el-button--primary.is-plain{color:#087ce1;background:#e6f2fc;border-color:#9ccbf3}.el-button--primary.is-plain:focus,.el-button--primary.is-plain:hover{background:#087ce1;border-color:#087ce1;color:#fff}.el-button--primary.is-plain:active{background:#0770cb;border-color:#0770cb;color:#fff;outline:none}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover{color:#6bb0ed;background-color:#e6f2fc;border-color:#cee5f9}.el-button--success{color:#fff;background-color:#67c23a;border-color:#67c23a}.el-button--success:focus,.el-button--success:hover{background:#85ce61;border-color:#85ce61;color:#fff}.el-button--success:active{outline:none}.el-button--success.is-active,.el-button--success:active{background:#5daf34;border-color:#5daf34;color:#fff}.el-button--success.is-disabled,.el-button--success.is-disabled:active,.el-button--success.is-disabled:focus,.el-button--success.is-disabled:hover{color:#fff;background-color:#b3e19d;border-color:#b3e19d}.el-button--success.is-plain{color:#67c23a;background:#f0f9eb;border-color:#c2e7b0}.el-button--success.is-plain:focus,.el-button--success.is-plain:hover{background:#67c23a;border-color:#67c23a;color:#fff}.el-button--success.is-plain:active{background:#5daf34;border-color:#5daf34;color:#fff;outline:none}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover{color:#a4da89;background-color:#f0f9eb;border-color:#e1f3d8}.el-button--warning{color:#fff;background-color:#e6a23c;border-color:#e6a23c}.el-button--warning:focus,.el-button--warning:hover{background:#ebb563;border-color:#ebb563;color:#fff}.el-button--warning:active{outline:none}.el-button--warning.is-active,.el-button--warning:active{background:#cf9236;border-color:#cf9236;color:#fff}.el-button--warning.is-disabled,.el-button--warning.is-disabled:active,.el-button--warning.is-disabled:focus,.el-button--warning.is-disabled:hover{color:#fff;background-color:#f3d19e;border-color:#f3d19e}.el-button--warning.is-plain{color:#e6a23c;background:#fdf6ec;border-color:#f5dab1}.el-button--warning.is-plain:focus,.el-button--warning.is-plain:hover{background:#e6a23c;border-color:#e6a23c;color:#fff}.el-button--warning.is-plain:active{background:#cf9236;border-color:#cf9236;color:#fff;outline:none}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover{color:#f0c78a;background-color:#fdf6ec;border-color:#faecd8}.el-button--danger{color:#fff;background-color:#f56c6c;border-color:#f56c6c}.el-button--danger:focus,.el-button--danger:hover{background:#f78989;border-color:#f78989;color:#fff}.el-button--danger:active{outline:none}.el-button--danger.is-active,.el-button--danger:active{background:#dd6161;border-color:#dd6161;color:#fff}.el-button--danger.is-disabled,.el-button--danger.is-disabled:active,.el-button--danger.is-disabled:focus,.el-button--danger.is-disabled:hover{color:#fff;background-color:#fab6b6;border-color:#fab6b6}.el-button--danger.is-plain{color:#f56c6c;background:#fef0f0;border-color:#fbc4c4}.el-button--danger.is-plain:focus,.el-button--danger.is-plain:hover{background:#f56c6c;border-color:#f56c6c;color:#fff}.el-button--danger.is-plain:active{background:#dd6161;border-color:#dd6161;color:#fff;outline:none}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover{color:#f9a7a7;background-color:#fef0f0;border-color:#fde2e2}.el-button--info{color:#fff;background-color:#909399;border-color:#909399}.el-button--info:focus,.el-button--info:hover{background:#a6a9ad;border-color:#a6a9ad;color:#fff}.el-button--info:active{outline:none}.el-button--info.is-active,.el-button--info:active{background:#82848a;border-color:#82848a;color:#fff}.el-button--info.is-disabled,.el-button--info.is-disabled:active,.el-button--info.is-disabled:focus,.el-button--info.is-disabled:hover{color:#fff;background-color:#c8c9cc;border-color:#c8c9cc}.el-button--info.is-plain{color:#909399;background:#f4f4f5;border-color:#d3d4d6}.el-button--info.is-plain:focus,.el-button--info.is-plain:hover{background:#909399;border-color:#909399;color:#fff}.el-button--info.is-plain:active{background:#82848a;border-color:#82848a;color:#fff;outline:none}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover{color:#bcbec2;background-color:#f4f4f5;border-color:#e9e9eb}.el-button--medium{padding:10px 20px;font-size:14px;border-radius:4px}.el-button--medium.is-round{padding:10px 20px}.el-button--medium.is-circle{padding:10px}.el-button--small{padding:9px 15px;font-size:12px;border-radius:3px}.el-button--small.is-round{padding:9px 15px}.el-button--small.is-circle{padding:9px}.el-button--mini{padding:7px 15px;font-size:12px;border-radius:3px}.el-button--mini.is-round{padding:7px 15px}.el-button--mini.is-circle{padding:7px}.el-button--text{border-color:transparent;color:#087ce1;background:transparent;padding-left:0;padding-right:0}.el-button--text:focus,.el-button--text:hover{color:#3996e7;border-color:transparent;background-color:transparent}.el-button--text:active{color:#0770cb;background-color:transparent}.el-button--text.is-disabled,.el-button--text.is-disabled:focus,.el-button--text.is-disabled:hover,.el-button--text:active{border-color:transparent}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{display:table;content:""}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button.is-disabled{z-index:1}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px;border-top-left-radius:4px;border-bottom-left-radius:4px}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:20px}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-button.is-active,.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-calendar{background-color:#fff}.el-calendar__header{display:flex;justify-content:space-between;padding:12px 20px;border-bottom:1px solid #ebeef5}.el-calendar__title{color:#000;align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{padding:12px 0;color:#646970;font-weight:400}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:#c0c4cc}.el-calendar-table td{border-bottom:1px solid #ebeef5;border-right:1px solid #ebeef5;vertical-align:top;transition:background-color .2s ease}.el-calendar-table td.is-selected{background-color:#f2f8fe}.el-calendar-table td.is-today{color:#087ce1}.el-calendar-table tr:first-child td{border-top:1px solid #ebeef5}.el-calendar-table tr td:first-child{border-left:1px solid #ebeef5}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{box-sizing:border-box;padding:8px;height:85px}.el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:#f2f8fe}.el-backtop{position:fixed;background-color:#fff;width:40px;height:40px;border-radius:50%;color:#087ce1;display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:0 0 6px rgba(0,0,0,.12);cursor:pointer;z-index:5}.el-backtop:hover{background-color:#f2f6fc}.el-page-header{display:flex;line-height:24px}.el-page-header__left{display:flex;cursor:pointer;margin-right:40px;position:relative}.el-page-header__left:after{content:"";position:absolute;width:1px;height:16px;right:-20px;top:50%;transform:translateY(-50%);background-color:#dcdfe6}.el-page-header__left .el-icon-back{font-size:18px;margin-right:6px;align-self:center}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{font-size:18px;color:#303133}.el-checkbox{color:#646970;font-weight:500;font-size:14px;position:relative;cursor:pointer;display:inline-block;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:30px}.el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #dcdfe6;box-sizing:border-box;line-height:normal;height:40px}.el-checkbox.is-bordered.is-checked{border-color:#087ce1}.el-checkbox.is-bordered.is-disabled{border-color:#ebeef5;cursor:not-allowed}.el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px;height:36px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{line-height:17px;font-size:14px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:5px 15px 5px 10px;border-radius:3px;height:32px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{line-height:15px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox.is-bordered.el-checkbox--mini{padding:3px 15px 3px 10px;border-radius:3px;height:28px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{line-height:12px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox__input{white-space:nowrap;cursor:pointer;outline:none;display:inline-block;line-height:1;position:relative;vertical-align:middle}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#dcdfe6;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:#c0c4cc}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:#c0c4cc}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:#c0c4cc;border-color:#c0c4cc}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:#c0c4cc;cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:#087ce1;border-color:#087ce1}.el-checkbox__input.is-checked .el-checkbox__inner:after{transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:#087ce1}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#087ce1}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#087ce1;border-color:#087ce1}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";position:absolute;display:block;background-color:#fff;height:2px;transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:1px solid #dcdfe6;border-radius:2px;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:#087ce1}.el-checkbox__inner:after{box-sizing:content-box;content:"";border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:3px;transition:transform .15s ease-in .05s;transform-origin:center}.el-checkbox__original{opacity:0;outline:none;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox__label{display:inline-block;padding-left:10px;line-height:19px;font-size:14px}.el-checkbox:last-of-type{margin-right:0}.el-checkbox-button,.el-checkbox-button__inner{position:relative;display:inline-block}.el-checkbox-button__inner{line-height:1;font-weight:500;white-space:nowrap;vertical-align:middle;cursor:pointer;background:#fff;border:1px solid #dcdfe6;border-left:0;color:#646970;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:none;margin:0;transition:all .3s cubic-bezier(.645,.045,.355,1);-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;padding:12px 20px;font-size:14px;border-radius:0}.el-checkbox-button__inner.is-round{padding:12px 20px}.el-checkbox-button__inner:hover{color:#087ce1}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:none;position:absolute;margin:0;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:#fff;background-color:#087ce1;border-color:#087ce1;box-shadow:-1px 0 0 0 #6bb0ed}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:#087ce1}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:#ebeef5}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#087ce1}.el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.el-checkbox-button--medium .el-checkbox-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.el-checkbox-button--small .el-checkbox-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:9px 15px}.el-checkbox-button--mini .el-checkbox-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.el-checkbox-group{font-size:0}.el-radio{color:#646970;font-weight:500;line-height:1;position:relative;cursor:pointer;display:inline-block;white-space:nowrap;outline:none;font-size:14px;margin-right:30px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.el-radio.is-bordered{padding:12px 20px 0 10px;border-radius:4px;border:1px solid #dcdfe6;box-sizing:border-box;height:40px}.el-radio.is-bordered.is-checked{border-color:#087ce1}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:#ebeef5}.el-radio.is-bordered+.el-radio.is-bordered{margin-left:10px}.el-radio--medium.is-bordered{padding:10px 20px 0 10px;border-radius:4px;height:36px}.el-radio--medium.is-bordered .el-radio__label{font-size:14px}.el-radio--medium.is-bordered .el-radio__inner{height:14px;width:14px}.el-radio--small.is-bordered{padding:8px 15px 0 10px;border-radius:3px;height:32px}.el-radio--small.is-bordered .el-radio__label{font-size:12px}.el-radio--small.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio--mini.is-bordered{padding:6px 15px 0 10px;border-radius:3px;height:28px}.el-radio--mini.is-bordered .el-radio__label{font-size:12px}.el-radio--mini.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{white-space:nowrap;cursor:pointer;outline:none;display:inline-block;line-height:1;position:relative;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{background-color:#f5f7fa;border-color:#e4e7ed;cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:#f5f7fa}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:#f5f7fa;border-color:#e4e7ed}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:#c0c4cc}.el-radio__input.is-disabled+span.el-radio__label{color:#c0c4cc;cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:#087ce1;background:#087ce1}.el-radio__input.is-checked .el-radio__inner:after{transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:#087ce1}.el-radio__input.is-focus .el-radio__inner{border-color:#087ce1}.el-radio__inner{border:1px solid #dcdfe6;border-radius:100%;width:14px;height:14px;background-color:#fff;position:relative;cursor:pointer;display:inline-block;box-sizing:border-box}.el-radio__inner:hover{border-color:#087ce1}.el-radio__inner:after{width:4px;height:4px;border-radius:100%;background-color:#fff;content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in}.el-radio__original{opacity:0;outline:none;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px #087ce1}.el-radio__label{font-size:14px;padding-left:10px}.el-scrollbar{overflow:hidden;position:relative}.el-scrollbar:active>.el-scrollbar__bar,.el-scrollbar:focus>.el-scrollbar__bar,.el-scrollbar:hover>.el-scrollbar__bar{opacity:1;transition:opacity .34s ease-out}.el-scrollbar__wrap{overflow:scroll;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(144,147,153,.3);transition:background-color .3s}.el-scrollbar__thumb:hover{background-color:rgba(144,147,153,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;transition:opacity .12s ease-out}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-cascader-panel{display:flex;border-radius:4px;font-size:14px}.el-cascader-panel.is-bordered{border:1px solid #e4e7ed;border-radius:4px}.el-cascader-menu{min-width:180px;box-sizing:border-box;color:#646970;border-right:1px solid #e4e7ed}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu:last-child .el-cascader-node{padding-right:20px}.el-cascader-menu__wrap{height:204px}.el-cascader-menu__list{position:relative;min-height:100%;margin:0;padding:6px 0;list-style:none;box-sizing:border-box}.el-cascader-menu__hover-zone{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.el-cascader-menu__empty-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:#c0c4cc}.el-cascader-node{position:relative;display:flex;align-items:center;padding:0 30px 0 20px;height:34px;line-height:34px;outline:none}.el-cascader-node.is-selectable.in-active-path{color:#646970}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:#087ce1;font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:#f5f7fa}.el-cascader-node.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-cascader-node__prefix{position:absolute;left:10px}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{flex:1;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-cascader-node>.el-radio{margin-right:0}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-avatar{display:inline-block;box-sizing:border-box;text-align:center;overflow:hidden;color:#fff;background:#c0c4cc;width:40px;height:40px;line-height:40px;font-size:14px}.el-avatar>img{display:block;height:100%;vertical-align:middle}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:4px}.el-avatar--icon{font-size:18px}.el-avatar--large{width:40px;height:40px;line-height:40px}.el-avatar--medium{width:36px;height:36px;line-height:36px}.el-avatar--small{width:28px;height:28px;line-height:28px}@-webkit-keyframes el-drawer-fade-in{0%{opacity:0}to{opacity:1}}@keyframes el-drawer-fade-in{0%{opacity:0}to{opacity:1}}@-webkit-keyframes rtl-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes rtl-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}@-webkit-keyframes rtl-drawer-out{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes rtl-drawer-out{0%{transform:translate(0)}to{transform:translate(100%)}}@-webkit-keyframes ltr-drawer-in{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes ltr-drawer-in{0%{transform:translate(-100%)}to{transform:translate(0)}}@-webkit-keyframes ltr-drawer-out{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes ltr-drawer-out{0%{transform:translate(0)}to{transform:translate(-100%)}}@-webkit-keyframes ttb-drawer-in{0%{transform:translateY(-100%)}to{transform:translate(0)}}@keyframes ttb-drawer-in{0%{transform:translateY(-100%)}to{transform:translate(0)}}@-webkit-keyframes ttb-drawer-out{0%{transform:translate(0)}to{transform:translateY(-100%)}}@keyframes ttb-drawer-out{0%{transform:translate(0)}to{transform:translateY(-100%)}}@-webkit-keyframes btt-drawer-in{0%{transform:translateY(100%)}to{transform:translate(0)}}@keyframes btt-drawer-in{0%{transform:translateY(100%)}to{transform:translate(0)}}@-webkit-keyframes btt-drawer-out{0%{transform:translate(0)}to{transform:translateY(100%)}}@keyframes btt-drawer-out{0%{transform:translate(0)}to{transform:translateY(100%)}}.el-drawer{position:absolute;box-sizing:border-box;background-color:#fff;display:flex;flex-direction:column;box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);overflow:hidden}.el-drawer.rtl{-webkit-animation:rtl-drawer-out .3s;animation:rtl-drawer-out .3s}.el-drawer__open .el-drawer.rtl{-webkit-animation:rtl-drawer-in .3s 1ms;animation:rtl-drawer-in .3s 1ms}.el-drawer.ltr{-webkit-animation:ltr-drawer-out .3s;animation:ltr-drawer-out .3s}.el-drawer__open .el-drawer.ltr{-webkit-animation:ltr-drawer-in .3s 1ms;animation:ltr-drawer-in .3s 1ms}.el-drawer.ttb{-webkit-animation:ttb-drawer-out .3s;animation:ttb-drawer-out .3s}.el-drawer__open .el-drawer.ttb{-webkit-animation:ttb-drawer-in .3s 1ms;animation:ttb-drawer-in .3s 1ms}.el-drawer.btt{-webkit-animation:btt-drawer-out .3s;animation:btt-drawer-out .3s}.el-drawer__open .el-drawer.btt{-webkit-animation:btt-drawer-in .3s 1ms;animation:btt-drawer-in .3s 1ms}.el-drawer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;margin:0}.el-drawer__header{align-items:center;color:#72767b;display:flex;margin-bottom:32px;padding:20px;padding-bottom:0}.el-drawer__header>:first-child{flex:1}.el-drawer__title{margin:0;flex:1;line-height:inherit;font-size:1rem}.el-drawer__close-btn{border:none;cursor:pointer;font-size:20px;color:inherit;background-color:transparent}.el-drawer__body{flex:1}.el-drawer__body>*{box-sizing:border-box}.el-drawer.ltr,.el-drawer.rtl{height:100%;top:0;bottom:0}.el-drawer.btt,.el-drawer.ttb{width:100%;left:0;right:0}.el-drawer.ltr{left:0}.el-drawer.rtl{right:0}.el-drawer.ttb{top:0}.el-drawer.btt{bottom:0}.el-drawer__container{position:relative;left:0;right:0;top:0;bottom:0;height:100%;width:100%}.el-drawer-fade-enter-active{-webkit-animation:el-drawer-fade-in .3s;animation:el-drawer-fade-in .3s}.el-drawer-fade-leave-active{animation:el-drawer-fade-in .3s reverse}.el-popconfirm__main{display:flex;align-items:center}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin:0}.omapi-datepicker-input{text-align:left}.omapi-datepicker-input label{font-size:18px;font-weight:700;margin-bottom:10px}fieldset[disabled] .multiselect{pointer-events:none}.multiselect__spinner{position:absolute;right:1px;top:1px;width:48px;height:35px;background:#fff;display:block}.multiselect__spinner:after,.multiselect__spinner:before{position:absolute;content:"";top:50%;left:50%;margin:-8px 0 0 -8px;width:16px;height:16px;border-radius:100%;border:2px solid transparent;border-top-color:#41b883;box-shadow:0 0 0 1px transparent}.multiselect__spinner:before{-webkit-animation:spinning 2.4s cubic-bezier(.41,.26,.2,.62);animation:spinning 2.4s cubic-bezier(.41,.26,.2,.62);-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.multiselect__spinner:after{-webkit-animation:spinning 2.4s cubic-bezier(.51,.09,.21,.8);animation:spinning 2.4s cubic-bezier(.51,.09,.21,.8);-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.multiselect__loading-enter-active,.multiselect__loading-leave-active{transition:opacity .4s ease-in-out;opacity:1}.multiselect__loading-enter,.multiselect__loading-leave-active{opacity:0}.multiselect,.multiselect__input,.multiselect__single{font-family:inherit;font-size:16px;touch-action:manipulation}.multiselect{box-sizing:content-box;display:block;position:relative;width:100%;min-height:40px;text-align:left;color:#35495e}.multiselect *{box-sizing:border-box}.multiselect:focus{outline:none}.multiselect--disabled{background:#ededed;pointer-events:none;opacity:.6}.multiselect--active{z-index:50}.multiselect--active:not(.multiselect--above) .multiselect__current,.multiselect--active:not(.multiselect--above) .multiselect__input,.multiselect--active:not(.multiselect--above) .multiselect__tags{border-bottom-left-radius:0;border-bottom-right-radius:0}.multiselect--active .multiselect__select{transform:rotate(180deg)}.multiselect--above.multiselect--active .multiselect__current,.multiselect--above.multiselect--active .multiselect__input,.multiselect--above.multiselect--active .multiselect__tags{border-top-left-radius:0;border-top-right-radius:0}.multiselect__input,.multiselect__single{position:relative;display:inline-block;min-height:20px;line-height:20px;border:none;border-radius:5px;background:#fff;padding:0 0 0 5px;width:100%;transition:border .1s ease;box-sizing:border-box;margin-bottom:8px;vertical-align:top}.multiselect__input:-ms-input-placeholder{color:#35495e}.multiselect__input::-webkit-input-placeholder{color:#35495e}.multiselect__input::-moz-placeholder{color:#35495e}.multiselect__input::-ms-input-placeholder{color:#35495e}.multiselect__input::placeholder{color:#35495e}.multiselect__tag~.multiselect__input,.multiselect__tag~.multiselect__single{width:auto}.multiselect__input:hover,.multiselect__single:hover{border-color:#cfcfcf}.multiselect__input:focus,.multiselect__single:focus{border-color:#a8a8a8;outline:none}.multiselect__single{padding-left:5px;margin-bottom:8px}.multiselect__tags-wrap{display:inline}.multiselect__tags{min-height:40px;display:block;padding:8px 40px 0 8px;border-radius:5px;border:1px solid #e8e8e8;background:#fff;font-size:14px}.multiselect__tag{position:relative;display:inline-block;padding:4px 26px 4px 10px;border-radius:5px;margin-right:10px;color:#fff;line-height:1;background:#41b883;margin-bottom:5px;white-space:nowrap;overflow:hidden;max-width:100%;text-overflow:ellipsis}.multiselect__tag-icon{cursor:pointer;margin-left:7px;position:absolute;right:0;top:0;bottom:0;font-weight:700;font-style:normal;width:22px;text-align:center;line-height:22px;transition:all .2s ease;border-radius:5px}.multiselect__tag-icon:after{content:"\D7";color:#266d4d;font-size:14px}.multiselect__tag-icon:focus,.multiselect__tag-icon:hover{background:#369a6e}.multiselect__tag-icon:focus:after,.multiselect__tag-icon:hover:after{color:#fff}.multiselect__current{min-height:40px;overflow:hidden;padding:8px 30px 0 12px;white-space:nowrap;border-radius:5px;border:1px solid #e8e8e8}.multiselect__current,.multiselect__select{line-height:16px;box-sizing:border-box;display:block;margin:0;text-decoration:none;cursor:pointer}.multiselect__select{position:absolute;width:40px;height:38px;right:1px;top:1px;padding:4px 8px;text-align:center;transition:transform .2s ease}.multiselect__select:before{position:relative;right:0;top:65%;color:#999;margin-top:4px;border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 0;content:""}.multiselect__placeholder{color:#adadad;display:inline-block;margin-bottom:10px;padding-top:2px}.multiselect--active .multiselect__placeholder{display:none}.multiselect__content-wrapper{position:absolute;display:block;background:#fff;width:100%;max-height:240px;overflow:auto;border:1px solid #e8e8e8;border-top:none;border-bottom-left-radius:5px;border-bottom-right-radius:5px;z-index:50;-webkit-overflow-scrolling:touch}.multiselect__content{list-style:none;display:inline-block;padding:0;margin:0;min-width:100%;vertical-align:top}.multiselect--above .multiselect__content-wrapper{bottom:100%;border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:5px;border-top-right-radius:5px;border-bottom:none;border-top:1px solid #e8e8e8}.multiselect__content::webkit-scrollbar{display:none}.multiselect__element{display:block}.multiselect__option{display:block;padding:12px;min-height:40px;line-height:16px;text-decoration:none;text-transform:none;vertical-align:middle;position:relative;cursor:pointer;white-space:nowrap}.multiselect__option:after{top:0;right:0;position:absolute;line-height:40px;padding-right:12px;padding-left:20px;font-size:13px}.multiselect__option--highlight{background:#41b883;outline:none;color:#fff}.multiselect__option--highlight:after{content:attr(data-select);background:#41b883;color:#fff}.multiselect__option--selected{background:#f3f3f3;color:#35495e;font-weight:700}.multiselect__option--selected:after{content:attr(data-selected);color:silver}.multiselect__option--selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect--disabled .multiselect__current,.multiselect--disabled .multiselect__select{background:#ededed;color:#a6a6a6}.multiselect__option--disabled{background:#ededed!important;color:#a6a6a6!important;cursor:text;pointer-events:none}.multiselect__option--group{background:#ededed;color:#35495e}.multiselect__option--group.multiselect__option--highlight{background:#35495e;color:#fff}.multiselect__option--group.multiselect__option--highlight:after{background:#35495e}.multiselect__option--disabled.multiselect__option--highlight{background:#dedede}.multiselect__option--group-selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--group-selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect-enter-active,.multiselect-leave-active{transition:all .15s ease}.multiselect-enter,.multiselect-leave-active{opacity:0}.multiselect__strong{margin-bottom:8px;line-height:20px;display:inline-block;vertical-align:top}[dir=rtl] .multiselect{text-align:right}[dir=rtl] .multiselect__select{right:auto;left:1px}[dir=rtl] .multiselect__tags{padding:8px 8px 0 40px}[dir=rtl] .multiselect__content{text-align:right}[dir=rtl] .multiselect__option:after{right:auto;left:0}[dir=rtl] .multiselect__clear{right:auto;left:12px}[dir=rtl] .multiselect__spinner{right:auto;left:1px}@-webkit-keyframes spinning{0%{transform:rotate(0)}to{transform:rotate(2turn)}}@keyframes spinning{0%{transform:rotate(0)}to{transform:rotate(2turn)}}.omapi-multi-select-input{text-align:left;margin-bottom:10px}.om-pro-feature .header{background-color:transparent!important;padding:30px 30px 0!important}.om-pro-feature .header .close button{color:#b2b4b8}.om-pro-feature .content{align-items:center;display:flex;flex-direction:column;padding:0 100px 40px!important}.om-pro-feature .content h2{font-weight:600;text-align:center;font-size:24px;line-height:140%;margin-top:10px}.om-pro-feature .content p{text-align:center;padding:0 35px}.om-pro-feature .content .omapi-list__twocol{justify-content:flex-end}.om-pro-feature .content .omapi-list__twocol .omapi-list__item{color:#23282d;margin-bottom:16px;display:flex;align-items:center;flex:0 0 45%}.om-pro-feature .content .omapi-button.omapi-button__monster{margin:18px 0 24px;line-height:100%}.om-pro-feature .content .omapi-button__link{font-size:14px;line-height:130%}.om-circle-loading[data-v-179cdd5b]{margin:10px auto}.checkbox-cell[data-v-179cdd5b]{width:25px}.form-checkbox-no-label .form-checkbox-wrapper[data-v-179cdd5b],.form-checkbox-no-label[data-v-179cdd5b]{display:block}.om-table-cell-has-checkbox[data-v-a22e214e]{padding:8px 10px}.om-table-cell-has-checkbox input[type=checkbox][data-v-a22e214e]{margin:0 0 0 8px}.omapi-dash__notifications[data-v-298726aa]{overflow:hidden}.om-show-notifications{height:100%;overflow:hidden}.overlay[data-v-7a30d148]{background-color:#6c7781;opacity:.5;left:160px;display:block;z-index:2}.drawer[data-v-7a30d148],.overlay[data-v-7a30d148]{position:fixed;top:106px;right:0;bottom:0;transition:.5s}.drawer[data-v-7a30d148]{width:572px;min-width:300px;background:#fff;left:auto;z-index:9991;overflow:scroll}.drawer.notifications-slide-enter[data-v-7a30d148],.drawer.notifications-slide-leave-to[data-v-7a30d148]{right:-600px}.omapi-has-alert .drawer[data-v-7a30d148],.omapi-has-alert .overlay[data-v-7a30d148]{top:144px}.notifications-fade-enter-active[data-v-7a30d148],.notifications-fade-leave-active[data-v-7a30d148]{transition:opacity .5s}.notifications-fade-enter[data-v-7a30d148],.notifications-fade-leave-to[data-v-7a30d148]{opacity:0}.notifications-slide-enter-active[data-v-7a30d148],.notifications-slide-leave-active[data-v-7a30d148]{transition:all .5s ease-in-out}.omapi-notifications-list .alerts{padding-bottom:5px;margin-bottom:25px;border-bottom:1px solid #f1f1f1}.omapi-notifications-list .om-circle-loading{margin:10px auto;height:44px;background-size:44px;background-position:top}.omapi-notifications-list .om-circle-loading.notifications-slide-enter,.omapi-notifications-list .om-circle-loading.notifications-slide-leave-to{opacity:0;height:0;overflow:hidden;padding:0;margin:0;border:0}.omapi-notifications-list .swipe-right-enter-active,.omapi-notifications-list .swipe-right-leave-active{transition:all .5s ease-in-out}.omapi-notifications-list .swipe-right-leave-to{transform:translateX(110%)}.omapi-notifications-list .omapi-detailed-list li .omapi-multi-column__secondary{font-size:11px;flex:0 0 85px;margin-left:10px}.omapi-notifications-list .omapi-detailed-list>.dismiss-all-notices{justify-content:flex-end;border-bottom:0}.omapi-screen .omapi-notifications-list .omapi-detailed-list>.notifications-loading{display:block;margin-bottom:20px}.om-notification-loading[data-v-0c9aaa74]{opacity:.5}.om-circle-loading[data-v-0c9aaa74]{width:20px;height:20px;background-size:20px;margin:0;display:inline-block;position:relative;top:5px;margin-left:10px}.dismiss[data-v-0c9aaa74]{display:inline-block}.omapi-monsterleads__actions[data-v-5da76f35]{display:flex;justify-content:space-between}.omapi-monsterleads__filters[data-v-5da76f35]{display:flex}.om-circle-loading[data-v-5da76f35]{margin:10px auto}.campaign-type-filter{margin-bottom:33px}.campaign-type-filter__nav{border-bottom:2px solid #e8e8eb}.campaign-type-filter__filters{display:flex;margin-bottom:-2px}.campaign-type-filter__filter{font-size:15px;font-weight:400;border-bottom:2px solid transparent;cursor:pointer;color:#6c7781;height:60px;display:flex;align-items:center;justify-content:center;position:relative}.campaign-type-filter__filter.selected>span,.campaign-type-filter__filter:hover>span{color:#23282d;font-weight:600}.campaign-type-filter__filter.selected{border-bottom:2px solid #087ce1}.campaign-type-filter__filter-options{display:none;position:absolute;left:0;top:calc(100% + 2px);height:auto;z-index:2;font-size:13px}.campaign-type-filter__filter:hover .campaign-type-filter__filter-options{display:block}.campaign-type-filter__filter-featured{width:97px}@media screen and (max-width:990px){.campaign-type-filter__filter-featured{width:82px}}.campaign-type-filter__filter-latest{width:81px}@media screen and (max-width:990px){.campaign-type-filter__filter-latest{width:66px}}.campaign-type-filter__filter-device{width:201px}@media screen and (max-width:990px){.campaign-type-filter__filter-device{width:186px}}.campaign-type-filter__filter-device .campaign-type-filter__filter-options{width:199px;background:#f7f8fb;border:1px solid #c9d0d6;box-shadow:0 3px 2px rgba(0,0,0,.05);border-radius:0 0 3px 3px}.campaign-type-filter__filter-device .campaign-type-filter__filter-options>div{margin:11px;padding:9px 0 9px 62px;border:1px solid transparent;position:relative;color:#23282d;line-height:100%;background:#fff;color:#6c7781}.campaign-type-filter__filter-device .campaign-type-filter__filter-options>div .device-icons{position:absolute;top:0;left:0}.campaign-type-filter__filter-device .campaign-type-filter__filter-options>div small{font-size:11px;position:relative;top:2px}.campaign-type-filter__filter-device .campaign-type-filter__filter-options>div.selected,.campaign-type-filter__filter-device .campaign-type-filter__filter-options>div:hover{border:1px solid #087ce1;color:#23282d;background:#fcfdff}.campaign-type-filter__filter-device .campaign-type-filter__filter-options>div.selected:after{content:"";background:#f7f8fb url(../img/green-success-circle.52fe5261.svg) 0 0 no-repeat;background-size:15px 15px;position:absolute;top:-7px;right:-7px;width:15px;height:15px}.campaign-type-filter__filter-device-desktop .device-icons-desktop{position:absolute;top:10px;left:23px}.campaign-type-filter__filter-device-desktop .device-icons-tablet{background:#f7f8fb;position:absolute;top:13px;left:18px;border:1px solid #f7f8fb}.campaign-type-filter__filter-device-mobile .device-icons-mobile{position:absolute;top:8px;left:26px}.campaign-type-filter__filter-category{width:152px}.campaign-type-filter__filter-category>span{display:flex;align-items:center;justify-content:center}.campaign-type-filter__filter-category>span>svg{width:14px;margin-right:5px}.campaign-type-filter__filter-category.active>span,.campaign-type-filter__filter-category:hover>span{padding:8px 14px;font-weight:400;font-size:15px;line-height:14px;border-radius:3px;background-color:#087ce1;color:#fff;border:1px solid #087ce1}.campaign-type-filter__filter-category.active>span:hover,.campaign-type-filter__filter-category:hover>span:hover{background-color:#096bc1;border-color:#096bc1}.campaign-type-filter__search{position:relative;justify-self:flex-end;align-self:center;width:212px}@media screen and (max-width:990px){.campaign-type-filter__search{width:155px}}.campaign-type-filter__search svg{position:absolute;right:8px;top:13px;width:13px;height:13px}.campaign-type-filter__search svg.clear-search{cursor:pointer}.campaign-type-filter__search .omapi-input[type=text]{width:212px;height:30px;padding-right:24px;margin:0}.campaign-type-filter-device-options{background:#fff;border:1px solid #c9d0d6;box-sizing:border-box;box-shadow:0 3px 2px rgba(0,0,0,.05);border-radius:0 0 3px 3px}.campaign-type-filter-device-options>.omapi-card__flex{justify-content:space-between;align-items:center;flex-wrap:nowrap}.campaign-type-filter-device-options .filters-top{padding:10px 10px}@media screen and (max-width:950px){.campaign-type-filter-device-options .filters-top{flex-direction:column}}.campaign-type-filter-device-options .filters-left{justify-content:flex-start}.campaign-type-filter-device-options .filters-left .omapi-radio-group{padding:20px}.campaign-type-filter-device-options .filters-left .omapi-radio-group strong{font-weight:700;font-size:14px;line-height:140%;padding:0 0 15px}.campaign-type-filter-device-options .filters-bottom{padding:16px 29px 14px;background:#f7f8fb;border-radius:0 0 3px 3px}.campaign-type-filter .did-you-know{max-width:442px;border-left:1px solid #ddd;padding:20px 15px;display:flex;justify-content:flex-start}@media screen and (max-width:950px){.campaign-type-filter .did-you-know{border-left:none;border-top:1px solid #ddd;max-width:100%}}.campaign-type-filter .did-you-know>img{width:108px;flex-basis:108px;margin-right:16px}.campaign-type-filter .did-you-know>div{flex-basis:calc(100% - 154px)}.campaign-type-filter .did-you-know>div>strong{display:block;font-size:15px;line-height:150%;color:#23282d;margin-bottom:2px}.campaign-type-filter .did-you-know>div p{font-size:14px;line-height:150%;color:#23282d;margin-bottom:9px}.campaign-type-selector{align-items:center;margin:0 -8px 33px;justify-content:flex-start}.campaign-type-selector .omapi-card{align-items:center;margin:8px;flex-grow:1;justify-content:center;cursor:pointer;box-sizing:border-box;height:161px}.campaign-type-selector .omapi-card.selected,.campaign-type-selector .omapi-card:hover{position:relative;border:2px solid #087ce1}.campaign-type-selector .omapi-card.selected:before{content:url(../img/green-success-circle.52fe5261.svg);position:absolute;top:8px;right:8px;width:21px;height:21px}.campaign-type-selector .omapi-card__half{max-width:calc(50% - 16px)}.campaign-type-selector .omapi-card__third{max-width:calc(33.33333% - 16px)}.campaign-type-selector .omapi-card__fourth{max-width:calc(25% - 16px)}@media screen and (max-width:580px){.campaign-type-selector .omapi-card__fourth{max-width:160px}}.campaign-type-selector .omapi-card__fifth{max-width:calc(20% - 16px)}@media screen and (max-width:1000px){.campaign-type-selector .omapi-card__fifth{max-width:160px}}.campaign-type-selector .omapi-card__sixth{max-width:calc(16.66667% - 16px)}@media screen and (max-width:1024px){.campaign-type-selector .omapi-card__sixth{max-width:calc(33.33333% - 16px);flex-basis:33%}}.campaign-type-selector .omapi-card .omapi-card-content{cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0}.campaign-type-selector .omapi-card .omapi-card-content h5{font-size:15px;font-weight:600;padding-top:3px;margin:0}.upsell-alert{margin-bottom:30px;padding-right:12px!important}.upsell-alert .alert-message{width:100%;display:flex!important;justify-content:space-between;align-items:center}.upsell-alert .alert-message>span{padding-right:50px}.upsell-alert .alert-message a.button{min-width:118px}.upsell-alert-button{flex-shrink:0;text-align:center}.om-no-access img{width:200px}.om-no-access .header{background-color:transparent!important;padding:30px 30px 0!important}.om-no-access .header .close button{background:transparent;border:0;color:#b2b4b8;padding:0!important}.om-no-access .content{align-items:center;color:#646970;display:flex;flex-direction:column;padding:0 80px 55px!important;text-align:center}.om-no-access .content h2{font-size:1.5em;font-weight:700;margin:5px 0 13px;letter-spacing:.2px}.om-no-access .content p{margin-bottom:25px}.om-no-access .content .no-access__buttons .omapi-button__primary{margin-bottom:20px;font-size:16px;padding:14px 20px}.om-not-connected .header{background-color:transparent!important;padding:30px 30px 0!important}.om-not-connected .header .close button{background:transparent;border:0;color:#b2b4b8;padding:0!important}.om-not-connected .content{align-items:center;color:#646970;display:flex;flex-direction:column;padding:0 40px 55px!important}.om-not-connected .content h2{font-size:1.5em;font-weight:700;margin:5px 0 13px;letter-spacing:.2px}.om-not-connected .content p{margin-bottom:25px}.om-not-connected .content .not-connected__buttons{display:flex}.om-not-connected .content .not-connected__buttons span{margin-right:0!important;font-size:.9em;display:flex;align-items:center}.om-not-connected .content .not-connected__buttons .omapi-button{margin:0 10px;font-size:18px;padding:9px 16px}.no-campaigns-content[data-v-5c486508]{display:flex;flex-direction:column;justify-content:center;align-items:center;max-width:45%;margin:0 auto;text-align:center;padding:40px 0}.no-campaigns-content .omapi-button.omapi-button__large[data-v-5c486508]{font-size:16px;padding:14px 18px;margin:0 0 20px 0}.no-campaigns-content .omapi-button__link[data-v-5c486508]{font-size:14px}.omapi-campaign-table__not-connected[data-v-042eb298]{background:url(../img/campaigns-not-connected.bfe97ad3.jpg) 50% no-repeat;background-size:contain;min-height:1337px;background-position:top}.omapi-campaign-table__not-connected[data-v-042eb298] .omapi-no-connection-title{font-size:24px;margin:0 auto 14px}.omapi-campaign-table__not-connected[data-v-042eb298] .omapi-no-connection-subtitle{max-width:560px;margin:0 auto 24px;font-size:16px}.omapi-campaign-table__not-connected .omapi-list__twocol[data-v-042eb298]{justify-content:flex-end}@media screen and (max-width:1050px){.omapi-campaign-table__not-connected .omapi-list__twocol[data-v-042eb298]{justify-content:center}}.omapi-campaign-table__not-connected .omapi-list__twocol .omapi-list__item[data-v-042eb298]{display:flex;align-items:center;flex:0 0 49%}@media screen and (max-width:1050px){.omapi-campaign-table__not-connected .omapi-list__twocol .omapi-list__item[data-v-042eb298]{flex:0 1 75%}}.row-bg-odd[data-v-3ef04946]{background-color:#f9f9f9}.omapi-table .campaign-table-name .no-link-style[data-v-3ef04946]{color:#6c7781;font-weight:400}.omapi-table .campaign-table-ab[data-v-3ef04946]{position:relative}.omapi-table .campaign-table-ab .split-button[data-v-3ef04946]{align-items:center;background-color:#fafafb;border:1px solid #c9d0d6;border-radius:2px;bottom:-10px;color:#6c7781;display:flex;font-family:Proxima Nova,sans-serif;font-size:.75rem;font-weight:600;height:20px;justify-content:center;left:15px;position:absolute;z-index:99}.omapi-table .campaign-table-ab .split-button[data-v-3ef04946]:hover{background-color:#087ce1;border-color:#087ce1;color:#fff;cursor:pointer}.omapi-table .campaign-table-ab .split-button.hidden[data-v-3ef04946]{display:none}.omapi-table .campaign-table-ab .split-button span[data-v-3ef04946]{margin-right:2px}.omapi-table .campaign-table-ab .split-button svg[data-v-3ef04946]{height:12px;width:auto}.omapi-table .campaign-table-status .content[data-v-3ef04946]{display:flex}.omapi-table .campaign-table-status .scheduled-button[data-v-3ef04946]{background-color:transparent;border:none;margin-left:2px;padding:0}.omapi-table .campaign-table-actions .omapi-button[data-v-3ef04946]{display:inline-flex;justify-content:center;align-items:center;margin-right:0;height:36px;width:36px;box-sizing:border-box;padding:0}.omapi-table .campaign-table-actions .action-more .omapi-button[data-v-3ef04946],.omapi-table .campaign-table-actions .action-trash-campaign .omapi-button[data-v-3ef04946]{width:33px}.omapi-screen .campaign-table-additional-actions .omapi-button[data-v-3ef04946]{margin-right:0}.omapi-table th.campaign-table-actions[data-v-3ef04946]{width:180px}.omapi-table .campaign-table-status-dates{border-collapse:collapse}.omapi-table .campaign-table-status-dates td,.omapi-table .campaign-table-status-dates th{font-weight:400;text-align:left;font-size:13px;color:#fff;padding:0 4px 0 0;white-space:nowrap}.omapi-table .campaign-table-status-dates td:last-child{padding-right:0}.omapi-table .campaign-table-status-dates th{text-align:right}.content .screenshot{margin:20px 0 25px}.content .screenshot .toggles{text-align:center;padding-bottom:20px;font-size:12px;font-weight:600}.content .screenshot .toggles span{display:inline-block}.content .screenshot .toggles span a{text-decoration:none;border:1px solid #c9d0d6;border-right:none;padding:7px 10px;display:block}.content .screenshot .toggles span a.active,.content .screenshot .toggles span a:hover{background-color:#087ce1;color:#fff;border-color:#087ce1;text-decoration:none}.content .screenshot .toggles span:last-child a{border-right:1px solid #c9d0d6;border-top-right-radius:3px;border-bottom-right-radius:3px}.content .screenshot .toggles span:last-child a.active,.content .screenshot .toggles span:last-child a:hover{border-color:#087ce1}.content .screenshot .toggles span:first-child a{border-top-left-radius:3px;border-bottom-left-radius:3px}.content .screenshot .image{text-align:center;margin-bottom:20px;transition:height .3s ease;overflow:hidden;margin:0 auto}.content .screenshot .image img{width:100%;height:auto}.content .screenshot .image .mobile-preview{width:300px;height:644px;margin:0 auto;background:#fff;border-top:50px solid #41495b;border-bottom:50px solid #41495b;border-left:10px solid #41495b;border-right:10px solid #41495b;border-radius:10px;display:flex}.content .screenshot .image .mobile-preview img{display:inherit}.omapi-campaign-settings__status-text{display:flex;justify-content:space-between;align-items:center}.omapi-campaign-settings__status-text svg{margin-left:4px}.omapi-campaign-settings__status .setting-label-text{display:flex;justify-content:space-between;align-items:center}.omapi-campaign-settings__status .setting-label-text a{font-weight:400!important;font-size:.9em}.omapi-campaign-settings__status-alert{font-size:1.5em}@media screen and (max-width:1145px){.omapi-app-campaigns #wpbody-content{overflow-x:scroll!important}.omapi-app-campaigns #wpbody-content .omapi-campaigns-table{min-width:765px}}.omapi-table th.checkbox-cell{width:1px}.omapi-table th.campaign-table-name{width:155px}@media screen and (max-width:1055px){.omapi-table th.campaign-table-name{width:120px}}.omapi-table th.campaign-table-stats{width:76px}.omapi-table th.campaign-table-ab{width:44px}.omapi-table th.campaign-table-status{width:36px}.omapi-table th.campaign-table-actions{width:214px}.omapi-table th.campaign-table-actions span{display:block;text-align:right;padding-right:169px}.omapi-table td.campaign-table-actions{text-align:right}.omapi-table td.campaign-table-actions>span{vertical-align:top}.omapi-table td.campaign-table-actions .omapi-has-tooltip{display:inline-block;margin-right:10px}.omapi-table td.campaign-table-actions .omapi-has-tooltip:last-child{margin-right:0}.omapi-table td.campaign-table-actions .omapi-dropdown__container{text-align:left}.omapi-table tr.child-row tr.child-row td{position:relative}.omapi-table tr.child-row tr.child-row td:before{content:"";background-color:#f1f1f1;width:calc(100% + 20px);top:0;left:0;position:absolute;height:1px}.omapi-table tr.child-row tr.child-row td:last-child:before{width:calc(100% - 13px)}.omapi-table tr.child-row tr.child-row td:first-child:before{display:none}.omapi-table th{color:#23282d}.omapi-table td{color:#6c7781;padding:12px 13px 11px 9px}.omapi-table td .form-checkbox-wrapper{position:relative}.omapi-table .campaign-table-indicators{display:inline-flex;justify-content:flex-start;align-items:center;flex-direction:column;padding:3px 6px 0 0}.omapi-table .campaign-table-row-title a{display:block;font-weight:600;color:#23282d}.omapi-table .campaign-table-row-title a:hover{color:#087ce1;text-decoration:none!important}.omapi-table .campaign-on-fire{color:#fe3b00}.omapi-table .row-actions{font-size:.9em;flex-basis:100%}.omapi-table .campaign-table-name{padding-left:6px}.omapi-table .campaign-table-name-has-indicators{display:flex;flex-wrap:wrap}.omapi-table .campaign-table-name .campaign-table-icon{font-size:14px;padding:0 0 3px 0;max-width:24px;display:flex;align-items:center;justify-content:center;padding:0 0 5px 0}.omapi-table .campaign-table-name .campaign-table-icon.campaign-on-fire{padding-top:2px}.omapi-table .campaign-table-name .campaign-table-icon svg{height:auto;width:100%;height:15px;width:auto}.omapi-table .campaign-table-name .campaign-table-icon div:first-child:not(.popper){max-width:17px}.omapi-table .campaign-table-name .campaign-table-icon div{flex-grow:1}.omapi-table .campaign-table-name .campaign-table-icon.on-fire svg{color:#fe3b00}.omapi-table .campaign-table-name .campaign-table-icon.has-split svg{color:#a0a5aa}.omapi-table .campaign-table-stats ul{margin:0}.omapi-table .campaign-table-stats ul li{margin-bottom:2px}.omapi-table .campaign-table-stats__scheduled:after,.omapi-table .campaign-table-status__scheduled:after{content:url(../img/scheduled.a220f4b7.svg);width:20px;height:20px;padding:3px 14px 3px 3px;vertical-align:text-top}.omapi-table .campaign-table-status-indicators button.omapi-button__link{display:flex;justify-content:flex-start;align-items:center;color:#6c7781;border-bottom:1px solid transparent}.omapi-table .campaign-table-status-indicators button.omapi-button__link .omapi-has-tooltip{display:block;margin-left:3px;height:14px}.omapi-table .campaign-table-status-indicators button.omapi-button__link:hover{color:#087ce1;text-decoration:underline;text-decoration:none!important;border-bottom:1px solid #087ce1}.omapi-table .campaign-table-status-indicators.status-is-scheduled+.omapi-has-tooltip svg{padding:2px 0 0 3px}.omapi-table .campaign-table-status-indicators.status-is-scheduled+.omapi-has-tooltip svg:hover{color:#087ce1}.omapi-table .campaign-table-status-indicators .omapi-has-tooltip .popper{max-width:840px;width:auto;white-space:normal}.omapi-table .omapi-has-tooltip .popper{max-width:200px;white-space:nowrap}.omapi-table td .fancy-checkbox,.omapi-table th .fancy-checkbox{background-color:#c9d0d6}.omapi-campaigns-table table.omapi-table{border:0}.omapi-campaigns-table table.omapi-table thead th{border-color:#ddd;padding-bottom:12px;padding-top:15px}.omapi-campaigns-table table.omapi-table .alternate{background-color:#f7f8fb}.omapi-campaigns-table .stripe-gray{background-color:#f9f9f9}.omapi-campaigns-table-refreshing{opacity:.5}.omapi-campaigns-table-refreshing.omapi-campaigns-table-no-data td{padding-top:34px;padding-bottom:33px}.omapi-campaign-table__mods .bulk-actions{display:flex;justify-content:center;align-items:center;margin-bottom:12px}.omapi-campaign-table__mods .bulk-actions select{max-width:168px;margin-right:5px}.omapi-campaign-table__mods .bulk-actions .omapi-dropdown__container{max-width:168px}.omapi-campaign-table__mods-bottom .bulk-actions{margin-bottom:0}.omapi-screen .omapi-campaign-table__filters .omapi-button{margin-left:6px;margin-right:0}.text-setting-indented{padding-left:26px}.monster-link-modal .buttons{justify-content:flex-end!important}.monster-link-modal .buttons .omapi-button{margin-right:0}.monster-link-modal .omapi-codebox{background-color:transparent;padding:0 0 25px 0}.monster-link-modal .omapi-codebox .omapi-has-tooltip{display:block;width:100%}.monster-link-modal .omapi-codebox__copy{display:flex;width:100%}.monster-link-modal .omapi-codebox__copy span{background-color:#f7f8fb}.monster-link-modal .omapi-codebox__code{flex:1}.omapi-modal.preview-modal .campaign-meta{font-weight:400;text-align:center}.omapi-modal.preview-modal .campaign-meta .campaign-meta__item{font-size:.75rem}.omapi-modal.preview-modal .campaign-meta .campaign-meta__item .campaign-meta__key{color:#6c7781;margin-right:5px}.omapi-modal.preview-modal .campaign-meta .campaign-meta__item .campaign-meta__value{color:#23282d}body .v--modal-overlay.preview-modal .v--modal{border-radius:0}body .v--modal-overlay.preview-modal .v--modal .header{background-color:#f7f8fb!important;color:#23282d!important;text-align:center;display:block!important}body .v--modal-overlay.preview-modal .v--modal .header .close{position:absolute;right:20px;top:0;height:55px;max-height:none!important;color:#6c7781!important}body .v--modal-overlay.preview-modal .v--modal .content .screenshot{margin:0}body .v--modal-overlay.preview-modal .v--modal .content .toggle{border-color:#c9d0d6;color:#555d66;font-size:13px}body .v--modal-overlay.preview-modal .v--modal .content .toggle.active,body .v--modal-overlay.preview-modal .v--modal .content .toggle:active,body .v--modal-overlay.preview-modal .v--modal .content .toggle:focus,body .v--modal-overlay.preview-modal .v--modal .content .toggle:hover{border-color:#087ce1;color:#fff}body .v--modal-overlay.preview-modal .v--modal .footer{font-size:13px;line-height:1.5;padding:0 20px 20px}.omapi-campaign-settings .omapi-rules-list__item .omapi-rules-list__item{display:inline!important}.omapi-campaign-settings .omapi-rules-list__condition>span{font-style:italic;font-weight:600;padding-left:1px}.omapi-rules-list__ruleset[data-v-5c1b6616]{max-width:100%;overflow-wrap:break-word;margin-top:15px}.omapi-rules-list__ruleset-title[data-v-5c1b6616]{font-size:14px;margin:0 0 8px}.omapi-rules-list__ruleset[data-v-5c1b6616]:first-child{margin-top:0}.omapi-rules-list__summary[data-v-5c1b6616]{position:relative}.omapi-rules-list__fadeout[data-v-5c1b6616]{background:linear-gradient(transparent,#fff);bottom:0;display:block;height:50px;left:0;position:absolute;width:100%}.rulesets-loading[data-v-5c1b6616]{margin:0 0 20px}.omapi-screen .omapi-panel__1 .omapi-input__select{display:block;max-width:100%}.omapi-screen .omapi-panel__4-2 .omapi-box__gray[data-v-5451955f]{margin:50px 0 33px}.omapi-screen .omapi-panel__4-2 .omapi-box__gray p[data-v-5451955f]{font-size:14px;margin-bottom:10px}.omapi-screen .omapi-panel__4-2 .omapi-wizard-forward[data-v-5451955f]{border-radius:3px;font-size:16px;margin-top:10px;padding:16px 24px}.omapi-screen .omapi-panel__4-2 a.omapi-wizard-forward-link[data-v-5451955f]{color:#6c7781;font-size:14px;line-height:100%}.omapi-screen .omapi-panel__4 .omapi-wizard-forward[data-v-cac888f6]{border-radius:3px;font-size:16px;margin:0 0 40px;padding:16px 60px}.omapi-screen .omapi-panel__4 .om-circle-loading[data-v-cac888f6]{margin:0 0 20px}.omapi-screen .omapi-panel__4 .omapi-button__large[data-v-cac888f6]{margin-bottom:33px!important}.omapi-screen .omapi-panel__5 .omapi-next-link a[data-v-6ce55f3d]:hover{color:#087ce1;text-decoration:none}.omapi-next-link img[data-v-6ce55f3d]{display:inline-block;margin-right:16px}.omapi-panel__5 .omapi-card-footer[data-v-6ce55f3d]{justify-content:center}@media screen and (max-width:815px){.omapi-panel__5 .omapi-card-footer[data-v-6ce55f3d]{flex-direction:column}}.omapi-panel__5 .omapi-card-footer .omapi-button[data-v-6ce55f3d]{font-size:16px;font-weight:700;margin-right:10px;padding:16px 24px}@media screen and (max-width:815px){.omapi-panel__5 .omapi-card-footer .omapi-button[data-v-6ce55f3d]{margin:0 0 10px}}.omapi-panel__5 .omapi-card-footer .omapi-button[data-v-6ce55f3d]:not(.omapi-button__blue):not(:hover){color:#23282d}.omapi-panel__5 .omapi-card-footer .omapi-button.omapi-button__blue[data-v-6ce55f3d]{margin-right:0}.omapi-next-social-buttons img[data-v-6ce55f3d]{margin-right:5px}.omapi-panel__welcome a.omapi-wizard-forward[data-v-d52b7ae6],.omapi-panel__welcome button.omapi-wizard-forward[data-v-d52b7ae6]{margin-bottom:20px}.omapi-screen .omapi-settings-general .omapi-button:not(.loading-button)[disabled]{display:flex;justify-content:center;align-items:center;flex-direction:column;opacity:1}.omapi-screen .omapi-settings-general .omapi-button:not(.loading-button)[disabled]>span{color:transparent;height:0}.omapi-screen .omapi-settings-page .omapi-button .om-circle-loading{margin:0}.omapi-screen .omapi-settings-page .omapi-settings-page__woo-connected.omapi-alert{padding:6px 20px 5px;display:inline-flex}.omapi-screen .omapi-settings-page .omapi-settings-page__woo-connected.omapi-alert .alert-message{font-weight:600}.omapi-screen .omapi-settings-page .omapi-has-tooltip .popper{max-width:1000px}.omapi-screen .omapi-settings-page__disconnect.omapi-button{display:inline-flex;justify-content:center;align-items:center}.omapi-screen .omapi-settings-page__disconnect.omapi-button svg{width:10px;height:10px;margin-right:3px}.your-plan{margin:0 0 20px}.row-connect-buttons{align-content:center;align-items:center;display:flex;margin:0 0 20px}@media screen and (max-width:920px){.row-connect-buttons{flex-wrap:wrap;align-items:flex-start;margin-bottom:0}}.row-connect-buttons .omapi-button{margin:0!important}@media screen and (max-width:920px){.row-connect-buttons .omapi-button{margin-bottom:10px!important}}.row-connect-buttons .omapi-settings-page__connected.omapi-alert{padding:6px 20px 5px;margin-right:18px;margin-bottom:0}@media screen and (max-width:920px){.row-connect-buttons .omapi-settings-page__connected.omapi-alert{margin-bottom:10px}}.row-connect-buttons .omapi-settings-page__connected.omapi-alert .alert-message{font-weight:600}.row-connect-buttons .omapi-button.omapi-button__medium{font-size:14px}.row-connect-buttons-or{align-self:center;margin:0 10px}.omapi-settings-page[data-v-ed2048d4]{position:relative}.omapi-settings-page .omapi-settings-page__top-save[data-v-ed2048d4]{position:absolute;top:12px;right:0;margin-right:0}.omapi-settings-page__not-connected[data-v-ddcdfe92] .omapi-no-connection-title{font-size:24px;margin:0 auto 14px}.omapi-settings-page__not-connected[data-v-ddcdfe92] .omapi-no-connection-title:before{content:"";display:block;height:32px;padding:0 0 8px 0;vertical-align:text-top;background:url(../img/red-alert-circle.32339230.svg) top no-repeat;background-size:32px}.omapi-settings-page__not-connected[data-v-ddcdfe92] .omapi-no-connection-subtitle{max-width:560px;margin:0 auto 24px;font-size:16px}.omapi-settings-page[data-v-1da99d3b]{position:relative}.omapi-settings-page .omapi-settings-page__top-save[data-v-1da99d3b]{position:absolute;top:12px;right:0;margin-right:0}#omapi-affiliate-link-position{border-color:#c9d0d6}.omapi-analytics-settings__options-ga>label{display:block;margin-bottom:10px}.omapi-analytics-settings__options-ga-more{display:block;margin-top:10px}.omapi-analytics-settings__options-ga-selects{display:flex;flex-wrap:wrap;justify-content:space-between}.omapi-analytics-settings__options-ga-selects>div{flex-basis:calc(50% - 9px);width:calc(50% - 9px)}.omapi-horizontal-label{display:flex;align-items:center;margin:5px 0}.omapi-horizontal-label .omapi-horizontal-label{margin:0}.omapi-horizontal-label .omapi-toggle{margin-right:20px}.omapi-horizontal-label [type=number]{width:75px!important;margin:0 0 0 2px!important}.omapi-integration-settings__defaults{position:relative}.omapi-integration-settings__defaults:before{content:"";width:100%;height:100px;position:absolute;top:-25px;left:90px}.omapi-screen #wpcontent{padding:0 0 40px}.omapi-screen .wp-heading-inline{display:inline}.omapi-screen a{text-decoration:none;color:#087ce1}.omapi-screen a:not(.omapi-button):not(.omapi-link-title):hover{text-decoration:underline}.omapi-screen a.omapi-link-title{color:#23282d}.omapi-screen a.omapi-link-title:hover{color:#087ce1}.omapi-screen a:focus{box-shadow:none;outline:none}.omapi-screen p{margin:0 0 20px;font-size:16px;line-height:150%;color:#646970}.omapi-screen p.focus{font-size:18px;line-height:140%}.omapi-screen h1,.omapi-screen h2,.omapi-screen h3,.omapi-screen h4,.omapi-screen h5,.omapi-screen h6,.omapi-screen p.focus{font-weight:600;color:#23282d}.omapi-screen caption{display:block;font-size:14px;line-height:150%;color:#6c7781}.omapi-screen .omapi-flex{display:flex}.omapi-screen .omapi-flex-row{flex-direction:row}@media screen and (max-width:1080px){.omapi-screen .omapi-flex-row__1080{flex-direction:column}}.omapi-screen .omapi-flex-col{flex-direction:column}.omapi-screen .omapi-flex-wrap{flex-wrap:wrap}.omapi-screen .omapi-flex-child{flex:1 1;margin-left:20px}.omapi-screen .omapi-flex-child:first-child{margin-left:0}.omapi-screen .omapi-c-green{color:#46b450}.omapi-screen .omapi-c-red{color:#dc3232}.omapi-screen .omapi-c-orange{color:#f56e28}.omapi-screen .omapi-alert{border-radius:3px;padding:15px 20px;border:1px solid;margin-bottom:16px;display:flex;align-items:center;position:relative}.omapi-screen .omapi-alert.omapi-red{background-color:#fdf3f2;border-color:#dc3232}.omapi-screen .omapi-alert.omapi-blue{background-color:#f2f7fd;border-color:#087ce1}.omapi-screen .omapi-alert.omapi-orange{background-color:#fef8f2;border-color:#f56e28}.omapi-screen .omapi-alert.omapi-green{background-color:#fafffa;border-color:#46b450}.omapi-screen .omapi-alert .omapi-alert__primary{font-weight:600}.omapi-screen .omapi-alert.can-close{padding-right:40px}.omapi-screen .omapi-alert .close-alert{width:11px;position:absolute;right:15px;top:15px;color:inherit;height:11px;cursor:pointer;display:flex;justify-content:center;align-items:center;padding:10px;border:0}.omapi-screen .omapi-alert .close-alert:before{content:url(../img/nav-close.e87b7933.svg)}.omapi-screen .omapi-button{border-radius:3px;background-color:#fafafb;color:#555d66;border:1px solid #c9d0d6;text-decoration:none;margin-right:10px;display:inline-block}.omapi-screen .omapi-button[disabled]{opacity:.5}.omapi-screen .omapi-button[disabled]:hover{background-color:#fafafb;color:#555d66;border-color:#c9d0d6;cursor:default}.omapi-screen .omapi-button:not(.nohover):hover{background-color:#087ce1;border-color:#087ce1;color:#fff}.omapi-screen .omapi-button:not(.nohover):hover svg path{fill:#fff}.omapi-screen .omapi-button:hover{cursor:pointer}.omapi-screen .omapi-button.omapi-button__primary{font-weight:600}.omapi-screen .omapi-button.omapi-button__green{background-color:#46b450;border-color:#46b450;color:#fff}.omapi-screen .omapi-button.omapi-button__green:not(.nohover):hover{background-color:#3fa548;border-color:#3fa548}.omapi-screen .omapi-button.omapi-button__blue{background-color:#087ce1;border-color:#087ce1;color:#fff}.omapi-screen .omapi-button.omapi-button__blue:not(.nohover):hover{background-color:#096bc1;border-color:#096bc1}.omapi-screen .omapi-button.omapi-button__white{background-color:#fff;color:#6c7781}.omapi-screen .omapi-button.omapi-button__white:not(.nohover):hover{background-color:#087ce1;color:#fff}.omapi-screen .omapi-button.omapi-button__transparent{background-color:transparent;color:#fff}.omapi-screen .omapi-button.omapi-button__transparent:not(.nohover):hover{background-color:rgba(0,0,0,.05);color:#fff;border-color:#fff}.omapi-screen .omapi-button.omapi-button__icon{font-size:14px;padding:8px 10px}.omapi-screen .omapi-button.omapi-button__small{font-size:13px;padding:7px 10px}.omapi-screen .omapi-button.omapi-button__medium{font-size:13px;padding:10.5px 10px}.omapi-screen .omapi-button.omapi-button__large{font-size:14px;padding:8px 14px}.omapi-screen .omapi-button.omapi-button__xlarge{font-size:16px;padding:16px 24px}.omapi-screen .omapi-button.omapi-button__monster{font-size:22px;padding:16px 56px;line-height:150%}.omapi-screen .omapi-button.omapi-link-arrow-after:after{font-size:inherit;margin-left:10px}.omapi-screen button.omapi-button__link{background-color:transparent;border:0;color:#087ce1;display:inline-block;margin:0;padding:0}.omapi-screen button.omapi-button__link:not(.nohover):hover{text-decoration:underline}.omapi-screen button.omapi-button__link:hover{cursor:pointer}.omapi-screen .omapi-multi-column__vert{flex-direction:column}.omapi-screen .omapi-multi-column__primary{flex-grow:1;flex-shrink:1}.omapi-screen .omapi-multi-column__title{color:#23282d;font-size:15px;line-height:21px;margin-bottom:7px}.omapi-screen .omapi-multi-column__text{color:#646970;font-size:13px;line-height:20px;margin-bottom:15px}.omapi-screen .omapi-multi-column__meta{display:flex}.omapi-screen .omapi-multi-column__meta li{margin-bottom:0;margin-right:25px}.omapi-screen .omapi-multi-column__meta-attr{color:#6c7781}.omapi-screen .omapi-multi-column__meta-value{color:#23282d}.omapi-screen .omapi-action:not(.no-icon):before{content:url(../img/red-alert-circle.32339230.svg);width:20px;height:20px;padding:3px 14px 3px 3px;vertical-align:text-top}.omapi-screen .omapi-info:not(.no-icon):before{content:url(../img/blue-information-circle.ec9999c2.svg);width:20px;height:20px;padding:3px 14px 3px 3px;vertical-align:text-top}.omapi-screen .omapi-warning:not(.no-icon):before{content:url(../img/orange-warning-circle.80e71989.svg);width:20px;height:20px;padding:3px 14px 3px 3px;vertical-align:text-top}.omapi-screen .omapi-success:before{content:url(../img/green-success-circle.52fe5261.svg);width:20px;height:20px;padding:3px 14px 3px 3px;vertical-align:text-top}.omapi-screen .omapi-success.inverted:before{content:url(../img/green-success.1c5055ee.svg)}.omapi-screen .omapi-success.large:before{content:url(../img/green-success-circle-lg.931544d8.svg);width:25px;height:25px}.omapi-screen .omapi-redx:before{content:url(../img/redx.66010999.svg);width:20px;height:20px;padding:3px 14px 3px 3px;vertical-align:text-top}.omapi-screen .omapi-redx.hollow:before{content:url(../img/redx-hollow.8bb523f4.svg)}.omapi-screen .omapi-rocket:before{content:url(../img/rocket.8cca24c0.svg);width:20px;height:20px;padding:3px 8px 3px 3px}.omapi-screen .omapi-rocket.rocket-blue:before{content:url(../img/rocket-blue.c44bdac0.svg)}.omapi-screen .omapi-book:before{content:url(../img/book-blue.27983dbf.svg);width:20px;height:20px;padding:3px 14px 3px 3px}.omapi-screen .omapi-document:before{content:url(../img/document.37d72e1e.svg)}.omapi-screen .omapi-document:before,.omapi-screen .omapi-help:before{width:20px;height:20px;padding:3px 14px 3px 3px}.omapi-screen .omapi-help:before{content:url(../img/blue-help.6529ddbb.svg);width:24px;height:25px}.omapi-screen .omapi-help.help-white:before{content:url(../img/help-white.9e074197.svg)}.omapi-screen .omapi-help.help-white.inverted:before,.omapi-screen .omapi-help.help-white:hover:before{content:url(../img/help-white-solid.496b8099.svg)}.omapi-screen .omapi-university:before{content:url(../img/university.a5ee6b23.svg);width:20px;height:20px;padding:3px 14px 3px 3px}.omapi-screen .omapi-icon-wrapper__left{padding-right:30px}.omapi-screen .omapi-icon-wrapper__right{padding-left:30px}.omapi-screen .omapi-icon-wrapper img{max-width:100px}.omapi-screen .omapi-input-wrap-column{margin-bottom:24px}.omapi-screen .omapi-input-wrap:last-child{margin-bottom:0}.omapi-screen .omapi-input-wrap label{color:#23282d;font-weight:600}.omapi-screen .omapi-input-wrap .omapi-input-description{color:#646970;line-height:1;margin:10px 0 15px}.omapi-screen .omapi-input{margin:12px 0 20px}.omapi-screen .omapi-input[type=number],.omapi-screen .omapi-input[type=password],.omapi-screen .omapi-input[type=search],.omapi-screen .omapi-input[type=text],.omapi-screen .omapi-input[type=url]{border:1px solid #c9d0d6;border-radius:3px;color:#646970;font-size:14px;line-height:2.5;padding:0 6px 0 10px;width:100%}.omapi-screen .omapi-input[type=number].omapi-input__inline,.omapi-screen .omapi-input[type=password].omapi-input__inline,.omapi-screen .omapi-input[type=search].omapi-input__inline,.omapi-screen .omapi-input[type=text].omapi-input__inline,.omapi-screen .omapi-input[type=url].omapi-input__inline{flex-grow:0;flex-shrink:0;flex-basis:48px;margin:0 10px 6px}.omapi-screen .omapi-input[type=number] ::-webkit-input-placeholder,.omapi-screen .omapi-input[type=password] ::-webkit-input-placeholder,.omapi-screen .omapi-input[type=search] ::-webkit-input-placeholder,.omapi-screen .omapi-input[type=text] ::-webkit-input-placeholder,.omapi-screen .omapi-input[type=url] ::-webkit-input-placeholder{color:rgba(100,105,112,.5)}.omapi-screen .omapi-input[type=number] ::-moz-placeholder,.omapi-screen .omapi-input[type=password] ::-moz-placeholder,.omapi-screen .omapi-input[type=search] ::-moz-placeholder,.omapi-screen .omapi-input[type=text] ::-moz-placeholder,.omapi-screen .omapi-input[type=url] ::-moz-placeholder{color:rgba(100,105,112,.5)}.omapi-screen .omapi-input[type=number] :-ms-input-placeholder,.omapi-screen .omapi-input[type=password] :-ms-input-placeholder,.omapi-screen .omapi-input[type=search] :-ms-input-placeholder,.omapi-screen .omapi-input[type=text] :-ms-input-placeholder,.omapi-screen .omapi-input[type=url] :-ms-input-placeholder{color:rgba(100,105,112,.5)}.omapi-screen .omapi-input[type=number] ::-ms-input-placeholder,.omapi-screen .omapi-input[type=password] ::-ms-input-placeholder,.omapi-screen .omapi-input[type=search] ::-ms-input-placeholder,.omapi-screen .omapi-input[type=text] ::-ms-input-placeholder,.omapi-screen .omapi-input[type=url] ::-ms-input-placeholder{color:rgba(100,105,112,.5)}.omapi-screen .omapi-input[type=number] ::placeholder,.omapi-screen .omapi-input[type=password] ::placeholder,.omapi-screen .omapi-input[type=search] ::placeholder,.omapi-screen .omapi-input[type=text] ::placeholder,.omapi-screen .omapi-input[type=url] ::placeholder{color:rgba(100,105,112,.5)}.omapi-screen .omapi-input[type=number]{padding:0 0 0 10px}.omapi-screen .omapi-checkbox{align-items:center;display:flex;font-size:14px;position:relative;margin-bottom:15px}.omapi-screen .omapi-checkbox [type=checkbox]{opacity:0;pointer-events:none;position:absolute}.omapi-screen .omapi-checkbox [type=checkbox]:disabled{opacity:0}.omapi-screen .omapi-checkbox-group{display:flex;flex-direction:column}.omapi-screen .omapi-checkbox__input{background:#fff;border:1px solid #c9d0d6;border-radius:4px;display:inline-block;height:16px;line-height:1;margin-right:10px;width:16px;min-width:16px}.omapi-screen .omapi-checkbox :checked+.omapi-checkbox__input{align-items:center;background:#087ce1;background-image:url(../img/white-checkmark.0c4d10d4.svg);background-size:10px;background-repeat:no-repeat;background-position:50%;border-color:#087ce1;display:flex;justify-content:center}.omapi-screen .omapi-checkbox :focus+.omapi-checkbox__input{outline:1px auto -webkit-focus-ring-color}.omapi-screen .omapi-checkbox__helper{color:#646970}.omapi-screen .omapi-checkbox__helper:before{content:"-";margin-left:.25rem}.omapi-screen .el-date-editor.el-input__inner{width:235px;min-height:31px;padding:0 10px;height:31px;margin:0 10px;border:1px solid #c9d0d6;border-radius:3px}.omapi-screen .el-date-editor.el-input__inner>*{color:#555d66;font-weight:400;font-size:13px;line-height:31px}.omapi-screen .el-date-editor.el-input__inner .el-input__icon.el-range__close-icon{display:none}.omapi-screen .el-date-editor.el-input__inner .el-range-separator{padding:0}.omapi-screen .el-picker-panel{z-index:999999!important}.omapi-screen .el-picker-panel__body th{color:#23282d}.omapi-screen .el-picker-panel__sidebar{width:154px}.omapi-screen .el-picker-panel__sidebar+.el-picker-panel__body{margin-left:154px}.omapi-screen .el-picker-panel .el-date-range-picker__header{color:#23282d}.omapi-screen .el-picker-panel .el-date-table td.today:not(.end-date) span{color:#23282d;background-color:#f7f8fb;border-radius:50%}.omapi-screen .el-picker-panel .el-date-table td.disabled span{color:#646970;opacity:.5}.omapi-screen .omapi-radio{align-items:center;display:flex;font-size:14px;line-height:2;position:relative}.omapi-screen .omapi-radio [type=radio]{opacity:0;pointer-events:none;position:absolute}.omapi-screen .omapi-radio-group{display:flex;flex-direction:column}.omapi-screen .omapi-radio-group__indent{color:#646970;padding:0 0 0 26px}.omapi-screen .omapi-radio-group__with-inputs .omapi-screen .omapi-radio{padding-bottom:10px}.omapi-screen .omapi-radio-group__with-inputs .omapi-screen .omapi-radio input{border-color:#c9d0d6;border-radius:3px;color:#646970;margin:0 10px;width:auto}.omapi-screen .omapi-radio-group__with-inputs .omapi-screen .omapi-radio input::-webkit-input-placeholder{color:rgba(100,105,112,.5)}.omapi-screen .omapi-radio-group__with-inputs .omapi-screen .omapi-radio input::-moz-placeholder{color:rgba(100,105,112,.5)}.omapi-screen .omapi-radio-group__with-inputs .omapi-screen .omapi-radio input:-ms-input-placeholder{color:rgba(100,105,112,.5)}.omapi-screen .omapi-radio-group__with-inputs .omapi-screen .omapi-radio input::-ms-input-placeholder{color:rgba(100,105,112,.5)}.omapi-screen .omapi-radio-group__with-inputs .omapi-screen .omapi-radio input::placeholder{color:rgba(100,105,112,.5)}.omapi-screen .omapi-radio__input{background:#fff;border:1px solid #c9d0d6;border-radius:50%;display:inline-block;height:16px;line-height:1;margin-right:10px;width:16px;min-width:16px}.omapi-screen .omapi-radio :checked+.omapi-radio__input{align-content:center;border-color:#087ce1;display:flex;justify-content:center}.omapi-screen .omapi-radio :checked+.omapi-radio__input:after{background:#087ce1;border:1px solid #fff;border-radius:50%;content:"";display:inline-block;height:14px;padding:0;width:14px}.omapi-screen .omapi-radio :focus+.omapi-radio__input{outline:1px auto -webkit-focus-ring-color}.omapi-screen .omapi-radio__helper{color:#646970}.omapi-screen .omapi-radio__helper:before{content:"-";margin-left:.25rem}.omapi-screen .omapi-dropdown{display:inline-block;position:relative}.omapi-screen .omapi-dropdown__button .omapi-button{margin-right:0}.omapi-screen .omapi-dropdown__container{background-color:#fff;border:1px solid #c9d0d6;border-radius:3px;box-shadow:0 3px 2px rgba(0,0,0,.05);display:block;position:absolute;margin-top:3px;z-index:9998;max-width:350px}.omapi-screen .omapi-dropdown__container ul{margin:0}.omapi-screen .omapi-dropdown__container ul li{margin:0;line-height:130%}.omapi-screen .omapi-dropdown__container ul li a{display:block;padding:7px 11px 8px}.omapi-screen .omapi-dropdown__container ul li:hover{background-color:#f2f7fd}.omapi-screen .omapi-dropdown__container ul li:hover a,.omapi-screen .omapi-dropdown__container ul li:hover a:hover{color:#087ce1;text-decoration:none}.omapi-screen .omapi-dropdown__container ul li a,.omapi-screen .omapi-dropdown__container ul li a:active,.omapi-screen .omapi-dropdown__container ul li a:visited{color:#555d66}.omapi-screen .omapi-dropdown__container ul li a.current,.omapi-screen .omapi-dropdown__container ul li a:active.current,.omapi-screen .omapi-dropdown__container ul li a:visited.current{color:#087ce1}.omapi-screen .omapi-dropdown__select{max-width:350px;width:100%}.omapi-screen .omapi-dropdown__select .omapi-dropdown__toggle{width:100%;display:flex;justify-content:space-between;color:#555d66;line-height:130%;padding-bottom:6px}.omapi-screen .omapi-dropdown__select .omapi-dropdown__toggle:after{content:url(../img/expand-more.9be22a9c.svg);transform:rotate(180deg);transition:transform .5s}.omapi-screen .omapi-input__select{border-color:#c9d0d6;border-radius:3px;color:#646970;font-size:14px;line-height:2.5;margin:0;max-width:350px;min-height:0;width:100%}.omapi-screen .omapi-input__select ::-webkit-input-placeholder{color:rgba(100,105,112,.5)}.omapi-screen .omapi-input__select ::-moz-placeholder{color:rgba(100,105,112,.5)}.omapi-screen .omapi-input__select :-ms-input-placeholder{color:rgba(100,105,112,.5)}.omapi-screen .omapi-input__select ::-ms-input-placeholder{color:rgba(100,105,112,.5)}.omapi-screen .omapi-input__select ::placeholder{color:rgba(100,105,112,.5)}.omapi-screen .omapi-input__select:focus{border-color:#c9d0d6;color:#646970}.omapi-screen .omapi-input__multiselect .multiselect{background-color:#fff;z-index:1}.omapi-screen .omapi-input__multiselect .multiselect:focus{box-shadow:none!important}.omapi-screen .omapi-input__multiselect .multiselect--active,.omapi-screen .omapi-input__multiselect .multiselect--disabled{z-index:55}.omapi-screen .omapi-input__multiselect .multiselect--active .multiselect__tags,.omapi-screen .omapi-input__multiselect .multiselect--disabled .multiselect__tags{border:1px solid #c9d0d6}.omapi-screen .omapi-input__multiselect .multiselect--active .multiselect__tags-wrap,.omapi-screen .omapi-input__multiselect .multiselect--disabled .multiselect__tags-wrap{border-bottom:1px solid #c9d0d6}.omapi-screen .omapi-input__multiselect .multiselect--active.multiselect__has-value .multiselect__tags:after{top:52px;right:15px}.omapi-screen .omapi-input__multiselect .multiselect--active .multiselect__tags:after{content:url(../img/search.e7c97515.svg);position:absolute;top:11px;right:35px}.omapi-screen .omapi-input__multiselect .multiselect--active .multiselect__select{transform:rotate(0deg)}.omapi-screen .omapi-input__multiselect .multiselect--active .multiselect__select:before{top:2px}.omapi-screen .omapi-input__multiselect .multiselect__help{font-size:13px;line-height:130%;color:#c9d0d6;font-weight:400;padding:9px 10px;border-bottom:1px solid #c9d0d6}.omapi-screen .omapi-input__multiselect .multiselect__placeholder{display:block;color:#646970;padding-top:4px;padding-left:10px;padding-right:32px;margin:5px 0 10px}.omapi-screen .omapi-input__multiselect .multiselect__tags{min-height:37px;padding:0;cursor:pointer;border:1px solid #c9d0d6;background-color:#fff;border-radius:3px}.omapi-screen .omapi-input__multiselect .multiselect__tags-wrap{padding:6px 6px 4px;display:block}.omapi-screen .omapi-input__multiselect .multiselect__tags input[type=text]{border-radius:0;margin:0;padding:9px 10px;border-radius:3px}.omapi-screen .omapi-input__multiselect .multiselect__tags input[type=text]::-webkit-input-placeholder{font-size:13px;line-height:130%;color:#c9d0d6}.omapi-screen .omapi-input__multiselect .multiselect__tags input[type=text]::-moz-placeholder{font-size:13px;line-height:130%;color:#c9d0d6}.omapi-screen .omapi-input__multiselect .multiselect__tags input[type=text]:-ms-input-placeholder{font-size:13px;line-height:130%;color:#c9d0d6}.omapi-screen .omapi-input__multiselect .multiselect__tags input[type=text]::-ms-input-placeholder{font-size:13px;line-height:130%;color:#c9d0d6}.omapi-screen .omapi-input__multiselect .multiselect__tags input[type=text]::placeholder{font-size:13px;line-height:130%;color:#c9d0d6}.omapi-screen .omapi-input__multiselect .multiselect__tag{background:#f0f2f4;color:#555d66;border-radius:3px;font-weight:600;padding:6px 24px 6px 6px;margin-bottom:0;max-width:320px}.omapi-screen .omapi-input__multiselect .multiselect__tag-icon{line-height:25px;width:18px;transition:none;margin-right:4px}.omapi-screen .omapi-input__multiselect .multiselect__tag-icon:after{color:#555d66}.omapi-screen .omapi-input__multiselect .multiselect__tag .remove-tag{position:absolute;right:0;top:0;display:flex;align-items:center;justify-content:center;width:30px;height:26px}.omapi-screen .omapi-input__multiselect .multiselect__tag .remove-tag svg{width:10px;height:10px;position:static}.omapi-screen .omapi-input__multiselect .multiselect__tag:hover,.omapi-screen .omapi-input__multiselect .multiselect__tag:hover i:after,.omapi-screen .omapi-input__multiselect .multiselect__tag:hover i:hover{background-color:#dc3232;color:#fff}.omapi-screen .omapi-input__multiselect .multiselect__single{padding:0 0 0 12px;margin-bottom:0;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;min-height:38px;max-width:calc(100% - 60px)}.omapi-screen .omapi-input__multiselect .multiselect__content>li{font-size:13px;color:#555d66;line-height:130%;margin-bottom:0}.omapi-screen .omapi-input__multiselect .multiselect__content>li:hover .multiselect__option{overflow:initial}.omapi-screen .omapi-input__multiselect .multiselect__nooptions .multiselect__option{cursor:default}.omapi-screen .omapi-input__multiselect .multiselect__option{padding:16px 12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:block}.omapi-screen .omapi-input__multiselect .multiselect__option--selected{font-weight:600;background:#dce9fa}.omapi-screen .omapi-input__multiselect .multiselect__option--selected span{color:#087ce1}.omapi-screen .omapi-input__multiselect .multiselect__option--highlight.multiselect__option{background:#f2f7fd}.omapi-screen .omapi-input__multiselect .multiselect__option--highlight.multiselect__option span{color:#087ce1}.omapi-screen .omapi-input__multiselect .multiselect__option--highlight.multiselect__option.multiselect__option--selected:after{content:url(../img/card-close.4249544e.svg);padding-left:10px;bottom:0;line-height:50px;text-align:center;background-color:#f2f7fd}.omapi-screen .omapi-input__multiselect .multiselect__select{background:none;height:42px;transform:rotate(180deg);z-index:99;padding:8px 8px;top:0}.omapi-screen .omapi-input__multiselect .multiselect__select:before{border:none;top:3px;content:url(../img/expand-more.9be22a9c.svg)}.omapi-screen .omapi-input__multiselect .multiselect__input[type=text]{border:none;padding:3px 0 0;box-shadow:none!important;line-height:1.4em;font-size:14px}.omapi-screen .omapi-input__multiselect .multiselect__content-wrapper{border:1px solid #c9d0d6;border-top:none;z-index:999}.omapi-screen .omapi-input__multiselect .multiselect__content{max-width:100%}.omapi-screen .omapi-input__multiselect .multiselect .omapi-input__multiselect-close-all{position:absolute;right:40px;z-index:999;cursor:pointer;height:42px}.omapi-screen .omapi-input__multiselect .multiselect .omapi-input__multiselect-close-all img{padding:15px 0}.omapi-screen .omapi-input__multiselect .multiselect__spinner{margin-right:25px}.omapi-screen .omapi-input__multiselect .multiselect__spinner:after,.omapi-screen .omapi-input__multiselect .multiselect__spinner:before{border-top-color:#087ce1}.omapi-screen .omapi-input__multiselect .multiselect__is-loading.multiselect__has-value .multiselect__spinner{margin-right:52px;z-index:1}.omapi-screen .omapi-toggle{display:flex;position:relative}.omapi-screen .omapi-toggle [type=checkbox]{opacity:0;pointer-events:none;position:absolute}.omapi-screen .omapi-toggle__button{background:#f7f8fb;color:#23282d;cursor:pointer;font-size:14px;font-weight:600;line-height:1;padding:11px 20px}.omapi-screen .omapi-toggle__button:first-of-type{border-top-left-radius:4px;border-bottom-left-radius:4px}.omapi-screen .omapi-toggle__button:last-of-type{border-top-right-radius:4px;border-bottom-right-radius:4px}.omapi-screen .omapi-toggle input:checked+.omapi-toggle__button+.omapi-toggle__button,.omapi-screen .omapi-toggle input:not(:checked)+.omapi-toggle__button{background:#087ce1;color:#fff;cursor:default}.omapi-screen .omapi-toggle input[disabled]+.omapi-toggle__button,.omapi-screen .omapi-toggle input[disabled]+.omapi-toggle__button+.omapi-toggle__button{opacity:.5}.omapi-screen .omapi-link-arrow-after{margin-right:1em;padding-right:7px;position:relative}.omapi-screen .omapi-link-arrow-after:after{content:"\2192";font-family:FontAwesome;font-size:13px;margin-left:2px}.omapi-screen .omapi-link-arrow-before{margin-left:1em;padding-left:7px;position:relative}.omapi-screen .omapi-link-arrow-before:before{content:"\2190";font-family:FontAwesome;font-size:13px;position:absolute;right:100%;top:0}.omapi-screen a.omapi-link-green{color:#46b450}.omapi-screen a.omapi-link-underline{text-decoration:underline}.omapi-screen .omapi-list{display:flex;flex-wrap:wrap;list-style:none}.omapi-screen .omapi-list__item{width:100%}.omapi-screen .omapi-list__twocol .omapi-list__item{width:50%}.omapi-screen .omapi-list__threecol .omapi-list__item{width:33%}.omapi-screen .omapi-list__fourcol .omapi-list__item{width:25%}.omapi-screen .omapi-detailed-list{margin:0}.omapi-screen .omapi-detailed-list>li{display:flex;padding-bottom:23px;border-bottom:1px solid #f1f1f1;margin-bottom:25px;justify-content:space-between}.omapi-screen .omapi-detailed-list>li:last-child{margin-bottom:0}.omapi-screen .omapi-modal__static{background-color:#fff;max-width:688px;width:100%;box-shadow:0 20px 60px -2px rgba(27,33,58,.4);padding:40px 100px;position:fixed;left:50%;transform:translateX(-50%);margin:80px 0 0 80px}@media screen and (max-width:1050px){.omapi-screen .omapi-modal__static{max-width:433px;margin-top:50px}}@media screen and (max-width:960px){.omapi-screen .omapi-modal__static{margin:30px 0 0 18px}}@media screen and (max-width:782px){.omapi-screen .omapi-modal__static{margin-left:0}}.omapi-screen .omapi-modal .content .alert{margin-bottom:20px}.omapi-screen .omapi-modal .content p{color:inherit;font-size:16px;font-weight:300;line-height:1.5;margin:0 0 1.5em}.omapi-screen .omapi-modal .content .buttons{display:flex;justify-content:space-between;padding:0}.omapi-screen .omapi-modal .content .buttons .omapi-button:last-of-type{margin-right:0}.omapi-screen .omapi-modal .footer{padding:10px}.omapi-screen .omapi-modal .omapi-modal-form .omapi-modal-form__section{display:flex;justify-content:space-between}.omapi-screen .omapi-modal .omapi-modal-form label:not(.form-toggle){font-weight:700;flex:0 1 25%;line-height:37px;margin-bottom:20px}.omapi-screen .omapi-modal .omapi-modal-form label.form-toggle{margin-bottom:23px;flex:0 1 75%;align-self:center}.omapi-screen .omapi-modal .omapi-modal-form label.form-toggle .toggle-switch{max-width:21px;margin-left:5px}.omapi-screen .omapi-modal .omapi-modal-form label.form-toggle:focus{box-shadow:none}.omapi-screen .omapi-modal .omapi-modal-form .input-select,.omapi-screen .omapi-modal .omapi-modal-form .omapi-input__multiselect,.omapi-screen .omapi-modal .omapi-modal-form .omapi-toggle,.omapi-screen .omapi-modal .omapi-modal-form input,.omapi-screen .omapi-modal .omapi-modal-form select,.omapi-screen .omapi-modal .omapi-modal-form textarea{margin-bottom:20px;flex:0 1 73%}.omapi-screen .omapi-modal .omapi-modal-form select{max-width:9999em}.omapi-screen .omapi-modal .omapi-modal-form textarea{min-height:150px}.omapi-screen .v--modal-overlay{color:inherit;font-size:16px;font-weight:300;line-height:1.5;z-index:9999}.omapi-screen .omapi-pagination{align-items:center;display:flex;margin-top:17px;color:#23282d}.omapi-screen .omapi-pagination__total{margin-right:7.5px}.omapi-screen .omapi-pagination__button{align-items:center;background:#fff;border-radius:4px;color:#23282d;display:flex;justify-content:center;margin-left:5px;margin-right:0;padding:6px 11px!important;min-height:30px}.omapi-screen .omapi-pagination__button:active,.omapi-screen .omapi-pagination__button:focus,.omapi-screen .omapi-pagination__button:hover{background:#087ce1;border-color:#087ce1;color:#fff}.omapi-screen .omapi-pagination__button[disabled]{background:transparent;color:#a0a5aa;cursor:default;pointer-events:none;opacity:1}.omapi-screen .omapi-pagination__button-symbol{font-size:16px}.omapi-screen .omapi-pagination__text{margin-left:5px;margin-right:0}.omapi-screen .omapi-pagination__input{background:#fff;border-radius:4px;color:#23282d;margin-left:5px;margin-right:0;padding-top:2px;padding-bottom:2px;width:30px;height:30px;font-size:13px;text-align:center}.omapi-screen .omapi-pagination__style-2 .omapi-pagination__button{border-radius:2px;border:1px solid #f1f1f1}.omapi-screen .omapi-pagination__style-2 .omapi-pagination__button:active,.omapi-screen .omapi-pagination__style-2 .omapi-pagination__button:focus,.omapi-screen .omapi-pagination__style-2 .omapi-pagination__button:hover{background:#fafafb;border-color:#6c7781;color:#23282d}.omapi-screen .omapi-pagination__style-2 .omapi-pagination__button-inactive{background:#f0f2f4;color:#23282d}.omapi-screen .omapi-plugin-banner{background-color:#087ce1;display:flex;align-items:center;height:74px}.omapi-screen .omapi-plugin-banner__wrapper{padding:22px 40px;display:flex;justify-content:space-between;align-items:center;width:100%}.omapi-screen .omapi-plugin-banner__logo{display:flex;align-items:flex-end;color:#fff}.omapi-screen .omapi-plugin-banner__logo img{width:164px;margin-right:13px}.omapi-screen .omapi-plugin-banner__page{font-size:18px;line-height:130%}.omapi-screen .omapi-plugin-banner__icons{display:flex;margin:0}.omapi-screen .omapi-plugin-banner__icons>li{margin:0}.omapi-screen .omapi-plugin-banner__icons>li>a,.omapi-screen .omapi-plugin-banner__icons>li>button{color:#fff}.omapi-screen .omapi-plugin-banner__icon{margin:0 0 0 20px;cursor:pointer}.omapi-screen .omapi-tabnav{display:flex;border-bottom:2px solid #e8e8eb;margin-bottom:25px}.omapi-screen .omapi-tabnav__item{display:flex;align-items:center;justify-content:center;height:60px;font-size:15px;color:#6c7781;padding:0 18px;cursor:pointer}.omapi-screen .omapi-tabnav__item-active{font-weight:600;color:#23282d;border-bottom:2px solid #087ce1;margin-bottom:-2px}.omapi-screen .omapi-has-tooltip:not(.omapi-has-tooltip__no-icon)>:last-child:after{content:url(../img/grey-help-circle.23fd784e.svg);color:#c9d0d6;vertical-align:middle;padding:1px 5px}.omapi-screen .omapi-has-tooltip .popper{background-color:#23282d;border-color:#23282d;border-radius:2px;max-width:200px;padding:6px 12px;color:#fff;text-align:center;box-shadow:none;font-size:13px;font-weight:300}.omapi-screen .omapi-has-tooltip .popper .popper__arrow{border-color:#23282d transparent transparent transparent;border-width:6px;bottom:-13px}.omapi-screen .omapi-has-tooltip.omapi-has-tooltip__no-arrow .popper .popper__arrow{display:none}.omapi-screen .omapi-action-box{background-color:#f7f8fb;color:#646970;padding:20px}.omapi-screen .omapi-action-box header{color:#23282d;font-size:16px;font-weight:600;margin-bottom:10px}.omapi-screen .text-black{color:#23282d}.omapi-screen .text-white{color:#fff}.omapi-screen .text-dark{color:#555d66}.omapi-screen .text-setting{color:#646970}.omapi-screen .text-secondary{color:#6c7781}.omapi-screen .bg-white-background{background-color:#fafafb}.omapi-screen .bg-white-button{background-color:#f7f8fb}.omapi-screen .bg-grey-cloud{background-color:#e8e8eb}.omapi-screen .upper{text-transform:uppercase}.omapi-screen .capital{text-transform:capitalize}.omapi-screen .font-bold{font-weight:600}.omapi-screen .stars{color:#ffd10e}.omapi-screen .inline{display:inline}.omapi-screen .block{display:block}.omapi-screen .flex{display:flex}.omapi-screen .omapi-text-center{text-align:center}.omapi-screen .omapi-mb-20{margin-bottom:20px}.omapi-screen .fade-enter-active,.omapi-screen .fade-leave-active{transition:opacity .2s}.omapi-screen .fade-enter,.omapi-screen .fade-leave-to{opacity:0}
 
vue/dist/css/common.f542e3fc.css ADDED
@@ -0,0 +1 @@
 
1
+ .close-alert [data-v-09ff7f10]{cursor:pointer}.form-checkbox-no-label,.form-checkbox-no-label .form-checkbox-wrapper{display:inline-block;width:18px;height:18px;line-height:18px}.form-checkbox{position:relative;display:inline-block;width:18px;height:18px;font:normal normal normal 14px/1 FontAwesome;color:#fff;vertical-align:bottom;text-align:center}.form-checkbox input{display:none}.form-checkbox input:checked+.fancy-checkbox{background:#0d82df}.form-checkbox input:checked+.fancy-checkbox:before{background:transparent}.form-checkbox input:disabled+.fancy-checkbox{cursor:default}.form-checkbox input.error+.fancy-checkbox{background:#f99}.form-checkbox .fancy-checkbox svg{color:#fff;width:12px;height:12px}.form-checkbox span{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#d7e5ff;transition:.2s;border-radius:3px;display:flex;align-items:center;justify-content:center}.form-checkbox span:before{position:absolute;content:"";height:16px;width:16px;left:1px;bottom:1px;background-color:#fff;transition:.2s;font-size:16px;line-height:18px;border-radius:2px}.input-copy-group{display:flex;align-items:flex-start}.input-copy-group input{margin-right:10px;font-family:monospace!important;font-size:.9em!important;line-height:14px;height:37px}.create-new-button{margin-left:10px;max-height:37px;position:relative;display:inline-block;width:auto}.create-new-button svg{width:32px;height:32px;vertical-align:top;transform:translateY(-50%) translateX(-50%);top:50%;left:50%;position:absolute}.preloader{position:relative}.preloader img,.preloader svg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#8a94ab}.preloader img:not(.archie-icon),.preloader svg:not(.archie-icon){max-width:192px}.circle-clipper,.gap-patch{overflow:hidden;border-color:inherit}.circle,.circle-clipper,.gap-patch,.preloader,.preloader-wrapper,.spinner-layer{font-size:0;-webkit-box-sizing:border-box;box-sizing:border-box}.preloader-aligner{display:flex;justify-content:center}.preloader-wrapper{width:240px;height:240px;display:inline-block;position:relative;animation:container-rotate 1568ms linear infinite}.gap-patch,.spinner-layer{position:absolute;height:100%}@keyframes container-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.spinner-layer{width:100%;opacity:0;border-color:#8a94ab}.active .spinner-layer{opacity:1;animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both}@keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg);transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg);transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg);transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg);transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg);transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg);transform:rotate(945deg)}to{-webkit-transform:rotate(3turn);transform:rotate(3turn)}}.gap-patch{top:0;left:45%;width:10%}.gap-patch .circle{width:1000%;left:-450%}.circle-clipper{display:inline-block;position:relative;width:50%;height:100%}.circle-clipper .circle{width:200%;height:100%;border-style:solid;border-color:inherit;border-bottom-color:transparent!important;border-radius:50%;-webkit-animation:none;animation:none;position:absolute;top:0;right:0;bottom:0}.circle-clipper.left .circle{left:0;border-right-color:transparent!important;-webkit-transform:rotate(129deg);transform:rotate(129deg)}.circle-clipper.right .circle{left:-100%;border-left-color:transparent!important;-webkit-transform:rotate(-129deg);transform:rotate(-129deg)}.active .circle-clipper.left .circle{animation:left-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}.active .circle-clipper.right .circle{animation:right-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}@keyframes left-spin{0%,to{-webkit-transform:rotate(130deg);transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}}@keyframes right-spin{0%,to{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}}.dashboard-card{background:#fff;border-radius:5px}.dashboard-card .content,.dashboard-card .toolbar{display:block}.dashboard-card .toolbar{padding:20px}.dashboard-card .content{padding:0 20px 20px}body .v--modal-overlay{background:hsla(0,0%,100%,.7)}body .v--modal-overlay .v--modal{color:#41495b;border-radius:5px}body .v--modal-overlay .v--modal-box{overflow:visible}body .v--modal-overlay .v--modal .header{color:#fff;background:#41495b;padding:14px 20px;font-size:18px;font-weight:700;display:flex;align-items:center;max-height:50px;border-radius:5px 5px 0 0}body .v--modal-overlay .v--modal .header svg{width:20px;margin-right:10px}body .v--modal-overlay .v--modal .header .close{color:#fff;display:flex;flex-grow:1;max-height:50px;justify-content:flex-end;align-items:center}body .v--modal-overlay .v--modal .header .close button{display:flex;align-items:center}body .v--modal-overlay .v--modal .header .close svg{width:16px!important;height:16px;margin-right:0;cursor:pointer}body .v--modal-overlay .v--modal .content{padding:20px}.popper{width:auto;background-color:#fafafa;color:#212121;text-align:center;padding:2px;display:inline-block;border-radius:3px;position:absolute;font-size:14px;font-weight:400;border:1px solid #ebebeb;z-index:200000;box-shadow:0 0 6px 0 #3a3a3a}.popper .popper__arrow{width:0;height:0;border-style:solid;position:absolute;margin:5px}.popper[x-placement^=top]{margin-bottom:5px}.popper[x-placement^=top] .popper__arrow{border-width:5px 5px 0 5px;border-color:#fafafa transparent transparent transparent;bottom:-5px;left:calc(50% - 5px);margin-top:0;margin-bottom:0}.popper[x-placement^=bottom]{margin-top:5px}.popper[x-placement^=bottom] .popper__arrow{border-width:0 5px 5px 5px;border-color:transparent transparent #fafafa transparent;top:-5px;left:calc(50% - 5px);margin-top:0;margin-bottom:0}.popper[x-placement^=right]{margin-left:5px}.popper[x-placement^=right] .popper__arrow{border-width:5px 5px 5px 0;border-color:transparent #fafafa transparent transparent;left:-5px;top:calc(50% - 5px);margin-left:0;margin-right:0}.popper[x-placement^=left]{margin-right:5px}.popper[x-placement^=left] .popper__arrow{border-width:5px 0 5px 5px;border-color:transparent transparent transparent #fafafa;right:-5px;top:calc(50% - 5px);margin-left:0;margin-right:0}.input-select{display:inline-block;position:relative}.input-select .caret,.input-select .clear-results{position:absolute;top:14px;right:14px;z-index:50;color:#9db3dc}.input-select .caret svg,.input-select .clear-results svg{vertical-align:top;width:10px;height:auto;transition:.2s;cursor:pointer}.input-select .caret+.multiselect__clear .clear-results{top:13px;right:38px}.input-select .caret+.multiselect__clear .clear-results .clear-results-icon{width:8px;height:auto}.form-toggle{position:relative;display:inline-block;width:21px;height:14px}.form-toggle input{display:none}.form-toggle input:checked+.toggle-switch{background-color:#74ba0d}.form-toggle input:checked+.toggle-switch:before{transform:translateX(7px)}.form-toggle input:focus+.toggle-switch{box-shadow:0 0 1px #74ba0d}.form-toggle .toggle-switch{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ce1f32;border-radius:15px;transition:.2s}.form-toggle .toggle-switch:before{position:absolute;content:"";height:12px;width:12px;left:1px;bottom:1px;background-color:#fff;border-radius:50%;transition:.2s}._om_inbox-icon-fill[data-v-d69bdb96]{display:none}._om_inbox-icon-hover-fill:hover ._om_inbox-icon-fill[data-v-d69bdb96],._om_inbox-icon-solid ._om_inbox-icon-fill[data-v-d69bdb96]{display:block}.omapi-card{background-color:#fff;box-shadow:0 3px 2px rgba(0,0,0,.05);margin-bottom:16px;position:relative;flex-grow:0;flex-shrink:1;flex-basis:100%;color:#23282d;flex-direction:column}.omapi-card,.omapi-card__flex{display:flex;justify-content:space-between}.omapi-card__flex{flex-wrap:wrap}.omapi-card__half{flex-basis:49%}.omapi-card__third{flex-basis:32%}.omapi-card__third-two{flex-basis:67%}.omapi-card__fourth{flex-basis:23.5%}.omapi-card__fifth{flex-basis:calc(20% - 16px)}.omapi-card__sixth{flex-basis:calc(16% - 16px)}.omapi-card__closed{margin:0}.omapi-card-title{font-size:16px;font-weight:600;padding:24px 30px 22px;border-bottom:1px solid #ddd;display:flex;justify-content:space-between;align-items:center}.omapi-card-content{padding:20px 30px 0;cursor:default}.omapi-card.omapi-card__notitle .omapi-card-content{padding-top:30px}.omapi-card.omapi-card__notitle .omapi-card-icon__close{position:absolute;right:20px;top:20px}.omapi-card.omapi-card__nofooter .omapi-card-content{padding-bottom:30px}.omapi-card-footer{padding:20px 30px;display:flex;justify-content:space-between;align-items:center;cursor:default}.omapi-card-footer :last-child{margin-right:0}.omapi-card-footer .omapi-status .omapi-multi-column__meta-attr{color:#646970;font-size:14px;line-height:21px}.omapi-card-footer .omapi-status .omapi-multi-column__meta-value{font-size:14px;line-height:21px;font-weight:600;color:#23282d}.omapi-card-footer .omapi-status .omapi-multi-column__meta-green{color:#46b450}.omapi-card-footer .omapi-status .omapi-multi-column__meta-red{color:#dc3232}.omapi-card-icon{color:#606a73;cursor:pointer}.omapi-card-icon__close{content:url(../img/card-close.4249544e.svg)}.omapi-card-icon__min-closed,.omapi-card-icon__min-open{content:url(../img/expand-more.9be22a9c.svg);transition:transform .5s}.omapi-card-icon__min-closed{transform:rotate(180deg)}.omapi-card__border{border-bottom:1px solid #ddd;padding-bottom:10px}.omapi-card__no-border{border-bottom:none}.omapi-card__child,.omapi-card__no-padding>.omapi-card-content.omapi-card-content,.omapi-card__no-padding>.omapi-card-footer.omapi-card-footer,.omapi-card__no-padding>.omapi-card-title.omapi-card-title{padding:0}.omapi-card__child .omapi-card{margin-bottom:0}.omapi-card-setting-section{border-bottom:1px solid #f1f1f1;display:flex;flex-direction:row;margin-bottom:30px;padding-bottom:30px}.omapi-card-setting-section.disabled>*{position:relative}.omapi-card-setting-section.disabled>:before{content:"";background:#fff;position:absolute;top:0;bottom:0;left:0;right:0;opacity:.5;z-index:1}.omapi-card-setting-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.omapi-card-setting-section>header{flex:0 0 210px;padding-right:20px}@media screen and (max-width:850px){.omapi-card-setting-section>header{flex:0 0 150px}}.omapi-card-setting-section>header>*{font-size:16px;font-weight:600;margin:0}.omapi-codebox[data-v-4be92179]{background-color:#f7f8fb;border-radius:3px;padding:25px;font-size:13px;color:#646970;line-height:150%;cursor:default}.omapi-codebox__help[data-v-4be92179]{margin-bottom:12px}.omapi-codebox__copy[data-v-4be92179]{display:inline-flex}.omapi-codebox__copy[data-v-4be92179]:focus{box-shadow:0 0 0 1px #007cba;outline:2px solid transparent;border-radius:3px}.omapi-codebox__copy span[data-v-4be92179]{border:1px solid #ddd;border-radius:3px;padding:16px;background-color:#fff;font-weight:600;cursor:copy}.omapi-codebox__copy span.omapi-codebox__copy-icon[data-v-4be92179]{border-top-left-radius:0;border-bottom-left-radius:0;border-left:none;color:#606a73;font-size:20px}.omapi-codebox__copy span.omapi-codebox__copy-icon .fa[data-v-4be92179]{font-weight:600}.omapi-codebox__copy span.omapi-codebox__code[data-v-4be92179]{color:#23282d;font-family:Courier,serif;border-top-right-radius:0;border-bottom-right-radius:0}.omapi-no-campaigns[data-v-387168e8]{text-align:center}.omapi-no-campaigns-title[data-v-387168e8]{font-size:16px;line-height:140%;font-weight:600}.omapi-no-campaigns-buttons[data-v-387168e8],.omapi-no-campaigns-subtitle[data-v-387168e8]{font-size:13px;line-height:150%;color:#646970;margin:5px 0 15px}.omapi-no-campaigns-buttons .omapi-button.omapi-button__medium[data-v-387168e8],.omapi-no-campaigns-subtitle .omapi-button.omapi-button__medium[data-v-387168e8]{margin:0 10px;font-size:14px}.omapi-no-connection[data-v-3baa3680]{text-align:center}.omapi-no-connection-title[data-v-3baa3680]{font-size:16px;line-height:140%;font-weight:600}.omapi-no-connection-buttons[data-v-3baa3680],.omapi-no-connection-subtitle[data-v-3baa3680]{font-size:13px;line-height:150%;color:#646970;margin:5px 0 15px}.omapi-no-connection-buttons .omapi-button.omapi-button__medium[data-v-3baa3680],.omapi-no-connection-subtitle .omapi-button.omapi-button__medium[data-v-3baa3680]{margin:0 10px 10px;font-size:14px}.omapi-no-connection .omapi-no-connection-buttons[data-v-3baa3680]{display:flex;justify-content:center;align-items:center}.omapi-no-connection .omapi-no-connection-buttons .omapi-button[data-v-3baa3680]{margin-bottom:0;padding:10px}.omapi-no-connection .omapi-no-connection-buttons .omapi-button[data-v-3baa3680]:last-child{padding:11px 10px}.omapi-screen .omapi-notifications{overflow:hidden;margin-top:12px}.omapi-screen .omapi-notifications.omapi-card__notitle.omapi-card__nofooter .omapi-card-content{padding:24px 17px}.omapi-screen .omapi-notifications__image svg{margin-right:26px}.omapi-screen .omapi-notifications__content{display:flex;flex-direction:column;justify-content:space-evenly;height:100%}.omapi-screen .omapi-notifications__title{font-size:21px;line-height:1.4em;margin-bottom:7px;font-weight:600}.omapi-screen .omapi-notifications__text{font-size:13px;line-height:1.5em;color:#646970;margin-bottom:10px}.omapi-screen .omapi-notifications__buttons{height:27px;display:flex;align-items:center}.omapi-screen .omapi-notifications__buttons .omapi-button.omapi-button__small{line-height:1em;padding:6px 10px}.omapi-screen .omapi-notifications__nav{display:flex;justify-content:flex-end;align-items:center;margin-top:-26px}.omapi-screen .omapi-notifications__nav .omapi-button.omapi-pagination__button-symbol{font-size:20px;font-weight:400;color:#606a73;padding:2px 10px!important;line-height:1em}.omapi-screen .omapi-notifications__nav .omapi-button.omapi-pagination__button-symbol:active,.omapi-screen .omapi-notifications__nav .omapi-button.omapi-pagination__button-symbol:focus,.omapi-screen .omapi-notifications__nav .omapi-button.omapi-pagination__button-symbol:hover{color:#fff}.omapi-screen .omapi-notifications__nav .omapi-button.omapi-pagination__button-symbol[disabled]{opacity:.5}.omapi-screen .omapi-notifications__nav .omapi-pagination__count{padding-right:5px}.omapi-progress-bar{display:flex;margin:0 auto 40px;justify-content:center}.omapi-progress-bar:after{background:#ddd;content:"";display:block;height:2px}.omapi-progress-bar__step{align-items:center;display:flex;justify-content:center}.omapi-progress-bar__step:before{background:#ddd;content:"";display:block;height:2px;width:76px}.omapi-progress-bar__step:after{background:#dcdde1;border:4px solid #f6f7f8;border-radius:50%;content:"";display:block;height:13.3px;width:13.3px}.omapi-progress-bar__step-active:after,.omapi-progress-bar__step-active:before{background:#087ce1}.omapi-progress-bar__step:first-child:before{display:none}#om-flyout[data-v-4839773f]{position:fixed;z-index:9998;transition:all .2s ease-in-out;right:40px;bottom:40px;opacity:1}@media (max-width:960px){#om-flyout[data-v-4839773f]{display:none}}#om-flyout .om-flyout-head[data-v-4839773f]{display:block}#om-flyout .om-flyout-head img[data-v-4839773f]{background-color:#fff;width:54px;height:54px;display:block;border-radius:50%;border:3px solid #a3c47b;overflow:hidden;box-shadow:0 3px 20px rgba(0,0,0,.2);transition:all .2s ease-in-out}#om-flyout .om-flyout-head:hover img[data-v-4839773f]{box-shadow:0 3px 30px rgba(0,0,0,.25)}#om-flyout .om-flyout-head .om-flyout-label[data-v-4839773f]{opacity:0;transform:translateY(-50%) scale(0);margin-right:-50px}#om-flyout .om-flyout-head:hover .om-flyout-label[data-v-4839773f]{opacity:1;transform:translateY(-50%) scale(1);margin-right:0}#om-flyout .om-flyout-head[data-v-4839773f]:focus{box-shadow:none}#om-flyout .om-flyout-head .om-flyout-label[data-v-4839773f]{right:calc(100% + 15px)}#om-flyout .om-flyout-label[data-v-4839773f]{position:absolute;display:block;top:50%;right:calc(100% + 25px);transform:translateY(-50%);-moz-transform:translateY(-50%);-webkit-transform:translateY(-50%);color:#fff;background:#5f5e5e 0 0 no-repeat padding-box;font-size:12px;white-space:nowrap;padding:5px 10px;height:auto!important;line-height:normal;transition:all .2s ease-out;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px}#om-flyout .om-flyout-item[data-v-4839773f]{position:absolute;left:10px;width:40px;height:40px;opacity:0;visibility:hidden;transition:all .2s ease-in-out;transform:scale(0);border-radius:50%;box-shadow:0 3px 20px rgba(0,0,0,.2);background:#036aab 0 0 no-repeat padding-box;text-align:center;vertical-align:middle}#om-flyout .om-flyout-item i[data-v-4839773f]{color:#fff;font-size:20px;line-height:40px;vertical-align:middle}#om-flyout .om-flyout-item.om-flyout-item-0[data-v-4839773f]{bottom:75px}#om-flyout .om-flyout-item.om-flyout-item-1[data-v-4839773f]{bottom:130px}#om-flyout .om-flyout-item.om-flyout-item-2[data-v-4839773f]{bottom:185px}#om-flyout .om-flyout-item.om-flyout-item-3[data-v-4839773f]{bottom:240px}#om-flyout .om-flyout-item.om-flyout-item-4[data-v-4839773f]{bottom:295px}#om-flyout .om-flyout-item[data-v-4839773f]:hover{box-shadow:0 3px 30px rgba(0,0,0,.25);background:#0096f0 0 0 no-repeat padding-box}#om-flyout .om-flyout-item:hover .om-flyout-label[data-v-4839773f]{background:#444 0 0 no-repeat padding-box}#om-flyout.opened .om-flyout-item[data-v-4839773f]{opacity:1;visibility:visible;transform:scale(1)}#om-flyout.opened .om-flyout-head .om-flyout-label[data-v-4839773f]{display:none}#om-flyout.opened .om-flyout-item-0[data-v-4839773f]{transition:transform .2s 0ms,background-color .2s}#om-flyout.opened .om-flyout-item-1[data-v-4839773f]{transition:transform .2s 35ms,background-color .2s}#om-flyout.opened .om-flyout-item-2[data-v-4839773f]{transition:transform .2s 70ms,background-color .2s}#om-flyout.opened .om-flyout-item-3[data-v-4839773f]{transition:transform .2s 105ms,background-color .2s}#om-flyout.opened .om-flyout-item-4[data-v-4839773f]{transition:transform .2s .14s,background-color .2s}#om-flyout.out[data-v-4839773f]{opacity:0;visibility:hidden}.omapi-review-bar.omapi-card__notitle.omapi-card__nofooter .omapi-card-content{padding:24px 17px}.omapi-review-bar__title{font-size:21px;line-height:1.4em;font-weight:600}.omapi-review-bar__buttons{margin-top:20px}.omapi-review-bar__buttons .omapi-button{height:34px}.omapi-review-bar__step{margin-top:20px}.omapi-review-bar__step a+a{margin-right:10px}.omapi-tabnav{display:flex;border-bottom:2px solid #e8e8eb;margin-bottom:25px}.omapi-tabnav__item{display:flex;align-items:center;justify-content:center;height:60px;font-size:15px;color:#6c7781;padding:0 18px;cursor:pointer}.omapi-tabnav__item-active{font-weight:600;color:#23282d;border-bottom:2px solid #087ce1;margin-bottom:-2px}.omapi-create-campaign-card.omapi-card.omapi-card__notitle .omapi-card-content{padding:40px 40px 10px}@media screen and (max-width:1024px){.omapi-create-campaign-card .omapi-card-footer{text-align:center}}.omapi-create-campaign{display:flex;align-items:center}.omapi-create-campaign .omapi-multi-column__primary{flex-basis:60%}@media screen and (max-width:1024px){.omapi-create-campaign .omapi-multi-column__primary{margin-top:20px}}.omapi-create-campaign__subtitle{color:#6c7781;font-size:16px;font-weight:600;line-height:130%;margin-bottom:6px}.omapi-create-campaign__title{line-height:130%;font-size:32px;margin-top:0;letter-spacing:-1px;margin-bottom:20px}.omapi-create-campaign p.omapi-create-campaign__text{line-height:160%}.omapi-create-campaign__video{padding-left:5%;cursor:pointer}.omapi-create-campaign__video img{max-width:525px;display:block;box-shadow:0 2px 5px rgba(0,0,0,.2);width:100%}.omapi-create-campaign__link-more.omapi-create-campaign__link-more{display:block;width:400px;margin-top:10px;text-align:center;line-height:150%}@media screen and (max-width:1024px){.omapi-create-campaign__link-more.omapi-create-campaign__link-more{width:100%}}@media screen and (max-width:1024px){.omapi-create-campaign{flex-direction:column-reverse;text-align:center}}.omapi-welcomebox .omapi-card-footer{padding-left:40px;padding-right:40px}.omapi-welcomebox .omapi-card-footer .learn-more-content{width:100%}.omapi-welcomebox .omapi-card-footer .learn-more-content .omapi-connect{display:flex;justify-content:center;margin:60px 0}.omapi-welcomebox .omapi-card-footer .learn-more-content .omapi-connect.omapi-no-connection-buttons span{display:flex;align-items:center}.omapi-welcomebox .omapi-card-footer .learn-more-content .omapi-join-thousands{text-align:center;margin:60px auto;width:60%}@media screen and (max-width:1005px){.omapi-welcomebox .omapi-card-footer .learn-more-content .omapi-join-thousands{width:89%}}.omapi-welcomebox hr{margin:40px 0 60px 0}.welcome-video.v--modal-overlay{background:rgba(0,0,0,.9)}.welcome-video.v--modal-overlay .v--modal{background:#000}.welcome-video.v--modal-overlay .v--modal .content{padding:0}.welcome-video.v--modal-overlay .v--modal .content iframe{margin-bottom:-6px}.omapi-featured-in{text-align:center}.omapi-featured-in h2{font-size:20px;font-weight:700;margin-bottom:40px}.omapi-featured-in img{margin-bottom:60px;max-width:100%}.omapi-effect{display:flex;margin-bottom:80px;width:100%}.omapi-effect .omapi-effect_col:first-of-type{width:55%}@media screen and (max-width:1065px){.omapi-effect .omapi-effect_col:first-of-type{width:100%}}.omapi-effect .omapi-effect_col:last-of-type{width:45%}.omapi-effect .omapi-effect_col:last-of-type img{height:auto;width:100%}@media screen and (max-width:1065px){.omapi-effect .omapi-effect_col:last-of-type img{max-width:500px;margin:10px auto 0}}@media screen and (max-width:1065px){.omapi-effect .omapi-effect_col:last-of-type{width:100%}}.omapi-effect h2{font-size:28px;font-weight:700;margin-top:0;line-height:1.25}@media screen and (max-width:1065px){.omapi-effect{flex-direction:column;text-align:center;margin-bottom:30px}}.omapi-testimonials{display:flex;justify-content:space-between;margin:0 auto!important;width:90%}.omapi-testimonials .omapi-testimonials__item{border:1px solid #ddd;box-shadow:0 3px 2px rgba(0,0,0,.05);flex:0 0 25%;padding:30px;text-align:center;display:flex;flex-direction:column;align-items:center}.omapi-testimonials .omapi-testimonials__item .icon-rating{display:block;margin-bottom:20px}.omapi-testimonials .omapi-testimonials__item .icon-rating .person{width:80px;margin-bottom:10px}.omapi-testimonials .omapi-testimonials__item .copy p{color:#646970;font-size:14px}@media screen and (max-width:950px){.omapi-testimonials{flex-direction:column}}.omapi-top-4__title{margin-bottom:80px;text-align:center}.omapi-top-4__title h2{font-size:20px;font-weight:700}.omapi-top-4__title h3{color:#646970!important;font-size:15px;font-weight:700}.omapi-top-4__items{margin:0 auto!important;width:90%}.omapi-top-4__items .omapi-top-4__item{display:flex;margin-bottom:40px}.omapi-top-4__items .omapi-top-4__item .omapi-top-4__copy,.omapi-top-4__items .omapi-top-4__item .omapi-top-4__icon{display:flex;flex-direction:column;justify-content:center}.omapi-top-4__items .omapi-top-4__item .omapi-top-4__icon img{height:auto;width:350px}@media screen and (max-width:1065px){.omapi-top-4__items .omapi-top-4__item .omapi-top-4__icon img{max-width:350px;margin:0 auto 10px}}.omapi-top-4__items .omapi-top-4__item .omapi-top-4__icon.mr{margin-right:80px}@media screen and (max-width:1065px){.omapi-top-4__items .omapi-top-4__item .omapi-top-4__icon.mr{margin-right:0}}.omapi-top-4__items .omapi-top-4__item .omapi-top-4__icon.ml{margin-left:80px}@media screen and (max-width:1065px){.omapi-top-4__items .omapi-top-4__item .omapi-top-4__icon.ml{margin-left:0}}.omapi-top-4__items .omapi-top-4__item .omapi-top-4__copy h4{font-size:16px;font-weight:700}.omapi-top-4__items .omapi-top-4__item .omapi-top-4__copy p{font-size:14px}.omapi-top-4__items .omapi-top-4__item.measuring .omapi-top-4__copy{margin-right:40px}.omapi-top-4__items .omapi-top-4__item.measuring .omapi-top-4__icon img{height:auto;width:400px}@media screen and (max-width:1065px){.omapi-top-4__items .omapi-top-4__item.measuring .omapi-top-4__icon img{max-width:400px;margin:0 auto 10px}}@media screen and (max-width:1065px){.omapi-top-4__items .omapi-top-4__item{flex-direction:column;text-align:center}.omapi-top-4__items .omapi-top-4__item:nth-child(2n){flex-direction:column-reverse}}.close-alert [data-v-ec8fcdc8]{cursor:pointer}.omapi-alert.omapi-alert-closed[data-v-ec8fcdc8]{display:none}.omapi-screen .omapi-alert-bar{background:#f7f8fb;padding:8px 0 9px;height:38px;box-sizing:border-box;text-align:center;line-height:18px;position:relative}@media screen and (max-width:950px){.omapi-screen .omapi-alert-bar{height:60px}}.omapi-screen .omapi-alert-bar a,.omapi-screen .omapi-alert-bar a:hover{color:#f56e28!important;text-decoration:underline}@media screen and (max-width:950px){.omapi-screen .omapi-alert-bar a,.omapi-screen .omapi-alert-bar a:hover{display:block}}.omapi-screen .omapi-alert-bar:before{content:"";background:url(../img/bell.4c686e25.svg) 50% no-repeat;display:inline-block;width:15px;height:15px;position:relative;left:-4px;top:3px}.omapi-screen .omapi-alert-bar__needs-connection .om-circle-loading{display:inline-block;margin:0 5px -5px}.omapi-screen .omapi-alert-bar__needs-connection.ringing:before,.omapi-screen .omapi-alert-bar__needs-upgrade.ringing:before{-webkit-animation:omringbell 4s ease-in-out 0s 1;animation:omringbell 4s ease-in-out 0s 1;transform-origin:50% 4px}.omapi-screen.omapi-has-alert .omapi-plugin-header{padding-top:38px}@media screen and (max-width:950px){.omapi-screen.omapi-has-alert .omapi-plugin-header{padding-top:60px}}.omapi-screen.omapi-has-alert .omapi-alert-bar{position:fixed;right:0;left:0;margin-left:160px;border:1px solid #e0e0e0}.omapi-screen.omapi-has-alert .omapi-alert-bar-wrapper{position:absolute;top:-112px;right:0;width:100%;height:38px;background:#f7f8fb;z-index:1}@media screen and (max-width:950px){.omapi-screen.omapi-has-alert .omapi-alert-bar-wrapper{height:60px;top:-134px}}@media screen and (max-width:960px){.omapi-screen.omapi-has-alert .omapi-alert-bar{margin-left:36px}}@media screen and (max-width:782px){.omapi-screen.omapi-has-alert .omapi-alert-bar{margin-left:0}}.omapi-screen.omapi-has-alert.folded .omapi-alert-bar{margin-left:36px}@-webkit-keyframes omringbell{0%{transform:rotate(0)}1%{transform:rotate(30deg)}3%{transform:rotate(-28deg)}5%{transform:rotate(34deg)}7%{transform:rotate(-32deg)}9%{transform:rotate(30deg)}11%{transform:rotate(-28deg)}13%{transform:rotate(26deg)}15%{transform:rotate(-24deg)}17%{transform:rotate(22deg)}19%{transform:rotate(-20deg)}21%{transform:rotate(18deg)}23%{transform:rotate(-16deg)}25%{transform:rotate(14deg)}27%{transform:rotate(-12deg)}29%{transform:rotate(10deg)}31%{transform:rotate(-8deg)}33%{transform:rotate(6deg)}35%{transform:rotate(-4deg)}37%{transform:rotate(2deg)}39%{transform:rotate(-1deg)}41%{transform:rotate(1deg)}43%{transform:rotate(0)}to{transform:rotate(0)}}@keyframes omringbell{0%{transform:rotate(0)}1%{transform:rotate(30deg)}3%{transform:rotate(-28deg)}5%{transform:rotate(34deg)}7%{transform:rotate(-32deg)}9%{transform:rotate(30deg)}11%{transform:rotate(-28deg)}13%{transform:rotate(26deg)}15%{transform:rotate(-24deg)}17%{transform:rotate(22deg)}19%{transform:rotate(-20deg)}21%{transform:rotate(18deg)}23%{transform:rotate(-16deg)}25%{transform:rotate(14deg)}27%{transform:rotate(-12deg)}29%{transform:rotate(10deg)}31%{transform:rotate(-8deg)}33%{transform:rotate(6deg)}35%{transform:rotate(-4deg)}37%{transform:rotate(2deg)}39%{transform:rotate(-1deg)}41%{transform:rotate(1deg)}43%{transform:rotate(0)}to{transform:rotate(0)}}.omapi-no-connection-buttons span{display:inline-block;margin-right:10px}.loading-button[data-v-78056e4f],nav[data-v-4adeb596]{display:inline-block;position:relative}.loading-button .loading-button-spinner[data-v-78056e4f]{position:absolute;width:20px;height:20px;top:calc(50% - 10px);left:calc(50% - 10px)}.om-page{padding:30px 40px 0}.omapi-screen .omapi-subscribers-page .omapi-search{align-items:center}.omapi-screen .omapi-subscribers-page .omapi-search input[type=search]{flex:1;margin-bottom:0;height:30px}.omapi-screen .omapi-subscribers-page .omapi-search button[type=submit]{padding:6px 12px}@font-face{font-family:element-icons;src:url(../fonts/element-icons.535877f5.woff) format("woff"),url(../fonts/element-icons.732389de.ttf) format("truetype");font-weight:400;font-display:"auto";font-style:normal}[class*=" el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-ice-cream-round:before{content:"\E6A0"}.el-icon-ice-cream-square:before{content:"\E6A3"}.el-icon-lollipop:before{content:"\E6A4"}.el-icon-potato-strips:before{content:"\E6A5"}.el-icon-milk-tea:before{content:"\E6A6"}.el-icon-ice-drink:before{content:"\E6A7"}.el-icon-ice-tea:before{content:"\E6A9"}.el-icon-coffee:before{content:"\E6AA"}.el-icon-orange:before{content:"\E6AB"}.el-icon-pear:before{content:"\E6AC"}.el-icon-apple:before{content:"\E6AD"}.el-icon-cherry:before{content:"\E6AE"}.el-icon-watermelon:before{content:"\E6AF"}.el-icon-grape:before{content:"\E6B0"}.el-icon-refrigerator:before{content:"\E6B1"}.el-icon-goblet-square-full:before{content:"\E6B2"}.el-icon-goblet-square:before{content:"\E6B3"}.el-icon-goblet-full:before{content:"\E6B4"}.el-icon-goblet:before{content:"\E6B5"}.el-icon-cold-drink:before{content:"\E6B6"}.el-icon-coffee-cup:before{content:"\E6B8"}.el-icon-water-cup:before{content:"\E6B9"}.el-icon-hot-water:before{content:"\E6BA"}.el-icon-ice-cream:before{content:"\E6BB"}.el-icon-dessert:before{content:"\E6BC"}.el-icon-sugar:before{content:"\E6BD"}.el-icon-tableware:before{content:"\E6BE"}.el-icon-burger:before{content:"\E6BF"}.el-icon-knife-fork:before{content:"\E6C1"}.el-icon-fork-spoon:before{content:"\E6C2"}.el-icon-chicken:before{content:"\E6C3"}.el-icon-food:before{content:"\E6C4"}.el-icon-dish-1:before{content:"\E6C5"}.el-icon-dish:before{content:"\E6C6"}.el-icon-moon-night:before{content:"\E6EE"}.el-icon-moon:before{content:"\E6F0"}.el-icon-cloudy-and-sunny:before{content:"\E6F1"}.el-icon-partly-cloudy:before{content:"\E6F2"}.el-icon-cloudy:before{content:"\E6F3"}.el-icon-sunny:before{content:"\E6F6"}.el-icon-sunset:before{content:"\E6F7"}.el-icon-sunrise-1:before{content:"\E6F8"}.el-icon-sunrise:before{content:"\E6F9"}.el-icon-heavy-rain:before{content:"\E6FA"}.el-icon-lightning:before{content:"\E6FB"}.el-icon-light-rain:before{content:"\E6FC"}.el-icon-wind-power:before{content:"\E6FD"}.el-icon-baseball:before{content:"\E712"}.el-icon-soccer:before{content:"\E713"}.el-icon-football:before{content:"\E715"}.el-icon-basketball:before{content:"\E716"}.el-icon-ship:before{content:"\E73F"}.el-icon-truck:before{content:"\E740"}.el-icon-bicycle:before{content:"\E741"}.el-icon-mobile-phone:before{content:"\E6D3"}.el-icon-service:before{content:"\E6D4"}.el-icon-key:before{content:"\E6E2"}.el-icon-unlock:before{content:"\E6E4"}.el-icon-lock:before{content:"\E6E5"}.el-icon-watch:before{content:"\E6FE"}.el-icon-watch-1:before{content:"\E6FF"}.el-icon-timer:before{content:"\E702"}.el-icon-alarm-clock:before{content:"\E703"}.el-icon-map-location:before{content:"\E704"}.el-icon-delete-location:before{content:"\E705"}.el-icon-add-location:before{content:"\E706"}.el-icon-location-information:before{content:"\E707"}.el-icon-location-outline:before{content:"\E708"}.el-icon-location:before{content:"\E79E"}.el-icon-place:before{content:"\E709"}.el-icon-discover:before{content:"\E70A"}.el-icon-first-aid-kit:before{content:"\E70B"}.el-icon-trophy-1:before{content:"\E70C"}.el-icon-trophy:before{content:"\E70D"}.el-icon-medal:before{content:"\E70E"}.el-icon-medal-1:before{content:"\E70F"}.el-icon-stopwatch:before{content:"\E710"}.el-icon-mic:before{content:"\E711"}.el-icon-copy-document:before{content:"\E718"}.el-icon-full-screen:before{content:"\E719"}.el-icon-switch-button:before{content:"\E71B"}.el-icon-aim:before{content:"\E71C"}.el-icon-crop:before{content:"\E71D"}.el-icon-odometer:before{content:"\E71E"}.el-icon-time:before{content:"\E71F"}.el-icon-bangzhu:before{content:"\E724"}.el-icon-close-notification:before{content:"\E726"}.el-icon-microphone:before{content:"\E727"}.el-icon-turn-off-microphone:before{content:"\E728"}.el-icon-position:before{content:"\E729"}.el-icon-postcard:before{content:"\E72A"}.el-icon-message:before{content:"\E72B"}.el-icon-chat-line-square:before{content:"\E72D"}.el-icon-chat-dot-square:before{content:"\E72E"}.el-icon-chat-dot-round:before{content:"\E72F"}.el-icon-chat-square:before{content:"\E730"}.el-icon-chat-line-round:before{content:"\E731"}.el-icon-chat-round:before{content:"\E732"}.el-icon-set-up:before{content:"\E733"}.el-icon-turn-off:before{content:"\E734"}.el-icon-open:before{content:"\E735"}.el-icon-connection:before{content:"\E736"}.el-icon-link:before{content:"\E737"}.el-icon-cpu:before{content:"\E738"}.el-icon-thumb:before{content:"\E739"}.el-icon-female:before{content:"\E73A"}.el-icon-male:before{content:"\E73B"}.el-icon-guide:before{content:"\E73C"}.el-icon-news:before{content:"\E73E"}.el-icon-price-tag:before{content:"\E744"}.el-icon-discount:before{content:"\E745"}.el-icon-wallet:before{content:"\E747"}.el-icon-coin:before{content:"\E748"}.el-icon-money:before{content:"\E749"}.el-icon-bank-card:before{content:"\E74A"}.el-icon-box:before{content:"\E74B"}.el-icon-present:before{content:"\E74C"}.el-icon-sell:before{content:"\E6D5"}.el-icon-sold-out:before{content:"\E6D6"}.el-icon-shopping-bag-2:before{content:"\E74D"}.el-icon-shopping-bag-1:before{content:"\E74E"}.el-icon-shopping-cart-2:before{content:"\E74F"}.el-icon-shopping-cart-1:before{content:"\E750"}.el-icon-shopping-cart-full:before{content:"\E751"}.el-icon-smoking:before{content:"\E752"}.el-icon-no-smoking:before{content:"\E753"}.el-icon-house:before{content:"\E754"}.el-icon-table-lamp:before{content:"\E755"}.el-icon-school:before{content:"\E756"}.el-icon-office-building:before{content:"\E757"}.el-icon-toilet-paper:before{content:"\E758"}.el-icon-notebook-2:before{content:"\E759"}.el-icon-notebook-1:before{content:"\E75A"}.el-icon-files:before{content:"\E75B"}.el-icon-collection:before{content:"\E75C"}.el-icon-receiving:before{content:"\E75D"}.el-icon-suitcase-1:before{content:"\E760"}.el-icon-suitcase:before{content:"\E761"}.el-icon-film:before{content:"\E763"}.el-icon-collection-tag:before{content:"\E765"}.el-icon-data-analysis:before{content:"\E766"}.el-icon-pie-chart:before{content:"\E767"}.el-icon-data-board:before{content:"\E768"}.el-icon-data-line:before{content:"\E76D"}.el-icon-reading:before{content:"\E769"}.el-icon-magic-stick:before{content:"\E76A"}.el-icon-coordinate:before{content:"\E76B"}.el-icon-mouse:before{content:"\E76C"}.el-icon-brush:before{content:"\E76E"}.el-icon-headset:before{content:"\E76F"}.el-icon-umbrella:before{content:"\E770"}.el-icon-scissors:before{content:"\E771"}.el-icon-mobile:before{content:"\E773"}.el-icon-attract:before{content:"\E774"}.el-icon-monitor:before{content:"\E775"}.el-icon-search:before{content:"\E778"}.el-icon-takeaway-box:before{content:"\E77A"}.el-icon-paperclip:before{content:"\E77D"}.el-icon-printer:before{content:"\E77E"}.el-icon-document-add:before{content:"\E782"}.el-icon-document:before{content:"\E785"}.el-icon-document-checked:before{content:"\E786"}.el-icon-document-copy:before{content:"\E787"}.el-icon-document-delete:before{content:"\E788"}.el-icon-document-remove:before{content:"\E789"}.el-icon-tickets:before{content:"\E78B"}.el-icon-folder-checked:before{content:"\E77F"}.el-icon-folder-delete:before{content:"\E780"}.el-icon-folder-remove:before{content:"\E781"}.el-icon-folder-add:before{content:"\E783"}.el-icon-folder-opened:before{content:"\E784"}.el-icon-folder:before{content:"\E78A"}.el-icon-edit-outline:before{content:"\E764"}.el-icon-edit:before{content:"\E78C"}.el-icon-date:before{content:"\E78E"}.el-icon-c-scale-to-original:before{content:"\E7C6"}.el-icon-view:before{content:"\E6CE"}.el-icon-loading:before{content:"\E6CF"}.el-icon-rank:before{content:"\E6D1"}.el-icon-sort-down:before{content:"\E7C4"}.el-icon-sort-up:before{content:"\E7C5"}.el-icon-sort:before{content:"\E6D2"}.el-icon-finished:before{content:"\E6CD"}.el-icon-refresh-left:before{content:"\E6C7"}.el-icon-refresh-right:before{content:"\E6C8"}.el-icon-refresh:before{content:"\E6D0"}.el-icon-video-play:before{content:"\E7C0"}.el-icon-video-pause:before{content:"\E7C1"}.el-icon-d-arrow-right:before{content:"\E6DC"}.el-icon-d-arrow-left:before{content:"\E6DD"}.el-icon-arrow-up:before{content:"\E6E1"}.el-icon-arrow-down:before{content:"\E6DF"}.el-icon-arrow-right:before{content:"\E6E0"}.el-icon-arrow-left:before{content:"\E6DE"}.el-icon-top-right:before{content:"\E6E7"}.el-icon-top-left:before{content:"\E6E8"}.el-icon-top:before{content:"\E6E6"}.el-icon-bottom:before{content:"\E6EB"}.el-icon-right:before{content:"\E6E9"}.el-icon-back:before{content:"\E6EA"}.el-icon-bottom-right:before{content:"\E6EC"}.el-icon-bottom-left:before{content:"\E6ED"}.el-icon-caret-top:before{content:"\E78F"}.el-icon-caret-bottom:before{content:"\E790"}.el-icon-caret-right:before{content:"\E791"}.el-icon-caret-left:before{content:"\E792"}.el-icon-d-caret:before{content:"\E79A"}.el-icon-share:before{content:"\E793"}.el-icon-menu:before{content:"\E798"}.el-icon-s-grid:before{content:"\E7A6"}.el-icon-s-check:before{content:"\E7A7"}.el-icon-s-data:before{content:"\E7A8"}.el-icon-s-opportunity:before{content:"\E7AA"}.el-icon-s-custom:before{content:"\E7AB"}.el-icon-s-claim:before{content:"\E7AD"}.el-icon-s-finance:before{content:"\E7AE"}.el-icon-s-comment:before{content:"\E7AF"}.el-icon-s-flag:before{content:"\E7B0"}.el-icon-s-marketing:before{content:"\E7B1"}.el-icon-s-shop:before{content:"\E7B4"}.el-icon-s-open:before{content:"\E7B5"}.el-icon-s-management:before{content:"\E7B6"}.el-icon-s-ticket:before{content:"\E7B7"}.el-icon-s-release:before{content:"\E7B8"}.el-icon-s-home:before{content:"\E7B9"}.el-icon-s-promotion:before{content:"\E7BA"}.el-icon-s-operation:before{content:"\E7BB"}.el-icon-s-unfold:before{content:"\E7BC"}.el-icon-s-fold:before{content:"\E7A9"}.el-icon-s-platform:before{content:"\E7BD"}.el-icon-s-order:before{content:"\E7BE"}.el-icon-s-cooperation:before{content:"\E7BF"}.el-icon-bell:before{content:"\E725"}.el-icon-message-solid:before{content:"\E799"}.el-icon-video-camera:before{content:"\E772"}.el-icon-video-camera-solid:before{content:"\E796"}.el-icon-camera:before{content:"\E779"}.el-icon-camera-solid:before{content:"\E79B"}.el-icon-download:before{content:"\E77C"}.el-icon-upload2:before{content:"\E77B"}.el-icon-upload:before{content:"\E7C3"}.el-icon-picture-outline-round:before{content:"\E75F"}.el-icon-picture-outline:before{content:"\E75E"}.el-icon-picture:before{content:"\E79F"}.el-icon-close:before{content:"\E6DB"}.el-icon-check:before{content:"\E6DA"}.el-icon-plus:before{content:"\E6D9"}.el-icon-minus:before{content:"\E6D8"}.el-icon-help:before{content:"\E73D"}.el-icon-s-help:before{content:"\E7B3"}.el-icon-circle-close:before{content:"\E78D"}.el-icon-circle-check:before{content:"\E720"}.el-icon-circle-plus-outline:before{content:"\E723"}.el-icon-remove-outline:before{content:"\E722"}.el-icon-zoom-out:before{content:"\E776"}.el-icon-zoom-in:before{content:"\E777"}.el-icon-error:before{content:"\E79D"}.el-icon-success:before{content:"\E79C"}.el-icon-circle-plus:before{content:"\E7A0"}.el-icon-remove:before{content:"\E7A2"}.el-icon-info:before{content:"\E7A1"}.el-icon-question:before{content:"\E7A4"}.el-icon-warning-outline:before{content:"\E6C9"}.el-icon-warning:before{content:"\E7A3"}.el-icon-goods:before{content:"\E7C2"}.el-icon-s-goods:before{content:"\E7B2"}.el-icon-star-off:before{content:"\E717"}.el-icon-star-on:before{content:"\E797"}.el-icon-more-outline:before{content:"\E6CC"}.el-icon-more:before{content:"\E794"}.el-icon-phone-outline:before{content:"\E6CB"}.el-icon-phone:before{content:"\E795"}.el-icon-user:before{content:"\E6E3"}.el-icon-user-solid:before{content:"\E7A5"}.el-icon-setting:before{content:"\E6CA"}.el-icon-s-tools:before{content:"\E7AC"}.el-icon-delete:before{content:"\E6D7"}.el-icon-delete-solid:before{content:"\E7C9"}.el-icon-eleme:before{content:"\E7C7"}.el-icon-platform-eleme:before{content:"\E7CA"}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes rotating{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.el-pagination{white-space:nowrap;padding:2px 5px;color:#303133;font-weight:700}.el-pagination:after,.el-pagination:before{display:table;content:""}.el-pagination:after{clear:both}.el-pagination button,.el-pagination span:not([class*=suffix]){display:inline-block;font-size:13px;min-width:35.5px;height:28px;line-height:28px;vertical-align:top;box-sizing:border-box}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield;line-height:normal}.el-pagination .el-input__suffix{right:0;transform:scale(.8)}.el-pagination .el-select .el-input{width:100px;margin:0 5px}.el-pagination .el-select .el-input .el-input__inner{padding-right:25px;border-radius:3px}.el-pagination button{border:none;padding:0 6px;background:transparent}.el-pagination button:focus{outline:none}.el-pagination button:hover{color:#087ce1}.el-pagination button:disabled{color:#c0c4cc;background-color:#fff;cursor:not-allowed}.el-pagination .btn-next,.el-pagination .btn-prev{background:50% no-repeat;background-size:16px;background-color:#fff;cursor:pointer;margin:0;color:#303133}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700}.el-pagination .btn-prev{padding-right:12px}.el-pagination .btn-next{padding-left:12px}.el-pagination .el-pager li.disabled{color:#c0c4cc;cursor:not-allowed}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li,.el-pagination--small .el-pager li.btn-quicknext,.el-pagination--small .el-pager li.btn-quickprev,.el-pagination--small .el-pager li:last-child{border-color:transparent;font-size:12px;line-height:22px;height:22px;min-width:22px}.el-pagination--small .arrow.disabled{visibility:hidden}.el-pagination--small .more:before,.el-pagination--small li.more:before{line-height:24px}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){height:22px;line-height:22px}.el-pagination--small .el-pagination__editor,.el-pagination--small .el-pagination__editor.el-input .el-input__inner{height:22px}.el-pagination__sizes{margin:0 10px 0 0;font-weight:400;color:#646970}.el-pagination__sizes .el-input .el-input__inner{font-size:13px;padding-left:8px}.el-pagination__sizes .el-input .el-input__inner:hover{border-color:#087ce1}.el-pagination__total{margin-right:10px;font-weight:400;color:#646970}.el-pagination__jump{margin-left:24px;font-weight:400;color:#646970}.el-pagination__jump .el-input__inner{padding:0 3px}.el-pagination__rightwrapper{float:right}.el-pagination__editor{line-height:18px;padding:0 2px;height:28px;text-align:center;margin:0 2px;box-sizing:border-box;border-radius:3px}.el-pagination__editor.el-input{width:50px}.el-pagination__editor.el-input .el-input__inner{height:28px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 5px;background-color:#f4f4f5;color:#646970;min-width:30px;border-radius:2px}.el-pagination.is-background .btn-next.disabled,.el-pagination.is-background .btn-prev.disabled,.el-pagination.is-background .el-pager li.disabled{color:#c0c4cc}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev{padding:0}.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev:disabled{color:#c0c4cc}.el-pagination.is-background .el-pager li:not(.disabled):hover{color:#087ce1}.el-pagination.is-background .el-pager li:not(.disabled).active{background-color:#087ce1;color:#fff}.el-pagination.is-background.el-pagination--small .btn-next,.el-pagination.is-background.el-pagination--small .btn-prev,.el-pagination.is-background.el-pagination--small .el-pager li{margin:0 3px;min-width:22px}.el-pager{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;display:inline-block;vertical-align:top;font-size:0;padding:0;margin:0}.el-pager .more:before{line-height:30px}.el-pager li{padding:0 4px;background:#fff;vertical-align:top;display:inline-block;font-size:13px;min-width:35.5px;height:28px;line-height:28px;cursor:pointer;box-sizing:border-box;text-align:center;margin:0}.el-pager li.btn-quicknext,.el-pager li.btn-quickprev{line-height:28px;color:#303133}.el-pager li.btn-quicknext.disabled,.el-pager li.btn-quickprev.disabled{color:#c0c4cc}.el-pager li.btn-quicknext:hover,.el-pager li.btn-quickprev:hover{cursor:pointer}.el-pager li.active+li{border-left:0}.el-pager li:hover{color:#087ce1}.el-pager li.active{color:#087ce1;cursor:default}@-webkit-keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{to{opacity:0}}.el-dialog{position:relative;margin:0 auto 50px;background:#fff;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.3);box-sizing:border-box;width:50%}.el-dialog.is-fullscreen{width:100%;margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog__header{padding:20px;padding-bottom:10px}.el-dialog__headerbtn{position:absolute;top:20px;right:20px;padding:0;background:transparent;border:none;outline:none;cursor:pointer;font-size:16px}.el-dialog__headerbtn .el-dialog__close{color:#909399}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:#087ce1}.el-dialog__title{line-height:24px;font-size:18px;color:#303133}.el-dialog__body{padding:30px 20px;color:#646970;font-size:14px;word-break:break-all}.el-dialog__footer{padding:20px;padding-top:10px;text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px 25px 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.dialog-fade-enter-active{-webkit-animation:dialog-fade-in .3s;animation:dialog-fade-in .3s}.dialog-fade-leave-active{-webkit-animation:dialog-fade-out .3s;animation:dialog-fade-out .3s}@-webkit-keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-autocomplete{position:relative;display:inline-block}.el-autocomplete-suggestion{margin:5px 0;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:4px;border:1px solid #e4e7ed;box-sizing:border-box;background-color:#fff}.el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;box-sizing:border-box}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:#646970;font-size:14px;list-style:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li.highlighted,.el-autocomplete-suggestion li:hover{background-color:#f5f7fa}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid #000}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:#999}.el-autocomplete-suggestion.is-loading li:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:#fff}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-dropdown{display:inline-block;position:relative;color:#646970;font-size:14px}.el-dropdown .el-button-group{display:block}.el-dropdown .el-button-group .el-button{float:none}.el-dropdown .el-dropdown__caret-button{padding-left:5px;padding-right:5px;position:relative;border-left:none}.el-dropdown .el-dropdown__caret-button:before{content:"";position:absolute;display:block;width:1px;top:5px;bottom:5px;left:0;background:hsla(0,0%,100%,.5)}.el-dropdown .el-dropdown__caret-button.el-button--default:before{background:rgba(220,223,230,.5)}.el-dropdown .el-dropdown__caret-button:hover:before{top:0;bottom:0}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{padding-left:0}.el-dropdown__icon{font-size:12px;margin:0 3px}.el-dropdown .el-dropdown-selfdefine:focus:active,.el-dropdown .el-dropdown-selfdefine:focus:not(.focusing){outline-width:0}.el-dropdown-menu{position:absolute;top:0;left:0;z-index:10;padding:10px 0;margin:5px 0;background-color:#fff;border:1px solid #ebeef5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-dropdown-menu__item{list-style:none;line-height:36px;padding:0 20px;margin:0;font-size:14px;color:#646970;cursor:pointer;outline:none}.el-dropdown-menu__item:focus,.el-dropdown-menu__item:not(.is-disabled):hover{background-color:#e6f2fc;color:#3996e7}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{position:relative;margin-top:6px;border-top:1px solid #ebeef5}.el-dropdown-menu__item--divided:before{content:"";height:6px;display:block;margin:0 -20px;background-color:#fff}.el-dropdown-menu__item.is-disabled{cursor:default;color:#bbb;pointer-events:none}.el-dropdown-menu--medium{padding:6px 0}.el-dropdown-menu--medium .el-dropdown-menu__item{line-height:30px;padding:0 17px;font-size:14px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:6px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:6px;margin:0 -17px}.el-dropdown-menu--small{padding:6px 0}.el-dropdown-menu--small .el-dropdown-menu__item{line-height:27px;padding:0 15px;font-size:13px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:4px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:4px;margin:0 -15px}.el-dropdown-menu--mini{padding:3px 0}.el-dropdown-menu--mini .el-dropdown-menu__item{line-height:24px;padding:0 10px;font-size:12px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:3px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:3px;margin:0 -10px}.el-menu{border-right:1px solid #e6e6e6;list-style:none;position:relative;margin:0;padding-left:0;background-color:#fff}.el-menu:after,.el-menu:before{display:table;content:""}.el-menu:after{clear:both}.el-menu.el-menu--horizontal{border-bottom:1px solid #e6e6e6}.el-menu--horizontal{border-right:none}.el-menu--horizontal>.el-menu-item{float:left;height:60px;line-height:60px;margin:0;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover{background-color:#fff}.el-menu--horizontal>.el-submenu{float:left}.el-menu--horizontal>.el-submenu:focus,.el-menu--horizontal>.el-submenu:hover{outline:none}.el-menu--horizontal>.el-submenu:focus .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{color:#303133}.el-menu--horizontal>.el-submenu.is-active .el-submenu__title{border-bottom:2px solid #087ce1;color:#303133}.el-menu--horizontal>.el-submenu .el-submenu__title{height:60px;line-height:60px;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-submenu .el-submenu__title:hover{background-color:#fff}.el-menu--horizontal>.el-submenu .el-submenu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:-3px}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-submenu__title{background-color:#fff;float:none;height:36px;line-height:36px;padding:0 10px;color:#909399}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-submenu.is-active>.el-submenu__title{color:#303133}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:none;color:#303133}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid #087ce1;color:#303133}.el-menu--collapse{width:64px}.el-menu--collapse>.el-menu-item [class^=el-icon-],.el-menu--collapse>.el-submenu>.el-submenu__title [class^=el-icon-]{margin:0;vertical-align:middle;width:24px;text-align:center}.el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,.el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item span,.el-menu--collapse>.el-submenu>.el-submenu__title span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-submenu{min-width:200px}.el-menu--collapse .el-submenu{position:relative}.el-menu--collapse .el-submenu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;z-index:10;border:1px solid #e4e7ed;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:none}.el-menu--popup{z-index:100;min-width:200px;border:none;padding:5px 0;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--popup-bottom-start{margin-top:5px}.el-menu--popup-right-start{margin-left:5px;margin-right:5px}.el-menu-item{height:56px;line-height:56px;font-size:14px;color:#303133;padding:0 20px;list-style:none;cursor:pointer;position:relative;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box;white-space:nowrap}.el-menu-item *{vertical-align:middle}.el-menu-item i{color:#909399}.el-menu-item:focus,.el-menu-item:hover{outline:none;background-color:#e6f2fc}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:none!important}.el-menu-item [class^=el-icon-]{margin-right:5px;width:24px;text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:#087ce1}.el-menu-item.is-active i{color:inherit}.el-submenu{list-style:none;margin:0;padding-left:0}.el-submenu__title{height:56px;line-height:56px;font-size:14px;color:#303133;padding:0 20px;list-style:none;cursor:pointer;position:relative;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box;white-space:nowrap}.el-submenu__title *{vertical-align:middle}.el-submenu__title i{color:#909399}.el-submenu__title:focus,.el-submenu__title:hover{outline:none;background-color:#e6f2fc}.el-submenu__title.is-disabled{opacity:.25;cursor:not-allowed;background:none!important}.el-submenu__title:hover{background-color:#e6f2fc}.el-submenu .el-menu{border:none}.el-submenu .el-menu-item{height:50px;line-height:50px;padding:0 45px;min-width:200px}.el-submenu__icon-arrow{position:absolute;top:50%;right:20px;margin-top:-7px;transition:transform .3s;font-size:12px}.el-submenu.is-active .el-submenu__title{border-bottom-color:#087ce1}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:rotate(180deg)}.el-submenu.is-disabled .el-menu-item,.el-submenu.is-disabled .el-submenu__title{opacity:.25;cursor:not-allowed;background:none!important}.el-submenu [class^=el-icon-]{vertical-align:middle;margin-right:5px;width:24px;text-align:center;font-size:18px}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px 20px;line-height:normal;font-size:12px;color:#909399}.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow{transition:.2s;opacity:0}.el-radio-group{display:inline-block;line-height:1;vertical-align:middle;font-size:0}.el-radio-button,.el-radio-button__inner{position:relative;display:inline-block;outline:none}.el-radio-button__inner{line-height:1;white-space:nowrap;vertical-align:middle;background:#fff;border:1px solid #dcdfe6;font-weight:500;border-left:0;color:#646970;-webkit-appearance:none;text-align:center;box-sizing:border-box;margin:0;cursor:pointer;transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-radio-button__inner.is-round{padding:12px 20px}.el-radio-button__inner:hover{color:#087ce1}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;box-shadow:none!important}.el-radio-button__orig-radio{opacity:0;outline:none;position:absolute;z-index:-1}.el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#fff;background-color:#087ce1;border-color:#087ce1;box-shadow:-1px 0 0 0 #087ce1}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;box-shadow:none}.el-radio-button__orig-radio:disabled:checked+.el-radio-button__inner{background-color:#f2f6fc}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:4px}.el-radio-button--medium .el-radio-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-radio-button--medium .el-radio-button__inner.is-round{padding:10px 20px}.el-radio-button--small .el-radio-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:9px 15px}.el-radio-button--mini .el-radio-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-radio-button--mini .el-radio-button__inner.is-round{padding:7px 15px}.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled){box-shadow:0 0 2px 2px #087ce1}.el-switch{display:inline-flex;align-items:center;position:relative;font-size:14px;line-height:20px;height:20px;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{transition:.2s;height:20px;display:inline-block;font-size:14px;font-weight:500;cursor:pointer;vertical-align:middle;color:#303133}.el-switch__label.is-active{color:#087ce1}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__core{margin:0;display:inline-block;position:relative;width:40px;height:20px;border:1px solid #dcdfe6;outline:none;border-radius:10px;box-sizing:border-box;background:#dcdfe6;cursor:pointer;transition:border-color .3s,background-color .3s;vertical-align:middle}.el-switch__core:after{content:"";position:absolute;top:1px;left:1px;border-radius:100%;transition:all .3s;width:16px;height:16px;background-color:#fff}.el-switch.is-checked .el-switch__core{border-color:#087ce1;background-color:#087ce1}.el-switch.is-checked .el-switch__core:after{left:100%;margin-left:-17px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter,.el-switch .label-fade-leave-active{opacity:0}.el-select-dropdown{position:absolute;z-index:1001;border:1px solid #e4e7ed;border-radius:4px;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:5px 0}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#087ce1;background-color:#fff}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#f5f7fa}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{position:absolute;right:20px;font-family:element-icons;content:"\E6DA";font-size:12px;font-weight:700;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:#999;font-size:14px}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;box-sizing:border-box}.el-select-dropdown__item{font-size:14px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#646970;height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#fff}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#f5f7fa}.el-select-dropdown__item.selected{color:#087ce1;font-weight:700}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:#e4e7ed}.el-select-group__title{padding-left:20px;font-size:12px;color:#909399;line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{display:inline-block;position:relative}.el-select .el-select__tags>span{display:contents}.el-select:hover .el-input__inner{border-color:#c0c4cc}.el-select .el-input__inner{cursor:pointer;padding-right:35px}.el-select .el-input__inner:focus{border-color:#087ce1}.el-select .el-input .el-select__caret{color:#c0c4cc;font-size:14px;transition:transform .3s;transform:rotate(180deg);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{transform:rotate(0deg)}.el-select .el-input .el-select__caret.is-show-close{font-size:14px;text-align:center;transform:rotate(180deg);border-radius:100%;color:#c0c4cc;transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-select .el-input .el-select__caret.is-show-close:hover{color:#909399}.el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__inner:hover{border-color:#e4e7ed}.el-select .el-input.is-focus .el-input__inner{border-color:#087ce1}.el-select>.el-input{display:block}.el-select__input{border:none;outline:none;padding:0;margin-left:15px;color:#666;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-mini{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:1000;right:25px;color:#c0c4cc;line-height:18px;font-size:14px}.el-select__close:hover{color:#909399}.el-select__tags{position:absolute;line-height:normal;white-space:normal;z-index:1;top:50%;transform:translateY(-50%);display:flex;align-items:center;flex-wrap:wrap}.el-select .el-tag__close{margin-top:-2px}.el-select .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:#f0f2f5}.el-select .el-tag__close.el-icon-close{background-color:#c0c4cc;right:-7px;top:0;color:#fff}.el-select .el-tag__close.el-icon-close:hover{background-color:#909399}.el-select .el-tag__close.el-icon-close:before{display:block;transform:translateY(.5px)}.el-table{position:relative;overflow:hidden;box-sizing:border-box;flex:1;width:100%;max-width:100%;background-color:#fff;font-size:14px;color:#646970}.el-table__empty-block{min-height:60px;text-align:center;width:100%;display:flex;justify-content:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:#909399}.el-table__expand-column .cell{padding:0;text-align:center}.el-table__expand-icon{position:relative;cursor:pointer;color:#666;font-size:12px;transition:transform .2s ease-in-out;height:20px}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{position:absolute;left:50%;top:50%;margin-left:-5px;margin-top:-5px}.el-table__expanded-cell{background-color:#fff}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit td.gutter,.el-table--fit th.gutter{border-right-width:1px}.el-table--scrollable-x .el-table__body-wrapper{overflow-x:auto}.el-table--scrollable-y .el-table__body-wrapper{overflow-y:auto}.el-table thead{color:#909399;font-weight:500}.el-table thead.is-group th{background:#f5f7fa}.el-table td,.el-table th{padding:12px 0;min-width:0;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left}.el-table td.is-center,.el-table th.is-center{text-align:center}.el-table td.is-right,.el-table th.is-right{text-align:right}.el-table td.gutter,.el-table th.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table td.is-hidden>*,.el-table th.is-hidden>*{visibility:hidden}.el-table--medium td,.el-table--medium th{padding:10px 0}.el-table--small{font-size:12px}.el-table--small td,.el-table--small th{padding:8px 0}.el-table--mini{font-size:12px}.el-table--mini td,.el-table--mini th{padding:6px 0}.el-table tr{background-color:#fff}.el-table tr input[type=checkbox]{margin:0}.el-table td,.el-table th.is-leaf{border-bottom:1px solid #ebeef5}.el-table th.is-sortable{cursor:pointer}.el-table th{overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#fff}.el-table th>.cell{display:inline-block;box-sizing:border-box;position:relative;vertical-align:middle;padding-left:10px;padding-right:10px;width:100%}.el-table th>.cell.highlight{color:#087ce1}.el-table th.required>div:before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td div{box-sizing:border-box}.el-table td.gutter{width:0}.el-table .cell{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding-left:10px;padding-right:10px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--border,.el-table--group{border:1px solid #ebeef5}.el-table--border:after,.el-table--group:after,.el-table:before{content:"";position:absolute;background-color:#ebeef5;z-index:1}.el-table--border:after,.el-table--group:after{top:0;right:0;width:1px;height:100%}.el-table:before{left:0;bottom:0;width:100%;height:1px}.el-table--border{border-right:none;border-bottom:none}.el-table--border.el-loading-parent--relative{border-color:transparent}.el-table--border td,.el-table--border th{border-right:1px solid #ebeef5}.el-table--border td:first-child .cell,.el-table--border th:first-child .cell{padding-left:10px}.el-table--border th.gutter:last-of-type{border-bottom:1px solid #ebeef5;border-bottom-width:1px}.el-table--border th{border-bottom:1px solid #ebeef5}.el-table--hidden{visibility:hidden}.el-table__fixed,.el-table__fixed-right{position:absolute;top:0;left:0;overflow-x:hidden;overflow-y:hidden;box-shadow:0 0 10px rgba(0,0,0,.12)}.el-table__fixed-right:before,.el-table__fixed:before{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background-color:#ebeef5;z-index:4}.el-table__fixed-right-patch{position:absolute;top:-1px;right:0;background-color:#fff;border-bottom:1px solid #ebeef5}.el-table__fixed-right{top:0;left:auto;right:0}.el-table__fixed-right .el-table__fixed-body-wrapper,.el-table__fixed-right .el-table__fixed-footer-wrapper,.el-table__fixed-right .el-table__fixed-header-wrapper{left:auto;right:0}.el-table__fixed-header-wrapper{position:absolute;left:0;top:0;z-index:3}.el-table__fixed-footer-wrapper{position:absolute;left:0;bottom:0;z-index:3}.el-table__fixed-footer-wrapper tbody td{border-top:1px solid #ebeef5;background-color:#f5f7fa;color:#646970}.el-table__fixed-body-wrapper{position:absolute;left:0;top:37px;overflow:hidden;z-index:3}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__footer-wrapper{margin-top:-1px}.el-table__footer-wrapper td{border-top:1px solid #ebeef5}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td,.el-table__header-wrapper tbody td{background-color:#f5f7fa;color:#646970}.el-table__body-wrapper{overflow:hidden;position:relative}.el-table__body-wrapper.is-scrolling-left~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed-right,.el-table__body-wrapper.is-scrolling-right~.el-table__fixed-right{box-shadow:none}.el-table__body-wrapper .el-table--border.is-scrolling-right~.el-table__fixed-right{border-left:1px solid #ebeef5}.el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:1px solid #ebeef5}.el-table .caret-wrapper{display:inline-flex;flex-direction:column;align-items:center;height:34px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:5px solid transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:#c0c4cc;top:5px}.el-table .sort-caret.descending{border-top-color:#c0c4cc;bottom:7px}.el-table .ascending .sort-caret.ascending{border-bottom-color:#087ce1}.el-table .descending .sort-caret.descending{border-top-color:#087ce1}.el-table .hidden-columns{visibility:hidden;position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td{background:#fafafa}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td{background-color:#e6f2fc}.el-table__body tr.hover-row.current-row>td,.el-table__body tr.hover-row.el-table__row--striped.current-row>td,.el-table__body tr.hover-row.el-table__row--striped>td,.el-table__body tr.hover-row>td{background-color:#f5f7fa}.el-table__body tr.current-row>td{background-color:#e6f2fc}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:1px solid #ebeef5;z-index:10}.el-table__column-filter-trigger{display:inline-block;line-height:34px;cursor:pointer}.el-table__column-filter-trigger i{color:#909399;font-size:12px;transform:scale(.75)}.el-table--enable-row-transition .el-table__body td{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td{background-color:#f5f7fa}.el-table--fluid-height .el-table__fixed,.el-table--fluid-height .el-table__fixed-right{bottom:0;overflow:hidden}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:20px;line-height:20px;height:20px;text-align:center;margin-right:3px}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:1px solid #ebeef5;border-radius:2px;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:2px 0}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:14px}.el-table-filter__list-item:hover{background-color:#e6f2fc;color:#3996e7}.el-table-filter__list-item.is-active{background-color:#087ce1;color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid #ebeef5;padding:8px}.el-table-filter__bottom button{background:transparent;border:none;color:#646970;cursor:pointer;font-size:13px;padding:0 3px}.el-table-filter__bottom button:hover{color:#087ce1}.el-table-filter__bottom button:focus{outline:none}.el-table-filter__bottom button.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:block;margin-right:5px;margin-bottom:8px;margin-left:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover div{background-color:#f2f7fd}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:#646970}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table.is-week-mode .el-date-table__row.current div{background-color:#f2f7fd}.el-date-table td{width:32px;height:30px;padding:4px 0;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.el-date-table td div{height:30px;padding:3px 0;box-sizing:border-box}.el-date-table td span{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;transform:translateX(-50%);border-radius:50%}.el-date-table td.next-month,.el-date-table td.prev-month{color:#c0c4cc}.el-date-table td.today{position:relative}.el-date-table td.today span{color:#087ce1;font-weight:700}.el-date-table td.today.end-date span,.el-date-table td.today.start-date span{color:#fff}.el-date-table td.available:hover{color:#087ce1}.el-date-table td.in-range div{background-color:#f2f7fd}.el-date-table td.in-range div:hover{background-color:#f2f6fc}.el-date-table td.current:not(.disabled) span{color:#fff;background-color:#087ce1}.el-date-table td.end-date div,.el-date-table td.start-date div{color:#fff}.el-date-table td.end-date span,.el-date-table td.start-date span{background-color:#087ce1}.el-date-table td.start-date div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td.disabled div{background-color:#f5f7fa;opacity:1;cursor:not-allowed;color:#c0c4cc}.el-date-table td.selected div{margin-left:5px;margin-right:5px;background-color:#f2f7fd;border-radius:15px}.el-date-table td.selected div:hover{background-color:#f2f6fc}.el-date-table td.selected span{background-color:#087ce1;color:#fff;border-radius:15px}.el-date-table td.week{font-size:80%;color:#646970}.el-date-table th{padding:5px;color:#646970;font-weight:400;border-bottom:1px solid #ebeef5}.el-month-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;box-sizing:border-box}.el-month-table td.today .cell{color:#087ce1;font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-month-table td.disabled .cell:hover{color:#c0c4cc}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:#646970;margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:#087ce1}.el-month-table td.in-range div{background-color:#f2f7fd}.el-month-table td.in-range div:hover{background-color:#f2f6fc}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#fff;background-color:#087ce1}.el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:#087ce1}.el-year-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-year-table .el-icon{color:#303133}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:#087ce1;font-weight:700}.el-year-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-year-table td.disabled .cell:hover{color:#c0c4cc}.el-year-table td .cell{width:48px;height:32px;display:block;line-height:32px;color:#646970;margin:0 auto}.el-year-table td .cell:hover,.el-year-table td.current:not(.disabled) .cell{color:#087ce1}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-left{border-right:1px solid #e4e4e4}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:#303133}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:1px solid #ebeef5}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:#646970}.el-date-picker__header-label.active,.el-date-picker__header-label:hover{color:#087ce1}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.selected:not(.disabled){color:#087ce1;font-weight:700}.time-select-item.disabled{color:#e4e7ed;cursor:not-allowed}.time-select-item:hover{background-color:#f5f7fa;font-weight:700;cursor:pointer}.el-date-editor{position:relative;display:inline-block;text-align:left}.el-date-editor.el-input,.el-date-editor.el-input__inner{width:220px}.el-date-editor--monthrange.el-input,.el-date-editor--monthrange.el-input__inner{width:300px}.el-date-editor--daterange.el-input,.el-date-editor--daterange.el-input__inner,.el-date-editor--timerange.el-input,.el-date-editor--timerange.el-input__inner{width:350px}.el-date-editor--datetimerange.el-input,.el-date-editor--datetimerange.el-input__inner{width:400px}.el-date-editor--dates .el-input__inner{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .el-icon-circle-close{cursor:pointer}.el-date-editor .el-range__icon{font-size:14px;margin-left:-5px;color:#c0c4cc;float:left;line-height:32px}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:none;display:inline-block;height:100%;margin:0;padding:0;width:39%;text-align:center;font-size:14px;color:#646970}.el-date-editor .el-range-input::-webkit-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::-moz-placeholder{color:#c0c4cc}.el-date-editor .el-range-input:-ms-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::-ms-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::placeholder{color:#c0c4cc}.el-date-editor .el-range-separator{display:inline-block;height:100%;padding:0 5px;margin:0;text-align:center;line-height:32px;font-size:14px;width:5%;color:#303133}.el-date-editor .el-range__close-icon{font-size:14px;color:#c0c4cc;width:25px;display:inline-block;float:right;line-height:32px}.el-range-editor.el-input__inner{display:inline-flex;align-items:center;padding:3px 10px}.el-range-editor .el-range-input{line-height:1}.el-range-editor.is-active,.el-range-editor.is-active:hover{border-color:#087ce1}.el-range-editor--medium.el-input__inner{height:36px}.el-range-editor--medium .el-range-separator{line-height:28px;font-size:14px}.el-range-editor--medium .el-range-input{font-size:14px}.el-range-editor--medium .el-range__close-icon,.el-range-editor--medium .el-range__icon{line-height:28px}.el-range-editor--small.el-input__inner{height:32px}.el-range-editor--small .el-range-separator{line-height:24px;font-size:13px}.el-range-editor--small .el-range-input{font-size:13px}.el-range-editor--small .el-range__close-icon,.el-range-editor--small .el-range__icon{line-height:24px}.el-range-editor--mini.el-input__inner{height:28px}.el-range-editor--mini .el-range-separator{line-height:20px;font-size:12px}.el-range-editor--mini .el-range-input{font-size:12px}.el-range-editor--mini .el-range__close-icon,.el-range-editor--mini .el-range__icon{line-height:20px}.el-range-editor.is-disabled{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:#e4e7ed}.el-range-editor.is-disabled input{background-color:#f5f7fa;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled input::-webkit-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::-moz-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input:-ms-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::-ms-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::placeholder{color:#c0c4cc}.el-range-editor.is-disabled .el-range-separator{color:#c0c4cc}.el-picker-panel{color:#646970;border:1px solid #e4e7ed;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);background:#fff;border-radius:4px;line-height:30px;margin:5px 0}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid #e4e4e4;padding:4px;text-align:right;background-color:#fff;position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:#646970;padding-left:12px;text-align:left;outline:none;cursor:pointer}.el-picker-panel__shortcut:hover{color:#087ce1}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:#087ce1}.el-picker-panel__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:none;font-size:12px}.el-picker-panel__btn[disabled]{color:#ccc;cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:#303133;border:0;background:transparent;cursor:pointer;outline:none;margin-top:8px}.el-picker-panel__icon-btn:hover{color:#087ce1}.el-picker-panel__icon-btn.is-disabled{color:#bbb}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid #e4e4e4;box-sizing:border-box;padding-top:6px;background-color:#fff;overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:190px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active){background:#fff;cursor:default}.el-time-spinner__arrow{font-size:12px;color:#909399;position:absolute;left:0;width:100%;z-index:1;text-align:center;height:30px;line-height:30px;cursor:pointer}.el-time-spinner__arrow:hover{color:#087ce1}.el-time-spinner__arrow.el-icon-arrow-up{top:10px}.el-time-spinner__arrow.el-icon-arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner,.el-time-spinner__list{padding:0;text-align:center}.el-time-spinner__list{margin:0;list-style:none}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:#646970}.el-time-spinner__item:hover:not(.disabled):not(.active){background:#f5f7fa;cursor:pointer}.el-time-spinner__item.active:not(.disabled){color:#303133;font-weight:700}.el-time-spinner__item.disabled{color:#c0c4cc;cursor:not-allowed}.el-time-panel{margin:5px 0;border:1px solid #e4e7ed;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:2px;position:absolute;width:180px;left:0;z-index:1000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:content-box}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:"";top:50%;position:absolute;margin-top:-15px;height:32px;z-index:-1;left:0;right:0;box-sizing:border-box;padding-top:6px;text-align:left;border-top:1px solid #e4e7ed;border-bottom:1px solid #e4e7ed}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{padding-left:50%;margin-right:12%;margin-left:12%}.el-time-panel__content.has-seconds:after{left:66.66667%}.el-time-panel__content.has-seconds:before{padding-left:33.33333%}.el-time-panel__footer{border-top:1px solid #e4e4e4;padding:4px;height:36px;line-height:25px;text-align:right;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:none;font-size:12px;color:#303133}.el-time-panel__btn.confirm{font-weight:800;color:#087ce1}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px}.el-time-range-picker__cell{box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid #e4e7ed}.el-popover{position:absolute;background:#fff;min-width:150px;border-radius:4px;border:1px solid #ebeef5;padding:12px;z-index:2000;color:#646970;line-height:1.4;text-align:justify;font-size:14px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);word-break:break-all}.el-popover--plain{padding:18px 20px}.el-popover__title{color:#303133;font-size:16px;line-height:1;margin-bottom:12px}.el-popover:focus,.el-popover:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.v-modal-enter{-webkit-animation:v-modal-in .2s ease;animation:v-modal-in .2s ease}.v-modal-leave{-webkit-animation:v-modal-out .2s ease forwards;animation:v-modal-out .2s ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.el-popup-parent--hidden{overflow:hidden}.el-message-box{display:inline-block;width:420px;padding-bottom:10px;vertical-align:middle;background-color:#fff;border-radius:4px;border:1px solid #ebeef5;font-size:18px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-message-box__wrapper{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center}.el-message-box__wrapper:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box__header{position:relative;padding:15px;padding-bottom:10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:18px;line-height:1;color:#303133}.el-message-box__headerbtn{position:absolute;top:15px;right:15px;padding:0;border:none;outline:none;background:transparent;font-size:16px;cursor:pointer}.el-message-box__headerbtn .e