The Events Calendar - Version 4.5.11

Version Description

= [4.3] =

Please see the changelog for the complete list of changes in this release. Remember to always make a backup of your database and files before updating!

Download this release

Release Info

Developer borkweb
Plugin Icon The Events Calendar
Version 4.5.11
Comparing to
See all releases

Code changes from version 4.5.10.1 to 4.5.11

Files changed (70) hide show
  1. common/readme.txt +5 -0
  2. common/src/Tribe/Assets.php +1 -1
  3. common/src/Tribe/JSON_LD/Abstract.php +1 -1
  4. common/src/Tribe/Log.php +60 -1
  5. common/src/Tribe/Main.php +7 -2
  6. common/src/Tribe/PUE/Checker.php +2 -2
  7. common/src/Tribe/Plugins_API.php +0 -185
  8. common/src/Tribe/REST/Main.php +2 -2
  9. common/src/resources/css/datatables.css +0 -2
  10. common/src/resources/css/datatables.min.css +1 -1
  11. common/src/resources/css/datepicker.css +0 -2
  12. common/src/resources/css/datepicker.min.css +1 -1
  13. common/src/resources/css/tribe-common-admin.css +0 -6
  14. common/src/resources/css/tribe-common-admin.min.css +1 -1
  15. common/src/resources/css/tribe-ui.css +0 -2
  16. common/src/resources/css/tribe-ui.min.css +1 -1
  17. common/src/resources/js/bumpdown.js +1 -1
  18. common/src/resources/js/bumpdown.min.js +1 -1
  19. common/tribe-common.php +1 -1
  20. common/vendor/autoload_52.php +1 -1
  21. common/vendor/composer/ClassLoader.php +7 -3
  22. common/vendor/composer/LICENSE +1 -1
  23. common/vendor/composer/autoload_real_52.php +3 -3
  24. lang/the-events-calendar-de_DE.mo +0 -0
  25. lang/the-events-calendar.pot +79 -65
  26. readme.txt +30 -4
  27. src/Tribe/Aggregator.php +1 -1
  28. src/Tribe/Aggregator/API/Origins.php +28 -7
  29. src/Tribe/Aggregator/Cron.php +47 -70
  30. src/Tribe/Aggregator/Record/Abstract.php +73 -4
  31. src/Tribe/Aggregator/Record/Queue.php +3 -3
  32. src/Tribe/Aggregator/Record/Queue_Cleaner.php +2 -0
  33. src/Tribe/Aggregator/Records.php +44 -0
  34. src/Tribe/Aggregator/Service.php +32 -12
  35. src/Tribe/Aggregator/Tabs/Abstract.php +2 -2
  36. src/Tribe/Front_Page_View.php +6 -1
  37. src/Tribe/Integrations/Manager.php +1 -1
  38. src/Tribe/Integrations/Twenty_Seventeen.php +4 -4
  39. src/Tribe/JSON_LD/Event.php +1 -1
  40. src/Tribe/JSON_LD/Organizer.php +1 -1
  41. src/Tribe/JSON_LD/Venue.php +1 -1
  42. src/Tribe/Linked_Posts.php +18 -7
  43. src/Tribe/Linked_Posts/Chooser_Meta_Box.php +49 -34
  44. src/Tribe/Main.php +5 -5
  45. src/Tribe/Organizer.php +15 -0
  46. src/Tribe/Query.php +1 -1
  47. src/Tribe/REST/V1/Endpoints/Archive_Event.php +4 -4
  48. src/admin-views/events-meta-box.php +2 -2
  49. src/functions/template-tags/date.php +1 -1
  50. src/functions/template-tags/general.php +15 -7
  51. src/functions/template-tags/venue.php +338 -128
  52. src/resources/css/events-admin.css +3 -0
  53. src/resources/css/events-admin.min.css +1 -1
  54. src/resources/css/tribe-events-full.css +26 -0
  55. src/resources/css/tribe-events-full.min.css +1 -1
  56. src/resources/css/tribe-events-skeleton.css +8 -0
  57. src/resources/css/tribe-events-skeleton.min.css +1 -1
  58. src/resources/css/tribe-events-theme-mobile.css +2 -1
  59. src/resources/css/tribe-events-theme-mobile.min.css +1 -1
  60. src/resources/css/tribe-events-theme.css +7 -1
  61. src/resources/css/tribe-events-theme.min.css +1 -1
  62. src/resources/js/tribe-events-ajax-calendar.js +19 -17
  63. src/resources/js/tribe-events.js +40 -11
  64. src/resources/js/tribe-events.min.js +1 -1
  65. src/resources/postcss/tribe-events-full.pcss +30 -0
  66. src/resources/postcss/tribe-events-skeleton.pcss +8 -0
  67. src/resources/postcss/tribe-events-theme.pcss +7 -0
  68. src/views/day/single-event.php +11 -3
  69. src/views/list/single-event.php +12 -4
  70. the-events-calendar.php +1 -1
common/readme.txt CHANGED
@@ -2,6 +2,11 @@
2
 
3
  == Changelog ==
4
 
 
 
 
 
 
5
  = [4.5.10.1] 2017-08-16 =
6
 
7
  * Fix - Fixed issue with JS/CSS files not loading when WordPress URL is HTTPS but Site URL is not (our thanks to @carcal1 for first reporting this) [85017]
2
 
3
  == Changelog ==
4
 
5
+ = [4.5.11] 2017-08-24 =
6
+
7
+ * Fix - Ensure valid license keys save as expected [84966]
8
+ * Tweak - Removing WP Plugin API result adjustments
9
+
10
  = [4.5.10.1] 2017-08-16 =
11
 
12
  * Fix - Fixed issue with JS/CSS files not loading when WordPress URL is HTTPS but Site URL is not (our thanks to @carcal1 for first reporting this) [85017]
common/src/Tribe/Assets.php CHANGED
@@ -207,7 +207,7 @@ class Tribe__Assets {
207
  * If the file does not exist, returns false.
208
  *
209
  * @since 4.3
210
- * @since TBD Removed ability to pass a filepath as $url
211
  *
212
  * @param string $url The absolute URL to the un-minified file.
213
  *
207
  * If the file does not exist, returns false.
208
  *
209
  * @since 4.3
210
+ * @since 4.5.10 Removed ability to pass a filepath as $url
211
  *
212
  * @param string $url The absolute URL to the un-minified file.
213
  *
common/src/Tribe/JSON_LD/Abstract.php CHANGED
@@ -181,7 +181,7 @@ abstract class Tribe__JSON_LD__Abstract {
181
  * Children of this class are likely to override it with their
182
  * own functions that only work with their designated post type.
183
  *
184
- * @since TBD
185
  *
186
  * @param int|WP_Post $post The Post Object or ID
187
  *
181
  * Children of this class are likely to override it with their
182
  * own functions that only work with their designated post type.
183
  *
184
+ * @since 4.5.10
185
  *
186
  * @param int|WP_Post $post The Post Object or ID
187
  *
common/src/Tribe/Log.php CHANGED
@@ -12,6 +12,8 @@ class Tribe__Log {
12
  const WARNING = 'warning';
13
  const ERROR = 'error';
14
  const CLEANUP = 'tribe_common_log_cleanup';
 
 
15
 
16
  /**
17
  * @var Tribe__Log__Admin
@@ -131,14 +133,71 @@ class Tribe__Log {
131
  }
132
 
133
  /**
134
- * Adds an entry to the log (if it is at the appropriate level, etc).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
135
  *
136
  * This is simply a shorthand for calling log() on the current logger.
137
  */
138
  public function log( $entry, $type = self::DEBUG, $src = '' ) {
 
 
 
 
 
 
 
 
 
139
  if ( $this->should_log( $type ) ) {
140
  $this->get_current_logger()->log( $entry, $type, $src );
141
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
142
  }
143
 
144
  /**
12
  const WARNING = 'warning';
13
  const ERROR = 'error';
14
  const CLEANUP = 'tribe_common_log_cleanup';
15
+ const SUCCESS = 'success';
16
+ const COLORIZE = 'colorize';
17
 
18
  /**
19
  * @var Tribe__Log__Admin
133
  }
134
 
135
  /**
136
+ * Logs a successful operation.
137
+ *
138
+ * @param string $entry
139
+ * @param string $src
140
+ */
141
+ public function log_success( $entry, $src ) {
142
+ $this->log( $entry, self::SUCCESS, $src );
143
+ }
144
+
145
+ /**
146
+ * Logs an entry colorizing it.
147
+ *
148
+ * This will only apply to WP-CLI based logging.
149
+ *
150
+ * @param string $entry
151
+ * @param string $src
152
+ */
153
+ public function log_colorized( $entry, $src ) {
154
+ $this->log( $entry, self::COLORIZE, $src );
155
+ }
156
+
157
+ /**
158
+ * Adds an entry to the log (if it is at the appropriate level, etc) and outputs information using WP-CLI if available.
159
  *
160
  * This is simply a shorthand for calling log() on the current logger.
161
  */
162
  public function log( $entry, $type = self::DEBUG, $src = '' ) {
163
+ $original_type = $type;
164
+
165
+ // some levels are really just debug information
166
+ $debug_types = array( self::SUCCESS, self::COLORIZE );
167
+
168
+ if ( in_array( $type, $debug_types ) ) {
169
+ $type = self::DEBUG;
170
+ }
171
+
172
  if ( $this->should_log( $type ) ) {
173
  $this->get_current_logger()->log( $entry, $type, $src );
174
  }
175
+
176
+ // Only go further if we have WP_CLI
177
+ if ( ! class_exists( 'WP_CLI' ) ) {
178
+ return false;
179
+ }
180
+
181
+ // We are always logging to WP-CLI if available
182
+ switch ( $original_type ) {
183
+ case self::ERROR:
184
+ WP_CLI::error( $entry );
185
+ break;
186
+ case self::WARNING:
187
+ WP_CLI::warning( $entry );
188
+ break;
189
+ case self::SUCCESS:
190
+ WP_CLI::success( $entry );
191
+ break;
192
+ case self::DEBUG:
193
+ WP_CLI::debug( $entry, $src );
194
+ break;
195
+
196
+ case self::COLORIZE:
197
+ default:
198
+ WP_CLI::log( WP_CLI::colorize( $entry ) );
199
+ break;
200
+ }
201
  }
202
 
203
  /**
common/src/Tribe/Main.php CHANGED
@@ -17,13 +17,17 @@ class Tribe__Main {
17
  const OPTIONNAME = 'tribe_events_calendar_options';
18
  const OPTIONNAMENETWORK = 'tribe_events_calendar_network_options';
19
 
20
- const VERSION = '4.5.10.1';
21
 
22
  const FEED_URL = 'https://theeventscalendar.com/feed/';
23
 
24
  protected $plugin_context;
25
  protected $plugin_context_class;
26
  protected $doing_ajax = false;
 
 
 
 
27
  protected $log;
28
 
29
  /**
@@ -527,6 +531,7 @@ class Tribe__Main {
527
  tribe_singleton( 'tracker', 'Tribe__Tracker', array( 'hook' ) );
528
  tribe_singleton( 'chunker', 'Tribe__Meta__Chunker', array( 'set_post_types', 'hook' ) );
529
  tribe_singleton( 'cache', 'Tribe__Cache' );
530
- tribe_singleton( 'plugins.api', 'Tribe__Plugins_API', array( 'hook' ) );
 
531
  }
532
  }
17
  const OPTIONNAME = 'tribe_events_calendar_options';
18
  const OPTIONNAMENETWORK = 'tribe_events_calendar_network_options';
19
 
20
+ const VERSION = '4.5.11';
21
 
22
  const FEED_URL = 'https://theeventscalendar.com/feed/';
23
 
24
  protected $plugin_context;
25
  protected $plugin_context_class;
26
  protected $doing_ajax = false;
27
+
28
+ /**
29
+ * @var Tribe__Log
30
+ */
31
  protected $log;
32
 
33
  /**
531
  tribe_singleton( 'tracker', 'Tribe__Tracker', array( 'hook' ) );
532
  tribe_singleton( 'chunker', 'Tribe__Meta__Chunker', array( 'set_post_types', 'hook' ) );
533
  tribe_singleton( 'cache', 'Tribe__Cache' );
534
+ tribe_singleton( 'plugins.api', new Tribe__Plugins_API );
535
+ tribe_singleton( 'logger', array( $this, 'log' ) );
536
  }
537
  }
common/src/Tribe/PUE/Checker.php CHANGED
@@ -915,7 +915,7 @@ if ( ! class_exists( 'Tribe__PUE__Checker' ) ) {
915
  $response['message'] = $this->get_api_message( $plugin_info );
916
  $response['api_invalid'] = true;
917
  } else {
918
- $key_type = 'site';
919
 
920
  if ( $network ) {
921
  $key_type = 'network';
@@ -1462,7 +1462,7 @@ if ( ! class_exists( 'Tribe__PUE__Checker' ) ) {
1462
  $network_option = (boolean) $validated_field->field['network_option'];
1463
  }
1464
 
1465
- $key_type = 'site';
1466
 
1467
  if ( $network_option ) {
1468
  $key_type = 'network';
915
  $response['message'] = $this->get_api_message( $plugin_info );
916
  $response['api_invalid'] = true;
917
  } else {
918
+ $key_type = 'local';
919
 
920
  if ( $network ) {
921
  $key_type = 'network';
1462
  $network_option = (boolean) $validated_field->field['network_option'];
1463
  }
1464
 
1465
+ $key_type = 'local';
1466
 
1467
  if ( $network_option ) {
1468
  $key_type = 'network';
common/src/Tribe/Plugins_API.php CHANGED
@@ -12,191 +12,6 @@ class Tribe__Plugins_API {
12
  return tribe( 'plugins.api' );
13
  }
14
 
15
- /**
16
- * Setup hooks
17
- *
18
- * @since 4.5.3
19
- */
20
- public function hook() {
21
- add_filter( 'plugins_api_result', array( $this, 'filter_api_result' ), 10, 3 );
22
- add_filter( 'plugin_install_action_links', array( $this, 'filter_action_links' ), 10, 2 );
23
- }
24
-
25
- /**
26
- * Filters the action links for the plugin install page
27
- *
28
- * @since 4.5.3
29
- *
30
- * @param array $links Links for plugin
31
- * @param array $plugin Plugin data
32
- *
33
- * @return array
34
- */
35
- public function filter_action_links( $links, $plugin ) {
36
- if ( empty( $plugin['tribe-result'] ) ) {
37
- return $links;
38
- }
39
-
40
- if ( ! empty( $plugin['buy-now'] ) ) {
41
- // remove "more details" link from non-public plugins
42
- array_pop( $links );
43
-
44
- $link = '<a class="%s" target="_blank" data-slug="' . esc_attr( $plugin['slug'] ) . '" href="%s" aria-label="%s" data-name="' . esc_attr( $plugin['name'] ) . '">%s</a>';
45
-
46
- if ( ! empty( $links[0] ) && preg_match( '/install-now/', $links[0] ) ) {
47
- $links[0] = sprintf(
48
- $link,
49
- 'button',
50
- esc_url( $plugin['buy-now'] ),
51
- esc_attr( sprintf( __( 'Buy %s now', 'tribe-common' ), $plugin['name'] ) ),
52
- esc_html__( 'Buy Now', 'tribe-common' )
53
- );
54
- }
55
-
56
- $links[] = sprintf(
57
- $link,
58
- 'thickbox open-plugin-details-modal',
59
- esc_url( $plugin['buy-now'] . '#TB_iframe=true&width=600&height=550' ),
60
- esc_attr( sprintf( __( 'More information about %s', 'tribe-common' ), $plugin['name'] ) ),
61
- esc_html__( 'More Details', 'tribe-common' )
62
- );
63
- }
64
-
65
- return $links;
66
- }
67
-
68
- /**
69
- * Filter plugin fetching API results to inject our own plugins
70
- *
71
- * @since 4.5.3
72
- *
73
- * @param object|WP_Error $result Response object or WP_Error.
74
- * @param string $action The type of information being requested from the Plugin Install API.
75
- * @param object $args Plugin API arguments.
76
- *
77
- * @return array
78
- */
79
- public function filter_api_result( $result, $action, $args ) {
80
-
81
- if ( empty( $args->browse ) ) {
82
- return $result;
83
- }
84
-
85
- if ( 'featured' !== $args->browse && 'recommended' !== $args->browse ) {
86
- return $result;
87
- }
88
-
89
- if ( ! isset( $result->info['page'] ) || 1 < $result->info['page'] ) {
90
- return $result;
91
- }
92
-
93
- // grab all slugs from the api results
94
- $result_slugs = wp_list_pluck( $result->plugins, 'slug' );
95
-
96
- // get all of our products
97
- $products = $this->get_products();
98
-
99
- // we don't ever want to show event-aggregator as a plugin
100
- unset( $products['event-aggregator'] );
101
-
102
- $count = 0;
103
- $products_to_inject = array();
104
- foreach ( $products as $key => $product ) {
105
- $products[ $key ] = $product = $this->build_product_data( $product );
106
-
107
- // if the product is already installed, skip it
108
- if ( $product['is_installed'] ) {
109
- continue;
110
- }
111
-
112
- // if the product is already in the results, skip it
113
- if ( in_array( $product['slug'], $result_slugs ) ) {
114
- continue;
115
- }
116
-
117
- $products_to_inject[] = $product;
118
-
119
- $count++;
120
-
121
- if ( 3 === $count ) {
122
- break;
123
- }
124
- }
125
-
126
- // prepend the products that we wish to inject
127
- for ( $i = count( $products_to_inject ) - 1; 0 <= $i; $i-- ) {
128
- array_unshift( $result->plugins, $products_to_inject[ $i ] );
129
- }
130
-
131
- return $result;
132
- }
133
-
134
- /**
135
- * Convert our own product data to match API results
136
- *
137
- * @since 4.5.3
138
- *
139
- * @param array $product_data
140
- *
141
- * @return array
142
- */
143
- public function build_product_data( $product_data ) {
144
- $defaults = array(
145
- 'name' => null,
146
- 'slug' => null,
147
- 'version' => null,
148
- 'author' => '<a href="http://m.tri.be/19o3">Modern Tribe, Inc.</a>',
149
- 'author_profile' => null,
150
- 'requires' => '3.9',
151
- 'tested' => $GLOBALS['wp_version'],
152
- 'rating' => 100,
153
- 'ratings' => array(),
154
- 'num_ratings' => rand( 100, 800 ),
155
- 'support_threads' => null,
156
- 'support_threads_resolved' => null,
157
- 'active_installs' => 25000,
158
- 'downloaded' => null,
159
- 'last_updated' => date_i18n( 'Y-m-d' ),
160
- 'added' => null,
161
- 'homepage' => '',
162
- 'sections' => array(),
163
- 'short_description' => null,
164
- 'download_link' => '',
165
- 'screenshots' => array(),
166
- 'tags' => array(),
167
- 'versions' => array(),
168
- 'donate_link' => null,
169
- 'contributors' => array(),
170
- 'tribe-result' => true,
171
- 'icons' => array(
172
- 'default' => null,
173
- ),
174
- );
175
-
176
- $product = array_merge(
177
- $defaults,
178
- $product_data
179
- );
180
-
181
- if ( ! empty( $product['title'] ) && empty( $product['name'] ) ) {
182
- $product['name'] = $product['title'];
183
- }
184
-
185
- if ( ! empty( $product['description'] ) && empty( $product['short_description'] ) ) {
186
- $product['short_description'] = wp_trim_words( $product['description'], 27 );
187
- }
188
-
189
- if ( ! empty( $product['image'] ) && empty( $product['icons']['default'] ) ) {
190
- if ( 0 === strpos( $product['image'], 'http' ) ) {
191
- $product['icons']['default'] = $product['image'];
192
- } else {
193
- $product['icons']['default'] = Tribe__Main::instance()->plugin_url . '/src/resources/' . $product['image'];
194
- }
195
- }
196
-
197
- return $product;
198
- }
199
-
200
  /**
201
  * Get product info
202
  *
12
  return tribe( 'plugins.api' );
13
  }
14
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  /**
16
  * Get product info
17
  *
common/src/Tribe/REST/Main.php CHANGED
@@ -75,7 +75,7 @@ abstract class Tribe__REST__Main {
75
  if ( $this->use_builtin() ) {
76
  $url = get_rest_url( $blog_id, $tec_path, $scheme );
77
  } else {
78
- if ( is_multisite() && get_blog_option( $blog_id, 'permalink_structure' ) || get_option( 'permalink_structure' ) ) {
79
  global $wp_rewrite;
80
 
81
  if ( $wp_rewrite->using_index_permalinks() ) {
@@ -86,7 +86,7 @@ abstract class Tribe__REST__Main {
86
 
87
  $url .= '/' . ltrim( $path, '/' );
88
  } else {
89
- $url = trailingslashit( get_home_url( $blog_id, '', $scheme ) );
90
 
91
  $url = add_query_arg( 'rest_route', $tec_path, $url );
92
  }
75
  if ( $this->use_builtin() ) {
76
  $url = get_rest_url( $blog_id, $tec_path, $scheme );
77
  } else {
78
+ if ( ( is_multisite() && get_blog_option( $blog_id, 'permalink_structure' ) ) || get_option( 'permalink_structure' ) ) {
79
  global $wp_rewrite;
80
 
81
  if ( $wp_rewrite->using_index_permalinks() ) {
86
 
87
  $url .= '/' . ltrim( $path, '/' );
88
  } else {
89
+ $url = get_home_url( $blog_id, 'index.php', $scheme );
90
 
91
  $url = add_query_arg( 'rest_route', $tec_path, $url );
92
  }
common/src/resources/css/datatables.css CHANGED
@@ -331,8 +331,6 @@ table.dataTable,
331
  text-align: center;
332
  font-size: 1.2em;
333
  background-color: white;
334
- background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(25%, rgba(255, 255, 255, .9)), color-stop(75%, rgba(255, 255, 255, .9)), color-stop(100%, rgba(255, 255, 255, 0)));
335
- background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, .9) 25%, rgba(255, 255, 255, .9) 75%, rgba(255, 255, 255, 0) 100%);
336
  background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, .9) 25%, rgba(255, 255, 255, .9) 75%, rgba(255, 255, 255, 0) 100%);
337
  }
338
  .dataTables_wrapper .dataTables_length,
331
  text-align: center;
332
  font-size: 1.2em;
333
  background-color: white;
 
 
334
  background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, .9) 25%, rgba(255, 255, 255, .9) 75%, rgba(255, 255, 255, 0) 100%);
335
  }
336
  .dataTables_wrapper .dataTables_length,
common/src/resources/css/datatables.min.css CHANGED
@@ -1 +1 @@
1
- table.dataTable{border-collapse:separate;border-spacing:0;clear:both;margin:0 auto;width:100%}table.dataTable thead td:active,table.dataTable thead th:active{outline:none}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc{cursor:pointer;cursor:hand}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_desc_disabled{background-position:100%;background-repeat:no-repeat}table.dataTable thead .sorting{background-image:url(../../../vendor/datatables/media/images/sort_both.png)}table.dataTable thead .sorting_asc{background-image:url(../../../vendor/datatables/media/images/sort_asc.png)}table.dataTable thead .sorting_desc{background-image:url(../../../vendor/datatables/media/images/sort_desc.png)}table.dataTable thead .sorting_asc_disabled{background-image:url(../../../vendor/datatables/media/images/sort_asc_disabled.png)}table.dataTable thead .sorting_desc_disabled{background-image:url(../../../vendor/datatables/media/images/sort_desc_disabled.png)}table.dataTable.widefat tfoot td input,table.dataTable.widefat tfoot th input,table.dataTable.widefat thead td input,table.dataTable.widefat thead th input{margin:0 0 0 8px;vertical-align:text-top}table.dataTable.widefat tfoot td.check-column,table.dataTable.widefat thead td.check-column{padding-top:4px;vertical-align:middle}table.dataTable.widefat tbody th.check-column,table.dataTable.widefat tfoot th.check-column,table.dataTable.widefat thead th.check-column{padding:11px 0 0 3px}table.dataTable .check-column{width:2.2em}table.dataTable.display tbody td,table.dataTable.display tbody th,table.dataTable.row-border tbody td,table.dataTable.row-border tbody th{border-top:1px solid #ddd}table.dataTable.display tbody tr:first-child td,table.dataTable.display tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td,table.dataTable.row-border tbody tr:first-child th{border-top:none}table.dataTable.cell-border tbody td,table.dataTable.cell-border tbody th{border-top:1px solid #ddd;border-right:1px solid #ddd}table.dataTable.cell-border tbody tr td:first-child,table.dataTable.cell-border tbody tr th:first-child{border-left:1px solid #ddd}table.dataTable.cell-border tbody tr:first-child td,table.dataTable.cell-border tbody tr:first-child th{border-top:none}table.dataTable.display tbody tr.odd,table.dataTable.stripe tbody tr.odd{background-color:#f9f9f9}table.dataTable.display tbody tr:hover,table.dataTable.hover tbody tr:hover{background-color:#f6f6f6}table.dataTable.display tbody tr>.sorting_1,table.dataTable.display tbody tr>.sorting_2,table.dataTable.display tbody tr>.sorting_3,table.dataTable.order-column tbody tr>.sorting_1,table.dataTable.order-column tbody tr>.sorting_2,table.dataTable.order-column tbody tr>.sorting_3{background-color:#fafafa}table.dataTable.display tbody tr.odd>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.display tbody tr.odd>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.display tbody tr.odd>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:#f5f5f5}table.dataTable.display tbody tr.even>.sorting_1,table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#fafafa}table.dataTable.display tbody tr.even>.sorting_2,table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fcfcfc}table.dataTable.display tbody tr.even>.sorting_3,table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fefefe}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:#eaeaea}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:#ececec}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:#efefef}table.dataTable.no-footer{border-bottom:1px solid #111}table.dataTable.nowrap td,table.dataTable.nowrap th{white-space:nowrap}table.dataTable.compact thead td,table.dataTable.compact thead th{padding:4px 17px 4px 4px}table.dataTable.compact tbody td,table.dataTable.compact tbody th,table.dataTable.compact tfoot td,table.dataTable.compact tfoot th{padding:4px}table.dataTable td.dt-left,table.dataTable th.dt-left{text-align:left}table.dataTable td.dataTables_empty,table.dataTable td.dt-center,table.dataTable th.dt-center{text-align:center}table.dataTable td.dt-right,table.dataTable th.dt-right{text-align:right}table.dataTable td.dt-justify,table.dataTable th.dt-justify{text-align:justify}table.dataTable td.dt-nowrap,table.dataTable th.dt-nowrap{white-space:nowrap}table.dataTable tfoot td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable thead th.dt-head-left{text-align:left}table.dataTable tfoot td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable thead th.dt-head-center{text-align:center}table.dataTable tfoot td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable thead th.dt-head-right{text-align:right}table.dataTable tfoot td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable thead th.dt-head-justify{text-align:justify}table.dataTable tfoot td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable thead th.dt-head-nowrap{white-space:nowrap}table.dataTable tbody td.dt-body-left,table.dataTable tbody th.dt-body-left{text-align:left}table.dataTable tbody td.dt-body-center,table.dataTable tbody th.dt-body-center{text-align:center}table.dataTable tbody td.dt-body-right,table.dataTable tbody th.dt-body-right{text-align:right}table.dataTable tbody td.dt-body-justify,table.dataTable tbody th.dt-body-justify{text-align:justify}table.dataTable tbody td.dt-body-nowrap,table.dataTable tbody th.dt-body-nowrap{white-space:nowrap}table.dataTable,table.dataTable td,table.dataTable th{box-sizing:content-box}.dataTables_wrapper{clear:both;position:relative;zoom:1}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{margin-left:.5em}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:.755em}.dataTables_wrapper .dataTables_paginate{float:right;padding-top:.25em;text-align:right}.dataTables_wrapper .dataTables_paginate .paginate_button{border:1px solid transparent;border-radius:3px;box-shadow:none;box-sizing:border-box;color:#555;cursor:pointer;display:inline-block;font-size:13px;height:28px;line-height:26px;margin:0 0 0 2px;padding:0 10px 1px;text-decoration:none;vertical-align:top;white-space:nowrap}.dataTables_wrapper .dataTables_paginate .paginate_button:active,.dataTables_wrapper .dataTables_paginate .paginate_button:hover{background:#fafafa;border-color:#999;color:#23282d}.dataTables_wrapper .dataTables_paginate .paginate_button.next,.dataTables_wrapper .dataTables_paginate .paginate_button.previous{background:transparent;border-color:transparent;box-shadow:none;color:#23282d}.dataTables_wrapper .dataTables_paginate .paginate_button.next.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.previous.disabled{background:transparent;border-color:transparent;box-shadow:none}.dataTables_wrapper .dataTables_paginate .paginate_button.next.disabled:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.previous.disabled:hover{background:transparent;border-color:transparent;box-shadow:none;text-decoration:none}.dataTables_wrapper .dataTables_paginate .paginate_button.next:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.previous:hover{color:#222;text-decoration:underline}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{background:#fcfcfc;border-color:#999;box-shadow:0 1px 0 #ccc;color:#23282d;text-decoration:none}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover{background:#f7f7f7;border-color:#ddd;box-shadow:none;color:#a0a5aa;cursor:default;text-shadow:0 1px 0 #fff;-webkit-transform:none;transform:none}.dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:#fff;background:-webkit-gradient(linear,left top,right top,color-stop(0,hsla(0,0%,100%,0)),color-stop(25%,hsla(0,0%,100%,.9)),color-stop(75%,hsla(0,0%,100%,.9)),color-stop(100%,hsla(0,0%,100%,0)));background:-webkit-linear-gradient(left,hsla(0,0%,100%,0),hsla(0,0%,100%,.9) 25%,hsla(0,0%,100%,.9) 75%,hsla(0,0%,100%,0));background:linear-gradient(90deg,hsla(0,0%,100%,0) 0,hsla(0,0%,100%,.9) 25%,hsla(0,0%,100%,.9) 75%,hsla(0,0%,100%,0))}.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_paginate,.dataTables_wrapper .dataTables_processing{color:#333}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{margin-top:-1px;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th{vertical-align:middle}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th>div.dataTables_sizing,.dataTables_wrapper .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td>div.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid #111}.dataTables_wrapper.no-footer div.dataTables_scrollBody table,.dataTables_wrapper.no-footer div.dataTables_scrollHead table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width:767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none;text-align:center}.dataTables_wrapper .dataTables_paginate{margin-top:.5em}}@media screen and (max-width:640px){.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_length{float:none;text-align:center}.dataTables_wrapper .dataTables_filter{margin-top:.5em}}
1
+ table.dataTable{border-collapse:separate;border-spacing:0;clear:both;margin:0 auto;width:100%}table.dataTable thead td:active,table.dataTable thead th:active{outline:none}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc{cursor:pointer;cursor:hand}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_desc_disabled{background-position:100%;background-repeat:no-repeat}table.dataTable thead .sorting{background-image:url(../../../vendor/datatables/media/images/sort_both.png)}table.dataTable thead .sorting_asc{background-image:url(../../../vendor/datatables/media/images/sort_asc.png)}table.dataTable thead .sorting_desc{background-image:url(../../../vendor/datatables/media/images/sort_desc.png)}table.dataTable thead .sorting_asc_disabled{background-image:url(../../../vendor/datatables/media/images/sort_asc_disabled.png)}table.dataTable thead .sorting_desc_disabled{background-image:url(../../../vendor/datatables/media/images/sort_desc_disabled.png)}table.dataTable.widefat tfoot td input,table.dataTable.widefat tfoot th input,table.dataTable.widefat thead td input,table.dataTable.widefat thead th input{margin:0 0 0 8px;vertical-align:text-top}table.dataTable.widefat tfoot td.check-column,table.dataTable.widefat thead td.check-column{padding-top:4px;vertical-align:middle}table.dataTable.widefat tbody th.check-column,table.dataTable.widefat tfoot th.check-column,table.dataTable.widefat thead th.check-column{padding:11px 0 0 3px}table.dataTable .check-column{width:2.2em}table.dataTable.display tbody td,table.dataTable.display tbody th,table.dataTable.row-border tbody td,table.dataTable.row-border tbody th{border-top:1px solid #ddd}table.dataTable.display tbody tr:first-child td,table.dataTable.display tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td,table.dataTable.row-border tbody tr:first-child th{border-top:none}table.dataTable.cell-border tbody td,table.dataTable.cell-border tbody th{border-top:1px solid #ddd;border-right:1px solid #ddd}table.dataTable.cell-border tbody tr td:first-child,table.dataTable.cell-border tbody tr th:first-child{border-left:1px solid #ddd}table.dataTable.cell-border tbody tr:first-child td,table.dataTable.cell-border tbody tr:first-child th{border-top:none}table.dataTable.display tbody tr.odd,table.dataTable.stripe tbody tr.odd{background-color:#f9f9f9}table.dataTable.display tbody tr:hover,table.dataTable.hover tbody tr:hover{background-color:#f6f6f6}table.dataTable.display tbody tr>.sorting_1,table.dataTable.display tbody tr>.sorting_2,table.dataTable.display tbody tr>.sorting_3,table.dataTable.order-column tbody tr>.sorting_1,table.dataTable.order-column tbody tr>.sorting_2,table.dataTable.order-column tbody tr>.sorting_3{background-color:#fafafa}table.dataTable.display tbody tr.odd>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.display tbody tr.odd>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.display tbody tr.odd>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:#f5f5f5}table.dataTable.display tbody tr.even>.sorting_1,table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#fafafa}table.dataTable.display tbody tr.even>.sorting_2,table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fcfcfc}table.dataTable.display tbody tr.even>.sorting_3,table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fefefe}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:#eaeaea}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:#ececec}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:#efefef}table.dataTable.no-footer{border-bottom:1px solid #111}table.dataTable.nowrap td,table.dataTable.nowrap th{white-space:nowrap}table.dataTable.compact thead td,table.dataTable.compact thead th{padding:4px 17px 4px 4px}table.dataTable.compact tbody td,table.dataTable.compact tbody th,table.dataTable.compact tfoot td,table.dataTable.compact tfoot th{padding:4px}table.dataTable td.dt-left,table.dataTable th.dt-left{text-align:left}table.dataTable td.dataTables_empty,table.dataTable td.dt-center,table.dataTable th.dt-center{text-align:center}table.dataTable td.dt-right,table.dataTable th.dt-right{text-align:right}table.dataTable td.dt-justify,table.dataTable th.dt-justify{text-align:justify}table.dataTable td.dt-nowrap,table.dataTable th.dt-nowrap{white-space:nowrap}table.dataTable tfoot td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable thead th.dt-head-left{text-align:left}table.dataTable tfoot td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable thead th.dt-head-center{text-align:center}table.dataTable tfoot td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable thead th.dt-head-right{text-align:right}table.dataTable tfoot td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable thead th.dt-head-justify{text-align:justify}table.dataTable tfoot td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable thead th.dt-head-nowrap{white-space:nowrap}table.dataTable tbody td.dt-body-left,table.dataTable tbody th.dt-body-left{text-align:left}table.dataTable tbody td.dt-body-center,table.dataTable tbody th.dt-body-center{text-align:center}table.dataTable tbody td.dt-body-right,table.dataTable tbody th.dt-body-right{text-align:right}table.dataTable tbody td.dt-body-justify,table.dataTable tbody th.dt-body-justify{text-align:justify}table.dataTable tbody td.dt-body-nowrap,table.dataTable tbody th.dt-body-nowrap{white-space:nowrap}table.dataTable,table.dataTable td,table.dataTable th{box-sizing:content-box}.dataTables_wrapper{clear:both;position:relative;zoom:1}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{margin-left:.5em}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:.755em}.dataTables_wrapper .dataTables_paginate{float:right;padding-top:.25em;text-align:right}.dataTables_wrapper .dataTables_paginate .paginate_button{border:1px solid transparent;border-radius:3px;box-shadow:none;box-sizing:border-box;color:#555;cursor:pointer;display:inline-block;font-size:13px;height:28px;line-height:26px;margin:0 0 0 2px;padding:0 10px 1px;text-decoration:none;vertical-align:top;white-space:nowrap}.dataTables_wrapper .dataTables_paginate .paginate_button:active,.dataTables_wrapper .dataTables_paginate .paginate_button:hover{background:#fafafa;border-color:#999;color:#23282d}.dataTables_wrapper .dataTables_paginate .paginate_button.next,.dataTables_wrapper .dataTables_paginate .paginate_button.previous{background:transparent;border-color:transparent;box-shadow:none;color:#23282d}.dataTables_wrapper .dataTables_paginate .paginate_button.next.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.previous.disabled{background:transparent;border-color:transparent;box-shadow:none}.dataTables_wrapper .dataTables_paginate .paginate_button.next.disabled:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.previous.disabled:hover{background:transparent;border-color:transparent;box-shadow:none;text-decoration:none}.dataTables_wrapper .dataTables_paginate .paginate_button.next:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.previous:hover{color:#222;text-decoration:underline}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{background:#fcfcfc;border-color:#999;box-shadow:0 1px 0 #ccc;color:#23282d;text-decoration:none}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover{background:#f7f7f7;border-color:#ddd;box-shadow:none;color:#a0a5aa;cursor:default;text-shadow:0 1px 0 #fff;-webkit-transform:none;transform:none}.dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:#fff;background:linear-gradient(90deg,hsla(0,0%,100%,0) 0,hsla(0,0%,100%,.9) 25%,hsla(0,0%,100%,.9) 75%,hsla(0,0%,100%,0))}.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_paginate,.dataTables_wrapper .dataTables_processing{color:#333}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{margin-top:-1px;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th{vertical-align:middle}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th>div.dataTables_sizing,.dataTables_wrapper .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td>div.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid #111}.dataTables_wrapper.no-footer div.dataTables_scrollBody table,.dataTables_wrapper.no-footer div.dataTables_scrollHead table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width:767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none;text-align:center}.dataTables_wrapper .dataTables_paginate{margin-top:.5em}}@media screen and (max-width:640px){.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_length{float:none;text-align:center}.dataTables_wrapper .dataTables_filter{margin-top:.5em}}
common/src/resources/css/datepicker.css CHANGED
@@ -213,7 +213,6 @@ a.ui-state-active {
213
  }
214
 
215
  button.ui-datepicker-close {
216
- background: -webkit-linear-gradient(96deg, rgba(10, 85, 160, 1.00) 0%, rgba(18, 136, 235, 1.00) 100%);
217
  background: linear-gradient(354deg, rgba(10, 85, 160, 1.00) 0%, rgba(18, 136, 235, 1.00) 100%);
218
  border: 1px solid #0085ba;
219
  color: #fff !important;
@@ -350,7 +349,6 @@ a.ui-button:focus {
350
  a.ui-button:active,
351
  .ui-button:active,
352
  .ui-button.ui-state-active:hover {
353
- background: -webkit-linear-gradient(96deg, rgba(10, 85, 160, 1.00) 0%, rgba(18, 136, 235, 1.00) 100%);
354
  background: linear-gradient(354deg, rgba(10, 85, 160, 1.00) 0%, rgba(18, 136, 235, 1.00) 100%);
355
  color: #fff;
356
  }
213
  }
214
 
215
  button.ui-datepicker-close {
 
216
  background: linear-gradient(354deg, rgba(10, 85, 160, 1.00) 0%, rgba(18, 136, 235, 1.00) 100%);
217
  border: 1px solid #0085ba;
218
  color: #fff !important;
349
  a.ui-button:active,
350
  .ui-button:active,
351
  .ui-button.ui-state-active:hover {
 
352
  background: linear-gradient(354deg, rgba(10, 85, 160, 1.00) 0%, rgba(18, 136, 235, 1.00) 100%);
353
  color: #fff;
354
  }
common/src/resources/css/datepicker.min.css CHANGED
@@ -1 +1 @@
1
- .ui-datepicker body,.ui-datepicker button,.ui-datepicker input,.ui-datepicker select,.ui-datepicker textarea{font-family:Verdana,Helvetica Neue,Helvetica,Arial,sans-serif}.ui-datepicker table{border:none}.ui-datepicker-month{font-weight:700}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-4px;margin-top:-.25rem;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-datepicker{background:#fff;box-shadow:1px 1px 5px rgba(0,0,0,.5);width:17em;padding:1em;display:none}.ui-datepicker .ui-datepicker-header{margin-bottom:16px;margin-bottom:1rem;position:relative;padding:0}.ui-datepicker .ui-datepicker-next,.ui-datepicker .ui-datepicker-prev{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.ui-datepicker .ui-datepicker-prev:before{color:#b1b1b1;content:"\2190";cursor:pointer}.ui-datepicker .ui-datepicker-prev:hover:before{color:#000}.ui-datepicker .ui-datepicker-next:before{color:#b1b1b1;content:"\2192";cursor:pointer}.ui-datepicker .ui-datepicker-next:hover:before{color:#000}.ui-datepicker-next-hover,.ui-datepicker-prev-hover{color:darken(#b1b1b1,10%)}.ui-datepicker .ui-datepicker-prev{left:1px}.ui-datepicker .ui-datepicker-next{right:1px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8;text-align:center}select.ui-datepicker-month,select.ui-datepicker-year{border:none;box-shadow:0 1px 0 rgba(0,0,0,.1);margin-right:1px;width:72px;width:4.5rem}.ui-datepicker table{width:100%;font-size:14.4px;font-size:.9rem;border-collapse:collapse;margin:0 0 6.4px;margin:0 0 .4rem}.ui-datepicker th{color:#b1b1b1;padding:11.2px 4.8px;padding:.7rem .3rem;text-align:center;border:0}.ui-datepicker-calendar td{border:1px solid #ddd;padding:1px}td.ui-datepicker-unselectable{border:none}a.ui-state-active{background:#0085ba;color:#fff}.ui-datepicker td a,.ui-datepicker td span{display:block;padding:8px 3.2px;padding:.5rem .2rem;text-align:center;text-decoration:none}.ui-datepicker-buttonpane{background-image:none;margin:11.2px 0 0;margin:.7rem 0 0;padding:0 3.2px;padding:0 .2rem;border-left:0;border-right:0;border-bottom:0}.ui-datepicker-buttonpane button{float:right;margin:8px 3.2px 6.4px;margin:.5rem .2rem .4rem;cursor:pointer;padding:3.2px 9.6px 4.8px;padding:.2rem .6rem .3rem;width:auto;overflow:visible}.ui-datepicker-buttonpane button.ui-datepicker-current{float:left;background:#fff;border:1px solid #b1b1b1}button.ui-datepicker-close{background:-webkit-linear-gradient(96deg,#0a55a0,#1288eb);background:linear-gradient(354deg,#0a55a0,#1288eb);border:1px solid #0085ba;color:#fff!important;font-weight:400}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto 6.4px;margin:0 auto .4rem}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-widget{font-size:19.2px;font-size:1.2rem}.ui-widget .ui-widget,.ui-widget button,.ui-widget input,.ui-widget select,.ui-widget textarea{font-size:16px;font-size:1rem}.ui-button,.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-content a,.ui-widget-header .ui-state-default,.ui-widget-header a,html .ui-button.ui-state-disabled:active,html .ui-button.ui-state-disabled:hover{color:#23282d}.ui-button,.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button{color:#23282d;text-decoration:none}.ui-button:focus,.ui-button:hover,.ui-state-focus,.ui-state-hover,.ui-widget-content .ui-state-focus,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-focus,.ui-widget-header .ui-state-hover{color:#000}.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,a.ui-button:focus,a.ui-button:hover{color:#b1b1b1;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px #5e9ed6}.ui-button.ui-state-active:hover,.ui-button:active,.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active{background:-webkit-linear-gradient(96deg,#0a55a0,#1288eb);background:linear-gradient(354deg,#0a55a0,#1288eb);color:#fff}.ui-icon-background,.ui-state-active .ui-icon-background{border:#ddd;background-color:#1c94c4}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#23282d;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{background:#fff;color:#363636}.ui-state-checked{background:#fff}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{background:#b81900;color:#fff}.ui-state-error-text,.ui-state-error a,.ui-widget-content .ui-state-error-text,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error-text,.ui-widget-header .ui-state-error a{color:#fff}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:400}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-corner-all,.ui-corner-left,.ui-corner-tl,.ui-corner-top{border-top-left-radius:4px}.ui-corner-all,.ui-corner-right,.ui-corner-top,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bl,.ui-corner-bottom,.ui-corner-left{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-br,.ui-corner-right{border-bottom-right-radius:4px}.ui-widget-overlay{background:#666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat;opacity:.5;filter:Alpha(Opacity=50)}.ui-widget-shadow{box-shadow:-5px -5px 5px #000}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:after,.ui-helper-clearfix:before{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}
1
+ .ui-datepicker body,.ui-datepicker button,.ui-datepicker input,.ui-datepicker select,.ui-datepicker textarea{font-family:Verdana,Helvetica Neue,Helvetica,Arial,sans-serif}.ui-datepicker table{border:none}.ui-datepicker-month{font-weight:700}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-4px;margin-top:-.25rem;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-datepicker{background:#fff;box-shadow:1px 1px 5px rgba(0,0,0,.5);width:17em;padding:1em;display:none}.ui-datepicker .ui-datepicker-header{margin-bottom:16px;margin-bottom:1rem;position:relative;padding:0}.ui-datepicker .ui-datepicker-next,.ui-datepicker .ui-datepicker-prev{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.ui-datepicker .ui-datepicker-prev:before{color:#b1b1b1;content:"\2190";cursor:pointer}.ui-datepicker .ui-datepicker-prev:hover:before{color:#000}.ui-datepicker .ui-datepicker-next:before{color:#b1b1b1;content:"\2192";cursor:pointer}.ui-datepicker .ui-datepicker-next:hover:before{color:#000}.ui-datepicker-next-hover,.ui-datepicker-prev-hover{color:darken(#b1b1b1,10%)}.ui-datepicker .ui-datepicker-prev{left:1px}.ui-datepicker .ui-datepicker-next{right:1px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8;text-align:center}select.ui-datepicker-month,select.ui-datepicker-year{border:none;box-shadow:0 1px 0 rgba(0,0,0,.1);margin-right:1px;width:72px;width:4.5rem}.ui-datepicker table{width:100%;font-size:14.4px;font-size:.9rem;border-collapse:collapse;margin:0 0 6.4px;margin:0 0 .4rem}.ui-datepicker th{color:#b1b1b1;padding:11.2px 4.8px;padding:.7rem .3rem;text-align:center;border:0}.ui-datepicker-calendar td{border:1px solid #ddd;padding:1px}td.ui-datepicker-unselectable{border:none}a.ui-state-active{background:#0085ba;color:#fff}.ui-datepicker td a,.ui-datepicker td span{display:block;padding:8px 3.2px;padding:.5rem .2rem;text-align:center;text-decoration:none}.ui-datepicker-buttonpane{background-image:none;margin:11.2px 0 0;margin:.7rem 0 0;padding:0 3.2px;padding:0 .2rem;border-left:0;border-right:0;border-bottom:0}.ui-datepicker-buttonpane button{float:right;margin:8px 3.2px 6.4px;margin:.5rem .2rem .4rem;cursor:pointer;padding:3.2px 9.6px 4.8px;padding:.2rem .6rem .3rem;width:auto;overflow:visible}.ui-datepicker-buttonpane button.ui-datepicker-current{float:left;background:#fff;border:1px solid #b1b1b1}button.ui-datepicker-close{background:linear-gradient(354deg,#0a55a0,#1288eb);border:1px solid #0085ba;color:#fff!important;font-weight:400}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto 6.4px;margin:0 auto .4rem}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-widget{font-size:19.2px;font-size:1.2rem}.ui-widget .ui-widget,.ui-widget button,.ui-widget input,.ui-widget select,.ui-widget textarea{font-size:16px;font-size:1rem}.ui-button,.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-content a,.ui-widget-header .ui-state-default,.ui-widget-header a,html .ui-button.ui-state-disabled:active,html .ui-button.ui-state-disabled:hover{color:#23282d}.ui-button,.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button{color:#23282d;text-decoration:none}.ui-button:focus,.ui-button:hover,.ui-state-focus,.ui-state-hover,.ui-widget-content .ui-state-focus,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-focus,.ui-widget-header .ui-state-hover{color:#000}.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,a.ui-button:focus,a.ui-button:hover{color:#b1b1b1;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px #5e9ed6}.ui-button.ui-state-active:hover,.ui-button:active,.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active{background:linear-gradient(354deg,#0a55a0,#1288eb);color:#fff}.ui-icon-background,.ui-state-active .ui-icon-background{border:#ddd;background-color:#1c94c4}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#23282d;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{background:#fff;color:#363636}.ui-state-checked{background:#fff}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{background:#b81900;color:#fff}.ui-state-error-text,.ui-state-error a,.ui-widget-content .ui-state-error-text,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error-text,.ui-widget-header .ui-state-error a{color:#fff}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:400}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-corner-all,.ui-corner-left,.ui-corner-tl,.ui-corner-top{border-top-left-radius:4px}.ui-corner-all,.ui-corner-right,.ui-corner-top,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bl,.ui-corner-bottom,.ui-corner-left{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-br,.ui-corner-right{border-bottom-right-radius:4px}.ui-widget-overlay{background:#666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat;opacity:.5;filter:Alpha(Opacity=50)}.ui-widget-shadow{box-shadow:-5px -5px 5px #000}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:after,.ui-helper-clearfix:before{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}
common/src/resources/css/tribe-common-admin.css CHANGED
@@ -433,12 +433,10 @@ table.plugins .tribe-plugin-update-message a {
433
  }
434
  #tribe-log-controls .working {
435
  opacity: 1;
436
- -webkit-transition: opacity 0.2s;
437
  transition: opacity 0.2s;
438
  }
439
  #tribe-log-controls .working.hidden {
440
  opacity: 0;
441
- -webkit-transition: opacity 0.2s;
442
  transition: opacity 0.2s;
443
  }
444
  #tribe-system-info dl.support-stats,
@@ -697,7 +695,6 @@ table.plugins .tribe-plugin-update-message a {
697
  left: 0;
698
  position: absolute;
699
  top: 0;
700
- -webkit-transition: all 1s linear;
701
  transition: all 1s linear;
702
  webkit-transition: all 1s linear;
703
  width: 100%;
@@ -862,7 +859,6 @@ a.tribe-rating-link {
862
  #tribe-dialog-wrapper .select-single-container label {
863
  opacity: 1;
864
  padding: 3px 5px;
865
- -webkit-transition: opacity 0.2s;
866
  transition: opacity 0.2s;
867
  }
868
  #tribe-dialog-wrapper .select-single-container label:nth-child(odd) {
@@ -878,7 +874,6 @@ a.tribe-rating-link {
878
  }
879
  #tribe-dialog-wrapper .select-single-container.updating label {
880
  opacity: 0.35;
881
- -webkit-transition: opacity 0.2s;
882
  transition: opacity 0.2s;
883
  }
884
  /* Useful to ensure modals rise above the grey 'miasma' */
@@ -1008,7 +1003,6 @@ a.tribe-rating-link {
1008
  .tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-choice-close, .tribe-dropdown.select2-container-multi .select2-choices .select2-search-choice-close {
1009
  top: 3px;
1010
  left: 4px;
1011
- -webkit-transition-property: border,color;
1012
  transition-property: border,color;
1013
  }
1014
  .select2-results .select2-selected {
433
  }
434
  #tribe-log-controls .working {
435
  opacity: 1;
 
436
  transition: opacity 0.2s;
437
  }
438
  #tribe-log-controls .working.hidden {
439
  opacity: 0;
 
440
  transition: opacity 0.2s;
441
  }
442
  #tribe-system-info dl.support-stats,
695
  left: 0;
696
  position: absolute;
697
  top: 0;
 
698
  transition: all 1s linear;
699
  webkit-transition: all 1s linear;
700
  width: 100%;
859
  #tribe-dialog-wrapper .select-single-container label {
860
  opacity: 1;
861
  padding: 3px 5px;
 
862
  transition: opacity 0.2s;
863
  }
864
  #tribe-dialog-wrapper .select-single-container label:nth-child(odd) {
874
  }
875
  #tribe-dialog-wrapper .select-single-container.updating label {
876
  opacity: 0.35;
 
877
  transition: opacity 0.2s;
878
  }
879
  /* Useful to ensure modals rise above the grey 'miasma' */
1003
  .tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-choice-close, .tribe-dropdown.select2-container-multi .select2-choices .select2-search-choice-close {
1004
  top: 3px;
1005
  left: 4px;
 
1006
  transition-property: border,color;
1007
  }
1008
  .select2-results .select2-selected {
common/src/resources/css/tribe-common-admin.min.css CHANGED
@@ -1 +1 @@
1
- .invalid input{border:2px solid red!important}.valid input{border:1px solid green}.clearfix{zoom:1}.placeholder{color:#999;cursor:text;padding:4px}input:placeholder,textarea:placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.bubble{-khtml-border-radius:3px;background-color:#f9f9f9;border:1px solid #dfdfdf;border-radius:3px;border-spacing:0;border-style:solid;padding:10px}.tribe-sticky-tooltip{color:#bbb}td.tribe_message{padding-bottom:10px!important}#tribe_thanks{float:left;margin:5px 0 0;width:200px}.tribe_brand{font-family:Georgia!important;font-size:17px!important;font-weight:400;margin:8px 0}#tribe-upgrade{background:#f6f6f6;border:1px solid #ccc;border-radius:5px;margin:20px 0 30px;padding:0 20px 20px}#tribe-upgrade .message{background-color:#ffffe0;border:1px solid #e6db55;border-radius:3px;padding:6px 12px}table.plugins .tribe-plugin-update-message{background:#d54e21;color:#fff;display:inline-table;margin:6px 0;padding:10px 12px}table.plugins .tribe-plugin-update-message h4{display:inline;font-weight:700;margin-right:8px}table.plugins .tribe-plugin-update-message h4:after{content:" \00BB "}table.plugins .tribe-plugin-update-message a{color:#fff;text-decoration:underline}.tribe-settings-form{max-width:1000px}.tribe-settings-form fieldset{clear:both;display:inline-block;padding:10px 0}.tribe-settings-form legend{float:left;font-weight:700;margin-right:20px;width:220px}.tribe-settings-form fieldset.tribe-field-license_key legend{width:auto}.tribe-settings-form .tribe-field-wrap{float:left;max-width:500px}.tribe-settings-form .tribe-field-wrap :first-child{margin-top:0}.tribe-settings-form .tribe-field-checkbox_list label,.tribe-settings-form .tribe-field-radio label{display:block;margin:5px 0 5px 20px;text-indent:-20px}.tribe-settings-form .tribe-field-checkbox_list label input,.tribe-settings-form .tribe-field-radio label input{margin-right:5px}.tribe-settings-form .tribe-settings-form-wrap .description,.tribe-settings-form .tribe-settings-form-wrap fieldset,.tribe-settings-form fieldset[id^=tribe-field-geoloc_]{padding-left:12px}.tribe-settings-form .tribe-settings-form-wrap fieldset .description{margin-left:0;max-width:450px;padding-left:0}.tribe-settings-form .tribe-settings-form-wrap h3{background-color:#f9f9f9;margin-bottom:10px;padding:6px 0 6px 12px}.tribe-settings-form .tribe-settings-form-wrap .system-info,.tribe-settings-form .tribe-settings-form-wrap .tribe-sysinfo-optin-msg,.tribe-settings-form .tribe-settings-form-wrap h3+p{margin:0 0 10px;padding-left:12px}.tribe_settings .tribe-field-indent{margin-left:245px}.tribe_settings #pu_dashboard_message{display:none}.tribe_settings .tribe-errors-list{margin-left:15px}.tribe_settings .expiring-license{color:red}.tribe_settings .tribe-error{border:1px solid red}.tribe_settings .tribe-field-description{margin-bottom:0;position:relative;top:-12px}.tribe_settings #ical-link{top:-14px}.tribe-settings-form #tribe-field-stylesheetOption label{margin-left:20px}.tribe-settings-form #tribe-field-stylesheetOption input{margin-left:-20px;margin-right:8px}.tribe-settings-form #tribe-field-stylesheetOption p.description{color:#999}#modern-tribe-info{-khtml-border-radius:4px;background-color:#f9f9f9;border:1px solid #ccc;border-radius:4px;margin:20px 0;padding:8px 20px 12px}#modern-tribe-info img{height:18px;margin:10px 0;width:250px}#modern-tribe-info ul{list-style:disc;margin-left:20px}#modern-tribe-info ul ul{list-style:circle}.tribe-field-inline-dropdown{margin-left:0;margin-right:0}.tribe-field-inline-text{line-height:28px;margin:0 2px}.tribe-field-textarea.tribe-size-small textarea{height:60px;width:180px}.tribe-field-textarea.tribe-size-medium textarea{height:80px;width:300px}.tribe-field-textarea.tribe-size-large textarea{height:120px;width:450px}.tribe-field-license_key.tribe-size-small input,.tribe-field-text.tribe-size-small input{width:50px}.tribe-field-license_key.tribe-size-medium input,.tribe-field-text.tribe-size-medium input{width:225px}.tribe-field-license_key.tribe-size-large input,.tribe-field-text.tribe-size-large input{width:450px}.tribe-field-dropdown.tribe-size-small select{width:100px}.tribe-field-dropdown.tribe-size-medium select{width:300px}.tribe-field-dropdown.tribe-size-large select{width:450px}.tribe-field-dropdown_chosen.tribe-size-small select{width:100px}.tribe-field-dropdown_chosen.tribe-size-medium select{width:200px}.tribe-field-dropdown_chosen.tribe-size-large select{width:300px}.ajax-loading-license,.invalid-key,.valid-key{display:none;margin:0 5px}.ajax-loading-license{position:relative;top:5px}.key-validity{display:inline-block}.invalid-key,.optin-fail{color:red}.optin-success,.valid-key{color:green}.valid-key.service-msg{color:#b72}#additional-field-table{margin-bottom:20px}.tribe-admin-box-left{float:left;width:20%}.tribe-admin-box-left,.tribe-admin-box-right{-khtml-border-radius:4px;background-color:#f9f9f9;border:1px solid #ccc;border-radius:4px;margin:20px 0;padding:0 20px 15px}.tribe-admin-box-right{float:right;width:68%}.ajax-loader{float:right;margin:10px}.tribe-arrangeable-item{border:1px solid #d3d3d3;border-radius:3px}.tribe-arrangeable-item .ui-state-default{border:none}.tribe-arrangeable-item-top{padding:6px}.tribe-arrangeable-item-top:hover{cursor:move}.tribe-arrangeable-action{float:right}.tribe-arrangeable-child{background-color:#f9f9f9;border-top:1px solid #d3d3d3;display:none;padding:25px}.tribe-arrangeable-child label{display:block;margin:0 0 7px}.tribe_events_active_filter_type_options{margin:10px 0}.tribe_events_active_filter_type_options label{margin:7px 0}.tribe-settings-form .tribe-settings-form-wrap fieldset .tribe-style-selection{margin-bottom:18px}#event_organizer td small,.OrganizerInfo td small{display:block;margin:0;max-width:250px}#event_organizer .organizer-email,.OrganizerInfo .organizer-email{vertical-align:top}.tribe-table-field-label{max-width:100%;width:200px}#tribe-help-general,#tribe-help-sidebar{float:left;margin-top:20px}#tribe-help-general p{margin-left:15px}#tribe-help-general ul{list-style-type:square}#tribe-help-general ol,#tribe-help-general ul{margin-bottom:20px;margin-left:35px}#tribe-help-general h3{background-color:#f9f9f9;margin-bottom:10px;padding:6px 0 6px 12px}#tribe-help-general h3~h3{margin-top:2.25em}#tribe-help-general h3+p{margin:0 0 20px;padding-left:12px}#tribe-help-general{width:65%}.tribe-help-section{padding-bottom:10px}.tribe-section-type-box{-khtml-border-radius:4px;background-color:#f9f9f9;border:1px solid #ccc;border-radius:4px;padding:8px 20px 12px}.tribe-section-type-box img{height:auto;margin:10px 0;max-width:300px}.tribe-section-type-box ul{list-style:disc;margin-left:20px}.tribe-section-type-box ul ul{list-style:circle}#tribe-log-controls{padding-bottom:16px;padding-bottom:1rem;padding-left:12px}#tribe-log-controls>div{display:inline-block;padding-right:16px;padding-right:1rem}#tribe-log-controls .working{opacity:1;-webkit-transition:opacity .2s;transition:opacity .2s}#tribe-log-controls .working.hidden{opacity:0;-webkit-transition:opacity .2s;transition:opacity .2s}#tribe-log-viewer,#tribe-system-info dl.support-stats,.template-updates-wrapper{background:#000;border-radius:2px;color:#888;max-height:400px;overflow:scroll;padding:10px}#tribe-system-info dl.support-stats dt,.template-updates-wrapper dt{clear:both;float:left;font-weight:700;text-transform:uppercase;width:25%}#tribe-system-info dl.support-stats dd,.template-updates-wrapper dd{margin-left:25%;padding-left:10px}.system-info-copy .system-info-copy-btn{padding:6px}.system-info-copy .system-info-copy-btn .dashicons{padding-right:10px}.template-updates-wrapper p{margin-top:0}#tribe-help-sidebar{margin:20px 0 0 3%;max-width:225px;width:32%}.tribe-help-plugin-info{border:1px solid #ccc;padding:0 12px 12px}.tribe-help-plugin-info dd,.tribe-help-plugin-info dt{display:inline;margin:0}.tribe-help-plugin-info dt{font-weight:700}.tribe-help-plugin-info dd:after{content:"";display:block;height:.4em}.tribe-help-plugin-info dd:last-child:after{height:0}.tribe-help-plugin-info+.tribe-help-plugin-info{margin-top:20px}.tribe-help-plugin-info>div{line-height:2em}.tribe-help-plugin-info .star-rating{display:inline-block;margin-left:3px;position:relative;top:-2px}.tribe-help-plugin-info .tribe-list-addons{color:#21a6cb;font-size:24px;list-style:circle inside;margin-bottom:10px;margin-top:10px;padding-left:4px}.tribe-help-plugin-info .tribe-list-addons a{font-size:13px;left:-5px;position:relative;top:-5px}.tribe-help-plugin-info .tribe-list-addons .tribe-active-addon{list-style:disc inside}.ui-widget-overlay{background:#666;filter:Alpha(Opacity=50);opacity:.5}.ui-widget-shadow{background:#000;-webkit-border-radius:5px;-moz-border-radius:5px;filter:Alpha(Opacity=20);margin:-5px 0 0 -5px;opacity:.2;padding:5px}.ui-resizable{position:relative}.ui-resizable-handle{display:block;font-size:.1px;position:absolute;z-index:99999}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;left:0;top:-5px;width:100%}.ui-resizable-s{bottom:-5px;cursor:s-resize;height:7px;left:0;width:100%}.ui-resizable-e{cursor:e-resize;height:100%;right:-5px;top:0;width:7px}.ui-resizable-w{cursor:w-resize;height:100%;left:-5px;top:0;width:7px}.ui-resizable-se{bottom:1px;cursor:se-resize;height:12px;right:1px;width:12px}.ui-resizable-sw{bottom:-5px;cursor:sw-resize;height:9px;left:-5px;width:9px}.ui-resizable-nw{cursor:nw-resize;height:9px;left:-5px;top:-5px;width:9px}.ui-resizable-ne{cursor:ne-resize;height:9px;right:-5px;top:-5px;width:9px}.ui-dialog{padding:.2em;position:relative;width:375px}.ui-dialog .ui-dialog-titlebar{padding:.5em .3em .3em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0 .2em}.ui-dialog .ui-dialog-titlebar-close{height:18px;margin:-10px 0 0;padding:1px;position:absolute;right:.3em;top:50%;width:19px}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin-left:-8px;margin-top:-8px}.ui-dialog .ui-dialog-titlebar-close:focus,.ui-dialog .ui-dialog-titlebar-close:hover{padding:0}.ui-dialog .ui-dialog-content{background:none;border:0;overflow:auto;padding:.5em 1em;zoom:1}.ui-dialog .ui-dialog-buttonpane{background-image:none;border-width:1px 0 0;margin:.5em 0 0;padding:.3em 1em .5em!important;text-align:right}.ui-dialog .ui-dialog-buttonpane button{cursor:pointer;line-height:1.4em;margin:.5em .4em!important;overflow:visible;padding:.2em .6em .3em;text-shadow:none;width:auto}.ui-dialog .ui-resizable-se{bottom:3px;height:14px;right:3px;width:14px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:none!important;text-align:center}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button .ui-button-text{display:block;line-height:1.4}#ui-datepicker-div{display:none}#tribe-loading{background:#fff;background:hsla(0,0%,100%,.8);display:none;height:100%;left:0;position:absolute;top:0;-webkit-transition:all 1s linear;transition:all 1s linear;webkit-transition:all 1s linear;width:100%;z-index:4}#tribe-loading span{background:url(../images/tribe-loading.gif) 0 0 no-repeat;background-size:32px 32px;height:32px;left:50%;margin:-16px 0 0 -16px;position:absolute;top:50%;width:32px}.tribe_update_page,.tribe_welcome_page{max-width:1000px}.tribe-half-column{float:left;margin-bottom:30px;margin-right:5%;width:45%}.tribe-row:after,.tribe-row:before{content:"";display:table}.tribe-row,.tribe-row:after{clear:both}.tribe-row .tribe-half-column:last-child{margin-right:0;width:50%}.tribe_update_page h2,.tribe_welcome_page h2{font-size:30px;line-height:1.2;margin-bottom:20px}.tribe_update_page h3,.tribe_welcome_page h3{font-size:24px;font-weight:400;line-height:24px;margin-top:0}.tribe_update_page h4,.tribe_welcome_page h4{font-size:18px;font-weight:600;line-height:18px;margin:0}.tribe_update_page p,.tribe_welcome_page p{font-size:14px}p.tribe-welcome-message{font-size:20px;font-weight:400}.tribe_update_page h2:before,.tribe_welcome_page h2:before{content:"\f145";font-family:dashicons;font-size:34px;line-height:1;margin-right:5px;position:relative;top:5px}.tribe-welcome-video-wrapper{height:0;margin-bottom:40px;padding-bottom:56.25%;padding-top:25px;position:relative}.tribe-welcome-video-wrapper iframe{height:100%;left:0;position:absolute;top:0;width:100%}a.tribe-rating-link{text-decoration:none}.tribe-update-links,.tribe-welcome-links{margin-top:30px}.tribe_update_page li:before,.tribe_welcome_page li:before{content:"\2022";padding-right:3px}.tribe_update_page .rss-widget{margin:1em 0}.tribe_update_page a.rsswidget{font-size:14px;font-weight:400;line-height:1}.tribe_update_page .rss-widget li:before{display:none}.tribe-update-bar{display:inline-block}.tribe-update-bar .progress{border:1px solid #ccc;float:left;margin-right:16px;margin-right:1rem;padding:1px;width:288px;width:18rem}.tribe-update-bar .progress .bar{background:#ffba00;height:16px;height:1rem;width:1%;background:#7ad03a}#tribe-dialog-wrapper>div{padding:16px;padding:1rem}#tribe-dialog-wrapper>div .stage{display:none}#tribe-dialog-wrapper #heading{background:#fff}#tribe-dialog-wrapper label{display:block}#tribe-dialog-wrapper .select-single-container{border:1px solid #888;overflow-y:scroll;height:300px}#tribe-dialog-wrapper .select-single-container label{opacity:1;padding:3px 5px;-webkit-transition:opacity .2s;transition:opacity .2s}#tribe-dialog-wrapper .select-single-container label:nth-child(odd){background:#fff}#tribe-dialog-wrapper .select-single-container label.selected{background:#0073aa;color:#fff;font-weight:700}#tribe-dialog-wrapper .select-single-container label input{display:none}#tribe-dialog-wrapper .select-single-container.updating label{opacity:.35;-webkit-transition:opacity .2s;transition:opacity .2s}.ui-front{z-index:1000000}.select2-container .select2-choice abbr{top:6px}.wp-list-table.plugins .column-description .update-message{color:#d54e21}.api-check{padding:1em}.api-check+.notice-dismiss:hover:before{color:#fff}.api-check:after,.api-check:before{content:"";display:table}.api-check:after{clear:both}.api-check .tribe-spirit-animal{bottom:0;display:none;padding:16px;padding:1rem;position:absolute;right:0;top:0;width:125px}.api-check .tribe-spirit-animal:before{content:"";display:inline-block;height:100%;width:1%;vertical-align:middle}.api-check .tribe-spirit-animal img{display:inline-block;max-height:100%;max-width:96%;vertical-align:middle}.api-check p{line-height:1.7;margin-bottom:1em}.api-check a{text-decoration:none}.api-check a:hover{text-decoration:underline}.api-check .plugin-list{display:inline;font-weight:600;margin:0;padding:0}.api-check .plugin-list span.plugin-invalid:after{content:", "}.api-check .plugin-list span.plugin-invalid:last-of-type:after{content:""}.tribe-dropdown,.tribe-ea-dropdown{max-width:100%;width:auto}.tribe-dropdown.select2-container-active .select2-choice,.tribe-ea-dropdown.select2-container-active .select2-choice{border-color:#5897fb;box-shadow:0 0 5px rgba(0,0,0,.1)}.tribe-dropdown.select2-dropdown-open .select2-choice,.tribe-ea-dropdown.select2-dropdown-open .select2-choice{border-bottom-left-radius:0;border-bottom-right-radius:0;border-color:#aaa}.tribe-dropdown .select2-choice,.tribe-ea-dropdown .select2-choice{background-image:none;border-radius:3px;border:1px solid #ccc}.tribe-dropdown .select2-choice>.select2-chosen,.tribe-ea-dropdown .select2-choice>.select2-chosen{white-space:normal}.tribe-dropdown .select2-choice .select2-arrow,.tribe-ea-dropdown .select2-choice .select2-arrow{background-image:none;background:transparent;border-left:0}.tribe-dropdown .select2-choice div,.tribe-ea-dropdown .select2-choice div{background-image:none;background:none;border-left:0}.tribe-dropdown.select2-container-multi .select2-choices,.tribe-ea-dropdown.select2-container-multi .select2-choices{background-image:none;border-radius:3px;border:1px solid #ccc;min-height:25px}.tribe-dropdown.select2-container-multi .select2-choices .select2-search-field,.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-field{line-height:25px}.tribe-dropdown.select2-container-multi .select2-choices .select2-search-field input,.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-field input{padding-top:0;padding-bottom:0}.tribe-dropdown.select2-container-multi .select2-choices .select2-search-choice,.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-choice{margin-top:2px;padding-top:0;padding-bottom:0;line-height:19px}.tribe-dropdown.select2-container-multi .select2-choices .select2-search-choice div,.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-choice div{line-height:inherit}.tribe-dropdown.select2-container-multi .select2-choices .select2-search-choice-close,.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-choice-close{top:3px;left:4px;-webkit-transition-property:border,color;transition-property:border,color}.select2-results .select2-selected{display:block}.select2-results .select2-selected>.select2-result-label{background-color:#efefef;color:#a1a1a1;cursor:default}.select2-results li.select2-result-with-children>.select2-result-label{font-weight:400}.select2-results li.select2-result-with-children.select2-selected,.select2-results li.select2-result-with-children.select2-selected .select2-result{display:block}.select2-results li.select2-result-with-children.select2-selected>.select2-result-label{background-color:#efefef;color:#a1a1a1;cursor:default}.select2-results li.select2-result-with-children.select2-result-unselectable>.select2-result-label{color:#939393;font-weight:400}.wp-core-ui .button-red{-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5);background-color:#a00;border-bottom-color:#8d1f21;border-color:#9b2124;box-shadow:inset 0 1px 0 rgba(120,200,230,.5);color:#fff;text-decoration:none;text-shadow:0 1px 0 rgba(0,0,0,.1)}.wp-core-ui .button-red.focus,.wp-core-ui .button-red.hover,.wp-core-ui .button-red:focus,.wp-core-ui .button-red:hover{-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6);background-color:#a00;border-color:#7f1c1f;box-shadow:inset 0 1px 0 rgba(120,200,230,.6);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.3)}.wp-core-ui .button-red.focus,.wp-core-ui .button-red:focus{-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6),1px 1px 2px rgba(0,0,0,.4);border-color:#500f0e;box-shadow:inset 0 1px 0 rgba(120,200,230,.6),1px 1px 2px rgba(0,0,0,.4)}.wp-core-ui .button-red.active,.wp-core-ui .button-red.active:focus,.wp-core-ui .button-red.active:hover,.wp-core-ui .button-red:active{-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);background:#7f1c1f;border-color:#601312 #ae2426 #ae2426;box-shadow:inset 0 1px 0 rgba(0,0,0,.1);color:hsla(0,0%,100%,.95);text-shadow:0 1px 0 rgba(0,0,0,.1)}.wp-core-ui .button-red-disabled,.wp-core-ui .button-red:disabled,.wp-core-ui .button-red[disabled]{color:#e79496!important;background:#ba292b!important;border-color:#7f1c1f!important;box-shadow:none!important;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important;cursor:default}.ticket_form .select2-container .select2-choice .select2-arrow{display:none}.clear{zoom:1}.clear:after,.clear:before{content:" ";display:table}.clear:after{clear:both}.plugin-card-event-tickets-plus .column-downloaded,.plugin-card-event-tickets-plus .column-rating,.plugin-card-event-tickets-plus .column-updated,.plugin-card-event-tickets .column-downloaded,.plugin-card-event-tickets .column-rating,.plugin-card-event-tickets .column-updated,.plugin-card-events-calendar-pro .column-downloaded,.plugin-card-events-calendar-pro .column-rating,.plugin-card-events-calendar-pro .column-updated,.plugin-card-events-community-tickets .column-downloaded,.plugin-card-events-community-tickets .column-rating,.plugin-card-events-community-tickets .column-updated,.plugin-card-events-community .column-downloaded,.plugin-card-events-community .column-rating,.plugin-card-events-community .column-updated,.plugin-card-image-widget-plus .column-downloaded,.plugin-card-image-widget-plus .column-rating,.plugin-card-image-widget-plus .column-updated,.plugin-card-image-widget .column-downloaded,.plugin-card-image-widget .column-rating,.plugin-card-image-widget .column-updated,.plugin-card-the-events-calendar .column-downloaded,.plugin-card-the-events-calendar .column-rating,.plugin-card-the-events-calendar .column-updated,.plugin-card-tribe-eventbrite .column-downloaded,.plugin-card-tribe-eventbrite .column-rating,.plugin-card-tribe-eventbrite .column-updated,.plugin-card-tribe-filterbar .column-downloaded,.plugin-card-tribe-filterbar .column-rating,.plugin-card-tribe-filterbar .column-updated{display:none}@media only screen and (-o-min-device-pixel-ratio:2/1),only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (min-device-pixel-ratio:2){#tribe-loading span{background-image:url(../images/tribe-loading@2x.gif)}}@media screen and (max-width:782px){.tribe-half-column,.tribe-row .tribe-half-column:last-child{margin:0 0 20px;width:100%}input[type=email]{width:100%}}@media screen and (max-width:782px){.events-cal .subsubsub{float:none}.events-cal .search-box{width:98%}.events-cal #search-submit{width:100%}.events-cal .tablenav.top{display:none}}@media screen and (min-width:500px){.api-check .tribe-spirit-animal{display:block}.api-check .notice-content{margin-right:180px}}
1
+ .invalid input{border:2px solid red!important}.valid input{border:1px solid green}.clearfix{zoom:1}.placeholder{color:#999;cursor:text;padding:4px}input:placeholder,textarea:placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.bubble{-khtml-border-radius:3px;background-color:#f9f9f9;border:1px solid #dfdfdf;border-radius:3px;border-spacing:0;border-style:solid;padding:10px}.tribe-sticky-tooltip{color:#bbb}td.tribe_message{padding-bottom:10px!important}#tribe_thanks{float:left;margin:5px 0 0;width:200px}.tribe_brand{font-family:Georgia!important;font-size:17px!important;font-weight:400;margin:8px 0}#tribe-upgrade{background:#f6f6f6;border:1px solid #ccc;border-radius:5px;margin:20px 0 30px;padding:0 20px 20px}#tribe-upgrade .message{background-color:#ffffe0;border:1px solid #e6db55;border-radius:3px;padding:6px 12px}table.plugins .tribe-plugin-update-message{background:#d54e21;color:#fff;display:inline-table;margin:6px 0;padding:10px 12px}table.plugins .tribe-plugin-update-message h4{display:inline;font-weight:700;margin-right:8px}table.plugins .tribe-plugin-update-message h4:after{content:" \00BB "}table.plugins .tribe-plugin-update-message a{color:#fff;text-decoration:underline}.tribe-settings-form{max-width:1000px}.tribe-settings-form fieldset{clear:both;display:inline-block;padding:10px 0}.tribe-settings-form legend{float:left;font-weight:700;margin-right:20px;width:220px}.tribe-settings-form fieldset.tribe-field-license_key legend{width:auto}.tribe-settings-form .tribe-field-wrap{float:left;max-width:500px}.tribe-settings-form .tribe-field-wrap :first-child{margin-top:0}.tribe-settings-form .tribe-field-checkbox_list label,.tribe-settings-form .tribe-field-radio label{display:block;margin:5px 0 5px 20px;text-indent:-20px}.tribe-settings-form .tribe-field-checkbox_list label input,.tribe-settings-form .tribe-field-radio label input{margin-right:5px}.tribe-settings-form .tribe-settings-form-wrap .description,.tribe-settings-form .tribe-settings-form-wrap fieldset,.tribe-settings-form fieldset[id^=tribe-field-geoloc_]{padding-left:12px}.tribe-settings-form .tribe-settings-form-wrap fieldset .description{margin-left:0;max-width:450px;padding-left:0}.tribe-settings-form .tribe-settings-form-wrap h3{background-color:#f9f9f9;margin-bottom:10px;padding:6px 0 6px 12px}.tribe-settings-form .tribe-settings-form-wrap .system-info,.tribe-settings-form .tribe-settings-form-wrap .tribe-sysinfo-optin-msg,.tribe-settings-form .tribe-settings-form-wrap h3+p{margin:0 0 10px;padding-left:12px}.tribe_settings .tribe-field-indent{margin-left:245px}.tribe_settings #pu_dashboard_message{display:none}.tribe_settings .tribe-errors-list{margin-left:15px}.tribe_settings .expiring-license{color:red}.tribe_settings .tribe-error{border:1px solid red}.tribe_settings .tribe-field-description{margin-bottom:0;position:relative;top:-12px}.tribe_settings #ical-link{top:-14px}.tribe-settings-form #tribe-field-stylesheetOption label{margin-left:20px}.tribe-settings-form #tribe-field-stylesheetOption input{margin-left:-20px;margin-right:8px}.tribe-settings-form #tribe-field-stylesheetOption p.description{color:#999}#modern-tribe-info{-khtml-border-radius:4px;background-color:#f9f9f9;border:1px solid #ccc;border-radius:4px;margin:20px 0;padding:8px 20px 12px}#modern-tribe-info img{height:18px;margin:10px 0;width:250px}#modern-tribe-info ul{list-style:disc;margin-left:20px}#modern-tribe-info ul ul{list-style:circle}.tribe-field-inline-dropdown{margin-left:0;margin-right:0}.tribe-field-inline-text{line-height:28px;margin:0 2px}.tribe-field-textarea.tribe-size-small textarea{height:60px;width:180px}.tribe-field-textarea.tribe-size-medium textarea{height:80px;width:300px}.tribe-field-textarea.tribe-size-large textarea{height:120px;width:450px}.tribe-field-license_key.tribe-size-small input,.tribe-field-text.tribe-size-small input{width:50px}.tribe-field-license_key.tribe-size-medium input,.tribe-field-text.tribe-size-medium input{width:225px}.tribe-field-license_key.tribe-size-large input,.tribe-field-text.tribe-size-large input{width:450px}.tribe-field-dropdown.tribe-size-small select{width:100px}.tribe-field-dropdown.tribe-size-medium select{width:300px}.tribe-field-dropdown.tribe-size-large select{width:450px}.tribe-field-dropdown_chosen.tribe-size-small select{width:100px}.tribe-field-dropdown_chosen.tribe-size-medium select{width:200px}.tribe-field-dropdown_chosen.tribe-size-large select{width:300px}.ajax-loading-license,.invalid-key,.valid-key{display:none;margin:0 5px}.ajax-loading-license{position:relative;top:5px}.key-validity{display:inline-block}.invalid-key,.optin-fail{color:red}.optin-success,.valid-key{color:green}.valid-key.service-msg{color:#b72}#additional-field-table{margin-bottom:20px}.tribe-admin-box-left{float:left;width:20%}.tribe-admin-box-left,.tribe-admin-box-right{-khtml-border-radius:4px;background-color:#f9f9f9;border:1px solid #ccc;border-radius:4px;margin:20px 0;padding:0 20px 15px}.tribe-admin-box-right{float:right;width:68%}.ajax-loader{float:right;margin:10px}.tribe-arrangeable-item{border:1px solid #d3d3d3;border-radius:3px}.tribe-arrangeable-item .ui-state-default{border:none}.tribe-arrangeable-item-top{padding:6px}.tribe-arrangeable-item-top:hover{cursor:move}.tribe-arrangeable-action{float:right}.tribe-arrangeable-child{background-color:#f9f9f9;border-top:1px solid #d3d3d3;display:none;padding:25px}.tribe-arrangeable-child label{display:block;margin:0 0 7px}.tribe_events_active_filter_type_options{margin:10px 0}.tribe_events_active_filter_type_options label{margin:7px 0}.tribe-settings-form .tribe-settings-form-wrap fieldset .tribe-style-selection{margin-bottom:18px}#event_organizer td small,.OrganizerInfo td small{display:block;margin:0;max-width:250px}#event_organizer .organizer-email,.OrganizerInfo .organizer-email{vertical-align:top}.tribe-table-field-label{max-width:100%;width:200px}#tribe-help-general,#tribe-help-sidebar{float:left;margin-top:20px}#tribe-help-general p{margin-left:15px}#tribe-help-general ul{list-style-type:square}#tribe-help-general ol,#tribe-help-general ul{margin-bottom:20px;margin-left:35px}#tribe-help-general h3{background-color:#f9f9f9;margin-bottom:10px;padding:6px 0 6px 12px}#tribe-help-general h3~h3{margin-top:2.25em}#tribe-help-general h3+p{margin:0 0 20px;padding-left:12px}#tribe-help-general{width:65%}.tribe-help-section{padding-bottom:10px}.tribe-section-type-box{-khtml-border-radius:4px;background-color:#f9f9f9;border:1px solid #ccc;border-radius:4px;padding:8px 20px 12px}.tribe-section-type-box img{height:auto;margin:10px 0;max-width:300px}.tribe-section-type-box ul{list-style:disc;margin-left:20px}.tribe-section-type-box ul ul{list-style:circle}#tribe-log-controls{padding-bottom:16px;padding-bottom:1rem;padding-left:12px}#tribe-log-controls>div{display:inline-block;padding-right:16px;padding-right:1rem}#tribe-log-controls .working{opacity:1;transition:opacity .2s}#tribe-log-controls .working.hidden{opacity:0;transition:opacity .2s}#tribe-log-viewer,#tribe-system-info dl.support-stats,.template-updates-wrapper{background:#000;border-radius:2px;color:#888;max-height:400px;overflow:scroll;padding:10px}#tribe-system-info dl.support-stats dt,.template-updates-wrapper dt{clear:both;float:left;font-weight:700;text-transform:uppercase;width:25%}#tribe-system-info dl.support-stats dd,.template-updates-wrapper dd{margin-left:25%;padding-left:10px}.system-info-copy .system-info-copy-btn{padding:6px}.system-info-copy .system-info-copy-btn .dashicons{padding-right:10px}.template-updates-wrapper p{margin-top:0}#tribe-help-sidebar{margin:20px 0 0 3%;max-width:225px;width:32%}.tribe-help-plugin-info{border:1px solid #ccc;padding:0 12px 12px}.tribe-help-plugin-info dd,.tribe-help-plugin-info dt{display:inline;margin:0}.tribe-help-plugin-info dt{font-weight:700}.tribe-help-plugin-info dd:after{content:"";display:block;height:.4em}.tribe-help-plugin-info dd:last-child:after{height:0}.tribe-help-plugin-info+.tribe-help-plugin-info{margin-top:20px}.tribe-help-plugin-info>div{line-height:2em}.tribe-help-plugin-info .star-rating{display:inline-block;margin-left:3px;position:relative;top:-2px}.tribe-help-plugin-info .tribe-list-addons{color:#21a6cb;font-size:24px;list-style:circle inside;margin-bottom:10px;margin-top:10px;padding-left:4px}.tribe-help-plugin-info .tribe-list-addons a{font-size:13px;left:-5px;position:relative;top:-5px}.tribe-help-plugin-info .tribe-list-addons .tribe-active-addon{list-style:disc inside}.ui-widget-overlay{background:#666;filter:Alpha(Opacity=50);opacity:.5}.ui-widget-shadow{background:#000;-webkit-border-radius:5px;-moz-border-radius:5px;filter:Alpha(Opacity=20);margin:-5px 0 0 -5px;opacity:.2;padding:5px}.ui-resizable{position:relative}.ui-resizable-handle{display:block;font-size:.1px;position:absolute;z-index:99999}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;left:0;top:-5px;width:100%}.ui-resizable-s{bottom:-5px;cursor:s-resize;height:7px;left:0;width:100%}.ui-resizable-e{cursor:e-resize;height:100%;right:-5px;top:0;width:7px}.ui-resizable-w{cursor:w-resize;height:100%;left:-5px;top:0;width:7px}.ui-resizable-se{bottom:1px;cursor:se-resize;height:12px;right:1px;width:12px}.ui-resizable-sw{bottom:-5px;cursor:sw-resize;height:9px;left:-5px;width:9px}.ui-resizable-nw{cursor:nw-resize;height:9px;left:-5px;top:-5px;width:9px}.ui-resizable-ne{cursor:ne-resize;height:9px;right:-5px;top:-5px;width:9px}.ui-dialog{padding:.2em;position:relative;width:375px}.ui-dialog .ui-dialog-titlebar{padding:.5em .3em .3em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0 .2em}.ui-dialog .ui-dialog-titlebar-close{height:18px;margin:-10px 0 0;padding:1px;position:absolute;right:.3em;top:50%;width:19px}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin-left:-8px;margin-top:-8px}.ui-dialog .ui-dialog-titlebar-close:focus,.ui-dialog .ui-dialog-titlebar-close:hover{padding:0}.ui-dialog .ui-dialog-content{background:none;border:0;overflow:auto;padding:.5em 1em;zoom:1}.ui-dialog .ui-dialog-buttonpane{background-image:none;border-width:1px 0 0;margin:.5em 0 0;padding:.3em 1em .5em!important;text-align:right}.ui-dialog .ui-dialog-buttonpane button{cursor:pointer;line-height:1.4em;margin:.5em .4em!important;overflow:visible;padding:.2em .6em .3em;text-shadow:none;width:auto}.ui-dialog .ui-resizable-se{bottom:3px;height:14px;right:3px;width:14px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:none!important;text-align:center}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button .ui-button-text{display:block;line-height:1.4}#ui-datepicker-div{display:none}#tribe-loading{background:#fff;background:hsla(0,0%,100%,.8);display:none;height:100%;left:0;position:absolute;top:0;transition:all 1s linear;webkit-transition:all 1s linear;width:100%;z-index:4}#tribe-loading span{background:url(../images/tribe-loading.gif) 0 0 no-repeat;background-size:32px 32px;height:32px;left:50%;margin:-16px 0 0 -16px;position:absolute;top:50%;width:32px}.tribe_update_page,.tribe_welcome_page{max-width:1000px}.tribe-half-column{float:left;margin-bottom:30px;margin-right:5%;width:45%}.tribe-row:after,.tribe-row:before{content:"";display:table}.tribe-row,.tribe-row:after{clear:both}.tribe-row .tribe-half-column:last-child{margin-right:0;width:50%}.tribe_update_page h2,.tribe_welcome_page h2{font-size:30px;line-height:1.2;margin-bottom:20px}.tribe_update_page h3,.tribe_welcome_page h3{font-size:24px;font-weight:400;line-height:24px;margin-top:0}.tribe_update_page h4,.tribe_welcome_page h4{font-size:18px;font-weight:600;line-height:18px;margin:0}.tribe_update_page p,.tribe_welcome_page p{font-size:14px}p.tribe-welcome-message{font-size:20px;font-weight:400}.tribe_update_page h2:before,.tribe_welcome_page h2:before{content:"\f145";font-family:dashicons;font-size:34px;line-height:1;margin-right:5px;position:relative;top:5px}.tribe-welcome-video-wrapper{height:0;margin-bottom:40px;padding-bottom:56.25%;padding-top:25px;position:relative}.tribe-welcome-video-wrapper iframe{height:100%;left:0;position:absolute;top:0;width:100%}a.tribe-rating-link{text-decoration:none}.tribe-update-links,.tribe-welcome-links{margin-top:30px}.tribe_update_page li:before,.tribe_welcome_page li:before{content:"\2022";padding-right:3px}.tribe_update_page .rss-widget{margin:1em 0}.tribe_update_page a.rsswidget{font-size:14px;font-weight:400;line-height:1}.tribe_update_page .rss-widget li:before{display:none}.tribe-update-bar{display:inline-block}.tribe-update-bar .progress{border:1px solid #ccc;float:left;margin-right:16px;margin-right:1rem;padding:1px;width:288px;width:18rem}.tribe-update-bar .progress .bar{background:#ffba00;height:16px;height:1rem;width:1%;background:#7ad03a}#tribe-dialog-wrapper>div{padding:16px;padding:1rem}#tribe-dialog-wrapper>div .stage{display:none}#tribe-dialog-wrapper #heading{background:#fff}#tribe-dialog-wrapper label{display:block}#tribe-dialog-wrapper .select-single-container{border:1px solid #888;overflow-y:scroll;height:300px}#tribe-dialog-wrapper .select-single-container label{opacity:1;padding:3px 5px;transition:opacity .2s}#tribe-dialog-wrapper .select-single-container label:nth-child(odd){background:#fff}#tribe-dialog-wrapper .select-single-container label.selected{background:#0073aa;color:#fff;font-weight:700}#tribe-dialog-wrapper .select-single-container label input{display:none}#tribe-dialog-wrapper .select-single-container.updating label{opacity:.35;transition:opacity .2s}.ui-front{z-index:1000000}.select2-container .select2-choice abbr{top:6px}.wp-list-table.plugins .column-description .update-message{color:#d54e21}.api-check{padding:1em}.api-check+.notice-dismiss:hover:before{color:#fff}.api-check:after,.api-check:before{content:"";display:table}.api-check:after{clear:both}.api-check .tribe-spirit-animal{bottom:0;display:none;padding:16px;padding:1rem;position:absolute;right:0;top:0;width:125px}.api-check .tribe-spirit-animal:before{content:"";display:inline-block;height:100%;width:1%;vertical-align:middle}.api-check .tribe-spirit-animal img{display:inline-block;max-height:100%;max-width:96%;vertical-align:middle}.api-check p{line-height:1.7;margin-bottom:1em}.api-check a{text-decoration:none}.api-check a:hover{text-decoration:underline}.api-check .plugin-list{display:inline;font-weight:600;margin:0;padding:0}.api-check .plugin-list span.plugin-invalid:after{content:", "}.api-check .plugin-list span.plugin-invalid:last-of-type:after{content:""}.tribe-dropdown,.tribe-ea-dropdown{max-width:100%;width:auto}.tribe-dropdown.select2-container-active .select2-choice,.tribe-ea-dropdown.select2-container-active .select2-choice{border-color:#5897fb;box-shadow:0 0 5px rgba(0,0,0,.1)}.tribe-dropdown.select2-dropdown-open .select2-choice,.tribe-ea-dropdown.select2-dropdown-open .select2-choice{border-bottom-left-radius:0;border-bottom-right-radius:0;border-color:#aaa}.tribe-dropdown .select2-choice,.tribe-ea-dropdown .select2-choice{background-image:none;border-radius:3px;border:1px solid #ccc}.tribe-dropdown .select2-choice>.select2-chosen,.tribe-ea-dropdown .select2-choice>.select2-chosen{white-space:normal}.tribe-dropdown .select2-choice .select2-arrow,.tribe-ea-dropdown .select2-choice .select2-arrow{background-image:none;background:transparent;border-left:0}.tribe-dropdown .select2-choice div,.tribe-ea-dropdown .select2-choice div{background-image:none;background:none;border-left:0}.tribe-dropdown.select2-container-multi .select2-choices,.tribe-ea-dropdown.select2-container-multi .select2-choices{background-image:none;border-radius:3px;border:1px solid #ccc;min-height:25px}.tribe-dropdown.select2-container-multi .select2-choices .select2-search-field,.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-field{line-height:25px}.tribe-dropdown.select2-container-multi .select2-choices .select2-search-field input,.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-field input{padding-top:0;padding-bottom:0}.tribe-dropdown.select2-container-multi .select2-choices .select2-search-choice,.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-choice{margin-top:2px;padding-top:0;padding-bottom:0;line-height:19px}.tribe-dropdown.select2-container-multi .select2-choices .select2-search-choice div,.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-choice div{line-height:inherit}.tribe-dropdown.select2-container-multi .select2-choices .select2-search-choice-close,.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-choice-close{top:3px;left:4px;transition-property:border,color}.select2-results .select2-selected{display:block}.select2-results .select2-selected>.select2-result-label{background-color:#efefef;color:#a1a1a1;cursor:default}.select2-results li.select2-result-with-children>.select2-result-label{font-weight:400}.select2-results li.select2-result-with-children.select2-selected,.select2-results li.select2-result-with-children.select2-selected .select2-result{display:block}.select2-results li.select2-result-with-children.select2-selected>.select2-result-label{background-color:#efefef;color:#a1a1a1;cursor:default}.select2-results li.select2-result-with-children.select2-result-unselectable>.select2-result-label{color:#939393;font-weight:400}.wp-core-ui .button-red{-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5);background-color:#a00;border-bottom-color:#8d1f21;border-color:#9b2124;box-shadow:inset 0 1px 0 rgba(120,200,230,.5);color:#fff;text-decoration:none;text-shadow:0 1px 0 rgba(0,0,0,.1)}.wp-core-ui .button-red.focus,.wp-core-ui .button-red.hover,.wp-core-ui .button-red:focus,.wp-core-ui .button-red:hover{-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6);background-color:#a00;border-color:#7f1c1f;box-shadow:inset 0 1px 0 rgba(120,200,230,.6);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.3)}.wp-core-ui .button-red.focus,.wp-core-ui .button-red:focus{-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6),1px 1px 2px rgba(0,0,0,.4);border-color:#500f0e;box-shadow:inset 0 1px 0 rgba(120,200,230,.6),1px 1px 2px rgba(0,0,0,.4)}.wp-core-ui .button-red.active,.wp-core-ui .button-red.active:focus,.wp-core-ui .button-red.active:hover,.wp-core-ui .button-red:active{-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);background:#7f1c1f;border-color:#601312 #ae2426 #ae2426;box-shadow:inset 0 1px 0 rgba(0,0,0,.1);color:hsla(0,0%,100%,.95);text-shadow:0 1px 0 rgba(0,0,0,.1)}.wp-core-ui .button-red-disabled,.wp-core-ui .button-red:disabled,.wp-core-ui .button-red[disabled]{color:#e79496!important;background:#ba292b!important;border-color:#7f1c1f!important;box-shadow:none!important;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important;cursor:default}.ticket_form .select2-container .select2-choice .select2-arrow{display:none}.clear{zoom:1}.clear:after,.clear:before{content:" ";display:table}.clear:after{clear:both}.plugin-card-event-tickets-plus .column-downloaded,.plugin-card-event-tickets-plus .column-rating,.plugin-card-event-tickets-plus .column-updated,.plugin-card-event-tickets .column-downloaded,.plugin-card-event-tickets .column-rating,.plugin-card-event-tickets .column-updated,.plugin-card-events-calendar-pro .column-downloaded,.plugin-card-events-calendar-pro .column-rating,.plugin-card-events-calendar-pro .column-updated,.plugin-card-events-community-tickets .column-downloaded,.plugin-card-events-community-tickets .column-rating,.plugin-card-events-community-tickets .column-updated,.plugin-card-events-community .column-downloaded,.plugin-card-events-community .column-rating,.plugin-card-events-community .column-updated,.plugin-card-image-widget-plus .column-downloaded,.plugin-card-image-widget-plus .column-rating,.plugin-card-image-widget-plus .column-updated,.plugin-card-image-widget .column-downloaded,.plugin-card-image-widget .column-rating,.plugin-card-image-widget .column-updated,.plugin-card-the-events-calendar .column-downloaded,.plugin-card-the-events-calendar .column-rating,.plugin-card-the-events-calendar .column-updated,.plugin-card-tribe-eventbrite .column-downloaded,.plugin-card-tribe-eventbrite .column-rating,.plugin-card-tribe-eventbrite .column-updated,.plugin-card-tribe-filterbar .column-downloaded,.plugin-card-tribe-filterbar .column-rating,.plugin-card-tribe-filterbar .column-updated{display:none}@media only screen and (-o-min-device-pixel-ratio:2/1),only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (min-device-pixel-ratio:2){#tribe-loading span{background-image:url(../images/tribe-loading@2x.gif)}}@media screen and (max-width:782px){.tribe-half-column,.tribe-row .tribe-half-column:last-child{margin:0 0 20px;width:100%}input[type=email]{width:100%}}@media screen and (max-width:782px){.events-cal .subsubsub{float:none}.events-cal .search-box{width:98%}.events-cal #search-submit{width:100%}.events-cal .tablenav.top{display:none}}@media screen and (min-width:500px){.api-check .tribe-spirit-animal{display:block}.api-check .notice-content{margin-right:180px}}
common/src/resources/css/tribe-ui.css CHANGED
@@ -11,7 +11,6 @@
11
  .tribe-button {
12
  border: 0;
13
  border-radius: 3px;
14
- background: #009FF1 -webkit-linear-gradient( top, #009FF1, #0080DB );
15
  background: #009FF1 linear-gradient( to bottom, #009FF1, #0080DB );
16
  cursor: pointer;
17
  color: #fff;
@@ -24,7 +23,6 @@
24
  height: auto;
25
  padding: 10px;
26
  text-align: center;
27
- -webkit-transition: all .15s ease-in;
28
  transition: all .15s ease-in;
29
  -webkit-font-smoothing: subpixel-antialiased;
30
  }
11
  .tribe-button {
12
  border: 0;
13
  border-radius: 3px;
 
14
  background: #009FF1 linear-gradient( to bottom, #009FF1, #0080DB );
15
  cursor: pointer;
16
  color: #fff;
23
  height: auto;
24
  padding: 10px;
25
  text-align: center;
 
26
  transition: all .15s ease-in;
27
  -webkit-font-smoothing: subpixel-antialiased;
28
  }
common/src/resources/css/tribe-ui.min.css CHANGED
@@ -1 +1 @@
1
- .tribe-button{border:0;border-radius:3px;background:#009ff1 -webkit-linear-gradient(top,#009ff1,#0080db);background:#009ff1 linear-gradient(180deg,#009ff1,#0080db);cursor:pointer;color:#fff;display:inline-block;font-size:14px;font-weight:400;font-family:sans-serif;letter-spacing:1px;line-height:1;height:auto;padding:10px;text-align:center;-webkit-transition:all .15s ease-in;transition:all .15s ease-in;-webkit-font-smoothing:subpixel-antialiased}.tribe-button:active,.tribe-button:focus,.tribe-button:hover{background:#0080db}
1
+ .tribe-button{border:0;border-radius:3px;background:#009ff1 linear-gradient(180deg,#009ff1,#0080db);cursor:pointer;color:#fff;display:inline-block;font-size:14px;font-weight:400;font-family:sans-serif;letter-spacing:1px;line-height:1;height:auto;padding:10px;text-align:center;transition:all .15s ease-in;-webkit-font-smoothing:subpixel-antialiased}.tribe-button:active,.tribe-button:focus,.tribe-button:hover{background:#0080db}
common/src/resources/js/bumpdown.js CHANGED
@@ -226,7 +226,7 @@
226
 
227
  // Fetch the first Block-Level parent
228
  data.$parent = data.$trigger.parents().filter( function() {
229
- return $.inArray( $( this ).css( 'display' ), [ 'block', 'table', 'table-cell', 'table-row' ] );
230
  }).first();
231
 
232
  if ( ! data.html ) {
226
 
227
  // Fetch the first Block-Level parent
228
  data.$parent = data.$trigger.parents().filter( function() {
229
+ return -1 < $.inArray( $( this ).css( 'display' ), [ 'block', 'table', 'table-cell', 'table-row' ] );
230
  }).first();
231
 
232
  if ( ! data.html ) {
common/src/resources/js/bumpdown.min.js CHANGED
@@ -1 +1 @@
1
- !function(t,e){"use strict";t(document).ready(function(){t(".tribe-bumpdown-trigger").bumpdown()}),t.fn.bumpdown=function(){var n=t(document),r={ID:"tribe-bumpdown-",data_trigger:function(t){return'[data-trigger="'+t+'"]'},bumpdown:".tribe-bumpdown",content:".tribe-bumpdown-content",trigger:".tribe-bumpdown-trigger",hover_trigger:".tribe-bumpdown-trigger:not(.tribe-bumpdown-nohover)",close:".tribe-bumpdown-close",permanent:".tribe-bumpdown-permanent",active:".tribe-bumpdown-active"},o={open:function(e){var n=e.data("bumpdown"),i=n.$trigger.data("width-rule");if(!e.is(":visible")){n.$trigger.addClass(r.active.replace(".",""));var a=e.find(r.content);if("string"==typeof i&&"all-triggers"===i){var d=600,p=0;t(r.trigger).each(function(){var e=t(this);if(e.data("width-rule")){var n=e.position();n.left>p&&(p=n.left)}}),p&&(p=p>d?p:d,a.css("max-width",p+"px"))}a.prepend('<a class="tribe-bumpdown-close" title="Close"><i class="dashicons dashicons-no"></i></a>'),a.prepend('<span class="tribe-bumpdown-arrow"></span>'),o.arrow(e),e.data("preventClose",!0),e.slideDown("fast",function(){e.data("preventClose",!1)})}},close:function(e){var n=e.data("bumpdown");e.is(":visible")&&!e.data("preventClose")&&(t(this).removeData("is_hoverintent_queued"),e.find(".tribe-bumpdown-close, .tribe-bumpdown-arrow").remove(),e.not(".tribe-bumpdown-trigger").slideUp("fast"),n.$trigger.removeClass(r.active.replace(".","")))},arrow:function(t){var e,n=t.data("bumpdown");e=Math.ceil(n.$trigger.position().left-("block"===n.type?n.$parent.offset().left:0)),n.$bumpdown.find(".tribe-bumpdown-arrow").css("left",e)}};return t(window).on({"resize.bumpdown":function(){n.find(r.active).each(function(){o.arrow(t(this))})}}),n.hoverIntent({over:function(){var e=t(this).data("bumpdown");e.$trigger.data("is_hoverintent_queued",!1),e.$bumpdown.trigger("open.bumpdown")},out:function(){},selector:r.hover_trigger,interval:200}).on({mouseenter:function(){void 0===t(this).data("is_hoverintent_queued")&&t(this).data("is_hoverintent_queued",!0)},click:function(e){var n=t(this).data("bumpdown");if(e.preventDefault(),e.stopPropagation(),n.$bumpdown.is(":visible")){if(n.$trigger.data("is_hoverintent_queued"))return n.$trigger.data("is_hoverintent_queued",!1);n.$bumpdown.trigger("close.bumpdown")}else n.$bumpdown.trigger("open.bumpdown")},"open.bumpdown":function(){o.open(t(this))},"close.bumpdown":function(){o.close(t(this))}},r.trigger).on({click:function(e){var n=t(this).parents(r.bumpdown).first().data("bumpdown");e.preventDefault(),e.stopPropagation(),"undefined"!=typeof n&&"undefined"!=typeof n.$bumpdown&&n.$bumpdown.trigger("close.bumpdown")}},r.close).on("click",function(e){var n=t(e.target),o=n.is(r.bumpdown)||0!==n.parents(r.bumpdown).length;o||t(r.trigger).not(r.permanent).trigger("close.bumpdown")}).on({"open.bumpdown":function(){o.open(t(this))},"close.bumpdown":function(){o.close(t(this))}},r.bumpdown),this.each(function(){var n={$trigger:t(this),$parent:null,$bumpdown:null,ID:null,html:null,type:"block",is_permanent:!1};if(n.ID=n.$trigger.attr("id"),n.ID||(n.ID=e.uniqueId(r.ID),n.$trigger.attr("id",n.ID)),n.html=n.$trigger.data("bumpdown"),n.html='<div class="tribe-bumpdown-content">'+n.html+"</div>",n["class"]=n.$trigger.data("bumpdown-class"),n.is_permanent=n.$trigger.is(r.permanent),n.$parent=n.$trigger.parents().filter(function(){return t.inArray(t(this).css("display"),["block","table","table-cell","table-row"])}).first(),n.html)if(n.type=n.$parent.is("td, tr, td, table")?"table":"block","table"===n.type){n.$bumpdown=t("<td>").attr({colspan:2}).addClass("tribe-bumpdown-cell").html(n.html);var i=n["class"]?"tribe-bumpdown-row "+n["class"]:"tribe-bumpdown-row",a=t("<tr>").append(n.$bumpdown).addClass(i);n.$parent=n.$trigger.parents("tr").first(),n.$parent.after(a)}else n.$bumpdown=t("<div>").addClass("tribe-bumpdown-block").html(n.html),n.$trigger.after(n.$bumpdown);else n.$bumpdown=t(r.data_trigger(n.ID)),n.type="block";if(n.$trigger.data("bumpdown",n).addClass(r.trigger.replace(".","")),n.$bumpdown.data("bumpdown",n).addClass(r.bumpdown.replace(".","")),n.$trigger.data("depends")){var d=n.$trigger.data("depends");t(document).on("change",d,function(){o.close(n.$bumpdown)})}})}}(jQuery,_);
1
+ !function(t,e){"use strict";t(document).ready(function(){t(".tribe-bumpdown-trigger").bumpdown()}),t.fn.bumpdown=function(){var n=t(document),r={ID:"tribe-bumpdown-",data_trigger:function(t){return'[data-trigger="'+t+'"]'},bumpdown:".tribe-bumpdown",content:".tribe-bumpdown-content",trigger:".tribe-bumpdown-trigger",hover_trigger:".tribe-bumpdown-trigger:not(.tribe-bumpdown-nohover)",close:".tribe-bumpdown-close",permanent:".tribe-bumpdown-permanent",active:".tribe-bumpdown-active"},o={open:function(e){var n=e.data("bumpdown"),i=n.$trigger.data("width-rule");if(!e.is(":visible")){n.$trigger.addClass(r.active.replace(".",""));var a=e.find(r.content);if("string"==typeof i&&"all-triggers"===i){var d=600,p=0;t(r.trigger).each(function(){var e=t(this);if(e.data("width-rule")){var n=e.position();n.left>p&&(p=n.left)}}),p&&(p=p>d?p:d,a.css("max-width",p+"px"))}a.prepend('<a class="tribe-bumpdown-close" title="Close"><i class="dashicons dashicons-no"></i></a>'),a.prepend('<span class="tribe-bumpdown-arrow"></span>'),o.arrow(e),e.data("preventClose",!0),e.slideDown("fast",function(){e.data("preventClose",!1)})}},close:function(e){var n=e.data("bumpdown");e.is(":visible")&&!e.data("preventClose")&&(t(this).removeData("is_hoverintent_queued"),e.find(".tribe-bumpdown-close, .tribe-bumpdown-arrow").remove(),e.not(".tribe-bumpdown-trigger").slideUp("fast"),n.$trigger.removeClass(r.active.replace(".","")))},arrow:function(t){var e,n=t.data("bumpdown");e=Math.ceil(n.$trigger.position().left-("block"===n.type?n.$parent.offset().left:0)),n.$bumpdown.find(".tribe-bumpdown-arrow").css("left",e)}};return t(window).on({"resize.bumpdown":function(){n.find(r.active).each(function(){o.arrow(t(this))})}}),n.hoverIntent({over:function(){var e=t(this).data("bumpdown");e.$trigger.data("is_hoverintent_queued",!1),e.$bumpdown.trigger("open.bumpdown")},out:function(){},selector:r.hover_trigger,interval:200}).on({mouseenter:function(){void 0===t(this).data("is_hoverintent_queued")&&t(this).data("is_hoverintent_queued",!0)},click:function(e){var n=t(this).data("bumpdown");if(e.preventDefault(),e.stopPropagation(),n.$bumpdown.is(":visible")){if(n.$trigger.data("is_hoverintent_queued"))return n.$trigger.data("is_hoverintent_queued",!1);n.$bumpdown.trigger("close.bumpdown")}else n.$bumpdown.trigger("open.bumpdown")},"open.bumpdown":function(){o.open(t(this))},"close.bumpdown":function(){o.close(t(this))}},r.trigger).on({click:function(e){var n=t(this).parents(r.bumpdown).first().data("bumpdown");e.preventDefault(),e.stopPropagation(),"undefined"!=typeof n&&"undefined"!=typeof n.$bumpdown&&n.$bumpdown.trigger("close.bumpdown")}},r.close).on("click",function(e){var n=t(e.target),o=n.is(r.bumpdown)||0!==n.parents(r.bumpdown).length;o||t(r.trigger).not(r.permanent).trigger("close.bumpdown")}).on({"open.bumpdown":function(){o.open(t(this))},"close.bumpdown":function(){o.close(t(this))}},r.bumpdown),this.each(function(){var n={$trigger:t(this),$parent:null,$bumpdown:null,ID:null,html:null,type:"block",is_permanent:!1};if(n.ID=n.$trigger.attr("id"),n.ID||(n.ID=e.uniqueId(r.ID),n.$trigger.attr("id",n.ID)),n.html=n.$trigger.data("bumpdown"),n.html='<div class="tribe-bumpdown-content">'+n.html+"</div>",n["class"]=n.$trigger.data("bumpdown-class"),n.is_permanent=n.$trigger.is(r.permanent),n.$parent=n.$trigger.parents().filter(function(){return-1<t.inArray(t(this).css("display"),["block","table","table-cell","table-row"])}).first(),n.html)if(n.type=n.$parent.is("td, tr, td, table")?"table":"block","table"===n.type){n.$bumpdown=t("<td>").attr({colspan:2}).addClass("tribe-bumpdown-cell").html(n.html);var i=n["class"]?"tribe-bumpdown-row "+n["class"]:"tribe-bumpdown-row",a=t("<tr>").append(n.$bumpdown).addClass(i);n.$parent=n.$trigger.parents("tr").first(),n.$parent.after(a)}else n.$bumpdown=t("<div>").addClass("tribe-bumpdown-block").html(n.html),n.$trigger.after(n.$bumpdown);else n.$bumpdown=t(r.data_trigger(n.ID)),n.type="block";if(n.$trigger.data("bumpdown",n).addClass(r.trigger.replace(".","")),n.$bumpdown.data("bumpdown",n).addClass(r.bumpdown.replace(".","")),n.$trigger.data("depends")){var d=n.$trigger.data("depends");t(document).on("change",d,function(){o.close(n.$bumpdown)})}})}}(jQuery,_);
common/tribe-common.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  Description: An event settings framework for managing shared options
4
- Version: 4.5.10.1
5
  Author: Modern Tribe, Inc.
6
  Author URI: http://m.tri.be/1x
7
  Text Domain: tribe-common
1
  <?php
2
  /*
3
  Description: An event settings framework for managing shared options
4
+ Version: 4.5.11
5
  Author: Modern Tribe, Inc.
6
  Author URI: http://m.tri.be/1x
7
  Text Domain: tribe-common
common/vendor/autoload_52.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
- return ComposerAutoloaderInit44f558c0290dd82b94f75a5f47a68f19::getLoader();
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
+ return ComposerAutoloaderInitecf19c24af77e866fd11bccced6a4584::getLoader();
common/vendor/composer/ClassLoader.php CHANGED
@@ -374,9 +374,13 @@ class ClassLoader
374
 
375
  $first = $class[0];
376
  if (isset($this->prefixLengthsPsr4[$first])) {
377
- foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) {
378
- if (0 === strpos($class, $prefix)) {
379
- foreach ($this->prefixDirsPsr4[$prefix] as $dir) {
 
 
 
 
380
  if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
381
  return $file;
382
  }
374
 
375
  $first = $class[0];
376
  if (isset($this->prefixLengthsPsr4[$first])) {
377
+ $subPath = $class;
378
+ while (false !== $lastPos = strrpos($subPath, '\\')) {
379
+ $subPath = substr($subPath, 0, $lastPos);
380
+ $search = $subPath.'\\';
381
+ if (isset($this->prefixDirsPsr4[$search])) {
382
+ foreach ($this->prefixDirsPsr4[$search] as $dir) {
383
+ $length = $this->prefixLengthsPsr4[$first][$search];
384
  if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
385
  return $file;
386
  }
common/vendor/composer/LICENSE CHANGED
@@ -1,5 +1,5 @@
1
 
2
- Copyright (c) 2016 Nils Adermann, Jordi Boggiano
3
 
4
  Permission is hereby granted, free of charge, to any person obtaining a copy
5
  of this software and associated documentation files (the "Software"), to deal
1
 
2
+ Copyright (c) Nils Adermann, Jordi Boggiano
3
 
4
  Permission is hereby granted, free of charge, to any person obtaining a copy
5
  of this software and associated documentation files (the "Software"), to deal
common/vendor/composer/autoload_real_52.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real_52.php generated by xrstf/composer-php52
4
 
5
- class ComposerAutoloaderInit44f558c0290dd82b94f75a5f47a68f19 {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit44f558c0290dd82b94f75a5f47a68f19 {
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit44f558c0290dd82b94f75a5f47a68f19', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit44f558c0290dd82b94f75a5f47a68f19', 'loadClassLoader'));
25
 
26
  $vendorDir = dirname(dirname(__FILE__));
27
  $baseDir = dirname($vendorDir);
2
 
3
  // autoload_real_52.php generated by xrstf/composer-php52
4
 
5
+ class ComposerAutoloaderInitecf19c24af77e866fd11bccced6a4584 {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInitecf19c24af77e866fd11bccced6a4584', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInitecf19c24af77e866fd11bccced6a4584', 'loadClassLoader'));
25
 
26
  $vendorDir = dirname(dirname(__FILE__));
27
  $baseDir = dirname($vendorDir);
lang/the-events-calendar-de_DE.mo CHANGED
Binary file
lang/the-events-calendar.pot CHANGED
@@ -2,14 +2,14 @@
2
  # This file is distributed under the same license as the The Events Calendar package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: The Events Calendar 4.5.10\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/the-events-"
7
  "calendar\n"
8
- "POT-Creation-Date: 2017-08-09 12:53:44+00:00\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "PO-Revision-Date: 2017-08-09 12:53\n"
13
  "Last-Translator: \n"
14
  "Language-Team: \n"
15
 
@@ -26,7 +26,7 @@ msgid "Add %s"
26
  msgstr ""
27
 
28
  #: src/Tribe/Admin/Bar/Default_Configurator.php:62
29
- #: src/Tribe/Linked_Posts/Chooser_Meta_Box.php:191 src/Tribe/Main.php:1710
30
  #: src/Tribe/Main.php:4700 src/Tribe/Main.php:4747 src/Tribe/Organizer.php:73
31
  #: src/Tribe/Venue.php:79
32
  msgid "Edit %s"
@@ -94,7 +94,7 @@ msgctxt "%s Event count in admin list"
94
  msgid "All %s"
95
  msgstr ""
96
 
97
- #: src/Tribe/Aggregator/API/Origins.php:31 src/Tribe/Aggregator/Service.php:260
98
  msgid "CSV File"
99
  msgstr ""
100
 
@@ -135,7 +135,7 @@ msgstr ""
135
  msgid "Other URL (beta)"
136
  msgstr ""
137
 
138
- #: src/Tribe/Aggregator/API/Origins.php:209 src/Tribe/Aggregator.php:225
139
  msgid "Event Aggregator"
140
  msgstr ""
141
 
@@ -475,23 +475,23 @@ msgstr[1] ""
475
  msgid "Manage Active Plugins"
476
  msgstr ""
477
 
478
- #: src/Tribe/Aggregator/Record/Abstract.php:266
479
  msgid "Something went wrong while inserting the record in the database."
480
  msgstr ""
481
 
482
- #: src/Tribe/Aggregator/Record/Abstract.php:401
483
  msgid "Record: "
484
  msgstr ""
485
 
486
- #: src/Tribe/Aggregator/Record/Abstract.php:955
487
  msgid "Deleted Attachment: %d"
488
  msgstr ""
489
 
490
- #: src/Tribe/Aggregator/Record/Abstract.php:970
491
  msgid " (opens in a new window)"
492
  msgstr ""
493
 
494
- #: src/Tribe/Aggregator/Record/Abstract.php:996
495
  msgid ""
496
  "When this import was last scheduled to run, the daily limit for your Event "
497
  "Aggregator license had already been reached."
@@ -723,125 +723,125 @@ msgstr ""
723
  msgid "Other URL"
724
  msgstr ""
725
 
726
- #: src/Tribe/Aggregator/Records.php:144
727
  msgid "Events Aggregator Record"
728
  msgstr ""
729
 
730
- #: src/Tribe/Aggregator/Records.php:161
731
  msgctxt "post type general name"
732
  msgid "Aggregator Records"
733
  msgstr ""
734
 
735
- #: src/Tribe/Aggregator/Records.php:162
736
  msgctxt "post type singular name"
737
  msgid "Aggregator Record"
738
  msgstr ""
739
 
740
- #: src/Tribe/Aggregator/Records.php:163
741
  msgctxt "admin menu"
742
  msgid "Aggregator Records"
743
  msgstr ""
744
 
745
- #: src/Tribe/Aggregator/Records.php:164
746
  msgctxt "add new on admin bar"
747
  msgid "Aggregator Record"
748
  msgstr ""
749
 
750
- #: src/Tribe/Aggregator/Records.php:165
751
  msgctxt "record"
752
  msgid "Add New"
753
  msgstr ""
754
 
755
- #: src/Tribe/Aggregator/Records.php:166
756
  msgid "Add New Aggregator Record"
757
  msgstr ""
758
 
759
- #: src/Tribe/Aggregator/Records.php:167
760
  msgid "New Aggregator Record"
761
  msgstr ""
762
 
763
- #: src/Tribe/Aggregator/Records.php:168
764
  msgid "Edit Aggregator Record"
765
  msgstr ""
766
 
767
- #: src/Tribe/Aggregator/Records.php:169
768
  msgid "View Aggregator Record"
769
  msgstr ""
770
 
771
- #: src/Tribe/Aggregator/Records.php:170
772
  msgid "All Aggregator Records"
773
  msgstr ""
774
 
775
- #: src/Tribe/Aggregator/Records.php:171
776
  msgid "Search Aggregator Records"
777
  msgstr ""
778
 
779
- #: src/Tribe/Aggregator/Records.php:172
780
  msgid "Parent Aggregator Record:"
781
  msgstr ""
782
 
783
- #: src/Tribe/Aggregator/Records.php:173
784
  msgid "No Aggregator Records found."
785
  msgstr ""
786
 
787
- #: src/Tribe/Aggregator/Records.php:174
788
  msgid "No Aggregator Records found in Trash."
789
  msgstr ""
790
 
791
- #: src/Tribe/Aggregator/Records.php:211
792
  msgctxt "event aggregator status"
793
  msgid "Imported"
794
  msgstr ""
795
 
796
- #: src/Tribe/Aggregator/Records.php:212
797
  msgctxt "event aggregator status"
798
  msgid "Imported <span class=\"count\">(%s)</span>"
799
  msgid_plural "Imported <span class=\"count\">(%s)</span>"
800
  msgstr[0] ""
801
  msgstr[1] ""
802
 
803
- #: src/Tribe/Aggregator/Records.php:221
804
  msgctxt "event aggregator status"
805
  msgid "Failed"
806
  msgstr ""
807
 
808
- #: src/Tribe/Aggregator/Records.php:222
809
  msgctxt "event aggregator status"
810
  msgid "Failed <span class=\"count\">(%s)</span>"
811
  msgid_plural "Failed <span class=\"count\">(%s)</span>"
812
  msgstr[0] ""
813
  msgstr[1] ""
814
 
815
- #: src/Tribe/Aggregator/Records.php:231
816
  msgctxt "event aggregator status"
817
  msgid "Schedule"
818
  msgstr ""
819
 
820
- #: src/Tribe/Aggregator/Records.php:232
821
  msgctxt "event aggregator status"
822
  msgid "Schedule <span class=\"count\">(%s)</span>"
823
  msgid_plural "Schedule <span class=\"count\">(%s)</span>"
824
  msgstr[0] ""
825
  msgstr[1] ""
826
 
827
- #: src/Tribe/Aggregator/Records.php:241
828
  msgctxt "event aggregator status"
829
  msgid "Pending"
830
  msgstr ""
831
 
832
- #: src/Tribe/Aggregator/Records.php:242
833
  msgctxt "event aggregator status"
834
  msgid "Pending <span class=\"count\">(%s)</span>"
835
  msgid_plural "Pending <span class=\"count\">(%s)</span>"
836
  msgstr[0] ""
837
  msgstr[1] ""
838
 
839
- #: src/Tribe/Aggregator/Records.php:251
840
  msgctxt "event aggregator status"
841
  msgid "Draft"
842
  msgstr ""
843
 
844
- #: src/Tribe/Aggregator/Records.php:252
845
  msgctxt "event aggregator status"
846
  msgid "Draft <span class=\"count\">(%s)</span>"
847
  msgid_plural "Draft <span class=\"count\">(%s)</span>"
@@ -1299,7 +1299,7 @@ msgid "Successfully connected Event Aggregator to Facebook"
1299
  msgstr ""
1300
 
1301
  #: src/Tribe/Aggregator.php:407
1302
- msgid "Your Event Aggregator Facebook token has expired %s."
1303
  msgstr ""
1304
 
1305
  #: src/Tribe/Aggregator.php:409
@@ -1883,11 +1883,11 @@ msgid "The file went away. Please try again."
1883
  msgstr ""
1884
 
1885
  #: src/Tribe/Importer/Admin_Page.php:204 src/Tribe/Venue.php:144
1886
- #: src/functions/template-tags/venue.php:52
1887
  msgid "Venues"
1888
  msgstr ""
1889
 
1890
- #: src/Tribe/Importer/Admin_Page.php:205 src/Tribe/Organizer.php:150
1891
  #: src/functions/template-tags/organizer.php:86
1892
  msgid "Organizers"
1893
  msgstr ""
@@ -2143,43 +2143,57 @@ msgid ""
2143
  "the file manually."
2144
  msgstr ""
2145
 
2146
- #: src/Tribe/Linked_Posts/Chooser_Meta_Box.php:152
2147
  msgid "Create New %s"
2148
  msgstr ""
2149
 
2150
- #: src/Tribe/Linked_Posts/Chooser_Meta_Box.php:153
2151
  msgid "%s:"
2152
  msgstr ""
2153
 
2154
- #: src/Tribe/Linked_Posts/Chooser_Meta_Box.php:241
2155
  msgid "Add another %s"
2156
  msgstr ""
2157
 
2158
- #: src/Tribe/Linked_Posts/Chooser_Meta_Box.php:262
2159
  msgid "Delete this"
2160
  msgstr ""
2161
 
2162
- #: src/Tribe/Linked_Posts.php:770
2163
  msgid "My %s"
2164
  msgstr ""
2165
 
2166
- #: src/Tribe/Linked_Posts.php:774
2167
  msgid "Available %s"
2168
  msgstr ""
2169
 
2170
- #: src/Tribe/Linked_Posts.php:911 src/Tribe/Linked_Posts.php:916
2171
- msgid "Find a %s"
 
 
 
2172
  msgstr ""
2173
 
2174
- #: src/Tribe/Linked_Posts.php:913 src/Tribe/Linked_Posts.php:918
 
 
 
 
 
 
 
 
 
 
 
2175
  msgid "Create or Find %s"
2176
  msgstr ""
2177
 
2178
- #: src/Tribe/Linked_Posts.php:932
2179
  msgid "Create: <b><%= term %></b>"
2180
  msgstr ""
2181
 
2182
- #: src/Tribe/Linked_Posts.php:938
2183
  msgid "No saved %s exists."
2184
  msgstr ""
2185
 
@@ -2195,7 +2209,7 @@ msgstr ""
2195
  msgid "Upcoming Events"
2196
  msgstr ""
2197
 
2198
- #. #-#-#-#-# the-events-calendar.pot (The Events Calendar 4.5.10) #-#-#-#-#
2199
  #. Plugin Name of the plugin/theme
2200
  #: src/Tribe/Main.php:719 src/Tribe/Main.php:1054
2201
  msgid "The Events Calendar"
@@ -2255,7 +2269,7 @@ msgid "Ask the site administrator to edit the %s slug"
2255
  msgstr ""
2256
 
2257
  #: src/Tribe/Main.php:949
2258
- msgid "<a href=\"%s\">Edit the %s slug</a>"
2259
  msgstr ""
2260
 
2261
  #: src/Tribe/Main.php:953
@@ -2263,7 +2277,7 @@ msgid " ask the site administrator set a different Events URL slug."
2263
  msgstr ""
2264
 
2265
  #: src/Tribe/Main.php:958
2266
- msgid "<a href=\"%s\">edit Events settings</a>."
2267
  msgstr ""
2268
 
2269
  #: src/Tribe/Main.php:961
@@ -2699,19 +2713,19 @@ msgstr ""
2699
  msgid "Error"
2700
  msgstr ""
2701
 
2702
- #: src/Tribe/Organizer.php:136 src/functions/template-tags/organizer.php:75
2703
  msgid "Organizer"
2704
  msgstr ""
2705
 
2706
- #: src/Tribe/Organizer.php:163
2707
  msgid "organizer"
2708
  msgstr ""
2709
 
2710
- #: src/Tribe/Organizer.php:177
2711
  msgid "organizers"
2712
  msgstr ""
2713
 
2714
- #: src/Tribe/Organizer.php:304
2715
  msgid "Unnamed %s"
2716
  msgstr ""
2717
 
@@ -3341,7 +3355,7 @@ msgctxt "Abbreviation for the kilometers unit of measure"
3341
  msgid "km"
3342
  msgstr ""
3343
 
3344
- #: src/Tribe/Venue.php:135 src/functions/template-tags/venue.php:41
3345
  msgid "Venue"
3346
  msgstr ""
3347
 
@@ -3358,7 +3372,7 @@ msgctxt "Metabox title"
3358
  msgid "Location"
3359
  msgstr ""
3360
 
3361
- #: src/Tribe/Venue.php:274 src/functions/template-tags/venue.php:274
3362
  msgid "United States"
3363
  msgstr ""
3364
 
@@ -5169,15 +5183,15 @@ msgstr ""
5169
  msgid "Loading %s"
5170
  msgstr ""
5171
 
5172
- #: src/functions/template-tags/general.php:1151
5173
  msgid "Find out more »"
5174
  msgstr ""
5175
 
5176
- #: src/functions/template-tags/general.php:1152
5177
  msgid "%s for"
5178
  msgstr ""
5179
 
5180
- #: src/functions/template-tags/general.php:1272
5181
  msgid "Calendar powered by %sThe Events Calendar%s"
5182
  msgstr ""
5183
 
@@ -5226,7 +5240,7 @@ msgid ""
5226
  "plural, and this singular.%3$sYour single Event URL is like: %4$s"
5227
  msgstr ""
5228
 
5229
- #: src/functions/template-tags/venue.php:509
5230
  msgctxt "Address separator"
5231
  msgid ", "
5232
  msgstr ""
@@ -5383,8 +5397,8 @@ msgstr ""
5383
  msgid "Day Navigation"
5384
  msgstr ""
5385
 
5386
- #: src/views/day/single-event.php:70 src/views/day/single-featured.php:67
5387
- #: src/views/list/single-event.php:84 src/views/list/single-featured.php:78
5388
  msgid "Find out more"
5389
  msgstr ""
5390
 
2
  # This file is distributed under the same license as the The Events Calendar package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: The Events Calendar 4.5.11\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/the-events-"
7
  "calendar\n"
8
+ "POT-Creation-Date: 2017-08-24 19:04:00+00:00\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "PO-Revision-Date: 2017-08-24 19:04\n"
13
  "Last-Translator: \n"
14
  "Language-Team: \n"
15
 
26
  msgstr ""
27
 
28
  #: src/Tribe/Admin/Bar/Default_Configurator.php:62
29
+ #: src/Tribe/Linked_Posts/Chooser_Meta_Box.php:208 src/Tribe/Main.php:1710
30
  #: src/Tribe/Main.php:4700 src/Tribe/Main.php:4747 src/Tribe/Organizer.php:73
31
  #: src/Tribe/Venue.php:79
32
  msgid "Edit %s"
94
  msgid "All %s"
95
  msgstr ""
96
 
97
+ #: src/Tribe/Aggregator/API/Origins.php:31 src/Tribe/Aggregator/Service.php:606
98
  msgid "CSV File"
99
  msgstr ""
100
 
135
  msgid "Other URL (beta)"
136
  msgstr ""
137
 
138
+ #: src/Tribe/Aggregator/API/Origins.php:230 src/Tribe/Aggregator.php:225
139
  msgid "Event Aggregator"
140
  msgstr ""
141
 
475
  msgid "Manage Active Plugins"
476
  msgstr ""
477
 
478
+ #: src/Tribe/Aggregator/Record/Abstract.php:290
479
  msgid "Something went wrong while inserting the record in the database."
480
  msgstr ""
481
 
482
+ #: src/Tribe/Aggregator/Record/Abstract.php:425
483
  msgid "Record: "
484
  msgstr ""
485
 
486
+ #: src/Tribe/Aggregator/Record/Abstract.php:993
487
  msgid "Deleted Attachment: %d"
488
  msgstr ""
489
 
490
+ #: src/Tribe/Aggregator/Record/Abstract.php:1008
491
  msgid " (opens in a new window)"
492
  msgstr ""
493
 
494
+ #: src/Tribe/Aggregator/Record/Abstract.php:1051
495
  msgid ""
496
  "When this import was last scheduled to run, the daily limit for your Event "
497
  "Aggregator license had already been reached."
723
  msgid "Other URL"
724
  msgstr ""
725
 
726
+ #: src/Tribe/Aggregator/Records.php:149
727
  msgid "Events Aggregator Record"
728
  msgstr ""
729
 
730
+ #: src/Tribe/Aggregator/Records.php:166
731
  msgctxt "post type general name"
732
  msgid "Aggregator Records"
733
  msgstr ""
734
 
735
+ #: src/Tribe/Aggregator/Records.php:167
736
  msgctxt "post type singular name"
737
  msgid "Aggregator Record"
738
  msgstr ""
739
 
740
+ #: src/Tribe/Aggregator/Records.php:168
741
  msgctxt "admin menu"
742
  msgid "Aggregator Records"
743
  msgstr ""
744
 
745
+ #: src/Tribe/Aggregator/Records.php:169
746
  msgctxt "add new on admin bar"
747
  msgid "Aggregator Record"
748
  msgstr ""
749
 
750
+ #: src/Tribe/Aggregator/Records.php:170
751
  msgctxt "record"
752
  msgid "Add New"
753
  msgstr ""
754
 
755
+ #: src/Tribe/Aggregator/Records.php:171
756
  msgid "Add New Aggregator Record"
757
  msgstr ""
758
 
759
+ #: src/Tribe/Aggregator/Records.php:172
760
  msgid "New Aggregator Record"
761
  msgstr ""
762
 
763
+ #: src/Tribe/Aggregator/Records.php:173
764
  msgid "Edit Aggregator Record"
765
  msgstr ""
766
 
767
+ #: src/Tribe/Aggregator/Records.php:174
768
  msgid "View Aggregator Record"
769
  msgstr ""
770
 
771
+ #: src/Tribe/Aggregator/Records.php:175
772
  msgid "All Aggregator Records"
773
  msgstr ""
774
 
775
+ #: src/Tribe/Aggregator/Records.php:176
776
  msgid "Search Aggregator Records"
777
  msgstr ""
778
 
779
+ #: src/Tribe/Aggregator/Records.php:177
780
  msgid "Parent Aggregator Record:"
781
  msgstr ""
782
 
783
+ #: src/Tribe/Aggregator/Records.php:178
784
  msgid "No Aggregator Records found."
785
  msgstr ""
786
 
787
+ #: src/Tribe/Aggregator/Records.php:179
788
  msgid "No Aggregator Records found in Trash."
789
  msgstr ""
790
 
791
+ #: src/Tribe/Aggregator/Records.php:216
792
  msgctxt "event aggregator status"
793
  msgid "Imported"
794
  msgstr ""
795
 
796
+ #: src/Tribe/Aggregator/Records.php:217
797
  msgctxt "event aggregator status"
798
  msgid "Imported <span class=\"count\">(%s)</span>"
799
  msgid_plural "Imported <span class=\"count\">(%s)</span>"
800
  msgstr[0] ""
801
  msgstr[1] ""
802
 
803
+ #: src/Tribe/Aggregator/Records.php:226
804
  msgctxt "event aggregator status"
805
  msgid "Failed"
806
  msgstr ""
807
 
808
+ #: src/Tribe/Aggregator/Records.php:227
809
  msgctxt "event aggregator status"
810
  msgid "Failed <span class=\"count\">(%s)</span>"
811
  msgid_plural "Failed <span class=\"count\">(%s)</span>"
812
  msgstr[0] ""
813
  msgstr[1] ""
814
 
815
+ #: src/Tribe/Aggregator/Records.php:236
816
  msgctxt "event aggregator status"
817
  msgid "Schedule"
818
  msgstr ""
819
 
820
+ #: src/Tribe/Aggregator/Records.php:237
821
  msgctxt "event aggregator status"
822
  msgid "Schedule <span class=\"count\">(%s)</span>"
823
  msgid_plural "Schedule <span class=\"count\">(%s)</span>"
824
  msgstr[0] ""
825
  msgstr[1] ""
826
 
827
+ #: src/Tribe/Aggregator/Records.php:246
828
  msgctxt "event aggregator status"
829
  msgid "Pending"
830
  msgstr ""
831
 
832
+ #: src/Tribe/Aggregator/Records.php:247
833
  msgctxt "event aggregator status"
834
  msgid "Pending <span class=\"count\">(%s)</span>"
835
  msgid_plural "Pending <span class=\"count\">(%s)</span>"
836
  msgstr[0] ""
837
  msgstr[1] ""
838
 
839
+ #: src/Tribe/Aggregator/Records.php:256
840
  msgctxt "event aggregator status"
841
  msgid "Draft"
842
  msgstr ""
843
 
844
+ #: src/Tribe/Aggregator/Records.php:257
845
  msgctxt "event aggregator status"
846
  msgid "Draft <span class=\"count\">(%s)</span>"
847
  msgid_plural "Draft <span class=\"count\">(%s)</span>"
1299
  msgstr ""
1300
 
1301
  #: src/Tribe/Aggregator.php:407
1302
+ msgid "Your Event Aggregator Facebook token expired %s."
1303
  msgstr ""
1304
 
1305
  #: src/Tribe/Aggregator.php:409
1883
  msgstr ""
1884
 
1885
  #: src/Tribe/Importer/Admin_Page.php:204 src/Tribe/Venue.php:144
1886
+ #: src/functions/template-tags/venue.php:76
1887
  msgid "Venues"
1888
  msgstr ""
1889
 
1890
+ #: src/Tribe/Importer/Admin_Page.php:205 src/Tribe/Organizer.php:151
1891
  #: src/functions/template-tags/organizer.php:86
1892
  msgid "Organizers"
1893
  msgstr ""
2143
  "the file manually."
2144
  msgstr ""
2145
 
2146
+ #: src/Tribe/Linked_Posts/Chooser_Meta_Box.php:168
2147
  msgid "Create New %s"
2148
  msgstr ""
2149
 
2150
+ #: src/Tribe/Linked_Posts/Chooser_Meta_Box.php:169
2151
  msgid "%s:"
2152
  msgstr ""
2153
 
2154
+ #: src/Tribe/Linked_Posts/Chooser_Meta_Box.php:256
2155
  msgid "Add another %s"
2156
  msgstr ""
2157
 
2158
+ #: src/Tribe/Linked_Posts/Chooser_Meta_Box.php:279
2159
  msgid "Delete this"
2160
  msgstr ""
2161
 
2162
+ #: src/Tribe/Linked_Posts.php:769
2163
  msgid "My %s"
2164
  msgstr ""
2165
 
2166
+ #: src/Tribe/Linked_Posts.php:773
2167
  msgid "Available %s"
2168
  msgstr ""
2169
 
2170
+ #: src/Tribe/Linked_Posts.php:910
2171
+ msgctxt ""
2172
+ "Indefinite article for the phrase \"Find a {post type name}. Will be "
2173
+ "replaced with \"an\" if the {post type name} starts with a vowel."
2174
+ msgid "a"
2175
  msgstr ""
2176
 
2177
+ #: src/Tribe/Linked_Posts.php:917
2178
+ msgctxt ""
2179
+ "Indefinite article for the phrase \"Find a {post type name}\" when the {post "
2180
+ "type name} starts with a vowel, e.g. \"Find an Organizer\"."
2181
+ msgid "an"
2182
+ msgstr ""
2183
+
2184
+ #: src/Tribe/Linked_Posts.php:920 src/Tribe/Linked_Posts.php:926
2185
+ msgid "Find %1$s %2$s"
2186
+ msgstr ""
2187
+
2188
+ #: src/Tribe/Linked_Posts.php:923 src/Tribe/Linked_Posts.php:929
2189
  msgid "Create or Find %s"
2190
  msgstr ""
2191
 
2192
+ #: src/Tribe/Linked_Posts.php:943
2193
  msgid "Create: <b><%= term %></b>"
2194
  msgstr ""
2195
 
2196
+ #: src/Tribe/Linked_Posts.php:949
2197
  msgid "No saved %s exists."
2198
  msgstr ""
2199
 
2209
  msgid "Upcoming Events"
2210
  msgstr ""
2211
 
2212
+ #. #-#-#-#-# the-events-calendar.pot (The Events Calendar 4.5.11) #-#-#-#-#
2213
  #. Plugin Name of the plugin/theme
2214
  #: src/Tribe/Main.php:719 src/Tribe/Main.php:1054
2215
  msgid "The Events Calendar"
2269
  msgstr ""
2270
 
2271
  #: src/Tribe/Main.php:949
2272
+ msgid "Edit the %s slug"
2273
  msgstr ""
2274
 
2275
  #: src/Tribe/Main.php:953
2277
  msgstr ""
2278
 
2279
  #: src/Tribe/Main.php:958
2280
+ msgid "edit Events settings."
2281
  msgstr ""
2282
 
2283
  #: src/Tribe/Main.php:961
2713
  msgid "Error"
2714
  msgstr ""
2715
 
2716
+ #: src/Tribe/Organizer.php:137 src/functions/template-tags/organizer.php:75
2717
  msgid "Organizer"
2718
  msgstr ""
2719
 
2720
+ #: src/Tribe/Organizer.php:164
2721
  msgid "organizer"
2722
  msgstr ""
2723
 
2724
+ #: src/Tribe/Organizer.php:178
2725
  msgid "organizers"
2726
  msgstr ""
2727
 
2728
+ #: src/Tribe/Organizer.php:319
2729
  msgid "Unnamed %s"
2730
  msgstr ""
2731
 
3355
  msgid "km"
3356
  msgstr ""
3357
 
3358
+ #: src/Tribe/Venue.php:135 src/functions/template-tags/venue.php:57
3359
  msgid "Venue"
3360
  msgstr ""
3361
 
3372
  msgid "Location"
3373
  msgstr ""
3374
 
3375
+ #: src/Tribe/Venue.php:274 src/functions/template-tags/venue.php:379
3376
  msgid "United States"
3377
  msgstr ""
3378
 
5183
  msgid "Loading %s"
5184
  msgstr ""
5185
 
5186
+ #: src/functions/template-tags/general.php:1152
5187
  msgid "Find out more »"
5188
  msgstr ""
5189
 
5190
+ #: src/functions/template-tags/general.php:1153
5191
  msgid "%s for"
5192
  msgstr ""
5193
 
5194
+ #: src/functions/template-tags/general.php:1273
5195
  msgid "Calendar powered by %sThe Events Calendar%s"
5196
  msgstr ""
5197
 
5240
  "plural, and this singular.%3$sYour single Event URL is like: %4$s"
5241
  msgstr ""
5242
 
5243
+ #: src/functions/template-tags/venue.php:716
5244
  msgctxt "Address separator"
5245
  msgid ", "
5246
  msgstr ""
5397
  msgid "Day Navigation"
5398
  msgstr ""
5399
 
5400
+ #: src/views/day/single-event.php:78 src/views/day/single-featured.php:67
5401
+ #: src/views/list/single-event.php:92 src/views/list/single-featured.php:78
5402
  msgid "Find out more"
5403
  msgstr ""
5404
 
readme.txt CHANGED
@@ -3,8 +3,8 @@
3
  Contributors: ModernTribe, aguseo, borkweb, barry.hughes, bordoni, brianjessee, brook-tribe, cliffpaulick, courane01, faction23, GeoffBel, geoffgraham, ggwicz, jbrinley, leahkoerper, jentheo, lucatume, mastromktg, mat-lipe, MZAWeb, neillmcshea, nicosantos, patriciahillebrandt, peterchester, reid.peifer, roblagatta, ryancurban, shane.pearlman, shelbelliott, tribecari, vicskf, zbtirrell
4
  Tags: events, calendar, event, venue, organizer, dates, date, google maps, conference, workshop, concert, meeting, seminar, summit, class, modern tribe, tribe, widget
5
  Donate link: http://m.tri.be/29
6
- Requires at least: 4.4
7
- Stable tag: 4.5.10.1
8
  Tested up to: 4.8.1
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -216,7 +216,7 @@ But wait: there's more! We've got a whole stable of plugins available to help yo
216
 
217
  Our Free Plugins:
218
 
219
- * [Event Tickets](https://wordpress.org/plugin/event-tickets/)
220
  * [Advanced Post Manager](https://wordpress.org/plugins/advanced-post-manager/)
221
  * [Blog Copier](https://wordpress.org/plugins/blog-copier/)
222
  * [GigPress](https://wordpress.org/plugins/gigpress/)
@@ -327,6 +327,32 @@ Please see the changelog for the complete list of changes in this release. Remem
327
 
328
  == Changelog ==
329
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
330
  = [4.5.10.1] 2017-08-16 =
331
 
332
  * Fix - Updates common library to resolve a range of issues preventing frontend assets from loading and breaking parts of our user interface [85017]
@@ -337,7 +363,7 @@ Please see the changelog for the complete list of changes in this release. Remem
337
  * Fix - Fixed bug that caused scheduled imports to get stuck in a perpetual state of failure when receiving error messages from the Event Aggregator service (our thanks to Antonio Jose and others for flagging this problem) [83767]
338
  * Fix - Resolved issue where errors from the Event Aggregator service were not properly logging/visible on the History tab [83767]
339
  * Tweak - Made linked post fields' auto-save features more stringently check for empty values to prevent the plugin from trying to "save" empty values (our thanks to Jean-Marie for highlighting this problem) [80282]
340
- * Tweak - Moved the organizer e-mail address field label a bit to better accomodate Community Events [80426]
341
  * Tweak - Added filter to tribe_get_display_end_date()'s return value [77730]
342
  * Tweak - Avoid notice-level errors while processing queues within Event Aggregator (our thanks to David Sharpe and others for reporting this) [84020]
343
  * Tweak - Improve compatibility and avoid Javascript errors when running alongside Twenty Seventeen [70853]
3
  Contributors: ModernTribe, aguseo, borkweb, barry.hughes, bordoni, brianjessee, brook-tribe, cliffpaulick, courane01, faction23, GeoffBel, geoffgraham, ggwicz, jbrinley, leahkoerper, jentheo, lucatume, mastromktg, mat-lipe, MZAWeb, neillmcshea, nicosantos, patriciahillebrandt, peterchester, reid.peifer, roblagatta, ryancurban, shane.pearlman, shelbelliott, tribecari, vicskf, zbtirrell
4
  Tags: events, calendar, event, venue, organizer, dates, date, google maps, conference, workshop, concert, meeting, seminar, summit, class, modern tribe, tribe, widget
5
  Donate link: http://m.tri.be/29
6
+ Requires at least: 4.5
7
+ Stable tag: 4.5.11
8
  Tested up to: 4.8.1
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
216
 
217
  Our Free Plugins:
218
 
219
+ * [Event Tickets](https://wordpress.org/plugins/event-tickets/)
220
  * [Advanced Post Manager](https://wordpress.org/plugins/advanced-post-manager/)
221
  * [Blog Copier](https://wordpress.org/plugins/blog-copier/)
222
  * [GigPress](https://wordpress.org/plugins/gigpress/)
327
 
328
  == Changelog ==
329
 
330
+ = [4.5.11] 2017-08-24 =
331
+
332
+ * Fix - Avoid Event Aggregator previews or scheduled imports being marked as failures [84259]
333
+ * Fix - Fixed start and end date limit parsing for events archive in the REST API code [78375]
334
+ * Fix - Fixed issue with `tribe_events_get_the_excerpt()` returning a read more link that sometimes pointed to the current page [70473]
335
+ * Fix - Fixed Post ID not being sent to the_title filter for Organizers and Venues (props Anna L.) [85206]
336
+ * Fix - Fixed issue where Month View tooltips would often go off-screen in some smaller viewport sizes [65136]
337
+ * Fix - Fixed an issue that would sometimes render Event Aggregator options invalid even with a valid license [78469]
338
+ * Fix - Fixed an issue where the mobile.php template file would often fail to include an event's featured image [74291]
339
+ * Fix - Resolved issue where invalid linked post IDs prevent proper updates on linked posts (props to Mathew L. and a few others for highlighting this issue) [71802]
340
+ * Fix - Do not hijack the blog when the main events page is configured to appear on the site's homepage (our thanks to Jason and others for flagging this problem) [72094]
341
+ * Fix - remove extra trailing double-quotes at the end of the timepicker data-format attributes [85603]
342
+ * Fix - Fixed an issues where Event Aggregator scheduled imports could not run other than manually [81639]
343
+ * Tweak - Prevent stray commas from showing up for some event venues in the List View [72289]
344
+ * Tweak - Prevent stray commas from showing up for some event venues in the Day View [85429]
345
+ * Tweak - Modify certain event queries to widen the window of opportunity for query caching (props @garretjohnson) [84841]
346
+ * Tweak - Improve Event Aggregator message regarding Facebook token expiration [70376]
347
+ * Tweak - Support importing from URLs (Event Aggregator) where the protocol hasn't been specified by defaulting to HTTP [76466]
348
+ * Tweak - Removed WP API adjustments [85996]
349
+ * Tweak - Added filter: `tribe_aggregator_meta_source` to filter the Event Aggregator import source
350
+ * Tweak - Added filter: `tribe_events_linked_post_meta_values_{$current_linked_post_meta_key}` for filtering the array of values retrieved for a specific linked post meta field
351
+ * Tweak - Updated views: `src/views/day/single-event.php` and `src/views/list/single-event.php`
352
+ * Compatibility - Minimum supported version of WordPress is now 4.5
353
+ * Language - Improvements to various strings to improve ease of translation (props to @ramiy)
354
+ * Language - 5 new strings added, 56 updated, 1 fuzzied, and 3 obsoleted [the-events-calendar]
355
+
356
  = [4.5.10.1] 2017-08-16 =
357
 
358
  * Fix - Updates common library to resolve a range of issues preventing frontend assets from loading and breaking parts of our user interface [85017]
363
  * Fix - Fixed bug that caused scheduled imports to get stuck in a perpetual state of failure when receiving error messages from the Event Aggregator service (our thanks to Antonio Jose and others for flagging this problem) [83767]
364
  * Fix - Resolved issue where errors from the Event Aggregator service were not properly logging/visible on the History tab [83767]
365
  * Tweak - Made linked post fields' auto-save features more stringently check for empty values to prevent the plugin from trying to "save" empty values (our thanks to Jean-Marie for highlighting this problem) [80282]
366
+ * Tweak - Moved the organizer e-mail address field label a bit to better accommodate Community Events [80426]
367
  * Tweak - Added filter to tribe_get_display_end_date()'s return value [77730]
368
  * Tweak - Avoid notice-level errors while processing queues within Event Aggregator (our thanks to David Sharpe and others for reporting this) [84020]
369
  * Tweak - Improve compatibility and avoid Javascript errors when running alongside Twenty Seventeen [70853]
src/Tribe/Aggregator.php CHANGED
@@ -404,7 +404,7 @@ class Tribe__Events__Aggregator {
404
  <p>
405
  <?php
406
  if ( $passed > 0 ) {
407
- echo sprintf( __( 'Your Event Aggregator Facebook token has expired %s.', 'the-events-calendar' ), $time );
408
  } else {
409
  echo sprintf( __( 'Your Event Aggregator Facebook token will expire %s.', 'the-events-calendar' ), $time );
410
  }
404
  <p>
405
  <?php
406
  if ( $passed > 0 ) {
407
+ echo sprintf( __( 'Your Event Aggregator Facebook token expired %s.', 'the-events-calendar' ), $time );
408
  } else {
409
  echo sprintf( __( 'Your Event Aggregator Facebook token will expire %s.', 'the-events-calendar' ), $time );
410
  }
src/Tribe/Aggregator/API/Origins.php CHANGED
@@ -124,7 +124,15 @@ class Tribe__Events__Aggregator__API__Origins extends Tribe__Events__Aggregator_
124
  }
125
  }
126
 
127
- set_transient( "{$this->cache_group}_origins", $this->origins, 6 * HOUR_IN_SECONDS );
 
 
 
 
 
 
 
 
128
 
129
  return $this->origins;
130
  }
@@ -134,24 +142,37 @@ class Tribe__Events__Aggregator__API__Origins extends Tribe__Events__Aggregator_
134
  */
135
  private function fetch_origin_data() {
136
  $cached = tribe_get_var( 'events-aggregator.origins-data' );
 
 
 
 
137
 
138
  if ( ! empty( $cached ) ) {
139
  return $cached;
140
  }
141
 
142
- $origin_data = (object) $this->service->get_origins();
 
143
 
144
- if ( ! get_transient( "{$this->cache_group}_origin_oauth" ) && ! empty( $origin_data->oauth ) ) {
145
- set_transient( "{$this->cache_group}_origin_oauth", $origin_data->oauth, 6 * HOUR_IN_SECONDS );
146
- }
 
147
 
148
- if ( ! get_transient( "{$this->cache_group}_origin_limit" ) && ! empty( $origin_data->limit ) ) {
149
- set_transient( "{$this->cache_group}_origin_limit", $origin_data->limit, 6 * HOUR_IN_SECONDS );
 
 
 
 
 
 
150
  }
151
 
152
  tribe_set_var( 'events-aggregator.origins-data', $origin_data );
153
 
154
  return $origin_data;
 
155
  }
156
 
157
  /**
124
  }
125
  }
126
 
127
+ // use the specified expiration if available
128
+ if ( isset( $this->origins->expiration ) ) {
129
+ $expiration = $this->origins->expiration;
130
+ unset( $this->origins->expiration );
131
+ } else {
132
+ $expiration = 6 * HOUR_IN_SECONDS;
133
+ }
134
+
135
+ set_transient( "{$this->cache_group}_origins", $this->origins, $expiration );
136
 
137
  return $this->origins;
138
  }
142
  */
143
  private function fetch_origin_data() {
144
  $cached = tribe_get_var( 'events-aggregator.origins-data' );
145
+ if ( empty( $cached ) ) {
146
+ // try to see if we have a lock in place
147
+ $cached = get_transient( "{$this->cache_group}_fetch_lock" );
148
+ }
149
 
150
  if ( ! empty( $cached ) ) {
151
  return $cached;
152
  }
153
 
154
+ list( $origin_data, $error ) = $this->service->get_origins( true );
155
+ $origin_data = (object) $origin_data;
156
 
157
+ if ( empty( $error ) ) {
158
+ if ( ! get_transient( "{$this->cache_group}_origin_oauth" ) && ! empty( $origin_data->oauth ) ) {
159
+ set_transient( "{$this->cache_group}_origin_oauth", $origin_data->oauth, 6 * HOUR_IN_SECONDS );
160
+ }
161
 
162
+ if ( ! get_transient( "{$this->cache_group}_origin_limit" ) && ! empty( $origin_data->limit ) ) {
163
+ set_transient( "{$this->cache_group}_origin_limit", $origin_data->limit, 6 * HOUR_IN_SECONDS );
164
+ }
165
+ } elseif ( 403 == wp_remote_retrieve_response_code( $error ) ) {
166
+ // store the origins data for 5' only
167
+ $origin_data->expiration = 300;
168
+ // and avoid bugging the service for 5'
169
+ set_transient( "{$this->cache_group}_fetch_lock", $origin_data, 300 );
170
  }
171
 
172
  tribe_set_var( 'events-aggregator.origins-data', $origin_data );
173
 
174
  return $origin_data;
175
+
176
  }
177
 
178
  /**
src/Tribe/Aggregator/Cron.php CHANGED
@@ -292,7 +292,7 @@ class Tribe__Events__Aggregator__Cron {
292
  ) );
293
 
294
  if ( ! $query->have_posts() ) {
295
- $this->log( 'debug', 'No Records Scheduled, skipped creating children' );
296
  return;
297
  }
298
 
@@ -304,48 +304,50 @@ class Tribe__Events__Aggregator__Cron {
304
  }
305
 
306
  if ( ! $record->is_schedule_time() ) {
307
- $this->log( 'debug', sprintf( 'Record (%d) skipped, not scheduled time', $record->id ) );
308
  continue;
309
  }
310
 
311
  if ( $record->get_child_record_by_status( 'pending' ) ) {
312
- $this->log( 'debug', sprintf( 'Record (%d) skipped, has pending child(ren)', $record->id ) );
313
  continue;
314
  }
315
 
316
  // if there are no remaining imports for today, log that and skip
317
  if ( $service->is_over_limit( true ) ) {
318
- $this->log( 'debug', sprintf( $service->get_service_message( 'error:usage-limit-exceeded' ) . ' (%1$d)', $record->id ) );
 
319
  $record->update_meta( 'last_import_status', 'error:usage-limit-exceeded' );
320
  continue;
321
  }
322
 
323
  // Creating the child records based on this Parent
324
  $child = $record->create_child_record();
325
- $this->log( 'debug', sprintf( 'Creating child record %d', $child->id ) );
326
 
327
  if ( ! is_wp_error( $child ) ) {
328
- $this->log( 'debug', sprintf( 'Record (%d) was created as a child', $child->id ) );
329
 
330
  // Creates on the Service a Queue to Fetch the events
331
  $response = $child->queue_import();
332
- $this->log( 'debug', sprintf( 'Queueing import on EA Service for %d', $child->id ) );
333
  if ( ! empty( $response->status ) ) {
334
- $this->log( 'debug', sprintf( '%s — %s (%s)', $response->status, $response->message, $response->data->import_id ) );
 
335
 
336
  $record->update_meta( 'last_import_status', 'success:queued' );
337
  } elseif ( is_numeric( $response ) ) {
338
  // it's the post ID of a rescheduled record
339
- $this->log( 'debug', sprintf( 'rescheduled — %s', $response ) );
340
 
341
  $record->update_meta( 'last_import_status', 'queued' );
342
  } else {
343
- $this->log( 'debug', 'Could not create Queue on Service' );
344
 
345
  $record->update_meta( 'last_import_status', 'error:import-failed' );
346
  }
347
  } else {
348
- $this->log( 'debug', $child->get_error_message() );
349
  $record->update_meta( 'last_import_status', 'error:import-failed' );
350
  }
351
  }
@@ -366,23 +368,27 @@ class Tribe__Events__Aggregator__Cron {
366
  $records = Tribe__Events__Aggregator__Records::instance();
367
 
368
  $query = $records->query( array(
369
- 'post_status' => Tribe__Events__Aggregator__Records::$status->pending,
370
- 'posts_per_page' => -1,
371
- 'order' => 'ASC',
372
- 'meta_query' => array(
373
  array(
374
- 'key' => '_tribe_aggregator_origin',
375
- 'value' => 'csv',
376
  'compare' => '!=',
377
  ),
378
  ),
 
379
  ) );
380
 
381
  if ( ! $query->have_posts() ) {
382
- $this->log( 'debug', 'No Records Pending, skipped Fetching from service' );
383
  return;
384
  }
385
 
 
 
 
386
  $cleaner = new Tribe__Events__Aggregator__Record__Queue_Cleaner();
387
  foreach ( $query->posts as $post ) {
388
  $record = $records->get_by_post_id( $post );
@@ -395,13 +401,13 @@ class Tribe__Events__Aggregator__Cron {
395
  $failed = $cleaner->maybe_fail_stalled_record( $record );
396
 
397
  if ( $failed ) {
398
- $this->log( 'error', sprintf( 'Stalled record (%d)', $record->id ) );
399
  continue;
400
  }
401
 
402
  // Just double Check for CSV
403
  if ( 'csv' === $record->origin ) {
404
- $this->log( 'debug', sprintf( 'Record (%d) skipped, has CSV origin', $record->id ) );
405
  continue;
406
  }
407
 
@@ -410,7 +416,7 @@ class Tribe__Events__Aggregator__Cron {
410
 
411
  if ( ! is_wp_error( $queue ) ) {
412
  /** @var Tribe__Events__Aggregator__Record__Queue $queue */
413
- $this->log( 'debug', sprintf( 'Record (%d) has processed queue ', $record->id ) );
414
 
415
  if ( $queue instanceof Tribe__Events__Aggregator__Record__Queue ) {
416
  $activity = $queue->activity()->get();
@@ -424,11 +430,11 @@ class Tribe__Events__Aggregator__Cron {
424
  if ( empty( $ids ) ) {
425
  continue;
426
  }
427
- $this->log( 'debug', sprintf( "\t" . '%s — %s: %s', $key, $action, implode( ', ', $ids ) ) );
428
  }
429
  }
430
  } else {
431
- $this->log( 'debug', sprintf( 'Record (%d) — %s', $record->id, $queue->get_error_message() ) );
432
  }
433
  }
434
  }
@@ -488,7 +494,7 @@ class Tribe__Events__Aggregator__Cron {
488
  $query = $records->query( $args );
489
 
490
  if ( ! $query->have_posts() ) {
491
- $this->log( 'debug', 'No Records over retention limit, skipped pruning expired' );
492
  return;
493
  }
494
 
@@ -496,63 +502,34 @@ class Tribe__Events__Aggregator__Cron {
496
  $record = Tribe__Events__Aggregator__Records::instance()->get_by_post_id( $post );
497
 
498
  if ( tribe_is_error( $record ) ) {
499
- $this->log( 'debug', sprintf( 'Record (%d) skipped, original post non-existent', $post->id ) );
500
  continue;
501
  }
502
 
503
  if ( ! $record->has_passed_retention_time() ) {
504
- $this->log( 'debug', sprintf( 'Record (%d) skipped, not past retention time', $record->id ) );
505
  continue;
506
  }
507
 
 
 
 
508
  // Creating the child records based on this Parent
509
- $deleted = wp_delete_post( $record->id, true );
 
 
 
510
 
511
- if ( $deleted ) {
512
- $this->log( 'debug', sprintf( 'Record (%d) was pruned', $deleted->ID ) );
 
 
 
 
513
  } else {
514
- $this->log( 'debug', sprintf( 'Record (%d) was not pruned', $deleted ) );
 
515
  }
516
  }
517
  }
518
-
519
- /**
520
- * Allows us to log if we are using WP_CLI to fire this cron task
521
- *
522
- * @see http://wp-cli.org/docs/internal-api/#output
523
- *
524
- * @param string $type What kind of log is this
525
- * @param string $message message displayed
526
- *
527
- * @return void
528
- */
529
- public function log( $type = 'colorize', $message = '' ) {
530
- // Log on our Structure
531
- Tribe__Main::instance()->log()->log_debug( $message, 'aggregator' );
532
-
533
- // Only go further if we have WP_CLI
534
- if ( ! class_exists( 'WP_CLI' ) ) {
535
- return false;
536
- }
537
-
538
- switch ( $type ) {
539
- case 'error':
540
- WP_CLI::error( $message );
541
- break;
542
- case 'warning':
543
- WP_CLI::warning( $message );
544
- break;
545
- case 'success':
546
- WP_CLI::success( $message );
547
- break;
548
- case 'debug':
549
- WP_CLI::debug( $message, 'aggregator' );
550
- break;
551
-
552
- case 'colorize':
553
- default:
554
- WP_CLI::log( WP_CLI::colorize( $message ) );
555
- break;
556
- }
557
- }
558
  }
292
  ) );
293
 
294
  if ( ! $query->have_posts() ) {
295
+ tribe( 'logger' )->log_debug( 'No Records Scheduled, skipped creating children', 'EA Cron' );
296
  return;
297
  }
298
 
304
  }
305
 
306
  if ( ! $record->is_schedule_time() ) {
307
+ tribe( 'logger' )->log_debug( sprintf( 'Record (%d) skipped, not scheduled time', $record->id ), 'EA Cron' );
308
  continue;
309
  }
310
 
311
  if ( $record->get_child_record_by_status( 'pending' ) ) {
312
+ tribe( 'logger' )->log_debug( sprintf( 'Record (%d) skipped, has pending child(ren)', $record->id ), 'EA Cron' );
313
  continue;
314
  }
315
 
316
  // if there are no remaining imports for today, log that and skip
317
  if ( $service->is_over_limit( true ) ) {
318
+ tribe( 'logger' )->log_debug( sprintf( $service->get_service_message( 'error:usage-limit-exceeded' ) . ' (%1$d)', $record->id ),
319
+ 'EA Cron' );
320
  $record->update_meta( 'last_import_status', 'error:usage-limit-exceeded' );
321
  continue;
322
  }
323
 
324
  // Creating the child records based on this Parent
325
  $child = $record->create_child_record();
326
+ tribe( 'logger' )->log_debug( sprintf( 'Creating child record %d', $child->id ), 'EA Cron' );
327
 
328
  if ( ! is_wp_error( $child ) ) {
329
+ tribe( 'logger' )->log_debug( sprintf( 'Record (%d) was created as a child', $child->id ), 'EA Cron' );
330
 
331
  // Creates on the Service a Queue to Fetch the events
332
  $response = $child->queue_import();
333
+ tribe( 'logger' )->log_debug( sprintf( 'Queueing import on EA Service for %d', $child->id ), 'EA Cron' );
334
  if ( ! empty( $response->status ) ) {
335
+ tribe( 'logger' )->log_debug( sprintf( '%s — %s (%s)', $response->status, $response->message, $response->data->import_id ),
336
+ 'EA Cron' );
337
 
338
  $record->update_meta( 'last_import_status', 'success:queued' );
339
  } elseif ( is_numeric( $response ) ) {
340
  // it's the post ID of a rescheduled record
341
+ tribe( 'logger' )->log_debug( sprintf( 'rescheduled — %s', $response ), 'EA Cron' );
342
 
343
  $record->update_meta( 'last_import_status', 'queued' );
344
  } else {
345
+ tribe( 'logger' )->log_debug( 'Could not create Queue on Service', 'EA Cron' );
346
 
347
  $record->update_meta( 'last_import_status', 'error:import-failed' );
348
  }
349
  } else {
350
+ tribe( 'logger' )->log_debug( $child->get_error_message(), 'EA Cron' );
351
  $record->update_meta( 'last_import_status', 'error:import-failed' );
352
  }
353
  }
368
  $records = Tribe__Events__Aggregator__Records::instance();
369
 
370
  $query = $records->query( array(
371
+ 'post_status' => Tribe__Events__Aggregator__Records::$status->pending,
372
+ 'posts_per_page' => - 1,
373
+ 'order' => 'ASC',
374
+ 'meta_query' => array(
375
  array(
376
+ 'key' => '_tribe_aggregator_origin',
377
+ 'value' => 'csv',
378
  'compare' => '!=',
379
  ),
380
  ),
381
+ 'after' => '-4 hours',
382
  ) );
383
 
384
  if ( ! $query->have_posts() ) {
385
+ tribe( 'logger' )->log_debug( 'No Records Pending, skipped Fetching from service', 'EA Cron' );
386
  return;
387
  }
388
 
389
+ $count = count( $query->posts );
390
+ tribe( 'logger' )->log_debug( "Found {$count} records", 'EA Cron' );
391
+
392
  $cleaner = new Tribe__Events__Aggregator__Record__Queue_Cleaner();
393
  foreach ( $query->posts as $post ) {
394
  $record = $records->get_by_post_id( $post );
401
  $failed = $cleaner->maybe_fail_stalled_record( $record );
402
 
403
  if ( $failed ) {
404
+ tribe( 'logger' )->log_debug( sprintf( 'Stalled record (%d) was skipped', $record->id ), 'EA Cron' );
405
  continue;
406
  }
407
 
408
  // Just double Check for CSV
409
  if ( 'csv' === $record->origin ) {
410
+ tribe( 'logger' )->log_debug( sprintf( 'Record (%d) skipped, has CSV origin', $record->id ), 'EA Cron' );
411
  continue;
412
  }
413
 
416
 
417
  if ( ! is_wp_error( $queue ) ) {
418
  /** @var Tribe__Events__Aggregator__Record__Queue $queue */
419
+ tribe( 'logger' )->log_debug( sprintf( 'Record (%d) has processed queue ', $record->id ), 'EA Cron' );
420
 
421
  if ( $queue instanceof Tribe__Events__Aggregator__Record__Queue ) {
422
  $activity = $queue->activity()->get();
430
  if ( empty( $ids ) ) {
431
  continue;
432
  }
433
+ tribe( 'logger' )->log_debug( sprintf( "\t" . '%s — %s: %s', $key, $action, implode( ', ', $ids ) ), 'EA Cron' );
434
  }
435
  }
436
  } else {
437
+ tribe( 'logger' )->log_debug( sprintf( 'Record (%d) — %s', $record->id, $queue->get_error_message() ), 'EA Cron' );
438
  }
439
  }
440
  }
494
  $query = $records->query( $args );
495
 
496
  if ( ! $query->have_posts() ) {
497
+ tribe( 'logger' )->log_debug( 'No Records over retention limit, skipped pruning expired', 'EA Cron' );
498
  return;
499
  }
500
 
502
  $record = Tribe__Events__Aggregator__Records::instance()->get_by_post_id( $post );
503
 
504
  if ( tribe_is_error( $record ) ) {
505
+ tribe( 'logger' )->log_debug( sprintf( 'Record (%d) skipped, original post non-existent', $post->ID ), 'EA Cron' );
506
  continue;
507
  }
508
 
509
  if ( ! $record->has_passed_retention_time() ) {
510
+ tribe( 'logger' )->log_debug( sprintf( 'Record (%d) skipped, not past retention time', $record->id ), 'EA Cron' );
511
  continue;
512
  }
513
 
514
+ $has_post = false;
515
+ $deleted = false;
516
+
517
  // Creating the child records based on this Parent
518
+ if ( ! empty( $record->id ) ) {
519
+ $has_post = true;
520
+ $deleted = wp_delete_post( $record->id, true );
521
+ }
522
 
523
+ if ( $has_post ) {
524
+ if ( $deleted ) {
525
+ tribe( 'logger' )->log_debug( sprintf( 'Record (%d) was pruned', $deleted->ID ), 'EA Cron' );
526
+ } else {
527
+ tribe( 'logger' )->log_debug( sprintf( 'Record (%d) was not pruned', $deleted ), 'EA Cron' );
528
+ }
529
  } else {
530
+ tribe( 'logger' )->log_debug( sprintf( 'Record (%d) did not have a `$record->id` so it did not require pruning', $deleted ),
531
+ 'EA Cron' );
532
  }
533
  }
534
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
535
  }
src/Tribe/Aggregator/Record/Abstract.php CHANGED
@@ -170,6 +170,30 @@ abstract class Tribe__Events__Aggregator__Record__Abstract {
170
 
171
  // `source` will be empty when importing .ics files
172
  $this->meta['source'] = ! empty ( $this->meta['source'] ) ? $this->meta['source'] : '';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
173
 
174
  // This prevents lots of isset checks for no reason
175
  if ( empty( $this->meta['activity'] ) ) {
@@ -683,6 +707,11 @@ abstract class Tribe__Events__Aggregator__Record__Abstract {
683
 
684
  /** @var \Tribe__Events__Aggregator__API__Import $import_api */
685
  $import_api = $aggregator->api( 'import' );
 
 
 
 
 
686
  $import_data = $import_api->get( $this->meta['import_id'], $data );
687
 
688
  $import_data = $this->maybe_cast_to_error( $import_data );
@@ -881,6 +910,15 @@ abstract class Tribe__Events__Aggregator__Record__Abstract {
881
  return false;
882
  }
883
 
 
 
 
 
 
 
 
 
 
884
  $current = time();
885
  $last = strtotime( $this->post->post_modified_gmt );
886
  $next = $last + $this->frequency->interval;
@@ -978,18 +1016,35 @@ abstract class Tribe__Events__Aggregator__Record__Abstract {
978
  * Fetches the status message for the last import attempt on (scheduled) records
979
  *
980
  * @param string $type Type of message to fetch
 
 
981
  *
982
- * @return string
 
983
  */
984
- public function get_last_import_status( $type = 'error' ) {
985
  $status = empty( $this->meta['last_import_status'] ) ? null : $this->meta['last_import_status'];
986
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
987
  if ( ! $status ) {
988
- return;
989
  }
990
 
991
  if ( 0 !== strpos( $status, $type ) ) {
992
- return;
993
  }
994
 
995
  if ( 'error:usage-limit-exceeded' === $status ) {
@@ -1938,4 +1993,18 @@ abstract class Tribe__Events__Aggregator__Record__Abstract {
1938
 
1939
  return $import_data;
1940
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1941
  }
170
 
171
  // `source` will be empty when importing .ics files
172
  $this->meta['source'] = ! empty ( $this->meta['source'] ) ? $this->meta['source'] : '';
173
+ $original_source = $this->meta['source'];
174
+
175
+ // Intelligently prepend "http://" if the protocol is missing from the source URL
176
+ if ( ! empty( $this->meta['source'] ) && false === strpos( $this->meta['source'], '://' ) ) {
177
+ $this->meta['source'] = 'http://' . $this->meta['source'];
178
+ }
179
+
180
+ /**
181
+ * Provides an opportunity to set or modify the source URL for an import.
182
+ *
183
+ * @since 4.5.11
184
+ *
185
+ * @param string $source
186
+ * @param string $original_source
187
+ * @param WP_Post $record
188
+ * @param array $meta
189
+ */
190
+ $this->meta['source'] = apply_filters(
191
+ 'tribe_aggregator_meta_source',
192
+ $this->meta['source'],
193
+ $original_source,
194
+ $this->post,
195
+ $this->meta
196
+ );
197
 
198
  // This prevents lots of isset checks for no reason
199
  if ( empty( $this->meta['activity'] ) ) {
707
 
708
  /** @var \Tribe__Events__Aggregator__API__Import $import_api */
709
  $import_api = $aggregator->api( 'import' );
710
+
711
+ if ( empty( $this->meta['import_id'] ) ) {
712
+ return tribe_error( 'core:aggregator:record-not-finalized' );
713
+ }
714
+
715
  $import_data = $import_api->get( $this->meta['import_id'], $data );
716
 
717
  $import_data = $this->maybe_cast_to_error( $import_data );
910
  return false;
911
  }
912
 
913
+ // If the last import status is an error and this scheduled import frequency is not on demand let's try again
914
+ if (
915
+ $this->get_last_import_status( 'error', true )
916
+ && isset( $this->frequency->id )
917
+ && 'on_demand' !== $this->frequency->id
918
+ ) {
919
+ return true;
920
+ }
921
+
922
  $current = time();
923
  $last = strtotime( $this->post->post_modified_gmt );
924
  $next = $last + $this->frequency->interval;
1016
  * Fetches the status message for the last import attempt on (scheduled) records
1017
  *
1018
  * @param string $type Type of message to fetch
1019
+ * @param bool $lookup_children Whether the function should try to read the last children post status to return a coherent
1020
+ * last import status or not, default `false`.
1021
  *
1022
+ * @return bool|string Either the message corresponding to the last import status or `false` if the last import status
1023
+ * is empty or not the one required.
1024
  */
1025
+ public function get_last_import_status( $type = 'error', $lookup_children = false ) {
1026
  $status = empty( $this->meta['last_import_status'] ) ? null : $this->meta['last_import_status'];
1027
 
1028
+ if ( empty( $status ) && $lookup_children ) {
1029
+ $last_children_query = $this->query_child_records( array( 'posts_per_page' => 1, 'order' => 'DESC', 'order_by' => 'modified' ) );
1030
+ if ( $last_children_query->have_posts() ) {
1031
+ $last_children = reset( $last_children_query->posts );
1032
+
1033
+ $map = array(
1034
+ 'tribe-ea-failed' => 'error:import-failed',
1035
+ 'tribe-ea-success' => 'success:queued',
1036
+ );
1037
+
1038
+ $status = Tribe__Utils__Array::get( $map, $last_children->post_status, null );
1039
+ }
1040
+ }
1041
+
1042
  if ( ! $status ) {
1043
+ return false;
1044
  }
1045
 
1046
  if ( 0 !== strpos( $status, $type ) ) {
1047
+ return false;
1048
  }
1049
 
1050
  if ( 'error:usage-limit-exceeded' === $status ) {
1993
 
1994
  return $import_data;
1995
  }
1996
+
1997
+ /**
1998
+ * Sets the post associated with this record.
1999
+ *
2000
+ * @since 4.5.11
2001
+ *
2002
+ * @param WP_post|int $post A post object or post ID
2003
+ */
2004
+ public function set_post( $post ) {
2005
+ if ( ! $post instanceof WP_Post ) {
2006
+ $post = get_post( $post );
2007
+ }
2008
+ $this->post = $post;
2009
+ }
2010
  }
src/Tribe/Aggregator/Record/Queue.php CHANGED
@@ -130,11 +130,11 @@ class Tribe__Events__Aggregator__Record__Queue {
130
  public function load_queue() {
131
  if ( empty( $this->record->meta[ self::$queue_key ] ) ) {
132
  $this->is_fetching = false;
133
- $this->items = array();
 
 
134
  }
135
 
136
- $this->items = $this->record->meta[ self::$queue_key ];
137
-
138
  if ( 'fetch' === $this->items ) {
139
  $this->is_fetching = true;
140
  }
130
  public function load_queue() {
131
  if ( empty( $this->record->meta[ self::$queue_key ] ) ) {
132
  $this->is_fetching = false;
133
+ $this->items = array();
134
+ } else {
135
+ $this->items = $this->record->meta[ self::$queue_key ];
136
  }
137
 
 
 
138
  if ( 'fetch' === $this->items ) {
139
  $this->is_fetching = true;
140
  }
src/Tribe/Aggregator/Record/Queue_Cleaner.php CHANGED
@@ -101,6 +101,7 @@ class Tribe__Events__Aggregator__Record__Queue_Cleaner {
101
  $id = $record->post->ID;
102
 
103
  if ( $post_status === $failed ) {
 
104
  delete_post_meta( $id, '_tribe_aggregator_queue' );
105
  Tribe__Post_Transient::instance()->delete( $id, '_tribe_aggregator_queue' );
106
 
@@ -114,6 +115,7 @@ class Tribe__Events__Aggregator__Record__Queue_Cleaner {
114
  $pending_for = $now - $last_updated;
115
 
116
  if ( $pending_for > $this->stall_limit || $since_creation > $this->time_to_live ) {
 
117
  $failed = Tribe__Events__Aggregator__Records::$status->failed;
118
  wp_update_post( array( 'ID' => $id, 'post_status' => $failed ) );
119
  delete_post_meta( $id, '_tribe_aggregator_queue' );
101
  $id = $record->post->ID;
102
 
103
  if ( $post_status === $failed ) {
104
+ tribe( 'logger' )->log_debug( "Record {$record->id} is failed: deleting its queue information", 'Queue_Cleaner' );
105
  delete_post_meta( $id, '_tribe_aggregator_queue' );
106
  Tribe__Post_Transient::instance()->delete( $id, '_tribe_aggregator_queue' );
107
 
115
  $pending_for = $now - $last_updated;
116
 
117
  if ( $pending_for > $this->stall_limit || $since_creation > $this->time_to_live ) {
118
+ tribe( 'logger' )->log_debug( "Record {$record->id} has stalled for too long: deleting it and its queue information", 'Queue_Cleaner' );
119
  $failed = Tribe__Events__Aggregator__Records::$status->failed;
120
  wp_update_post( array( 'ID' => $id, 'post_status' => $failed ) );
121
  delete_post_meta( $id, '_tribe_aggregator_queue' );
src/Tribe/Aggregator/Records.php CHANGED
@@ -34,6 +34,11 @@ class Tribe__Events__Aggregator__Records {
34
  */
35
  private static $instance;
36
 
 
 
 
 
 
37
  /**
38
  * Static Singleton Factory Method
39
  *
@@ -464,6 +469,21 @@ class Tribe__Events__Aggregator__Records {
464
  'orderby' => 'modified',
465
  'order' => 'DESC',
466
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
467
  $args = (object) wp_parse_args( $args, $defaults );
468
 
469
  // Enforce the Post Type
@@ -643,4 +663,28 @@ class Tribe__Events__Aggregator__Records {
643
  public function get_retention() {
644
  return apply_filters( 'tribe_aggregator_record_retention', WEEK_IN_SECONDS );
645
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
646
  }
34
  */
35
  private static $instance;
36
 
37
+ /**
38
+ * @var string The time, in "Y-m-d H:i:s" format, that's used to query records.
39
+ */
40
+ protected $after_time;
41
+
42
  /**
43
  * Static Singleton Factory Method
44
  *
469
  'orderby' => 'modified',
470
  'order' => 'DESC',
471
  );
472
+
473
+ $args = (array) $args;
474
+
475
+ if ( isset( $args['after'] ) ) {
476
+ $before_timestamp = is_numeric( $args['after'] )
477
+ ? $args['after']
478
+ : Tribe__Date_Utils::wp_strtotime( $args['after'] );
479
+ $before_datetime = new DateTime( "@{$before_timestamp}" );
480
+ $this->after_time = $before_datetime->format( 'Y-m-d H:00:00' );
481
+
482
+ add_filter( 'posts_where', array( $this, 'filter_posts_where' ) );
483
+
484
+ tribe( 'logger' )->log_debug( "Filtering records happening after {$this->after_time}", 'EA Records' );
485
+ }
486
+
487
  $args = (object) wp_parse_args( $args, $defaults );
488
 
489
  // Enforce the Post Type
663
  public function get_retention() {
664
  return apply_filters( 'tribe_aggregator_record_retention', WEEK_IN_SECONDS );
665
  }
666
+
667
+ /**
668
+ * Filters the records query to only return records after a defined time.
669
+ *
670
+ * @since 4.5.11
671
+ *
672
+ * @param string $where The original WHERE clause.
673
+ *
674
+ * @return string The updated WHERE clause.
675
+ */
676
+ public function filter_posts_where( $where ) {
677
+ if ( empty( $this->after_time ) ) {
678
+ return $where;
679
+ }
680
+
681
+ /** @var wpdb $wpdb */
682
+ global $wpdb;
683
+ $where .= $wpdb->prepare( " AND {$wpdb->posts}.post_modified >= %s", $this->after_time );
684
+
685
+ remove_filter( 'posts_where', array( $this, 'filter_posts_where' ) );
686
+ unset( $this->after_time );
687
+
688
+ return $where;
689
+ }
690
  }
src/Tribe/Aggregator/Service.php CHANGED
@@ -250,22 +250,20 @@ class Tribe__Events__Aggregator__Service {
250
  /**
251
  * Fetch origins from service
252
  *
253
- * @return array
 
 
254
  */
255
- public function get_origins() {
256
- $origins = array(
257
- 'origin' => array(
258
- (object) array(
259
- 'id' => 'csv',
260
- 'name' => __( 'CSV File', 'the-events-calendar' ),
261
- ),
262
- ),
263
- );
264
 
265
  $response = $this->get( 'origin' );
 
266
 
267
- // If we have an WP_Error we return only CSV
268
  if ( is_wp_error( $response ) || empty( $response->status ) ) {
 
 
269
  return $origins;
270
  }
271
 
@@ -273,7 +271,9 @@ class Tribe__Events__Aggregator__Service {
273
  $origins = array_merge( $origins, (array) $response->data );
274
  }
275
 
276
- return $origins;
 
 
277
  }
278
 
279
  /**
@@ -590,4 +590,24 @@ class Tribe__Events__Aggregator__Service {
590
 
591
  return $confirmed;
592
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
593
  }
250
  /**
251
  * Fetch origins from service
252
  *
253
+ * @param bool $return_error Whether response errors should be returned, if any.
254
+ *
255
+ * @return array The origins array of an array containing the origins first and an error second if `return_error` is set to `true`.
256
  */
257
+ public function get_origins( $return_error = false ) {
258
+ $origins = $this->get_default_origins();
 
 
 
 
 
 
 
259
 
260
  $response = $this->get( 'origin' );
261
+ $error = null;
262
 
263
+ // If we have an WP_Error or a bad response we return only CSV and set some error data
264
  if ( is_wp_error( $response ) || empty( $response->status ) ) {
265
+ $error = $response;
266
+
267
  return $origins;
268
  }
269
 
271
  $origins = array_merge( $origins, (array) $response->data );
272
  }
273
 
274
+ return $return_error
275
+ ? array( $origins, $error )
276
+ : $origins;
277
  }
278
 
279
  /**
590
 
591
  return $confirmed;
592
  }
593
+
594
+ /**
595
+ * Returns the default origins array.
596
+ *
597
+ * @since 4.5.11
598
+ *
599
+ * @return array
600
+ */
601
+ protected function get_default_origins() {
602
+ $origins = array(
603
+ 'origin' => array(
604
+ (object) array(
605
+ 'id' => 'csv',
606
+ 'name' => __( 'CSV File', 'the-events-calendar' ),
607
+ ),
608
+ ),
609
+ );
610
+
611
+ return $origins;
612
+ }
613
  }
src/Tribe/Aggregator/Tabs/Abstract.php CHANGED
@@ -147,9 +147,9 @@ abstract class Tribe__Events__Aggregator__Tabs__Abstract extends Tribe__Tabbed_V
147
  break;
148
  case 'url':
149
  $now = time();
150
- $range = tribe_get_option( 'tribe_aggregator_default_url_import_range', 3 * 30 * DAY_IN_SECONDS );
151
  $start = ! empty( $meta['start'] ) ? $this->to_timestamp( $meta['start'], $now ) : $now;
152
- $end = ! empty( $meta['end'] ) ? $this->to_timestamp( $meta['end'], $now + $range ) : $now + $range;
153
 
154
  /**
155
  * Filters the URL import range cap.
147
  break;
148
  case 'url':
149
  $now = time();
150
+ $range = tribe_get_option( 'tribe_aggregator_default_url_import_range', 30 * DAY_IN_SECONDS );
151
  $start = ! empty( $meta['start'] ) ? $this->to_timestamp( $meta['start'], $now ) : $now;
152
+ $end = ! empty( $meta['end'] ) ? $this->to_timestamp( $meta['end'], $start + $range ) : $start + $range;
153
 
154
  /**
155
  * Filters the URL import range cap.
src/Tribe/Front_Page_View.php CHANGED
@@ -23,7 +23,12 @@ class Tribe__Events__Front_Page_View {
23
  public function parse_query( WP_Query $query ) {
24
  // We're only interested in the main query (when it runs in relation to the site homepage),
25
  // we also need to make an exception for compatibility with Community Events (WP_Route)
26
- if ( ! $query->is_main_query() || ! $query->is_home() || $query->get( 'WP_Route' ) ) {
 
 
 
 
 
27
  return;
28
  }
29
 
23
  public function parse_query( WP_Query $query ) {
24
  // We're only interested in the main query (when it runs in relation to the site homepage),
25
  // we also need to make an exception for compatibility with Community Events (WP_Route)
26
+ if (
27
+ ! $query->is_main_query()
28
+ || ! $query->is_home()
29
+ || $query->is_posts_page
30
+ || $query->get( 'WP_Route' )
31
+ ) {
32
  return;
33
  }
34
 
src/Tribe/Integrations/Manager.php CHANGED
@@ -68,7 +68,7 @@ class Tribe__Events__Integrations__Manager {
68
  /**
69
  * Loads our Twenty Seventeen integrations if that theme is active.
70
  *
71
- * @since TBD
72
  *
73
  * @return bool
74
  */
68
  /**
69
  * Loads our Twenty Seventeen integrations if that theme is active.
70
  *
71
+ * @since 4.5.10
72
  *
73
  * @return bool
74
  */
src/Tribe/Integrations/Twenty_Seventeen.php CHANGED
@@ -2,13 +2,13 @@
2
  /**
3
  * Facilitates smoother integration with the Twenty Seventeen theme.
4
  *
5
- * @since TBD
6
  */
7
  class Tribe__Events__Integrations__Twenty_Seventeen {
8
  /**
9
  * Performs setup for the Twenty Seventeen integration singleton.
10
  *
11
- * @since TBD
12
  */
13
  public function hook() {
14
  add_filter( 'body_class', array( $this, 'body_classes' ) );
@@ -21,7 +21,7 @@ class Tribe__Events__Integrations__Twenty_Seventeen {
21
  * modify 'page-one-column' to 'page-two-column', to achieve better fit
22
  * and avoid JS errors.
23
  *
24
- * @since TBD
25
  * @see https://central.tri.be/issues/70853
26
  *
27
  * @param array $classes
@@ -37,7 +37,7 @@ class Tribe__Events__Integrations__Twenty_Seventeen {
37
  * The default is to do this, for event views, as if this is present when
38
  * the sidebar is not (which is normal), JS errors can result.
39
  *
40
- * @since TBD
41
  *
42
  * @param bool $should_remove
43
  * @param array $classes
2
  /**
3
  * Facilitates smoother integration with the Twenty Seventeen theme.
4
  *
5
+ * @since 4.5.10
6
  */
7
  class Tribe__Events__Integrations__Twenty_Seventeen {
8
  /**
9
  * Performs setup for the Twenty Seventeen integration singleton.
10
  *
11
+ * @since 4.5.10
12
  */
13
  public function hook() {
14
  add_filter( 'body_class', array( $this, 'body_classes' ) );
21
  * modify 'page-one-column' to 'page-two-column', to achieve better fit
22
  * and avoid JS errors.
23
  *
24
+ * @since 4.5.10
25
  * @see https://central.tri.be/issues/70853
26
  *
27
  * @param array $classes
37
  * The default is to do this, for event views, as if this is present when
38
  * the sidebar is not (which is normal), JS errors can result.
39
  *
40
+ * @since 4.5.10
41
  *
42
  * @param bool $should_remove
43
  * @param array $classes
src/Tribe/JSON_LD/Event.php CHANGED
@@ -143,7 +143,7 @@ class Tribe__Events__JSON_LD__Event extends Tribe__JSON_LD__Abstract {
143
  /**
144
  * Get a link to the event
145
  *
146
- * @since TBD
147
  *
148
  * @param int|WP_Post $post The Post Object or ID
149
  *
143
  /**
144
  * Get a link to the event
145
  *
146
+ * @since 4.5.10
147
  *
148
  * @param int|WP_Post $post The Post Object or ID
149
  *
src/Tribe/JSON_LD/Organizer.php CHANGED
@@ -62,7 +62,7 @@ class Tribe__Events__JSON_LD__Organizer extends Tribe__JSON_LD__Abstract {
62
  /**
63
  * Get a link to the event
64
  *
65
- * @since TBD
66
  *
67
  * @param int|WP_Post $post The Post Object or ID
68
  *
62
  /**
63
  * Get a link to the event
64
  *
65
+ * @since 4.5.10
66
  *
67
  * @param int|WP_Post $post The Post Object or ID
68
  *
src/Tribe/JSON_LD/Venue.php CHANGED
@@ -82,7 +82,7 @@ class Tribe__Events__JSON_LD__Venue extends Tribe__JSON_LD__Abstract {
82
  /**
83
  * Get a link to the event
84
  *
85
- * @since TBD
86
  *
87
  * @param int|WP_Post $post The Post Object or ID
88
  *
82
  /**
83
  * Get a link to the event
84
  *
85
+ * @since 4.5.10
86
  *
87
  * @param int|WP_Post $post The Post Object or ID
88
  *
src/Tribe/Linked_Posts.php CHANGED
@@ -541,9 +541,8 @@ class Tribe__Events__Linked_Posts {
541
  return $linked_posts;
542
  }
543
 
544
- $subject_meta_key = $this->get_meta_key( $subject_post_type );
545
-
546
- $target_link_posts = get_post_meta( $target_post_id, $subject_meta_key );
547
 
548
  // if the subject isn't in the target's linked posts, add it
549
  if ( ! in_array( $subject_post_id, $target_link_posts ) ) {
@@ -556,7 +555,7 @@ class Tribe__Events__Linked_Posts {
556
  }
557
 
558
  // add the subject to the target
559
- $linked_posts = add_metadata('post', $target_post_id, $subject_meta_key, $subject_post_id );
560
  }
561
 
562
  if ( $linked_posts ) {
@@ -733,7 +732,7 @@ class Tribe__Events__Linked_Posts {
733
  $currently_linked_posts = $this->get_linked_posts_by_post_type( $event_id, $linked_post_type );
734
  $currently_linked_posts = wp_list_pluck( $currently_linked_posts, 'ID' );
735
 
736
- $posts_to_add = array_diff( $linked_posts, $currently_linked_posts );
737
  $posts_to_remove = array_diff( $currently_linked_posts, $linked_posts );
738
 
739
  foreach ( $posts_to_remove as $linked_post_id ) {
@@ -908,12 +907,24 @@ class Tribe__Events__Linked_Posts {
908
  */
909
  $creation_enabled = apply_filters( 'tribe_events_linked_posts_dropdown_enable_creation', $user_can_create && $allowed_creation, $post_type, $this );
910
 
911
- $placeholder = sprintf( esc_attr__( 'Find a %s', 'the-events-calendar' ), $singular_name );
 
 
 
 
 
 
 
 
 
 
 
912
  if ( $creation_enabled ) {
913
  $placeholder = sprintf( esc_attr__( 'Create or Find %s', 'the-events-calendar' ), $singular_name );
914
  }
915
 
916
- $search_placeholder = sprintf( esc_attr__( 'Find a %s', 'the-events-calendar' ), $singular_name );
 
917
  if ( $creation_enabled ) {
918
  $search_placeholder = sprintf( esc_attr__( 'Create or Find %s', 'the-events-calendar' ), $singular_name );
919
  }
541
  return $linked_posts;
542
  }
543
 
544
+ $subject_meta_key = $this->get_meta_key( $subject_post_type );
545
+ $target_link_posts = get_post_meta( $target_post_id, $subject_meta_key );
 
546
 
547
  // if the subject isn't in the target's linked posts, add it
548
  if ( ! in_array( $subject_post_id, $target_link_posts ) ) {
555
  }
556
 
557
  // add the subject to the target
558
+ $linked_posts = add_metadata( 'post', $target_post_id, $subject_meta_key, $subject_post_id );
559
  }
560
 
561
  if ( $linked_posts ) {
732
  $currently_linked_posts = $this->get_linked_posts_by_post_type( $event_id, $linked_post_type );
733
  $currently_linked_posts = wp_list_pluck( $currently_linked_posts, 'ID' );
734
 
735
+ $posts_to_add = array_diff( $linked_posts, $currently_linked_posts );
736
  $posts_to_remove = array_diff( $currently_linked_posts, $linked_posts );
737
 
738
  foreach ( $posts_to_remove as $linked_post_id ) {
907
  */
908
  $creation_enabled = apply_filters( 'tribe_events_linked_posts_dropdown_enable_creation', $user_can_create && $allowed_creation, $post_type, $this );
909
 
910
+ $indefinite_article = _x( 'a', 'Indefinite article for the phrase "Find a {post type name}. Will be replaced with "an" if the {post type name} starts with a vowel.', 'the-events-calendar' );
911
+
912
+ $post_type_starts_with = substr( $singular_name, 0, 1 );
913
+ $post_type_starts_with = strtolower( $post_type_starts_with );
914
+ $english_vowels = array( 'a', 'e', 'i', 'o', 'u' );
915
+
916
+ if ( in_array( $post_type_starts_with, $english_vowels ) ) {
917
+ $indefinite_article = _x( 'an', 'Indefinite article for the phrase "Find a {post type name}" when the {post type name} starts with a vowel, e.g. "Find an Organizer".', 'the-events-calendar' );
918
+ }
919
+
920
+ $placeholder = sprintf( esc_attr__( 'Find %1$s %2$s', 'the-events-calendar' ), $indefinite_article, $singular_name );
921
+
922
  if ( $creation_enabled ) {
923
  $placeholder = sprintf( esc_attr__( 'Create or Find %s', 'the-events-calendar' ), $singular_name );
924
  }
925
 
926
+ $search_placeholder = sprintf( esc_attr__( 'Find %1$s %2$s', 'the-events-calendar' ), $indefinite_article, $singular_name );
927
+
928
  if ( $creation_enabled ) {
929
  $search_placeholder = sprintf( esc_attr__( 'Create or Find %s', 'the-events-calendar' ), $singular_name );
930
  }
src/Tribe/Linked_Posts/Chooser_Meta_Box.php CHANGED
@@ -32,10 +32,10 @@ class Tribe__Events__Linked_Posts__Chooser_Meta_Box {
32
  protected $singular_name;
33
 
34
  public function __construct( $event = null, $post_type = null ) {
35
- $this->tribe = Tribe__Events__Main::instance();
36
- $this->linked_posts = Tribe__Events__Linked_Posts::instance();
37
- $this->post_type = $post_type;
38
- $this->singular_name = $this->linked_posts->linked_post_types[ $this->post_type ]['singular_name'];
39
  $this->singular_name_lowercase = $this->linked_posts->linked_post_types[ $this->post_type ]['singular_name_lowercase'];
40
  $this->get_event( $event );
41
 
@@ -43,10 +43,9 @@ class Tribe__Events__Linked_Posts__Chooser_Meta_Box {
43
  }
44
 
45
  /**
46
- * Work with the specifed event object or else use a placeholder if we are in
47
- * the middle of creating a new event.
48
  *
49
- * @param null $event
50
  */
51
  protected function get_event( $event = null ) {
52
  if ( is_null( $event ) ) {
@@ -70,29 +69,43 @@ class Tribe__Events__Linked_Posts__Chooser_Meta_Box {
70
 
71
  /**
72
  * Render the organizer chooser section for the events meta box
73
- *
74
  */
75
  public function render() {
76
  $this->render_dropdowns();
77
  $this->render_add_post_button();
78
 
79
  /**
80
- * Make this Template filterable, used for Community Facing templates
81
  *
82
- * @var string $file_path
83
  */
84
  include apply_filters( 'tribe_events_multiple_linked_post_template', $this->tribe->pluginPath . 'src/admin-views/linked-post-meta-box.php' );
85
  }
86
 
87
  /**
88
- * displays the saved organizer dropdown in the event metabox
89
- * Used to be a PRO only feature, but as of 3.0, it is part of Core.
90
  *
 
 
91
  */
92
  public function render_dropdowns() {
93
- $post_id = $this->event->ID;
 
 
94
 
95
- $current_linked_posts = get_post_meta( $post_id, $this->linked_posts->get_meta_key( $this->post_type ), false );
 
 
 
 
 
 
 
 
 
 
 
 
96
 
97
  if ( $this->use_default_post( $current_linked_posts ) ) {
98
  /**
@@ -105,7 +118,7 @@ class Tribe__Events__Linked_Posts__Chooser_Meta_Box {
105
  }
106
 
107
  /**
108
- * Filters the default selected post for the linked post
109
  *
110
  * @param array $current_linked_posts Array of currently linked posts
111
  * @param string $post_type Linked post post type
@@ -116,6 +129,7 @@ class Tribe__Events__Linked_Posts__Chooser_Meta_Box {
116
  from the $current_organizers array. This prevents the automatic
117
  selection of an organizer every time the event is edited. */
118
  $linked_post_pto = get_post_type_object( $this->post_type );
 
119
  if ( ! current_user_can( $linked_post_pto->cap->create_posts ) ) {
120
  $current_linked_posts = array_filter( $current_linked_posts );
121
  }
@@ -123,8 +137,9 @@ class Tribe__Events__Linked_Posts__Chooser_Meta_Box {
123
  ?><script type="text/template" id="tmpl-tribe-select-<?php echo esc_attr( $this->post_type ); ?>"><?php $this->single_post_dropdown( 0 ); ?></script><?php
124
 
125
  $current_linked_posts = $this->maybe_parse_candidate_linked_posts( $current_linked_posts );
 
126
 
127
- $i = 0;
128
  $num_records = count( $current_linked_posts );
129
 
130
  do {
@@ -136,10 +151,11 @@ class Tribe__Events__Linked_Posts__Chooser_Meta_Box {
136
  }
137
 
138
  /**
139
- * Render a single row of the organizers table
140
  *
141
- * @param int $organizer_id
142
  *
 
143
  */
144
  protected function single_post_dropdown( $linked_post_id ) {
145
  $linked_post_type_container = $this->linked_posts->get_post_type_container( $this->post_type );
@@ -167,10 +183,11 @@ class Tribe__Events__Linked_Posts__Chooser_Meta_Box {
167
  }
168
 
169
  /**
170
- * Render a link to edit the organizer post
171
  *
172
- * @param int $organizer_id
173
  *
 
174
  */
175
  protected function edit_post_link( $linked_post_id ) {
176
  $linked_post_pto = get_post_type_object( $this->post_type );
@@ -197,8 +214,7 @@ class Tribe__Events__Linked_Posts__Chooser_Meta_Box {
197
  /**
198
  * Determine if the event can use the default setting
199
  *
200
- * @param array $current_organizers
201
- *
202
  * @return bool
203
  */
204
  protected function use_default_post( $current_posts ) {
@@ -217,7 +233,6 @@ class Tribe__Events__Linked_Posts__Chooser_Meta_Box {
217
 
218
  /**
219
  * Renders the "Add Another Organizer" button
220
- *
221
  */
222
  protected function render_add_post_button() {
223
  if ( empty( $this->linked_posts->linked_post_types[ $this->post_type ]['allow_multiple'] ) ) {
@@ -245,16 +260,18 @@ class Tribe__Events__Linked_Posts__Chooser_Meta_Box {
245
  }
246
 
247
  /**
248
- * Renders the handle for sorting organizers
249
  *
 
250
  */
251
  protected function move_handle() {
252
  echo '<span class="dashicons dashicons-screenoptions move-linked-post-group"></span>';
253
  }
254
 
255
  /**
256
- * Renders the handle for deleting an organizer
257
  *
 
258
  */
259
  protected function delete_handle() {
260
  ?>
@@ -265,17 +282,14 @@ class Tribe__Events__Linked_Posts__Chooser_Meta_Box {
265
  }
266
 
267
  /**
268
- * Supply previously submitted organizer field values to the events-admin.js
269
- * script in order to provide them with sticky qualities.
270
- *
271
- * This *must* run later than the action:priority used to enqueue
272
- * events-admin.js.
273
  */
274
  public function sticky_form_data() {
275
  $submitted_data = array();
276
 
277
  $linked_posts = Tribe__Events__Linked_Posts::instance();
278
- $container = $linked_posts->get_post_type_container( $this->post_type );
279
 
280
  if ( empty( $_POST[ $container ] ) || ! is_array( $_POST[ $container ] ) ) {
281
  return;
@@ -299,8 +313,9 @@ class Tribe__Events__Linked_Posts__Chooser_Meta_Box {
299
  }
300
 
301
  /**
302
- * @param $current_linked_posts
303
  *
 
304
  * @return mixed
305
  */
306
  private function maybe_parse_candidate_linked_posts( array $current_linked_posts = array() ) {
@@ -310,7 +325,7 @@ class Tribe__Events__Linked_Posts__Chooser_Meta_Box {
310
  $current_linked_posts = array_filter( $current_linked_posts );
311
 
312
  // We don't have any items
313
- $has_no_current_linked_posts = empty( $current_linked_posts );
314
  $submitted_data_contains_candidate_linked_posts = ! empty( $_POST[ $linked_post_type_container ] );
315
 
316
  if ( $has_no_current_linked_posts && $submitted_data_contains_candidate_linked_posts ) {
@@ -328,4 +343,4 @@ class Tribe__Events__Linked_Posts__Chooser_Meta_Box {
328
 
329
  return $current_linked_posts;
330
  }
331
- }
32
  protected $singular_name;
33
 
34
  public function __construct( $event = null, $post_type = null ) {
35
+ $this->tribe = Tribe__Events__Main::instance();
36
+ $this->linked_posts = Tribe__Events__Linked_Posts::instance();
37
+ $this->post_type = $post_type;
38
+ $this->singular_name = $this->linked_posts->linked_post_types[ $this->post_type ]['singular_name'];
39
  $this->singular_name_lowercase = $this->linked_posts->linked_post_types[ $this->post_type ]['singular_name_lowercase'];
40
  $this->get_event( $event );
41
 
43
  }
44
 
45
  /**
46
+ * Work with the specifed event object or else use a placeholder if in the middle of creating a new event.
 
47
  *
48
+ * @param mixed $event
49
  */
50
  protected function get_event( $event = null ) {
51
  if ( is_null( $event ) ) {
69
 
70
  /**
71
  * Render the organizer chooser section for the events meta box
 
72
  */
73
  public function render() {
74
  $this->render_dropdowns();
75
  $this->render_add_post_button();
76
 
77
  /**
78
+ * Make this Template filterable, used for Community Facing templates.
79
  *
80
+ * @param string $file_path
81
  */
82
  include apply_filters( 'tribe_events_multiple_linked_post_template', $this->tribe->pluginPath . 'src/admin-views/linked-post-meta-box.php' );
83
  }
84
 
85
  /**
86
+ * Displays the saved linked post dropdown in the event metabox.
 
87
  *
88
+ * @since 3.0
89
+ * @since 4.5.11 Genericized to work for all linked posts, not just organizers like it was originally.
90
  */
91
  public function render_dropdowns() {
92
+ $post_id = $this->event->ID;
93
+ $current_linked_post_meta_key = $this->linked_posts->get_meta_key( $this->post_type );
94
+ $current_linked_posts = get_post_meta( $post_id, $current_linked_post_meta_key, false );
95
 
96
+ /**
97
+ * Allows for filtering the array of values retrieved for a specific linked post meta field.
98
+ *
99
+ * Name of filter is assembled as tribe_events_linked_post_meta_values_{$current_linked_post_meta_key}, where
100
+ * $current_linked_post_meta_key is just literally the name of the curren meta key. So when the _EventOrganizerID
101
+ * is being filtered, for example, the filter name would be tribe_events_linked_post_meta_values__EventOrganizerID
102
+ *
103
+ * @since 4.5.11
104
+ *
105
+ * @param array $current_linked_posts The array of the current meta field's values.
106
+ * @param int $post_id The current event's post ID.
107
+ */
108
+ $current_linked_posts = apply_filters( "tribe_events_linked_post_meta_values_{$current_linked_post_meta_key}", $current_linked_posts, $post_id );
109
 
110
  if ( $this->use_default_post( $current_linked_posts ) ) {
111
  /**
118
  }
119
 
120
  /**
121
+ * Filters the default selected post for the linked post.
122
  *
123
  * @param array $current_linked_posts Array of currently linked posts
124
  * @param string $post_type Linked post post type
129
  from the $current_organizers array. This prevents the automatic
130
  selection of an organizer every time the event is edited. */
131
  $linked_post_pto = get_post_type_object( $this->post_type );
132
+
133
  if ( ! current_user_can( $linked_post_pto->cap->create_posts ) ) {
134
  $current_linked_posts = array_filter( $current_linked_posts );
135
  }
137
  ?><script type="text/template" id="tmpl-tribe-select-<?php echo esc_attr( $this->post_type ); ?>"><?php $this->single_post_dropdown( 0 ); ?></script><?php
138
 
139
  $current_linked_posts = $this->maybe_parse_candidate_linked_posts( $current_linked_posts );
140
+ $current_linked_posts = array_values( $current_linked_posts );
141
 
142
+ $i = 0;
143
  $num_records = count( $current_linked_posts );
144
 
145
  do {
151
  }
152
 
153
  /**
154
+ * Render a single row of the linked post's table
155
  *
156
+ * @since 3.0
157
  *
158
+ * @param int $linked_post_id
159
  */
160
  protected function single_post_dropdown( $linked_post_id ) {
161
  $linked_post_type_container = $this->linked_posts->get_post_type_container( $this->post_type );
183
  }
184
 
185
  /**
186
+ * Render a link to edit the linked post
187
  *
188
+ * @since 3.0
189
  *
190
+ * @param int $linked_post_id
191
  */
192
  protected function edit_post_link( $linked_post_id ) {
193
  $linked_post_pto = get_post_type_object( $this->post_type );
214
  /**
215
  * Determine if the event can use the default setting
216
  *
217
+ * @param array $current_posts
 
218
  * @return bool
219
  */
220
  protected function use_default_post( $current_posts ) {
233
 
234
  /**
235
  * Renders the "Add Another Organizer" button
 
236
  */
237
  protected function render_add_post_button() {
238
  if ( empty( $this->linked_posts->linked_post_types[ $this->post_type ]['allow_multiple'] ) ) {
260
  }
261
 
262
  /**
263
+ * Renders the handle for sorting linked posts
264
  *
265
+ * @since 3.0
266
  */
267
  protected function move_handle() {
268
  echo '<span class="dashicons dashicons-screenoptions move-linked-post-group"></span>';
269
  }
270
 
271
  /**
272
+ * Renders the handle for deleting a linked post
273
  *
274
+ * @since 3.0
275
  */
276
  protected function delete_handle() {
277
  ?>
282
  }
283
 
284
  /**
285
+ * Supply previously submitted linked post field values to the events-admin.js script in order to provide
286
+ * them with sticky qualities. This *must* run later than the action:priority used to enqueue events-admin.js.
 
 
 
287
  */
288
  public function sticky_form_data() {
289
  $submitted_data = array();
290
 
291
  $linked_posts = Tribe__Events__Linked_Posts::instance();
292
+ $container = $linked_posts->get_post_type_container( $this->post_type );
293
 
294
  if ( empty( $_POST[ $container ] ) || ! is_array( $_POST[ $container ] ) ) {
295
  return;
313
  }
314
 
315
  /**
316
+ * Parse candidate linked posts.
317
  *
318
+ * @param $current_linked_posts
319
  * @return mixed
320
  */
321
  private function maybe_parse_candidate_linked_posts( array $current_linked_posts = array() ) {
325
  $current_linked_posts = array_filter( $current_linked_posts );
326
 
327
  // We don't have any items
328
+ $has_no_current_linked_posts = empty( $current_linked_posts );
329
  $submitted_data_contains_candidate_linked_posts = ! empty( $_POST[ $linked_post_type_container ] );
330
 
331
  if ( $has_no_current_linked_posts && $submitted_data_contains_candidate_linked_posts ) {
343
 
344
  return $current_linked_posts;
345
  }
346
+ }
src/Tribe/Main.php CHANGED
@@ -32,7 +32,7 @@ if ( ! class_exists( 'Tribe__Events__Main' ) ) {
32
  const VENUE_POST_TYPE = 'tribe_venue';
33
  const ORGANIZER_POST_TYPE = 'tribe_organizer';
34
 
35
- const VERSION = '4.5.10.1';
36
  const MIN_ADDON_VERSION = '4.4';
37
  const MIN_COMMON_VERSION = '4.5.10.1';
38
 
@@ -946,7 +946,7 @@ if ( ! class_exists( 'Tribe__Events__Main' ) ) {
946
  // What the user can do
947
  $edit_post_link = sprintf( __( 'Ask the site administrator to edit the %s slug', 'the-events-calendar' ), $name );
948
  if ( isset( $post_type->cap->edit_posts ) && current_user_can( $post_type->cap->edit_posts ) ) {
949
- $edit_post_link = sprintf( __( '<a href="%s">Edit the %s slug</a>', 'the-events-calendar' ), get_edit_post_link( $conflict->ID ), $name );
950
  }
951
 
952
  $settings_cap = apply_filters( 'tribe_settings_req_cap', 'manage_options' );
@@ -955,7 +955,7 @@ if ( ! class_exists( 'Tribe__Events__Main' ) ) {
955
  if ( current_user_can( $settings_cap ) ) {
956
  $admin_slug = apply_filters( 'tribe_settings_admin_slug', 'tribe-common' );
957
  $setting_page_link = apply_filters( 'tribe_settings_url', admin_url( 'edit.php?page=' . $admin_slug . '#tribe-field-eventsSlug' ) );
958
- $edit_settings_link = sprintf( __( '<a href="%s">edit Events settings</a>.', 'the-events-calendar' ), $setting_page_link );
959
  }
960
 
961
  $line_2 = sprintf( __( '%1$s or %2$s', 'the-events-calendar' ), $edit_post_link, $edit_settings_link );
@@ -3513,7 +3513,7 @@ if ( ! class_exists( 'Tribe__Events__Main' ) ) {
3513
  $is_saved = $event->ID && isset( $saved ) && $saved;
3514
 
3515
  if ( $is_saved ) {
3516
- $venue_title = apply_filters( 'the_title', $post->post_title );
3517
  }
3518
 
3519
  foreach ( $this->venueTags as $tag ) {
@@ -3565,7 +3565,7 @@ if ( ! class_exists( 'Tribe__Events__Main' ) ) {
3565
  if ( $postId ) {
3566
 
3567
  if ( $saved ) { //if there is a post AND the post has been saved at least once.
3568
- $organizer_title = apply_filters( 'the_title', $post->post_title );
3569
  }
3570
 
3571
  foreach ( $this->organizerTags as $tag ) {
32
  const VENUE_POST_TYPE = 'tribe_venue';
33
  const ORGANIZER_POST_TYPE = 'tribe_organizer';
34
 
35
+ const VERSION = '4.5.11';
36
  const MIN_ADDON_VERSION = '4.4';
37
  const MIN_COMMON_VERSION = '4.5.10.1';
38
 
946
  // What the user can do
947
  $edit_post_link = sprintf( __( 'Ask the site administrator to edit the %s slug', 'the-events-calendar' ), $name );
948
  if ( isset( $post_type->cap->edit_posts ) && current_user_can( $post_type->cap->edit_posts ) ) {
949
+ $edit_post_link = sprintf( '<a href="%1$s">%2$s</a>', get_edit_post_link( $conflict->ID ), sprintf( __( 'Edit the %s slug', 'the-events-calendar' ), $name ) );
950
  }
951
 
952
  $settings_cap = apply_filters( 'tribe_settings_req_cap', 'manage_options' );
955
  if ( current_user_can( $settings_cap ) ) {
956
  $admin_slug = apply_filters( 'tribe_settings_admin_slug', 'tribe-common' );
957
  $setting_page_link = apply_filters( 'tribe_settings_url', admin_url( 'edit.php?page=' . $admin_slug . '#tribe-field-eventsSlug' ) );
958
+ $edit_settings_link = sprintf( '<a href="%1$s">%2$s</a>', $setting_page_link, __( 'edit Events settings.', 'the-events-calendar' ) );
959
  }
960
 
961
  $line_2 = sprintf( __( '%1$s or %2$s', 'the-events-calendar' ), $edit_post_link, $edit_settings_link );
3513
  $is_saved = $event->ID && isset( $saved ) && $saved;
3514
 
3515
  if ( $is_saved ) {
3516
+ $venue_title = apply_filters( 'the_title', $post->post_title, $post->ID );
3517
  }
3518
 
3519
  foreach ( $this->venueTags as $tag ) {
3565
  if ( $postId ) {
3566
 
3567
  if ( $saved ) { //if there is a post AND the post has been saved at least once.
3568
+ $organizer_title = apply_filters( 'the_title', $post->post_title, $post->ID );
3569
  }
3570
 
3571
  foreach ( $this->organizerTags as $tag ) {
src/Tribe/Organizer.php CHANGED
@@ -87,6 +87,7 @@ class Tribe__Events__Organizer {
87
  add_filter( 'tribe_events_linked_post_create_' . self::POSTTYPE, array( $this, 'save' ), 10, 5 );
88
  add_filter( 'tribe_events_linked_post_default', array( $this, 'linked_post_default' ), 10, 2 );
89
  add_action( 'tribe_events_linked_post_new_form', array( $this, 'linked_post_new_form' ) );
 
90
  }
91
 
92
  /**
@@ -225,6 +226,20 @@ class Tribe__Events__Organizer {
225
  return $container;
226
  }
227
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
228
  /**
229
  * Check to see if any organizer data set
230
  *
87
  add_filter( 'tribe_events_linked_post_create_' . self::POSTTYPE, array( $this, 'save' ), 10, 5 );
88
  add_filter( 'tribe_events_linked_post_default', array( $this, 'linked_post_default' ), 10, 2 );
89
  add_action( 'tribe_events_linked_post_new_form', array( $this, 'linked_post_new_form' ) );
90
+ add_filter( 'tribe_events_linked_post_meta_values__EventOrganizerID', array( $this, 'filter_out_invalid_organizer_ids' ), 10, 2 );
91
  }
92
 
93
  /**
226
  return $container;
227
  }
228
 
229
+ /**
230
+ * Removes anything other than integers from the supplied array of Organizer IDs.
231
+ *
232
+ * @since 4.5.11
233
+ *
234
+ * @param array $organizer_ids An array of post IDs of the current event's attached Organizers.
235
+ * @param int $post_id The current event's post ID.
236
+ *
237
+ * @return array
238
+ */
239
+ public function filter_out_invalid_organizer_ids( $organizer_ids, $post_id ) {
240
+ return array_map( 'absint', (array) $organizer_ids );
241
+ }
242
+
243
  /**
244
  * Check to see if any organizer data set
245
  *
src/Tribe/Query.php CHANGED
@@ -285,7 +285,7 @@ if ( ! class_exists( 'Tribe__Events__Query' ) ) {
285
  ? $query->get( 'eventDate' )
286
  : date_i18n( Tribe__Date_Utils::DBDATETIMEFORMAT );
287
  if ( ! $query->tribe_is_past ) {
288
- $query->set( 'start_date', ( '' != $query->get( 'eventDate' ) ? tribe_beginning_of_day( $event_date ) : tribe_format_date( current_time( 'timestamp' ), true, 'Y-m-d H:i:s' ) ) );
289
  $query->set( 'end_date', '' );
290
  $query->set( 'order', self::set_order( 'ASC', $query ) );
291
  } else {
285
  ? $query->get( 'eventDate' )
286
  : date_i18n( Tribe__Date_Utils::DBDATETIMEFORMAT );
287
  if ( ! $query->tribe_is_past ) {
288
+ $query->set( 'start_date', ( '' != $query->get( 'eventDate' ) ? tribe_beginning_of_day( $event_date ) : tribe_format_date( current_time( 'timestamp' ), true, 'Y-m-d H:i:00' ) ) );
289
  $query->set( 'end_date', '' );
290
  $query->set( 'order', self::set_order( 'ASC', $query ) );
291
  } else {
src/Tribe/REST/V1/Endpoints/Archive_Event.php CHANGED
@@ -169,9 +169,9 @@ class Tribe__Events__REST__V1__Endpoints__Archive_Event
169
 
170
  protected function parse_start_date( WP_REST_Request $request ) {
171
  if ( ! empty( $request['start_date'] ) ) {
172
- $start_date = strtotime( $request['start_date'] );
173
  // Unix timestamp is a thing...
174
- $start_date = $start_date ? $start_date : $request['start_date'];
175
  // at this point if it's legit it should be a number
176
  if ( ! is_numeric( $start_date ) ) {
177
  $message = $this->messages->get_message( 'event-archive-bad-start-date' );
@@ -192,9 +192,9 @@ class Tribe__Events__REST__V1__Endpoints__Archive_Event
192
 
193
  protected function parse_end_date( WP_REST_Request $request ) {
194
  if ( isset( $request['end_date'] ) ) {
195
- $end_date = strtotime( $request['end_date'] );
196
  // Unix timestamp is a thing...
197
- $end_date = $end_date ? $end_date : $request['end_date'];
198
  // at this point if it's legit it should be a number
199
  if ( ! is_numeric( $end_date ) ) {
200
  $message = $this->messages->get_message( 'event-archive-bad-end-date' );
169
 
170
  protected function parse_start_date( WP_REST_Request $request ) {
171
  if ( ! empty( $request['start_date'] ) ) {
172
+ $start_date = $request['start_date'];
173
  // Unix timestamp is a thing...
174
+ $start_date = is_numeric( $start_date ) ? $start_date : strtotime( $request['start_date'] );
175
  // at this point if it's legit it should be a number
176
  if ( ! is_numeric( $start_date ) ) {
177
  $message = $this->messages->get_message( 'event-archive-bad-start-date' );
192
 
193
  protected function parse_end_date( WP_REST_Request $request ) {
194
  if ( isset( $request['end_date'] ) ) {
195
+ $end_date = $request['end_date'];
196
  // Unix timestamp is a thing...
197
+ $end_date = is_numeric( $end_date ) ? $end_date : strtotime( $request['end_date'] );
198
  // at this point if it's legit it should be a number
199
  if ( ! is_numeric( $end_date ) ) {
200
  $message = $this->messages->get_message( 'event-archive-bad-end-date' );
src/admin-views/events-meta-box.php CHANGED
@@ -89,7 +89,7 @@ $events_label_plural_lowercase = tribe_get_event_label_plural_lowercase();
89
  class="tribe-timepicker tribe-field-start_time"
90
  name="EventStartTime"
91
  id="EventStartTime"
92
- <?php echo Tribe__View_Helpers::is_24hr_format() ? 'data-format="H:i"' : '' ?>"
93
  data-step="<?php echo esc_attr( $start_timepicker_step ); ?>"
94
  data-round="<?php echo esc_attr( $timepicker_round ); ?>"
95
  value="<?php echo esc_attr( $metabox->is_auto_draft() ? $start_timepicker_default : $EventStartTime ) ?>"
@@ -104,7 +104,7 @@ $events_label_plural_lowercase = tribe_get_event_label_plural_lowercase();
104
  class="tribe-timepicker tribe-field-end_time"
105
  name="EventEndTime"
106
  id="EventEndTime"
107
- <?php echo Tribe__View_Helpers::is_24hr_format() ? 'data-format="H:i"' : '' ?>"
108
  data-step="<?php echo esc_attr( $end_timepicker_step ); ?>"
109
  data-round="<?php echo esc_attr( $timepicker_round ); ?>"
110
  value="<?php echo esc_attr( $metabox->is_auto_draft() ? $end_timepicker_default : $EventEndTime ); ?>"
89
  class="tribe-timepicker tribe-field-start_time"
90
  name="EventStartTime"
91
  id="EventStartTime"
92
+ <?php echo Tribe__View_Helpers::is_24hr_format() ? 'data-format="H:i"' : '' ?>
93
  data-step="<?php echo esc_attr( $start_timepicker_step ); ?>"
94
  data-round="<?php echo esc_attr( $timepicker_round ); ?>"
95
  value="<?php echo esc_attr( $metabox->is_auto_draft() ? $start_timepicker_default : $EventStartTime ) ?>"
104
  class="tribe-timepicker tribe-field-end_time"
105
  name="EventEndTime"
106
  id="EventEndTime"
107
+ <?php echo Tribe__View_Helpers::is_24hr_format() ? 'data-format="H:i"' : '' ?>
108
  data-step="<?php echo esc_attr( $end_timepicker_step ); ?>"
109
  data-round="<?php echo esc_attr( $timepicker_round ); ?>"
110
  value="<?php echo esc_attr( $metabox->is_auto_draft() ? $end_timepicker_default : $EventEndTime ); ?>"
src/functions/template-tags/date.php CHANGED
@@ -43,7 +43,7 @@ if ( ! function_exists( 'tribe_get_display_end_date' ) ) {
43
  /**
44
  * Filters the displayed end date of an event, which factors in the EOD cutoff.
45
  *
46
- * @since TBD
47
  *
48
  * @see tribe_get_display_end_date()
49
  *
43
  /**
44
  * Filters the displayed end date of an event, which factors in the EOD cutoff.
45
  *
46
+ * @since 4.5.10
47
  *
48
  * @see tribe_get_display_end_date()
49
  *
src/functions/template-tags/general.php CHANGED
@@ -1118,19 +1118,20 @@ if ( class_exists( 'Tribe__Events__Main' ) ) {
1118
  }
1119
 
1120
  if ( function_exists( 'has_post_thumbnail' ) && has_post_thumbnail( $event->ID ) ) {
1121
- $has_image = true;
 
1122
  $image_tool_src = tribe_event_featured_image( $event->ID, 'medium', false, false );
1123
  }
1124
 
1125
  $category_classes = tribe_events_event_classes( $event->ID, false );
1126
 
1127
- $json['eventId'] = $event->ID;
1128
- $json['title'] = wp_kses_post( $event->post_title );
1129
- $json['permalink'] = tribe_get_event_link( $event->ID );
1130
- $json['imageSrc'] = $image_src;
1131
- $json['dateDisplay'] = $date_display;
1132
  $json['imageTooltipSrc'] = $image_tool_src;
1133
- $json['excerpt'] = tribe_events_get_the_excerpt( $event );
1134
  $json['categoryClasses'] = $category_classes;
1135
 
1136
  /**
@@ -1443,6 +1444,10 @@ if ( class_exists( 'Tribe__Events__Main' ) ) {
1443
  $excerpt = wp_kses( $excerpt, $allowed_html );
1444
 
1445
  if ( ! has_excerpt( $post->ID ) ) {
 
 
 
 
1446
  // We will only trim Excerpt if it comes from Post Content
1447
 
1448
  /**
@@ -1461,6 +1466,9 @@ if ( class_exists( 'Tribe__Events__Main' ) ) {
1461
 
1462
  // Now we actually trim it
1463
  $excerpt = wp_trim_words( $excerpt, $excerpt_length, $excerpt_more );
 
 
 
1464
  }
1465
 
1466
  /**
1118
  }
1119
 
1120
  if ( function_exists( 'has_post_thumbnail' ) && has_post_thumbnail( $event->ID ) ) {
1121
+ $has_image = true;
1122
+ $image_src = tribe_event_featured_image( $event->ID, 'large', false, false );
1123
  $image_tool_src = tribe_event_featured_image( $event->ID, 'medium', false, false );
1124
  }
1125
 
1126
  $category_classes = tribe_events_event_classes( $event->ID, false );
1127
 
1128
+ $json['eventId'] = $event->ID;
1129
+ $json['title'] = wp_kses_post( $event->post_title );
1130
+ $json['permalink'] = tribe_get_event_link( $event->ID );
1131
+ $json['imageSrc'] = $image_src;
1132
+ $json['dateDisplay'] = $date_display;
1133
  $json['imageTooltipSrc'] = $image_tool_src;
1134
+ $json['excerpt'] = tribe_events_get_the_excerpt( $event );
1135
  $json['categoryClasses'] = $category_classes;
1136
 
1137
  /**
1444
  $excerpt = wp_kses( $excerpt, $allowed_html );
1445
 
1446
  if ( ! has_excerpt( $post->ID ) ) {
1447
+ // Temporarily alter the global post in preparation for our filters.
1448
+ $global_post = $GLOBALS['post'];
1449
+ $GLOBALS['post'] = $post;
1450
+
1451
  // We will only trim Excerpt if it comes from Post Content
1452
 
1453
  /**
1466
 
1467
  // Now we actually trim it
1468
  $excerpt = wp_trim_words( $excerpt, $excerpt_length, $excerpt_more );
1469
+
1470
+ // Original post is back in action!
1471
+ $GLOBALS['post'] = $global_post;
1472
  }
1473
 
1474
  /**
src/functions/template-tags/venue.php CHANGED
@@ -13,12 +13,11 @@ if ( ! defined( 'ABSPATH' ) ) {
13
  if ( class_exists( 'Tribe__Events__Main' ) ) {
14
 
15
  /**
16
- * Venue ID
17
- *
18
  * Returns the event Venue ID.
19
  *
20
- * @param int $postId can supply either event id or venue id, if none specified, current post is used
21
  *
 
22
  * @return int Venue ID
23
  */
24
  function tribe_get_venue_id( $postId = null ) {
@@ -26,103 +25,153 @@ if ( class_exists( 'Tribe__Events__Main' ) ) {
26
  if ( tribe_is_venue( $postId ) ) {
27
  return $postId;
28
  } else {
29
- return apply_filters( 'tribe_get_venue_id', tribe_get_event_meta( $postId, '_EventVenueID', true ) );
 
 
 
 
 
 
 
 
 
30
  }
31
  }
32
 
33
  /**
34
- * Get Venue Label Singular
35
- *
36
  * Returns the singular version of the Venue Label
37
  *
 
 
38
  * @return string
39
  */
40
  function tribe_get_venue_label_singular() {
 
 
 
 
 
 
 
 
41
  return apply_filters( 'tribe_venue_label_singular', esc_html__( 'Venue', 'the-events-calendar' ) );
42
  }
43
 
44
  /**
45
- * Get Venue Label Plural
46
- *
47
  * Returns the plural version of the Venue Label
48
  *
 
 
49
  * @return string
50
  */
51
  function tribe_get_venue_label_plural() {
 
 
 
 
 
 
 
 
52
  return apply_filters( 'tribe_venue_label_plural', esc_html__( 'Venues', 'the-events-calendar' ) );
53
  }
54
 
55
  /**
56
- * Venue Test
57
- *
58
  * Returns true or false depending on if the post id for the event has a venue or if the post id is a venue
59
  *
60
- * @param int $postId Can supply either event id or venue id, if none specified, current post is used
61
  *
 
62
  * @return bool
63
  */
64
  function tribe_has_venue( $postId = null ) {
65
  $has_venue = ( tribe_get_venue_id( $postId ) > 0 ) ? true : false;
66
 
67
- return apply_filters( 'tribe_has_venue', $has_venue );
 
 
 
 
 
 
 
 
 
68
  }
69
 
70
  /**
71
- * Get Venue
72
- *
73
  * Returns the event venue name
74
  *
75
- * @param int $postId Can supply either event id or venue id, if none specified, current post is used
76
  *
 
77
  * @return string Venue Name
78
  */
79
  function tribe_get_venue( $postId = null ) {
80
- $postId = tribe_get_venue_id( $postId );
81
- $venue = ( $postId > 0 ) ? esc_html( get_the_title( $postId ) ) : null;
82
 
83
- return apply_filters( 'tribe_get_venue', $venue );
 
 
 
 
 
 
 
 
 
84
  }
85
 
86
  /**
87
- * Venue Link
88
- *
89
  * Returns or display the event Venue Name with a link to the venue
90
  *
 
 
91
  * @param int $postId Can supply either event id or venue id, if none specified, current post is used
92
  * @param bool $full_link If true outputs a complete HTML <a> link, otherwise only the URL is output
93
- *
94
  * @return string Venue if $display is set to false, void if it's set to true.
95
  */
96
  function tribe_get_venue_link( $postId = null, $full_link = true ) {
97
 
98
- $ven_id = tribe_get_venue_id( $postId );
99
- $url = esc_url_raw( get_permalink( $ven_id ) );
100
 
101
  if ( ! class_exists( 'Tribe__Events__Pro__Main' ) ) {
102
- $link = tribe_get_venue( $ven_id );
103
  } elseif ( $full_link ) {
104
- $name = tribe_get_venue( $ven_id );
105
- $attr_title = the_title_attribute( array( 'post' => $ven_id, 'echo' => false ) );
106
  $link = ! empty( $url ) && ! empty( $name ) ? '<a href="' . esc_url( $url ) . '" title="' . $attr_title . '">' . $name . '</a>' : false;
107
  } else {
108
  $link = $url;
109
  }
110
 
111
- return apply_filters( 'tribe_get_venue_link', $link, $postId, $full_link, $url );
 
 
 
 
 
 
 
 
 
 
 
112
  }
113
 
114
  /**
115
- * Country
116
  *
117
- * Returns the event country
118
  *
119
  * @param int $postId Can supply either event id or venue id, if none specified, current post is used
120
- *
121
  * @return string Country
122
  */
123
  function tribe_get_country( $postId = null ) {
124
- $postId = tribe_get_venue_id( $postId );
125
- $venue_country = tribe_get_event_meta( $postId, '_VenueCountry', true );
126
 
127
  // _VenueCountry should hold an array of [ 'country_id', 'country_name' ]. Let's get the country
128
  // name from that array and output that
@@ -131,33 +180,50 @@ if ( class_exists( 'Tribe__Events__Main' ) ) {
131
  }
132
  $output = esc_html( $venue_country );
133
 
134
- return apply_filters( 'tribe_get_country', $output );
 
 
 
 
 
 
 
 
 
135
  }
136
 
137
  /**
138
- * Full Address
139
- *
140
  * Returns the full address for the venue. Function uses the views/modules/address.php template which you can override in your theme.
141
  *
142
- * @param int $postId Can supply either event id or venue id, if none specified, current post is used
143
- * @param bool $includeVenueName
144
  *
 
 
145
  * @return string Formatted event address
146
  */
147
  function tribe_get_full_address( $postId = null, $includeVenueName = false ) {
148
- $postId = tribe_get_venue_id( $postId );
149
- $tec = Tribe__Events__Main::instance();
150
 
151
- return apply_filters( 'tribe_get_full_address', $tec->fullAddress( $postId, $includeVenueName ) );
 
 
 
 
 
 
 
 
 
 
152
  }
153
 
154
  /**
155
- * Address Test
156
- *
157
  * Returns true if any of the following exist: address, city, state/province (region), country or zip
158
  *
159
- * @param int $postId Can supply either event id or venue id, if none specified, current post is used
160
  *
 
161
  * @return bool True if any part of an address exists
162
  */
163
  function tribe_address_exists( $postId = null ) {
@@ -176,158 +242,224 @@ if ( class_exists( 'Tribe__Events__Main' ) ) {
176
  }
177
 
178
  /**
179
- * Street Address
180
- *
181
  * Returns the venue street address
182
  *
183
- * @param int $postId Can supply either event id or venue id, if none specified, current post is used
184
  *
 
185
  * @return string Street address
186
  */
187
  function tribe_get_address( $postId = null ) {
188
- $postId = tribe_get_venue_id( $postId );
189
- $output = esc_html( tribe_get_event_meta( $postId, '_VenueAddress', true ) );
190
 
191
- return apply_filters( 'tribe_get_address', $output );
 
 
 
 
 
 
 
 
 
192
  }
193
 
194
  /**
195
- * City
196
- *
197
  * Returns the venue city
198
  *
199
- * @param int $postId Can supply either event id or venue id, if none specified, current post is used
200
  *
 
201
  * @return string City
202
  */
203
  function tribe_get_city( $postId = null ) {
204
- $postId = tribe_get_venue_id( $postId );
205
- $output = esc_html( tribe_get_event_meta( $postId, '_VenueCity', true ) );
206
 
207
- return apply_filters( 'tribe_get_city', $output );
 
 
 
 
 
 
 
 
 
208
  }
209
 
210
  /**
211
- * State or Province
212
- *
213
  * Returns the venue state or province
214
  *
215
- * @param int $postId Can supply either event id or venue id, if none specified, current post is used
216
  *
 
217
  * @return string State
218
  * @todo Depricate tribe_get_stateprovince or tribe_get_region
219
  */
220
  function tribe_get_stateprovince( $postId = null ) {
221
- $postId = tribe_get_venue_id( $postId );
222
- $output = esc_html( tribe_get_event_meta( $postId, '_VenueStateProvince', true ) );
223
 
224
- return apply_filters( 'tribe_get_stateprovince', $output );
 
 
 
 
 
 
 
 
 
225
  }
226
 
227
  /**
228
- * State
229
- *
230
  * Returns the venue state
231
  *
232
- * @param int $postId Can supply either event id or venue id, if none specified, current post is used
233
  *
 
234
  * @return string State
235
  */
236
  function tribe_get_state( $postId = null ) {
237
- $postId = tribe_get_venue_id( $postId );
238
- $output = esc_html( tribe_get_event_meta( $postId, '_VenueState', true ) );
239
 
240
- return apply_filters( 'tribe_get_state', $output );
 
 
 
 
 
 
 
 
 
241
  }
242
 
243
  /**
244
- * Province
245
- *
246
  * Returns the venue province
247
  *
248
- * @param int $postId Can supply either event id or venue id, if none specified, current post is used
249
  *
 
250
  * @return string Province
251
  */
252
  function tribe_get_province( $postId = null ) {
253
- $postId = tribe_get_venue_id( $postId );
254
- $output = esc_html( tribe_get_event_meta( $postId, '_VenueProvince', true ) );
255
 
256
- return apply_filters( 'tribe_get_province', $output );
 
 
 
 
 
 
 
 
 
257
  }
258
 
259
  /**
260
- * Region
261
- *
262
  * Returns the state or province for US or non-US addresses (effectively the same thing as tribe_get_stateprovince())
263
  *
264
- * @param int $postId Can supply either event id or venue id, if none specified, current post is used
265
  *
 
266
  * @return string
267
  * @todo Depricate tribe_get_region or tribe_get_stateprovince
268
  */
269
  function tribe_get_region( $postId = null ) {
270
- $postId = tribe_get_venue_id( $postId );
271
- if ( tribe_get_event_meta( $postId, '_VenueStateProvince', true ) ) {
272
- $region = tribe_get_event_meta( $postId, '_VenueStateProvince', true );
273
  } else {
274
- if ( tribe_get_country( $postId ) == esc_html__( 'United States', 'the-events-calendar' ) ) {
275
- $region = tribe_get_state( $postId );
276
  } else {
277
  $region = tribe_get_province();
278
  }
279
  }
280
 
281
- return apply_filters( 'tribe_get_region', $region );
 
 
 
 
 
 
 
 
 
282
  }
283
 
284
  /**
285
- * Zip Code
286
- *
287
  * Returns the event zip code
288
  *
289
- * @param int $postId Can supply either event id or venue id, if none specified, current post is used
290
  *
 
291
  * @return string Zip code
292
  */
293
  function tribe_get_zip( $postId = null ) {
294
- $postId = tribe_get_venue_id( $postId );
295
- $output = esc_html( tribe_get_event_meta( $postId, '_VenueZip', true ) );
296
 
297
- return apply_filters( 'tribe_get_zip', $output );
 
 
 
 
 
 
 
 
 
298
  }
299
 
300
  /**
301
  * Gets the full region name of a given event's Venue address.
302
  *
303
- * @param int $event_id
304
  *
 
305
  * @return string The full region for this event's address.
306
  */
307
  function tribe_get_full_region( $event_id ) {
308
  $province = tribe_get_event_meta( $event_id, '_VenueStateProvince', true );
309
- $states = Tribe__View_Helpers::loadStates();
310
 
311
  $full_region = isset( $states[ $province ] ) ? $states[ $province ] : $province;
312
 
313
- return apply_filters( 'tribe_get_full_region', $full_region );
 
 
 
 
 
 
 
 
 
314
  }
315
 
316
 
317
  /**
318
- * Coordinates
319
- *
320
  * Returns the coordinates of the venue
321
  *
322
- * @param int $postId Can supply either event id or venue id, if none specified, current post is used
323
  *
 
324
  * @return array An Array with the Latitute and Longitude of the venue
325
  */
326
  function tribe_get_coordinates( $postId = null ) {
327
- $postId = tribe_get_venue_id( $postId );
 
328
  if ( class_exists( 'Tribe__Events__Pro__Geo_Loc' ) ) {
329
- $output[ 'lat' ] = (float) get_post_meta( $postId, Tribe__Events__Pro__Geo_Loc::LAT, true );
330
- $output[ 'lng' ] = (float) get_post_meta( $postId, Tribe__Events__Pro__Geo_Loc::LNG, true );
331
  } else {
332
  $output = array(
333
  'lat' => 0,
@@ -335,61 +467,87 @@ if ( class_exists( 'Tribe__Events__Main' ) ) {
335
  );
336
  }
337
 
338
- return apply_filters( 'tribe_get_coordinates', $output );
 
 
 
 
 
 
 
 
 
339
  }
340
 
341
 
342
  /**
343
- * Coordinates Overwrite
344
- *
345
  * Conditional if the venue has it's coordinates overwritten
346
  *
347
- * @param int $postId Can supply either event id or venue id, if none specified, current post is used
348
  *
 
349
  * @return bool Depending on the venue checkbox of overwrite coordinates
350
  */
351
  function tribe_is_venue_overwrite( $postId = null ) {
352
- $postId = tribe_get_venue_id( $postId );
353
 
354
  if ( class_exists( 'Tribe__Events__Pro__Geo_Loc' ) ) {
355
- $output = (int) get_post_meta( $postId, Tribe__Events__Pro__Geo_Loc::OVERWRITE, true );
356
  } else{
357
  $output = 0;
358
  }
359
 
360
- return apply_filters( 'tribe_is_venue_overwrite', (bool) $output );
 
 
 
 
 
 
 
 
 
361
  }
362
 
363
 
364
  /**
365
- * Venue Phone Number
366
- *
367
  * Returns the venue phone number
368
  *
369
- * @param int $postId Can supply either event id or venue id, if none specified, current post is used
370
  *
 
371
  * @return string Phone number
372
  */
373
  function tribe_get_phone( $postId = null ) {
374
- $postId = tribe_get_venue_id( $postId );
375
- $output = esc_html( tribe_get_event_meta( $postId, '_VenuePhone', true ) );
376
 
377
- return apply_filters( 'tribe_get_phone', $output );
 
 
 
 
 
 
 
 
 
378
  }
379
 
380
  /**
381
  * Get all the venues
382
  *
 
 
383
  * @param bool $only_with_upcoming Only return venues with upcoming events attached to them.
384
  * @param $posts_per_page
385
  * @param bool $suppress_filters
386
- *
387
  * @return array An array of venue post objects.
388
  */
389
  function tribe_get_venues( $only_with_upcoming = false, $posts_per_page = -1, $suppress_filters = true ) {
390
  $venues = get_posts(
391
  array(
392
- 'post_type' => Tribe__Events__Main::VENUE_POST_TYPE,
393
  'posts_per_page' => $posts_per_page,
394
  'suppress_filters' => $suppress_filters,
395
  )
@@ -401,9 +559,10 @@ if ( class_exists( 'Tribe__Events__Main' ) ) {
401
  /**
402
  * Get the link for the venue website.
403
  *
 
 
404
  * @param null $post_id
405
  * @param null $label
406
- *
407
  * @return string Formatted link to the venue website
408
  */
409
  function tribe_get_venue_website_link( $post_id = null, $label = null ) {
@@ -417,25 +576,58 @@ if ( class_exists( 'Tribe__Events__Main' ) ) {
417
  $url = "http://$url";
418
  }
419
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
420
  $html = sprintf(
421
  '<a href="%s" target="%s">%s</a>',
422
  esc_attr( esc_url( $url ) ),
423
- apply_filters( 'tribe_get_venue_website_link_target', '_self' ),
424
- apply_filters( 'tribe_get_venue_website_link_label', esc_html( $label ) )
425
  );
426
  } else {
427
  $html = '';
428
  }
429
 
430
- return apply_filters( 'tribe_get_venue_website_link', $html );
 
 
 
 
 
 
 
 
 
431
  }
432
 
433
  /**
434
  * Returns the venue website URL related to the current post or for the optionally
435
  * specified post.
436
  *
437
- * @param int|null $post_id
438
  *
 
439
  * @return string
440
  */
441
  function tribe_get_venue_website_url( $post_id = null ) {
@@ -449,8 +641,9 @@ if ( class_exists( 'Tribe__Events__Main' ) ) {
449
  /**
450
  * Gets venue details for use in some single-event templates.
451
  *
452
- * @param null $post_id
453
  *
 
454
  * @return array The venue name and venue address.
455
  */
456
  function tribe_get_venue_details( $post_id = null ) {
@@ -470,31 +663,45 @@ if ( class_exists( 'Tribe__Events__Main' ) ) {
470
  $venue_details['address'] = $venue_address;
471
  }
472
 
473
- return apply_filters( 'tribe_get_venue_details', $venue_details );
 
 
 
 
 
 
 
 
 
474
  }
475
 
476
  /**
477
- * Gets the venue name and address on a single line
 
 
478
  *
479
  * @param int $event_id Event ID
480
  * @param boolean $link Whether or not to wrap the text in a venue link
481
- *
482
  * @return string
483
  */
484
  function tribe_get_venue_single_line_address( $event_id, $link = true ) {
485
  $venue = null;
 
486
  if ( tribe_has_venue( $event_id ) ) {
487
- $venue_id = tribe_get_venue_id( $event_id );
488
- $venue_name = tribe_get_venue( $event_id );
489
- $venue_url = tribe_get_venue_link( $event_id, false );
490
  $venue_address = array(
491
- 'city' => tribe_get_city( $event_id ),
492
  'stateprovince' => tribe_get_stateprovince( $event_id ),
493
- 'zip' => tribe_get_zip( $event_id ),
494
  );
495
 
496
  /**
497
- * Filters the parts of a venue address
 
 
 
498
  *
499
  * @var array Array of address parts
500
  * @var int Event ID
@@ -519,7 +726,10 @@ if ( class_exists( 'Tribe__Events__Main' ) ) {
519
  }
520
 
521
  /**
522
- * Filters the venue single-line address
 
 
 
523
  *
524
  * @var string Venue address line
525
  * @var int Event ID
13
  if ( class_exists( 'Tribe__Events__Main' ) ) {
14
 
15
  /**
 
 
16
  * Returns the event Venue ID.
17
  *
18
+ * @since ??
19
  *
20
+ * @param int $postId can supply either event id or venue id, if none specified, current post is used
21
  * @return int Venue ID
22
  */
23
  function tribe_get_venue_id( $postId = null ) {
25
  if ( tribe_is_venue( $postId ) ) {
26
  return $postId;
27
  } else {
28
+ /**
29
+ * Allow for customizing the Venue ID retrieved for this item.
30
+ *
31
+ * @since ??
32
+ * @since TBD Added dockblock and venue ID to filter.
33
+ *
34
+ * @param int $venue_id The Venue ID for the specified event.
35
+ * @param int $postId The ID of the event whose venue is being looked for.
36
+ */
37
+ return apply_filters( 'tribe_get_venue_id', tribe_get_event_meta( $postId, '_EventVenueID', true ), $postId );
38
  }
39
  }
40
 
41
  /**
 
 
42
  * Returns the singular version of the Venue Label
43
  *
44
+ * @since ??
45
+ *
46
  * @return string
47
  */
48
  function tribe_get_venue_label_singular() {
49
+ /**
50
+ * Allows customization of the singular version of the Venue Label
51
+ *
52
+ * @since ??
53
+ * @since TBD Added dockblock
54
+ *
55
+ * @param string $label The singular version of the Venue label, defaults to "Venue" (uppercase)
56
+ */
57
  return apply_filters( 'tribe_venue_label_singular', esc_html__( 'Venue', 'the-events-calendar' ) );
58
  }
59
 
60
  /**
 
 
61
  * Returns the plural version of the Venue Label
62
  *
63
+ * @since ??
64
+ *
65
  * @return string
66
  */
67
  function tribe_get_venue_label_plural() {
68
+ /**
69
+ * Allows customization of the plural version of the Venue Label
70
+ *
71
+ * @since ??
72
+ * @since TBD Added dockblock
73
+ *
74
+ * @param string $label The plural version of the Venue label, defaults to "Venues" (uppercase)
75
+ */
76
  return apply_filters( 'tribe_venue_label_plural', esc_html__( 'Venues', 'the-events-calendar' ) );
77
  }
78
 
79
  /**
 
 
80
  * Returns true or false depending on if the post id for the event has a venue or if the post id is a venue
81
  *
82
+ * @since ??
83
  *
84
+ * @param int $postId Can supply either event id or venue id, if none specified, current post is used
85
  * @return bool
86
  */
87
  function tribe_has_venue( $postId = null ) {
88
  $has_venue = ( tribe_get_venue_id( $postId ) > 0 ) ? true : false;
89
 
90
+ /**
91
+ * Allows customization of whether a given event has a venue.
92
+ *
93
+ * @since ??
94
+ * @since TBD Added dockblock and venue ID to filter.
95
+ *
96
+ * @param bool $has_venue Whether the specified event has a venue.
97
+ * @param int $postId Can be either the event ID or its venue ID
98
+ */
99
+ return apply_filters( 'tribe_has_venue', $has_venue, $postId );
100
  }
101
 
102
  /**
 
 
103
  * Returns the event venue name
104
  *
105
+ * @since ??
106
  *
107
+ * @param int $postId Can supply either event id or venue id, if none specified, current post is used
108
  * @return string Venue Name
109
  */
110
  function tribe_get_venue( $postId = null ) {
111
+ $venue_id = tribe_get_venue_id( $postId );
112
+ $venue = ( $venue_id > 0 ) ? esc_html( get_the_title( $venue_id ) ) : null;
113
 
114
+ /**
115
+ * Allows customization of the retrieved venue name for a specified event.
116
+ *
117
+ * @since ??
118
+ * @since TBD Added dockblock and venue ID to filter.
119
+ *
120
+ * @param string $venue The name of the retrieved venue.
121
+ * @param int $venue_id The venue ID.
122
+ */
123
+ return apply_filters( 'tribe_get_venue', $venue, $venue_id );
124
  }
125
 
126
  /**
 
 
127
  * Returns or display the event Venue Name with a link to the venue
128
  *
129
+ * @since ??
130
+ *
131
  * @param int $postId Can supply either event id or venue id, if none specified, current post is used
132
  * @param bool $full_link If true outputs a complete HTML <a> link, otherwise only the URL is output
 
133
  * @return string Venue if $display is set to false, void if it's set to true.
134
  */
135
  function tribe_get_venue_link( $postId = null, $full_link = true ) {
136
 
137
+ $venue_id = tribe_get_venue_id( $postId );
138
+ $url = esc_url_raw( get_permalink( $venue_id ) );
139
 
140
  if ( ! class_exists( 'Tribe__Events__Pro__Main' ) ) {
141
+ $link = tribe_get_venue( $venue_id );
142
  } elseif ( $full_link ) {
143
+ $name = tribe_get_venue( $venue_id );
144
+ $attr_title = the_title_attribute( array( 'post' => $venue_id, 'echo' => false ) );
145
  $link = ! empty( $url ) && ! empty( $name ) ? '<a href="' . esc_url( $url ) . '" title="' . $attr_title . '">' . $name . '</a>' : false;
146
  } else {
147
  $link = $url;
148
  }
149
 
150
+ /**
151
+ * Allows customization of the "Venue name with link" retrieved for a specified event.
152
+ *
153
+ * @since ??
154
+ * @since TBD Added dockblock and function args to filter.
155
+ *
156
+ * @param string $link The assembled "Venue name with link" string
157
+ * @param int $venue_id The venue's ID.
158
+ * @param bool $full_link If true outputs a complete HTML <a> link, otherwise only the URL is output
159
+ * @param string $url The raw permalink to the venue.
160
+ */
161
+ return apply_filters( 'tribe_get_venue_link', $link, $venue_id, $full_link, $url );
162
  }
163
 
164
  /**
165
+ * Returns the venue's country
166
  *
167
+ * @since ??
168
  *
169
  * @param int $postId Can supply either event id or venue id, if none specified, current post is used
 
170
  * @return string Country
171
  */
172
  function tribe_get_country( $postId = null ) {
173
+ $venue_id = tribe_get_venue_id( $postId );
174
+ $venue_country = tribe_get_event_meta( $venue_id, '_VenueCountry', true );
175
 
176
  // _VenueCountry should hold an array of [ 'country_id', 'country_name' ]. Let's get the country
177
  // name from that array and output that
180
  }
181
  $output = esc_html( $venue_country );
182
 
183
+ /**
184
+ * Allows customization of the retrieved venue country for a specified event.
185
+ *
186
+ * @since ??
187
+ * @since TBD Added dockblock and venue ID to filter.
188
+ *
189
+ * @param string $output The escaped country name of the venue.
190
+ * @param int $venue_id The venue ID.
191
+ */
192
+ return apply_filters( 'tribe_get_country', $output, $venue_id );
193
  }
194
 
195
  /**
 
 
196
  * Returns the full address for the venue. Function uses the views/modules/address.php template which you can override in your theme.
197
  *
198
+ * @since ??
 
199
  *
200
+ * @param int $postId Can supply either event id or venue id, if none specified, current post is used
201
+ * @param bool $includeVenueName To include the venue name or not.
202
  * @return string Formatted event address
203
  */
204
  function tribe_get_full_address( $postId = null, $includeVenueName = false ) {
205
+ $venue_id = tribe_get_venue_id( $postId );
206
+ $tec = Tribe__Events__Main::instance();
207
 
208
+ /**
209
+ * Allows customization of the venue's full address.
210
+ *
211
+ * @since ??
212
+ * @since 4.5.11 Added dockblock; also added $venue_id and $includeVenueName to filter.
213
+ *
214
+ * @param string $address The formatted event address
215
+ * @param int $venue_id The venue ID.
216
+ * @param bool $includeVenueName To include the venue name or not.
217
+ */
218
+ return apply_filters( 'tribe_get_full_address', $tec->fullAddress( $venue_id, $includeVenueName ), $venue_id, $includeVenueName );
219
  }
220
 
221
  /**
 
 
222
  * Returns true if any of the following exist: address, city, state/province (region), country or zip
223
  *
224
+ * @since ??
225
  *
226
+ * @param int $postId Can supply either event id or venue id, if none specified, current post is used
227
  * @return bool True if any part of an address exists
228
  */
229
  function tribe_address_exists( $postId = null ) {
242
  }
243
 
244
  /**
 
 
245
  * Returns the venue street address
246
  *
247
+ * @since ??
248
  *
249
+ * @param int $postId Can supply either event id or venue id, if none specified, current post is used
250
  * @return string Street address
251
  */
252
  function tribe_get_address( $postId = null ) {
253
+ $venue_id = tribe_get_venue_id( $postId );
254
+ $output = esc_html( tribe_get_event_meta( $venue_id, '_VenueAddress', true ) );
255
 
256
+ /**
257
+ * Allows customization of the venue's street address.
258
+ *
259
+ * @since ??
260
+ * @since 4.5.11 Added docblock and venue ID to filter
261
+ *
262
+ * @param string $output The escaped venue street address
263
+ * @param int $venue_id The venue ID.
264
+ */
265
+ return apply_filters( 'tribe_get_address', $output, $venue_id );
266
  }
267
 
268
  /**
 
 
269
  * Returns the venue city
270
  *
271
+ * @since ??
272
  *
273
+ * @param int $postId Can supply either event id or venue id, if none specified, current post is used
274
  * @return string City
275
  */
276
  function tribe_get_city( $postId = null ) {
277
+ $venue_id = tribe_get_venue_id( $postId );
278
+ $output = esc_html( tribe_get_event_meta( $venue_id, '_VenueCity', true ) );
279
 
280
+ /**
281
+ * Allows customization of the venue's city.
282
+ *
283
+ * @since ??
284
+ * @since 4.5.11 Added docblock and venue ID to filter
285
+ *
286
+ * @param string $output The escaped venue city
287
+ * @param int $venue_id The venue ID.
288
+ */
289
+ return apply_filters( 'tribe_get_city', $output, $venue_id );
290
  }
291
 
292
  /**
 
 
293
  * Returns the venue state or province
294
  *
295
+ * @since ??
296
  *
297
+ * @param int $postId Can supply either event id or venue id, if none specified, current post is used
298
  * @return string State
299
  * @todo Depricate tribe_get_stateprovince or tribe_get_region
300
  */
301
  function tribe_get_stateprovince( $postId = null ) {
302
+ $venue_id = tribe_get_venue_id( $postId );
303
+ $output = esc_html( tribe_get_event_meta( $venue_id, '_VenueStateProvince', true ) );
304
 
305
+ /**
306
+ * Allows customization of the venue's state or province.
307
+ *
308
+ * @since ??
309
+ * @since 4.5.11 Added docblock and venue ID to filter
310
+ *
311
+ * @param string $output The escaped venue state or province.
312
+ * @param int $venue_id The venue ID.
313
+ */
314
+ return apply_filters( 'tribe_get_stateprovince', $output, $venue_id );
315
  }
316
 
317
  /**
 
 
318
  * Returns the venue state
319
  *
320
+ * @since ??
321
  *
322
+ * @param int $postId Can supply either event id or venue id, if none specified, current post is used
323
  * @return string State
324
  */
325
  function tribe_get_state( $postId = null ) {
326
+ $venue_id = tribe_get_venue_id( $postId );
327
+ $output = esc_html( tribe_get_event_meta( $venue_id, '_VenueState', true ) );
328
 
329
+ /**
330
+ * Allows customization of the venue's state.
331
+ *
332
+ * @since ??
333
+ * @since 4.5.11 Added docblock and venue ID to filter
334
+ *
335
+ * @param string $output The escaped venue state or province.
336
+ * @param int $venue_id The venue ID.
337
+ */
338
+ return apply_filters( 'tribe_get_state', $output, $venue_id );
339
  }
340
 
341
  /**
 
 
342
  * Returns the venue province
343
  *
344
+ * @since ??
345
  *
346
+ * @param int $postId Can supply either event id or venue id, if none specified, current post is used
347
  * @return string Province
348
  */
349
  function tribe_get_province( $postId = null ) {
350
+ $venue_id = tribe_get_venue_id( $postId );
351
+ $output = esc_html( tribe_get_event_meta( $venue_id, '_VenueProvince', true ) );
352
 
353
+ /**
354
+ * Allows customization of the venue's province.
355
+ *
356
+ * @since ??
357
+ * @since 4.5.11 Added docblock and venue ID to filter
358
+ *
359
+ * @param string $output The escaped venue province
360
+ * @param int $venue_id The venue ID.
361
+ */
362
+ return apply_filters( 'tribe_get_province', $output, $venue_id );
363
  }
364
 
365
  /**
 
 
366
  * Returns the state or province for US or non-US addresses (effectively the same thing as tribe_get_stateprovince())
367
  *
368
+ * @since ??
369
  *
370
+ * @param int $postId Can supply either event id or venue id, if none specified, current post is used
371
  * @return string
372
  * @todo Depricate tribe_get_region or tribe_get_stateprovince
373
  */
374
  function tribe_get_region( $postId = null ) {
375
+ $venue_id = tribe_get_venue_id( $postId );
376
+ if ( tribe_get_event_meta( $venue_id, '_VenueStateProvince', true ) ) {
377
+ $region = tribe_get_event_meta( $venue_id, '_VenueStateProvince', true );
378
  } else {
379
+ if ( tribe_get_country( $venue_id ) == esc_html__( 'United States', 'the-events-calendar' ) ) {
380
+ $region = tribe_get_state( $venue_id );
381
  } else {
382
  $region = tribe_get_province();
383
  }
384
  }
385
 
386
+ /**
387
+ * Allows customization of the venue's state or province for US, or non-US addresses.
388
+ *
389
+ * @since ??
390
+ * @since 4.5.11 Added docblock and venue ID to filter
391
+ *
392
+ * @param string $region The venue province
393
+ * @param int $venue_id The venue ID
394
+ */
395
+ return apply_filters( 'tribe_get_region', $region, $venue_id );
396
  }
397
 
398
  /**
 
 
399
  * Returns the event zip code
400
  *
401
+ * @since ??
402
  *
403
+ * @param int $postId Can supply either event id or venue id, if none specified, current post is used
404
  * @return string Zip code
405
  */
406
  function tribe_get_zip( $postId = null ) {
407
+ $venue_id = tribe_get_venue_id( $postId );
408
+ $output = esc_html( tribe_get_event_meta( $venue_id, '_VenueZip', true ) );
409
 
410
+ /**
411
+ * Allows customization of the venue's zip code.
412
+ *
413
+ * @since ??
414
+ * @since 4.5.11 Added docblock and venue ID to filter
415
+ *
416
+ * @param string $output The venue zip code
417
+ * @param int $venue_id The venue ID
418
+ */
419
+ return apply_filters( 'tribe_get_zip', $output, $venue_id );
420
  }
421
 
422
  /**
423
  * Gets the full region name of a given event's Venue address.
424
  *
425
+ * @since ??
426
  *
427
+ * @param int $event_id
428
  * @return string The full region for this event's address.
429
  */
430
  function tribe_get_full_region( $event_id ) {
431
  $province = tribe_get_event_meta( $event_id, '_VenueStateProvince', true );
432
+ $states = Tribe__View_Helpers::loadStates();
433
 
434
  $full_region = isset( $states[ $province ] ) ? $states[ $province ] : $province;
435
 
436
+ /**
437
+ * Allows customization of the venue address's full region name.
438
+ *
439
+ * @since ??
440
+ * @since 4.5.11 Added docblock and event ID to filter
441
+ *
442
+ * @param string $full_region The full region name of the given event's Venue address
443
+ * @param int $event_id The ID of the event whose venue is being accessed
444
+ */
445
+ return apply_filters( 'tribe_get_full_region', $full_region, $event_id );
446
  }
447
 
448
 
449
  /**
 
 
450
  * Returns the coordinates of the venue
451
  *
452
+ * @since ??
453
  *
454
+ * @param int $postId Can supply either event id or venue id, if none specified, current post is used
455
  * @return array An Array with the Latitute and Longitude of the venue
456
  */
457
  function tribe_get_coordinates( $postId = null ) {
458
+ $venue_id = tribe_get_venue_id( $postId );
459
+
460
  if ( class_exists( 'Tribe__Events__Pro__Geo_Loc' ) ) {
461
+ $output[ 'lat' ] = (float) get_post_meta( $venue_id, Tribe__Events__Pro__Geo_Loc::LAT, true );
462
+ $output[ 'lng' ] = (float) get_post_meta( $venue_id, Tribe__Events__Pro__Geo_Loc::LNG, true );
463
  } else {
464
  $output = array(
465
  'lat' => 0,
467
  );
468
  }
469
 
470
+ /**
471
+ * Allows customization of a venue's coordinates.
472
+ *
473
+ * @since ??
474
+ * @since 4.5.11 Added docblock and venue ID to filter
475
+ *
476
+ * @param array $output The latitute and longitude of the venue.
477
+ * @param int $venue_id The venue ID
478
+ */
479
+ return apply_filters( 'tribe_get_coordinates', $output, $venue_id );
480
  }
481
 
482
 
483
  /**
 
 
484
  * Conditional if the venue has it's coordinates overwritten
485
  *
486
+ * @since ??
487
  *
488
+ * @param int $postId Can supply either event id or venue id, if none specified, current post is used
489
  * @return bool Depending on the venue checkbox of overwrite coordinates
490
  */
491
  function tribe_is_venue_overwrite( $postId = null ) {
492
+ $venue_id = tribe_get_venue_id( $postId );
493
 
494
  if ( class_exists( 'Tribe__Events__Pro__Geo_Loc' ) ) {
495
+ $output = (int) get_post_meta( $venue_id, Tribe__Events__Pro__Geo_Loc::OVERWRITE, true );
496
  } else{
497
  $output = 0;
498
  }
499
 
500
+ /**
501
+ * Allows customization of a venue's coordinates.
502
+ *
503
+ * @since ??
504
+ * @since 4.5.11 Added docblock and venue ID to filter
505
+ *
506
+ * @param bool $output Whether the venue's coordinates are overwritten or not.
507
+ * @param int $venue_id The venue ID
508
+ */
509
+ return apply_filters( 'tribe_is_venue_overwrite', (bool) $output, $venue_id );
510
  }
511
 
512
 
513
  /**
 
 
514
  * Returns the venue phone number
515
  *
516
+ * @since ??
517
  *
518
+ * @param int $postId Can supply either event id or venue id, if none specified, current post is used
519
  * @return string Phone number
520
  */
521
  function tribe_get_phone( $postId = null ) {
522
+ $venue_id = tribe_get_venue_id( $postId );
523
+ $output = esc_html( tribe_get_event_meta( $venue_id, '_VenuePhone', true ) );
524
 
525
+ /**
526
+ * Allows customization of a venue's phone number.
527
+ *
528
+ * @since ??
529
+ * @since 4.5.11 Added docblock and venue ID to filter
530
+ *
531
+ * @param bool $output Whether the venue's coordinates are overwritten or not.
532
+ * @param int $venue_id The venue ID
533
+ */
534
+ return apply_filters( 'tribe_get_phone', $output, $venue_id );
535
  }
536
 
537
  /**
538
  * Get all the venues
539
  *
540
+ * @since ??
541
+ *
542
  * @param bool $only_with_upcoming Only return venues with upcoming events attached to them.
543
  * @param $posts_per_page
544
  * @param bool $suppress_filters
 
545
  * @return array An array of venue post objects.
546
  */
547
  function tribe_get_venues( $only_with_upcoming = false, $posts_per_page = -1, $suppress_filters = true ) {
548
  $venues = get_posts(
549
  array(
550
+ 'post_type' => Tribe__Events__Main::VENUE_POST_TYPE,
551
  'posts_per_page' => $posts_per_page,
552
  'suppress_filters' => $suppress_filters,
553
  )
559
  /**
560
  * Get the link for the venue website.
561
  *
562
+ * @since ??
563
+ *
564
  * @param null $post_id
565
  * @param null $label
 
566
  * @return string Formatted link to the venue website
567
  */
568
  function tribe_get_venue_website_link( $post_id = null, $label = null ) {
576
  $url = "http://$url";
577
  }
578
  }
579
+
580
+ /**
581
+ * Allows customization of a venue's website link target.
582
+ *
583
+ * @since ??
584
+ * @since 4.5.11 Added docblock and venue ID to filter.
585
+ *
586
+ * @param string $output The venue's website link target.
587
+ * @param int $post_id The venue ID.
588
+ */
589
+ $website_link_target = apply_filters( 'tribe_get_venue_website_link_target', '_self', $post_id );
590
+
591
+ /**
592
+ * Allows customization of a venue's website link label.
593
+ *
594
+ * @since ??
595
+ * @since 4.5.11 Added docblock and venue ID to filter.
596
+ *
597
+ * @param string $label The venue's website link label.
598
+ * @param int $post_id The venue ID.
599
+ */
600
+ $website_link_label = apply_filters( 'tribe_get_venue_website_link_label', esc_html( $label ), $post_id );
601
+
602
  $html = sprintf(
603
  '<a href="%s" target="%s">%s</a>',
604
  esc_attr( esc_url( $url ) ),
605
+ $website_link_target,
606
+ $website_link_label
607
  );
608
  } else {
609
  $html = '';
610
  }
611
 
612
+ /**
613
+ * Allows customization of a venue's website link.
614
+ *
615
+ * @since ??
616
+ * @since 4.5.11 Added docblock.
617
+ *
618
+ * @param string $html The assembled HTML link tag of venue's website link.
619
+ * @param int $post_id The venue ID.
620
+ */
621
+ return apply_filters( 'tribe_get_venue_website_link', $html, $post_id );
622
  }
623
 
624
  /**
625
  * Returns the venue website URL related to the current post or for the optionally
626
  * specified post.
627
  *
628
+ * @since ??
629
  *
630
+ * @param int|null $post_id
631
  * @return string
632
  */
633
  function tribe_get_venue_website_url( $post_id = null ) {
641
  /**
642
  * Gets venue details for use in some single-event templates.
643
  *
644
+ * @since ??
645
  *
646
+ * @param null $post_id
647
  * @return array The venue name and venue address.
648
  */
649
  function tribe_get_venue_details( $post_id = null ) {
663
  $venue_details['address'] = $venue_address;
664
  }
665
 
666
+ /**
667
+ * Allows customization of the retrieved venue details.
668
+ *
669
+ * @since ??
670
+ * @since 4.5.11 Added docblock and venue ID to filter.
671
+ *
672
+ * @param array $venue_details An array of the venue's details
673
+ * @param int $post_id The venue ID
674
+ */
675
+ return apply_filters( 'tribe_get_venue_details', $venue_details, $post_id );
676
  }
677
 
678
  /**
679
+ * Gets the venue name and address on a single line.
680
+ *
681
+ * @since ??
682
  *
683
  * @param int $event_id Event ID
684
  * @param boolean $link Whether or not to wrap the text in a venue link
 
685
  * @return string
686
  */
687
  function tribe_get_venue_single_line_address( $event_id, $link = true ) {
688
  $venue = null;
689
+
690
  if ( tribe_has_venue( $event_id ) ) {
691
+ $venue_id = tribe_get_venue_id( $event_id );
692
+ $venue_name = tribe_get_venue( $event_id );
693
+ $venue_url = tribe_get_venue_link( $event_id, false );
694
  $venue_address = array(
695
+ 'city' => tribe_get_city( $event_id ),
696
  'stateprovince' => tribe_get_stateprovince( $event_id ),
697
+ 'zip' => tribe_get_zip( $event_id ),
698
  );
699
 
700
  /**
701
+ * Filters the parts of a venue address.
702
+ *
703
+ * @since ??
704
+ * @since 4.5.11 Added docblock and event ID to filter.
705
  *
706
  * @var array Array of address parts
707
  * @var int Event ID
726
  }
727
 
728
  /**
729
+ * Filters the venue single-line address.
730
+ *
731
+ * @since ??
732
+ * @since 4.5.11 Added docblock and function args to filter.
733
  *
734
  * @var string Venue address line
735
  * @var int Event ID
src/resources/css/events-admin.css CHANGED
@@ -169,6 +169,7 @@
169
  /* Apply a grey highlight to 'today' */
170
 
171
  .ui-datepicker-calendar .ui-datepicker-today a {
 
172
  background: linear-gradient(354deg, #ccc 0%, #eee 100%);
173
  color: black;
174
  }
@@ -176,6 +177,7 @@
176
  /* If today is also the current selected day, prefer the default blue highlight */
177
 
178
  .ui-datepicker-calendar .ui-datepicker-today.ui-datepicker-current-day a {
 
179
  background: linear-gradient( 354deg, rgba(10, 85, 160, 1.00) 0%, rgba(18, 136, 235, 1.00) 100% );
180
  color: #fff;
181
  }
@@ -436,6 +438,7 @@ table.eventForm {
436
  padding: 8px 24px;
437
  padding: .5rem 1.5rem;
438
  text-decoration: none;
 
439
  transition: background-color 0.5s ease;
440
  }
441
 
169
  /* Apply a grey highlight to 'today' */
170
 
171
  .ui-datepicker-calendar .ui-datepicker-today a {
172
+ background: -webkit-linear-gradient(96deg, #ccc 0%, #eee 100%);
173
  background: linear-gradient(354deg, #ccc 0%, #eee 100%);
174
  color: black;
175
  }
177
  /* If today is also the current selected day, prefer the default blue highlight */
178
 
179
  .ui-datepicker-calendar .ui-datepicker-today.ui-datepicker-current-day a {
180
+ background: -webkit-linear-gradient( 96deg, rgba(10, 85, 160, 1.00) 0%, rgba(18, 136, 235, 1.00) 100% );
181
  background: linear-gradient( 354deg, rgba(10, 85, 160, 1.00) 0%, rgba(18, 136, 235, 1.00) 100% );
182
  color: #fff;
183
  }
438
  padding: 8px 24px;
439
  padding: .5rem 1.5rem;
440
  text-decoration: none;
441
+ -webkit-transition: background-color 0.5s ease;
442
  transition: background-color 0.5s ease;
443
  }
444
 
src/resources/css/events-admin.min.css CHANGED
@@ -1 +1 @@
1
- .events-cal #post-query-submit,.events-cal .tablenav select[name=m]{display:none}.fixed .column-end-date,.fixed .column-events-cats,.fixed .column-start-date{width:14%}#additional-field-table input,#additional-field-table select,#additional-field-table textarea{width:200px}#additional-field-table tbody tr{height:72px}.tribe-restore-link+a{display:none}.eventForm{margin-top:-20px}.eventForm td{font-size:12px;padding:0 6px 10px 0;vertical-align:middle}.eventForm td input.alignleft,.eventForm td select.alignleft{margin-right:4.8px;margin-right:.3rem}.eventForm #EventURL{width:70%}.eventForm #event-meta td{vertical-align:top}.eventForm #event-meta td:first-child{line-height:30px}.eventForm #event-meta td div{margin-bottom:10px}.eventForm #event-meta td div:last-child{margin-bottom:20px}.eventForm textarea{width:100%}.eventForm h4{font-size:1.2em;margin:1em 0}.eventForm h4.event-time{margin-top:0}.eventForm .tribe_sectionheader{padding-bottom:5px}.eventForm p{margin:0 0 10px}.eventForm input[type=color],.eventForm input[type=date],.eventForm input[type=datetime-local],.eventForm input[type=datetime],.eventForm input[type=email],.eventForm input[type=month],.eventForm input[type=number],.eventForm input[type=password],.eventForm input[type=search],.eventForm input[type=tel],.eventForm input[type=text],.eventForm input[type=time],.eventForm input[type=url],.eventForm input[type=week]{background-image:none;border:1px solid #ccc;border-radius:3px;line-height:20px;margin-left:0}.eventForm .event-dynamic-helper-text{color:#999;font-style:italic;padding:0}.eventForm .tribe-datetime-block .tribe-allday{margin:10px 0 0}.eventForm .tribe-datetime-block .tribe-field-end_date,.eventForm .tribe-datetime-block .tribe-field-end_time,.eventForm .tribe-datetime-block .tribe-field-start_date,.eventForm .tribe-datetime-block .tribe-field-start_time{height:28px}.eventForm .tribe-datetime-block .tribe-field-end_date,.eventForm .tribe-datetime-block .tribe-field-start_date{width:100px}.eventForm .tribe-datetime-block .tribe-field-end_time,.eventForm .tribe-datetime-block .tribe-field-start_time{width:80px}.eventForm .tribe-datetime-block .tribe-field-timezone{width:100px;margin-top:-2px;display:none}.eventForm .tribe-datetime-block .tribe-field-timezone.select2-container{display:inline-block;margin-top:-4px}.eventForm .tribe-datetime-block .tribe-change-timezone{white-space:nowrap}.eventForm .tribe-datetime-label{vertical-align:top;padding-top:5px}.ui-datepicker-calendar .ui-datepicker-today a{background:linear-gradient(354deg,#ccc,#eee);color:#000}.ui-datepicker-calendar .ui-datepicker-today.ui-datepicker-current-day a{background:linear-gradient(354deg,#0a55a0,#1288eb);color:#fff}.ui-datepicker select.ui-datepicker-month{width:128px;width:8rem}.tribe-community-event-info{width:100%;margin:10px}#EventInfo,.eventtable{width:100%;margin:0;padding-top:0}#event_tickets,.eventtable.ticket_list.eventForm{table-layout:fixed}#ticket_end_date,#ticket_start_date{width:100px}.form-table form input{border:none}#submitLabel{display:block}#submitLabel input{display:block;padding:0}#EventBriteDetailDiv h4,.eventForm .tribe_sectionheader h4,.tribe-community-event-info h4{padding-bottom:6px;text-transform:uppercase;border-bottom:1px solid #e5e5e5}.tribe-events-error{display:none}.tribe-events-multi-event-day{color:#0f81bb}.ui-front{z-index:1000000}.events-cal .ui-widget-overlay.ui-front{z-index:90}.edit-linked-post-link{display:inline-block;margin-left:10px}.linked-post-wrapper tbody+tbody tr.saved_linked-post td,.linked-post-wrapper tbody+tfoot tr td{margin-top:1em;padding-top:1em}.linked-post-wrapper .linked-post td:first-child{padding-left:30px}.move-linked-post-group{padding-right:.5em;cursor:move}.tribe-delete-this{float:right;color:#444}.tribe-delete-this.hover-state,.tribe-delete-this:hover{color:#a00}.tribe-delete-this.tribe-confirm-delete-this,.tribe_community_edit .edit-linked-post-link a{display:none}.tribe-linked-post-error.error{display:inline;margin-left:5px;padding:5px 10px}#EventBriteDetailDiv small,.tribe-community-event-info small{font-size:10px;color:#a3a3a3}#eventBriteTicketing,#mainDonateRow{margin:-11px 6px 0;padding:10px 15px;border:1px solid #e2e2e2;border-radius:3px;-webkit-border-top-left-radius:0;-moz-border-radius-topleft:0;-webkit-border-top-right-radius:0;-moz-border-radius-topright:0;-khtml-border-radius:3px;background:url(../images/bg_fade.png) repeat-x 0 0;background-color:#fff}#eventBriteTicketing h2{height:80px;margin:0;background:url(../images/eb_press_little.gif) no-repeat 100% 0}.tribe-community-event-info,table.eventForm{width:100%}#custom-recurrence-weeks label{display:block;float:left;width:45px;margin-bottom:3px}#custom-recurrence-frequency input{width:30px}#custom-recurrence-years label{display:block;float:left;width:50px;margin-bottom:3px}#recurrence-changed-row{display:none;color:red}#rec-days-error,#rec-end-error{color:red}.rec-error{display:none}#recurrence-pattern-description{font-style:italic}.recurrence-pattern-description-row{display:none}.chosen,.chzn-container,.tribe-chosen{margin-right:10px!important}#defaultCountry,#eventsDefaultState,#StateProvinceSelect,.events-dropdown{min-width:220px}.multi-day-cutoff-dropdown{width:100px!important}.inactive-sidebar .widget,.widget-liquid-right .sidebar-description,.widget-liquid-right .widget{overflow:visible!important}.tribe-aggregator-import-details{overflow:hidden}.tribe-aggregator-import-details dt{clear:left;float:left;margin-right:4px;margin-right:.25rem}.tribe-aggregator-import-details dd{margin-left:0}.tribe-aggregator-import-details .tribe-value{font-weight:700}.tribe-ea-facebook-disconnect{color:#a00;display:inline-block;margin-left:16px;margin-left:1rem}.tribe-ea-facebook-disconnect:active,.tribe-ea-facebook-disconnect:hover{color:red}.tribe-ea-facebook-button{background:#3d599b;border-radius:3px;color:#fff;display:inline-block;padding:8px 24px;padding:.5rem 1.5rem;text-decoration:none;transition:background-color .5s ease}.tribe-ea-facebook-button:active,.tribe-ea-facebook-button:hover{background:#32497e;color:#fff;cursor:pointer}.event-aggregator-status{background-color:#fff;width:100%;border:2px solid #e4e5e6;border-spacing:0;margin-bottom:16px}.event-aggregator-status tbody tr:nth-child(2n) td{background-color:#f9f9f9}.event-aggregator-status th{text-align:left;border-bottom:1px solid #e4e5e6}.event-aggregator-status td,.event-aggregator-status th{padding:8px 12px;background-color:#fff}.event-aggregator-status td.label{width:220px}.event-aggregator-status td.label img{width:18px;height:18px;margin-right:6px;float:left}.event-aggregator-status td.indicator{width:20px}.event-aggregator-status td.indicator.good{color:#38b042}.event-aggregator-status td.indicator.bad{color:#ed5047}.event-aggregator-status td.indicator.warning{color:#f3ae46}@media (max-width:782px){.eventForm .tribe-datetime-block .tribe-field-end_date,.eventForm .tribe-datetime-block .tribe-field-start_date{width:63%;display:inline-block}.eventForm .tribe-datetime-block .tribe-field-end_time,.eventForm .tribe-datetime-block .tribe-field-start_time{width:35%;display:inline-block}.eventForm .tribe-datetime-block .tribe-datetime-separator{width:100%;display:block;text-align:center;padding:5px 0}.eventForm .tribe-datetime-block .tribe-field-timezone.select2-container{display:table;margin:10px auto 0}.eventForm .tribe-datetime-block .tribe-change-timezone{width:100%;display:block;text-align:center;padding:5px 0}}
1
+ .events-cal #post-query-submit,.events-cal .tablenav select[name=m]{display:none}.fixed .column-end-date,.fixed .column-events-cats,.fixed .column-start-date{width:14%}#additional-field-table input,#additional-field-table select,#additional-field-table textarea{width:200px}#additional-field-table tbody tr{height:72px}.tribe-restore-link+a{display:none}.eventForm{margin-top:-20px}.eventForm td{font-size:12px;padding:0 6px 10px 0;vertical-align:middle}.eventForm td input.alignleft,.eventForm td select.alignleft{margin-right:4.8px;margin-right:.3rem}.eventForm #EventURL{width:70%}.eventForm #event-meta td{vertical-align:top}.eventForm #event-meta td:first-child{line-height:30px}.eventForm #event-meta td div{margin-bottom:10px}.eventForm #event-meta td div:last-child{margin-bottom:20px}.eventForm textarea{width:100%}.eventForm h4{font-size:1.2em;margin:1em 0}.eventForm h4.event-time{margin-top:0}.eventForm .tribe_sectionheader{padding-bottom:5px}.eventForm p{margin:0 0 10px}.eventForm input[type=color],.eventForm input[type=date],.eventForm input[type=datetime-local],.eventForm input[type=datetime],.eventForm input[type=email],.eventForm input[type=month],.eventForm input[type=number],.eventForm input[type=password],.eventForm input[type=search],.eventForm input[type=tel],.eventForm input[type=text],.eventForm input[type=time],.eventForm input[type=url],.eventForm input[type=week]{background-image:none;border:1px solid #ccc;border-radius:3px;line-height:20px;margin-left:0}.eventForm .event-dynamic-helper-text{color:#999;font-style:italic;padding:0}.eventForm .tribe-datetime-block .tribe-allday{margin:10px 0 0}.eventForm .tribe-datetime-block .tribe-field-end_date,.eventForm .tribe-datetime-block .tribe-field-end_time,.eventForm .tribe-datetime-block .tribe-field-start_date,.eventForm .tribe-datetime-block .tribe-field-start_time{height:28px}.eventForm .tribe-datetime-block .tribe-field-end_date,.eventForm .tribe-datetime-block .tribe-field-start_date{width:100px}.eventForm .tribe-datetime-block .tribe-field-end_time,.eventForm .tribe-datetime-block .tribe-field-start_time{width:80px}.eventForm .tribe-datetime-block .tribe-field-timezone{width:100px;margin-top:-2px;display:none}.eventForm .tribe-datetime-block .tribe-field-timezone.select2-container{display:inline-block;margin-top:-4px}.eventForm .tribe-datetime-block .tribe-change-timezone{white-space:nowrap}.eventForm .tribe-datetime-label{vertical-align:top;padding-top:5px}.ui-datepicker-calendar .ui-datepicker-today a{background:-webkit-linear-gradient(96deg,#ccc,#eee);background:linear-gradient(354deg,#ccc,#eee);color:#000}.ui-datepicker-calendar .ui-datepicker-today.ui-datepicker-current-day a{background:-webkit-linear-gradient(96deg,#0a55a0,#1288eb);background:linear-gradient(354deg,#0a55a0,#1288eb);color:#fff}.ui-datepicker select.ui-datepicker-month{width:128px;width:8rem}.tribe-community-event-info{width:100%;margin:10px}#EventInfo,.eventtable{width:100%;margin:0;padding-top:0}#event_tickets,.eventtable.ticket_list.eventForm{table-layout:fixed}#ticket_end_date,#ticket_start_date{width:100px}.form-table form input{border:none}#submitLabel{display:block}#submitLabel input{display:block;padding:0}#EventBriteDetailDiv h4,.eventForm .tribe_sectionheader h4,.tribe-community-event-info h4{padding-bottom:6px;text-transform:uppercase;border-bottom:1px solid #e5e5e5}.tribe-events-error{display:none}.tribe-events-multi-event-day{color:#0f81bb}.ui-front{z-index:1000000}.events-cal .ui-widget-overlay.ui-front{z-index:90}.edit-linked-post-link{display:inline-block;margin-left:10px}.linked-post-wrapper tbody+tbody tr.saved_linked-post td,.linked-post-wrapper tbody+tfoot tr td{margin-top:1em;padding-top:1em}.linked-post-wrapper .linked-post td:first-child{padding-left:30px}.move-linked-post-group{padding-right:.5em;cursor:move}.tribe-delete-this{float:right;color:#444}.tribe-delete-this.hover-state,.tribe-delete-this:hover{color:#a00}.tribe-delete-this.tribe-confirm-delete-this,.tribe_community_edit .edit-linked-post-link a{display:none}.tribe-linked-post-error.error{display:inline;margin-left:5px;padding:5px 10px}#EventBriteDetailDiv small,.tribe-community-event-info small{font-size:10px;color:#a3a3a3}#eventBriteTicketing,#mainDonateRow{margin:-11px 6px 0;padding:10px 15px;border:1px solid #e2e2e2;border-radius:3px;-webkit-border-top-left-radius:0;-moz-border-radius-topleft:0;-webkit-border-top-right-radius:0;-moz-border-radius-topright:0;-khtml-border-radius:3px;background:url(../images/bg_fade.png) repeat-x 0 0;background-color:#fff}#eventBriteTicketing h2{height:80px;margin:0;background:url(../images/eb_press_little.gif) no-repeat 100% 0}.tribe-community-event-info,table.eventForm{width:100%}#custom-recurrence-weeks label{display:block;float:left;width:45px;margin-bottom:3px}#custom-recurrence-frequency input{width:30px}#custom-recurrence-years label{display:block;float:left;width:50px;margin-bottom:3px}#recurrence-changed-row{display:none;color:red}#rec-days-error,#rec-end-error{color:red}.rec-error{display:none}#recurrence-pattern-description{font-style:italic}.recurrence-pattern-description-row{display:none}.chosen,.chzn-container,.tribe-chosen{margin-right:10px!important}#defaultCountry,#eventsDefaultState,#StateProvinceSelect,.events-dropdown{min-width:220px}.multi-day-cutoff-dropdown{width:100px!important}.inactive-sidebar .widget,.widget-liquid-right .sidebar-description,.widget-liquid-right .widget{overflow:visible!important}.tribe-aggregator-import-details{overflow:hidden}.tribe-aggregator-import-details dt{clear:left;float:left;margin-right:4px;margin-right:.25rem}.tribe-aggregator-import-details dd{margin-left:0}.tribe-aggregator-import-details .tribe-value{font-weight:700}.tribe-ea-facebook-disconnect{color:#a00;display:inline-block;margin-left:16px;margin-left:1rem}.tribe-ea-facebook-disconnect:active,.tribe-ea-facebook-disconnect:hover{color:red}.tribe-ea-facebook-button{background:#3d599b;border-radius:3px;color:#fff;display:inline-block;padding:8px 24px;padding:.5rem 1.5rem;text-decoration:none;-webkit-transition:background-color .5s ease;transition:background-color .5s ease}.tribe-ea-facebook-button:active,.tribe-ea-facebook-button:hover{background:#32497e;color:#fff;cursor:pointer}.event-aggregator-status{background-color:#fff;width:100%;border:2px solid #e4e5e6;border-spacing:0;margin-bottom:16px}.event-aggregator-status tbody tr:nth-child(2n) td{background-color:#f9f9f9}.event-aggregator-status th{text-align:left;border-bottom:1px solid #e4e5e6}.event-aggregator-status td,.event-aggregator-status th{padding:8px 12px;background-color:#fff}.event-aggregator-status td.label{width:220px}.event-aggregator-status td.label img{width:18px;height:18px;margin-right:6px;float:left}.event-aggregator-status td.indicator{width:20px}.event-aggregator-status td.indicator.good{color:#38b042}.event-aggregator-status td.indicator.bad{color:#ed5047}.event-aggregator-status td.indicator.warning{color:#f3ae46}@media (max-width:782px){.eventForm .tribe-datetime-block .tribe-field-end_date,.eventForm .tribe-datetime-block .tribe-field-start_date{width:63%;display:inline-block}.eventForm .tribe-datetime-block .tribe-field-end_time,.eventForm .tribe-datetime-block .tribe-field-start_time{width:35%;display:inline-block}.eventForm .tribe-datetime-block .tribe-datetime-separator{width:100%;display:block;text-align:center;padding:5px 0}.eventForm .tribe-datetime-block .tribe-field-timezone.select2-container{display:table;margin:10px auto 0}.eventForm .tribe-datetime-block .tribe-change-timezone{width:100%;display:block;text-align:center;padding:5px 0}}
src/resources/css/tribe-events-full.css CHANGED
@@ -1387,6 +1387,32 @@ select.tribe-events-dropdown {
1387
  max-width: 150px;
1388
  }
1389
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1390
  /* Recurring info tooltip */
1391
 
1392
  .recurringinfo {
1387
  max-width: 150px;
1388
  }
1389
 
1390
+ /** For when a tooltip is near top edge of viewport, so displays below event title instead of above it. */
1391
+
1392
+ .tribe-events-tooltip.tribe-events-tooltip-flipdown:before {
1393
+ border: 10px solid transparent;
1394
+ border-bottom-color: #666;
1395
+ content: ' ';
1396
+ display: block;
1397
+ height: 0;
1398
+ left: 17px;
1399
+ position: absolute;
1400
+ top: -21px;
1401
+ width: 0;
1402
+ z-index: 2;
1403
+ }
1404
+
1405
+ .tribe-events-tooltip.tribe-events-tooltip-flipdown .tribe-events-arrow {
1406
+ display: none;
1407
+ }
1408
+
1409
+ /** Tweak location of the arrow on "flipdown" tooltips for events on the right side of the screen. */
1410
+
1411
+ .tribe-events-right .tribe-events-tooltip.tribe-events-tooltip-flipdown:before {
1412
+ left: auto;
1413
+ right: 43px;
1414
+ }
1415
+
1416
  /* Recurring info tooltip */
1417
 
1418
  .recurringinfo {
src/resources/css/tribe-events-full.min.css CHANGED
@@ -1 +1 @@
1
- .tribe-events-event-cost{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;float:none;margin:0 0 15px}.tribe-events-event-cost span{border:1px solid #ddd;display:block;font-style:normal;font-weight:700;line-height:1;padding:8px 12px;text-align:center;text-overflow:ellipsis}.tribe-events-event-cost .tribe-out-of-stock,.tribe-events-event-cost .tribe-tickets-left{background:#f0f0f0;border-left:none;color:#727272;font-style:italic;font-weight:400}.tribe-events-event-cost .tribe-ticket-cost{margin:0}.tribe-button,a.tribe-button,button.tribe-button,input.tribe-button{border-radius:3px;line-height:1;margin:10px;padding:9px 12px}.tribe-button.sold-out,a.tribe-button.sold-out,button.tribe-button.sold-out,input.tribe-button.sold-out{background:none;border:none;color:#a00}.tribe-button.sold-out:hover,a.tribe-button.sold-out:hover,button.tribe-button.sold-out:hover,input.tribe-button.sold-out:hover{cursor:default}#tribe-events-pg-template,.tribe-events-pg-template{margin:0 auto;max-width:1200px}.tribe-events-after-html{clear:both}#tribe-events .tribe-events-content p,.tribe-events-after-html p,.tribe-events-before-html p{line-height:1.7;margin:0 0 10px}#tribe-events-pg-template .tribe-events-content h1,#tribe-events-pg-template .tribe-events-content h2,#tribe-events-pg-template .tribe-events-content h3,#tribe-events-pg-template .tribe-events-content h4,#tribe-events-pg-template .tribe-events-content h5,#tribe-events-pg-template .tribe-events-content h6,.tribe-events-after-html h1,.tribe-events-after-html h2,.tribe-events-after-html h3,.tribe-events-after-html h4,.tribe-events-after-html h5,.tribe-events-after-html h6,.tribe-events-before-html h1,.tribe-events-before-html h2,.tribe-events-before-html h3,.tribe-events-before-html h4,.tribe-events-before-html h5,.tribe-events-before-html h6{line-height:1.7;margin:24px 0}#tribe-events-pg-template .tribe-events-content h1,.tribe-events-after-html h1,.tribe-events-before-html h1{font-size:21px;line-height:1.5}#tribe-events-pg-template .tribe-events-content h2,.tribe-events-after-html h2,.tribe-events-before-html h2{font-size:18px;line-height:1.6}#tribe-events-pg-template .tribe-events-content h3,.tribe-events-after-html h3,.tribe-events-before-html h3{font-size:16px;line-height:1.8}#tribe-events-pg-template .tribe-events-content h4,.tribe-events-after-html h4,.tribe-events-before-html h4{font-size:14px;line-height:1.8}#tribe-events-pg-template .tribe-events-content h5,.tribe-events-after-html h5,.tribe-events-before-html h5{font-size:13px;line-height:1.8}#tribe-events-pg-template .tribe-events-content h6,.tribe-events-after-html h6,.tribe-events-before-html h6{font-size:12px;line-height:1.8}#tribe-events-pg-template .tribe-events-content ul,.tribe-events-after-html ul,.tribe-events-before-html ul{list-style:disc outside}#tribe-events-pg-template .tribe-events-content ol,.tribe-events-after-html ol,.tribe-events-before-html ol{list-style:decimal outside}#tribe-events-pg-template .tribe-events-content ol li,#tribe-events-pg-template .tribe-events-content ul li,.tribe-events-after-html ol li,.tribe-events-after-html ul li,.tribe-events-before-html ol li,.tribe-events-before-html ul li{line-height:1.7;margin:0 0 20px}.tribe-events-back{margin:0 0 20px}.events-list .tribe-events-back.tribe-events-loop{margin:0 auto 20px}#tribe-events-content a,.tribe-events-adv-list-widget .tribe-events-widget-link a,.tribe-events-adv-list-widget .tribe-events-widget-link a:hover,.tribe-events-back a,.tribe-events-back a:hover,.tribe-events-event-meta a,.tribe-events-list-widget .tribe-events-widget-link a,.tribe-events-list-widget .tribe-events-widget-link a:hover,ul.tribe-events-sub-nav a,ul.tribe-events-sub-nav a:hover{text-decoration:none}#tribe-events .tribe-events-button,.tribe-events-button{*display:inline;background-color:#666;background-image:none;border-radius:3px;border:0;box-shadow:none;color:#fff;cursor:pointer;display:inline-block;font-size:11px;font-weight:700;letter-spacing:1px;line-height:normal;padding:6px 9px;text-align:center;text-decoration:none;text-transform:uppercase;vertical-align:middle;zoom:1}.tribe-events-button.tribe-active{background-color:#666;color:#fff}#tribe-events .tribe-events-button:hover,.tribe-events-button.tribe-active:hover,.tribe-events-button.tribe-inactive,.tribe-events-button:hover{background-color:#ddd;color:#444;text-decoration:none}a.tribe-events-gcal,a.tribe-events-ical{clear:both;color:#fff;float:right;font-size:10px;font-weight:400;line-height:18px;margin-top:21px;padding:0 6px;text-decoration:none}.tribe-events-gcal{margin-right:9px}.single-tribe_events a.tribe-events-gcal,.single-tribe_events a.tribe-events-ical{float:none}.tribe-events-event-meta-desc .tribe-events-gmap,.tribe-events-event-meta .tribe-events-gmap{white-space:nowrap}.event .entry-title{color:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;padding:inherit}.updated-info{height:0;text-indent:-9999px}.tribe-events-event-image{margin:0 0 20px;text-align:center}.tribe-events-event-image img{height:auto;max-width:100%}.tribe-events-schedule h2{font-style:normal;font-weight:700}.tribe-events-event-schedule-details{display:inline}.events-archive .entry-content,.events-archive .entry-header{width:98%}.events-archive footer.entry-header,.events-archive footer.entry-meta,.events-archive header.entry-header,.events-archive header.entry-meta,.events-archive span.edit-link,.single-tribe_events footer.entry-header,.single-tribe_events footer.entry-meta,.single-tribe_events header.entry-header,.single-tribe_events header.entry-meta,.single-tribe_organizer footer.entry-header,.single-tribe_organizer footer.entry-meta,.single-tribe_organizer header.entry-header,.single-tribe_organizer header.entry-meta,.single-tribe_venue footer.entry-header,.single-tribe_venue footer.entry-meta,.single-tribe_venue header.entry-header,.single-tribe_venue header.entry-meta{display:none}.tribe-events-notices{background:#d9edf7;border-radius:4px;border:1px solid #bce8f1;color:#3a87ad;margin:10px 0 18px;padding:8px 35px 8px 14px;text-shadow:0 1px 0 #fff}div.tribe-events-notices>ul,div.tribe-events-notices>ul>li{list-style:none;margin:0;padding:0}#tribe-events-content p.tribe-events-promo{color:#999;font-size:12px}#tribe-events-content p.tribe-events-promo a{color:#666}.clearfix,.tribe-clearfix{zoom:1}.clearfix:after,.clearfix:before,.tribe-clearfix:after,.tribe-clearfix:before{content:"";display:table}.clearfix:after,.tribe-clear,.tribe-clearfix:after{clear:both}.tribe-events-visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tribe-hide-text{overflow:hidden;text-indent:100%;white-space:nowrap}.tribe-events-error{display:none}.tribe-events-multi-event-day{color:#0f81bb}#tribe-events-content .tribe-events-abbr{border-bottom:0;cursor:default}.tribe-events-spinner{height:32px;margin-left:-16px;width:32px}.tribe-events-spinner-medium{height:24px;width:24px}.tribe-events-spinner-small{height:16px;margin-left:-8px;width:16px}*+html .events-archive h2.tribe-events-page-title{padding-bottom:30px}*+html .events-archive .tribe-events-list h2.tribe-events-page-title{padding-bottom:0}*+html #tribe-events-header{margin-bottom:30px}h2.tribe-events-page-title{clear:none;font-size:24px;font-weight:400;margin-bottom:.5em;position:relative;text-align:center;z-index:0}.tribe-events-filter-view .tribe-events-list h2.tribe-events-page-title{float:none;width:100%}h2.tribe-events-page-title a{color:#000}h2.tribe-events-page-title a:focus,h2.tribe-events-page-title a:hover{color:#333;text-decoration:underline}#tribe-events-footer,#tribe-events-header{clear:both;margin-bottom:.5em}#tribe-events-footer .tribe-events-sub-nav,#tribe-events-header .tribe-events-sub-nav{line-height:normal;list-style-type:none;margin:0;overflow:hidden;padding:0;text-align:center}#tribe-events-footer .tribe-events-sub-nav li,#tribe-events-header .tribe-events-sub-nav li{display:inline;display:inline-block;margin:0;vertical-align:middle;zoom:1}#tribe-events-footer .tribe-events-sub-nav .tribe-events-nav-previous,#tribe-events-footer .tribe-events-sub-nav li,#tribe-events-header .tribe-events-sub-nav .tribe-events-nav-previous,#tribe-events-header .tribe-events-sub-nav li{float:left;margin-right:5px;text-align:left}#tribe-events-footer .tribe-events-sub-nav .tribe-events-nav-next,#tribe-events-header .tribe-events-sub-nav .tribe-events-nav-next{float:right;margin-left:5px;text-align:right}#tribe-events-footer .tribe-events-sub-nav .tribe-events-nav-left,#tribe-events-header .tribe-events-sub-nav .tribe-events-nav-left{float:left;text-align:left}#tribe-events-footer .tribe-events-sub-nav .tribe-events-nav-right,#tribe-events-header .tribe-events-sub-nav .tribe-events-nav-right{float:right;text-align:right}.tribe-events-ajax-loading{background:#666;border-radius:5px;box-shadow:none;display:none;left:50%;margin-left:-27px;padding:15px;position:absolute;top:150px;z-index:10}.tribe-events-ajax-loading.tribe-events-active-spinner,.tribe-events-ajax-loading.tribe-events-active-spinner img,.tribe-events-loading .tribe-events-ajax-loading{display:block}#tribe-events-header{position:relative}#tribe-events-footer{margin-bottom:1em}.events-list #tribe-events-footer,.tribe-events-day #tribe-events-footer,.tribe-events-map #tribe-events-footer{clear:both;margin:1.25em 0 18px}.tribe-events-map #tribe-events-header{margin:1em 0}.single-tribe_events #tribe-events-header{margin:1em 0 20px}.single-tribe_events #tribe-events-footer li,.single-tribe_events #tribe-events-header li{width:48%}#tribe-events-content .tribe-events-nav-date{padding-top:16px}select.tribe-events-dropdown{font-size:11px;margin:33px 9px 0 0;width:auto}#tribe-events-events-picker,#tribe-events-picker{display:inline}#tribe-events-content{margin-bottom:48px;padding:2px 0;position:relative}#tribe-events-content.tribe-events-list{padding:0}.tribe-events-othermonth .tribe-events-month-event-title,.tribe-events-othermonth div[id*=tribe-events-daynum-]{-khtml-opacity:.4;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";filter:alpha(opacity=40);opacity:.4}#tribe-events-content.tribe-events-list{margin-bottom:60px}.tribe-events-list .tribe-events-loop .tribe-event-featured{background:#0ea0d7;margin-bottom:32px;margin-bottom:2rem;padding:0 24px 16px;padding:0 1.5rem 1rem}.tribe-events-list .tribe-events-loop .tribe-event-featured.tribe-events-first{padding-top:0}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-event-image{display:block;float:none;margin:0 -24px;margin:0 -1.5rem;width:auto}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-list-event-title{display:inline-block;margin-top:24px;margin-top:1.5rem}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-list-event-title a{color:#fff}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-event-meta{background-color:transparent;color:hsla(0,0%,100%,.7);font-weight:400}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-content{color:hsla(0,0%,100%,.9)}.tribe-events-list .tribe-events-loop .tribe-event-featured a{color:hsla(0,0%,100%,.7)}.tribe-events-list .tribe-events-loop .tribe-event-featured a:active,.tribe-events-list .tribe-events-loop .tribe-event-featured a:hover{color:hsla(0,0%,100%,.9)}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-event-cost{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;float:none;margin:30px 0}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-event-cost span{border:0;color:#fff;background:hsla(0,0%,100%,.1);display:block;font-style:normal;font-weight:700;line-height:1;padding:10px;text-align:center;text-overflow:ellipsis}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-event-cost .ticket-cost{background:hsla(0,0%,100%,.2)}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-event-cost .tribe-tickets-left{font-style:italic;font-weight:400;margin-left:1px}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-event-cost .tribe-out-of-stock{background:#f0f0f0;border-left:none;color:#727272;font-style:italic;font-weight:400}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-event-cost .tribe-ticket-cost{margin:0}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-event-cost .tribe-button{color:#000;font-weight:700}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-event-cost .tribe-button:hover{color:#0ea0d7}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-event-cost .tribe-button:active{color:#000}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-button{background:#fff;color:#0ea0d7}.tribe-events-list .tribe-events-loop .tribe-events-event-image{float:left;margin:0 3% 0 0;width:30%}.tribe-events-list .tribe-events-loop .tribe-events-content{width:100%}.tribe-events-list h2.tribe-events-page-title{margin-bottom:15px}.tribe-events-list .tribe-events-list-event-title{border:none;display:inline-block;font-size:1.4em;letter-spacing:0;line-height:1.4em;margin:0;padding:0;text-transform:none}.tribe-events-list .type-tribe_events{border-bottom:1px solid #ddd;margin:0;padding:2.25em 0}.tribe-events-list .type-tribe_events.tribe-events-first{padding-top:0}.tribe-events-list .type-tribe_events.tribe-event-end-month{border-bottom:0;padding-bottom:0}.tribe-events-list .tribe-events-event-image{display:inline-block;float:left;margin:0 3% 0 0}.tribe-events-list .tribe-events-event-image img{height:auto;margin:0;padding:0;width:100%}.tribe-events-list .tribe-events-event-image+div.tribe-events-content{display:block;float:none;position:relative}.tribe-events-list .tribe-events-loop .tribe-events-event-meta .recurringinfo{display:inline;display:inline-block;zoom:1}.tribe-events-list .tribe-events-loop .tribe-events-event-meta .event-is-recurring{position:relative}.tribe-events-list .tribe-events-loop .tribe-events-event-meta .tribe-events-content{padding:0;width:100%}.tribe-events-list .time-details,.tribe-events-list .tribe-events-venue-details{display:block;line-height:1.2;margin:0}.tribe-events-list .time-details{margin:0 0 8px}.tribe-events-list .tribe-events-venue-details{margin:15px 0}.tribe-events-event-details .tribe-events-event-meta address.tribe-events-address{font-family:inherit;font-size:inherit;font-style:normal;line-height:inherit}.tribe-events-list-separator-year{color:#ccc;display:block;font-size:38px;font-weight:700;padding:1em 2.25em 0;text-align:center}.tribe-events-list-separator-month{background-color:#eee;display:block;font-size:14px;font-weight:700;margin:2.5em 0 0;padding:6px 10px;text-transform:uppercase}.tribe-events-list-separator-month+.type-tribe_events.tribe-events-first{padding-top:2.25em}.tribe-events-loop{clear:both}.tribe-events-loop .type-tribe_events.tribe-events-last{border-bottom:0}.tribe-events-loop .tribe-events-content{float:left;padding:0 5% 0 0;width:60%}.tribe-events-loop .tribe-events-event-meta{border:0;clear:both;float:none;font-size:14px;font-weight:700;line-height:1.5;margin:5px 0 15px;overflow:visible}.tribe-events-event-meta address.tribe-events-address{display:inline;font-family:inherit;font-size:inherit;font-style:normal;line-height:inherit;margin-right:10px}.single-tribe_venue .tribe-events-loop .tribe-events-content p{margin:0}.events-archive h3 .published,.single-tribe_venue h3 .published{font-size:18px;font-style:italic;margin-top:0;text-transform:none}.tribe-events-event-day,.tribe-events-event-meta-desc{color:#333}.single-tribe_events .tribe-events-single-event-title{font-size:1.7em;line-height:1;margin:0;padding:0}#tribe-events-content .tribe-events-single-event-description .attachment-post-thumbnail{display:block;margin-left:auto;margin-right:auto;text-align:center}.tribe-events-meta-group .tribe-events-single-section-title{font-size:1.4em;font-weight:700;margin:20px 0 10px}.tribe-events-meta-group+.tribe-events-single-section-title{margin-top:0}.tribe-events-event-meta .tribe-events-meta-group address.tribe-events-address{display:block;margin:0}#eventbrite-embed{margin:24px 0;min-height:225px;width:100%}.eventbrite-ticket-embed{margin:0 0 30px}.tribe-events-schedule{margin:20px 0 0}.single-tribe_events .tribe-events-schedule .recurringinfo,.single-tribe_events .tribe-events-schedule .tribe-events-cost,.single-tribe_events .tribe-events-schedule .tribe-events-divider{font-size:1.2em}.single-tribe_events .tribe-events-schedule h3{display:inline;display:inline-block;font-size:1.2em;margin:0;padding:0;vertical-align:middle;white-space:nowrap;zoom:1}.single-tribe_events .tribe-events-schedule .tribe-events-cost{vertical-align:middle}.single-tribe_events .tribe-events-event-image{clear:both;margin-bottom:30px;text-align:center}.single-tribe_events .tribe-events-event-meta{background:#fafafa;border:1px solid #eee;margin:30px 0}.single-tribe_events .tribe-events-venue-map{background:#eee;border:1px solid #ddd;border-radius:3px;display:inline-block;float:right;margin:20px 4% 2% 0;padding:5px;vertical-align:top;width:90%;zoom:1}.single-tribe_events .tribe-events-meta-group+.tribe-events-meta-group+.tribe-events-meta-group-gmap{clear:both;display:block;float:none;width:auto}.single-tribe_events .tribe-events-meta-group+.tribe-events-meta-group+.tribe-events-meta-group-gmap .tribe-events-venue-map{float:none;width:100%}.single-tribe_events .secondary .tribe-events-venue-map{width:58%}.single-tribe_events .tribe-events-event-meta{font-size:13px}.single-tribe_events .tribe-events-event-meta dl{margin:0}.single-tribe_events #tribe-events-content .tribe-events-event-meta dt{clear:left;font-weight:700;line-height:1;list-style:none}.single-tribe_events #tribe-events-content .tribe-events-event-meta dd{float:none;line-height:1.5;list-style:none;margin:0 0 10px;padding:0}.tribe-events-event-meta .column,.tribe-events-event-meta .tribe-events-meta-group{box-sizing:border-box;display:inline-block;float:left;margin:0 0 20px;padding:0 4%;text-align:left;vertical-align:top;width:33.3333%;zoom:1}#tribe-events-content .tribe-events-event-meta dd span.adr{display:block}.single-tribe_events .tribe-events-content{max-width:100%;padding:0;width:100%}.sidebar.single-tribe_events .tribe-events-content{padding:0}.tribe-events-day .tribe-events-day-time-slot h5{background-color:#eee;font-size:14px;font-weight:700;margin:2.5em 0 0;padding:6px 10px;text-transform:uppercase}.tribe-events-day .tribe-events-day-time-slot .type-tribe_events{margin-left:5%}.tribe-events-day .tribe-event-featured{background:#0ea0d7;margin-bottom:32px;margin-bottom:2rem;padding:0 24px 16px;padding:0 1.5rem 1rem}.tribe-events-day .tribe-event-featured .tribe-events-content{display:block;float:none;width:auto}.tribe-events-day .tribe-event-featured.tribe-events-first{padding-top:0}.tribe-events-day .tribe-event-featured .tribe-events-event-image{display:block;float:none;margin:0 -24px;margin:0 -1.5rem;width:auto}.tribe-events-day .tribe-event-featured .tribe-events-list-event-title{display:inline-block;margin-top:24px;margin-top:1.5rem}.tribe-events-day .tribe-event-featured .tribe-events-list-event-title a{color:#fff}.tribe-events-day .tribe-event-featured .tribe-events-event-meta{background-color:transparent;color:hsla(0,0%,100%,.7);font-weight:400}.tribe-events-day .tribe-event-featured .tribe-events-content{color:hsla(0,0%,100%,.9)}.tribe-events-day .tribe-event-featured a{color:hsla(0,0%,100%,.7)}.tribe-events-day .tribe-event-featured a:active,.tribe-events-day .tribe-event-featured a:hover{color:hsla(0,0%,100%,.9)}.tribe-events-day .tribe-event-featured .tribe-events-event-cost{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;float:none;margin:30px 0}.tribe-events-day .tribe-event-featured .tribe-events-event-cost span{border:0;color:#fff;background:hsla(0,0%,100%,.1);display:block;font-style:normal;font-weight:700;line-height:1;padding:10px;text-align:center;text-overflow:ellipsis}.tribe-events-day .tribe-event-featured .tribe-events-event-cost .ticket-cost{background:hsla(0,0%,100%,.2)}.tribe-events-day .tribe-event-featured .tribe-events-event-cost .tribe-tickets-left{font-style:italic;font-weight:400;margin-left:1px}.tribe-events-day .tribe-event-featured .tribe-events-event-cost .tribe-out-of-stock{background:#f0f0f0;border-left:none;color:#727272;font-style:italic;font-weight:400}.tribe-events-day .tribe-event-featured .tribe-events-event-cost .tribe-ticket-cost{margin:0}.tribe-events-day .tribe-event-featured .tribe-events-event-cost .tribe-button{color:#000;font-weight:700}.tribe-events-day .tribe-event-featured .tribe-events-event-cost .tribe-button:hover{color:#0ea0d7}.tribe-events-day .tribe-event-featured .tribe-events-event-cost .tribe-button:active{color:#000}.tribe-events-day .tribe-event-featured .tribe-button{background:#fff;color:#0ea0d7}.tribe-events-day .type-tribe_events{margin-left:0}.tribe-events-day .tribe-events-event-image{display:inline-block;float:left;margin:0 3% 0 0;width:30%}.tribe-events-day .tribe-events-content{display:inline-block;float:right;padding:0;width:67%}#tribe-events-content table.tribe-events-calendar{border-collapse:collapse;clear:both;font-size:12px;margin:12px 0 .6em;table-layout:fixed;width:100%}#tribe-events-content table.tribe-events-calendar .type-tribe_events.tribe-event-featured{background:#0ea0d7;margin:0;padding:6px 14px;padding:6px calc(5% + 8px)}.events-archive.events-gridview #tribe-events-content table.tribe-events-calendar .type-tribe_events.tribe-event-featured{margin:0;padding:6px 14px;padding:6px calc(5% + 8px)}#tribe-events-content table.tribe-events-calendar .type-tribe_events.tribe-event-featured .tribe-events-month-event-title a{color:#fff}#tribe-events-content table.tribe-events-calendar .type-tribe_events.tribe-event-featured .tribe-events-month-event-title a:active,#tribe-events-content table.tribe-events-calendar .type-tribe_events.tribe-event-featured .tribe-events-month-event-title a:hover{color:#eee}#tribe-events-content .tribe-events-calendar td,#tribe-events-content table.tribe-events-calendar{border:1px solid #bbb}#tribe-events-content .tribe-events-calendar td{box-sizing:border-box;color:#114b7d;font-size:12px;height:145px;padding:0 0 .5em;vertical-align:top;width:14.28%}.tribe-events-calendar div[id*=tribe-events-daynum-],.tribe-events-calendar div[id*=tribe-events-daynum-] a{background-color:#f5f5f5;color:#333;font-size:11px;font-weight:700}.tribe-events-calendar td.tribe-events-present div[id*=tribe-events-daynum-],.tribe-events-calendar td.tribe-events-present div[id*=tribe-events-daynum-]>a{background-color:#666;color:#fff}.tribe-events-calendar td.tribe-events-past div[id*=tribe-events-daynum-],.tribe-events-calendar td.tribe-events-past div[id*=tribe-events-daynum-]>a{color:#999}.recurring-info-tooltip,.tribe-events-calendar .tribe-events-tooltip,.tribe-events-shortcode.view-week .tribe-events-tooltip,.tribe-events-week .tribe-events-tooltip{background-color:#f9f9f9;border:1px solid #666;bottom:30px;color:#333;display:none;left:3px;line-height:1.4;position:absolute;width:320px;z-index:1001}.tribe-events-tooltip .tribe-events-arrow{background-image:url(../images/tribe-tooltips.png);background-position:0 0;background-repeat:no-repeat;background-size:44px 19px;bottom:-11px;display:block;height:11px;left:20px;position:absolute;width:18px}.recurring-info-tooltip,.tribe-events-calendar .tribe-events-right .tribe-events-tooltip,.tribe-events-shortcode.view-week .tribe-events-right .tribe-events-tooltip,.tribe-events-week .tribe-events-right .tribe-events-tooltip{left:auto;right:3px}.tribe-events-right .tribe-events-tooltip .tribe-events-arrow{left:auto;right:30px}.tribe-events-tooltip ol,.tribe-events-tooltip ul{margin-left:1.6em}.tribe-events-tooltip .tribe-events-event-body .tribe-events-event-thumb img{max-height:150px;max-width:150px}.recurringinfo{*display:inline;display:inline-block;position:relative;vertical-align:middle;zoom:1}.event-is-recurring{color:rgba(0,0,0,.7);font-style:normal;font-weight:500;position:relative}.event-is-recurring:hover{color:#000}.tribe-event-featured .event-is-recurring{color:hsla(0,0%,100%,.7)}.tribe-event-featured .event-is-recurring:hover{color:#fff}.tribe-event-featured .event-is-recurring div{color:rgba(0,0,0,.7)}.recurring-info-tooltip.tribe-events-tooltip{left:10px;padding-bottom:.8em;width:200px}.events-archive.events-gridview #tribe-events-content table .type-tribe_events{border-bottom:1px solid #e7e7e7;margin:0 5%;padding:6px 8px}.events-archive.events-gridview #tribe-events-content table .tribe-events-last{border-bottom:0}.tribe-events-viewmore{border-top:1px solid #e7e7e7;font-weight:700;line-height:1;margin:0 5%;padding:9px 8px}.tribe-events-calendar td .tribe-events-viewmore a{font-size:90%;white-space:nowrap}.tribe-events-calendar td div[id*=tribe-events-daynum-]{line-height:1.2;padding:6px 9px}.tribe-events-calendar td a{font-size:91.7%}.tribe-events-calendar th{background-color:#ddd;color:#333;height:10px;letter-spacing:1px;padding:4px 0;text-align:center;text-transform:uppercase;width:14.28%}.tribe-events-calendar div[id*=tribe-events-daynum-],.tribe-events-calendar div[id*=tribe-events-event-]{margin:0;position:relative}.tribe-events-calendar div[id*=tribe-events-event-] h3.tribe-events-month-event-title a{font-size:100%}#tribe-events-content .tribe-events-calendar div[id*=tribe-events-event-] h3.tribe-events-month-event-title{font-family:sans-serif;font-size:98%;font-weight:400;line-height:1.25;margin:0;overflow:hidden;padding:3%;text-transform:none}#tribe-events-content .tribe-events-tooltip h4{background-color:#666;color:#fff;font-size:12px;font-weight:400;letter-spacing:1px;line-height:24px;margin:0;min-height:24px;padding:0 6px}.tribe-events-tooltip .tribe-events-event-body{font-size:11px;font-weight:400;padding:3px 6px 6px}.tribe-events-tooltip .duration{font-style:italic;margin:3px 0}.tribe-events-tooltip:not(.tribe-event-featured) .tribe-events-event-thumb{padding:5px 5px 5px 0}.tribe-events-tooltip.tribe-event-featured .tribe-events-event-thumb{padding:2px 0 8px}.tribe-events-tooltip .tribe-events-event-thumb{float:left}.tribe-events-tooltip .tribe-events-event-thumb img{box-shadow:none}.tribe-events-tooltip p.entry-summary{font-size:11px;line-height:1.5;padding:0}#tribe-mobile-container{display:none}.tribe-events-list-widget ol li{list-style:none;margin-bottom:8px;margin-bottom:.5rem}.tribe-events-list-widget .tribe-list-widget{margin-left:0}.tribe-events-list-widget .tribe-events-list-widget-events{padding:0 24px;padding:0 1.5rem;margin-bottom:20px;margin-bottom:1.25rem}.tribe-events-list-widget .tribe-event-title{margin-bottom:4px;margin-bottom:.25rem;margin-top:0}.tribe-events-list-widget .duration{font-weight:700}.tribe-events-list-widget .tribe-event-featured{background:#0ea0d7;padding-bottom:12px;padding-bottom:.75rem}.tribe-events-list-widget .tribe-event-featured .tribe-event-title{margin-top:12px;margin-top:.75rem}.tribe-events-list-widget .tribe-event-featured .tribe-event-title a{color:#fff}.tribe-events-list-widget .tribe-event-featured .tribe-event-image{margin-left:-24px;margin-left:-1.5rem;margin-right:-24px;margin-right:-1.5rem}.tribe-events-list-widget .tribe-event-featured .tribe-event-duration{color:#fff}.datepicker table tr td span,.datepicker td{border-radius:0}.datepicker td{border-top:1px solid #ededed}.datepicker table tr td.active.active,.datepicker table tr td span.active.active{background:#666}.datepicker table tr td.active.active:hover,.datepicker table tr td span.active.active:hover{background:#dadada;color:inherit}#tribe-events-bar{clear:none;height:auto;margin-bottom:30px;min-width:220px;position:relative;width:100%}#tribe-events-bar *{box-sizing:border-box}#tribe-bar-form{background:#f5f5f5;margin:0;position:relative;width:100%}#tribe-bar-form input{font-size:15px;margin:0 4px 0 0}#tribe-bar-form input[type=text]{background:0;border:none;border-bottom:1px dashed #b9b9b9;border-radius:0;box-shadow:none;font-style:italic;font-weight:400;height:auto;line-height:1;padding:5px;width:100%}#tribe-bar-form input[type=text]:focus{border-bottom:none;outline:1px dashed #b9b9b9}#tribe-bar-form .tribe-bar-submit input[type=submit]{-webkit-appearance:button;background:#666;background-image:none;border:none;border-radius:0;color:#fff;font-size:13px;height:auto;letter-spacing:0;line-height:2;padding:10px;width:100%}#tribe-bar-form label{display:block;font-size:11px;font-weight:700;line-height:1;margin:0 0 5px;padding:0;text-transform:uppercase}#tribe-bar-form .tribe-bar-filters{float:left;margin:0;position:relative;width:100%}#tribe-bar-form #tribe-bar-views+.tribe-bar-filters{left:auto;right:16.66667%;width:83.3333%}#tribe-bar-form .tribe-bar-filters-inner{margin:0}#tribe-bar-form #tribe-bar-views{background:transparent;float:left;left:83.3333%;margin:0;padding:0 0 0 5px;position:relative;right:auto;width:16.66667%}#tribe-bar-form .tribe-bar-views-inner label{padding:0 15px;text-align:left}#tribe-bar-form.tribe-bar-mini #tribe-bar-views{width:16.66667%}input[name*=tribe-bar-]::-webkit-input-placeholder{color:#5f5f5f;font-style:italic;font-weight:400;line-height:1.3}input[name*=tribe-bar-]:-moz-placeholder{color:#5f5f5f;font-style:italic;font-weight:400;line-height:1.3}.tribe-event-placeholder{color:#5f5f5f;font-weight:400;font-style:italic;line-height:1.3}#tribe-bar-dates .select2-choice{border-bottom:1px dashed #b9b9b9}.tribe-bar-date-filter{float:left;margin-bottom:0;padding:15px;width:25%}.tribe-bar-search-filter{float:left;margin-bottom:0;padding:15px;width:33.3333%}.tribe-bar-submit{float:left;margin-bottom:0;margin-left:16.6667%;padding:15px;width:25%}.tribe-bar-submit input[type=submit]:hover{background:#999;color:#fff}#tribe-bar-views:hover,#tribe-bar-views label:hover{cursor:pointer}.tribe-bar-views-inner{background:#e0e0e0;margin:0;padding:15px 0 45px}.tribe-bar-views-inner .select2-container{padding:0 15px}.tribe-select2-results-views.select2-drop{background:#dbdbdb;border:none;box-shadow:none;z-index:10001}#tribe-bar-views .tribe-bar-views-list{border-radius:0 0 3px 3px;left:0;list-style-type:none;margin:0;padding:0 0 0 5px;position:absolute;top:auto;z-index:99}#tribe-bar-views li.tribe-bar-views-option{background:none;border:none;box-shadow:none;display:none;filter:"progid:DXImageTransform.Microsoft.gradient(enabled=false)";line-height:14px;list-style:none;margin:0;padding:0 5px 0 0;padding:0}#tribe-bar-views.tribe-bar-views-open .tribe-bar-views-option,#tribe-bar-views .tribe-bar-views-option.tribe-bar-active,#tribe-bar-views .tribe-bar-views-option:first-child{display:list-item}#tribe-bar-views .tribe-bar-views-list .tribe-bar-views-option a{background:#e0e0e0;color:#444;display:block;padding:6px 15px;text-align:left;text-decoration:none}#tribe-bar-views .tribe-bar-views-list .tribe-bar-views-option a:hover{background:#cacaca;color:inherit}#tribe-bar-views .tribe-bar-views-list .tribe-bar-views-option.tribe-bar-active a:hover{background:#e0e0e0}#tribe-bar-views .tribe-bar-views-option:last-child a{border-radius:0 0 3px 3px}#tribe-bar-views [name=tribe-bar-view]{display:none}#tribe-bar-views .tribe-bar-views-list{float:left;width:100%}#tribe-bar-views .tribe-bar-settings{display:none}.tribe-no-js #tribe-bar-views [name=tribe-bar-view]{display:block}#tribe-bar-form.tribe-bar-mini *{font-size:12px}#tribe-bar-form.tribe-bar-mini label{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#tribe-bar-form.tribe-bar-mini .tribe-bar-submit input[type=submit]{-webkit-appearance:button;font-size:11px;padding:10px 5px}.tribe-bar-mini .tribe-bar-filters{float:left;width:83.3333%}.tribe-bar-mini .tribe-bar-date-filter{padding:10px}.tribe-bar-mini .tribe-bar-search-filter{padding:10px;width:45%}.tribe-bar-mini .tribe-bar-submit{margin-left:5%;padding:10px;width:25%}.tribe-bar-mini #tribe-bar-views{width:16.66667%}.tribe-bar-mini #tribe-bar-views .tribe-bar-views-list .tribe-bar-views-option a{padding:4px 15px}.tribe-bar-mini .tribe-bar-views-inner{padding:10px 0 35px}.tribe-bar-mini .tribe-bar-views-inner label{padding:0 10px}#tribe-bar-collapse-toggle{background:#f5f5f5;display:none;float:left;font-size:13px;font-weight:700;line-height:28px;padding:15px;position:relative;text-transform:uppercase}#tribe-bar-collapse-toggle:hover{cursor:pointer}#tribe-bar-collapse-toggle.tribe-bar-filters-open span.tribe-bar-toggle-arrow:after{border-bottom-color:inherit;border-top-color:transparent;top:0}#tribe-bar-collapse-toggle span.tribe-bar-toggle-arrow{display:inline-block;margin:0 4px;position:absolute;right:10px}#tribe-bar-collapse-toggle span.tribe-bar-toggle-arrow:after{border:solid transparent;border-color:rgba(136,183,213,0);border-top-color:inherit;border-width:8px;content:" ";height:0;pointer-events:none;position:absolute;right:0;top:10px;width:0}.tribe-bar-collapse #tribe-bar-views,.tribe-bar-collapse .tribe-bar-filters-inner>div{height:auto;margin:0;width:100%}.tribe-bar-collapse #tribe-bar-collapse-toggle{display:block;width:70%}.tribe-bar-collapse #tribe-bar-collapse-toggle.tribe-bar-collapse-toggle-full-width{width:100%}#tribe-bar-form.tribe-bar-collapse #tribe-bar-views{float:left;left:auto;width:30%}#tribe-bar-form.tribe-bar-collapse #tribe-bar-views+.tribe-bar-filters{clear:both;display:none;left:auto;margin-top:5px;overflow:hidden;right:auto;width:100%}#tribe-bar-form.tribe-bar-collapse .tribe-bar-views-inner{padding:10px 0 40px}#tribe-bar-form.tribe-bar-collapse .tribe-bar-views-inner label{margin:0}.tribe-bar-disabled{float:right;position:relative;z-index:101}.tribe-bar-disabled .tribe-events-page-title{clear:none;line-height:45px;margin:0;text-align:left}.tribe-bar-disabled #tribe-events-bar{float:none;min-width:0;width:auto}.tribe-bar-disabled #tribe-bar-form{border-radius:3px;width:auto}.tribe-bar-disabled .tribe-bar-filters{float:left}.tribe-bar-disabled .tribe-bar-filters .tribe-bar-date-filter{padding:5px 10px}.tribe-bar-disabled #tribe-bar-form label{font-size:10px}.tribe-bar-disabled #tribe-bar-form .tribe-bar-filters input[type=text]{border:none;display:block;font-size:13px;line-height:15px;margin:0;padding:0;width:85px}.tribe-bar-disabled #tribe-bar-form #tribe-bar-views{float:left;font-size:16px;left:50%;padding:0;right:auto;width:50%}.tribe-bar-disabled #tribe-bar-form #tribe-bar-views+.tribe-bar-filters{left:auto;right:50%;width:50%}.tribe-bar-disabled #tribe-bar-form .tribe-bar-views-inner label{padding:0 10px}.tribe-bar-disabled .tribe-bar-views-inner{border-radius:0 3px 3px 0;min-width:100px;padding:5px 0 25px}.tribe-bar-disabled #tribe-bar-views .tribe-bar-views-list,.tribe-bar-disabled #tribe-bar-views .tribe-bar-views-list .tribe-bar-views-option{margin:0}.tribe-bar-disabled #tribe-bar-views .tribe-bar-views-list .tribe-bar-views-option a{margin:0;padding:4px 10px}.tribe-bar-disabled #tribe-bar-views .select2-container .select2-choice{font-size:13px;height:auto;line-height:18px}.tribe-bar-disabled .tribe-select2-results-views.select2-drop .select2-results li{padding:0 10px}.tribe-bar-disabled #tribe-bar-collapse-toggle,.tribe-bar-disabled .tribe-bar-submit{display:none}.tribe-bar-disabled .tribe-bar-date-filter,.tribe-events-uses-geolocation .tribe-bar-disabled .tribe-bar-date-filter{width:auto}.tribe-bar-view-list a[class*=tribe-icon-],.tribe-bar-views-list span[class^=tribe-icon-],.tribe-select2-results-views span[class^=tribe-icon-]{background-position:0 50%;background-repeat:no-repeat;display:block;min-height:16px;padding-left:24px}.tribe-select2-results-views span[class^=tribe-icon-]{display:inline-block;min-height:16px}.tribe-bar-views-list span[class^=tribe-icon-],.tribe-select2-results-views span[class^=tribe-icon-]{background-image:url(../images/events-bar/icon-month.png);background-size:15px 16px}.tribe-bar-view-list span[class^=tribe-icon-],.tribe-bar-views-list span.tribe-icon-list,.tribe-select2-results-views span.tribe-icon-list{background-image:url(../images/events-bar/icon-list.png);background-size:15px 10px}.tribe-bar-view-list a.tribe-icon-list,.tribe-bar-view-list a.tribe-icon-month{background-position:10px 50%;padding-left:30px}.tribe-bar-view-list a.tribe-icon-month,.tribe-bar-views-list span.tribe-icon-month,.tribe-select2-results-views .tribe-icon-month{background-image:url(../images/events-bar/icon-month.png);background-size:15px 16px}.tribe-bar-views-list span.tribe-icon-week,.tribe-select2-results-views span.tribe-icon-week{background-image:url(../images/events-bar/icon-week.png);background-size:15px 16px}.tribe-bar-views-list span.tribe-icon-day,.tribe-select2-results-views span.tribe-icon-day{background-image:url(../images/events-bar/icon-day.png);background-size:15px 16px}.tribe-bar-views-list span.tribe-icon-photo,.tribe-select2-results-views span.tribe-icon-photo{background-image:url(../images/events-bar/icon-photo.png);background-size:15px 14px}.tribe-bar-views-list span.tribe-icon-map,.tribe-select2-results-views span.tribe-icon-map{background-image:url(../images/events-bar/icon-map.png);background-position:2px 50%;background-size:12px 16px}.tribe-events-week.tribe-theme-parent-twentyfourteen #masthead,.tribe-events-week.tribe-theme-twentyfourteen #masthead{z-index:1001}.tribe-theme-parent-twentyfourteen #tribe-events-pg-template #tribe-events,.tribe-theme-twentyfourteen #tribe-events-pg-template #tribe-events{padding:20px}.tribe-theme-parent-twentyfourteen #tribe-bar-views .tribe-bar-views-list,.tribe-theme-twentyfourteen #tribe-bar-views .tribe-bar-views-list{z-index:3}#tribe-events-content .tribe-updated{display:inherit}.tribe-theme-twentyfifteen #tribe-events{background:#fff;margin:0 8.333%;padding-top:8.333%}.tribe-theme-twentyfifteen .tribe-events-single-event-title{font-size:39px}.tribe-theme-twentyfifteen.events-single.tribe-events-page-template #tribe-events-pg-template{padding-top:8.3333%}.tribe-theme-twentyfifteen.events-single.tribe-events-page-template #tribe-events-content{padding:8.3333% 10%}.tribe-theme-twentyfifteen.single-tribe_events #tribe-events .tribe_events{box-shadow:none;margin-left:0;margin-right:0;padding-top:0}.tribe-theme-twentyfifteen.single-tribe_events #tribe-events .tribe-events-schedule h2{display:inline-block;font-size:1.2em;margin:0}.tribe-theme-twentyfifteen.single-tribe_events .tribe-events-single{box-shadow:none;margin:0}.tribe-theme-twentyfifteen.tribe-events-week .tribe-events-grid .hentry{margin-left:0;margin-right:0}.tribe-theme-twentyfifteen .tribe-events-list-widget .type-tribe_events{border-top:1px solid rgba(51,51,51,.1);box-shadow:none;margin-left:0;margin-right:0}.tribe-theme-twentyfifteen .tribe-events-list-widget .entry-title{font-size:22px;line-height:1.4545}.tribe-theme-twentyfifteen.tribe-events-page-template #tribe-events-content-wrapper{padding:3.333%}.tribe-theme-twentyfifteen .tribe-events-list .type-tribe_events,.tribe-theme-twentyfifteen .tribe-events-list .type-tribe_events.tribe-events-first{padding:8.333% 10%}.tribe-theme-twentyfifteen .tribe-events-list .time-details,.tribe-theme-twentyfifteen .tribe-events-list .tribe-events-venue-details{line-height:1.6}.tribe-theme-twentyfifteen .tribe-events-day-time-slot .type-tribe_events{margin-left:0}.tribe-theme-twentyfifteen .type-tribe_events a.more-link{display:none}.tribe-theme-twentyfifteen .datepicker.dropdown-menu{max-width:340px}.tribe-theme-twentyfifteen .datepicker.dropdown-menu table,.tribe-theme-twentyfifteen .datepicker.dropdown-menu table.table-condensed{border-left-width:0;border-top-width:0}.tribe-theme-twentyfifteen .tribe-events-calendar td a,.tribe-theme-twentyfifteen .tribe-events-nav-next a,.tribe-theme-twentyfifteen .tribe-events-nav-previous a,.tribe-theme-twentyfifteen ul.tribe-bar-views-list li a{border-bottom:none}.tribe-theme-twentyfifteen.events-archive .entry-footer,.tribe-theme-twentyfifteen.single-tribe_events .entry-footer{display:none}.tribe-theme-twentysixteen table.tribe-events-calendar{table-layout:auto}.tribe-theme-twentysixteen .tribe-events-single-section-title:first-child{margin-top:20px}.tribe-theme-twentysixteen .tribe-events-content.entry-summary{font-size:inherit;margin-bottom:0;margin-top:5px}.tribe-theme-twentysixteen.events-archive .entry-content,.tribe-theme-twentysixteen.events-archive .entry-header{width:auto}.tribe-theme-twentysixteen .datepicker table{border:0;width:auto}.tribe-theme-twentysixteen .entry-content a{box-shadow:none}.tribe-theme-twentysixteen h2.tribe-events-list-event-title{clear:none}.tribe-theme-twentyseventeen .entry-content a{box-shadow:none}.screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px;word-wrap:normal!important}@media screen and (max-width:767px){.single-tribe_events .secondary .tribe-events-venue-map{width:90%}}@media screen and (min-width:44.375em){.tribe-events-day .tribe-events-content{margin-left:0;margin-right:0}}@media screen{#tribe-events-content .tribe-events-tooltip ol,#tribe-events-content .tribe-events-tooltip ul{margin-left:1.6em}}@media screen and (min-width:1000px){.tribe-theme-parent-twentyfourteen #tribe-events-pg-template,.tribe-theme-twentyfourteen #tribe-events-pg-template{padding-left:220px}}@media screen and (max-width:400px){.list-view.events-archive .site-content .type-page .entry-content{display:inline;display:initial}}@media (-o-min-device-pixel-ratio:2/1),(-webkit-min-device-pixel-ratio:2),(min--moz-device-pixel-ratio:2),(min-device-pixel-ratio:2){.tribe-events-tooltip .tribe-events-arrow{background-image:url(../images/tribe-tooltips@2x.png)}#tribe-bar-filters .tribe-bar-button-search .tribe-bar-btn-small{background-image:url(../images/events-bar/icon-search@2x.png)}#tribe-events-bar .tribe-bar-button-settings span{background-image:url(../images/events-bar/icon-gear@2x.png)}#tribe-events-bar [class^=tribe-bar-button-]:after{background-image:url(../../../common/vendor/select2/select2x2.png)}.tribe-bar-view-list a[class^=tribe-icon-],.tribe-bar-views-list span[class^=tribe-icon-],.tribe-select2-results-views span[class^=tribe-icon-]{background-image:url(../images/events-bar/icon-month@2x.png)}.tribe-bar-view-list span[class^=tribe-icon-],.tribe-bar-views-list span.tribe-icon-list,.tribe-select2-results-views span.tribe-icon-list{background-image:url(../images/events-bar/icon-list@2x.png)}.tribe-bar-view-list a.tribe-icon-month,.tribe-bar-views-list span.tribe-icon-month,.tribe-select2-results-views span.tribe-icon-month{background-image:url(../images/events-bar/icon-month@2x.png)}.tribe-bar-views-list span.tribe-icon-week,.tribe-select2-results-views span.tribe-icon-week{background-image:url(../images/events-bar/icon-week@2x.png)}.tribe-bar-views-list span.tribe-icon-day,.tribe-select2-results-views span.tribe-icon-day{background-image:url(../images/events-bar/icon-day@2x.png)}.tribe-bar-views-list span.tribe-icon-photo,.tribe-select2-results-views span.tribe-icon-photo{background-image:url(../images/events-bar/icon-photo@2x.png)}.tribe-bar-views-list span.tribe-icon-map,.tribe-select2-results-views span.tribe-icon-map{background-image:url(../images/events-bar/icon-map@2x.png)}}
1
+ .tribe-events-event-cost{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;float:none;margin:0 0 15px}.tribe-events-event-cost span{border:1px solid #ddd;display:block;font-style:normal;font-weight:700;line-height:1;padding:8px 12px;text-align:center;text-overflow:ellipsis}.tribe-events-event-cost .tribe-out-of-stock,.tribe-events-event-cost .tribe-tickets-left{background:#f0f0f0;border-left:none;color:#727272;font-style:italic;font-weight:400}.tribe-events-event-cost .tribe-ticket-cost{margin:0}.tribe-button,a.tribe-button,button.tribe-button,input.tribe-button{border-radius:3px;line-height:1;margin:10px;padding:9px 12px}.tribe-button.sold-out,a.tribe-button.sold-out,button.tribe-button.sold-out,input.tribe-button.sold-out{background:none;border:none;color:#a00}.tribe-button.sold-out:hover,a.tribe-button.sold-out:hover,button.tribe-button.sold-out:hover,input.tribe-button.sold-out:hover{cursor:default}#tribe-events-pg-template,.tribe-events-pg-template{margin:0 auto;max-width:1200px}.tribe-events-after-html{clear:both}#tribe-events .tribe-events-content p,.tribe-events-after-html p,.tribe-events-before-html p{line-height:1.7;margin:0 0 10px}#tribe-events-pg-template .tribe-events-content h1,#tribe-events-pg-template .tribe-events-content h2,#tribe-events-pg-template .tribe-events-content h3,#tribe-events-pg-template .tribe-events-content h4,#tribe-events-pg-template .tribe-events-content h5,#tribe-events-pg-template .tribe-events-content h6,.tribe-events-after-html h1,.tribe-events-after-html h2,.tribe-events-after-html h3,.tribe-events-after-html h4,.tribe-events-after-html h5,.tribe-events-after-html h6,.tribe-events-before-html h1,.tribe-events-before-html h2,.tribe-events-before-html h3,.tribe-events-before-html h4,.tribe-events-before-html h5,.tribe-events-before-html h6{line-height:1.7;margin:24px 0}#tribe-events-pg-template .tribe-events-content h1,.tribe-events-after-html h1,.tribe-events-before-html h1{font-size:21px;line-height:1.5}#tribe-events-pg-template .tribe-events-content h2,.tribe-events-after-html h2,.tribe-events-before-html h2{font-size:18px;line-height:1.6}#tribe-events-pg-template .tribe-events-content h3,.tribe-events-after-html h3,.tribe-events-before-html h3{font-size:16px;line-height:1.8}#tribe-events-pg-template .tribe-events-content h4,.tribe-events-after-html h4,.tribe-events-before-html h4{font-size:14px;line-height:1.8}#tribe-events-pg-template .tribe-events-content h5,.tribe-events-after-html h5,.tribe-events-before-html h5{font-size:13px;line-height:1.8}#tribe-events-pg-template .tribe-events-content h6,.tribe-events-after-html h6,.tribe-events-before-html h6{font-size:12px;line-height:1.8}#tribe-events-pg-template .tribe-events-content ul,.tribe-events-after-html ul,.tribe-events-before-html ul{list-style:disc outside}#tribe-events-pg-template .tribe-events-content ol,.tribe-events-after-html ol,.tribe-events-before-html ol{list-style:decimal outside}#tribe-events-pg-template .tribe-events-content ol li,#tribe-events-pg-template .tribe-events-content ul li,.tribe-events-after-html ol li,.tribe-events-after-html ul li,.tribe-events-before-html ol li,.tribe-events-before-html ul li{line-height:1.7;margin:0 0 20px}.tribe-events-back{margin:0 0 20px}.events-list .tribe-events-back.tribe-events-loop{margin:0 auto 20px}#tribe-events-content a,.tribe-events-adv-list-widget .tribe-events-widget-link a,.tribe-events-adv-list-widget .tribe-events-widget-link a:hover,.tribe-events-back a,.tribe-events-back a:hover,.tribe-events-event-meta a,.tribe-events-list-widget .tribe-events-widget-link a,.tribe-events-list-widget .tribe-events-widget-link a:hover,ul.tribe-events-sub-nav a,ul.tribe-events-sub-nav a:hover{text-decoration:none}#tribe-events .tribe-events-button,.tribe-events-button{*display:inline;background-color:#666;background-image:none;border-radius:3px;border:0;box-shadow:none;color:#fff;cursor:pointer;display:inline-block;font-size:11px;font-weight:700;letter-spacing:1px;line-height:normal;padding:6px 9px;text-align:center;text-decoration:none;text-transform:uppercase;vertical-align:middle;zoom:1}.tribe-events-button.tribe-active{background-color:#666;color:#fff}#tribe-events .tribe-events-button:hover,.tribe-events-button.tribe-active:hover,.tribe-events-button.tribe-inactive,.tribe-events-button:hover{background-color:#ddd;color:#444;text-decoration:none}a.tribe-events-gcal,a.tribe-events-ical{clear:both;color:#fff;float:right;font-size:10px;font-weight:400;line-height:18px;margin-top:21px;padding:0 6px;text-decoration:none}.tribe-events-gcal{margin-right:9px}.single-tribe_events a.tribe-events-gcal,.single-tribe_events a.tribe-events-ical{float:none}.tribe-events-event-meta-desc .tribe-events-gmap,.tribe-events-event-meta .tribe-events-gmap{white-space:nowrap}.event .entry-title{color:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;padding:inherit}.updated-info{height:0;text-indent:-9999px}.tribe-events-event-image{margin:0 0 20px;text-align:center}.tribe-events-event-image img{height:auto;max-width:100%}.tribe-events-schedule h2{font-style:normal;font-weight:700}.tribe-events-event-schedule-details{display:inline}.events-archive .entry-content,.events-archive .entry-header{width:98%}.events-archive footer.entry-header,.events-archive footer.entry-meta,.events-archive header.entry-header,.events-archive header.entry-meta,.events-archive span.edit-link,.single-tribe_events footer.entry-header,.single-tribe_events footer.entry-meta,.single-tribe_events header.entry-header,.single-tribe_events header.entry-meta,.single-tribe_organizer footer.entry-header,.single-tribe_organizer footer.entry-meta,.single-tribe_organizer header.entry-header,.single-tribe_organizer header.entry-meta,.single-tribe_venue footer.entry-header,.single-tribe_venue footer.entry-meta,.single-tribe_venue header.entry-header,.single-tribe_venue header.entry-meta{display:none}.tribe-events-notices{background:#d9edf7;border-radius:4px;border:1px solid #bce8f1;color:#3a87ad;margin:10px 0 18px;padding:8px 35px 8px 14px;text-shadow:0 1px 0 #fff}div.tribe-events-notices>ul,div.tribe-events-notices>ul>li{list-style:none;margin:0;padding:0}#tribe-events-content p.tribe-events-promo{color:#999;font-size:12px}#tribe-events-content p.tribe-events-promo a{color:#666}.clearfix,.tribe-clearfix{zoom:1}.clearfix:after,.clearfix:before,.tribe-clearfix:after,.tribe-clearfix:before{content:"";display:table}.clearfix:after,.tribe-clear,.tribe-clearfix:after{clear:both}.tribe-events-visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tribe-hide-text{overflow:hidden;text-indent:100%;white-space:nowrap}.tribe-events-error{display:none}.tribe-events-multi-event-day{color:#0f81bb}#tribe-events-content .tribe-events-abbr{border-bottom:0;cursor:default}.tribe-events-spinner{height:32px;margin-left:-16px;width:32px}.tribe-events-spinner-medium{height:24px;width:24px}.tribe-events-spinner-small{height:16px;margin-left:-8px;width:16px}*+html .events-archive h2.tribe-events-page-title{padding-bottom:30px}*+html .events-archive .tribe-events-list h2.tribe-events-page-title{padding-bottom:0}*+html #tribe-events-header{margin-bottom:30px}h2.tribe-events-page-title{clear:none;font-size:24px;font-weight:400;margin-bottom:.5em;position:relative;text-align:center;z-index:0}.tribe-events-filter-view .tribe-events-list h2.tribe-events-page-title{float:none;width:100%}h2.tribe-events-page-title a{color:#000}h2.tribe-events-page-title a:focus,h2.tribe-events-page-title a:hover{color:#333;text-decoration:underline}#tribe-events-footer,#tribe-events-header{clear:both;margin-bottom:.5em}#tribe-events-footer .tribe-events-sub-nav,#tribe-events-header .tribe-events-sub-nav{line-height:normal;list-style-type:none;margin:0;overflow:hidden;padding:0;text-align:center}#tribe-events-footer .tribe-events-sub-nav li,#tribe-events-header .tribe-events-sub-nav li{display:inline;display:inline-block;margin:0;vertical-align:middle;zoom:1}#tribe-events-footer .tribe-events-sub-nav .tribe-events-nav-previous,#tribe-events-footer .tribe-events-sub-nav li,#tribe-events-header .tribe-events-sub-nav .tribe-events-nav-previous,#tribe-events-header .tribe-events-sub-nav li{float:left;margin-right:5px;text-align:left}#tribe-events-footer .tribe-events-sub-nav .tribe-events-nav-next,#tribe-events-header .tribe-events-sub-nav .tribe-events-nav-next{float:right;margin-left:5px;text-align:right}#tribe-events-footer .tribe-events-sub-nav .tribe-events-nav-left,#tribe-events-header .tribe-events-sub-nav .tribe-events-nav-left{float:left;text-align:left}#tribe-events-footer .tribe-events-sub-nav .tribe-events-nav-right,#tribe-events-header .tribe-events-sub-nav .tribe-events-nav-right{float:right;text-align:right}.tribe-events-ajax-loading{background:#666;border-radius:5px;box-shadow:none;display:none;left:50%;margin-left:-27px;padding:15px;position:absolute;top:150px;z-index:10}.tribe-events-ajax-loading.tribe-events-active-spinner,.tribe-events-ajax-loading.tribe-events-active-spinner img,.tribe-events-loading .tribe-events-ajax-loading{display:block}#tribe-events-header{position:relative}#tribe-events-footer{margin-bottom:1em}.events-list #tribe-events-footer,.tribe-events-day #tribe-events-footer,.tribe-events-map #tribe-events-footer{clear:both;margin:1.25em 0 18px}.tribe-events-map #tribe-events-header{margin:1em 0}.single-tribe_events #tribe-events-header{margin:1em 0 20px}.single-tribe_events #tribe-events-footer li,.single-tribe_events #tribe-events-header li{width:48%}#tribe-events-content .tribe-events-nav-date{padding-top:16px}select.tribe-events-dropdown{font-size:11px;margin:33px 9px 0 0;width:auto}#tribe-events-events-picker,#tribe-events-picker{display:inline}#tribe-events-content{margin-bottom:48px;padding:2px 0;position:relative}#tribe-events-content.tribe-events-list{padding:0}.tribe-events-othermonth .tribe-events-month-event-title,.tribe-events-othermonth div[id*=tribe-events-daynum-]{-khtml-opacity:.4;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";filter:alpha(opacity=40);opacity:.4}#tribe-events-content.tribe-events-list{margin-bottom:60px}.tribe-events-list .tribe-events-loop .tribe-event-featured{background:#0ea0d7;margin-bottom:32px;margin-bottom:2rem;padding:0 24px 16px;padding:0 1.5rem 1rem}.tribe-events-list .tribe-events-loop .tribe-event-featured.tribe-events-first{padding-top:0}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-event-image{display:block;float:none;margin:0 -24px;margin:0 -1.5rem;width:auto}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-list-event-title{display:inline-block;margin-top:24px;margin-top:1.5rem}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-list-event-title a{color:#fff}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-event-meta{background-color:transparent;color:hsla(0,0%,100%,.7);font-weight:400}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-content{color:hsla(0,0%,100%,.9)}.tribe-events-list .tribe-events-loop .tribe-event-featured a{color:hsla(0,0%,100%,.7)}.tribe-events-list .tribe-events-loop .tribe-event-featured a:active,.tribe-events-list .tribe-events-loop .tribe-event-featured a:hover{color:hsla(0,0%,100%,.9)}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-event-cost{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;float:none;margin:30px 0}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-event-cost span{border:0;color:#fff;background:hsla(0,0%,100%,.1);display:block;font-style:normal;font-weight:700;line-height:1;padding:10px;text-align:center;text-overflow:ellipsis}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-event-cost .ticket-cost{background:hsla(0,0%,100%,.2)}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-event-cost .tribe-tickets-left{font-style:italic;font-weight:400;margin-left:1px}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-event-cost .tribe-out-of-stock{background:#f0f0f0;border-left:none;color:#727272;font-style:italic;font-weight:400}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-event-cost .tribe-ticket-cost{margin:0}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-event-cost .tribe-button{color:#000;font-weight:700}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-event-cost .tribe-button:hover{color:#0ea0d7}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-events-event-cost .tribe-button:active{color:#000}.tribe-events-list .tribe-events-loop .tribe-event-featured .tribe-button{background:#fff;color:#0ea0d7}.tribe-events-list .tribe-events-loop .tribe-events-event-image{float:left;margin:0 3% 0 0;width:30%}.tribe-events-list .tribe-events-loop .tribe-events-content{width:100%}.tribe-events-list h2.tribe-events-page-title{margin-bottom:15px}.tribe-events-list .tribe-events-list-event-title{border:none;display:inline-block;font-size:1.4em;letter-spacing:0;line-height:1.4em;margin:0;padding:0;text-transform:none}.tribe-events-list .type-tribe_events{border-bottom:1px solid #ddd;margin:0;padding:2.25em 0}.tribe-events-list .type-tribe_events.tribe-events-first{padding-top:0}.tribe-events-list .type-tribe_events.tribe-event-end-month{border-bottom:0;padding-bottom:0}.tribe-events-list .tribe-events-event-image{display:inline-block;float:left;margin:0 3% 0 0}.tribe-events-list .tribe-events-event-image img{height:auto;margin:0;padding:0;width:100%}.tribe-events-list .tribe-events-event-image+div.tribe-events-content{display:block;float:none;position:relative}.tribe-events-list .tribe-events-loop .tribe-events-event-meta .recurringinfo{display:inline;display:inline-block;zoom:1}.tribe-events-list .tribe-events-loop .tribe-events-event-meta .event-is-recurring{position:relative}.tribe-events-list .tribe-events-loop .tribe-events-event-meta .tribe-events-content{padding:0;width:100%}.tribe-events-list .time-details,.tribe-events-list .tribe-events-venue-details{display:block;line-height:1.2;margin:0}.tribe-events-list .time-details{margin:0 0 8px}.tribe-events-list .tribe-events-venue-details{margin:15px 0}.tribe-events-event-details .tribe-events-event-meta address.tribe-events-address{font-family:inherit;font-size:inherit;font-style:normal;line-height:inherit}.tribe-events-list-separator-year{color:#ccc;display:block;font-size:38px;font-weight:700;padding:1em 2.25em 0;text-align:center}.tribe-events-list-separator-month{background-color:#eee;display:block;font-size:14px;font-weight:700;margin:2.5em 0 0;padding:6px 10px;text-transform:uppercase}.tribe-events-list-separator-month+.type-tribe_events.tribe-events-first{padding-top:2.25em}.tribe-events-loop{clear:both}.tribe-events-loop .type-tribe_events.tribe-events-last{border-bottom:0}.tribe-events-loop .tribe-events-content{float:left;padding:0 5% 0 0;width:60%}.tribe-events-loop .tribe-events-event-meta{border:0;clear:both;float:none;font-size:14px;font-weight:700;line-height:1.5;margin:5px 0 15px;overflow:visible}.tribe-events-event-meta address.tribe-events-address{display:inline;font-family:inherit;font-size:inherit;font-style:normal;line-height:inherit;margin-right:10px}.single-tribe_venue .tribe-events-loop .tribe-events-content p{margin:0}.events-archive h3 .published,.single-tribe_venue h3 .published{font-size:18px;font-style:italic;margin-top:0;text-transform:none}.tribe-events-event-day,.tribe-events-event-meta-desc{color:#333}.single-tribe_events .tribe-events-single-event-title{font-size:1.7em;line-height:1;margin:0;padding:0}#tribe-events-content .tribe-events-single-event-description .attachment-post-thumbnail{display:block;margin-left:auto;margin-right:auto;text-align:center}.tribe-events-meta-group .tribe-events-single-section-title{font-size:1.4em;font-weight:700;margin:20px 0 10px}.tribe-events-meta-group+.tribe-events-single-section-title{margin-top:0}.tribe-events-event-meta .tribe-events-meta-group address.tribe-events-address{display:block;margin:0}#eventbrite-embed{margin:24px 0;min-height:225px;width:100%}.eventbrite-ticket-embed{margin:0 0 30px}.tribe-events-schedule{margin:20px 0 0}.single-tribe_events .tribe-events-schedule .recurringinfo,.single-tribe_events .tribe-events-schedule .tribe-events-cost,.single-tribe_events .tribe-events-schedule .tribe-events-divider{font-size:1.2em}.single-tribe_events .tribe-events-schedule h3{display:inline;display:inline-block;font-size:1.2em;margin:0;padding:0;vertical-align:middle;white-space:nowrap;zoom:1}.single-tribe_events .tribe-events-schedule .tribe-events-cost{vertical-align:middle}.single-tribe_events .tribe-events-event-image{clear:both;margin-bottom:30px;text-align:center}.single-tribe_events .tribe-events-event-meta{background:#fafafa;border:1px solid #eee;margin:30px 0}.single-tribe_events .tribe-events-venue-map{background:#eee;border:1px solid #ddd;border-radius:3px;display:inline-block;float:right;margin:20px 4% 2% 0;padding:5px;vertical-align:top;width:90%;zoom:1}.single-tribe_events .tribe-events-meta-group+.tribe-events-meta-group+.tribe-events-meta-group-gmap{clear:both;display:block;float:none;width:auto}.single-tribe_events .tribe-events-meta-group+.tribe-events-meta-group+.tribe-events-meta-group-gmap .tribe-events-venue-map{float:none;width:100%}.single-tribe_events .secondary .tribe-events-venue-map{width:58%}.single-tribe_events .tribe-events-event-meta{font-size:13px}.single-tribe_events .tribe-events-event-meta dl{margin:0}.single-tribe_events #tribe-events-content .tribe-events-event-meta dt{clear:left;font-weight:700;line-height:1;list-style:none}.single-tribe_events #tribe-events-content .tribe-events-event-meta dd{float:none;line-height:1.5;list-style:none;margin:0 0 10px;padding:0}.tribe-events-event-meta .column,.tribe-events-event-meta .tribe-events-meta-group{box-sizing:border-box;display:inline-block;float:left;margin:0 0 20px;padding:0 4%;text-align:left;vertical-align:top;width:33.3333%;zoom:1}#tribe-events-content .tribe-events-event-meta dd span.adr{display:block}.single-tribe_events .tribe-events-content{max-width:100%;padding:0;width:100%}.sidebar.single-tribe_events .tribe-events-content{padding:0}.tribe-events-day .tribe-events-day-time-slot h5{background-color:#eee;font-size:14px;font-weight:700;margin:2.5em 0 0;padding:6px 10px;text-transform:uppercase}.tribe-events-day .tribe-events-day-time-slot .type-tribe_events{margin-left:5%}.tribe-events-day .tribe-event-featured{background:#0ea0d7;margin-bottom:32px;margin-bottom:2rem;padding:0 24px 16px;padding:0 1.5rem 1rem}.tribe-events-day .tribe-event-featured .tribe-events-content{display:block;float:none;width:auto}.tribe-events-day .tribe-event-featured.tribe-events-first{padding-top:0}.tribe-events-day .tribe-event-featured .tribe-events-event-image{display:block;float:none;margin:0 -24px;margin:0 -1.5rem;width:auto}.tribe-events-day .tribe-event-featured .tribe-events-list-event-title{display:inline-block;margin-top:24px;margin-top:1.5rem}.tribe-events-day .tribe-event-featured .tribe-events-list-event-title a{color:#fff}.tribe-events-day .tribe-event-featured .tribe-events-event-meta{background-color:transparent;color:hsla(0,0%,100%,.7);font-weight:400}.tribe-events-day .tribe-event-featured .tribe-events-content{color:hsla(0,0%,100%,.9)}.tribe-events-day .tribe-event-featured a{color:hsla(0,0%,100%,.7)}.tribe-events-day .tribe-event-featured a:active,.tribe-events-day .tribe-event-featured a:hover{color:hsla(0,0%,100%,.9)}.tribe-events-day .tribe-event-featured .tribe-events-event-cost{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;float:none;margin:30px 0}.tribe-events-day .tribe-event-featured .tribe-events-event-cost span{border:0;color:#fff;background:hsla(0,0%,100%,.1);display:block;font-style:normal;font-weight:700;line-height:1;padding:10px;text-align:center;text-overflow:ellipsis}.tribe-events-day .tribe-event-featured .tribe-events-event-cost .ticket-cost{background:hsla(0,0%,100%,.2)}.tribe-events-day .tribe-event-featured .tribe-events-event-cost .tribe-tickets-left{font-style:italic;font-weight:400;margin-left:1px}.tribe-events-day .tribe-event-featured .tribe-events-event-cost .tribe-out-of-stock{background:#f0f0f0;border-left:none;color:#727272;font-style:italic;font-weight:400}.tribe-events-day .tribe-event-featured .tribe-events-event-cost .tribe-ticket-cost{margin:0}.tribe-events-day .tribe-event-featured .tribe-events-event-cost .tribe-button{color:#000;font-weight:700}.tribe-events-day .tribe-event-featured .tribe-events-event-cost .tribe-button:hover{color:#0ea0d7}.tribe-events-day .tribe-event-featured .tribe-events-event-cost .tribe-button:active{color:#000}.tribe-events-day .tribe-event-featured .tribe-button{background:#fff;color:#0ea0d7}.tribe-events-day .type-tribe_events{margin-left:0}.tribe-events-day .tribe-events-event-image{display:inline-block;float:left;margin:0 3% 0 0;width:30%}.tribe-events-day .tribe-events-content{display:inline-block;float:right;padding:0;width:67%}#tribe-events-content table.tribe-events-calendar{border-collapse:collapse;clear:both;font-size:12px;margin:12px 0 .6em;table-layout:fixed;width:100%}#tribe-events-content table.tribe-events-calendar .type-tribe_events.tribe-event-featured{background:#0ea0d7;margin:0;padding:6px 14px;padding:6px calc(5% + 8px)}.events-archive.events-gridview #tribe-events-content table.tribe-events-calendar .type-tribe_events.tribe-event-featured{margin:0;padding:6px 14px;padding:6px calc(5% + 8px)}#tribe-events-content table.tribe-events-calendar .type-tribe_events.tribe-event-featured .tribe-events-month-event-title a{color:#fff}#tribe-events-content table.tribe-events-calendar .type-tribe_events.tribe-event-featured .tribe-events-month-event-title a:active,#tribe-events-content table.tribe-events-calendar .type-tribe_events.tribe-event-featured .tribe-events-month-event-title a:hover{color:#eee}#tribe-events-content .tribe-events-calendar td,#tribe-events-content table.tribe-events-calendar{border:1px solid #bbb}#tribe-events-content .tribe-events-calendar td{box-sizing:border-box;color:#114b7d;font-size:12px;height:145px;padding:0 0 .5em;vertical-align:top;width:14.28%}.tribe-events-calendar div[id*=tribe-events-daynum-],.tribe-events-calendar div[id*=tribe-events-daynum-] a{background-color:#f5f5f5;color:#333;font-size:11px;font-weight:700}.tribe-events-calendar td.tribe-events-present div[id*=tribe-events-daynum-],.tribe-events-calendar td.tribe-events-present div[id*=tribe-events-daynum-]>a{background-color:#666;color:#fff}.tribe-events-calendar td.tribe-events-past div[id*=tribe-events-daynum-],.tribe-events-calendar td.tribe-events-past div[id*=tribe-events-daynum-]>a{color:#999}.recurring-info-tooltip,.tribe-events-calendar .tribe-events-tooltip,.tribe-events-shortcode.view-week .tribe-events-tooltip,.tribe-events-week .tribe-events-tooltip{background-color:#f9f9f9;border:1px solid #666;bottom:30px;color:#333;display:none;left:3px;line-height:1.4;position:absolute;width:320px;z-index:1001}.tribe-events-tooltip .tribe-events-arrow{background-image:url(../images/tribe-tooltips.png);background-position:0 0;background-repeat:no-repeat;background-size:44px 19px;bottom:-11px;display:block;height:11px;left:20px;position:absolute;width:18px}.recurring-info-tooltip,.tribe-events-calendar .tribe-events-right .tribe-events-tooltip,.tribe-events-shortcode.view-week .tribe-events-right .tribe-events-tooltip,.tribe-events-week .tribe-events-right .tribe-events-tooltip{left:auto;right:3px}.tribe-events-right .tribe-events-tooltip .tribe-events-arrow{left:auto;right:30px}.tribe-events-tooltip ol,.tribe-events-tooltip ul{margin-left:1.6em}.tribe-events-tooltip .tribe-events-event-body .tribe-events-event-thumb img{max-height:150px;max-width:150px}.tribe-events-tooltip.tribe-events-tooltip-flipdown:before{border:10px solid transparent;border-bottom-color:#666;content:" ";display:block;height:0;left:17px;position:absolute;top:-21px;width:0;z-index:2}.tribe-events-tooltip.tribe-events-tooltip-flipdown .tribe-events-arrow{display:none}.tribe-events-right .tribe-events-tooltip.tribe-events-tooltip-flipdown:before{left:auto;right:43px}.recurringinfo{*display:inline;display:inline-block;position:relative;vertical-align:middle;zoom:1}.event-is-recurring{color:rgba(0,0,0,.7);font-style:normal;font-weight:500;position:relative}.event-is-recurring:hover{color:#000}.tribe-event-featured .event-is-recurring{color:hsla(0,0%,100%,.7)}.tribe-event-featured .event-is-recurring:hover{color:#fff}.tribe-event-featured .event-is-recurring div{color:rgba(0,0,0,.7)}.recurring-info-tooltip.tribe-events-tooltip{left:10px;padding-bottom:.8em;width:200px}.events-archive.events-gridview #tribe-events-content table .type-tribe_events{border-bottom:1px solid #e7e7e7;margin:0 5%;padding:6px 8px}.events-archive.events-gridview #tribe-events-content table .tribe-events-last{border-bottom:0}.tribe-events-viewmore{border-top:1px solid #e7e7e7;font-weight:700;line-height:1;margin:0 5%;padding:9px 8px}.tribe-events-calendar td .tribe-events-viewmore a{font-size:90%;white-space:nowrap}.tribe-events-calendar td div[id*=tribe-events-daynum-]{line-height:1.2;padding:6px 9px}.tribe-events-calendar td a{font-size:91.7%}.tribe-events-calendar th{background-color:#ddd;color:#333;height:10px;letter-spacing:1px;padding:4px 0;text-align:center;text-transform:uppercase;width:14.28%}.tribe-events-calendar div[id*=tribe-events-daynum-],.tribe-events-calendar div[id*=tribe-events-event-]{margin:0;position:relative}.tribe-events-calendar div[id*=tribe-events-event-] h3.tribe-events-month-event-title a{font-size:100%}#tribe-events-content .tribe-events-calendar div[id*=tribe-events-event-] h3.tribe-events-month-event-title{font-family:sans-serif;font-size:98%;font-weight:400;line-height:1.25;margin:0;overflow:hidden;padding:3%;text-transform:none}#tribe-events-content .tribe-events-tooltip h4{background-color:#666;color:#fff;font-size:12px;font-weight:400;letter-spacing:1px;line-height:24px;margin:0;min-height:24px;padding:0 6px}.tribe-events-tooltip .tribe-events-event-body{font-size:11px;font-weight:400;padding:3px 6px 6px}.tribe-events-tooltip .duration{font-style:italic;margin:3px 0}.tribe-events-tooltip:not(.tribe-event-featured) .tribe-events-event-thumb{padding:5px 5px 5px 0}.tribe-events-tooltip.tribe-event-featured .tribe-events-event-thumb{padding:2px 0 8px}.tribe-events-tooltip .tribe-events-event-thumb{float:left}.tribe-events-tooltip .tribe-events-event-thumb img{box-shadow:none}.tribe-events-tooltip p.entry-summary{font-size:11px;line-height:1.5;padding:0}#tribe-mobile-container{display:none}.tribe-events-list-widget ol li{list-style:none;margin-bottom:8px;margin-bottom:.5rem}.tribe-events-list-widget .tribe-list-widget{margin-left:0}.tribe-events-list-widget .tribe-events-list-widget-events{padding:0 24px;padding:0 1.5rem;margin-bottom:20px;margin-bottom:1.25rem}.tribe-events-list-widget .tribe-event-title{margin-bottom:4px;margin-bottom:.25rem;margin-top:0}.tribe-events-list-widget .duration{font-weight:700}.tribe-events-list-widget .tribe-event-featured{background:#0ea0d7;padding-bottom:12px;padding-bottom:.75rem}.tribe-events-list-widget .tribe-event-featured .tribe-event-title{margin-top:12px;margin-top:.75rem}.tribe-events-list-widget .tribe-event-featured .tribe-event-title a{color:#fff}.tribe-events-list-widget .tribe-event-featured .tribe-event-image{margin-left:-24px;margin-left:-1.5rem;margin-right:-24px;margin-right:-1.5rem}.tribe-events-list-widget .tribe-event-featured .tribe-event-duration{color:#fff}.datepicker table tr td span,.datepicker td{border-radius:0}.datepicker td{border-top:1px solid #ededed}.datepicker table tr td.active.active,.datepicker table tr td span.active.active{background:#666}.datepicker table tr td.active.active:hover,.datepicker table tr td span.active.active:hover{background:#dadada;color:inherit}#tribe-events-bar{clear:none;height:auto;margin-bottom:30px;min-width:220px;position:relative;width:100%}#tribe-events-bar *{box-sizing:border-box}#tribe-bar-form{background:#f5f5f5;margin:0;position:relative;width:100%}#tribe-bar-form input{font-size:15px;margin:0 4px 0 0}#tribe-bar-form input[type=text]{background:0;border:none;border-bottom:1px dashed #b9b9b9;border-radius:0;box-shadow:none;font-style:italic;font-weight:400;height:auto;line-height:1;padding:5px;width:100%}#tribe-bar-form input[type=text]:focus{border-bottom:none;outline:1px dashed #b9b9b9}#tribe-bar-form .tribe-bar-submit input[type=submit]{-webkit-appearance:button;background:#666;background-image:none;border:none;border-radius:0;color:#fff;font-size:13px;height:auto;letter-spacing:0;line-height:2;padding:10px;width:100%}#tribe-bar-form label{display:block;font-size:11px;font-weight:700;line-height:1;margin:0 0 5px;padding:0;text-transform:uppercase}#tribe-bar-form .tribe-bar-filters{float:left;margin:0;position:relative;width:100%}#tribe-bar-form #tribe-bar-views+.tribe-bar-filters{left:auto;right:16.66667%;width:83.3333%}#tribe-bar-form .tribe-bar-filters-inner{margin:0}#tribe-bar-form #tribe-bar-views{background:transparent;float:left;left:83.3333%;margin:0;padding:0 0 0 5px;position:relative;right:auto;width:16.66667%}#tribe-bar-form .tribe-bar-views-inner label{padding:0 15px;text-align:left}#tribe-bar-form.tribe-bar-mini #tribe-bar-views{width:16.66667%}input[name*=tribe-bar-]::-webkit-input-placeholder{color:#5f5f5f;font-style:italic;font-weight:400;line-height:1.3}input[name*=tribe-bar-]:-moz-placeholder{color:#5f5f5f;font-style:italic;font-weight:400;line-height:1.3}.tribe-event-placeholder{color:#5f5f5f;font-weight:400;font-style:italic;line-height:1.3}#tribe-bar-dates .select2-choice{border-bottom:1px dashed #b9b9b9}.tribe-bar-date-filter{float:left;margin-bottom:0;padding:15px;width:25%}.tribe-bar-search-filter{float:left;margin-bottom:0;padding:15px;width:33.3333%}.tribe-bar-submit{float:left;margin-bottom:0;margin-left:16.6667%;padding:15px;width:25%}.tribe-bar-submit input[type=submit]:hover{background:#999;color:#fff}#tribe-bar-views:hover,#tribe-bar-views label:hover{cursor:pointer}.tribe-bar-views-inner{background:#e0e0e0;margin:0;padding:15px 0 45px}.tribe-bar-views-inner .select2-container{padding:0 15px}.tribe-select2-results-views.select2-drop{background:#dbdbdb;border:none;box-shadow:none;z-index:10001}#tribe-bar-views .tribe-bar-views-list{border-radius:0 0 3px 3px;left:0;list-style-type:none;margin:0;padding:0 0 0 5px;position:absolute;top:auto;z-index:99}#tribe-bar-views li.tribe-bar-views-option{background:none;border:none;box-shadow:none;display:none;filter:"progid:DXImageTransform.Microsoft.gradient(enabled=false)";line-height:14px;list-style:none;margin:0;padding:0 5px 0 0;padding:0}#tribe-bar-views.tribe-bar-views-open .tribe-bar-views-option,#tribe-bar-views .tribe-bar-views-option.tribe-bar-active,#tribe-bar-views .tribe-bar-views-option:first-child{display:list-item}#tribe-bar-views .tribe-bar-views-list .tribe-bar-views-option a{background:#e0e0e0;color:#444;display:block;padding:6px 15px;text-align:left;text-decoration:none}#tribe-bar-views .tribe-bar-views-list .tribe-bar-views-option a:hover{background:#cacaca;color:inherit}#tribe-bar-views .tribe-bar-views-list .tribe-bar-views-option.tribe-bar-active a:hover{background:#e0e0e0}#tribe-bar-views .tribe-bar-views-option:last-child a{border-radius:0 0 3px 3px}#tribe-bar-views [name=tribe-bar-view]{display:none}#tribe-bar-views .tribe-bar-views-list{float:left;width:100%}#tribe-bar-views .tribe-bar-settings{display:none}.tribe-no-js #tribe-bar-views [name=tribe-bar-view]{display:block}#tribe-bar-form.tribe-bar-mini *{font-size:12px}#tribe-bar-form.tribe-bar-mini label{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#tribe-bar-form.tribe-bar-mini .tribe-bar-submit input[type=submit]{-webkit-appearance:button;font-size:11px;padding:10px 5px}.tribe-bar-mini .tribe-bar-filters{float:left;width:83.3333%}.tribe-bar-mini .tribe-bar-date-filter{padding:10px}.tribe-bar-mini .tribe-bar-search-filter{padding:10px;width:45%}.tribe-bar-mini .tribe-bar-submit{margin-left:5%;padding:10px;width:25%}.tribe-bar-mini #tribe-bar-views{width:16.66667%}.tribe-bar-mini #tribe-bar-views .tribe-bar-views-list .tribe-bar-views-option a{padding:4px 15px}.tribe-bar-mini .tribe-bar-views-inner{padding:10px 0 35px}.tribe-bar-mini .tribe-bar-views-inner label{padding:0 10px}#tribe-bar-collapse-toggle{background:#f5f5f5;display:none;float:left;font-size:13px;font-weight:700;line-height:28px;padding:15px;position:relative;text-transform:uppercase}#tribe-bar-collapse-toggle:hover{cursor:pointer}#tribe-bar-collapse-toggle.tribe-bar-filters-open span.tribe-bar-toggle-arrow:after{border-bottom-color:inherit;border-top-color:transparent;top:0}#tribe-bar-collapse-toggle span.tribe-bar-toggle-arrow{display:inline-block;margin:0 4px;position:absolute;right:10px}#tribe-bar-collapse-toggle span.tribe-bar-toggle-arrow:after{border:solid transparent;border-color:rgba(136,183,213,0);border-top-color:inherit;border-width:8px;content:" ";height:0;pointer-events:none;position:absolute;right:0;top:10px;width:0}.tribe-bar-collapse #tribe-bar-views,.tribe-bar-collapse .tribe-bar-filters-inner>div{height:auto;margin:0;width:100%}.tribe-bar-collapse #tribe-bar-collapse-toggle{display:block;width:70%}.tribe-bar-collapse #tribe-bar-collapse-toggle.tribe-bar-collapse-toggle-full-width{width:100%}#tribe-bar-form.tribe-bar-collapse #tribe-bar-views{float:left;left:auto;width:30%}#tribe-bar-form.tribe-bar-collapse #tribe-bar-views+.tribe-bar-filters{clear:both;display:none;left:auto;margin-top:5px;overflow:hidden;right:auto;width:100%}#tribe-bar-form.tribe-bar-collapse .tribe-bar-views-inner{padding:10px 0 40px}#tribe-bar-form.tribe-bar-collapse .tribe-bar-views-inner label{margin:0}.tribe-bar-disabled{float:right;position:relative;z-index:101}.tribe-bar-disabled .tribe-events-page-title{clear:none;line-height:45px;margin:0;text-align:left}.tribe-bar-disabled #tribe-events-bar{float:none;min-width:0;width:auto}.tribe-bar-disabled #tribe-bar-form{border-radius:3px;width:auto}.tribe-bar-disabled .tribe-bar-filters{float:left}.tribe-bar-disabled .tribe-bar-filters .tribe-bar-date-filter{padding:5px 10px}.tribe-bar-disabled #tribe-bar-form label{font-size:10px}.tribe-bar-disabled #tribe-bar-form .tribe-bar-filters input[type=text]{border:none;display:block;font-size:13px;line-height:15px;margin:0;padding:0;width:85px}.tribe-bar-disabled #tribe-bar-form #tribe-bar-views{float:left;font-size:16px;left:50%;padding:0;right:auto;width:50%}.tribe-bar-disabled #tribe-bar-form #tribe-bar-views+.tribe-bar-filters{left:auto;right:50%;width:50%}.tribe-bar-disabled #tribe-bar-form .tribe-bar-views-inner label{padding:0 10px}.tribe-bar-disabled .tribe-bar-views-inner{border-radius:0 3px 3px 0;min-width:100px;padding:5px 0 25px}.tribe-bar-disabled #tribe-bar-views .tribe-bar-views-list,.tribe-bar-disabled #tribe-bar-views .tribe-bar-views-list .tribe-bar-views-option{margin:0}.tribe-bar-disabled #tribe-bar-views .tribe-bar-views-list .tribe-bar-views-option a{margin:0;padding:4px 10px}.tribe-bar-disabled #tribe-bar-views .select2-container .select2-choice{font-size:13px;height:auto;line-height:18px}.tribe-bar-disabled .tribe-select2-results-views.select2-drop .select2-results li{padding:0 10px}.tribe-bar-disabled #tribe-bar-collapse-toggle,.tribe-bar-disabled .tribe-bar-submit{display:none}.tribe-bar-disabled .tribe-bar-date-filter,.tribe-events-uses-geolocation .tribe-bar-disabled .tribe-bar-date-filter{width:auto}.tribe-bar-view-list a[class*=tribe-icon-],.tribe-bar-views-list span[class^=tribe-icon-],.tribe-select2-results-views span[class^=tribe-icon-]{background-position:0 50%;background-repeat:no-repeat;display:block;min-height:16px;padding-left:24px}.tribe-select2-results-views span[class^=tribe-icon-]{display:inline-block;min-height:16px}.tribe-bar-views-list span[class^=tribe-icon-],.tribe-select2-results-views span[class^=tribe-icon-]{background-image:url(../images/events-bar/icon-month.png);background-size:15px 16px}.tribe-bar-view-list span[class^=tribe-icon-],.tribe-bar-views-list span.tribe-icon-list,.tribe-select2-results-views span.tribe-icon-list{background-image:url(../images/events-bar/icon-list.png);background-size:15px 10px}.tribe-bar-view-list a.tribe-icon-list,.tribe-bar-view-list a.tribe-icon-month{background-position:10px 50%;padding-left:30px}.tribe-bar-view-list a.tribe-icon-month,.tribe-bar-views-list span.tribe-icon-month,.tribe-select2-results-views .tribe-icon-month{background-image:url(../images/events-bar/icon-month.png);background-size:15px 16px}.tribe-bar-views-list span.tribe-icon-week,.tribe-select2-results-views span.tribe-icon-week{background-image:url(../images/events-bar/icon-week.png);background-size:15px 16px}.tribe-bar-views-list span.tribe-icon-day,.tribe-select2-results-views span.tribe-icon-day{background-image:url(../images/events-bar/icon-day.png);background-size:15px 16px}.tribe-bar-views-list span.tribe-icon-photo,.tribe-select2-results-views span.tribe-icon-photo{background-image:url(../images/events-bar/icon-photo.png);background-size:15px 14px}.tribe-bar-views-list span.tribe-icon-map,.tribe-select2-results-views span.tribe-icon-map{background-image:url(../images/events-bar/icon-map.png);background-position:2px 50%;background-size:12px 16px}.tribe-events-week.tribe-theme-parent-twentyfourteen #masthead,.tribe-events-week.tribe-theme-twentyfourteen #masthead{z-index:1001}.tribe-theme-parent-twentyfourteen #tribe-events-pg-template #tribe-events,.tribe-theme-twentyfourteen #tribe-events-pg-template #tribe-events{padding:20px}.tribe-theme-parent-twentyfourteen #tribe-bar-views .tribe-bar-views-list,.tribe-theme-twentyfourteen #tribe-bar-views .tribe-bar-views-list{z-index:3}#tribe-events-content .tribe-updated{display:inherit}.tribe-theme-twentyfifteen #tribe-events{background:#fff;margin:0 8.333%;padding-top:8.333%}.tribe-theme-twentyfifteen .tribe-events-single-event-title{font-size:39px}.tribe-theme-twentyfifteen.events-single.tribe-events-page-template #tribe-events-pg-template{padding-top:8.3333%}.tribe-theme-twentyfifteen.events-single.tribe-events-page-template #tribe-events-content{padding:8.3333% 10%}.tribe-theme-twentyfifteen.single-tribe_events #tribe-events .tribe_events{box-shadow:none;margin-left:0;margin-right:0;padding-top:0}.tribe-theme-twentyfifteen.single-tribe_events #tribe-events .tribe-events-schedule h2{display:inline-block;font-size:1.2em;margin:0}.tribe-theme-twentyfifteen.single-tribe_events .tribe-events-single{box-shadow:none;margin:0}.tribe-theme-twentyfifteen.tribe-events-week .tribe-events-grid .hentry{margin-left:0;margin-right:0}.tribe-theme-twentyfifteen .tribe-events-list-widget .type-tribe_events{border-top:1px solid rgba(51,51,51,.1);box-shadow:none;margin-left:0;margin-right:0}.tribe-theme-twentyfifteen .tribe-events-list-widget .entry-title{font-size:22px;line-height:1.4545}.tribe-theme-twentyfifteen.tribe-events-page-template #tribe-events-content-wrapper{padding:3.333%}.tribe-theme-twentyfifteen .tribe-events-list .type-tribe_events,.tribe-theme-twentyfifteen .tribe-events-list .type-tribe_events.tribe-events-first{padding:8.333% 10%}.tribe-theme-twentyfifteen .tribe-events-list .time-details,.tribe-theme-twentyfifteen .tribe-events-list .tribe-events-venue-details{line-height:1.6}.tribe-theme-twentyfifteen .tribe-events-day-time-slot .type-tribe_events{margin-left:0}.tribe-theme-twentyfifteen .type-tribe_events a.more-link{display:none}.tribe-theme-twentyfifteen .datepicker.dropdown-menu{max-width:340px}.tribe-theme-twentyfifteen .datepicker.dropdown-menu table,.tribe-theme-twentyfifteen .datepicker.dropdown-menu table.table-condensed{border-left-width:0;border-top-width:0}.tribe-theme-twentyfifteen .tribe-events-calendar td a,.tribe-theme-twentyfifteen .tribe-events-nav-next a,.tribe-theme-twentyfifteen .tribe-events-nav-previous a,.tribe-theme-twentyfifteen ul.tribe-bar-views-list li a{border-bottom:none}.tribe-theme-twentyfifteen.events-archive .entry-footer,.tribe-theme-twentyfifteen.single-tribe_events .entry-footer{display:none}.tribe-theme-twentysixteen table.tribe-events-calendar{table-layout:auto}.tribe-theme-twentysixteen .tribe-events-single-section-title:first-child{margin-top:20px}.tribe-theme-twentysixteen .tribe-events-content.entry-summary{font-size:inherit;margin-bottom:0;margin-top:5px}.tribe-theme-twentysixteen.events-archive .entry-content,.tribe-theme-twentysixteen.events-archive .entry-header{width:auto}.tribe-theme-twentysixteen .datepicker table{border:0;width:auto}.tribe-theme-twentysixteen .entry-content a{box-shadow:none}.tribe-theme-twentysixteen h2.tribe-events-list-event-title{clear:none}.tribe-theme-twentyseventeen .entry-content a{box-shadow:none}.screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px;word-wrap:normal!important}@media screen and (max-width:767px){.single-tribe_events .secondary .tribe-events-venue-map{width:90%}}@media screen and (min-width:44.375em){.tribe-events-day .tribe-events-content{margin-left:0;margin-right:0}}@media screen{#tribe-events-content .tribe-events-tooltip ol,#tribe-events-content .tribe-events-tooltip ul{margin-left:1.6em}}@media screen and (min-width:1000px){.tribe-theme-parent-twentyfourteen #tribe-events-pg-template,.tribe-theme-twentyfourteen #tribe-events-pg-template{padding-left:220px}}@media screen and (max-width:400px){.list-view.events-archive .site-content .type-page .entry-content{display:inline;display:initial}}@media (-o-min-device-pixel-ratio:2/1),(-webkit-min-device-pixel-ratio:2),(min--moz-device-pixel-ratio:2),(min-device-pixel-ratio:2){.tribe-events-tooltip .tribe-events-arrow{background-image:url(../images/tribe-tooltips@2x.png)}#tribe-bar-filters .tribe-bar-button-search .tribe-bar-btn-small{background-image:url(../images/events-bar/icon-search@2x.png)}#tribe-events-bar .tribe-bar-button-settings span{background-image:url(../images/events-bar/icon-gear@2x.png)}#tribe-events-bar [class^=tribe-bar-button-]:after{background-image:url(../../../common/vendor/select2/select2x2.png)}.tribe-bar-view-list a[class^=tribe-icon-],.tribe-bar-views-list span[class^=tribe-icon-],.tribe-select2-results-views span[class^=tribe-icon-]{background-image:url(../images/events-bar/icon-month@2x.png)}.tribe-bar-view-list span[class^=tribe-icon-],.tribe-bar-views-list span.tribe-icon-list,.tribe-select2-results-views span.tribe-icon-list{background-image:url(../images/events-bar/icon-list@2x.png)}.tribe-bar-view-list a.tribe-icon-month,.tribe-bar-views-list span.tribe-icon-month,.tribe-select2-results-views span.tribe-icon-month{background-image:url(../images/events-bar/icon-month@2x.png)}.tribe-bar-views-list span.tribe-icon-week,.tribe-select2-results-views span.tribe-icon-week{background-image:url(../images/events-bar/icon-week@2x.png)}.tribe-bar-views-list span.tribe-icon-day,.tribe-select2-results-views span.tribe-icon-day{background-image:url(../images/events-bar/icon-day@2x.png)}.tribe-bar-views-list span.tribe-icon-photo,.tribe-select2-results-views span.tribe-icon-photo{background-image:url(../images/events-bar/icon-photo@2x.png)}.tribe-bar-views-list span.tribe-icon-map,.tribe-select2-results-views span.tribe-icon-map{background-image:url(../images/events-bar/icon-map@2x.png)}}
src/resources/css/tribe-events-skeleton.css CHANGED
@@ -646,6 +646,14 @@ select.tribe-events-dropdown {
646
  right: 30px;
647
  }
648
 
 
 
 
 
 
 
 
 
649
  /* Recurring info tooltip */
650
 
651
  .recurringinfo {
646
  right: 30px;
647
  }
648
 
649
+ /** For when a tooltip is near top edge of viewport, so displays below event title instead of above it. */
650
+
651
+ .tribe-events-tooltip.tribe-events-tooltip-flipdown .tribe-events-arrow {
652
+ top: -11px;
653
+ -webkit-transform: rotate(180deg);
654
+ transform: rotate(180deg);
655
+ }
656
+
657
  /* Recurring info tooltip */
658
 
659
  .recurringinfo {
src/resources/css/tribe-events-skeleton.min.css CHANGED
@@ -1 +1 @@
1
- .tribe-events-back{margin:0 0 20px}.events-list .tribe-events-back.tribe-events-loop{margin:0 auto 20px}.tribe-events-read-more{display:block}.event .entry-title{line-height:inherit;padding:inherit}.updated-info{text-indent:-9999px;height:0}.tribe-events-event-schedule-details{display:inline}.events-archive .entry-content,.events-archive .entry-header{width:98%}.events-archive span.edit-link{display:none}.tribe-events-notices{background:#d9edf7;border:1px solid #bce8f1;color:#3a87ad;margin:10px 0 18px;padding:8px 35px 8px 14px;text-shadow:0 1px 0 #fff;border-radius:4px}div.tribe-events-notices>ul,div.tribe-events-notices>ul>li{margin:0;padding:0;list-style:none}.clearfix:after,.clearfix:before,.tribe-clearfix:after,.tribe-clearfix:before{content:"";display:table}.clearfix:after,.tribe-clearfix:after{clear:both}.clearfix,.tribe-clearfix{zoom:1}.tribe-clear{clear:both}.tribe-events-visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tribe-hide-text{text-indent:100%;white-space:nowrap;overflow:hidden}.tribe-events-error{display:none}.tribe-events-multi-event-day{color:#0f81bb}#tribe-events-content .tribe-events-abbr{border-bottom:0;cursor:default}.tribe-events-spinner{width:32px;height:32px;margin-left:-16px}.tribe-events-spinner-medium{width:24px;height:24px;margin-left:-12px}.tribe-events-spinner-small{width:16px;height:16px;margin-left:-8px}*+html .events-archive h2.tribe-events-page-title{padding-bottom:30px}*+html .events-archive .tribe-events-list h2.tribe-events-page-title{padding-bottom:0}*+html #tribe-events-header{margin-bottom:30px}h2.tribe-events-page-title{position:relative;z-index:0;text-align:center}.tribe-events-filter-view .tribe-events-list h2.tribe-events-page-title{width:100%;float:none}h2.tribe-events-page-title a{color:#000}h2.tribe-events-page-title a:focus,h2.tribe-events-page-title a:hover{color:#333;text-decoration:underline}#tribe-events-footer,#tribe-events-header{margin-bottom:.5em;overflow:hidden}#tribe-events-footer .tribe-events-sub-nav,#tribe-events-header .tribe-events-sub-nav{list-style-type:none;margin:0;overflow:hidden;line-height:normal;text-align:center}#tribe-events-footer .tribe-events-sub-nav li,#tribe-events-header .tribe-events-sub-nav li{display:inline-block;zoom:1;*display:inline;margin:0;vertical-align:middle}#tribe-events-footer .tribe-events-sub-nav .tribe-events-nav-previous,#tribe-events-header .tribe-events-sub-nav .tribe-events-nav-previous{margin-right:5px}#tribe-events-footer .tribe-events-sub-nav .tribe-events-nav-next,#tribe-events-header .tribe-events-sub-nav .tribe-events-nav-next{margin-left:5px}#tribe-events-footer .tribe-events-sub-nav .tribe-events-nav-left,#tribe-events-header .tribe-events-sub-nav .tribe-events-nav-left{text-align:left}#tribe-events-footer .tribe-events-sub-nav .tribe-events-nav-right,#tribe-events-header .tribe-events-sub-nav .tribe-events-nav-right{text-align:right}.tribe-events-ajax-loading{display:none;position:absolute;left:50%;box-shadow:none}.tribe-events-loading .tribe-events-ajax-loading{display:block}#tribe-events-footer{margin-bottom:1em}.events-list #tribe-events-footer,.tribe-events-day #tribe-events-footer,.tribe-events-map #tribe-events-footer{margin:1.25em 0 18px}.single-tribe_events #tribe-events-header,.tribe-events-map #tribe-events-header{margin:24px 0 14px}.single-tribe_events #tribe-events-footer li,.single-tribe_events #tribe-events-header li{width:48%;padding-bottom:10px}#tribe-events-content ul.tribe-events-sub-nav{list-style-type:none;margin:0;overflow:hidden;text-align:center}#tribe-events-content ul.tribe-events-sub-nav li{display:inline-block;zoom:1;*display:inline;margin:0;vertical-align:middle}#tribe-events-content ul.tribe-events-sub-nav li.tribe-events-nav-prev{margin-right:5px}#tribe-events-content ul.tribe-events-sub-nav li.tribe-events-nav-next{margin-left:5px}#tribe-events-content li.tribe-events-nav-date{padding-top:16px}select.tribe-events-dropdown{width:auto;font-size:11px;margin:33px 9px 0 0}#tribe-events-events-picker,#tribe-events-picker{display:inline}.tribe-events-day .tribe-events-day-time-slot h5{text-transform:uppercase;font-weight:700;font-size:14px;margin:2.5em 0 0}.tribe-events-day .tribe-events-day-time-slot .type-tribe_events{margin-left:5%}#tribe-events-content{position:relative;margin-bottom:48px;padding:2px 0}#tribe-events-content.tribe-events-list{padding:0}.tribe-events-list h2.tribe-events-page-title{margin-bottom:15px}#tribe-events-content.tribe-events-list{margin-bottom:60px}.tribe-events-list .type-tribe_events.tribe-events-first{padding-top:0}.tribe-events-list .type-tribe_events h2{padding:0;line-height:1.2}.tribe-events-loop .tribe-events-event-meta{float:none;clear:both;border:0;margin:0 0 15px;padding:0;line-height:1.5;font-weight:400;font-size:1.2em;overflow:visible}.tribe-events-list .tribe-events-loop .tribe-events-event-meta .recurringinfo{display:inline-block;zoom:1;*display:inline;white-space:pre}.tribe-events-event-meta address.tribe-events-address{display:inline}.tribe-events-list .tribe-events-loop .tribe-events-event-meta .event-is-recurring{position:relative}.tribe-events-list .time-details,.tribe-events-list .tribe-events-venue-details{line-height:1.2;margin:0;display:block}.tribe-events-list .time-details{margin:0 0 8px}.tribe-events-loop{clear:both}.tribe-events-loop .type-tribe_events.tribe-events-last{border-bottom:0}.tribe-events-list .tribe-events-loop .tribe-events-content{clear:both;width:100%;padding:0}.events-archive h3 .published,.single-tribe_venue h3 .published{margin-top:0;font-style:italic;text-transform:none}.tribe-events-loop .tribe-events-event-meta dl{margin:0}.tribe-events-loop .tribe-events-event-meta dt{font-weight:700;padding-right:12px;width:auto}.tribe-events-loop .tribe-events-event-meta dd{margin-bottom:.25em;margin-left:6.5em}.single-tribe_events #tribe-events-content{padding:0}.single-tribe_events .tribe-events-schedule .recurringinfo,.single-tribe_events .tribe-events-schedule .tribe-events-cost{margin-right:10px}#tribe-events-content .tribe-events-single-event-description img.attachment-post-thumbnail{margin-left:auto;margin-right:auto;display:block;text-align:center}.tribe-events-meta-group+.tribe-events-single-section-title{margin-top:0}#eventbrite-embed{width:100%;min-height:225px;margin:24px 0}.eventbrite-ticket-embed{margin:0 0 30px}.tribe-events-list .type-tribe_events.tribe-event-end-month{border-bottom:0;padding-bottom:0}.single-tribe_events .tribe-events-cal-links,.single-tribe_events .tribe-events-schedule h2{display:inline-block;zoom:1;*display:inline;vertical-align:middle}.single-tribe_events .tribe-events-cal-links{margin:0 0 20px}.single-tribe_events .tribe-events-event-image{clear:both;text-align:center;margin-bottom:30px}.single-tribe_events .tribe-events-event-meta{width:100%;margin:30px -4% 30px 0}.single-tribe_events .tribe-events-meta-group .tribe-events-venue-map{float:none;margin:0;width:100%}.tribe-events-event-meta:first-child{border-top:1px solid #bbb}.single-tribe_events .tribe-events-event-meta dl{margin:0}.tribe-events-event-meta dt{clear:left;font-weight:700}#tribe-events-content .tribe-events-event-meta dd span.adr{display:block}.single-tribe_events .tribe-events-single-event-description{width:auto;padding:0;margin-bottom:30px}#tribe-events-content table.tribe-events-calendar{margin:0 0 .6em;clear:both;font-size:12px;border-collapse:collapse}#tribe-events-content .tribe-events-calendar td,#tribe-events-content table.tribe-events-calendar{border:1px solid #bbb}.tribe-events-calendar div[id*=tribe-events-daynum-],.tribe-events-calendar div[id*=tribe-events-daynum-] a{font-size:11px;font-weight:700}#tribe-events-content .tribe-events-calendar td{height:145px;width:14.28%;vertical-align:top;padding:0 0 .5em;font-size:12px;position:relative}.recurring-info-tooltip,.tribe-events-calendar .tribe-events-tooltip,.tribe-events-shortcode.view-week .tribe-events-tooltip,.tribe-events-week .tribe-events-tooltip{border:1px solid #666;position:absolute;z-index:1001;bottom:30px;left:3px;width:320px;background-color:#f9f9f9;color:#333;line-height:1.4;display:none}.tribe-events-tooltip .tribe-events-arrow{width:18px;height:11px;background-image:url(../images/tribe-tooltips.png);background-repeat:no-repeat;background-position:0 0;background-size:44px 19px;display:block;position:absolute;bottom:-11px;left:20px}.recurring-info-tooltip,.tribe-events-calendar .tribe-events-right .tribe-events-tooltip,.tribe-events-shortcode.view-week .tribe-events-right .tribe-events-tooltip,.tribe-events-week .tribe-events-right .tribe-events-tooltip{left:auto;right:3px}.tribe-events-right .tribe-events-tooltip .tribe-events-arrow{left:auto;right:30px}.recurringinfo{display:inline-block;zoom:1;*display:inline}.event-is-recurring,.recurringinfo{position:relative}.recurring-info-tooltip.tribe-events-tooltip{left:10px;width:200px;max-width:320px;padding-bottom:.8em}.events-archive.events-gridview #tribe-events-content table .type-tribe_events{margin:0 5%;padding:6px 8px;border-bottom:1px solid #e7e7e7}.events-archive.events-gridview #tribe-events-content table .tribe-events-last{border-bottom:0}.tribe-events-viewmore{margin:0 5%;padding:6px 8px;font-weight:700;line-height:1}.tribe-events-calendar th{width:250px;height:10px;padding:4px 0;text-align:center;text-transform:uppercase;letter-spacing:1px}.tribe-events-calendar td div[id*=tribe-events-daynum-]{padding:6px 9px;line-height:1.2}.tribe-events-calendar td a{font-size:69.6%;word-wrap:break-word}.tribe-events-calendar div[id*=tribe-events-daynum-],.tribe-events-calendar div[id*=tribe-events-event-]{position:relative;margin:0}#tribe-events-content .tribe-events-calendar div[id*=tribe-events-event-] h3.entry-title{line-height:1.5;font-size:91.7%;font-weight:400;text-transform:none;margin:0;padding:0;letter-spacing:0}.tribe-events-calendar div[id*=tribe-events-event-] h3.entry-title a{font-size:100%}#tribe-events-content .tribe-events-tooltip h4.entry-title{margin:0;font-size:12px;padding:0 6px;min-height:24px;line-height:24px;letter-spacing:1px;font-weight:400}.tribe-events-tooltip .tribe-events-event-body{font-size:11px;padding:3px 6px 6px;font-weight:400}.tribe-events-tooltip .duration{font-style:italic;margin:3px 0}.tribe-events-tooltip .tribe-events-event-thumb{float:left;padding:5px 5px 5px 0}.tribe-events-tooltip p.entry-summary{padding:0;font-size:11px;line-height:1.5}.tribe-events-adv-list-widget ol,.tribe-events-list-widget ol{list-style-type:square;margin-left:0;margin-bottom:0}.singular.page li.type-tribe_events,.tribe-events-adv-list-widget li,.tribe-events-list-widget li{margin:6px 0;padding:0 0 10px}.tribe-events-adv-list-widget li p.entry-title.summary,.tribe-events-list-widget li p.entry-title.summary{margin-bottom:0;padding:0;font-size:100%}#tribe-bar-views .tribe-bar-view-select,#tribe-bar-views .tribe-bar-view-select~.tribe-select2{display:none}.tribe-has-settings #tribe-bar-dates{margin-left:-331px}.tribe-has-settings #tribe-bar-views{width:142px;margin-left:-142px}.tribe-has-settings #tribe-bar-views .select2-container .select2-choice{border-bottom-right-radius:0;border-top-right-radius:0}.tribe-has-settings #tribe-bar-views .select2-container .select2-choice div{border-radius:0;background:transparent;background-image:none;-webkit-filter:none;filter:none;border-left:0}#tribe-events-bar .tribe-bar-settings{overflow:hidden}#tribe-events-bar .tribe-bar-button-settings span{background-image:url(../images/events-bar/icon-gear.png);background-repeat:no-repeat;background-position:50% 50%;background-size:14px 14px;height:100%;float:left;width:14px;display:inline-block;position:relative}#tribe-bar-views .tribe-bar-drop-content button{width:100%}#tribe-events-bar .tribe-bar-button-settings{border-left-color:transparent;border-radius:0 4px 4px 0;float:left;margin-left:-1px}.tribe-bar-settings .tribe-bar-drop-content{width:285px;right:-5px;padding:10px 12px 4px}.tribe-bar-full #tribe-bar-views .tribe-bar-view-select,.tribe-bar-full #tribe-bar-views .tribe-bar-view-select~.tribe-select2{display:none}.tribe-bar-full #tribe-bar-views ul.tribe-bar-view-list,.tribe-bar-mini #tribe-bar-views .tribe-bar-view-select,.tribe-bar-mini #tribe-bar-views .tribe-bar-view-select~.tribe-select2{display:block}.tribe-bar-mini #tribe-bar-views ul.tribe-bar-view-list{display:none}.tribe-theme-twentyfifteen .datepicker.dropdown-menu{max-width:340px}.tribe-theme-twentyfifteen #tribe-events table.tribe-events-calendar{table-layout:auto}.tribe-theme-twentyfifteen .datepicker.dropdown-menu table,.tribe-theme-twentyfifteen .datepicker.dropdown-menu table.table-condensed{border-top-width:0;border-left-width:0}.tribe-theme-twentysixteen table.tribe-events-calendar{table-layout:auto}.screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px;word-wrap:normal!important}
1
+ .tribe-events-back{margin:0 0 20px}.events-list .tribe-events-back.tribe-events-loop{margin:0 auto 20px}.tribe-events-read-more{display:block}.event .entry-title{line-height:inherit;padding:inherit}.updated-info{text-indent:-9999px;height:0}.tribe-events-event-schedule-details{display:inline}.events-archive .entry-content,.events-archive .entry-header{width:98%}.events-archive span.edit-link{display:none}.tribe-events-notices{background:#d9edf7;border:1px solid #bce8f1;color:#3a87ad;margin:10px 0 18px;padding:8px 35px 8px 14px;text-shadow:0 1px 0 #fff;border-radius:4px}div.tribe-events-notices>ul,div.tribe-events-notices>ul>li{margin:0;padding:0;list-style:none}.clearfix:after,.clearfix:before,.tribe-clearfix:after,.tribe-clearfix:before{content:"";display:table}.clearfix:after,.tribe-clearfix:after{clear:both}.clearfix,.tribe-clearfix{zoom:1}.tribe-clear{clear:both}.tribe-events-visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tribe-hide-text{text-indent:100%;white-space:nowrap;overflow:hidden}.tribe-events-error{display:none}.tribe-events-multi-event-day{color:#0f81bb}#tribe-events-content .tribe-events-abbr{border-bottom:0;cursor:default}.tribe-events-spinner{width:32px;height:32px;margin-left:-16px}.tribe-events-spinner-medium{width:24px;height:24px;margin-left:-12px}.tribe-events-spinner-small{width:16px;height:16px;margin-left:-8px}*+html .events-archive h2.tribe-events-page-title{padding-bottom:30px}*+html .events-archive .tribe-events-list h2.tribe-events-page-title{padding-bottom:0}*+html #tribe-events-header{margin-bottom:30px}h2.tribe-events-page-title{position:relative;z-index:0;text-align:center}.tribe-events-filter-view .tribe-events-list h2.tribe-events-page-title{width:100%;float:none}h2.tribe-events-page-title a{color:#000}h2.tribe-events-page-title a:focus,h2.tribe-events-page-title a:hover{color:#333;text-decoration:underline}#tribe-events-footer,#tribe-events-header{margin-bottom:.5em;overflow:hidden}#tribe-events-footer .tribe-events-sub-nav,#tribe-events-header .tribe-events-sub-nav{list-style-type:none;margin:0;overflow:hidden;line-height:normal;text-align:center}#tribe-events-footer .tribe-events-sub-nav li,#tribe-events-header .tribe-events-sub-nav li{display:inline-block;zoom:1;*display:inline;margin:0;vertical-align:middle}#tribe-events-footer .tribe-events-sub-nav .tribe-events-nav-previous,#tribe-events-header .tribe-events-sub-nav .tribe-events-nav-previous{margin-right:5px}#tribe-events-footer .tribe-events-sub-nav .tribe-events-nav-next,#tribe-events-header .tribe-events-sub-nav .tribe-events-nav-next{margin-left:5px}#tribe-events-footer .tribe-events-sub-nav .tribe-events-nav-left,#tribe-events-header .tribe-events-sub-nav .tribe-events-nav-left{text-align:left}#tribe-events-footer .tribe-events-sub-nav .tribe-events-nav-right,#tribe-events-header .tribe-events-sub-nav .tribe-events-nav-right{text-align:right}.tribe-events-ajax-loading{display:none;position:absolute;left:50%;box-shadow:none}.tribe-events-loading .tribe-events-ajax-loading{display:block}#tribe-events-footer{margin-bottom:1em}.events-list #tribe-events-footer,.tribe-events-day #tribe-events-footer,.tribe-events-map #tribe-events-footer{margin:1.25em 0 18px}.single-tribe_events #tribe-events-header,.tribe-events-map #tribe-events-header{margin:24px 0 14px}.single-tribe_events #tribe-events-footer li,.single-tribe_events #tribe-events-header li{width:48%;padding-bottom:10px}#tribe-events-content ul.tribe-events-sub-nav{list-style-type:none;margin:0;overflow:hidden;text-align:center}#tribe-events-content ul.tribe-events-sub-nav li{display:inline-block;zoom:1;*display:inline;margin:0;vertical-align:middle}#tribe-events-content ul.tribe-events-sub-nav li.tribe-events-nav-prev{margin-right:5px}#tribe-events-content ul.tribe-events-sub-nav li.tribe-events-nav-next{margin-left:5px}#tribe-events-content li.tribe-events-nav-date{padding-top:16px}select.tribe-events-dropdown{width:auto;font-size:11px;margin:33px 9px 0 0}#tribe-events-events-picker,#tribe-events-picker{display:inline}.tribe-events-day .tribe-events-day-time-slot h5{text-transform:uppercase;font-weight:700;font-size:14px;margin:2.5em 0 0}.tribe-events-day .tribe-events-day-time-slot .type-tribe_events{margin-left:5%}#tribe-events-content{position:relative;margin-bottom:48px;padding:2px 0}#tribe-events-content.tribe-events-list{padding:0}.tribe-events-list h2.tribe-events-page-title{margin-bottom:15px}#tribe-events-content.tribe-events-list{margin-bottom:60px}.tribe-events-list .type-tribe_events.tribe-events-first{padding-top:0}.tribe-events-list .type-tribe_events h2{padding:0;line-height:1.2}.tribe-events-loop .tribe-events-event-meta{float:none;clear:both;border:0;margin:0 0 15px;padding:0;line-height:1.5;font-weight:400;font-size:1.2em;overflow:visible}.tribe-events-list .tribe-events-loop .tribe-events-event-meta .recurringinfo{display:inline-block;zoom:1;*display:inline;white-space:pre}.tribe-events-event-meta address.tribe-events-address{display:inline}.tribe-events-list .tribe-events-loop .tribe-events-event-meta .event-is-recurring{position:relative}.tribe-events-list .time-details,.tribe-events-list .tribe-events-venue-details{line-height:1.2;margin:0;display:block}.tribe-events-list .time-details{margin:0 0 8px}.tribe-events-loop{clear:both}.tribe-events-loop .type-tribe_events.tribe-events-last{border-bottom:0}.tribe-events-list .tribe-events-loop .tribe-events-content{clear:both;width:100%;padding:0}.events-archive h3 .published,.single-tribe_venue h3 .published{margin-top:0;font-style:italic;text-transform:none}.tribe-events-loop .tribe-events-event-meta dl{margin:0}.tribe-events-loop .tribe-events-event-meta dt{font-weight:700;padding-right:12px;width:auto}.tribe-events-loop .tribe-events-event-meta dd{margin-bottom:.25em;margin-left:6.5em}.single-tribe_events #tribe-events-content{padding:0}.single-tribe_events .tribe-events-schedule .recurringinfo,.single-tribe_events .tribe-events-schedule .tribe-events-cost{margin-right:10px}#tribe-events-content .tribe-events-single-event-description img.attachment-post-thumbnail{margin-left:auto;margin-right:auto;display:block;text-align:center}.tribe-events-meta-group+.tribe-events-single-section-title{margin-top:0}#eventbrite-embed{width:100%;min-height:225px;margin:24px 0}.eventbrite-ticket-embed{margin:0 0 30px}.tribe-events-list .type-tribe_events.tribe-event-end-month{border-bottom:0;padding-bottom:0}.single-tribe_events .tribe-events-cal-links,.single-tribe_events .tribe-events-schedule h2{display:inline-block;zoom:1;*display:inline;vertical-align:middle}.single-tribe_events .tribe-events-cal-links{margin:0 0 20px}.single-tribe_events .tribe-events-event-image{clear:both;text-align:center;margin-bottom:30px}.single-tribe_events .tribe-events-event-meta{width:100%;margin:30px -4% 30px 0}.single-tribe_events .tribe-events-meta-group .tribe-events-venue-map{float:none;margin:0;width:100%}.tribe-events-event-meta:first-child{border-top:1px solid #bbb}.single-tribe_events .tribe-events-event-meta dl{margin:0}.tribe-events-event-meta dt{clear:left;font-weight:700}#tribe-events-content .tribe-events-event-meta dd span.adr{display:block}.single-tribe_events .tribe-events-single-event-description{width:auto;padding:0;margin-bottom:30px}#tribe-events-content table.tribe-events-calendar{margin:0 0 .6em;clear:both;font-size:12px;border-collapse:collapse}#tribe-events-content .tribe-events-calendar td,#tribe-events-content table.tribe-events-calendar{border:1px solid #bbb}.tribe-events-calendar div[id*=tribe-events-daynum-],.tribe-events-calendar div[id*=tribe-events-daynum-] a{font-size:11px;font-weight:700}#tribe-events-content .tribe-events-calendar td{height:145px;width:14.28%;vertical-align:top;padding:0 0 .5em;font-size:12px;position:relative}.recurring-info-tooltip,.tribe-events-calendar .tribe-events-tooltip,.tribe-events-shortcode.view-week .tribe-events-tooltip,.tribe-events-week .tribe-events-tooltip{border:1px solid #666;position:absolute;z-index:1001;bottom:30px;left:3px;width:320px;background-color:#f9f9f9;color:#333;line-height:1.4;display:none}.tribe-events-tooltip .tribe-events-arrow{width:18px;height:11px;background-image:url(../images/tribe-tooltips.png);background-repeat:no-repeat;background-position:0 0;background-size:44px 19px;display:block;position:absolute;bottom:-11px;left:20px}.recurring-info-tooltip,.tribe-events-calendar .tribe-events-right .tribe-events-tooltip,.tribe-events-shortcode.view-week .tribe-events-right .tribe-events-tooltip,.tribe-events-week .tribe-events-right .tribe-events-tooltip{left:auto;right:3px}.tribe-events-right .tribe-events-tooltip .tribe-events-arrow{left:auto;right:30px}.tribe-events-tooltip.tribe-events-tooltip-flipdown .tribe-events-arrow{top:-11px;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.recurringinfo{display:inline-block;zoom:1;*display:inline}.event-is-recurring,.recurringinfo{position:relative}.recurring-info-tooltip.tribe-events-tooltip{left:10px;width:200px;max-width:320px;padding-bottom:.8em}.events-archive.events-gridview #tribe-events-content table .type-tribe_events{margin:0 5%;padding:6px 8px;border-bottom:1px solid #e7e7e7}.events-archive.events-gridview #tribe-events-content table .tribe-events-last{border-bottom:0}.tribe-events-viewmore{margin:0 5%;padding:6px 8px;font-weight:700;line-height:1}.tribe-events-calendar th{width:250px;height:10px;padding:4px 0;text-align:center;text-transform:uppercase;letter-spacing:1px}.tribe-events-calendar td div[id*=tribe-events-daynum-]{padding:6px 9px;line-height:1.2}.tribe-events-calendar td a{font-size:69.6%;word-wrap:break-word}.tribe-events-calendar div[id*=tribe-events-daynum-],.tribe-events-calendar div[id*=tribe-events-event-]{position:relative;margin:0}#tribe-events-content .tribe-events-calendar div[id*=tribe-events-event-] h3.entry-title{line-height:1.5;font-size:91.7%;font-weight:400;text-transform:none;margin:0;padding:0;letter-spacing:0}.tribe-events-calendar div[id*=tribe-events-event-] h3.entry-title a{font-size:100%}#tribe-events-content .tribe-events-tooltip h4.entry-title{margin:0;font-size:12px;padding:0 6px;min-height:24px;line-height:24px;letter-spacing:1px;font-weight:400}.tribe-events-tooltip .tribe-events-event-body{font-size:11px;padding:3px 6px 6px;font-weight:400}.tribe-events-tooltip .duration{font-style:italic;margin:3px 0}.tribe-events-tooltip .tribe-events-event-thumb{float:left;padding:5px 5px 5px 0}.tribe-events-tooltip p.entry-summary{padding:0;font-size:11px;line-height:1.5}.tribe-events-adv-list-widget ol,.tribe-events-list-widget ol{list-style-type:square;margin-left:0;margin-bottom:0}.singular.page li.type-tribe_events,.tribe-events-adv-list-widget li,.tribe-events-list-widget li{margin:6px 0;padding:0 0 10px}.tribe-events-adv-list-widget li p.entry-title.summary,.tribe-events-list-widget li p.entry-title.summary{margin-bottom:0;padding:0;font-size:100%}#tribe-bar-views .tribe-bar-view-select,#tribe-bar-views .tribe-bar-view-select~.tribe-select2{display:none}.tribe-has-settings #tribe-bar-dates{margin-left:-331px}.tribe-has-settings #tribe-bar-views{width:142px;margin-left:-142px}.tribe-has-settings #tribe-bar-views .select2-container .select2-choice{border-bottom-right-radius:0;border-top-right-radius:0}.tribe-has-settings #tribe-bar-views .select2-container .select2-choice div{border-radius:0;background:transparent;background-image:none;-webkit-filter:none;filter:none;border-left:0}#tribe-events-bar .tribe-bar-settings{overflow:hidden}#tribe-events-bar .tribe-bar-button-settings span{background-image:url(../images/events-bar/icon-gear.png);background-repeat:no-repeat;background-position:50% 50%;background-size:14px 14px;height:100%;float:left;width:14px;display:inline-block;position:relative}#tribe-bar-views .tribe-bar-drop-content button{width:100%}#tribe-events-bar .tribe-bar-button-settings{border-left-color:transparent;border-radius:0 4px 4px 0;float:left;margin-left:-1px}.tribe-bar-settings .tribe-bar-drop-content{width:285px;right:-5px;padding:10px 12px 4px}.tribe-bar-full #tribe-bar-views .tribe-bar-view-select,.tribe-bar-full #tribe-bar-views .tribe-bar-view-select~.tribe-select2{display:none}.tribe-bar-full #tribe-bar-views ul.tribe-bar-view-list,.tribe-bar-mini #tribe-bar-views .tribe-bar-view-select,.tribe-bar-mini #tribe-bar-views .tribe-bar-view-select~.tribe-select2{display:block}.tribe-bar-mini #tribe-bar-views ul.tribe-bar-view-list{display:none}.tribe-theme-twentyfifteen .datepicker.dropdown-menu{max-width:340px}.tribe-theme-twentyfifteen #tribe-events table.tribe-events-calendar{table-layout:auto}.tribe-theme-twentyfifteen .datepicker.dropdown-menu table,.tribe-theme-twentyfifteen .datepicker.dropdown-menu table.table-condensed{border-top-width:0;border-left-width:0}.tribe-theme-twentysixteen table.tribe-events-calendar{table-layout:auto}.screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px;word-wrap:normal!important}
src/resources/css/tribe-events-theme-mobile.css CHANGED
@@ -82,7 +82,8 @@
82
  }
83
 
84
  #tribe-events-content .tribe-events-calendar td {
85
- transition: none;
 
86
  }
87
 
88
  #tribe-events-content .tribe-events-calendar td:hover {
82
  }
83
 
84
  #tribe-events-content .tribe-events-calendar td {
85
+ -webkit-transition: none;
86
+ transition: none;
87
  }
88
 
89
  #tribe-events-content .tribe-events-calendar td:hover {
src/resources/css/tribe-events-theme-mobile.min.css CHANGED
@@ -1 +1 @@
1
- #tribe-events-header .tribe-events-sub-nav li a{display:none}.tribe-events-list .tribe-events-loop .tribe-events-event-meta .recurringinfo{display:block;padding:0}.single-tribe_events .tribe-events-schedule .recurringinfo{display:block;margin:2px 0 0}.tribe-events-schedule{margin:18px 0}.single-tribe_events .tribe-events-event-image{margin-bottom:10px}.tribe-events-list-separator-month{margin:20px 0}#tribe-mobile-container .type-tribe_events~.type-tribe_events{border-top:1px dotted #2f2f2f}.tribe-events-calendar thead th{padding:7px 1em}#tribe-events-content .tribe-events-calendar td{transition:none}#tribe-events-content .tribe-events-calendar td:hover{background:none;box-shadow:none}#tribe-events-content .tribe-events-calendar td.tribe-events-othermonth:hover{background:#f9f9f9}.tribe-events-calendar td.tribe-events-past div[id*=tribe-events-daynum-],.tribe-events-calendar td.tribe-events-past div[id*=tribe-events-daynum-]>a{background:none;color:#999}.tribe-events-calendar td div[id*=tribe-events-daynum-],.tribe-events-calendar td div[id*=tribe-events-daynum-] a{background:none;padding:0;color:#333}#tribe-mobile-container .tribe-events-viewmore{border-top:1px dotted #2f2f2f}.tribe-events-calendar div[id*=tribe-events-daynum-] a:hover{color:#333}.tribe-events-calendar .mobile-active.tribe-events-past div[id*=tribe-events-daynum-],.tribe-events-calendar .mobile-active.tribe-events-past div[id*=tribe-events-daynum-]>a{color:#fff}#tribe-events-content .tribe-events-calendar .mobile-active:hover,#tribe-events-content .tribe-events-calendar td.tribe-events-othermonth.mobile-active,#tribe-events-content .tribe-events-calendar td.tribe-events-othermonth.mobile-active div[id*=tribe-events-daynum-],#tribe-events-content .tribe-events-calendar td.tribe-events-othermonth.mobile-active div[id*=tribe-events-daynum-] a,.tribe-events-calendar .mobile-active div[id*=tribe-events-daynum-],.tribe-events-calendar .mobile-active div[id*=tribe-events-daynum-] a,.tribe-events-calendar td.mobile-active{background-color:#21759b;color:#fff}.tribe-events-calendar .tribe-events-present.tribe-events-has-events:after{background:#333}.tribe-events-calendar .mobile-active.tribe-events-has-events:after{background-color:#fff}#tribe-events-content .tribe-events-calendar td.tribe-events-present:hover,.tribe-events-calendar td.tribe-events-present,.tribe-events-calendar td.tribe-events-present div[id*=tribe-events-daynum-],.tribe-events-calendar td.tribe-events-present div[id*=tribe-events-daynum-]>a{background-color:#dedede;color:#333}#tribe-events-content .tribe-events-calendar td.tribe-events-present.mobile-active:hover,.tribe-events-calendar td.tribe-events-present.mobile-active,.tribe-events-calendar td.tribe-events-present.mobile-active div[id*=tribe-events-daynum-],.tribe-events-calendar td.tribe-events-present.mobile-active div[id*=tribe-events-daynum-] a{background-color:#21759b;color:#fff}.tribe-theme-twentyfourteen #tribe-events-pg-template{padding-left:0;padding-right:0}.tribe-theme-twentyfourteen #tribe-events-pg-template #tribe-events{padding:10px}
1
+ #tribe-events-header .tribe-events-sub-nav li a{display:none}.tribe-events-list .tribe-events-loop .tribe-events-event-meta .recurringinfo{display:block;padding:0}.single-tribe_events .tribe-events-schedule .recurringinfo{display:block;margin:2px 0 0}.tribe-events-schedule{margin:18px 0}.single-tribe_events .tribe-events-event-image{margin-bottom:10px}.tribe-events-list-separator-month{margin:20px 0}#tribe-mobile-container .type-tribe_events~.type-tribe_events{border-top:1px dotted #2f2f2f}.tribe-events-calendar thead th{padding:7px 1em}#tribe-events-content .tribe-events-calendar td{-webkit-transition:none;transition:none}#tribe-events-content .tribe-events-calendar td:hover{background:none;box-shadow:none}#tribe-events-content .tribe-events-calendar td.tribe-events-othermonth:hover{background:#f9f9f9}.tribe-events-calendar td.tribe-events-past div[id*=tribe-events-daynum-],.tribe-events-calendar td.tribe-events-past div[id*=tribe-events-daynum-]>a{background:none;color:#999}.tribe-events-calendar td div[id*=tribe-events-daynum-],.tribe-events-calendar td div[id*=tribe-events-daynum-] a{background:none;padding:0;color:#333}#tribe-mobile-container .tribe-events-viewmore{border-top:1px dotted #2f2f2f}.tribe-events-calendar div[id*=tribe-events-daynum-] a:hover{color:#333}.tribe-events-calendar .mobile-active.tribe-events-past div[id*=tribe-events-daynum-],.tribe-events-calendar .mobile-active.tribe-events-past div[id*=tribe-events-daynum-]>a{color:#fff}#tribe-events-content .tribe-events-calendar .mobile-active:hover,#tribe-events-content .tribe-events-calendar td.tribe-events-othermonth.mobile-active,#tribe-events-content .tribe-events-calendar td.tribe-events-othermonth.mobile-active div[id*=tribe-events-daynum-],#tribe-events-content .tribe-events-calendar td.tribe-events-othermonth.mobile-active div[id*=tribe-events-daynum-] a,.tribe-events-calendar .mobile-active div[id*=tribe-events-daynum-],.tribe-events-calendar .mobile-active div[id*=tribe-events-daynum-] a,.tribe-events-calendar td.mobile-active{background-color:#21759b;color:#fff}.tribe-events-calendar .tribe-events-present.tribe-events-has-events:after{background:#333}.tribe-events-calendar .mobile-active.tribe-events-has-events:after{background-color:#fff}#tribe-events-content .tribe-events-calendar td.tribe-events-present:hover,.tribe-events-calendar td.tribe-events-present,.tribe-events-calendar td.tribe-events-present div[id*=tribe-events-daynum-],.tribe-events-calendar td.tribe-events-present div[id*=tribe-events-daynum-]>a{background-color:#dedede;color:#333}#tribe-events-content .tribe-events-calendar td.tribe-events-present.mobile-active:hover,.tribe-events-calendar td.tribe-events-present.mobile-active,.tribe-events-calendar td.tribe-events-present.mobile-active div[id*=tribe-events-daynum-],.tribe-events-calendar td.tribe-events-present.mobile-active div[id*=tribe-events-daynum-] a{background-color:#21759b;color:#fff}.tribe-theme-twentyfourteen #tribe-events-pg-template{padding-left:0;padding-right:0}.tribe-theme-twentyfourteen #tribe-events-pg-template #tribe-events{padding:10px}
src/resources/css/tribe-events-theme.css CHANGED
@@ -339,7 +339,8 @@ h2.tribe-events-page-title,
339
  #tribe-events-content .tribe-events-calendar td {
340
  border: 1px solid #d2d2d2;
341
  border-top: 0;
342
- transition: all .2s cubic-bezier(.550, .085, .680, .530);
 
343
  }
344
 
345
  #tribe-events-content .tribe-events-calendar td:hover {
@@ -470,6 +471,11 @@ h2.tribe-events-page-title,
470
  max-width: none;
471
  }
472
 
 
 
 
 
 
473
  /**
474
  * Shortcode specific CSS
475
  */
339
  #tribe-events-content .tribe-events-calendar td {
340
  border: 1px solid #d2d2d2;
341
  border-top: 0;
342
+ -webkit-transition: all .2s cubic-bezier(.550, .085, .680, .530);
343
+ transition: all .2s cubic-bezier(.550, .085, .680, .530);
344
  }
345
 
346
  #tribe-events-content .tribe-events-calendar td:hover {
471
  max-width: none;
472
  }
473
 
474
+ .tribe-events-tooltip.tribe-events-tooltip-flipdown::before {
475
+ border-bottom-color: #fff;
476
+ top: -20px;/* Normally it's -21px, but -20px works better in Tribe Events theme because of tooltip box-shadow. */
477
+ }
478
+
479
  /**
480
  * Shortcode specific CSS
481
  */
src/resources/css/tribe-events-theme.min.css CHANGED
@@ -1 +1 @@
1
- #tribe-events-content .tribe-events-tooltip h4,#tribe_events_filters_wrapper .tribe_events_slider_val,.single-tribe_events a.tribe-events-gcal,.single-tribe_events a.tribe-events-ical{color:#21759b}#tribe-events .tribe-events-button,#tribe-events .tribe-events-button:hover,#tribe_events_filters_wrapper input[type=submit],.tribe-events-button,.tribe-events-button.tribe-active:hover,.tribe-events-button.tribe-inactive,.tribe-events-button:hover,.tribe-events-calendar td.tribe-events-present div[id*=tribe-events-daynum-],.tribe-events-calendar td.tribe-events-present div[id*=tribe-events-daynum-]>a{background-color:#21759b}#tribe_events_filters_wrapper input[type=submit]:hover,.tribe-events-button.tribe-active:hover{background-color:#0f3647}#tribe-events .tribe-events-button:hover,.tribe-events-button.tribe-active:hover,.tribe-events-button.tribe-inactive,.tribe-events-button:hover{color:#fff}#tribe_events_filters_wrapper h3 span:after{border-top-color:#21759b}#tribe_events_filters_wrapper .tribe_events_filter_item.closed h3 span:after{border-left-color:#21759b}.tribe-events-adv-list-widget .tribe-events-widget-link a,.tribe-events-back a,.tribe-events-list-widget .tribe-events-widget-link a,ul.tribe-events-sub-nav a{font-size:15px;font-weight:700}.tribe-events-gcal{margin-right:1.25em}.tribe-events-divider{display:none}.event-is-recurring .tribe-events-divider{display:inline}.tribe-events-event-image{margin-bottom:1.25em;text-align:left}#tribe-geo-results h2.tribe-events-page-title,h2.tribe-events-page-title{font-size:30px;font-weight:700}#tribe-events-header .tribe-events-sub-nav .tribe-events-nav-next a,#tribe-events-header .tribe-events-sub-nav li{display:none}#tribe-events-header .tribe-events-sub-nav .tribe-events-nav-next{display:block}.events-list #tribe-events-footer,.single-tribe_events #tribe-events-footer,.tribe-events-day #tribe-events-footer,.tribe-events-map #tribe-events-footer,.tribe-events-photo #tribe-events-footer{border-top:1px solid #e5e5e5;padding-top:2em}.single-tribe_events #tribe-events-header{display:none}.tribe-events-day .tribe-events-day-time-slot h5{font-size:21px;margin:1.5em 0 .25em;background-color:transparent;padding:6px 10px;background:#e0e0e0;color:#fff;text-align:center;line-height:1}.tribe-events-list .type-tribe_events{border-bottom:0;margin-bottom:32px;margin-bottom:2rem;padding:0;position:relative}.tribe-events-list .type-tribe_events:first-of-type{margin-top:32px;margin-top:2rem}.tribe-events-list .type-tribe_events h2{font-size:1.6em}.tribe-events-list-separator-year{font-size:28px;padding-top:1.25em}.tribe-events-list-separator-year+.tribe-events-list-separator-month{margin-top:.25em}.tribe-events-list-separator-month{text-transform:none;font-size:24px;margin:1.25em auto;text-align:center;position:relative;background-color:transparent;z-index:1}.tribe-events-list-separator-month:after{content:"";border-bottom:1px solid #c2c2c2;height:1px;width:100%;display:block;position:absolute;top:50%;left:0;z-index:-1}.tribe-events-list-separator-month span{background-color:#fff;padding:0 7.5%}.tribe-events-list-separator-month+.type-tribe_events.tribe-events-first{padding-top:1.5em}.tribe-events-list .type-tribe_events.tribe-event-end-month{padding-bottom:1.5em}.tribe-events-loop .tribe-events-event-meta{margin-bottom:1em;font-size:13px}.tribe-events-list .tribe-events-loop .tribe-events-event-meta .recurringinfo{padding-left:0;font-weight:400;vertical-align:top}.tribe-events-list .time-details,.tribe-events-list .tribe-events-venue-details{line-height:1.2}.tribe-events-event-meta address.tribe-events-address,.tribe-events-list .tribe-events-venue-details{font-weight:400;font-style:italic}.tribe-events-event-meta address.tribe-events-address{padding-right:3px}.events-list .tribe-events-loop,.single-tribe_organizer .tribe-events-loop,.single-tribe_venue .tribe-events-loop,.tribe-events-day .tribe-events-loop{max-width:700px;margin:0 auto}.single-tribe_events h2.tribe-events-single-event-title{font-size:33px}.tribe-events-schedule{margin:1em 0 1.5em}.single-tribe_events .tribe-events-schedule .tribe-events-divider{display:inline-block;zoom:1;*display:inline;font-weight:400}.single-tribe_events .tribe-events-schedule .recurringinfo{margin-right:.5em}.single-tribe_events .tribe-events-schedule h3{font-size:18px;margin:0}.single-tribe_events .tribe-events-cal-links{margin-bottom:1.75em;display:block}.single-tribe_events a.tribe-events-gcal,.single-tribe_events a.tribe-events-gcal:hover,.single-tribe_events a.tribe-events-ical,.single-tribe_events a.tribe-events-ical:hover{background-color:transparent;text-transform:none;font-size:14px;font-weight:700;letter-spacing:0;padding:0;float:none;color:#21759b}.single-tribe_events .tribe-events-event-image{text-align:left;margin-bottom:1.25em}.tribe-events-event-schedule-details{margin-right:.5em}.tribe-events-meta-group .tribe-events-single-section-title{font-size:17px}.single-tribe_events .tribe-events-event-meta{font-size:14px}#tribe-events-content .tribe-events-calendar td{border:1px solid #d2d2d2;border-top:0;transition:all .2s cubic-bezier(.55,.085,.68,.53)}#tribe-events-content .tribe-events-calendar td:hover{background:#f7f7f7;box-shadow:0 0 10px rgba(0,0,0,.2)}#tribe-events-content .tribe-events-calendar td.tribe-events-othermonth{background:#f9f9f9}#tribe-events-content .tribe-events-calendar .tribe-events-othermonth:hover{box-shadow:none}#tribe-events-content table.tribe-events-calendar{border-bottom:1px solid #d2d2d2;border-top:0}.tribe-events-calendar div[id*=tribe-events-daynum-],.tribe-events-calendar div[id*=tribe-events-daynum-] a{background-color:#b2b2b2;color:#fff;font-size:12px;font-weight:700}.tribe-events-calendar div[id*=tribe-events-daynum-] a:hover{color:#666}.tribe-events-calendar td.tribe-events-past div[id*=tribe-events-daynum-],.tribe-events-calendar td.tribe-events-past div[id*=tribe-events-daynum-]>a{background-color:#e0e0e0;color:#fff}.tribe-events-calendar td.tribe-events-past .tribe-events-month-event-title a,.tribe-events-calendar td.tribe-events-past .tribe-events-viewmore a{opacity:.5;filter:Alpha(opacity=50)}.recurring-info-tooltip,.tribe-events-calendar .tribe-events-tooltip,.tribe-events-shortcode.view-week .tribe-events-tooltip,.tribe-events-week .tribe-events-tooltip{border:0;background-color:#fff;color:#606060;padding:.75em 1em 0;box-shadow:3px 4px 21px rgba(0,0,0,.38)}.tribe-events-tooltip .tribe-events-arrow{width:20px;height:7px;background-image:url(../images/tribe-theme/tribe-theme-tooltips.png);background-size:37px 20px;bottom:-7px}.events-archive.events-gridview #tribe-events-content table .type-tribe_events{border-bottom:1px solid #e0e0e0}.events-archive.events-gridview #tribe-events-content table .tribe-events-last{border-bottom:0}.tribe-events-calendar thead th{background-color:#666;color:#fff;font-weight:700;padding:1em 0;white-space:nowrap;border-left:1px solid #666;border-right:1px solid #666}.tribe-events-calendar td div[id*=tribe-events-daynum-]{padding:4px 9px 6px}#tribe-events-content .tribe-events-tooltip h4{margin:0;background-color:transparent;font-size:18px;padding:0;letter-spacing:0;font-weight:700}.tribe-events-tooltip .tribe-events-event-body{font-size:11px;padding:0}.tribe-events-tooltip .duration{font-style:normal;font-weight:700;margin:0;padding:.4em 0 .5em}.tribe-events-tooltip:not(.tribe-event-featured) .tribe-events-event-thumb{padding:.85em 1em 0 0}.tribe-events-tooltip p.entry-summary{font-size:13px;padding-top:.5em}.events-list.tribe-bar-is-disabled #tribe-events-content-wrapper{max-width:700px;margin:0 auto}.tribe-events-map.tribe-bar-is-disabled #tribe-events-content-wrapper{max-width:none}.tribe-shortcode-align-right{float:right}.tribe-shortcode-align-left{float:left}.tribe-shortcode-align-center{display:table;margin-left:auto;margin-right:auto}.tribe-shortcode.tribe-events-event-meta.tribe-shortcode-align-right{margin-right:20px}.tribe-shortcode.tribe-events-event-meta.tribe-shortcode-align-left{margin-left:20px}.tribe-shortcode.tribe-events-event-meta .tribe-events-meta-group{width:auto;min-width:250px}.tribe-theme-twentyeleven.single-tribe_events .tribe-events-schedule .tribe-events-divider,.tribe-theme-twentyfourteen.single-tribe_events .tribe-events-schedule .tribe-events-divider,.tribe-theme-twentyten.single-tribe_events .tribe-events-schedule .tribe-events-divider,.tribe-theme-twentythirteen.single-tribe_events .tribe-events-schedule .tribe-events-divider,.tribe-theme-twentytwelve.single-tribe_events .tribe-events-schedule .tribe-events-divider{display:none}@media (-o-min-device-pixel-ratio:2/1),(-webkit-min-device-pixel-ratio:2),(min--moz-device-pixel-ratio:2),(min-device-pixel-ratio:2){.tribe-events-tooltip .tribe-events-arrow{background-image:url(../images/tribe-theme/tribe-theme-tooltips@2x.png)}}
1
+ #tribe-events-content .tribe-events-tooltip h4,#tribe_events_filters_wrapper .tribe_events_slider_val,.single-tribe_events a.tribe-events-gcal,.single-tribe_events a.tribe-events-ical{color:#21759b}#tribe-events .tribe-events-button,#tribe-events .tribe-events-button:hover,#tribe_events_filters_wrapper input[type=submit],.tribe-events-button,.tribe-events-button.tribe-active:hover,.tribe-events-button.tribe-inactive,.tribe-events-button:hover,.tribe-events-calendar td.tribe-events-present div[id*=tribe-events-daynum-],.tribe-events-calendar td.tribe-events-present div[id*=tribe-events-daynum-]>a{background-color:#21759b}#tribe_events_filters_wrapper input[type=submit]:hover,.tribe-events-button.tribe-active:hover{background-color:#0f3647}#tribe-events .tribe-events-button:hover,.tribe-events-button.tribe-active:hover,.tribe-events-button.tribe-inactive,.tribe-events-button:hover{color:#fff}#tribe_events_filters_wrapper h3 span:after{border-top-color:#21759b}#tribe_events_filters_wrapper .tribe_events_filter_item.closed h3 span:after{border-left-color:#21759b}.tribe-events-adv-list-widget .tribe-events-widget-link a,.tribe-events-back a,.tribe-events-list-widget .tribe-events-widget-link a,ul.tribe-events-sub-nav a{font-size:15px;font-weight:700}.tribe-events-gcal{margin-right:1.25em}.tribe-events-divider{display:none}.event-is-recurring .tribe-events-divider{display:inline}.tribe-events-event-image{margin-bottom:1.25em;text-align:left}#tribe-geo-results h2.tribe-events-page-title,h2.tribe-events-page-title{font-size:30px;font-weight:700}#tribe-events-header .tribe-events-sub-nav .tribe-events-nav-next a,#tribe-events-header .tribe-events-sub-nav li{display:none}#tribe-events-header .tribe-events-sub-nav .tribe-events-nav-next{display:block}.events-list #tribe-events-footer,.single-tribe_events #tribe-events-footer,.tribe-events-day #tribe-events-footer,.tribe-events-map #tribe-events-footer,.tribe-events-photo #tribe-events-footer{border-top:1px solid #e5e5e5;padding-top:2em}.single-tribe_events #tribe-events-header{display:none}.tribe-events-day .tribe-events-day-time-slot h5{font-size:21px;margin:1.5em 0 .25em;background-color:transparent;padding:6px 10px;background:#e0e0e0;color:#fff;text-align:center;line-height:1}.tribe-events-list .type-tribe_events{border-bottom:0;margin-bottom:32px;margin-bottom:2rem;padding:0;position:relative}.tribe-events-list .type-tribe_events:first-of-type{margin-top:32px;margin-top:2rem}.tribe-events-list .type-tribe_events h2{font-size:1.6em}.tribe-events-list-separator-year{font-size:28px;padding-top:1.25em}.tribe-events-list-separator-year+.tribe-events-list-separator-month{margin-top:.25em}.tribe-events-list-separator-month{text-transform:none;font-size:24px;margin:1.25em auto;text-align:center;position:relative;background-color:transparent;z-index:1}.tribe-events-list-separator-month:after{content:"";border-bottom:1px solid #c2c2c2;height:1px;width:100%;display:block;position:absolute;top:50%;left:0;z-index:-1}.tribe-events-list-separator-month span{background-color:#fff;padding:0 7.5%}.tribe-events-list-separator-month+.type-tribe_events.tribe-events-first{padding-top:1.5em}.tribe-events-list .type-tribe_events.tribe-event-end-month{padding-bottom:1.5em}.tribe-events-loop .tribe-events-event-meta{margin-bottom:1em;font-size:13px}.tribe-events-list .tribe-events-loop .tribe-events-event-meta .recurringinfo{padding-left:0;font-weight:400;vertical-align:top}.tribe-events-list .time-details,.tribe-events-list .tribe-events-venue-details{line-height:1.2}.tribe-events-event-meta address.tribe-events-address,.tribe-events-list .tribe-events-venue-details{font-weight:400;font-style:italic}.tribe-events-event-meta address.tribe-events-address{padding-right:3px}.events-list .tribe-events-loop,.single-tribe_organizer .tribe-events-loop,.single-tribe_venue .tribe-events-loop,.tribe-events-day .tribe-events-loop{max-width:700px;margin:0 auto}.single-tribe_events h2.tribe-events-single-event-title{font-size:33px}.tribe-events-schedule{margin:1em 0 1.5em}.single-tribe_events .tribe-events-schedule .tribe-events-divider{display:inline-block;zoom:1;*display:inline;font-weight:400}.single-tribe_events .tribe-events-schedule .recurringinfo{margin-right:.5em}.single-tribe_events .tribe-events-schedule h3{font-size:18px;margin:0}.single-tribe_events .tribe-events-cal-links{margin-bottom:1.75em;display:block}.single-tribe_events a.tribe-events-gcal,.single-tribe_events a.tribe-events-gcal:hover,.single-tribe_events a.tribe-events-ical,.single-tribe_events a.tribe-events-ical:hover{background-color:transparent;text-transform:none;font-size:14px;font-weight:700;letter-spacing:0;padding:0;float:none;color:#21759b}.single-tribe_events .tribe-events-event-image{text-align:left;margin-bottom:1.25em}.tribe-events-event-schedule-details{margin-right:.5em}.tribe-events-meta-group .tribe-events-single-section-title{font-size:17px}.single-tribe_events .tribe-events-event-meta{font-size:14px}#tribe-events-content .tribe-events-calendar td{border:1px solid #d2d2d2;border-top:0;-webkit-transition:all .2s cubic-bezier(.55,.085,.68,.53);transition:all .2s cubic-bezier(.55,.085,.68,.53)}#tribe-events-content .tribe-events-calendar td:hover{background:#f7f7f7;box-shadow:0 0 10px rgba(0,0,0,.2)}#tribe-events-content .tribe-events-calendar td.tribe-events-othermonth{background:#f9f9f9}#tribe-events-content .tribe-events-calendar .tribe-events-othermonth:hover{box-shadow:none}#tribe-events-content table.tribe-events-calendar{border-bottom:1px solid #d2d2d2;border-top:0}.tribe-events-calendar div[id*=tribe-events-daynum-],.tribe-events-calendar div[id*=tribe-events-daynum-] a{background-color:#b2b2b2;color:#fff;font-size:12px;font-weight:700}.tribe-events-calendar div[id*=tribe-events-daynum-] a:hover{color:#666}.tribe-events-calendar td.tribe-events-past div[id*=tribe-events-daynum-],.tribe-events-calendar td.tribe-events-past div[id*=tribe-events-daynum-]>a{background-color:#e0e0e0;color:#fff}.tribe-events-calendar td.tribe-events-past .tribe-events-month-event-title a,.tribe-events-calendar td.tribe-events-past .tribe-events-viewmore a{opacity:.5;filter:Alpha(opacity=50)}.recurring-info-tooltip,.tribe-events-calendar .tribe-events-tooltip,.tribe-events-shortcode.view-week .tribe-events-tooltip,.tribe-events-week .tribe-events-tooltip{border:0;background-color:#fff;color:#606060;padding:.75em 1em 0;box-shadow:3px 4px 21px rgba(0,0,0,.38)}.tribe-events-tooltip .tribe-events-arrow{width:20px;height:7px;background-image:url(../images/tribe-theme/tribe-theme-tooltips.png);background-size:37px 20px;bottom:-7px}.events-archive.events-gridview #tribe-events-content table .type-tribe_events{border-bottom:1px solid #e0e0e0}.events-archive.events-gridview #tribe-events-content table .tribe-events-last{border-bottom:0}.tribe-events-calendar thead th{background-color:#666;color:#fff;font-weight:700;padding:1em 0;white-space:nowrap;border-left:1px solid #666;border-right:1px solid #666}.tribe-events-calendar td div[id*=tribe-events-daynum-]{padding:4px 9px 6px}#tribe-events-content .tribe-events-tooltip h4{margin:0;background-color:transparent;font-size:18px;padding:0;letter-spacing:0;font-weight:700}.tribe-events-tooltip .tribe-events-event-body{font-size:11px;padding:0}.tribe-events-tooltip .duration{font-style:normal;font-weight:700;margin:0;padding:.4em 0 .5em}.tribe-events-tooltip:not(.tribe-event-featured) .tribe-events-event-thumb{padding:.85em 1em 0 0}.tribe-events-tooltip p.entry-summary{font-size:13px;padding-top:.5em}.events-list.tribe-bar-is-disabled #tribe-events-content-wrapper{max-width:700px;margin:0 auto}.tribe-events-map.tribe-bar-is-disabled #tribe-events-content-wrapper{max-width:none}.tribe-events-tooltip.tribe-events-tooltip-flipdown:before{border-bottom-color:#fff;top:-20px}.tribe-shortcode-align-right{float:right}.tribe-shortcode-align-left{float:left}.tribe-shortcode-align-center{display:table;margin-left:auto;margin-right:auto}.tribe-shortcode.tribe-events-event-meta.tribe-shortcode-align-right{margin-right:20px}.tribe-shortcode.tribe-events-event-meta.tribe-shortcode-align-left{margin-left:20px}.tribe-shortcode.tribe-events-event-meta .tribe-events-meta-group{width:auto;min-width:250px}.tribe-theme-twentyeleven.single-tribe_events .tribe-events-schedule .tribe-events-divider,.tribe-theme-twentyfourteen.single-tribe_events .tribe-events-schedule .tribe-events-divider,.tribe-theme-twentyten.single-tribe_events .tribe-events-schedule .tribe-events-divider,.tribe-theme-twentythirteen.single-tribe_events .tribe-events-schedule .tribe-events-divider,.tribe-theme-twentytwelve.single-tribe_events .tribe-events-schedule .tribe-events-divider{display:none}@media (-o-min-device-pixel-ratio:2/1),(-webkit-min-device-pixel-ratio:2),(min--moz-device-pixel-ratio:2),(min-device-pixel-ratio:2){.tribe-events-tooltip .tribe-events-arrow{background-image:url(../images/tribe-theme/tribe-theme-tooltips@2x.png)}}
src/resources/js/tribe-events-ajax-calendar.js CHANGED
@@ -83,12 +83,11 @@
83
 
84
  ts.mdate = e.date;
85
 
86
- var year = e.date.getFullYear(),
87
- month = ('0' + (e.date.getMonth() + 1)).slice( -2 );
88
 
89
  date_mod = true;
90
-
91
- ts.date = year + '-' + month;
92
 
93
  if ( tt.no_bar() || tt.live_ajax() && tt.pushstate ) {
94
  if ( ts.ajax_running || ts.updating_picker ) {
@@ -104,7 +103,9 @@
104
  td.cur_url = base_url + ts.date + '/';
105
  }
106
  }
 
107
  ts.popping = false;
 
108
  tf.pre_ajax( function() {
109
  tribe_events_calendar_ajax_post();
110
  } );
@@ -114,8 +115,8 @@
114
 
115
  function tribe_mobile_load_events( date ) {
116
  var $target = $( '.tribe-mobile-day[data-day="' + date + '"]' ),
117
- $cell = $( '.tribe-events-calendar td[data-day="' + date + '"]' ),
118
- $more = $cell.find( '.tribe-events-viewmore' ),
119
  $events = $cell.find( '.type-tribe_events' );
120
 
121
  if ( $events.length ) {
@@ -142,15 +143,16 @@
142
  }
143
 
144
  function tribe_mobile_setup_day( $date ) {
145
- var data = $date.data( 'tribejson' );
 
146
  data.date = $date.attr( 'data-day' );
147
 
148
- var $calendar = $date.parents( '.tribe-events-calendar' ),
149
- $container = $calendar.next( '#tribe-mobile-container' ),
150
- $days = $container.find( '.tribe-mobile-day' ),
151
- $triggers = $calendar.find( '.mobile-trigger' ),
152
- _active = '[data-day="' + data.date + '"]',
153
- $day = $days.filter( _active );
154
 
155
  data.has_events = $date.hasClass( 'tribe-events-has-events' );
156
 
@@ -171,9 +173,9 @@
171
 
172
  function tribe_mobile_month_setup() {
173
 
174
- var $today = $wrapper.find( '.tribe-events-present' ),
175
- $mobile_trigger = $wrapper.find( '.mobile-trigger' ),
176
- $tribe_grid = $wrapper.find( document.getElementById( 'tribe-events-content' ) ).find( '.tribe-events-calendar' );
177
 
178
  if ( !$( '#tribe-mobile-container' ).length ) {
179
  $( '<div id="tribe-mobile-container" />' ).insertAfter( $tribe_grid );
@@ -192,7 +194,7 @@
192
  function tribe_mobile_day_abbr() {
193
 
194
  $wrapper.find( '.tribe-events-calendar th' ).each( function() {
195
- var $this = $( this ),
196
  day_abbr = $this.attr( 'data-day-abbr' ),
197
  day_full = $this.attr( 'title' );
198
 
83
 
84
  ts.mdate = e.date;
85
 
86
+ var year = e.date.getFullYear();
87
+ var month = ( '0' + ( e.date.getMonth() + 1 ) ).slice( -2 );
88
 
89
  date_mod = true;
90
+ ts.date = year + '-' + month;
 
91
 
92
  if ( tt.no_bar() || tt.live_ajax() && tt.pushstate ) {
93
  if ( ts.ajax_running || ts.updating_picker ) {
103
  td.cur_url = base_url + ts.date + '/';
104
  }
105
  }
106
+
107
  ts.popping = false;
108
+
109
  tf.pre_ajax( function() {
110
  tribe_events_calendar_ajax_post();
111
  } );
115
 
116
  function tribe_mobile_load_events( date ) {
117
  var $target = $( '.tribe-mobile-day[data-day="' + date + '"]' ),
118
+ $cell = $( '.tribe-events-calendar td[data-day="' + date + '"]' ),
119
+ $more = $cell.find( '.tribe-events-viewmore' ),
120
  $events = $cell.find( '.type-tribe_events' );
121
 
122
  if ( $events.length ) {
143
  }
144
 
145
  function tribe_mobile_setup_day( $date ) {
146
+
147
+ var data = $date.data( 'tribejson' );
148
  data.date = $date.attr( 'data-day' );
149
 
150
+ var $calendar = $date.parents( '.tribe-events-calendar' );
151
+ var $container = $calendar.next( '#tribe-mobile-container' );
152
+ var $days = $container.find( '.tribe-mobile-day' );
153
+ var $triggers = $calendar.find( '.mobile-trigger' );
154
+ var _active = '[data-day="' + data.date + '"]';
155
+ var $day = $days.filter( _active );
156
 
157
  data.has_events = $date.hasClass( 'tribe-events-has-events' );
158
 
173
 
174
  function tribe_mobile_month_setup() {
175
 
176
+ var $today = $wrapper.find( '.tribe-events-present' );
177
+ var $mobile_trigger = $wrapper.find( '.mobile-trigger' );
178
+ var $tribe_grid = $wrapper.find( document.getElementById( 'tribe-events-content' ) ).find( '.tribe-events-calendar' );
179
 
180
  if ( !$( '#tribe-mobile-container' ).length ) {
181
  $( '<div id="tribe-mobile-container" />' ).insertAfter( $tribe_grid );
194
  function tribe_mobile_day_abbr() {
195
 
196
  $wrapper.find( '.tribe-events-calendar th' ).each( function() {
197
+ var $this = $( this ),
198
  day_abbr = $this.attr( 'data-day-abbr' ),
199
  day_full = $this.attr( 'title' );
200
 
src/resources/js/tribe-events.js CHANGED
@@ -1011,6 +1011,16 @@ Date.prototype.format = function( mask, utc ) {
1011
  $tip = $this.find( '.tribe-events-tooltip' );
1012
  }
1013
 
 
 
 
 
 
 
 
 
 
 
1014
  $tip.css( 'bottom', bottomPad ).show();
1015
  } else {
1016
  $this.find( '.tribe-events-tooltip' ).css( 'bottom', bottomPad ).show();
@@ -1018,7 +1028,13 @@ Date.prototype.format = function( mask, utc ) {
1018
  }
1019
 
1020
  } ).on( 'mouseleave', 'div[id*="tribe-events-event-"], div[id*="tribe-events-daynum-"]:has(a), div.event-is-recurring', function() {
1021
- $( this ).find( '.tribe-events-tooltip' ).stop( true, false ).fadeOut( 200 );
 
 
 
 
 
 
1022
  } );
1023
  },
1024
  /**
@@ -1219,7 +1235,20 @@ Date.prototype.format = function( mask, utc ) {
1219
  'mm.dd.yyyy',
1220
  'dd.mm.yyyy'
1221
  ],
1222
- 'month': ['yyyy-mm', 'm/yyyy', 'mm/yyyy', 'm/yyyy', 'mm/yyyy', 'm-yyyy', 'mm-yyyy', 'm-yyyy', 'mm-yyyy']
 
 
 
 
 
 
 
 
 
 
 
 
 
1223
  },
1224
  datepicker_opts : {},
1225
  default_permalinks : (!config.permalink_settings.length),
@@ -1293,16 +1322,16 @@ Date.prototype.format = function( mask, utc ) {
1293
 
1294
  tf.update_viewport_variables();
1295
 
1296
- var $body = $( 'body' ),
1297
- $tribe_events = $( '#tribe-events' ),
1298
- $tribe_content = $( '#tribe-events-content' ),
1299
- $tribe_events_header = $( '#tribe-events-header' ),
1300
- resize_timer;
1301
-
1302
 
1303
  $tribe_events.removeClass( 'tribe-no-js' );
1304
- ts.category = tf.get_category();
1305
- td.base_url = tf.get_base_url();
 
1306
  ts.page_title = document.title;
1307
 
1308
  var tribe_display = tf.get_url_param( 'tribe_event_display' );
@@ -1314,7 +1343,7 @@ Date.prototype.format = function( mask, utc ) {
1314
  ts.view = $tribe_events_header.data( 'view' );
1315
  }
1316
 
1317
- if ( $tribe_events.tribe_has_attr( 'data-datepicker_format' ) && $tribe_events.attr( 'data-datepicker_format' ).length === 1 ) {
1318
  ts.datepicker_format = $tribe_events.attr( 'data-datepicker_format' );
1319
  }
1320
 
1011
  $tip = $this.find( '.tribe-events-tooltip' );
1012
  }
1013
 
1014
+ // Look for the distance between top of tooltip and top of visible viewport.
1015
+ var dist_to_top = $this.offset().top - ( $( window ).scrollTop() + 50 ); // The +50 is some padding for a more aesthetically-pleasing view.
1016
+ var tip_height = $tip.outerHeight();
1017
+
1018
+ // If true, tooltip is near top of viewport, so tweak some values to keep the tooltip fully in-view.
1019
+ if ( dist_to_top < tip_height ) {
1020
+ bottomPad = -tip_height;
1021
+ $tip.addClass( 'tribe-events-tooltip-flipdown' );
1022
+ }
1023
+
1024
  $tip.css( 'bottom', bottomPad ).show();
1025
  } else {
1026
  $this.find( '.tribe-events-tooltip' ).css( 'bottom', bottomPad ).show();
1028
  }
1029
 
1030
  } ).on( 'mouseleave', 'div[id*="tribe-events-event-"], div[id*="tribe-events-daynum-"]:has(a), div.event-is-recurring', function() {
1031
+
1032
+ var $tip = $( this ).find( '.tribe-events-tooltip' );
1033
+
1034
+ $tip.stop( true, false ).fadeOut( 200, function() {
1035
+ $tip.removeClass( 'tribe-events-tooltip-flipdown' );
1036
+ } );
1037
+
1038
  } );
1039
  },
1040
  /**
1235
  'mm.dd.yyyy',
1236
  'dd.mm.yyyy'
1237
  ],
1238
+ 'month': [
1239
+ 'yyyy-mm',
1240
+ 'm/yyyy',
1241
+ 'mm/yyyy',
1242
+ 'm/yyyy',
1243
+ 'mm/yyyy',
1244
+ 'm-yyyy',
1245
+ 'mm-yyyy',
1246
+ 'm-yyyy',
1247
+ 'mm-yyyy',
1248
+ 'yyyy.mm',
1249
+ 'mm.yyyy',
1250
+ 'mm.yyyy'
1251
+ ]
1252
  },
1253
  datepicker_opts : {},
1254
  default_permalinks : (!config.permalink_settings.length),
1322
 
1323
  tf.update_viewport_variables();
1324
 
1325
+ var $body = $( 'body' );
1326
+ var $tribe_events = $( document.getElementById( 'tribe-events' ) );
1327
+ var $tribe_content = $( document.getElementById( 'tribe-events-content' ) );
1328
+ var $tribe_events_header = $( document.getElementById( 'tribe-events-header' ) );
1329
+ var resize_timer;
 
1330
 
1331
  $tribe_events.removeClass( 'tribe-no-js' );
1332
+
1333
+ ts.category = tf.get_category();
1334
+ td.base_url = tf.get_base_url();
1335
  ts.page_title = document.title;
1336
 
1337
  var tribe_display = tf.get_url_param( 'tribe_event_display' );
1343
  ts.view = $tribe_events_header.data( 'view' );
1344
  }
1345
 
1346
+ if ( $tribe_events.tribe_has_attr( 'data-datepicker_format' ) ) {
1347
  ts.datepicker_format = $tribe_events.attr( 'data-datepicker_format' );
1348
  }
1349
 
src/resources/js/tribe-events.min.js CHANGED
@@ -1 +1 @@
1
- var tribe_ev=window.tribe_ev||{},tribe_debug=!0;window.debug=function(){function e(e){!r||!a&&s&&s.log||r.apply(i,e)}function t(e){return d>0?d>e:l.length+d<=e}for(var r,a,i=this,n=Array.prototype.slice,s=i.console,o={},d=9,l=["error","warn","info","debug","log"],u="assert clear count dir dirxml exception group groupCollapsed groupEnd profile profileEnd table time timeEnd trace".split(" "),c=u.length,b=[];--c>=0;)!function(e){o[e]=function(){0!==d&&s&&s[e]&&s[e].apply(s,arguments)}}(u[c]);for(c=l.length;--c>=0;)!function(r,a){o[a]=function(){var o=n.call(arguments),d=[a].concat(o);b.push(d),e(d),s&&t(r)&&(s.firebug?s[a].apply(i,o):s[a]?s[a](o):s.log(o))}}(c,l[c]);return o.setLevel=function(e){d="number"==typeof e?e:9},o.setCallback=function(){var t=n.call(arguments),i=b.length,s=i;for(r=t.shift()||null,a="boolean"==typeof t[0]&&t.shift(),s-="number"==typeof t[0]?t.shift():i;s<i;)e(b[s++])},o}(),Object.prototype.hasOwnProperty.call(window,"tribe_ev")&&(tribe_ev.diagnostics={init:[]});var tribe_storage,t_fail,t_uid;try{t_uid=new Date,(tribe_storage=window.localStorage).setItem(t_uid,t_uid),t_fail=tribe_storage.getItem(t_uid)!=t_uid,tribe_storage.removeItem(t_uid),t_fail&&(tribe_storage=!1)}catch(e){tribe_storage=!1}var tribeDateFormat=function(){var e=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,t=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,r=/[^-+\dA-Z]/g,a=function(e,t){for(e=String(e),t=t||2;e.length<t;)e="0"+e;return e};return function(i,n,s){var o=tribeDateFormat;if(1!=arguments.length||"[object String]"!=Object.prototype.toString.call(i)||/\d/.test(i)||(n=i,i=void 0),"string"==typeof i&&(i=i.replace(/-/g,"/")),i=i?new Date(i):new Date,!isNaN(i)){n=String(o.masks[n]||n||o.masks["default"]),"UTC:"==n.slice(0,4)&&(n=n.slice(4),s=!0);var d=s?"getUTC":"get",l=i[d+"Date"](),u=i[d+"Day"](),c=i[d+"Month"](),b=i[d+"FullYear"](),v=i[d+"Hours"](),_=i[d+"Minutes"](),y=i[d+"Seconds"](),m=i[d+"Milliseconds"](),p=s?0:i.getTimezoneOffset(),f={d:l,dd:a(l),ddd:o.i18n.dayNames[u],dddd:o.i18n.dayNames[u+7],m:c+1,mm:a(c+1),mmm:o.i18n.monthNames[c],mmmm:o.i18n.monthNames[c+12],yy:String(b).slice(2),yyyy:b,h:v%12||12,hh:a(v%12||12),H:v,HH:a(v),M:_,MM:a(_),s:y,ss:a(y),l:a(m,3),L:a(m>99?Math.round(m/10):m),t:v<12?"a":"p",tt:v<12?"am":"pm",T:v<12?"A":"P",TT:v<12?"AM":"PM",Z:s?"UTC":(String(i).match(t)||[""]).pop().replace(r,""),o:(p>0?"-":"+")+a(100*Math.floor(Math.abs(p)/60)+Math.abs(p)%60,4),S:["th","st","nd","rd"][l%10>3?0:(l%100-l%10!=10)*l%10]};return n.replace(e,function(e){return e in f?f[e]:e.slice(1,e.length-1)})}}}();tribeDateFormat.masks={"default":"ddd mmm dd yyyy HH:MM:ss",tribeQuery:"yyyy-mm-dd",tribeMonthQuery:"yyyy-mm",0:"yyyy-mm-dd",1:"m/d/yyyy",2:"mm/dd/yyyy",3:"d/m/yyyy",4:"dd/mm/yyyy",5:"m-d-yyyy",6:"mm-dd-yyyy",7:"d-m-yyyy",8:"dd-mm-yyyy",9:"yyyy.mm.dd",10:"mm.dd.yyyy",11:"dd.mm.yyyy",m0:"yyyy-mm",m1:"m/yyyy",m2:"mm/yyyy",m3:"m/yyyy",m4:"mm/yyyy",m5:"m-yyyy",m6:"mm-yyyy",m7:"m-yyyy",m8:"mm-yyyy"},tribeDateFormat.i18n={dayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"]};var tribeUtils={getQueryVars:function(e){var t={},e=e||location;return e.search.substr(1).split("&").forEach(function(e){t[e.split("=")[0]]=e.split("=")[1]}),t}};Date.prototype.format=function(e,t){return tribeDateFormat(this,e,t)},function(){function e(e,t){var r=arguments.callee;return r.cache[e]||(r.cache[e]=function(){var t=e,a=/^[\w\-]+$/.test(e)?r.get(e):(t="template(string)",e),i=1,n=("try { "+(r.variable?"var "+r.variable+" = this.stash;":"with (this.stash) { ")+"this.ret += '"+a.replace(/\[\[/g,"").replace(/\]\]/g,"").replace(/'(?![^\x11\x13]+?\x13)/g,"\\x27").replace(/^\s*|\s*$/g,"").replace(/\n/g,function(){return"';\nthis.line = "+ ++i+"; this.ret += '\\n"}).replace(/\x11=raw(.+?)\x13/g,"' + ($1) + '").replace(/\x11=(.+?)\x13/g,"' + this.escapeHTML($1) + '").replace(/\x11(.+?)\x13/g,"'; $1; this.ret += '")+"'; "+(r.variable?"":"}")+"return this.ret;} catch (e) { throw 'TemplateError: ' + e + ' (on "+t+"' + ' line ' + this.line + ')'; } //@ sourceURL="+t+"\n").replace(/this\.ret \+= '';/g,""),s=new Function(n),o={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&#x22;","'":"&#x27;"},d=function(e){return(""+e).replace(/[&<>\'\"]/g,function(e){return o[e]})};return function(e){return s.call(r.context={escapeHTML:d,line:1,ret:"",stash:e})}}()),t?r.cache[e](t):r.cache[e]}function t(t,r){var a=function(r){return r.include=function(t,r){var a={};for(var i in e.context.stash)e.context.stash.hasOwnProperty(i)&&(a[i]=e.context.stash[i]);if(r)for(var i in r)r.hasOwnProperty(i)&&(a[i]=r[i]);var n=e.context;n.ret+=e(t,a),e.context=n},r.wrapper=function(t,r){var a=e.context.ret;e.context.ret="",r.apply(e.context);var i=e.context.ret,n=e.context.stash.content;e.context.stash.content=i,e.context.ret=a+e(t,e.context.stash),e.context.stash.content=n},e(t,r)};return r?a(r):a}e.cache={},e.get=function(e){return document.getElementById(e).innerHTML},e.get=function(e){var r=t.get;return r?r(e):document.getElementById(e).innerHTML},this.tribe_tmpl=e,this.tribe_tmpl_extended=t}(),function(e,t){if(e.fn.tribe_clear_form=function(){return this.each(function(){var t=this.type,r=this.tagName.toLowerCase();return"form"==r?e(":input",this).tribe_clear_form():void("text"==t||"password"==t||"textarea"==r?this.value="":"checkbox"==t||"radio"==t?this.checked=!1:"select"==r&&(this.selectedIndex=0))})},e.fn.tribe_has_attr=function(e){return this.attr(e)!==t},e.fn.tribe_spin=function(){var t=e(".tribe-events-ajax-loading:first").clone().addClass("tribe-events-active-spinner");t.prependTo("#tribe-events-content"),e(this).addClass("tribe-events-loading").css("opacity",.25)},"undefined"!=typeof e.fn.datepicker&&"undefined"!=typeof e.fn.datepicker.noConflict){var r=e.fn.datepicker.noConflict();e.fn.bootstrapDatepicker=r}"undefined"!=typeof tribe_bootstrap_datepicker_strings&&null!=tribe_bootstrap_datepicker_strings.dates&&(e.fn.bootstrapDatepicker.dates.en=tribe_bootstrap_datepicker_strings.dates)}(jQuery),function(e,t,r,a,i,n){tribe_ev.fn={current_date:function(){var e=new Date,t=e.getDate(),r=e.getMonth()+1,a=e.getFullYear();return t<10&&(t="0"+t),r<10&&(r="0"+r),a+"-"+r+"-"+t},disable_inputs:function(e,t){r(e).find(t).prop("disabled",!0),r(e).find(".select2-container").length&&r(e).find(".select2-container").each(function(){var e=r(this).attr("id"),t=r("#"+e);t.select2("disable")})},disable_empty:function(e,t){r(e).find(t).each(function(){""===r(this).val()&&r(this).prop("disabled",!0)})},enable_inputs:function(e,t){r(e).find(t).prop("disabled",!1),r(e).find(".select2-container").length&&r(e).find(".select2-container").each(function(){var e=r(this).attr("id"),t=r("#"+e);t.select2("enable")})},execute_resize:function(){var e=tribe_ev.data.v_width;tribe_ev.fn.update_viewport_variables(),e!==tribe_ev.data.v_width&&(tribe_ev.fn.mobile_class(),r(tribe_ev.events).trigger("tribe_ev_resizeComplete"),r(tribe_ev.events).trigger("resize-complete.tribe"))},get_base_url:function(){var t="",a=r("#tribe-events-header"),i=r('link[rel="canonical"]');return t=i.length?i.attr("href"):a.length?a.data("baseurl"):e.location.origin+e.location.path},update_base_url:function(e){var t=r("#tribe-events-header"),a=r('link[rel="canonical"]');a.length?a.attr("href",e):t.length&&t.data("baseurl",e).attr("data-baseurl",e)},get_category:function(){return tribe_ev.fn.is_category()?r("#tribe-events").data("category"):""},get_day:function(){var e="";return r("#tribe-bar-date").length&&(e=r("#tribe-bar-date-day").val()),a&&debug.info('TEC Debug: tribe_ev.fn.get_day returned this date: "'+e+'".'),e},get_params:function(){return location.search.substr(1)},get_url_param:function(e){return decodeURIComponent((new RegExp("[?|&]"+e+"=([^&;]+?)(&|#|;|$)").exec(location.search)||[,""])[1].replace(/\+/g,"%20"))||null},in_params:function(e,t){return e.toLowerCase().indexOf(t)},invalid_date:function(e){return e=new Date(e),isNaN(e)},invalid_date_in_params:function(e){if(e.hasOwnProperty("tribe-bar-date")){var t=new Date(e["tribe-bar-date"]);return isNaN(t)}return!1},is_category:function(){var e=r("#tribe-events");return!(!e.length||!e.tribe_has_attr("data-category")||""===e.data("category"))},is_featured:function(){return"1"==r("#tribe-events").data("featured")},mobile_class:function(){var e=r("body");tribe_ev.data.v_width<=tribe_ev.data.mobile_break?e.addClass("tribe-mobile"):e.removeClass("tribe-mobile")},maybe_default_view_change:function(){if(!tribe_ev.data.default_view||!tribe_ev.data.default_mobile_view||tribe_ev.data.default_view==tribe_ev.data.default_mobile_view||!tribe_ev.state.view||tribe_ev.data.default_mobile_view==tribe_ev.state.view||tribe_ev.data.cur_url==tribe_ev.data.base_url)return!1;var e=r("body");if(!e.hasClass("tribe-mobile"))return!1;var t=r(".tribe-bar-views-option"),a=".tribe-bar-views-option-"+tribe_ev.data.default_mobile_view,i=t.filter(a);i.trigger("click")},parse_string:function(e){var t={};return e.replace(/([^&=]+)=?([^&]*)(?:&+|$)/g,function(e,r,a){(t[r]=t[r]||[]).push(a)}),a&&debug.info("TEC Debug: tribe_ev.fn.parse_string returned this map:",t),t},pre_ajax:function(e){e&&"function"==typeof e&&e()},scroll_to:function(e,t,a){r("html, body").stop().animate({scrollTop:r(e).offset().top-t},{duration:a})},serialize:function(e,t){tribe_ev.fn.enable_inputs(e,t),tribe_ev.fn.disable_empty(e,t);var i=r(e).serialize();return tribe_ev.fn.disable_inputs(e,t),a&&i&&debug.info('TEC Debug: tribe_ev.fn.serialize returned these params: "'+i),i},set_form:function(e){var t=r("body"),i=r("#tribe-bar-form");t.addClass("tribe-reset-on"),i.length&&i.tribe_clear_form(),e=tribe_ev.fn.parse_string(e),r.each(e,function(e,t){if("action"!==e){var a=decodeURIComponent(e),i="";if(1===t.length)Array.isArray(t)&&(t=t[0]),t=decodeURIComponent(t.replace(/\+/g,"%20")),r('[name="'+a+'"]').is('input[type="text"], input[type="hidden"]')?r('[name="'+a+'"]').val(t):r('[name="'+a+'"][value="'+t+'"]').is(":checkbox, :radio")?r('[name="'+a+'"][value="'+t+'"]').prop("checked",!0):r('[name="'+a+'"]').is("select")&&r('select[name="'+a+'"] option[value="'+t+'"]').attr("selected",!0);else for(var n=0;n<t.length;n++)i=r('[name="'+a+'"][value="'+t[n]+'"]'),i.is(":checkbox, :radio")?i.prop("checked",!0):r('select[name="'+a+'"] option[value="'+t[n]+'"]').attr("selected",!0)}}),t.removeClass("tribe-reset-on"),a&&debug.info('TEC Debug: tribe_ev.fn.set_form fired these params: "'+e)},setup_ajax_timer:function(e){var t=500;clearTimeout(tribe_ev.state.ajax_timer),tribe_ev.tests.reset_on()||(tribe_ev.state.ajax_timer=setTimeout(function(){e()},t),a&&debug.info('TEC Debug: tribe_ev.fn.setup_ajax_timer fired with a timeout of "'+t+'" ms'))},snap:function(e,t,a){r(t).on("click",a,function(t){t.preventDefault(),r("html, body").animate({scrollTop:r(e).offset().top-120},{duration:0})})},tooltips:function(){var e=r("#tribe-events"),t=r("body"),a=e.hasClass("tribe-events-shortcode"),i=e.hasClass("view-month")||t.hasClass("events-gridview"),n=e.hasClass("view-week")||t.hasClass("tribe-events-week"),s=e.hasClass("view-photo")||t.hasClass("tribe-events-photo"),o=e.hasClass("view-day")||t.hasClass("tribe-events-day"),d=e.hasClass("view-list")||t.hasClass("events-list"),l=(e.hasClass("view-map")||t.hasClass("tribe-events-map"),t.hasClass("single-tribe_events"));e.on("mouseenter",'div[id*="tribe-events-event-"], div.event-is-recurring',function(){var e,t=0,u=r(this);if(i?t=u.find("a").outerHeight()+18:l||o||d?t=u.outerHeight()+12:s&&(t=u.outerHeight()+10),u.parents(".tribe-events-calendar-widget").length&&(t=u.outerHeight()-6),!n||a)if(i||a){if(e=u.find(".tribe-events-tooltip"),!e.length){var c=u.data("tribejson");"string"==typeof c&&(c=r.parseJSON(c));var b=u.hasClass("tribe-event-featured")?"tribe_tmpl_tooltip_featured":"tribe_tmpl_tooltip";u.append(tribe_tmpl(b,c)),e=u.find(".tribe-events-tooltip")}e.css("bottom",t).show()}else u.find(".tribe-events-tooltip").css("bottom",t).show()}).on("mouseleave",'div[id*="tribe-events-event-"], div[id*="tribe-events-daynum-"]:has(a), div.event-is-recurring',function(){r(this).find(".tribe-events-tooltip").stop(!0,!1).fadeOut(200)})},update_picker:function(t){var i=r("#tribe-bar-date");r().bootstrapDatepicker&&i.length?(tribe_ev.state.updating_picker=!0,e.attachEvent&&!e.addEventListener&&(i.bootstrapDatepicker("remove"),i.val(""),i.bootstrapDatepicker(tribe_ev.data.datepicker_opts)),i.bootstrapDatepicker("setDate",t),tribe_ev.state.updating_picker=!1,a&&debug.info('TEC Debug: tribe_ev.fn.update_picker sent "'+t+'" to the boostrapDatepicker')):i.length?(i.val(t),a&&debug.warn('TEC Debug: tribe_ev.fn.update_picker sent "'+t+'" to '+i)):a&&debug.warn('TEC Debug: tribe_ev.fn.update_picker couldnt send "'+t+'" to any object.')},update_viewport_variables:function(){tribe_ev.data.v_height=r(e).height(),tribe_ev.data.v_width=r(e).width()},url_path:function(e){return e.split("?")[0]},equal_height:function(e){var t=0;e.css("height","auto"),e.each(function(){var e=r(this).outerHeight();e>t&&(t=e)}),setTimeout(function(){e.css("height",t)},100)}},tribe_ev.tests={live_ajax:function(){var e=r("#tribe-events");return!(!e.length||!e.tribe_has_attr("data-live_ajax")||"1"!=e.data("live_ajax"))},map_view:function(){return!("undefined"==typeof GeoLoc||!GeoLoc.map_view)},no_bar:function(){return r("body").is(".tribe-bar-is-disabled")},pushstate:!(!e.history||!history.pushState),reset_on:function(){return r("body").is(".tribe-reset-on")},starting_delim:function(){return tribe_ev.state.cur_url.indexOf("?")!=-1?"&":"?"},webkit:"WebkitAppearance"in t.documentElement.style},tribe_ev.data={ajax_response:{},base_url:"",cur_url:tribe_ev.fn.url_path(t.URL),cur_date:tribe_ev.fn.current_date(),datepicker_formats:{main:["yyyy-mm-dd","m/d/yyyy","mm/dd/yyyy","d/m/yyyy","dd/mm/yyyy","m-d-yyyy","mm-dd-yyyy","d-m-yyyy","dd-mm-yyyy","yyyy.mm.dd","mm.dd.yyyy","dd.mm.yyyy"],month:["yyyy-mm","m/yyyy","mm/yyyy","m/yyyy","mm/yyyy","m-yyyy","mm-yyyy","m-yyyy","mm-yyyy"]},datepicker_opts:{},default_permalinks:!i.permalink_settings.length,initial_url:tribe_ev.fn.url_path(t.URL),mobile_break:768,default_mobile_view:null,default_view:null,params:tribe_ev.fn.get_params(),v_height:0,v_width:0},tribe_ev.events={},tribe_ev.state={ajax_running:!1,ajax_timer:0,ajax_trigger:"",category:"",date:"",datepicker_format:"0",do_string:!1,featured:!1,filters:!1,filter_cats:!1,initial_load:!0,mdate:"",paged:1,page_title:"",params:{},popping:!1,pushstate:!0,pushcount:0,recurrence:!1,updating_picker:!1,url_params:{},view:"",view_target:""}}(window,document,jQuery,tribe_debug,tribe_js_config),function(e,t,r,a,i,n,s,o,d){r(t).ready(function(){function l(){r(".tribe-events-list").length&&r(".tribe-events-list-separator-month").prev(".vevent").addClass("tribe-event-end-month")}function u(){var e=t.URL,a="?";e.indexOf("?")>0&&(a="&");var i=e+a+"ical=1&tribe_display="+s.view;r("a.tribe-events-ical").attr("href",i)}d&&debug.info("TEC Debug: Tribe Events JS init, Init Timer started from tribe-events.js."),n.update_viewport_variables();var c,b=r("body"),v=r("#tribe-events"),_=(r("#tribe-events-content"),r("#tribe-events-header"));v.removeClass("tribe-no-js"),s.category=n.get_category(),a.base_url=n.get_base_url(),s.page_title=t.title;var y=n.get_url_param("tribe_event_display");if(y?s.view=y:_.length&&_.tribe_has_attr("data-view")&&(s.view=_.data("view")),v.tribe_has_attr("data-datepicker_format")&&1===v.attr("data-datepicker_format").length&&(s.datepicker_format=v.attr("data-datepicker_format")),s.view&&d&&debug.time("Tribe JS Init Timer"),r(i).on("tribe_ev_collectParams",function(){if("undefined"!=typeof tribe_ev.state&&"undefined"!=typeof tribe_ev.state.params&&(-1!==tribe_ev.fn.in_params(tribe_ev.state.params,"eventdate")||-1!==tribe_ev.fn.in_params(tribe_ev.state.params,"tribe_event_display"))&&r(t.getElementById("tribe-events")).is(".tribe-events-shortcode")){var a=r("#tribe-events-header"),i=r('link[rel="canonical"]'),n=null;if(n=i.length?i.attr("href"):a.length?a.data("baseurl"):e.location.origin+e.location.path,tribe_ev.state.params+="&baseurl="+n,a.length){var s=/tribe_events_cat=([^&]*)/gi.exec(a.data("baseurl"));if(s=s&&"undefined"!=typeof s[1]?s[1]:null){var o=new RegExp("tribe_event_category="+s);tribe_ev.state.params.match(o)||(tribe_ev.state.params+="&tribe_event_category="+s),"string"!=typeof tribe_ev.state.url_params||tribe_ev.state.url_params.match(o)||(tribe_ev.state.url_params+="&tribe_event_category="+s)}}}}),v.length){var m=v.tribe_has_attr("data-mobilebreak");m=!1===m?v.find("[data-mobilebreak]").eq(0):v,m.length&&(a.mobile_break=parseInt(m.data("mobilebreak"),10));var p=v.tribe_has_attr("data-default-mobile-view");p=!1===p?v.find("[data-default-mobile-view]").eq(0):v,p.length&&(a.default_mobile_view=p.data("defaultMobileView"),a.default_view=p.data("defaultView"))}v.length&&a.mobile_break>0&&b.addClass("tribe-is-responsive"),r(".tribe-events-calendar-widget").not(":eq(0)").hide(),n.tooltips(),n.mobile_class(),l(),r(".tribe-events-list .tribe-events-notices").length&&r("#tribe-events-header .tribe-events-sub-nav").empty(),r(".tribe-events-list").length&&r(".tribe-events-list-separator-month").prev(".vevent").addClass("tribe-event-end-month"),r(i).on("tribe_ev_ajaxSuccess",function(){r(".tribe-events-active-spinner").remove(),l()}),r(i).on("tribe_ev_ajaxSuccess",function(){u()}),u(),r(e).resize(function(){clearTimeout(c),c=setTimeout(n.execute_resize,200)}),d&&(debug.groupCollapsed("TEC Debug: Browser and events settings information:"),debug.log('User agent reported as: "'+navigator.userAgent),debug.log('Live ajax returned its state as: "'+o.live_ajax()),s.view&&debug.log('Tribe js detected the view to be: "'+s.view),debug.log('Supports pushstate: "'+o.pushstate),debug.groupEnd(),debug.info("TEC Debug: tribe-events.js successfully loaded"))})}(window,document,jQuery,tribe_ev.data,tribe_ev.events,tribe_ev.fn,tribe_ev.state,tribe_ev.tests,tribe_debug);
1
+ var tribe_ev=window.tribe_ev||{},tribe_debug=!0;window.debug=function(){function e(e){!r||!a&&s&&s.log||r.apply(i,e)}function t(e){return d>0?d>e:l.length+d<=e}for(var r,a,i=this,n=Array.prototype.slice,s=i.console,o={},d=9,l=["error","warn","info","debug","log"],u="assert clear count dir dirxml exception group groupCollapsed groupEnd profile profileEnd table time timeEnd trace".split(" "),c=u.length,b=[];--c>=0;)!function(e){o[e]=function(){0!==d&&s&&s[e]&&s[e].apply(s,arguments)}}(u[c]);for(c=l.length;--c>=0;)!function(r,a){o[a]=function(){var o=n.call(arguments),d=[a].concat(o);b.push(d),e(d),s&&t(r)&&(s.firebug?s[a].apply(i,o):s[a]?s[a](o):s.log(o))}}(c,l[c]);return o.setLevel=function(e){d="number"==typeof e?e:9},o.setCallback=function(){var t=n.call(arguments),i=b.length,s=i;for(r=t.shift()||null,a="boolean"==typeof t[0]&&t.shift(),s-="number"==typeof t[0]?t.shift():i;s<i;)e(b[s++])},o}(),Object.prototype.hasOwnProperty.call(window,"tribe_ev")&&(tribe_ev.diagnostics={init:[]});var tribe_storage,t_fail,t_uid;try{t_uid=new Date,(tribe_storage=window.localStorage).setItem(t_uid,t_uid),t_fail=tribe_storage.getItem(t_uid)!=t_uid,tribe_storage.removeItem(t_uid),t_fail&&(tribe_storage=!1)}catch(e){tribe_storage=!1}var tribeDateFormat=function(){var e=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,t=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,r=/[^-+\dA-Z]/g,a=function(e,t){for(e=String(e),t=t||2;e.length<t;)e="0"+e;return e};return function(i,n,s){var o=tribeDateFormat;if(1!=arguments.length||"[object String]"!=Object.prototype.toString.call(i)||/\d/.test(i)||(n=i,i=void 0),"string"==typeof i&&(i=i.replace(/-/g,"/")),i=i?new Date(i):new Date,!isNaN(i)){n=String(o.masks[n]||n||o.masks["default"]),"UTC:"==n.slice(0,4)&&(n=n.slice(4),s=!0);var d=s?"getUTC":"get",l=i[d+"Date"](),u=i[d+"Day"](),c=i[d+"Month"](),b=i[d+"FullYear"](),v=i[d+"Hours"](),y=i[d+"Minutes"](),_=i[d+"Seconds"](),m=i[d+"Milliseconds"](),p=s?0:i.getTimezoneOffset(),f={d:l,dd:a(l),ddd:o.i18n.dayNames[u],dddd:o.i18n.dayNames[u+7],m:c+1,mm:a(c+1),mmm:o.i18n.monthNames[c],mmmm:o.i18n.monthNames[c+12],yy:String(b).slice(2),yyyy:b,h:v%12||12,hh:a(v%12||12),H:v,HH:a(v),M:y,MM:a(y),s:_,ss:a(_),l:a(m,3),L:a(m>99?Math.round(m/10):m),t:v<12?"a":"p",tt:v<12?"am":"pm",T:v<12?"A":"P",TT:v<12?"AM":"PM",Z:s?"UTC":(String(i).match(t)||[""]).pop().replace(r,""),o:(p>0?"-":"+")+a(100*Math.floor(Math.abs(p)/60)+Math.abs(p)%60,4),S:["th","st","nd","rd"][l%10>3?0:(l%100-l%10!=10)*l%10]};return n.replace(e,function(e){return e in f?f[e]:e.slice(1,e.length-1)})}}}();tribeDateFormat.masks={"default":"ddd mmm dd yyyy HH:MM:ss",tribeQuery:"yyyy-mm-dd",tribeMonthQuery:"yyyy-mm",0:"yyyy-mm-dd",1:"m/d/yyyy",2:"mm/dd/yyyy",3:"d/m/yyyy",4:"dd/mm/yyyy",5:"m-d-yyyy",6:"mm-dd-yyyy",7:"d-m-yyyy",8:"dd-mm-yyyy",9:"yyyy.mm.dd",10:"mm.dd.yyyy",11:"dd.mm.yyyy",m0:"yyyy-mm",m1:"m/yyyy",m2:"mm/yyyy",m3:"m/yyyy",m4:"mm/yyyy",m5:"m-yyyy",m6:"mm-yyyy",m7:"m-yyyy",m8:"mm-yyyy"},tribeDateFormat.i18n={dayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"]};var tribeUtils={getQueryVars:function(e){var t={},e=e||location;return e.search.substr(1).split("&").forEach(function(e){t[e.split("=")[0]]=e.split("=")[1]}),t}};Date.prototype.format=function(e,t){return tribeDateFormat(this,e,t)},function(){function e(e,t){var r=arguments.callee;return r.cache[e]||(r.cache[e]=function(){var t=e,a=/^[\w\-]+$/.test(e)?r.get(e):(t="template(string)",e),i=1,n=("try { "+(r.variable?"var "+r.variable+" = this.stash;":"with (this.stash) { ")+"this.ret += '"+a.replace(/\[\[/g,"").replace(/\]\]/g,"").replace(/'(?![^\x11\x13]+?\x13)/g,"\\x27").replace(/^\s*|\s*$/g,"").replace(/\n/g,function(){return"';\nthis.line = "+ ++i+"; this.ret += '\\n"}).replace(/\x11=raw(.+?)\x13/g,"' + ($1) + '").replace(/\x11=(.+?)\x13/g,"' + this.escapeHTML($1) + '").replace(/\x11(.+?)\x13/g,"'; $1; this.ret += '")+"'; "+(r.variable?"":"}")+"return this.ret;} catch (e) { throw 'TemplateError: ' + e + ' (on "+t+"' + ' line ' + this.line + ')'; } //@ sourceURL="+t+"\n").replace(/this\.ret \+= '';/g,""),s=new Function(n),o={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&#x22;","'":"&#x27;"},d=function(e){return(""+e).replace(/[&<>\'\"]/g,function(e){return o[e]})};return function(e){return s.call(r.context={escapeHTML:d,line:1,ret:"",stash:e})}}()),t?r.cache[e](t):r.cache[e]}function t(t,r){var a=function(r){return r.include=function(t,r){var a={};for(var i in e.context.stash)e.context.stash.hasOwnProperty(i)&&(a[i]=e.context.stash[i]);if(r)for(var i in r)r.hasOwnProperty(i)&&(a[i]=r[i]);var n=e.context;n.ret+=e(t,a),e.context=n},r.wrapper=function(t,r){var a=e.context.ret;e.context.ret="",r.apply(e.context);var i=e.context.ret,n=e.context.stash.content;e.context.stash.content=i,e.context.ret=a+e(t,e.context.stash),e.context.stash.content=n},e(t,r)};return r?a(r):a}e.cache={},e.get=function(e){return document.getElementById(e).innerHTML},e.get=function(e){var r=t.get;return r?r(e):document.getElementById(e).innerHTML},this.tribe_tmpl=e,this.tribe_tmpl_extended=t}(),function(e,t){if(e.fn.tribe_clear_form=function(){return this.each(function(){var t=this.type,r=this.tagName.toLowerCase();return"form"==r?e(":input",this).tribe_clear_form():void("text"==t||"password"==t||"textarea"==r?this.value="":"checkbox"==t||"radio"==t?this.checked=!1:"select"==r&&(this.selectedIndex=0))})},e.fn.tribe_has_attr=function(e){return this.attr(e)!==t},e.fn.tribe_spin=function(){var t=e(".tribe-events-ajax-loading:first").clone().addClass("tribe-events-active-spinner");t.prependTo("#tribe-events-content"),e(this).addClass("tribe-events-loading").css("opacity",.25)},"undefined"!=typeof e.fn.datepicker&&"undefined"!=typeof e.fn.datepicker.noConflict){var r=e.fn.datepicker.noConflict();e.fn.bootstrapDatepicker=r}"undefined"!=typeof tribe_bootstrap_datepicker_strings&&null!=tribe_bootstrap_datepicker_strings.dates&&(e.fn.bootstrapDatepicker.dates.en=tribe_bootstrap_datepicker_strings.dates)}(jQuery),function(e,t,r,a,i,n){tribe_ev.fn={current_date:function(){var e=new Date,t=e.getDate(),r=e.getMonth()+1,a=e.getFullYear();return t<10&&(t="0"+t),r<10&&(r="0"+r),a+"-"+r+"-"+t},disable_inputs:function(e,t){r(e).find(t).prop("disabled",!0),r(e).find(".select2-container").length&&r(e).find(".select2-container").each(function(){var e=r(this).attr("id"),t=r("#"+e);t.select2("disable")})},disable_empty:function(e,t){r(e).find(t).each(function(){""===r(this).val()&&r(this).prop("disabled",!0)})},enable_inputs:function(e,t){r(e).find(t).prop("disabled",!1),r(e).find(".select2-container").length&&r(e).find(".select2-container").each(function(){var e=r(this).attr("id"),t=r("#"+e);t.select2("enable")})},execute_resize:function(){var e=tribe_ev.data.v_width;tribe_ev.fn.update_viewport_variables(),e!==tribe_ev.data.v_width&&(tribe_ev.fn.mobile_class(),r(tribe_ev.events).trigger("tribe_ev_resizeComplete"),r(tribe_ev.events).trigger("resize-complete.tribe"))},get_base_url:function(){var t="",a=r("#tribe-events-header"),i=r('link[rel="canonical"]');return t=i.length?i.attr("href"):a.length?a.data("baseurl"):e.location.origin+e.location.path},update_base_url:function(e){var t=r("#tribe-events-header"),a=r('link[rel="canonical"]');a.length?a.attr("href",e):t.length&&t.data("baseurl",e).attr("data-baseurl",e)},get_category:function(){return tribe_ev.fn.is_category()?r("#tribe-events").data("category"):""},get_day:function(){var e="";return r("#tribe-bar-date").length&&(e=r("#tribe-bar-date-day").val()),a&&debug.info('TEC Debug: tribe_ev.fn.get_day returned this date: "'+e+'".'),e},get_params:function(){return location.search.substr(1)},get_url_param:function(e){return decodeURIComponent((new RegExp("[?|&]"+e+"=([^&;]+?)(&|#|;|$)").exec(location.search)||[,""])[1].replace(/\+/g,"%20"))||null},in_params:function(e,t){return e.toLowerCase().indexOf(t)},invalid_date:function(e){return e=new Date(e),isNaN(e)},invalid_date_in_params:function(e){if(e.hasOwnProperty("tribe-bar-date")){var t=new Date(e["tribe-bar-date"]);return isNaN(t)}return!1},is_category:function(){var e=r("#tribe-events");return!(!e.length||!e.tribe_has_attr("data-category")||""===e.data("category"))},is_featured:function(){return"1"==r("#tribe-events").data("featured")},mobile_class:function(){var e=r("body");tribe_ev.data.v_width<=tribe_ev.data.mobile_break?e.addClass("tribe-mobile"):e.removeClass("tribe-mobile")},maybe_default_view_change:function(){if(!tribe_ev.data.default_view||!tribe_ev.data.default_mobile_view||tribe_ev.data.default_view==tribe_ev.data.default_mobile_view||!tribe_ev.state.view||tribe_ev.data.default_mobile_view==tribe_ev.state.view||tribe_ev.data.cur_url==tribe_ev.data.base_url)return!1;var e=r("body");if(!e.hasClass("tribe-mobile"))return!1;var t=r(".tribe-bar-views-option"),a=".tribe-bar-views-option-"+tribe_ev.data.default_mobile_view,i=t.filter(a);i.trigger("click")},parse_string:function(e){var t={};return e.replace(/([^&=]+)=?([^&]*)(?:&+|$)/g,function(e,r,a){(t[r]=t[r]||[]).push(a)}),a&&debug.info("TEC Debug: tribe_ev.fn.parse_string returned this map:",t),t},pre_ajax:function(e){e&&"function"==typeof e&&e()},scroll_to:function(e,t,a){r("html, body").stop().animate({scrollTop:r(e).offset().top-t},{duration:a})},serialize:function(e,t){tribe_ev.fn.enable_inputs(e,t),tribe_ev.fn.disable_empty(e,t);var i=r(e).serialize();return tribe_ev.fn.disable_inputs(e,t),a&&i&&debug.info('TEC Debug: tribe_ev.fn.serialize returned these params: "'+i),i},set_form:function(e){var t=r("body"),i=r("#tribe-bar-form");t.addClass("tribe-reset-on"),i.length&&i.tribe_clear_form(),e=tribe_ev.fn.parse_string(e),r.each(e,function(e,t){if("action"!==e){var a=decodeURIComponent(e),i="";if(1===t.length)Array.isArray(t)&&(t=t[0]),t=decodeURIComponent(t.replace(/\+/g,"%20")),r('[name="'+a+'"]').is('input[type="text"], input[type="hidden"]')?r('[name="'+a+'"]').val(t):r('[name="'+a+'"][value="'+t+'"]').is(":checkbox, :radio")?r('[name="'+a+'"][value="'+t+'"]').prop("checked",!0):r('[name="'+a+'"]').is("select")&&r('select[name="'+a+'"] option[value="'+t+'"]').attr("selected",!0);else for(var n=0;n<t.length;n++)i=r('[name="'+a+'"][value="'+t[n]+'"]'),i.is(":checkbox, :radio")?i.prop("checked",!0):r('select[name="'+a+'"] option[value="'+t[n]+'"]').attr("selected",!0)}}),t.removeClass("tribe-reset-on"),a&&debug.info('TEC Debug: tribe_ev.fn.set_form fired these params: "'+e)},setup_ajax_timer:function(e){var t=500;clearTimeout(tribe_ev.state.ajax_timer),tribe_ev.tests.reset_on()||(tribe_ev.state.ajax_timer=setTimeout(function(){e()},t),a&&debug.info('TEC Debug: tribe_ev.fn.setup_ajax_timer fired with a timeout of "'+t+'" ms'))},snap:function(e,t,a){r(t).on("click",a,function(t){t.preventDefault(),r("html, body").animate({scrollTop:r(e).offset().top-120},{duration:0})})},tooltips:function(){var t=r("#tribe-events"),a=r("body"),i=t.hasClass("tribe-events-shortcode"),n=t.hasClass("view-month")||a.hasClass("events-gridview"),s=t.hasClass("view-week")||a.hasClass("tribe-events-week"),o=t.hasClass("view-photo")||a.hasClass("tribe-events-photo"),d=t.hasClass("view-day")||a.hasClass("tribe-events-day"),l=t.hasClass("view-list")||a.hasClass("events-list"),u=(t.hasClass("view-map")||a.hasClass("tribe-events-map"),a.hasClass("single-tribe_events"));t.on("mouseenter",'div[id*="tribe-events-event-"], div.event-is-recurring',function(){var t,a=0,c=r(this);if(n?a=c.find("a").outerHeight()+18:u||d||l?a=c.outerHeight()+12:o&&(a=c.outerHeight()+10),c.parents(".tribe-events-calendar-widget").length&&(a=c.outerHeight()-6),!s||i)if(n||i){if(t=c.find(".tribe-events-tooltip"),!t.length){var b=c.data("tribejson");"string"==typeof b&&(b=r.parseJSON(b));var v=c.hasClass("tribe-event-featured")?"tribe_tmpl_tooltip_featured":"tribe_tmpl_tooltip";c.append(tribe_tmpl(v,b)),t=c.find(".tribe-events-tooltip")}var y=c.offset().top-(r(e).scrollTop()+50),_=t.outerHeight();y<_&&(a=-_,t.addClass("tribe-events-tooltip-flipdown")),t.css("bottom",a).show()}else c.find(".tribe-events-tooltip").css("bottom",a).show()}).on("mouseleave",'div[id*="tribe-events-event-"], div[id*="tribe-events-daynum-"]:has(a), div.event-is-recurring',function(){var e=r(this).find(".tribe-events-tooltip");e.stop(!0,!1).fadeOut(200,function(){e.removeClass("tribe-events-tooltip-flipdown")})})},update_picker:function(t){var i=r("#tribe-bar-date");r().bootstrapDatepicker&&i.length?(tribe_ev.state.updating_picker=!0,e.attachEvent&&!e.addEventListener&&(i.bootstrapDatepicker("remove"),i.val(""),i.bootstrapDatepicker(tribe_ev.data.datepicker_opts)),i.bootstrapDatepicker("setDate",t),tribe_ev.state.updating_picker=!1,a&&debug.info('TEC Debug: tribe_ev.fn.update_picker sent "'+t+'" to the boostrapDatepicker')):i.length?(i.val(t),a&&debug.warn('TEC Debug: tribe_ev.fn.update_picker sent "'+t+'" to '+i)):a&&debug.warn('TEC Debug: tribe_ev.fn.update_picker couldnt send "'+t+'" to any object.')},update_viewport_variables:function(){tribe_ev.data.v_height=r(e).height(),tribe_ev.data.v_width=r(e).width()},url_path:function(e){return e.split("?")[0]},equal_height:function(e){var t=0;e.css("height","auto"),e.each(function(){var e=r(this).outerHeight();e>t&&(t=e)}),setTimeout(function(){e.css("height",t)},100)}},tribe_ev.tests={live_ajax:function(){var e=r("#tribe-events");return!(!e.length||!e.tribe_has_attr("data-live_ajax")||"1"!=e.data("live_ajax"))},map_view:function(){return!("undefined"==typeof GeoLoc||!GeoLoc.map_view)},no_bar:function(){return r("body").is(".tribe-bar-is-disabled")},pushstate:!(!e.history||!history.pushState),reset_on:function(){return r("body").is(".tribe-reset-on")},starting_delim:function(){return tribe_ev.state.cur_url.indexOf("?")!=-1?"&":"?"},webkit:"WebkitAppearance"in t.documentElement.style},tribe_ev.data={ajax_response:{},base_url:"",cur_url:tribe_ev.fn.url_path(t.URL),cur_date:tribe_ev.fn.current_date(),datepicker_formats:{main:["yyyy-mm-dd","m/d/yyyy","mm/dd/yyyy","d/m/yyyy","dd/mm/yyyy","m-d-yyyy","mm-dd-yyyy","d-m-yyyy","dd-mm-yyyy","yyyy.mm.dd","mm.dd.yyyy","dd.mm.yyyy"],month:["yyyy-mm","m/yyyy","mm/yyyy","m/yyyy","mm/yyyy","m-yyyy","mm-yyyy","m-yyyy","mm-yyyy","yyyy.mm","mm.yyyy","mm.yyyy"]},datepicker_opts:{},default_permalinks:!i.permalink_settings.length,initial_url:tribe_ev.fn.url_path(t.URL),mobile_break:768,default_mobile_view:null,default_view:null,params:tribe_ev.fn.get_params(),v_height:0,v_width:0},tribe_ev.events={},tribe_ev.state={ajax_running:!1,ajax_timer:0,ajax_trigger:"",category:"",date:"",datepicker_format:"0",do_string:!1,featured:!1,filters:!1,filter_cats:!1,initial_load:!0,mdate:"",paged:1,page_title:"",params:{},popping:!1,pushstate:!0,pushcount:0,recurrence:!1,updating_picker:!1,url_params:{},view:"",view_target:""}}(window,document,jQuery,tribe_debug,tribe_js_config),function(e,t,r,a,i,n,s,o,d){r(t).ready(function(){function l(){r(".tribe-events-list").length&&r(".tribe-events-list-separator-month").prev(".vevent").addClass("tribe-event-end-month")}function u(){var e=t.URL,a="?";e.indexOf("?")>0&&(a="&");var i=e+a+"ical=1&tribe_display="+s.view;r("a.tribe-events-ical").attr("href",i)}d&&debug.info("TEC Debug: Tribe Events JS init, Init Timer started from tribe-events.js."),n.update_viewport_variables();var c,b=r("body"),v=r(t.getElementById("tribe-events")),y=(r(t.getElementById("tribe-events-content")),r(t.getElementById("tribe-events-header")));v.removeClass("tribe-no-js"),s.category=n.get_category(),a.base_url=n.get_base_url(),s.page_title=t.title;var _=n.get_url_param("tribe_event_display");if(_?s.view=_:y.length&&y.tribe_has_attr("data-view")&&(s.view=y.data("view")),v.tribe_has_attr("data-datepicker_format")&&(s.datepicker_format=v.attr("data-datepicker_format")),s.view&&d&&debug.time("Tribe JS Init Timer"),r(i).on("tribe_ev_collectParams",function(){if("undefined"!=typeof tribe_ev.state&&"undefined"!=typeof tribe_ev.state.params&&(-1!==tribe_ev.fn.in_params(tribe_ev.state.params,"eventdate")||-1!==tribe_ev.fn.in_params(tribe_ev.state.params,"tribe_event_display"))&&r(t.getElementById("tribe-events")).is(".tribe-events-shortcode")){var a=r("#tribe-events-header"),i=r('link[rel="canonical"]'),n=null;if(n=i.length?i.attr("href"):a.length?a.data("baseurl"):e.location.origin+e.location.path,tribe_ev.state.params+="&baseurl="+n,a.length){var s=/tribe_events_cat=([^&]*)/gi.exec(a.data("baseurl"));if(s=s&&"undefined"!=typeof s[1]?s[1]:null){var o=new RegExp("tribe_event_category="+s);tribe_ev.state.params.match(o)||(tribe_ev.state.params+="&tribe_event_category="+s),"string"!=typeof tribe_ev.state.url_params||tribe_ev.state.url_params.match(o)||(tribe_ev.state.url_params+="&tribe_event_category="+s)}}}}),v.length){var m=v.tribe_has_attr("data-mobilebreak");m=!1===m?v.find("[data-mobilebreak]").eq(0):v,m.length&&(a.mobile_break=parseInt(m.data("mobilebreak"),10));var p=v.tribe_has_attr("data-default-mobile-view");p=!1===p?v.find("[data-default-mobile-view]").eq(0):v,p.length&&(a.default_mobile_view=p.data("defaultMobileView"),a.default_view=p.data("defaultView"))}v.length&&a.mobile_break>0&&b.addClass("tribe-is-responsive"),r(".tribe-events-calendar-widget").not(":eq(0)").hide(),n.tooltips(),n.mobile_class(),l(),r(".tribe-events-list .tribe-events-notices").length&&r("#tribe-events-header .tribe-events-sub-nav").empty(),r(".tribe-events-list").length&&r(".tribe-events-list-separator-month").prev(".vevent").addClass("tribe-event-end-month"),r(i).on("tribe_ev_ajaxSuccess",function(){r(".tribe-events-active-spinner").remove(),l()}),r(i).on("tribe_ev_ajaxSuccess",function(){u()}),u(),r(e).resize(function(){clearTimeout(c),c=setTimeout(n.execute_resize,200)}),d&&(debug.groupCollapsed("TEC Debug: Browser and events settings information:"),debug.log('User agent reported as: "'+navigator.userAgent),debug.log('Live ajax returned its state as: "'+o.live_ajax()),s.view&&debug.log('Tribe js detected the view to be: "'+s.view),debug.log('Supports pushstate: "'+o.pushstate),debug.groupEnd(),debug.info("TEC Debug: tribe-events.js successfully loaded"))})}(window,document,jQuery,tribe_ev.data,tribe_ev.events,tribe_ev.fn,tribe_ev.state,tribe_ev.tests,tribe_debug);
src/resources/postcss/tribe-events-full.pcss CHANGED
@@ -1266,6 +1266,36 @@ select.tribe-events-dropdown {
1266
  max-height: 150px;
1267
  max-width: 150px;
1268
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1269
  }
1270
 
1271
  #tribe-events-content .tribe-events-tooltip {
1266
  max-height: 150px;
1267
  max-width: 150px;
1268
  }
1269
+
1270
+ /** For when a tooltip is near top edge of viewport, so displays below event title instead of above it. */
1271
+ &.tribe-events-tooltip-flipdown {
1272
+
1273
+ &:before {
1274
+ border: 10px solid transparent;
1275
+ border-bottom-color: #666;
1276
+ content: ' ';
1277
+ display: block;
1278
+ height: 0;
1279
+ left: 17px;
1280
+ position: absolute;
1281
+ top: -21px;
1282
+ width: 0;
1283
+ z-index: 2;
1284
+ }
1285
+
1286
+ .tribe-events-arrow {
1287
+ display: none;
1288
+ }
1289
+ }
1290
+ }
1291
+
1292
+ /** Tweak location of the arrow on "flipdown" tooltips for events on the right side of the screen. */
1293
+ .tribe-events-right .tribe-events-tooltip {
1294
+
1295
+ &.tribe-events-tooltip-flipdown:before {
1296
+ left: auto;
1297
+ right: 43px;
1298
+ }
1299
  }
1300
 
1301
  #tribe-events-content .tribe-events-tooltip {
src/resources/postcss/tribe-events-skeleton.pcss CHANGED
@@ -561,6 +561,14 @@ select.tribe-events-dropdown {
561
  left: auto;
562
  right: 30px;
563
  }
 
 
 
 
 
 
 
 
564
 
565
  /* Recurring info tooltip */
566
  .recurringinfo {
561
  left: auto;
562
  right: 30px;
563
  }
564
+ /** For when a tooltip is near top edge of viewport, so displays below event title instead of above it. */
565
+ .tribe-events-tooltip.tribe-events-tooltip-flipdown {
566
+ .tribe-events-arrow {
567
+ top: -11px;
568
+ transform: rotate(180deg);
569
+ }
570
+ }
571
+
572
 
573
  /* Recurring info tooltip */
574
  .recurringinfo {
src/resources/postcss/tribe-events-theme.pcss CHANGED
@@ -429,6 +429,13 @@ h2.tribe-events-page-title,
429
  max-width: none;
430
  }
431
 
 
 
 
 
 
 
 
432
  /**
433
  * Shortcode specific CSS
434
  */
429
  max-width: none;
430
  }
431
 
432
+ .tribe-events-tooltip.tribe-events-tooltip-flipdown {
433
+ &::before {
434
+ border-bottom-color: #fff;
435
+ top: -20px; /* Normally it's -21px, but -20px works better in Tribe Events theme because of tooltip box-shadow. */
436
+ }
437
+ }
438
+
439
  /**
440
  * Shortcode specific CSS
441
  */
src/views/day/single-event.php CHANGED
@@ -5,7 +5,7 @@
5
  *
6
  * Override this template in your own theme by creating a file at [your-theme]/tribe-events/day/single-event.php
7
  *
8
- * @version 4.5.6
9
  *
10
  */
11
 
@@ -16,9 +16,12 @@ if ( ! defined( 'ABSPATH' ) ) {
16
  $venue_details = tribe_get_venue_details();
17
 
18
  // Venue microformats
19
- $has_venue = ( $venue_details ) ? ' vcard' : '';
20
  $has_venue_address = ( ! empty( $venue_details['address'] ) ) ? ' location' : '';
21
 
 
 
 
22
  ?>
23
 
24
  <!-- Event Title -->
@@ -42,7 +45,12 @@ $has_venue_address = ( ! empty( $venue_details['address'] ) ) ? ' location' : ''
42
  <?php if ( $venue_details ) : ?>
43
  <!-- Venue Display Info -->
44
  <div class="tribe-events-venue-details">
45
- <?php echo implode( ', ', $venue_details ); ?>
 
 
 
 
 
46
  </div> <!-- .tribe-events-venue-details -->
47
  <?php endif; ?>
48
 
5
  *
6
  * Override this template in your own theme by creating a file at [your-theme]/tribe-events/day/single-event.php
7
  *
8
+ * @version 4.5.11
9
  *
10
  */
11
 
16
  $venue_details = tribe_get_venue_details();
17
 
18
  // Venue microformats
19
+ $has_venue = ( $venue_details ) ? ' vcard' : '';
20
  $has_venue_address = ( ! empty( $venue_details['address'] ) ) ? ' location' : '';
21
 
22
+ // The address string via tribe_get_venue_details will often be populated even when there's
23
+ // no address, so let's get the address string on its own for a couple of checks below.
24
+ $venue_address = tribe_get_address();
25
  ?>
26
 
27
  <!-- Event Title -->
45
  <?php if ( $venue_details ) : ?>
46
  <!-- Venue Display Info -->
47
  <div class="tribe-events-venue-details">
48
+ <?php
49
+ $address_delimiter = empty( $venue_address ) ? ' ' : ', ';
50
+
51
+ // These details are already escaped in various ways earlier in the code.
52
+ echo implode( $address_delimiter, $venue_details );
53
+ ?>
54
  </div> <!-- .tribe-events-venue-details -->
55
  <?php endif; ?>
56
 
src/views/list/single-event.php CHANGED
@@ -5,7 +5,7 @@
5
  *
6
  * Override this template in your own theme by creating a file at [your-theme]/tribe-events/list/single-event.php
7
  *
8
- * @version 4.5.6
9
  *
10
  */
11
  if ( ! defined( 'ABSPATH' ) ) {
@@ -15,6 +15,10 @@ if ( ! defined( 'ABSPATH' ) ) {
15
  // Setup an array of venue details for use later in the template
16
  $venue_details = tribe_get_venue_details();
17
 
 
 
 
 
18
  // Venue
19
  $has_venue_address = ( ! empty( $venue_details['address'] ) ) ? ' location' : '';
20
 
@@ -45,12 +49,16 @@ $organizer = tribe_get_organizer();
45
  <?php if ( $venue_details ) : ?>
46
  <!-- Venue Display Info -->
47
  <div class="tribe-events-venue-details">
48
- <?php echo implode( ', ', $venue_details ); ?>
49
- <?php
 
 
 
 
50
  if ( tribe_get_map_link() ) {
51
  echo tribe_get_map_link_html();
52
  }
53
- ?>
54
  </div> <!-- .tribe-events-venue-details -->
55
  <?php endif; ?>
56
 
5
  *
6
  * Override this template in your own theme by creating a file at [your-theme]/tribe-events/list/single-event.php
7
  *
8
+ * @version 4.5.11
9
  *
10
  */
11
  if ( ! defined( 'ABSPATH' ) ) {
15
  // Setup an array of venue details for use later in the template
16
  $venue_details = tribe_get_venue_details();
17
 
18
+ // The address string via tribe_get_venue_details will often be populated even when there's
19
+ // no address, so let's get the address string on its own for a couple of checks below.
20
+ $venue_address = tribe_get_address();
21
+
22
  // Venue
23
  $has_venue_address = ( ! empty( $venue_details['address'] ) ) ? ' location' : '';
24
 
49
  <?php if ( $venue_details ) : ?>
50
  <!-- Venue Display Info -->
51
  <div class="tribe-events-venue-details">
52
+ <?php
53
+ $address_delimiter = empty( $venue_address ) ? ' ' : ', ';
54
+
55
+ // These details are already escaped in various ways earlier in the process.
56
+ echo implode( $address_delimiter, $venue_details );
57
+
58
  if ( tribe_get_map_link() ) {
59
  echo tribe_get_map_link_html();
60
  }
61
+ ?>
62
  </div> <!-- .tribe-events-venue-details -->
63
  <?php endif; ?>
64
 
the-events-calendar.php CHANGED
@@ -2,7 +2,7 @@
2
  /*
3
  Plugin Name: The Events Calendar
4
  Description: The Events Calendar is a carefully crafted, extensible plugin that lets you easily share your events. Beautiful. Solid. Awesome.
5
- Version: 4.5.10.1
6
  Author: Modern Tribe, Inc.
7
  Author URI: http://m.tri.be/1x
8
  Text Domain: the-events-calendar
2
  /*
3
  Plugin Name: The Events Calendar
4
  Description: The Events Calendar is a carefully crafted, extensible plugin that lets you easily share your events. Beautiful. Solid. Awesome.
5
+ Version: 4.5.11
6
  Author: Modern Tribe, Inc.
7
  Author URI: http://m.tri.be/1x
8
  Text Domain: the-events-calendar