Email Subscribers & Newsletters - Version 4.7.3

Version Description

4.7.3 (19.05.2021) * Fix: Formatting of broadcast test email not matching with actual campaign email [PRO] * Fix: JavaScript errors on the broadcast screen when a visual mode is disabled for classic editor * Fix: Incorrect campaign start date on the reports page * Fix: Fixing incorrect count of imported users in the log message when CSV contains duplicate emails * Update: Improved email template preview * Update: Improved campaign report UI

Download this release

Release Info

Developer Icegram
Plugin Icon 128x128 Email Subscribers & Newsletters
Version 4.7.3
Comparing to
See all releases

Code changes from version 4.7.2 to 4.7.3

email-subscribers.php CHANGED
@@ -3,11 +3,11 @@
3
  * Plugin Name: Email Subscribers & Newsletters
4
  * Plugin URI: https://www.icegram.com/
5
  * Description: Add subscription forms on website, send HTML newsletters & automatically notify subscribers about new blog posts once it is published.
6
- * Version: 4.7.2
7
  * Author: Icegram
8
  * Author URI: https://www.icegram.com/
9
  * Requires at least: 3.9
10
- * Tested up to: 5.7.1
11
  * WC requires at least: 3.6.0
12
  * WC tested up to: 5.2.2
13
  * ES WOO: 7120515:9f4c7f8bb491260ef19edf9699db73e6
@@ -178,7 +178,7 @@ if ( 'premium' === $ig_es_plan ) {
178
  /* ***************************** Initial Compatibility Work (End) ******************* */
179
 
180
  if ( ! defined( 'ES_PLUGIN_VERSION' ) ) {
181
- define( 'ES_PLUGIN_VERSION', '4.7.2' );
182
  }
183
 
184
  // Plugin Folder Path.
3
  * Plugin Name: Email Subscribers & Newsletters
4
  * Plugin URI: https://www.icegram.com/
5
  * Description: Add subscription forms on website, send HTML newsletters & automatically notify subscribers about new blog posts once it is published.
6
+ * Version: 4.7.3
7
  * Author: Icegram
8
  * Author URI: https://www.icegram.com/
9
  * Requires at least: 3.9
10
+ * Tested up to: 5.7.2
11
  * WC requires at least: 3.6.0
12
  * WC tested up to: 5.2.2
13
  * ES WOO: 7120515:9f4c7f8bb491260ef19edf9699db73e6
178
  /* ***************************** Initial Compatibility Work (End) ******************* */
179
 
180
  if ( ! defined( 'ES_PLUGIN_VERSION' ) ) {
181
+ define( 'ES_PLUGIN_VERSION', '4.7.3' );
182
  }
183
 
184
  // Plugin Folder Path.
lite/admin/class-email-subscribers-admin.php CHANGED
@@ -658,9 +658,13 @@ class Email_Subscribers_Admin {
658
  do_action( 'ig_es_campaign_show_conditions', $conditions );
659
  $response_data['conditions_html'] = ob_get_clean();
660
  } else {
661
- $response_data['total'] = ES()->lists_contacts_db->get_total_count_by_list( $list_id, $status );
662
  }
663
 
 
 
 
 
664
  die( json_encode( $response_data ) );
665
  }
666
 
658
  do_action( 'ig_es_campaign_show_conditions', $conditions );
659
  $response_data['conditions_html'] = ob_get_clean();
660
  } else {
661
+ $response_data['total'] = ES()->lists_contacts_db->get_total_count_by_list( $list_id, $status );
662
  }
663
 
664
+ if ( ! empty( $response_data['total'] ) ) {
665
+ $response_data['total'] = number_format( $response_data['total'] );
666
+ }
667
+
668
  die( json_encode( $response_data ) );
669
  }
670
 
lite/admin/class-ig-es-campaign-rules.php CHANGED
@@ -91,7 +91,7 @@ if ( ! class_exists( 'IG_ES_Campaign_Rules' ) ) {
91
  $current_page = ig_es_get_request_data( 'page' );
92
 
93
  if ( in_array( $current_page, array( 'es_newsletters', 'es_sequence' ), true ) ) {
94
- wp_register_script( 'alpine', plugins_url( '/js/alpine.js', __FILE__ ), array(), '2.8.0', false );
95
  wp_enqueue_script( 'alpine' );
96
  }
97
  }
@@ -207,8 +207,8 @@ if ( ! class_exists( 'IG_ES_Campaign_Rules' ) ) {
207
  </span>
208
  </div>
209
  <div class="w-3/12 text-right">
210
- <span class="es_spinner_image_admin inline-block align-middle -mt-1 mr-1" id="spinner-image" style="display:none"><img src="<?php echo esc_url( ES_PLUGIN_URL . 'lite/public/images/spinner.gif' ); ?>" alt="<?php echo esc_attr( 'Loading...', 'email-subscribers' ); ?>"/></span>
211
- <a class="inline-flex items-center text-sm font-medium leading-5 text-gray-700 transition duration-150 ease-in-out bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:shadow-outline focus:border-blue-300 -mt-1 mr-2 px-3 py-1 cursor-pointer close-conditions" x-on:click=" <?php echo esc_attr( $sidebar_id ); ?> = false"><?php esc_html_e( 'Save Rules', 'email-subscribers' ); ?></a>
212
  <a x-on:click=" <?php echo esc_attr( $sidebar_id ); ?> = false" class="-mt-1 rounded-md text-gray-400 hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-white cursor-pointer">
213
  <span class="sr-only"><?php echo esc_html__( 'Close panel', 'email-subscribers' ); ?></span>
214
  <!-- Heroicon name: outline/x -->
@@ -388,6 +388,7 @@ if ( ! class_exists( 'IG_ES_Campaign_Rules' ) ) {
388
  </div>
389
  <!-- /End replace -->
390
  </div>
 
391
  </div>
392
  <?php do_action( 'ig_es_upsell_campaign_rules'); ?>
393
  </div>
@@ -412,10 +413,15 @@ if ( ! class_exists( 'IG_ES_Campaign_Rules' ) ) {
412
  foreach ( $conditions as $i => $condition_group ) :
413
  if ( ! empty( $condition_group ) ) :
414
  ?>
415
- <div class="ig-es-condition-render-group clear">
416
  <?php
417
  if ( $i ) {
418
- echo '<span class="clear float-left pr-1 ig-es-condition-operators text-xs font-medium text-gray-400 tracking-wide uppercase mt-1 mr-1">' . esc_html__( 'and', 'email-subscribers' ) . '</span>';
 
 
 
 
 
419
  }
420
  foreach ( $condition_group as $j => $condition ) :
421
  $field = isset( $condition['field'] ) ? $condition['field'] : ( isset( $condition[0] ) ? $condition[0] : '' );
@@ -426,14 +432,19 @@ if ( ! class_exists( 'IG_ES_Campaign_Rules' ) ) {
426
  <div class="ig-es-condition-render ig-es-condition-render-<?php echo esc_attr( $condition['field'] ); ?>" title="<?php echo esc_attr( strip_tags( sprintf( '%s %s %s', $nice['field'], $nice['operator'], $nice['value'] ) ) ); ?>">
427
  <?php
428
  if ( $j ) {
429
- echo '<span class="clear ig-es-condition-type ig-es-condition-operators text-xs font-medium text-gray-400 tracking-wide uppercase mt-1 mr-1">' . esc_html__( 'or', 'email-subscribers' ) . '</span>';
430
  }
431
  ?>
432
  <span class="ig-es-condition-type ig-es-condition-field mt-1"><?php echo wp_kses( $nice['field'], $allowedtags ); ?></span>
433
  <span class="ig-es-condition-type ig-es-condition-operator mt-1"><?php echo wp_kses( $nice['operator'], $allowedtags ); ?></span>
434
  <span class="ig-es-condition-type ig-es-condition-value mt-1 pl-2"><?php echo wp_kses( $nice['value'], $allowedtags ); ?></span>
435
  </div>
436
- <?php endforeach; ?>
 
 
 
 
 
437
  </div>
438
  <?php
439
  endif;
91
  $current_page = ig_es_get_request_data( 'page' );
92
 
93
  if ( in_array( $current_page, array( 'es_newsletters', 'es_sequence' ), true ) ) {
94
+ wp_register_script( 'alpine', plugins_url( '/js/alpine.js', __FILE__ ), array(), '2.8.2', false );
95
  wp_enqueue_script( 'alpine' );
96
  }
97
  }
207
  </span>
208
  </div>
209
  <div class="w-3/12 text-right">
210
+ <span class="es_spinner_image_admin inline-block align-middle -mt-1 mr-1" id="spinner-image" style="display:none"><img src="<?php echo esc_url( ES_PLUGIN_URL . 'lite/public/images/spinner.gif' ); ?>" alt="<?php echo esc_attr__( 'Loading...', 'email-subscribers' ); ?>"/></span>
211
+ <a class="-mt-1 mr-2 px-3 py-0.5 ig-es-primary-button cursor-pointer close-conditions" x-on:click=" <?php echo esc_attr( $sidebar_id ); ?> = false"><?php esc_html_e( 'Save Rules', 'email-subscribers' ); ?></a>
212
  <a x-on:click=" <?php echo esc_attr( $sidebar_id ); ?> = false" class="-mt-1 rounded-md text-gray-400 hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-white cursor-pointer">
213
  <span class="sr-only"><?php echo esc_html__( 'Close panel', 'email-subscribers' ); ?></span>
214
  <!-- Heroicon name: outline/x -->
388
  </div>
389
  <!-- /End replace -->
390
  </div>
391
+
392
  </div>
393
  <?php do_action( 'ig_es_upsell_campaign_rules'); ?>
394
  </div>
413
  foreach ( $conditions as $i => $condition_group ) :
414
  if ( ! empty( $condition_group ) ) :
415
  ?>
416
+ <div class="ig-es-condition-render-group">
417
  <?php
418
  if ( $i ) {
419
+ echo '<span class="clear float-left pr-1 ig-es-condition-operators text-xs font-medium text-gray-400 tracking-wide uppercase mt-1 mr-1">' . esc_html__( 'and', 'email-subscribers' );
420
+ if ( count( $condition_group ) > 1 ) {
421
+ echo esc_html( ' ( ' );
422
+ }
423
+ echo wp_kses( '</span>', $allowedtags );
424
+
425
  }
426
  foreach ( $condition_group as $j => $condition ) :
427
  $field = isset( $condition['field'] ) ? $condition['field'] : ( isset( $condition[0] ) ? $condition[0] : '' );
432
  <div class="ig-es-condition-render ig-es-condition-render-<?php echo esc_attr( $condition['field'] ); ?>" title="<?php echo esc_attr( strip_tags( sprintf( '%s %s %s', $nice['field'], $nice['operator'], $nice['value'] ) ) ); ?>">
433
  <?php
434
  if ( $j ) {
435
+ echo '<span class="ig-es-condition-type ig-es-condition-operators text-xs font-medium text-gray-400 tracking-wide uppercase mt-1 mr-1">' . esc_html__( ' or', 'email-subscribers' ) . '</span>';
436
  }
437
  ?>
438
  <span class="ig-es-condition-type ig-es-condition-field mt-1"><?php echo wp_kses( $nice['field'], $allowedtags ); ?></span>
439
  <span class="ig-es-condition-type ig-es-condition-operator mt-1"><?php echo wp_kses( $nice['operator'], $allowedtags ); ?></span>
440
  <span class="ig-es-condition-type ig-es-condition-value mt-1 pl-2"><?php echo wp_kses( $nice['value'], $allowedtags ); ?></span>
441
  </div>
442
+ <?php
443
+ endforeach;
444
+ if ( $i && count( $condition_group ) > 1 ) {
445
+ echo '<span class="float-left pr-1 text-xs font-medium text-gray-400 tracking-wide uppercase mt-1">' . esc_html__( ') ', 'email-subscribers' ) . '</span>';
446
+ }
447
+ ?>
448
  </div>
449
  <?php
450
  endif;
lite/admin/class-ig-es-onboarding.php CHANGED
@@ -1210,6 +1210,7 @@ if ( ! class_exists( 'IG_ES_Onboarding' ) ) {
1210
  $list = ig_es_get_request_data( 'list', '' );
1211
 
1212
  if ( ! empty( $list ) && is_email( $email ) ) {
 
1213
  $url_params = array(
1214
  'ig_es_external_action' => 'subscribe',
1215
  'name' => $name,
@@ -1217,10 +1218,15 @@ if ( ! class_exists( 'IG_ES_Onboarding' ) ) {
1217
  'list' => $list,
1218
  );
1219
 
 
 
 
 
 
1220
  $ig_es_url = 'https://www.icegram.com/';
1221
  $ig_es_url = add_query_arg( $url_params, $ig_es_url );
1222
 
1223
- // Make a asynchronous request.
1224
  $api_response = wp_remote_get( $ig_es_url );
1225
  if ( ! is_wp_error( $api_response ) ) {
1226
  $body = ! empty( $api_response['body'] ) && ES_Common::is_valid_json( $api_response['body'] ) ? json_decode( $api_response['body'], true ) : '';
@@ -1255,7 +1261,7 @@ if ( ! class_exists( 'IG_ES_Onboarding' ) ) {
1255
  // Set flag for onboarding completion.
1256
  update_option( 'ig_es_onboarding_complete', 'yes' );
1257
 
1258
- $response['status'] = 'success';
1259
 
1260
  return $response;
1261
  }
1210
  $list = ig_es_get_request_data( 'list', '' );
1211
 
1212
  if ( ! empty( $list ) && is_email( $email ) ) {
1213
+
1214
  $url_params = array(
1215
  'ig_es_external_action' => 'subscribe',
1216
  'name' => $name,
1218
  'list' => $list,
1219
  );
1220
 
1221
+ $ip_address = ig_es_get_ip();
1222
+ if ( ! empty( $ip_address ) && 'UNKNOWN' !== $ip_address ) {
1223
+ $url_params['ip_address'] = $ip_address;
1224
+ }
1225
+
1226
  $ig_es_url = 'https://www.icegram.com/';
1227
  $ig_es_url = add_query_arg( $url_params, $ig_es_url );
1228
 
1229
+ // Make a get request.
1230
  $api_response = wp_remote_get( $ig_es_url );
1231
  if ( ! is_wp_error( $api_response ) ) {
1232
  $body = ! empty( $api_response['body'] ) && ES_Common::is_valid_json( $api_response['body'] ) ? json_decode( $api_response['body'], true ) : '';
1261
  // Set flag for onboarding completion.
1262
  update_option( 'ig_es_onboarding_complete', 'yes' );
1263
 
1264
+ $response['status'] = 'success';
1265
 
1266
  return $response;
1267
  }
lite/admin/css/email-subscribers-admin.css CHANGED
@@ -1788,13 +1788,17 @@ div.broadcast_side_content{
1788
  height: 1.2rem !important;
1789
  }
1790
 
 
 
 
1791
 
1792
  #es_country_flag, .es_campaign_report #country_flag{
1793
  width:3em !important;
1794
  }
1795
 
1796
- .es_campaign_report #sr_no, .es_campaign_report #device{
1797
  width: 5em !important;
 
1798
  }
1799
 
1800
  .es_campaign_report #status {
@@ -1805,14 +1809,37 @@ div.broadcast_side_content{
1805
  width: 8em !important;
1806
  }
1807
 
1808
- .es_campaign_report #email_client{
1809
- width: 12em !important;
1810
  }
1811
 
1812
  #es-flag-icon{
1813
- width:2.3em !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1814
  }
1815
 
 
1816
  .ig-es-attachment-container{
1817
  margin-left: -120px;
1818
  margin-right: -200px;
@@ -1956,6 +1983,35 @@ div.broadcast_side_content{
1956
  max-width: 37%;
1957
  padding-right: 4px;
1958
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1959
  .rtl .ig-es-conditions-field-fields,.rtl .ig-es-conditions-operator-fields,.rtl .ig-es-conditions-value-fields{
1960
  float: right;
1961
  padding-right: 0px;
@@ -2092,6 +2148,10 @@ body[class*="es_reports"] .recipient-text {
2092
  margin:5px 0;
2093
  }
2094
 
 
 
 
 
2095
  /* Campaign Rules CSS - END */
2096
 
2097
  /** Tailwind tooltip Custom CSS - START */
1788
  height: 1.2rem !important;
1789
  }
1790
 
1791
+ .es_campaign_report #sr_no{
1792
+ width:4em !important;
1793
+ }
1794
 
1795
  #es_country_flag, .es_campaign_report #country_flag{
1796
  width:3em !important;
1797
  }
1798
 
1799
+ .es_campaign_report #device{
1800
  width: 5em !important;
1801
+ padding-left:0;
1802
  }
1803
 
1804
  .es_campaign_report #status {
1809
  width: 8em !important;
1810
  }
1811
 
1812
+ .es_campaign_report #email_client, .es_campaign_report #sent_at, .es_campaign_report #opened_at {
1813
+ width: 14em !important;
1814
  }
1815
 
1816
  #es-flag-icon{
1817
+ width:2em !important;
1818
+ line-height: 1.5em;
1819
+ }
1820
+
1821
+ @media only screen and (max-width: 1200px) and (min-width: 768px) {
1822
+ .es_campaign_report #email_client, .es_campaign_report #sent_at, .es_campaign_report #opened_at {
1823
+ width: 9em !important;
1824
+ }
1825
+
1826
+ .es_campaign_report #status {
1827
+ width: 5em !important;
1828
+ }
1829
+
1830
+ .es_campaign_report #os{
1831
+ width: 7em !important;
1832
+ }
1833
+
1834
+ }
1835
+
1836
+ @media only screen and (max-width: 1330px) and (min-width: 1201px) {
1837
+ .es_campaign_report #email_client, .es_campaign_report #sent_at, .es_campaign_report #opened_at {
1838
+ width: 12em !important;
1839
+ }
1840
  }
1841
 
1842
+
1843
  .ig-es-attachment-container{
1844
  margin-left: -120px;
1845
  margin-right: -200px;
1983
  max-width: 37%;
1984
  padding-right: 4px;
1985
  }
1986
+
1987
+ .ig-es-conditions-value-fields:not([data-condition="email"]),
1988
+ .ig-es-conditions-value-fields:not([data-condition="country"]) {
1989
+ max-width: 60%;
1990
+ }
1991
+
1992
+ .ig-es-conditions-value-fields .select2-container--default .select2-selection--multiple .select2-selection__choice {
1993
+ margin-bottom: 0;
1994
+ margin-top: 4px;
1995
+ }
1996
+
1997
+ .ig-es-conditions-value-fields .select2-container .select2-search--inline {
1998
+ margin-bottom: 0;
1999
+ }
2000
+
2001
+ .ig-es-conditions-value-fields .select2-container:not(.select2-container--focus) .select2-search--inline:not(:only-child) {
2002
+ display: none;
2003
+ }
2004
+
2005
+ .ig-es-conditions-value-fields .select2-container .select2-search--inline .select2-search__field {
2006
+ margin-top: 0;
2007
+ min-height: 20px;
2008
+ height: 24px;
2009
+ }
2010
+
2011
+ .ig-es-conditions-value-fields .select2-container .select2-selection--multiple {
2012
+ min-height: 30px;
2013
+ }
2014
+
2015
  .rtl .ig-es-conditions-field-fields,.rtl .ig-es-conditions-operator-fields,.rtl .ig-es-conditions-value-fields{
2016
  float: right;
2017
  padding-right: 0px;
2148
  margin:5px 0;
2149
  }
2150
 
2151
+ .email-subscribers_page_es_newsletters .ig-es-condition-render-group, .email-subscribers_page_es_newsletters .ig-es-condition-operators{
2152
+ clear: both;
2153
+ }
2154
+
2155
  /* Campaign Rules CSS - END */
2156
 
2157
  /** Tailwind tooltip Custom CSS - START */
lite/admin/dist/main.css CHANGED
@@ -1 +1 @@
1
- /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}button{background-color:transparent;background-image:none}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}fieldset,ol,ul{margin:0;padding:0}ol,ul{list-style:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box;border:0 solid #d2d6dc}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#a0aec0}input::-moz-placeholder,textarea::-moz-placeholder{color:#a0aec0}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:#a0aec0}input::placeholder,textarea::placeholder{color:#a0aec0}[role=button],button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}a{--text-opacity:1;color:#5850ec;color:rgba(88,80,236,var(--text-opacity))}img{border-width:0}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}.form-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#d2d6dc;border-width:1px;border-radius:.375rem;padding:.5rem .75rem;font-size:1rem;line-height:1.5}.form-input::-webkit-input-placeholder{color:#9fa6b2;opacity:1}.form-input::-moz-placeholder{color:#9fa6b2;opacity:1}.form-input::-ms-input-placeholder{color:#9fa6b2;opacity:1}.form-input::placeholder{color:#9fa6b2;opacity:1}.form-input:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#d2d6dc;border-width:1px;border-radius:.375rem;padding:.5rem .75rem;font-size:1rem;line-height:1.5}.form-textarea::-webkit-input-placeholder{color:#9fa6b2;opacity:1}.form-textarea::-moz-placeholder{color:#9fa6b2;opacity:1}.form-textarea::-ms-input-placeholder{color:#9fa6b2;opacity:1}.form-textarea::placeholder{color:#9fa6b2;opacity:1}.form-textarea:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-multiselect{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#d2d6dc;border-width:1px;border-radius:.375rem;padding:.5rem .75rem;font-size:1rem;line-height:1.5}.form-multiselect:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M7 7l3-3 3 3m0 6l-3 3-3-3' stroke='%239fa6b2' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;background-repeat:no-repeat;background-color:#fff;border-color:#d2d6dc;border-width:1px;border-radius:.375rem;padding:.5rem 2.5rem .5rem .75rem;font-size:1rem;line-height:1.5;background-position:right .5rem center;background-size:1.5em 1.5em}.form-select::-ms-expand{color:#9fa6b2;border:none}@media not print{.form-select::-ms-expand{display:none}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.form-select{padding-right:.75rem}}.form-select:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-checkbox:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.707 7.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4a1 1 0 00-1.414-1.414L7 8.586 5.707 7.293z'/%3E%3C/svg%3E");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}@media not print{.form-checkbox::-ms-check{border-width:1px;color:transparent;background:inherit;border-color:inherit;border-radius:inherit}}.form-checkbox{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-flex-negative:0;flex-shrink:0;height:1rem;width:1rem;color:#3f83f8;background-color:#fff;border-color:#d2d6dc;border-width:1px;border-radius:.25rem}.form-checkbox:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-checkbox:checked:focus,.form-radio:checked{border-color:transparent}.form-radio:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E");background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}@media not print{.form-radio::-ms-check{border-width:1px;color:transparent;background:inherit;border-color:inherit;border-radius:inherit}}.form-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-flex-negative:0;flex-shrink:0;border-radius:100%;height:1rem;width:1rem;color:#3f83f8;background-color:#fff;border-color:#d2d6dc;border-width:1px}.form-radio:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-radio:checked:focus{border-color:transparent}li.menu-top div.wp-menu-image img{display:initial;border-style:none}.ig-es-primary-button,.ig-es-send-queue-emails{border-color:transparent;padding:.5rem 1rem;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity));background-color:#5850ec;background-color:rgba(88,80,236,var(--bg-opacity))}.ig-es-primary-button,.ig-es-send-queue-emails,.ig-es-title-button,.wp-heading-inline+.page-title-action{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:.375rem;border-width:1px;font-size:.875rem;line-height:1.25rem;font-weight:500;--text-opacity:1;--bg-opacity:1;-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.15s;transition-duration:.15s}.ig-es-title-button,.wp-heading-inline+.page-title-action{--border-opacity:1;border-color:#d2d6dc;border-color:rgba(210,214,220,var(--border-opacity));color:#374151;color:rgba(55,65,81,var(--text-opacity));background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));padding:.25rem .75rem}.wrap .wp-heading-inline+.page-title-action{margin-left:.5rem}.ig-es-title-button:hover,.wp-heading-inline+.page-title-action:hover{--bg-opacity:1;background-color:#f9fafb;background-color:rgba(249,250,251,var(--bg-opacity));--text-opacity:1;color:#374151;color:rgba(55,65,81,var(--text-opacity))}.ig-es-title-button:focus,.wp-heading-inline+.page-title-action:focus{outline:2px solid transparent;outline-offset:2px;-webkit-box-shadow:0 0 0 3px rgba(118,169,250,.45);box-shadow:0 0 0 3px rgba(118,169,250,.45);--border-opacity:1;border-color:#a4cafe;border-color:rgba(164,202,254,var(--border-opacity))}.ig-es-primary-button:hover{--bg-opacity:1;background-color:#6875f5;background-color:rgba(104,117,245,var(--bg-opacity));--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.ig-es-primary-button:focus{outline:2px solid transparent;outline-offset:2px;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45)}.ig-es-imp-button{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important;-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important;border-radius:.375rem!important;border-width:1px!important;border-color:transparent!important;background-color:#fff!important;background-color:rgba(255,255,255,var(--bg-opacity))!important;font-size:.875rem!important;line-height:1.25rem!important;font-weight:500!important;background-color:#0e9f6e!important;background-color:rgba(14,159,110,var(--bg-opacity))!important;-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform!important;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform!important;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1)!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important;-webkit-transition-duration:.15s!important;transition-duration:.15s!important}.ig-es-imp-button,.ig-es-imp-button:hover{--text-opacity:1!important;color:#fff!important;color:rgba(255,255,255,var(--text-opacity))!important;--bg-opacity:1!important}.ig-es-imp-button:hover{background-color:#31c48d!important;background-color:rgba(49,196,141,var(--bg-opacity))!important}.ig-es-imp-button:focus{outline:2px solid transparent!important;outline-offset:2px!important;-webkit-box-shadow:0 0 0 3px rgba(132,225,188,.45)!important;box-shadow:0 0 0 3px rgba(132,225,188,.45)!important}.ig-es-link-button{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));font-size:.875rem;line-height:1.25rem;font-weight:500;background-color:#ff5a1f;background-color:rgba(255,90,31,var(--bg-opacity));-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.15s;transition-duration:.15s}.ig-es-link-button,.ig-es-link-button:hover{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity));--bg-opacity:1}.ig-es-link-button:hover{background-color:#ff8a4c;background-color:rgba(255,138,76,var(--bg-opacity))}.ig-es-link-button:focus{outline:2px solid transparent;outline-offset:2px;-webkit-box-shadow:0 0 0 3px rgba(253,186,140,.45);box-shadow:0 0 0 3px rgba(253,186,140,.45)}.ig-es-action.js-open .ig-es-action__header{--bg-opacity:1;background-color:#d2d6dc;background-color:rgba(210,214,220,var(--bg-opacity));--text-opacity:1;color:#374151;color:rgba(55,65,81,var(--text-opacity));--border-opacity:1;border-color:#d2d6dc;border-color:rgba(210,214,220,var(--border-opacity))}.form-input{--bg-opacity:1!important;background-color:#fff!important;background-color:rgba(255,255,255,var(--bg-opacity))!important;border-width:1px!important;border-radius:.375rem!important;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.05)!important;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)!important;--border-opacity:1!important;border-color:#d2d6dc!important;border-color:rgba(210,214,220,var(--border-opacity))!important}.form-input:focus{outline:2px solid transparent!important;outline-offset:2px!important;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45)!important;box-shadow:0 0 0 3px rgba(164,202,254,.45)!important}.form-checkbox{content:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.707 7.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4a1 1 0 00-1.414-1.414L7 8.586 5.707 7.293z'/%3E%3C/svg%3E")}.form-radio{content:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E")}.form-checkbox:checked,.form-radio:checked{--text-opacity:1!important;color:#5850ec!important;color:rgba(88,80,236,var(--text-opacity))!important}.form-select{font-size:.875rem!important;--border-opacity:1!important;border-color:#9fa6b2!important;border-color:rgba(159,166,178,var(--border-opacity))!important;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M7 7l3-3 3 3m0 6l-3 3-3-3' stroke='%239fa6b2' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important}.form-select:focus,input[type=number]:focus{outline:2px solid transparent!important;outline-offset:2px!important;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45)!important;box-shadow:0 0 0 3px rgba(164,202,254,.45)!important;--border-opacity:1!important;border-color:#a4cafe!important;border-color:rgba(164,202,254,var(--border-opacity))!important}.es-check-toggle:checked~.es-mail-toggle-line{--bg-opacity:1;background-color:#5850ec;background-color:rgba(88,80,236,var(--bg-opacity))}.es-check-toggle:checked~.es-mail-toggle-dot{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;-webkit-transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));--transform-translate-x:100%}.es-mail-toggle-line{width:2.25rem;height:1.25rem;background-color:#d2d6dc;background-color:rgba(210,214,220,var(--bg-opacity));-webkit-box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06);box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.es-mail-toggle-dot,.es-mail-toggle-line{display:block;--bg-opacity:1;border-radius:9999px}.es-mail-toggle-dot{width:.875rem;height:.875rem;margin-left:.25rem;position:absolute;top:0;bottom:0;-webkit-transition-property:all;transition-property:all;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));-webkit-box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.es-mail-toggle-dot:focus-within{-webkit-box-shadow:0 0 0 3px rgba(118,169,250,.45);box-shadow:0 0 0 3px rgba(118,169,250,.45)}[type=radio]:checked+.es-mailer-logo{-webkit-transition-property:all;transition-property:all;-webkit-transition-duration:.1s;transition-duration:.1s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;-webkit-transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));--transform-scale-x:1.1;--transform-scale-y:1.1;-webkit-box-shadow:0 0 3px 1px #5a67d8;box-shadow:0 0 3px 1px #5a67d8}[type=radio]:checked+.es-mailer-logo:hover{border-width:1px;--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity))}.wp-core-ui .button,.wp-core-ui .button-secondary{--border-opacity:1;border-color:#5850ec;border-color:rgba(88,80,236,var(--border-opacity));color:#5850ec;color:rgba(88,80,236,var(--text-opacity))}.wp-core-ui .button,.wp-core-ui .button-primary,.wp-core-ui .button-secondary{font-size:.875rem;border-radius:.375rem;border-width:1px;line-height:1.25rem;font-weight:500;--text-opacity:1}.wp-core-ui .button-primary{--bg-opacity:1;background-color:#5850ec;background-color:rgba(88,80,236,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity));-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.15s;transition-duration:.15s}.wp-core-ui .button-primary:hover,.wp-core-ui .button:hover{--border-opacity:1;border-color:#5850ec;border-color:rgba(88,80,236,var(--border-opacity));--text-opacity:1;color:#6875f5;color:rgba(104,117,245,var(--text-opacity))}.wp-core-ui .search-box input[name=s],.wp-core-ui select{border-radius:.375rem}.wp-core-ui #bulk-action-selector-top,.wp-core-ui #doaction,.wp-core-ui #doaction2,.wp-core-ui #filter-by-date,.wp-core-ui #post-query-submit,.wp-core-ui #poststuff select,.wp-core-ui #search-submit{cursor:pointer;line-height:1.25rem;--text-opacity:1;color:#4b5563;color:rgba(75,85,99,var(--text-opacity));background-color:transparent;font-size:.875rem}.wp-core-ui #search-submit{margin-left:.375rem}.es-add-or-condition:hover,.wp-core-ui #doaction2:hover .wp-core-ui #post-query-submit:hover,.wp-core-ui #doaction:hover,.wp-core-ui #search-submit:hover{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity));--border-opacity:1;border-color:#6b7280;border-color:rgba(107,114,128,var(--border-opacity))}.es-add-or-condition:focus,.wp-core-ui #doaction2:focus .wp-core-ui #post-query-submit:focus,.wp-core-ui #doaction:focus,.wp-core-ui #search-submit:focus{outline:2px solid transparent;outline-offset:2px;-webkit-box-shadow:0 0 0 3px rgba(159,166,178,.45);box-shadow:0 0 0 3px rgba(159,166,178,.45)}.es-items-lists table.fixed,.post-type-es_template table.fixed{margin-top:1rem;margin-bottom:1rem;-webkit-box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);border-radius:.5rem;overflow:hidden}.es-items-lists table.fixed tfoot td,.es-items-lists table.fixed tfoot th,.es-items-lists table.fixed thead td,.es-items-lists table.fixed thead th,.post-type-es_template table.fixed tfoot th,.post-type-es_template table.fixed thead td,.post-type-es_template table.fixed thead th{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity));border-bottom-width:1px;--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity));--text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--text-opacity));font-weight:500;letter-spacing:.05em}.es-items-lists table.fixed tfoot th,.es-items-lists table.fixed thead th,.post-type-es_template table.fixed tfoot th,.post-type-es_template table.fixed thead th{padding-top:.5rem;padding-bottom:.5rem}.es-items-lists .widefat thead td input,.post-type-es_template .widefat thead td input{margin-right:1.5rem}.post-type-es_template .wrap{padding-top:1rem;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.post-type-es_template .wrap>h1{padding-top:0;font-weight:600;--text-opacity:1;color:#374151;color:rgba(55,65,81,var(--text-opacity));line-height:2.25rem}.es-items-lists .striped>tbody tr,.post-type-es_template .striped>tbody tr{border-bottom-width:1px;--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity));padding-top:.5rem;padding-bottom:.5rem}.es-campaign-reports-table .striped>tbody tr{border-bottom-width:2px}.es-items-lists .striped>tbody>:nth-child(odd),.post-type-es_template .striped>tbody>:nth-child(odd){--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.es_onboard_email{padding:.25rem .75rem!important}.es_reports_table_header{border-bottom-width:1px;--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity));--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity));text-align:left;font-size:.875rem;line-height:1rem;font-weight:500;--text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--text-opacity));letter-spacing:.05em}.importing-progress,.progress{width:100%;height:2rem;--bg-opacity:1;background-color:#e5e7eb;background-color:rgba(229,231,235,var(--bg-opacity));overflow:hidden;position:relative;text-align:right;line-height:1rem;margin-top:.375rem;border-radius:.25rem}.importing-progress span.bar,.progress span.bar{display:block;position:absolute;line-height:2.5rem;padding-top:.25rem;padding-bottom:.25rem;top:0;bottom:0;left:0;border-radius:.25rem;overflow:hidden;background-image:-webkit-gradient(linear,left top,right top,from(var(--gradient-color-stops)));background-image:linear-gradient(90deg,var(--gradient-color-stops));--gradient-from-color:#42389d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,56,157,0));--gradient-to-color:#6875f5;--bg-opacity:1;background-color:#8da2fb;background-color:rgba(141,162,251,var(--bg-opacity))}.es_sequences_wrapper .ig-es-campaign-rules label{--text-opacity:1;color:#374151;color:rgba(55,65,81,var(--text-opacity));font-weight:500;--text-opacity:0.75;font-size:.875rem;letter-spacing:.025em;line-height:1.5rem}.email-subscribers_page_es_workflows #ig_es_workflow_trigger select option:disabled{--text-opacity:1;color:#9fa6b2;color:rgba(159,166,178,var(--text-opacity))}.es_mailchimp_lists_and_status_input [type=checkbox]:checked+label.installing{--text-opacity:1;color:#9fa6b2;color:rgba(159,166,178,var(--text-opacity));-webkit-animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite;animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.es_mailchimp_lists_and_status_input [type=checkbox]:checked+label.success{--text-opacity:1!important;color:#4b5563!important;color:rgba(75,85,99,var(--text-opacity))!important;font-weight:500!important;-webkit-animation:none!important;animation:none!important}.es_mailchimp_lists_and_status_input [type=checkbox]:checked+label.skipping{--text-opacity:1!important;color:#9fa6b2!important;color:rgba(159,166,178,var(--text-opacity))!important;-webkit-animation:none!important;animation:none!important}.es_primary_link{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-top:1rem;font-size:.875rem;font-weight:700;--text-opacity:1;color:#5850ec;color:rgba(88,80,236,var(--text-opacity));-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform;-webkit-transition-duration:.15s;transition-duration:.15s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);border-bottom-width:2px;border-color:transparent;cursor:pointer}.es_primary_link:active,.es_primary_link:hover{--border-opacity:1;border-color:#5850ec;border-color:rgba(88,80,236,var(--border-opacity))}.es_primary_link:focus{outline:2px solid transparent;outline-offset:2px;--border-opacity:1;border-color:#5145cd;border-color:rgba(81,69,205,var(--border-opacity));-webkit-box-shadow:0 0 0 3px rgba(180,198,252,.45);box-shadow:0 0 0 3px rgba(180,198,252,.45)}.es_helper_text{font-style:italic;font-size:.75rem;font-weight:400;--text-opacity:1;color:#9fa6b2;color:rgba(159,166,178,var(--text-opacity));line-height:1.375}.es-documentation{border-color:transparent;border-radius:9999px;-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform;-webkit-transition-duration:.15s;transition-duration:.15s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.05);box-shadow:0 1px 2px 0 rgba(0,0,0,.05);--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.es-documentation:hover{border-radius:9999px;background-color:#e5e7eb;background-color:rgba(229,231,235,var(--bg-opacity))}.es-documentation:focus,.es-documentation:hover{--text-opacity:1;color:#4b5563;color:rgba(75,85,99,var(--text-opacity));-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.05);box-shadow:0 1px 2px 0 rgba(0,0,0,.05);--bg-opacity:1}.es-documentation:focus{background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity))}.space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.25rem*var(--space-y-reverse))}.space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.5rem*var(--space-y-reverse))}.space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.75rem*var(--space-y-reverse))}.space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.75rem*var(--space-x-reverse));margin-left:calc(0.75rem*(1 - var(--space-x-reverse)))}.space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1rem*var(--space-y-reverse))}.space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.25rem*var(--space-y-reverse))}.divide-y>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(1px*var(--divide-y-reverse))}.divide-gray-200>:not(template)~:not(template){--divide-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--divide-opacity))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-black{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.bg-gray-50{--bg-opacity:1;background-color:#f9fafb;background-color:rgba(249,250,251,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity))}.bg-gray-200{--bg-opacity:1;background-color:#e5e7eb;background-color:rgba(229,231,235,var(--bg-opacity))}.bg-gray-300{--bg-opacity:1;background-color:#d2d6dc;background-color:rgba(210,214,220,var(--bg-opacity))}.bg-gray-500{--bg-opacity:1;background-color:#6b7280;background-color:rgba(107,114,128,var(--bg-opacity))}.bg-red-50{--bg-opacity:1;background-color:#fdf2f2;background-color:rgba(253,242,242,var(--bg-opacity))}.bg-red-100{--bg-opacity:1;background-color:#fde8e8;background-color:rgba(253,232,232,var(--bg-opacity))}.bg-yellow-100{--bg-opacity:1;background-color:#fdf6b2;background-color:rgba(253,246,178,var(--bg-opacity))}.bg-green-100{--bg-opacity:1;background-color:#def7ec;background-color:rgba(222,247,236,var(--bg-opacity))}.bg-green-300{--bg-opacity:1;background-color:#84e1bc;background-color:rgba(132,225,188,var(--bg-opacity))}.bg-green-600{--bg-opacity:1;background-color:#057a55;background-color:rgba(5,122,85,var(--bg-opacity))}.bg-teal-50{--bg-opacity:1;background-color:#edfafa;background-color:rgba(237,250,250,var(--bg-opacity))}.bg-blue-50{--bg-opacity:1;background-color:#ebf5ff;background-color:rgba(235,245,255,var(--bg-opacity))}.bg-blue-300{--bg-opacity:1;background-color:#a4cafe;background-color:rgba(164,202,254,var(--bg-opacity))}.bg-indigo-200{--bg-opacity:1;background-color:#cddbfe;background-color:rgba(205,219,254,var(--bg-opacity))}.bg-indigo-500{--bg-opacity:1;background-color:#6875f5;background-color:rgba(104,117,245,var(--bg-opacity))}.bg-indigo-600{--bg-opacity:1;background-color:#5850ec;background-color:rgba(88,80,236,var(--bg-opacity))}.bg-indigo-700{--bg-opacity:1;background-color:#5145cd;background-color:rgba(81,69,205,var(--bg-opacity))}.bg-indigo-800{--bg-opacity:1;background-color:#42389d;background-color:rgba(66,56,157,var(--bg-opacity))}.bg-pink-200{--bg-opacity:1;background-color:#fad1e8;background-color:rgba(250,209,232,var(--bg-opacity))}.group:focus .group-focus\:bg-gray-400,.group:hover .group-hover\:bg-gray-400{--bg-opacity:1;background-color:#9fa6b2;background-color:rgba(159,166,178,var(--bg-opacity))}.hover\:bg-gray-50:hover{--bg-opacity:1;background-color:#f9fafb;background-color:rgba(249,250,251,var(--bg-opacity))}.hover\:bg-gray-100:hover{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity))}.hover\:bg-gray-300:hover{--bg-opacity:1;background-color:#d2d6dc;background-color:rgba(210,214,220,var(--bg-opacity))}.hover\:bg-green-500:hover{--bg-opacity:1;background-color:#0e9f6e;background-color:rgba(14,159,110,var(--bg-opacity))}.hover\:bg-indigo-500:hover{--bg-opacity:1;background-color:#6875f5;background-color:rgba(104,117,245,var(--bg-opacity))}.hover\:bg-indigo-600:hover{--bg-opacity:1;background-color:#5850ec;background-color:rgba(88,80,236,var(--bg-opacity))}.focus\:bg-gray-50:focus{--bg-opacity:1;background-color:#f9fafb;background-color:rgba(249,250,251,var(--bg-opacity))}.focus\:bg-gray-100:focus{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity))}.bg-opacity-75{--bg-opacity:0.75}.border-collapse{border-collapse:collapse}.border-transparent{border-color:transparent}.border-gray-100{--border-opacity:1;border-color:#f4f5f7;border-color:rgba(244,245,247,var(--border-opacity))}.border-gray-200{--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity))}.border-gray-300{--border-opacity:1;border-color:#d2d6dc;border-color:rgba(210,214,220,var(--border-opacity))}.border-gray-400{--border-opacity:1;border-color:#9fa6b2;border-color:rgba(159,166,178,var(--border-opacity))}.border-indigo-300{--border-opacity:1;border-color:#b4c6fc;border-color:rgba(180,198,252,var(--border-opacity))}.border-indigo-500{--border-opacity:1;border-color:#6875f5;border-color:rgba(104,117,245,var(--border-opacity))}.border-indigo-600{--border-opacity:1;border-color:#5850ec;border-color:rgba(88,80,236,var(--border-opacity))}.hover\:border-gray-200:hover{--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity))}.hover\:border-red-400:hover{--border-opacity:1;border-color:#f98080;border-color:rgba(249,128,128,var(--border-opacity))}.hover\:border-indigo-600:hover{--border-opacity:1;border-color:#5850ec;border-color:rgba(88,80,236,var(--border-opacity))}.focus\:border-blue-300:focus{--border-opacity:1;border-color:#a4cafe;border-color:rgba(164,202,254,var(--border-opacity))}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.rounded-full{border-radius:9999px}.rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.border-0{border-width:0}.border-2{border-width:2px}.border{border-width:1px}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.border-b{border-bottom-width:1px}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:-webkit-box;display:-ms-flexbox;display:flex}.inline-flex{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.grid{display:grid}.contents{display:contents}.hidden{display:none}.flex-row{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row}.flex-col,.flex-row{-webkit-box-direction:normal}.flex-col{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column}.flex-wrap{-ms-flex-wrap:wrap;flex-wrap:wrap}.items-start{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.self-start{-ms-flex-item-align:start;align-self:flex-start}.justify-start{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.flex-1{-webkit-box-flex:1;-ms-flex:1 1 0%;flex:1 1 0%}.flex-auto{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.flex-none{-webkit-box-flex:0;-ms-flex:none;flex:none}.flex-shrink-0{-ms-flex-negative:0;flex-shrink:0}.float-right{float:right}.float-left{float:left}.clearfix:after{content:"";display:table;clear:both}.font-sans{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.font-mono{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-thin{font-weight:200}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.h-0{height:0}.h-2{height:.5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-15{height:3.75rem}.h-20{height:5rem}.h-48{height:12rem}.h-auto{height:auto}.h-1\.5{height:.375rem}.h-2\.5{height:.625rem}.h-full{height:100%}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.text-3xl{font-size:1.875rem}.text-4xl{font-size:2.25rem}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-9{line-height:2.25rem}.leading-none{line-height:1}.leading-snug{line-height:1.375}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.list-none{list-style-type:none}.list-disc{list-style-type:disc}.list-decimal{list-style-type:decimal}.m-4{margin:1rem}.my-0{margin-top:0;margin-bottom:0}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mx-4{margin-left:1rem;margin-right:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.my-8{margin-top:2rem;margin-bottom:2rem}.mx-8{margin-left:2rem;margin-right:2rem}.mx-10{margin-left:2.5rem;margin-right:2.5rem}.my-12{margin-top:3rem;margin-bottom:3rem}.my-16{margin-top:4rem;margin-bottom:4rem}.mx-auto{margin-left:auto;margin-right:auto}.-my-4{margin-top:-1rem;margin-bottom:-1rem}.mt-0{margin-top:0}.mb-0{margin-bottom:0}.mt-1{margin-top:.25rem}.mr-1{margin-right:.25rem}.mb-1{margin-bottom:.25rem}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.mb-2{margin-bottom:.5rem}.ml-2{margin-left:.5rem}.mt-3{margin-top:.75rem}.mr-3{margin-right:.75rem}.mb-3{margin-bottom:.75rem}.ml-3{margin-left:.75rem}.mt-4{margin-top:1rem}.mr-4{margin-right:1rem}.mb-4{margin-bottom:1rem}.ml-4{margin-left:1rem}.mt-5{margin-top:1.25rem}.ml-5{margin-left:1.25rem}.mt-6{margin-top:1.5rem}.mr-6{margin-right:1.5rem}.mb-6{margin-bottom:1.5rem}.ml-6{margin-left:1.5rem}.mt-7{margin-top:1.75rem}.mb-7{margin-bottom:1.75rem}.ml-7{margin-left:1.75rem}.mt-8{margin-top:2rem}.mr-8{margin-right:2rem}.ml-8{margin-left:2rem}.mt-10{margin-top:2.5rem}.mr-10{margin-right:2.5rem}.mt-12{margin-top:3rem}.mb-12{margin-bottom:3rem}.ml-12{margin-left:3rem}.ml-14{margin-left:3.5rem}.mt-16{margin-top:4rem}.mr-16{margin-right:4rem}.ml-16{margin-left:4rem}.mt-0\.5{margin-top:.125rem}.mt-1\.5{margin-top:.375rem}.mr-1\.5{margin-right:.375rem}.mt-2\.5{margin-top:.625rem}.-mt-1{margin-top:-.25rem}.-mr-1{margin-right:-.25rem}.-mb-1{margin-bottom:-.25rem}.-mb-2{margin-bottom:-.5rem}.-mt-3{margin-top:-.75rem}.-mr-3{margin-right:-.75rem}.-mb-4{margin-bottom:-1rem}.-mt-5{margin-top:-1.25rem}.-ml-6{margin-left:-1.5rem}.-ml-8{margin-left:-2rem}.-mb-0\.5{margin-bottom:-.125rem}.-mt-1\.5{margin-top:-.375rem}.-mt-2\.5{margin-top:-.625rem}.max-h-full{max-height:100%}.max-w-3xl{max-width:48rem}.max-w-7xl{max-width:80rem}.max-w-full{max-width:100%}.min-h-screen{min-height:100vh}.min-w-0{min-width:0}.min-w-full{min-width:100%}.object-cover{-o-object-fit:cover;object-fit:cover}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.p-0{padding:0}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-13{padding:3.25rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.px-1{padding-left:.25rem;padding-right:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-7{padding-top:1.75rem;padding-bottom:1.75rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-12{padding-top:3rem;padding-bottom:3rem}.px-12{padding-left:3rem;padding-right:3rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.pt-1{padding-top:.25rem}.pr-1{padding-right:.25rem}.pb-1{padding-bottom:.25rem}.pl-1{padding-left:.25rem}.pt-2{padding-top:.5rem}.pr-2{padding-right:.5rem}.pb-2{padding-bottom:.5rem}.pl-2{padding-left:.5rem}.pt-3{padding-top:.75rem}.pr-3{padding-right:.75rem}.pb-3{padding-bottom:.75rem}.pl-3{padding-left:.75rem}.pt-4{padding-top:1rem}.pr-4{padding-right:1rem}.pb-4{padding-bottom:1rem}.pl-4{padding-left:1rem}.pt-5{padding-top:1.25rem}.pb-5{padding-bottom:1.25rem}.pl-5{padding-left:1.25rem}.pt-6{padding-top:1.5rem}.pr-6{padding-right:1.5rem}.pb-6{padding-bottom:1.5rem}.pl-6{padding-left:1.5rem}.pt-7{padding-top:1.75rem}.pt-8{padding-top:2rem}.pb-8{padding-bottom:2rem}.pl-8{padding-left:2rem}.pt-10{padding-top:2.5rem}.pl-10{padding-left:2.5rem}.pr-12{padding-right:3rem}.pb-12{padding-bottom:3rem}.pl-16{padding-left:4rem}.pt-0\.5{padding-top:.125rem}.pl-0\.5{padding-left:.125rem}.pt-1\.5{padding-top:.375rem}.pb-1\.5{padding-bottom:.375rem}.pointer-events-none{pointer-events:none}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:-webkit-sticky;position:sticky}.inset-0{right:0;left:0}.inset-0,.inset-y-0{top:0;bottom:0}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.bottom-2{bottom:.5rem}.bottom-5{bottom:1.25rem}.top-8{top:2rem}.top-10{top:2.5rem}.top-20{top:5rem}.resize{resize:both}.shadow-xs{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.05);box-shadow:0 0 0 1px rgba(0,0,0,.05)}.shadow-sm{-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.05);box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.shadow{-webkit-box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.shadow-md{-webkit-box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.shadow-lg{-webkit-box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.shadow-xl{-webkit-box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.shadow-inner{-webkit-box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06);box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.hover\:shadow-md:hover{-webkit-box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.focus\:shadow-lg:focus{-webkit-box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.focus\:shadow-outline:focus{-webkit-box-shadow:0 0 0 3px rgba(118,169,250,.45);box-shadow:0 0 0 3px rgba(118,169,250,.45)}.focus\:shadow-outline-blue:focus{-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45)}.focus\:shadow-outline-red:focus{-webkit-box-shadow:0 0 0 3px rgba(248,180,180,.45);box-shadow:0 0 0 3px rgba(248,180,180,.45)}.focus\:shadow-outline-indigo:focus{-webkit-box-shadow:0 0 0 3px rgba(180,198,252,.45);box-shadow:0 0 0 3px rgba(180,198,252,.45)}.fill-current{fill:currentColor}.table-fixed{table-layout:fixed}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.text-black{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#d2d6dc;color:rgba(210,214,220,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#9fa6b2;color:rgba(159,166,178,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#4b5563;color:rgba(75,85,99,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#374151;color:rgba(55,65,81,var(--text-opacity))}.text-gray-800{--text-opacity:1;color:#252f3f;color:rgba(37,47,63,var(--text-opacity))}.text-gray-900{--text-opacity:1;color:#161e2e;color:rgba(22,30,46,var(--text-opacity))}.text-red-400{--text-opacity:1;color:#f98080;color:rgba(249,128,128,var(--text-opacity))}.text-red-500{--text-opacity:1;color:#f05252;color:rgba(240,82,82,var(--text-opacity))}.text-red-600{--text-opacity:1;color:#e02424;color:rgba(224,36,36,var(--text-opacity))}.text-red-800{--text-opacity:1;color:#9b1c1c;color:rgba(155,28,28,var(--text-opacity))}.text-orange-400{--text-opacity:1;color:#ff8a4c;color:rgba(255,138,76,var(--text-opacity))}.text-orange-500{--text-opacity:1;color:#ff5a1f;color:rgba(255,90,31,var(--text-opacity))}.text-yellow-400{--text-opacity:1;color:#e3a008;color:rgba(227,160,8,var(--text-opacity))}.text-yellow-600{--text-opacity:1;color:#9f580a;color:rgba(159,88,10,var(--text-opacity))}.text-green-400{--text-opacity:1;color:#31c48d;color:rgba(49,196,141,var(--text-opacity))}.text-green-500{--text-opacity:1;color:#0e9f6e;color:rgba(14,159,110,var(--text-opacity))}.text-green-600{--text-opacity:1;color:#057a55;color:rgba(5,122,85,var(--text-opacity))}.text-green-800{--text-opacity:1;color:#03543f;color:rgba(3,84,63,var(--text-opacity))}.text-teal-400{--text-opacity:1;color:#16bdca;color:rgba(22,189,202,var(--text-opacity))}.text-teal-700{--text-opacity:1;color:#036672;color:rgba(3,102,114,var(--text-opacity))}.text-teal-800{--text-opacity:1;color:#05505c;color:rgba(5,80,92,var(--text-opacity))}.text-blue-400{--text-opacity:1;color:#76a9fa;color:rgba(118,169,250,var(--text-opacity))}.text-blue-500{--text-opacity:1;color:#3f83f8;color:rgba(63,131,248,var(--text-opacity))}.text-blue-700{--text-opacity:1;color:#1a56db;color:rgba(26,86,219,var(--text-opacity))}.text-blue-800{--text-opacity:1;color:#1e429f;color:rgba(30,66,159,var(--text-opacity))}.text-indigo-100{--text-opacity:1;color:#e5edff;color:rgba(229,237,255,var(--text-opacity))}.text-indigo-400{--text-opacity:1;color:#8da2fb;color:rgba(141,162,251,var(--text-opacity))}.text-indigo-500{--text-opacity:1;color:#6875f5;color:rgba(104,117,245,var(--text-opacity))}.text-indigo-600{--text-opacity:1;color:#5850ec;color:rgba(88,80,236,var(--text-opacity))}.text-indigo-700{--text-opacity:1;color:#5145cd;color:rgba(81,69,205,var(--text-opacity))}.text-indigo-800{--text-opacity:1;color:#42389d;color:rgba(66,56,157,var(--text-opacity))}.group:hover .group-hover\:text-gray-900{--text-opacity:1;color:#161e2e;color:rgba(22,30,46,var(--text-opacity))}.group:hover .group-hover\:text-indigo-800{--text-opacity:1;color:#42389d;color:rgba(66,56,157,var(--text-opacity))}.group:focus .group-focus\:text-gray-900{--text-opacity:1;color:#161e2e;color:rgba(22,30,46,var(--text-opacity))}.group:focus .group-focus\:text-indigo-800{--text-opacity:1;color:#42389d;color:rgba(66,56,157,var(--text-opacity))}.hover\:text-white:hover{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.hover\:text-gray-500:hover{--text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--text-opacity))}.hover\:text-gray-800:hover{--text-opacity:1;color:#252f3f;color:rgba(37,47,63,var(--text-opacity))}.hover\:text-gray-900:hover{--text-opacity:1;color:#161e2e;color:rgba(22,30,46,var(--text-opacity))}.hover\:text-blue-700:hover{--text-opacity:1;color:#1a56db;color:rgba(26,86,219,var(--text-opacity))}.hover\:text-indigo-500:hover{--text-opacity:1;color:#6875f5;color:rgba(104,117,245,var(--text-opacity))}.focus\:text-gray-900:focus{--text-opacity:1;color:#161e2e;color:rgba(22,30,46,var(--text-opacity))}.active\:text-indigo-600:active{--text-opacity:1;color:#5850ec;color:rgba(88,80,236,var(--text-opacity))}.text-opacity-75{--text-opacity:0.75}.text-opacity-100{--text-opacity:1}.italic{font-style:italic}.not-italic{font-style:normal}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.underline{text-decoration:underline}.no-underline{text-decoration:none}.hover\:underline:hover{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.select-none{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.visible{visibility:visible}.invisible{visibility:hidden}.whitespace-no-wrap{white-space:nowrap}.break-words{word-wrap:break-word;overflow-wrap:break-word}.break-all{word-break:break-all}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.w-0{width:0}.w-2{width:.5rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-12{width:3rem}.w-24{width:6rem}.w-40{width:10rem}.w-48{width:12rem}.w-56{width:14rem}.w-auto{width:auto}.w-1\.5{width:.375rem}.w-2\.5{width:.625rem}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-2\/3{width:66.666667%}.w-1\/4{width:25%}.w-2\/4{width:50%}.w-3\/4{width:75%}.w-1\/5{width:20%}.w-2\/5{width:40%}.w-3\/5{width:60%}.w-4\/5{width:80%}.w-3\/6{width:50%}.w-4\/6{width:66.666667%}.w-5\/6{width:83.333333%}.w-1\/12{width:8.333333%}.w-2\/12{width:16.666667%}.w-3\/12{width:25%}.w-4\/12{width:33.333333%}.w-5\/12{width:41.666667%}.w-9\/12{width:75%}.w-10\/12{width:83.333333%}.w-11\/12{width:91.666667%}.w-full{width:100%}.w-screen{width:100vw}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.gap-8{grid-gap:2rem;gap:2rem}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;-webkit-transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}.origin-top-right{-webkit-transform-origin:top right;transform-origin:top right}.scale-95{--transform-scale-x:.95;--transform-scale-y:.95}.scale-100{--transform-scale-x:1;--transform-scale-y:1}.translate-x-0{--transform-translate-x:0}.-translate-x-full{--transform-translate-x:-100%}.transition-all{-webkit-transition-property:all;transition-property:all}.transition{-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform}.transition-opacity{-webkit-transition-property:opacity;transition-property:opacity}.ease-in{-webkit-transition-timing-function:cubic-bezier(.4,0,1,1);transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{-webkit-transition-timing-function:cubic-bezier(0,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in-out{-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-75{-webkit-transition-duration:75ms;transition-duration:75ms}.duration-100{-webkit-transition-duration:.1s;transition-duration:.1s}.duration-150{-webkit-transition-duration:.15s;transition-duration:.15s}.duration-200{-webkit-transition-duration:.2s;transition-duration:.2s}.duration-300{-webkit-transition-duration:.3s;transition-duration:.3s}@-webkit-keyframes spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes ping{75%,to{-webkit-transform:scale(2);transform:scale(2);opacity:0}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{-webkit-transform:translateY(-25%);transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{-webkit-transform:none;transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-spin{-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite}.animate-ping{-webkit-animation:ping 1s cubic-bezier(0,0,.2,1) infinite;animation:ping 1s cubic-bezier(0,0,.2,1) infinite}.animate-pulse{-webkit-animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite;animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@media (min-width:640px){.sm\:space-y-0>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0px*(1 - var(--space-y-reverse)));margin-bottom:calc(0px*var(--space-y-reverse))}.sm\:space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.75rem*var(--space-y-reverse))}.sm\:space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1rem*var(--space-x-reverse));margin-left:calc(1rem*(1 - var(--space-x-reverse)))}.sm\:rounded-md{border-radius:.375rem}.sm\:rounded-lg{border-radius:.5rem}.sm\:flex{display:-webkit-box;display:-ms-flexbox;display:flex}.sm\:grid{display:grid}.sm\:flex-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.sm\:items-start{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.sm\:items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.sm\:h-10{height:2.5rem}.sm\:text-sm{font-size:.875rem}.sm\:text-2xl{font-size:1.5rem}.sm\:text-3xl{font-size:1.875rem}.sm\:leading-5{line-height:1.25rem}.sm\:leading-7{line-height:1.75rem}.sm\:leading-9{line-height:2.25rem}.sm\:my-0{margin-top:0;margin-bottom:0}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:my-7{margin-top:1.75rem;margin-bottom:1.75rem}.sm\:my-8{margin-top:2rem;margin-bottom:2rem}.sm\:my-12{margin-top:3rem;margin-bottom:3rem}.sm\:mt-0{margin-top:0}.sm\:ml-3{margin-left:.75rem}.sm\:ml-4{margin-left:1rem}.sm\:mt-5{margin-top:1.25rem}.sm\:max-w-lg{max-width:32rem}.sm\:p-6{padding:1.5rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-2{padding-left:.5rem;padding-right:.5rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pb-4{padding-bottom:1rem}.sm\:text-left{text-align:left}.sm\:align-middle{vertical-align:middle}.sm\:truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sm\:w-10{width:2.5rem}.sm\:w-32{width:8rem}.sm\:w-auto{width:auto}.sm\:w-1\/2{width:50%}.sm\:w-1\/3{width:33.333333%}.sm\:w-2\/3{width:66.666667%}.sm\:w-2\/4{width:50%}.sm\:w-full{width:100%}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:768px){.md\:rounded-lg{border-radius:.5rem}.md\:flex{display:-webkit-box;display:-ms-flexbox;display:flex}.md\:items-start{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.md\:items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.md\:justify-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.md\:text-base{font-size:1rem}.md\:mx-0{margin-left:0;margin-right:0}.md\:my-2{margin-top:.5rem;margin-bottom:.5rem}.md\:mx-auto{margin-left:auto;margin-right:auto}.md\:mt-0{margin-top:0}.md\:ml-2{margin-left:.5rem}.md\:ml-4{margin-left:1rem}.md\:ml-8{margin-left:2rem}.md\:-mr-8{margin-right:-2rem}.md\:max-w-xl{max-width:36rem}.md\:max-w-5xl{max-width:64rem}.md\:p-2{padding:.5rem}.md\:p-6{padding:1.5rem}.md\:py-0{padding-top:0;padding-bottom:0}.md\:px-1{padding-left:.25rem;padding-right:.25rem}.md\:px-2{padding-left:.5rem;padding-right:.5rem}.md\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:pb-2{padding-bottom:.5rem}.md\:pr-4{padding-right:1rem}.md\:pt-6{padding-top:1.5rem}.md\:shadow-xl{-webkit-box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.md\:w-3\/5{width:60%}}@media (min-width:1024px){.lg\:bg-transparent{background-color:transparent}.lg\:border-transparent{border-color:transparent}.lg\:rounded-full{border-radius:9999px}.lg\:block{display:block}.lg\:flex{display:-webkit-box;display:-ms-flexbox;display:flex}.lg\:inline-flex{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.lg\:text-sm{font-size:.875rem}.lg\:text-lg{font-size:1.125rem}.lg\:my-0{margin-top:0;margin-bottom:0}.lg\:mx-5{margin-left:1.25rem;margin-right:1.25rem}.lg\:my-24{margin-top:6rem;margin-bottom:6rem}.lg\:mx-auto{margin-left:auto;margin-right:auto}.lg\:ml-16{margin-left:4rem}.lg\:-mr-16{margin-right:-4rem}.lg\:max-w-3xl{max-width:48rem}.lg\:p-6{padding:1.5rem}.lg\:p-8{padding:2rem}.lg\:px-3{padding-left:.75rem;padding-right:.75rem}.lg\:px-4{padding-left:1rem;padding-right:1rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:pt-2{padding-top:.5rem}.lg\:pb-2{padding-bottom:.5rem}.lg\:pl-2{padding-left:.5rem}.lg\:top-1\/2{top:50%}.lg\:shadow-none{-webkit-box-shadow:none;box-shadow:none}.lg\:w-40{width:10rem}.lg\:w-48{width:12rem}.lg\:w-1\/2{width:50%}.lg\:w-3\/5{width:60%}.lg\:w-3\/12{width:25%}.lg\:w-7\/12{width:58.333333%}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1280px){.xl\:mx-7{margin-left:1.75rem;margin-right:1.75rem}.xl\:mr-0{margin-right:0}.xl\:ml-2{margin-left:.5rem}.xl\:ml-3{margin-left:.75rem}.xl\:ml-4{margin-left:1rem}.xl\:ml-20{margin-left:5rem}.xl\:ml-32{margin-left:8rem}.xl\:max-w-4xl{max-width:56rem}.xl\:px-4{padding-left:1rem;padding-right:1rem}.xl\:pr-3{padding-right:.75rem}.xl\:pb-4{padding-bottom:1rem}.xl\:top-1\/3{top:33.333333%}.xl\:w-64{width:16rem}.xl\:w-1\/4{width:25%}.xl\:w-2\/5{width:40%}.xl\:w-3\/5{width:60%}.xl\:w-2\/12{width:16.666667%}.xl\:w-6\/12{width:50%}.xl\:w-7\/12{width:58.333333%}}
1
+ /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}button{background-color:transparent;background-image:none}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}fieldset,ol,ul{margin:0;padding:0}ol,ul{list-style:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box;border:0 solid #d2d6dc}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#a0aec0}input::-moz-placeholder,textarea::-moz-placeholder{color:#a0aec0}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:#a0aec0}input::placeholder,textarea::placeholder{color:#a0aec0}[role=button],button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}a{--text-opacity:1;color:#5850ec;color:rgba(88,80,236,var(--text-opacity))}img{border-width:0}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}.form-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#d2d6dc;border-width:1px;border-radius:.375rem;padding:.5rem .75rem;font-size:1rem;line-height:1.5}.form-input::-webkit-input-placeholder{color:#9fa6b2;opacity:1}.form-input::-moz-placeholder{color:#9fa6b2;opacity:1}.form-input::-ms-input-placeholder{color:#9fa6b2;opacity:1}.form-input::placeholder{color:#9fa6b2;opacity:1}.form-input:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#d2d6dc;border-width:1px;border-radius:.375rem;padding:.5rem .75rem;font-size:1rem;line-height:1.5}.form-textarea::-webkit-input-placeholder{color:#9fa6b2;opacity:1}.form-textarea::-moz-placeholder{color:#9fa6b2;opacity:1}.form-textarea::-ms-input-placeholder{color:#9fa6b2;opacity:1}.form-textarea::placeholder{color:#9fa6b2;opacity:1}.form-textarea:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-multiselect{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#d2d6dc;border-width:1px;border-radius:.375rem;padding:.5rem .75rem;font-size:1rem;line-height:1.5}.form-multiselect:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M7 7l3-3 3 3m0 6l-3 3-3-3' stroke='%239fa6b2' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;background-repeat:no-repeat;background-color:#fff;border-color:#d2d6dc;border-width:1px;border-radius:.375rem;padding:.5rem 2.5rem .5rem .75rem;font-size:1rem;line-height:1.5;background-position:right .5rem center;background-size:1.5em 1.5em}.form-select::-ms-expand{color:#9fa6b2;border:none}@media not print{.form-select::-ms-expand{display:none}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.form-select{padding-right:.75rem}}.form-select:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-checkbox:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.707 7.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4a1 1 0 00-1.414-1.414L7 8.586 5.707 7.293z'/%3E%3C/svg%3E");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}@media not print{.form-checkbox::-ms-check{border-width:1px;color:transparent;background:inherit;border-color:inherit;border-radius:inherit}}.form-checkbox{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-flex-negative:0;flex-shrink:0;height:1rem;width:1rem;color:#3f83f8;background-color:#fff;border-color:#d2d6dc;border-width:1px;border-radius:.25rem}.form-checkbox:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-checkbox:checked:focus,.form-radio:checked{border-color:transparent}.form-radio:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E");background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}@media not print{.form-radio::-ms-check{border-width:1px;color:transparent;background:inherit;border-color:inherit;border-radius:inherit}}.form-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-flex-negative:0;flex-shrink:0;border-radius:100%;height:1rem;width:1rem;color:#3f83f8;background-color:#fff;border-color:#d2d6dc;border-width:1px}.form-radio:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-radio:checked:focus{border-color:transparent}li.menu-top div.wp-menu-image img{display:initial;border-style:none}.ig-es-primary-button,.ig-es-send-queue-emails{border-color:transparent;padding:.5rem 1rem;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity));background-color:#5850ec;background-color:rgba(88,80,236,var(--bg-opacity))}.ig-es-primary-button,.ig-es-send-queue-emails,.ig-es-title-button,.wp-heading-inline+.page-title-action{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:.375rem;border-width:1px;font-size:.875rem;line-height:1.25rem;font-weight:500;--text-opacity:1;--bg-opacity:1;-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.15s;transition-duration:.15s}.ig-es-title-button,.wp-heading-inline+.page-title-action{--border-opacity:1;border-color:#d2d6dc;border-color:rgba(210,214,220,var(--border-opacity));color:#374151;color:rgba(55,65,81,var(--text-opacity));background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));padding:.25rem .75rem}.wrap .wp-heading-inline+.page-title-action{margin-left:.5rem}.ig-es-title-button:hover,.wp-heading-inline+.page-title-action:hover{--bg-opacity:1;background-color:#f9fafb;background-color:rgba(249,250,251,var(--bg-opacity));--text-opacity:1;color:#374151;color:rgba(55,65,81,var(--text-opacity))}.ig-es-title-button:focus,.wp-heading-inline+.page-title-action:focus{outline:2px solid transparent;outline-offset:2px;-webkit-box-shadow:0 0 0 3px rgba(118,169,250,.45);box-shadow:0 0 0 3px rgba(118,169,250,.45);--border-opacity:1;border-color:#a4cafe;border-color:rgba(164,202,254,var(--border-opacity))}.ig-es-primary-button:hover{--bg-opacity:1;background-color:#6875f5;background-color:rgba(104,117,245,var(--bg-opacity));--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.ig-es-primary-button:focus{outline:2px solid transparent;outline-offset:2px;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45)}.ig-es-imp-button{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important;-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important;border-radius:.375rem!important;border-width:1px!important;border-color:transparent!important;background-color:#fff!important;background-color:rgba(255,255,255,var(--bg-opacity))!important;font-size:.875rem!important;line-height:1.25rem!important;font-weight:500!important;background-color:#0e9f6e!important;background-color:rgba(14,159,110,var(--bg-opacity))!important;-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform!important;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform!important;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1)!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important;-webkit-transition-duration:.15s!important;transition-duration:.15s!important}.ig-es-imp-button,.ig-es-imp-button:hover{--text-opacity:1!important;color:#fff!important;color:rgba(255,255,255,var(--text-opacity))!important;--bg-opacity:1!important}.ig-es-imp-button:hover{background-color:#31c48d!important;background-color:rgba(49,196,141,var(--bg-opacity))!important}.ig-es-imp-button:focus{outline:2px solid transparent!important;outline-offset:2px!important;-webkit-box-shadow:0 0 0 3px rgba(132,225,188,.45)!important;box-shadow:0 0 0 3px rgba(132,225,188,.45)!important}.ig-es-link-button{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));font-size:.875rem;line-height:1.25rem;font-weight:500;background-color:#ff5a1f;background-color:rgba(255,90,31,var(--bg-opacity));-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.15s;transition-duration:.15s}.ig-es-link-button,.ig-es-link-button:hover{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity));--bg-opacity:1}.ig-es-link-button:hover{background-color:#ff8a4c;background-color:rgba(255,138,76,var(--bg-opacity))}.ig-es-link-button:focus{outline:2px solid transparent;outline-offset:2px;-webkit-box-shadow:0 0 0 3px rgba(253,186,140,.45);box-shadow:0 0 0 3px rgba(253,186,140,.45)}.ig-es-action.js-open .ig-es-action__header{--bg-opacity:1;background-color:#d2d6dc;background-color:rgba(210,214,220,var(--bg-opacity));--text-opacity:1;color:#374151;color:rgba(55,65,81,var(--text-opacity));--border-opacity:1;border-color:#d2d6dc;border-color:rgba(210,214,220,var(--border-opacity))}.form-input{--bg-opacity:1!important;background-color:#fff!important;background-color:rgba(255,255,255,var(--bg-opacity))!important;border-width:1px!important;border-radius:.375rem!important;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.05)!important;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)!important;--border-opacity:1!important;border-color:#d2d6dc!important;border-color:rgba(210,214,220,var(--border-opacity))!important}.form-input:focus{outline:2px solid transparent!important;outline-offset:2px!important;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45)!important;box-shadow:0 0 0 3px rgba(164,202,254,.45)!important}.form-checkbox{content:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.707 7.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4a1 1 0 00-1.414-1.414L7 8.586 5.707 7.293z'/%3E%3C/svg%3E")}.form-radio{content:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E")}.form-checkbox:checked,.form-radio:checked{--text-opacity:1!important;color:#5850ec!important;color:rgba(88,80,236,var(--text-opacity))!important}.form-select{font-size:.875rem!important;--border-opacity:1!important;border-color:#9fa6b2!important;border-color:rgba(159,166,178,var(--border-opacity))!important;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M7 7l3-3 3 3m0 6l-3 3-3-3' stroke='%239fa6b2' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important}.form-select:focus,input[type=number]:focus{outline:2px solid transparent!important;outline-offset:2px!important;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45)!important;box-shadow:0 0 0 3px rgba(164,202,254,.45)!important;--border-opacity:1!important;border-color:#a4cafe!important;border-color:rgba(164,202,254,var(--border-opacity))!important}.es-check-toggle:checked~.es-mail-toggle-line{--bg-opacity:1;background-color:#5850ec;background-color:rgba(88,80,236,var(--bg-opacity))}.es-check-toggle:checked~.es-mail-toggle-dot{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;-webkit-transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));--transform-translate-x:100%}.es-mail-toggle-line{width:2.25rem;height:1.25rem;background-color:#d2d6dc;background-color:rgba(210,214,220,var(--bg-opacity));-webkit-box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06);box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.es-mail-toggle-dot,.es-mail-toggle-line{display:block;--bg-opacity:1;border-radius:9999px}.es-mail-toggle-dot{width:.875rem;height:.875rem;margin-left:.25rem;position:absolute;top:0;bottom:0;-webkit-transition-property:all;transition-property:all;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));-webkit-box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.es-mail-toggle-dot:focus-within{-webkit-box-shadow:0 0 0 3px rgba(118,169,250,.45);box-shadow:0 0 0 3px rgba(118,169,250,.45)}[type=radio]:checked+.es-mailer-logo{-webkit-transition-property:all;transition-property:all;-webkit-transition-duration:.1s;transition-duration:.1s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;-webkit-transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));--transform-scale-x:1.1;--transform-scale-y:1.1;-webkit-box-shadow:0 0 3px 1px #5a67d8;box-shadow:0 0 3px 1px #5a67d8}[type=radio]:checked+.es-mailer-logo:hover{border-width:1px;--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity))}.wp-core-ui .button,.wp-core-ui .button-secondary{--border-opacity:1;border-color:#5850ec;border-color:rgba(88,80,236,var(--border-opacity));color:#5850ec;color:rgba(88,80,236,var(--text-opacity))}.wp-core-ui .button,.wp-core-ui .button-primary,.wp-core-ui .button-secondary{font-size:.875rem;border-radius:.375rem;border-width:1px;line-height:1.25rem;font-weight:500;--text-opacity:1}.wp-core-ui .button-primary{--bg-opacity:1;background-color:#5850ec;background-color:rgba(88,80,236,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity));-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.15s;transition-duration:.15s}.wp-core-ui .button-primary:hover,.wp-core-ui .button:hover{--border-opacity:1;border-color:#5850ec;border-color:rgba(88,80,236,var(--border-opacity));--text-opacity:1;color:#6875f5;color:rgba(104,117,245,var(--text-opacity))}.wp-core-ui .search-box input[name=s],.wp-core-ui select{border-radius:.375rem}.wp-core-ui #bulk-action-selector-top,.wp-core-ui #doaction,.wp-core-ui #doaction2,.wp-core-ui #filter-by-date,.wp-core-ui #post-query-submit,.wp-core-ui #poststuff select,.wp-core-ui #search-submit{cursor:pointer;line-height:1.25rem;--text-opacity:1;color:#4b5563;color:rgba(75,85,99,var(--text-opacity));background-color:transparent;font-size:.875rem}.wp-core-ui #search-submit{margin-left:.375rem}.es-add-or-condition:hover,.wp-core-ui #doaction2:hover .wp-core-ui #post-query-submit:hover,.wp-core-ui #doaction:hover,.wp-core-ui #search-submit:hover{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity));--border-opacity:1;border-color:#6b7280;border-color:rgba(107,114,128,var(--border-opacity))}.es-add-or-condition:focus,.wp-core-ui #doaction2:focus .wp-core-ui #post-query-submit:focus,.wp-core-ui #doaction:focus,.wp-core-ui #search-submit:focus{outline:2px solid transparent;outline-offset:2px;-webkit-box-shadow:0 0 0 3px rgba(159,166,178,.45);box-shadow:0 0 0 3px rgba(159,166,178,.45)}.es-items-lists table.fixed,.post-type-es_template table.fixed{margin-top:1rem;margin-bottom:1rem;-webkit-box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);border-radius:.5rem;overflow:hidden}.es-items-lists table.fixed tfoot td,.es-items-lists table.fixed tfoot th,.es-items-lists table.fixed thead td,.es-items-lists table.fixed thead th,.post-type-es_template table.fixed tfoot th,.post-type-es_template table.fixed thead td,.post-type-es_template table.fixed thead th{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity));border-bottom-width:1px;--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity));--text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--text-opacity));font-weight:500;letter-spacing:.05em}.es-items-lists table.fixed tfoot th,.es-items-lists table.fixed thead th,.post-type-es_template table.fixed tfoot th,.post-type-es_template table.fixed thead th{padding-top:.5rem;padding-bottom:.5rem}.es-items-lists .widefat thead td input,.post-type-es_template .widefat thead td input{margin-right:1.5rem}.post-type-es_template .wrap{padding-top:1rem;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.post-type-es_template .wrap>h1{padding-top:0;font-weight:600;--text-opacity:1;color:#374151;color:rgba(55,65,81,var(--text-opacity));line-height:2.25rem}.es-items-lists .striped>tbody tr,.post-type-es_template .striped>tbody tr{border-bottom-width:1px;--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity));padding-top:.5rem;padding-bottom:.5rem}.es-campaign-reports-table .striped>tbody tr{border-bottom-width:2px}.es-items-lists .striped>tbody>:nth-child(odd),.post-type-es_template .striped>tbody>:nth-child(odd){--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.es_onboard_email{padding:.25rem .75rem!important}.es_reports_table_header{border-bottom-width:1px;--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity));--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity));text-align:left;font-size:.875rem;line-height:1rem;font-weight:500;--text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--text-opacity));letter-spacing:.05em}.importing-progress,.progress{width:100%;height:2rem;--bg-opacity:1;background-color:#e5e7eb;background-color:rgba(229,231,235,var(--bg-opacity));overflow:hidden;position:relative;text-align:right;line-height:1rem;margin-top:.375rem;border-radius:.25rem}.importing-progress span.bar,.progress span.bar{display:block;position:absolute;line-height:2.5rem;padding-top:.25rem;padding-bottom:.25rem;top:0;bottom:0;left:0;border-radius:.25rem;overflow:hidden;background-image:-webkit-gradient(linear,left top,right top,from(var(--gradient-color-stops)));background-image:linear-gradient(90deg,var(--gradient-color-stops));--gradient-from-color:#42389d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,56,157,0));--gradient-to-color:#6875f5;--bg-opacity:1;background-color:#8da2fb;background-color:rgba(141,162,251,var(--bg-opacity))}.es_sequences_wrapper .ig-es-campaign-rules label{--text-opacity:1;color:#374151;color:rgba(55,65,81,var(--text-opacity));font-weight:500;--text-opacity:0.75;font-size:.875rem;letter-spacing:.025em;line-height:1.5rem}.email-subscribers_page_es_workflows #ig_es_workflow_trigger select option:disabled{--text-opacity:1;color:#9fa6b2;color:rgba(159,166,178,var(--text-opacity))}.es_mailchimp_lists_and_status_input [type=checkbox]:checked+label.installing{--text-opacity:1;color:#9fa6b2;color:rgba(159,166,178,var(--text-opacity));-webkit-animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite;animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.es_mailchimp_lists_and_status_input [type=checkbox]:checked+label.success{--text-opacity:1!important;color:#4b5563!important;color:rgba(75,85,99,var(--text-opacity))!important;font-weight:500!important;-webkit-animation:none!important;animation:none!important}.es_mailchimp_lists_and_status_input [type=checkbox]:checked+label.skipping{--text-opacity:1!important;color:#9fa6b2!important;color:rgba(159,166,178,var(--text-opacity))!important;-webkit-animation:none!important;animation:none!important}.es_primary_link{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-top:1rem;font-size:.875rem;font-weight:700;--text-opacity:1;color:#5850ec;color:rgba(88,80,236,var(--text-opacity));-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform;-webkit-transition-duration:.15s;transition-duration:.15s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);border-bottom-width:2px;border-color:transparent;cursor:pointer}.es_primary_link:active,.es_primary_link:hover{--border-opacity:1;border-color:#5850ec;border-color:rgba(88,80,236,var(--border-opacity))}.es_primary_link:focus{outline:2px solid transparent;outline-offset:2px;--border-opacity:1;border-color:#5145cd;border-color:rgba(81,69,205,var(--border-opacity));-webkit-box-shadow:0 0 0 3px rgba(180,198,252,.45);box-shadow:0 0 0 3px rgba(180,198,252,.45)}.es_helper_text{font-style:italic;font-size:.75rem;font-weight:400;--text-opacity:1;color:#9fa6b2;color:rgba(159,166,178,var(--text-opacity));line-height:1.375}.es-documentation{border-color:transparent;border-radius:9999px;-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform;-webkit-transition-duration:.15s;transition-duration:.15s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.05);box-shadow:0 1px 2px 0 rgba(0,0,0,.05);--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.es-documentation:hover{border-radius:9999px;background-color:#e5e7eb;background-color:rgba(229,231,235,var(--bg-opacity))}.es-documentation:focus,.es-documentation:hover{--text-opacity:1;color:#4b5563;color:rgba(75,85,99,var(--text-opacity));-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.05);box-shadow:0 1px 2px 0 rgba(0,0,0,.05);--bg-opacity:1}.es-documentation:focus{background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity))}.space-y-1>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.25rem*var(--space-y-reverse))}.space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.5rem*var(--space-y-reverse))}.space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.75rem*var(--space-y-reverse))}.space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.75rem*var(--space-x-reverse));margin-left:calc(0.75rem*(1 - var(--space-x-reverse)))}.space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1rem*var(--space-y-reverse))}.space-y-5>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1.25rem*var(--space-y-reverse))}.divide-y>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(1px*var(--divide-y-reverse))}.divide-gray-200>:not(template)~:not(template){--divide-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--divide-opacity))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-black{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.bg-gray-50{--bg-opacity:1;background-color:#f9fafb;background-color:rgba(249,250,251,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity))}.bg-gray-200{--bg-opacity:1;background-color:#e5e7eb;background-color:rgba(229,231,235,var(--bg-opacity))}.bg-gray-300{--bg-opacity:1;background-color:#d2d6dc;background-color:rgba(210,214,220,var(--bg-opacity))}.bg-gray-500{--bg-opacity:1;background-color:#6b7280;background-color:rgba(107,114,128,var(--bg-opacity))}.bg-red-50{--bg-opacity:1;background-color:#fdf2f2;background-color:rgba(253,242,242,var(--bg-opacity))}.bg-red-100{--bg-opacity:1;background-color:#fde8e8;background-color:rgba(253,232,232,var(--bg-opacity))}.bg-yellow-100{--bg-opacity:1;background-color:#fdf6b2;background-color:rgba(253,246,178,var(--bg-opacity))}.bg-green-100{--bg-opacity:1;background-color:#def7ec;background-color:rgba(222,247,236,var(--bg-opacity))}.bg-green-300{--bg-opacity:1;background-color:#84e1bc;background-color:rgba(132,225,188,var(--bg-opacity))}.bg-green-600{--bg-opacity:1;background-color:#057a55;background-color:rgba(5,122,85,var(--bg-opacity))}.bg-teal-50{--bg-opacity:1;background-color:#edfafa;background-color:rgba(237,250,250,var(--bg-opacity))}.bg-blue-50{--bg-opacity:1;background-color:#ebf5ff;background-color:rgba(235,245,255,var(--bg-opacity))}.bg-blue-300{--bg-opacity:1;background-color:#a4cafe;background-color:rgba(164,202,254,var(--bg-opacity))}.bg-indigo-200{--bg-opacity:1;background-color:#cddbfe;background-color:rgba(205,219,254,var(--bg-opacity))}.bg-indigo-500{--bg-opacity:1;background-color:#6875f5;background-color:rgba(104,117,245,var(--bg-opacity))}.bg-indigo-600{--bg-opacity:1;background-color:#5850ec;background-color:rgba(88,80,236,var(--bg-opacity))}.bg-indigo-700{--bg-opacity:1;background-color:#5145cd;background-color:rgba(81,69,205,var(--bg-opacity))}.bg-indigo-800{--bg-opacity:1;background-color:#42389d;background-color:rgba(66,56,157,var(--bg-opacity))}.bg-pink-200{--bg-opacity:1;background-color:#fad1e8;background-color:rgba(250,209,232,var(--bg-opacity))}.group:focus .group-focus\:bg-gray-400,.group:hover .group-hover\:bg-gray-400{--bg-opacity:1;background-color:#9fa6b2;background-color:rgba(159,166,178,var(--bg-opacity))}.hover\:bg-gray-50:hover{--bg-opacity:1;background-color:#f9fafb;background-color:rgba(249,250,251,var(--bg-opacity))}.hover\:bg-gray-100:hover{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity))}.hover\:bg-gray-300:hover{--bg-opacity:1;background-color:#d2d6dc;background-color:rgba(210,214,220,var(--bg-opacity))}.hover\:bg-green-500:hover{--bg-opacity:1;background-color:#0e9f6e;background-color:rgba(14,159,110,var(--bg-opacity))}.hover\:bg-indigo-500:hover{--bg-opacity:1;background-color:#6875f5;background-color:rgba(104,117,245,var(--bg-opacity))}.hover\:bg-indigo-600:hover{--bg-opacity:1;background-color:#5850ec;background-color:rgba(88,80,236,var(--bg-opacity))}.focus\:bg-gray-50:focus{--bg-opacity:1;background-color:#f9fafb;background-color:rgba(249,250,251,var(--bg-opacity))}.focus\:bg-gray-100:focus{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity))}.bg-opacity-75{--bg-opacity:0.75}.border-collapse{border-collapse:collapse}.border-transparent{border-color:transparent}.border-gray-100{--border-opacity:1;border-color:#f4f5f7;border-color:rgba(244,245,247,var(--border-opacity))}.border-gray-200{--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity))}.border-gray-300{--border-opacity:1;border-color:#d2d6dc;border-color:rgba(210,214,220,var(--border-opacity))}.border-gray-400{--border-opacity:1;border-color:#9fa6b2;border-color:rgba(159,166,178,var(--border-opacity))}.border-indigo-300{--border-opacity:1;border-color:#b4c6fc;border-color:rgba(180,198,252,var(--border-opacity))}.border-indigo-500{--border-opacity:1;border-color:#6875f5;border-color:rgba(104,117,245,var(--border-opacity))}.border-indigo-600{--border-opacity:1;border-color:#5850ec;border-color:rgba(88,80,236,var(--border-opacity))}.hover\:border-gray-200:hover{--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity))}.hover\:border-red-400:hover{--border-opacity:1;border-color:#f98080;border-color:rgba(249,128,128,var(--border-opacity))}.hover\:border-indigo-600:hover{--border-opacity:1;border-color:#5850ec;border-color:rgba(88,80,236,var(--border-opacity))}.focus\:border-blue-300:focus{--border-opacity:1;border-color:#a4cafe;border-color:rgba(164,202,254,var(--border-opacity))}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.rounded-full{border-radius:9999px}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.border-0{border-width:0}.border-2{border-width:2px}.border{border-width:1px}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.border-b{border-bottom-width:1px}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:-webkit-box;display:-ms-flexbox;display:flex}.inline-flex{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.grid{display:grid}.contents{display:contents}.hidden{display:none}.flex-row{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row}.flex-col,.flex-row{-webkit-box-direction:normal}.flex-col{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column}.flex-wrap{-ms-flex-wrap:wrap;flex-wrap:wrap}.items-start{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.self-start{-ms-flex-item-align:start;align-self:flex-start}.justify-start{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.flex-1{-webkit-box-flex:1;-ms-flex:1 1 0%;flex:1 1 0%}.flex-auto{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.flex-none{-webkit-box-flex:0;-ms-flex:none;flex:none}.flex-shrink-0{-ms-flex-negative:0;flex-shrink:0}.float-right{float:right}.float-left{float:left}.clearfix:after{content:"";display:table;clear:both}.font-sans{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.font-mono{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-thin{font-weight:200}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.h-0{height:0}.h-2{height:.5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-15{height:3.75rem}.h-20{height:5rem}.h-48{height:12rem}.h-auto{height:auto}.h-1\.5{height:.375rem}.h-2\.5{height:.625rem}.h-full{height:100%}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.text-3xl{font-size:1.875rem}.text-4xl{font-size:2.25rem}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-9{line-height:2.25rem}.leading-none{line-height:1}.leading-snug{line-height:1.375}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.list-none{list-style-type:none}.list-disc{list-style-type:disc}.list-decimal{list-style-type:decimal}.m-4{margin:1rem}.my-0{margin-top:0;margin-bottom:0}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mx-4{margin-left:1rem;margin-right:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.my-8{margin-top:2rem;margin-bottom:2rem}.mx-8{margin-left:2rem;margin-right:2rem}.mx-10{margin-left:2.5rem;margin-right:2.5rem}.my-12{margin-top:3rem;margin-bottom:3rem}.my-16{margin-top:4rem;margin-bottom:4rem}.mx-auto{margin-left:auto;margin-right:auto}.-my-4{margin-top:-1rem;margin-bottom:-1rem}.mt-0{margin-top:0}.mb-0{margin-bottom:0}.ml-0{margin-left:0}.mt-1{margin-top:.25rem}.mr-1{margin-right:.25rem}.mb-1{margin-bottom:.25rem}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.mb-2{margin-bottom:.5rem}.ml-2{margin-left:.5rem}.mt-3{margin-top:.75rem}.mr-3{margin-right:.75rem}.mb-3{margin-bottom:.75rem}.ml-3{margin-left:.75rem}.mt-4{margin-top:1rem}.mr-4{margin-right:1rem}.mb-4{margin-bottom:1rem}.ml-4{margin-left:1rem}.mt-5{margin-top:1.25rem}.ml-5{margin-left:1.25rem}.mt-6{margin-top:1.5rem}.mr-6{margin-right:1.5rem}.mb-6{margin-bottom:1.5rem}.ml-6{margin-left:1.5rem}.mt-7{margin-top:1.75rem}.mb-7{margin-bottom:1.75rem}.ml-7{margin-left:1.75rem}.mt-8{margin-top:2rem}.mr-8{margin-right:2rem}.ml-8{margin-left:2rem}.mt-10{margin-top:2.5rem}.mr-10{margin-right:2.5rem}.mt-12{margin-top:3rem}.mb-12{margin-bottom:3rem}.ml-12{margin-left:3rem}.ml-14{margin-left:3.5rem}.mt-16{margin-top:4rem}.mr-16{margin-right:4rem}.ml-16{margin-left:4rem}.mt-0\.5{margin-top:.125rem}.mt-1\.5{margin-top:.375rem}.mr-1\.5{margin-right:.375rem}.mt-2\.5{margin-top:.625rem}.-mt-1{margin-top:-.25rem}.-mr-1{margin-right:-.25rem}.-mb-1{margin-bottom:-.25rem}.-mb-2{margin-bottom:-.5rem}.-mt-3{margin-top:-.75rem}.-mr-3{margin-right:-.75rem}.-mb-4{margin-bottom:-1rem}.-mt-5{margin-top:-1.25rem}.-ml-6{margin-left:-1.5rem}.-ml-8{margin-left:-2rem}.-mb-0\.5{margin-bottom:-.125rem}.-mt-1\.5{margin-top:-.375rem}.-mt-2\.5{margin-top:-.625rem}.max-h-full{max-height:100%}.max-w-3xl{max-width:48rem}.max-w-7xl{max-width:80rem}.max-w-full{max-width:100%}.min-h-screen{min-height:100vh}.min-w-0{min-width:0}.min-w-full{min-width:100%}.object-cover{-o-object-fit:cover;object-fit:cover}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.p-0{padding:0}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-13{padding:3.25rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.px-1{padding-left:.25rem;padding-right:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-7{padding-top:1.75rem;padding-bottom:1.75rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-12{padding-top:3rem;padding-bottom:3rem}.px-12{padding-left:3rem;padding-right:3rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.pt-1{padding-top:.25rem}.pr-1{padding-right:.25rem}.pb-1{padding-bottom:.25rem}.pl-1{padding-left:.25rem}.pt-2{padding-top:.5rem}.pr-2{padding-right:.5rem}.pb-2{padding-bottom:.5rem}.pl-2{padding-left:.5rem}.pt-3{padding-top:.75rem}.pr-3{padding-right:.75rem}.pb-3{padding-bottom:.75rem}.pl-3{padding-left:.75rem}.pt-4{padding-top:1rem}.pr-4{padding-right:1rem}.pb-4{padding-bottom:1rem}.pl-4{padding-left:1rem}.pt-5{padding-top:1.25rem}.pb-5{padding-bottom:1.25rem}.pl-5{padding-left:1.25rem}.pt-6{padding-top:1.5rem}.pr-6{padding-right:1.5rem}.pb-6{padding-bottom:1.5rem}.pl-6{padding-left:1.5rem}.pt-7{padding-top:1.75rem}.pt-8{padding-top:2rem}.pb-8{padding-bottom:2rem}.pl-8{padding-left:2rem}.pt-10{padding-top:2.5rem}.pl-10{padding-left:2.5rem}.pr-12{padding-right:3rem}.pb-12{padding-bottom:3rem}.pl-16{padding-left:4rem}.pt-0\.5{padding-top:.125rem}.pl-0\.5{padding-left:.125rem}.pt-1\.5{padding-top:.375rem}.pb-1\.5{padding-bottom:.375rem}.pointer-events-none{pointer-events:none}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{right:0;left:0}.inset-0,.inset-y-0{top:0;bottom:0}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.bottom-2{bottom:.5rem}.bottom-5{bottom:1.25rem}.top-8{top:2rem}.top-10{top:2.5rem}.resize{resize:both}.shadow-xs{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.05);box-shadow:0 0 0 1px rgba(0,0,0,.05)}.shadow-sm{-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.05);box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.shadow{-webkit-box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.shadow-md{-webkit-box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.shadow-lg{-webkit-box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.shadow-xl{-webkit-box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.shadow-inner{-webkit-box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06);box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.hover\:shadow-md:hover{-webkit-box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.focus\:shadow-lg:focus{-webkit-box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.focus\:shadow-outline:focus{-webkit-box-shadow:0 0 0 3px rgba(118,169,250,.45);box-shadow:0 0 0 3px rgba(118,169,250,.45)}.focus\:shadow-outline-blue:focus{-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45)}.focus\:shadow-outline-red:focus{-webkit-box-shadow:0 0 0 3px rgba(248,180,180,.45);box-shadow:0 0 0 3px rgba(248,180,180,.45)}.focus\:shadow-outline-indigo:focus{-webkit-box-shadow:0 0 0 3px rgba(180,198,252,.45);box-shadow:0 0 0 3px rgba(180,198,252,.45)}.fill-current{fill:currentColor}.table-fixed{table-layout:fixed}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.text-black{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#d2d6dc;color:rgba(210,214,220,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#9fa6b2;color:rgba(159,166,178,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#4b5563;color:rgba(75,85,99,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#374151;color:rgba(55,65,81,var(--text-opacity))}.text-gray-800{--text-opacity:1;color:#252f3f;color:rgba(37,47,63,var(--text-opacity))}.text-gray-900{--text-opacity:1;color:#161e2e;color:rgba(22,30,46,var(--text-opacity))}.text-red-400{--text-opacity:1;color:#f98080;color:rgba(249,128,128,var(--text-opacity))}.text-red-500{--text-opacity:1;color:#f05252;color:rgba(240,82,82,var(--text-opacity))}.text-red-600{--text-opacity:1;color:#e02424;color:rgba(224,36,36,var(--text-opacity))}.text-red-800{--text-opacity:1;color:#9b1c1c;color:rgba(155,28,28,var(--text-opacity))}.text-orange-400{--text-opacity:1;color:#ff8a4c;color:rgba(255,138,76,var(--text-opacity))}.text-orange-500{--text-opacity:1;color:#ff5a1f;color:rgba(255,90,31,var(--text-opacity))}.text-yellow-400{--text-opacity:1;color:#e3a008;color:rgba(227,160,8,var(--text-opacity))}.text-yellow-600{--text-opacity:1;color:#9f580a;color:rgba(159,88,10,var(--text-opacity))}.text-green-400{--text-opacity:1;color:#31c48d;color:rgba(49,196,141,var(--text-opacity))}.text-green-500{--text-opacity:1;color:#0e9f6e;color:rgba(14,159,110,var(--text-opacity))}.text-green-600{--text-opacity:1;color:#057a55;color:rgba(5,122,85,var(--text-opacity))}.text-green-800{--text-opacity:1;color:#03543f;color:rgba(3,84,63,var(--text-opacity))}.text-teal-400{--text-opacity:1;color:#16bdca;color:rgba(22,189,202,var(--text-opacity))}.text-teal-700{--text-opacity:1;color:#036672;color:rgba(3,102,114,var(--text-opacity))}.text-teal-800{--text-opacity:1;color:#05505c;color:rgba(5,80,92,var(--text-opacity))}.text-blue-400{--text-opacity:1;color:#76a9fa;color:rgba(118,169,250,var(--text-opacity))}.text-blue-500{--text-opacity:1;color:#3f83f8;color:rgba(63,131,248,var(--text-opacity))}.text-blue-700{--text-opacity:1;color:#1a56db;color:rgba(26,86,219,var(--text-opacity))}.text-blue-800{--text-opacity:1;color:#1e429f;color:rgba(30,66,159,var(--text-opacity))}.text-indigo-100{--text-opacity:1;color:#e5edff;color:rgba(229,237,255,var(--text-opacity))}.text-indigo-400{--text-opacity:1;color:#8da2fb;color:rgba(141,162,251,var(--text-opacity))}.text-indigo-500{--text-opacity:1;color:#6875f5;color:rgba(104,117,245,var(--text-opacity))}.text-indigo-600{--text-opacity:1;color:#5850ec;color:rgba(88,80,236,var(--text-opacity))}.text-indigo-700{--text-opacity:1;color:#5145cd;color:rgba(81,69,205,var(--text-opacity))}.text-indigo-800{--text-opacity:1;color:#42389d;color:rgba(66,56,157,var(--text-opacity))}.group:hover .group-hover\:text-gray-900{--text-opacity:1;color:#161e2e;color:rgba(22,30,46,var(--text-opacity))}.group:hover .group-hover\:text-indigo-800{--text-opacity:1;color:#42389d;color:rgba(66,56,157,var(--text-opacity))}.group:focus .group-focus\:text-gray-900{--text-opacity:1;color:#161e2e;color:rgba(22,30,46,var(--text-opacity))}.group:focus .group-focus\:text-indigo-800{--text-opacity:1;color:#42389d;color:rgba(66,56,157,var(--text-opacity))}.hover\:text-white:hover{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.hover\:text-gray-500:hover{--text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--text-opacity))}.hover\:text-gray-800:hover{--text-opacity:1;color:#252f3f;color:rgba(37,47,63,var(--text-opacity))}.hover\:text-gray-900:hover{--text-opacity:1;color:#161e2e;color:rgba(22,30,46,var(--text-opacity))}.hover\:text-blue-700:hover{--text-opacity:1;color:#1a56db;color:rgba(26,86,219,var(--text-opacity))}.hover\:text-indigo-500:hover{--text-opacity:1;color:#6875f5;color:rgba(104,117,245,var(--text-opacity))}.focus\:text-gray-900:focus{--text-opacity:1;color:#161e2e;color:rgba(22,30,46,var(--text-opacity))}.active\:text-indigo-600:active{--text-opacity:1;color:#5850ec;color:rgba(88,80,236,var(--text-opacity))}.text-opacity-75{--text-opacity:0.75}.text-opacity-100{--text-opacity:1}.italic{font-style:italic}.not-italic{font-style:normal}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.underline{text-decoration:underline}.no-underline{text-decoration:none}.hover\:underline:hover{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.select-none{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.visible{visibility:visible}.invisible{visibility:hidden}.whitespace-no-wrap{white-space:nowrap}.break-words{word-wrap:break-word;overflow-wrap:break-word}.break-all{word-break:break-all}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.w-0{width:0}.w-2{width:.5rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-12{width:3rem}.w-24{width:6rem}.w-40{width:10rem}.w-48{width:12rem}.w-56{width:14rem}.w-auto{width:auto}.w-1\.5{width:.375rem}.w-2\.5{width:.625rem}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-2\/3{width:66.666667%}.w-1\/4{width:25%}.w-2\/4{width:50%}.w-3\/4{width:75%}.w-1\/5{width:20%}.w-2\/5{width:40%}.w-3\/5{width:60%}.w-4\/5{width:80%}.w-3\/6{width:50%}.w-4\/6{width:66.666667%}.w-5\/6{width:83.333333%}.w-1\/12{width:8.333333%}.w-2\/12{width:16.666667%}.w-3\/12{width:25%}.w-4\/12{width:33.333333%}.w-5\/12{width:41.666667%}.w-9\/12{width:75%}.w-10\/12{width:83.333333%}.w-11\/12{width:91.666667%}.w-full{width:100%}.w-screen{width:100vw}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.gap-8{grid-gap:2rem;gap:2rem}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;-webkit-transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}.origin-top-right{-webkit-transform-origin:top right;transform-origin:top right}.scale-95{--transform-scale-x:.95;--transform-scale-y:.95}.scale-100{--transform-scale-x:1;--transform-scale-y:1}.translate-x-0{--transform-translate-x:0}.-translate-x-full{--transform-translate-x:-100%}.transition-all{-webkit-transition-property:all;transition-property:all}.transition{-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform}.transition-opacity{-webkit-transition-property:opacity;transition-property:opacity}.ease-in{-webkit-transition-timing-function:cubic-bezier(.4,0,1,1);transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{-webkit-transition-timing-function:cubic-bezier(0,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in-out{-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-75{-webkit-transition-duration:75ms;transition-duration:75ms}.duration-100{-webkit-transition-duration:.1s;transition-duration:.1s}.duration-150{-webkit-transition-duration:.15s;transition-duration:.15s}.duration-200{-webkit-transition-duration:.2s;transition-duration:.2s}.duration-300{-webkit-transition-duration:.3s;transition-duration:.3s}@-webkit-keyframes spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes ping{75%,to{-webkit-transform:scale(2);transform:scale(2);opacity:0}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{-webkit-transform:translateY(-25%);transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{-webkit-transform:none;transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-spin{-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite}.animate-ping{-webkit-animation:ping 1s cubic-bezier(0,0,.2,1) infinite;animation:ping 1s cubic-bezier(0,0,.2,1) infinite}.animate-pulse{-webkit-animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite;animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@media (min-width:640px){.sm\:space-y-0>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0px*(1 - var(--space-y-reverse)));margin-bottom:calc(0px*var(--space-y-reverse))}.sm\:space-y-3>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.75rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.75rem*var(--space-y-reverse))}.sm\:space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1rem*var(--space-x-reverse));margin-left:calc(1rem*(1 - var(--space-x-reverse)))}.sm\:rounded-md{border-radius:.375rem}.sm\:rounded-lg{border-radius:.5rem}.sm\:flex{display:-webkit-box;display:-ms-flexbox;display:flex}.sm\:grid{display:grid}.sm\:flex-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.sm\:items-start{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.sm\:items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.sm\:h-10{height:2.5rem}.sm\:text-sm{font-size:.875rem}.sm\:text-2xl{font-size:1.5rem}.sm\:text-3xl{font-size:1.875rem}.sm\:leading-5{line-height:1.25rem}.sm\:leading-7{line-height:1.75rem}.sm\:leading-9{line-height:2.25rem}.sm\:my-0{margin-top:0;margin-bottom:0}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:my-7{margin-top:1.75rem;margin-bottom:1.75rem}.sm\:my-8{margin-top:2rem;margin-bottom:2rem}.sm\:my-12{margin-top:3rem;margin-bottom:3rem}.sm\:mt-0{margin-top:0}.sm\:ml-3{margin-left:.75rem}.sm\:ml-4{margin-left:1rem}.sm\:mt-5{margin-top:1.25rem}.sm\:max-w-lg{max-width:32rem}.sm\:p-6{padding:1.5rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-2{padding-left:.5rem;padding-right:.5rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pb-4{padding-bottom:1rem}.sm\:text-left{text-align:left}.sm\:align-middle{vertical-align:middle}.sm\:truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sm\:w-10{width:2.5rem}.sm\:w-32{width:8rem}.sm\:w-auto{width:auto}.sm\:w-1\/2{width:50%}.sm\:w-1\/3{width:33.333333%}.sm\:w-2\/3{width:66.666667%}.sm\:w-2\/4{width:50%}.sm\:w-full{width:100%}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:768px){.md\:rounded-lg{border-radius:.5rem}.md\:flex{display:-webkit-box;display:-ms-flexbox;display:flex}.md\:items-start{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.md\:items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.md\:justify-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.md\:text-base{font-size:1rem}.md\:mx-0{margin-left:0;margin-right:0}.md\:my-2{margin-top:.5rem;margin-bottom:.5rem}.md\:mx-auto{margin-left:auto;margin-right:auto}.md\:mt-0{margin-top:0}.md\:ml-2{margin-left:.5rem}.md\:ml-4{margin-left:1rem}.md\:ml-8{margin-left:2rem}.md\:-mr-8{margin-right:-2rem}.md\:max-w-xl{max-width:36rem}.md\:max-w-5xl{max-width:64rem}.md\:p-2{padding:.5rem}.md\:p-6{padding:1.5rem}.md\:py-0{padding-top:0;padding-bottom:0}.md\:px-1{padding-left:.25rem;padding-right:.25rem}.md\:px-2{padding-left:.5rem;padding-right:.5rem}.md\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:pb-2{padding-bottom:.5rem}.md\:pr-4{padding-right:1rem}.md\:pt-6{padding-top:1.5rem}.md\:shadow-xl{-webkit-box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.md\:w-3\/5{width:60%}}@media (min-width:1024px){.lg\:bg-transparent{background-color:transparent}.lg\:border-transparent{border-color:transparent}.lg\:rounded-full{border-radius:9999px}.lg\:block{display:block}.lg\:flex{display:-webkit-box;display:-ms-flexbox;display:flex}.lg\:inline-flex{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.lg\:text-sm{font-size:.875rem}.lg\:text-lg{font-size:1.125rem}.lg\:my-0{margin-top:0;margin-bottom:0}.lg\:mx-5{margin-left:1.25rem;margin-right:1.25rem}.lg\:my-24{margin-top:6rem;margin-bottom:6rem}.lg\:mx-auto{margin-left:auto;margin-right:auto}.lg\:ml-16{margin-left:4rem}.lg\:-mr-16{margin-right:-4rem}.lg\:max-w-3xl{max-width:48rem}.lg\:p-6{padding:1.5rem}.lg\:p-8{padding:2rem}.lg\:px-3{padding-left:.75rem;padding-right:.75rem}.lg\:px-4{padding-left:1rem;padding-right:1rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:pt-2{padding-top:.5rem}.lg\:pb-2{padding-bottom:.5rem}.lg\:pl-2{padding-left:.5rem}.lg\:top-1\/2{top:50%}.lg\:shadow-none{-webkit-box-shadow:none;box-shadow:none}.lg\:w-40{width:10rem}.lg\:w-48{width:12rem}.lg\:w-1\/2{width:50%}.lg\:w-3\/5{width:60%}.lg\:w-3\/12{width:25%}.lg\:w-7\/12{width:58.333333%}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1280px){.xl\:mx-7{margin-left:1.75rem;margin-right:1.75rem}.xl\:mr-0{margin-right:0}.xl\:ml-2{margin-left:.5rem}.xl\:ml-3{margin-left:.75rem}.xl\:ml-4{margin-left:1rem}.xl\:ml-20{margin-left:5rem}.xl\:ml-32{margin-left:8rem}.xl\:ml-1\.5{margin-left:.375rem}.xl\:max-w-4xl{max-width:56rem}.xl\:px-4{padding-left:1rem;padding-right:1rem}.xl\:pr-3{padding-right:.75rem}.xl\:pb-4{padding-bottom:1rem}.xl\:top-1\/3{top:33.333333%}.xl\:w-64{width:16rem}.xl\:w-1\/4{width:25%}.xl\:w-2\/5{width:40%}.xl\:w-3\/5{width:60%}.xl\:w-2\/12{width:16.666667%}.xl\:w-6\/12{width:50%}.xl\:w-7\/12{width:58.333333%}}
lite/admin/js/alpine.js CHANGED
@@ -1,2 +1,8 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).Alpine=t()}(this,(function(){"use strict";function e(e){for(var t=e.concat(),n=0;n<t.length;++n)for(var i=n+1;i<t.length;++i)t[n]===t[i]&&t.splice(i--,1);return t}function t(){return navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom")}function n(e,t,n={}){return new Function(["$data",...Object.keys(n)],`var result; with($data) { result = ${e} }; return result`)(t,...Object.values(n))}function i(e,t,n={}){return new Function(["dataContext",...Object.keys(n)],`with(dataContext) { ${e} }`)(t,...Object.values(n))}function s(e){const t=a(e.name);return/x-(on|bind|data|text|html|model|if|for|show|cloak|transition|ref)/.test(t)}function r(e,t){return Array.from(e.attributes).filter(s).map(e=>{const t=a(e.name),n=t.match(/x-(on|bind|data|text|html|model|if|for|show|cloak|transition|ref)/),i=t.match(/:([a-zA-Z\-:]+)/),s=t.match(/\.[^.\]]+(?=[^\]]*$)/g)||[];return{type:n?n[1]:null,value:i?i[1]:null,modifiers:s.map(e=>e.replace(".","")),expression:e.value}}).filter(e=>!t||e.type===t)}function a(e){return e.startsWith("@")?e.replace("@","x-on:"):e.startsWith(":")?e.replace(":","x-bind:"):e}function o(e,t,n=!1){if(n)return t();const i=r(e,"transition");if(i.length<1)return t();c(e,(i.find(e=>"enter"===e.value)||{expression:""}).expression.split(" ").filter(e=>""!==e),(i.find(e=>"enter-start"===e.value)||{expression:""}).expression.split(" ").filter(e=>""!==e),(i.find(e=>"enter-end"===e.value)||{expression:""}).expression.split(" ").filter(e=>""!==e),t,()=>{})}function l(e,t,n=!1){if(n)return t();const i=r(e,"transition");if(i.length<1)return t();c(e,(i.find(e=>"leave"===e.value)||{expression:""}).expression.split(" ").filter(e=>""!==e),(i.find(e=>"leave-start"===e.value)||{expression:""}).expression.split(" ").filter(e=>""!==e),(i.find(e=>"leave-end"===e.value)||{expression:""}).expression.split(" ").filter(e=>""!==e),()=>{},t)}function c(e,t,n,i,s,r){const a=e.__x_original_classes||[];e.classList.add(...n),e.classList.add(...t),requestAnimationFrame(()=>{const o=1e3*Number(getComputedStyle(e).transitionDuration.replace("s",""));s(),requestAnimationFrame(()=>{e.classList.remove(...n.filter(e=>!a.includes(e))),e.classList.add(...i),setTimeout(()=>{r(),e.isConnected&&(e.classList.remove(...t.filter(e=>!a.includes(e))),e.classList.remove(...i.filter(e=>!a.includes(e))))},o)})})}function u(e,t,n,i){const{single:s,bunch:a,iterator1:c,iterator2:u}=function(e){const t=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,n=e.match(/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/);if(!n)return;const i={};i.bunch=n[2].trim();const s=n[1].trim().replace(/^\(|\)$/g,""),r=s.match(t);r?(i.single=s.replace(t,"").trim(),i.iterator1=r[1].trim(),r[2]&&(i.iterator2=r[2].trim())):i.single=s;return i}(n);var d=e.evaluateReturnExpression(a),f=t;d.forEach((n,a,l)=>{const d=function(e,t,n,i,s,a,o,l){const c=r(t,"bind").filter(e=>"key"===e.value)[0];let u={[n]:a};i&&(u[i]=o);s&&(u[s]=l);return c?e.evaluateReturnExpression(c.expression,()=>u):o}(e,t,s,c,u,n,a,l);let m=f.nextElementSibling;if(m&&void 0!==m.__x_for_key){if(m.__x_for_key!==d)for(var p=m;p;){if(p.__x_for_key===d){t.parentElement.insertBefore(p,m),m=p;break}p=!(!p.nextElementSibling||void 0===p.nextElementSibling.__x_for_key)&&p.nextElementSibling}delete m.__x_for_key,m.__x_for_alias=s,m.__x_for_value=n,e.updateElements(m,()=>({[m.__x_for_alias]:m.__x_for_value}))}else{const r=document.importNode(t.content,!0);t.parentElement.insertBefore(r,m),m=f.nextElementSibling,o(m,()=>{},i),m.__x_for_alias=s,m.__x_for_value=n,e.initializeElements(m,()=>({[m.__x_for_alias]:m.__x_for_value}))}m.__x_for_key=d,f=m});for(var m=!(!f.nextElementSibling||void 0===f.nextElementSibling.__x_for_key)&&f.nextElementSibling;m;){const e=m;l(m,()=>{e.remove()}),m=!(!m.nextElementSibling||void 0===m.nextElementSibling.__x_for_key)&&m.nextElementSibling}}function d(t,n,i,s,r){var a=t.evaluateReturnExpression(s,r);if("value"===i)if("radio"===n.type)n.checked=n.value==a;else if("checkbox"===n.type)if(Array.isArray(a)){let e=!1;a.forEach(t=>{t==n.value&&(e=!0)}),n.checked=e}else n.checked=!!a;else"SELECT"===n.tagName?function(e,t){const n=[].concat(t).map(e=>e+"");Array.from(e.options).forEach(e=>{e.selected=n.includes(e.value||e.text)})}(n,a):n.value=a;else if("class"===i)if(Array.isArray(a)){const t=n.__x_original_classes||[];n.setAttribute("class",e(t.concat(a)).join(" "))}else if("object"==typeof a)Object.keys(a).forEach(e=>{a[e]?e.split(" ").forEach(e=>n.classList.add(e)):e.split(" ").forEach(e=>n.classList.remove(e))});else{const t=n.__x_original_classes||[],i=a.split(" ");n.setAttribute("class",e(t.concat(i)).join(" "))}else["disabled","readonly","required","checked","hidden"].includes(i)?a?n.setAttribute(i,""):n.removeAttribute(i):n.setAttribute(i,a)}function f(e,t,n,i,s,r={}){if(i.includes("away")){const a=o=>{t.contains(o.target)||t.offsetWidth<1&&t.offsetHeight<1||(m(e,s,o,r),i.includes("once")&&document.removeEventListener(n,a))};document.addEventListener(n,a)}else{const a=i.includes("window")?window:i.includes("document")?document:t,o=t=>{(function(e){return["keydown","keyup"].includes(e)})(n)&&function(e,t){let n=t.filter(e=>!["window","document","prevent","stop"].includes(e));if(0===n.length)return!1;if(1===n.length&&n[0]===p(e.key))return!1;const i=["ctrl","shift","alt","meta","cmd","super"].filter(e=>n.includes(e));if(n=n.filter(e=>!i.includes(e)),i.length>0){if(i.filter(t=>("cmd"!==t&&"super"!==t||(t="meta"),e[`${t}Key`])).length===i.length&&n[0]===p(e.key))return!1}return!0}(t,i)||(i.includes("prevent")&&t.preventDefault(),i.includes("stop")&&t.stopPropagation(),m(e,s,t,r),i.includes("once")&&a.removeEventListener(n,o))};a.addEventListener(n,o)}}function m(e,t,n,i){e.evaluateCommandExpression(t,()=>({...i(),$event:n}))}function p(e){switch(e){case"/":return"slash";case" ":case"Spacebar":return"space";default:return e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[_\s]/,"-").toLowerCase()}}function h(e,t,n,i,s={}){var r="select"===t.tagName.toLowerCase()||["checkbox","radio"].includes(t.type)||n.includes("lazy")?"change":"input";const a=function(e,t,n,i){var s="";s="checkbox"===t.type?Array.isArray(e.$data[i])?`$event.target.checked ? ${i}.concat([$event.target.value]) : ${i}.filter(i => i !== $event.target.value)`:"$event.target.checked":"select"===t.tagName.toLowerCase()&&t.multiple?n.includes("number")?"Array.from($event.target.selectedOptions).map(option => { return parseFloat(option.value || option.text) })":"Array.from($event.target.selectedOptions).map(option => { return option.value || option.text })":n.includes("number")?"parseFloat($event.target.value)":n.includes("trim")?"$event.target.value.trim()":"$event.target.value";"radio"===t.type&&(t.hasAttribute("name")||t.setAttribute("name",i));return`${i} = ${s}`}(e,t,n,i);f(e,t,r,n,a,s)}class x{constructor(e){this.$el=e;const t=this.$el.getAttribute("x-data"),s=""===t?"{}":t,r=this.$el.getAttribute("x-init"),a=this.$el.getAttribute("x-created"),o=this.$el.getAttribute("x-mounted"),l=n(s,{});var c;this.$data=this.wrapDataInObservable(l),l.$el=this.$el,l.$refs=this.getRefsProxy(),this.nextTickStack=[],l.$nextTick=e=>{this.nextTickStack.push(e)},r&&(this.pauseReactivity=!0,c=n(this.$el.getAttribute("x-init"),this.$data),this.pauseReactivity=!1),a&&(console.warn('AlpineJS Warning: "x-created" is deprecated and will be removed in the next major version. Use "x-init" instead.'),this.pauseReactivity=!0,i(this.$el.getAttribute("x-created"),this.$data),this.pauseReactivity=!1),this.initializeElements(this.$el),this.listenForNewElementsToInitialize(),"function"==typeof c&&c.call(this.$data),o&&(console.warn('AlpineJS Warning: "x-mounted" is deprecated and will be removed in the next major version. Use "x-init" (with a callback return) for the same behavior.'),i(o,this.$data))}wrapDataInObservable(e){var t=this;const n={set(e,n,i){const s=Reflect.set(e,n,i);var r,a,o;if(!t.pauseReactivity)return(r=()=>{for(t.updateElements(t.$el);t.nextTickStack.length>0;)t.nextTickStack.shift()()},a=0,function(){var e=this,t=arguments,n=function(){o=null,r.apply(e,t)};clearTimeout(o),o=setTimeout(n,a)})(),s},get:(e,t)=>e[t]&&e[t].isRefsProxy?e[t]:e[t]&&e[t]instanceof Node?e[t]:"object"==typeof e[t]&&null!==e[t]?new Proxy(e[t],n):e[t]};return new Proxy(e,n)}walkAndSkipNestedComponents(e,t,n=(()=>{})){!function e(t,n){if(!1===n(t))return;let i=t.firstElementChild;for(;i;)e(i,n),i=i.nextElementSibling}(e,e=>e.hasAttribute("x-data")&&!e.isSameNode(this.$el)?(e.__x||n(e),!1):t(e))}initializeElements(e,t=(()=>{})){for(this.walkAndSkipNestedComponents(e,e=>{if(void 0!==e.__x_for_key)return!1;this.initializeElement(e,t)},e=>{e.__x=new x(e)});this.nextTickStack.length>0;)this.nextTickStack.shift()()}initializeElement(e,t){e.hasAttribute("class")&&r(e).length>0&&(e.__x_original_classes=e.getAttribute("class").split(" ")),this.registerListeners(e,t),this.resolveBoundAttributes(e,!0,t)}updateElements(e,t=(()=>{})){this.walkAndSkipNestedComponents(e,e=>{if(void 0!==e.__x_for_key&&!e.isSameNode(this.$el))return!1;this.updateElement(e,t)},e=>{e.__x=new x(e)})}updateElement(e,t){this.resolveBoundAttributes(e,!1,t)}registerListeners(e,t){r(e).forEach(({type:n,value:i,modifiers:s,expression:r})=>{switch(n){case"on":f(this,e,i,s,r,t);break;case"model":h(this,e,s,r,t)}})}resolveBoundAttributes(e,t=!1,n){r(e).forEach(({type:i,value:s,modifiers:r,expression:a})=>{switch(i){case"model":d(this,e,"value",a,n);break;case"bind":if("template"===e.tagName.toLowerCase()&&"key"===s)return;d(this,e,s,a,n);break;case"text":e.innerText=this.evaluateReturnExpression(a,n);break;case"html":e.innerHTML=this.evaluateReturnExpression(a,n);break;case"show":var c=this.evaluateReturnExpression(a,n);!function(e,t,n=!1){t?o(e,()=>{1===e.style.length&&""!==e.style.display?e.removeAttribute("style"):e.style.removeProperty("display")},n):l(e,()=>{e.style.display="none"},n)}(e,c,t);break;case"if":c=this.evaluateReturnExpression(a,n);!function(e,t,n){"template"!==e.nodeName.toLowerCase()&&console.warn("Alpine: [x-if] directive should only be added to <template> tags.");const i=e.nextElementSibling&&!0===e.nextElementSibling.__x_inserted_me;if(t&&!i){const t=document.importNode(e.content,!0);e.parentElement.insertBefore(t,e.nextElementSibling),e.nextElementSibling.__x_inserted_me=!0,o(e.nextElementSibling,()=>{},n)}else!t&&i&&l(e.nextElementSibling,()=>{e.nextElementSibling.remove()},n)}(e,c,t);break;case"for":u(this,e,a,t);break;case"cloak":e.removeAttribute("x-cloak")}})}evaluateReturnExpression(e,t=(()=>{})){return n(e,this.$data,t())}evaluateCommandExpression(e,t=(()=>{})){i(e,this.$data,t())}listenForNewElementsToInitialize(){const e=this.$el;new MutationObserver(e=>{for(let t=0;t<e.length;t++){if(!e[t].target.closest("[x-data]").isSameNode(this.$el))return;if("attributes"===e[t].type&&"x-data"===e[t].attributeName){const i=n(e[t].target.getAttribute("x-data"),{});Object.keys(i).forEach(e=>{this.$data[e]!==i[e]&&(this.$data[e]=i[e])})}e[t].addedNodes.length>0&&e[t].addedNodes.forEach(e=>{1===e.nodeType&&(e.matches("[x-data]")?e.__x=new x(e):this.initializeElements(e))})}}).observe(e,{childList:!0,attributes:!0,subtree:!0})}getRefsProxy(){var e=this;return new Proxy({},{get(t,n){return"isRefsProxy"===n||(e.walkAndSkipNestedComponents(e.$el,e=>{e.hasAttribute("x-ref")&&e.getAttribute("x-ref")===n&&(i=e)}),i);var i}})}}const v={start:async function(){t()||await new Promise(e=>{"loading"==document.readyState?document.addEventListener("DOMContentLoaded",e):e()}),this.discoverComponents(e=>{this.initializeComponent(e)}),document.addEventListener("turbolinks:load",()=>{this.discoverUninitializedComponents(e=>{this.initializeComponent(e)})}),this.listenForNewUninitializedComponentsAtRunTime(e=>{this.initializeComponent(e)})},discoverComponents:function(e){document.querySelectorAll("[x-data]").forEach(t=>{e(t)})},discoverUninitializedComponents:function(e,t=null){const n=(t||document).querySelectorAll("[x-data]");Array.from(n).filter(e=>void 0===e.__x).forEach(t=>{e(t)})},listenForNewUninitializedComponentsAtRunTime:function(e){const t=document.querySelector("body");new MutationObserver(e=>{for(let t=0;t<e.length;t++)e[t].addedNodes.length>0&&e[t].addedNodes.forEach(e=>{1===e.nodeType&&(e.parentElement.closest("[x-data]")||this.discoverUninitializedComponents(e=>{this.initializeComponent(e)},e.parentElement))})}).observe(t,{childList:!0,attributes:!0,subtree:!0})},initializeComponent:function(e){e.__x=new x(e)}};return t()||(window.Alpine=v,window.Alpine.start()),v}));
2
- //# sourceMappingURL=alpine.js.map
 
 
 
 
 
 
1
+ /**
2
+ * Minified by jsDelivr using Terser v5.3.5.
3
+ * Original file: /gh/alpinejs/alpine@2.8.2/dist/alpine.js
4
+ *
5
+ * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
6
+ */
7
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).Alpine=t()}(this,(function(){"use strict";function e(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function n(n){for(var i=1;i<arguments.length;i++){var r=null!=arguments[i]?arguments[i]:{};i%2?t(Object(r),!0).forEach((function(t){e(n,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):t(Object(r)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}))}return n}function i(e){return Array.from(new Set(e))}function r(){return navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom")}function s(e,t){return e==t}function o(e,t){"template"!==e.tagName.toLowerCase()?console.warn(`Alpine: [${t}] directive should only be added to <template> tags. See https://github.com/alpinejs/alpine#${t}`):1!==e.content.childElementCount&&console.warn(`Alpine: <template> tag with [${t}] encountered with an unexpected number of root elements. Make sure <template> has a single root element. `)}function a(e){return e.toLowerCase().replace(/-(\w)/g,((e,t)=>t.toUpperCase()))}function l(e,t){if(!1===t(e))return;let n=e.firstElementChild;for(;n;)l(n,t),n=n.nextElementSibling}function c(e,t){var n;return function(){var i=this,r=arguments,s=function(){n=null,e.apply(i,r)};clearTimeout(n),n=setTimeout(s,t)}}const u=(e,t,n)=>{if(console.warn(`Alpine Error: "${n}"\n\nExpression: "${t}"\nElement:`,e),!r())throw Object.assign(n,{el:e,expression:t}),n};function d(e,{el:t,expression:n}){try{const i=e();return i instanceof Promise?i.catch((e=>u(t,n,e))):i}catch(e){u(t,n,e)}}function f(e,t,n,i={}){return d((()=>"function"==typeof t?t.call(n):new Function(["$data",...Object.keys(i)],`var __alpine_result; with($data) { __alpine_result = ${t} }; return __alpine_result`)(n,...Object.values(i))),{el:e,expression:t})}const m=/^x-(on|bind|data|text|html|model|if|for|show|cloak|transition|ref|spread)\b/;function p(e){const t=y(e.name);return m.test(t)}function h(e,t,n){let i=Array.from(e.attributes).filter(p).map(v),r=i.filter((e=>"spread"===e.type))[0];if(r){let n=f(e,r.expression,t.$data);i=i.concat(Object.entries(n).map((([e,t])=>v({name:e,value:t}))))}return n?i.filter((e=>e.type===n)):function(e){let t=["bind","model","show","catch-all"];return e.sort(((e,n)=>{let i=-1===t.indexOf(e.type)?"catch-all":e.type,r=-1===t.indexOf(n.type)?"catch-all":n.type;return t.indexOf(i)-t.indexOf(r)}))}(i)}function v({name:e,value:t}){const n=y(e),i=n.match(m),r=n.match(/:([a-zA-Z0-9\-:]+)/),s=n.match(/\.[^.\]]+(?=[^\]]*$)/g)||[];return{type:i?i[1]:null,value:r?r[1]:null,modifiers:s.map((e=>e.replace(".",""))),expression:t}}function y(e){return e.startsWith("@")?e.replace("@","x-on:"):e.startsWith(":")?e.replace(":","x-bind:"):e}function b(e,t=Boolean){return e.split(" ").filter(t)}const g="in",x="out",_="cancelled";function w(e,t,n,i,r=!1){if(r)return t();if(e.__x_transition&&e.__x_transition.type===g)return;const s=h(e,i,"transition"),o=h(e,i,"show")[0];if(o&&o.modifiers.includes("transition")){let i=o.modifiers;if(i.includes("out")&&!i.includes("in"))return t();const r=i.includes("in")&&i.includes("out");i=r?i.filter(((e,t)=>t<i.indexOf("out"))):i,function(e,t,n,i){const r={duration:O(t,"duration",150),origin:O(t,"origin","center"),first:{opacity:0,scale:O(t,"scale",95)},second:{opacity:1,scale:100}};k(e,t,n,(()=>{}),i,r,g)}(e,i,t,n)}else s.some((e=>["enter","enter-start","enter-end"].includes(e.value)))?function(e,t,n,i,r){const s=b(A((n.find((e=>"enter"===e.value))||{expression:""}).expression,e,t)),o=b(A((n.find((e=>"enter-start"===e.value))||{expression:""}).expression,e,t)),a=b(A((n.find((e=>"enter-end"===e.value))||{expression:""}).expression,e,t));S(e,s,o,a,i,(()=>{}),g,r)}(e,i,s,t,n):t()}function E(e,t,n,i,r=!1){if(r)return t();if(e.__x_transition&&e.__x_transition.type===x)return;const s=h(e,i,"transition"),o=h(e,i,"show")[0];if(o&&o.modifiers.includes("transition")){let i=o.modifiers;if(i.includes("in")&&!i.includes("out"))return t();const r=i.includes("in")&&i.includes("out");i=r?i.filter(((e,t)=>t>i.indexOf("out"))):i,function(e,t,n,i,r){const s={duration:n?O(t,"duration",150):O(t,"duration",150)/2,origin:O(t,"origin","center"),first:{opacity:1,scale:100},second:{opacity:0,scale:O(t,"scale",95)}};k(e,t,(()=>{}),i,r,s,x)}(e,i,r,t,n)}else s.some((e=>["leave","leave-start","leave-end"].includes(e.value)))?function(e,t,n,i,r){const s=b(A((n.find((e=>"leave"===e.value))||{expression:""}).expression,e,t)),o=b(A((n.find((e=>"leave-start"===e.value))||{expression:""}).expression,e,t)),a=b(A((n.find((e=>"leave-end"===e.value))||{expression:""}).expression,e,t));S(e,s,o,a,(()=>{}),i,x,r)}(e,i,s,t,n):t()}function O(e,t,n){if(-1===e.indexOf(t))return n;const i=e[e.indexOf(t)+1];if(!i)return n;if("scale"===t&&!P(i))return n;if("duration"===t){let e=i.match(/([0-9]+)ms/);if(e)return e[1]}return"origin"===t&&["top","right","left","center","bottom"].includes(e[e.indexOf(t)+2])?[i,e[e.indexOf(t)+2]].join(" "):i}function k(e,t,n,i,r,s,o){e.__x_transition&&e.__x_transition.cancel&&e.__x_transition.cancel();const a=e.style.opacity,l=e.style.transform,c=e.style.transformOrigin,u=!t.includes("opacity")&&!t.includes("scale"),d=u||t.includes("opacity"),f=u||t.includes("scale"),m={start(){d&&(e.style.opacity=s.first.opacity),f&&(e.style.transform=`scale(${s.first.scale/100})`)},during(){f&&(e.style.transformOrigin=s.origin),e.style.transitionProperty=[d?"opacity":"",f?"transform":""].join(" ").trim(),e.style.transitionDuration=s.duration/1e3+"s",e.style.transitionTimingFunction="cubic-bezier(0.4, 0.0, 0.2, 1)"},show(){n()},end(){d&&(e.style.opacity=s.second.opacity),f&&(e.style.transform=`scale(${s.second.scale/100})`)},hide(){i()},cleanup(){d&&(e.style.opacity=a),f&&(e.style.transform=l),f&&(e.style.transformOrigin=c),e.style.transitionProperty=null,e.style.transitionDuration=null,e.style.transitionTimingFunction=null}};$(e,m,o,r)}const A=(e,t,n)=>"function"==typeof e?n.evaluateReturnExpression(t,e):e;function S(e,t,n,i,r,s,o,a){e.__x_transition&&e.__x_transition.cancel&&e.__x_transition.cancel();const l=e.__x_original_classes||[],c={start(){e.classList.add(...n)},during(){e.classList.add(...t)},show(){r()},end(){e.classList.remove(...n.filter((e=>!l.includes(e)))),e.classList.add(...i)},hide(){s()},cleanup(){e.classList.remove(...t.filter((e=>!l.includes(e)))),e.classList.remove(...i.filter((e=>!l.includes(e))))}};$(e,c,o,a)}function $(e,t,n,i){const r=C((()=>{t.hide(),e.isConnected&&t.cleanup(),delete e.__x_transition}));e.__x_transition={type:n,cancel:C((()=>{i(_),r()})),finish:r,nextFrame:null},t.start(),t.during(),e.__x_transition.nextFrame=requestAnimationFrame((()=>{let n=1e3*Number(getComputedStyle(e).transitionDuration.replace(/,.*/,"").replace("s",""));0===n&&(n=1e3*Number(getComputedStyle(e).animationDuration.replace("s",""))),t.show(),e.__x_transition.nextFrame=requestAnimationFrame((()=>{t.end(),setTimeout(e.__x_transition.finish,n)}))}))}function P(e){return!Array.isArray(e)&&!isNaN(e)}function C(e){let t=!1;return function(){t||(t=!0,e.apply(this,arguments))}}function j(e,t,i,r,s){o(t,"x-for");let a=D("function"==typeof i?e.evaluateReturnExpression(t,i):i),l=function(e,t,n,i){let r=h(t,e,"if")[0];if(r&&!e.evaluateReturnExpression(t,r.expression))return[];let s=e.evaluateReturnExpression(t,n.items,i);P(s)&&s>=0&&(s=Array.from(Array(s).keys(),(e=>e+1)));return s}(e,t,a,s),c=t;l.forEach(((i,o)=>{let u=function(e,t,i,r,s){let o=s?n({},s):{};o[e.item]=t,e.index&&(o[e.index]=i);e.collection&&(o[e.collection]=r);return o}(a,i,o,l,s()),d=function(e,t,n,i){let r=h(t,e,"bind").filter((e=>"key"===e.value))[0];return r?e.evaluateReturnExpression(t,r.expression,(()=>i)):n}(e,t,o,u),f=function(e,t){if(!e)return;if(void 0===e.__x_for_key)return;if(e.__x_for_key===t)return e;let n=e;for(;n;){if(n.__x_for_key===t)return n.parentElement.insertBefore(n,e);n=!(!n.nextElementSibling||void 0===n.nextElementSibling.__x_for_key)&&n.nextElementSibling}}(c.nextElementSibling,d);f?(delete f.__x_for_key,f.__x_for=u,e.updateElements(f,(()=>f.__x_for))):(f=function(e,t){let n=document.importNode(e.content,!0);return t.parentElement.insertBefore(n,t.nextElementSibling),t.nextElementSibling}(t,c),w(f,(()=>{}),(()=>{}),e,r),f.__x_for=u,e.initializeElements(f,(()=>f.__x_for))),c=f,c.__x_for_key=d})),function(e,t){var n=!(!e.nextElementSibling||void 0===e.nextElementSibling.__x_for_key)&&e.nextElementSibling;for(;n;){let e=n,i=n.nextElementSibling;E(n,(()=>{e.remove()}),(()=>{}),t),n=!(!i||void 0===i.__x_for_key)&&i}}(c,e)}function D(e){let t=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,n=String(e).match(/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/);if(!n)return;let i={};i.items=n[2].trim();let r=n[1].trim().replace(/^\(|\)$/g,""),s=r.match(t);return s?(i.item=r.replace(t,"").trim(),i.index=s[1].trim(),s[2]&&(i.collection=s[2].trim())):i.item=r,i}function T(e,t,n,r,o,l,c){var u=e.evaluateReturnExpression(t,r,o);if("value"===n){if(ge.ignoreFocusedForValueBinding&&document.activeElement.isSameNode(t))return;if(void 0===u&&String(r).match(/\./)&&(u=""),"radio"===t.type)void 0===t.attributes.value&&"bind"===l?t.value=u:"bind"!==l&&(t.checked=s(t.value,u));else if("checkbox"===t.type)"boolean"==typeof u||[null,void 0].includes(u)||"bind"!==l?"bind"!==l&&(Array.isArray(u)?t.checked=u.some((e=>s(e,t.value))):t.checked=!!u):t.value=String(u);else if("SELECT"===t.tagName)!function(e,t){const n=[].concat(t).map((e=>e+""));Array.from(e.options).forEach((e=>{e.selected=n.includes(e.value||e.text)}))}(t,u);else{if(t.value===u)return;t.value=u}}else if("class"===n)if(Array.isArray(u)){const e=t.__x_original_classes||[];t.setAttribute("class",i(e.concat(u)).join(" "))}else if("object"==typeof u){Object.keys(u).sort(((e,t)=>u[e]-u[t])).forEach((e=>{u[e]?b(e).forEach((e=>t.classList.add(e))):b(e).forEach((e=>t.classList.remove(e)))}))}else{const e=t.__x_original_classes||[],n=u?b(u):[];t.setAttribute("class",i(e.concat(n)).join(" "))}else n=c.includes("camel")?a(n):n,[null,void 0,!1].includes(u)?t.removeAttribute(n):!function(e){return["disabled","checked","required","readonly","hidden","open","selected","autofocus","itemscope","multiple","novalidate","allowfullscreen","allowpaymentrequest","formnovalidate","autoplay","controls","loop","muted","playsinline","default","ismap","reversed","async","defer","nomodule"].includes(e)}(n)?L(t,n,u):L(t,n,n)}function L(e,t,n){e.getAttribute(t)!=n&&e.setAttribute(t,n)}function N(e,t,n,i,r,s={}){const o={passive:i.includes("passive")};let l,u;if(i.includes("camel")&&(n=a(n)),i.includes("away")?(u=document,l=a=>{t.contains(a.target)||t.offsetWidth<1&&t.offsetHeight<1||(z(e,r,a,s),i.includes("once")&&document.removeEventListener(n,l,o))}):(u=i.includes("window")?window:i.includes("document")?document:t,l=a=>{if(u!==window&&u!==document||document.body.contains(t)){if(!(function(e){return["keydown","keyup"].includes(e)}(n)&&function(e,t){let n=t.filter((e=>!["window","document","prevent","stop"].includes(e)));if(n.includes("debounce")){let e=n.indexOf("debounce");n.splice(e,P((n[e+1]||"invalid-wait").split("ms")[0])?2:1)}if(0===n.length)return!1;if(1===n.length&&n[0]===R(e.key))return!1;const i=["ctrl","shift","alt","meta","cmd","super"].filter((e=>n.includes(e)));if(n=n.filter((e=>!i.includes(e))),i.length>0){if(i.filter((t=>("cmd"!==t&&"super"!==t||(t="meta"),e[t+"Key"]))).length===i.length&&n[0]===R(e.key))return!1}return!0}(a,i)||(i.includes("prevent")&&a.preventDefault(),i.includes("stop")&&a.stopPropagation(),i.includes("self")&&a.target!==t))){z(e,r,a,s).then((e=>{!1===e?a.preventDefault():i.includes("once")&&u.removeEventListener(n,l,o)}))}}else u.removeEventListener(n,l,o)}),i.includes("debounce")){let e=i[i.indexOf("debounce")+1]||"invalid-wait",t=P(e.split("ms")[0])?Number(e.split("ms")[0]):250;l=c(l,t)}u.addEventListener(n,l,o)}function z(e,t,i,r){return e.evaluateCommandExpression(i.target,t,(()=>n(n({},r()),{},{$event:i})))}function R(e){switch(e){case"/":return"slash";case" ":case"Spacebar":return"space";default:return e&&e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[_\s]/,"-").toLowerCase()}}function F(e,t,n){return"radio"===e.type&&(e.hasAttribute("name")||e.setAttribute("name",n)),(n,i)=>{if(n instanceof CustomEvent&&n.detail)return n.detail;if("checkbox"===e.type){if(Array.isArray(i)){const e=t.includes("number")?I(n.target.value):n.target.value;return n.target.checked?i.concat([e]):i.filter((t=>!s(t,e)))}return n.target.checked}if("select"===e.tagName.toLowerCase()&&e.multiple)return t.includes("number")?Array.from(n.target.selectedOptions).map((e=>I(e.value||e.text))):Array.from(n.target.selectedOptions).map((e=>e.value||e.text));{const e=n.target.value;return t.includes("number")?I(e):t.includes("trim")?e.trim():e}}}function I(e){const t=e?parseFloat(e):null;return P(t)?t:e}const{isArray:M}=Array,{getPrototypeOf:B,create:q,defineProperty:U,defineProperties:W,isExtensible:K,getOwnPropertyDescriptor:G,getOwnPropertyNames:H,getOwnPropertySymbols:V,preventExtensions:Z,hasOwnProperty:J}=Object,{push:Q,concat:X,map:Y}=Array.prototype;function ee(e){return void 0===e}function te(e){return"function"==typeof e}const ne=new WeakMap;function ie(e,t){ne.set(e,t)}const re=e=>ne.get(e)||e;function se(e,t){return e.valueIsObservable(t)?e.getProxy(t):t}function oe(e,t,n){X.call(H(n),V(n)).forEach((i=>{let r=G(n,i);r.configurable||(r=ve(e,r,se)),U(t,i,r)})),Z(t)}class ae{constructor(e,t){this.originalTarget=t,this.membrane=e}get(e,t){const{originalTarget:n,membrane:i}=this,r=n[t],{valueObserved:s}=i;return s(n,t),i.getProxy(r)}set(e,t,n){const{originalTarget:i,membrane:{valueMutated:r}}=this;return i[t]!==n?(i[t]=n,r(i,t)):"length"===t&&M(i)&&r(i,t),!0}deleteProperty(e,t){const{originalTarget:n,membrane:{valueMutated:i}}=this;return delete n[t],i(n,t),!0}apply(e,t,n){}construct(e,t,n){}has(e,t){const{originalTarget:n,membrane:{valueObserved:i}}=this;return i(n,t),t in n}ownKeys(e){const{originalTarget:t}=this;return X.call(H(t),V(t))}isExtensible(e){const t=K(e);if(!t)return t;const{originalTarget:n,membrane:i}=this,r=K(n);return r||oe(i,e,n),r}setPrototypeOf(e,t){}getPrototypeOf(e){const{originalTarget:t}=this;return B(t)}getOwnPropertyDescriptor(e,t){const{originalTarget:n,membrane:i}=this,{valueObserved:r}=this.membrane;r(n,t);let s=G(n,t);if(ee(s))return s;const o=G(e,t);return ee(o)?(s=ve(i,s,se),s.configurable||U(e,t,s),s):o}preventExtensions(e){const{originalTarget:t,membrane:n}=this;return oe(n,e,t),Z(t),!0}defineProperty(e,t,n){const{originalTarget:i,membrane:r}=this,{valueMutated:s}=r,{configurable:o}=n;if(J.call(n,"writable")&&!J.call(n,"value")){const e=G(i,t);n.value=e.value}return U(i,t,function(e){return J.call(e,"value")&&(e.value=re(e.value)),e}(n)),!1===o&&U(e,t,ve(r,n,se)),s(i,t),!0}}function le(e,t){return e.valueIsObservable(t)?e.getReadOnlyProxy(t):t}class ce{constructor(e,t){this.originalTarget=t,this.membrane=e}get(e,t){const{membrane:n,originalTarget:i}=this,r=i[t],{valueObserved:s}=n;return s(i,t),n.getReadOnlyProxy(r)}set(e,t,n){return!1}deleteProperty(e,t){return!1}apply(e,t,n){}construct(e,t,n){}has(e,t){const{originalTarget:n,membrane:{valueObserved:i}}=this;return i(n,t),t in n}ownKeys(e){const{originalTarget:t}=this;return X.call(H(t),V(t))}setPrototypeOf(e,t){}getOwnPropertyDescriptor(e,t){const{originalTarget:n,membrane:i}=this,{valueObserved:r}=i;r(n,t);let s=G(n,t);if(ee(s))return s;const o=G(e,t);return ee(o)?(s=ve(i,s,le),J.call(s,"set")&&(s.set=void 0),s.configurable||U(e,t,s),s):o}preventExtensions(e){return!1}defineProperty(e,t,n){return!1}}function ue(e){let t=void 0;return M(e)?t=[]:"object"==typeof e&&(t={}),t}const de=Object.prototype;function fe(e){if(null===e)return!1;if("object"!=typeof e)return!1;if(M(e))return!0;const t=B(e);return t===de||null===t||null===B(t)}const me=(e,t)=>{},pe=(e,t)=>{},he=e=>e;function ve(e,t,n){const{set:i,get:r}=t;return J.call(t,"value")?t.value=n(e,t.value):(ee(r)||(t.get=function(){return n(e,r.call(re(this)))}),ee(i)||(t.set=function(t){i.call(re(this),e.unwrapProxy(t))})),t}class ye{constructor(e){if(this.valueDistortion=he,this.valueMutated=pe,this.valueObserved=me,this.valueIsObservable=fe,this.objectGraph=new WeakMap,!ee(e)){const{valueDistortion:t,valueMutated:n,valueObserved:i,valueIsObservable:r}=e;this.valueDistortion=te(t)?t:he,this.valueMutated=te(n)?n:pe,this.valueObserved=te(i)?i:me,this.valueIsObservable=te(r)?r:fe}}getProxy(e){const t=re(e),n=this.valueDistortion(t);if(this.valueIsObservable(n)){const i=this.getReactiveState(t,n);return i.readOnly===e?e:i.reactive}return n}getReadOnlyProxy(e){e=re(e);const t=this.valueDistortion(e);return this.valueIsObservable(t)?this.getReactiveState(e,t).readOnly:t}unwrapProxy(e){return re(e)}getReactiveState(e,t){const{objectGraph:n}=this;let i=n.get(t);if(i)return i;const r=this;return i={get reactive(){const n=new ae(r,t),i=new Proxy(ue(t),n);return ie(i,e),U(this,"reactive",{value:i}),i},get readOnly(){const n=new ce(r,t),i=new Proxy(ue(t),n);return ie(i,e),U(this,"readOnly",{value:i}),i}},n.set(t,i),i}}class be{constructor(e,t=null){this.$el=e;const n=this.$el.getAttribute("x-data"),i=""===n?"{}":n,r=this.$el.getAttribute("x-init");let s={$el:this.$el},o=t?t.$el:this.$el;Object.entries(ge.magicProperties).forEach((([e,t])=>{Object.defineProperty(s,"$"+e,{get:function(){return t(o)}})})),this.unobservedData=t?t.getUnobservedData():f(e,i,s);let{membrane:a,data:l}=this.wrapDataInObservable(this.unobservedData);var c;this.$data=l,this.membrane=a,this.unobservedData.$el=this.$el,this.unobservedData.$refs=this.getRefsProxy(),this.nextTickStack=[],this.unobservedData.$nextTick=e=>{this.nextTickStack.push(e)},this.watchers={},this.unobservedData.$watch=(e,t)=>{this.watchers[e]||(this.watchers[e]=[]),this.watchers[e].push(t)},Object.entries(ge.magicProperties).forEach((([e,t])=>{Object.defineProperty(this.unobservedData,"$"+e,{get:function(){return t(o,this.$el)}})})),this.showDirectiveStack=[],this.showDirectiveLastElement,t||ge.onBeforeComponentInitializeds.forEach((e=>e(this))),r&&!t&&(this.pauseReactivity=!0,c=this.evaluateReturnExpression(this.$el,r),this.pauseReactivity=!1),this.initializeElements(this.$el,(()=>{}),t),this.listenForNewElementsToInitialize(),"function"==typeof c&&c.call(this.$data),t||setTimeout((()=>{ge.onComponentInitializeds.forEach((e=>e(this)))}),0)}getUnobservedData(){return function(e,t){let n=e.unwrapProxy(t),i={};return Object.keys(n).forEach((e=>{["$el","$refs","$nextTick","$watch"].includes(e)||(i[e]=n[e])})),i}(this.membrane,this.$data)}wrapDataInObservable(e){var t=this;let n=c((function(){t.updateElements(t.$el)}),0);return function(e,t){let n=new ye({valueMutated(e,n){t(e,n)}});return{data:n.getProxy(e),membrane:n}}(e,((e,i)=>{t.watchers[i]?t.watchers[i].forEach((t=>t(e[i]))):Array.isArray(e)?Object.keys(t.watchers).forEach((n=>{let r=n.split(".");"length"!==i&&r.reduce(((i,r)=>(Object.is(e,i[r])&&t.watchers[n].forEach((t=>t(e))),i[r])),t.unobservedData)})):Object.keys(t.watchers).filter((e=>e.includes("."))).forEach((n=>{let r=n.split(".");i===r[r.length-1]&&r.reduce(((r,s)=>(Object.is(e,r)&&t.watchers[n].forEach((t=>t(e[i]))),r[s])),t.unobservedData)})),t.pauseReactivity||n()}))}walkAndSkipNestedComponents(e,t,n=(()=>{})){l(e,(e=>e.hasAttribute("x-data")&&!e.isSameNode(this.$el)?(e.__x||n(e),!1):t(e)))}initializeElements(e,t=(()=>{}),n=!1){this.walkAndSkipNestedComponents(e,(e=>void 0===e.__x_for_key&&(void 0===e.__x_inserted_me&&void this.initializeElement(e,t,!n))),(e=>{n||(e.__x=new be(e))})),this.executeAndClearRemainingShowDirectiveStack(),this.executeAndClearNextTickStack(e)}initializeElement(e,t,n=!0){e.hasAttribute("class")&&h(e,this).length>0&&(e.__x_original_classes=b(e.getAttribute("class"))),n&&this.registerListeners(e,t),this.resolveBoundAttributes(e,!0,t)}updateElements(e,t=(()=>{})){this.walkAndSkipNestedComponents(e,(e=>{if(void 0!==e.__x_for_key&&!e.isSameNode(this.$el))return!1;this.updateElement(e,t)}),(e=>{e.__x=new be(e)})),this.executeAndClearRemainingShowDirectiveStack(),this.executeAndClearNextTickStack(e)}executeAndClearNextTickStack(e){e===this.$el&&this.nextTickStack.length>0&&requestAnimationFrame((()=>{for(;this.nextTickStack.length>0;)this.nextTickStack.shift()()}))}executeAndClearRemainingShowDirectiveStack(){this.showDirectiveStack.reverse().map((e=>new Promise(((t,n)=>{e(t,n)})))).reduce(((e,t)=>e.then((()=>t.then((e=>{e()}))))),Promise.resolve((()=>{}))).catch((e=>{if(e!==_)throw e})),this.showDirectiveStack=[],this.showDirectiveLastElement=void 0}updateElement(e,t){this.resolveBoundAttributes(e,!1,t)}registerListeners(e,t){h(e,this).forEach((({type:i,value:r,modifiers:s,expression:o})=>{switch(i){case"on":N(this,e,r,s,o,t);break;case"model":!function(e,t,i,r,s){var o="select"===t.tagName.toLowerCase()||["checkbox","radio"].includes(t.type)||i.includes("lazy")?"change":"input";N(e,t,o,i,`${r} = rightSideOfExpression($event, ${r})`,(()=>n(n({},s()),{},{rightSideOfExpression:F(t,i,r)})))}(this,e,s,o,t)}}))}resolveBoundAttributes(e,t=!1,n){let i=h(e,this);i.forEach((({type:r,value:s,modifiers:a,expression:l})=>{switch(r){case"model":T(this,e,"value",l,n,r,a);break;case"bind":if("template"===e.tagName.toLowerCase()&&"key"===s)return;T(this,e,s,l,n,r,a);break;case"text":var c=this.evaluateReturnExpression(e,l,n);!function(e,t,n){void 0===t&&String(n).match(/\./)&&(t=""),e.textContent=t}(e,c,l);break;case"html":!function(e,t,n,i){t.innerHTML=e.evaluateReturnExpression(t,n,i)}(this,e,l,n);break;case"show":c=this.evaluateReturnExpression(e,l,n);!function(e,t,n,i,r=!1){const s=()=>{t.style.display="none",t.__x_is_shown=!1},o=()=>{1===t.style.length&&"none"===t.style.display?t.removeAttribute("style"):t.style.removeProperty("display"),t.__x_is_shown=!0};if(!0===r)return void(n?o():s());const a=(i,r)=>{n?(("none"===t.style.display||t.__x_transition)&&w(t,(()=>{o()}),r,e),i((()=>{}))):"none"!==t.style.display?E(t,(()=>{i((()=>{s()}))}),r,e):i((()=>{}))};i.includes("immediate")?a((e=>e()),(()=>{})):(e.showDirectiveLastElement&&!e.showDirectiveLastElement.contains(t)&&e.executeAndClearRemainingShowDirectiveStack(),e.showDirectiveStack.push(a),e.showDirectiveLastElement=t)}(this,e,c,a,t);break;case"if":if(i.some((e=>"for"===e.type)))return;c=this.evaluateReturnExpression(e,l,n);!function(e,t,n,i,r){o(t,"x-if");const s=t.nextElementSibling&&!0===t.nextElementSibling.__x_inserted_me;if(!n||s&&!t.__x_transition)!n&&s&&E(t.nextElementSibling,(()=>{t.nextElementSibling.remove()}),(()=>{}),e,i);else{const n=document.importNode(t.content,!0);t.parentElement.insertBefore(n,t.nextElementSibling),w(t.nextElementSibling,(()=>{}),(()=>{}),e,i),e.initializeElements(t.nextElementSibling,r),t.nextElementSibling.__x_inserted_me=!0}}(this,e,c,t,n);break;case"for":j(this,e,l,t,n);break;case"cloak":e.removeAttribute("x-cloak")}}))}evaluateReturnExpression(e,t,i=(()=>{})){return f(e,t,this.$data,n(n({},i()),{},{$dispatch:this.getDispatchFunction(e)}))}evaluateCommandExpression(e,t,i=(()=>{})){return function(e,t,n,i={}){return d((()=>{if("function"==typeof t)return Promise.resolve(t.call(n,i.$event));let e=Function;if(e=Object.getPrototypeOf((async function(){})).constructor,Object.keys(n).includes(t)){let e=new Function(["dataContext",...Object.keys(i)],`with(dataContext) { return ${t} }`)(n,...Object.values(i));return"function"==typeof e?Promise.resolve(e.call(n,i.$event)):Promise.resolve()}return Promise.resolve(new e(["dataContext",...Object.keys(i)],`with(dataContext) { ${t} }`)(n,...Object.values(i)))}),{el:e,expression:t})}(e,t,this.$data,n(n({},i()),{},{$dispatch:this.getDispatchFunction(e)}))}getDispatchFunction(e){return(t,n={})=>{e.dispatchEvent(new CustomEvent(t,{detail:n,bubbles:!0}))}}listenForNewElementsToInitialize(){const e=this.$el;new MutationObserver((e=>{for(let t=0;t<e.length;t++){const n=e[t].target.closest("[x-data]");if(n&&n.isSameNode(this.$el)){if("attributes"===e[t].type&&"x-data"===e[t].attributeName){const n=e[t].target.getAttribute("x-data")||"{}",i=f(this.$el,n,{$el:this.$el});Object.keys(i).forEach((e=>{this.$data[e]!==i[e]&&(this.$data[e]=i[e])}))}e[t].addedNodes.length>0&&e[t].addedNodes.forEach((e=>{1!==e.nodeType||e.__x_inserted_me||(!e.matches("[x-data]")||e.__x?this.initializeElements(e):e.__x=new be(e))}))}}})).observe(e,{childList:!0,attributes:!0,subtree:!0})}getRefsProxy(){var e=this;return new Proxy({},{get(t,n){return"$isAlpineProxy"===n||(e.walkAndSkipNestedComponents(e.$el,(e=>{e.hasAttribute("x-ref")&&e.getAttribute("x-ref")===n&&(i=e)})),i);var i}})}}const ge={version:"2.8.2",pauseMutationObserver:!1,magicProperties:{},onComponentInitializeds:[],onBeforeComponentInitializeds:[],ignoreFocusedForValueBinding:!1,start:async function(){r()||await new Promise((e=>{"loading"==document.readyState?document.addEventListener("DOMContentLoaded",e):e()})),this.discoverComponents((e=>{this.initializeComponent(e)})),document.addEventListener("turbolinks:load",(()=>{this.discoverUninitializedComponents((e=>{this.initializeComponent(e)}))})),this.listenForNewUninitializedComponentsAtRunTime()},discoverComponents:function(e){document.querySelectorAll("[x-data]").forEach((t=>{e(t)}))},discoverUninitializedComponents:function(e,t=null){const n=(t||document).querySelectorAll("[x-data]");Array.from(n).filter((e=>void 0===e.__x)).forEach((t=>{e(t)}))},listenForNewUninitializedComponentsAtRunTime:function(){const e=document.querySelector("body");new MutationObserver((e=>{if(!this.pauseMutationObserver)for(let t=0;t<e.length;t++)e[t].addedNodes.length>0&&e[t].addedNodes.forEach((e=>{1===e.nodeType&&(e.parentElement&&e.parentElement.closest("[x-data]")||this.discoverUninitializedComponents((e=>{this.initializeComponent(e)}),e.parentElement))}))})).observe(e,{childList:!0,attributes:!0,subtree:!0})},initializeComponent:function(e){if(!e.__x)try{e.__x=new be(e)}catch(e){setTimeout((()=>{throw e}),0)}},clone:function(e,t){t.__x||(t.__x=new be(t,e))},addMagicProperty:function(e,t){this.magicProperties[e]=t},onComponentInitialized:function(e){this.onComponentInitializeds.push(e)},onBeforeComponentInitialized:function(e){this.onBeforeComponentInitializeds.push(e)}};return r()||(window.Alpine=ge,window.deferLoadingAlpine?window.deferLoadingAlpine((function(){window.Alpine.start()})):window.Alpine.start()),ge}));
8
+ //# sourceMappingURL=/sm/44afe343e2d1648d1350ab98ed40031d7c91d6246d1aa6dadb2f143c24a5612c.map
lite/admin/js/email-subscribers-admin.js CHANGED
@@ -386,8 +386,7 @@
386
  .on('change', '.condition-field', function (event) {
387
 
388
  var condition = jQuery(this).closest('.ig-es-condition'),
389
- field = jQuery(this),
390
- operator_field, value_field;
391
  ig_es_show_operator_and_value_field(field);
392
  jQuery(document).trigger('ig_es_update_contacts_counts',[{condition_elem:_self}]);
393
  })
@@ -464,6 +463,7 @@
464
  if ( ig_es_js_data.is_pro ) {
465
  return;
466
  }
 
467
  var condition_fields = jQuery('.ig-es-conditions-wrap .condition-field');
468
  var list_rule_count = 0;
469
  jQuery(condition_fields).each(function(){
@@ -509,8 +509,11 @@
509
  condition.find('div.ig-es-conditions-value-field').removeClass('active').find('.condition-value').prop('disabled', true);
510
  condition.find('div.ig-es-conditions-operator-field').removeClass('active').find('.condition-operator').prop('disabled', true);
511
 
512
- value_field = condition.find('div.ig-es-conditions-value-field[data-fields*=",' + jQuery(field).val() + ',"]').addClass('active').find('.condition-value').prop('disabled', false);
513
- operator_field = condition.find('div.ig-es-conditions-operator-field[data-fields*=",' + jQuery(field).val() + ',"]').addClass('active').find('.condition-operator').prop('disabled', false);
 
 
 
514
 
515
  if (!value_field.length) {
516
  value_field = condition.find('div.ig-es-conditions-value-field-default').addClass('active').find('.condition-value').prop('disabled', false);
@@ -683,7 +686,7 @@
683
  jQuery('.wp-editor-boradcast').val(response.body);
684
  if ('undefined' !== typeof tinyMCE) {
685
 
686
- var activeEditor = tinyMCE.get('edit-es-boradcast-body');
687
 
688
  if (activeEditor !== null) { // Make sure we're not calling setContent on null
689
  response.body = response.body.replace(/\n/g, "<br />");
@@ -699,9 +702,9 @@
699
  jQuery('#es_utm_campaign').val(response.es_utm_campaign);
700
  }
701
 
702
- if ( 1 === $('#edit-es-boradcast-body').length ) {
703
- tinyMCE.triggerSave();
704
- $('#edit-es-boradcast-body').trigger('change');
705
  }
706
  }
707
  }
@@ -737,8 +740,7 @@
737
  //preview broadcast
738
  // ig_es_preview_broadcast
739
  jQuery(document).on('click', '#ig_es_preview_broadcast', function (e) {
740
- // Trigger save event for content of wp_editor instances before processing it.
741
- window.tinyMCE.triggerSave();
742
  if (jQuery('.wp-editor-boradcast').val() !== '') {
743
  jQuery('.es-form').find('form').attr('target', '_blank');
744
  jQuery('.es-form').find('form').find('#es_broadcast_preview').val('preview');
@@ -784,62 +786,13 @@
784
  });
785
 
786
  $('.ig_es_draft_broadcast, .next_btn, #summary_menu').on('click', function(e) {
 
 
 
787
 
788
- let trigger_elem = $(this);
789
- let is_draft_bttuon = $(trigger_elem).hasClass('ig_es_draft_broadcast');
790
-
791
- let broadcast_subject = $('#ig_es_broadcast_subject').val();
792
- if ( '' === broadcast_subject ) {
793
- if ( is_draft_bttuon ) {
794
- alert( ig_es_js_data.i18n_data.broadcast_subject_empty_message );
795
- }
796
- return;
797
- }
798
-
799
- // If draft button is clicked then change broadcast status to draft..
800
- if ( is_draft_bttuon ) {
801
- $('#broadcast_status').val(0);
802
- }
803
-
804
- // Trigger save event for content of wp_editor instances.
805
- window.tinyMCE.triggerSave();
806
-
807
- let form_data = $(this).closest('form').serialize();
808
- // Add action to form data
809
- form_data += '&action=ig_es_draft_broadcast&security=' + ig_es_js_data.security;
810
- jQuery.ajax({
811
- method: 'POST',
812
- url: ajaxurl,
813
- data: form_data,
814
- dataType: 'json',
815
- beforeSend: function() {
816
- // Prevent submit button untill saving is complete.
817
- $('#ig_es_broadcast_submitted').addClass('opacity-50 cursor-not-allowed').attr('disabled','disabled');
818
- },
819
- success: function (response) {
820
- if (response.success) {
821
- if ( 'undefined' !== typeof response.data ) {
822
- let response_data = response.data;
823
- let broadcast_id = response_data.broadcast_id;
824
- $('#broadcast_id').val( broadcast_id );
825
- if ( is_draft_bttuon ) {
826
- alert( ig_es_js_data.i18n_data.broadcast_draft_success_message );
827
- }
828
- } else {
829
- if ( is_draft_bttuon ) {
830
- alert( ig_es_js_data.i18n_data.broadcast_draft_error_message );
831
- }
832
- }
833
- } else {
834
- alert( ig_es_js_data.i18n_data.ajax_error_message );
835
- }
836
- },
837
- error: function (err) {
838
- alert( ig_es_js_data.i18n_data.ajax_error_message );
839
- }
840
- }).always(function(){
841
- $('#ig_es_broadcast_submitted').removeClass('opacity-50 cursor-not-allowed').removeAttr('disabled');
842
- });
843
  });
844
 
845
  $(".next_btn, #summary_menu").click(function() {
@@ -859,10 +812,9 @@
859
 
860
  });
861
 
862
- $('.wp-editor-boradcast, #edit-es-boradcast-body,#ig_es_broadcast_subject').on('change',function(event){
863
 
864
- // Trigger save event for content of wp_editor instances before processing it.
865
- window.tinyMCE.triggerSave();
866
 
867
  let form_data = $(this).closest('form').serialize();
868
  // Add action to form data
@@ -1735,8 +1687,10 @@
1735
 
1736
  if (response.success) {
1737
 
1738
- if (!finished) do_import(id + 1, options);
1739
-
 
 
1740
  importprogressbar.animate({
1741
  'width': (percentage) + '%'
1742
  }, {
@@ -2103,8 +2057,103 @@
2103
  }
2104
  }
2105
 
2106
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2107
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2108
  })(jQuery);
2109
 
2110
 
@@ -2114,12 +2163,13 @@ function checkDelete() {
2114
  return confirm( ig_es_js_data.i18n_data.delete_confirmation_message );
2115
  }
2116
 
 
 
2117
  function ig_es_show_broadcast_preview_in_popup() {
2118
- // Trigger save event for content of wp_editor instances before processing it.
2119
- window.tinyMCE.triggerSave();
2120
 
2121
  let content = jQuery('.wp-editor-boradcast').val();
2122
- if (jQuery("#wp-edit-es-boradcast-body-wrap").hasClass("tmce-active")) {
2123
  content = tinyMCE.activeEditor.getContent();
2124
  } else {
2125
  content = jQuery('.wp-editor-boradcast').val();
@@ -2161,6 +2211,15 @@ function ig_es_show_broadcast_preview_in_popup() {
2161
  });
2162
  }
2163
 
 
 
 
 
 
 
 
 
 
2164
  jQuery.fn.extend({
2165
  ig_es_select2: function() {
2166
  return this.each(function() {
386
  .on('change', '.condition-field', function (event) {
387
 
388
  var condition = jQuery(this).closest('.ig-es-condition'),
389
+ field = jQuery(this);
 
390
  ig_es_show_operator_and_value_field(field);
391
  jQuery(document).trigger('ig_es_update_contacts_counts',[{condition_elem:_self}]);
392
  })
463
  if ( ig_es_js_data.is_pro ) {
464
  return;
465
  }
466
+
467
  var condition_fields = jQuery('.ig-es-conditions-wrap .condition-field');
468
  var list_rule_count = 0;
469
  jQuery(condition_fields).each(function(){
509
  condition.find('div.ig-es-conditions-value-field').removeClass('active').find('.condition-value').prop('disabled', true);
510
  condition.find('div.ig-es-conditions-operator-field').removeClass('active').find('.condition-operator').prop('disabled', true);
511
 
512
+ var field_value = jQuery(field).val();
513
+ condition.find('.ig-es-conditions-operator-fields,.ig-es-conditions-value-fields').attr('data-condition', field_value );
514
+
515
+ value_field = condition.find('div.ig-es-conditions-value-field[data-fields*=",' + field_value + ',"]').addClass('active').find('.condition-value').prop('disabled', false);
516
+ operator_field = condition.find('div.ig-es-conditions-operator-field[data-fields*=",' + field_value + ',"]').addClass('active').find('.condition-operator').prop('disabled', false);
517
 
518
  if (!value_field.length) {
519
  value_field = condition.find('div.ig-es-conditions-value-field-default').addClass('active').find('.condition-value').prop('disabled', false);
686
  jQuery('.wp-editor-boradcast').val(response.body);
687
  if ('undefined' !== typeof tinyMCE) {
688
 
689
+ var activeEditor = tinyMCE.get('edit-es-broadcast-body');
690
 
691
  if (activeEditor !== null) { // Make sure we're not calling setContent on null
692
  response.body = response.body.replace(/\n/g, "<br />");
702
  jQuery('#es_utm_campaign').val(response.es_utm_campaign);
703
  }
704
 
705
+ if ( 1 === $('#edit-es-broadcast-body').length ) {
706
+ ig_es_sync_wp_editor_content();
707
+ $('#edit-es-broadcast-body').trigger('change');
708
  }
709
  }
710
  }
740
  //preview broadcast
741
  // ig_es_preview_broadcast
742
  jQuery(document).on('click', '#ig_es_preview_broadcast', function (e) {
743
+ ig_es_sync_wp_editor_content();
 
744
  if (jQuery('.wp-editor-boradcast').val() !== '') {
745
  jQuery('.es-form').find('form').attr('target', '_blank');
746
  jQuery('.es-form').find('form').find('#es_broadcast_preview').val('preview');
786
  });
787
 
788
  $('.ig_es_draft_broadcast, .next_btn, #summary_menu').on('click', function(e) {
789
+ let trigger_elem = $(this);
790
+ ig_es_draft_broadcast( trigger_elem );
791
+ });
792
 
793
+ $('#ig_es_broadcast_subject,#edit-es-broadcast-body,#inline_css').on('change',function(e){
794
+ let trigger_elem = $(this);
795
+ ig_es_draft_broadcast( trigger_elem );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
796
  });
797
 
798
  $(".next_btn, #summary_menu").click(function() {
812
 
813
  });
814
 
815
+ $('.wp-editor-boradcast, #edit-es-broadcast-body,#ig_es_broadcast_subject').on('change',function(event){
816
 
817
+ ig_es_sync_wp_editor_content();
 
818
 
819
  let form_data = $(this).closest('form').serialize();
820
  // Add action to form data
1687
 
1688
  if (response.success) {
1689
 
1690
+ if (!finished) {
1691
+ do_import(id + 1, options);
1692
+ }
1693
+
1694
  importprogressbar.animate({
1695
  'width': (percentage) + '%'
1696
  }, {
2057
  }
2058
  }
2059
 
2060
+ var link_activity_rows = $("#es_reports_link_activity tbody tr");
2061
+ var link_activity_more = $("#es_link_activity_more");
2062
+ var link_activity_less = $("#es_link_activity_less");
2063
+ var link_activity_table_length = link_activity_rows.length;
2064
+ var link_activity_currentIndex = 5;
2065
+
2066
+ link_activity_rows.hide();
2067
+ link_activity_rows.slice(0, 5).show();
2068
+ check_link_activity_rows();
2069
+
2070
+ link_activity_more.click(function (e) {
2071
+ e.preventDefault();
2072
+ $("#es_reports_link_activity tbody tr").slice(link_activity_currentIndex, link_activity_currentIndex + 10).show();
2073
+ link_activity_currentIndex += 10;
2074
+ check_link_activity_rows();
2075
+ });
2076
+
2077
+ link_activity_less.click(function (e) {
2078
+ e.preventDefault();
2079
+
2080
+ link_activity_rows.hide();
2081
+ link_activity_rows.slice(0, 5).show();
2082
+ link_activity_currentIndex = 5;
2083
+ check_link_activity_rows();
2084
+ });
2085
+
2086
+ function check_link_activity_rows() {
2087
+ var currentLength = $("#es_reports_link_activity tbody tr:visible").length;
2088
+ if (currentLength >= link_activity_table_length) {
2089
+ link_activity_more.hide();
2090
+ } else {
2091
+ link_activity_more.show();
2092
+ }
2093
+
2094
+ if (link_activity_table_length > 5 && currentLength > 5) {
2095
+ link_activity_less.show();
2096
+ } else {
2097
+ link_activity_less.hide();
2098
+ }
2099
 
2100
+ }
2101
+ });
2102
+ function ig_es_draft_broadcast( trigger_elem ) {
2103
+ let is_draft_bttuon = $(trigger_elem).hasClass('ig_es_draft_broadcast');
2104
+
2105
+ let broadcast_subject = $('#ig_es_broadcast_subject').val();
2106
+ if ( '' === broadcast_subject ) {
2107
+ if ( is_draft_bttuon ) {
2108
+ alert( ig_es_js_data.i18n_data.broadcast_subject_empty_message );
2109
+ }
2110
+ return;
2111
+ }
2112
+
2113
+ // If draft button is clicked then change broadcast status to draft..
2114
+ if ( is_draft_bttuon ) {
2115
+ $('#broadcast_status').val(0);
2116
+ }
2117
+
2118
+ ig_es_sync_wp_editor_content();
2119
+
2120
+ let form_data = $(trigger_elem).closest('form').serialize();
2121
+ // Add action to form data
2122
+ form_data += '&action=ig_es_draft_broadcast&security=' + ig_es_js_data.security;
2123
+ jQuery.ajax({
2124
+ method: 'POST',
2125
+ url: ajaxurl,
2126
+ data: form_data,
2127
+ dataType: 'json',
2128
+ beforeSend: function() {
2129
+ // Prevent submit button untill saving is complete.
2130
+ $('#ig_es_broadcast_submitted').addClass('opacity-50 cursor-not-allowed').attr('disabled','disabled');
2131
+ },
2132
+ success: function (response) {
2133
+ if (response.success) {
2134
+ if ( 'undefined' !== typeof response.data ) {
2135
+ let response_data = response.data;
2136
+ let broadcast_id = response_data.broadcast_id;
2137
+ $('#broadcast_id').val( broadcast_id );
2138
+ if ( is_draft_bttuon ) {
2139
+ alert( ig_es_js_data.i18n_data.broadcast_draft_success_message );
2140
+ }
2141
+ } else {
2142
+ if ( is_draft_bttuon ) {
2143
+ alert( ig_es_js_data.i18n_data.broadcast_draft_error_message );
2144
+ }
2145
+ }
2146
+ } else {
2147
+ alert( ig_es_js_data.i18n_data.ajax_error_message );
2148
+ }
2149
+ },
2150
+ error: function (err) {
2151
+ alert( ig_es_js_data.i18n_data.ajax_error_message );
2152
+ }
2153
+ }).always(function(){
2154
+ $('#ig_es_broadcast_submitted').removeClass('opacity-50 cursor-not-allowed').removeAttr('disabled');
2155
+ });
2156
+ }
2157
  })(jQuery);
2158
 
2159
 
2163
  return confirm( ig_es_js_data.i18n_data.delete_confirmation_message );
2164
  }
2165
 
2166
+
2167
+
2168
  function ig_es_show_broadcast_preview_in_popup() {
2169
+ ig_es_sync_wp_editor_content();
 
2170
 
2171
  let content = jQuery('.wp-editor-boradcast').val();
2172
+ if (jQuery("#wp-edit-es-broadcast-body-wrap").hasClass("tmce-active")) {
2173
  content = tinyMCE.activeEditor.getContent();
2174
  } else {
2175
  content = jQuery('.wp-editor-boradcast').val();
2211
  });
2212
  }
2213
 
2214
+ function ig_es_sync_wp_editor_content() {
2215
+ // When visual mode is disabled in wp user profile, tinyMCE library isn't enqueued.
2216
+ // We aren't triggering the save event in that case
2217
+ if ( 'undefined' !== typeof window.tinyMCE ) {
2218
+ // Trigger save event for content of wp_editor instances to sync its content with actual textarea field
2219
+ window.tinyMCE.triggerSave();
2220
+ }
2221
+ }
2222
+
2223
  jQuery.fn.extend({
2224
  ig_es_select2: function() {
2225
  return this.each(function() {
lite/includes/class-es-common.php CHANGED
@@ -47,6 +47,7 @@ class ES_Common {
47
 
48
  $content = wpautop( $content );
49
  $content = do_shortcode( shortcode_unautop( $content ) );
 
50
  $data['content'] = $content;
51
  $data['tmpl_id'] = $tmpl_id;
52
  $data['campaign_id'] = $campaign_id;
@@ -1996,5 +1997,32 @@ class ES_Common {
1996
  return $string;
1997
  }
1998
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1999
  }
2000
 
47
 
48
  $content = wpautop( $content );
49
  $content = do_shortcode( shortcode_unautop( $content ) );
50
+ $data = array();
51
  $data['content'] = $content;
52
  $data['tmpl_id'] = $tmpl_id;
53
  $data['campaign_id'] = $campaign_id;
1997
  return $string;
1998
  }
1999
 
2000
+ /**
2001
+ * Override wp editor tinymce formatting options
2002
+ *
2003
+ * @param array $init
2004
+ * @param string $editor_id
2005
+ *
2006
+ * @return array $init
2007
+ *
2008
+ * @since 4.7.3
2009
+ */
2010
+ public static function override_tinymce_formatting_options( $init, $editor_id = '' ) {
2011
+
2012
+ if ( 'edit-es-broadcast-body' === $editor_id ) {
2013
+
2014
+ $init['wpautop'] = false; // Disable stripping of p tags in Text mode.
2015
+ $init['tadv_noautop'] = true; // Disable stripping of p tags in Text mode.
2016
+ $init['indent'] = true;
2017
+
2018
+ // To disable stripping of some HTML elements like span when switching modes in wp editor from text-visual-text.
2019
+ $opts = '*[*]';
2020
+ $init['valid_elements'] = $opts;
2021
+ $init['extended_valid_elements'] = $opts;
2022
+ }
2023
+
2024
+ return $init;
2025
+ }
2026
+
2027
  }
2028
 
lite/includes/classes/class-es-browser.php CHANGED
@@ -1896,6 +1896,8 @@ class ES_Browser {
1896
  }
1897
  } elseif ( preg_match( '#Mozilla/([0-9a-z.]+)#i', $this->_agent, $hit ) ) {
1898
  $email_client = 'Web Client (Mozilla based)';
 
 
1899
  } else {
1900
  $email_client = 'Web Client (' . $this->_agent . ')';
1901
  }
1896
  }
1897
  } elseif ( preg_match( '#Mozilla/([0-9a-z.]+)#i', $this->_agent, $hit ) ) {
1898
  $email_client = 'Web Client (Mozilla based)';
1899
+ } elseif ( preg_match( '#(YahooMailProxy|Yahoo)#i', $this->_agent, $hit ) ) {
1900
+ $email_client = 'Web Client (Yahoo)';
1901
  } else {
1902
  $email_client = 'Web Client (' . $this->_agent . ')';
1903
  }
lite/includes/classes/class-es-campaign-report.php CHANGED
@@ -29,6 +29,7 @@ class ES_Campaign_Report extends ES_List_Table {
29
 
30
  <?php
31
  $this->ajax_response();
 
32
  ?>
33
  <div id="poststuff" class="es-items-lists es-campaign-reports-table">
34
  <div id="post-body" class="metabox-holder column-1">
@@ -37,6 +38,7 @@ class ES_Campaign_Report extends ES_List_Table {
37
  <form method="get" class="es_campaign_report" id="es_campaign_report">
38
  <input type="hidden" name="order" />
39
  <input type="hidden" name="orderby" />
 
40
  <div class="mb-2 max-w-7xl">
41
  <div>
42
  <p class="text-lg font-medium leading-7 tracking-wide text-gray-600"><?php esc_html_e( 'Activity Info', 'email-subscribers' ); ?></p>
@@ -70,9 +72,19 @@ class ES_Campaign_Report extends ES_List_Table {
70
  $this->print_column_headers();
71
  $headers = ob_get_clean();
72
 
 
 
 
 
 
 
 
 
73
  $response = array( 'rows' => $rows );
74
 
75
  $response['column_headers'] = $headers;
 
 
76
 
77
  if ( isset( $total_items ) ) {
78
  /* translators: %s: Total items in the table */
@@ -117,6 +129,7 @@ class ES_Campaign_Report extends ES_List_Table {
117
  */
118
  public function prepare_items() {
119
 
 
120
  $columns = $this->get_columns();
121
  $hidden = array();
122
  $sortable = $this->get_sortable_columns();
@@ -129,7 +142,27 @@ class ES_Campaign_Report extends ES_List_Table {
129
  usort( $data, array( $this,'usort_reorder') );
130
  }
131
 
 
 
 
 
132
  $this->items = $data;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
133
  }
134
 
135
  /**
@@ -390,8 +423,8 @@ class ES_Campaign_Report extends ES_List_Table {
390
  <a href="?page=es_reports&action=view&list=<?php echo esc_attr( $hash ); ?>&_wpnonce=<?php echo esc_attr( $_wpnonce ); ?>&insight=true" class="float-right top-10 relative ig-es-title-button px-2 py-2 mx-2 ig-es-imp-button cursor-pointer"><?php esc_html_e( 'Campaign Analytics', 'email-subscribers' ); ?></a>
391
  <?php } ?>
392
  </div>
393
- <div class="mt-2 mb-2 inline-block relative top-20">
394
- <span class="pt-3 pb-4 leading-5 tracking-wide text-gray-600"><?php echo esc_html( 'Viewed ' . $email_viewed_count . '/' . $total_email_sent ); ?>
395
  </span>
396
  </div>
397
  <?php
@@ -420,10 +453,12 @@ class ES_Campaign_Report extends ES_List_Table {
420
  $('#es_campaign_report').on('click', '.tablenav-pages a, .manage-column.sortable a, .manage-column.sorted a', function (e) {
421
  e.preventDefault();
422
  var query = this.search.substring(1);
 
423
  var order = list.__query( query, 'order' ) || 'desc';
424
  var orderby = list.__query( query, 'orderby' ) || 'opened_at';
425
  $("input[name='order']").val(order);
426
  $("input[name='orderby']").val(orderby);
 
427
  check_filter_value();
428
 
429
  });
@@ -460,13 +495,16 @@ class ES_Campaign_Report extends ES_List_Table {
460
  },
461
  success: function (response) {
462
  var response = $.parseJSON(response);
463
-
464
  if (response.rows.length)
465
  $('#the-list').html(response.rows);
466
  if (response.column_headers.length)
467
  $('#es_campaign_report thead tr, #es_campaign_report tfoot tr').html(response.column_headers);
468
- },
469
- error: function (err) {
 
 
 
 
470
 
471
  }
472
  }).always(function(){
@@ -500,8 +538,9 @@ class ES_Campaign_Report extends ES_List_Table {
500
  function check_filter_value( filter_value = '' ){
501
  var country_code = $('#ig_es_filter_activity_report_by_country').val();
502
  var report_activity_status = $('#ig_es_filter_activity_report_by_status').val();
503
- var order = $("input[name='order']").val();
504
  var orderby = $("input[name='orderby']").val();
 
505
 
506
  data =
507
  {
@@ -509,6 +548,7 @@ class ES_Campaign_Report extends ES_List_Table {
509
  campaign_id : <?php echo ( ! empty( $campaign_id ) ? esc_html( $campaign_id ) : 0 ); ?>,
510
  order : order,
511
  orderby : orderby,
 
512
  country_code : country_code,
513
  status : report_activity_status
514
 
29
 
30
  <?php
31
  $this->ajax_response();
32
+ $paged = ig_es_get_request_data( 'paged', 1 );
33
  ?>
34
  <div id="poststuff" class="es-items-lists es-campaign-reports-table">
35
  <div id="post-body" class="metabox-holder column-1">
38
  <form method="get" class="es_campaign_report" id="es_campaign_report">
39
  <input type="hidden" name="order" />
40
  <input type="hidden" name="orderby" />
41
+ <input type="hidden" name="paged" value='<?php echo esc_attr( $paged ); ?>'/>
42
  <div class="mb-2 max-w-7xl">
43
  <div>
44
  <p class="text-lg font-medium leading-7 tracking-wide text-gray-600"><?php esc_html_e( 'Activity Info', 'email-subscribers' ); ?></p>
72
  $this->print_column_headers();
73
  $headers = ob_get_clean();
74
 
75
+ ob_start();
76
+ $this->pagination('top');
77
+ $pagination_top = ob_get_clean();
78
+
79
+ ob_start();
80
+ $this->pagination('bottom');
81
+ $pagination_bottom = ob_get_clean();
82
+
83
  $response = array( 'rows' => $rows );
84
 
85
  $response['column_headers'] = $headers;
86
+ $response['pagination']['top'] = $pagination_top;
87
+ $response['pagination']['bottom'] = $pagination_bottom;
88
 
89
  if ( isset( $total_items ) ) {
90
  /* translators: %s: Total items in the table */
129
  */
130
  public function prepare_items() {
131
 
132
+ $per_page = 100;
133
  $columns = $this->get_columns();
134
  $hidden = array();
135
  $sortable = $this->get_sortable_columns();
142
  usort( $data, array( $this,'usort_reorder') );
143
  }
144
 
145
+ $current_page = $this->get_pagenum();
146
+ $total_items = count( $data );
147
+ $data = array_slice( $data, ( ( $current_page-1 )*$per_page ), $per_page );
148
+
149
  $this->items = $data;
150
+ $orderby_colname = ig_es_get_request_data( 'orderby', '' );
151
+ $col_order = ig_es_get_request_data( 'order', '' );
152
+
153
+ /**
154
+ * Call to _set_pagination_args method for informations about
155
+ * total items, items for page, total pages and ordering
156
+ */
157
+ $this->set_pagination_args(
158
+ array(
159
+ 'total_items' => $total_items,
160
+ 'per_page' => $per_page,
161
+ 'total_pages' => ceil( $total_items / $per_page ),
162
+ 'orderby' => ! empty( $orderby_colname ) && '' != $orderby_colname ? $orderby_colname : 'opened_at',
163
+ 'order' => ! empty( $col_order ) && '' != $col_order ? $col_order : 'desc'
164
+ )
165
+ );
166
  }
167
 
168
  /**
423
  <a href="?page=es_reports&action=view&list=<?php echo esc_attr( $hash ); ?>&_wpnonce=<?php echo esc_attr( $_wpnonce ); ?>&insight=true" class="float-right top-10 relative ig-es-title-button px-2 py-2 mx-2 ig-es-imp-button cursor-pointer"><?php esc_html_e( 'Campaign Analytics', 'email-subscribers' ); ?></a>
424
  <?php } ?>
425
  </div>
426
+ <div class="mt-2 mb-2 inline-block relative" style="top:4.4rem">
427
+ <span class="pt-3 pb-4 leading-5 tracking-wide text-gray-600"><?php echo esc_html( 'Viewed ' . number_format( $email_viewed_count ) . '/' . number_format( $total_email_sent ) ); ?>
428
  </span>
429
  </div>
430
  <?php
453
  $('#es_campaign_report').on('click', '.tablenav-pages a, .manage-column.sortable a, .manage-column.sorted a', function (e) {
454
  e.preventDefault();
455
  var query = this.search.substring(1);
456
+ var paged = list.__query( query, 'paged' ) || '1';
457
  var order = list.__query( query, 'order' ) || 'desc';
458
  var orderby = list.__query( query, 'orderby' ) || 'opened_at';
459
  $("input[name='order']").val(order);
460
  $("input[name='orderby']").val(orderby);
461
+ $("input[name='paged']").val(paged);
462
  check_filter_value();
463
 
464
  });
495
  },
496
  success: function (response) {
497
  var response = $.parseJSON(response);
 
498
  if (response.rows.length)
499
  $('#the-list').html(response.rows);
500
  if (response.column_headers.length)
501
  $('#es_campaign_report thead tr, #es_campaign_report tfoot tr').html(response.column_headers);
502
+ if (response.pagination.bottom.length)
503
+ $('.tablenav.bottom .tablenav-pages').html($(response.pagination.bottom).html());
504
+ if (response.pagination.top.length)
505
+ $('.tablenav.top .tablenav-pages').html($(response.pagination.top).html());
506
+ },
507
+ error: function (err) {
508
 
509
  }
510
  }).always(function(){
538
  function check_filter_value( filter_value = '' ){
539
  var country_code = $('#ig_es_filter_activity_report_by_country').val();
540
  var report_activity_status = $('#ig_es_filter_activity_report_by_status').val();
541
+ var order = $("input[name='order']").val();
542
  var orderby = $("input[name='orderby']").val();
543
+ var paged = $("input[name='paged']").val();
544
 
545
  data =
546
  {
548
  campaign_id : <?php echo ( ! empty( $campaign_id ) ? esc_html( $campaign_id ) : 0 ); ?>,
549
  order : order,
550
  orderby : orderby,
551
+ paged : paged,
552
  country_code : country_code,
553
  status : report_activity_status
554
 
lite/includes/classes/class-es-forms-table.php CHANGED
@@ -844,7 +844,8 @@ class ES_Forms_Table extends ES_List_Table {
844
  return '<code class="es-code">' . $shortcode . '</code>';
845
  break;
846
  case 'total_active_subscribers':
847
- return ES()->contacts_db->get_total_contacts_by_form_id( $item['id'] );
 
848
  default:
849
  return '';
850
  }
844
  return '<code class="es-code">' . $shortcode . '</code>';
845
  break;
846
  case 'total_active_subscribers':
847
+ $total_active_subscribers = ES()->contacts_db->get_total_contacts_by_form_id( $item['id'] );
848
+ return number_format( $total_active_subscribers );
849
  default:
850
  return '';
851
  }
lite/includes/classes/class-es-geolocation.php CHANGED
@@ -18,17 +18,26 @@ if ( ! defined( 'ABSPATH' ) ) {
18
  */
19
  class ES_Geolocation {
20
 
 
21
  /**
22
  * API endpoints for geolocating an IP address
23
  *
24
  * @var array
25
  */
26
  private static $geoip_apis = array(
27
- 'icegram_api_url' => 'http://api.icegram.com/geo/%s',
28
  'ipinfo.io' => 'https://ipinfo.io/%s/json',
29
  'ip-api.com' => 'http://ip-api.com/json/%s',
30
  );
31
 
 
 
 
 
 
 
 
 
 
32
  /**
33
  * Geolocate an IP address.
34
  *
@@ -106,10 +115,6 @@ class ES_Geolocation {
106
  $data = json_decode( $response['body'] );
107
  $country_code = isset( $data->countryCode ) ? $data->countryCode : ''; // @codingStandardsIgnoreLine
108
  break;
109
- case 'icegram_api_url':
110
- $data = json_decode( $response['body'] );
111
- $country_code = isset( $data->country_code ) ? $data->country_code : ''; // @codingStandardsIgnoreLine
112
- break;
113
  default:
114
  $country_code = apply_filters( 'ig_es_geolocation_geoip_response_' . $service_name, '', $response['body'] );
115
  break;
@@ -124,6 +129,23 @@ class ES_Geolocation {
124
  }
125
  }
126
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
127
  if ( ! empty( $geo_ip_data ) ) {
128
  set_transient( 'ig_es_geoip_' . $ip_address, $geo_ip_data, WEEK_IN_SECONDS );
129
  }
18
  */
19
  class ES_Geolocation {
20
 
21
+
22
  /**
23
  * API endpoints for geolocating an IP address
24
  *
25
  * @var array
26
  */
27
  private static $geoip_apis = array(
 
28
  'ipinfo.io' => 'https://ipinfo.io/%s/json',
29
  'ip-api.com' => 'http://ip-api.com/json/%s',
30
  );
31
 
32
+ /**
33
+ * Icegram API endpoints for geolocating an IP address
34
+ *
35
+ * @var string
36
+ *
37
+ * @since 4.7.3
38
+ */
39
+ private static $icegram_api_url = 'http://api.icegram.com/geo/';
40
+
41
  /**
42
  * Geolocate an IP address.
43
  *
115
  $data = json_decode( $response['body'] );
116
  $country_code = isset( $data->countryCode ) ? $data->countryCode : ''; // @codingStandardsIgnoreLine
117
  break;
 
 
 
 
118
  default:
119
  $country_code = apply_filters( 'ig_es_geolocation_geoip_response_' . $service_name, '', $response['body'] );
120
  break;
129
  }
130
  }
131
 
132
+ // Use Icegram geo location API incase if we still don't have the location data.
133
+ if ( empty( $geo_ip_data ) ) {
134
+ $response = wp_safe_remote_get(
135
+ self::$icegram_api_url . $ip_address,
136
+ array(
137
+ 'timeout' => 2
138
+ )
139
+ );
140
+ if ( ! is_wp_error( $response ) && $response['body'] ) {
141
+ $data = json_decode( $response['body'] );
142
+ $country_code = isset( $data->country_code ) ? $data->country_code : '';
143
+ if ( $country_code ) {
144
+ $geo_ip_data['country_code'] = $country_code;
145
+ }
146
+ }
147
+ }
148
+
149
  if ( ! empty( $geo_ip_data ) ) {
150
  set_transient( 'ig_es_geoip_' . $ip_address, $geo_ip_data, WEEK_IN_SECONDS );
151
  }
lite/includes/classes/class-es-handle-subscription.php CHANGED
@@ -14,6 +14,7 @@ if ( ! class_exists( 'ES_Handle_Subscription' ) ) {
14
  * @since 4.0.0
15
  */
16
  class ES_Handle_Subscription {
 
17
  /**
18
  * Subscriber Email
19
  *
@@ -22,6 +23,7 @@ if ( ! class_exists( 'ES_Handle_Subscription' ) ) {
22
  *
23
  */
24
  public $email;
 
25
  /**
26
  * Subscriber Name
27
  *
@@ -30,6 +32,7 @@ if ( ! class_exists( 'ES_Handle_Subscription' ) ) {
30
  *
31
  */
32
  public $name;
 
33
  /**
34
  * Subscriber First Name
35
  *
@@ -38,6 +41,7 @@ if ( ! class_exists( 'ES_Handle_Subscription' ) ) {
38
  *
39
  */
40
  public $first_name;
 
41
  /**
42
  * Subscriber Last Name
43
  *
@@ -46,6 +50,7 @@ if ( ! class_exists( 'ES_Handle_Subscription' ) ) {
46
  *
47
  */
48
  public $last_name;
 
49
  /**
50
  * Optin type
51
  *
@@ -81,6 +86,7 @@ if ( ! class_exists( 'ES_Handle_Subscription' ) ) {
81
  *
82
  */
83
  public $es_nonce;
 
84
  /**
85
  * Subscriber Status
86
  *
@@ -89,6 +95,7 @@ if ( ! class_exists( 'ES_Handle_Subscription' ) ) {
89
  *
90
  */
91
  public $status;
 
92
  /**
93
  * To check if double-optin or not
94
  *
@@ -97,6 +104,7 @@ if ( ! class_exists( 'ES_Handle_Subscription' ) ) {
97
  *
98
  */
99
  public $is_double_optin = false;
 
100
  /**
101
  * Guid
102
  *
@@ -105,6 +113,7 @@ if ( ! class_exists( 'ES_Handle_Subscription' ) ) {
105
  *
106
  */
107
  public $guid;
 
108
  /**
109
  * Database Id
110
  *
@@ -113,6 +122,7 @@ if ( ! class_exists( 'ES_Handle_Subscription' ) ) {
113
  *
114
  */
115
  public $db_id;
 
116
  /**
117
  * Form id
118
  *
@@ -121,6 +131,16 @@ if ( ! class_exists( 'ES_Handle_Subscription' ) ) {
121
  *
122
  */
123
  public $form_id;
 
 
 
 
 
 
 
 
 
 
124
  /**
125
  * If the user is subscribed from Rainmaker
126
  *
@@ -191,8 +211,9 @@ if ( ! class_exists( 'ES_Handle_Subscription' ) ) {
191
  exit;
192
  }
193
 
194
- $email = ! empty( $form_data['esfpx_email'] ) ? sanitize_email( $form_data['esfpx_email'] ) : '';
195
- $name = ! empty( $form_data['esfpx_name'] ) ? sanitize_text_field( $form_data['esfpx_name'] ) : '';
 
196
 
197
  $first_name = '';
198
  $last_name = '';
@@ -209,6 +230,7 @@ if ( ! class_exists( 'ES_Handle_Subscription' ) ) {
209
  $this->first_name = $first_name;
210
  $this->last_name = $last_name;
211
  $this->email = $email;
 
212
  $this->list_hashes = isset( $form_data['esfpx_lists'] ) ? $form_data['esfpx_lists'] : array();
213
  $this->es_nonce = isset( $form_data['esfpx_es-subscribe'] ) ? trim( $form_data['esfpx_es-subscribe'] ) : '';
214
  $this->form_id = isset( $form_data['esfpx_form_id'] ) ? trim( $form_data['esfpx_form_id'] ) : 0;
@@ -245,6 +267,7 @@ if ( ! class_exists( 'ES_Handle_Subscription' ) ) {
245
  $data['form_id'] = $this->form_id;
246
  $data['email'] = $this->email;
247
  $data['hash'] = $this->guid;
 
248
  $data['status'] = 'verified';
249
  $data['hash'] = $this->guid;
250
  $data['created_at'] = ig_get_current_date_time();
@@ -525,15 +548,17 @@ if ( ! class_exists( 'ES_Handle_Subscription' ) ) {
525
  $list_hash = ig_es_get_request_data( 'list' );
526
  $list = ES()->lists_db->get_by( 'hash', $list_hash );
527
  if ( ! empty( $list ) ) {
528
- $list_id = $list['id'];
529
- $name = ig_es_get_request_data( 'name' );
530
- $email = ig_es_get_request_data( 'email' );
531
- $hp_email = ig_es_get_request_data( 'es_hp_email' );
 
532
 
533
  $form_data = array(
534
  'esfpx_name' => $name,
535
  'esfpx_email' => $email,
536
  'esfpx_es_hp_email' => $hp_email,
 
537
  'esfpx_lists' => array(
538
  $list_hash,
539
  ),
14
  * @since 4.0.0
15
  */
16
  class ES_Handle_Subscription {
17
+
18
  /**
19
  * Subscriber Email
20
  *
23
  *
24
  */
25
  public $email;
26
+
27
  /**
28
  * Subscriber Name
29
  *
32
  *
33
  */
34
  public $name;
35
+
36
  /**
37
  * Subscriber First Name
38
  *
41
  *
42
  */
43
  public $first_name;
44
+
45
  /**
46
  * Subscriber Last Name
47
  *
50
  *
51
  */
52
  public $last_name;
53
+
54
  /**
55
  * Optin type
56
  *
86
  *
87
  */
88
  public $es_nonce;
89
+
90
  /**
91
  * Subscriber Status
92
  *
95
  *
96
  */
97
  public $status;
98
+
99
  /**
100
  * To check if double-optin or not
101
  *
104
  *
105
  */
106
  public $is_double_optin = false;
107
+
108
  /**
109
  * Guid
110
  *
113
  *
114
  */
115
  public $guid;
116
+
117
  /**
118
  * Database Id
119
  *
122
  *
123
  */
124
  public $db_id;
125
+
126
  /**
127
  * Form id
128
  *
131
  *
132
  */
133
  public $form_id;
134
+
135
+ /**
136
+ * IP Address
137
+ *
138
+ * @since 4.7.3
139
+ * @var
140
+ *
141
+ */
142
+ public $ip_address;
143
+
144
  /**
145
  * If the user is subscribed from Rainmaker
146
  *
211
  exit;
212
  }
213
 
214
+ $email = ! empty( $form_data['esfpx_email'] ) ? sanitize_email( $form_data['esfpx_email'] ) : '';
215
+ $name = ! empty( $form_data['esfpx_name'] ) ? sanitize_text_field( $form_data['esfpx_name'] ) : '';
216
+ $ip_address = ! empty( $form_data['esfpx_ip_address'] ) ? sanitize_text_field( $form_data['esfpx_ip_address'] ) : '';
217
 
218
  $first_name = '';
219
  $last_name = '';
230
  $this->first_name = $first_name;
231
  $this->last_name = $last_name;
232
  $this->email = $email;
233
+ $this->ip_address = $ip_address;
234
  $this->list_hashes = isset( $form_data['esfpx_lists'] ) ? $form_data['esfpx_lists'] : array();
235
  $this->es_nonce = isset( $form_data['esfpx_es-subscribe'] ) ? trim( $form_data['esfpx_es-subscribe'] ) : '';
236
  $this->form_id = isset( $form_data['esfpx_form_id'] ) ? trim( $form_data['esfpx_form_id'] ) : 0;
267
  $data['form_id'] = $this->form_id;
268
  $data['email'] = $this->email;
269
  $data['hash'] = $this->guid;
270
+ $data['ip_address'] = $this->ip_address;
271
  $data['status'] = 'verified';
272
  $data['hash'] = $this->guid;
273
  $data['created_at'] = ig_get_current_date_time();
548
  $list_hash = ig_es_get_request_data( 'list' );
549
  $list = ES()->lists_db->get_by( 'hash', $list_hash );
550
  if ( ! empty( $list ) ) {
551
+ $list_id = $list['id'];
552
+ $name = ig_es_get_request_data( 'name' );
553
+ $email = ig_es_get_request_data( 'email' );
554
+ $hp_email = ig_es_get_request_data( 'es_hp_email' );
555
+ $ip_address = ig_es_get_request_data( 'ip_address' );
556
 
557
  $form_data = array(
558
  'esfpx_name' => $name,
559
  'esfpx_email' => $email,
560
  'esfpx_es_hp_email' => $hp_email,
561
+ 'esfpx_ip_address' => $ip_address,
562
  'esfpx_lists' => array(
563
  $list_hash,
564
  ),
lite/includes/classes/class-es-import-subscribers.php CHANGED
@@ -811,22 +811,19 @@ class ES_Import_Subscribers {
811
  );
812
  if ( $raw_list_data ) {
813
 
814
- $contacts_data = array();
815
- $gmt_offset_option = get_option( 'gmt_offset' );
816
- $gmt_offset = ig_es_get_gmt_offset( true );
817
- $current_date_time = gmdate( 'Y-m-d H:i:s', time() - $gmt_offset );
818
- $contact_emails = array();
819
- $processed_emails = array();
820
- $list_contact_data = array();
821
- $es_status_mapping = array(
822
  __( 'Subscribed', 'email-subscribers' ) => 'subscribed',
823
  __( 'Unubscribed', 'email-subscribers' ) => 'unsubscribed',
824
  __( 'Unconfirmed', 'email-subscribers' ) => 'unconfirmed',
825
  __( 'Hard Bounced', 'email-subscribers' ) => 'hard_bounced' ,
826
-
827
  );
828
 
829
-
830
  foreach ( $raw_list_data as $raw_list ) {
831
  $raw_list = unserialize( base64_decode( $raw_list ) );
832
  // each entry
@@ -880,7 +877,7 @@ class ES_Import_Subscribers {
880
  $error_data = array();
881
  if ( empty( $insert['email'] ) ) {
882
  $error_data['error_code'] = 'empty';
883
- } else if ( ! is_email( $insert['email'] ) ) {
884
  $error_data['error_code'] = 'invalid';
885
  $error_data['email'] = $insert['email'];
886
  }
@@ -896,7 +893,7 @@ class ES_Import_Subscribers {
896
  }
897
 
898
  $email = sanitize_email( strtolower( $insert['email'] ) );
899
- if ( ! in_array( $email, $processed_emails, true ) ) {
900
  $first_name = isset( $insert['first_name'] ) ? ES_Common::handle_emoji_characters( sanitize_text_field( trim( $insert['first_name'] ) ) ) : '';
901
  $last_name = isset( $insert['last_name'] ) ? ES_Common::handle_emoji_characters( sanitize_text_field( trim( $insert['last_name'] ) ) ) : '';
902
  $list_names = isset( $insert['list_name'] ) ? sanitize_text_field( trim( $insert['list_name'] ) ) : '';
@@ -949,7 +946,6 @@ class ES_Import_Subscribers {
949
  $contacts_data[$email]['hash'] = $guid;
950
  $contacts_data[$email]['created_at'] = $created_at;
951
 
952
- $processed_emails[] = $email;
953
  $bulkdata['imported']++;
954
  } else {
955
  $error_data = array(
@@ -965,16 +961,15 @@ class ES_Import_Subscribers {
965
  $erroremails[] = $error_data;
966
  $bulkdata['errors']++;
967
  }
968
- $contact_emails[] = $email;
969
  }
970
  }
971
 
972
- if ( count( $contact_emails ) > 0 ) {
973
 
974
- $contact_emails = array_unique( $contact_emails );
975
 
976
- $existing_contacts_email_id_map = ES()->contacts_db->get_email_id_map( $processed_emails );
977
- $existing_contacts_count = count( $existing_contacts_email_id_map );
978
  if ( ! empty( $existing_contacts_email_id_map ) ) {
979
  $contacts_data = array_diff_key( $contacts_data, $existing_contacts_email_id_map );
980
  }
@@ -1022,8 +1017,11 @@ class ES_Import_Subscribers {
1022
  $return['html'] .= '<p class="text-base text-gray-600 pt-2 pb-1.5">' . sprintf( esc_html__( '%1$s of %2$s contacts imported', 'email-subscribers' ), '<span class="font-medium">' . number_format_i18n( $bulkdata['imported'] ) . '</span>', '<span class="font-medium">' . number_format_i18n( $bulkdata['lines'] ) . '</span>' ) . '<p>';
1023
 
1024
  if ( $bulkdata['errors'] ) {
1025
- $i = 0;
1026
- $table = '<p class="text-sm text-gray-600 pt-2 pb-1.5">' . esc_html__( 'The following contacts were skipped', 'email-subscribers' ) . ':</p>';
 
 
 
1027
  $table .= '<table class="w-full bg-white rounded-lg shadow overflow-hidden mt-1.5">';
1028
  $table .= '<thead class="rounded-md"><tr class="border-b border-gray-200 bg-gray-50 text-left text-sm leading-4 font-medium text-gray-500 tracking-wider"><th class="pl-4 py-4" width="5%">#</th>';
1029
 
@@ -1061,6 +1059,10 @@ class ES_Import_Subscribers {
1061
  }
1062
  $this->do_cleanup();
1063
  } else {
 
 
 
 
1064
  update_option( 'ig_es_bulk_import', $bulkdata );
1065
  update_option( 'ig_es_bulk_import_errors', $erroremails );
1066
  }
811
  );
812
  if ( $raw_list_data ) {
813
 
814
+ $contacts_data = array();
815
+ $gmt_offset = ig_es_get_gmt_offset( true );
816
+ $current_date_time = gmdate( 'Y-m-d H:i:s', time() - $gmt_offset );
817
+ $current_batch_emails = array();
818
+ $processed_emails = ! empty( $bulkdata['processed_emails'] ) ? $bulkdata['processed_emails'] : array();
819
+ $list_contact_data = array();
820
+ $es_status_mapping = array(
 
821
  __( 'Subscribed', 'email-subscribers' ) => 'subscribed',
822
  __( 'Unubscribed', 'email-subscribers' ) => 'unsubscribed',
823
  __( 'Unconfirmed', 'email-subscribers' ) => 'unconfirmed',
824
  __( 'Hard Bounced', 'email-subscribers' ) => 'hard_bounced' ,
 
825
  );
826
 
 
827
  foreach ( $raw_list_data as $raw_list ) {
828
  $raw_list = unserialize( base64_decode( $raw_list ) );
829
  // each entry
877
  $error_data = array();
878
  if ( empty( $insert['email'] ) ) {
879
  $error_data['error_code'] = 'empty';
880
+ } elseif ( ! is_email( $insert['email'] ) ) {
881
  $error_data['error_code'] = 'invalid';
882
  $error_data['email'] = $insert['email'];
883
  }
893
  }
894
 
895
  $email = sanitize_email( strtolower( $insert['email'] ) );
896
+ if ( ! in_array( $email, $current_batch_emails, true ) && ! in_array( $email, $processed_emails, true ) ) {
897
  $first_name = isset( $insert['first_name'] ) ? ES_Common::handle_emoji_characters( sanitize_text_field( trim( $insert['first_name'] ) ) ) : '';
898
  $last_name = isset( $insert['last_name'] ) ? ES_Common::handle_emoji_characters( sanitize_text_field( trim( $insert['last_name'] ) ) ) : '';
899
  $list_names = isset( $insert['list_name'] ) ? sanitize_text_field( trim( $insert['list_name'] ) ) : '';
946
  $contacts_data[$email]['hash'] = $guid;
947
  $contacts_data[$email]['created_at'] = $created_at;
948
 
 
949
  $bulkdata['imported']++;
950
  } else {
951
  $error_data = array(
961
  $erroremails[] = $error_data;
962
  $bulkdata['errors']++;
963
  }
964
+ $current_batch_emails[] = $email;
965
  }
966
  }
967
 
968
+ if ( count( $current_batch_emails ) > 0 ) {
969
 
970
+ $current_batch_emails = array_unique( $current_batch_emails );
971
 
972
+ $existing_contacts_email_id_map = ES()->contacts_db->get_email_id_map( $current_batch_emails );
 
973
  if ( ! empty( $existing_contacts_email_id_map ) ) {
974
  $contacts_data = array_diff_key( $contacts_data, $existing_contacts_email_id_map );
975
  }
1017
  $return['html'] .= '<p class="text-base text-gray-600 pt-2 pb-1.5">' . sprintf( esc_html__( '%1$s of %2$s contacts imported', 'email-subscribers' ), '<span class="font-medium">' . number_format_i18n( $bulkdata['imported'] ) . '</span>', '<span class="font-medium">' . number_format_i18n( $bulkdata['lines'] ) . '</span>' ) . '<p>';
1018
 
1019
  if ( $bulkdata['errors'] ) {
1020
+ $i = 0;
1021
+ $skipped_contact_string = _n( 'contact was', 'contacts were', $bulkdata['errors'], 'email-subscribers' );
1022
+
1023
+ /* translators: %d Skipped emails count %s Skipped contacts string */
1024
+ $table = '<p class="text-sm text-gray-600 pt-2 pb-1.5">' . __( sprintf( 'The following %d %s skipped', $bulkdata['errors'], $skipped_contact_string ), 'email-subscribers' ) . ':</p>';
1025
  $table .= '<table class="w-full bg-white rounded-lg shadow overflow-hidden mt-1.5">';
1026
  $table .= '<thead class="rounded-md"><tr class="border-b border-gray-200 bg-gray-50 text-left text-sm leading-4 font-medium text-gray-500 tracking-wider"><th class="pl-4 py-4" width="5%">#</th>';
1027
 
1059
  }
1060
  $this->do_cleanup();
1061
  } else {
1062
+ // Add current batch emails into the processed email list
1063
+ $processed_emails = array_merge( $processed_emails, $current_batch_emails );
1064
+ $bulkdata['processed_emails'] = $processed_emails;
1065
+
1066
  update_option( 'ig_es_bulk_import', $bulkdata );
1067
  update_option( 'ig_es_bulk_import_errors', $erroremails );
1068
  }
lite/includes/classes/class-es-mailer.php CHANGED
@@ -493,8 +493,11 @@ if ( ! class_exists( 'ES_Mailer' ) ) {
493
  $content = $this->get_test_email_content();
494
  }
495
 
496
- // Disable
497
- $this->add_unsubscribe_link = false;
 
 
 
498
  $this->add_tracking_pixel = false;
499
 
500
  return $this->send( $subject, $content, $email, $merge_tags );
@@ -607,6 +610,11 @@ if ( ! class_exists( 'ES_Mailer' ) ) {
607
  }
608
  }
609
 
 
 
 
 
 
610
  $subject = $this->prepare_subject( $subject );
611
 
612
  $content = $this->prepare_content( $content, $merge_tags, $nl2br );
493
  $content = $this->get_test_email_content();
494
  }
495
 
496
+ // Disable unsubsribe link if it is not a campaign email.
497
+ if ( empty( $merge_tags['campaign_id'] ) ) {
498
+ $this->add_unsubscribe_link = false;
499
+ }
500
+
501
  $this->add_tracking_pixel = false;
502
 
503
  return $this->send( $subject, $content, $email, $merge_tags );
610
  }
611
  }
612
 
613
+ // If unsubscribe link placeholder already present in the email then don't add it from our end.
614
+ if ( false !== strpos( $content, '{{UNSUBSCRIBE-LINK}}' ) ) {
615
+ $this->add_unsubscribe_link = false;
616
+ }
617
+
618
  $subject = $this->prepare_subject( $subject );
619
 
620
  $content = $this->prepare_content( $content, $merge_tags, $nl2br );
lite/includes/classes/class-es-newsletters.php CHANGED
@@ -378,7 +378,8 @@ class ES_Newsletters {
378
  'quicktags' => true,
379
  'editor_class' => 'wp-editor-boradcast',
380
  );
381
- wp_editor( $body, 'edit-es-boradcast-body', $editor_args );
 
382
  ?>
383
  </div>
384
  <?php do_action( 'ig_es_after_broadcast_left_pan_settings', $broadcast_data ); ?>
378
  'quicktags' => true,
379
  'editor_class' => 'wp-editor-boradcast',
380
  );
381
+ add_filter( 'tiny_mce_before_init', array( 'ES_Common', 'override_tinymce_formatting_options' ), 10, 2 );
382
+ wp_editor( $body, 'edit-es-broadcast-body', $editor_args );
383
  ?>
384
  </div>
385
  <?php do_action( 'ig_es_after_broadcast_left_pan_settings', $broadcast_data ); ?>
lite/includes/classes/class-es-queue.php CHANGED
@@ -712,10 +712,14 @@ if ( ! class_exists( 'ES_Queue' ) ) {
712
  ES()->campaigns_db->update_status( $campaign_id, IG_ES_CAMPAIGN_STATUS_QUEUED );
713
  }
714
 
715
-
716
-
717
- ES_DB_Mailing_Queue::update_sent_status( $notification_guid, 'Sending' );
718
-
 
 
 
 
719
  // Get subscribers from the sending_queue table based on fetched guid
720
  $emails_data = ES_DB_Sending_Queue::get_emails_to_be_sent_by_hash( $notification_guid, $es_c_croncount );
721
  $total_emails = count( $emails_data );
712
  ES()->campaigns_db->update_status( $campaign_id, IG_ES_CAMPAIGN_STATUS_QUEUED );
713
  }
714
 
715
+ // Set status to Sending only if it in the queued status currently.
716
+ if ( 'In Queue' === $notification['status'] ) {
717
+ ES_DB_Mailing_Queue::update_sent_status( $notification_guid, 'Sending' );
718
+ }
719
+
720
+ // Sync mailing queue content with the related campaign.
721
+ $notification = ES_DB_Mailing_Queue::sync_content( $notification );
722
+
723
  // Get subscribers from the sending_queue table based on fetched guid
724
  $emails_data = ES_DB_Sending_Queue::get_emails_to_be_sent_by_hash( $notification_guid, $es_c_croncount );
725
  $total_emails = count( $emails_data );
lite/includes/classes/class-es-reports-data.php CHANGED
@@ -220,13 +220,13 @@ if ( ! class_exists( 'ES_Reports_Data' ) ) {
220
  $data = apply_filters( 'ig_es_reports_data', $data );
221
 
222
  $reports_data = array(
223
- 'total_contacts' => $total_contacts,
224
- 'total_lists' => $total_lists,
225
- 'total_forms' => $total_forms,
226
- 'total_campaigns' => $total_campaigns,
227
- 'total_email_opens' => $total_email_opens,
228
- 'total_message_sent' => $total_message_sent,
229
- 'total_contact_lost' => $total_contact_lost,
230
  'avg_open_rate' => number_format( $avg_open_rate, 2 ),
231
  'avg_click_rate' => number_format( $avg_click_rate, 2 ),
232
  'total_open_rate' => number_format( $total_open_rate, 2 ),
220
  $data = apply_filters( 'ig_es_reports_data', $data );
221
 
222
  $reports_data = array(
223
+ 'total_contacts' => number_format( $total_contacts ),
224
+ 'total_lists' => number_format( $total_lists ),
225
+ 'total_forms' => number_format( $total_forms ),
226
+ 'total_campaigns' => number_format( $total_campaigns ),
227
+ 'total_email_opens' => number_format( $total_email_opens ),
228
+ 'total_message_sent' => number_format( $total_message_sent ),
229
+ 'total_contact_lost' => number_format( $total_contact_lost ),
230
  'avg_open_rate' => number_format( $avg_open_rate, 2 ),
231
  'avg_click_rate' => number_format( $avg_click_rate, 2 ),
232
  'total_open_rate' => number_format( $total_open_rate, 2 ),
lite/includes/classes/class-es-reports-table.php CHANGED
@@ -248,7 +248,7 @@ class ES_Reports_Table extends ES_List_Table {
248
 
249
  // $content = $total_emails_sent . "/" . $total_emails_to_be_sent;
250
 
251
- return $total_emails_to_be_sent;
252
 
253
  }
254
 
248
 
249
  // $content = $total_emails_sent . "/" . $total_emails_to_be_sent;
250
 
251
+ return number_format( $total_emails_to_be_sent );
252
 
253
  }
254
 
lite/includes/classes/class-es-templates-table.php CHANGED
@@ -50,7 +50,7 @@ class ES_Templates_Table {
50
  }
51
 
52
  public function es_template_meta_box_add() {
53
- add_meta_box( 'es_template_meta_box', 'Available Keywords', array( $this, 'es_template_type_meta_box' ), 'es_template', 'normal', 'high' );
54
  }
55
 
56
  public function es_template_type_meta_box( $post ) {
50
  }
51
 
52
  public function es_template_meta_box_add() {
53
+ add_meta_box( 'es_template_meta_box', __( 'Available Keywords', 'email-subscribers' ), array( $this, 'es_template_type_meta_box' ), 'es_template', 'normal', 'high' );
54
  }
55
 
56
  public function es_template_type_meta_box( $post ) {
lite/includes/classes/class-es-tools.php CHANGED
@@ -37,22 +37,23 @@ class ES_Tools {
37
 
38
  $response = array();
39
 
40
- $email = sanitize_email( ig_es_get_request_data( 'es_test_email' ) );
41
-
42
- $subject = ig_es_get_data( $_POST, 'subject', '', true );
43
- $content = wp_kses_post( ig_es_get_request_data( 'content', '', false ) );
 
 
44
 
45
  if ( ! empty( $email ) ) {
46
 
47
- if ( ! empty( $content ) ) {
48
- $content = str_replace( '{{EMAIL}}', 'User Email', $content );
49
- $content = str_replace( '{{NAME}}', 'Username', $content );
50
- }
51
-
52
- $attachments = ig_es_get_data( $_POST, 'attachments', array() );
53
-
54
  $merge_tags = array( 'attachments' => $attachments );
55
-
 
 
 
 
 
 
56
  $response = ES()->mailer->send_test_email( $email, $subject, $content, $merge_tags );
57
 
58
  if ( $response && 'SUCCESS' === $response['status'] ) {
37
 
38
  $response = array();
39
 
40
+ $email = sanitize_email( ig_es_get_request_data( 'es_test_email' ) );
41
+ $campaign_id = ig_es_get_data( $_POST, 'campaign_id', 0 );
42
+ $template_id = ig_es_get_data( $_POST, 'template_id', 0 );
43
+ $subject = ig_es_get_data( $_POST, 'subject', '', true );
44
+ $content = ig_es_get_request_data( 'content', '', false );
45
+ $attachments = ig_es_get_data( $_POST, 'attachments', array() );
46
 
47
  if ( ! empty( $email ) ) {
48
 
 
 
 
 
 
 
 
49
  $merge_tags = array( 'attachments' => $attachments );
50
+
51
+ if ( ! empty( $campaign_id ) ) {
52
+ $merge_tags['campaign_id'] = $campaign_id;
53
+ }
54
+
55
+ $content = ES_Common::es_process_template_body( $content, $template_id, $campaign_id );
56
+
57
  $response = ES()->mailer->send_test_email( $email, $subject, $content, $merge_tags );
58
 
59
  if ( $response && 'SUCCESS' === $response['status'] ) {
lite/includes/db/class-es-db-contacts.php CHANGED
@@ -954,9 +954,13 @@ class ES_DB_Contacts extends ES_DB {
954
  $data['ip_address'] = '';
955
  $data['country_code'] = '';
956
  } else {
957
- if ( empty( $data['ip_address'] ) && ! in_array( $data['source'], $source ) ) {
 
958
  $data = apply_filters( 'ig_es_get_subscriber_ip', $data, 'ip_address' );
959
- $data = apply_filters( 'ig_es_get_country_based_on_ip', $data );
 
 
 
960
  }
961
  }
962
  return parent::insert( $data, $type );
954
  $data['ip_address'] = '';
955
  $data['country_code'] = '';
956
  } else {
957
+
958
+ if ( empty( $data['ip_address'] ) && ! in_array( $data['source'], $source, true ) ) {
959
  $data = apply_filters( 'ig_es_get_subscriber_ip', $data, 'ip_address' );
960
+ }
961
+
962
+ if ( ! empty( $data['ip_address'] ) ) {
963
+ $data = apply_filters( 'ig_es_get_country_based_on_ip', $data );
964
  }
965
  }
966
  return parent::insert( $data, $type );
lite/includes/db/class-es-db-mailing-queue.php CHANGED
@@ -78,7 +78,7 @@ class ES_DB_Mailing_Queue {
78
  }
79
 
80
  public static function get_notification_to_be_sent( $campaign_hash = '' ) {
81
- global $wpdb, $wpbd;
82
 
83
  $notification = array();
84
 
@@ -106,31 +106,54 @@ class ES_DB_Mailing_Queue {
106
 
107
  if ( count( $results ) > 0 ) {
108
  $notification = array_shift( $results );
109
- // refresh content
110
- $meta = maybe_unserialize( $notification['meta'] );
 
 
 
 
 
 
 
 
 
 
 
 
 
111
 
 
 
 
112
  if ( ! empty( $meta ) ) {
 
113
  $filter = 'ig_es_refresh_' . $meta['type'] . '_content';
114
  $post_id = ! empty( $meta['post_id'] ) ? $meta['post_id'] : 0;
115
  $content = array();
116
  $content = apply_filters( $filter, $content, array( 'campaign_id' => $notification['campaign_id'], 'post_id' => $post_id ) );
 
 
117
  if ( ! empty( $content ) ) {
 
 
118
  $notification['subject'] = ! empty( $content['subject'] ) ? $content['subject'] : $notification['subject'];
119
  $notification['body'] = ! empty( $content['body'] ) ? $content['body'] : $notification['body'];
120
- $query_sub_str = " , subject = '" . esc_sql( $notification['subject'] ) . "', body = '" . esc_sql( $notification['body'] ) . "' ";
 
 
 
 
 
 
 
 
 
 
121
  }
122
  }
123
- //update sent date
124
- $currentdate = ig_get_current_date_time();
125
- $query_str = "UPDATE {$ig_mailing_queue_table} SET start_at = %s ";
126
- $where = ' WHERE hash = %s AND finish_at = %s';
127
- $query_str = ! empty( $query_sub_str ) ? $query_str . $query_sub_str . $where : $query_str . $where;
128
- $query = $wpbd->prepare( $query_str, array( $currentdate, $notification['hash'], '0000-00-00 00:00:00' ) );
129
- $return_id = $wpbd->query( $query );
130
  }
131
 
132
  return $notification;
133
-
134
  }
135
 
136
  // Query to insert sent emails (cron) records in table: es_sentdetails
@@ -149,6 +172,16 @@ class ES_DB_Mailing_Queue {
149
  $hash
150
  )
151
  );
 
 
 
 
 
 
 
 
 
 
152
  } else {
153
  $return_id = $wpdb->query(
154
  $wpdb->prepare(
78
  }
79
 
80
  public static function get_notification_to_be_sent( $campaign_hash = '' ) {
81
+ global $wpdb;
82
 
83
  $notification = array();
84
 
106
 
107
  if ( count( $results ) > 0 ) {
108
  $notification = array_shift( $results );
109
+
110
+ }
111
+
112
+ return $notification;
113
+
114
+ }
115
+
116
+ /**
117
+ * Sync mailing queue content with campaign content
118
+ *
119
+ * @param array $notification
120
+ *
121
+ * @since 4.7.3
122
+ */
123
+ public static function sync_content( $notification = array() ) {
124
 
125
+ if ( ! empty( $notification ) ) {
126
+
127
+ $meta = maybe_unserialize( $notification['meta'] );
128
  if ( ! empty( $meta ) ) {
129
+
130
  $filter = 'ig_es_refresh_' . $meta['type'] . '_content';
131
  $post_id = ! empty( $meta['post_id'] ) ? $meta['post_id'] : 0;
132
  $content = array();
133
  $content = apply_filters( $filter, $content, array( 'campaign_id' => $notification['campaign_id'], 'post_id' => $post_id ) );
134
+
135
+ // Update mailing queue with updated content data.
136
  if ( ! empty( $content ) ) {
137
+ global $wpdb;
138
+
139
  $notification['subject'] = ! empty( $content['subject'] ) ? $content['subject'] : $notification['subject'];
140
  $notification['body'] = ! empty( $content['body'] ) ? $content['body'] : $notification['body'];
141
+
142
+ $wpdb->query(
143
+ $wpdb->prepare(
144
+ "UPDATE {$wpdb->prefix}ig_mailing_queue SET subject = %s, body = %s WHERE hash = %s",
145
+ array(
146
+ esc_sql( $notification['subject'] ),
147
+ esc_sql( $notification['body'] ),
148
+ $notification['hash'],
149
+ )
150
+ )
151
+ );
152
  }
153
  }
 
 
 
 
 
 
 
154
  }
155
 
156
  return $notification;
 
157
  }
158
 
159
  // Query to insert sent emails (cron) records in table: es_sentdetails
172
  $hash
173
  )
174
  );
175
+ } elseif ( 'Sending' === $status ) {
176
+ $current_date_time = ig_get_current_date_time();
177
+ $return_id = $wpdb->query(
178
+ $wpdb->prepare(
179
+ "UPDATE {$wpdb->prefix}ig_mailing_queue SET status = %s, start_at = %s WHERE hash = %s",
180
+ $status,
181
+ $current_date_time,
182
+ $hash
183
+ )
184
+ );
185
  } else {
186
  $return_id = $wpdb->query(
187
  $wpdb->prepare(
lite/includes/db/class-es-db.php CHANGED
@@ -71,31 +71,35 @@ abstract class ES_DB {
71
  /**
72
  * Retrieve a row by the primary key
73
  *
74
- * @param $row_id
75
  * @param string $output
 
76
  *
77
- * @return bool|mixed
78
  *
79
  * @since 4.0.0
 
 
80
  */
81
- public function get( $row_id, $output = ARRAY_A ) {
82
 
83
  global $wpbd;
84
 
85
  $query = $wpbd->prepare( "SELECT * FROM $this->table_name WHERE $this->primary_key = %s LIMIT 1;", $row_id );
86
 
87
- // Considering $output also while considering key generation
88
- $cache_key = $this->generate_cache_key( $query . $output );
89
-
90
- $found = false;
91
 
92
- $result = $this->get_cache( $cache_key, $found );
93
-
94
- if ( ! $found ) {
95
 
 
 
 
 
 
 
96
  $result = $wpbd->get_row( $query, $output );
97
-
98
- $this->set_cache( $cache_key, $result );
99
  }
100
 
101
  return $result;
@@ -107,28 +111,35 @@ abstract class ES_DB {
107
  * @param $column
108
  * @param $row_id
109
  * @param string $output
 
110
  *
111
  * @return false|mixed
112
  *
113
  * @since 4.0.0
 
 
114
  */
115
- public function get_by( $column, $row_id, $output = ARRAY_A ) {
116
  global $wpbd;
117
  $column = esc_sql( $column );
118
 
119
  $query = $wpbd->prepare( "SELECT * FROM $this->table_name WHERE $column = %s LIMIT 1;", $row_id );
120
 
121
- // Consider $output also while generating cache key
122
- $cache_key = $this->generate_cache_key( $query . $output );
123
 
124
- $found = false;
 
125
 
126
- $result = $this->get_cache( $cache_key, $found );
127
 
128
- if ( ! $found ) {
129
- $result = $wpbd->get_row( $query, $output );
130
 
131
- $this->set_cache( $cache_key, $result );
 
 
 
 
 
132
  }
133
 
134
  return $result;
@@ -138,10 +149,16 @@ abstract class ES_DB {
138
  * Get rows by conditions
139
  *
140
  * @param string $where
 
 
141
  *
142
- * @since 4.2.1
 
 
 
 
143
  */
144
- public function get_by_conditions( $where = '', $output = ARRAY_A ) {
145
  global $wpbd;
146
 
147
  $query = "SELECT * FROM $this->table_name";
@@ -150,17 +167,23 @@ abstract class ES_DB {
150
  $query .= " WHERE $where";
151
  }
152
 
153
- // Consider $output also while generating cache key
154
- $cache_key = $this->generate_cache_key( $query . $output );
155
 
156
- $found = false;
157
 
158
- $result = $this->get_cache( $cache_key, $found );
 
159
 
160
- if ( ! $found ) {
161
- $result = $wpbd->get_results( $query, $output );
 
 
 
 
162
 
163
- $this->set_cache( $cache_key, $result );
 
 
 
164
  }
165
 
166
  return $result;
@@ -180,14 +203,17 @@ abstract class ES_DB {
180
  /**
181
  * Retrieve a specific column's value by the primary key
182
  *
183
- * @param $column
184
- * @param $row_id
 
185
  *
186
  * @return null|string|array
187
  *
188
  * @since 4.0.0
 
 
189
  */
190
- public function get_column( $column, $row_id = 0 ) {
191
  global $wpbd;
192
 
193
  $column = esc_sql( $column );
@@ -198,20 +224,30 @@ abstract class ES_DB {
198
  $query = "SELECT $column FROM $this->table_name";
199
  }
200
 
201
- $cache_key = $this->generate_cache_key( $query );
202
 
203
- $found = false;
204
 
205
- $result = $this->get_cache( $cache_key, $found );
 
 
 
 
 
 
 
 
 
 
 
 
 
206
 
207
- if ( ! $found ) {
208
  if ( $row_id ) {
209
  $result = $wpbd->get_var( $query );
210
  } else {
211
  $result = $wpbd->get_col( $query );
212
  }
213
-
214
- $this->set_cache( $cache_key, $result );
215
  }
216
 
217
  return $result;
@@ -220,21 +256,26 @@ abstract class ES_DB {
220
  /**
221
  * Retrieve a specific column's value by the the specified column / value
222
  *
223
- * @param $column
224
- * @param $column_where
225
- * @param $column_value
226
  * @param bool $only_one
 
227
  *
228
  * @return array|string|null
229
  *
230
  * @since 4.0.0
231
- * @since 4.3.4 Added support to retrieve whole column
 
 
 
232
  */
233
- public function get_column_by( $column, $column_where, $column_value, $only_one = true ) {
234
  global $wpbd;
235
 
236
  $column_where = esc_sql( $column_where );
237
- $column = esc_sql( $column );
 
238
 
239
  if ( $only_one ) {
240
  $query = $wpbd->prepare( "SELECT $column FROM $this->table_name WHERE $column_where = %s LIMIT 1;", $column_value );
@@ -242,20 +283,31 @@ abstract class ES_DB {
242
  $query = $wpbd->prepare( "SELECT $column FROM $this->table_name WHERE $column_where = %s;", $column_value );
243
  }
244
 
245
- $cache_key = $this->generate_cache_key( $query );
 
 
 
 
246
 
247
- $found = false;
248
 
249
- $result = $this->get_cache( $cache_key, $found );
 
 
 
 
 
 
 
 
 
 
250
 
251
- if ( ! $found ) {
252
  if ( $only_one ) {
253
  $result = $wpbd->get_var( $query );
254
  } else {
255
  $result = $wpbd->get_col( $query );
256
  }
257
-
258
- $this->set_cache( $cache_key, $result );
259
  }
260
 
261
  return $result;
@@ -264,14 +316,17 @@ abstract class ES_DB {
264
  /**
265
  * Get column based on where condition
266
  *
267
- * @param $column
268
  * @param string $where
 
269
  *
270
  * @return array
271
  *
272
  * @since 4.3.5
 
 
273
  */
274
- public function get_column_by_condition( $column, $where = '' ) {
275
  global $wpbd;
276
 
277
  $column = esc_sql( $column );
@@ -281,16 +336,22 @@ abstract class ES_DB {
281
  $query .= " WHERE $where";
282
  }
283
 
284
- $cache_key = $this->generate_cache_key( $query );
285
 
286
- $found = false;
287
 
288
- $result = $this->get_cache( $cache_key, $found );
289
 
290
- if ( ! $found ) {
291
- $result = $wpbd->get_col( $query );
292
 
293
- $this->set_cache( $cache_key, $result );
 
 
 
 
 
 
 
294
  }
295
 
296
  return $result;
@@ -301,12 +362,16 @@ abstract class ES_DB {
301
  *
302
  * @param array $columns
303
  * @param string $where
 
 
304
  *
305
  * @return array|object|null
306
  *
307
  * @since 4.3.5
 
 
308
  */
309
- public function get_columns_by_condition( $columns = array(), $where = '', $output = ARRAY_A ) {
310
  global $wpbd;
311
 
312
  if ( ! is_array( $columns ) ) {
@@ -322,17 +387,21 @@ abstract class ES_DB {
322
  $query .= " WHERE $where";
323
  }
324
 
325
- // Consider $output also while generating cache key
326
- $cache_key = $this->generate_cache_key( $query . $output );
 
327
 
328
- $found = false;
329
 
330
- $result = $this->get_cache( $cache_key, $found );
331
 
332
- if ( ! $found ) {
333
- $result = $wpbd->get_results( $query, $output );
334
 
335
- $this->set_cache( $cache_key, $result );
 
 
 
336
  }
337
 
338
  return $result;
@@ -532,11 +601,16 @@ abstract class ES_DB {
532
  /**
533
  * Get total count
534
  *
 
 
 
535
  * @return string|null
536
  *
537
  * @since 4.2.1
 
 
538
  */
539
- public function count( $where = '' ) {
540
  global $wpbd;
541
 
542
  $query = "SELECT count(*) FROM $this->table_name";
@@ -545,16 +619,21 @@ abstract class ES_DB {
545
  $query .= " WHERE $where";
546
  }
547
 
548
- $cache_key = $this->generate_cache_key( $query );
549
 
550
- $found = false;
551
 
552
- $result = $this->get_cache( $cache_key, $found );
553
 
554
- if ( ! $found ) {
555
- $result = $wpbd->get_var( $query );
 
 
556
 
557
- $this->set_cache( $cache_key, $result );
 
 
 
558
  }
559
 
560
  return $result;
@@ -563,14 +642,14 @@ abstract class ES_DB {
563
  /**
564
  * Insert data into bulk
565
  *
566
- * @param $values
567
  * @param int $length
568
- * @param string $type
569
  *
570
  * @since 4.2.1
 
571
  * @since 4.3.5 Fixed issues and started using it.
572
  */
573
- public function bulk_insert( $values, $length = 100 ) {
574
  global $wpbd;
575
 
576
  if ( ! is_array( $values ) ) {
71
  /**
72
  * Retrieve a row by the primary key
73
  *
74
+ * @param int $row_id
75
  * @param string $output
76
+ * @param false $use_cache
77
  *
78
+ * @return false|mixed
79
  *
80
  * @since 4.0.0
81
+ *
82
+ * @modified 4.7.3 Added support to retrieve data from cache
83
  */
84
+ public function get( $row_id = 0, $output = ARRAY_A, $use_cache = false ) {
85
 
86
  global $wpbd;
87
 
88
  $query = $wpbd->prepare( "SELECT * FROM $this->table_name WHERE $this->primary_key = %s LIMIT 1;", $row_id );
89
 
90
+ if ( true === $use_cache ) {
91
+ // Considering $output also while considering key generation
92
+ $cache_key = $this->generate_cache_key( $query . $output );
 
93
 
94
+ $found = false;
 
 
95
 
96
+ $result = $this->get_cache( $cache_key, $found );
97
+ if ( ! $found ) {
98
+ $result = $wpbd->get_row( $query, $output );
99
+ $this->set_cache( $cache_key, $result );
100
+ }
101
+ } else {
102
  $result = $wpbd->get_row( $query, $output );
 
 
103
  }
104
 
105
  return $result;
111
  * @param $column
112
  * @param $row_id
113
  * @param string $output
114
+ * @param false $use_cache
115
  *
116
  * @return false|mixed
117
  *
118
  * @since 4.0.0
119
+ *
120
+ * @modified 4.7.3 Added support to retrieve data from cache
121
  */
122
+ public function get_by( $column, $row_id, $output = ARRAY_A, $use_cache = false ) {
123
  global $wpbd;
124
  $column = esc_sql( $column );
125
 
126
  $query = $wpbd->prepare( "SELECT * FROM $this->table_name WHERE $column = %s LIMIT 1;", $row_id );
127
 
128
+ if ( true === $use_cache ) {
 
129
 
130
+ // Consider $output also while generating cache key
131
+ $cache_key = $this->generate_cache_key( $query . $output );
132
 
133
+ $found = false;
134
 
135
+ $result = $this->get_cache( $cache_key, $found );
 
136
 
137
+ if ( ! $found ) {
138
+ $result = $wpbd->get_row( $query, $output );
139
+ $this->set_cache( $cache_key, $result );
140
+ }
141
+ } else {
142
+ $result = $wpbd->get_row( $query, $output );
143
  }
144
 
145
  return $result;
149
  * Get rows by conditions
150
  *
151
  * @param string $where
152
+ * @param string $output
153
+ * @param false $use_cache
154
  *
155
+ * @return false|mixed
156
+ *
157
+ * @since 4.2.4
158
+ *
159
+ * @modfiy 4.7.3 Added support to retrieve data from cache
160
  */
161
+ public function get_by_conditions( $where = '', $output = ARRAY_A, $use_cache = false ) {
162
  global $wpbd;
163
 
164
  $query = "SELECT * FROM $this->table_name";
167
  $query .= " WHERE $where";
168
  }
169
 
 
 
170
 
171
+ if ( true === $use_cache ) {
172
 
173
+ // Consider $output also while generating cache key
174
+ $cache_key = $this->generate_cache_key( $query . $output );
175
 
176
+ $found = false;
177
+
178
+ $result = $this->get_cache( $cache_key, $found );
179
+
180
+ if ( ! $found ) {
181
+ $result = $wpbd->get_results( $query, $output );
182
 
183
+ $this->set_cache( $cache_key, $result );
184
+ }
185
+ } else {
186
+ $result = $wpbd->get_results( $query, $output );
187
  }
188
 
189
  return $result;
203
  /**
204
  * Retrieve a specific column's value by the primary key
205
  *
206
+ * @param string $column
207
+ * @param int $row_id
208
+ * @param bool $use_cache
209
  *
210
  * @return null|string|array
211
  *
212
  * @since 4.0.0
213
+ *
214
+ * @since 4.7.3
215
  */
216
+ public function get_column( $column = '', $row_id = 0, $use_cache = false ) {
217
  global $wpbd;
218
 
219
  $column = esc_sql( $column );
224
  $query = "SELECT $column FROM $this->table_name";
225
  }
226
 
227
+ if ( true === $use_cache ) {
228
 
229
+ $cache_key = $this->generate_cache_key( $query );
230
 
231
+ $found = false;
232
+
233
+ $result = $this->get_cache( $cache_key, $found );
234
+
235
+ if ( ! $found ) {
236
+ if ( $row_id ) {
237
+ $result = $wpbd->get_var( $query );
238
+ } else {
239
+ $result = $wpbd->get_col( $query );
240
+ }
241
+
242
+ $this->set_cache( $cache_key, $result );
243
+ }
244
+ } else {
245
 
 
246
  if ( $row_id ) {
247
  $result = $wpbd->get_var( $query );
248
  } else {
249
  $result = $wpbd->get_col( $query );
250
  }
 
 
251
  }
252
 
253
  return $result;
256
  /**
257
  * Retrieve a specific column's value by the the specified column / value
258
  *
259
+ * @param string $column
260
+ * @param string $column_where
261
+ * @param string $column_value
262
  * @param bool $only_one
263
+ * @param bool $use_cache
264
  *
265
  * @return array|string|null
266
  *
267
  * @since 4.0.0
268
+ *
269
+ * @modified 4.3.4 Added support to retrieve whole column
270
+ *
271
+ * @modified 4.7.3 Added support to retrieve data from cache
272
  */
273
+ public function get_column_by( $column = '', $column_where = '', $column_value = '', $only_one = true, $use_cache = false ) {
274
  global $wpbd;
275
 
276
  $column_where = esc_sql( $column_where );
277
+
278
+ $column = esc_sql( $column );
279
 
280
  if ( $only_one ) {
281
  $query = $wpbd->prepare( "SELECT $column FROM $this->table_name WHERE $column_where = %s LIMIT 1;", $column_value );
283
  $query = $wpbd->prepare( "SELECT $column FROM $this->table_name WHERE $column_where = %s;", $column_value );
284
  }
285
 
286
+ if ( true === $use_cache ) {
287
+
288
+ $cache_key = $this->generate_cache_key( $query );
289
+
290
+ $found = false;
291
 
292
+ $result = $this->get_cache( $cache_key, $found );
293
 
294
+ if ( ! $found ) {
295
+
296
+ if ( $only_one ) {
297
+ $result = $wpbd->get_var( $query );
298
+ } else {
299
+ $result = $wpbd->get_col( $query );
300
+ }
301
+
302
+ $this->set_cache( $cache_key, $result );
303
+ }
304
+ } else {
305
 
 
306
  if ( $only_one ) {
307
  $result = $wpbd->get_var( $query );
308
  } else {
309
  $result = $wpbd->get_col( $query );
310
  }
 
 
311
  }
312
 
313
  return $result;
316
  /**
317
  * Get column based on where condition
318
  *
319
+ * @param string $column
320
  * @param string $where
321
+ * @param bool $use_cache
322
  *
323
  * @return array
324
  *
325
  * @since 4.3.5
326
+ *
327
+ * @modified 4.7.3 Added support to retrieve data from cache
328
  */
329
+ public function get_column_by_condition( $column = '', $where = '', $use_cache = false ) {
330
  global $wpbd;
331
 
332
  $column = esc_sql( $column );
336
  $query .= " WHERE $where";
337
  }
338
 
339
+ if ( true === $use_cache ) {
340
 
341
+ $cache_key = $this->generate_cache_key( $query );
342
 
343
+ $found = false;
344
 
345
+ $result = $this->get_cache( $cache_key, $found );
 
346
 
347
+ if ( ! $found ) {
348
+ $result = $wpbd->get_col( $query );
349
+
350
+ $this->set_cache( $cache_key, $result );
351
+ }
352
+
353
+ } else {
354
+ $result = $wpbd->get_col( $query );
355
  }
356
 
357
  return $result;
362
  *
363
  * @param array $columns
364
  * @param string $where
365
+ * @param string $output
366
+ * @param bool $use_cache
367
  *
368
  * @return array|object|null
369
  *
370
  * @since 4.3.5
371
+ *
372
+ * @modified 4.7.3 Added support to retrieve data from cache
373
  */
374
+ public function get_columns_by_condition( $columns = array(), $where = '', $output = ARRAY_A, $use_cache = false ) {
375
  global $wpbd;
376
 
377
  if ( ! is_array( $columns ) ) {
387
  $query .= " WHERE $where";
388
  }
389
 
390
+ if ( true === $use_cache ) {
391
+ // Consider $output also while generating cache key
392
+ $cache_key = $this->generate_cache_key( $query . $output );
393
 
394
+ $found = false;
395
 
396
+ $result = $this->get_cache( $cache_key, $found );
397
 
398
+ if ( ! $found ) {
399
+ $result = $wpbd->get_results( $query, $output );
400
 
401
+ $this->set_cache( $cache_key, $result );
402
+ }
403
+ } else {
404
+ $result = $wpbd->get_results( $query, $output );
405
  }
406
 
407
  return $result;
601
  /**
602
  * Get total count
603
  *
604
+ * @param string $where
605
+ * @param bool $use_cache
606
+ *
607
  * @return string|null
608
  *
609
  * @since 4.2.1
610
+ *
611
+ * @modified 4.7.3 Added support to retrieve data from cache
612
  */
613
+ public function count( $where = '', $use_cache = false ) {
614
  global $wpbd;
615
 
616
  $query = "SELECT count(*) FROM $this->table_name";
619
  $query .= " WHERE $where";
620
  }
621
 
622
+ if ( true === $use_cache ) {
623
 
624
+ $cache_key = $this->generate_cache_key( $query );
625
 
626
+ $found = false;
627
 
628
+ $result = $this->get_cache( $cache_key, $found );
629
+
630
+ if ( ! $found ) {
631
+ $result = $wpbd->get_var( $query );
632
 
633
+ $this->set_cache( $cache_key, $result );
634
+ }
635
+ } else {
636
+ $result = $wpbd->get_var( $query );
637
  }
638
 
639
  return $result;
642
  /**
643
  * Insert data into bulk
644
  *
645
+ * @param array $values
646
  * @param int $length
 
647
  *
648
  * @since 4.2.1
649
+ *
650
  * @since 4.3.5 Fixed issues and started using it.
651
  */
652
+ public function bulk_insert( $values = array(), $length = 100 ) {
653
  global $wpbd;
654
 
655
  if ( ! is_array( $values ) ) {
lite/includes/es-core-functions.php CHANGED
@@ -855,11 +855,11 @@ if ( ! function_exists( 'ig_es_allowed_css_style' ) ) {
855
  * Allow CSS style in WP Kses
856
  *
857
  * @since 4.5.4
 
 
858
  */
859
  function ig_es_allowed_css_style( $default_allowed_attr ) {
860
- $custom_allowed_css = array('display', 'opacity');
861
- $allowed_attr = array_merge( $default_allowed_attr, $custom_allowed_css );
862
- return $allowed_attr;
863
  }
864
  }
865
 
855
  * Allow CSS style in WP Kses
856
  *
857
  * @since 4.5.4
858
+ *
859
+ * @since 4.7.3 Returns empty array to whitelist all CSS properties.
860
  */
861
  function ig_es_allowed_css_style( $default_allowed_attr ) {
862
+ return array(); // Return empty array to whitelist all CSS properties.
 
 
863
  }
864
  }
865
 
lite/includes/pro-features.php CHANGED
@@ -1528,7 +1528,7 @@ function ig_es_view_additional_reports_data() {
1528
  */
1529
  function ig_es_upsell_add_attachment_feature( $editor_id ) {
1530
 
1531
- if ( 'edit-es-boradcast-body' === $editor_id ) {
1532
  if ( ES()->can_upsell_features( array( 'lite', 'starter', 'trial' ) ) ) {
1533
  ?>
1534
  <div class="ig-es-attachments-wrapper bg-white inline-block">
1528
  */
1529
  function ig_es_upsell_add_attachment_feature( $editor_id ) {
1530
 
1531
+ if ( 'edit-es-broadcast-body' === $editor_id ) {
1532
  if ( ES()->can_upsell_features( array( 'lite', 'starter', 'trial' ) ) ) {
1533
  ?>
1534
  <div class="ig-es-attachments-wrapper bg-white inline-block">
lite/languages/email-subscribers.pot CHANGED
@@ -2,14 +2,14 @@
2
  # This file is distributed under the same license as the Email Subscribers & Newsletters plugin.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Email Subscribers & Newsletters 4.7.2\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/email-subscribers\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "POT-Creation-Date: 2021-05-12T06:15:19+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.4.0\n"
15
  "X-Domain: email-subscribers\n"
@@ -256,7 +256,7 @@ msgid "Broadcast"
256
  msgstr ""
257
 
258
  #: lite/admin/class-email-subscribers-admin.php:314
259
- #: lite/includes/classes/class-es-newsletters.php:427
260
  #: lite/includes/classes/class-es-reports-table.php:472
261
  msgid "Template Preview"
262
  msgstr ""
@@ -295,11 +295,11 @@ msgid "Go To Icegram"
295
  msgstr ""
296
 
297
  #. translators: 1. WordPress URL 2. Email Subscribers version 3. Icegram site URL
298
- #: lite/admin/class-email-subscribers-admin.php:884
299
  msgid "<span id=\"footer-thankyou\">Thank you for creating with <a href=\"%1$s\" target=\"_blank\">WordPress</a> | Email Subscribers <b>%2$s</b>. Developed by team <a href=\"%3$s\" target=\"_blank\">Icegram</a></span>"
300
  msgstr ""
301
 
302
- #: lite/admin/class-email-subscribers-admin.php:912
303
  msgid "Something went wrong"
304
  msgstr ""
305
 
@@ -314,11 +314,10 @@ msgstr ""
314
  #: lite/admin/class-ig-es-campaign-rules.php:184
315
  #: lite/admin/class-ig-es-campaign-rules.php:257
316
  #: lite/admin/class-ig-es-campaign-rules.php:259
317
- #: lite/admin/class-ig-es-campaign-rules.php:429
318
- #: lite/admin/class-ig-es-campaign-rules.php:513
319
- #: lite/admin/class-ig-es-campaign-rules.php:518
320
  #: lite/admin/class-ig-es-campaign-rules.php:524
321
- #: lite/admin/class-ig-es-campaign-rules.php:558
 
 
322
  msgid "or"
323
  msgstr ""
324
 
@@ -330,6 +329,10 @@ msgstr ""
330
  msgid "Campaign Rules"
331
  msgstr ""
332
 
 
 
 
 
333
  #: lite/admin/class-ig-es-campaign-rules.php:211
334
  msgid "Save Rules"
335
  msgstr ""
@@ -343,8 +346,8 @@ msgid "Total recipients"
343
  msgstr ""
344
 
345
  #: lite/admin/class-ig-es-campaign-rules.php:248
346
- #: lite/admin/class-ig-es-campaign-rules.php:418
347
- #: lite/admin/class-ig-es-campaign-rules.php:555
348
  msgid "and"
349
  msgstr ""
350
 
@@ -358,7 +361,7 @@ msgid "remove condition"
358
  msgstr ""
359
 
360
  #: lite/admin/class-ig-es-campaign-rules.php:342
361
- #: lite/admin/class-ig-es-campaign-rules.php:716
362
  msgid "Any campaign"
363
  msgstr ""
364
 
@@ -368,7 +371,7 @@ msgid "no title"
368
  msgstr ""
369
 
370
  #: lite/admin/class-ig-es-campaign-rules.php:361
371
- #: lite/admin/class-ig-es-campaign-rules.php:742
372
  msgid "Any list"
373
  msgstr ""
374
 
@@ -376,31 +379,39 @@ msgstr ""
376
  msgid "No campaigns available"
377
  msgstr ""
378
 
379
- #: lite/admin/class-ig-es-campaign-rules.php:504
 
 
 
 
 
 
 
 
380
  msgctxt "opening curly double quote"
381
  msgid "&#8220;"
382
  msgstr ""
383
 
384
- #: lite/admin/class-ig-es-campaign-rules.php:505
385
  msgctxt "closing curly double quote"
386
  msgid "&#8221;"
387
  msgstr ""
388
 
389
- #: lite/admin/class-ig-es-campaign-rules.php:576
390
  msgid "is in List"
391
  msgstr ""
392
 
393
- #: lite/admin/class-ig-es-campaign-rules.php:593
394
  #: lite/includes/classes/class-es-admin-settings.php:199
395
- #: lite/includes/classes/class-es-campaign-report.php:179
396
  #: lite/includes/classes/class-es-contacts-table.php:780
397
  #: lite/includes/classes/class-es-contacts-table.php:1042
398
  #: lite/includes/classes/class-es-export-subscribers.php:339
399
  #: lite/includes/classes/class-es-forms-table.php:393
400
  #: lite/includes/classes/class-es-import-subscribers.php:557
401
  #: lite/includes/classes/class-es-import-subscribers.php:648
402
- #: lite/includes/classes/class-es-import-subscribers.php:1040
403
- #: lite/includes/classes/class-es-import-subscribers.php:1175
404
  #: lite/includes/pro-features.php:901
405
  #: lite/includes/pro-features.php:1432
406
  #: lite/includes/workflows/actions/abstracts/class-ig-es-action-send-email-abstract.php:29
@@ -411,7 +422,7 @@ msgstr ""
411
  msgid "Email"
412
  msgstr ""
413
 
414
- #: lite/admin/class-ig-es-campaign-rules.php:594
415
  #: lite/includes/pro-features.php:1181
416
  #: lite/includes/pro-features.php:1431
417
  #: pro/classes/class-es-pro-campaign-rules.php:38
@@ -419,121 +430,121 @@ msgstr ""
419
  msgid "Country"
420
  msgstr ""
421
 
422
- #: lite/admin/class-ig-es-campaign-rules.php:607
423
  #: pro/classes/class-es-pro-campaign-rules.php:43
424
  msgid "has received"
425
  msgstr ""
426
 
427
- #: lite/admin/class-ig-es-campaign-rules.php:608
428
  #: pro/classes/class-es-pro-campaign-rules.php:46
429
  msgid "has not received"
430
  msgstr ""
431
 
432
- #: lite/admin/class-ig-es-campaign-rules.php:609
433
  #: pro/classes/class-es-pro-campaign-rules.php:49
434
  msgid "has received and opened"
435
  msgstr ""
436
 
437
- #: lite/admin/class-ig-es-campaign-rules.php:610
438
  #: pro/classes/class-es-pro-campaign-rules.php:52
439
  msgid "has received but not opened"
440
  msgstr ""
441
 
442
- #: lite/admin/class-ig-es-campaign-rules.php:611
443
  #: pro/classes/class-es-pro-campaign-rules.php:55
444
  msgid "has received and clicked"
445
  msgstr ""
446
 
447
- #: lite/admin/class-ig-es-campaign-rules.php:612
448
  #: pro/classes/class-es-pro-campaign-rules.php:58
449
  msgid "has received and not clicked"
450
  msgstr ""
451
 
452
- #: lite/admin/class-ig-es-campaign-rules.php:624
453
  msgid "Any of the Last 5 Campaigns"
454
  msgstr ""
455
 
456
- #: lite/admin/class-ig-es-campaign-rules.php:625
457
  msgid "Any Campaigns within the last 7 days"
458
  msgstr ""
459
 
460
- #: lite/admin/class-ig-es-campaign-rules.php:626
461
  msgid "Any Campaigns within the last 1 month"
462
  msgstr ""
463
 
464
- #: lite/admin/class-ig-es-campaign-rules.php:627
465
  msgid "Any Campaigns within the last 3 months"
466
  msgstr ""
467
 
468
- #: lite/admin/class-ig-es-campaign-rules.php:628
469
  msgid "Any Campaigns within the last 6 months"
470
  msgstr ""
471
 
472
- #: lite/admin/class-ig-es-campaign-rules.php:629
473
  msgid "Any Campaigns within the last 12 months"
474
  msgstr ""
475
 
476
- #: lite/admin/class-ig-es-campaign-rules.php:641
477
- #: lite/admin/class-ig-es-campaign-rules.php:664
478
- #: lite/admin/class-ig-es-campaign-rules.php:681
479
- #: lite/admin/class-ig-es-campaign-rules.php:700
480
  msgid "is"
481
  msgstr ""
482
 
483
- #: lite/admin/class-ig-es-campaign-rules.php:642
484
- #: lite/admin/class-ig-es-campaign-rules.php:665
485
- #: lite/admin/class-ig-es-campaign-rules.php:682
486
- #: lite/admin/class-ig-es-campaign-rules.php:701
487
  msgid "is not"
488
  msgstr ""
489
 
490
- #: lite/admin/class-ig-es-campaign-rules.php:643
491
- #: lite/admin/class-ig-es-campaign-rules.php:683
492
  msgid "contains"
493
  msgstr ""
494
 
495
- #: lite/admin/class-ig-es-campaign-rules.php:644
496
- #: lite/admin/class-ig-es-campaign-rules.php:684
497
  msgid "contains not"
498
  msgstr ""
499
 
500
- #: lite/admin/class-ig-es-campaign-rules.php:645
501
- #: lite/admin/class-ig-es-campaign-rules.php:685
502
  msgid "begins with"
503
  msgstr ""
504
 
505
- #: lite/admin/class-ig-es-campaign-rules.php:646
506
- #: lite/admin/class-ig-es-campaign-rules.php:686
507
  msgid "ends with"
508
  msgstr ""
509
 
510
- #: lite/admin/class-ig-es-campaign-rules.php:647
511
- #: lite/admin/class-ig-es-campaign-rules.php:666
512
  msgid "is greater than"
513
  msgstr ""
514
 
515
- #: lite/admin/class-ig-es-campaign-rules.php:648
516
- #: lite/admin/class-ig-es-campaign-rules.php:667
517
  msgid "is smaller than"
518
  msgstr ""
519
 
520
- #: lite/admin/class-ig-es-campaign-rules.php:649
521
- #: lite/admin/class-ig-es-campaign-rules.php:668
522
  msgid "is greater or equal"
523
  msgstr ""
524
 
525
- #: lite/admin/class-ig-es-campaign-rules.php:650
526
- #: lite/admin/class-ig-es-campaign-rules.php:669
527
  msgid "is smaller or equal"
528
  msgstr ""
529
 
530
- #: lite/admin/class-ig-es-campaign-rules.php:651
531
- #: lite/admin/class-ig-es-campaign-rules.php:687
532
  msgid "match regex pattern"
533
  msgstr ""
534
 
535
- #: lite/admin/class-ig-es-campaign-rules.php:652
536
- #: lite/admin/class-ig-es-campaign-rules.php:688
537
  msgid "does not match regex pattern"
538
  msgstr ""
539
 
@@ -696,8 +707,8 @@ msgstr ""
696
  #: lite/includes/pro-features.php:1184
697
  #: lite/includes/pro-features.php:1222
698
  #: pro/classes/class-es-pro-reports-data.php:416
699
- #: pro/classes/class-es-pro-reports-data.php:559
700
- #: pro/classes/class-es-pro-reports-data.php:743
701
  #: pro/partials/es-dashboard.php:88
702
  msgid "Opens"
703
  msgstr ""
@@ -792,11 +803,11 @@ msgid "Other awesome plugins from same author"
792
  msgstr ""
793
 
794
  #: lite/admin/partials/help.php:209
795
- #: lite/includes/classes/class-es-campaign-report.php:180
796
  #: lite/includes/classes/class-es-campaigns-table.php:619
797
  #: lite/includes/classes/class-es-export-subscribers.php:341
798
  #: lite/includes/classes/class-es-import-subscribers.php:657
799
- #: lite/includes/classes/class-es-import-subscribers.php:1178
800
  #: lite/includes/classes/class-es-reports-table.php:230
801
  #: lite/includes/workflows/class-es-workflows-table.php:311
802
  #: pro/classes/class-es-pro-sequence-report.php:297
@@ -804,8 +815,8 @@ msgid "Status"
804
  msgstr ""
805
 
806
  #: lite/admin/partials/help.php:211
807
- #: lite/includes/class-es-common.php:384
808
- #: lite/includes/class-es-common.php:1653
809
  #: lite/includes/classes/class-es-campaigns-table.php:293
810
  #: lite/includes/workflows/admin/views/meta-box-save.php:28
811
  #: pro/classes/class-es-pro-reports-data.php:307
@@ -814,7 +825,7 @@ msgid "Active"
814
  msgstr ""
815
 
816
  #: lite/admin/partials/help.php:213
817
- #: lite/includes/class-es-common.php:385
818
  #: lite/includes/workflows/admin/views/meta-box-save.php:27
819
  #: pro/classes/class-es-pro-reports-data.php:312
820
  #: pro/classes/class-es-pro-sequence-report.php:235
@@ -1124,125 +1135,125 @@ msgstr ""
1124
  msgid "Value was set using constant %1$s"
1125
  msgstr ""
1126
 
1127
- #: lite/includes/class-es-common.php:187
1128
  #: lite/includes/classes/class-es-contacts-table.php:332
1129
- #: lite/includes/classes/class-es-import-subscribers.php:822
1130
- #: lite/includes/classes/class-es-import-subscribers.php:1185
1131
  #: lite/includes/classes/class-es-lists-table.php:572
1132
  msgid "Subscribed"
1133
  msgstr ""
1134
 
1135
- #: lite/includes/class-es-common.php:188
1136
  #: lite/includes/classes/class-es-contacts-table.php:348
1137
- #: lite/includes/classes/class-es-import-subscribers.php:824
1138
- #: lite/includes/classes/class-es-import-subscribers.php:1187
1139
  #: lite/includes/classes/class-es-lists-table.php:574
1140
  msgid "Unconfirmed"
1141
  msgstr ""
1142
 
1143
- #: lite/includes/class-es-common.php:189
1144
  #: lite/includes/classes/class-es-contacts-table.php:340
1145
- #: lite/includes/classes/class-es-import-subscribers.php:1186
1146
  #: lite/includes/classes/class-es-lists-table.php:573
1147
  msgid "Unsubscribed"
1148
  msgstr ""
1149
 
1150
- #: lite/includes/class-es-common.php:212
1151
  #: lite/includes/classes/class-es-import-subscribers.php:235
1152
  #: lite/includes/classes/class-es-post-notifications.php:372
1153
  msgid "Select Status"
1154
  msgstr ""
1155
 
1156
- #: lite/includes/class-es-common.php:346
1157
  msgid "Select Template"
1158
  msgstr ""
1159
 
1160
- #: lite/includes/class-es-common.php:453
1161
  msgid "Select Categories"
1162
  msgstr ""
1163
 
1164
- #: lite/includes/class-es-common.php:466
1165
  msgid "All Categories (Also include all categories which will create later)"
1166
  msgstr ""
1167
 
1168
- #: lite/includes/class-es-common.php:470
1169
  msgid "None (Don't include post from any category)"
1170
  msgstr ""
1171
 
1172
- #: lite/includes/class-es-common.php:503
1173
  msgid "No Custom Post Types Available"
1174
  msgstr ""
1175
 
1176
- #: lite/includes/class-es-common.php:519
1177
  msgid "Single Opt-In"
1178
  msgstr ""
1179
 
1180
- #: lite/includes/class-es-common.php:520
1181
  msgid "Double Opt-In"
1182
  msgstr ""
1183
 
1184
- #: lite/includes/class-es-common.php:535
1185
  msgid "Full Size"
1186
  msgstr ""
1187
 
1188
- #: lite/includes/class-es-common.php:536
1189
  msgid "Medium Size"
1190
  msgstr ""
1191
 
1192
- #: lite/includes/class-es-common.php:537
1193
  #: lite/includes/classes/class-es-templates-table.php:263
1194
  msgid "Thumbnail"
1195
  msgstr ""
1196
 
1197
- #: lite/includes/class-es-common.php:1444
1198
  msgid "8 Tips To Improve Email Open Rates"
1199
  msgstr ""
1200
 
1201
- #: lite/includes/class-es-common.php:1445
1202
  msgid "Prevent Your Email From Landing In Spam"
1203
  msgstr ""
1204
 
1205
- #: lite/includes/class-es-common.php:1446
1206
  msgid "<b>Email Subscribers Secret Club</b>"
1207
  msgstr ""
1208
 
1209
- #: lite/includes/class-es-common.php:1446
1210
  #: lite/includes/feedback.php:124
1211
  msgid "Join Now"
1212
  msgstr ""
1213
 
1214
- #: lite/includes/class-es-common.php:1447
1215
  msgid "Best Way To Keep Customers Engaged"
1216
  msgstr ""
1217
 
1218
- #: lite/includes/class-es-common.php:1448
1219
  msgid "Access Control"
1220
  msgstr ""
1221
 
1222
- #: lite/includes/class-es-common.php:1449
1223
  msgid "Prevent Spam Subscription Using Captcha"
1224
  msgstr ""
1225
 
1226
- #: lite/includes/class-es-common.php:1450
1227
  #: lite/includes/pro-features.php:143
1228
  msgid "Email Subscribers PRO"
1229
  msgstr ""
1230
 
1231
- #: lite/includes/class-es-common.php:1450
1232
  msgid "Lifetime"
1233
  msgstr ""
1234
 
1235
- #: lite/includes/class-es-common.php:1621
1236
  msgid "All Types"
1237
  msgstr ""
1238
 
1239
- #: lite/includes/class-es-common.php:1649
1240
  #: lite/includes/classes/class-es-campaigns-table.php:558
1241
  msgid "Draft"
1242
  msgstr ""
1243
 
1244
- #: lite/includes/class-es-common.php:1650
1245
- #: lite/includes/classes/class-es-campaign-report.php:238
1246
  #: lite/includes/classes/class-es-campaigns-table.php:540
1247
  #: lite/includes/classes/class-es-campaigns-table.php:576
1248
  #: lite/includes/classes/class-es-reports-table.php:511
@@ -1250,7 +1261,7 @@ msgstr ""
1250
  msgid "Sending"
1251
  msgstr ""
1252
 
1253
- #: lite/includes/class-es-common.php:1651
1254
  #: lite/includes/classes/class-es-campaigns-table.php:294
1255
  #: lite/includes/classes/class-es-campaigns-table.php:533
1256
  #: lite/includes/classes/class-es-campaigns-table.php:567
@@ -1258,8 +1269,8 @@ msgstr ""
1258
  msgid "Scheduled"
1259
  msgstr ""
1260
 
1261
- #: lite/includes/class-es-common.php:1652
1262
- #: lite/includes/classes/class-es-campaign-report.php:222
1263
  #: lite/includes/classes/class-es-campaigns-table.php:547
1264
  #: lite/includes/classes/class-es-campaigns-table.php:595
1265
  #: lite/includes/pro-features.php:1065
@@ -1269,28 +1280,28 @@ msgstr ""
1269
  msgid "Sent"
1270
  msgstr ""
1271
 
1272
- #: lite/includes/class-es-common.php:1677
1273
  #: lite/includes/classes/class-es-campaigns-table.php:679
1274
  #: lite/includes/classes/class-es-contacts-table.php:1109
1275
  msgid "All Statuses"
1276
  msgstr ""
1277
 
1278
  #. translators: 1: Anchor opening tag with href attribute 2: Target attribute 3: Anchor closing tag
1279
- #: lite/includes/class-es-common.php:1854
1280
  msgid "%1$s"
1281
  msgstr ""
1282
 
1283
- #: lite/includes/class-es-common.php:1876
1284
  msgid "PREMIUM10"
1285
  msgstr ""
1286
 
1287
- #: lite/includes/class-es-common.php:1885
1288
  msgid "Upgrade"
1289
  msgstr ""
1290
 
1291
- #: lite/includes/class-es-common.php:1919
1292
  #: lite/includes/classes/class-es-reports-table.php:513
1293
- #: pro/classes/class-es-pro-reports-data.php:891
1294
  msgid "All Status"
1295
  msgstr ""
1296
 
@@ -1328,7 +1339,7 @@ msgstr ""
1328
  #: lite/includes/classes/class-es-campaigns-table.php:614
1329
  #: lite/includes/classes/class-es-contacts-table.php:1041
1330
  #: lite/includes/classes/class-es-forms-table.php:410
1331
- #: lite/includes/classes/class-es-forms-table.php:900
1332
  #: lite/includes/classes/class-es-lists-table.php:570
1333
  #: lite/public/partials/class-es-shortcode.php:152
1334
  msgid "Name"
@@ -1645,46 +1656,46 @@ msgstr ""
1645
  msgid "Report"
1646
  msgstr ""
1647
 
1648
- #: lite/includes/classes/class-es-campaign-report.php:42
1649
  msgid "Activity Info"
1650
  msgstr ""
1651
 
1652
  #. translators: %s: Total items in the table
1653
- #: lite/includes/classes/class-es-campaign-report.php:79
1654
  msgid "%s item"
1655
  msgid_plural "%s items"
1656
  msgstr[0] ""
1657
  msgstr[1] ""
1658
 
1659
- #: lite/includes/classes/class-es-campaign-report.php:178
1660
  msgid "Sr No"
1661
  msgstr ""
1662
 
1663
- #: lite/includes/classes/class-es-campaign-report.php:181
1664
  msgid "Sent Date"
1665
  msgstr ""
1666
 
1667
- #: lite/includes/classes/class-es-campaign-report.php:182
1668
  msgid "Viewed Date"
1669
  msgstr ""
1670
 
1671
- #: lite/includes/classes/class-es-campaign-report.php:230
1672
  #: lite/includes/classes/class-es-reports-table.php:510
1673
  #: pro/classes/class-es-pro-reports-data.php:292
1674
  #: pro/partials/es-dashboard.php:60
1675
  msgid "In Queue"
1676
  msgstr ""
1677
 
1678
- #: lite/includes/classes/class-es-campaign-report.php:246
1679
  #: lite/includes/classes/class-es-contacts-table.php:356
1680
  #: lite/includes/pro-features.php:1096
1681
  #: pro/classes/class-es-pro-reports-data.php:355
1682
- #: pro/classes/class-es-pro-reports-data.php:888
1683
  #: pro/pro-class-email-subscribers.php:1801
1684
  msgid "Opened"
1685
  msgstr ""
1686
 
1687
- #: lite/includes/classes/class-es-campaign-report.php:390
1688
  msgid "Campaign Analytics"
1689
  msgstr ""
1690
 
@@ -1786,7 +1797,7 @@ msgstr ""
1786
 
1787
  #: lite/includes/classes/class-es-campaigns-table.php:618
1788
  #: lite/includes/classes/class-es-contacts-table.php:1044
1789
- #: lite/includes/classes/class-es-forms-table.php:903
1790
  #: lite/includes/classes/class-es-lists-table.php:576
1791
  #: lite/includes/workflows/class-es-workflows-table.php:310
1792
  msgid "Created"
@@ -1972,7 +1983,7 @@ msgid "<a href=\"?page=%1$s&action=%2$s&subscriber=%3$s&_wpnonce=%4$s\" class=\"
1972
  msgstr ""
1973
 
1974
  #: lite/includes/classes/class-es-contacts-table.php:1077
1975
- #: lite/includes/classes/class-es-forms-table.php:931
1976
  #: lite/includes/classes/class-es-lists-table.php:605
1977
  #: lite/includes/classes/class-es-reports-table.php:211
1978
  #: lite/includes/classes/class-es-reports-table.php:296
@@ -2147,16 +2158,16 @@ msgstr ""
2147
  #: lite/includes/classes/class-es-export-subscribers.php:337
2148
  #: lite/includes/classes/class-es-import-subscribers.php:558
2149
  #: lite/includes/classes/class-es-import-subscribers.php:649
2150
- #: lite/includes/classes/class-es-import-subscribers.php:1032
2151
- #: lite/includes/classes/class-es-import-subscribers.php:1176
2152
  msgid "First Name"
2153
  msgstr ""
2154
 
2155
  #: lite/includes/classes/class-es-export-subscribers.php:338
2156
  #: lite/includes/classes/class-es-import-subscribers.php:559
2157
  #: lite/includes/classes/class-es-import-subscribers.php:650
2158
- #: lite/includes/classes/class-es-import-subscribers.php:1037
2159
- #: lite/includes/classes/class-es-import-subscribers.php:1177
2160
  msgid "Last Name"
2161
  msgstr ""
2162
 
@@ -2318,110 +2329,110 @@ msgid "Save Form"
2318
  msgstr ""
2319
 
2320
  #. translators: 1: Page 2: Edit Action 3: Form id 4. WP Nonce
2321
- #: lite/includes/classes/class-es-forms-table.php:883
2322
  msgid "<a href=\"?page=%1$s&action=%2$s&form=%3$s&_wpnonce=%4$s\" class=\"text-indigo-600\">Edit</a>"
2323
  msgstr ""
2324
 
2325
  #. translators: 1: Page 2: Delete Action 3: Form id 4. WP Nonce
2326
- #: lite/includes/classes/class-es-forms-table.php:885
2327
  msgid "<a href=\"?page=%1$s&action=%2$s&form=%3$s&_wpnonce=%4$s\" onclick=\"return checkDelete()\">Delete</a>"
2328
  msgstr ""
2329
 
2330
- #: lite/includes/classes/class-es-forms-table.php:901
2331
  msgid "Shortcode"
2332
  msgstr ""
2333
 
2334
- #: lite/includes/classes/class-es-forms-table.php:902
2335
  msgid "Subscribers"
2336
  msgstr ""
2337
 
2338
- #: lite/includes/classes/class-es-forms-table.php:943
2339
  msgid "You do not have permission to delete this form."
2340
  msgstr ""
2341
 
2342
- #: lite/includes/classes/class-es-forms-table.php:950
2343
  msgid "Form deleted successfully!"
2344
  msgstr ""
2345
 
2346
- #: lite/includes/classes/class-es-forms-table.php:965
2347
  msgid "Form(s) deleted successfully!"
2348
  msgstr ""
2349
 
2350
- #: lite/includes/classes/class-es-forms-table.php:968
2351
  msgid "Please select form(s) to delete."
2352
  msgstr ""
2353
 
2354
- #: lite/includes/classes/class-es-forms-table.php:979
2355
  #: lite/includes/classes/class-es-lists-table.php:717
2356
  msgid "Enable"
2357
  msgstr ""
2358
 
2359
- #: lite/includes/classes/class-es-forms-table.php:980
2360
  #: lite/includes/classes/class-es-lists-table.php:718
2361
  msgid "Disable"
2362
  msgstr ""
2363
 
2364
- #: lite/includes/classes/class-es-forms-table.php:996
2365
  msgid "Search Forms"
2366
  msgstr ""
2367
 
2368
- #: lite/includes/classes/class-es-forms-table.php:1007
2369
  msgid "No Forms avaliable."
2370
  msgstr ""
2371
 
2372
- #: lite/includes/classes/class-es-handle-subscription.php:493
2373
  #: lite/public/class-email-subscribers-public.php:107
2374
  msgid "Please enter email address"
2375
  msgstr ""
2376
 
2377
- #: lite/includes/classes/class-es-handle-subscription.php:494
2378
  #: lite/public/class-email-subscribers-public.php:108
2379
  msgid "You need to wait for sometime before subscribing again"
2380
  msgstr ""
2381
 
2382
- #: lite/includes/classes/class-es-handle-subscription.php:495
2383
  #: lite/includes/upgrade/es-update-functions.php:750
2384
  #: lite/public/class-email-subscribers-public.php:109
2385
  msgid "Successfully Subscribed."
2386
  msgstr ""
2387
 
2388
- #: lite/includes/classes/class-es-handle-subscription.php:496
2389
  #: lite/public/class-email-subscribers-public.php:111
2390
  msgid "Email Address already exists!"
2391
  msgstr ""
2392
 
2393
- #: lite/includes/classes/class-es-handle-subscription.php:497
2394
  #: lite/public/class-email-subscribers-public.php:112
2395
  msgid "Oops.. Unexpected error occurred."
2396
  msgstr ""
2397
 
2398
- #: lite/includes/classes/class-es-handle-subscription.php:498
2399
  #: lite/public/class-email-subscribers-public.php:113
2400
  msgid "Invalid email address"
2401
  msgstr ""
2402
 
2403
- #: lite/includes/classes/class-es-handle-subscription.php:499
2404
  msgid "Invalid name"
2405
  msgstr ""
2406
 
2407
- #: lite/includes/classes/class-es-handle-subscription.php:500
2408
  #: lite/public/class-email-subscribers-public.php:114
2409
  msgid "Please try after some time"
2410
  msgstr ""
2411
 
2412
- #: lite/includes/classes/class-es-handle-subscription.php:501
2413
  msgid "Oops...unable to add subscriber"
2414
  msgstr ""
2415
 
2416
- #: lite/includes/classes/class-es-handle-subscription.php:502
2417
  msgid "You do not have permission to add subscriber"
2418
  msgstr ""
2419
 
2420
- #: lite/includes/classes/class-es-handle-subscription.php:503
2421
  msgid "Please select the list"
2422
  msgstr ""
2423
 
2424
- #: lite/includes/classes/class-es-handle-subscription.php:504
2425
  msgid "Invalid Captcha"
2426
  msgstr ""
2427
 
@@ -2597,7 +2608,7 @@ msgid "Subscribed at"
2597
  msgstr ""
2598
 
2599
  #: lite/includes/classes/class-es-import-subscribers.php:656
2600
- #: lite/includes/classes/class-es-import-subscribers.php:1179
2601
  msgid "List Name"
2602
  msgstr ""
2603
 
@@ -2630,25 +2641,27 @@ msgstr ""
2630
  msgid "Duplicate email in the CSV file. Only the first record imported."
2631
  msgstr ""
2632
 
2633
- #: lite/includes/classes/class-es-import-subscribers.php:823
2634
  msgid "Unubscribed"
2635
  msgstr ""
2636
 
2637
- #: lite/includes/classes/class-es-import-subscribers.php:825
2638
- #: lite/includes/classes/class-es-import-subscribers.php:1188
2639
  msgid "Hard Bounced"
2640
  msgstr ""
2641
 
2642
  #. translators: 1. Total imported contacts 2. Total contacts
2643
- #: lite/includes/classes/class-es-import-subscribers.php:1022
2644
  msgid "%1$s of %2$s contacts imported"
2645
  msgstr ""
2646
 
2647
- #: lite/includes/classes/class-es-import-subscribers.php:1026
2648
- msgid "The following contacts were skipped"
2649
- msgstr ""
 
 
2650
 
2651
- #: lite/includes/classes/class-es-import-subscribers.php:1041
2652
  msgid "Reason"
2653
  msgstr ""
2654
 
@@ -2754,25 +2767,25 @@ msgid "Thanks!"
2754
  msgstr ""
2755
 
2756
  #. translators: %s: Email address
2757
- #: lite/includes/classes/class-es-mailer.php:514
2758
  msgid "Test email to %s"
2759
  msgstr ""
2760
 
2761
- #: lite/includes/classes/class-es-mailer.php:531
2762
  msgid "Congrats, test email was sent successfully!"
2763
  msgstr ""
2764
 
2765
- #: lite/includes/classes/class-es-mailer.php:532
2766
  msgid "Thank you for trying out Email Subscribers. We are on a mission to make the best Email Marketing Automation plugin for WordPress."
2767
  msgstr ""
2768
 
2769
  #. translators: 1: <a> 2: </a>
2770
- #: lite/includes/classes/class-es-mailer.php:537
2771
  msgid "If you find this plugin useful, please consider giving us %1$s5 stars review%2$s on WordPress!"
2772
  msgstr ""
2773
 
2774
  #. translators: 1. Unsubscribe link 2. Blog admin email 3. Subscriber email 4. Blog name
2775
- #: lite/includes/classes/class-es-mailer.php:1746
2776
  msgid "<%1$s>,<mailto:%2$s?subject=Unsubscribe %3$s from %4$s>"
2777
  msgstr ""
2778
 
@@ -2838,49 +2851,49 @@ msgstr ""
2838
  msgid "Message"
2839
  msgstr ""
2840
 
2841
- #: lite/includes/classes/class-es-newsletters.php:388
2842
  msgid "Design template"
2843
  msgstr ""
2844
 
2845
- #: lite/includes/classes/class-es-newsletters.php:404
2846
  msgid "Total recipients:"
2847
  msgstr ""
2848
 
2849
- #: lite/includes/classes/class-es-newsletters.php:414
2850
- #: lite/includes/classes/class-es-newsletters.php:442
2851
  #: lite/includes/classes/class-es-reports-table.php:212
2852
  #: pro/classes/class-es-pro-sequence-report.php:269
2853
  msgid "Preview"
2854
  msgstr ""
2855
 
2856
- #: lite/includes/classes/class-es-newsletters.php:417
2857
  msgid "Browser"
2858
  msgstr ""
2859
 
2860
- #: lite/includes/classes/class-es-newsletters.php:428
2861
  #: lite/includes/classes/class-es-reports-table.php:473
2862
  msgid "There could be a slight variation on how your customer will view the email content."
2863
  msgstr ""
2864
 
2865
- #: lite/includes/classes/class-es-newsletters.php:432
2866
  #: lite/includes/classes/class-es-reports-table.php:477
2867
  #: lite/includes/premium-services-ui/class-ig-es-premium-services-ui.php:236
2868
  msgid "Close"
2869
  msgstr ""
2870
 
2871
- #: lite/includes/classes/class-es-newsletters.php:445
2872
  msgid "Email sent successfully "
2873
  msgstr ""
2874
 
2875
- #: lite/includes/classes/class-es-newsletters.php:446
2876
  msgid "Something went wrong. Please try again later"
2877
  msgstr ""
2878
 
2879
- #: lite/includes/classes/class-es-newsletters.php:463
2880
  msgid "Email Content Preview"
2881
  msgstr ""
2882
 
2883
- #: lite/includes/classes/class-es-newsletters.php:503
2884
  msgid "Open tracking"
2885
  msgstr ""
2886
 
@@ -3052,6 +3065,7 @@ msgstr ""
3052
  msgid "Select template type"
3053
  msgstr ""
3054
 
 
3055
  #: lite/includes/classes/class-es-templates-table.php:64
3056
  #: lite/includes/classes/class-es-templates-table.php:70
3057
  #: lite/includes/classes/class-es-templates-table.php:75
@@ -3092,7 +3106,7 @@ msgstr ""
3092
  msgid "Copy"
3093
  msgstr ""
3094
 
3095
- #: lite/includes/classes/class-es-tools.php:59
3096
  msgid "Email has been sent. Please check your inbox"
3097
  msgstr ""
3098
 
@@ -3738,8 +3752,8 @@ msgstr ""
3738
 
3739
  #: lite/includes/pro-features.php:1219
3740
  #: lite/includes/pro-features.php:1434
3741
- #: pro/classes/class-es-pro-reports-data.php:556
3742
- #: pro/classes/class-es-pro-reports-data.php:935
3743
  msgid "Mail Client"
3744
  msgstr ""
3745
 
@@ -3760,17 +3774,17 @@ msgid "Link Activity"
3760
  msgstr ""
3761
 
3762
  #: lite/includes/pro-features.php:1284
3763
- #: pro/classes/class-es-pro-reports-data.php:651
3764
  msgid "Link (URL)"
3765
  msgstr ""
3766
 
3767
  #: lite/includes/pro-features.php:1286
3768
- #: pro/classes/class-es-pro-reports-data.php:653
3769
  msgid "Unique Clicks"
3770
  msgstr ""
3771
 
3772
  #: lite/includes/pro-features.php:1288
3773
- #: pro/classes/class-es-pro-reports-data.php:655
3774
  msgid "Total Clicks"
3775
  msgstr ""
3776
 
@@ -3787,27 +3801,27 @@ msgid "Last 10 Open Activity"
3787
  msgstr ""
3788
 
3789
  #: lite/includes/pro-features.php:1433
3790
- #: pro/classes/class-es-pro-reports-data.php:934
3791
  msgid "Device"
3792
  msgstr ""
3793
 
3794
  #: lite/includes/pro-features.php:1435
3795
- #: pro/classes/class-es-pro-reports-data.php:936
3796
  msgid "OS"
3797
  msgstr ""
3798
 
3799
  #: lite/includes/pro-features.php:1462
3800
- #: pro/classes/class-es-pro-reports-data.php:958
3801
  msgid "Desktop"
3802
  msgstr ""
3803
 
3804
  #: lite/includes/pro-features.php:1471
3805
- #: pro/classes/class-es-pro-reports-data.php:966
3806
  msgid "Tablet"
3807
  msgstr ""
3808
 
3809
  #: lite/includes/pro-features.php:1480
3810
- #: pro/classes/class-es-pro-reports-data.php:974
3811
  msgid "Mobile"
3812
  msgstr ""
3813
 
@@ -4416,60 +4430,69 @@ msgstr ""
4416
  msgid "Country info"
4417
  msgstr ""
4418
 
4419
- #: pro/classes/class-es-pro-reports-data.php:512
 
4420
  msgid "Others"
4421
  msgstr ""
4422
 
4423
- #: pro/classes/class-es-pro-reports-data.php:540
4424
  msgid "No country data found."
4425
  msgstr ""
4426
 
4427
- #: pro/classes/class-es-pro-reports-data.php:551
4428
  msgid "Mail Client info"
4429
  msgstr ""
4430
 
4431
- #: pro/classes/class-es-pro-reports-data.php:587
4432
  msgid "No mail client data found."
4433
  msgstr ""
4434
 
4435
- #: pro/classes/class-es-pro-reports-data.php:601
4436
  msgid "Device info"
4437
  msgstr ""
4438
 
4439
- #: pro/classes/class-es-pro-reports-data.php:604
4440
  msgid "No device data found"
4441
  msgstr ""
4442
 
4443
- #: pro/classes/class-es-pro-reports-data.php:608
4444
  msgid "Browser info"
4445
  msgstr ""
4446
 
4447
- #: pro/classes/class-es-pro-reports-data.php:611
4448
  msgid "No browser data found"
4449
  msgstr ""
4450
 
4451
- #: pro/classes/class-es-pro-reports-data.php:615
4452
  msgid "OS info"
4453
  msgstr ""
4454
 
4455
- #: pro/classes/class-es-pro-reports-data.php:618
4456
  msgid "No OS data found"
4457
  msgstr ""
4458
 
4459
- #: pro/classes/class-es-pro-reports-data.php:644
4460
  msgid "Link activity"
4461
  msgstr ""
4462
 
4463
- #: pro/classes/class-es-pro-reports-data.php:748
 
 
 
 
 
 
 
 
4464
  #: pro/partials/es-dashboard.php:100
4465
  msgid "Clicks"
4466
  msgstr ""
4467
 
4468
- #: pro/classes/class-es-pro-reports-data.php:877
4469
  msgid "Filter Report"
4470
  msgstr ""
4471
 
4472
- #: pro/classes/class-es-pro-reports-data.php:889
4473
  msgid "Not Opened"
4474
  msgstr ""
4475
 
@@ -4792,23 +4815,23 @@ msgstr ""
4792
  msgid "Proceed"
4793
  msgstr ""
4794
 
4795
- #: pro/pro-class-email-subscribers.php:1850
4796
  msgid "How to configure Mailgun to send emails in the Email Subscribers plugin?"
4797
  msgstr ""
4798
 
4799
- #: pro/pro-class-email-subscribers.php:1878
4800
  msgid "How to configure SendGrid to send emails in the Email Subscribers plugin?"
4801
  msgstr ""
4802
 
4803
- #: pro/pro-class-email-subscribers.php:1907
4804
  msgid "How to configure Sparkpost to send emails in the Email Subscribers plugin?"
4805
  msgstr ""
4806
 
4807
- #: pro/pro-class-email-subscribers.php:1934
4808
  msgid "How to configure Amazon SES to send emails in the Email Subscribers plugin?"
4809
  msgstr ""
4810
 
4811
- #: pro/pro-class-email-subscribers.php:1961
4812
  msgid "How to configure Postmark to send emails in the Email Subscribers plugin?"
4813
  msgstr ""
4814
 
2
  # This file is distributed under the same license as the Email Subscribers & Newsletters plugin.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Email Subscribers & Newsletters 4.7.3\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/email-subscribers\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "POT-Creation-Date: 2021-05-19T10:09:06+05:30\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.4.0\n"
15
  "X-Domain: email-subscribers\n"
256
  msgstr ""
257
 
258
  #: lite/admin/class-email-subscribers-admin.php:314
259
+ #: lite/includes/classes/class-es-newsletters.php:428
260
  #: lite/includes/classes/class-es-reports-table.php:472
261
  msgid "Template Preview"
262
  msgstr ""
295
  msgstr ""
296
 
297
  #. translators: 1. WordPress URL 2. Email Subscribers version 3. Icegram site URL
298
+ #: lite/admin/class-email-subscribers-admin.php:888
299
  msgid "<span id=\"footer-thankyou\">Thank you for creating with <a href=\"%1$s\" target=\"_blank\">WordPress</a> | Email Subscribers <b>%2$s</b>. Developed by team <a href=\"%3$s\" target=\"_blank\">Icegram</a></span>"
300
  msgstr ""
301
 
302
+ #: lite/admin/class-email-subscribers-admin.php:916
303
  msgid "Something went wrong"
304
  msgstr ""
305
 
314
  #: lite/admin/class-ig-es-campaign-rules.php:184
315
  #: lite/admin/class-ig-es-campaign-rules.php:257
316
  #: lite/admin/class-ig-es-campaign-rules.php:259
 
 
 
317
  #: lite/admin/class-ig-es-campaign-rules.php:524
318
+ #: lite/admin/class-ig-es-campaign-rules.php:529
319
+ #: lite/admin/class-ig-es-campaign-rules.php:535
320
+ #: lite/admin/class-ig-es-campaign-rules.php:569
321
  msgid "or"
322
  msgstr ""
323
 
329
  msgid "Campaign Rules"
330
  msgstr ""
331
 
332
+ #: lite/admin/class-ig-es-campaign-rules.php:210
333
+ msgid "Loading..."
334
+ msgstr ""
335
+
336
  #: lite/admin/class-ig-es-campaign-rules.php:211
337
  msgid "Save Rules"
338
  msgstr ""
346
  msgstr ""
347
 
348
  #: lite/admin/class-ig-es-campaign-rules.php:248
349
+ #: lite/admin/class-ig-es-campaign-rules.php:419
350
+ #: lite/admin/class-ig-es-campaign-rules.php:566
351
  msgid "and"
352
  msgstr ""
353
 
361
  msgstr ""
362
 
363
  #: lite/admin/class-ig-es-campaign-rules.php:342
364
+ #: lite/admin/class-ig-es-campaign-rules.php:727
365
  msgid "Any campaign"
366
  msgstr ""
367
 
371
  msgstr ""
372
 
373
  #: lite/admin/class-ig-es-campaign-rules.php:361
374
+ #: lite/admin/class-ig-es-campaign-rules.php:753
375
  msgid "Any list"
376
  msgstr ""
377
 
379
  msgid "No campaigns available"
380
  msgstr ""
381
 
382
+ #: lite/admin/class-ig-es-campaign-rules.php:435
383
+ msgid " or"
384
+ msgstr ""
385
+
386
+ #: lite/admin/class-ig-es-campaign-rules.php:445
387
+ msgid ") "
388
+ msgstr ""
389
+
390
+ #: lite/admin/class-ig-es-campaign-rules.php:515
391
  msgctxt "opening curly double quote"
392
  msgid "&#8220;"
393
  msgstr ""
394
 
395
+ #: lite/admin/class-ig-es-campaign-rules.php:516
396
  msgctxt "closing curly double quote"
397
  msgid "&#8221;"
398
  msgstr ""
399
 
400
+ #: lite/admin/class-ig-es-campaign-rules.php:587
401
  msgid "is in List"
402
  msgstr ""
403
 
404
+ #: lite/admin/class-ig-es-campaign-rules.php:604
405
  #: lite/includes/classes/class-es-admin-settings.php:199
406
+ #: lite/includes/classes/class-es-campaign-report.php:212
407
  #: lite/includes/classes/class-es-contacts-table.php:780
408
  #: lite/includes/classes/class-es-contacts-table.php:1042
409
  #: lite/includes/classes/class-es-export-subscribers.php:339
410
  #: lite/includes/classes/class-es-forms-table.php:393
411
  #: lite/includes/classes/class-es-import-subscribers.php:557
412
  #: lite/includes/classes/class-es-import-subscribers.php:648
413
+ #: lite/includes/classes/class-es-import-subscribers.php:1038
414
+ #: lite/includes/classes/class-es-import-subscribers.php:1177
415
  #: lite/includes/pro-features.php:901
416
  #: lite/includes/pro-features.php:1432
417
  #: lite/includes/workflows/actions/abstracts/class-ig-es-action-send-email-abstract.php:29
422
  msgid "Email"
423
  msgstr ""
424
 
425
+ #: lite/admin/class-ig-es-campaign-rules.php:605
426
  #: lite/includes/pro-features.php:1181
427
  #: lite/includes/pro-features.php:1431
428
  #: pro/classes/class-es-pro-campaign-rules.php:38
430
  msgid "Country"
431
  msgstr ""
432
 
433
+ #: lite/admin/class-ig-es-campaign-rules.php:618
434
  #: pro/classes/class-es-pro-campaign-rules.php:43
435
  msgid "has received"
436
  msgstr ""
437
 
438
+ #: lite/admin/class-ig-es-campaign-rules.php:619
439
  #: pro/classes/class-es-pro-campaign-rules.php:46
440
  msgid "has not received"
441
  msgstr ""
442
 
443
+ #: lite/admin/class-ig-es-campaign-rules.php:620
444
  #: pro/classes/class-es-pro-campaign-rules.php:49
445
  msgid "has received and opened"
446
  msgstr ""
447
 
448
+ #: lite/admin/class-ig-es-campaign-rules.php:621
449
  #: pro/classes/class-es-pro-campaign-rules.php:52
450
  msgid "has received but not opened"
451
  msgstr ""
452
 
453
+ #: lite/admin/class-ig-es-campaign-rules.php:622
454
  #: pro/classes/class-es-pro-campaign-rules.php:55
455
  msgid "has received and clicked"
456
  msgstr ""
457
 
458
+ #: lite/admin/class-ig-es-campaign-rules.php:623
459
  #: pro/classes/class-es-pro-campaign-rules.php:58
460
  msgid "has received and not clicked"
461
  msgstr ""
462
 
463
+ #: lite/admin/class-ig-es-campaign-rules.php:635
464
  msgid "Any of the Last 5 Campaigns"
465
  msgstr ""
466
 
467
+ #: lite/admin/class-ig-es-campaign-rules.php:636
468
  msgid "Any Campaigns within the last 7 days"
469
  msgstr ""
470
 
471
+ #: lite/admin/class-ig-es-campaign-rules.php:637
472
  msgid "Any Campaigns within the last 1 month"
473
  msgstr ""
474
 
475
+ #: lite/admin/class-ig-es-campaign-rules.php:638
476
  msgid "Any Campaigns within the last 3 months"
477
  msgstr ""
478
 
479
+ #: lite/admin/class-ig-es-campaign-rules.php:639
480
  msgid "Any Campaigns within the last 6 months"
481
  msgstr ""
482
 
483
+ #: lite/admin/class-ig-es-campaign-rules.php:640
484
  msgid "Any Campaigns within the last 12 months"
485
  msgstr ""
486
 
487
+ #: lite/admin/class-ig-es-campaign-rules.php:652
488
+ #: lite/admin/class-ig-es-campaign-rules.php:675
489
+ #: lite/admin/class-ig-es-campaign-rules.php:692
490
+ #: lite/admin/class-ig-es-campaign-rules.php:711
491
  msgid "is"
492
  msgstr ""
493
 
494
+ #: lite/admin/class-ig-es-campaign-rules.php:653
495
+ #: lite/admin/class-ig-es-campaign-rules.php:676
496
+ #: lite/admin/class-ig-es-campaign-rules.php:693
497
+ #: lite/admin/class-ig-es-campaign-rules.php:712
498
  msgid "is not"
499
  msgstr ""
500
 
501
+ #: lite/admin/class-ig-es-campaign-rules.php:654
502
+ #: lite/admin/class-ig-es-campaign-rules.php:694
503
  msgid "contains"
504
  msgstr ""
505
 
506
+ #: lite/admin/class-ig-es-campaign-rules.php:655
507
+ #: lite/admin/class-ig-es-campaign-rules.php:695
508
  msgid "contains not"
509
  msgstr ""
510
 
511
+ #: lite/admin/class-ig-es-campaign-rules.php:656
512
+ #: lite/admin/class-ig-es-campaign-rules.php:696
513
  msgid "begins with"
514
  msgstr ""
515
 
516
+ #: lite/admin/class-ig-es-campaign-rules.php:657
517
+ #: lite/admin/class-ig-es-campaign-rules.php:697
518
  msgid "ends with"
519
  msgstr ""
520
 
521
+ #: lite/admin/class-ig-es-campaign-rules.php:658
522
+ #: lite/admin/class-ig-es-campaign-rules.php:677
523
  msgid "is greater than"
524
  msgstr ""
525
 
526
+ #: lite/admin/class-ig-es-campaign-rules.php:659
527
+ #: lite/admin/class-ig-es-campaign-rules.php:678
528
  msgid "is smaller than"
529
  msgstr ""
530
 
531
+ #: lite/admin/class-ig-es-campaign-rules.php:660
532
+ #: lite/admin/class-ig-es-campaign-rules.php:679
533
  msgid "is greater or equal"
534
  msgstr ""
535
 
536
+ #: lite/admin/class-ig-es-campaign-rules.php:661
537
+ #: lite/admin/class-ig-es-campaign-rules.php:680
538
  msgid "is smaller or equal"
539
  msgstr ""
540
 
541
+ #: lite/admin/class-ig-es-campaign-rules.php:662
542
+ #: lite/admin/class-ig-es-campaign-rules.php:698
543
  msgid "match regex pattern"
544
  msgstr ""
545
 
546
+ #: lite/admin/class-ig-es-campaign-rules.php:663
547
+ #: lite/admin/class-ig-es-campaign-rules.php:699
548
  msgid "does not match regex pattern"
549
  msgstr ""
550
 
707
  #: lite/includes/pro-features.php:1184
708
  #: lite/includes/pro-features.php:1222
709
  #: pro/classes/class-es-pro-reports-data.php:416
710
+ #: pro/classes/class-es-pro-reports-data.php:539
711
+ #: pro/classes/class-es-pro-reports-data.php:759
712
  #: pro/partials/es-dashboard.php:88
713
  msgid "Opens"
714
  msgstr ""
803
  msgstr ""
804
 
805
  #: lite/admin/partials/help.php:209
806
+ #: lite/includes/classes/class-es-campaign-report.php:213
807
  #: lite/includes/classes/class-es-campaigns-table.php:619
808
  #: lite/includes/classes/class-es-export-subscribers.php:341
809
  #: lite/includes/classes/class-es-import-subscribers.php:657
810
+ #: lite/includes/classes/class-es-import-subscribers.php:1180
811
  #: lite/includes/classes/class-es-reports-table.php:230
812
  #: lite/includes/workflows/class-es-workflows-table.php:311
813
  #: pro/classes/class-es-pro-sequence-report.php:297
815
  msgstr ""
816
 
817
  #: lite/admin/partials/help.php:211
818
+ #: lite/includes/class-es-common.php:385
819
+ #: lite/includes/class-es-common.php:1654
820
  #: lite/includes/classes/class-es-campaigns-table.php:293
821
  #: lite/includes/workflows/admin/views/meta-box-save.php:28
822
  #: pro/classes/class-es-pro-reports-data.php:307
825
  msgstr ""
826
 
827
  #: lite/admin/partials/help.php:213
828
+ #: lite/includes/class-es-common.php:386
829
  #: lite/includes/workflows/admin/views/meta-box-save.php:27
830
  #: pro/classes/class-es-pro-reports-data.php:312
831
  #: pro/classes/class-es-pro-sequence-report.php:235
1135
  msgid "Value was set using constant %1$s"
1136
  msgstr ""
1137
 
1138
+ #: lite/includes/class-es-common.php:188
1139
  #: lite/includes/classes/class-es-contacts-table.php:332
1140
+ #: lite/includes/classes/class-es-import-subscribers.php:821
1141
+ #: lite/includes/classes/class-es-import-subscribers.php:1187
1142
  #: lite/includes/classes/class-es-lists-table.php:572
1143
  msgid "Subscribed"
1144
  msgstr ""
1145
 
1146
+ #: lite/includes/class-es-common.php:189
1147
  #: lite/includes/classes/class-es-contacts-table.php:348
1148
+ #: lite/includes/classes/class-es-import-subscribers.php:823
1149
+ #: lite/includes/classes/class-es-import-subscribers.php:1189
1150
  #: lite/includes/classes/class-es-lists-table.php:574
1151
  msgid "Unconfirmed"
1152
  msgstr ""
1153
 
1154
+ #: lite/includes/class-es-common.php:190
1155
  #: lite/includes/classes/class-es-contacts-table.php:340
1156
+ #: lite/includes/classes/class-es-import-subscribers.php:1188
1157
  #: lite/includes/classes/class-es-lists-table.php:573
1158
  msgid "Unsubscribed"
1159
  msgstr ""
1160
 
1161
+ #: lite/includes/class-es-common.php:213
1162
  #: lite/includes/classes/class-es-import-subscribers.php:235
1163
  #: lite/includes/classes/class-es-post-notifications.php:372
1164
  msgid "Select Status"
1165
  msgstr ""
1166
 
1167
+ #: lite/includes/class-es-common.php:347
1168
  msgid "Select Template"
1169
  msgstr ""
1170
 
1171
+ #: lite/includes/class-es-common.php:454
1172
  msgid "Select Categories"
1173
  msgstr ""
1174
 
1175
+ #: lite/includes/class-es-common.php:467
1176
  msgid "All Categories (Also include all categories which will create later)"
1177
  msgstr ""
1178
 
1179
+ #: lite/includes/class-es-common.php:471
1180
  msgid "None (Don't include post from any category)"
1181
  msgstr ""
1182
 
1183
+ #: lite/includes/class-es-common.php:504
1184
  msgid "No Custom Post Types Available"
1185
  msgstr ""
1186
 
1187
+ #: lite/includes/class-es-common.php:520
1188
  msgid "Single Opt-In"
1189
  msgstr ""
1190
 
1191
+ #: lite/includes/class-es-common.php:521
1192
  msgid "Double Opt-In"
1193
  msgstr ""
1194
 
1195
+ #: lite/includes/class-es-common.php:536
1196
  msgid "Full Size"
1197
  msgstr ""
1198
 
1199
+ #: lite/includes/class-es-common.php:537
1200
  msgid "Medium Size"
1201
  msgstr ""
1202
 
1203
+ #: lite/includes/class-es-common.php:538
1204
  #: lite/includes/classes/class-es-templates-table.php:263
1205
  msgid "Thumbnail"
1206
  msgstr ""
1207
 
1208
+ #: lite/includes/class-es-common.php:1445
1209
  msgid "8 Tips To Improve Email Open Rates"
1210
  msgstr ""
1211
 
1212
+ #: lite/includes/class-es-common.php:1446
1213
  msgid "Prevent Your Email From Landing In Spam"
1214
  msgstr ""
1215
 
1216
+ #: lite/includes/class-es-common.php:1447
1217
  msgid "<b>Email Subscribers Secret Club</b>"
1218
  msgstr ""
1219
 
1220
+ #: lite/includes/class-es-common.php:1447
1221
  #: lite/includes/feedback.php:124
1222
  msgid "Join Now"
1223
  msgstr ""
1224
 
1225
+ #: lite/includes/class-es-common.php:1448
1226
  msgid "Best Way To Keep Customers Engaged"
1227
  msgstr ""
1228
 
1229
+ #: lite/includes/class-es-common.php:1449
1230
  msgid "Access Control"
1231
  msgstr ""
1232
 
1233
+ #: lite/includes/class-es-common.php:1450
1234
  msgid "Prevent Spam Subscription Using Captcha"
1235
  msgstr ""
1236
 
1237
+ #: lite/includes/class-es-common.php:1451
1238
  #: lite/includes/pro-features.php:143
1239
  msgid "Email Subscribers PRO"
1240
  msgstr ""
1241
 
1242
+ #: lite/includes/class-es-common.php:1451
1243
  msgid "Lifetime"
1244
  msgstr ""
1245
 
1246
+ #: lite/includes/class-es-common.php:1622
1247
  msgid "All Types"
1248
  msgstr ""
1249
 
1250
+ #: lite/includes/class-es-common.php:1650
1251
  #: lite/includes/classes/class-es-campaigns-table.php:558
1252
  msgid "Draft"
1253
  msgstr ""
1254
 
1255
+ #: lite/includes/class-es-common.php:1651
1256
+ #: lite/includes/classes/class-es-campaign-report.php:271
1257
  #: lite/includes/classes/class-es-campaigns-table.php:540
1258
  #: lite/includes/classes/class-es-campaigns-table.php:576
1259
  #: lite/includes/classes/class-es-reports-table.php:511
1261
  msgid "Sending"
1262
  msgstr ""
1263
 
1264
+ #: lite/includes/class-es-common.php:1652
1265
  #: lite/includes/classes/class-es-campaigns-table.php:294
1266
  #: lite/includes/classes/class-es-campaigns-table.php:533
1267
  #: lite/includes/classes/class-es-campaigns-table.php:567
1269
  msgid "Scheduled"
1270
  msgstr ""
1271
 
1272
+ #: lite/includes/class-es-common.php:1653
1273
+ #: lite/includes/classes/class-es-campaign-report.php:255
1274
  #: lite/includes/classes/class-es-campaigns-table.php:547
1275
  #: lite/includes/classes/class-es-campaigns-table.php:595
1276
  #: lite/includes/pro-features.php:1065
1280
  msgid "Sent"
1281
  msgstr ""
1282
 
1283
+ #: lite/includes/class-es-common.php:1678
1284
  #: lite/includes/classes/class-es-campaigns-table.php:679
1285
  #: lite/includes/classes/class-es-contacts-table.php:1109
1286
  msgid "All Statuses"
1287
  msgstr ""
1288
 
1289
  #. translators: 1: Anchor opening tag with href attribute 2: Target attribute 3: Anchor closing tag
1290
+ #: lite/includes/class-es-common.php:1855
1291
  msgid "%1$s"
1292
  msgstr ""
1293
 
1294
+ #: lite/includes/class-es-common.php:1877
1295
  msgid "PREMIUM10"
1296
  msgstr ""
1297
 
1298
+ #: lite/includes/class-es-common.php:1886
1299
  msgid "Upgrade"
1300
  msgstr ""
1301
 
1302
+ #: lite/includes/class-es-common.php:1920
1303
  #: lite/includes/classes/class-es-reports-table.php:513
1304
+ #: pro/classes/class-es-pro-reports-data.php:959
1305
  msgid "All Status"
1306
  msgstr ""
1307
 
1339
  #: lite/includes/classes/class-es-campaigns-table.php:614
1340
  #: lite/includes/classes/class-es-contacts-table.php:1041
1341
  #: lite/includes/classes/class-es-forms-table.php:410
1342
+ #: lite/includes/classes/class-es-forms-table.php:901
1343
  #: lite/includes/classes/class-es-lists-table.php:570
1344
  #: lite/public/partials/class-es-shortcode.php:152
1345
  msgid "Name"
1656
  msgid "Report"
1657
  msgstr ""
1658
 
1659
+ #: lite/includes/classes/class-es-campaign-report.php:44
1660
  msgid "Activity Info"
1661
  msgstr ""
1662
 
1663
  #. translators: %s: Total items in the table
1664
+ #: lite/includes/classes/class-es-campaign-report.php:91
1665
  msgid "%s item"
1666
  msgid_plural "%s items"
1667
  msgstr[0] ""
1668
  msgstr[1] ""
1669
 
1670
+ #: lite/includes/classes/class-es-campaign-report.php:211
1671
  msgid "Sr No"
1672
  msgstr ""
1673
 
1674
+ #: lite/includes/classes/class-es-campaign-report.php:214
1675
  msgid "Sent Date"
1676
  msgstr ""
1677
 
1678
+ #: lite/includes/classes/class-es-campaign-report.php:215
1679
  msgid "Viewed Date"
1680
  msgstr ""
1681
 
1682
+ #: lite/includes/classes/class-es-campaign-report.php:263
1683
  #: lite/includes/classes/class-es-reports-table.php:510
1684
  #: pro/classes/class-es-pro-reports-data.php:292
1685
  #: pro/partials/es-dashboard.php:60
1686
  msgid "In Queue"
1687
  msgstr ""
1688
 
1689
+ #: lite/includes/classes/class-es-campaign-report.php:279
1690
  #: lite/includes/classes/class-es-contacts-table.php:356
1691
  #: lite/includes/pro-features.php:1096
1692
  #: pro/classes/class-es-pro-reports-data.php:355
1693
+ #: pro/classes/class-es-pro-reports-data.php:956
1694
  #: pro/pro-class-email-subscribers.php:1801
1695
  msgid "Opened"
1696
  msgstr ""
1697
 
1698
+ #: lite/includes/classes/class-es-campaign-report.php:423
1699
  msgid "Campaign Analytics"
1700
  msgstr ""
1701
 
1797
 
1798
  #: lite/includes/classes/class-es-campaigns-table.php:618
1799
  #: lite/includes/classes/class-es-contacts-table.php:1044
1800
+ #: lite/includes/classes/class-es-forms-table.php:904
1801
  #: lite/includes/classes/class-es-lists-table.php:576
1802
  #: lite/includes/workflows/class-es-workflows-table.php:310
1803
  msgid "Created"
1983
  msgstr ""
1984
 
1985
  #: lite/includes/classes/class-es-contacts-table.php:1077
1986
+ #: lite/includes/classes/class-es-forms-table.php:932
1987
  #: lite/includes/classes/class-es-lists-table.php:605
1988
  #: lite/includes/classes/class-es-reports-table.php:211
1989
  #: lite/includes/classes/class-es-reports-table.php:296
2158
  #: lite/includes/classes/class-es-export-subscribers.php:337
2159
  #: lite/includes/classes/class-es-import-subscribers.php:558
2160
  #: lite/includes/classes/class-es-import-subscribers.php:649
2161
+ #: lite/includes/classes/class-es-import-subscribers.php:1030
2162
+ #: lite/includes/classes/class-es-import-subscribers.php:1178
2163
  msgid "First Name"
2164
  msgstr ""
2165
 
2166
  #: lite/includes/classes/class-es-export-subscribers.php:338
2167
  #: lite/includes/classes/class-es-import-subscribers.php:559
2168
  #: lite/includes/classes/class-es-import-subscribers.php:650
2169
+ #: lite/includes/classes/class-es-import-subscribers.php:1035
2170
+ #: lite/includes/classes/class-es-import-subscribers.php:1179
2171
  msgid "Last Name"
2172
  msgstr ""
2173
 
2329
  msgstr ""
2330
 
2331
  #. translators: 1: Page 2: Edit Action 3: Form id 4. WP Nonce
2332
+ #: lite/includes/classes/class-es-forms-table.php:884
2333
  msgid "<a href=\"?page=%1$s&action=%2$s&form=%3$s&_wpnonce=%4$s\" class=\"text-indigo-600\">Edit</a>"
2334
  msgstr ""
2335
 
2336
  #. translators: 1: Page 2: Delete Action 3: Form id 4. WP Nonce
2337
+ #: lite/includes/classes/class-es-forms-table.php:886
2338
  msgid "<a href=\"?page=%1$s&action=%2$s&form=%3$s&_wpnonce=%4$s\" onclick=\"return checkDelete()\">Delete</a>"
2339
  msgstr ""
2340
 
2341
+ #: lite/includes/classes/class-es-forms-table.php:902
2342
  msgid "Shortcode"
2343
  msgstr ""
2344
 
2345
+ #: lite/includes/classes/class-es-forms-table.php:903
2346
  msgid "Subscribers"
2347
  msgstr ""
2348
 
2349
+ #: lite/includes/classes/class-es-forms-table.php:944
2350
  msgid "You do not have permission to delete this form."
2351
  msgstr ""
2352
 
2353
+ #: lite/includes/classes/class-es-forms-table.php:951
2354
  msgid "Form deleted successfully!"
2355
  msgstr ""
2356
 
2357
+ #: lite/includes/classes/class-es-forms-table.php:966
2358
  msgid "Form(s) deleted successfully!"
2359
  msgstr ""
2360
 
2361
+ #: lite/includes/classes/class-es-forms-table.php:969
2362
  msgid "Please select form(s) to delete."
2363
  msgstr ""
2364
 
2365
+ #: lite/includes/classes/class-es-forms-table.php:980
2366
  #: lite/includes/classes/class-es-lists-table.php:717
2367
  msgid "Enable"
2368
  msgstr ""
2369
 
2370
+ #: lite/includes/classes/class-es-forms-table.php:981
2371
  #: lite/includes/classes/class-es-lists-table.php:718
2372
  msgid "Disable"
2373
  msgstr ""
2374
 
2375
+ #: lite/includes/classes/class-es-forms-table.php:997
2376
  msgid "Search Forms"
2377
  msgstr ""
2378
 
2379
+ #: lite/includes/classes/class-es-forms-table.php:1008
2380
  msgid "No Forms avaliable."
2381
  msgstr ""
2382
 
2383
+ #: lite/includes/classes/class-es-handle-subscription.php:516
2384
  #: lite/public/class-email-subscribers-public.php:107
2385
  msgid "Please enter email address"
2386
  msgstr ""
2387
 
2388
+ #: lite/includes/classes/class-es-handle-subscription.php:517
2389
  #: lite/public/class-email-subscribers-public.php:108
2390
  msgid "You need to wait for sometime before subscribing again"
2391
  msgstr ""
2392
 
2393
+ #: lite/includes/classes/class-es-handle-subscription.php:518
2394
  #: lite/includes/upgrade/es-update-functions.php:750
2395
  #: lite/public/class-email-subscribers-public.php:109
2396
  msgid "Successfully Subscribed."
2397
  msgstr ""
2398
 
2399
+ #: lite/includes/classes/class-es-handle-subscription.php:519
2400
  #: lite/public/class-email-subscribers-public.php:111
2401
  msgid "Email Address already exists!"
2402
  msgstr ""
2403
 
2404
+ #: lite/includes/classes/class-es-handle-subscription.php:520
2405
  #: lite/public/class-email-subscribers-public.php:112
2406
  msgid "Oops.. Unexpected error occurred."
2407
  msgstr ""
2408
 
2409
+ #: lite/includes/classes/class-es-handle-subscription.php:521
2410
  #: lite/public/class-email-subscribers-public.php:113
2411
  msgid "Invalid email address"
2412
  msgstr ""
2413
 
2414
+ #: lite/includes/classes/class-es-handle-subscription.php:522
2415
  msgid "Invalid name"
2416
  msgstr ""
2417
 
2418
+ #: lite/includes/classes/class-es-handle-subscription.php:523
2419
  #: lite/public/class-email-subscribers-public.php:114
2420
  msgid "Please try after some time"
2421
  msgstr ""
2422
 
2423
+ #: lite/includes/classes/class-es-handle-subscription.php:524
2424
  msgid "Oops...unable to add subscriber"
2425
  msgstr ""
2426
 
2427
+ #: lite/includes/classes/class-es-handle-subscription.php:525
2428
  msgid "You do not have permission to add subscriber"
2429
  msgstr ""
2430
 
2431
+ #: lite/includes/classes/class-es-handle-subscription.php:526
2432
  msgid "Please select the list"
2433
  msgstr ""
2434
 
2435
+ #: lite/includes/classes/class-es-handle-subscription.php:527
2436
  msgid "Invalid Captcha"
2437
  msgstr ""
2438
 
2608
  msgstr ""
2609
 
2610
  #: lite/includes/classes/class-es-import-subscribers.php:656
2611
+ #: lite/includes/classes/class-es-import-subscribers.php:1181
2612
  msgid "List Name"
2613
  msgstr ""
2614
 
2641
  msgid "Duplicate email in the CSV file. Only the first record imported."
2642
  msgstr ""
2643
 
2644
+ #: lite/includes/classes/class-es-import-subscribers.php:822
2645
  msgid "Unubscribed"
2646
  msgstr ""
2647
 
2648
+ #: lite/includes/classes/class-es-import-subscribers.php:824
2649
+ #: lite/includes/classes/class-es-import-subscribers.php:1190
2650
  msgid "Hard Bounced"
2651
  msgstr ""
2652
 
2653
  #. translators: 1. Total imported contacts 2. Total contacts
2654
+ #: lite/includes/classes/class-es-import-subscribers.php:1017
2655
  msgid "%1$s of %2$s contacts imported"
2656
  msgstr ""
2657
 
2658
+ #: lite/includes/classes/class-es-import-subscribers.php:1021
2659
+ msgid "contact was"
2660
+ msgid_plural "contacts were"
2661
+ msgstr[0] ""
2662
+ msgstr[1] ""
2663
 
2664
+ #: lite/includes/classes/class-es-import-subscribers.php:1039
2665
  msgid "Reason"
2666
  msgstr ""
2667
 
2767
  msgstr ""
2768
 
2769
  #. translators: %s: Email address
2770
+ #: lite/includes/classes/class-es-mailer.php:517
2771
  msgid "Test email to %s"
2772
  msgstr ""
2773
 
2774
+ #: lite/includes/classes/class-es-mailer.php:534
2775
  msgid "Congrats, test email was sent successfully!"
2776
  msgstr ""
2777
 
2778
+ #: lite/includes/classes/class-es-mailer.php:535
2779
  msgid "Thank you for trying out Email Subscribers. We are on a mission to make the best Email Marketing Automation plugin for WordPress."
2780
  msgstr ""
2781
 
2782
  #. translators: 1: <a> 2: </a>
2783
+ #: lite/includes/classes/class-es-mailer.php:540
2784
  msgid "If you find this plugin useful, please consider giving us %1$s5 stars review%2$s on WordPress!"
2785
  msgstr ""
2786
 
2787
  #. translators: 1. Unsubscribe link 2. Blog admin email 3. Subscriber email 4. Blog name
2788
+ #: lite/includes/classes/class-es-mailer.php:1754
2789
  msgid "<%1$s>,<mailto:%2$s?subject=Unsubscribe %3$s from %4$s>"
2790
  msgstr ""
2791
 
2851
  msgid "Message"
2852
  msgstr ""
2853
 
2854
+ #: lite/includes/classes/class-es-newsletters.php:389
2855
  msgid "Design template"
2856
  msgstr ""
2857
 
2858
+ #: lite/includes/classes/class-es-newsletters.php:405
2859
  msgid "Total recipients:"
2860
  msgstr ""
2861
 
2862
+ #: lite/includes/classes/class-es-newsletters.php:415
2863
+ #: lite/includes/classes/class-es-newsletters.php:443
2864
  #: lite/includes/classes/class-es-reports-table.php:212
2865
  #: pro/classes/class-es-pro-sequence-report.php:269
2866
  msgid "Preview"
2867
  msgstr ""
2868
 
2869
+ #: lite/includes/classes/class-es-newsletters.php:418
2870
  msgid "Browser"
2871
  msgstr ""
2872
 
2873
+ #: lite/includes/classes/class-es-newsletters.php:429
2874
  #: lite/includes/classes/class-es-reports-table.php:473
2875
  msgid "There could be a slight variation on how your customer will view the email content."
2876
  msgstr ""
2877
 
2878
+ #: lite/includes/classes/class-es-newsletters.php:433
2879
  #: lite/includes/classes/class-es-reports-table.php:477
2880
  #: lite/includes/premium-services-ui/class-ig-es-premium-services-ui.php:236
2881
  msgid "Close"
2882
  msgstr ""
2883
 
2884
+ #: lite/includes/classes/class-es-newsletters.php:446
2885
  msgid "Email sent successfully "
2886
  msgstr ""
2887
 
2888
+ #: lite/includes/classes/class-es-newsletters.php:447
2889
  msgid "Something went wrong. Please try again later"
2890
  msgstr ""
2891
 
2892
+ #: lite/includes/classes/class-es-newsletters.php:464
2893
  msgid "Email Content Preview"
2894
  msgstr ""
2895
 
2896
+ #: lite/includes/classes/class-es-newsletters.php:504
2897
  msgid "Open tracking"
2898
  msgstr ""
2899
 
3065
  msgid "Select template type"
3066
  msgstr ""
3067
 
3068
+ #: lite/includes/classes/class-es-templates-table.php:53
3069
  #: lite/includes/classes/class-es-templates-table.php:64
3070
  #: lite/includes/classes/class-es-templates-table.php:70
3071
  #: lite/includes/classes/class-es-templates-table.php:75
3106
  msgid "Copy"
3107
  msgstr ""
3108
 
3109
+ #: lite/includes/classes/class-es-tools.php:60
3110
  msgid "Email has been sent. Please check your inbox"
3111
  msgstr ""
3112
 
3752
 
3753
  #: lite/includes/pro-features.php:1219
3754
  #: lite/includes/pro-features.php:1434
3755
+ #: pro/classes/class-es-pro-reports-data.php:536
3756
+ #: pro/classes/class-es-pro-reports-data.php:1003
3757
  msgid "Mail Client"
3758
  msgstr ""
3759
 
3774
  msgstr ""
3775
 
3776
  #: lite/includes/pro-features.php:1284
3777
+ #: pro/classes/class-es-pro-reports-data.php:641
3778
  msgid "Link (URL)"
3779
  msgstr ""
3780
 
3781
  #: lite/includes/pro-features.php:1286
3782
+ #: pro/classes/class-es-pro-reports-data.php:643
3783
  msgid "Unique Clicks"
3784
  msgstr ""
3785
 
3786
  #: lite/includes/pro-features.php:1288
3787
+ #: pro/classes/class-es-pro-reports-data.php:645
3788
  msgid "Total Clicks"
3789
  msgstr ""
3790
 
3801
  msgstr ""
3802
 
3803
  #: lite/includes/pro-features.php:1433
3804
+ #: pro/classes/class-es-pro-reports-data.php:1002
3805
  msgid "Device"
3806
  msgstr ""
3807
 
3808
  #: lite/includes/pro-features.php:1435
3809
+ #: pro/classes/class-es-pro-reports-data.php:1004
3810
  msgid "OS"
3811
  msgstr ""
3812
 
3813
  #: lite/includes/pro-features.php:1462
3814
+ #: pro/classes/class-es-pro-reports-data.php:1026
3815
  msgid "Desktop"
3816
  msgstr ""
3817
 
3818
  #: lite/includes/pro-features.php:1471
3819
+ #: pro/classes/class-es-pro-reports-data.php:1034
3820
  msgid "Tablet"
3821
  msgstr ""
3822
 
3823
  #: lite/includes/pro-features.php:1480
3824
+ #: pro/classes/class-es-pro-reports-data.php:1042
3825
  msgid "Mobile"
3826
  msgstr ""
3827
 
4430
  msgid "Country info"
4431
  msgstr ""
4432
 
4433
+ #: pro/classes/class-es-pro-reports-data.php:490
4434
+ #: pro/classes/class-es-pro-reports-data.php:552
4435
  msgid "Others"
4436
  msgstr ""
4437
 
4438
+ #: pro/classes/class-es-pro-reports-data.php:519
4439
  msgid "No country data found."
4440
  msgstr ""
4441
 
4442
+ #: pro/classes/class-es-pro-reports-data.php:531
4443
  msgid "Mail Client info"
4444
  msgstr ""
4445
 
4446
+ #: pro/classes/class-es-pro-reports-data.php:577
4447
  msgid "No mail client data found."
4448
  msgstr ""
4449
 
4450
+ #: pro/classes/class-es-pro-reports-data.php:591
4451
  msgid "Device info"
4452
  msgstr ""
4453
 
4454
+ #: pro/classes/class-es-pro-reports-data.php:594
4455
  msgid "No device data found"
4456
  msgstr ""
4457
 
4458
+ #: pro/classes/class-es-pro-reports-data.php:598
4459
  msgid "Browser info"
4460
  msgstr ""
4461
 
4462
+ #: pro/classes/class-es-pro-reports-data.php:601
4463
  msgid "No browser data found"
4464
  msgstr ""
4465
 
4466
+ #: pro/classes/class-es-pro-reports-data.php:605
4467
  msgid "OS info"
4468
  msgstr ""
4469
 
4470
+ #: pro/classes/class-es-pro-reports-data.php:608
4471
  msgid "No OS data found"
4472
  msgstr ""
4473
 
4474
+ #: pro/classes/class-es-pro-reports-data.php:634
4475
  msgid "Link activity"
4476
  msgstr ""
4477
 
4478
+ #: pro/classes/class-es-pro-reports-data.php:707
4479
+ msgid "Show Less"
4480
+ msgstr ""
4481
+
4482
+ #: pro/classes/class-es-pro-reports-data.php:711
4483
+ msgid "Show More"
4484
+ msgstr ""
4485
+
4486
+ #: pro/classes/class-es-pro-reports-data.php:764
4487
  #: pro/partials/es-dashboard.php:100
4488
  msgid "Clicks"
4489
  msgstr ""
4490
 
4491
+ #: pro/classes/class-es-pro-reports-data.php:945
4492
  msgid "Filter Report"
4493
  msgstr ""
4494
 
4495
+ #: pro/classes/class-es-pro-reports-data.php:957
4496
  msgid "Not Opened"
4497
  msgstr ""
4498
 
4815
  msgid "Proceed"
4816
  msgstr ""
4817
 
4818
+ #: pro/pro-class-email-subscribers.php:1851
4819
  msgid "How to configure Mailgun to send emails in the Email Subscribers plugin?"
4820
  msgstr ""
4821
 
4822
+ #: pro/pro-class-email-subscribers.php:1879
4823
  msgid "How to configure SendGrid to send emails in the Email Subscribers plugin?"
4824
  msgstr ""
4825
 
4826
+ #: pro/pro-class-email-subscribers.php:1908
4827
  msgid "How to configure Sparkpost to send emails in the Email Subscribers plugin?"
4828
  msgstr ""
4829
 
4830
+ #: pro/pro-class-email-subscribers.php:1935
4831
  msgid "How to configure Amazon SES to send emails in the Email Subscribers plugin?"
4832
  msgstr ""
4833
 
4834
+ #: pro/pro-class-email-subscribers.php:1962
4835
  msgid "How to configure Postmark to send emails in the Email Subscribers plugin?"
4836
  msgstr ""
4837
 
readme.txt CHANGED
@@ -4,9 +4,9 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_i
4
  Author URI: https://www.icegram.com/
5
  Tags: email marketing, subscription, autoresponder, post notification, welcome email
6
  Requires at least: 3.9
7
- Tested up to: 5.7.1
8
  Requires PHP: 5.6
9
- Stable tag: 4.7.2
10
  License: GPLv3
11
  License URI: http://www.gnu.org/licenses
12
 
@@ -310,59 +310,35 @@ Refer [here](https://www.icegram.com/documentation/es-faq/).
310
 
311
  == Upgrade Notice ==
312
 
313
- **4.7.2 (12.05.2021)**
314
-
315
- * New: Support for 'List-Unsubscribe' email header
316
- * New: Support for 'Subscribed at' field while importing contacts through CSV
317
- * Update: Support for Sendgrid batch email API [PRO]
318
- * Update: Improved page load performance on Email Subscribers' admin pages
319
-
320
- **4.7.1 (30.04.2021)**
321
-
322
- * New: Send emails using Postmark batch API **[PRO]**
323
- * Update: Improved dashboard UI
324
- * Fix: Post digest category issue **[PRO]**
325
- * Fix: Garbage characters in few cases when an email containing HTML entities is sent using Pepipost
326
- * Fix: Ajax call on every page load
327
-
328
- **4.7.0 (05.04.2021)**
329
-
330
- * New: Support for list and status fields while importing contacts through CSV
331
- * New: Using batch API to send emails through Mailgun [PRO]
332
-
333
- **4.6.14 (25.03.2021)**
334
-
335
- * New: Send emails using Mailgun, SparkPost and SendGrid [PRO]
336
- * New: Import contacts from MailChimp
337
-
338
- **4.6.13 (17.03.2021)**
339
-
340
- * New: Campaign rules to filter recipients while sending sequence emails [PRO]
341
- * Update: Tested upto WordPress 5.7
342
- * Fix: Invalid date and time for campaign reports activity table
343
-
344
- **4.6.12.1 (05.03.2021)**
345
 
346
- * Fix: Subscription issue with [Icegram](https://wordpress.org/plugins/icegram) plugin
347
 
348
- **4.6.12 (04.03.2021)**
349
 
350
- * New: Filter recipients using new campaign rules for 'is in List' and 'is not in List'[PRO] while sending broadcast
 
 
 
 
351
  * Update: Improved campaign report UI
352
- * Update: Improved securities in subscription form
353
-
354
- == Changelog ==
355
 
356
  **4.7.2 (12.05.2021)**
357
 
358
  * New: Support for 'List-Unsubscribe' email header
359
  * New: Support for 'Subscribed at' field while importing contacts through CSV
360
- * Update: Support for Sendgrid batch email API [PRO]
361
  * Update: Improved page load performance on Email Subscribers' admin pages
362
 
363
  **4.7.1 (30.04.2021)**
364
 
365
- * New: Send emails using Postmark batch API [PRO]
366
  * Update: Improved dashboard UI
367
  * Fix: Post digest category issue [PRO]
368
  * Fix: Garbage characters in few cases when an email containing HTML entities is sent using Pepipost
@@ -371,16 +347,16 @@ Refer [here](https://www.icegram.com/documentation/es-faq/).
371
  **4.7.0 (05.04.2021)**
372
 
373
  * New: Support for list and status fields while importing contacts through CSV
374
- * New: Using batch API to send emails through Mailgun [PRO]
375
 
376
  **4.6.14 (25.03.2021)**
377
 
378
- * New: Send emails using Mailgun, SparkPost and SendGrid [PRO]
379
  * New: Import contacts from MailChimp
380
 
381
  **4.6.13 (17.03.2021)**
382
 
383
- * New: Campaign rules to filter recipients while sending sequence emails [PRO]
384
  * Update: Tested upto WordPress 5.7
385
  * Fix: Invalid date and time for campaign reports activity table
386
 
@@ -390,7 +366,7 @@ Refer [here](https://www.icegram.com/documentation/es-faq/).
390
 
391
  **4.6.12 (04.03.2021)**
392
 
393
- * New: Filter recipients using new campaign rules for 'is in List' and 'is not in List'[PRO] while sending broadcast
394
  * Update: Improved campaign report UI
395
  * Update: Improved securities in subscription form
396
 
4
  Author URI: https://www.icegram.com/
5
  Tags: email marketing, subscription, autoresponder, post notification, welcome email
6
  Requires at least: 3.9
7
+ Tested up to: 5.7.2
8
  Requires PHP: 5.6
9
+ Stable tag: 4.7.3
10
  License: GPLv3
11
  License URI: http://www.gnu.org/licenses
12
 
310
 
311
  == Upgrade Notice ==
312
 
313
+ **4.7.3 (19.05.2021)**
314
+ * Fix: Formatting of broadcast test email not matching with actual campaign email **[PRO]**
315
+ * Fix: JavaScript errors on the broadcast screen when a visual mode is disabled for classic editor
316
+ * Fix: Incorrect campaign start date on the reports page
317
+ * Fix: Fixing incorrect count of imported users in the log message when CSV contains duplicate emails
318
+ * Update: Improved email template preview
319
+ * Update: Improved campaign report UI
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
320
 
321
+ == Changelog ==
322
 
323
+ **4.7.3 (19.05.2021)**
324
 
325
+ * Fix: Formatting of broadcast test email not matching with actual campaign email **[PRO]**
326
+ * Fix: JavaScript errors on the broadcast screen when a visual mode is disabled for classic editor
327
+ * Fix: Incorrect campaign start date on the reports page
328
+ * Fix: Fixing incorrect count of imported users in the log message when CSV contains duplicate emails
329
+ * Update: Improved email template preview
330
  * Update: Improved campaign report UI
 
 
 
331
 
332
  **4.7.2 (12.05.2021)**
333
 
334
  * New: Support for 'List-Unsubscribe' email header
335
  * New: Support for 'Subscribed at' field while importing contacts through CSV
336
+ * Update: Support for Sendgrid batch email API **[PRO]**
337
  * Update: Improved page load performance on Email Subscribers' admin pages
338
 
339
  **4.7.1 (30.04.2021)**
340
 
341
+ * New: Send emails using Postmark batch API **[PRO]**
342
  * Update: Improved dashboard UI
343
  * Fix: Post digest category issue [PRO]
344
  * Fix: Garbage characters in few cases when an email containing HTML entities is sent using Pepipost
347
  **4.7.0 (05.04.2021)**
348
 
349
  * New: Support for list and status fields while importing contacts through CSV
350
+ * New: Using batch API to send emails through Mailgun **[PRO]**
351
 
352
  **4.6.14 (25.03.2021)**
353
 
354
+ * New: Send emails using Mailgun, SparkPost and SendGrid **[PRO]**
355
  * New: Import contacts from MailChimp
356
 
357
  **4.6.13 (17.03.2021)**
358
 
359
+ * New: Campaign rules to filter recipients while sending sequence emails **[PRO]**
360
  * Update: Tested upto WordPress 5.7
361
  * Fix: Invalid date and time for campaign reports activity table
362
 
366
 
367
  **4.6.12 (04.03.2021)**
368
 
369
+ * New: Filter recipients using new campaign rules for 'is in List' and 'is not in List' while sending broadcast **[PRO]**
370
  * Update: Improved campaign report UI
371
  * Update: Improved securities in subscription form
372