Version Description
= [6.0] = Please see the changelog for the complete list of changes in this release. Previous versions of The Events Calendar are not cross-compatible with 6.X add-ons. Remember to always make a backup of your database and files before updating!
Download this release
Release Info
Developer | bordoni |
Plugin | The Events Calendar |
Version | 6.0.1 |
Comparing to | |
See all releases |
Code changes from version 6.0.0.1 to 6.0.1
- common/lang/tribe-common-de_DE.mo +0 -0
- common/src/Tribe/Context.php +17 -1
- common/src/Tribe/Cost_Utils.php +1 -1
- common/src/Tribe/Customizer.php +2 -2
- common/src/Tribe/Main.php +7 -7
- common/src/Tribe/Repository.php +13 -1
- common/src/Tribe/Repository/Decorator.php +7 -0
- common/src/Tribe/Repository/Interface.php +9 -0
- common/src/Tribe/Utils/Array.php +1 -1
- common/src/functions/utils.php +21 -2
- common/vendor/autoload.php +1 -1
- common/vendor/autoload_52.php +1 -1
- common/vendor/composer/autoload_real.php +4 -4
- common/vendor/composer/autoload_real_52.php +3 -3
- common/vendor/composer/autoload_static.php +5 -5
- common/vendor/composer/installed.json +6 -6
- lang/the-events-calendar-bg_BG.mo +0 -0
- lang/the-events-calendar-ca.mo +0 -0
- lang/the-events-calendar-cs_CZ.mo +0 -0
- lang/the-events-calendar-da_DK.mo +0 -0
- lang/the-events-calendar-de_CH.mo +0 -0
- lang/the-events-calendar-de_DE.mo +0 -0
- lang/the-events-calendar-el.mo +0 -0
- lang/the-events-calendar-en_AU.mo +0 -0
- lang/the-events-calendar-en_CA.mo +0 -0
- lang/the-events-calendar-en_GB.mo +0 -0
- lang/the-events-calendar-en_NZ.mo +0 -0
- lang/the-events-calendar-en_ZA.mo +0 -0
- lang/the-events-calendar-es_AR.mo +0 -0
- lang/the-events-calendar-es_CO.mo +0 -0
- lang/the-events-calendar-es_DO.mo +0 -0
- lang/the-events-calendar-es_EC.mo +0 -0
- lang/the-events-calendar-es_ES.mo +0 -0
- lang/the-events-calendar-es_MX.mo +0 -0
- lang/the-events-calendar-es_VE.mo +0 -0
- lang/the-events-calendar-et.mo +0 -0
- lang/the-events-calendar-eu.mo +0 -0
- lang/the-events-calendar-fi.mo +0 -0
- lang/the-events-calendar-fr_CA.mo +0 -0
- lang/the-events-calendar-fr_FR.mo +0 -0
- lang/the-events-calendar-gl_ES.mo +0 -0
- lang/the-events-calendar-he_IL.mo +0 -0
- lang/the-events-calendar-hr.mo +0 -0
- lang/the-events-calendar-hu_HU.mo +0 -0
- lang/the-events-calendar-it_IT.mo +0 -0
- lang/the-events-calendar-ja.mo +0 -0
- lang/the-events-calendar-ko_KR.mo +0 -0
- lang/the-events-calendar-lt_LT.mo +0 -0
- lang/the-events-calendar-nb_NO.mo +0 -0
- lang/the-events-calendar-nl_BE.mo +0 -0
- lang/the-events-calendar-nl_NL.mo +0 -0
- lang/the-events-calendar-nn_NO.mo +0 -0
- lang/the-events-calendar-pl_PL.mo +0 -0
- lang/the-events-calendar-pt_BR.mo +0 -0
- lang/the-events-calendar-pt_PT.mo +0 -0
- lang/the-events-calendar-ro_RO.mo +0 -0
- lang/the-events-calendar-ru_RU.mo +0 -0
- lang/the-events-calendar-sk_SK.mo +0 -0
- lang/the-events-calendar-sl_SI.mo +0 -0
- lang/the-events-calendar-sq.mo +0 -0
- lang/the-events-calendar-sv_SE.mo +0 -0
- lang/the-events-calendar-tr_TR.mo +0 -0
- lang/the-events-calendar-uk.mo +0 -0
- lang/the-events-calendar-zh_CN.mo +0 -0
- lang/the-events-calendar.pot +193 -170
- readme.txt +21 -1
- src/Events/Custom_Tables/V1/Activation.php +38 -4
- src/Events/Custom_Tables/V1/Migration/Events.php +17 -4
- src/Events/Custom_Tables/V1/Migration/Process.php +15 -5
- src/Events/Custom_Tables/V1/Migration/Process_Worker.php +107 -11
- src/Events/Custom_Tables/V1/Migration/Reports/Site_Report.php +11 -12
- src/Events/Custom_Tables/V1/Migration/Strategies/Single_Event_Migration_Strategy.php +2 -2
- src/Events/Custom_Tables/V1/Models/Builder.php +26 -0
- src/Events/Custom_Tables/V1/Models/Model.php +2 -0
- src/Events/Custom_Tables/V1/Models/Occurrence.php +2 -2
- src/Events/Custom_Tables/V1/Models/Validators/Duration.php +13 -14
- src/Events/Custom_Tables/V1/Models/Validators/Occurrence_Duration.php +77 -0
- src/Events/Custom_Tables/V1/Provider.php +1 -0
- src/Events/Custom_Tables/V1/Repository/Events.php +16 -7
- src/Events/Custom_Tables/V1/Repository/Provider.php +1 -1
- src/Events/Custom_Tables/V1/Updates/Requests.php +6 -0
- src/Events/Custom_Tables/V1/WP_Query/Custom_Tables_Query.php +4 -1
- src/Events/Custom_Tables/V1/WP_Query/Modifiers/Events_Not_In_Series_Modifier.php +5 -0
- src/Events/Custom_Tables/V1/admin-views/migration/maintenance-mode/phase/migration-in-progress.php +1 -1
- src/Events/Custom_Tables/V1/admin-views/migration/upgrade-box.php +1 -1
- src/Tribe/Admin/Settings.php +3 -3
- src/Tribe/Aggregator/Record/Abstract.php +7 -1
- src/Tribe/Deactivation.php +6 -0
- src/Tribe/Editor/Compatibility.php +13 -4
- src/Tribe/Integrations/Divi/Service_Provider.php +73 -0
- src/Tribe/Integrations/Manager.php +14 -0
- src/Tribe/Integrations/WPML/Meta.php +10 -0
- src/Tribe/Linked_Posts/Chooser_Meta_Box.php +10 -4
- src/Tribe/Main.php +4 -5
- src/Tribe/Models/Post_Types/Event.php +6 -5
- src/Tribe/Plugin_Register.php +1 -1
- src/Tribe/Updater.php +13 -1
- src/Tribe/Views/V2/Query/Event_Query_Controller.php +3 -1
- src/Tribe/Views/V2/View.php +3 -2
- src/admin-views/aggregator/origins/csv.php +23 -0
- src/admin-views/aggregator/origins/limit.php +1 -1
- src/resources/css/aggregator-page.min.css +1 -1
- src/resources/css/views-full.min.css +1 -1
- src/resources/css/views-skeleton.min.css +1 -1
- src/resources/icons/tec-horns.svg +1 -0
- src/resources/images/icons/tec-horns.svg +4 -1
- src/resources/js/event-editor.js +134 -9
- src/resources/js/event-editor.min.js +1 -1
- src/resources/js/views/datepicker.js +10 -0
- src/resources/js/views/manager.js +19 -0
- src/views/single-event.php +10 -1
- the-events-calendar.php +1 -1
- vendor/autoload.php +1 -1
- vendor/composer/autoload_classmap.php +2 -0
- vendor/composer/autoload_real.php +4 -4
- vendor/composer/autoload_static.php +6 -4
- vendor/composer/installed.json +6 -6
- vendor/woocommerce/action-scheduler/action-scheduler.php +7 -7
- vendor/woocommerce/action-scheduler/changelog.txt +8 -0
- vendor/woocommerce/action-scheduler/classes/ActionScheduler_ActionFactory.php +132 -49
- vendor/woocommerce/action-scheduler/classes/ActionScheduler_AdminView.php +91 -1
- vendor/woocommerce/action-scheduler/classes/ActionScheduler_Exception.php +1 -1
- vendor/woocommerce/action-scheduler/classes/ActionScheduler_ListTable.php +15 -1
- vendor/woocommerce/action-scheduler/classes/ActionScheduler_QueueRunner.php +25 -6
- vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_ListTable.php +1 -1
- vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_QueueRunner.php +58 -0
- vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Store.php +30 -2
- vendor/woocommerce/action-scheduler/classes/actions/ActionScheduler_Action.php +22 -1
- vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_DBStore.php +139 -10
- vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore.php +1 -1
- vendor/woocommerce/action-scheduler/functions.php +59 -53
- vendor/woocommerce/action-scheduler/readme.txt +10 -2
common/lang/tribe-common-de_DE.mo
CHANGED
Binary file
|
common/src/Tribe/Context.php
CHANGED
@@ -282,7 +282,23 @@ class Tribe__Context {
|
|
282 |
}
|
283 |
|
284 |
if ( ! empty( $post_or_type ) ) {
|
285 |
-
$lookup = [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
286 |
|
287 |
$current_post = Tribe__Utils__Array::get_in_any( $lookup, 'post', get_post() );
|
288 |
|
282 |
}
|
283 |
|
284 |
if ( ! empty( $post_or_type ) ) {
|
285 |
+
$lookup = [];
|
286 |
+
// Prevent a slew of warnings every time we call this.
|
287 |
+
if ( isset( $_REQUEST ) ) {
|
288 |
+
$lookup[] = (array) $_REQUEST;
|
289 |
+
}
|
290 |
+
|
291 |
+
if ( isset( $_GET ) ) {
|
292 |
+
$lookup[] = (array) $_GET;
|
293 |
+
}
|
294 |
+
|
295 |
+
if ( isset( $_POST ) ) {
|
296 |
+
$lookup[] = (array) $_POST;
|
297 |
+
}
|
298 |
+
|
299 |
+
if ( empty( $lookup ) ) {
|
300 |
+
return false;
|
301 |
+
}
|
302 |
|
303 |
$current_post = Tribe__Utils__Array::get_in_any( $lookup, 'post', get_post() );
|
304 |
|
common/src/Tribe/Cost_Utils.php
CHANGED
@@ -111,7 +111,7 @@ class Tribe__Cost_Utils {
|
|
111 |
is_numeric( $cost_with_period )
|
112 |
&& '0.00' === number_format( $cost_with_period, 2, '.', ',' )
|
113 |
) {
|
114 |
-
return esc_html__( 'Free', '
|
115 |
}
|
116 |
|
117 |
return $cost;
|
111 |
is_numeric( $cost_with_period )
|
112 |
&& '0.00' === number_format( $cost_with_period, 2, '.', ',' )
|
113 |
) {
|
114 |
+
return esc_html__( 'Free', 'tribe-common' );
|
115 |
}
|
116 |
|
117 |
return $cost;
|
common/src/Tribe/Customizer.php
CHANGED
@@ -1049,11 +1049,11 @@ final class Tribe__Customizer {
|
|
1049 |
$new_settings = [
|
1050 |
'tribe-customizer-section-title' => [
|
1051 |
'type' => 'html',
|
1052 |
-
'html' => '<h3>' . __( 'Customizer', '
|
1053 |
],
|
1054 |
'tribe-customizer-link-description' => [
|
1055 |
'type' => 'html',
|
1056 |
-
'html' => '<p class="contained">' . __( 'Adjust colors, fonts, and more with the WordPress Customizer.', '
|
1057 |
],
|
1058 |
'tribe-customizer-link' => [
|
1059 |
'type' => 'html',
|
1049 |
$new_settings = [
|
1050 |
'tribe-customizer-section-title' => [
|
1051 |
'type' => 'html',
|
1052 |
+
'html' => '<h3>' . __( 'Customizer', 'tribe-common' ) . '</h3>',
|
1053 |
],
|
1054 |
'tribe-customizer-link-description' => [
|
1055 |
'type' => 'html',
|
1056 |
+
'html' => '<p class="contained">' . __( 'Adjust colors, fonts, and more with the WordPress Customizer.', 'tribe-common' ) . '</p>',
|
1057 |
],
|
1058 |
'tribe-customizer-link' => [
|
1059 |
'type' => 'html',
|
common/src/Tribe/Main.php
CHANGED
@@ -21,7 +21,7 @@ class Tribe__Main {
|
|
21 |
const OPTIONNAME = 'tribe_events_calendar_options';
|
22 |
const OPTIONNAMENETWORK = 'tribe_events_calendar_network_options';
|
23 |
|
24 |
-
const VERSION = '5.0.
|
25 |
|
26 |
const FEED_URL = 'https://theeventscalendar.com/feed/';
|
27 |
|
@@ -412,12 +412,12 @@ class Tribe__Main {
|
|
412 |
'monthNames' => $datepicker_months,
|
413 |
'monthNamesShort' => $datepicker_months, // We deliberately use full month names here,
|
414 |
'monthNamesMin' => array_values( Tribe__Date_Utils::get_localized_months_short() ),
|
415 |
-
'nextText' => esc_html__( 'Next', '
|
416 |
-
'prevText' => esc_html__( 'Prev', '
|
417 |
-
'currentText' => esc_html__( 'Today', '
|
418 |
-
'closeText' => esc_html__( 'Done', '
|
419 |
-
'today' => esc_html__( 'Today', '
|
420 |
-
'clear' => esc_html__( 'Clear', '
|
421 |
],
|
422 |
] );
|
423 |
}
|
21 |
const OPTIONNAME = 'tribe_events_calendar_options';
|
22 |
const OPTIONNAMENETWORK = 'tribe_events_calendar_network_options';
|
23 |
|
24 |
+
const VERSION = '5.0.1';
|
25 |
|
26 |
const FEED_URL = 'https://theeventscalendar.com/feed/';
|
27 |
|
412 |
'monthNames' => $datepicker_months,
|
413 |
'monthNamesShort' => $datepicker_months, // We deliberately use full month names here,
|
414 |
'monthNamesMin' => array_values( Tribe__Date_Utils::get_localized_months_short() ),
|
415 |
+
'nextText' => esc_html__( 'Next', 'tribe-common' ),
|
416 |
+
'prevText' => esc_html__( 'Prev', 'tribe-common' ),
|
417 |
+
'currentText' => esc_html__( 'Today', 'tribe-common' ),
|
418 |
+
'closeText' => esc_html__( 'Done', 'tribe-common' ),
|
419 |
+
'today' => esc_html__( 'Today', 'tribe-common' ),
|
420 |
+
'clear' => esc_html__( 'Clear', 'tribe-common' ),
|
421 |
],
|
422 |
] );
|
423 |
}
|
common/src/Tribe/Repository.php
CHANGED
@@ -2922,7 +2922,10 @@ abstract class Tribe__Repository
|
|
2922 |
}
|
2923 |
|
2924 |
foreach ( $this->updates as $key => $value ) {
|
2925 |
-
if (
|
|
|
|
|
|
|
2926 |
$value = $value( $id, $key, $this );
|
2927 |
}
|
2928 |
|
@@ -3725,4 +3728,13 @@ abstract class Tribe__Repository
|
|
3725 |
|
3726 |
return $this;
|
3727 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3728 |
}
|
2922 |
}
|
2923 |
|
2924 |
foreach ( $this->updates as $key => $value ) {
|
2925 |
+
if (
|
2926 |
+
$value instanceof Closure ||
|
2927 |
+
( is_array( $value ) && is_callable( $value ) )
|
2928 |
+
) {
|
2929 |
$value = $value( $id, $key, $this );
|
2930 |
}
|
2931 |
|
3728 |
|
3729 |
return $this;
|
3730 |
}
|
3731 |
+
|
3732 |
+
/**
|
3733 |
+
* {@inheritDoc}
|
3734 |
+
*/
|
3735 |
+
public function get_last_sql(): ?string {
|
3736 |
+
return $this->last_built_query instanceof WP_Query ?
|
3737 |
+
$this->last_built_query->request
|
3738 |
+
: null;
|
3739 |
+
}
|
3740 |
}
|
common/src/Tribe/Repository/Decorator.php
CHANGED
@@ -685,4 +685,11 @@ abstract class Tribe__Repository__Decorator implements Tribe__Repository__Interf
|
|
685 |
|
686 |
return $this;
|
687 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
688 |
}
|
685 |
|
686 |
return $this;
|
687 |
}
|
688 |
+
|
689 |
+
/**
|
690 |
+
* {@inheritDoc}
|
691 |
+
*/
|
692 |
+
public function get_last_sql(): ?string {
|
693 |
+
return $this->decorated->get_last_sql();
|
694 |
+
}
|
695 |
}
|
common/src/Tribe/Repository/Interface.php
CHANGED
@@ -320,4 +320,13 @@ interface Tribe__Repository__Interface
|
|
320 |
* @return Tribe__Repository__Interface $this The repository instance.
|
321 |
*/
|
322 |
public function void_query( $void_query = true );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
323 |
}
|
320 |
* @return Tribe__Repository__Interface $this The repository instance.
|
321 |
*/
|
322 |
public function void_query( $void_query = true );
|
323 |
+
|
324 |
+
/**
|
325 |
+
* Returns the SQL code for the last query built and ran by the repository, if any.
|
326 |
+
*
|
327 |
+
* @since 5.0.1
|
328 |
+
*
|
329 |
+
* @return string|null The SQL code for the last query built and ran by the repository, if any.
|
330 |
+
*/
|
331 |
+
public function get_last_sql(): ?string;
|
332 |
}
|
common/src/Tribe/Utils/Array.php
CHANGED
@@ -35,7 +35,7 @@ if ( ! class_exists( 'Tribe__Utils__Array' ) ) {
|
|
35 |
// would likely lead to unexpected problems for whatever first set it.
|
36 |
$error = sprintf(
|
37 |
'Attempted to set $array[%1$s] but %2$s is already set and is not an array.',
|
38 |
-
implode(
|
39 |
$i
|
40 |
);
|
41 |
|
35 |
// would likely lead to unexpected problems for whatever first set it.
|
36 |
$error = sprintf(
|
37 |
'Attempted to set $array[%1$s] but %2$s is already set and is not an array.',
|
38 |
+
implode( '][', $key ),
|
39 |
$i
|
40 |
);
|
41 |
|
common/src/functions/utils.php
CHANGED
@@ -144,7 +144,26 @@ if ( ! function_exists( 'tribe_get_request_var' ) ) {
|
|
144 |
* @return mixed
|
145 |
*/
|
146 |
function tribe_get_request_var( $var, $default = null ) {
|
147 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
148 |
return tribe_sanitize_deep( $unsafe );
|
149 |
}
|
150 |
}
|
@@ -1107,7 +1126,7 @@ if ( ! function_exists( 'tribe_sanitize_deep' ) ) {
|
|
1107 |
return $value;
|
1108 |
}
|
1109 |
if ( is_string( $value ) ) {
|
1110 |
-
$value = filter_var( $value,
|
1111 |
return $value;
|
1112 |
}
|
1113 |
if ( is_int( $value ) ) {
|
144 |
* @return mixed
|
145 |
*/
|
146 |
function tribe_get_request_var( $var, $default = null ) {
|
147 |
+
$requests = [];
|
148 |
+
|
149 |
+
// Prevent a slew of warnings every time we call this.
|
150 |
+
if ( isset( $_REQUEST ) ) {
|
151 |
+
$requests[] = (array) $_REQUEST;
|
152 |
+
}
|
153 |
+
|
154 |
+
if ( isset( $_GET ) ) {
|
155 |
+
$requests[] = (array) $_GET;
|
156 |
+
}
|
157 |
+
|
158 |
+
if ( isset( $_POST ) ) {
|
159 |
+
$requests[] = (array) $_POST;
|
160 |
+
}
|
161 |
+
|
162 |
+
if ( empty( $requests ) ) {
|
163 |
+
return $default;
|
164 |
+
}
|
165 |
+
|
166 |
+
$unsafe = Tribe__Utils__Array::get_in_any( $requests, $var, $default );
|
167 |
return tribe_sanitize_deep( $unsafe );
|
168 |
}
|
169 |
}
|
1126 |
return $value;
|
1127 |
}
|
1128 |
if ( is_string( $value ) ) {
|
1129 |
+
$value = filter_var( $value, FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES );
|
1130 |
return $value;
|
1131 |
}
|
1132 |
if ( is_int( $value ) ) {
|
common/vendor/autoload.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit9f9eb54d1069e52fd89a03767dfcaa06::getLoader();
|
common/vendor/autoload_52.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit4ec4533f8663dfe1c619eea121fe969d::getLoader();
|
common/vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -19,15 +19,15 @@ class ComposerAutoloaderInit965fd73b9e6ec78a30b46dab36da57c0
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
25 |
|
26 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
27 |
if ($useStaticLoader) {
|
28 |
require_once __DIR__ . '/autoload_static.php';
|
29 |
|
30 |
-
call_user_func(\Composer\Autoload\
|
31 |
} else {
|
32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
33 |
foreach ($map as $namespace => $path) {
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInit9f9eb54d1069e52fd89a03767dfcaa06
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInit9f9eb54d1069e52fd89a03767dfcaa06', 'loadClassLoader'), true, true);
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit9f9eb54d1069e52fd89a03767dfcaa06', 'loadClassLoader'));
|
25 |
|
26 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
27 |
if ($useStaticLoader) {
|
28 |
require_once __DIR__ . '/autoload_static.php';
|
29 |
|
30 |
+
call_user_func(\Composer\Autoload\ComposerStaticInit9f9eb54d1069e52fd89a03767dfcaa06::getInitializer($loader));
|
31 |
} else {
|
32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
33 |
foreach ($map as $namespace => $path) {
|
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
|
6 |
private static $loader;
|
7 |
|
8 |
public static function loadClassLoader($class) {
|
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit1f195f258f1d31ee18997503744f1f56 {
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new xrstf_Composer52_ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
25 |
|
26 |
$vendorDir = dirname(dirname(__FILE__));
|
27 |
$baseDir = dirname($vendorDir);
|
2 |
|
3 |
// autoload_real_52.php generated by xrstf/composer-php52
|
4 |
|
5 |
+
class ComposerAutoloaderInit4ec4533f8663dfe1c619eea121fe969d {
|
6 |
private static $loader;
|
7 |
|
8 |
public static function loadClassLoader($class) {
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInit4ec4533f8663dfe1c619eea121fe969d', 'loadClassLoader'), true /*, true */);
|
23 |
self::$loader = $loader = new xrstf_Composer52_ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit4ec4533f8663dfe1c619eea121fe969d', 'loadClassLoader'));
|
25 |
|
26 |
$vendorDir = dirname(dirname(__FILE__));
|
27 |
$baseDir = dirname($vendorDir);
|
common/vendor/composer/autoload_static.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
-
class
|
8 |
{
|
9 |
public static $prefixLengthsPsr4 = array (
|
10 |
'T' =>
|
@@ -270,10 +270,10 @@ class ComposerStaticInit965fd73b9e6ec78a30b46dab36da57c0
|
|
270 |
public static function getInitializer(ClassLoader $loader)
|
271 |
{
|
272 |
return \Closure::bind(function () use ($loader) {
|
273 |
-
$loader->prefixLengthsPsr4 =
|
274 |
-
$loader->prefixDirsPsr4 =
|
275 |
-
$loader->prefixesPsr0 =
|
276 |
-
$loader->classMap =
|
277 |
|
278 |
}, null, ClassLoader::class);
|
279 |
}
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
+
class ComposerStaticInit9f9eb54d1069e52fd89a03767dfcaa06
|
8 |
{
|
9 |
public static $prefixLengthsPsr4 = array (
|
10 |
'T' =>
|
270 |
public static function getInitializer(ClassLoader $loader)
|
271 |
{
|
272 |
return \Closure::bind(function () use ($loader) {
|
273 |
+
$loader->prefixLengthsPsr4 = ComposerStaticInit9f9eb54d1069e52fd89a03767dfcaa06::$prefixLengthsPsr4;
|
274 |
+
$loader->prefixDirsPsr4 = ComposerStaticInit9f9eb54d1069e52fd89a03767dfcaa06::$prefixDirsPsr4;
|
275 |
+
$loader->prefixesPsr0 = ComposerStaticInit9f9eb54d1069e52fd89a03767dfcaa06::$prefixesPsr0;
|
276 |
+
$loader->classMap = ComposerStaticInit9f9eb54d1069e52fd89a03767dfcaa06::$classMap;
|
277 |
|
278 |
}, null, ClassLoader::class);
|
279 |
}
|
common/vendor/composer/installed.json
CHANGED
@@ -223,20 +223,20 @@
|
|
223 |
},
|
224 |
{
|
225 |
"name": "xrstf/composer-php52",
|
226 |
-
"version": "v1.0.
|
227 |
-
"version_normalized": "1.0.
|
228 |
"source": {
|
229 |
"type": "git",
|
230 |
"url": "https://github.com/composer-php52/composer-php52.git",
|
231 |
-
"reference": "
|
232 |
},
|
233 |
"dist": {
|
234 |
"type": "zip",
|
235 |
-
"url": "https://api.github.com/repos/composer-php52/composer-php52/zipball/
|
236 |
-
"reference": "
|
237 |
"shasum": ""
|
238 |
},
|
239 |
-
"time": "
|
240 |
"type": "library",
|
241 |
"extra": {
|
242 |
"branch-alias": {
|
223 |
},
|
224 |
{
|
225 |
"name": "xrstf/composer-php52",
|
226 |
+
"version": "v1.0.21",
|
227 |
+
"version_normalized": "1.0.21.0",
|
228 |
"source": {
|
229 |
"type": "git",
|
230 |
"url": "https://github.com/composer-php52/composer-php52.git",
|
231 |
+
"reference": "670ac996f93792f8de0427605cfef342b3429ff3"
|
232 |
},
|
233 |
"dist": {
|
234 |
"type": "zip",
|
235 |
+
"url": "https://api.github.com/repos/composer-php52/composer-php52/zipball/670ac996f93792f8de0427605cfef342b3429ff3",
|
236 |
+
"reference": "670ac996f93792f8de0427605cfef342b3429ff3",
|
237 |
"shasum": ""
|
238 |
},
|
239 |
+
"time": "2022-06-08T03:23:46+00:00",
|
240 |
"type": "library",
|
241 |
"extra": {
|
242 |
"branch-alias": {
|
lang/the-events-calendar-bg_BG.mo
CHANGED
Binary file
|
lang/the-events-calendar-ca.mo
CHANGED
Binary file
|
lang/the-events-calendar-cs_CZ.mo
CHANGED
Binary file
|
lang/the-events-calendar-da_DK.mo
CHANGED
Binary file
|
lang/the-events-calendar-de_CH.mo
CHANGED
Binary file
|
lang/the-events-calendar-de_DE.mo
CHANGED
Binary file
|
lang/the-events-calendar-el.mo
CHANGED
Binary file
|
lang/the-events-calendar-en_AU.mo
CHANGED
Binary file
|
lang/the-events-calendar-en_CA.mo
CHANGED
Binary file
|
lang/the-events-calendar-en_GB.mo
CHANGED
Binary file
|
lang/the-events-calendar-en_NZ.mo
CHANGED
Binary file
|
lang/the-events-calendar-en_ZA.mo
CHANGED
Binary file
|
lang/the-events-calendar-es_AR.mo
CHANGED
Binary file
|
lang/the-events-calendar-es_CO.mo
CHANGED
Binary file
|
lang/the-events-calendar-es_DO.mo
CHANGED
Binary file
|
lang/the-events-calendar-es_EC.mo
CHANGED
Binary file
|
lang/the-events-calendar-es_ES.mo
CHANGED
Binary file
|
lang/the-events-calendar-es_MX.mo
CHANGED
Binary file
|
lang/the-events-calendar-es_VE.mo
CHANGED
Binary file
|
lang/the-events-calendar-et.mo
CHANGED
Binary file
|
lang/the-events-calendar-eu.mo
CHANGED
Binary file
|
lang/the-events-calendar-fi.mo
CHANGED
Binary file
|
lang/the-events-calendar-fr_CA.mo
CHANGED
Binary file
|
lang/the-events-calendar-fr_FR.mo
CHANGED
Binary file
|
lang/the-events-calendar-gl_ES.mo
CHANGED
Binary file
|
lang/the-events-calendar-he_IL.mo
CHANGED
Binary file
|
lang/the-events-calendar-hr.mo
CHANGED
Binary file
|
lang/the-events-calendar-hu_HU.mo
CHANGED
Binary file
|
lang/the-events-calendar-it_IT.mo
CHANGED
Binary file
|
lang/the-events-calendar-ja.mo
CHANGED
Binary file
|
lang/the-events-calendar-ko_KR.mo
CHANGED
Binary file
|
lang/the-events-calendar-lt_LT.mo
CHANGED
Binary file
|
lang/the-events-calendar-nb_NO.mo
CHANGED
Binary file
|
lang/the-events-calendar-nl_BE.mo
CHANGED
Binary file
|
lang/the-events-calendar-nl_NL.mo
CHANGED
Binary file
|
lang/the-events-calendar-nn_NO.mo
CHANGED
Binary file
|
lang/the-events-calendar-pl_PL.mo
CHANGED
Binary file
|
lang/the-events-calendar-pt_BR.mo
CHANGED
Binary file
|
lang/the-events-calendar-pt_PT.mo
CHANGED
Binary file
|
lang/the-events-calendar-ro_RO.mo
CHANGED
Binary file
|
lang/the-events-calendar-ru_RU.mo
CHANGED
Binary file
|
lang/the-events-calendar-sk_SK.mo
CHANGED
Binary file
|
lang/the-events-calendar-sl_SI.mo
CHANGED
Binary file
|
lang/the-events-calendar-sq.mo
CHANGED
Binary file
|
lang/the-events-calendar-sv_SE.mo
CHANGED
Binary file
|
lang/the-events-calendar-tr_TR.mo
CHANGED
Binary file
|
lang/the-events-calendar-uk.mo
CHANGED
Binary file
|
lang/the-events-calendar-zh_CN.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 6.0.
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/the-events-"
|
7 |
"calendar\n"
|
8 |
-
"POT-Creation-Date: 2022-
|
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: 2022-
|
13 |
"Last-Translator: \n"
|
14 |
"Language-Team: \n"
|
15 |
|
@@ -477,7 +477,7 @@ msgstr ""
|
|
477 |
msgid "%s"
|
478 |
msgstr ""
|
479 |
|
480 |
-
#: src/Tribe/Admin/Bar/Default_Configurator.php:47 src/Tribe/Main.php:
|
481 |
#: src/Tribe/Views/V2/Views/Widgets/Widget_View.php:61
|
482 |
#: src/admin-views/tribe-options-upgrade.php:20
|
483 |
msgid "View Calendar"
|
@@ -488,7 +488,7 @@ msgid "Add %s"
|
|
488 |
msgstr ""
|
489 |
|
490 |
#: src/Tribe/Admin/Bar/Default_Configurator.php:64
|
491 |
-
#: src/Tribe/Linked_Posts/Chooser_Meta_Box.php:
|
492 |
#: src/Tribe/Organizer.php:93 src/Tribe/Organizer.php:801
|
493 |
#: src/Tribe/Venue.php:129 src/Tribe/Venue.php:915
|
494 |
msgid "Edit %s"
|
@@ -501,7 +501,7 @@ msgid "Import"
|
|
501 |
msgstr ""
|
502 |
|
503 |
#: src/Tribe/Admin/Bar/Default_Configurator.php:91
|
504 |
-
#: src/Tribe/Admin/Settings.php:166 src/Tribe/Main.php:
|
505 |
msgid "Settings"
|
506 |
msgstr ""
|
507 |
|
@@ -556,7 +556,7 @@ msgid ""
|
|
556 |
msgstr ""
|
557 |
|
558 |
#: src/Tribe/Admin/Notice/Timezones.php:151
|
559 |
-
#: src/Tribe/Editor/Compatibility.php:
|
560 |
msgid "Read more"
|
561 |
msgstr ""
|
562 |
|
@@ -642,7 +642,7 @@ msgid ""
|
|
642 |
"refresh and try again."
|
643 |
msgstr ""
|
644 |
|
645 |
-
#: src/Tribe/Admin_List.php:299 src/Tribe/Main.php:
|
646 |
msgid "%s Categories"
|
647 |
msgstr ""
|
648 |
|
@@ -2589,15 +2589,15 @@ msgstr ""
|
|
2589 |
msgid "Add Button Text"
|
2590 |
msgstr ""
|
2591 |
|
2592 |
-
#: src/Tribe/Editor/Compatibility.php:
|
2593 |
msgid "Activate Block Editor for Events"
|
2594 |
msgstr ""
|
2595 |
|
2596 |
-
#: src/Tribe/Editor/Compatibility.php:
|
2597 |
msgid "Enable the Gutenberg block editor interface for creating events."
|
2598 |
msgstr ""
|
2599 |
|
2600 |
-
#: src/Tribe/Editor/Compatibility.php:
|
2601 |
msgid "Hidden Blocks Editor Config"
|
2602 |
msgstr ""
|
2603 |
|
@@ -3142,11 +3142,11 @@ msgstr ""
|
|
3142 |
msgid "%s:"
|
3143 |
msgstr ""
|
3144 |
|
3145 |
-
#: src/Tribe/Linked_Posts/Chooser_Meta_Box.php:
|
3146 |
msgid "Add another %s"
|
3147 |
msgstr ""
|
3148 |
|
3149 |
-
#: src/Tribe/Linked_Posts/Chooser_Meta_Box.php:
|
3150 |
msgid "Delete this"
|
3151 |
msgstr ""
|
3152 |
|
@@ -3238,205 +3238,205 @@ msgctxt ""
|
|
3238 |
msgid "Create or Find %s"
|
3239 |
msgstr ""
|
3240 |
|
3241 |
-
#. #-#-#-#-# the-events-calendar.pot (The Events Calendar 6.0.
|
3242 |
#. Plugin Name of the plugin/theme
|
3243 |
-
#. #-#-#-#-# the-events-calendar.pot (The Events Calendar 6.0.
|
3244 |
#. Author of the plugin/theme
|
3245 |
-
#: src/Tribe/Main.php:
|
3246 |
#: src/admin-views/admin-welcome-message.php:29
|
3247 |
#: src/functions/template-tags/general.php:1413 the-events-calendar.php:55
|
3248 |
msgid "The Events Calendar"
|
3249 |
msgstr ""
|
3250 |
|
3251 |
-
#: src/Tribe/Main.php:
|
3252 |
msgid "month"
|
3253 |
msgstr ""
|
3254 |
|
3255 |
-
#: src/Tribe/Main.php:
|
3256 |
msgid "list"
|
3257 |
msgstr ""
|
3258 |
|
3259 |
-
#: src/Tribe/Main.php:
|
3260 |
msgid "upcoming"
|
3261 |
msgstr ""
|
3262 |
|
3263 |
-
#: src/Tribe/Main.php:
|
3264 |
msgid "past"
|
3265 |
msgstr ""
|
3266 |
|
3267 |
-
#: src/Tribe/Main.php:
|
3268 |
msgid "day"
|
3269 |
msgstr ""
|
3270 |
|
3271 |
-
#: src/Tribe/Main.php:
|
3272 |
msgid "today"
|
3273 |
msgstr ""
|
3274 |
|
3275 |
-
#: src/Tribe/Main.php:
|
3276 |
msgctxt "featured events slug"
|
3277 |
msgid "featured"
|
3278 |
msgstr ""
|
3279 |
|
3280 |
-
#: src/Tribe/Main.php:
|
3281 |
msgctxt "all events slug"
|
3282 |
msgid "all"
|
3283 |
msgstr ""
|
3284 |
|
3285 |
-
#: src/Tribe/Main.php:
|
3286 |
msgid "Initializing Tribe Events on %s"
|
3287 |
msgstr ""
|
3288 |
|
3289 |
-
#: src/Tribe/Main.php:
|
3290 |
msgid "Welcome to The Events Calendar!"
|
3291 |
msgstr ""
|
3292 |
|
3293 |
-
#: src/Tribe/Main.php:
|
3294 |
msgid ""
|
3295 |
"The %3$s \"%1$s\" uses the \"/%2$s\" slug: the Events Calendar plugin will "
|
3296 |
"show its calendar in place of the page."
|
3297 |
msgstr ""
|
3298 |
|
3299 |
-
#: src/Tribe/Main.php:
|
3300 |
msgid "Ask the site administrator to edit the %s slug"
|
3301 |
msgstr ""
|
3302 |
|
3303 |
-
#: src/Tribe/Main.php:
|
3304 |
msgid "Edit the %s slug"
|
3305 |
msgstr ""
|
3306 |
|
3307 |
-
#: src/Tribe/Main.php:
|
3308 |
msgid " ask the site administrator to set a different Events URL slug."
|
3309 |
msgstr ""
|
3310 |
|
3311 |
-
#: src/Tribe/Main.php:
|
3312 |
msgid "edit Events settings."
|
3313 |
msgstr ""
|
3314 |
|
3315 |
-
#: src/Tribe/Main.php:
|
3316 |
msgid "%1$s or %2$s"
|
3317 |
msgstr ""
|
3318 |
|
3319 |
-
#: src/Tribe/Main.php:
|
3320 |
msgid "Upgrade your calendar views"
|
3321 |
msgstr ""
|
3322 |
|
3323 |
-
#: src/Tribe/Main.php:
|
3324 |
msgid "Upgrade"
|
3325 |
msgstr ""
|
3326 |
|
3327 |
-
#: src/Tribe/Main.php:
|
3328 |
msgid "New User Primer"
|
3329 |
msgstr ""
|
3330 |
|
3331 |
-
#: src/Tribe/Main.php:
|
3332 |
msgid ""
|
3333 |
"We are committed to helping make your calendar spectacular and have a wealth "
|
3334 |
"of resources available, including a handy %s to get your calendar up and "
|
3335 |
"running."
|
3336 |
msgstr ""
|
3337 |
|
3338 |
-
#: src/Tribe/Main.php:
|
3339 |
msgid "Support for The Events Calendar"
|
3340 |
msgstr ""
|
3341 |
|
3342 |
-
#: src/Tribe/Main.php:
|
3343 |
msgid ""
|
3344 |
"%s: A thorough walkthrough of The Events Calendar and the settings that are "
|
3345 |
"available to you."
|
3346 |
msgstr ""
|
3347 |
|
3348 |
-
#: src/Tribe/Main.php:
|
3349 |
msgid "Settings overview"
|
3350 |
msgstr ""
|
3351 |
|
3352 |
-
#: src/Tribe/Main.php:
|
3353 |
msgid ""
|
3354 |
"%s: A complete look at the features you can expect to see right out of the "
|
3355 |
"box as well as how to use them."
|
3356 |
msgstr ""
|
3357 |
|
3358 |
-
#: src/Tribe/Main.php:
|
3359 |
msgid "Features overview"
|
3360 |
msgstr ""
|
3361 |
|
3362 |
-
#: src/Tribe/Main.php:
|
3363 |
msgid ""
|
3364 |
"%s: Our most comprehensive outline for customizing the calendar to suit your "
|
3365 |
"needs, including custom layouts and styles."
|
3366 |
msgstr ""
|
3367 |
|
3368 |
-
#: src/Tribe/Main.php:
|
3369 |
msgid "Themer's Guide"
|
3370 |
msgstr ""
|
3371 |
|
3372 |
-
#: src/Tribe/Main.php:
|
3373 |
msgid ""
|
3374 |
"%s: An overview of the default templates and styles that are included in the "
|
3375 |
"plugin, as well as how to change them."
|
3376 |
msgstr ""
|
3377 |
|
3378 |
-
#: src/Tribe/Main.php:
|
3379 |
msgid "Using stylesheets and page templates"
|
3380 |
msgstr ""
|
3381 |
|
3382 |
-
#: src/Tribe/Main.php:
|
3383 |
msgid ""
|
3384 |
"%s: Do you see an issue with your calendar? Go here first to find where it’s "
|
3385 |
"coming from and how to fix it."
|
3386 |
msgstr ""
|
3387 |
|
3388 |
-
#: src/Tribe/Main.php:
|
3389 |
msgid "Troubleshooting common problems"
|
3390 |
msgstr ""
|
3391 |
|
3392 |
-
#: src/Tribe/Main.php:
|
3393 |
msgid ""
|
3394 |
"%s: Code and guides for customizing your calendar in useful and interesting "
|
3395 |
"ways."
|
3396 |
msgstr ""
|
3397 |
|
3398 |
-
#: src/Tribe/Main.php:
|
3399 |
msgid "Customizing the Events plugins"
|
3400 |
msgstr ""
|
3401 |
|
3402 |
-
#: src/Tribe/Main.php:
|
3403 |
msgid "Events Tickets"
|
3404 |
msgstr ""
|
3405 |
|
3406 |
-
#: src/Tribe/Main.php:
|
3407 |
msgid ""
|
3408 |
"If you have tried the above steps and are still having trouble, you can post "
|
3409 |
"a new thread to our WordPress.org forums for %1$s or %2$s. Our support staff "
|
3410 |
"monitors these forums once a week and would be happy to assist you there. "
|
3411 |
msgstr ""
|
3412 |
|
3413 |
-
#: src/Tribe/Main.php:
|
3414 |
msgid "premium support on our website"
|
3415 |
msgstr ""
|
3416 |
|
3417 |
-
#: src/Tribe/Main.php:
|
3418 |
msgid ""
|
3419 |
"<strong>Looking for more immediate support?</strong> We offer %s with the "
|
3420 |
"purchase of any of our premium plugins. Pick up a license and you can post "
|
3421 |
"there directly and expect a response within 24-48 hours during weekdays"
|
3422 |
msgstr ""
|
3423 |
|
3424 |
-
#: src/Tribe/Main.php:
|
3425 |
msgid "open-source forum on WordPress.org"
|
3426 |
msgstr ""
|
3427 |
|
3428 |
-
#: src/Tribe/Main.php:
|
3429 |
msgid ""
|
3430 |
"If you have tried the above steps and are still having trouble, you can post "
|
3431 |
"a new thread to our %s. Our support staff monitors these forums once a week "
|
3432 |
"and would be happy to assist you there."
|
3433 |
msgstr ""
|
3434 |
|
3435 |
-
#: src/Tribe/Main.php:
|
3436 |
msgid "Events Calendar PRO"
|
3437 |
msgstr ""
|
3438 |
|
3439 |
-
#: src/Tribe/Main.php:
|
3440 |
msgid ""
|
3441 |
"<strong>Looking for more immediate support?</strong> We offer %1$s with the "
|
3442 |
"purchase of any of our premium plugins (like %2$s). Pick up a license and "
|
@@ -3444,110 +3444,110 @@ msgid ""
|
|
3444 |
"weekdays."
|
3445 |
msgstr ""
|
3446 |
|
3447 |
-
#: src/Tribe/Main.php:
|
3448 |
msgid "post a thread"
|
3449 |
msgstr ""
|
3450 |
|
3451 |
-
#: src/Tribe/Main.php:
|
3452 |
msgid ""
|
3453 |
"If you have a valid license for one of our paid plugins, you can %s in our "
|
3454 |
"premium support forums. Our support team monitors the forums and will "
|
3455 |
"respond to your thread within 24-48 hours (during the week)."
|
3456 |
msgstr ""
|
3457 |
|
3458 |
-
#: src/Tribe/Main.php:
|
3459 |
msgid "Events"
|
3460 |
msgstr ""
|
3461 |
|
3462 |
-
#: src/Tribe/Main.php:
|
3463 |
#: src/admin-views/aggregator/tabs/import-form.php:241
|
3464 |
#: src/functions/template-tags/general.php:71
|
3465 |
msgid "Event"
|
3466 |
msgstr ""
|
3467 |
|
3468 |
-
#: src/Tribe/Main.php:
|
3469 |
msgid ""
|
3470 |
"Sorry, The Events Calendar requires WordPress %s or higher. Please upgrade "
|
3471 |
"your WordPress install."
|
3472 |
msgstr ""
|
3473 |
|
3474 |
-
#: src/Tribe/Main.php:
|
3475 |
msgid ""
|
3476 |
"Sorry, The Events Calendar requires PHP %s or higher. Talk to your Web host "
|
3477 |
"about moving you to a newer version of PHP."
|
3478 |
msgstr ""
|
3479 |
|
3480 |
-
#: src/Tribe/Main.php:
|
3481 |
msgid ""
|
3482 |
"To continue using The Events Calendar, please install the latest version of"
|
3483 |
msgstr ""
|
3484 |
|
3485 |
-
#: src/Tribe/Main.php:
|
3486 |
msgid "Event Tickets"
|
3487 |
msgstr ""
|
3488 |
|
3489 |
-
#: src/Tribe/Main.php:
|
3490 |
msgid ""
|
3491 |
"It appears as if the tribe-common libraries cannot be found! The directory "
|
3492 |
"should be in the \"common/\" directory in the events calendar plugin."
|
3493 |
msgstr ""
|
3494 |
|
3495 |
-
#: src/Tribe/Main.php:
|
3496 |
msgid "category"
|
3497 |
msgstr ""
|
3498 |
|
3499 |
-
#: src/Tribe/Main.php:
|
3500 |
msgid "tag"
|
3501 |
msgstr ""
|
3502 |
|
3503 |
-
#: src/Tribe/Main.php:
|
3504 |
msgid "Add New"
|
3505 |
msgstr ""
|
3506 |
|
3507 |
-
#: src/Tribe/Main.php:
|
3508 |
#: src/Tribe/Organizer.php:92 src/Tribe/Venue.php:128
|
3509 |
msgid "Add New %s"
|
3510 |
msgstr ""
|
3511 |
|
3512 |
-
#: src/Tribe/Main.php:
|
3513 |
msgid "New %s"
|
3514 |
msgstr ""
|
3515 |
|
3516 |
-
#: src/Tribe/Main.php:
|
3517 |
msgid "View %s"
|
3518 |
msgstr ""
|
3519 |
|
3520 |
-
#: src/Tribe/Main.php:
|
3521 |
msgid "Search %s"
|
3522 |
msgstr ""
|
3523 |
|
3524 |
-
#: src/Tribe/Main.php:
|
3525 |
msgid "No %s found"
|
3526 |
msgstr ""
|
3527 |
|
3528 |
-
#: src/Tribe/Main.php:
|
3529 |
msgid "No %s found in Trash"
|
3530 |
msgstr ""
|
3531 |
|
3532 |
-
#: src/Tribe/Main.php:
|
3533 |
#: src/Tribe/Organizer.php:99 src/Tribe/Venue.php:135
|
3534 |
msgid "%s published."
|
3535 |
msgstr ""
|
3536 |
|
3537 |
-
#: src/Tribe/Main.php:
|
3538 |
msgid "%s published privately."
|
3539 |
msgstr ""
|
3540 |
|
3541 |
-
#: src/Tribe/Main.php:
|
3542 |
msgid "%s reverted to draft."
|
3543 |
msgstr ""
|
3544 |
|
3545 |
-
#: src/Tribe/Main.php:
|
3546 |
msgid "%s scheduled."
|
3547 |
msgstr ""
|
3548 |
|
3549 |
-
#: src/Tribe/Main.php:
|
3550 |
-
#: src/Tribe/Main.php:
|
3551 |
#: src/Tribe/Organizer.php:103 src/Tribe/Venue.php:139
|
3552 |
msgid "%s updated."
|
3553 |
msgstr ""
|
@@ -3555,185 +3555,185 @@ msgstr ""
|
|
3555 |
#. Translators: %s: Event singular.
|
3556 |
#. Translators: %s: Organizer singular.
|
3557 |
#. Translators: %s: Venue singular.
|
3558 |
-
#: src/Tribe/Main.php:
|
3559 |
msgid "%s Link"
|
3560 |
msgstr ""
|
3561 |
|
3562 |
#. Translators: %s: Event singular.
|
3563 |
#. Translators: %s: Organizer singular.
|
3564 |
#. Translators: %s: Venue singular.
|
3565 |
-
#: src/Tribe/Main.php:
|
3566 |
msgid "A link to a particular %s."
|
3567 |
msgstr ""
|
3568 |
|
3569 |
-
#: src/Tribe/Main.php:
|
3570 |
msgid "%s Category"
|
3571 |
msgstr ""
|
3572 |
|
3573 |
-
#: src/Tribe/Main.php:
|
3574 |
msgid "Search %s Categories"
|
3575 |
msgstr ""
|
3576 |
|
3577 |
-
#: src/Tribe/Main.php:
|
3578 |
msgid "All %s Categories"
|
3579 |
msgstr ""
|
3580 |
|
3581 |
-
#: src/Tribe/Main.php:
|
3582 |
msgid "Parent %s Category"
|
3583 |
msgstr ""
|
3584 |
|
3585 |
-
#: src/Tribe/Main.php:
|
3586 |
msgid "Parent %s Category:"
|
3587 |
msgstr ""
|
3588 |
|
3589 |
-
#: src/Tribe/Main.php:
|
3590 |
msgid "Edit %s Category"
|
3591 |
msgstr ""
|
3592 |
|
3593 |
-
#: src/Tribe/Main.php:
|
3594 |
msgid "Update %s Category"
|
3595 |
msgstr ""
|
3596 |
|
3597 |
-
#: src/Tribe/Main.php:
|
3598 |
msgid "Add New %s Category"
|
3599 |
msgstr ""
|
3600 |
|
3601 |
-
#: src/Tribe/Main.php:
|
3602 |
msgid "New %s Category Name"
|
3603 |
msgstr ""
|
3604 |
|
3605 |
#. Translators: %s: Event singular.
|
3606 |
-
#: src/Tribe/Main.php:
|
3607 |
msgid "%s Category Link"
|
3608 |
msgstr ""
|
3609 |
|
3610 |
#. Translators: %s: Event singular.
|
3611 |
-
#: src/Tribe/Main.php:
|
3612 |
msgid "A link to a particular %s category."
|
3613 |
msgstr ""
|
3614 |
|
3615 |
-
#: src/Tribe/Main.php:
|
3616 |
msgid "%1$s updated. %2$sView %1$s%3$s"
|
3617 |
msgstr ""
|
3618 |
|
3619 |
-
#: src/Tribe/Main.php:
|
3620 |
msgid "Custom field updated."
|
3621 |
msgstr ""
|
3622 |
|
3623 |
-
#: src/Tribe/Main.php:
|
3624 |
msgid "Custom field deleted."
|
3625 |
msgstr ""
|
3626 |
|
3627 |
#. translators: %s: date and time of the revision
|
3628 |
-
#: src/Tribe/Main.php:
|
3629 |
msgid "%1$s restored to revision from %2$s"
|
3630 |
msgstr ""
|
3631 |
|
3632 |
-
#: src/Tribe/Main.php:
|
3633 |
msgid "%1$s published. %2$sView %3$s"
|
3634 |
msgstr ""
|
3635 |
|
3636 |
-
#: src/Tribe/Main.php:
|
3637 |
msgid "%s saved."
|
3638 |
msgstr ""
|
3639 |
|
3640 |
-
#: src/Tribe/Main.php:
|
3641 |
msgid "%1$s submitted. %2$sPreview %3$s"
|
3642 |
msgstr ""
|
3643 |
|
3644 |
-
#: src/Tribe/Main.php:
|
3645 |
msgid "%1$s scheduled for: %2$s. %3$sPreview %4$s"
|
3646 |
msgstr ""
|
3647 |
|
3648 |
#. translators: Publish box date format, see http://php.net/date
|
3649 |
-
#: src/Tribe/Main.php:
|
3650 |
msgid "M j, Y @ G:i"
|
3651 |
msgstr ""
|
3652 |
|
3653 |
-
#: src/Tribe/Main.php:
|
3654 |
msgid "%1$s draft updated. %2$sPreview %3$s"
|
3655 |
msgstr ""
|
3656 |
|
3657 |
-
#: src/Tribe/Main.php:
|
3658 |
msgid "%s submitted."
|
3659 |
msgstr ""
|
3660 |
|
3661 |
-
#: src/Tribe/Main.php:
|
3662 |
msgid "%1$s scheduled for: %2$s."
|
3663 |
msgstr ""
|
3664 |
|
3665 |
-
#: src/Tribe/Main.php:
|
3666 |
msgid "%s draft updated."
|
3667 |
msgstr ""
|
3668 |
|
3669 |
#. translators: %s: date and time of the revision
|
3670 |
-
#: src/Tribe/Main.php:
|
3671 |
msgid "%s restored to revision from %s"
|
3672 |
msgstr ""
|
3673 |
|
3674 |
-
#: src/Tribe/Main.php:
|
3675 |
msgid ""
|
3676 |
"Without a defined location your event will not display a %sGoogle Rich "
|
3677 |
"Snippet%s on the search results."
|
3678 |
msgstr ""
|
3679 |
|
3680 |
-
#: src/Tribe/Main.php:
|
3681 |
msgid "page"
|
3682 |
msgstr ""
|
3683 |
|
3684 |
-
#: src/Tribe/Main.php:
|
3685 |
msgid "event"
|
3686 |
msgstr ""
|
3687 |
|
3688 |
-
#: src/Tribe/Main.php:
|
3689 |
msgid "events"
|
3690 |
msgstr ""
|
3691 |
|
3692 |
-
#: src/Tribe/Main.php:
|
3693 |
msgid "all"
|
3694 |
msgstr ""
|
3695 |
|
3696 |
-
#: src/Tribe/Main.php:
|
3697 |
#: src/functions/template-tags/deprecated.php:22
|
3698 |
#: src/functions/template-tags/deprecated.php:44
|
3699 |
msgid "Date out of range."
|
3700 |
msgstr ""
|
3701 |
|
3702 |
-
#: src/Tribe/Main.php:
|
3703 |
msgid "%s Options"
|
3704 |
msgstr ""
|
3705 |
|
3706 |
-
#: src/Tribe/Main.php:
|
3707 |
msgid "Support"
|
3708 |
msgstr ""
|
3709 |
|
3710 |
-
#: src/Tribe/Main.php:
|
3711 |
msgid "View All Add-Ons"
|
3712 |
msgstr ""
|
3713 |
|
3714 |
-
#: src/Tribe/Main.php:
|
3715 |
msgid "News from The Events Calendar"
|
3716 |
msgstr ""
|
3717 |
|
3718 |
-
#: src/Tribe/Main.php:
|
3719 |
msgid "Additional Functionality"
|
3720 |
msgstr ""
|
3721 |
|
3722 |
-
#: src/Tribe/Main.php:
|
3723 |
msgid ""
|
3724 |
"Looking for additional functionality including recurring events, ticket "
|
3725 |
"sales, publicly submitted events, new views and more?"
|
3726 |
msgstr ""
|
3727 |
|
3728 |
-
#: src/Tribe/Main.php:
|
3729 |
msgid "Check out the %savailable add-ons%s."
|
3730 |
msgstr ""
|
3731 |
|
3732 |
-
#: src/Tribe/Main.php:
|
3733 |
msgid "Calendar"
|
3734 |
msgstr ""
|
3735 |
|
3736 |
-
#: src/Tribe/Main.php:
|
3737 |
msgid "Once Every 30 Mins"
|
3738 |
msgstr ""
|
3739 |
|
@@ -5551,7 +5551,7 @@ msgctxt "day_view"
|
|
5551 |
msgid "%1$s for %2$s"
|
5552 |
msgstr ""
|
5553 |
|
5554 |
-
#: src/Tribe/Views/V2/View.php:
|
5555 |
#: src/views/v2/day/event/date/featured.php:32
|
5556 |
#: src/views/v2/latest-past/event/date/featured.php:27
|
5557 |
#: src/views/v2/latest-past/event/date/featured.php:32
|
@@ -5777,12 +5777,14 @@ msgstr ""
|
|
5777 |
|
5778 |
#: src/admin-views/admin-welcome-message.php:14
|
5779 |
#: src/admin-views/admin-welcome-message.php:20
|
5780 |
-
#: src/admin-views/updates/6.0.0.php:
|
5781 |
msgid "Shapes and lines for visual interest"
|
5782 |
msgstr ""
|
5783 |
|
5784 |
#: src/admin-views/admin-welcome-message.php:27
|
5785 |
-
#: src/admin-views/
|
|
|
|
|
5786 |
msgid "The Events Calendar logo"
|
5787 |
msgstr ""
|
5788 |
|
@@ -5861,7 +5863,7 @@ msgstr ""
|
|
5861 |
#: src/admin-views/admin-welcome-message.php:73
|
5862 |
#: src/admin-views/aggregator/banners/eventbrite-upsell.php:17
|
5863 |
#: src/admin-views/notices/update-6-0-0.php:29
|
5864 |
-
#: src/admin-views/updates/6.0.0.php:
|
5865 |
msgid "Learn more"
|
5866 |
msgstr ""
|
5867 |
|
@@ -6010,36 +6012,36 @@ msgid ""
|
|
6010 |
"event files."
|
6011 |
msgstr ""
|
6012 |
|
6013 |
-
#: src/admin-views/aggregator/origins/csv.php:
|
6014 |
#: src/admin-views/aggregator/origins/ics.php:5
|
6015 |
msgid "Choose File:"
|
6016 |
msgstr ""
|
6017 |
|
6018 |
-
#: src/admin-views/aggregator/origins/csv.php:
|
6019 |
msgid "Choose a CSV file"
|
6020 |
msgstr ""
|
6021 |
|
6022 |
-
#: src/admin-views/aggregator/origins/csv.php:
|
6023 |
msgid ""
|
6024 |
"Select your .CSV file from the WordPress media library. You may need to "
|
6025 |
"first upload the file from your computer to the library."
|
6026 |
msgstr ""
|
6027 |
|
6028 |
-
#: src/admin-views/aggregator/origins/csv.php:
|
6029 |
#: src/admin-views/aggregator/origins/ics.php:9
|
6030 |
msgid "Upload"
|
6031 |
msgstr ""
|
6032 |
|
6033 |
-
#: src/admin-views/aggregator/origins/csv.php:
|
6034 |
msgid "Upload a CSV File"
|
6035 |
msgstr ""
|
6036 |
|
6037 |
-
#: src/admin-views/aggregator/origins/csv.php:
|
6038 |
#: src/admin-views/aggregator/origins/ics.php:35
|
6039 |
msgid "No file chosen"
|
6040 |
msgstr ""
|
6041 |
|
6042 |
-
#: src/admin-views/aggregator/origins/csv.php:
|
6043 |
#: src/admin-views/aggregator/origins/eventbrite.php:219
|
6044 |
#: src/admin-views/aggregator/origins/gcal.php:123
|
6045 |
#: src/admin-views/aggregator/origins/ical.php:119
|
@@ -6050,6 +6052,18 @@ msgstr ""
|
|
6050 |
msgid "Preview"
|
6051 |
msgstr ""
|
6052 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6053 |
#: src/admin-views/aggregator/origins/eventbrite.php:6
|
6054 |
#: src/admin-views/aggregator/origins/gcal.php:5
|
6055 |
#: src/admin-views/aggregator/origins/ical.php:5
|
@@ -7195,7 +7209,7 @@ msgid "contact support"
|
|
7195 |
msgstr ""
|
7196 |
|
7197 |
#: src/admin-views/notices/legacy-views-updated.php:18
|
7198 |
-
#: src/admin-views/updates/6.0.0.php:
|
7199 |
msgid "View your calendar"
|
7200 |
msgstr ""
|
7201 |
|
@@ -8050,150 +8064,159 @@ msgstr ""
|
|
8050 |
msgid "Step 2 of 2"
|
8051 |
msgstr ""
|
8052 |
|
8053 |
-
#: src/admin-views/updates/6.0.0.php:
|
8054 |
msgid "Welcome to"
|
8055 |
msgstr ""
|
8056 |
|
8057 |
-
#: src/admin-views/updates/6.0.0.php:
|
8058 |
msgid "The Events Calendar 6.0"
|
8059 |
msgstr ""
|
8060 |
|
8061 |
-
#: src/admin-views/updates/6.0.0.php:
|
|
|
|
|
|
|
|
|
8062 |
msgid "What’s New in The Events Calendar 6.0"
|
8063 |
msgstr ""
|
8064 |
|
8065 |
-
#: src/admin-views/updates/6.0.0.php:
|
8066 |
msgid "Video describing features on The Events Calendar 6.0"
|
8067 |
msgstr ""
|
8068 |
|
8069 |
-
#: src/admin-views/updates/6.0.0.php:
|
8070 |
msgid ""
|
8071 |
"We’re excited to bring all of our users faster event creation and editing in "
|
8072 |
"the WordPress dashboard as well as quicker loading times for your website’s "
|
8073 |
"calendar."
|
8074 |
msgstr ""
|
8075 |
|
8076 |
-
#: src/admin-views/updates/6.0.0.php:
|
8077 |
msgid ""
|
8078 |
"Watch the video or check out the <a href=\"%s\">release notes</a> to learn "
|
8079 |
"more."
|
8080 |
msgstr ""
|
8081 |
|
8082 |
-
#: src/admin-views/updates/6.0.0.php:
|
8083 |
msgid ""
|
8084 |
"Be sure to <a href=\"%s\">migrate</a> to the new data storage system so you "
|
8085 |
"can take advantage of the improved performance."
|
8086 |
msgstr ""
|
8087 |
|
8088 |
-
#: src/admin-views/updates/6.0.0.php:
|
8089 |
msgid "Lightening bolt icon"
|
8090 |
msgstr ""
|
8091 |
|
8092 |
-
#: src/admin-views/updates/6.0.0.php:
|
8093 |
msgid "New Features for Events Calendar Pro"
|
8094 |
msgstr ""
|
8095 |
|
8096 |
-
#: src/admin-views/updates/6.0.0.php:
|
8097 |
msgid ""
|
8098 |
"A game-changing ✨new✨ post type, Series, allows you to group and display any "
|
8099 |
"single or recurring events together like never before."
|
8100 |
msgstr ""
|
8101 |
|
8102 |
-
#: src/admin-views/updates/6.0.0.php:
|
8103 |
msgid ""
|
8104 |
"With Series, you can edit an individual occurrence of a recurring event "
|
8105 |
"without disconnecting it from the others, allowing you to build complex "
|
8106 |
"event Series with different venues, images, and more."
|
8107 |
msgstr ""
|
8108 |
|
8109 |
-
#: src/admin-views/updates/6.0.0.php:
|
8110 |
msgid "Watch a video"
|
8111 |
msgstr ""
|
8112 |
|
8113 |
-
#: src/admin-views/updates/6.0.0.php:
|
8114 |
msgid "See a demo"
|
8115 |
msgstr ""
|
8116 |
|
8117 |
-
#: src/admin-views/updates/6.0.0.php:
|
8118 |
-
#: src/admin-views/updates/6.0.0.php:
|
8119 |
msgid "Event series graphic"
|
8120 |
msgstr ""
|
8121 |
|
8122 |
-
#: src/admin-views/updates/6.0.0.php:
|
8123 |
msgid "Advanced editing options"
|
8124 |
msgstr ""
|
8125 |
|
8126 |
-
#: src/admin-views/updates/6.0.0.php:
|
8127 |
msgid ""
|
8128 |
"for recurring events give you more possibilities for complex event "
|
8129 |
"management."
|
8130 |
msgstr ""
|
8131 |
|
8132 |
-
#: src/admin-views/updates/6.0.0.php:
|
8133 |
msgid "With the Duplicate Event Tool"
|
8134 |
msgstr ""
|
8135 |
|
8136 |
-
#: src/admin-views/updates/6.0.0.php:
|
8137 |
msgid ""
|
8138 |
"you can replicate and modify any events in seconds, making event creation a "
|
8139 |
"breeze."
|
8140 |
msgstr ""
|
8141 |
|
8142 |
-
#: src/admin-views/updates/6.0.0.php:
|
8143 |
msgid ""
|
8144 |
"Upgrade to <a href=\"%s\">Events Calendar Pro</a> to unlock these features."
|
8145 |
msgstr ""
|
8146 |
|
8147 |
-
#: src/admin-views/updates/6.0.0.php:
|
8148 |
msgid "Light bulb icon"
|
8149 |
msgstr ""
|
8150 |
|
8151 |
-
#: src/admin-views/updates/6.0.0.php:
|
8152 |
msgid "Legacy Views"
|
8153 |
msgstr ""
|
8154 |
|
8155 |
-
#: src/admin-views/updates/6.0.0.php:
|
8156 |
msgid ""
|
8157 |
"We have fully removed the legacy views from The Events Calendar 6.0. Your "
|
8158 |
"views have been automatically updated."
|
8159 |
msgstr ""
|
8160 |
|
8161 |
-
#: src/admin-views/updates/6.0.0.php:
|
8162 |
msgid "Resources"
|
8163 |
msgstr ""
|
8164 |
|
8165 |
-
#: src/admin-views/updates/6.0.0.php:
|
8166 |
msgid "Migrating Your Site"
|
8167 |
msgstr ""
|
8168 |
|
8169 |
-
#: src/admin-views/updates/6.0.0.php:
|
8170 |
msgid "Event Series"
|
8171 |
msgstr ""
|
8172 |
|
8173 |
-
#: src/admin-views/updates/6.0.0.php:
|
8174 |
msgid "Creating Recurring Events"
|
8175 |
msgstr ""
|
8176 |
|
8177 |
-
#: src/admin-views/updates/6.0.0.php:
|
8178 |
msgid "Duplicating Events"
|
8179 |
msgstr ""
|
8180 |
|
8181 |
-
#: src/admin-views/updates/6.0.0.php:
|
8182 |
msgid "Recurring Events & Tickets"
|
8183 |
msgstr ""
|
8184 |
|
8185 |
-
#: src/admin-views/updates/6.0.0.php:
|
8186 |
msgid "Community Events & Series"
|
8187 |
msgstr ""
|
8188 |
|
8189 |
-
#: src/admin-views/updates/6.0.0.php:
|
8190 |
msgid "Release Notes"
|
8191 |
msgstr ""
|
8192 |
|
8193 |
-
#: src/admin-views/updates/6.0.0.php:
|
8194 |
msgid "Get Support"
|
8195 |
msgstr ""
|
8196 |
|
|
|
|
|
|
|
|
|
|
|
8197 |
#: src/admin-views/venue-meta-box.php:265
|
8198 |
msgid "%s Name can not be empty"
|
8199 |
msgstr ""
|
@@ -8353,13 +8376,13 @@ msgstr ""
|
|
8353 |
msgid "In a location"
|
8354 |
msgstr ""
|
8355 |
|
8356 |
-
#: src/views/single-event/back-link.php:18 src/views/single-event.php:
|
8357 |
msgctxt "%s Events plural label"
|
8358 |
msgid "All %s"
|
8359 |
msgstr ""
|
8360 |
|
8361 |
-
#: src/views/single-event/footer.php:21 src/views/single-event.php:
|
8362 |
-
#: src/views/single-event.php:
|
8363 |
msgid "%s Navigation"
|
8364 |
msgstr ""
|
8365 |
|
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 6.0.1\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/the-events-"
|
7 |
"calendar\n"
|
8 |
+
"POT-Creation-Date: 2022-09-14 17:27: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: 2022-09-14 17:27\n"
|
13 |
"Last-Translator: \n"
|
14 |
"Language-Team: \n"
|
15 |
|
477 |
msgid "%s"
|
478 |
msgstr ""
|
479 |
|
480 |
+
#: src/Tribe/Admin/Bar/Default_Configurator.php:47 src/Tribe/Main.php:3612
|
481 |
#: src/Tribe/Views/V2/Views/Widgets/Widget_View.php:61
|
482 |
#: src/admin-views/tribe-options-upgrade.php:20
|
483 |
msgid "View Calendar"
|
488 |
msgstr ""
|
489 |
|
490 |
#: src/Tribe/Admin/Bar/Default_Configurator.php:64
|
491 |
+
#: src/Tribe/Linked_Posts/Chooser_Meta_Box.php:216 src/Tribe/Main.php:2062
|
492 |
#: src/Tribe/Organizer.php:93 src/Tribe/Organizer.php:801
|
493 |
#: src/Tribe/Venue.php:129 src/Tribe/Venue.php:915
|
494 |
msgid "Edit %s"
|
501 |
msgstr ""
|
502 |
|
503 |
#: src/Tribe/Admin/Bar/Default_Configurator.php:91
|
504 |
+
#: src/Tribe/Admin/Settings.php:166 src/Tribe/Main.php:3660
|
505 |
msgid "Settings"
|
506 |
msgstr ""
|
507 |
|
556 |
msgstr ""
|
557 |
|
558 |
#: src/Tribe/Admin/Notice/Timezones.php:151
|
559 |
+
#: src/Tribe/Editor/Compatibility.php:138 src/Tribe/Google/Maps_API_Key.php:77
|
560 |
msgid "Read more"
|
561 |
msgstr ""
|
562 |
|
642 |
"refresh and try again."
|
643 |
msgstr ""
|
644 |
|
645 |
+
#: src/Tribe/Admin_List.php:299 src/Tribe/Main.php:2114
|
646 |
msgid "%s Categories"
|
647 |
msgstr ""
|
648 |
|
2589 |
msgid "Add Button Text"
|
2590 |
msgstr ""
|
2591 |
|
2592 |
+
#: src/Tribe/Editor/Compatibility.php:144
|
2593 |
msgid "Activate Block Editor for Events"
|
2594 |
msgstr ""
|
2595 |
|
2596 |
+
#: src/Tribe/Editor/Compatibility.php:145
|
2597 |
msgid "Enable the Gutenberg block editor interface for creating events."
|
2598 |
msgstr ""
|
2599 |
|
2600 |
+
#: src/Tribe/Editor/Compatibility.php:152
|
2601 |
msgid "Hidden Blocks Editor Config"
|
2602 |
msgstr ""
|
2603 |
|
3142 |
msgid "%s:"
|
3143 |
msgstr ""
|
3144 |
|
3145 |
+
#: src/Tribe/Linked_Posts/Chooser_Meta_Box.php:263
|
3146 |
msgid "Add another %s"
|
3147 |
msgstr ""
|
3148 |
|
3149 |
+
#: src/Tribe/Linked_Posts/Chooser_Meta_Box.php:286
|
3150 |
msgid "Delete this"
|
3151 |
msgstr ""
|
3152 |
|
3238 |
msgid "Create or Find %s"
|
3239 |
msgstr ""
|
3240 |
|
3241 |
+
#. #-#-#-#-# the-events-calendar.pot (The Events Calendar 6.0.1) #-#-#-#-#
|
3242 |
#. Plugin Name of the plugin/theme
|
3243 |
+
#. #-#-#-#-# the-events-calendar.pot (The Events Calendar 6.0.1) #-#-#-#-#
|
3244 |
#. Author of the plugin/theme
|
3245 |
+
#: src/Tribe/Main.php:952 src/Tribe/Main.php:1481 src/Tribe/Privacy.php:29
|
3246 |
#: src/admin-views/admin-welcome-message.php:29
|
3247 |
#: src/functions/template-tags/general.php:1413 the-events-calendar.php:55
|
3248 |
msgid "The Events Calendar"
|
3249 |
msgstr ""
|
3250 |
|
3251 |
+
#: src/Tribe/Main.php:959
|
3252 |
msgid "month"
|
3253 |
msgstr ""
|
3254 |
|
3255 |
+
#: src/Tribe/Main.php:960
|
3256 |
msgid "list"
|
3257 |
msgstr ""
|
3258 |
|
3259 |
+
#: src/Tribe/Main.php:961
|
3260 |
msgid "upcoming"
|
3261 |
msgstr ""
|
3262 |
|
3263 |
+
#: src/Tribe/Main.php:962
|
3264 |
msgid "past"
|
3265 |
msgstr ""
|
3266 |
|
3267 |
+
#: src/Tribe/Main.php:963
|
3268 |
msgid "day"
|
3269 |
msgstr ""
|
3270 |
|
3271 |
+
#: src/Tribe/Main.php:964
|
3272 |
msgid "today"
|
3273 |
msgstr ""
|
3274 |
|
3275 |
+
#: src/Tribe/Main.php:965
|
3276 |
msgctxt "featured events slug"
|
3277 |
msgid "featured"
|
3278 |
msgstr ""
|
3279 |
|
3280 |
+
#: src/Tribe/Main.php:966
|
3281 |
msgctxt "all events slug"
|
3282 |
msgid "all"
|
3283 |
msgstr ""
|
3284 |
|
3285 |
+
#: src/Tribe/Main.php:990
|
3286 |
msgid "Initializing Tribe Events on %s"
|
3287 |
msgstr ""
|
3288 |
|
3289 |
+
#: src/Tribe/Main.php:1062 src/Tribe/Main.php:1064
|
3290 |
msgid "Welcome to The Events Calendar!"
|
3291 |
msgstr ""
|
3292 |
|
3293 |
+
#: src/Tribe/Main.php:1213
|
3294 |
msgid ""
|
3295 |
"The %3$s \"%1$s\" uses the \"/%2$s\" slug: the Events Calendar plugin will "
|
3296 |
"show its calendar in place of the page."
|
3297 |
msgstr ""
|
3298 |
|
3299 |
+
#: src/Tribe/Main.php:1216
|
3300 |
msgid "Ask the site administrator to edit the %s slug"
|
3301 |
msgstr ""
|
3302 |
|
3303 |
+
#: src/Tribe/Main.php:1218
|
3304 |
msgid "Edit the %s slug"
|
3305 |
msgstr ""
|
3306 |
|
3307 |
+
#: src/Tribe/Main.php:1222
|
3308 |
msgid " ask the site administrator to set a different Events URL slug."
|
3309 |
msgstr ""
|
3310 |
|
3311 |
+
#: src/Tribe/Main.php:1226
|
3312 |
msgid "edit Events settings."
|
3313 |
msgstr ""
|
3314 |
|
3315 |
+
#: src/Tribe/Main.php:1229
|
3316 |
msgid "%1$s or %2$s"
|
3317 |
msgstr ""
|
3318 |
|
3319 |
+
#: src/Tribe/Main.php:1317
|
3320 |
msgid "Upgrade your calendar views"
|
3321 |
msgstr ""
|
3322 |
|
3323 |
+
#: src/Tribe/Main.php:1342
|
3324 |
msgid "Upgrade"
|
3325 |
msgstr ""
|
3326 |
|
3327 |
+
#: src/Tribe/Main.php:1401
|
3328 |
msgid "New User Primer"
|
3329 |
msgstr ""
|
3330 |
|
3331 |
+
#: src/Tribe/Main.php:1403
|
3332 |
msgid ""
|
3333 |
"We are committed to helping make your calendar spectacular and have a wealth "
|
3334 |
"of resources available, including a handy %s to get your calendar up and "
|
3335 |
"running."
|
3336 |
msgstr ""
|
3337 |
|
3338 |
+
#: src/Tribe/Main.php:1414
|
3339 |
msgid "Support for The Events Calendar"
|
3340 |
msgstr ""
|
3341 |
|
3342 |
+
#: src/Tribe/Main.php:1420
|
3343 |
msgid ""
|
3344 |
"%s: A thorough walkthrough of The Events Calendar and the settings that are "
|
3345 |
"available to you."
|
3346 |
msgstr ""
|
3347 |
|
3348 |
+
#: src/Tribe/Main.php:1424
|
3349 |
msgid "Settings overview"
|
3350 |
msgstr ""
|
3351 |
|
3352 |
+
#: src/Tribe/Main.php:1428
|
3353 |
msgid ""
|
3354 |
"%s: A complete look at the features you can expect to see right out of the "
|
3355 |
"box as well as how to use them."
|
3356 |
msgstr ""
|
3357 |
|
3358 |
+
#: src/Tribe/Main.php:1432
|
3359 |
msgid "Features overview"
|
3360 |
msgstr ""
|
3361 |
|
3362 |
+
#: src/Tribe/Main.php:1436
|
3363 |
msgid ""
|
3364 |
"%s: Our most comprehensive outline for customizing the calendar to suit your "
|
3365 |
"needs, including custom layouts and styles."
|
3366 |
msgstr ""
|
3367 |
|
3368 |
+
#: src/Tribe/Main.php:1440
|
3369 |
msgid "Themer's Guide"
|
3370 |
msgstr ""
|
3371 |
|
3372 |
+
#: src/Tribe/Main.php:1444
|
3373 |
msgid ""
|
3374 |
"%s: An overview of the default templates and styles that are included in the "
|
3375 |
"plugin, as well as how to change them."
|
3376 |
msgstr ""
|
3377 |
|
3378 |
+
#: src/Tribe/Main.php:1448
|
3379 |
msgid "Using stylesheets and page templates"
|
3380 |
msgstr ""
|
3381 |
|
3382 |
+
#: src/Tribe/Main.php:1452
|
3383 |
msgid ""
|
3384 |
"%s: Do you see an issue with your calendar? Go here first to find where it’s "
|
3385 |
"coming from and how to fix it."
|
3386 |
msgstr ""
|
3387 |
|
3388 |
+
#: src/Tribe/Main.php:1456
|
3389 |
msgid "Troubleshooting common problems"
|
3390 |
msgstr ""
|
3391 |
|
3392 |
+
#: src/Tribe/Main.php:1460
|
3393 |
msgid ""
|
3394 |
"%s: Code and guides for customizing your calendar in useful and interesting "
|
3395 |
"ways."
|
3396 |
msgstr ""
|
3397 |
|
3398 |
+
#: src/Tribe/Main.php:1464
|
3399 |
msgid "Customizing the Events plugins"
|
3400 |
msgstr ""
|
3401 |
|
3402 |
+
#: src/Tribe/Main.php:1482
|
3403 |
msgid "Events Tickets"
|
3404 |
msgstr ""
|
3405 |
|
3406 |
+
#: src/Tribe/Main.php:1483
|
3407 |
msgid ""
|
3408 |
"If you have tried the above steps and are still having trouble, you can post "
|
3409 |
"a new thread to our WordPress.org forums for %1$s or %2$s. Our support staff "
|
3410 |
"monitors these forums once a week and would be happy to assist you there. "
|
3411 |
msgstr ""
|
3412 |
|
3413 |
+
#: src/Tribe/Main.php:1485 src/Tribe/Main.php:1493
|
3414 |
msgid "premium support on our website"
|
3415 |
msgstr ""
|
3416 |
|
3417 |
+
#: src/Tribe/Main.php:1486
|
3418 |
msgid ""
|
3419 |
"<strong>Looking for more immediate support?</strong> We offer %s with the "
|
3420 |
"purchase of any of our premium plugins. Pick up a license and you can post "
|
3421 |
"there directly and expect a response within 24-48 hours during weekdays"
|
3422 |
msgstr ""
|
3423 |
|
3424 |
+
#: src/Tribe/Main.php:1490
|
3425 |
msgid "open-source forum on WordPress.org"
|
3426 |
msgstr ""
|
3427 |
|
3428 |
+
#: src/Tribe/Main.php:1491
|
3429 |
msgid ""
|
3430 |
"If you have tried the above steps and are still having trouble, you can post "
|
3431 |
"a new thread to our %s. Our support staff monitors these forums once a week "
|
3432 |
"and would be happy to assist you there."
|
3433 |
msgstr ""
|
3434 |
|
3435 |
+
#: src/Tribe/Main.php:1494
|
3436 |
msgid "Events Calendar PRO"
|
3437 |
msgstr ""
|
3438 |
|
3439 |
+
#: src/Tribe/Main.php:1495
|
3440 |
msgid ""
|
3441 |
"<strong>Looking for more immediate support?</strong> We offer %1$s with the "
|
3442 |
"purchase of any of our premium plugins (like %2$s). Pick up a license and "
|
3444 |
"weekdays."
|
3445 |
msgstr ""
|
3446 |
|
3447 |
+
#: src/Tribe/Main.php:1499
|
3448 |
msgid "post a thread"
|
3449 |
msgstr ""
|
3450 |
|
3451 |
+
#: src/Tribe/Main.php:1500
|
3452 |
msgid ""
|
3453 |
"If you have a valid license for one of our paid plugins, you can %s in our "
|
3454 |
"premium support forums. Our support team monitors the forums and will "
|
3455 |
"respond to your thread within 24-48 hours (during the week)."
|
3456 |
msgstr ""
|
3457 |
|
3458 |
+
#: src/Tribe/Main.php:1543 src/functions/template-tags/general.php:127
|
3459 |
msgid "Events"
|
3460 |
msgstr ""
|
3461 |
|
3462 |
+
#: src/Tribe/Main.php:1551 src/admin-views/aggregator/tabs/import-form.php:229
|
3463 |
#: src/admin-views/aggregator/tabs/import-form.php:241
|
3464 |
#: src/functions/template-tags/general.php:71
|
3465 |
msgid "Event"
|
3466 |
msgstr ""
|
3467 |
|
3468 |
+
#: src/Tribe/Main.php:1722
|
3469 |
msgid ""
|
3470 |
"Sorry, The Events Calendar requires WordPress %s or higher. Please upgrade "
|
3471 |
"your WordPress install."
|
3472 |
msgstr ""
|
3473 |
|
3474 |
+
#: src/Tribe/Main.php:1725
|
3475 |
msgid ""
|
3476 |
"Sorry, The Events Calendar requires PHP %s or higher. Talk to your Web host "
|
3477 |
"about moving you to a newer version of PHP."
|
3478 |
msgstr ""
|
3479 |
|
3480 |
+
#: src/Tribe/Main.php:1760
|
3481 |
msgid ""
|
3482 |
"To continue using The Events Calendar, please install the latest version of"
|
3483 |
msgstr ""
|
3484 |
|
3485 |
+
#: src/Tribe/Main.php:1762 src/Tribe/Main.php:1763
|
3486 |
msgid "Event Tickets"
|
3487 |
msgstr ""
|
3488 |
|
3489 |
+
#: src/Tribe/Main.php:1789
|
3490 |
msgid ""
|
3491 |
"It appears as if the tribe-common libraries cannot be found! The directory "
|
3492 |
"should be in the \"common/\" directory in the events calendar plugin."
|
3493 |
msgstr ""
|
3494 |
|
3495 |
+
#: src/Tribe/Main.php:2026 src/Tribe/Main.php:2499
|
3496 |
msgid "category"
|
3497 |
msgstr ""
|
3498 |
|
3499 |
+
#: src/Tribe/Main.php:2040 src/Tribe/Main.php:2498
|
3500 |
msgid "tag"
|
3501 |
msgstr ""
|
3502 |
|
3503 |
+
#: src/Tribe/Main.php:2057 src/Tribe/Organizer.php:91 src/Tribe/Venue.php:127
|
3504 |
msgid "Add New"
|
3505 |
msgstr ""
|
3506 |
|
3507 |
+
#: src/Tribe/Main.php:2059 src/Tribe/Main.php:2266 src/Tribe/Main.php:2267
|
3508 |
#: src/Tribe/Organizer.php:92 src/Tribe/Venue.php:128
|
3509 |
msgid "Add New %s"
|
3510 |
msgstr ""
|
3511 |
|
3512 |
+
#: src/Tribe/Main.php:2065 src/Tribe/Organizer.php:94 src/Tribe/Venue.php:130
|
3513 |
msgid "New %s"
|
3514 |
msgstr ""
|
3515 |
|
3516 |
+
#: src/Tribe/Main.php:2068 src/Tribe/Organizer.php:95 src/Tribe/Venue.php:131
|
3517 |
msgid "View %s"
|
3518 |
msgstr ""
|
3519 |
|
3520 |
+
#: src/Tribe/Main.php:2071 src/Tribe/Organizer.php:96 src/Tribe/Venue.php:132
|
3521 |
msgid "Search %s"
|
3522 |
msgstr ""
|
3523 |
|
3524 |
+
#: src/Tribe/Main.php:2074 src/Tribe/Organizer.php:97 src/Tribe/Venue.php:133
|
3525 |
msgid "No %s found"
|
3526 |
msgstr ""
|
3527 |
|
3528 |
+
#: src/Tribe/Main.php:2077 src/Tribe/Organizer.php:98 src/Tribe/Venue.php:134
|
3529 |
msgid "No %s found in Trash"
|
3530 |
msgstr ""
|
3531 |
|
3532 |
+
#: src/Tribe/Main.php:2080 src/Tribe/Main.php:2219 src/Tribe/Main.php:2241
|
3533 |
#: src/Tribe/Organizer.php:99 src/Tribe/Venue.php:135
|
3534 |
msgid "%s published."
|
3535 |
msgstr ""
|
3536 |
|
3537 |
+
#: src/Tribe/Main.php:2083 src/Tribe/Organizer.php:100 src/Tribe/Venue.php:136
|
3538 |
msgid "%s published privately."
|
3539 |
msgstr ""
|
3540 |
|
3541 |
+
#: src/Tribe/Main.php:2086 src/Tribe/Organizer.php:101 src/Tribe/Venue.php:137
|
3542 |
msgid "%s reverted to draft."
|
3543 |
msgstr ""
|
3544 |
|
3545 |
+
#: src/Tribe/Main.php:2089 src/Tribe/Organizer.php:102 src/Tribe/Venue.php:138
|
3546 |
msgid "%s scheduled."
|
3547 |
msgstr ""
|
3548 |
|
3549 |
+
#: src/Tribe/Main.php:2092 src/Tribe/Main.php:2175 src/Tribe/Main.php:2211
|
3550 |
+
#: src/Tribe/Main.php:2214 src/Tribe/Main.php:2233 src/Tribe/Main.php:2236
|
3551 |
#: src/Tribe/Organizer.php:103 src/Tribe/Venue.php:139
|
3552 |
msgid "%s updated."
|
3553 |
msgstr ""
|
3555 |
#. Translators: %s: Event singular.
|
3556 |
#. Translators: %s: Organizer singular.
|
3557 |
#. Translators: %s: Venue singular.
|
3558 |
+
#: src/Tribe/Main.php:2096 src/Tribe/Organizer.php:106 src/Tribe/Venue.php:142
|
3559 |
msgid "%s Link"
|
3560 |
msgstr ""
|
3561 |
|
3562 |
#. Translators: %s: Event singular.
|
3563 |
#. Translators: %s: Organizer singular.
|
3564 |
#. Translators: %s: Venue singular.
|
3565 |
+
#: src/Tribe/Main.php:2100 src/Tribe/Organizer.php:110 src/Tribe/Venue.php:146
|
3566 |
msgid "A link to a particular %s."
|
3567 |
msgstr ""
|
3568 |
|
3569 |
+
#: src/Tribe/Main.php:2117
|
3570 |
msgid "%s Category"
|
3571 |
msgstr ""
|
3572 |
|
3573 |
+
#: src/Tribe/Main.php:2120
|
3574 |
msgid "Search %s Categories"
|
3575 |
msgstr ""
|
3576 |
|
3577 |
+
#: src/Tribe/Main.php:2123
|
3578 |
msgid "All %s Categories"
|
3579 |
msgstr ""
|
3580 |
|
3581 |
+
#: src/Tribe/Main.php:2126
|
3582 |
msgid "Parent %s Category"
|
3583 |
msgstr ""
|
3584 |
|
3585 |
+
#: src/Tribe/Main.php:2129
|
3586 |
msgid "Parent %s Category:"
|
3587 |
msgstr ""
|
3588 |
|
3589 |
+
#: src/Tribe/Main.php:2132
|
3590 |
msgid "Edit %s Category"
|
3591 |
msgstr ""
|
3592 |
|
3593 |
+
#: src/Tribe/Main.php:2135
|
3594 |
msgid "Update %s Category"
|
3595 |
msgstr ""
|
3596 |
|
3597 |
+
#: src/Tribe/Main.php:2138
|
3598 |
msgid "Add New %s Category"
|
3599 |
msgstr ""
|
3600 |
|
3601 |
+
#: src/Tribe/Main.php:2141
|
3602 |
msgid "New %s Category Name"
|
3603 |
msgstr ""
|
3604 |
|
3605 |
#. Translators: %s: Event singular.
|
3606 |
+
#: src/Tribe/Main.php:2145
|
3607 |
msgid "%s Category Link"
|
3608 |
msgstr ""
|
3609 |
|
3610 |
#. Translators: %s: Event singular.
|
3611 |
+
#: src/Tribe/Main.php:2149
|
3612 |
msgid "A link to a particular %s category."
|
3613 |
msgstr ""
|
3614 |
|
3615 |
+
#: src/Tribe/Main.php:2168
|
3616 |
msgid "%1$s updated. %2$sView %1$s%3$s"
|
3617 |
msgstr ""
|
3618 |
|
3619 |
+
#: src/Tribe/Main.php:2173 src/Tribe/Main.php:2212 src/Tribe/Main.php:2234
|
3620 |
msgid "Custom field updated."
|
3621 |
msgstr ""
|
3622 |
|
3623 |
+
#: src/Tribe/Main.php:2174 src/Tribe/Main.php:2213 src/Tribe/Main.php:2235
|
3624 |
msgid "Custom field deleted."
|
3625 |
msgstr ""
|
3626 |
|
3627 |
#. translators: %s: date and time of the revision
|
3628 |
+
#: src/Tribe/Main.php:2178 src/Tribe/Main.php:2217
|
3629 |
msgid "%1$s restored to revision from %2$s"
|
3630 |
msgstr ""
|
3631 |
|
3632 |
+
#: src/Tribe/Main.php:2181
|
3633 |
msgid "%1$s published. %2$sView %3$s"
|
3634 |
msgstr ""
|
3635 |
|
3636 |
+
#: src/Tribe/Main.php:2186 src/Tribe/Main.php:2220 src/Tribe/Main.php:2242
|
3637 |
msgid "%s saved."
|
3638 |
msgstr ""
|
3639 |
|
3640 |
+
#: src/Tribe/Main.php:2188
|
3641 |
msgid "%1$s submitted. %2$sPreview %3$s"
|
3642 |
msgstr ""
|
3643 |
|
3644 |
+
#: src/Tribe/Main.php:2194
|
3645 |
msgid "%1$s scheduled for: %2$s. %3$sPreview %4$s"
|
3646 |
msgstr ""
|
3647 |
|
3648 |
#. translators: Publish box date format, see http://php.net/date
|
3649 |
+
#: src/Tribe/Main.php:2197 src/Tribe/Main.php:2226 src/Tribe/Main.php:2248
|
3650 |
msgid "M j, Y @ G:i"
|
3651 |
msgstr ""
|
3652 |
|
3653 |
+
#: src/Tribe/Main.php:2202
|
3654 |
msgid "%1$s draft updated. %2$sPreview %3$s"
|
3655 |
msgstr ""
|
3656 |
|
3657 |
+
#: src/Tribe/Main.php:2221 src/Tribe/Main.php:2243
|
3658 |
msgid "%s submitted."
|
3659 |
msgstr ""
|
3660 |
|
3661 |
+
#: src/Tribe/Main.php:2223 src/Tribe/Main.php:2245
|
3662 |
msgid "%1$s scheduled for: %2$s."
|
3663 |
msgstr ""
|
3664 |
|
3665 |
+
#: src/Tribe/Main.php:2228 src/Tribe/Main.php:2251
|
3666 |
msgid "%s draft updated."
|
3667 |
msgstr ""
|
3668 |
|
3669 |
#. translators: %s: date and time of the revision
|
3670 |
+
#: src/Tribe/Main.php:2239
|
3671 |
msgid "%s restored to revision from %s"
|
3672 |
msgstr ""
|
3673 |
|
3674 |
+
#: src/Tribe/Main.php:2300
|
3675 |
msgid ""
|
3676 |
"Without a defined location your event will not display a %sGoogle Rich "
|
3677 |
"Snippet%s on the search results."
|
3678 |
msgstr ""
|
3679 |
|
3680 |
+
#: src/Tribe/Main.php:2500
|
3681 |
msgid "page"
|
3682 |
msgstr ""
|
3683 |
|
3684 |
+
#: src/Tribe/Main.php:2501 src/functions/template-tags/general.php:99
|
3685 |
msgid "event"
|
3686 |
msgstr ""
|
3687 |
|
3688 |
+
#: src/Tribe/Main.php:2502 src/functions/template-tags/general.php:155
|
3689 |
msgid "events"
|
3690 |
msgstr ""
|
3691 |
|
3692 |
+
#: src/Tribe/Main.php:2503
|
3693 |
msgid "all"
|
3694 |
msgstr ""
|
3695 |
|
3696 |
+
#: src/Tribe/Main.php:3261 src/Tribe/Main.php:3300
|
3697 |
#: src/functions/template-tags/deprecated.php:22
|
3698 |
#: src/functions/template-tags/deprecated.php:44
|
3699 |
msgid "Date out of range."
|
3700 |
msgstr ""
|
3701 |
|
3702 |
+
#: src/Tribe/Main.php:3330
|
3703 |
msgid "%s Options"
|
3704 |
msgstr ""
|
3705 |
|
3706 |
+
#: src/Tribe/Main.php:3502
|
3707 |
msgid "Support"
|
3708 |
msgstr ""
|
3709 |
|
3710 |
+
#: src/Tribe/Main.php:3505
|
3711 |
msgid "View All Add-Ons"
|
3712 |
msgstr ""
|
3713 |
|
3714 |
+
#: src/Tribe/Main.php:3527
|
3715 |
msgid "News from The Events Calendar"
|
3716 |
msgstr ""
|
3717 |
|
3718 |
+
#: src/Tribe/Main.php:3554
|
3719 |
msgid "Additional Functionality"
|
3720 |
msgstr ""
|
3721 |
|
3722 |
+
#: src/Tribe/Main.php:3559
|
3723 |
msgid ""
|
3724 |
"Looking for additional functionality including recurring events, ticket "
|
3725 |
"sales, publicly submitted events, new views and more?"
|
3726 |
msgstr ""
|
3727 |
|
3728 |
+
#: src/Tribe/Main.php:3560
|
3729 |
msgid "Check out the %savailable add-ons%s."
|
3730 |
msgstr ""
|
3731 |
|
3732 |
+
#: src/Tribe/Main.php:3661
|
3733 |
msgid "Calendar"
|
3734 |
msgstr ""
|
3735 |
|
3736 |
+
#: src/Tribe/Main.php:3698
|
3737 |
msgid "Once Every 30 Mins"
|
3738 |
msgstr ""
|
3739 |
|
5551 |
msgid "%1$s for %2$s"
|
5552 |
msgstr ""
|
5553 |
|
5554 |
+
#: src/Tribe/Views/V2/View.php:2057 src/views/v2/day/event/date/featured.php:27
|
5555 |
#: src/views/v2/day/event/date/featured.php:32
|
5556 |
#: src/views/v2/latest-past/event/date/featured.php:27
|
5557 |
#: src/views/v2/latest-past/event/date/featured.php:32
|
5777 |
|
5778 |
#: src/admin-views/admin-welcome-message.php:14
|
5779 |
#: src/admin-views/admin-welcome-message.php:20
|
5780 |
+
#: src/admin-views/updates/6.0.0.php:18
|
5781 |
msgid "Shapes and lines for visual interest"
|
5782 |
msgstr ""
|
5783 |
|
5784 |
#: src/admin-views/admin-welcome-message.php:27
|
5785 |
+
#: src/admin-views/aggregator/origins/csv.php:88
|
5786 |
+
#: src/admin-views/aggregator/origins/csv.php:97
|
5787 |
+
#: src/admin-views/updates/6.0.0.php:25
|
5788 |
msgid "The Events Calendar logo"
|
5789 |
msgstr ""
|
5790 |
|
5863 |
#: src/admin-views/admin-welcome-message.php:73
|
5864 |
#: src/admin-views/aggregator/banners/eventbrite-upsell.php:17
|
5865 |
#: src/admin-views/notices/update-6-0-0.php:29
|
5866 |
+
#: src/admin-views/updates/6.0.0.php:66 src/admin-views/updates/6.0.0.php:100
|
5867 |
msgid "Learn more"
|
5868 |
msgstr ""
|
5869 |
|
6012 |
"event files."
|
6013 |
msgstr ""
|
6014 |
|
6015 |
+
#: src/admin-views/aggregator/origins/csv.php:40
|
6016 |
#: src/admin-views/aggregator/origins/ics.php:5
|
6017 |
msgid "Choose File:"
|
6018 |
msgstr ""
|
6019 |
|
6020 |
+
#: src/admin-views/aggregator/origins/csv.php:41
|
6021 |
msgid "Choose a CSV file"
|
6022 |
msgstr ""
|
6023 |
|
6024 |
+
#: src/admin-views/aggregator/origins/csv.php:42
|
6025 |
msgid ""
|
6026 |
"Select your .CSV file from the WordPress media library. You may need to "
|
6027 |
"first upload the file from your computer to the library."
|
6028 |
msgstr ""
|
6029 |
|
6030 |
+
#: src/admin-views/aggregator/origins/csv.php:43
|
6031 |
#: src/admin-views/aggregator/origins/ics.php:9
|
6032 |
msgid "Upload"
|
6033 |
msgstr ""
|
6034 |
|
6035 |
+
#: src/admin-views/aggregator/origins/csv.php:44
|
6036 |
msgid "Upload a CSV File"
|
6037 |
msgstr ""
|
6038 |
|
6039 |
+
#: src/admin-views/aggregator/origins/csv.php:69
|
6040 |
#: src/admin-views/aggregator/origins/ics.php:35
|
6041 |
msgid "No file chosen"
|
6042 |
msgstr ""
|
6043 |
|
6044 |
+
#: src/admin-views/aggregator/origins/csv.php:77
|
6045 |
#: src/admin-views/aggregator/origins/eventbrite.php:219
|
6046 |
#: src/admin-views/aggregator/origins/gcal.php:123
|
6047 |
#: src/admin-views/aggregator/origins/ical.php:119
|
6052 |
msgid "Preview"
|
6053 |
msgstr ""
|
6054 |
|
6055 |
+
#: src/admin-views/aggregator/origins/csv.php:83
|
6056 |
+
msgid "Need assistance? You can find more information here:"
|
6057 |
+
msgstr ""
|
6058 |
+
|
6059 |
+
#: src/admin-views/aggregator/origins/csv.php:91
|
6060 |
+
msgid "Importing Calendar Data From a CSV File"
|
6061 |
+
msgstr ""
|
6062 |
+
|
6063 |
+
#: src/admin-views/aggregator/origins/csv.php:100
|
6064 |
+
msgid "CSV File Formatting and Examples "
|
6065 |
+
msgstr ""
|
6066 |
+
|
6067 |
#: src/admin-views/aggregator/origins/eventbrite.php:6
|
6068 |
#: src/admin-views/aggregator/origins/gcal.php:5
|
6069 |
#: src/admin-views/aggregator/origins/ical.php:5
|
7209 |
msgstr ""
|
7210 |
|
7211 |
#: src/admin-views/notices/legacy-views-updated.php:18
|
7212 |
+
#: src/admin-views/updates/6.0.0.php:99
|
7213 |
msgid "View your calendar"
|
7214 |
msgstr ""
|
7215 |
|
8064 |
msgid "Step 2 of 2"
|
8065 |
msgstr ""
|
8066 |
|
8067 |
+
#: src/admin-views/updates/6.0.0.php:29
|
8068 |
msgid "Welcome to"
|
8069 |
msgstr ""
|
8070 |
|
8071 |
+
#: src/admin-views/updates/6.0.0.php:30
|
8072 |
msgid "The Events Calendar 6.0"
|
8073 |
msgstr ""
|
8074 |
|
8075 |
+
#: src/admin-views/updates/6.0.0.php:31 src/admin-views/updates/6.0.0.php:120
|
8076 |
+
msgid "Take me to Settings ›"
|
8077 |
+
msgstr ""
|
8078 |
+
|
8079 |
+
#: src/admin-views/updates/6.0.0.php:41
|
8080 |
msgid "What’s New in The Events Calendar 6.0"
|
8081 |
msgstr ""
|
8082 |
|
8083 |
+
#: src/admin-views/updates/6.0.0.php:44
|
8084 |
msgid "Video describing features on The Events Calendar 6.0"
|
8085 |
msgstr ""
|
8086 |
|
8087 |
+
#: src/admin-views/updates/6.0.0.php:50
|
8088 |
msgid ""
|
8089 |
"We’re excited to bring all of our users faster event creation and editing in "
|
8090 |
"the WordPress dashboard as well as quicker loading times for your website’s "
|
8091 |
"calendar."
|
8092 |
msgstr ""
|
8093 |
|
8094 |
+
#: src/admin-views/updates/6.0.0.php:51
|
8095 |
msgid ""
|
8096 |
"Watch the video or check out the <a href=\"%s\">release notes</a> to learn "
|
8097 |
"more."
|
8098 |
msgstr ""
|
8099 |
|
8100 |
+
#: src/admin-views/updates/6.0.0.php:53
|
8101 |
msgid ""
|
8102 |
"Be sure to <a href=\"%s\">migrate</a> to the new data storage system so you "
|
8103 |
"can take advantage of the improved performance."
|
8104 |
msgstr ""
|
8105 |
|
8106 |
+
#: src/admin-views/updates/6.0.0.php:59
|
8107 |
msgid "Lightening bolt icon"
|
8108 |
msgstr ""
|
8109 |
|
8110 |
+
#: src/admin-views/updates/6.0.0.php:60
|
8111 |
msgid "New Features for Events Calendar Pro"
|
8112 |
msgstr ""
|
8113 |
|
8114 |
+
#: src/admin-views/updates/6.0.0.php:64
|
8115 |
msgid ""
|
8116 |
"A game-changing ✨new✨ post type, Series, allows you to group and display any "
|
8117 |
"single or recurring events together like never before."
|
8118 |
msgstr ""
|
8119 |
|
8120 |
+
#: src/admin-views/updates/6.0.0.php:65
|
8121 |
msgid ""
|
8122 |
"With Series, you can edit an individual occurrence of a recurring event "
|
8123 |
"without disconnecting it from the others, allowing you to build complex "
|
8124 |
"event Series with different venues, images, and more."
|
8125 |
msgstr ""
|
8126 |
|
8127 |
+
#: src/admin-views/updates/6.0.0.php:66
|
8128 |
msgid "Watch a video"
|
8129 |
msgstr ""
|
8130 |
|
8131 |
+
#: src/admin-views/updates/6.0.0.php:66
|
8132 |
msgid "See a demo"
|
8133 |
msgstr ""
|
8134 |
|
8135 |
+
#: src/admin-views/updates/6.0.0.php:70 src/admin-views/updates/6.0.0.php:75
|
8136 |
+
#: src/admin-views/updates/6.0.0.php:79 src/admin-views/updates/6.0.0.php:85
|
8137 |
msgid "Event series graphic"
|
8138 |
msgstr ""
|
8139 |
|
8140 |
+
#: src/admin-views/updates/6.0.0.php:76
|
8141 |
msgid "Advanced editing options"
|
8142 |
msgstr ""
|
8143 |
|
8144 |
+
#: src/admin-views/updates/6.0.0.php:76
|
8145 |
msgid ""
|
8146 |
"for recurring events give you more possibilities for complex event "
|
8147 |
"management."
|
8148 |
msgstr ""
|
8149 |
|
8150 |
+
#: src/admin-views/updates/6.0.0.php:80
|
8151 |
msgid "With the Duplicate Event Tool"
|
8152 |
msgstr ""
|
8153 |
|
8154 |
+
#: src/admin-views/updates/6.0.0.php:80
|
8155 |
msgid ""
|
8156 |
"you can replicate and modify any events in seconds, making event creation a "
|
8157 |
"breeze."
|
8158 |
msgstr ""
|
8159 |
|
8160 |
+
#: src/admin-views/updates/6.0.0.php:86
|
8161 |
msgid ""
|
8162 |
"Upgrade to <a href=\"%s\">Events Calendar Pro</a> to unlock these features."
|
8163 |
msgstr ""
|
8164 |
|
8165 |
+
#: src/admin-views/updates/6.0.0.php:95
|
8166 |
msgid "Light bulb icon"
|
8167 |
msgstr ""
|
8168 |
|
8169 |
+
#: src/admin-views/updates/6.0.0.php:96
|
8170 |
msgid "Legacy Views"
|
8171 |
msgstr ""
|
8172 |
|
8173 |
+
#: src/admin-views/updates/6.0.0.php:98
|
8174 |
msgid ""
|
8175 |
"We have fully removed the legacy views from The Events Calendar 6.0. Your "
|
8176 |
"views have been automatically updated."
|
8177 |
msgstr ""
|
8178 |
|
8179 |
+
#: src/admin-views/updates/6.0.0.php:103
|
8180 |
msgid "Resources"
|
8181 |
msgstr ""
|
8182 |
|
8183 |
+
#: src/admin-views/updates/6.0.0.php:105
|
8184 |
msgid "Migrating Your Site"
|
8185 |
msgstr ""
|
8186 |
|
8187 |
+
#: src/admin-views/updates/6.0.0.php:106
|
8188 |
msgid "Event Series"
|
8189 |
msgstr ""
|
8190 |
|
8191 |
+
#: src/admin-views/updates/6.0.0.php:107
|
8192 |
msgid "Creating Recurring Events"
|
8193 |
msgstr ""
|
8194 |
|
8195 |
+
#: src/admin-views/updates/6.0.0.php:108
|
8196 |
msgid "Duplicating Events"
|
8197 |
msgstr ""
|
8198 |
|
8199 |
+
#: src/admin-views/updates/6.0.0.php:109
|
8200 |
msgid "Recurring Events & Tickets"
|
8201 |
msgstr ""
|
8202 |
|
8203 |
+
#: src/admin-views/updates/6.0.0.php:110
|
8204 |
msgid "Community Events & Series"
|
8205 |
msgstr ""
|
8206 |
|
8207 |
+
#: src/admin-views/updates/6.0.0.php:111
|
8208 |
msgid "Release Notes"
|
8209 |
msgstr ""
|
8210 |
|
8211 |
+
#: src/admin-views/updates/6.0.0.php:112
|
8212 |
msgid "Get Support"
|
8213 |
msgstr ""
|
8214 |
|
8215 |
+
#: src/admin-views/updates/6.0.0.php:119
|
8216 |
+
msgid ""
|
8217 |
+
"We won't post this page again once you skip to The Events Calendar Settings."
|
8218 |
+
msgstr ""
|
8219 |
+
|
8220 |
#: src/admin-views/venue-meta-box.php:265
|
8221 |
msgid "%s Name can not be empty"
|
8222 |
msgstr ""
|
8376 |
msgid "In a location"
|
8377 |
msgstr ""
|
8378 |
|
8379 |
+
#: src/views/single-event/back-link.php:18 src/views/single-event.php:78
|
8380 |
msgctxt "%s Events plural label"
|
8381 |
msgid "All %s"
|
8382 |
msgstr ""
|
8383 |
|
8384 |
+
#: src/views/single-event/footer.php:21 src/views/single-event.php:96
|
8385 |
+
#: src/views/single-event.php:130
|
8386 |
msgid "%s Navigation"
|
8387 |
msgstr ""
|
8388 |
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Contributors: theeventscalendar, borkweb, bordoni, brianjessee, aguseo, camwynsp
|
|
4 |
Tags: events, calendar, event, schedule, organizer
|
5 |
Donate link: https://evnt.is/29
|
6 |
Requires at least: 5.8.4
|
7 |
-
Stable tag: 6.0.
|
8 |
Tested up to: 6.0.2
|
9 |
Requires PHP: 7.3
|
10 |
License: GPLv2 or later
|
@@ -229,6 +229,26 @@ Remember to always make a backup of your database and files before updating!
|
|
229 |
|
230 |
== Changelog ==
|
231 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
232 |
= [6.0.0.1] 2022-09-07 =
|
233 |
|
234 |
* Fix - Prevent `E_ERROR` from showing up when calling `tribe_context()->is( 'is_main_query' )` too early in execution. [TEC-4464]
|
4 |
Tags: events, calendar, event, schedule, organizer
|
5 |
Donate link: https://evnt.is/29
|
6 |
Requires at least: 5.8.4
|
7 |
+
Stable tag: 6.0.1
|
8 |
Tested up to: 6.0.2
|
9 |
Requires PHP: 7.3
|
10 |
License: GPLv2 or later
|
229 |
|
230 |
== Changelog ==
|
231 |
|
232 |
+
= [6.0.1] 2022-09-22 =
|
233 |
+
|
234 |
+
* Fix - Prevent network deactivation from overwriting the subsite settings with main site cached settings. [TEC-3738]
|
235 |
+
* Fix - Correct some translation domains pointing to the wrong plugin. [TEC-4450]
|
236 |
+
* Fix - Ensure the details in the single event page are accurate for Divi users who set any Divi template under Settings → Events template. [TEC-3814]
|
237 |
+
* Fix - Add caching to prevent duplicated queries for translated venue/organizer values. props to @dgwatkins for the suggested fix! [TEC-4428]
|
238 |
+
* Fix - Check the document for `lang` and `rtl` attributes and pass them on to the datepicker so it adapts properly. [TEC-4452]
|
239 |
+
* Fix - Corrected an issue where the Organizer Block was showing the "Add Another Organizer" button when no organizers were selected. [CE-11]
|
240 |
+
* Fix - Corrected an issue where the "Edit Venue" and "Edit Organizer" links were displaying with no link. [CE-165]
|
241 |
+
* Fix - Correct migration error when The Events Calendar PRO is not active. [TEC-4475]
|
242 |
+
* Fix - Normalize, reformat and rebuild Event date-related meta to fix a number of migration preview failures [ECP-1304]
|
243 |
+
* Fix - Correct a problem with moving tickets when The Events Calendar PRO is not active. [TEC-4471]
|
244 |
+
* Fix - Correct an issue with migrating past events that straddle Daylight Savings Time. [ECP-1270]
|
245 |
+
* Fix - Fix the Community Events recurrence link. [ECP-1215]
|
246 |
+
* Tweak - Add some helpful knowledgebase article links to the CSV import screen. [TEC-4353]
|
247 |
+
* Tweak - Ensure the Fast-forward link uses the correct, customizable color as other links. [TEC-3962]
|
248 |
+
* Tweak - Include Custom Tables Migration in the Support System Information array. [ECP-1316]
|
249 |
+
* Tweak - Add compatibility for new "Convert to single" option in The Events Calendar PRO. [ECP-1308]
|
250 |
+
* Language - 5 new strings added, 163 updated, 0 fuzzied, and 0 obsoleted
|
251 |
+
|
252 |
= [6.0.0.1] 2022-09-07 =
|
253 |
|
254 |
* Fix - Prevent `E_ERROR` from showing up when calling `tribe_context()->is( 'is_main_query' )` too early in execution. [TEC-4464]
|
src/Events/Custom_Tables/V1/Activation.php
CHANGED
@@ -12,6 +12,7 @@ namespace TEC\Events\Custom_Tables\V1;
|
|
12 |
use TEC\Events\Custom_Tables\V1\Migration\Events;
|
13 |
use TEC\Events\Custom_Tables\V1\Migration\State;
|
14 |
use TEC\Events\Custom_Tables\V1\Schema_Builder\Schema_Builder;
|
|
|
15 |
|
16 |
/**
|
17 |
* Class Activation
|
@@ -35,7 +36,7 @@ class Activation {
|
|
35 |
* @since 6.0.0
|
36 |
*/
|
37 |
public static function activate() {
|
38 |
-
$schema_builder = tribe( Schema_Builder::class);
|
39 |
$schema_builder->up();
|
40 |
}
|
41 |
|
@@ -51,7 +52,7 @@ class Activation {
|
|
51 |
$db_hash = get_transient( static::ACTIVATION_TRANSIENT );
|
52 |
|
53 |
$schema_builder = tribe( Schema_Builder::class );
|
54 |
-
$hash
|
55 |
|
56 |
if ( $db_hash == $hash ) {
|
57 |
return;
|
@@ -64,8 +65,8 @@ class Activation {
|
|
64 |
$schema_builder->up();
|
65 |
}
|
66 |
|
67 |
-
$services
|
68 |
-
$state
|
69 |
|
70 |
// Check if we have any events to migrate, if not we can set up our schema and flag the migration complete.
|
71 |
if (
|
@@ -86,6 +87,39 @@ class Activation {
|
|
86 |
}
|
87 |
}
|
88 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
/**
|
90 |
* Handles the feature deactivation.
|
91 |
*
|
12 |
use TEC\Events\Custom_Tables\V1\Migration\Events;
|
13 |
use TEC\Events\Custom_Tables\V1\Migration\State;
|
14 |
use TEC\Events\Custom_Tables\V1\Schema_Builder\Schema_Builder;
|
15 |
+
use Tribe__Main as Common;
|
16 |
|
17 |
/**
|
18 |
* Class Activation
|
36 |
* @since 6.0.0
|
37 |
*/
|
38 |
public static function activate() {
|
39 |
+
$schema_builder = tribe( Schema_Builder::class );
|
40 |
$schema_builder->up();
|
41 |
}
|
42 |
|
52 |
$db_hash = get_transient( static::ACTIVATION_TRANSIENT );
|
53 |
|
54 |
$schema_builder = tribe( Schema_Builder::class );
|
55 |
+
$hash = $schema_builder->get_registered_schemas_version_hash();
|
56 |
|
57 |
if ( $db_hash == $hash ) {
|
58 |
return;
|
65 |
$schema_builder->up();
|
66 |
}
|
67 |
|
68 |
+
$services = tribe();
|
69 |
+
$state = $services->make( State::class );
|
70 |
|
71 |
// Check if we have any events to migrate, if not we can set up our schema and flag the migration complete.
|
72 |
if (
|
87 |
}
|
88 |
}
|
89 |
|
90 |
+
/**
|
91 |
+
* Includes the Migration state into the System Information for support.
|
92 |
+
*
|
93 |
+
* @since 6.0.1
|
94 |
+
*
|
95 |
+
* @param array<string,mixed> $info The system information, as produced by the
|
96 |
+
* default logic and previous filters.
|
97 |
+
*
|
98 |
+
* @return array<string,mixed> The filtered system information.
|
99 |
+
*/
|
100 |
+
public static function filter_include_migration_in_system_info( array $info = [] ): array {
|
101 |
+
$phase = tribe( State::class )->get_phase();
|
102 |
+
// String not translated on purpose.
|
103 |
+
$incomplete_label = 'Incomplete';
|
104 |
+
$status_map = [
|
105 |
+
State::PHASE_MIGRATION_COMPLETE => 'Completed', // String not translated on purpose.
|
106 |
+
State::PHASE_MIGRATION_NOT_REQUIRED => 'Not Required', // String not translated on purpose.
|
107 |
+
];
|
108 |
+
|
109 |
+
$migration_status = [
|
110 |
+
'Custom Tables Migration Status' => ! empty( $phase ) && ! empty( $status_map[ $phase ] ) ?
|
111 |
+
$status_map[ $phase ]
|
112 |
+
: $incomplete_label,
|
113 |
+
];
|
114 |
+
|
115 |
+
// Prevents problems in case we don't have sys info.
|
116 |
+
if ( empty( $info ) ) {
|
117 |
+
return $migration_status;
|
118 |
+
}
|
119 |
+
|
120 |
+
return Common::array_insert_before_key( 'Settings', $info, $migration_status );
|
121 |
+
}
|
122 |
+
|
123 |
/**
|
124 |
* Handles the feature deactivation.
|
125 |
*
|
src/Events/Custom_Tables/V1/Migration/Events.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
*
|
4 |
*
|
5 |
* @since 6.0.0
|
6 |
* @package TEC\Events\Custom_Tables\V1\Migration;
|
@@ -56,14 +56,20 @@ class Events {
|
|
56 |
$lock_query = "INSERT INTO {$wpdb->postmeta} (post_id, meta_key, meta_value)
|
57 |
SELECT p.ID, %s,%s
|
58 |
FROM {$wpdb->posts} p
|
59 |
-
LEFT JOIN {$wpdb->postmeta} pm ON p.ID = pm.post_id AND pm.meta_key IN(%s, %s)
|
60 |
LEFT JOIN {$wpdb->postmeta} created_by_migration ON p.ID = created_by_migration.post_id
|
61 |
AND created_by_migration.meta_key = %s
|
|
|
|
|
|
|
|
|
62 |
WHERE p.post_type = %s
|
63 |
AND pm.meta_value IS NULL
|
64 |
AND p.post_status != 'auto-draft'
|
65 |
AND p.post_parent = 0
|
66 |
-
|
|
|
|
|
67 |
LIMIT %d";
|
68 |
$lock_query = $wpdb->prepare( $lock_query,
|
69 |
Event_Report::META_KEY_MIGRATION_LOCK_HASH,
|
@@ -262,10 +268,17 @@ class Events {
|
|
262 |
"SELECT COUNT(ID) FROM {$wpdb->posts} p
|
263 |
LEFT JOIN {$wpdb->postmeta} created_by_migration ON p.ID = created_by_migration.post_id
|
264 |
AND created_by_migration.meta_key = %s
|
|
|
|
|
|
|
|
|
265 |
WHERE p.post_type = %s
|
266 |
AND post_parent = 0
|
267 |
AND p.post_status != 'auto-draft'
|
268 |
-
AND created_by_migration.meta_value IS NULL
|
|
|
|
|
|
|
269 |
Process::EVENT_CREATED_BY_MIGRATION_META_KEY,
|
270 |
TEC::POSTTYPE
|
271 |
)
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Provides methods to query the Events posts and postmeta tables in the context of the migration process.
|
4 |
*
|
5 |
* @since 6.0.0
|
6 |
* @package TEC\Events\Custom_Tables\V1\Migration;
|
56 |
$lock_query = "INSERT INTO {$wpdb->postmeta} (post_id, meta_key, meta_value)
|
57 |
SELECT p.ID, %s,%s
|
58 |
FROM {$wpdb->posts} p
|
59 |
+
LEFT JOIN {$wpdb->postmeta} pm ON p.ID = pm.post_id AND pm.meta_key IN (%s, %s)
|
60 |
LEFT JOIN {$wpdb->postmeta} created_by_migration ON p.ID = created_by_migration.post_id
|
61 |
AND created_by_migration.meta_key = %s
|
62 |
+
LEFT JOIN {$wpdb->postmeta} pm1 ON p.ID = pm1.post_id AND pm1.meta_key = '_EventStartDate'
|
63 |
+
LEFT JOIN {$wpdb->postmeta} pm2 ON p.ID = pm2.post_id AND pm2.meta_key = '_EventStartDateUTC'
|
64 |
+
LEFT JOIN {$wpdb->postmeta} pm3 ON p.ID = pm3.post_id AND pm3.meta_key = '_EventEndDate'
|
65 |
+
LEFT JOIN {$wpdb->postmeta} pm4 ON p.ID = pm4.post_id AND pm4.meta_key = '_EventEndDateUTC'
|
66 |
WHERE p.post_type = %s
|
67 |
AND pm.meta_value IS NULL
|
68 |
AND p.post_status != 'auto-draft'
|
69 |
AND p.post_parent = 0
|
70 |
+
AND created_by_migration.meta_value IS NULL
|
71 |
+
AND ((pm1.meta_value IS NOT NULL AND pm1.meta_value != '') OR (pm2.meta_value IS NOT NULL AND pm2.meta_value != ''))
|
72 |
+
AND ((pm3.meta_value IS NOT NULL AND pm3.meta_value != '') OR (pm4.meta_value IS NOT NULL AND pm4.meta_value != ''))
|
73 |
LIMIT %d";
|
74 |
$lock_query = $wpdb->prepare( $lock_query,
|
75 |
Event_Report::META_KEY_MIGRATION_LOCK_HASH,
|
268 |
"SELECT COUNT(ID) FROM {$wpdb->posts} p
|
269 |
LEFT JOIN {$wpdb->postmeta} created_by_migration ON p.ID = created_by_migration.post_id
|
270 |
AND created_by_migration.meta_key = %s
|
271 |
+
LEFT JOIN {$wpdb->postmeta} pm1 ON p.ID = pm1.post_id AND pm1.meta_key = '_EventStartDate'
|
272 |
+
LEFT JOIN {$wpdb->postmeta} pm2 ON p.ID = pm2.post_id AND pm2.meta_key = '_EventStartDateUTC'
|
273 |
+
LEFT JOIN {$wpdb->postmeta} pm3 ON p.ID = pm3.post_id AND pm3.meta_key = '_EventEndDate'
|
274 |
+
LEFT JOIN {$wpdb->postmeta} pm4 ON p.ID = pm4.post_id AND pm4.meta_key = '_EventEndDateUTC'
|
275 |
WHERE p.post_type = %s
|
276 |
AND post_parent = 0
|
277 |
AND p.post_status != 'auto-draft'
|
278 |
+
AND created_by_migration.meta_value IS NULL
|
279 |
+
AND ((pm1.meta_value IS NOT NULL AND pm1.meta_value != '') OR (pm2.meta_value IS NOT NULL AND pm2.meta_value != ''))
|
280 |
+
AND ((pm3.meta_value IS NOT NULL AND pm3.meta_value != '') OR (pm4.meta_value IS NOT NULL AND pm4.meta_value != ''))
|
281 |
+
",
|
282 |
Process::EVENT_CREATED_BY_MIGRATION_META_KEY,
|
283 |
TEC::POSTTYPE
|
284 |
)
|
src/Events/Custom_Tables/V1/Migration/Process.php
CHANGED
@@ -85,11 +85,7 @@ class Process {
|
|
85 |
ActionScheduler::store()->init();
|
86 |
|
87 |
$action_ids = [];
|
88 |
-
|
89 |
-
// Remove what migration phase flags might have been set by previous previews or migrations.
|
90 |
-
delete_metadata( 'post', 0, Event_Report::META_KEY_MIGRATION_PHASE, '', true );
|
91 |
-
delete_metadata( 'post', 0, Event_Report::META_KEY_REPORT_DATA, '', true );
|
92 |
-
delete_metadata( 'post', 0, Event_Report::META_KEY_MIGRATION_LOCK_HASH, '', true );
|
93 |
|
94 |
// Flag our new phase.
|
95 |
$this->state->set( 'phase', $dry_run ? State::PHASE_PREVIEW_IN_PROGRESS : State::PHASE_MIGRATION_IN_PROGRESS );
|
@@ -245,4 +241,18 @@ class Process {
|
|
245 |
$this->cancel_async_action( $action_id );
|
246 |
}
|
247 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
248 |
}
|
85 |
ActionScheduler::store()->init();
|
86 |
|
87 |
$action_ids = [];
|
88 |
+
$this->remove_migration_report_meta();
|
|
|
|
|
|
|
|
|
89 |
|
90 |
// Flag our new phase.
|
91 |
$this->state->set( 'phase', $dry_run ? State::PHASE_PREVIEW_IN_PROGRESS : State::PHASE_MIGRATION_IN_PROGRESS );
|
241 |
$this->cancel_async_action( $action_id );
|
242 |
}
|
243 |
}
|
244 |
+
|
245 |
+
/**
|
246 |
+
* Remove the migration report meta from all events.
|
247 |
+
*
|
248 |
+
* @since 6.0.0
|
249 |
+
*
|
250 |
+
* @return void
|
251 |
+
*/
|
252 |
+
public function remove_migration_report_meta(): void {
|
253 |
+
// Remove what migration phase flags might have been set by previous previews or migrations.
|
254 |
+
delete_metadata( 'post', 0, Event_Report::META_KEY_MIGRATION_PHASE, '', true );
|
255 |
+
delete_metadata( 'post', 0, Event_Report::META_KEY_REPORT_DATA, '', true );
|
256 |
+
delete_metadata( 'post', 0, Event_Report::META_KEY_MIGRATION_LOCK_HASH, '', true );
|
257 |
+
}
|
258 |
}
|
src/Events/Custom_Tables/V1/Migration/Process_Worker.php
CHANGED
@@ -10,13 +10,14 @@ namespace TEC\Events\Custom_Tables\V1\Migration;
|
|
10 |
|
11 |
use TEC\Events\Custom_Tables\V1\Migration\Reports\Event_Report;
|
12 |
use TEC\Events\Custom_Tables\V1\Migration\Strategies\Single_Event_Migration_Strategy;
|
13 |
-
use TEC\Events\Custom_Tables\V1\Migration\Expected_Migration_Exception;
|
14 |
use TEC\Events\Custom_Tables\V1\Migration\Strategies\Strategy_Interface;
|
15 |
use TEC\Events\Custom_Tables\V1\Models\Builder;
|
16 |
use TEC\Events\Custom_Tables\V1\Schema_Builder\Schema_Builder;
|
17 |
use TEC\Events\Custom_Tables\V1\Traits\With_Database_Transactions;
|
18 |
use TEC\Events\Custom_Tables\V1\Traits\With_String_Dictionary;
|
19 |
use Tribe__Admin__Notices;
|
|
|
|
|
20 |
|
21 |
/**
|
22 |
* Class Process_Worker. Handles the migration and undo operations.
|
@@ -215,7 +216,7 @@ class Process_Worker {
|
|
215 |
* @return Event_Report A reference to the migration report object produced by the
|
216 |
* migration.
|
217 |
*/
|
218 |
-
public function migrate_event( $post_id, $dry_run = false ) {
|
219 |
global $wpdb;
|
220 |
|
221 |
// Log our worker starting
|
@@ -225,6 +226,8 @@ class Process_Worker {
|
|
225 |
'dry_run' => $dry_run
|
226 |
] );
|
227 |
|
|
|
|
|
228 |
/*
|
229 |
* Get our Event_Report ready for the strategy.
|
230 |
* This is also used in our error catching, so needs to be defined outside that block.
|
@@ -236,8 +239,6 @@ class Process_Worker {
|
|
236 |
return $this->event_report;
|
237 |
}
|
238 |
|
239 |
-
$this->dry_run = $dry_run;
|
240 |
-
|
241 |
// Set our dead-man switch.
|
242 |
$this->migration_completed = false;
|
243 |
|
@@ -307,6 +308,8 @@ class Process_Worker {
|
|
307 |
$this->before_dry_run( $post_id );
|
308 |
}
|
309 |
|
|
|
|
|
310 |
/**
|
311 |
* Action to be fired immediately prior to applying migration strategy. Some migrations may still fail after this phase,
|
312 |
* as there are various factors internal to the strategy that could cancel this migration.
|
@@ -380,10 +383,26 @@ class Process_Worker {
|
|
380 |
|
381 |
$this->unbind_shutdown_handlers();
|
382 |
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
387 |
|
388 |
if ( $continue_queue ) {
|
389 |
// Get next event to process.
|
@@ -587,10 +606,13 @@ class Process_Worker {
|
|
587 |
*/
|
588 |
public function error_handler( int $errno, string $errstr, string $errfile ): bool {
|
589 |
if ( $errno === E_WARNING ) {
|
590 |
-
$
|
591 |
-
$ecp = basename( EVENTS_CALENDAR_PRO_FILE );
|
592 |
|
593 |
-
if (
|
|
|
|
|
|
|
|
|
594 |
// Do not handle Warnings when coming from outside TEC or ECP codebase (e.g. caching plugins).
|
595 |
return false;
|
596 |
}
|
@@ -797,4 +819,78 @@ class Process_Worker {
|
|
797 |
Builder::class_enable_query_execution( true );
|
798 |
}
|
799 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
800 |
}
|
10 |
|
11 |
use TEC\Events\Custom_Tables\V1\Migration\Reports\Event_Report;
|
12 |
use TEC\Events\Custom_Tables\V1\Migration\Strategies\Single_Event_Migration_Strategy;
|
|
|
13 |
use TEC\Events\Custom_Tables\V1\Migration\Strategies\Strategy_Interface;
|
14 |
use TEC\Events\Custom_Tables\V1\Models\Builder;
|
15 |
use TEC\Events\Custom_Tables\V1\Schema_Builder\Schema_Builder;
|
16 |
use TEC\Events\Custom_Tables\V1\Traits\With_Database_Transactions;
|
17 |
use TEC\Events\Custom_Tables\V1\Traits\With_String_Dictionary;
|
18 |
use Tribe__Admin__Notices;
|
19 |
+
use Tribe__Date_Utils as Dates;
|
20 |
+
use Tribe__Timezones as Timezones;
|
21 |
|
22 |
/**
|
23 |
* Class Process_Worker. Handles the migration and undo operations.
|
216 |
* @return Event_Report A reference to the migration report object produced by the
|
217 |
* migration.
|
218 |
*/
|
219 |
+
public function migrate_event( int $post_id, bool $dry_run = false ): ?Event_Report {
|
220 |
global $wpdb;
|
221 |
|
222 |
// Log our worker starting
|
226 |
'dry_run' => $dry_run
|
227 |
] );
|
228 |
|
229 |
+
$this->dry_run = $dry_run;
|
230 |
+
|
231 |
/*
|
232 |
* Get our Event_Report ready for the strategy.
|
233 |
* This is also used in our error catching, so needs to be defined outside that block.
|
239 |
return $this->event_report;
|
240 |
}
|
241 |
|
|
|
|
|
242 |
// Set our dead-man switch.
|
243 |
$this->migration_completed = false;
|
244 |
|
308 |
$this->before_dry_run( $post_id );
|
309 |
}
|
310 |
|
311 |
+
$this->fix_event_meta( $post_id );
|
312 |
+
|
313 |
/**
|
314 |
* Action to be fired immediately prior to applying migration strategy. Some migrations may still fail after this phase,
|
315 |
* as there are various factors internal to the strategy that could cancel this migration.
|
383 |
|
384 |
$this->unbind_shutdown_handlers();
|
385 |
|
386 |
+
// Flag to fail on first error.
|
387 |
+
$fail_on_first_error = (
|
388 |
+
defined( 'TEC_EVENTS_CUSTOM_TABLES_V1_MIGRATION_STOP_ON_FAILURE' )
|
389 |
+
&& TEC_EVENTS_CUSTOM_TABLES_V1_MIGRATION_STOP_ON_FAILURE
|
390 |
+
)
|
391 |
+
|| ! $dry_run;
|
392 |
+
/**
|
393 |
+
* Filter to determine whether we should stop on first failure or not. Useful for troubleshooting in preview mode.
|
394 |
+
* @since 6.0.1
|
395 |
+
*
|
396 |
+
* @param bool $fail_on_first_error
|
397 |
+
*
|
398 |
+
* @returns bool Whether we should stop on first failure or not.
|
399 |
+
*/
|
400 |
+
$fail_on_first_error = apply_filters( 'tec_events_custom_tables_v1_migration_should_stop_on_failure', $fail_on_first_error );
|
401 |
+
|
402 |
+
// If error in the migration phase or fail on first error flag, then we need to stop the queue.
|
403 |
+
$did_migration_error = ( $fail_on_first_error && $this->event_report->error );
|
404 |
+
$continue_queue = $did_migration_error ? false : true;
|
405 |
+
$next_post_id = null;
|
406 |
|
407 |
if ( $continue_queue ) {
|
408 |
// Get next event to process.
|
606 |
*/
|
607 |
public function error_handler( int $errno, string $errstr, string $errfile ): bool {
|
608 |
if ( $errno === E_WARNING ) {
|
609 |
+
$check_plugins = [ basename( TRIBE_EVENTS_FILE ) ];
|
|
|
610 |
|
611 |
+
if ( defined( 'EVENTS_CALENDAR_PRO_FILE' ) ) {
|
612 |
+
$check_plugins[] = basename( EVENTS_CALENDAR_PRO_FILE );
|
613 |
+
}
|
614 |
+
|
615 |
+
if ( ! tec_is_file_from_plugins( $errfile, ...$check_plugins ) ) {
|
616 |
// Do not handle Warnings when coming from outside TEC or ECP codebase (e.g. caching plugins).
|
617 |
return false;
|
618 |
}
|
819 |
Builder::class_enable_query_execution( true );
|
820 |
}
|
821 |
}
|
822 |
+
|
823 |
+
/**
|
824 |
+
* Updates the Event date and duration meta to make sure it's consistent.
|
825 |
+
*
|
826 |
+
* @since 6.0.1
|
827 |
+
*
|
828 |
+
* @param int $post_id The ID of the Event to update.
|
829 |
+
*
|
830 |
+
* @return void Updates the Event date and duration meta to make sure it's consistent.
|
831 |
+
*
|
832 |
+
* @throws Migration_Exception If the Event date and duration meta could not be updated.
|
833 |
+
*/
|
834 |
+
private function fix_event_meta( int $post_id ): void {
|
835 |
+
/**
|
836 |
+
* Filters whether an Event date related meta should be fixed before migration or not.
|
837 |
+
*
|
838 |
+
* @since 6.0.0
|
839 |
+
*
|
840 |
+
* @param bool $fix_event_duration Whether the Event date related meta should be fixed before migration or not.
|
841 |
+
* @param int $post_id The ID of the post being migrated.
|
842 |
+
*/
|
843 |
+
$should_fix_meta = apply_filters( 'tec_events_custom_tables_v1_migration_fix_event_date_meta', true, $post_id );
|
844 |
+
|
845 |
+
if ( ! $should_fix_meta ) {
|
846 |
+
return;
|
847 |
+
}
|
848 |
+
|
849 |
+
// At this stage, we can be sure the meta will be there.
|
850 |
+
$start_date = get_post_meta( $post_id, '_EventStartDate', true );
|
851 |
+
$end_date = get_post_meta( $post_id, '_EventEndDate', true );
|
852 |
+
$start_date_utc = get_post_meta( $post_id, '_EventStartDateUTC', true );
|
853 |
+
$end_date_utc = get_post_meta( $post_id, '_EventEndDateUTC', true );
|
854 |
+
|
855 |
+
$has_start = ! empty( $start_date ) || ! empty( $start_date_utc );
|
856 |
+
$has_end = ! empty( $end_date ) || ! empty( $end_date_utc );
|
857 |
+
|
858 |
+
if ( ! ( $has_start && $has_end ) ) {
|
859 |
+
throw new Migration_Exception(
|
860 |
+
'Required Event date data is missing: check the event for missing or invalid data in the start and end date fields.'
|
861 |
+
);
|
862 |
+
}
|
863 |
+
|
864 |
+
$timezone_string = get_post_meta( $post_id, '_EventTimezone', true );
|
865 |
+
|
866 |
+
if ( ! Timezones::is_valid_timezone( $timezone_string ) ) {
|
867 |
+
// Use the site one, if not set.
|
868 |
+
$timezone_string = Timezones::build_timezone_object()->getName();
|
869 |
+
update_post_meta( $post_id, '_EventTimezone', $timezone_string );
|
870 |
+
update_post_meta( $post_id, '_EventTimezoneAbbr', Timezones::abbr( $start_date, $timezone_string ) );
|
871 |
+
}
|
872 |
+
|
873 |
+
$timezone = Timezones::build_timezone_object( $timezone_string );
|
874 |
+
$utc = new \DateTimeZone( 'UTC' );
|
875 |
+
|
876 |
+
$dtstart = $start_date ?
|
877 |
+
Dates::immutable( $start_date, $timezone )
|
878 |
+
: Dates::immutable( $start_date_utc, $utc )->setTimezone( $timezone );
|
879 |
+
|
880 |
+
$dtend = $end_date ?
|
881 |
+
Dates::immutable( $end_date, $timezone )
|
882 |
+
: Dates::immutable( $end_date_utc, $utc )->setTimezone( $timezone );
|
883 |
+
|
884 |
+
$updated_duration = $dtend->getTimestamp() - $dtstart->getTimestamp();
|
885 |
+
$event_start_date = $dtstart->format( Dates::DBDATETIMEFORMAT );
|
886 |
+
$event_end_date = $dtend->format( Dates::DBDATETIMEFORMAT );
|
887 |
+
$event_start_date_utc = $dtstart->setTimezone( $utc )->format( Dates::DBDATETIMEFORMAT );
|
888 |
+
$event_end_date_utc = $dtend->setTimezone( $utc )->format( Dates::DBDATETIMEFORMAT );
|
889 |
+
|
890 |
+
update_post_meta( $post_id, '_EventDuration', $updated_duration );
|
891 |
+
update_post_meta( $post_id, '_EventStartDate', $event_start_date );
|
892 |
+
update_post_meta( $post_id, '_EventEndDate', $event_end_date );
|
893 |
+
update_post_meta( $post_id, '_EventStartDateUTC', $event_start_date_utc );
|
894 |
+
update_post_meta( $post_id, '_EventEndDateUTC', $event_end_date_utc );
|
895 |
+
}
|
896 |
}
|
src/Events/Custom_Tables/V1/Migration/Reports/Site_Report.php
CHANGED
@@ -11,8 +11,6 @@ namespace TEC\Events\Custom_Tables\V1\Migration\Reports;
|
|
11 |
use JsonSerializable;
|
12 |
use TEC\Events\Custom_Tables\V1\Migration\Events;
|
13 |
use TEC\Events\Custom_Tables\V1\Migration\State;
|
14 |
-
use TEC\Events_Pro\Custom_Tables\V1\EventRecurrence_Factory;
|
15 |
-
use Tribe__Events__Main as TEC;
|
16 |
|
17 |
/**
|
18 |
* Class Site_Report.
|
@@ -52,6 +50,7 @@ class Site_Report implements JsonSerializable {
|
|
52 |
'total_events' => null,
|
53 |
'total_events_migrated' => null,
|
54 |
'total_events_in_progress' => null,
|
|
|
55 |
'has_changes' => false,
|
56 |
'migration_phase' => null,
|
57 |
'is_completed' => false,
|
@@ -69,21 +68,21 @@ class Site_Report implements JsonSerializable {
|
|
69 |
* @param array <string,mixed> $data The report data in array format.
|
70 |
*/
|
71 |
public function __construct( array $data ) {
|
72 |
-
$this->data['estimated_time_in_seconds'] = $data['estimated_time_in_seconds'];
|
73 |
-
$this->data['estimated_time_in_minutes'] = $data['estimated_time_in_minutes'];
|
74 |
-
$this->data['total_events'] = (int) $data['total_events'];
|
75 |
$this->data['total_events_remaining'] = (int) $data['total_events_remaining'];
|
76 |
$this->data['total_events_in_progress'] = (int) $data['total_events_in_progress'];
|
77 |
$this->data['total_events_migrated'] = (int) $data['total_events_migrated'];
|
78 |
$this->data['has_changes'] = (boolean) $data['has_changes'];
|
79 |
$this->data['has_errors'] = (boolean) $data['has_errors'];
|
80 |
-
$this->data['migration_phase'] = $data['migration_phase'];
|
81 |
-
$this->data['is_completed'] = $data['is_completed'];
|
82 |
-
$this->data['is_running'] = $data['is_running'];
|
83 |
-
$this->data['progress_percent'] = $data['progress_percent'];
|
84 |
-
$this->data['date_completed'] = $data['date_completed'];
|
85 |
-
$this->data['total_events_failed'] = $data['total_events_failed'];
|
86 |
-
$this->data['completed_timestamp'] = $data['completed_timestamp'];
|
87 |
}
|
88 |
|
89 |
/**
|
11 |
use JsonSerializable;
|
12 |
use TEC\Events\Custom_Tables\V1\Migration\Events;
|
13 |
use TEC\Events\Custom_Tables\V1\Migration\State;
|
|
|
|
|
14 |
|
15 |
/**
|
16 |
* Class Site_Report.
|
50 |
'total_events' => null,
|
51 |
'total_events_migrated' => null,
|
52 |
'total_events_in_progress' => null,
|
53 |
+
'total_events_remaining' => null,
|
54 |
'has_changes' => false,
|
55 |
'migration_phase' => null,
|
56 |
'is_completed' => false,
|
68 |
* @param array <string,mixed> $data The report data in array format.
|
69 |
*/
|
70 |
public function __construct( array $data ) {
|
71 |
+
$this->data['estimated_time_in_seconds'] = $data['estimated_time_in_seconds'] ?? 0;
|
72 |
+
$this->data['estimated_time_in_minutes'] = $data['estimated_time_in_minutes'] ?? 0;
|
73 |
+
$this->data['total_events'] = (int) $data['total_events'] ;
|
74 |
$this->data['total_events_remaining'] = (int) $data['total_events_remaining'];
|
75 |
$this->data['total_events_in_progress'] = (int) $data['total_events_in_progress'];
|
76 |
$this->data['total_events_migrated'] = (int) $data['total_events_migrated'];
|
77 |
$this->data['has_changes'] = (boolean) $data['has_changes'];
|
78 |
$this->data['has_errors'] = (boolean) $data['has_errors'];
|
79 |
+
$this->data['migration_phase'] = $data['migration_phase'] ?? null;
|
80 |
+
$this->data['is_completed'] = $data['is_completed'] ?? false;
|
81 |
+
$this->data['is_running'] = $data['is_running'] ?? false;
|
82 |
+
$this->data['progress_percent'] = $data['progress_percent'] ?? 0;
|
83 |
+
$this->data['date_completed'] = $data['date_completed'] ?? null;
|
84 |
+
$this->data['total_events_failed'] = $data['total_events_failed'] ?? null;
|
85 |
+
$this->data['completed_timestamp'] = $data['completed_timestamp'] ?? null;
|
86 |
}
|
87 |
|
88 |
/**
|
src/Events/Custom_Tables/V1/Migration/Strategies/Single_Event_Migration_Strategy.php
CHANGED
@@ -57,7 +57,7 @@ class Single_Event_Migration_Strategy implements Strategy_Interface {
|
|
57 |
$recurrence_meta = get_post_meta( $post_id, '_EventRecurrence', true );
|
58 |
|
59 |
if ( ! empty( $recurrence_meta ) && ! empty( $recurrence_meta['rules'] ) ) {
|
60 |
-
throw new Migration_Exception( 'Attempting to run Single Event strategy for recurring event.
|
61 |
}
|
62 |
|
63 |
$this->dry_run = $dry_run;
|
@@ -99,7 +99,7 @@ class Single_Event_Migration_Strategy implements Strategy_Interface {
|
|
99 |
|
100 |
$event_model->occurrences()->save_occurrences();
|
101 |
|
102 |
-
$occurrences = Occurrence::where('post_id','='
|
103 |
->count();
|
104 |
|
105 |
if ( $occurrences !== 1 ) {
|
57 |
$recurrence_meta = get_post_meta( $post_id, '_EventRecurrence', true );
|
58 |
|
59 |
if ( ! empty( $recurrence_meta ) && ! empty( $recurrence_meta['rules'] ) ) {
|
60 |
+
throw new Migration_Exception( 'Attempting to run Single Event strategy for recurring event. Install and activate the latest version of Events Calendar PRO.' );
|
61 |
}
|
62 |
|
63 |
$this->dry_run = $dry_run;
|
99 |
|
100 |
$event_model->occurrences()->save_occurrences();
|
101 |
|
102 |
+
$occurrences = Occurrence::where( 'post_id', '=', $this->post_id )
|
103 |
->count();
|
104 |
|
105 |
if ( $occurrences !== 1 ) {
|
src/Events/Custom_Tables/V1/Models/Builder.php
CHANGED
@@ -1440,4 +1440,30 @@ class Builder {
|
|
1440 |
|
1441 |
return $inserted;
|
1442 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1443 |
}
|
1440 |
|
1441 |
return $inserted;
|
1442 |
}
|
1443 |
+
|
1444 |
+
/**
|
1445 |
+
* Gets the results and plucks a field from each.
|
1446 |
+
*
|
1447 |
+
* @since 6.0.1
|
1448 |
+
*
|
1449 |
+
* @param string $field The field to pluck.
|
1450 |
+
*
|
1451 |
+
* @return array The plucked values.
|
1452 |
+
*/
|
1453 |
+
public function pluck( string $field ): array {
|
1454 |
+
return wp_list_pluck( $this->get(), $field );
|
1455 |
+
}
|
1456 |
+
|
1457 |
+
/**
|
1458 |
+
* Maps from the results of the query to a new array using the callback.
|
1459 |
+
*
|
1460 |
+
* @since 6.0.1
|
1461 |
+
*
|
1462 |
+
* @param callable $callback The callback to use to map the results.
|
1463 |
+
*
|
1464 |
+
* @return array The mapped results.
|
1465 |
+
*/
|
1466 |
+
public function map( callable $callback ): array {
|
1467 |
+
return array_map( $callback, $this->get() );
|
1468 |
+
}
|
1469 |
}
|
src/Events/Custom_Tables/V1/Models/Model.php
CHANGED
@@ -44,6 +44,8 @@ use TEC\Events\Custom_Tables\V1\Models\Validators\ValidatorInterface;
|
|
44 |
* @method static Builder output( string $output ) Sets the format that should be used to format results in SELECT queries.
|
45 |
* @method static Builder all( ) Find all the records based on the built query.
|
46 |
* @method static int upsert_set( array $data ) Update or Insert a multiple records into the table.
|
|
|
|
|
47 |
*/
|
48 |
abstract class Model implements Serializable {
|
49 |
/**
|
44 |
* @method static Builder output( string $output ) Sets the format that should be used to format results in SELECT queries.
|
45 |
* @method static Builder all( ) Find all the records based on the built query.
|
46 |
* @method static int upsert_set( array $data ) Update or Insert a multiple records into the table.
|
47 |
+
* @method static array pluck( string $field ) Pluck a single field from the results.
|
48 |
+
* @method static array map (callable $callback ) Maps from the results of the query to a new array using the callback.
|
49 |
*/
|
50 |
abstract class Model implements Serializable {
|
51 |
/**
|
src/Events/Custom_Tables/V1/Models/Occurrence.php
CHANGED
@@ -19,7 +19,7 @@ use TEC\Events\Custom_Tables\V1\Models\Formatters\Date_Formatter;
|
|
19 |
use TEC\Events\Custom_Tables\V1\Models\Formatters\Integer_Key_Formatter;
|
20 |
use TEC\Events\Custom_Tables\V1\Models\Formatters\Numeric_Formatter;
|
21 |
use TEC\Events\Custom_Tables\V1\Models\Formatters\Text_Formatter;
|
22 |
-
use TEC\Events\Custom_Tables\V1\Models\Validators\
|
23 |
use TEC\Events\Custom_Tables\V1\Models\Validators\End_Date;
|
24 |
use TEC\Events\Custom_Tables\V1\Models\Validators\End_Date_UTC;
|
25 |
use TEC\Events\Custom_Tables\V1\Models\Validators\Integer_Key;
|
@@ -70,7 +70,7 @@ class Occurrence extends Model {
|
|
70 |
'end_date' => End_Date::class,
|
71 |
'start_date_utc' => Start_Date_UTC::class,
|
72 |
'end_date_utc' => End_Date_UTC::class,
|
73 |
-
'duration' =>
|
74 |
'hash' => String_Validator::class,
|
75 |
'updated_at' => Valid_Date::class,
|
76 |
];
|
19 |
use TEC\Events\Custom_Tables\V1\Models\Formatters\Integer_Key_Formatter;
|
20 |
use TEC\Events\Custom_Tables\V1\Models\Formatters\Numeric_Formatter;
|
21 |
use TEC\Events\Custom_Tables\V1\Models\Formatters\Text_Formatter;
|
22 |
+
use TEC\Events\Custom_Tables\V1\Models\Validators\Occurrence_Duration;
|
23 |
use TEC\Events\Custom_Tables\V1\Models\Validators\End_Date;
|
24 |
use TEC\Events\Custom_Tables\V1\Models\Validators\End_Date_UTC;
|
25 |
use TEC\Events\Custom_Tables\V1\Models\Validators\Integer_Key;
|
70 |
'end_date' => End_Date::class,
|
71 |
'start_date_utc' => Start_Date_UTC::class,
|
72 |
'end_date_utc' => End_Date_UTC::class,
|
73 |
+
'duration' => Occurrence_Duration::class,
|
74 |
'hash' => String_Validator::class,
|
75 |
'updated_at' => Valid_Date::class,
|
76 |
];
|
src/Events/Custom_Tables/V1/Models/Validators/Duration.php
CHANGED
@@ -24,14 +24,12 @@ class Duration extends Validator {
|
|
24 |
/**
|
25 |
* @var Whole_Number
|
26 |
*/
|
27 |
-
|
28 |
|
29 |
/**
|
30 |
* Duration constructor.
|
31 |
*
|
32 |
-
* @param
|
33 |
-
* @param Range_Dates $range_dates_validator A reference to the Dates Range validator.
|
34 |
-
* @param Positive_Integer $whole_number_validator A reference to the Positive Integer validator.
|
35 |
*/
|
36 |
public function __construct( Whole_Number $whole_number_validator) {
|
37 |
$this->whole_number_validator = $whole_number_validator;
|
@@ -52,8 +50,8 @@ class Duration extends Validator {
|
|
52 |
|
53 |
if ( $model->start_date && $model->end_date ) {
|
54 |
// If possible, validate against the entry Start and End Dates.
|
55 |
-
if ( ! $this->check_against_dates( $model->start_date, $model->end_date, $duration ) ) {
|
56 |
-
$this->add_error_message( "The {$duration} is greater than the
|
57 |
|
58 |
return false;
|
59 |
}
|
@@ -61,8 +59,8 @@ class Duration extends Validator {
|
|
61 |
|
62 |
if ( $model->start_date_utc && $model->end_date_utc ) {
|
63 |
// If possible, validate against the entry Start and End Dates.
|
64 |
-
if ( ! $this->check_against_dates( $model->start_date_utc, $model->end_date_utc, $duration ) ) {
|
65 |
-
$this->add_error_message( "The {$duration} is greater than the
|
66 |
|
67 |
return false;
|
68 |
}
|
@@ -79,15 +77,16 @@ class Duration extends Validator {
|
|
79 |
*
|
80 |
* @since 6.0.0
|
81 |
*
|
82 |
-
* @param
|
83 |
-
* @param
|
84 |
-
* @param
|
|
|
85 |
*
|
86 |
* @return bool Whether the Duration value is valid when validated in the context of the Dates or not.
|
87 |
*/
|
88 |
-
|
89 |
-
$start_date_object = Dates::build_date_object( $start_date );
|
90 |
-
$end_date_object
|
91 |
$date_duration = $end_date_object->getTimestamp() - $start_date_object->getTimestamp();
|
92 |
|
93 |
return $date_duration >= $duration;
|
24 |
/**
|
25 |
* @var Whole_Number
|
26 |
*/
|
27 |
+
protected $whole_number_validator;
|
28 |
|
29 |
/**
|
30 |
* Duration constructor.
|
31 |
*
|
32 |
+
* @param Whole_Number $whole_number_validator A reference to the Positive Integer validator.
|
|
|
|
|
33 |
*/
|
34 |
public function __construct( Whole_Number $whole_number_validator) {
|
35 |
$this->whole_number_validator = $whole_number_validator;
|
50 |
|
51 |
if ( $model->start_date && $model->end_date ) {
|
52 |
// If possible, validate against the entry Start and End Dates.
|
53 |
+
if ( ! $this->check_against_dates( $model->start_date, $model->end_date, $duration, $model->timezone ) ) {
|
54 |
+
$this->add_error_message( "The Event duration ({$duration}) is greater than the one calculated using dates." );
|
55 |
|
56 |
return false;
|
57 |
}
|
59 |
|
60 |
if ( $model->start_date_utc && $model->end_date_utc ) {
|
61 |
// If possible, validate against the entry Start and End Dates.
|
62 |
+
if ( ! $this->check_against_dates( $model->start_date_utc, $model->end_date_utc, $duration, 'UTC' ) ) {
|
63 |
+
$this->add_error_message( "The Event duration ({$duration}) is greater than the one calculated using UTC dates." );
|
64 |
|
65 |
return false;
|
66 |
}
|
77 |
*
|
78 |
* @since 6.0.0
|
79 |
*
|
80 |
+
* @param string|int|\DateTimeInterface $start_date The Start Date.
|
81 |
+
* @param string|int|\DateTimeInterface $end_date The End Date.
|
82 |
+
* @param int $duration The Duration value.
|
83 |
+
* @param string|null $timezone The timezone to use for the calculation.
|
84 |
*
|
85 |
* @return bool Whether the Duration value is valid when validated in the context of the Dates or not.
|
86 |
*/
|
87 |
+
protected function check_against_dates( $start_date, $end_date, int $duration, ?string $timezone = null ) {
|
88 |
+
$start_date_object = Dates::build_date_object( $start_date, $timezone );
|
89 |
+
$end_date_object = Dates::build_date_object( $end_date, $timezone );
|
90 |
$date_duration = $end_date_object->getTimestamp() - $start_date_object->getTimestamp();
|
91 |
|
92 |
return $date_duration >= $duration;
|
src/Events/Custom_Tables/V1/Models/Validators/Occurrence_Duration.php
ADDED
@@ -0,0 +1,77 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Validates Occurrence Duration input.
|
4 |
+
*
|
5 |
+
* @since 6.0.1
|
6 |
+
*
|
7 |
+
* @package TEC\Events\Custom_Tables\V1\Models\Validators
|
8 |
+
*/
|
9 |
+
|
10 |
+
namespace TEC\Events\Custom_Tables\V1\Models\Validators;
|
11 |
+
|
12 |
+
use TEC\Events\Custom_Tables\V1\Models\Event;
|
13 |
+
use TEC\Events\Custom_Tables\V1\Models\Occurrence;
|
14 |
+
use TEC\Events\Custom_Tables\V1\Models\Model;
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Class Occurrence_Duration
|
18 |
+
*
|
19 |
+
* @since 6.0.1
|
20 |
+
*
|
21 |
+
* @package TEC\Events\Custom_Tables\V1\Models\Validators
|
22 |
+
*/
|
23 |
+
class Occurrence_Duration extends Duration {
|
24 |
+
|
25 |
+
/**
|
26 |
+
* {@inheritDoc}
|
27 |
+
*/
|
28 |
+
public function validate( Model $model, $name, $value ) {
|
29 |
+
// Duration cannot be negative
|
30 |
+
if ( ! $this->whole_number_validator->validate( $model, 'duration', $value ) ) {
|
31 |
+
$this->add_error_message( 'Duration must be a positive integer' );
|
32 |
+
|
33 |
+
return false;
|
34 |
+
}
|
35 |
+
|
36 |
+
$duration = (int) $value;
|
37 |
+
|
38 |
+
if ( $model->start_date && $model->end_date ) {
|
39 |
+
// If possible, validate against the entry Start and End Dates.
|
40 |
+
if ( ! $this->check_against_dates( $model->start_date, $model->end_date, $duration, $this->get_occurrence_timezone( $model ) ) ) {
|
41 |
+
$this->add_error_message( "The Occurrence duration ({$duration}) is greater than the one calculated using dates." );
|
42 |
+
|
43 |
+
return false;
|
44 |
+
}
|
45 |
+
}
|
46 |
+
|
47 |
+
if ( $model->start_date_utc && $model->end_date_utc ) {
|
48 |
+
// If possible, validate against the entry Start and End Dates.
|
49 |
+
if ( ! $this->check_against_dates( $model->start_date_utc, $model->end_date_utc, $duration, 'UTC' ) ) {
|
50 |
+
$this->add_error_message( "The Occurrence duration ({$duration}) is greater than the one calculated using UTC dates." );
|
51 |
+
|
52 |
+
return false;
|
53 |
+
}
|
54 |
+
}
|
55 |
+
|
56 |
+
return true;
|
57 |
+
}
|
58 |
+
|
59 |
+
/**
|
60 |
+
* Fetch the timezone that relates to this occurrence.
|
61 |
+
*
|
62 |
+
* @since 6.0.1
|
63 |
+
*
|
64 |
+
* @param Occurrence $model The occurrence to fetch it's timezone for.
|
65 |
+
*
|
66 |
+
* @return string|null
|
67 |
+
*/
|
68 |
+
protected function get_occurrence_timezone( Occurrence $model ): ?string {
|
69 |
+
$event = Event::find( $model->event_id );
|
70 |
+
if ( $event instanceof Event ) {
|
71 |
+
|
72 |
+
return $event->timezone;
|
73 |
+
}
|
74 |
+
|
75 |
+
return null;
|
76 |
+
}
|
77 |
+
}
|
src/Events/Custom_Tables/V1/Provider.php
CHANGED
@@ -194,6 +194,7 @@ class Provider extends Service_Provider {
|
|
194 |
|
195 |
// If the plugin has been silently activated, then init it now.
|
196 |
add_action( 'init', [ Activation::class, 'init' ] );
|
|
|
197 |
}
|
198 |
|
199 |
/**
|
194 |
|
195 |
// If the plugin has been silently activated, then init it now.
|
196 |
add_action( 'init', [ Activation::class, 'init' ] );
|
197 |
+
add_filter( 'tec_system_information', [ Activation::class, 'filter_include_migration_in_system_info' ] );
|
198 |
}
|
199 |
|
200 |
/**
|
src/Events/Custom_Tables/V1/Repository/Events.php
CHANGED
@@ -9,6 +9,7 @@
|
|
9 |
|
10 |
namespace TEC\Events\Custom_Tables\V1\Repository;
|
11 |
|
|
|
12 |
use TEC\Events\Custom_Tables\V1\Models\Event;
|
13 |
use WP_Post;
|
14 |
use Tribe__Events__Main as TEC;
|
@@ -22,17 +23,26 @@ use RuntimeException;
|
|
22 |
* @package tec\events\custom_tables\v1\repository
|
23 |
*/
|
24 |
class Events {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
/**
|
26 |
* Returns the callback that should be used to update Events in the context of
|
27 |
* the Repository.
|
28 |
*
|
29 |
* @since 6.0.0
|
30 |
*
|
31 |
-
* @return
|
32 |
*/
|
33 |
-
public function update_callback( $repository_callback, array $postarr = [] ) {
|
34 |
// Run the original callback, then ours.
|
35 |
-
|
36 |
$post_id = $repository_callback( ...$args );
|
37 |
|
38 |
if ( ! $post_id ) {
|
@@ -41,8 +51,6 @@ class Events {
|
|
41 |
|
42 |
return $this->update( $post_id, $postarr );
|
43 |
};
|
44 |
-
|
45 |
-
return $wrapping_callback;
|
46 |
}
|
47 |
|
48 |
/**
|
@@ -50,12 +58,12 @@ class Events {
|
|
50 |
*
|
51 |
* @since 6.0.0
|
52 |
*
|
53 |
-
* @param int
|
54 |
* @param array<string,mixed> $data The data, all of it, used to upsert the Event.
|
55 |
*
|
56 |
* @return int|null Either the updated Event post ID, or `null` if the Event could not be created.
|
57 |
*/
|
58 |
-
public function update( $event_id, $data ) {
|
59 |
$event_post = get_post( $event_id );
|
60 |
|
61 |
if ( ! ( $event_post instanceof WP_Post && TEC::POSTTYPE === $event_post->post_type ) ) {
|
@@ -64,6 +72,7 @@ class Events {
|
|
64 |
}
|
65 |
|
66 |
try {
|
|
|
67 |
$event = $this->upsert_event( $event_id );
|
68 |
$this->save_occurrences( $event );
|
69 |
} catch ( \Exception $e ) {
|
9 |
|
10 |
namespace TEC\Events\Custom_Tables\V1\Repository;
|
11 |
|
12 |
+
use Closure;
|
13 |
use TEC\Events\Custom_Tables\V1\Models\Event;
|
14 |
use WP_Post;
|
15 |
use Tribe__Events__Main as TEC;
|
23 |
* @package tec\events\custom_tables\v1\repository
|
24 |
*/
|
25 |
class Events {
|
26 |
+
/**
|
27 |
+
* A map of the update data per post ID.
|
28 |
+
*
|
29 |
+
* @since 6.0.0
|
30 |
+
*
|
31 |
+
* @var array<int,array<string,mixed>>
|
32 |
+
*/
|
33 |
+
private $update_data = [];
|
34 |
+
|
35 |
/**
|
36 |
* Returns the callback that should be used to update Events in the context of
|
37 |
* the Repository.
|
38 |
*
|
39 |
* @since 6.0.0
|
40 |
*
|
41 |
+
* @return Closure The callback that should be used to upsert the Event data in the custom tables.
|
42 |
*/
|
43 |
+
public function update_callback( callable $repository_callback, array $postarr = [] ): Closure {
|
44 |
// Run the original callback, then ours.
|
45 |
+
return function ( ...$args ) use ( $repository_callback, $postarr ) {
|
46 |
$post_id = $repository_callback( ...$args );
|
47 |
|
48 |
if ( ! $post_id ) {
|
51 |
|
52 |
return $this->update( $post_id, $postarr );
|
53 |
};
|
|
|
|
|
54 |
}
|
55 |
|
56 |
/**
|
58 |
*
|
59 |
* @since 6.0.0
|
60 |
*
|
61 |
+
* @param int|WP_Post $event_id The Event post ID, or a reference to the Event post object.
|
62 |
* @param array<string,mixed> $data The data, all of it, used to upsert the Event.
|
63 |
*
|
64 |
* @return int|null Either the updated Event post ID, or `null` if the Event could not be created.
|
65 |
*/
|
66 |
+
public function update( $event_id, array $data ): ?int {
|
67 |
$event_post = get_post( $event_id );
|
68 |
|
69 |
if ( ! ( $event_post instanceof WP_Post && TEC::POSTTYPE === $event_post->post_type ) ) {
|
72 |
}
|
73 |
|
74 |
try {
|
75 |
+
$this->update_data[ $event_id ] = $data;
|
76 |
$event = $this->upsert_event( $event_id );
|
77 |
$this->save_occurrences( $event );
|
78 |
} catch ( \Exception $e ) {
|
src/Events/Custom_Tables/V1/Repository/Provider.php
CHANGED
@@ -56,7 +56,7 @@ class Provider extends Service_Provider implements Provider_Contract {
|
|
56 |
* @return callable The callback that will handle upsertions of an Event custom tables data
|
57 |
* in the context of a repository call.
|
58 |
*/
|
59 |
-
public function update_callback( $repository_callback, array $postarr = [] ) {
|
60 |
return $this->container->make( Events::class )->update_callback( $repository_callback, $postarr );
|
61 |
}
|
62 |
}
|
56 |
* @return callable The callback that will handle upsertions of an Event custom tables data
|
57 |
* in the context of a repository call.
|
58 |
*/
|
59 |
+
public function update_callback( callable $repository_callback, array $postarr = [] ): callable {
|
60 |
return $this->container->make( Events::class )->update_callback( $repository_callback, $postarr );
|
61 |
}
|
62 |
}
|
src/Events/Custom_Tables/V1/Updates/Requests.php
CHANGED
@@ -79,6 +79,12 @@ class Requests {
|
|
79 |
|
80 |
$post_id = Arr::get_first_set( $request->get_params(), $post_id_locations, 0 );
|
81 |
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
// For consistency with the REST Request, set up the `id` parameter.
|
83 |
$request->set_param( 'id', (int) $post_id );
|
84 |
|
79 |
|
80 |
$post_id = Arr::get_first_set( $request->get_params(), $post_id_locations, 0 );
|
81 |
|
82 |
+
// If we're loading one of the front-end forms, `post_id` will be empty.
|
83 |
+
if ( empty( $post_id ) && tribe_is_frontend() ) {
|
84 |
+
global $post;
|
85 |
+
$post_id = $post->ID ?? $post_id;
|
86 |
+
}
|
87 |
+
|
88 |
// For consistency with the REST Request, set up the `id` parameter.
|
89 |
$request->set_param( 'id', (int) $post_id );
|
90 |
|
src/Events/Custom_Tables/V1/WP_Query/Custom_Tables_Query.php
CHANGED
@@ -176,6 +176,9 @@ class Custom_Tables_Query extends WP_Query {
|
|
176 |
$this->wp_query->found_posts = $this->found_posts;
|
177 |
}
|
178 |
|
|
|
|
|
|
|
179 |
return $results;
|
180 |
}
|
181 |
|
@@ -439,7 +442,7 @@ class Custom_Tables_Query extends WP_Query {
|
|
439 |
}
|
440 |
|
441 |
global $wpdb;
|
442 |
-
$join .= "
|
443 |
|
444 |
return $join;
|
445 |
}
|
176 |
$this->wp_query->found_posts = $this->found_posts;
|
177 |
}
|
178 |
|
179 |
+
// Set the request SQL that actually ran to allow easier debugging of the query.
|
180 |
+
$this->wp_query->request = $this->request;
|
181 |
+
|
182 |
return $results;
|
183 |
}
|
184 |
|
442 |
}
|
443 |
|
444 |
global $wpdb;
|
445 |
+
$join .= " JOIN {$occurrences} ON {$wpdb->posts}.ID = {$occurrences}.post_id";
|
446 |
|
447 |
return $join;
|
448 |
}
|
src/Events/Custom_Tables/V1/WP_Query/Modifiers/Events_Not_In_Series_Modifier.php
CHANGED
@@ -45,6 +45,11 @@ class Events_Not_In_Series_Modifier extends Base_Modifier {
|
|
45 |
* {@inheritdoc}
|
46 |
*/
|
47 |
public function applies_to( WP_Query $query = null ) {
|
|
|
|
|
|
|
|
|
|
|
48 |
if ( empty( $query->query_vars[ self::POST_NOT_IN_SERIES ] ) ) {
|
49 |
return false;
|
50 |
}
|
45 |
* {@inheritdoc}
|
46 |
*/
|
47 |
public function applies_to( WP_Query $query = null ) {
|
48 |
+
|
49 |
+
if ( ! class_exists( 'Tribe__Events__Pro__Main' ) ) {
|
50 |
+
return false;
|
51 |
+
}
|
52 |
+
|
53 |
if ( empty( $query->query_vars[ self::POST_NOT_IN_SERIES ] ) ) {
|
54 |
return false;
|
55 |
}
|
src/Events/Custom_Tables/V1/admin-views/migration/maintenance-mode/phase/migration-in-progress.php
CHANGED
@@ -39,7 +39,7 @@ use TEC\Events\Custom_Tables\V1\Migration\String_Dictionary;
|
|
39 |
</div>
|
40 |
<div>
|
41 |
<a href="#"
|
42 |
-
class="tec-ct1-
|
43 |
</div>
|
44 |
</div>
|
45 |
<div class="image-container">
|
39 |
</div>
|
40 |
<div>
|
41 |
<a href="#"
|
42 |
+
class="tec-ct1-upgrade-cancel-migration tec-ct1-upgrade__link-danger"><?php echo esc_html( $text->get( 'cancel-migration-button' ) ); ?></a>
|
43 |
</div>
|
44 |
</div>
|
45 |
<div class="image-container">
|
src/Events/Custom_Tables/V1/admin-views/migration/upgrade-box.php
CHANGED
@@ -12,7 +12,7 @@
|
|
12 |
use TEC\Events\Custom_Tables\V1\Migration\String_Dictionary;
|
13 |
use TEC\Events\Custom_Tables\V1\Migration\Admin\Upgrade_Tab;
|
14 |
|
15 |
-
$is_outdated_pro = class_exists( 'Tribe__Events__Pro__Main' ) && version_compare( Tribe__Events__Pro__Main::VERSION, '6.0.0-
|
16 |
?>
|
17 |
|
18 |
<?php if ( $is_outdated_pro ) : ?>
|
12 |
use TEC\Events\Custom_Tables\V1\Migration\String_Dictionary;
|
13 |
use TEC\Events\Custom_Tables\V1\Migration\Admin\Upgrade_Tab;
|
14 |
|
15 |
+
$is_outdated_pro = class_exists( 'Tribe__Events__Pro__Main' ) && version_compare( Tribe__Events__Pro__Main::VERSION, '6.0.0-dev', '<=' );
|
16 |
?>
|
17 |
|
18 |
<?php if ( $is_outdated_pro ) : ?>
|
src/Tribe/Admin/Settings.php
CHANGED
@@ -163,7 +163,7 @@ class Settings {
|
|
163 |
[
|
164 |
'id' => static::$settings_page_id,
|
165 |
'parent' => $this->get_tec_events_menu_slug(),
|
166 |
-
'title' => esc_html__( 'Settings', '
|
167 |
'path' => static::$settings_page_id,
|
168 |
'callback' => [
|
169 |
tribe( 'settings' ),
|
@@ -392,8 +392,8 @@ class Settings {
|
|
392 |
include_once tribe( 'tec.main' )->plugin_path . 'src/admin-views/tribe-options-general.php';
|
393 |
include_once tribe( 'tec.main' )->plugin_path . 'src/admin-views/tribe-options-display.php';
|
394 |
|
395 |
-
$this->tabs['general'] = new Tribe__Settings_Tab( 'general', esc_html__( 'General', '
|
396 |
-
$this->tabs['display'] = new Tribe__Settings_Tab( 'display', esc_html__( 'Display', '
|
397 |
}
|
398 |
|
399 |
/**
|
163 |
[
|
164 |
'id' => static::$settings_page_id,
|
165 |
'parent' => $this->get_tec_events_menu_slug(),
|
166 |
+
'title' => esc_html__( 'Settings', 'the-events-calendar' ),
|
167 |
'path' => static::$settings_page_id,
|
168 |
'callback' => [
|
169 |
tribe( 'settings' ),
|
392 |
include_once tribe( 'tec.main' )->plugin_path . 'src/admin-views/tribe-options-general.php';
|
393 |
include_once tribe( 'tec.main' )->plugin_path . 'src/admin-views/tribe-options-display.php';
|
394 |
|
395 |
+
$this->tabs['general'] = new Tribe__Settings_Tab( 'general', esc_html__( 'General', 'the-events-calendar' ), $generalTab );
|
396 |
+
$this->tabs['display'] = new Tribe__Settings_Tab( 'display', esc_html__( 'Display', 'the-events-calendar' ), $displayTab );
|
397 |
}
|
398 |
|
399 |
/**
|
src/Tribe/Aggregator/Record/Abstract.php
CHANGED
@@ -2140,7 +2140,13 @@ abstract class Tribe__Events__Aggregator__Record__Abstract {
|
|
2140 |
$selected_ids = json_decode( $this->meta['ids_to_import'] );
|
2141 |
}
|
2142 |
} else {
|
2143 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
2144 |
}
|
2145 |
|
2146 |
if ( empty( $selected_ids ) ) {
|
2140 |
$selected_ids = json_decode( $this->meta['ids_to_import'] );
|
2141 |
}
|
2142 |
} else {
|
2143 |
+
$source_field = $unique_field['source'];
|
2144 |
+
$selected_ids = array_filter( array_map( static function ( $entry ) use ( $source_field ): ?int {
|
2145 |
+
$array_entry = (array) $entry;
|
2146 |
+
$value = $array_entry[ $source_field ] ?? null;
|
2147 |
+
|
2148 |
+
return is_numeric( $value ) ? (int) $value : null;
|
2149 |
+
}, $import_data ) );
|
2150 |
}
|
2151 |
|
2152 |
if ( empty( $selected_ids ) ) {
|
src/Tribe/Deactivation.php
CHANGED
@@ -10,6 +10,12 @@ class Tribe__Events__Deactivation extends Tribe__Abstract_Deactivation {
|
|
10 |
// Ensure the class is loaded before using it, we're in shutdown context and common autoloader might be unset.
|
11 |
require_once __DIR__ . '/Updater.php';
|
12 |
$updater = new Tribe__Events__Updater( Tribe__Main::VERSION );
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
$updater->reset();
|
14 |
}
|
15 |
|
10 |
// Ensure the class is loaded before using it, we're in shutdown context and common autoloader might be unset.
|
11 |
require_once __DIR__ . '/Updater.php';
|
12 |
$updater = new Tribe__Events__Updater( Tribe__Main::VERSION );
|
13 |
+
|
14 |
+
// Reset uses cached values, which means the sub-sites will be overwritten by the main site cache.
|
15 |
+
if ( $this->network && ! is_main_site() ) {
|
16 |
+
return;
|
17 |
+
}
|
18 |
+
|
19 |
$updater->reset();
|
20 |
}
|
21 |
|
src/Tribe/Editor/Compatibility.php
CHANGED
@@ -19,6 +19,9 @@ class Tribe__Events__Editor__Compatibility {
|
|
19 |
* Key we store the toggle under in the tribe_events_calendar_options array.
|
20 |
*
|
21 |
* @since 15.4.0
|
|
|
|
|
|
|
22 |
*
|
23 |
* @var string
|
24 |
*/
|
@@ -55,8 +58,12 @@ class Tribe__Events__Editor__Compatibility {
|
|
55 |
* @return bool
|
56 |
*/
|
57 |
public function is_blocks_editor_toggled_on() {
|
58 |
-
|
59 |
-
|
|
|
|
|
|
|
|
|
60 |
}
|
61 |
|
62 |
$is_on = tribe_get_option( static::$blocks_editor_key, false );
|
@@ -68,9 +75,11 @@ class Tribe__Events__Editor__Compatibility {
|
|
68 |
*
|
69 |
* @param bool $is_on Whether the Blocks Editor is on or not.
|
70 |
*/
|
71 |
-
|
|
|
|
|
72 |
|
73 |
-
return tribe_is_truthy(
|
74 |
}
|
75 |
|
76 |
/**
|
19 |
* Key we store the toggle under in the tribe_events_calendar_options array.
|
20 |
*
|
21 |
* @since 15.4.0
|
22 |
+
* @since 6.0.1
|
23 |
+
*
|
24 |
+
* @deprecated Using the \Tribe__Cache object instead of caching locally.
|
25 |
*
|
26 |
* @var string
|
27 |
*/
|
58 |
* @return bool
|
59 |
*/
|
60 |
public function is_blocks_editor_toggled_on() {
|
61 |
+
$cache = tribe( 'cache' );
|
62 |
+
$cache_key = 'tec_editor_compatibility_' . static::$blocks_editor_key;
|
63 |
+
|
64 |
+
$is_on = $cache->get( $cache_key, '', null );
|
65 |
+
if ( $is_on !== null ) {
|
66 |
+
return tribe_is_truthy( $is_on );
|
67 |
}
|
68 |
|
69 |
$is_on = tribe_get_option( static::$blocks_editor_key, false );
|
75 |
*
|
76 |
* @param bool $is_on Whether the Blocks Editor is on or not.
|
77 |
*/
|
78 |
+
$is_on = (bool) apply_filters( 'tribe_events_blocks_editor_is_on', $is_on );
|
79 |
+
|
80 |
+
$cache->set( $cache_key, $is_on, \Tribe__Cache::NON_PERSISTENT );
|
81 |
|
82 |
+
return tribe_is_truthy( $is_on );
|
83 |
}
|
84 |
|
85 |
/**
|
src/Tribe/Integrations/Divi/Service_Provider.php
ADDED
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Handles The Events Calendar integration with the Divi theme builder.
|
4 |
+
*
|
5 |
+
* @since 6.0.1
|
6 |
+
*
|
7 |
+
* @package Tribe\Events\Integrations\Divi
|
8 |
+
*/
|
9 |
+
|
10 |
+
namespace Tribe\Events\Integrations\Divi;
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Class Service_Provider
|
14 |
+
*
|
15 |
+
* @since 6.0.1
|
16 |
+
*
|
17 |
+
* @package Tribe\Events\Integrations\Divi
|
18 |
+
*/
|
19 |
+
class Service_Provider extends \tad_DI52_ServiceProvider {
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Binds and sets up implementations.
|
23 |
+
*
|
24 |
+
* @since 6.0.1
|
25 |
+
*/
|
26 |
+
public function register() {
|
27 |
+
$this->container->singleton( static::class, $this );
|
28 |
+
|
29 |
+
$theme = wp_get_theme();
|
30 |
+
|
31 |
+
if ( 'divi' !== strtolower( $theme->name ) && 'divi' !== strtolower( $theme->parent_theme ) ) {
|
32 |
+
return;
|
33 |
+
}
|
34 |
+
|
35 |
+
$this->hooks();
|
36 |
+
}
|
37 |
+
|
38 |
+
/**
|
39 |
+
* Hooks the filters and actions required for this integration to work.
|
40 |
+
*
|
41 |
+
* @since 6.0.1
|
42 |
+
*/
|
43 |
+
protected function hooks() {
|
44 |
+
add_filter( 'tribe_post_id', [ $this, 'filter_tribe_post_id' ] );
|
45 |
+
}
|
46 |
+
|
47 |
+
/**
|
48 |
+
* Get the $event_id using get_queried_object_id() for Divi users who aren't using the Default Events Template.
|
49 |
+
*
|
50 |
+
* @since 6.0.1
|
51 |
+
*
|
52 |
+
* @param int $event_id The event ID.
|
53 |
+
*/
|
54 |
+
public function filter_tribe_post_id( $event_id ) {
|
55 |
+
// try the "normal" way first.
|
56 |
+
if ( empty( $event_id ) ) {
|
57 |
+
$event_id = get_the_ID();
|
58 |
+
}
|
59 |
+
|
60 |
+
// look for a post
|
61 |
+
if ( ! tribe_is_event( $event_id ) && tribe_get_request_var( 'et_post_id' ) ) {
|
62 |
+
$event_id = tribe_get_request_var( 'et_post_id' );
|
63 |
+
}
|
64 |
+
|
65 |
+
if ( ! tribe_is_event( $event_id ) ) {
|
66 |
+
wp_reset_postdata();
|
67 |
+
|
68 |
+
$event_id = get_queried_object_id();
|
69 |
+
}
|
70 |
+
|
71 |
+
return $event_id;
|
72 |
+
}
|
73 |
+
}
|
src/Tribe/Integrations/Manager.php
CHANGED
@@ -46,6 +46,7 @@ class Tribe__Events__Integrations__Manager {
|
|
46 |
$this->load_beaver_builder_integration();
|
47 |
$this->load_fusion_integration();
|
48 |
$this->load_hello_elementor_integration();
|
|
|
49 |
}
|
50 |
|
51 |
/**
|
@@ -152,6 +153,8 @@ class Tribe__Events__Integrations__Manager {
|
|
152 |
return false;
|
153 |
}
|
154 |
|
|
|
|
|
155 |
tribe( WP_Rocket::class )->hook();
|
156 |
|
157 |
return true;
|
@@ -169,6 +172,8 @@ class Tribe__Events__Integrations__Manager {
|
|
169 |
return false;
|
170 |
}
|
171 |
|
|
|
|
|
172 |
tribe( Beaver_Builder::class )->hook();
|
173 |
|
174 |
return true;
|
@@ -191,4 +196,13 @@ class Tribe__Events__Integrations__Manager {
|
|
191 |
private function load_hello_elementor_integration() {
|
192 |
tribe_register_provider( Hello_Elementor_Integration::class );
|
193 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
194 |
}
|
46 |
$this->load_beaver_builder_integration();
|
47 |
$this->load_fusion_integration();
|
48 |
$this->load_hello_elementor_integration();
|
49 |
+
$this->load_divi_integration();
|
50 |
}
|
51 |
|
52 |
/**
|
153 |
return false;
|
154 |
}
|
155 |
|
156 |
+
tribe_singleton( \Tribe\Events\Integrations\WP_Rocket::class, \Tribe\Events\Integrations\WP_Rocket::class );
|
157 |
+
|
158 |
tribe( WP_Rocket::class )->hook();
|
159 |
|
160 |
return true;
|
172 |
return false;
|
173 |
}
|
174 |
|
175 |
+
tribe_singleton( \Tribe\Events\Integrations\Beaver_Builder::class, \Tribe\Events\Integrations\Beaver_Builder::class );
|
176 |
+
|
177 |
tribe( Beaver_Builder::class )->hook();
|
178 |
|
179 |
return true;
|
196 |
private function load_hello_elementor_integration() {
|
197 |
tribe_register_provider( Hello_Elementor_Integration::class );
|
198 |
}
|
199 |
+
|
200 |
+
/**
|
201 |
+
* Loads the Hello Elementor theme integration.
|
202 |
+
*
|
203 |
+
* @since 6.0.1
|
204 |
+
*/
|
205 |
+
private function load_divi_integration() {
|
206 |
+
tribe_register_provider( Tribe\Events\Integrations\Divi\Service_Provider::class );
|
207 |
+
}
|
208 |
}
|
src/Tribe/Integrations/WPML/Meta.php
CHANGED
@@ -38,6 +38,14 @@ class Tribe__Events__Integrations__WPML__Meta {
|
|
38 |
return $value;
|
39 |
}
|
40 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
$value = $this->get_post_meta( $object_id, $meta_key );
|
42 |
|
43 |
if ( empty( $value ) ) {
|
@@ -74,6 +82,8 @@ class Tribe__Events__Integrations__WPML__Meta {
|
|
74 |
}
|
75 |
}
|
76 |
|
|
|
|
|
77 |
return $value;
|
78 |
}
|
79 |
|
38 |
return $value;
|
39 |
}
|
40 |
|
41 |
+
$cache = tribe_cache();
|
42 |
+
|
43 |
+
$cache_key = 'wpml_meta_translate_post_id_' . $object_id . '-' . $meta_key;
|
44 |
+
|
45 |
+
if ( isset( $cache[ $cache_key ] ) ) {
|
46 |
+
return $cache[ $cache_key ];
|
47 |
+
}
|
48 |
+
|
49 |
$value = $this->get_post_meta( $object_id, $meta_key );
|
50 |
|
51 |
if ( empty( $value ) ) {
|
82 |
}
|
83 |
}
|
84 |
|
85 |
+
$cache[ $cache_key ] = $value;
|
86 |
+
|
87 |
return $value;
|
88 |
}
|
89 |
|
src/Tribe/Linked_Posts/Chooser_Meta_Box.php
CHANGED
@@ -186,23 +186,29 @@ class Tribe__Events__Linked_Posts__Chooser_Meta_Box {
|
|
186 |
/**
|
187 |
* Render a link to edit the linked post
|
188 |
*
|
|
|
189 |
* @since 3.0
|
190 |
*
|
191 |
* @param int $linked_post_id
|
192 |
*/
|
193 |
protected function edit_post_link( $linked_post_id ) {
|
194 |
$linked_post_pto = get_post_type_object( $this->post_type );
|
195 |
-
|
|
|
|
|
196 |
empty( $linked_post_pto->cap->edit_others_posts )
|
197 |
|| ! current_user_can( $linked_post_pto->cap->edit_others_posts )
|
198 |
-
)
|
199 |
-
|
200 |
-
if ( is_admin() && $cannot_edit_others_posts ) {
|
201 |
return;
|
202 |
}
|
203 |
|
204 |
$edit_link = get_edit_post_link( $linked_post_id );
|
205 |
|
|
|
|
|
|
|
|
|
|
|
206 |
printf(
|
207 |
'<div class="edit-linked-post-link"><a style="%1$s" href="%2$s" target="_blank">%3$s</a></div>',
|
208 |
esc_attr( empty( $linked_post_id ) ? 'display: none;' : 'display: inline-block;' ),
|
186 |
/**
|
187 |
* Render a link to edit the linked post
|
188 |
*
|
189 |
+
* @since 6.0.1 Reversed check for editing posts. Added check if the $edit_link is empty.
|
190 |
* @since 3.0
|
191 |
*
|
192 |
* @param int $linked_post_id
|
193 |
*/
|
194 |
protected function edit_post_link( $linked_post_id ) {
|
195 |
$linked_post_pto = get_post_type_object( $this->post_type );
|
196 |
+
|
197 |
+
// Bail if the user is unable to edit the type of post.
|
198 |
+
if (
|
199 |
empty( $linked_post_pto->cap->edit_others_posts )
|
200 |
|| ! current_user_can( $linked_post_pto->cap->edit_others_posts )
|
201 |
+
) {
|
|
|
|
|
202 |
return;
|
203 |
}
|
204 |
|
205 |
$edit_link = get_edit_post_link( $linked_post_id );
|
206 |
|
207 |
+
// Bail if $edit_link is empty.
|
208 |
+
if ( empty( $edit_link ) ) {
|
209 |
+
return;
|
210 |
+
}
|
211 |
+
|
212 |
printf(
|
213 |
'<div class="edit-linked-post-link"><a style="%1$s" href="%2$s" target="_blank">%3$s</a></div>',
|
214 |
esc_attr( empty( $linked_post_id ) ? 'display: none;' : 'display: inline-block;' ),
|
src/Tribe/Main.php
CHANGED
@@ -35,7 +35,7 @@ if ( ! class_exists( 'Tribe__Events__Main' ) ) {
|
|
35 |
const VENUE_POST_TYPE = 'tribe_venue';
|
36 |
const ORGANIZER_POST_TYPE = 'tribe_organizer';
|
37 |
|
38 |
-
const VERSION = '6.0.
|
39 |
|
40 |
/**
|
41 |
* Min Pro Addon
|
@@ -600,8 +600,7 @@ if ( ! class_exists( 'Tribe__Events__Main' ) ) {
|
|
600 |
|
601 |
// Integrations
|
602 |
tribe_singleton( 'tec.integrations.twenty-seventeen', 'Tribe__Events__Integrations__Twenty_Seventeen', [ 'hook' ] );
|
603 |
-
|
604 |
-
tribe_singleton( \Tribe\Events\Integrations\Beaver_Builder::class, \Tribe\Events\Integrations\Beaver_Builder::class );
|
605 |
|
606 |
// Linked Posts
|
607 |
tribe_singleton( 'tec.linked-posts', 'Tribe__Events__Linked_Posts' );
|
@@ -1340,7 +1339,7 @@ if ( ! class_exists( 'Tribe__Events__Main' ) ) {
|
|
1340 |
$upgrade_fields = apply_filters( 'tribe_upgrade_fields', $upgrade_tab );
|
1341 |
|
1342 |
new Tribe__Settings_Tab(
|
1343 |
-
'upgrade', esc_html__( 'Upgrade', '
|
1344 |
[
|
1345 |
'priority' => 100,
|
1346 |
'fields' => $upgrade_fields,
|
@@ -2825,7 +2824,7 @@ if ( ! class_exists( 'Tribe__Events__Main' ) ) {
|
|
2825 |
|
2826 |
/**
|
2827 |
* plugin activation callback
|
2828 |
-
* @see
|
2829 |
*
|
2830 |
* @param bool $network_deactivating
|
2831 |
*/
|
35 |
const VENUE_POST_TYPE = 'tribe_venue';
|
36 |
const ORGANIZER_POST_TYPE = 'tribe_organizer';
|
37 |
|
38 |
+
const VERSION = '6.0.1';
|
39 |
|
40 |
/**
|
41 |
* Min Pro Addon
|
600 |
|
601 |
// Integrations
|
602 |
tribe_singleton( 'tec.integrations.twenty-seventeen', 'Tribe__Events__Integrations__Twenty_Seventeen', [ 'hook' ] );
|
603 |
+
|
|
|
604 |
|
605 |
// Linked Posts
|
606 |
tribe_singleton( 'tec.linked-posts', 'Tribe__Events__Linked_Posts' );
|
1339 |
$upgrade_fields = apply_filters( 'tribe_upgrade_fields', $upgrade_tab );
|
1340 |
|
1341 |
new Tribe__Settings_Tab(
|
1342 |
+
'upgrade', esc_html__( 'Upgrade', 'the-events-calendar' ),
|
1343 |
[
|
1344 |
'priority' => 100,
|
1345 |
'fields' => $upgrade_fields,
|
2824 |
|
2825 |
/**
|
2826 |
* plugin activation callback
|
2827 |
+
* @see register_activation_hook()
|
2828 |
*
|
2829 |
* @param bool $network_deactivating
|
2830 |
*/
|
src/Tribe/Models/Post_Types/Event.php
CHANGED
@@ -22,6 +22,7 @@ use Tribe__Events__Featured_Events as Featured;
|
|
22 |
use Tribe__Events__Organizer as Organizer;
|
23 |
use Tribe__Events__Timezones as Timezones;
|
24 |
use Tribe__Events__Venue as Venue;
|
|
|
25 |
|
26 |
/**
|
27 |
* Class Event
|
@@ -274,11 +275,11 @@ class Event extends Base {
|
|
274 |
*
|
275 |
* @since 6.0.0
|
276 |
*
|
277 |
-
* @param int
|
278 |
*/
|
279 |
public static function prime_cache( array $events = [] ) {
|
280 |
$first = reset( $events );
|
281 |
-
$is_numeric = ( ! $first instanceof
|
282 |
if ( $is_numeric ) {
|
283 |
$event_ids = $events;
|
284 |
} else {
|
@@ -286,12 +287,12 @@ class Event extends Base {
|
|
286 |
}
|
287 |
|
288 |
/**
|
289 |
-
* Allows changing which Post IDs will get primed for cache
|
290 |
*
|
291 |
* @since 6.0.0
|
292 |
*
|
293 |
-
* @param int
|
294 |
-
* @param
|
295 |
*/
|
296 |
$event_ids = apply_filters( 'tec_events_prime_cache_post_ids', $event_ids, $events );
|
297 |
|
22 |
use Tribe__Events__Organizer as Organizer;
|
23 |
use Tribe__Events__Timezones as Timezones;
|
24 |
use Tribe__Events__Venue as Venue;
|
25 |
+
use WP_Post;
|
26 |
|
27 |
/**
|
28 |
* Class Event
|
275 |
*
|
276 |
* @since 6.0.0
|
277 |
*
|
278 |
+
* @param array<int|WP_Post> $events
|
279 |
*/
|
280 |
public static function prime_cache( array $events = [] ) {
|
281 |
$first = reset( $events );
|
282 |
+
$is_numeric = ( ! $first instanceof WP_Post );
|
283 |
if ( $is_numeric ) {
|
284 |
$event_ids = $events;
|
285 |
} else {
|
287 |
}
|
288 |
|
289 |
/**
|
290 |
+
* Allows changing which Post IDs will get primed for cache.
|
291 |
*
|
292 |
* @since 6.0.0
|
293 |
*
|
294 |
+
* @param array<int> $event_ids Which IDs we will prime.
|
295 |
+
* @param array<int|WP_Post> $events Which event objects will generate the ids.
|
296 |
*/
|
297 |
$event_ids = apply_filters( 'tec_events_prime_cache_post_ids', $event_ids, $events );
|
298 |
|
src/Tribe/Plugin_Register.php
CHANGED
@@ -6,7 +6,7 @@ class Tribe__Events__Plugin_Register extends Tribe__Abstract_Plugin_Register {
|
|
6 |
protected $main_class = 'Tribe__Events__Main';
|
7 |
protected $dependencies = [
|
8 |
'addon-dependencies' => [
|
9 |
-
'Tribe__Events__Pro__Main' => '6.0.
|
10 |
'Tribe__Events__Filterbar__View' => '5.4.0-dev',
|
11 |
'Tribe__Events__Community__Main' => '4.10.0-dev',
|
12 |
'Tribe__Events__Community__Tickets__Main' => '4.8.0-dev',
|
6 |
protected $main_class = 'Tribe__Events__Main';
|
7 |
protected $dependencies = [
|
8 |
'addon-dependencies' => [
|
9 |
+
'Tribe__Events__Pro__Main' => '6.0.1-dev',
|
10 |
'Tribe__Events__Filterbar__View' => '5.4.0-dev',
|
11 |
'Tribe__Events__Community__Main' => '4.10.0-dev',
|
12 |
'Tribe__Events__Community__Tickets__Main' => '4.8.0-dev',
|
src/Tribe/Updater.php
CHANGED
@@ -7,7 +7,7 @@ use Tribe\Events\Event_Status\Event_Meta as Event_Status_Meta;
|
|
7 |
*/
|
8 |
class Tribe__Events__Updater {
|
9 |
protected $version_option = 'schema-version';
|
10 |
-
protected $reset_version = '
|
11 |
protected $current_version = 0;
|
12 |
public $capabilities;
|
13 |
|
@@ -69,6 +69,18 @@ class Tribe__Events__Updater {
|
|
69 |
return $this->get_update_callbacks();
|
70 |
}
|
71 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
/**
|
73 |
* Returns an array of callbacks with version strings as keys.
|
74 |
* Any key higher than the version recorded in the DB
|
7 |
*/
|
8 |
class Tribe__Events__Updater {
|
9 |
protected $version_option = 'schema-version';
|
10 |
+
protected $reset_version = '5.16.0'; // when a reset() is called, go to this version
|
11 |
protected $current_version = 0;
|
12 |
public $capabilities;
|
13 |
|
69 |
return $this->get_update_callbacks();
|
70 |
}
|
71 |
|
72 |
+
/**
|
73 |
+
* Getter for the private reset version.
|
74 |
+
* Mainly for tests.
|
75 |
+
*
|
76 |
+
* @since 6.0.1
|
77 |
+
*
|
78 |
+
* @return string The reset version number.
|
79 |
+
*/
|
80 |
+
public function get_reset_version(): string {
|
81 |
+
return $this->reset_version;
|
82 |
+
}
|
83 |
+
|
84 |
/**
|
85 |
* Returns an array of callbacks with version strings as keys.
|
86 |
* Any key higher than the version recorded in the DB
|
src/Tribe/Views/V2/Query/Event_Query_Controller.php
CHANGED
@@ -86,7 +86,9 @@ class Event_Query_Controller {
|
|
86 |
// If the query posts have been pre-filled already then let's use the information.
|
87 |
$query_posts = $query->posts;
|
88 |
|
89 |
-
$post__in =
|
|
|
|
|
90 |
}
|
91 |
|
92 |
/**
|
86 |
// If the query posts have been pre-filled already then let's use the information.
|
87 |
$query_posts = $query->posts;
|
88 |
|
89 |
+
$post__in = array_map( static function ( $post ): int {
|
90 |
+
return is_object( $post ) ? $post->ID : (int) $post;
|
91 |
+
}, $query_posts );
|
92 |
}
|
93 |
|
94 |
/**
|
src/Tribe/Views/V2/View.php
CHANGED
@@ -27,6 +27,7 @@ use Tribe__Events__Rewrite as TEC_Rewrite;
|
|
27 |
use Tribe__Events__Venue as Venue;
|
28 |
use Tribe__Repository__Interface as Repository;
|
29 |
use Tribe__Utils__Array as Arr;
|
|
|
30 |
|
31 |
/**
|
32 |
* Class View
|
@@ -1469,8 +1470,8 @@ class View implements View_Interface {
|
|
1469 |
*
|
1470 |
* @since 6.0.0
|
1471 |
*
|
1472 |
-
* @param array $events Which events were just selected.
|
1473 |
-
* @param self
|
1474 |
*/
|
1475 |
do_action( 'tec_events_views_v2_after_get_events', $events, $this );
|
1476 |
|
27 |
use Tribe__Events__Venue as Venue;
|
28 |
use Tribe__Repository__Interface as Repository;
|
29 |
use Tribe__Utils__Array as Arr;
|
30 |
+
use WP_Post;
|
31 |
|
32 |
/**
|
33 |
* Class View
|
1470 |
*
|
1471 |
* @since 6.0.0
|
1472 |
*
|
1473 |
+
* @param array<WP_Post> $events Which events were just selected.
|
1474 |
+
* @param self $view Which view we are dealing with.
|
1475 |
*/
|
1476 |
do_action( 'tec_events_views_v2_after_get_events', $events, $this );
|
1477 |
|
src/admin-views/aggregator/origins/csv.php
CHANGED
@@ -11,6 +11,7 @@ $field->source = 'csv_content_type';
|
|
11 |
|
12 |
$csv_record = Tribe__Events__Aggregator__Records::instance()->get_by_origin( 'csv' );
|
13 |
$post_types = $csv_record->get_import_post_types();
|
|
|
14 |
?>
|
15 |
<tr class="tribe-dependent" data-depends="#tribe-ea-field-origin" data-condition="csv">
|
16 |
<th scope="row">
|
@@ -77,3 +78,25 @@ $field->media_title = __( 'Upload a CSV File', 'the-events-calendar' );
|
|
77 |
</button>
|
78 |
</td>
|
79 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
12 |
$csv_record = Tribe__Events__Aggregator__Records::instance()->get_by_origin( 'csv' );
|
13 |
$post_types = $csv_record->get_import_post_types();
|
14 |
+
$main = Tribe__Events__Main::instance();
|
15 |
?>
|
16 |
<tr class="tribe-dependent" data-depends="#tribe-ea-field-origin" data-condition="csv">
|
17 |
<th scope="row">
|
78 |
</button>
|
79 |
</td>
|
80 |
</tr>
|
81 |
+
|
82 |
+
<div class="tec-admin-ea-help-message" data-depends="#tribe-ea-field-origin" data-condition-not-empty data-condition-relation="and" data-condition-not='["url","eventbrite", "gcal", "ics", "ical", "meetup", "url"]'>
|
83 |
+
<?php esc_html_e( 'Need assistance? You can find more information here:', 'the-events-calendar' ); ?>
|
84 |
+
|
85 |
+
<img
|
86 |
+
class="tec-admin-ea-help-message__icon"
|
87 |
+
src="<?php echo esc_url( tribe_resource_url( 'images/icons/tec-horns.svg', false, null, $main ) ); ?>"
|
88 |
+
alt="<?php esc_attr_e( 'The Events Calendar logo', 'the-events-calendar' ); ?>"
|
89 |
+
/>
|
90 |
+
<a href="https://evnt.is/1bam" target="_blank" rel="noopener noreferrer">
|
91 |
+
<?php esc_html_e( 'Importing Calendar Data From a CSV File', 'the-events-calendar' ); ?>
|
92 |
+
</a>
|
93 |
+
|
94 |
+
<img
|
95 |
+
class="tec-admin-ea-help-message__icon"
|
96 |
+
src="<?php echo esc_url( tribe_resource_url( 'images/icons/tec-horns.svg', false, null, $main ) ); ?>"
|
97 |
+
alt="<?php esc_attr_e( 'The Events Calendar logo', 'the-events-calendar' ); ?>"
|
98 |
+
/>
|
99 |
+
<a href="https://evnt.is/1ban" target="_blank" rel="noopener noreferrer">
|
100 |
+
<?php esc_html_e( 'CSV File Formatting and Examples ', 'the-events-calendar' ); ?>
|
101 |
+
</a>
|
102 |
+
</div>
|
src/admin-views/aggregator/origins/limit.php
CHANGED
@@ -41,4 +41,4 @@ $import_limit_message = $global_limit_message . ' ' . sprintf( '<a href="%s" tar
|
|
41 |
|
42 |
<div class="tribe-dependent" data-depends="#tribe-ea-field-origin" data-condition-not-empty data-condition-relation="and" data-condition-not='["url","eventbrite"]'>
|
43 |
<p><?php echo $import_limit_message; ?></p>
|
44 |
-
</div>
|
41 |
|
42 |
<div class="tribe-dependent" data-depends="#tribe-ea-field-origin" data-condition-not-empty data-condition-relation="and" data-condition-not='["url","eventbrite"]'>
|
43 |
<p><?php echo $import_limit_message; ?></p>
|
44 |
+
</div>
|
src/resources/css/aggregator-page.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.tribe-ea .tribe-ea-tab{background-color:#fff;border:1px solid #ccc;margin-top:20px;padding:20px}.tribe-ea .tribe-ea-tab .form-table th[scope=row]{width:140px}.tribe-ea .tribe-ea-tab .form-table tr{position:relative}.tribe-ea .tribe-ea-tab .form-table .eb-url-row th[scope=row]{padding:0}.tribe-ea .tribe-ea-tab .form-table .eb-url-row td{padding:0 10px}.tribe-ea .tribe-ea-tab .subsubsub li{font-weight:700}.tribe-ea .tribe-ea-tab .subsubsub .count,.tribe-ea .tribe-ea-tab .subsubsub a{font-weight:400}.tribe-ea .tribe-ea-help{color:#0073aa;cursor:pointer;padding:4px}.tribe-ea .tribe-ea-hidden{display:none}.tribe-ea .tribe-ea-file-name{display:inline-block;font-style:italic;line-height:26px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:auto}.tribe-ea .tribe-ea-raw-list{line-height:1.25em;list-style:square;margin-bottom:6px;margin-left:22px;margin-top:0}.tribe-ea .tribe-ea-raw-list>li{margin-bottom:2px}.tribe-ea .tribe-ea-total{font-weight:600}.tribe-ea .tribe-ea-size-tiny{width:75px}.tribe-ea .tribe-ea-size-small{width:100px}.tribe-ea .tribe-ea-size-medium{width:150px}.tribe-ea .tribe-ea-size-large{width:200px}.tribe-ea .tribe-ea-size-xlarge{width:405px}.tribe-ea .has-credentials{padding:0}.tribe-ea .tribe-button-row{padding-left:0}.tribe-ea .tribe-ea-fileicon{padding:3px}.tribe-ea .tribe-ea-field-readonly{line-height:30px}.tribe-ea .tribe-ea-field-readonly+.tribe-ea-field{margin-left:10px}.tribe-ea .tribe-ea-field.tribe-field-inline-dropdown{margin-left:0}.tribe-ea .tribe-credential-row{border-top:15px solid #fff}.tribe-ea .enter-credentials{background-color:#f8eceb;padding:1rem}.tribe-ea .enter-credentials.credentials-entered{background-color:#ebf2eb}.tribe-ea .enter-credentials.credentials-entered .tribe-credentials-prompt,.tribe-ea .enter-credentials.credentials-entered .tribe-fieldset{display:none}.tribe-ea .enter-credentials.credentials-entered .tribe-credentials-success{display:block;margin-bottom:0}.tribe-ea .enter-credentials input{max-width:250px;width:75%}.tribe-ea .enter-credentials .dashicons{font-size:1.5rem;line-height:1.2rem;margin-right:.5rem}.tribe-ea .enter-credentials .dashicons-warning{color:#d54e21}.tribe-ea .enter-credentials .dashicons-yes{color:#41a341;font-size:2rem}.tribe-ea .enter-credentials #facebook_api_key{margin-right:1.5rem}.tribe-ea .enter-credentials .tribe-credentials-success{display:none}.tribe-ea .manage-column.column-frequency,.tribe-ea .manage-column.column-imported{width:15%}.tribe-ea .manage-column.column-total{text-align:left;width:15%}.tribe-ea .tribe-ea-tab-scheduled td.column-source{padding-left:10px}.tribe-ea .tribe-ea-tab-scheduled td.column-source :not(.row-actions) a:first-of-type{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap}.tribe-ea td.column-source{padding-left:50px;position:relative}.tribe-ea td.column-total{text-align:left}.tribe-ea .dashicons.tribe-ea-status-failed{color:#dc3232}.tribe-ea .tribe-ea-report-status{bottom:0;font-size:25px;left:0;position:absolute;top:0;width:45px}.tribe-ea .tribe-ea-report-status>.dashicons{font-size:inherit;padding-top:10px;width:100%}.tribe-ea .tribe-ea-report-status .tribe-ea-status-success{color:#46b450}.tribe-ea .tribe-ea-report-status .tribe-ea-status-scheduled{color:#00a0d2}.tribe-ea .tribe-ea-report-status .tribe-ea-status-failed{color:#dc3232}.tribe-ea .tribe-ea-report-status .tribe-ea-status-pending{color:#ffb900;font-size:.8em}.tribe-ea .select2-container-multi .select2-choices .select2-search-field input{height:25px}.tribe-ea .select2-container{margin:0 1px 0 0}.tribe-ea input,.tribe-ea select{margin-left:0}.tribe-ea .tribe-refine{margin-bottom:.25rem}.tribe-ea .tribe-refine:last-child{margin-bottom:0}.tribe-ea .tribe-date-helper{color:gray}.tribe-ea .tribe-ea-inline-label{padding-top:7px}.tribe-ea .tribe-notice-tribe-missing-aggregator-license{background-color:#f9f7f4;border:1px solid #f9f7f4;border-radius:16px;display:flex;justify-content:space-between;padding:60px}.tribe-ea .tribe-notice-tribe-missing-aggregator-license .tribe-notice-tribe-missing-aggregator-license__image{background-image:url(../images/aggregator/ea-intro-img-text.png);background-position:100%;background-repeat:no-repeat;background-size:contain;display:none;margin-left:30px}.tribe-ea .tribe-notice-tribe-missing-aggregator-license .upsell-banner{background:url(../images/aggregator/EventAggregator-icon.svg) transparent no-repeat;background-position:0;background-size:contain;font-family:apercu-mono-bold,monospace;height:43px;line-height:43px;margin:0 auto 30px;padding-left:60px}.tribe-ea .tribe-notice-tribe-missing-aggregator-license h3{color:#141827;font-size:40px;font-weight:700;letter-spacing:1.5px;line-height:1.2;margin:28px 0 0}.tribe-ea .tribe-notice-tribe-missing-aggregator-license p{color:#141827;font-size:16px;font-weight:300;letter-spacing:2px;margin:15px 0 30px}.tribe-ea .tribe-notice-tribe-missing-aggregator-license a:not(.tribe-button){color:#abd8e8}.tribe-ea .tribe-notice-tribe-missing-aggregator-license a:not(.tribe-button):active,.tribe-ea .tribe-notice-tribe-missing-aggregator-license a:not(.tribe-button):hover{color:#cbe1e8}.tribe-ea .tribe-banner.tribe-active.tribe-dependent,.tribe-ea .tribe-notice-tribe-missing-aggregator-license.tribe-dependent.tribe-active{display:flex}.tribe-ea .tribe-banner{align-items:center;display:flex;flex:1 1 auto;justify-content:center}.tribe-ea .tribe-banner.tribe-banner-eventbrite-tickets{background-image:linear-gradient(135deg,#0178ba,#0178ba 25%,#01bdac 65%,#01bdac);background-size:cover;padding:0;text-align:center}.tribe-ea .tribe-banner.tribe-banner-eventbrite-tickets h3{color:#fff;font-size:26px;font-weight:400;letter-spacing:1px;padding:0 45px}.tribe-ea .tribe-banner.tribe-banner-eventbrite-tickets img{max-width:165px}.tribe-ea .tribe-button{border:1px solid;border-radius:3px;color:#fff;display:inline-block;font-size:13px;font-weight:300;letter-spacing:1.5px;padding:15px 30px;text-decoration:none;text-transform:uppercase}.tribe-ea .tribe-button-primary{background:#000;border-color:#000;margin-right:5px}.tribe-ea .tribe-button-secondary{background:#334aff;border-color:#334aff;border-radius:40px;font-size:16px;font-weight:700;margin-left:0;margin-top:6px;padding:20px 50px;text-transform:none}.tribe-ea .dataTables_filter,.tribe-ea .dataTables_length{line-height:28px;margin-bottom:.5rem}.tribe-ea .dataTables_filter select,.tribe-ea .dataTables_length select{margin-top:-2px}.tribe-ea .tribe-view-filters.tribe-active+.tribe-filters{display:block}.tribe-ea dl.tribe-filters{display:none;margin-left:.5rem;margin-top:0}.tribe-ea dl.tribe-filters dt{clear:left;display:inline-block;font-weight:700;margin-right:.25rem}.tribe-ea dl.tribe-filters dd{display:inline;margin-left:0}.tribe-ea dl.tribe-filters dd:after{content:"";display:block;margin-bottom:.25rem}.tribe-ea .widefat td p{margin-bottom:.25em}.tribe-ea .tribe-ea-login-button{margin-left:2rem;margin-top:1rem}.tribe-ea-table-container{background-color:#fafafa;border:1px solid #e7e7e7;min-height:25px;padding:.5rem}.tribe-preview-container{display:none;margin-top:.5rem;padding-left:1rem;padding-right:1rem}.edit-form .tribe-preview-container,.show-data .tribe-preview-container,.tribe-preview-container.tribe-fetch-error,.tribe-preview-container.tribe-fetched,.tribe-preview-container.tribe-fetching{display:block}.tribe-preview-container.tribe-fetching .spinner-container{display:block;text-align:center}.tribe-preview-container.tribe-fetch-error .tribe-fetch-error-message{display:block}.tribe-preview-container .data-container{display:none}.tribe-preview-container .data-container.csv-data #tribe-csv-preview-message{display:block}.tribe-preview-container .data-container.csv-data #tribe-remote-preview-message{display:none}.tribe-preview-container .data-container #tribe-remote-preview-message{display:block}.tribe-preview-container>td{padding-left:0;padding-right:0}.tribe-preview-container .tribe-column-end-date,.tribe-preview-container .tribe-column-start-date,.tribe-preview-container .tribe-column-start-time{width:8em}.tribe-preview-container .spinner-container,.tribe-preview-container .tribe-fetch-error-message{display:none}.tribe-preview-container .spinner{float:none;margin-left:auto;margin-right:auto;visibility:visible}.tribe-preview-container .spinner-message{display:block;margin-top:.25rem}.tribe-preview-container .dataTable{float:left}.tribe-preview-container .dataTable .check-column input,.tribe-preview-container .dataTable .column-cb input{display:none}.tribe-preview-container .dataTable tfoot th,.tribe-preview-container .dataTable thead th{padding-right:20px;white-space:nowrap}.tribe-preview-container .dataTable thead tr+tr th{background:#f3f3f3;border-bottom:0;font-weight:700}.tribe-preview-container .tribe-td-height-limit{max-height:50px;overflow:hidden}.tribe-preview-container .display-checkboxes .check-column input,.tribe-preview-container .display-checkboxes .column-cb input{display:inline-block}.tribe-preview-container .tribe-preview-message{display:none;font-weight:700;line-height:26px}.tribe-preview-container #tribe-ea-field-post_status+label{margin-left:1rem}.tribe-default-settings{display:none;overflow:hidden;padding-bottom:1rem;padding-top:1rem}.tribe-default-settings label{display:inline-block;line-height:26px}.edit-form .tribe-default-settings,.edit-form .tribe-finalize-container,.show-data .data-container,.show-data .tribe-default-settings,.show-data .tribe-finalize-container{display:block}.edit-form .tribe-cancel{display:inline-block}.tribe-ea-form .tribe-bumpdown-manual,.tribe-ea-form .tribe-bumpdown-scheduled,.tribe-ea-form[data-origin=csv] .dataTables_filter,.tribe-ea-form[data-origin=csv] .dataTables_info,.tribe-ea-form[data-origin=csv] .dataTables_length,.tribe-ea-form[data-origin=csv] .dataTables_paginate{display:none}.tribe-ea-form[data-type=manual] .tribe-bumpdown-manual,.tribe-ea-form[data-type=schedule] .tribe-bumpdown-scheduled{display:inline-block}.tribe-cancel{display:none}.tribe-finalize-container{display:none;padding-top:1.5rem}.tribe-finalize-container .tribe-timezone-message{font-style:italic;padding-top:.5rem}.tribe-finalize-container .tribe-limits-message{font-style:italic;margin:1em 0 -1.5em;padding:0}.tribe-message-loader,.tribe-notice-aggregator-update-msg{display:none}.tribe-notice-aggregator-update-msg .progress{border:1px solid #ccc;float:left;margin-right:1rem;padding:1px;width:18rem}.tribe-notice-aggregator-update-msg .progress .bar{background:#ffba00;height:1rem;width:1%}.tribe-notice-aggregator-update-msg .tracker{margin:0;padding:0}.tribe-notice-aggregator-update-msg .tracker .tracked-item{display:none;margin:.25rem 0}.tribe-notice-aggregator-update-msg .tracker.has-created,.tribe-notice-aggregator-update-msg .tracker.has-skipped,.tribe-notice-aggregator-update-msg .tracker.has-updated{padding-bottom:.25rem}.tribe-notice-aggregator-update-msg .tracker.has-created .track-created,.tribe-notice-aggregator-update-msg .tracker.has-created .track-remaining,.tribe-notice-aggregator-update-msg .tracker.has-skipped .track-remaining,.tribe-notice-aggregator-update-msg .tracker.has-skipped .track-skipped,.tribe-notice-aggregator-update-msg .tracker.has-updated .track-remaining,.tribe-notice-aggregator-update-msg .tracker.has-updated .track-updated,.tribe_events_page_aggregator .tribe-notice-aggregator-update-msg{display:block}.tribe-ea-tab-edit .tribe-bumpdown-trigger.tribe-ea-help{display:none}.select2-disabled{color:gray;cursor:default;margin-bottom:0}.tribe-dropdown-subtitle{color:gray;font-size:11px}.select2-highlighted .tribe-dropdown-subtitle{color:#fff}.tribe-aggregator-inactive .tribe-ea-tab-scheduled .widefat p,.tribe-aggregator-inactive .tribe-ea-tab-scheduled .widefat td,.tribe-aggregator-inactive .tribe-ea-tab-scheduled .widefat ul{color:#ccc}.tribe-ea-field-wrapper-post_status{min-width:275px}.tribe-ea-field-wrapper-post_status.tribe-active{float:left}@media screen and (min-width:1260px){.tribe-ea .tribe-notice-tribe-missing-aggregator-license .tribe-notice-tribe-missing-aggregator-license__content{width:50%}.tribe-ea .tribe-notice-tribe-missing-aggregator-license .tribe-notice-tribe-missing-aggregator-license__image{display:block;flex:auto}.tribe-ea .tribe-notice-tribe-missing-aggregator-license h3{font-size:68px;max-width:510px}.tribe-ea .tribe-notice-tribe-missing-aggregator-license p{font-size:22px;max-width:730px}.tribe-ea .tribe-button-secondary{font-size:20px;padding:26px 63px}}@media screen and (max-width:782px){.tribe-ea .form-table td{padding-right:0}.tribe-ea .form-table td input[type=text]{display:inline-block;width:92%}.tribe-ea td.tribe-dependent.tribe-active{display:block}.tribe-ea input+.tribe-ea-help{line-height:30px}}
|
1 |
+
.tribe-ea .tribe-ea-tab{background-color:#fff;border:1px solid #ccc;margin-top:20px;padding:20px}.tribe-ea .tribe-ea-tab .form-table th[scope=row]{width:140px}.tribe-ea .tribe-ea-tab .form-table tr{position:relative}.tribe-ea .tribe-ea-tab .form-table .eb-url-row th[scope=row]{padding:0}.tribe-ea .tribe-ea-tab .form-table .eb-url-row td{padding:0 10px}.tribe-ea .tribe-ea-tab .subsubsub li{font-weight:700}.tribe-ea .tribe-ea-tab .subsubsub .count,.tribe-ea .tribe-ea-tab .subsubsub a{font-weight:400}.tribe-ea .tribe-ea-help{color:#0073aa;cursor:pointer;padding:4px}.tribe-ea .tribe-ea-hidden{display:none}.tribe-ea .tribe-ea-file-name{display:inline-block;font-style:italic;line-height:26px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:auto}.tribe-ea .tribe-ea-raw-list{line-height:1.25em;list-style:square;margin-bottom:6px;margin-left:22px;margin-top:0}.tribe-ea .tribe-ea-raw-list>li{margin-bottom:2px}.tribe-ea .tribe-ea-total{font-weight:600}.tribe-ea .tribe-ea-size-tiny{width:75px}.tribe-ea .tribe-ea-size-small{width:100px}.tribe-ea .tribe-ea-size-medium{width:150px}.tribe-ea .tribe-ea-size-large{width:200px}.tribe-ea .tribe-ea-size-xlarge{width:405px}.tribe-ea .has-credentials{padding:0}.tribe-ea .tribe-button-row{padding-left:0}.tribe-ea .tribe-ea-fileicon{padding:3px}.tribe-ea .tribe-ea-field-readonly{line-height:30px}.tribe-ea .tribe-ea-field-readonly+.tribe-ea-field{margin-left:10px}.tribe-ea .tribe-ea-field.tribe-field-inline-dropdown{margin-left:0}.tribe-ea .tribe-credential-row{border-top:15px solid #fff}.tribe-ea .enter-credentials{background-color:#f8eceb;padding:1rem}.tribe-ea .enter-credentials.credentials-entered{background-color:#ebf2eb}.tribe-ea .enter-credentials.credentials-entered .tribe-credentials-prompt,.tribe-ea .enter-credentials.credentials-entered .tribe-fieldset{display:none}.tribe-ea .enter-credentials.credentials-entered .tribe-credentials-success{display:block;margin-bottom:0}.tribe-ea .enter-credentials input{max-width:250px;width:75%}.tribe-ea .enter-credentials .dashicons{font-size:1.5rem;line-height:1.2rem;margin-right:.5rem}.tribe-ea .enter-credentials .dashicons-warning{color:#d54e21}.tribe-ea .enter-credentials .dashicons-yes{color:#41a341;font-size:2rem}.tribe-ea .enter-credentials #facebook_api_key{margin-right:1.5rem}.tribe-ea .enter-credentials .tribe-credentials-success{display:none}.tribe-ea .manage-column.column-frequency,.tribe-ea .manage-column.column-imported{width:15%}.tribe-ea .manage-column.column-total{text-align:left;width:15%}.tribe-ea .tribe-ea-tab-scheduled td.column-source{padding-left:10px}.tribe-ea .tribe-ea-tab-scheduled td.column-source :not(.row-actions) a:first-of-type{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap}.tribe-ea td.column-source{padding-left:50px;position:relative}.tribe-ea td.column-total{text-align:left}.tribe-ea .dashicons.tribe-ea-status-failed{color:#dc3232}.tribe-ea .tribe-ea-report-status{bottom:0;font-size:25px;left:0;position:absolute;top:0;width:45px}.tribe-ea .tribe-ea-report-status>.dashicons{font-size:inherit;padding-top:10px;width:100%}.tribe-ea .tribe-ea-report-status .tribe-ea-status-success{color:#46b450}.tribe-ea .tribe-ea-report-status .tribe-ea-status-scheduled{color:#00a0d2}.tribe-ea .tribe-ea-report-status .tribe-ea-status-failed{color:#dc3232}.tribe-ea .tribe-ea-report-status .tribe-ea-status-pending{color:#ffb900;font-size:.8em}.tribe-ea .select2-container-multi .select2-choices .select2-search-field input{height:25px}.tribe-ea .select2-container{margin:0 1px 0 0}.tribe-ea input,.tribe-ea select{margin-left:0}.tribe-ea .tribe-refine{margin-bottom:.25rem}.tribe-ea .tribe-refine:last-child{margin-bottom:0}.tribe-ea .tribe-date-helper{color:gray}.tribe-ea .tribe-ea-inline-label{padding-top:7px}.tribe-ea .tribe-notice-tribe-missing-aggregator-license{background-color:#f9f7f4;border:1px solid #f9f7f4;border-radius:16px;display:flex;justify-content:space-between;padding:60px}.tribe-ea .tribe-notice-tribe-missing-aggregator-license .tribe-notice-tribe-missing-aggregator-license__image{background-image:url(../images/aggregator/ea-intro-img-text.png);background-position:100%;background-repeat:no-repeat;background-size:contain;display:none;margin-left:30px}.tribe-ea .tribe-notice-tribe-missing-aggregator-license .upsell-banner{background:url(../images/aggregator/EventAggregator-icon.svg) transparent no-repeat;background-position:0;background-size:contain;font-family:apercu-mono-bold,monospace;height:43px;line-height:43px;margin:0 auto 30px;padding-left:60px}.tribe-ea .tribe-notice-tribe-missing-aggregator-license h3{color:#141827;font-size:40px;font-weight:700;letter-spacing:1.5px;line-height:1.2;margin:28px 0 0}.tribe-ea .tribe-notice-tribe-missing-aggregator-license p{color:#141827;font-size:16px;font-weight:300;letter-spacing:2px;margin:15px 0 30px}.tribe-ea .tribe-notice-tribe-missing-aggregator-license a:not(.tribe-button){color:#abd8e8}.tribe-ea .tribe-notice-tribe-missing-aggregator-license a:not(.tribe-button):active,.tribe-ea .tribe-notice-tribe-missing-aggregator-license a:not(.tribe-button):hover{color:#cbe1e8}.tribe-ea .tribe-banner.tribe-active.tribe-dependent,.tribe-ea .tribe-notice-tribe-missing-aggregator-license.tribe-dependent.tribe-active{display:flex}.tribe-ea .tribe-banner{align-items:center;display:flex;flex:1 1 auto;justify-content:center}.tribe-ea .tribe-banner.tribe-banner-eventbrite-tickets{background-image:linear-gradient(135deg,#0178ba,#0178ba 25%,#01bdac 65%,#01bdac);background-size:cover;padding:0;text-align:center}.tribe-ea .tribe-banner.tribe-banner-eventbrite-tickets h3{color:#fff;font-size:26px;font-weight:400;letter-spacing:1px;padding:0 45px}.tribe-ea .tribe-banner.tribe-banner-eventbrite-tickets img{max-width:165px}.tribe-ea .tribe-button{border:1px solid;border-radius:3px;color:#fff;display:inline-block;font-size:13px;font-weight:300;letter-spacing:1.5px;padding:15px 30px;text-decoration:none;text-transform:uppercase}.tribe-ea .tribe-button-primary{background:#000;border-color:#000;margin-right:5px}.tribe-ea .tribe-button-secondary{background:#334aff;border-color:#334aff;border-radius:40px;font-size:16px;font-weight:700;margin-left:0;margin-top:6px;padding:20px 50px;text-transform:none}.tribe-ea .dataTables_filter,.tribe-ea .dataTables_length{line-height:28px;margin-bottom:.5rem}.tribe-ea .dataTables_filter select,.tribe-ea .dataTables_length select{margin-top:-2px}.tribe-ea .tribe-view-filters.tribe-active+.tribe-filters{display:block}.tribe-ea dl.tribe-filters{display:none;margin-left:.5rem;margin-top:0}.tribe-ea dl.tribe-filters dt{clear:left;display:inline-block;font-weight:700;margin-right:.25rem}.tribe-ea dl.tribe-filters dd{display:inline;margin-left:0}.tribe-ea dl.tribe-filters dd:after{content:"";display:block;margin-bottom:.25rem}.tribe-ea .widefat td p{margin-bottom:.25em}.tribe-ea .tribe-ea-login-button{margin-left:2rem;margin-top:1rem}.tribe-ea-table-container{background-color:#fafafa;border:1px solid #e7e7e7;min-height:25px;padding:.5rem}.tribe-preview-container{display:none;margin-top:.5rem;padding-left:1rem;padding-right:1rem}.edit-form .tribe-preview-container,.show-data .tribe-preview-container,.tribe-preview-container.tribe-fetch-error,.tribe-preview-container.tribe-fetched,.tribe-preview-container.tribe-fetching{display:block}.tribe-preview-container.tribe-fetching .spinner-container{display:block;text-align:center}.tribe-preview-container.tribe-fetch-error .tribe-fetch-error-message{display:block}.tribe-preview-container .data-container{display:none}.tribe-preview-container .data-container.csv-data #tribe-csv-preview-message{display:block}.tribe-preview-container .data-container.csv-data #tribe-remote-preview-message{display:none}.tribe-preview-container .data-container #tribe-remote-preview-message{display:block}.tribe-preview-container>td{padding-left:0;padding-right:0}.tribe-preview-container .tribe-column-end-date,.tribe-preview-container .tribe-column-start-date,.tribe-preview-container .tribe-column-start-time{width:8em}.tribe-preview-container .spinner-container,.tribe-preview-container .tribe-fetch-error-message{display:none}.tribe-preview-container .spinner{float:none;margin-left:auto;margin-right:auto;visibility:visible}.tribe-preview-container .spinner-message{display:block;margin-top:.25rem}.tribe-preview-container .dataTable{float:left}.tribe-preview-container .dataTable .check-column input,.tribe-preview-container .dataTable .column-cb input{display:none}.tribe-preview-container .dataTable tfoot th,.tribe-preview-container .dataTable thead th{padding-right:20px;white-space:nowrap}.tribe-preview-container .dataTable thead tr+tr th{background:#f3f3f3;border-bottom:0;font-weight:700}.tribe-preview-container .tribe-td-height-limit{max-height:50px;overflow:hidden}.tribe-preview-container .display-checkboxes .check-column input,.tribe-preview-container .display-checkboxes .column-cb input{display:inline-block}.tribe-preview-container .tribe-preview-message{display:none;font-weight:700;line-height:26px}.tribe-preview-container #tribe-ea-field-post_status+label{margin-left:1rem}.tribe-default-settings{display:none;overflow:hidden;padding-bottom:1rem;padding-top:1rem}.tribe-default-settings label{display:inline-block;line-height:26px}.edit-form .tribe-default-settings,.edit-form .tribe-finalize-container,.show-data .data-container,.show-data .tribe-default-settings,.show-data .tribe-finalize-container{display:block}.edit-form .tribe-cancel{display:inline-block}.tribe-ea-form .tribe-bumpdown-manual,.tribe-ea-form .tribe-bumpdown-scheduled,.tribe-ea-form[data-origin=csv] .dataTables_filter,.tribe-ea-form[data-origin=csv] .dataTables_info,.tribe-ea-form[data-origin=csv] .dataTables_length,.tribe-ea-form[data-origin=csv] .dataTables_paginate{display:none}.tribe-ea-form[data-type=manual] .tribe-bumpdown-manual,.tribe-ea-form[data-type=schedule] .tribe-bumpdown-scheduled{display:inline-block}.tribe-cancel{display:none}.tribe-finalize-container{display:none;padding-top:1.5rem}.tribe-finalize-container .tribe-timezone-message{font-style:italic;padding-top:.5rem}.tribe-finalize-container .tribe-limits-message{font-style:italic;margin:1em 0 -1.5em;padding:0}.tribe-message-loader,.tribe-notice-aggregator-update-msg{display:none}.tribe-notice-aggregator-update-msg .progress{border:1px solid #ccc;float:left;margin-right:1rem;padding:1px;width:18rem}.tribe-notice-aggregator-update-msg .progress .bar{background:#ffba00;height:1rem;width:1%}.tribe-notice-aggregator-update-msg .tracker{margin:0;padding:0}.tribe-notice-aggregator-update-msg .tracker .tracked-item{display:none;margin:.25rem 0}.tribe-notice-aggregator-update-msg .tracker.has-created,.tribe-notice-aggregator-update-msg .tracker.has-skipped,.tribe-notice-aggregator-update-msg .tracker.has-updated{padding-bottom:.25rem}.tribe-notice-aggregator-update-msg .tracker.has-created .track-created,.tribe-notice-aggregator-update-msg .tracker.has-created .track-remaining,.tribe-notice-aggregator-update-msg .tracker.has-skipped .track-remaining,.tribe-notice-aggregator-update-msg .tracker.has-skipped .track-skipped,.tribe-notice-aggregator-update-msg .tracker.has-updated .track-remaining,.tribe-notice-aggregator-update-msg .tracker.has-updated .track-updated,.tribe_events_page_aggregator .tribe-notice-aggregator-update-msg{display:block}.tribe-ea-tab-edit .tribe-bumpdown-trigger.tribe-ea-help{display:none}.select2-disabled{color:gray;cursor:default;margin-bottom:0}.tribe-dropdown-subtitle{color:gray;font-size:11px}.select2-highlighted .tribe-dropdown-subtitle{color:#fff}.tribe-aggregator-inactive .tribe-ea-tab-scheduled .widefat p,.tribe-aggregator-inactive .tribe-ea-tab-scheduled .widefat td,.tribe-aggregator-inactive .tribe-ea-tab-scheduled .widefat ul{color:#ccc}.tribe-ea-field-wrapper-post_status{min-width:275px}.tribe-ea-field-wrapper-post_status.tribe-active{float:left}.tec-admin-ea-help-message__icon{height:20px;width:auto;margin:0 7px -4px}@media screen and (min-width:1260px){.tribe-ea .tribe-notice-tribe-missing-aggregator-license .tribe-notice-tribe-missing-aggregator-license__content{width:50%}.tribe-ea .tribe-notice-tribe-missing-aggregator-license .tribe-notice-tribe-missing-aggregator-license__image{display:block;flex:auto}.tribe-ea .tribe-notice-tribe-missing-aggregator-license h3{font-size:68px;max-width:510px}.tribe-ea .tribe-notice-tribe-missing-aggregator-license p{font-size:22px;max-width:730px}.tribe-ea .tribe-button-secondary{font-size:20px;padding:26px 63px}}@media screen and (max-width:782px){.tribe-ea .form-table td{padding-right:0}.tribe-ea .form-table td input[type=text]{display:inline-block;width:92%}.tribe-ea td.tribe-dependent.tribe-active{display:block}.tribe-ea input+.tribe-ea-help{line-height:30px}}
|
src/resources/css/views-full.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
:root{--tec-color-text-events-title-day:var(--tec-color-text-events-title);--tec-color-text-events-title-latest-past:var(--tec-color-text-events-title);--tec-color-text-event-title-list:var(--tec-color-text-events-title);--tec-color-text-events-title-month-multiday:var(--tec-color-text-events-title);--tec-color-text-events-title-widget-list:var(--tec-color-text-events-title);--tec-color-text-event-date-secondary-month:var(--tec-color-text-event-date-secondary);--tec-color-text-event-date-secondary-month-mobile:var(--tec-color-text-event-date-secondary-month);--tec-color-text-day-of-week-month:var(--tec-color-text-secondary);--tec-color-day-marker-month:var(--tec-color-text-primary);--tec-color-day-marker-month-hover:var(--tec-color-text-primary-hover);--tec-color-day-marker-month-active:var(--tec-color-text-primary-active);--tec-color-day-marker-current-month:var(--tec-color-day-marker-month);--tec-color-day-marker-current-month-hover:var(--tec-color-day-marker-month-hover);--tec-color-day-marker-current-month-active:var(--tec-color-day-marker-month-active);--tec-color-day-marker-past-month:var(--tec-color-text-primary);--tec-color-day-marker-past-month-hover:var(--tec-color-day-marker-past-month);--tec-color-day-marker-past-month-active:var(--tec-color-day-marker-past-month);--tec-color-text-day-of-week-week:var(--tec-color-text-secondary);--tec-border-radius-month-multiday:9.5px;--tec-color-border-secondary-month-grid:var(--tec-color-border-secondary);--tec-color-border-active-month-grid-hover:var(--tec-color-border-active);--tec-color-background-month-grid:transparent;--tec-color-background-tooltip:var(--tec-color-background);--tec-color-text-events-bar-input:var(--tec-color-text-primary);--tec-color-text-events-bar-input-placeholder:var(--tec-color-text-secondary);--tec-opacity-events-bar-input-placeholder:var(--tec-opacity-default);--tec-color-border-events-bar:var(--tec-color-border-secondary);--tec-color-background-events-bar:var(--tec-color-background);--tec-color-background-view-selector:var(--tec-color-background-events-bar);--tec-color-background-view-selector-tabs:var(--tec-color-background-view-selector);--tec-color-background-view-selector-list-item-hover:var(--tec-color-background-secondary);--tec-color-background-subscribe-list-item-hover:var(--tec-color-background-secondary);--tec-color-text-view-selector-list-item:var(--tec-color-text-primary);--tec-color-text-view-selector-list-item-hover:var(--tec-color-accent-secondary-hover);--tec-color-background-search-container:var(--tec-color-background-events-bar);--tec-color-text-events-bar-submit-button:var(--tec-color-background);--tec-color-text-events-bar-submit-button-active:var(--tec-color-text-events-bar-submit-button);--tec-color-text-events-bar-submit-button-hover:var(--tec-color-text-events-bar-submit-button);--tec-color-background-events-bar-submit-button:var(--tec-color-button-primary);--tec-color-background-events-bar-submit-button-hover:var(--tec-color-button-primary-hover);--tec-color-background-events-bar-submit-button-active:var(--tec-color-button-primary-active);--tec-color-icon-events-bar:var(--tec-color-icon-primary);--tec-color-icon-events-bar-active:var(--tec-color-icon-active);--tec-color-icon-events-bar-hover:var(--tec-color-icon-hover)}.tribe-events-view{background-color:var(--tec-color-background-events)}.tribe-events .tribe-events-c-breadcrumbs__list{font-family:var(--tec-font-family-base);font-size:24px;line-height:var(--tec-line-height-1)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-breadcrumbs__list{font-size:42px;line-height:var(--tec-line-height-0)}.tribe-events .tribe-events-c-breadcrumbs__list-item-link{color:var(--tec-color-text-secondary);transition:var(--tec-transition-color)}.tribe-events .tribe-events-c-breadcrumbs__list-item-link:visited{color:var(--tec-color-text-secondary)}.tribe-events .tribe-events-c-breadcrumbs__list-item-link:focus,.tribe-events .tribe-events-c-breadcrumbs__list-item-link:hover{color:var(--tec-color-text-primary)}.tribe-events .tribe-events-c-breadcrumbs__list-item-icon-svg path{fill:var(--tec-color-icon-primary)}.tribe-events .datepicker{background-color:var(--tec-color-background);border:1px solid var(--tec-color-border-default);border-radius:var(--tec-border-radius-default);box-shadow:var(--tec-box-shadow-tooltip)}.tribe-events .datepicker:after,.tribe-events .datepicker:before{content:none}.tribe-events .datepicker .datepicker-switch:active,.tribe-events .datepicker .datepicker-switch:focus,.tribe-events .datepicker .datepicker-switch:hover,.tribe-events .datepicker .next:active,.tribe-events .datepicker .next:focus,.tribe-events .datepicker .next:hover,.tribe-events .datepicker .prev:active,.tribe-events .datepicker .prev:focus,.tribe-events .datepicker .prev:hover{background-color:var(--tec-color-background)}.tribe-events .datepicker .datepicker-switch{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-3);line-height:var(--tec-line-height-3);font-weight:var(--tec-font-weight-regular)}.tribe-events .datepicker .datepicker-switch:focus,.tribe-events .datepicker .datepicker-switch:hover{color:var(--tec-color-accent-secondary-hover)}.tribe-events .datepicker .datepicker-switch:active{color:var(--tec-color-accent-secondary-active)}.tribe-events .datepicker .next:active .tribe-events-c-top-bar__datepicker-nav-icon-svg path,.tribe-events .datepicker .next:focus .tribe-events-c-top-bar__datepicker-nav-icon-svg path,.tribe-events .datepicker .next:hover .tribe-events-c-top-bar__datepicker-nav-icon-svg path,.tribe-events .datepicker .prev:active .tribe-events-c-top-bar__datepicker-nav-icon-svg path,.tribe-events .datepicker .prev:focus .tribe-events-c-top-bar__datepicker-nav-icon-svg path,.tribe-events .datepicker .prev:hover .tribe-events-c-top-bar__datepicker-nav-icon-svg path{fill:var(--tec-color-icon-active)}.tribe-events .datepicker .next .tribe-events-c-top-bar__datepicker-nav-icon-svg path,.tribe-events .datepicker .prev .tribe-events-c-top-bar__datepicker-nav-icon-svg path{fill:var(--tec-color-icon-secondary)}.tribe-events .datepicker .dow{font-size:var(--tec-font-size-0);line-height:var(--tec-line-height-2)}.tribe-events .datepicker .day,.tribe-events .datepicker .dow{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-regular)}.tribe-events .datepicker .day{font-size:var(--tec-font-size-3);line-height:var(--tec-line-height-3)}.tribe-events .datepicker .month,.tribe-events .datepicker .year{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-1);line-height:var(--tec-line-height-0);font-weight:var(--tec-font-weight-regular)}.tribe-events .datepicker .past{color:var(--tec-color-text-primary-light)}.tribe-events .datepicker .day,.tribe-events .datepicker .month,.tribe-events .datepicker .year{border-radius:var(--tec-border-radius-default)}.tribe-events .datepicker .day.focused,.tribe-events .datepicker .day:focus,.tribe-events .datepicker .day:hover,.tribe-events .datepicker .month.focused,.tribe-events .datepicker .month:focus,.tribe-events .datepicker .month:hover,.tribe-events .datepicker .year.focused,.tribe-events .datepicker .year:focus,.tribe-events .datepicker .year:hover{background:var(--tec-color-background-secondary-datepicker)}.tribe-events .datepicker .day.current,.tribe-events .datepicker .day.current.focused,.tribe-events .datepicker .day.current:focus,.tribe-events .datepicker .day.current:hover,.tribe-events .datepicker .month.current,.tribe-events .datepicker .month.current.focused,.tribe-events .datepicker .month.current:focus,.tribe-events .datepicker .month.current:hover,.tribe-events .datepicker .year.current,.tribe-events .datepicker .year.current.focused,.tribe-events .datepicker .year.current:focus,.tribe-events .datepicker .year.current:hover{background:var(--tec-color-accent-primary-background-datepicker)}.tribe-events .datepicker .day.active,.tribe-events .datepicker .day.active.focused,.tribe-events .datepicker .day.active:focus,.tribe-events .datepicker .day.active:hover,.tribe-events .datepicker .month.active,.tribe-events .datepicker .month.active.focused,.tribe-events .datepicker .month.active:focus,.tribe-events .datepicker .month.active:hover,.tribe-events .datepicker .year.active,.tribe-events .datepicker .year.active.focused,.tribe-events .datepicker .year.active:focus,.tribe-events .datepicker .year.active:hover{background:var(--tec-color-accent-primary);color:var(--tec-color-background);text-shadow:none}.admin-bar .tribe-events .datepicker{margin-top:var(--tec-spacer-1)}.admin-bar .tribe-events.tribe-common--breakpoint-medium .datepicker{margin-top:var(--tec-spacer-3)}.tribe-theme-enfold .tribe-events .datepicker{border:1px solid var(--tec-color-border-default);border-radius:var(--tec-border-radius-default);box-shadow:var(--tec-box-shadow-tooltip)}.tribe-theme-enfold .tribe-events .datepicker table,.tribe-theme-enfold .tribe-events .datepicker td,.tribe-theme-enfold .tribe-events .datepicker th,.tribe-theme-enfold .tribe-events .datepicker tr{background:transparent}.tribe-theme-enfold .tribe-events .datepicker .datepicker-switch{color:var(--tec-color-text-primary)!important}.tribe-theme-enfold .tribe-events .datepicker .datepicker-switch:focus,.tribe-theme-enfold .tribe-events .datepicker .datepicker-switch:hover{color:var(--tec-color-accent-secondary-hover)!important}.tribe-theme-enfold .tribe-events .datepicker .datepicker-switch:active{color:var(--tec-color-accent-secondary-active)!important}.tribe-theme-enfold .tribe-events .datepicker .day{background-color:var(--tec-color-background)}.tribe-theme-enfold .tribe-events .datepicker .day.new,.tribe-theme-enfold .tribe-events .datepicker .day.old{opacity:1}.tribe-theme-enfold .tribe-events .datepicker .day,.tribe-theme-enfold .tribe-events .datepicker .month,.tribe-theme-enfold .tribe-events .datepicker .year{background-color:var(--tec-color-background);color:var(--tec-color-text-primary)}.tribe-theme-enfold .tribe-events .datepicker .day.focused,.tribe-theme-enfold .tribe-events .datepicker .day:focus,.tribe-theme-enfold .tribe-events .datepicker .day:hover,.tribe-theme-enfold .tribe-events .datepicker .month.focused,.tribe-theme-enfold .tribe-events .datepicker .month:focus,.tribe-theme-enfold .tribe-events .datepicker .month:hover,.tribe-theme-enfold .tribe-events .datepicker .year.focused,.tribe-theme-enfold .tribe-events .datepicker .year:focus,.tribe-theme-enfold .tribe-events .datepicker .year:hover{background:var(--tec-color-background-secondary-datepicker)}.tribe-theme-enfold .tribe-events .datepicker .day.past,.tribe-theme-enfold .tribe-events .datepicker .month.past,.tribe-theme-enfold .tribe-events .datepicker .year.past{color:var(--tec-color-text-primary-light)}.tribe-theme-enfold .tribe-events .datepicker .day.current,.tribe-theme-enfold .tribe-events .datepicker .day.current.focused,.tribe-theme-enfold .tribe-events .datepicker .day.current:focus,.tribe-theme-enfold .tribe-events .datepicker .day.current:hover,.tribe-theme-enfold .tribe-events .datepicker .month.current,.tribe-theme-enfold .tribe-events .datepicker .month.current.focused,.tribe-theme-enfold .tribe-events .datepicker .month.current:focus,.tribe-theme-enfold .tribe-events .datepicker .month.current:hover,.tribe-theme-enfold .tribe-events .datepicker .year.current,.tribe-theme-enfold .tribe-events .datepicker .year.current.focused,.tribe-theme-enfold .tribe-events .datepicker .year.current:focus,.tribe-theme-enfold .tribe-events .datepicker .year.current:hover{background:var(--tec-color-accent-primary-background-datepicker)}.tribe-theme-enfold .tribe-events .datepicker .day.active,.tribe-theme-enfold .tribe-events .datepicker .day.active.focused,.tribe-theme-enfold .tribe-events .datepicker .day.active:focus,.tribe-theme-enfold .tribe-events .datepicker .day.active:hover,.tribe-theme-enfold .tribe-events .datepicker .month.active,.tribe-theme-enfold .tribe-events .datepicker .month.active.focused,.tribe-theme-enfold .tribe-events .datepicker .month.active:focus,.tribe-theme-enfold .tribe-events .datepicker .month.active:hover,.tribe-theme-enfold .tribe-events .datepicker .year.active,.tribe-theme-enfold .tribe-events .datepicker .year.active.focused,.tribe-theme-enfold .tribe-events .datepicker .year.active:focus,.tribe-theme-enfold .tribe-events .datepicker .year.active:hover{background:var(--tec-color-accent-primary);color:var(--tec-color-background)}.tribe-theme-avada .tribe-events .datepicker{border:1px solid var(--tec-color-border-default);border-radius:var(--tec-border-radius-default)}.tribe-theme-avada .tribe-events .datepicker tbody td{border:0}.tribe-theme-avada .tribe-events .datepicker .datepicker-switch,.tribe-theme-avada .tribe-events .datepicker .datepicker-switch:hover,.tribe-theme-avada .tribe-events .datepicker .next,.tribe-theme-avada .tribe-events .datepicker .next:hover,.tribe-theme-avada .tribe-events .datepicker .prev,.tribe-theme-avada .tribe-events .datepicker .prev:hover{background-color:var(--tec-color-background)}.tribe-theme-avada .tribe-events .datepicker .day.new,.tribe-theme-avada .tribe-events .datepicker .day.old{background-color:transparent!important;color:var(--tec-color-text-primary)!important}.tribe-theme-avada .tribe-events .datepicker .day.new.focused,.tribe-theme-avada .tribe-events .datepicker .day.new:focus,.tribe-theme-avada .tribe-events .datepicker .day.new:hover,.tribe-theme-avada .tribe-events .datepicker .day.old.focused,.tribe-theme-avada .tribe-events .datepicker .day.old:focus,.tribe-theme-avada .tribe-events .datepicker .day.old:hover{background:var(--tec-color-background-secondary-datepicker)!important}.tribe-theme-avada .tribe-events .datepicker .day,.tribe-theme-avada .tribe-events .datepicker .month{background-color:transparent;color:var(--tec-color-text-primary)}.tribe-theme-avada .tribe-events .datepicker .day.focused,.tribe-theme-avada .tribe-events .datepicker .day:focus,.tribe-theme-avada .tribe-events .datepicker .day:hover,.tribe-theme-avada .tribe-events .datepicker .month.focused,.tribe-theme-avada .tribe-events .datepicker .month:focus,.tribe-theme-avada .tribe-events .datepicker .month:hover{background:var(--tec-color-background-secondary-datepicker)}.tribe-theme-avada .tribe-events .datepicker .day.past,.tribe-theme-avada .tribe-events .datepicker .month.past{color:var(--tec-color-text-primary-light)!important}.tribe-theme-avada .tribe-events .datepicker .day.current,.tribe-theme-avada .tribe-events .datepicker .day.current.focused,.tribe-theme-avada .tribe-events .datepicker .day.current:focus,.tribe-theme-avada .tribe-events .datepicker .day.current:hover,.tribe-theme-avada .tribe-events .datepicker .month.current,.tribe-theme-avada .tribe-events .datepicker .month.current.focused,.tribe-theme-avada .tribe-events .datepicker .month.current:focus,.tribe-theme-avada .tribe-events .datepicker .month.current:hover{background:var(--tec-color-accent-primary-background-datepicker)}.tribe-theme-avada .tribe-events .datepicker .day.active,.tribe-theme-avada .tribe-events .datepicker .day.active.focused,.tribe-theme-avada .tribe-events .datepicker .day.active:focus,.tribe-theme-avada .tribe-events .datepicker .day.active:hover,.tribe-theme-avada .tribe-events .datepicker .month.active,.tribe-theme-avada .tribe-events .datepicker .month.active.focused,.tribe-theme-avada .tribe-events .datepicker .month.active:focus,.tribe-theme-avada .tribe-events .datepicker .month.active:hover{background:var(--tec-color-accent-primary)!important;color:var(--tec-color-background)!important}.tribe-events .tribe-events-c-day-marker:after{background-color:var(--tec-color-border-default);content:"";display:block;flex:auto;height:1px;margin-left:20px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-header--has-event-search .tribe-events-c-events-bar{background-color:var(--tec-color-background-events-bar)}.tribe-events .tribe-events-c-events-bar .tribe-common-form-control-text__input{background-color:transparent;color:var(--tec-color-text-events-bar-input)}.tribe-events .tribe-events-c-events-bar .tribe-common-form-control-text__input::placeholder{color:var(--tec-color-text-events-bar-input-placeholder);opacity:var(--tec-opacity-events-bar-input-placeholder)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-events-bar--border{border:1px solid var(--tec-color-border-events-bar)}.tribe-events .tribe-events-c-events-bar__search-container{background-color:var(--tec-color-background-events-bar)}.tribe-events .tribe-events-c-events-bar__search-button{display:flex}.tribe-events .tribe-events-c-events-bar__search-button:focus,.tribe-events .tribe-events-c-events-bar__search-button:hover{opacity:var(--tec-opacity-icon-hover)}.tribe-events .tribe-events-c-events-bar__search-button:active{opacity:var(--tec-opacity-icon-active)}.tribe-events .tribe-events-c-events-bar__search-button:before{background-color:var(--tec-color-icon-events-bar-hover);content:"";display:none;height:2px;pointer-events:none;position:absolute;top:100%;transform:translateY(var(--tec-spacer-0));width:calc(100% - var(--tec-spacer-0)*2)}.tribe-events .tribe-events-c-events-bar__search-button--active:before{display:block}.tribe-events .tribe-events-c-events-bar__search-button-icon-svg path{fill:var(--tec-color-icon-events-bar-active)}.tribe-theme-twentyseventeen.colors-dark .tribe-events .tribe-events-c-events-bar__search-button,.tribe-theme-twentyseventeen.colors-dark .tribe-events .tribe-events-c-events-bar__search-button:focus,.tribe-theme-twentyseventeen.colors-dark .tribe-events .tribe-events-c-events-bar__search-button:hover{background-color:transparent}.single-tribe_events .tribe-events-c-ical__link,.single-tribe_events .tribe-events-c-ical__link:visited,.tribe-events .tribe-events-c-ical__link,.tribe-events .tribe-events-c-ical__link:visited{align-items:center;background-color:var(--tec-color-background);border:1px solid var(--tec-color-accent-primary);border-radius:var(--tec-border-radius-default);color:var(--tec-color-accent-primary);font-weight:var(--tec-font-weight-bold)}.single-tribe_events .tribe-events-c-ical__link:active,.single-tribe_events .tribe-events-c-ical__link:focus,.single-tribe_events .tribe-events-c-ical__link:focus-within,.single-tribe_events .tribe-events-c-ical__link:hover,.tribe-events .tribe-events-c-ical__link:active,.tribe-events .tribe-events-c-ical__link:focus,.tribe-events .tribe-events-c-ical__link:focus-within,.tribe-events .tribe-events-c-ical__link:hover{background-color:var(--tec-color-accent-primary);color:var(--tec-color-background)}.single-tribe_events .tribe-events-c-ical__link:active .tribe-events-c-ical__link-icon-svg path,.single-tribe_events .tribe-events-c-ical__link:focus-within .tribe-events-c-ical__link-icon-svg path,.single-tribe_events .tribe-events-c-ical__link:focus .tribe-events-c-ical__link-icon-svg path,.single-tribe_events .tribe-events-c-ical__link:hover .tribe-events-c-ical__link-icon-svg path,.tribe-events .tribe-events-c-ical__link:active .tribe-events-c-ical__link-icon-svg path,.tribe-events .tribe-events-c-ical__link:focus-within .tribe-events-c-ical__link-icon-svg path,.tribe-events .tribe-events-c-ical__link:focus .tribe-events-c-ical__link-icon-svg path,.tribe-events .tribe-events-c-ical__link:hover .tribe-events-c-ical__link-icon-svg path{stroke:var(--tec-color-background)}.single-tribe_events .tribe-events-c-ical__link-icon-svg,.tribe-events .tribe-events-c-ical__link-icon-svg{display:block;flex:none;margin-right:var(--tec-spacer-1);width:10px}.single-tribe_events .tribe-events-c-ical__link-icon-svg path,.tribe-events .tribe-events-c-ical__link-icon-svg path{stroke:currentColor}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button.tribe-events-c-subscribe-dropdown__button--active,.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button:focus,.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button:focus-within,.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button:hover,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button.tribe-events-c-subscribe-dropdown__button--active,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button:focus,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button:focus-within,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button:hover{background-color:var(--tec-color-accent-primary);color:var(--tec-color-background)}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button-text,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button-text{cursor:pointer}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button-icon,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button-icon{color:currentColor;stroke:currentColor}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button-icon path,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button-icon path{fill:currentColor}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list{background-color:var(--tec-color-background);border:1px solid var(--tec-color-border-secondary);border-radius:var(--tec-border-radius-default);box-shadow:var(--tec-box-shadow-default)}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif)}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item:active,.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item:focus,.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item:focus-within,.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item:hover,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item:active,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item:focus,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item:focus-within,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item:hover{background-color:var(--tec-color-background-subscribe-list-item-hover)}.tribe-theme-twentyseventeen .single-tribe_events .tribe-events-c-ical__link:active,.tribe-theme-twentyseventeen .single-tribe_events .tribe-events-c-ical__link:focus,.tribe-theme-twentyseventeen .single-tribe_events .tribe-events-c-ical__link:hover,.tribe-theme-twentyseventeen .tribe-events .tribe-events-c-ical__link:active,.tribe-theme-twentyseventeen .tribe-events .tribe-events-c-ical__link:focus,.tribe-theme-twentyseventeen .tribe-events .tribe-events-c-ical__link:hover{color:var(--tec-color-background)}.tribe-theme-twentytwentyone .single-tribe_events .tribe-events-c-ical__link:focus:not(.wp-block-button__link):not(.wp-block-file__button),.tribe-theme-twentytwentyone .tribe-events .tribe-events-c-ical__link:focus:not(.wp-block-button__link):not(.wp-block-file__button){background-color:var(--tec-color-accent-primary);color:var(--tec-color-background)}.tribe-theme-twentytwentyone .single-tribe_events .tribe-events-c-subscribe-dropdown__list-item a:focus,.tribe-theme-twentytwentyone .single-tribe_events .tribe-events-c-subscribe-dropdown__list-item a:focus-within,.tribe-theme-twentytwentyone .single-tribe_events .tribe-events-c-subscribe-dropdown__list-item a:hover,.tribe-theme-twentytwentyone .tribe-events .tribe-events-c-subscribe-dropdown__list-item a:focus,.tribe-theme-twentytwentyone .tribe-events .tribe-events-c-subscribe-dropdown__list-item a:focus-within,.tribe-theme-twentytwentyone .tribe-events .tribe-events-c-subscribe-dropdown__list-item a:hover{background-color:transparent!important}.single-tribe_events .tribe-events-c-ical,.tribe-block__events-link .tribe-events-c-ical{text-align:left}.single-tribe_events .tribe-events-c-ical__link,.tribe-block__events-link .tribe-events-c-ical__link{color:var(--tec-color-accent-primary);font-size:var(--tec-font-size-2);margin:0 0 var(--tec-spacer-3);width:220px}.single-tribe_events .tribe-events .tribe-events-c-subscribe-dropdown__container,.tribe-block__events-link .tribe-events .tribe-events-c-subscribe-dropdown__container{width:200px}.single-tribe_events .tribe-events .tribe-events-c-subscribe-dropdown,.tribe-block__events-link .tribe-events .tribe-events-c-subscribe-dropdown{position:relative}.single-tribe_events .tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__content,.tribe-block__events-link .tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__content{position:absolute;top:42px;width:100%;z-index:var(--tec-z-index-dropdown)}.single-tribe_events .tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button-icon,.tribe-block__events-link .tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button-icon{margin-left:var(--tec-spacer-2)}.single-tribe_events .tribe-events-c-subscribe-dropdown__button,.tribe-block__events-link .tribe-events-c-subscribe-dropdown__button{padding:var(--tec-spacer-1) var(--tec-spacer-2);width:200px}.single-tribe_events .tribe-events-c-subscribe-dropdown__export-icon,.tribe-block__events-link .tribe-events-c-subscribe-dropdown__export-icon{color:currentColor;display:inline-block;height:16px;margin-right:var(--tec-spacer-1);margin-top:-3px;stroke:currentColor;vertical-align:middle;width:21px}#tribe-events-content .tribe-block__events-link .tribe-events-c-ical__link{color:var(--tec-color-accent-primary)}#tribe-events-content .tribe-block__events-link .tribe-events-c-ical__link:hover{color:#fff}.tribe-events .tribe-events-c-messages__message{background-color:var(--tec-color-background-messages);border-radius:var(--tec-border-radius-default)}.tribe-events .tribe-events-c-messages__message--notice .tribe-events-c-messages__message-icon-svg{display:inline-block;margin-right:var(--tec-spacer-2)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-messages__message-list{text-align:center}.tribe-events .tribe-events-c-messages__message-list-item-link{font-weight:var(--tec-font-weight-bold)}.tribe-events .tribe-events-c-nav{border-top:1px solid var(--tec-color-border-default)}.tribe-events .tribe-events-c-nav__list{list-style:none}.tribe-events .tribe-events-c-nav__next-label-plural,.tribe-events .tribe-events-c-nav__prev-label-plural{white-space:pre}.tribe-events .tribe-events-c-nav__today:focus,.tribe-events .tribe-events-c-nav__today:hover{color:var(--tec-color-accent-secondary-hover)}.tribe-events .tribe-events-c-nav__today:active{color:var(--tec-color-text-primary)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-nav__next,.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-nav__prev{color:var(--tec-color-text-secondary)}.tribe-events .tribe-events-c-nav__next:focus,.tribe-events .tribe-events-c-nav__next:hover,.tribe-events .tribe-events-c-nav__prev:focus,.tribe-events .tribe-events-c-nav__prev:hover{color:var(--tec-color-accent-secondary-hover)}.tribe-events .tribe-events-c-nav__next:active,.tribe-events .tribe-events-c-nav__prev:active{color:var(--tec-color-text-primary)}.tribe-events .tribe-events-c-nav__next:disabled,.tribe-events .tribe-events-c-nav__prev:disabled{background-color:transparent;color:var(--tec-color-text-disabled)}.tribe-events .tribe-events-c-nav__prev:focus .tribe-events-c-nav__prev-icon-svg,.tribe-events .tribe-events-c-nav__prev:hover .tribe-events-c-nav__prev-icon-svg{opacity:var(--tec-opacity-icon-hover)}.tribe-events .tribe-events-c-nav__prev:focus .tribe-events-c-nav__prev-icon-svg path,.tribe-events .tribe-events-c-nav__prev:hover .tribe-events-c-nav__prev-icon-svg path{fill:var(--tec-color-icon-active)}.tribe-events .tribe-events-c-nav__prev:active:before{opacity:var(--tec-opacity-default)}.tribe-events .tribe-events-c-nav__prev:disabled .tribe-events-c-nav__prev-icon-svg path{fill:var(--tec-color-icon-disabled)}.tribe-events .tribe-events-c-nav__prev-icon-svg{display:block;margin-right:8px;width:7px}.tribe-events .tribe-events-c-nav__prev-icon-svg path{fill:var(--tec-color-icon-active)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-nav__prev-icon-svg{margin-right:15px;width:9px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-nav__prev-icon-svg path{fill:var(--tec-color-icon-primary)}.tribe-events .tribe-events-c-nav__next:focus .tribe-events-c-nav__next-icon-svg,.tribe-events .tribe-events-c-nav__next:hover .tribe-events-c-nav__next-icon-svg{opacity:var(--tec-opacity-icon-hover)}.tribe-events .tribe-events-c-nav__next:focus .tribe-events-c-nav__next-icon-svg path,.tribe-events .tribe-events-c-nav__next:hover .tribe-events-c-nav__next-icon-svg path{fill:var(--tec-color-icon-active)}.tribe-events .tribe-events-c-nav__next:active:after{opacity:var(--tec-opacity-default)}.tribe-events .tribe-events-c-nav__next:disabled .tribe-events-c-nav__next-icon-svg path{fill:var(--tec-color-icon-disabled)}.tribe-events .tribe-events-c-nav__next-icon-svg{display:block;margin-left:8px;width:7px}.tribe-events .tribe-events-c-nav__next-icon-svg path{fill:var(--tec-color-icon-active)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-nav__next-icon-svg{margin-left:15px;width:9px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-nav__next-icon-svg path{fill:var(--tec-color-icon-primary)}.tribe-events .tribe-events-c-small-cta__stock{color:var(--tec-color-text-secondary)}.tribe-events .tribe-events-c-search__input-control{position:relative}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-search__input-control{border-right:1px solid var(--tec-color-border-events-bar)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-search__input-control:last-child{border-right:0}.tribe-events .tribe-events-c-search__input-control-icon-svg{color:var(--tec-color-icon-events-bar);display:block;position:absolute;right:0;top:50%;transform:translateY(-50%)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-search__input-control-icon-svg{left:16px;right:auto}.tribe-events .tribe-events-c-search__input-control--keyword-focus .tribe-events-c-search__input~.tribe-events-c-search__input-control-icon-svg path,.tribe-events .tribe-events-c-search__input-control--keyword .tribe-events-c-search__input:focus~.tribe-events-c-search__input-control-icon-svg path,.tribe-events .tribe-events-c-search__input-control--location-focus .tribe-events-c-search__input~.tribe-events-c-search__input-control-icon-svg path,.tribe-events .tribe-events-c-search__input-control--location .tribe-events-c-search__input:focus~.tribe-events-c-search__input-control-icon-svg path,.tribe-events .tribe-events-c-search__input-control-icon-svg path{fill:currentColor}.tribe-events .tribe-events-c-search__button{background-color:var(--tec-color-background-events-bar-submit-button);color:var(--tec-color-text-events-bar-submit-button)}.tribe-events .tribe-events-c-search__button:focus,.tribe-events .tribe-events-c-search__button:hover{background-color:var(--tec-color-background-events-bar-submit-button-hover);color:var(--tec-color-text-events-bar-submit-button-hover)}.tribe-events .tribe-events-c-search__button:active{background-color:var(--tec-color-background-events-bar-submit-button-active);color:var(--tec-color-text-events-bar-submit-button-active)}.tribe-theme-twentyseventeen.colors-dark .tribe-events .tribe-events-c-search__input{background-color:var(--tec-background-color)}.tribe-theme-twentyseventeen.colors-dark .tribe-events .tribe-events-c-search__button{background-color:var(--tec-color-background-events-bar-submit-button);color:var(--tec-color-text-events-bar-submit-button)}.tribe-theme-twentyseventeen.colors-dark .tribe-events .tribe-events-c-search__button:focus,.tribe-theme-twentyseventeen.colors-dark .tribe-events .tribe-events-c-search__button:hover{background-color:var(--tec-color-background-events-bar-submit-button-hover);color:var(--tec-color-text-events-bar-submit-button-hover)}.tribe-theme-twentyseventeen.colors-dark .tribe-events .tribe-events-c-search__button:active{background-color:var(--tec-color-background-events-bar-submit-button-active);color:var(--tec-color-text-events-bar-submit-button-active)}.tribe-theme-twentytwenty .tribe-events .tribe-events-c-search__input{background-color:var(--tec-background-color)}.tribe-theme-twentytwenty .tribe-events .tribe-events-c-search__button{background-color:var(--tec-color-background-events-bar-submit-button);color:var(--tec-color-text-events-bar-submit-button)}.tribe-theme-twentytwenty .tribe-events .tribe-events-c-search__button:focus,.tribe-theme-twentytwenty .tribe-events .tribe-events-c-search__button:hover{background-color:var(--tec-color-background-events-bar-submit-button-hover);color:var(--tec-color-text-events-bar-submit-button-hover)}.tribe-theme-twentytwenty .tribe-events .tribe-events-c-search__button:active{background-color:var(--tec-color-background-events-bar-submit-button-active);color:var(--tec-color-text-events-bar-submit-button-active)}.tribe-theme-twentytwentyone .tribe-events .tribe-events-c-search__button:not(:hover):not(:active){background-color:var(--tec-color-background-events-bar-submit-button);color:var(--tec-color-text-events-bar-submit-button)}.tooltipster-base.tribe-events-tooltip-theme{background-color:var(--tec-color-background-tooltip);border:1px solid var(--tec-color-border-default);border-radius:var(--tec-border-radius-default);box-shadow:var(--tec-box-shadow-tooltip)}.tooltipster-base.tribe-events-tooltip-theme .tooltipster-box{background-color:transparent;border:0;border-radius:0;box-shadow:none}.tooltipster-base.tribe-events-tooltip-theme .tooltipster-box .tooltipster-content{color:var(--tec-color-text-primary);overflow:inherit}.tooltipster-base.tribe-events-tooltip-theme--hover{background-color:var(--tec-color-background-tooltip)}.tribe-events .tribe-events-c-top-bar__datepicker-button{transition:var(--tec-transition-opacity)}.tribe-events .tribe-events-c-top-bar__datepicker-button:focus,.tribe-events .tribe-events-c-top-bar__datepicker-button:hover{opacity:var(--tec-opacity-icon-hover)}.tribe-events .tribe-events-c-top-bar__datepicker-button:active{opacity:var(--tec-opacity-icon-active)}.tribe-events .tribe-events-c-top-bar__datepicker-button-icon-svg{display:block;height:6px;margin-left:var(--tec-spacer-1);width:9px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-top-bar__datepicker-button-icon-svg{height:8px;width:11px}.tribe-events .tribe-events-c-top-bar__datepicker-button--open .tribe-events-c-top-bar__datepicker-button-icon-svg{transform:rotate(180deg)}.tribe-theme-genesis .tribe-events .tribe-events-c-top-bar__nav-link:disabled,.tribe-theme-genesis .tribe-events .tribe-events-c-top-bar__nav-link:focus,.tribe-theme-genesis .tribe-events .tribe-events-c-top-bar__nav-link:hover,.tribe-theme-twentyseventeen.colors-dark .tribe-events .tribe-events-c-top-bar__datepicker-button,.tribe-theme-twentyseventeen.colors-dark .tribe-events .tribe-events-c-top-bar__nav-link{background-color:transparent}.tribe-theme-twentytwentyone .tribe-events button.tribe-events-c-top-bar__datepicker-button:focus{outline-offset:0}.tribe-theme-twentytwentyone .tribe-events a.tribe-events-c-top-bar__nav-link--next.tribe-events-c-top-bar__nav-link:focus,.tribe-theme-twentytwentyone .tribe-events a.tribe-events-c-top-bar__nav-link--prev.tribe-events-c-top-bar__nav-link:focus{background:transparent}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--labels .tribe-events-c-view-selector__button:before{content:none}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--labels .tribe-events-c-view-selector__button-icon-caret-svg{color:var(--tec-color-icon-events-bar);display:block;flex:none;height:6px;margin-left:var(--tec-spacer-1);width:10px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--labels .tribe-events-c-view-selector__button-icon-caret-svg path{fill:currentColor}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--labels .tribe-events-c-view-selector__button--active .tribe-events-c-view-selector__button-icon-caret-svg{transform:rotate(180deg)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--labels .tribe-events-c-view-selector__button-text{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-2);line-height:var(--tec-line-height-3);font-weight:var(--tec-font-weight-regular);font-weight:var(--tec-font-weight-bold);color:var(--tec-color-text-view-selector-list-item)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--labels .tribe-events-c-view-selector__content{box-shadow:var(--tec-box-shadow-default)}.tribe-events .tribe-events-c-view-selector--tabs .tribe-events-c-view-selector__content{background-color:var(--tec-color-background-view-selector)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--tabs .tribe-events-c-view-selector__content{border:0;border-radius:0;box-shadow:none}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--tabs .tribe-events-c-view-selector__list-item--active .tribe-events-c-view-selector__list-item-link:after{background-color:var(--tec-color-accent-secondary);bottom:-1px;content:"";display:block;height:2px;position:absolute;width:100%}.tribe-events .tribe-events-c-view-selector__button{text-align:left}.tribe-events .tribe-events-c-view-selector__button:focus,.tribe-events .tribe-events-c-view-selector__button:hover{opacity:var(--tec-opacity-icon-hover)}.tribe-events .tribe-events-c-view-selector__button:active{opacity:var(--tec-opacity-icon-active)}.tribe-events .tribe-events-c-view-selector__button:before{background-color:var(--tec-color-accent-primary);content:"";display:none;height:2px;pointer-events:none;position:absolute;top:100%;transform:translateY(var(--tec-spacer-0));width:calc(100% - var(--tec-spacer-0)*2)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector__button:before{transform:none;width:calc(100% - var(--tec-spacer-1)*2)}.tribe-events .tribe-events-c-view-selector__button--active:before{display:block}.tribe-events .tribe-events-c-view-selector__content{background-color:var(--tec-color-background-view-selector);border:1px solid var(--tec-color-border-secondary);border-radius:var(--tec-border-radius-default);box-shadow:var(--tec-box-shadow-tooltip)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector__list-item:focus,.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector__list-item:focus-within,.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector__list-item:hover{background-color:var(--tec-color-background-view-selector-list-item-hover)}.tribe-events .tribe-events-c-view-selector__list-item-text{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-2);line-height:var(--tec-line-height-3);font-weight:var(--tec-font-weight-regular);color:var(--tec-color-text-view-selector-list-item)}.tribe-events .tribe-events-c-view-selector__list-item--active .tribe-events-c-view-selector__list-item-text{font-weight:var(--tec-font-weight-bold)}.tribe-events .tribe-events-c-view-selector__list-item-link{border-radius:var(--tec-border-radius-default);color:var(--tec-color-text-view-selector-list-item)}.tribe-events .tribe-events-c-view-selector__list-item-link:focus .tribe-events-c-view-selector__list-item-icon,.tribe-events .tribe-events-c-view-selector__list-item-link:hover .tribe-events-c-view-selector__list-item-icon{opacity:var(--tec-opacity-icon-hover)}.tribe-events .tribe-events-c-view-selector__list-item-link:focus .tribe-events-c-view-selector__list-item-text,.tribe-events .tribe-events-c-view-selector__list-item-link:hover .tribe-events-c-view-selector__list-item-text{color:var(--tec-color-text-view-selector-list-item-hover)}.tribe-theme-twentyseventeen.colors-dark .tribe-events .tribe-events-c-view-selector__button,.tribe-theme-twentyseventeen.colors-dark .tribe-events .tribe-events-c-view-selector__button:focus,.tribe-theme-twentyseventeen.colors-dark .tribe-events .tribe-events-c-view-selector__button:hover{background-color:transparent}.tribe-events .tribe-events-calendar-list__event-row--featured .tribe-events-calendar-list__event-date-tag-datetime:after{background-color:var(--tec-color-accent-primary);border-radius:var(--tec-border-radius-default);content:"";height:100%;position:absolute;right:calc(100% - 3px);width:3px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-row--featured .tribe-events-calendar-list__event-date-tag-datetime:after{right:-1px;width:4px}.tribe-events .tribe-events-calendar-list__event-venue{font-style:normal}.tribe-events .tribe-events-calendar-list__event-date-tag-weekday{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-0);font-weight:var(--tec-font-weight-regular);line-height:var(--tec-line-height-2);color:var(--tec-color-text-secondary);text-transform:uppercase}.tribe-events .tribe-events-calendar-list__event-featured-image-link{transition:var(--tec-transition-opacity)}.tribe-events .tribe-events-calendar-list__event-featured-image-link:focus,.tribe-events .tribe-events-calendar-list__event-featured-image-link:hover{opacity:var(--tec-opacity-icon-hover)}.tribe-events .tribe-events-calendar-list__event-featured-image-link:active{opacity:var(--tec-opacity-icon-active)}.tribe-events .tribe-events-calendar-list__event-title{color:var(--tec-color-text-event-title-list)}.tribe-events .tribe-events-calendar-list__event-datetime{color:var(--tec-color-text-event-date)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-datetime-featured-text{color:var(--tec-color-accent-primary);font-weight:var(--tec-font-weight-bold)}.tribe-events .tribe-events-calendar-list__month-separator:after{background-color:var(--tec-color-border-default);content:"";display:block;flex:auto;height:1px;margin-left:20px}.tribe-events .tribe-events-calendar-list-nav{border-top:1px solid var(--tec-color-border-default)}.tribe-events .tribe-events-calendar-month__body{background-color:var(--tec-color-background-month-grid)}.tribe-events .tribe-events-calendar-month__day--past .tribe-events-calendar-month__calendar-event{opacity:.64}.tribe-events .tribe-events-calendar-month__day--past .tribe-events-calendar-month__calendar-event-datetime{color:var(--tec-color-text-event-date);opacity:.94}.tribe-events .tribe-events-calendar-month__calendar-event-featured-image-link{transition:var(--tec-transition-opacity)}.tribe-events .tribe-events-calendar-month__calendar-event-featured-image-link:focus,.tribe-events .tribe-events-calendar-month__calendar-event-featured-image-link:hover{opacity:var(--tec-opacity-icon-hover)}.tribe-events .tribe-events-calendar-month__calendar-event-featured-image-link:active{opacity:var(--tec-opacity-icon-active)}.tribe-events .tribe-events-calendar-month__calendar-event-datetime{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-0);font-weight:var(--tec-font-weight-regular);line-height:var(--tec-line-height-2);color:var(--tec-color-text-event-date-secondary)}.tribe-events .tribe-events-calendar-month__calendar-event--featured:before{background-color:var(--tec-color-accent-primary);content:"";height:100%;left:7px;position:absolute;width:2px}.tribe-events .tribe-events-calendar-month__calendar-event--featured:last-child:before{height:calc(100% - var(--tec-spacer-3))}.tribe-events .tribe-events-calendar-month__calendar-event-title-link,.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-title-link{color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-month__calendar-event-title-link:active,.tribe-events .tribe-events-calendar-month__calendar-event-title-link:focus,.tribe-events .tribe-events-calendar-month__calendar-event-title-link:hover,.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-title-link:active,.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-title-link:focus,.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-title-link:hover{border-color:currentColor;color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-month__calendar-event-title-link:visited,.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-title-link:visited{color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-featured-image-link{transition:var(--tec-transition-opacity)}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-featured-image-link:focus,.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-featured-image-link:hover{opacity:var(--tec-opacity-icon-hover)}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-featured-image-link:active{opacity:var(--tec-opacity-icon-active)}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-datetime{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-0);font-weight:var(--tec-font-weight-regular);line-height:var(--tec-line-height-2);color:var(--tec-color-text-event-date)}.tribe-events .tribe-events-calendar-month__header-column{text-transform:uppercase}.tribe-events .tribe-events-calendar-month__header-column-title{color:var(--tec-color-text-day-of-week-month);text-align:center}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__header-column-title{text-align:left}.tribe-events .tribe-events-calendar-month__day{border-radius:var(--tec-border-radius-default)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__day{border-radius:0}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__day:after{background-color:transparent;bottom:0;content:"";display:block;height:2px;left:-1px;position:absolute;transition:var(--tec-transition-background-color);width:calc(100% + 2px)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__day:hover:after{background-color:var(--tec-color-border-active-month-grid-hover)}.tribe-events .tribe-events-calendar-month__day-date-link{color:var(--tec-color-day-marker-month);transition:var(--tec-transition-color)}.tribe-events .tribe-events-calendar-month__day-date-link:focus,.tribe-events .tribe-events-calendar-month__day-date-link:hover{color:var(--tec-color-day-marker-month-hover)}.tribe-events .tribe-events-calendar-month__day-date-link:active{color:var(--tec-color-day-marker-month-active)}.tribe-events .tribe-events-calendar-month__day-date-daynum{color:var(--tec-color-day-marker-month)}.tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date,.tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-link{color:var(--tec-color-day-marker-current-month);font-weight:var(--tec-font-weight-bold)}.tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-link:focus,.tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-link:hover{color:var(--tec-color-day-marker-month-current-hover)}.tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-link:active{color:var(--tec-color-day-marker-month-current-active)}.tribe-events .tribe-events-calendar-month__day--past .tribe-events-calendar-month__day-date{color:var(--tec-color-day-marker-past-month);opacity:.6}.tribe-events .tribe-events-calendar-month__day--past .tribe-events-calendar-month__day-date-link{color:var(--tec-color-day-marker-past-month)}.tribe-events .tribe-events-calendar-month__day--past .tribe-events-calendar-month__day-date-link:focus,.tribe-events .tribe-events-calendar-month__day--past .tribe-events-calendar-month__day-date-link:hover{color:var(--tec-color-day-marker-month-past-hover)}.tribe-events .tribe-events-calendar-month__day--past .tribe-events-calendar-month__day-date-link:active{color:var(--tec-color-day-marker-month-past-active)}.tribe-events .tribe-events-calendar-month__day--past .tribe-events-calendar-month__day-date-link .tribe-events-calendar-month__day-date-daynum{color:inherit}.tribe-events .tribe-events-calendar-month__day--past .tribe-events-calendar-month__mobile-events-icon--event{background-color:var(--tec-color-icon-active);opacity:.6}.tribe-events .tribe-events-calendar-month__day--past .tribe-events-calendar-month__mobile-events-icon--featured{opacity:.6}.tribe-events .tribe-events-calendar-month__day--past .tribe-events-calendar-month__mobile-events-icon--featured .tribe-events-calendar-month__mobile-events-icon-svg path{fill:var(--tec-color-icon-active)}.tribe-events .tribe-events-calendar-month__day-cell--mobile:focus,.tribe-events .tribe-events-calendar-month__day-cell--mobile:hover{background-color:var(--tec-color-background-secondary)}.tribe-events .tribe-events-calendar-month__day-cell--selected,.tribe-events .tribe-events-calendar-month__day-cell--selected:focus,.tribe-events .tribe-events-calendar-month__day-cell--selected:hover{background-color:var(--tec-color-accent-primary)}.tribe-events .tribe-events-calendar-month__day-cell--selected .tribe-events-calendar-month__day-date{color:var(--tec-color-background);opacity:var(--tec-opacity-default)}.tribe-events .tribe-events-calendar-month__day-cell--selected .tribe-events-calendar-month__mobile-events-icon--event{background-color:var(--tec-color-background);opacity:var(--tec-opacity-default)}.tribe-events .tribe-events-calendar-month__day-cell--selected .tribe-events-calendar-month__mobile-events-icon--featured{opacity:var(--tec-opacity-default)}.tribe-events .tribe-events-calendar-month__day-cell--selected .tribe-events-calendar-month__mobile-events-icon--featured .tribe-events-calendar-month__mobile-events-icon-svg path{fill:var(--tec-color-background)}.tribe-events .tribe-events-calendar-month__mobile-events-icon--event{background-color:var(--tec-color-accent-primary)}.tribe-events .tribe-events-calendar-month__mobile-events-icon--featured .tribe-events-calendar-month__mobile-events-icon-svg path{fill:currentColor}.tribe-theme-twentyseventeen .tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-link:focus,.tribe-theme-twentyseventeen .tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-link:hover{color:var(--tec-color-accent-primary-hover)}.tribe-theme-twentyseventeen .tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-link:active{color:var(--tec-color-accent-primary-active)}.tribe-theme-twentyseventeen .tribe-events .tribe-events-calendar-month__day-cell--selected:focus,.tribe-theme-twentyseventeen .tribe-events .tribe-events-calendar-month__day-cell--selected:hover{background-color:var(--tec-color-accent-primary)}.tribe-theme-twentyseventeen .tribe-events .tribe-events-calendar-month__day-date-link:focus,.tribe-theme-twentyseventeen .tribe-events .tribe-events-calendar-month__day-date-link:hover{color:var(--tec-color-accent-secondary-hover)}.tribe-theme-twentyseventeen .tribe-events .tribe-events-calendar-month__day-date-link:active{color:var(--tec-color-accent-secondary-active)}.tribe-theme-twentytwenty .tribe-events .tribe-events-calendar-month__day-cell--selected{background-color:var(--tec-color-accent-primary)}.tribe-theme-avada #main .tribe-events .tribe-events-calendar-month__day-cell--selected .tribe-events-calendar-month__day-date{color:var(--tec-color-background-events)}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event+.tribe-events-calendar-month-mobile-events__mobile-event{border-top:1px solid var(--tec-color-border-default)}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-datetime{color:var(--tec-color-text-event-date-secondary-month-mobile)}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-datetime-featured-text{color:var(--tec-color-accent-primary);font-weight:var(--tec-font-weight-bold)}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-datetime-recurring-link:focus .tribe-events-calendar-month-mobile-events__mobile-event-datetime-recurring-icon-svg path,.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-datetime-recurring-link:hover .tribe-events-calendar-month-mobile-events__mobile-event-datetime-recurring-icon-svg path{fill:currentColor;stroke:currentColor}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-title-link{color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-title-link:active,.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-title-link:focus,.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-title-link:hover{border-color:currentColor;color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-title-link:visited{color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-month__more-events{border-top:1px solid var(--tec-color-border-secondary)}.tribe-events .tribe-events-calendar-month__day--past .tribe-events-calendar-month__more-events-link{opacity:.5}.tribe-events .tribe-events-calendar-month__multiday-event--start .tribe-events-calendar-month__multiday-event-bar{border-bottom-left-radius:9.5px;border-top-left-radius:9.5px}.tribe-events .tribe-events-calendar-month__multiday-event--end .tribe-events-calendar-month__multiday-event-bar{border-bottom-right-radius:9.5px;border-top-right-radius:9.5px}.tribe-events .tribe-events-calendar-month__multiday-event-bar-inner{background-color:var(--tec-color-background-primary-multiday);transition:var(--tec-transition-background-color)}.tribe-events .tribe-events-calendar-month__multiday-event-bar-inner--focus,.tribe-events .tribe-events-calendar-month__multiday-event-bar-inner--hover,.tribe-events .tribe-events-calendar-month__multiday-event-bar-inner:focus,.tribe-events .tribe-events-calendar-month__multiday-event-bar-inner:hover{background-color:var(--tec-color-background-primary-multiday-hover)}.tribe-events .tribe-events-calendar-month__multiday-event--past .tribe-events-calendar-month__multiday-event-bar-inner{background-color:var(--tec-color-background-secondary-multiday)}.tribe-events .tribe-events-calendar-month__multiday-event--past .tribe-events-calendar-month__multiday-event-bar-inner--focus,.tribe-events .tribe-events-calendar-month__multiday-event--past .tribe-events-calendar-month__multiday-event-bar-inner--hover,.tribe-events .tribe-events-calendar-month__multiday-event--past .tribe-events-calendar-month__multiday-event-bar-inner:focus,.tribe-events .tribe-events-calendar-month__multiday-event--past .tribe-events-calendar-month__multiday-event-bar-inner:hover{background-color:var(--tec-color-background-secondary-multiday-hover)}.tribe-events .tribe-events-calendar-month__multiday-event--past .tribe-events-calendar-month__multiday-event-bar-featured-icon,.tribe-events .tribe-events-calendar-month__multiday-event--past .tribe-events-calendar-month__multiday-event-bar-title{opacity:.64}.tribe-events .tribe-events-calendar-month__multiday-event-bar-title{color:var(--tec-color-text-events-title-month-multiday);font-weight:var(--tec-font-weight-regular);text-overflow:ellipsis}.tribe-theme-avada #main .tribe-events .tribe-events-calendar-month__multiday-event-bar-title{font-weight:var(--tec-font-weight-regular)}.tribe-events .tribe-events-calendar-day__event-title{color:var(--tec-color-text-events-title-day)}.tribe-events .tribe-events-calendar-day__event-title-link{color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-day__event-title-link:active,.tribe-events .tribe-events-calendar-day__event-title-link:focus,.tribe-events .tribe-events-calendar-day__event-title-link:hover{border-color:currentColor;color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-day__event-title-link:visited{color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-day__event-datetime{color:var(--tec-color-text-event-date)}.tribe-events .tribe-events-calendar-day__event--featured{position:relative}.tribe-events .tribe-events-calendar-day__event--featured:after{background-color:var(--tec-color-accent-primary);content:"";height:100%;left:var(--tec-grid-gutter-small-half);position:absolute;width:3px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event--featured:after{left:calc(var(--tec-grid-width-1-of-9) - var(--tec-grid-gutter-half));width:4px}.tribe-events .tribe-events-calendar-day__event-venue{font-style:normal}.tribe-events .tribe-events-calendar-day__event-featured-image-link{transition:var(--tec-transition-opacity)}.tribe-events .tribe-events-calendar-day__event-featured-image-link:focus,.tribe-events .tribe-events-calendar-day__event-featured-image-link:hover{opacity:var(--tec-opacity-icon-hover)}.tribe-events .tribe-events-calendar-day__event-featured-image-link:active{opacity:var(--tec-opacity-icon-active)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event-datetime-featured-text{color:var(--tec-color-accent-primary);font-weight:var(--tec-font-weight-bold)}.tribe-events .tribe-events-calendar-day-nav{border-top:1px solid var(--tec-color-border-default)}.tribe-events .tribe-events-calendar-day__time-separator:after,.tribe-events .tribe-events-calendar-day__type-separator:after{background-color:var(--tec-color-border-default);content:"";display:block;flex:auto;height:1px;margin-left:20px}.tribe-events .tribe-events-calendar-latest-past__event-row--featured .tribe-events-calendar-latest-past__event-date-tag-datetime:after{background-color:var(--tec-color-accent-primary);content:"";height:100%;position:absolute;right:calc(100% - 3px);width:3px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-row--featured .tribe-events-calendar-latest-past__event-date-tag-datetime:after{right:-1px;width:4px}.tribe-events .tribe-events-calendar-latest-past__event-venue{font-style:normal}.tribe-events .tribe-events-calendar-latest-past__event-date-tag-month,.tribe-events .tribe-events-calendar-latest-past__event-date-tag-year{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-0);font-weight:var(--tec-font-weight-regular);line-height:var(--tec-line-height-2)}.tribe-events .tribe-events-calendar-latest-past__event-date-tag-month{color:var(--tec-color-text-secondary);text-transform:uppercase}.tribe-events .tribe-events-calendar-latest-past__event-featured-image-link{transition:var(--tec-transition-opacity)}.tribe-events .tribe-events-calendar-latest-past__event-featured-image-link:focus,.tribe-events .tribe-events-calendar-latest-past__event-featured-image-link:hover{opacity:var(--tec-opacity-icon-hover)}.tribe-events .tribe-events-calendar-latest-past__event-featured-image-link:active{opacity:var(--tec-opacity-icon-active)}.tribe-events .tribe-events-calendar-latest-past__event-datetime{color:var(--tec-color-text-event-date)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-datetime-featured-text{color:var(--tec-color-accent-primary);font-weight:var(--tec-font-weight-bold)}.tribe-events .tribe-events-calendar-latest-past__event-title{color:var(--tec-color-text-events-title-latest-past)}.tribe-events .tribe-events-calendar-latest-past__event-title-link{color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-latest-past__event-title-link:active,.tribe-events .tribe-events-calendar-latest-past__event-title-link:focus,.tribe-events .tribe-events-calendar-latest-past__event-title-link:hover{border-color:currentColor;color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-latest-past__event-title-link:visited{color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-status-label__text{color:var(--tec-color-icon-error)}.tribe-events-single .tribe-events-status-single__header{color:var(--tec-color-icon-error);font-weight:var(--tec-font-weight-regular);line-height:var(--tec-line-height-0)}.tribe-events-single .tribe-events-status-single__header--bold{font-weight:var(--tec-font-weight-bold)}.tribe-events-single .tribe-events-status-single__header--alert-icon:before{background-image:url(../images/alert.svg);background-repeat:no-repeat;background-size:var(--tec-spacer-3);content:"";display:inline-block;height:var(--tec-spacer-3);margin-right:var(--tec-spacer-1);min-width:var(--tec-spacer-3)}.tribe-events-single .tribe-events-status-single{border:1px solid var(--tec-color-border-active);border-left-color:var(--tec-color-icon-error);border-left-width:var(--tec-spacer-0);font-size:var(--tec-font-size-2)}.tribe-events-single .tribe-events-status-single__description{color:var(--tec-color-text-primary)}
|
1 |
+
:root{--tec-color-text-events-title-day:var(--tec-color-text-events-title);--tec-color-text-events-title-latest-past:var(--tec-color-text-events-title);--tec-color-text-event-title-list:var(--tec-color-text-events-title);--tec-color-text-events-title-month-multiday:var(--tec-color-text-events-title);--tec-color-text-events-title-widget-list:var(--tec-color-text-events-title);--tec-color-text-event-date-secondary-month:var(--tec-color-text-event-date-secondary);--tec-color-text-event-date-secondary-month-mobile:var(--tec-color-text-event-date-secondary-month);--tec-color-text-day-of-week-month:var(--tec-color-text-secondary);--tec-color-day-marker-month:var(--tec-color-text-primary);--tec-color-day-marker-month-hover:var(--tec-color-text-primary-hover);--tec-color-day-marker-month-active:var(--tec-color-text-primary-active);--tec-color-day-marker-current-month:var(--tec-color-day-marker-month);--tec-color-day-marker-current-month-hover:var(--tec-color-day-marker-month-hover);--tec-color-day-marker-current-month-active:var(--tec-color-day-marker-month-active);--tec-color-day-marker-past-month:var(--tec-color-text-primary);--tec-color-day-marker-past-month-hover:var(--tec-color-day-marker-past-month);--tec-color-day-marker-past-month-active:var(--tec-color-day-marker-past-month);--tec-color-text-day-of-week-week:var(--tec-color-text-secondary);--tec-border-radius-month-multiday:9.5px;--tec-color-border-secondary-month-grid:var(--tec-color-border-secondary);--tec-color-border-active-month-grid-hover:var(--tec-color-border-active);--tec-color-background-month-grid:transparent;--tec-color-background-tooltip:var(--tec-color-background);--tec-color-text-events-bar-input:var(--tec-color-text-primary);--tec-color-text-events-bar-input-placeholder:var(--tec-color-text-secondary);--tec-opacity-events-bar-input-placeholder:var(--tec-opacity-default);--tec-color-border-events-bar:var(--tec-color-border-secondary);--tec-color-background-events-bar:var(--tec-color-background);--tec-color-background-view-selector:var(--tec-color-background-events-bar);--tec-color-background-view-selector-tabs:var(--tec-color-background-view-selector);--tec-color-background-view-selector-list-item-hover:var(--tec-color-background-secondary);--tec-color-background-subscribe-list-item-hover:var(--tec-color-background-secondary);--tec-color-text-view-selector-list-item:var(--tec-color-text-primary);--tec-color-text-view-selector-list-item-hover:var(--tec-color-accent-secondary-hover);--tec-color-background-search-container:var(--tec-color-background-events-bar);--tec-color-text-events-bar-submit-button:var(--tec-color-background);--tec-color-text-events-bar-submit-button-active:var(--tec-color-text-events-bar-submit-button);--tec-color-text-events-bar-submit-button-hover:var(--tec-color-text-events-bar-submit-button);--tec-color-background-events-bar-submit-button:var(--tec-color-button-primary);--tec-color-background-events-bar-submit-button-hover:var(--tec-color-button-primary-hover);--tec-color-background-events-bar-submit-button-active:var(--tec-color-button-primary-active);--tec-color-icon-events-bar:var(--tec-color-icon-primary);--tec-color-icon-events-bar-active:var(--tec-color-icon-active);--tec-color-icon-events-bar-hover:var(--tec-color-icon-hover)}.tribe-events-view{background-color:var(--tec-color-background-events)}.tribe-events .tribe-events-c-breadcrumbs__list{font-family:var(--tec-font-family-base);font-size:24px;line-height:var(--tec-line-height-1)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-breadcrumbs__list{font-size:42px;line-height:var(--tec-line-height-0)}.tribe-events .tribe-events-c-breadcrumbs__list-item-link{color:var(--tec-color-text-secondary);transition:var(--tec-transition-color)}.tribe-events .tribe-events-c-breadcrumbs__list-item-link:visited{color:var(--tec-color-text-secondary)}.tribe-events .tribe-events-c-breadcrumbs__list-item-link:focus,.tribe-events .tribe-events-c-breadcrumbs__list-item-link:hover{color:var(--tec-color-text-primary)}.tribe-events .tribe-events-c-breadcrumbs__list-item-icon-svg path{fill:var(--tec-color-icon-primary)}.tribe-events .datepicker{background-color:var(--tec-color-background);border:1px solid var(--tec-color-border-default);border-radius:var(--tec-border-radius-default);box-shadow:var(--tec-box-shadow-tooltip)}.tribe-events .datepicker:after,.tribe-events .datepicker:before{content:none}.tribe-events .datepicker .datepicker-switch:active,.tribe-events .datepicker .datepicker-switch:focus,.tribe-events .datepicker .datepicker-switch:hover,.tribe-events .datepicker .next:active,.tribe-events .datepicker .next:focus,.tribe-events .datepicker .next:hover,.tribe-events .datepicker .prev:active,.tribe-events .datepicker .prev:focus,.tribe-events .datepicker .prev:hover{background-color:var(--tec-color-background)}.tribe-events .datepicker .datepicker-switch{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-3);line-height:var(--tec-line-height-3);font-weight:var(--tec-font-weight-regular)}.tribe-events .datepicker .datepicker-switch:focus,.tribe-events .datepicker .datepicker-switch:hover{color:var(--tec-color-accent-secondary-hover)}.tribe-events .datepicker .datepicker-switch:active{color:var(--tec-color-accent-secondary-active)}.tribe-events .datepicker .next:active .tribe-events-c-top-bar__datepicker-nav-icon-svg path,.tribe-events .datepicker .next:focus .tribe-events-c-top-bar__datepicker-nav-icon-svg path,.tribe-events .datepicker .next:hover .tribe-events-c-top-bar__datepicker-nav-icon-svg path,.tribe-events .datepicker .prev:active .tribe-events-c-top-bar__datepicker-nav-icon-svg path,.tribe-events .datepicker .prev:focus .tribe-events-c-top-bar__datepicker-nav-icon-svg path,.tribe-events .datepicker .prev:hover .tribe-events-c-top-bar__datepicker-nav-icon-svg path{fill:var(--tec-color-icon-active)}.tribe-events .datepicker .next .tribe-events-c-top-bar__datepicker-nav-icon-svg path,.tribe-events .datepicker .prev .tribe-events-c-top-bar__datepicker-nav-icon-svg path{fill:var(--tec-color-icon-secondary)}.tribe-events .datepicker .dow{font-size:var(--tec-font-size-0);line-height:var(--tec-line-height-2)}.tribe-events .datepicker .day,.tribe-events .datepicker .dow{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-regular)}.tribe-events .datepicker .day{font-size:var(--tec-font-size-3);line-height:var(--tec-line-height-3)}.tribe-events .datepicker .month,.tribe-events .datepicker .year{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-1);line-height:var(--tec-line-height-0);font-weight:var(--tec-font-weight-regular)}.tribe-events .datepicker .past{color:var(--tec-color-text-primary-light)}.tribe-events .datepicker .day,.tribe-events .datepicker .month,.tribe-events .datepicker .year{border-radius:var(--tec-border-radius-default)}.tribe-events .datepicker .day.focused,.tribe-events .datepicker .day:focus,.tribe-events .datepicker .day:hover,.tribe-events .datepicker .month.focused,.tribe-events .datepicker .month:focus,.tribe-events .datepicker .month:hover,.tribe-events .datepicker .year.focused,.tribe-events .datepicker .year:focus,.tribe-events .datepicker .year:hover{background:var(--tec-color-background-secondary-datepicker)}.tribe-events .datepicker .day.current,.tribe-events .datepicker .day.current.focused,.tribe-events .datepicker .day.current:focus,.tribe-events .datepicker .day.current:hover,.tribe-events .datepicker .month.current,.tribe-events .datepicker .month.current.focused,.tribe-events .datepicker .month.current:focus,.tribe-events .datepicker .month.current:hover,.tribe-events .datepicker .year.current,.tribe-events .datepicker .year.current.focused,.tribe-events .datepicker .year.current:focus,.tribe-events .datepicker .year.current:hover{background:var(--tec-color-accent-primary-background-datepicker)}.tribe-events .datepicker .day.active,.tribe-events .datepicker .day.active.focused,.tribe-events .datepicker .day.active:focus,.tribe-events .datepicker .day.active:hover,.tribe-events .datepicker .month.active,.tribe-events .datepicker .month.active.focused,.tribe-events .datepicker .month.active:focus,.tribe-events .datepicker .month.active:hover,.tribe-events .datepicker .year.active,.tribe-events .datepicker .year.active.focused,.tribe-events .datepicker .year.active:focus,.tribe-events .datepicker .year.active:hover{background:var(--tec-color-accent-primary);color:var(--tec-color-background);text-shadow:none}.admin-bar .tribe-events .datepicker{margin-top:var(--tec-spacer-1)}.admin-bar .tribe-events.tribe-common--breakpoint-medium .datepicker{margin-top:var(--tec-spacer-3)}.tribe-theme-enfold .tribe-events .datepicker{border:1px solid var(--tec-color-border-default);border-radius:var(--tec-border-radius-default);box-shadow:var(--tec-box-shadow-tooltip)}.tribe-theme-enfold .tribe-events .datepicker table,.tribe-theme-enfold .tribe-events .datepicker td,.tribe-theme-enfold .tribe-events .datepicker th,.tribe-theme-enfold .tribe-events .datepicker tr{background:transparent}.tribe-theme-enfold .tribe-events .datepicker .datepicker-switch{color:var(--tec-color-text-primary)!important}.tribe-theme-enfold .tribe-events .datepicker .datepicker-switch:focus,.tribe-theme-enfold .tribe-events .datepicker .datepicker-switch:hover{color:var(--tec-color-accent-secondary-hover)!important}.tribe-theme-enfold .tribe-events .datepicker .datepicker-switch:active{color:var(--tec-color-accent-secondary-active)!important}.tribe-theme-enfold .tribe-events .datepicker .day{background-color:var(--tec-color-background)}.tribe-theme-enfold .tribe-events .datepicker .day.new,.tribe-theme-enfold .tribe-events .datepicker .day.old{opacity:1}.tribe-theme-enfold .tribe-events .datepicker .day,.tribe-theme-enfold .tribe-events .datepicker .month,.tribe-theme-enfold .tribe-events .datepicker .year{background-color:var(--tec-color-background);color:var(--tec-color-text-primary)}.tribe-theme-enfold .tribe-events .datepicker .day.focused,.tribe-theme-enfold .tribe-events .datepicker .day:focus,.tribe-theme-enfold .tribe-events .datepicker .day:hover,.tribe-theme-enfold .tribe-events .datepicker .month.focused,.tribe-theme-enfold .tribe-events .datepicker .month:focus,.tribe-theme-enfold .tribe-events .datepicker .month:hover,.tribe-theme-enfold .tribe-events .datepicker .year.focused,.tribe-theme-enfold .tribe-events .datepicker .year:focus,.tribe-theme-enfold .tribe-events .datepicker .year:hover{background:var(--tec-color-background-secondary-datepicker)}.tribe-theme-enfold .tribe-events .datepicker .day.past,.tribe-theme-enfold .tribe-events .datepicker .month.past,.tribe-theme-enfold .tribe-events .datepicker .year.past{color:var(--tec-color-text-primary-light)}.tribe-theme-enfold .tribe-events .datepicker .day.current,.tribe-theme-enfold .tribe-events .datepicker .day.current.focused,.tribe-theme-enfold .tribe-events .datepicker .day.current:focus,.tribe-theme-enfold .tribe-events .datepicker .day.current:hover,.tribe-theme-enfold .tribe-events .datepicker .month.current,.tribe-theme-enfold .tribe-events .datepicker .month.current.focused,.tribe-theme-enfold .tribe-events .datepicker .month.current:focus,.tribe-theme-enfold .tribe-events .datepicker .month.current:hover,.tribe-theme-enfold .tribe-events .datepicker .year.current,.tribe-theme-enfold .tribe-events .datepicker .year.current.focused,.tribe-theme-enfold .tribe-events .datepicker .year.current:focus,.tribe-theme-enfold .tribe-events .datepicker .year.current:hover{background:var(--tec-color-accent-primary-background-datepicker)}.tribe-theme-enfold .tribe-events .datepicker .day.active,.tribe-theme-enfold .tribe-events .datepicker .day.active.focused,.tribe-theme-enfold .tribe-events .datepicker .day.active:focus,.tribe-theme-enfold .tribe-events .datepicker .day.active:hover,.tribe-theme-enfold .tribe-events .datepicker .month.active,.tribe-theme-enfold .tribe-events .datepicker .month.active.focused,.tribe-theme-enfold .tribe-events .datepicker .month.active:focus,.tribe-theme-enfold .tribe-events .datepicker .month.active:hover,.tribe-theme-enfold .tribe-events .datepicker .year.active,.tribe-theme-enfold .tribe-events .datepicker .year.active.focused,.tribe-theme-enfold .tribe-events .datepicker .year.active:focus,.tribe-theme-enfold .tribe-events .datepicker .year.active:hover{background:var(--tec-color-accent-primary);color:var(--tec-color-background)}.tribe-theme-avada .tribe-events .datepicker{border:1px solid var(--tec-color-border-default);border-radius:var(--tec-border-radius-default)}.tribe-theme-avada .tribe-events .datepicker tbody td{border:0}.tribe-theme-avada .tribe-events .datepicker .datepicker-switch,.tribe-theme-avada .tribe-events .datepicker .datepicker-switch:hover,.tribe-theme-avada .tribe-events .datepicker .next,.tribe-theme-avada .tribe-events .datepicker .next:hover,.tribe-theme-avada .tribe-events .datepicker .prev,.tribe-theme-avada .tribe-events .datepicker .prev:hover{background-color:var(--tec-color-background)}.tribe-theme-avada .tribe-events .datepicker .day.new,.tribe-theme-avada .tribe-events .datepicker .day.old{background-color:transparent!important;color:var(--tec-color-text-primary)!important}.tribe-theme-avada .tribe-events .datepicker .day.new.focused,.tribe-theme-avada .tribe-events .datepicker .day.new:focus,.tribe-theme-avada .tribe-events .datepicker .day.new:hover,.tribe-theme-avada .tribe-events .datepicker .day.old.focused,.tribe-theme-avada .tribe-events .datepicker .day.old:focus,.tribe-theme-avada .tribe-events .datepicker .day.old:hover{background:var(--tec-color-background-secondary-datepicker)!important}.tribe-theme-avada .tribe-events .datepicker .day,.tribe-theme-avada .tribe-events .datepicker .month{background-color:transparent;color:var(--tec-color-text-primary)}.tribe-theme-avada .tribe-events .datepicker .day.focused,.tribe-theme-avada .tribe-events .datepicker .day:focus,.tribe-theme-avada .tribe-events .datepicker .day:hover,.tribe-theme-avada .tribe-events .datepicker .month.focused,.tribe-theme-avada .tribe-events .datepicker .month:focus,.tribe-theme-avada .tribe-events .datepicker .month:hover{background:var(--tec-color-background-secondary-datepicker)}.tribe-theme-avada .tribe-events .datepicker .day.past,.tribe-theme-avada .tribe-events .datepicker .month.past{color:var(--tec-color-text-primary-light)!important}.tribe-theme-avada .tribe-events .datepicker .day.current,.tribe-theme-avada .tribe-events .datepicker .day.current.focused,.tribe-theme-avada .tribe-events .datepicker .day.current:focus,.tribe-theme-avada .tribe-events .datepicker .day.current:hover,.tribe-theme-avada .tribe-events .datepicker .month.current,.tribe-theme-avada .tribe-events .datepicker .month.current.focused,.tribe-theme-avada .tribe-events .datepicker .month.current:focus,.tribe-theme-avada .tribe-events .datepicker .month.current:hover{background:var(--tec-color-accent-primary-background-datepicker)}.tribe-theme-avada .tribe-events .datepicker .day.active,.tribe-theme-avada .tribe-events .datepicker .day.active.focused,.tribe-theme-avada .tribe-events .datepicker .day.active:focus,.tribe-theme-avada .tribe-events .datepicker .day.active:hover,.tribe-theme-avada .tribe-events .datepicker .month.active,.tribe-theme-avada .tribe-events .datepicker .month.active.focused,.tribe-theme-avada .tribe-events .datepicker .month.active:focus,.tribe-theme-avada .tribe-events .datepicker .month.active:hover{background:var(--tec-color-accent-primary)!important;color:var(--tec-color-background)!important}.tribe-events .tribe-events-c-day-marker:after{background-color:var(--tec-color-border-default);content:"";display:block;flex:auto;height:1px;margin-left:20px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-header--has-event-search .tribe-events-c-events-bar{background-color:var(--tec-color-background-events-bar)}.tribe-events .tribe-events-c-events-bar .tribe-common-form-control-text__input{background-color:transparent;color:var(--tec-color-text-events-bar-input)}.tribe-events .tribe-events-c-events-bar .tribe-common-form-control-text__input::placeholder{color:var(--tec-color-text-events-bar-input-placeholder);opacity:var(--tec-opacity-events-bar-input-placeholder)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-events-bar--border{border:1px solid var(--tec-color-border-events-bar)}.tribe-events .tribe-events-c-events-bar__search-container{background-color:var(--tec-color-background-events-bar)}.tribe-events .tribe-events-c-events-bar__search-button{display:flex}.tribe-events .tribe-events-c-events-bar__search-button:focus,.tribe-events .tribe-events-c-events-bar__search-button:hover{opacity:var(--tec-opacity-icon-hover)}.tribe-events .tribe-events-c-events-bar__search-button:active{opacity:var(--tec-opacity-icon-active)}.tribe-events .tribe-events-c-events-bar__search-button:before{background-color:var(--tec-color-icon-events-bar-hover);content:"";display:none;height:2px;pointer-events:none;position:absolute;top:100%;transform:translateY(var(--tec-spacer-0));width:calc(100% - var(--tec-spacer-0)*2)}.tribe-events .tribe-events-c-events-bar__search-button--active:before{display:block}.tribe-events .tribe-events-c-events-bar__search-button-icon-svg path{fill:var(--tec-color-icon-events-bar-active)}.tribe-theme-twentyseventeen.colors-dark .tribe-events .tribe-events-c-events-bar__search-button,.tribe-theme-twentyseventeen.colors-dark .tribe-events .tribe-events-c-events-bar__search-button:focus,.tribe-theme-twentyseventeen.colors-dark .tribe-events .tribe-events-c-events-bar__search-button:hover{background-color:transparent}.single-tribe_events .tribe-events-c-ical__link,.single-tribe_events .tribe-events-c-ical__link:visited,.tribe-events .tribe-events-c-ical__link,.tribe-events .tribe-events-c-ical__link:visited{align-items:center;background-color:var(--tec-color-background);border:1px solid var(--tec-color-accent-primary);border-radius:var(--tec-border-radius-default);color:var(--tec-color-accent-primary);font-weight:var(--tec-font-weight-bold)}.single-tribe_events .tribe-events-c-ical__link:active,.single-tribe_events .tribe-events-c-ical__link:focus,.single-tribe_events .tribe-events-c-ical__link:focus-within,.single-tribe_events .tribe-events-c-ical__link:hover,.tribe-events .tribe-events-c-ical__link:active,.tribe-events .tribe-events-c-ical__link:focus,.tribe-events .tribe-events-c-ical__link:focus-within,.tribe-events .tribe-events-c-ical__link:hover{background-color:var(--tec-color-accent-primary);color:var(--tec-color-background)}.single-tribe_events .tribe-events-c-ical__link:active .tribe-events-c-ical__link-icon-svg path,.single-tribe_events .tribe-events-c-ical__link:focus-within .tribe-events-c-ical__link-icon-svg path,.single-tribe_events .tribe-events-c-ical__link:focus .tribe-events-c-ical__link-icon-svg path,.single-tribe_events .tribe-events-c-ical__link:hover .tribe-events-c-ical__link-icon-svg path,.tribe-events .tribe-events-c-ical__link:active .tribe-events-c-ical__link-icon-svg path,.tribe-events .tribe-events-c-ical__link:focus-within .tribe-events-c-ical__link-icon-svg path,.tribe-events .tribe-events-c-ical__link:focus .tribe-events-c-ical__link-icon-svg path,.tribe-events .tribe-events-c-ical__link:hover .tribe-events-c-ical__link-icon-svg path{stroke:var(--tec-color-background)}.single-tribe_events .tribe-events-c-ical__link-icon-svg,.tribe-events .tribe-events-c-ical__link-icon-svg{display:block;flex:none;margin-right:var(--tec-spacer-1);width:10px}.single-tribe_events .tribe-events-c-ical__link-icon-svg path,.tribe-events .tribe-events-c-ical__link-icon-svg path{stroke:currentColor}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button.tribe-events-c-subscribe-dropdown__button--active,.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button:focus,.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button:focus-within,.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button:hover,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button.tribe-events-c-subscribe-dropdown__button--active,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button:focus,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button:focus-within,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button:hover{background-color:var(--tec-color-accent-primary);color:var(--tec-color-background)}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button-text,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button-text{cursor:pointer}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button-icon,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button-icon{color:currentColor;stroke:currentColor}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button-icon path,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button-icon path{fill:currentColor}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list{background-color:var(--tec-color-background);border:1px solid var(--tec-color-border-secondary);border-radius:var(--tec-border-radius-default);box-shadow:var(--tec-box-shadow-default)}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif)}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item:active,.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item:focus,.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item:focus-within,.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item:hover,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item:active,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item:focus,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item:focus-within,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item:hover{background-color:var(--tec-color-background-subscribe-list-item-hover)}.tribe-theme-twentyseventeen .single-tribe_events .tribe-events-c-ical__link:active,.tribe-theme-twentyseventeen .single-tribe_events .tribe-events-c-ical__link:focus,.tribe-theme-twentyseventeen .single-tribe_events .tribe-events-c-ical__link:hover,.tribe-theme-twentyseventeen .tribe-events .tribe-events-c-ical__link:active,.tribe-theme-twentyseventeen .tribe-events .tribe-events-c-ical__link:focus,.tribe-theme-twentyseventeen .tribe-events .tribe-events-c-ical__link:hover{color:var(--tec-color-background)}.tribe-theme-twentytwentyone .single-tribe_events .tribe-events-c-ical__link:focus:not(.wp-block-button__link):not(.wp-block-file__button),.tribe-theme-twentytwentyone .tribe-events .tribe-events-c-ical__link:focus:not(.wp-block-button__link):not(.wp-block-file__button){background-color:var(--tec-color-accent-primary);color:var(--tec-color-background)}.tribe-theme-twentytwentyone .single-tribe_events .tribe-events-c-subscribe-dropdown__list-item a:focus,.tribe-theme-twentytwentyone .single-tribe_events .tribe-events-c-subscribe-dropdown__list-item a:focus-within,.tribe-theme-twentytwentyone .single-tribe_events .tribe-events-c-subscribe-dropdown__list-item a:hover,.tribe-theme-twentytwentyone .tribe-events .tribe-events-c-subscribe-dropdown__list-item a:focus,.tribe-theme-twentytwentyone .tribe-events .tribe-events-c-subscribe-dropdown__list-item a:focus-within,.tribe-theme-twentytwentyone .tribe-events .tribe-events-c-subscribe-dropdown__list-item a:hover{background-color:transparent!important}.single-tribe_events .tribe-events-c-ical,.tribe-block__events-link .tribe-events-c-ical{text-align:left}.single-tribe_events .tribe-events-c-ical__link,.tribe-block__events-link .tribe-events-c-ical__link{color:var(--tec-color-accent-primary);font-size:var(--tec-font-size-2);margin:0 0 var(--tec-spacer-3);width:220px}.single-tribe_events .tribe-events .tribe-events-c-subscribe-dropdown__container,.tribe-block__events-link .tribe-events .tribe-events-c-subscribe-dropdown__container{width:200px}.single-tribe_events .tribe-events .tribe-events-c-subscribe-dropdown,.tribe-block__events-link .tribe-events .tribe-events-c-subscribe-dropdown{position:relative}.single-tribe_events .tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__content,.tribe-block__events-link .tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__content{position:absolute;top:42px;width:100%;z-index:var(--tec-z-index-dropdown)}.single-tribe_events .tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button-icon,.tribe-block__events-link .tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button-icon{margin-left:var(--tec-spacer-2)}.single-tribe_events .tribe-events-c-subscribe-dropdown__button,.tribe-block__events-link .tribe-events-c-subscribe-dropdown__button{padding:var(--tec-spacer-1) var(--tec-spacer-2);width:200px}.single-tribe_events .tribe-events-c-subscribe-dropdown__export-icon,.tribe-block__events-link .tribe-events-c-subscribe-dropdown__export-icon{color:currentColor;display:inline-block;height:16px;margin-right:var(--tec-spacer-1);margin-top:-3px;stroke:currentColor;vertical-align:middle;width:21px}#tribe-events-content .tribe-block__events-link .tribe-events-c-ical__link{color:var(--tec-color-accent-primary)}#tribe-events-content .tribe-block__events-link .tribe-events-c-ical__link:hover{color:#fff}.tribe-events .tribe-events-c-messages__message{background-color:var(--tec-color-background-messages);border-radius:var(--tec-border-radius-default)}.tribe-events .tribe-events-c-messages__message--notice .tribe-events-c-messages__message-icon-svg{display:inline-block;margin-right:var(--tec-spacer-2)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-messages__message-list{text-align:center}.tribe-events .tribe-events-c-messages__message-list-item-link{color:var(--tec-color-link-accent);font-weight:var(--tec-font-weight-bold)}.tribe-events .tribe-events-c-nav{border-top:1px solid var(--tec-color-border-default)}.tribe-events .tribe-events-c-nav__list{list-style:none}.tribe-events .tribe-events-c-nav__next-label-plural,.tribe-events .tribe-events-c-nav__prev-label-plural{white-space:pre}.tribe-events .tribe-events-c-nav__today:focus,.tribe-events .tribe-events-c-nav__today:hover{color:var(--tec-color-accent-secondary-hover)}.tribe-events .tribe-events-c-nav__today:active{color:var(--tec-color-text-primary)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-nav__next,.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-nav__prev{color:var(--tec-color-text-secondary)}.tribe-events .tribe-events-c-nav__next:focus,.tribe-events .tribe-events-c-nav__next:hover,.tribe-events .tribe-events-c-nav__prev:focus,.tribe-events .tribe-events-c-nav__prev:hover{color:var(--tec-color-accent-secondary-hover)}.tribe-events .tribe-events-c-nav__next:active,.tribe-events .tribe-events-c-nav__prev:active{color:var(--tec-color-text-primary)}.tribe-events .tribe-events-c-nav__next:disabled,.tribe-events .tribe-events-c-nav__prev:disabled{background-color:transparent;color:var(--tec-color-text-disabled)}.tribe-events .tribe-events-c-nav__prev:focus .tribe-events-c-nav__prev-icon-svg,.tribe-events .tribe-events-c-nav__prev:hover .tribe-events-c-nav__prev-icon-svg{opacity:var(--tec-opacity-icon-hover)}.tribe-events .tribe-events-c-nav__prev:focus .tribe-events-c-nav__prev-icon-svg path,.tribe-events .tribe-events-c-nav__prev:hover .tribe-events-c-nav__prev-icon-svg path{fill:var(--tec-color-icon-active)}.tribe-events .tribe-events-c-nav__prev:active:before{opacity:var(--tec-opacity-default)}.tribe-events .tribe-events-c-nav__prev:disabled .tribe-events-c-nav__prev-icon-svg path{fill:var(--tec-color-icon-disabled)}.tribe-events .tribe-events-c-nav__prev-icon-svg{display:block;margin-right:8px;width:7px}.tribe-events .tribe-events-c-nav__prev-icon-svg path{fill:var(--tec-color-icon-active)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-nav__prev-icon-svg{margin-right:15px;width:9px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-nav__prev-icon-svg path{fill:var(--tec-color-icon-primary)}.tribe-events .tribe-events-c-nav__next:focus .tribe-events-c-nav__next-icon-svg,.tribe-events .tribe-events-c-nav__next:hover .tribe-events-c-nav__next-icon-svg{opacity:var(--tec-opacity-icon-hover)}.tribe-events .tribe-events-c-nav__next:focus .tribe-events-c-nav__next-icon-svg path,.tribe-events .tribe-events-c-nav__next:hover .tribe-events-c-nav__next-icon-svg path{fill:var(--tec-color-icon-active)}.tribe-events .tribe-events-c-nav__next:active:after{opacity:var(--tec-opacity-default)}.tribe-events .tribe-events-c-nav__next:disabled .tribe-events-c-nav__next-icon-svg path{fill:var(--tec-color-icon-disabled)}.tribe-events .tribe-events-c-nav__next-icon-svg{display:block;margin-left:8px;width:7px}.tribe-events .tribe-events-c-nav__next-icon-svg path{fill:var(--tec-color-icon-active)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-nav__next-icon-svg{margin-left:15px;width:9px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-nav__next-icon-svg path{fill:var(--tec-color-icon-primary)}.tribe-events .tribe-events-c-small-cta__stock{color:var(--tec-color-text-secondary)}.tribe-events .tribe-events-c-search__input-control{position:relative}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-search__input-control{border-right:1px solid var(--tec-color-border-events-bar)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-search__input-control:last-child{border-right:0}.tribe-events .tribe-events-c-search__input-control-icon-svg{color:var(--tec-color-icon-events-bar);display:block;position:absolute;right:0;top:50%;transform:translateY(-50%)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-search__input-control-icon-svg{left:16px;right:auto}.tribe-events .tribe-events-c-search__input-control--keyword-focus .tribe-events-c-search__input~.tribe-events-c-search__input-control-icon-svg path,.tribe-events .tribe-events-c-search__input-control--keyword .tribe-events-c-search__input:focus~.tribe-events-c-search__input-control-icon-svg path,.tribe-events .tribe-events-c-search__input-control--location-focus .tribe-events-c-search__input~.tribe-events-c-search__input-control-icon-svg path,.tribe-events .tribe-events-c-search__input-control--location .tribe-events-c-search__input:focus~.tribe-events-c-search__input-control-icon-svg path,.tribe-events .tribe-events-c-search__input-control-icon-svg path{fill:currentColor}.tribe-events .tribe-events-c-search__button{background-color:var(--tec-color-background-events-bar-submit-button);color:var(--tec-color-text-events-bar-submit-button)}.tribe-events .tribe-events-c-search__button:focus,.tribe-events .tribe-events-c-search__button:hover{background-color:var(--tec-color-background-events-bar-submit-button-hover);color:var(--tec-color-text-events-bar-submit-button-hover)}.tribe-events .tribe-events-c-search__button:active{background-color:var(--tec-color-background-events-bar-submit-button-active);color:var(--tec-color-text-events-bar-submit-button-active)}.tribe-theme-twentyseventeen.colors-dark .tribe-events .tribe-events-c-search__input{background-color:var(--tec-background-color)}.tribe-theme-twentyseventeen.colors-dark .tribe-events .tribe-events-c-search__button{background-color:var(--tec-color-background-events-bar-submit-button);color:var(--tec-color-text-events-bar-submit-button)}.tribe-theme-twentyseventeen.colors-dark .tribe-events .tribe-events-c-search__button:focus,.tribe-theme-twentyseventeen.colors-dark .tribe-events .tribe-events-c-search__button:hover{background-color:var(--tec-color-background-events-bar-submit-button-hover);color:var(--tec-color-text-events-bar-submit-button-hover)}.tribe-theme-twentyseventeen.colors-dark .tribe-events .tribe-events-c-search__button:active{background-color:var(--tec-color-background-events-bar-submit-button-active);color:var(--tec-color-text-events-bar-submit-button-active)}.tribe-theme-twentytwenty .tribe-events .tribe-events-c-search__input{background-color:var(--tec-background-color)}.tribe-theme-twentytwenty .tribe-events .tribe-events-c-search__button{background-color:var(--tec-color-background-events-bar-submit-button);color:var(--tec-color-text-events-bar-submit-button)}.tribe-theme-twentytwenty .tribe-events .tribe-events-c-search__button:focus,.tribe-theme-twentytwenty .tribe-events .tribe-events-c-search__button:hover{background-color:var(--tec-color-background-events-bar-submit-button-hover);color:var(--tec-color-text-events-bar-submit-button-hover)}.tribe-theme-twentytwenty .tribe-events .tribe-events-c-search__button:active{background-color:var(--tec-color-background-events-bar-submit-button-active);color:var(--tec-color-text-events-bar-submit-button-active)}.tribe-theme-twentytwentyone .tribe-events .tribe-events-c-search__button:not(:hover):not(:active){background-color:var(--tec-color-background-events-bar-submit-button);color:var(--tec-color-text-events-bar-submit-button)}.tooltipster-base.tribe-events-tooltip-theme{background-color:var(--tec-color-background-tooltip);border:1px solid var(--tec-color-border-default);border-radius:var(--tec-border-radius-default);box-shadow:var(--tec-box-shadow-tooltip)}.tooltipster-base.tribe-events-tooltip-theme .tooltipster-box{background-color:transparent;border:0;border-radius:0;box-shadow:none}.tooltipster-base.tribe-events-tooltip-theme .tooltipster-box .tooltipster-content{color:var(--tec-color-text-primary);overflow:inherit}.tooltipster-base.tribe-events-tooltip-theme--hover{background-color:var(--tec-color-background-tooltip)}.tribe-events .tribe-events-c-top-bar__datepicker-button{transition:var(--tec-transition-opacity)}.tribe-events .tribe-events-c-top-bar__datepicker-button:focus,.tribe-events .tribe-events-c-top-bar__datepicker-button:hover{opacity:var(--tec-opacity-icon-hover)}.tribe-events .tribe-events-c-top-bar__datepicker-button:active{opacity:var(--tec-opacity-icon-active)}.tribe-events .tribe-events-c-top-bar__datepicker-button-icon-svg{display:block;height:6px;margin-left:var(--tec-spacer-1);width:9px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-top-bar__datepicker-button-icon-svg{height:8px;width:11px}.tribe-events .tribe-events-c-top-bar__datepicker-button--open .tribe-events-c-top-bar__datepicker-button-icon-svg{transform:rotate(180deg)}.tribe-theme-genesis .tribe-events .tribe-events-c-top-bar__nav-link:disabled,.tribe-theme-genesis .tribe-events .tribe-events-c-top-bar__nav-link:focus,.tribe-theme-genesis .tribe-events .tribe-events-c-top-bar__nav-link:hover,.tribe-theme-twentyseventeen.colors-dark .tribe-events .tribe-events-c-top-bar__datepicker-button,.tribe-theme-twentyseventeen.colors-dark .tribe-events .tribe-events-c-top-bar__nav-link{background-color:transparent}.tribe-theme-twentytwentyone .tribe-events button.tribe-events-c-top-bar__datepicker-button:focus{outline-offset:0}.tribe-theme-twentytwentyone .tribe-events a.tribe-events-c-top-bar__nav-link--next.tribe-events-c-top-bar__nav-link:focus,.tribe-theme-twentytwentyone .tribe-events a.tribe-events-c-top-bar__nav-link--prev.tribe-events-c-top-bar__nav-link:focus{background:transparent}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--labels .tribe-events-c-view-selector__button:before{content:none}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--labels .tribe-events-c-view-selector__button-icon-caret-svg{color:var(--tec-color-icon-events-bar);display:block;flex:none;height:6px;margin-left:var(--tec-spacer-1);width:10px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--labels .tribe-events-c-view-selector__button-icon-caret-svg path{fill:currentColor}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--labels .tribe-events-c-view-selector__button--active .tribe-events-c-view-selector__button-icon-caret-svg{transform:rotate(180deg)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--labels .tribe-events-c-view-selector__button-text{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-2);line-height:var(--tec-line-height-3);font-weight:var(--tec-font-weight-regular);font-weight:var(--tec-font-weight-bold);color:var(--tec-color-text-view-selector-list-item)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--labels .tribe-events-c-view-selector__content{box-shadow:var(--tec-box-shadow-default)}.tribe-events .tribe-events-c-view-selector--tabs .tribe-events-c-view-selector__content{background-color:var(--tec-color-background-view-selector)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--tabs .tribe-events-c-view-selector__content{border:0;border-radius:0;box-shadow:none}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--tabs .tribe-events-c-view-selector__list-item--active .tribe-events-c-view-selector__list-item-link:after{background-color:var(--tec-color-accent-secondary);bottom:-1px;content:"";display:block;height:2px;position:absolute;width:100%}.tribe-events .tribe-events-c-view-selector__button{text-align:left}.tribe-events .tribe-events-c-view-selector__button:focus,.tribe-events .tribe-events-c-view-selector__button:hover{opacity:var(--tec-opacity-icon-hover)}.tribe-events .tribe-events-c-view-selector__button:active{opacity:var(--tec-opacity-icon-active)}.tribe-events .tribe-events-c-view-selector__button:before{background-color:var(--tec-color-accent-primary);content:"";display:none;height:2px;pointer-events:none;position:absolute;top:100%;transform:translateY(var(--tec-spacer-0));width:calc(100% - var(--tec-spacer-0)*2)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector__button:before{transform:none;width:calc(100% - var(--tec-spacer-1)*2)}.tribe-events .tribe-events-c-view-selector__button--active:before{display:block}.tribe-events .tribe-events-c-view-selector__content{background-color:var(--tec-color-background-view-selector);border:1px solid var(--tec-color-border-secondary);border-radius:var(--tec-border-radius-default);box-shadow:var(--tec-box-shadow-tooltip)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector__list-item:focus,.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector__list-item:focus-within,.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector__list-item:hover{background-color:var(--tec-color-background-view-selector-list-item-hover)}.tribe-events .tribe-events-c-view-selector__list-item-text{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-2);line-height:var(--tec-line-height-3);font-weight:var(--tec-font-weight-regular);color:var(--tec-color-text-view-selector-list-item)}.tribe-events .tribe-events-c-view-selector__list-item--active .tribe-events-c-view-selector__list-item-text{font-weight:var(--tec-font-weight-bold)}.tribe-events .tribe-events-c-view-selector__list-item-link{border-radius:var(--tec-border-radius-default);color:var(--tec-color-text-view-selector-list-item)}.tribe-events .tribe-events-c-view-selector__list-item-link:focus .tribe-events-c-view-selector__list-item-icon,.tribe-events .tribe-events-c-view-selector__list-item-link:hover .tribe-events-c-view-selector__list-item-icon{opacity:var(--tec-opacity-icon-hover)}.tribe-events .tribe-events-c-view-selector__list-item-link:focus .tribe-events-c-view-selector__list-item-text,.tribe-events .tribe-events-c-view-selector__list-item-link:hover .tribe-events-c-view-selector__list-item-text{color:var(--tec-color-text-view-selector-list-item-hover)}.tribe-theme-twentyseventeen.colors-dark .tribe-events .tribe-events-c-view-selector__button,.tribe-theme-twentyseventeen.colors-dark .tribe-events .tribe-events-c-view-selector__button:focus,.tribe-theme-twentyseventeen.colors-dark .tribe-events .tribe-events-c-view-selector__button:hover{background-color:transparent}.tribe-events .tribe-events-calendar-list__event-row--featured .tribe-events-calendar-list__event-date-tag-datetime:after{background-color:var(--tec-color-accent-primary);border-radius:var(--tec-border-radius-default);content:"";height:100%;position:absolute;right:calc(100% - 3px);width:3px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-row--featured .tribe-events-calendar-list__event-date-tag-datetime:after{right:-1px;width:4px}.tribe-events .tribe-events-calendar-list__event-venue{font-style:normal}.tribe-events .tribe-events-calendar-list__event-date-tag-weekday{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-0);font-weight:var(--tec-font-weight-regular);line-height:var(--tec-line-height-2);color:var(--tec-color-text-secondary);text-transform:uppercase}.tribe-events .tribe-events-calendar-list__event-featured-image-link{transition:var(--tec-transition-opacity)}.tribe-events .tribe-events-calendar-list__event-featured-image-link:focus,.tribe-events .tribe-events-calendar-list__event-featured-image-link:hover{opacity:var(--tec-opacity-icon-hover)}.tribe-events .tribe-events-calendar-list__event-featured-image-link:active{opacity:var(--tec-opacity-icon-active)}.tribe-events .tribe-events-calendar-list__event-title{color:var(--tec-color-text-event-title-list)}.tribe-events .tribe-events-calendar-list__event-datetime{color:var(--tec-color-text-event-date)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-datetime-featured-text{color:var(--tec-color-accent-primary);font-weight:var(--tec-font-weight-bold)}.tribe-events .tribe-events-calendar-list__month-separator:after{background-color:var(--tec-color-border-default);content:"";display:block;flex:auto;height:1px;margin-left:20px}.tribe-events .tribe-events-calendar-list-nav{border-top:1px solid var(--tec-color-border-default)}.tribe-events .tribe-events-calendar-month__body{background-color:var(--tec-color-background-month-grid)}.tribe-events .tribe-events-calendar-month__day--past .tribe-events-calendar-month__calendar-event{opacity:.64}.tribe-events .tribe-events-calendar-month__day--past .tribe-events-calendar-month__calendar-event-datetime{color:var(--tec-color-text-event-date);opacity:.94}.tribe-events .tribe-events-calendar-month__calendar-event-featured-image-link{transition:var(--tec-transition-opacity)}.tribe-events .tribe-events-calendar-month__calendar-event-featured-image-link:focus,.tribe-events .tribe-events-calendar-month__calendar-event-featured-image-link:hover{opacity:var(--tec-opacity-icon-hover)}.tribe-events .tribe-events-calendar-month__calendar-event-featured-image-link:active{opacity:var(--tec-opacity-icon-active)}.tribe-events .tribe-events-calendar-month__calendar-event-datetime{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-0);font-weight:var(--tec-font-weight-regular);line-height:var(--tec-line-height-2);color:var(--tec-color-text-event-date-secondary)}.tribe-events .tribe-events-calendar-month__calendar-event--featured:before{background-color:var(--tec-color-accent-primary);content:"";height:100%;left:7px;position:absolute;width:2px}.tribe-events .tribe-events-calendar-month__calendar-event--featured:last-child:before{height:calc(100% - var(--tec-spacer-3))}.tribe-events .tribe-events-calendar-month__calendar-event-title-link,.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-title-link{color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-month__calendar-event-title-link:active,.tribe-events .tribe-events-calendar-month__calendar-event-title-link:focus,.tribe-events .tribe-events-calendar-month__calendar-event-title-link:hover,.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-title-link:active,.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-title-link:focus,.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-title-link:hover{border-color:currentColor;color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-month__calendar-event-title-link:visited,.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-title-link:visited{color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-featured-image-link{transition:var(--tec-transition-opacity)}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-featured-image-link:focus,.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-featured-image-link:hover{opacity:var(--tec-opacity-icon-hover)}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-featured-image-link:active{opacity:var(--tec-opacity-icon-active)}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-datetime{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-0);font-weight:var(--tec-font-weight-regular);line-height:var(--tec-line-height-2);color:var(--tec-color-text-event-date)}.tribe-events .tribe-events-calendar-month__header-column{text-transform:uppercase}.tribe-events .tribe-events-calendar-month__header-column-title{color:var(--tec-color-text-day-of-week-month);text-align:center}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__header-column-title{text-align:left}.tribe-events .tribe-events-calendar-month__day{border-radius:var(--tec-border-radius-default)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__day{border-radius:0}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__day:after{background-color:transparent;bottom:0;content:"";display:block;height:2px;left:-1px;position:absolute;transition:var(--tec-transition-background-color);width:calc(100% + 2px)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__day:hover:after{background-color:var(--tec-color-border-active-month-grid-hover)}.tribe-events .tribe-events-calendar-month__day-date-link{color:var(--tec-color-day-marker-month);transition:var(--tec-transition-color)}.tribe-events .tribe-events-calendar-month__day-date-link:focus,.tribe-events .tribe-events-calendar-month__day-date-link:hover{color:var(--tec-color-day-marker-month-hover)}.tribe-events .tribe-events-calendar-month__day-date-link:active{color:var(--tec-color-day-marker-month-active)}.tribe-events .tribe-events-calendar-month__day-date-daynum{color:var(--tec-color-day-marker-month)}.tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date,.tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-link{color:var(--tec-color-day-marker-current-month);font-weight:var(--tec-font-weight-bold)}.tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-link:focus,.tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-link:hover{color:var(--tec-color-day-marker-month-current-hover)}.tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-link:active{color:var(--tec-color-day-marker-month-current-active)}.tribe-events .tribe-events-calendar-month__day--past .tribe-events-calendar-month__day-date{color:var(--tec-color-day-marker-past-month);opacity:.6}.tribe-events .tribe-events-calendar-month__day--past .tribe-events-calendar-month__day-date-link{color:var(--tec-color-day-marker-past-month)}.tribe-events .tribe-events-calendar-month__day--past .tribe-events-calendar-month__day-date-link:focus,.tribe-events .tribe-events-calendar-month__day--past .tribe-events-calendar-month__day-date-link:hover{color:var(--tec-color-day-marker-month-past-hover)}.tribe-events .tribe-events-calendar-month__day--past .tribe-events-calendar-month__day-date-link:active{color:var(--tec-color-day-marker-month-past-active)}.tribe-events .tribe-events-calendar-month__day--past .tribe-events-calendar-month__day-date-link .tribe-events-calendar-month__day-date-daynum{color:inherit}.tribe-events .tribe-events-calendar-month__day--past .tribe-events-calendar-month__mobile-events-icon--event{background-color:var(--tec-color-icon-active);opacity:.6}.tribe-events .tribe-events-calendar-month__day--past .tribe-events-calendar-month__mobile-events-icon--featured{opacity:.6}.tribe-events .tribe-events-calendar-month__day--past .tribe-events-calendar-month__mobile-events-icon--featured .tribe-events-calendar-month__mobile-events-icon-svg path{fill:var(--tec-color-icon-active)}.tribe-events .tribe-events-calendar-month__day-cell--mobile:focus,.tribe-events .tribe-events-calendar-month__day-cell--mobile:hover{background-color:var(--tec-color-background-secondary)}.tribe-events .tribe-events-calendar-month__day-cell--selected,.tribe-events .tribe-events-calendar-month__day-cell--selected:focus,.tribe-events .tribe-events-calendar-month__day-cell--selected:hover{background-color:var(--tec-color-accent-primary)}.tribe-events .tribe-events-calendar-month__day-cell--selected .tribe-events-calendar-month__day-date{color:var(--tec-color-background);opacity:var(--tec-opacity-default)}.tribe-events .tribe-events-calendar-month__day-cell--selected .tribe-events-calendar-month__mobile-events-icon--event{background-color:var(--tec-color-background);opacity:var(--tec-opacity-default)}.tribe-events .tribe-events-calendar-month__day-cell--selected .tribe-events-calendar-month__mobile-events-icon--featured{opacity:var(--tec-opacity-default)}.tribe-events .tribe-events-calendar-month__day-cell--selected .tribe-events-calendar-month__mobile-events-icon--featured .tribe-events-calendar-month__mobile-events-icon-svg path{fill:var(--tec-color-background)}.tribe-events .tribe-events-calendar-month__mobile-events-icon--event{background-color:var(--tec-color-accent-primary)}.tribe-events .tribe-events-calendar-month__mobile-events-icon--featured .tribe-events-calendar-month__mobile-events-icon-svg path{fill:currentColor}.tribe-theme-twentyseventeen .tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-link:focus,.tribe-theme-twentyseventeen .tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-link:hover{color:var(--tec-color-accent-primary-hover)}.tribe-theme-twentyseventeen .tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-link:active{color:var(--tec-color-accent-primary-active)}.tribe-theme-twentyseventeen .tribe-events .tribe-events-calendar-month__day-cell--selected:focus,.tribe-theme-twentyseventeen .tribe-events .tribe-events-calendar-month__day-cell--selected:hover{background-color:var(--tec-color-accent-primary)}.tribe-theme-twentyseventeen .tribe-events .tribe-events-calendar-month__day-date-link:focus,.tribe-theme-twentyseventeen .tribe-events .tribe-events-calendar-month__day-date-link:hover{color:var(--tec-color-accent-secondary-hover)}.tribe-theme-twentyseventeen .tribe-events .tribe-events-calendar-month__day-date-link:active{color:var(--tec-color-accent-secondary-active)}.tribe-theme-twentytwenty .tribe-events .tribe-events-calendar-month__day-cell--selected{background-color:var(--tec-color-accent-primary)}.tribe-theme-avada #main .tribe-events .tribe-events-calendar-month__day-cell--selected .tribe-events-calendar-month__day-date{color:var(--tec-color-background-events)}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event+.tribe-events-calendar-month-mobile-events__mobile-event{border-top:1px solid var(--tec-color-border-default)}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-datetime{color:var(--tec-color-text-event-date-secondary-month-mobile)}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-datetime-featured-text{color:var(--tec-color-accent-primary);font-weight:var(--tec-font-weight-bold)}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-datetime-recurring-link:focus .tribe-events-calendar-month-mobile-events__mobile-event-datetime-recurring-icon-svg path,.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-datetime-recurring-link:hover .tribe-events-calendar-month-mobile-events__mobile-event-datetime-recurring-icon-svg path{fill:currentColor;stroke:currentColor}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-title-link{color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-title-link:active,.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-title-link:focus,.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-title-link:hover{border-color:currentColor;color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-title-link:visited{color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-month__more-events{border-top:1px solid var(--tec-color-border-secondary)}.tribe-events .tribe-events-calendar-month__day--past .tribe-events-calendar-month__more-events-link{opacity:.5}.tribe-events .tribe-events-calendar-month__multiday-event--start .tribe-events-calendar-month__multiday-event-bar{border-bottom-left-radius:9.5px;border-top-left-radius:9.5px}.tribe-events .tribe-events-calendar-month__multiday-event--end .tribe-events-calendar-month__multiday-event-bar{border-bottom-right-radius:9.5px;border-top-right-radius:9.5px}.tribe-events .tribe-events-calendar-month__multiday-event-bar-inner{background-color:var(--tec-color-background-primary-multiday);transition:var(--tec-transition-background-color)}.tribe-events .tribe-events-calendar-month__multiday-event-bar-inner--focus,.tribe-events .tribe-events-calendar-month__multiday-event-bar-inner--hover,.tribe-events .tribe-events-calendar-month__multiday-event-bar-inner:focus,.tribe-events .tribe-events-calendar-month__multiday-event-bar-inner:hover{background-color:var(--tec-color-background-primary-multiday-hover)}.tribe-events .tribe-events-calendar-month__multiday-event--past .tribe-events-calendar-month__multiday-event-bar-inner{background-color:var(--tec-color-background-secondary-multiday)}.tribe-events .tribe-events-calendar-month__multiday-event--past .tribe-events-calendar-month__multiday-event-bar-inner--focus,.tribe-events .tribe-events-calendar-month__multiday-event--past .tribe-events-calendar-month__multiday-event-bar-inner--hover,.tribe-events .tribe-events-calendar-month__multiday-event--past .tribe-events-calendar-month__multiday-event-bar-inner:focus,.tribe-events .tribe-events-calendar-month__multiday-event--past .tribe-events-calendar-month__multiday-event-bar-inner:hover{background-color:var(--tec-color-background-secondary-multiday-hover)}.tribe-events .tribe-events-calendar-month__multiday-event--past .tribe-events-calendar-month__multiday-event-bar-featured-icon,.tribe-events .tribe-events-calendar-month__multiday-event--past .tribe-events-calendar-month__multiday-event-bar-title{opacity:.64}.tribe-events .tribe-events-calendar-month__multiday-event-bar-title{color:var(--tec-color-text-events-title-month-multiday);font-weight:var(--tec-font-weight-regular);text-overflow:ellipsis}.tribe-theme-avada #main .tribe-events .tribe-events-calendar-month__multiday-event-bar-title{font-weight:var(--tec-font-weight-regular)}.tribe-events .tribe-events-calendar-day__event-title{color:var(--tec-color-text-events-title-day)}.tribe-events .tribe-events-calendar-day__event-title-link{color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-day__event-title-link:active,.tribe-events .tribe-events-calendar-day__event-title-link:focus,.tribe-events .tribe-events-calendar-day__event-title-link:hover{border-color:currentColor;color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-day__event-title-link:visited{color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-day__event-datetime{color:var(--tec-color-text-event-date)}.tribe-events .tribe-events-calendar-day__event--featured{position:relative}.tribe-events .tribe-events-calendar-day__event--featured:after{background-color:var(--tec-color-accent-primary);content:"";height:100%;left:var(--tec-grid-gutter-small-half);position:absolute;width:3px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event--featured:after{left:calc(var(--tec-grid-width-1-of-9) - var(--tec-grid-gutter-half));width:4px}.tribe-events .tribe-events-calendar-day__event-venue{font-style:normal}.tribe-events .tribe-events-calendar-day__event-featured-image-link{transition:var(--tec-transition-opacity)}.tribe-events .tribe-events-calendar-day__event-featured-image-link:focus,.tribe-events .tribe-events-calendar-day__event-featured-image-link:hover{opacity:var(--tec-opacity-icon-hover)}.tribe-events .tribe-events-calendar-day__event-featured-image-link:active{opacity:var(--tec-opacity-icon-active)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event-datetime-featured-text{color:var(--tec-color-accent-primary);font-weight:var(--tec-font-weight-bold)}.tribe-events .tribe-events-calendar-day-nav{border-top:1px solid var(--tec-color-border-default)}.tribe-events .tribe-events-calendar-day__time-separator:after,.tribe-events .tribe-events-calendar-day__type-separator:after{background-color:var(--tec-color-border-default);content:"";display:block;flex:auto;height:1px;margin-left:20px}.tribe-events .tribe-events-calendar-latest-past__event-row--featured .tribe-events-calendar-latest-past__event-date-tag-datetime:after{background-color:var(--tec-color-accent-primary);content:"";height:100%;position:absolute;right:calc(100% - 3px);width:3px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-row--featured .tribe-events-calendar-latest-past__event-date-tag-datetime:after{right:-1px;width:4px}.tribe-events .tribe-events-calendar-latest-past__event-venue{font-style:normal}.tribe-events .tribe-events-calendar-latest-past__event-date-tag-month,.tribe-events .tribe-events-calendar-latest-past__event-date-tag-year{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-0);font-weight:var(--tec-font-weight-regular);line-height:var(--tec-line-height-2)}.tribe-events .tribe-events-calendar-latest-past__event-date-tag-month{color:var(--tec-color-text-secondary);text-transform:uppercase}.tribe-events .tribe-events-calendar-latest-past__event-featured-image-link{transition:var(--tec-transition-opacity)}.tribe-events .tribe-events-calendar-latest-past__event-featured-image-link:focus,.tribe-events .tribe-events-calendar-latest-past__event-featured-image-link:hover{opacity:var(--tec-opacity-icon-hover)}.tribe-events .tribe-events-calendar-latest-past__event-featured-image-link:active{opacity:var(--tec-opacity-icon-active)}.tribe-events .tribe-events-calendar-latest-past__event-datetime{color:var(--tec-color-text-event-date)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-datetime-featured-text{color:var(--tec-color-accent-primary);font-weight:var(--tec-font-weight-bold)}.tribe-events .tribe-events-calendar-latest-past__event-title{color:var(--tec-color-text-events-title-latest-past)}.tribe-events .tribe-events-calendar-latest-past__event-title-link{color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-latest-past__event-title-link:active,.tribe-events .tribe-events-calendar-latest-past__event-title-link:focus,.tribe-events .tribe-events-calendar-latest-past__event-title-link:hover{border-color:currentColor;color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-latest-past__event-title-link:visited{color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-status-label__text{color:var(--tec-color-icon-error)}.tribe-events-single .tribe-events-status-single__header{color:var(--tec-color-icon-error);font-weight:var(--tec-font-weight-regular);line-height:var(--tec-line-height-0)}.tribe-events-single .tribe-events-status-single__header--bold{font-weight:var(--tec-font-weight-bold)}.tribe-events-single .tribe-events-status-single__header--alert-icon:before{background-image:url(../images/alert.svg);background-repeat:no-repeat;background-size:var(--tec-spacer-3);content:"";display:inline-block;height:var(--tec-spacer-3);margin-right:var(--tec-spacer-1);min-width:var(--tec-spacer-3)}.tribe-events-single .tribe-events-status-single{border:1px solid var(--tec-color-border-active);border-left-color:var(--tec-color-icon-error);border-left-width:var(--tec-spacer-0);font-size:var(--tec-font-size-2)}.tribe-events-single .tribe-events-status-single__description{color:var(--tec-color-text-primary)}
|
src/resources/css/views-skeleton.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.tribe-events-view{position:relative;width:100%}.tribe-events .tribe-events-l-container{min-height:600px;padding-bottom:var(--tec-spacer-12);padding-top:var(--tec-spacer-11)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-l-container{min-height:700px;padding-bottom:var(--tec-spacer-14);padding-top:var(--tec-spacer-13)}.tribe-events .tribe-events-c-breadcrumbs{margin-bottom:var(--tec-spacer-5);width:100%}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-breadcrumbs{margin-bottom:var(--tec-spacer-9)}.tribe-events .tribe-events-c-breadcrumbs__list{display:flex;flex-wrap:wrap}.tribe-events .tribe-events-c-breadcrumbs__list-item{align-items:center;display:inline-flex}.tribe-events .tribe-events-c-breadcrumbs__list-item:last-child .tribe-events-c-breadcrumbs__list-item-icon-svg{display:none}.tribe-events .tribe-events-c-breadcrumbs__list-item-icon-svg{display:inline-block;height:14px;margin:0 6px;width:6px}.tribe-events .tribe-events-c-breadcrumbs__list-item-icon-svg path{fill:currentColor}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-breadcrumbs__list-item-icon-svg{height:16px;margin:0 10px;width:10px}.tribe-events .datepicker{margin-top:var(--tec-spacer-1);padding:0 var(--tec-spacer-3) var(--tec-spacer-3)}.tribe-common--breakpoint-medium.tribe-events .datepicker{margin-top:var(--tec-spacer-3)}.tribe-events .datepicker table{border-collapse:collapse;table-layout:fixed}.tribe-events .datepicker .datepicker-switch,.tribe-events .datepicker .next,.tribe-events .datepicker .prev{padding:var(--tec-spacer-4) 0;vertical-align:middle}.tribe-events .datepicker .next .tribe-events-c-top-bar__datepicker-nav-icon-svg,.tribe-events .datepicker .prev .tribe-events-c-top-bar__datepicker-nav-icon-svg{height:15px;margin-right:auto;width:9px}.tribe-events .datepicker .next .tribe-events-c-top-bar__datepicker-nav-icon-svg path,.tribe-events .datepicker .prev .tribe-events-c-top-bar__datepicker-nav-icon-svg path{fill:currentColor}.tribe-events .datepicker .next .tribe-events-c-top-bar__datepicker-nav-icon-svg{margin-left:auto;margin-right:0}.tribe-events .datepicker .datepicker-months td,.tribe-events .datepicker .datepicker-months th,.tribe-events .datepicker .datepicker-years td,.tribe-events .datepicker .datepicker-years th{padding:0}.tribe-events .datepicker .datepicker-months .datepicker-switch,.tribe-events .datepicker .datepicker-months .next,.tribe-events .datepicker .datepicker-months .prev,.tribe-events .datepicker .datepicker-years .datepicker-switch,.tribe-events .datepicker .datepicker-years .next,.tribe-events .datepicker .datepicker-years .prev{padding:var(--tec-spacer-4) 0 var(--tec-spacer-1)}.tribe-events .datepicker .dow{padding:0;width:var(--tec-grid-width-1-of-7)}.tribe-events .datepicker .day{padding:11px 0;width:48px}.tribe-events .datepicker .month,.tribe-events .datepicker .year{height:auto;margin:0;padding:15px 0;width:25%}.admin-bar .tribe-events .datepicker{margin-top:var(--tec-spacer-1)}.admin-bar .tribe-events.tribe-common--breakpoint-medium .datepicker{margin-top:var(--tec-spacer-3)}.tribe-theme-divi #content-area .tribe-events .datepicker .datepicker-switch,.tribe-theme-divi #content-area .tribe-events .datepicker .next,.tribe-theme-divi #content-area .tribe-events .datepicker .prev{padding:var(--tec-spacer-4) 0}.tribe-theme-divi #content-area .tribe-events .datepicker .datepicker-months .datepicker-switch,.tribe-theme-divi #content-area .tribe-events .datepicker .datepicker-months .next,.tribe-theme-divi #content-area .tribe-events .datepicker .datepicker-months .prev,.tribe-theme-divi #content-area .tribe-events .datepicker .datepicker-years .datepicker-switch,.tribe-theme-divi #content-area .tribe-events .datepicker .datepicker-years .next,.tribe-theme-divi #content-area .tribe-events .datepicker .datepicker-years .prev{padding:var(--tec-spacer-4) 0 var(--tec-spacer-1)}.tribe-theme-divi #content-area .tribe-events .datepicker .dow{padding:0}.tribe-theme-divi #content-area .tribe-events .datepicker .day{padding:11px 0}.tribe-theme-enfold .tribe-events .datepicker{min-width:0;padding:0 var(--tec-spacer-3) var(--tec-spacer-3)}.tribe-theme-enfold .tribe-events .datepicker .datepicker-switch{cursor:pointer!important}.tribe-theme-avada .tribe-events .datepicker{padding:0 var(--tec-spacer-3) var(--tec-spacer-3)}.tribe-theme-avada .tribe-events .datepicker .datepicker-months td{padding:0}.tribe-events .tribe-events-c-day-marker{align-items:center;display:flex}.tribe-events .tribe-events-c-day-marker__date{flex:none}.tribe-events .tribe-events-c-events-bar{display:flex}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-events-bar{flex-direction:row}.tribe-events .tribe-events-c-events-bar__views{display:flex;flex:none;justify-content:center}.tribe-events .tribe-events-c-events-bar__search-container{display:none;left:0;padding:var(--tec-spacer-1) var(--tec-grid-gutter-small-half) var(--tec-spacer-2);position:absolute;right:0;top:calc(100% - var(--tec-spacer-1));z-index:var(--tec-z-index-dropdown)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-events-bar__search-container{align-items:center;display:flex;flex:auto;padding:0;position:static;z-index:auto}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-events-bar__search{display:flex;flex:auto}.tribe-events .tribe-events-c-events-bar__search-form{width:100%}.tribe-events .tribe-events-c-events-bar__search-button{display:inline-block;margin-right:var(--tec-spacer-1);padding:var(--tec-spacer-0);position:relative}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-events-bar__search-button{display:none!important;visibility:hidden}.tribe-events .tribe-events-c-events-bar__search-button-icon-svg{width:21px}.tribe-events .tribe-events-c-events-bar__search-button-icon-svg path{fill:currentColor}.single-tribe_events .tribe-events-c-ical,.tribe-events .tribe-events-c-ical{margin-top:var(--tec-spacer-4);text-align:right}.single-tribe_events .tribe-events-c-ical__link,.tribe-events .tribe-events-c-ical__link{align-items:center;display:inline-flex;justify-content:center;padding:var(--tec-spacer-2);width:100%}.tribe-common--breakpoint-medium.single-tribe_events .tribe-events-c-ical__link,.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-ical__link{width:auto}.single-tribe_events .tribe-events-c-ical__link-icon-svg,.tribe-events .tribe-events-c-ical__link-icon-svg{display:none}.single-tribe_events .tribe-events-c-subscribe-dropdown__container,.tribe-events .tribe-events-c-subscribe-dropdown__container{display:flex;flex-flow:column;justify-content:flex-end}.single-tribe_events .tribe-events-c-subscribe-dropdown,.tribe-events .tribe-events-c-subscribe-dropdown{font-size:var(--tec-font-size-2);margin:var(--tec-spacer-7) 0}.tribe-common--breakpoint-medium.single-tribe_events .tribe-events-c-subscribe-dropdown,.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-subscribe-dropdown{float:right;margin-left:auto}.tribe-events--filter-bar-vertical.tribe-common--breakpoint-medium.single-tribe_events .tribe-events-c-subscribe-dropdown,.tribe-events--filter-bar-vertical.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-subscribe-dropdown{width:auto}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button{position:relative}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button-icon,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button-icon{display:inline-block;height:6px;margin-left:var(--tec-spacer-1);vertical-align:middle;width:10px}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__export-icon,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__export-icon{height:16px}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__content,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__content{display:none}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list{list-style:none;padding:var(--tec-spacer-1);transform:translateY(var(--tec-spacer-1));width:auto;z-index:var(--tec-z-index-dropdown)}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item{border-radius:var(--tec-border-radius-default);outline:0;padding:var(--tec-spacer-0);text-align:left}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item a,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item a{display:inline-block;padding:0 var(--tec-spacer-3);width:100%}.single-tribe_events .tribe-events-c-subscribe-dropdown:focus-within .tribe-events-c-subscribe-dropdown__content,.single-tribe_events .tribe-events-c-subscribe-dropdown:focus .tribe-events-c-subscribe-dropdown__content,.tribe-events .tribe-events-c-subscribe-dropdown:focus-within .tribe-events-c-subscribe-dropdown__content,.tribe-events .tribe-events-c-subscribe-dropdown:focus .tribe-events-c-subscribe-dropdown__content{display:block}.single-tribe_events .tribe-events-c-subscribe-dropdown:focus-within .tribe-events-c-subscribe-dropdown__button-icon,.single-tribe_events .tribe-events-c-subscribe-dropdown:focus .tribe-events-c-subscribe-dropdown__button-icon,.tribe-events .tribe-events-c-subscribe-dropdown:focus-within .tribe-events-c-subscribe-dropdown__button-icon,.tribe-events .tribe-events-c-subscribe-dropdown:focus .tribe-events-c-subscribe-dropdown__button-icon{transform:rotate(180deg)}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button--active+.tribe-events-c-subscribe-dropdown__content,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button--active+.tribe-events-c-subscribe-dropdown__content{display:block}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button--active .tribe-events-c-subscribe-dropdown__button-icon,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button--active .tribe-events-c-subscribe-dropdown__button-icon{transform:rotate(180deg)}.tribe-events .tribe-events-view-loader{align-items:flex-start;background-color:var(--tec-color-background-transparent);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:var(--tec-z-index-spinner-container)}.tribe-events .tribe-events-c-messages{display:flex;flex-direction:column}.tribe-events .tribe-events-c-messages__message{align-items:center;display:flex;padding:var(--tec-spacer-2);width:100%}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-messages__message{justify-content:center;padding:var(--tec-spacer-3)}.tribe-events .tribe-events-c-nav{padding-top:var(--tec-spacer-4)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-nav{padding-top:var(--tec-spacer-6)}.tribe-events .tribe-events-c-nav__list{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.tribe-events .tribe-events-c-nav__list-item{display:flex;width:33.33%}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-nav__list-item{width:50%}.tribe-events .tribe-events-c-nav__list-item--prev{justify-content:flex-start}.tribe-events .tribe-events-c-nav__list-item--next{justify-content:flex-end}.tribe-events .tribe-events-c-nav__list-item--today{justify-content:center}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-nav__list-item--today{display:none!important;visibility:hidden}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-nav__next-label-plural,.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-nav__prev-label-plural{clip:auto;height:auto;margin:0;position:static;width:auto}.tribe-events .tribe-events-c-nav__next,.tribe-events .tribe-events-c-nav__prev{align-items:center;display:flex;flex:none;flex-wrap:wrap;justify-content:center}.tribe-events .tribe-events-c-nav__next-icon-svg,.tribe-events .tribe-events-c-nav__prev-icon-svg{display:none}.tribe-events .tribe-events-c-promo{margin-top:var(--tec-spacer-4)}.tribe-events .tribe-events-c-read-more{margin-top:var(--tec-spacer-2)}.tribe-events .tribe-events-c-small-cta>*{margin-left:var(--tec-spacer-1)}.tribe-events .tribe-events-c-small-cta>:first-child{margin-left:0}.tribe-events .tribe-events-c-small-cta__link{cursor:pointer}.tribe-events .tribe-events-c-small-cta__stock{margin-left:var(--tec-spacer-0)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-search{align-items:center;display:flex}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-search__input-group{align-items:center;display:flex;flex:auto}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-search__input-control{flex:auto;margin:var(--tec-spacer-2) 0}.tribe-events .tribe-events-c-search__input-control-icon-svg{display:none}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-search__input{margin:calc(var(--tec-spacer-2)*-1) 0}.tribe-events .tribe-common-c-btn.tribe-events-c-search__button{margin-top:var(--tec-spacer-5)}.tribe-common--breakpoint-medium.tribe-events .tribe-common-c-btn.tribe-events-c-search__button{flex:none;margin-top:0}#top .main_color .tribe-events.tribe-common--breakpoint-medium .tribe-events-c-search__input,#top.tribe-theme-enfold .tribe-events.tribe-common--breakpoint-medium .tribe-events-c-search__input,.tribe-theme-avada .tribe-events.tribe-common--breakpoint-medium .tribe-events-c-search__input{margin:calc(var(--tec-spacer-2)*-1) 0}.tooltipster-base.tribe-events-tooltip-theme{height:auto!important;max-width:254px;padding:var(--tec-spacer-5)}.tooltipster-base.tribe-events-tooltip-theme .tooltipster-box{margin:0}.tooltipster-base.tribe-events-tooltip-theme .tooltipster-box .tooltipster-content{padding:0;word-break:break-word}.tooltipster-base.tribe-events-tooltip-theme .tooltipster-arrow{display:none}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-top-bar{align-items:center;display:flex;flex-direction:row;flex-wrap:wrap}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-top-bar__nav{display:block!important;flex:none;visibility:visible}.tribe-events .tribe-events-c-top-bar__nav-list{display:flex}.tribe-events .tribe-events-c-top-bar__nav-list-item{flex:none;padding-right:15px}.tribe-events .tribe-events-c-top-bar__nav-list-item>*{vertical-align:middle}.tribe-events .tribe-events-c-top-bar__nav-link{display:block;line-height:0}.tribe-events .tribe-events-c-top-bar__nav-link-icon-svg{height:19px;width:11px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-top-bar__today-button{display:block!important;flex:none;margin-right:15px;visibility:visible}.tribe-events .tribe-events-c-top-bar__datepicker{flex:auto;position:relative}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-top-bar__datepicker{margin:0;padding:0}.tribe-events .tribe-events-c-top-bar__datepicker-separator{white-space:pre}.tribe-common--breakpoint-full.tribe-events .tribe-events-c-top-bar__datepicker-mobile{display:none!important;visibility:hidden}.tribe-common--breakpoint-full.tribe-events .tribe-events-c-top-bar__datepicker-desktop{display:block!important;visibility:visible}.tribe-events .tribe-events-c-top-bar__datepicker-button{align-items:center;display:flex;flex:none}.tribe-events .tribe-events-c-top-bar__datepicker-button-icon-svg{display:none}.tribe-events .tribe-events-c-top-bar__datepicker-container{bottom:0;left:0;max-width:calc(100% + 29px);position:absolute;width:363px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-top-bar__datepicker-container{max-width:none;min-width:363px}.tribe-events .tribe-events-header--has-event-search .tribe-events-c-top-bar__datepicker-container{max-width:calc(100% + 66px)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-header--has-event-search .tribe-events-c-top-bar__datepicker-container{max-width:none}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-top-bar__actions{display:block!important;flex:none;margin-left:auto;visibility:visible}#top .main_color .tribe-events .tribe-events-c-top-bar__datepicker-input,#top.tribe-theme-enfold .tribe-events .tribe-events-c-top-bar__datepicker-input{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.entry-content-wrapper .tribe-events .tribe-events-c-top-bar__nav-list-item{padding-right:15px}.tribe-theme-avada .tribe-events .tribe-events-c-top-bar__datepicker-input{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tribe-events .tribe-events-c-view-selector{position:relative;width:29px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector{width:auto}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--labels .tribe-events-c-view-selector__button{height:100%;padding:var(--tec-spacer-4) var(--tec-spacer-5)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--labels .tribe-events-c-view-selector__button-icon{display:none!important;visibility:hidden}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--labels .tribe-events-c-view-selector__button-text{clip:auto;height:auto;margin:0;position:static;width:auto;flex:auto}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--labels .tribe-events-c-view-selector__content{left:0;padding:var(--tec-spacer-1);right:auto;transform:translateY(var(--tec-spacer-1));width:auto}.tribe-events .tribe-events-c-view-selector--labels .tribe-events-c-view-selector__list-item--active{display:none}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--labels .tribe-events-c-view-selector__list-item-link{padding:var(--tec-spacer-0) var(--tec-spacer-7) var(--tec-spacer-0) var(--tec-spacer-3)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--labels .tribe-events-c-view-selector__list-item-icon,.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--tabs .tribe-events-c-view-selector__button{display:none!important;visibility:hidden}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--tabs .tribe-events-c-view-selector__content{display:block;height:100%;padding:0 var(--tec-spacer-2);position:static;transform:none}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--tabs .tribe-events-c-view-selector__list{display:flex;height:100%}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--tabs .tribe-events-c-view-selector__list-item{padding:0 var(--tec-spacer-2)}.tribe-events .tribe-events-c-view-selector--tabs .tribe-events-c-view-selector__list-item--active{display:block}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--tabs .tribe-events-c-view-selector__list-item-link{height:100%;padding:var(--tec-spacer-4) 0;position:relative}.tribe-events .tribe-events-c-view-selector__button{align-items:center;display:flex;padding:var(--tec-spacer-0);position:relative;width:100%}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector__button{padding:var(--tec-spacer-1)}.tribe-events .tribe-events-c-view-selector__button-icon{display:block;height:21px;width:21px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector__button-icon{height:23px;width:23px}.tribe-events .tribe-events-c-view-selector__button-icon-caret-svg{display:none}.tribe-events .tribe-events-c-view-selector__content{display:none;padding:var(--tec-spacer-2) calc(var(--tec-spacer-2)/2);position:absolute;right:0;top:100%;transform:translateY(var(--tec-spacer-3));z-index:var(--tec-z-index-dropdown)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector__content{transform:translateY(var(--tec-spacer-2))}.tribe-events .tribe-events-c-view-selector__list-item-link{align-items:center;display:flex;padding:var(--tec-spacer-1) var(--tec-spacer-5) var(--tec-spacer-1) var(--tec-spacer-2)}.tribe-events .tribe-events-c-view-selector__list-item-icon{flex:none;height:18px;margin-right:12px;width:18px}.tribe-events .tribe-events-c-view-selector__list-item-text{flex:auto}.tribe-events .tribe-events-header{align-items:center;display:flex;flex-direction:row-reverse;flex-wrap:wrap;justify-content:space-between;margin:0 calc(var(--tec-grid-gutter-page-small)*-1);padding:0 var(--tec-grid-gutter-page-small) var(--tec-spacer-3);position:relative}.tribe-common--breakpoint-medium.tribe-events .tribe-events-header{margin:0;padding:0}.tribe-common--breakpoint-medium.tribe-events .tribe-events-header--has-event-search{background-color:transparent;flex-direction:row}.tribe-common--breakpoint-medium.tribe-events .tribe-events-header--has-event-search .tribe-events-header__events-bar{margin-left:0;width:100%}.tribe-common--breakpoint-medium.tribe-events .tribe-events-header--has-event-search .tribe-events-header__top-bar{width:100%}.tribe-events .tribe-events-header__messages{margin-bottom:var(--tec-spacer-3);width:100%}.tribe-events .tribe-events-header__messages.tribe-events-header__messages--mobile{margin-top:10px}.tribe-events .tribe-events-header__messages:not(.tribe-events-header__messages--mobile){display:none}.tribe-common--breakpoint-medium.tribe-events .tribe-events-header__messages{margin-bottom:var(--tec-spacer-7);order:1}.tribe-common--breakpoint-medium.tribe-events .tribe-events-header__messages:not(.tribe-events-header__messages--mobile){display:flex}.tribe-common--breakpoint-medium.tribe-events .tribe-events-header__messages.tribe-events-header__messages--mobile{display:none}.tribe-events .tribe-events-header__events-bar{flex:none}.tribe-common--breakpoint-medium.tribe-events .tribe-events-header__events-bar{margin-bottom:var(--tec-spacer-7);margin-left:var(--tec-spacer-3)}.tribe-events .tribe-events-header__top-bar{flex:auto}.tribe-common--breakpoint-medium.tribe-events .tribe-events-header__top-bar{margin-bottom:var(--tec-spacer-7)}.tribe-events .tribe-events-calendar-list__event-row{flex-wrap:nowrap;margin-bottom:var(--tec-spacer-5);margin-top:var(--tec-spacer-7)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-row{margin:var(--tec-spacer-9) var(--tec-grid-gutter-half-negative) var(--tec-spacer-8)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-row>.tribe-common-g-col{padding-left:var(--tec-grid-gutter-half);padding-right:var(--tec-grid-gutter-half)}.tribe-events .tribe-events-calendar-list__event-row:last-child{margin-bottom:var(--tec-spacer-8)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-row:last-child{margin-bottom:var(--tec-spacer-11)}.tribe-events .tribe-events-calendar-list__month-separator+.tribe-events-calendar-list__event-row{margin-top:var(--tec-spacer-4)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__month-separator+.tribe-events-calendar-list__event-row{margin-top:var(--tec-spacer-8)}.tribe-events .tribe-events-calendar-list__event-date-tag{flex:none;position:relative;width:54px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-date-tag{min-width:90px;width:var(--tec-grid-width-1-of-9)}.tribe-events .tribe-events-calendar-list__event-date-tag-datetime{display:flex;flex-direction:column;height:100%;padding-top:var(--tec-spacer-0);text-align:center}.tribe-events .tribe-events-calendar-list__event-date-tag-weekday{margin-bottom:calc(var(--tec-spacer-0)*-1)}.tribe-events .tribe-events-calendar-list__event-wrapper{flex:1;width:calc(var(--tec-grid-width-1-of-4)*3 + var(--tec-grid-gutter-small-half))}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-wrapper{flex:1 1 calc(var(--tec-grid-width-1-of-9)*8)}.tribe-events .tribe-events-calendar-list__event{flex-direction:column}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event{flex-direction:row-reverse;justify-content:flex-end}.tribe-events .tribe-events-calendar-list__event-featured-image-wrapper{flex:none;margin-bottom:var(--tec-spacer-3)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-featured-image-wrapper{margin-bottom:0;width:calc(var(--tec-grid-width-1-of-8)*3)}.tribe-events .tribe-events-calendar-list__event-featured-image,.tribe-events .tribe-events-calendar-list__event-featured-image-link{display:block}.tribe-events .tribe-events-calendar-list__event-details{flex:none}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-details{width:calc(var(--tec-grid-width-1-of-8)*5)}.tribe-events .tribe-events-calendar-list__event-header>:last-child{margin-bottom:0}.tribe-events .tribe-events-calendar-list__event-datetime-wrapper,.tribe-events .tribe-events-calendar-list__event-title{margin:0 0 var(--tec-spacer-1)}.tribe-events .tribe-events-calendar-list__event-datetime-wrapper:last-child,.tribe-events .tribe-events-calendar-list__event-title:last-child{margin-bottom:0}.tribe-events .tribe-events-calendar-list__event-title-link{color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-list__event-title-link:active,.tribe-events .tribe-events-calendar-list__event-title-link:focus,.tribe-events .tribe-events-calendar-list__event-title-link:hover{border-color:currentColor;color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-list__event-title-link:visited{color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-list__event-datetime-featured-icon{display:inline-block;margin-right:var(--tec-spacer-0)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-datetime-featured-text{clip:auto;height:auto;margin:0;position:static;width:auto;margin-right:var(--tec-spacer-1)}.tribe-events .tribe-events-calendar-list__event-venue{margin-bottom:var(--tec-spacer-1)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-venue{margin-bottom:var(--tec-spacer-3)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-description{display:block!important;margin-top:var(--tec-spacer-3);visibility:visible}.tribe-events .tribe-events-calendar-list__event-cost{margin-top:var(--tec-spacer-2)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-cost{margin-top:var(--tec-spacer-3)}.tribe-events .tribe-events-calendar-list__month-separator{align-items:center;display:flex}.tribe-events .tribe-events-calendar-list__month-separator-text{flex:none}.tribe-events .tribe-events-calendar-list-nav{padding-top:var(--tec-spacer-5)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list-nav{padding-top:var(--tec-spacer-7)}.tribe-events .tribe-events-calendar-month{margin-bottom:var(--tec-spacer-1)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month{margin:0}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__body{border-top:1px solid var(--tec-color-border-secondary-month-grid)}.tribe-events .tribe-events-calendar-month__week{display:flex}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__week{border-left:1px solid var(--tec-color-border-secondary-month-grid)}.tribe-events .tribe-events-calendar-month__calendar-event{margin:var(--tec-spacer-1) 0;padding:0 var(--tec-spacer-3);position:relative}.tribe-events .tribe-events-calendar-month__calendar-event:first-child{margin-top:0}.tribe-events .tribe-events-calendar-month__calendar-event:last-child{margin-bottom:0;padding-bottom:var(--tec-spacer-3)}.tribe-events .tribe-events-calendar-month__multiday-event-wrapper+.tribe-events-calendar-month__calendar-event{margin-top:0}.tribe-events .tribe-events-calendar-month__multiday-event-wrapper+.tribe-events-calendar-month__calendar-event--featured{margin-top:var(--tec-spacer-1)}.tribe-events .tribe-events-calendar-month__calendar-event-datetime-featured-icon{display:inline-block;line-height:0;margin-right:var(--tec-spacer-0)}.tribe-events .tribe-events-calendar-month__calendar-event-featured-image-wrapper{margin-bottom:var(--tec-spacer-0)}.tribe-events .tribe-events-calendar-month__calendar-event-featured-image,.tribe-events .tribe-events-calendar-month__calendar-event-featured-image-link{display:block}.tribe-events .tribe-events-calendar-month__calendar-event-datetime>*{vertical-align:middle}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-featured-image-wrapper{margin-bottom:var(--tec-spacer-2);width:206px}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-featured-image-wrapper:last-child{margin-bottom:0}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-featured-image,.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-featured-image-link{display:block}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-datetime{margin-bottom:var(--tec-spacer-0)}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-datetime>*{vertical-align:middle}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-datetime-featured-icon{display:inline-block;line-height:0;margin-right:var(--tec-spacer-0)}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-title{margin-bottom:var(--tec-spacer-0)}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-description{margin-bottom:var(--tec-spacer-1)}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-description:last-child{margin-bottom:0}.tribe-events .tribe-events-calendar-month__calendar-event-title{margin:0}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-cost{margin-top:var(--tec-spacer-3)}.tribe-theme-twentynineteen .entry .tribe-events .tribe-events-calendar-month__calendar-event,.tribe-theme-twentynineteen .tribe-events .tribe-events-calendar-month__calendar-event{margin:var(--tec-spacer-1) 0;padding:0 var(--tec-spacer-3);position:relative}.tribe-theme-twentynineteen .entry .tribe-events .tribe-events-calendar-month__calendar-event:first-child,.tribe-theme-twentynineteen .tribe-events .tribe-events-calendar-month__calendar-event:first-child{margin-top:0}.tribe-theme-twentynineteen .entry .tribe-events .tribe-events-calendar-month__calendar-event:last-child,.tribe-theme-twentynineteen .tribe-events .tribe-events-calendar-month__calendar-event:last-child{margin-bottom:0;padding-bottom:var(--tec-spacer-3)}.tribe-events .tribe-events-calendar-month__header-row{display:flex}.tribe-events .tribe-events-calendar-month__header-column{padding-bottom:var(--tec-spacer-3);width:var(--tec-grid-width-1-of-7)}.tribe-events .tribe-events-calendar-month__header-column-title{margin:0}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__header-column-title-mobile{display:none!important;visibility:hidden}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__header-column-title-desktop{display:block!important;visibility:visible}.tribe-events .tribe-events-calendar-month__day{aspect-ratio:1/1;height:auto;min-height:36px;overflow:hidden;padding-top:var(--grid-width-1-of-7);position:relative;width:var(--tec-grid-width-1-of-7)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__day{aspect-ratio:auto;border-color:var(--tec-color-border-secondary-month-grid);border-style:solid;border-width:0 1px 1px 0;min-height:168px;overflow:visible;padding-top:0}.tribe-events .tribe-events-calendar-month__day-cell{height:100%;width:100%}.tribe-events .tribe-events-calendar-month__day-cell--mobile{align-items:center;display:flex;flex-direction:column;position:absolute;text-align:center;top:0}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__day-cell--mobile{display:none!important;visibility:hidden}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__day-cell--desktop{display:flex!important;flex-direction:column;visibility:visible}.tribe-events .tribe-events-calendar-month__day-date{margin:0}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__day-date{flex:none;padding:var(--tec-spacer-1) var(--tec-spacer-3)}.tribe-events .tribe-events-calendar-month__events{flex:auto}.tribe-events .tribe-events-calendar-month__mobile-events-icon--event{background-color:currentColor;border-radius:50%;height:8px;width:8px}.tribe-events .tribe-events-calendar-month__mobile-events-icon--featured{line-height:0;width:8px}.tribe-events .tribe-events-calendar-month__mobile-events-icon--featured .tribe-events-calendar-month__mobile-events-icon-svg path{fill:currentColor}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month-mobile-events{display:none!important;visibility:hidden}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-day{display:none}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-day--show{display:block}.tribe-events .tribe-events-calendar-month-mobile-events__day-marker{padding-top:var(--tec-spacer-3)}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event{padding:var(--tec-spacer-2) 0}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event--featured{padding-bottom:var(--tec-spacer-4)}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-featured-image-wrapper{margin-bottom:var(--tec-spacer-2)}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-datetime{margin-bottom:var(--tec-spacer-0)}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-datetime>*{vertical-align:middle}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-datetime-featured-icon{display:inline-block;line-height:0;margin-right:var(--tec-spacer-0)}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-datetime-featured-text{margin-right:var(--tec-spacer-1)}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-title{margin:0}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-cost{margin-top:var(--tec-spacer-1)}.tribe-events .tribe-events-calendar-month-mobile-events__more-events{padding:var(--tec-spacer-0) 0 var(--tec-spacer-4)}.tribe-events .tribe-events-calendar-month__more-events{display:flex;flex:none;margin:0 var(--tec-spacer-3);padding:var(--tec-spacer-1) 0 var(--tec-spacer-3)}.tribe-events .tribe-events-calendar-month__more-events-link{flex:none}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__multiday-event-wrapper{height:19px;margin-bottom:var(--tec-spacer-0);position:relative}.tribe-events .tribe-events-calendar-month__multiday-event--width-2 .tribe-events-calendar-month__multiday-event-bar{width:calc(200% + 1px)}.tribe-events .tribe-events-calendar-month__multiday-event--width-3 .tribe-events-calendar-month__multiday-event-bar{width:calc(300% + 2px)}.tribe-events .tribe-events-calendar-month__multiday-event--width-4 .tribe-events-calendar-month__multiday-event-bar{width:calc(400% + 3px)}.tribe-events .tribe-events-calendar-month__multiday-event--width-5 .tribe-events-calendar-month__multiday-event-bar{width:calc(500% + 4px)}.tribe-events .tribe-events-calendar-month__multiday-event--width-6 .tribe-events-calendar-month__multiday-event-bar{width:calc(600% + 5px)}.tribe-events .tribe-events-calendar-month__multiday-event--width-7 .tribe-events-calendar-month__multiday-event-bar{width:calc(700% + 6px)}.tribe-events .tribe-events-calendar-month__multiday-event-hidden{height:100%;opacity:0;position:absolute;width:100%;z-index:var(--tec-z-index-multiday-event)}.tribe-events .tribe-events-calendar-month__multiday-event-hidden-title{margin:0;overflow:hidden;white-space:nowrap}.tribe-events .tribe-events-calendar-month__multiday-event-hidden-link{display:block;height:100%}.tribe-events .tribe-events-calendar-month__multiday-event-bar{background-color:var(--tec-color-background);overflow:hidden;position:relative;width:100%;z-index:var(--tec-z-index-multiday-event-bar)}.tribe-events .tribe-events-calendar-month__multiday-event-bar-inner{align-items:center;cursor:pointer;display:flex;flex-wrap:nowrap;padding:1px var(--tec-spacer-3)}.tribe-events .tribe-events-calendar-month__multiday-event-bar-featured-icon{flex:none;line-height:0;margin-right:5px}.tribe-events .tribe-events-calendar-month__multiday-event-bar-title{flex:none;margin:0;max-width:100%;overflow:hidden;white-space:nowrap}.tribe-events .tribe-events-calendar-month-nav{padding-top:var(--tec-spacer-4)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month-nav{display:none!important;visibility:hidden}.tribe-events .tribe-events-calendar-day__event{margin-bottom:var(--tec-spacer-5);margin-top:var(--tec-spacer-7);padding-left:54px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event{margin-bottom:var(--tec-spacer-8);margin-top:var(--tec-spacer-9);padding-left:0}.tribe-events .tribe-events-calendar-day__event:last-child{margin-bottom:var(--tec-spacer-8)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event:last-child{margin-bottom:var(--tec-spacer-11)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event:before{content:"";min-width:90px;width:var(--tec-grid-width-1-of-9)}.tribe-events .tribe-events-calendar-day__time-separator+.tribe-events-calendar-day__event,.tribe-events .tribe-events-calendar-day__type-separator+.tribe-events-calendar-day__event{margin-top:var(--tec-spacer-4)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__time-separator+.tribe-events-calendar-day__event,.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__type-separator+.tribe-events-calendar-day__event{margin-top:var(--tec-spacer-8)}.tribe-events .tribe-events-calendar-day__event-content{flex:none}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event-content{display:flex;flex:1 1 calc(var(--tec-grid-width-1-of-9)*8);flex-direction:row-reverse;justify-content:flex-end;margin-left:var(--tec-grid-gutter-half-negative);margin-right:var(--tec-grid-gutter-half-negative)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event-content>*{padding-left:var(--tec-grid-gutter-half);padding-right:var(--tec-grid-gutter-half)}.tribe-events .tribe-events-calendar-day__event-featured-image-wrapper{margin-bottom:var(--tec-spacer-3)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event-featured-image-wrapper{flex:none;margin-bottom:0;width:calc(var(--tec-grid-width-1-of-8)*3)}.tribe-events .tribe-events-calendar-day__event-featured-image-link,.tribe-events .tribe-events-calendar-list__event-featured-image{display:block}.tribe-events .tribe-events-calendar-day__event-details{position:relative}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event-details{flex:none;width:calc(var(--tec-grid-width-1-of-8)*5)}.tribe-events .tribe-events-calendar-day__event-header>:last-child{margin-bottom:0}.tribe-events .tribe-events-calendar-day__event-datetime-wrapper,.tribe-events .tribe-events-calendar-day__event-title{margin:0 0 var(--tec-spacer-1)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event-datetime-wrapper,.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event-title{margin:0 0 var(--tec-spacer-3)}.tribe-events .tribe-events-calendar-day__event-datetime-wrapper:last-child,.tribe-events .tribe-events-calendar-day__event-title:last-child{margin-bottom:0}.tribe-events .tribe-events-calendar-day__event-datetime-featured-icon{display:inline-block;margin-right:var(--tec-spacer-0)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event-datetime-featured-text{clip:auto;height:auto;margin:0;position:static;width:auto;margin-right:var(--tec-spacer-1)}.tribe-events .tribe-events-calendar-day__event-venue{margin-bottom:var(--tec-spacer-1)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event-venue{margin-bottom:var(--tec-spacer-3)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event-description{display:block!important;margin-top:var(--tec-spacer-3);visibility:visible}.tribe-events .tribe-events-calendar-day__event-cost{margin-top:var(--tec-spacer-2)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event-cost{margin-top:var(--tec-spacer-3)}.tribe-theme-twentynineteen .tribe-events .entry.tribe-events-calendar-day__event{margin-bottom:var(--tec-spacer-5);margin-top:var(--tec-spacer-7);padding-left:54px}.tribe-theme-twentynineteen .tribe-events .entry.tribe-events-calendar-day__event:last-child{margin-bottom:var(--tec-spacer-8)}.tribe-theme-twentynineteen .tribe-events.tribe-common--breakpoint-medium .entry.tribe-events-calendar-day__event{margin-bottom:var(--tec-spacer-8);margin-top:var(--tec-spacer-9);padding-left:0}.tribe-theme-twentynineteen .tribe-events.tribe-common--breakpoint-medium .entry.tribe-events-calendar-day__event:last-child{margin-bottom:var(--tec-spacer-11)}.tribe-theme-twentynineteen .tribe-events .tribe-events-calendar-day__time-separator+.entry.tribe-events-calendar-day__event,.tribe-theme-twentynineteen .tribe-events .tribe-events-calendar-day__type-separator+.entry.tribe-events-calendar-day__event{margin-top:var(--tec-spacer-4)}.tribe-theme-twentynineteen .tribe-events.tribe-common--breakpoint-medium .tribe-events-calendar-day__time-separator+.entry.tribe-events-calendar-day__event,.tribe-theme-twentynineteen .tribe-events.tribe-common--breakpoint-medium .tribe-events-calendar-day__type-separator+.entry.tribe-events-calendar-day__event{margin-top:var(--tec-spacer-8)}.tribe-events .tribe-events-calendar-day-nav{padding-top:var(--tec-spacer-5)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day-nav{padding-top:var(--tec-spacer-7)}.tribe-events .tribe-events-calendar-day__time-separator{align-items:center;display:flex}.tribe-events .tribe-events-calendar-day__time-separator-text{flex:none}.tribe-events .tribe-events-calendar-day__type-separator{align-items:center;display:flex}.tribe-events .tribe-events-calendar-day__type-separator-text{flex:none}.tribe-events .tribe-events-calendar-latest-past__event-row{flex-wrap:nowrap;margin-bottom:var(--tec-spacer-5);margin-top:var(--tec-spacer-7)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-row{margin:var(--tec-spacer-9) var(--tec-grid-gutter-half-negative) var(--tec-spacer-8)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-row>.tribe-common-g-col{padding-left:var(--tec-grid-gutter-half);padding-right:var(--tec-grid-gutter-half)}.tribe-events .tribe-events-calendar-latest-past__event-row:last-child{margin-bottom:var(--tec-spacer-8)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-row:last-child{margin-bottom:var(--tec-spacer-11)}.tribe-events .tribe-events-calendar-latest-past__event-date-tag{flex:none;position:relative;width:54px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-date-tag{min-width:90px;width:var(--tec-grid-width-1-of-9)}.tribe-events .tribe-events-calendar-latest-past__event-date-tag-datetime{display:flex;flex-direction:column;height:100%;text-align:center}.tribe-events .tribe-events-calendar-latest-past__event-date-tag-daynum,.tribe-events .tribe-events-calendar-latest-past__event-date-tag-month{margin-bottom:calc(var(--tec-spacer-0)*-1)}.tribe-events .tribe-events-calendar-latest-past__event-wrapper{flex:1;width:calc(var(--tec-grid-width-1-of-4)*3 + var(--tec-grid-gutter-small-half))}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-wrapper{flex:1 1 calc(var(--tec-grid-width-1-of-9)*8)}.tribe-events .tribe-events-calendar-latest-past__event{flex-direction:column}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event{flex-direction:row-reverse;justify-content:flex-end}.tribe-events .tribe-events-calendar-latest-past__event-featured-image-wrapper{flex:none;margin-bottom:var(--tec-spacer-3)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-featured-image-wrapper{margin-bottom:0;width:calc(var(--tec-grid-width-1-of-8)*3)}.tribe-events .tribe-events-calendar-latest-past__event-featured-image,.tribe-events .tribe-events-calendar-latest-past__event-featured-image-link{display:block}.tribe-events .tribe-events-calendar-latest-past__event-details{flex:none}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-details{width:calc(var(--tec-grid-width-1-of-8)*5)}.tribe-events .tribe-events-calendar-latest-past__event-header>:last-child{margin-bottom:0}.tribe-events .tribe-events-calendar-latest-past__event-datetime-wrapper,.tribe-events .tribe-events-calendar-latest-past__event-title{margin:0 0 var(--tec-spacer-1)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-datetime-wrapper,.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-title{margin:0 0 var(--tec-spacer-3)}.tribe-events .tribe-events-calendar-latest-past__event-datetime-wrapper:last-child,.tribe-events .tribe-events-calendar-latest-past__event-title:last-child{margin-bottom:0}.tribe-events .tribe-events-calendar-latest-past__event-datetime-featured-icon{display:inline-block;margin-right:var(--tec-spacer-0)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-datetime-featured-text{clip:auto;height:auto;margin:0;position:static;width:auto;margin-right:var(--tec-spacer-1)}.tribe-events .tribe-events-calendar-latest-past__event-venue{margin-bottom:var(--tec-spacer-1)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-venue{margin-bottom:var(--tec-spacer-3)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-description{display:block!important;margin-top:var(--tec-spacer-3);visibility:visible}.tribe-events .tribe-events-calendar-latest-past__event-cost{margin-top:var(--tec-spacer-2)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-cost{margin-top:var(--tec-spacer-3)}.tribe-events-single .tribe-events-status-single__header--alert-icon{align-items:center;display:inline-flex}.tribe-events-single .tribe-events-status-single{display:inline-flex;margin-bottom:var(--tec-spacer-4);padding:var(--tec-spacer-2) var(--tec-spacer-4)}.tribe-events-single .tribe-events-status-single__description{padding-left:var(--tec-spacer-5)}
|
1 |
+
.tribe-events-view{position:relative;width:100%}.tribe-events .tribe-events-l-container{min-height:600px;padding-bottom:var(--tec-spacer-12);padding-top:var(--tec-spacer-11)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-l-container{min-height:700px;padding-bottom:var(--tec-spacer-14);padding-top:var(--tec-spacer-13)}.tribe-events .tribe-events-c-breadcrumbs{margin-bottom:var(--tec-spacer-5);width:100%}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-breadcrumbs{margin-bottom:var(--tec-spacer-9)}.tribe-events .tribe-events-c-breadcrumbs__list{display:flex;flex-wrap:wrap}.tribe-events .tribe-events-c-breadcrumbs__list-item{align-items:center;display:inline-flex}.tribe-events .tribe-events-c-breadcrumbs__list-item:last-child .tribe-events-c-breadcrumbs__list-item-icon-svg{display:none}.tribe-events .tribe-events-c-breadcrumbs__list-item-icon-svg{display:inline-block;height:14px;margin:0 6px;width:6px}.tribe-events .tribe-events-c-breadcrumbs__list-item-icon-svg path{fill:currentColor}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-breadcrumbs__list-item-icon-svg{height:16px;margin:0 10px;width:10px}.tribe-events .datepicker{margin-top:var(--tec-spacer-1);padding:0 var(--tec-spacer-3) var(--tec-spacer-3)}.tribe-common--breakpoint-medium.tribe-events .datepicker{margin-top:var(--tec-spacer-3)}.tribe-events .datepicker table{border-collapse:collapse;table-layout:fixed}.tribe-events .datepicker .datepicker-switch,.tribe-events .datepicker .next,.tribe-events .datepicker .prev{padding:var(--tec-spacer-4) 0;vertical-align:middle}.tribe-events .datepicker .next .tribe-events-c-top-bar__datepicker-nav-icon-svg,.tribe-events .datepicker .prev .tribe-events-c-top-bar__datepicker-nav-icon-svg{height:15px;margin-right:auto;width:9px}.tribe-events .datepicker .next .tribe-events-c-top-bar__datepicker-nav-icon-svg path,.tribe-events .datepicker .prev .tribe-events-c-top-bar__datepicker-nav-icon-svg path{fill:currentColor}.tribe-events .datepicker .next .tribe-events-c-top-bar__datepicker-nav-icon-svg{margin-left:auto;margin-right:0}.tribe-events .datepicker .datepicker-months td,.tribe-events .datepicker .datepicker-months th,.tribe-events .datepicker .datepicker-years td,.tribe-events .datepicker .datepicker-years th{padding:0}.tribe-events .datepicker .datepicker-months .datepicker-switch,.tribe-events .datepicker .datepicker-months .next,.tribe-events .datepicker .datepicker-months .prev,.tribe-events .datepicker .datepicker-years .datepicker-switch,.tribe-events .datepicker .datepicker-years .next,.tribe-events .datepicker .datepicker-years .prev{padding:var(--tec-spacer-4) 0 var(--tec-spacer-1)}.tribe-events .datepicker .dow{padding:0;width:var(--tec-grid-width-1-of-7)}.tribe-events .datepicker .day{padding:11px 0;width:48px}.tribe-events .datepicker .month,.tribe-events .datepicker .year{height:auto;margin:0;padding:15px 0;width:25%}.admin-bar .tribe-events .datepicker{margin-top:var(--tec-spacer-1)}.admin-bar .tribe-events.tribe-common--breakpoint-medium .datepicker{margin-top:var(--tec-spacer-3)}.tribe-theme-divi #content-area .tribe-events .datepicker .datepicker-switch,.tribe-theme-divi #content-area .tribe-events .datepicker .next,.tribe-theme-divi #content-area .tribe-events .datepicker .prev{padding:var(--tec-spacer-4) 0}.tribe-theme-divi #content-area .tribe-events .datepicker .datepicker-months .datepicker-switch,.tribe-theme-divi #content-area .tribe-events .datepicker .datepicker-months .next,.tribe-theme-divi #content-area .tribe-events .datepicker .datepicker-months .prev,.tribe-theme-divi #content-area .tribe-events .datepicker .datepicker-years .datepicker-switch,.tribe-theme-divi #content-area .tribe-events .datepicker .datepicker-years .next,.tribe-theme-divi #content-area .tribe-events .datepicker .datepicker-years .prev{padding:var(--tec-spacer-4) 0 var(--tec-spacer-1)}.tribe-theme-divi #content-area .tribe-events .datepicker .dow{padding:0}.tribe-theme-divi #content-area .tribe-events .datepicker .day{padding:11px 0}.tribe-theme-enfold .tribe-events .datepicker{min-width:0;padding:0 var(--tec-spacer-3) var(--tec-spacer-3)}.tribe-theme-enfold .tribe-events .datepicker .datepicker-switch{cursor:pointer!important}.tribe-theme-avada .tribe-events .datepicker{padding:0 var(--tec-spacer-3) var(--tec-spacer-3)}.tribe-theme-avada .tribe-events .datepicker .datepicker-months td{padding:0}.tribe-events .tribe-events-c-day-marker{align-items:center;display:flex}.tribe-events .tribe-events-c-day-marker__date{flex:none}.tribe-events .tribe-events-c-events-bar{display:flex}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-events-bar{flex-direction:row}.tribe-events .tribe-events-c-events-bar__views{display:flex;flex:none;justify-content:center}.tribe-events .tribe-events-c-events-bar__search-container{display:none;left:0;padding:var(--tec-spacer-1) var(--tec-grid-gutter-small-half) var(--tec-spacer-2);position:absolute;right:0;top:calc(100% - var(--tec-spacer-1));z-index:var(--tec-z-index-dropdown)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-events-bar__search-container{align-items:center;display:flex;flex:auto;padding:0;position:static;z-index:auto}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-events-bar__search{display:flex;flex:auto}.tribe-events .tribe-events-c-events-bar__search-form{width:100%}.tribe-events .tribe-events-c-events-bar__search-button{display:inline-block;margin-right:var(--tec-spacer-1);padding:var(--tec-spacer-0);position:relative}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-events-bar__search-button{display:none!important;visibility:hidden}.tribe-events .tribe-events-c-events-bar__search-button-icon-svg{width:21px}.tribe-events .tribe-events-c-events-bar__search-button-icon-svg path{fill:currentColor}.single-tribe_events .tribe-events-c-ical,.tribe-events .tribe-events-c-ical{margin-top:var(--tec-spacer-4);text-align:right}.single-tribe_events .tribe-events-c-ical__link,.tribe-events .tribe-events-c-ical__link{align-items:center;display:inline-flex;justify-content:center;padding:var(--tec-spacer-2);width:100%}.tribe-common--breakpoint-medium.single-tribe_events .tribe-events-c-ical__link,.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-ical__link{width:auto}.single-tribe_events .tribe-events-c-ical__link-icon-svg,.tribe-events .tribe-events-c-ical__link-icon-svg{display:none}.single-tribe_events .tribe-events-c-subscribe-dropdown__container,.tribe-events .tribe-events-c-subscribe-dropdown__container{display:flex;flex-flow:column;justify-content:flex-end}.single-tribe_events .tribe-events-c-subscribe-dropdown,.tribe-events .tribe-events-c-subscribe-dropdown{font-size:var(--tec-font-size-2);margin:var(--tec-spacer-7) 0}.tribe-common--breakpoint-medium.single-tribe_events .tribe-events-c-subscribe-dropdown,.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-subscribe-dropdown{float:right;margin-left:auto}.tribe-events--filter-bar-vertical.tribe-common--breakpoint-medium.single-tribe_events .tribe-events-c-subscribe-dropdown,.tribe-events--filter-bar-vertical.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-subscribe-dropdown{width:auto}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button{position:relative}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button-icon,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button-icon{display:inline-block;height:6px;margin-left:var(--tec-spacer-1);vertical-align:middle;width:10px}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__export-icon,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__export-icon{height:16px}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__content,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__content{display:none}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list{list-style:none;padding:var(--tec-spacer-1);transform:translateY(var(--tec-spacer-1));width:auto;z-index:var(--tec-z-index-dropdown)}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item{border-radius:var(--tec-border-radius-default);outline:0;padding:var(--tec-spacer-0);text-align:left}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item a,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__list-item a{display:inline-block;padding:0 var(--tec-spacer-3);width:100%}.single-tribe_events .tribe-events-c-subscribe-dropdown:focus-within .tribe-events-c-subscribe-dropdown__content,.single-tribe_events .tribe-events-c-subscribe-dropdown:focus .tribe-events-c-subscribe-dropdown__content,.tribe-events .tribe-events-c-subscribe-dropdown:focus-within .tribe-events-c-subscribe-dropdown__content,.tribe-events .tribe-events-c-subscribe-dropdown:focus .tribe-events-c-subscribe-dropdown__content{display:block}.single-tribe_events .tribe-events-c-subscribe-dropdown:focus-within .tribe-events-c-subscribe-dropdown__button-icon,.single-tribe_events .tribe-events-c-subscribe-dropdown:focus .tribe-events-c-subscribe-dropdown__button-icon,.tribe-events .tribe-events-c-subscribe-dropdown:focus-within .tribe-events-c-subscribe-dropdown__button-icon,.tribe-events .tribe-events-c-subscribe-dropdown:focus .tribe-events-c-subscribe-dropdown__button-icon{transform:rotate(180deg)}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button--active+.tribe-events-c-subscribe-dropdown__content,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button--active+.tribe-events-c-subscribe-dropdown__content{display:block}.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button--active .tribe-events-c-subscribe-dropdown__button-icon,.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button--active .tribe-events-c-subscribe-dropdown__button-icon{transform:rotate(180deg)}.tribe-events .tribe-events-view-loader{align-items:flex-start;background-color:var(--tec-color-background-transparent);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:var(--tec-z-index-spinner-container)}.tribe-events .tribe-events-c-messages{display:flex;flex-direction:column}.tribe-events .tribe-events-c-messages__message{align-items:center;display:flex;padding:var(--tec-spacer-2);width:100%}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-messages__message{justify-content:center;padding:var(--tec-spacer-3)}.tribe-events .tribe-events-c-nav{padding-top:var(--tec-spacer-4)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-nav{padding-top:var(--tec-spacer-6)}.tribe-events .tribe-events-c-nav__list{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.tribe-events .tribe-events-c-nav__list-item{display:flex;width:33.33%}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-nav__list-item{width:50%}.tribe-events .tribe-events-c-nav__list-item--prev{justify-content:flex-start}.tribe-events .tribe-events-c-nav__list-item--next{justify-content:flex-end}.tribe-events .tribe-events-c-nav__list-item--today{justify-content:center}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-nav__list-item--today{display:none!important;visibility:hidden}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-nav__next-label-plural,.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-nav__prev-label-plural{clip:auto;height:auto;margin:0;position:static;width:auto}.tribe-events .tribe-events-c-nav__next,.tribe-events .tribe-events-c-nav__prev{align-items:center;display:flex;flex:none;flex-wrap:wrap;justify-content:center}.tribe-events .tribe-events-c-nav__next-icon-svg,.tribe-events .tribe-events-c-nav__prev-icon-svg{display:none}.tribe-events .tribe-events-c-promo{margin-top:var(--tec-spacer-4)}.tribe-events .tribe-events-c-read-more{margin-top:var(--tec-spacer-2)}.tribe-events .tribe-events-c-small-cta>*{margin-left:var(--tec-spacer-1)}.tribe-events .tribe-events-c-small-cta>:first-child{margin-left:0}.tribe-events .tribe-events-c-small-cta__link{cursor:pointer}.tribe-events .tribe-events-c-small-cta__stock{margin-left:var(--tec-spacer-0)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-search{align-items:center;display:flex}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-search__input-group{align-items:center;display:flex;flex:auto}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-search__input-control{flex:auto;margin:var(--tec-spacer-2) 0}.tribe-events .tribe-events-c-search__input-control-icon-svg{display:none}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-search__input{margin:calc(var(--tec-spacer-2)*-1) 0}.tribe-events .tribe-common-c-btn.tribe-events-c-search__button{margin-top:var(--tec-spacer-5)}.tribe-common--breakpoint-medium.tribe-events .tribe-common-c-btn.tribe-events-c-search__button{flex:none;margin-top:0}#top .main_color .tribe-events.tribe-common--breakpoint-medium .tribe-events-c-search__input,#top.tribe-theme-enfold .tribe-events.tribe-common--breakpoint-medium .tribe-events-c-search__input,.tribe-theme-avada .tribe-events.tribe-common--breakpoint-medium .tribe-events-c-search__input{margin:calc(var(--tec-spacer-2)*-1) 0}.tooltipster-base.tribe-events-tooltip-theme{height:auto!important;max-width:254px;padding:var(--tec-spacer-5)}.tooltipster-base.tribe-events-tooltip-theme .tooltipster-box{margin:0}.tooltipster-base.tribe-events-tooltip-theme .tooltipster-box .tooltipster-content{padding:0;word-break:break-word}.tooltipster-base.tribe-events-tooltip-theme .tooltipster-arrow{display:none}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-top-bar{align-items:center;display:flex;flex-direction:row;flex-wrap:wrap}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-top-bar__nav{display:block!important;flex:none;visibility:visible}.tribe-events .tribe-events-c-top-bar__nav-list{display:flex}.tribe-events .tribe-events-c-top-bar__nav-list-item{flex:none;padding-right:15px}.tribe-events .tribe-events-c-top-bar__nav-list-item>*{vertical-align:middle}.tribe-events .tribe-events-c-top-bar__nav-link{display:block;line-height:0}.tribe-events .tribe-events-c-top-bar__nav-link-icon-svg{height:19px;width:11px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-top-bar__today-button{display:block!important;flex:none;margin-right:15px;visibility:visible}.tribe-events .tribe-events-c-top-bar__datepicker{flex:auto;position:relative}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-top-bar__datepicker{margin:0;padding:0}.tribe-events .tribe-events-c-top-bar__datepicker-separator{white-space:pre}.tribe-common--breakpoint-full.tribe-events .tribe-events-c-top-bar__datepicker-mobile{display:none!important;visibility:hidden}.tribe-common--breakpoint-full.tribe-events .tribe-events-c-top-bar__datepicker-desktop{display:block!important;visibility:visible}.tribe-events .tribe-events-c-top-bar__datepicker-button{align-items:center;display:flex;flex:none}.tribe-events .tribe-events-c-top-bar__datepicker-button-icon-svg{display:none}.tribe-events .tribe-events-c-top-bar__datepicker-container{bottom:0;left:0;max-width:calc(100% + 29px);position:absolute;width:363px}.tribe-events .tribe-events-c-top-bar__datepicker-container .dropdown-menu{min-width:100%;width:100%}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-top-bar__datepicker-container{max-width:none;min-width:min-content}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-top-bar__datepicker-container .dropdown-menu{max-width:100%}.tribe-events .tribe-events-header--has-event-search .tribe-events-c-top-bar__datepicker-container{max-width:calc(100% + 66px)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-header--has-event-search .tribe-events-c-top-bar__datepicker-container{max-width:none}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-top-bar__actions{display:block!important;flex:none;margin-left:auto;visibility:visible}#top .main_color .tribe-events .tribe-events-c-top-bar__datepicker-input,#top.tribe-theme-enfold .tribe-events .tribe-events-c-top-bar__datepicker-input{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.entry-content-wrapper .tribe-events .tribe-events-c-top-bar__nav-list-item{padding-right:15px}.tribe-theme-avada .tribe-events .tribe-events-c-top-bar__datepicker-input{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tribe-events .tribe-events-c-view-selector{position:relative;width:29px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector{width:auto}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--labels .tribe-events-c-view-selector__button{height:100%;padding:var(--tec-spacer-4) var(--tec-spacer-5)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--labels .tribe-events-c-view-selector__button-icon{display:none!important;visibility:hidden}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--labels .tribe-events-c-view-selector__button-text{clip:auto;height:auto;margin:0;position:static;width:auto;flex:auto}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--labels .tribe-events-c-view-selector__content{left:0;padding:var(--tec-spacer-1);right:auto;transform:translateY(var(--tec-spacer-1));width:auto}.tribe-events .tribe-events-c-view-selector--labels .tribe-events-c-view-selector__list-item--active{display:none}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--labels .tribe-events-c-view-selector__list-item-link{padding:var(--tec-spacer-0) var(--tec-spacer-7) var(--tec-spacer-0) var(--tec-spacer-3)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--labels .tribe-events-c-view-selector__list-item-icon,.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--tabs .tribe-events-c-view-selector__button{display:none!important;visibility:hidden}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--tabs .tribe-events-c-view-selector__content{display:block;height:100%;padding:0 var(--tec-spacer-2);position:static;transform:none}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--tabs .tribe-events-c-view-selector__list{display:flex;height:100%}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--tabs .tribe-events-c-view-selector__list-item{padding:0 var(--tec-spacer-2)}.tribe-events .tribe-events-c-view-selector--tabs .tribe-events-c-view-selector__list-item--active{display:block}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector--tabs .tribe-events-c-view-selector__list-item-link{height:100%;padding:var(--tec-spacer-4) 0;position:relative}.tribe-events .tribe-events-c-view-selector__button{align-items:center;display:flex;padding:var(--tec-spacer-0);position:relative;width:100%}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector__button{padding:var(--tec-spacer-1)}.tribe-events .tribe-events-c-view-selector__button-icon{display:block;height:21px;width:21px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector__button-icon{height:23px;width:23px}.tribe-events .tribe-events-c-view-selector__button-icon-caret-svg{display:none}.tribe-events .tribe-events-c-view-selector__content{display:none;padding:var(--tec-spacer-2) calc(var(--tec-spacer-2)/2);position:absolute;right:0;top:100%;transform:translateY(var(--tec-spacer-3));z-index:var(--tec-z-index-dropdown)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector__content{transform:translateY(var(--tec-spacer-2))}.tribe-events .tribe-events-c-view-selector__list-item-link{align-items:center;display:flex;padding:var(--tec-spacer-1) var(--tec-spacer-5) var(--tec-spacer-1) var(--tec-spacer-2)}.tribe-events .tribe-events-c-view-selector__list-item-icon{flex:none;height:18px;margin-right:12px;width:18px}.tribe-events .tribe-events-c-view-selector__list-item-text{flex:auto}.tribe-events .tribe-events-header{align-items:center;display:flex;flex-direction:row-reverse;flex-wrap:wrap;justify-content:space-between;margin:0 calc(var(--tec-grid-gutter-page-small)*-1);padding:0 var(--tec-grid-gutter-page-small) var(--tec-spacer-3);position:relative}.tribe-common--breakpoint-medium.tribe-events .tribe-events-header{margin:0;padding:0}.tribe-common--breakpoint-medium.tribe-events .tribe-events-header--has-event-search{background-color:transparent;flex-direction:row}.tribe-common--breakpoint-medium.tribe-events .tribe-events-header--has-event-search .tribe-events-header__events-bar{margin-left:0;width:100%}.tribe-common--breakpoint-medium.tribe-events .tribe-events-header--has-event-search .tribe-events-header__top-bar{width:100%}.tribe-events .tribe-events-header__messages{margin-bottom:var(--tec-spacer-3);width:100%}.tribe-events .tribe-events-header__messages.tribe-events-header__messages--mobile{margin-top:10px}.tribe-events .tribe-events-header__messages:not(.tribe-events-header__messages--mobile){display:none}.tribe-common--breakpoint-medium.tribe-events .tribe-events-header__messages{margin-bottom:var(--tec-spacer-7);order:1}.tribe-common--breakpoint-medium.tribe-events .tribe-events-header__messages:not(.tribe-events-header__messages--mobile){display:flex}.tribe-common--breakpoint-medium.tribe-events .tribe-events-header__messages.tribe-events-header__messages--mobile{display:none}.tribe-events .tribe-events-header__events-bar{flex:none}.tribe-common--breakpoint-medium.tribe-events .tribe-events-header__events-bar{margin-bottom:var(--tec-spacer-7);margin-left:var(--tec-spacer-3)}.tribe-events .tribe-events-header__top-bar{flex:auto}.tribe-common--breakpoint-medium.tribe-events .tribe-events-header__top-bar{margin-bottom:var(--tec-spacer-7)}.tribe-events .tribe-events-calendar-list__event-row{flex-wrap:nowrap;margin-bottom:var(--tec-spacer-5);margin-top:var(--tec-spacer-7)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-row{margin:var(--tec-spacer-9) var(--tec-grid-gutter-half-negative) var(--tec-spacer-8)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-row>.tribe-common-g-col{padding-left:var(--tec-grid-gutter-half);padding-right:var(--tec-grid-gutter-half)}.tribe-events .tribe-events-calendar-list__event-row:last-child{margin-bottom:var(--tec-spacer-8)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-row:last-child{margin-bottom:var(--tec-spacer-11)}.tribe-events .tribe-events-calendar-list__month-separator+.tribe-events-calendar-list__event-row{margin-top:var(--tec-spacer-4)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__month-separator+.tribe-events-calendar-list__event-row{margin-top:var(--tec-spacer-8)}.tribe-events .tribe-events-calendar-list__event-date-tag{flex:none;position:relative;width:54px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-date-tag{min-width:90px;width:var(--tec-grid-width-1-of-9)}.tribe-events .tribe-events-calendar-list__event-date-tag-datetime{display:flex;flex-direction:column;height:100%;padding-top:var(--tec-spacer-0);text-align:center}.tribe-events .tribe-events-calendar-list__event-date-tag-weekday{margin-bottom:calc(var(--tec-spacer-0)*-1)}.tribe-events .tribe-events-calendar-list__event-wrapper{flex:1;width:calc(var(--tec-grid-width-1-of-4)*3 + var(--tec-grid-gutter-small-half))}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-wrapper{flex:1 1 calc(var(--tec-grid-width-1-of-9)*8)}.tribe-events .tribe-events-calendar-list__event{flex-direction:column}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event{flex-direction:row-reverse;justify-content:flex-end}.tribe-events .tribe-events-calendar-list__event-featured-image-wrapper{flex:none;margin-bottom:var(--tec-spacer-3)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-featured-image-wrapper{margin-bottom:0;width:calc(var(--tec-grid-width-1-of-8)*3)}.tribe-events .tribe-events-calendar-list__event-featured-image,.tribe-events .tribe-events-calendar-list__event-featured-image-link{display:block}.tribe-events .tribe-events-calendar-list__event-details{flex:none}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-details{width:calc(var(--tec-grid-width-1-of-8)*5)}.tribe-events .tribe-events-calendar-list__event-header>:last-child{margin-bottom:0}.tribe-events .tribe-events-calendar-list__event-datetime-wrapper,.tribe-events .tribe-events-calendar-list__event-title{margin:0 0 var(--tec-spacer-1)}.tribe-events .tribe-events-calendar-list__event-datetime-wrapper:last-child,.tribe-events .tribe-events-calendar-list__event-title:last-child{margin-bottom:0}.tribe-events .tribe-events-calendar-list__event-title-link{color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-list__event-title-link:active,.tribe-events .tribe-events-calendar-list__event-title-link:focus,.tribe-events .tribe-events-calendar-list__event-title-link:hover{border-color:currentColor;color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-list__event-title-link:visited{color:var(--tec-color-text-events-title)}.tribe-events .tribe-events-calendar-list__event-datetime-featured-icon{display:inline-block;margin-right:var(--tec-spacer-0)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-datetime-featured-text{clip:auto;height:auto;margin:0;position:static;width:auto;margin-right:var(--tec-spacer-1)}.tribe-events .tribe-events-calendar-list__event-venue{margin-bottom:var(--tec-spacer-1)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-venue{margin-bottom:var(--tec-spacer-3)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-description{display:block!important;margin-top:var(--tec-spacer-3);visibility:visible}.tribe-events .tribe-events-calendar-list__event-cost{margin-top:var(--tec-spacer-2)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list__event-cost{margin-top:var(--tec-spacer-3)}.tribe-events .tribe-events-calendar-list__month-separator{align-items:center;display:flex}.tribe-events .tribe-events-calendar-list__month-separator-text{flex:none}.tribe-events .tribe-events-calendar-list-nav{padding-top:var(--tec-spacer-5)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-list-nav{padding-top:var(--tec-spacer-7)}.tribe-events .tribe-events-calendar-month{margin-bottom:var(--tec-spacer-1)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month{margin:0}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__body{border-top:1px solid var(--tec-color-border-secondary-month-grid)}.tribe-events .tribe-events-calendar-month__week{display:flex}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__week{border-left:1px solid var(--tec-color-border-secondary-month-grid)}.tribe-events .tribe-events-calendar-month__calendar-event{margin:var(--tec-spacer-1) 0;padding:0 var(--tec-spacer-3);position:relative}.tribe-events .tribe-events-calendar-month__calendar-event:first-child{margin-top:0}.tribe-events .tribe-events-calendar-month__calendar-event:last-child{margin-bottom:0;padding-bottom:var(--tec-spacer-3)}.tribe-events .tribe-events-calendar-month__multiday-event-wrapper+.tribe-events-calendar-month__calendar-event{margin-top:0}.tribe-events .tribe-events-calendar-month__multiday-event-wrapper+.tribe-events-calendar-month__calendar-event--featured{margin-top:var(--tec-spacer-1)}.tribe-events .tribe-events-calendar-month__calendar-event-datetime-featured-icon{display:inline-block;line-height:0;margin-right:var(--tec-spacer-0)}.tribe-events .tribe-events-calendar-month__calendar-event-featured-image-wrapper{margin-bottom:var(--tec-spacer-0)}.tribe-events .tribe-events-calendar-month__calendar-event-featured-image,.tribe-events .tribe-events-calendar-month__calendar-event-featured-image-link{display:block}.tribe-events .tribe-events-calendar-month__calendar-event-datetime>*{vertical-align:middle}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-featured-image-wrapper{margin-bottom:var(--tec-spacer-2);width:206px}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-featured-image-wrapper:last-child{margin-bottom:0}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-featured-image,.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-featured-image-link{display:block}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-datetime{margin-bottom:var(--tec-spacer-0)}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-datetime>*{vertical-align:middle}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-datetime-featured-icon{display:inline-block;line-height:0;margin-right:var(--tec-spacer-0)}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-title{margin-bottom:var(--tec-spacer-0)}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-description{margin-bottom:var(--tec-spacer-1)}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-description:last-child{margin-bottom:0}.tribe-events .tribe-events-calendar-month__calendar-event-title{margin:0}.tribe-events .tribe-events-calendar-month__calendar-event-tooltip-cost{margin-top:var(--tec-spacer-3)}.tribe-theme-twentynineteen .entry .tribe-events .tribe-events-calendar-month__calendar-event,.tribe-theme-twentynineteen .tribe-events .tribe-events-calendar-month__calendar-event{margin:var(--tec-spacer-1) 0;padding:0 var(--tec-spacer-3);position:relative}.tribe-theme-twentynineteen .entry .tribe-events .tribe-events-calendar-month__calendar-event:first-child,.tribe-theme-twentynineteen .tribe-events .tribe-events-calendar-month__calendar-event:first-child{margin-top:0}.tribe-theme-twentynineteen .entry .tribe-events .tribe-events-calendar-month__calendar-event:last-child,.tribe-theme-twentynineteen .tribe-events .tribe-events-calendar-month__calendar-event:last-child{margin-bottom:0;padding-bottom:var(--tec-spacer-3)}.tribe-events .tribe-events-calendar-month__header-row{display:flex}.tribe-events .tribe-events-calendar-month__header-column{padding-bottom:var(--tec-spacer-3);width:var(--tec-grid-width-1-of-7)}.tribe-events .tribe-events-calendar-month__header-column-title{margin:0}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__header-column-title-mobile{display:none!important;visibility:hidden}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__header-column-title-desktop{display:block!important;visibility:visible}.tribe-events .tribe-events-calendar-month__day{aspect-ratio:1/1;height:auto;min-height:36px;overflow:hidden;padding-top:var(--grid-width-1-of-7);position:relative;width:var(--tec-grid-width-1-of-7)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__day{aspect-ratio:auto;border-color:var(--tec-color-border-secondary-month-grid);border-style:solid;border-width:0 1px 1px 0;min-height:168px;overflow:visible;padding-top:0}.tribe-events .tribe-events-calendar-month__day-cell{height:100%;width:100%}.tribe-events .tribe-events-calendar-month__day-cell--mobile{align-items:center;display:flex;flex-direction:column;position:absolute;text-align:center;top:0}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__day-cell--mobile{display:none!important;visibility:hidden}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__day-cell--desktop{display:flex!important;flex-direction:column;visibility:visible}.tribe-events .tribe-events-calendar-month__day-date{margin:0}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__day-date{flex:none;padding:var(--tec-spacer-1) var(--tec-spacer-3)}.tribe-events .tribe-events-calendar-month__events{flex:auto}.tribe-events .tribe-events-calendar-month__mobile-events-icon--event{background-color:currentColor;border-radius:50%;height:8px;width:8px}.tribe-events .tribe-events-calendar-month__mobile-events-icon--featured{line-height:0;width:8px}.tribe-events .tribe-events-calendar-month__mobile-events-icon--featured .tribe-events-calendar-month__mobile-events-icon-svg path{fill:currentColor}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month-mobile-events{display:none!important;visibility:hidden}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-day{display:none}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-day--show{display:block}.tribe-events .tribe-events-calendar-month-mobile-events__day-marker{padding-top:var(--tec-spacer-3)}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event{padding:var(--tec-spacer-2) 0}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event--featured{padding-bottom:var(--tec-spacer-4)}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-featured-image-wrapper{margin-bottom:var(--tec-spacer-2)}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-datetime{margin-bottom:var(--tec-spacer-0)}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-datetime>*{vertical-align:middle}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-datetime-featured-icon{display:inline-block;line-height:0;margin-right:var(--tec-spacer-0)}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-datetime-featured-text{margin-right:var(--tec-spacer-1)}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-title{margin:0}.tribe-events .tribe-events-calendar-month-mobile-events__mobile-event-cost{margin-top:var(--tec-spacer-1)}.tribe-events .tribe-events-calendar-month-mobile-events__more-events{padding:var(--tec-spacer-0) 0 var(--tec-spacer-4)}.tribe-events .tribe-events-calendar-month__more-events{display:flex;flex:none;margin:0 var(--tec-spacer-3);padding:var(--tec-spacer-1) 0 var(--tec-spacer-3)}.tribe-events .tribe-events-calendar-month__more-events-link{flex:none}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__multiday-event-wrapper{height:19px;margin-bottom:var(--tec-spacer-0);position:relative}.tribe-events .tribe-events-calendar-month__multiday-event--width-2 .tribe-events-calendar-month__multiday-event-bar{width:calc(200% + 1px)}.tribe-events .tribe-events-calendar-month__multiday-event--width-3 .tribe-events-calendar-month__multiday-event-bar{width:calc(300% + 2px)}.tribe-events .tribe-events-calendar-month__multiday-event--width-4 .tribe-events-calendar-month__multiday-event-bar{width:calc(400% + 3px)}.tribe-events .tribe-events-calendar-month__multiday-event--width-5 .tribe-events-calendar-month__multiday-event-bar{width:calc(500% + 4px)}.tribe-events .tribe-events-calendar-month__multiday-event--width-6 .tribe-events-calendar-month__multiday-event-bar{width:calc(600% + 5px)}.tribe-events .tribe-events-calendar-month__multiday-event--width-7 .tribe-events-calendar-month__multiday-event-bar{width:calc(700% + 6px)}.tribe-events .tribe-events-calendar-month__multiday-event-hidden{height:100%;opacity:0;position:absolute;width:100%;z-index:var(--tec-z-index-multiday-event)}.tribe-events .tribe-events-calendar-month__multiday-event-hidden-title{margin:0;overflow:hidden;white-space:nowrap}.tribe-events .tribe-events-calendar-month__multiday-event-hidden-link{display:block;height:100%}.tribe-events .tribe-events-calendar-month__multiday-event-bar{background-color:var(--tec-color-background);overflow:hidden;position:relative;width:100%;z-index:var(--tec-z-index-multiday-event-bar)}.tribe-events .tribe-events-calendar-month__multiday-event-bar-inner{align-items:center;cursor:pointer;display:flex;flex-wrap:nowrap;padding:1px var(--tec-spacer-3)}.tribe-events .tribe-events-calendar-month__multiday-event-bar-featured-icon{flex:none;line-height:0;margin-right:5px}.tribe-events .tribe-events-calendar-month__multiday-event-bar-title{flex:none;margin:0;max-width:100%;overflow:hidden;white-space:nowrap}.tribe-events .tribe-events-calendar-month-nav{padding-top:var(--tec-spacer-4)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month-nav{display:none!important;visibility:hidden}.tribe-events .tribe-events-calendar-day__event{margin-bottom:var(--tec-spacer-5);margin-top:var(--tec-spacer-7);padding-left:54px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event{margin-bottom:var(--tec-spacer-8);margin-top:var(--tec-spacer-9);padding-left:0}.tribe-events .tribe-events-calendar-day__event:last-child{margin-bottom:var(--tec-spacer-8)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event:last-child{margin-bottom:var(--tec-spacer-11)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event:before{content:"";min-width:90px;width:var(--tec-grid-width-1-of-9)}.tribe-events .tribe-events-calendar-day__time-separator+.tribe-events-calendar-day__event,.tribe-events .tribe-events-calendar-day__type-separator+.tribe-events-calendar-day__event{margin-top:var(--tec-spacer-4)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__time-separator+.tribe-events-calendar-day__event,.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__type-separator+.tribe-events-calendar-day__event{margin-top:var(--tec-spacer-8)}.tribe-events .tribe-events-calendar-day__event-content{flex:none}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event-content{display:flex;flex:1 1 calc(var(--tec-grid-width-1-of-9)*8);flex-direction:row-reverse;justify-content:flex-end;margin-left:var(--tec-grid-gutter-half-negative);margin-right:var(--tec-grid-gutter-half-negative)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event-content>*{padding-left:var(--tec-grid-gutter-half);padding-right:var(--tec-grid-gutter-half)}.tribe-events .tribe-events-calendar-day__event-featured-image-wrapper{margin-bottom:var(--tec-spacer-3)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event-featured-image-wrapper{flex:none;margin-bottom:0;width:calc(var(--tec-grid-width-1-of-8)*3)}.tribe-events .tribe-events-calendar-day__event-featured-image-link,.tribe-events .tribe-events-calendar-list__event-featured-image{display:block}.tribe-events .tribe-events-calendar-day__event-details{position:relative}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event-details{flex:none;width:calc(var(--tec-grid-width-1-of-8)*5)}.tribe-events .tribe-events-calendar-day__event-header>:last-child{margin-bottom:0}.tribe-events .tribe-events-calendar-day__event-datetime-wrapper,.tribe-events .tribe-events-calendar-day__event-title{margin:0 0 var(--tec-spacer-1)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event-datetime-wrapper,.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event-title{margin:0 0 var(--tec-spacer-3)}.tribe-events .tribe-events-calendar-day__event-datetime-wrapper:last-child,.tribe-events .tribe-events-calendar-day__event-title:last-child{margin-bottom:0}.tribe-events .tribe-events-calendar-day__event-datetime-featured-icon{display:inline-block;margin-right:var(--tec-spacer-0)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event-datetime-featured-text{clip:auto;height:auto;margin:0;position:static;width:auto;margin-right:var(--tec-spacer-1)}.tribe-events .tribe-events-calendar-day__event-venue{margin-bottom:var(--tec-spacer-1)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event-venue{margin-bottom:var(--tec-spacer-3)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event-description{display:block!important;margin-top:var(--tec-spacer-3);visibility:visible}.tribe-events .tribe-events-calendar-day__event-cost{margin-top:var(--tec-spacer-2)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day__event-cost{margin-top:var(--tec-spacer-3)}.tribe-theme-twentynineteen .tribe-events .entry.tribe-events-calendar-day__event{margin-bottom:var(--tec-spacer-5);margin-top:var(--tec-spacer-7);padding-left:54px}.tribe-theme-twentynineteen .tribe-events .entry.tribe-events-calendar-day__event:last-child{margin-bottom:var(--tec-spacer-8)}.tribe-theme-twentynineteen .tribe-events.tribe-common--breakpoint-medium .entry.tribe-events-calendar-day__event{margin-bottom:var(--tec-spacer-8);margin-top:var(--tec-spacer-9);padding-left:0}.tribe-theme-twentynineteen .tribe-events.tribe-common--breakpoint-medium .entry.tribe-events-calendar-day__event:last-child{margin-bottom:var(--tec-spacer-11)}.tribe-theme-twentynineteen .tribe-events .tribe-events-calendar-day__time-separator+.entry.tribe-events-calendar-day__event,.tribe-theme-twentynineteen .tribe-events .tribe-events-calendar-day__type-separator+.entry.tribe-events-calendar-day__event{margin-top:var(--tec-spacer-4)}.tribe-theme-twentynineteen .tribe-events.tribe-common--breakpoint-medium .tribe-events-calendar-day__time-separator+.entry.tribe-events-calendar-day__event,.tribe-theme-twentynineteen .tribe-events.tribe-common--breakpoint-medium .tribe-events-calendar-day__type-separator+.entry.tribe-events-calendar-day__event{margin-top:var(--tec-spacer-8)}.tribe-events .tribe-events-calendar-day-nav{padding-top:var(--tec-spacer-5)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-day-nav{padding-top:var(--tec-spacer-7)}.tribe-events .tribe-events-calendar-day__time-separator{align-items:center;display:flex}.tribe-events .tribe-events-calendar-day__time-separator-text{flex:none}.tribe-events .tribe-events-calendar-day__type-separator{align-items:center;display:flex}.tribe-events .tribe-events-calendar-day__type-separator-text{flex:none}.tribe-events .tribe-events-calendar-latest-past__event-row{flex-wrap:nowrap;margin-bottom:var(--tec-spacer-5);margin-top:var(--tec-spacer-7)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-row{margin:var(--tec-spacer-9) var(--tec-grid-gutter-half-negative) var(--tec-spacer-8)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-row>.tribe-common-g-col{padding-left:var(--tec-grid-gutter-half);padding-right:var(--tec-grid-gutter-half)}.tribe-events .tribe-events-calendar-latest-past__event-row:last-child{margin-bottom:var(--tec-spacer-8)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-row:last-child{margin-bottom:var(--tec-spacer-11)}.tribe-events .tribe-events-calendar-latest-past__event-date-tag{flex:none;position:relative;width:54px}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-date-tag{min-width:90px;width:var(--tec-grid-width-1-of-9)}.tribe-events .tribe-events-calendar-latest-past__event-date-tag-datetime{display:flex;flex-direction:column;height:100%;text-align:center}.tribe-events .tribe-events-calendar-latest-past__event-date-tag-daynum,.tribe-events .tribe-events-calendar-latest-past__event-date-tag-month{margin-bottom:calc(var(--tec-spacer-0)*-1)}.tribe-events .tribe-events-calendar-latest-past__event-wrapper{flex:1;width:calc(var(--tec-grid-width-1-of-4)*3 + var(--tec-grid-gutter-small-half))}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-wrapper{flex:1 1 calc(var(--tec-grid-width-1-of-9)*8)}.tribe-events .tribe-events-calendar-latest-past__event{flex-direction:column}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event{flex-direction:row-reverse;justify-content:flex-end}.tribe-events .tribe-events-calendar-latest-past__event-featured-image-wrapper{flex:none;margin-bottom:var(--tec-spacer-3)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-featured-image-wrapper{margin-bottom:0;width:calc(var(--tec-grid-width-1-of-8)*3)}.tribe-events .tribe-events-calendar-latest-past__event-featured-image,.tribe-events .tribe-events-calendar-latest-past__event-featured-image-link{display:block}.tribe-events .tribe-events-calendar-latest-past__event-details{flex:none}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-details{width:calc(var(--tec-grid-width-1-of-8)*5)}.tribe-events .tribe-events-calendar-latest-past__event-header>:last-child{margin-bottom:0}.tribe-events .tribe-events-calendar-latest-past__event-datetime-wrapper,.tribe-events .tribe-events-calendar-latest-past__event-title{margin:0 0 var(--tec-spacer-1)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-datetime-wrapper,.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-title{margin:0 0 var(--tec-spacer-3)}.tribe-events .tribe-events-calendar-latest-past__event-datetime-wrapper:last-child,.tribe-events .tribe-events-calendar-latest-past__event-title:last-child{margin-bottom:0}.tribe-events .tribe-events-calendar-latest-past__event-datetime-featured-icon{display:inline-block;margin-right:var(--tec-spacer-0)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-datetime-featured-text{clip:auto;height:auto;margin:0;position:static;width:auto;margin-right:var(--tec-spacer-1)}.tribe-events .tribe-events-calendar-latest-past__event-venue{margin-bottom:var(--tec-spacer-1)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-venue{margin-bottom:var(--tec-spacer-3)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-description{display:block!important;margin-top:var(--tec-spacer-3);visibility:visible}.tribe-events .tribe-events-calendar-latest-past__event-cost{margin-top:var(--tec-spacer-2)}.tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-latest-past__event-cost{margin-top:var(--tec-spacer-3)}.tribe-events-single .tribe-events-status-single__header--alert-icon{align-items:center;display:inline-flex}.tribe-events-single .tribe-events-status-single{display:inline-flex;margin-bottom:var(--tec-spacer-4);padding:var(--tec-spacer-2) var(--tec-spacer-4)}.tribe-events-single .tribe-events-status-single__description{padding-left:var(--tec-spacer-5)}
|
src/resources/icons/tec-horns.svg
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<svg width="13" height="16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.667 9.968c-.486.197-.935.303-1.262.286-.423-.024-.604-.21-.605-.281 0-.05.158-.207.645-.242.076-.005.157-.009.24-.009.333 0 .703.055.982.246m.909 4.292c-1.781.492-3.663.038-4.795-1.155-.802-.844-1.07-1.901-.738-2.9.67-2.007 3.877-3.212 5.926-3.212h.066c.764.01 1.293.194 1.38.482.05.161-.067.443-.31.754-.43.548-1.084 1.045-1.749 1.41-.421-.463-1.097-.673-1.962-.61-.962.07-1.302.536-1.298.95.004.451.441.932 1.27.978.502.028 1.101-.127 1.703-.39.089.346.061.801-.083 1.343a.352.352 0 0 0 .68.182c.197-.737.212-1.355.045-1.846.786-.441 1.512-1.027 1.948-1.582.409-.522.554-.99.43-1.395-.089-.293-.3-.525-.617-.69.024-2.648.494-4.477.916-4.48h.003c.062 0 .146.014.249.117.343.34.752 1.461.752 4.86 0 3.354-.287 6.21-3.816 7.184M4.214 6.438V6.41l-.006-.04c-.05-.722.037-1.292.257-1.597a.59.59 0 0 1 .432-.256.748.748 0 0 1 .646.205c.342.329.542 1.04.523 1.818a9.735 9.735 0 0 0-1.758.617 7.581 7.581 0 0 1-.094-.72M7.249 5.21A.65.65 0 0 1 7.755 5c.336 0 .482.11.562.192.193.198.297.58.311 1.138a4.688 4.688 0 0 0-.655-.042 7.21 7.21 0 0 0-1.027.08c-.016-.511.091-.927.303-1.158m3.888-3.494a1.045 1.045 0 0 0-.747-.321h-.006c-.928.005-1.249 1.39-1.409 2.432a15.79 15.79 0 0 0-.111.92L8.822 4.7c-.262-.268-.621-.405-1.067-.405a1.353 1.353 0 0 0-1.223.716 2.151 2.151 0 0 0-.5-.796 1.45 1.45 0 0 0-1.22-.397 1.301 1.301 0 0 0-.918.543l-.003.004C3.505 2.44 2.771.115 1.49.247 1.175.28.896.45.685.737-.303 2.082.16 6.076.59 8.224a.353.353 0 0 0 .69-.138c-.719-3.597-.558-6.209-.028-6.93.125-.17.238-.2.312-.207.707-.073 1.578 2.397 1.945 5.515.03.386.088.748.145 1.029v.003c-1.058.61-1.932 1.445-2.28 2.488-.417 1.253-.09 2.568.895 3.607.963 1.015 2.384 1.57 3.875 1.57.536 0 1.082-.072 1.619-.22 4.002-1.105 4.334-4.35 4.334-7.864 0-3.006-.305-4.709-.96-5.36" fill="#0F1031"/></svg>
|
src/resources/images/icons/tec-horns.svg
CHANGED
@@ -1 +1,4 @@
|
|
1 |
-
<svg width="
|
|
|
|
|
|
1 |
+
<svg width="41" height="41" viewBox="0 0 41 41" fill="none" xmlns="http://www.w3.org/2000/svg">
|
2 |
+
<circle cx="20.9944" cy="20.6724" r="20" fill="#334AFF"/>
|
3 |
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M21.9989 24.6674C21.143 25.0146 20.351 25.2019 19.7751 25.1708C19.0292 25.1293 18.7107 24.8003 18.7096 24.6766C18.709 24.5885 18.9871 24.3125 19.8456 24.2501C19.9802 24.2405 20.1223 24.2344 20.2686 24.2344C20.8552 24.2344 21.5081 24.3309 21.9989 24.6674M23.5999 32.2315C20.4617 33.0971 17.1454 32.2988 15.1501 30.1958C13.7382 28.7079 13.2648 26.8457 13.851 25.0869C15.0302 21.5482 20.6819 19.4243 24.2939 19.4243C24.3328 19.4243 24.3715 19.4245 24.4098 19.425C25.7557 19.4423 26.6877 19.7676 26.8423 20.2745C26.9288 20.5582 26.7241 21.0547 26.2946 21.6024C25.5366 22.569 24.3849 23.4449 23.2134 24.0874C22.4708 23.2726 21.2794 22.9018 19.7558 23.0115C18.0597 23.1347 17.4618 23.9578 17.4679 24.687C17.4746 25.4821 18.2456 26.3296 19.7062 26.4108C20.5902 26.459 21.6467 26.1867 22.7077 25.7225C22.8634 26.3334 22.8151 27.1348 22.5604 28.0904C22.4721 28.4216 22.669 28.762 23.0003 28.8503C23.3312 28.9386 23.6717 28.7417 23.7602 28.4103C24.1064 27.1119 24.1321 26.0228 23.8383 25.1575C25.2235 24.3802 26.5039 23.3476 27.2716 22.3688C27.9921 21.4502 28.2471 20.6237 28.0302 19.912C27.8726 19.3954 27.5014 18.9855 26.9422 18.6948C26.9849 14.029 27.812 10.8062 28.5566 10.8018H28.5612C28.6706 10.8018 28.8186 10.8263 28.9999 11.0065C29.6049 11.6078 30.3257 13.5818 30.3257 19.5719C30.3257 25.4823 29.8198 30.5145 23.5999 32.2315M17.6754 18.4465C17.6747 18.431 17.6766 18.4157 17.6747 18.4C17.672 18.3776 17.6693 18.3538 17.6664 18.3308C17.5772 17.0568 17.73 16.0527 18.1186 15.5142C18.3116 15.2468 18.5537 15.1036 18.8806 15.0634C19.3364 15.0084 19.7071 15.126 20.0185 15.4251C20.6216 16.0048 20.9735 17.2582 20.94 18.6294C19.9061 18.8845 18.8474 19.2478 17.8417 19.7154C17.7624 19.2704 17.7076 18.8464 17.6754 18.4465M23.0244 16.2829C23.253 16.0341 23.5447 15.9131 23.9168 15.9131C24.5081 15.9131 24.7651 16.1065 24.9072 16.252C25.247 16.6 25.43 17.2749 25.4551 18.2577C25.137 18.2136 24.7941 18.188 24.4256 18.1834C24.3837 18.1828 24.3419 18.1826 24.2996 18.1826C23.7391 18.1826 23.1282 18.2313 22.4904 18.3239C22.4629 17.4233 22.6511 16.6894 23.0244 16.2829M29.8755 10.1259C29.503 9.75556 29.0484 9.56004 28.56 9.56004H28.5491C26.9131 9.5698 26.3487 12.0107 26.0663 13.8459C25.9835 14.3844 25.9196 14.934 25.8698 15.466C25.8455 15.4389 25.8215 15.4107 25.7961 15.3847C25.3341 14.9114 24.7018 14.6715 23.9168 14.6715C23.1981 14.6715 22.5732 14.9381 22.1098 15.4429C21.9776 15.5869 21.8641 15.7537 21.7614 15.9326C21.5567 15.3938 21.2704 14.9061 20.8792 14.5298C20.2978 13.9712 19.5549 13.7293 18.7291 13.8308C18.0637 13.9126 17.5043 14.2431 17.1115 14.7874C17.11 14.7898 17.1086 14.7925 17.1069 14.7946C16.4265 11.4012 15.1329 7.30353 12.8758 7.53793C12.3204 7.59634 11.8296 7.89528 11.4567 8.40201C9.71558 10.769 10.5325 17.8076 11.2896 21.5932C11.3487 21.8884 11.6078 22.0927 11.8978 22.0927C11.9382 22.0927 11.9792 22.0887 12.0203 22.0804C12.3564 22.0132 12.5746 21.6861 12.5073 21.3498C11.2396 15.011 11.5224 10.4084 12.4572 9.13796C12.6768 8.8394 12.8754 8.78655 13.0058 8.77295C14.2518 8.6433 15.7867 12.9966 16.4345 18.4911C16.4864 19.1715 16.5895 19.8086 16.6888 20.3038C16.6892 20.3061 16.6904 20.3082 16.6908 20.3105C14.8249 21.386 13.2852 22.8566 12.6728 24.6945C11.9367 26.9023 12.5114 29.2194 14.2493 31.0509C15.946 32.8388 18.4494 33.8164 21.0772 33.8164C22.0226 33.8162 22.9846 33.6897 23.9302 33.4286C30.9835 31.4818 31.5676 25.7633 31.5676 19.5721C31.5676 14.2751 31.0299 11.2736 29.8755 10.1259" fill="white"/>
|
4 |
+
</svg>
|
src/resources/js/event-editor.js
CHANGED
@@ -3,21 +3,146 @@ var tribe_events_event_editor = tribe_events_event_editor || {};
|
|
3 |
/**
|
4 |
* Implements behaviours that are specific to the event editor.
|
5 |
*/
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
11 |
/**
|
12 |
* If the 'feature event' box is checked, automatically check the
|
13 |
* sticky-in-month-view box also.
|
|
|
|
|
|
|
14 |
*/
|
15 |
-
obj.auto_enable_sticky_field = function() {
|
16 |
if ( $( this ).prop( 'checked' ) ) {
|
17 |
-
$sticky_in_month_view_checkbox.prop( 'checked', true );
|
18 |
}
|
19 |
};
|
20 |
|
21 |
-
|
22 |
-
|
23 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
/**
|
4 |
* Implements behaviours that are specific to the event editor.
|
5 |
*/
|
6 |
+
( function ( $, obj ) {
|
7 |
+
'use strict';
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Setup our selectors.
|
11 |
+
*
|
12 |
+
* @since 6.0.1
|
13 |
+
*/
|
14 |
+
obj.selectors = {
|
15 |
+
sticky_in_month_view_checkbox: 'input[name="EventShowInCalendar"]',
|
16 |
+
featured_event_checkbox: 'input[name="feature_event"]',
|
17 |
+
organizer: {
|
18 |
+
area: '#event_tribe_organizer',
|
19 |
+
delete_button: '.tribe-delete-this',
|
20 |
+
add_button: '#event_tribe_organizer .tribe-add-post',
|
21 |
+
post_dropdown: '.linked-post-dropdown',
|
22 |
+
saved_organizers: '.saved-linked-post',
|
23 |
+
},
|
24 |
+
};
|
25 |
+
|
26 |
+
obj.organizer = {};
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Controls logic for the Organizer delete button to display.
|
30 |
+
*
|
31 |
+
* If more than one organizer exists, display the delete button.
|
32 |
+
* If only one organizer exists, hide the delete button.
|
33 |
+
*
|
34 |
+
* @since 6.0.1
|
35 |
+
* @return void
|
36 |
+
*/
|
37 |
+
obj.organizer.deleteButtonDisplayLogic = function () {
|
38 |
+
|
39 |
+
const $organizers = $( obj.selectors.organizer.area )
|
40 |
+
.find( obj.selectors.organizer.saved_organizers );
|
41 |
+
|
42 |
+
$( obj.selectors.organizer.area )
|
43 |
+
.find( obj.selectors.organizer.delete_button )
|
44 |
+
.each( function () {
|
45 |
+
|
46 |
+
// If you have more than one organizer then we display the delete button.
|
47 |
+
if ( $organizers.length > 1 ) {
|
48 |
+
$( this ).show();
|
49 |
+
return;
|
50 |
+
}
|
51 |
+
|
52 |
+
const $organizer_dropdown =
|
53 |
+
$( obj.selectors.organizer.area +
|
54 |
+
' ' +
|
55 |
+
obj.selectors.organizer.post_dropdown );
|
56 |
+
|
57 |
+
//If this is running, it's because we only have one organizer.
|
58 |
+
obj.organizer.addButtonLogic( $organizer_dropdown.val() );
|
59 |
+
|
60 |
+
$( this ).hide();
|
61 |
+
|
62 |
+
} );
|
63 |
+
|
64 |
+
};
|
65 |
+
|
66 |
+
/**
|
67 |
+
* Logic to display, or hide the "Add Organizer" button.
|
68 |
+
*
|
69 |
+
* @since 6.0.1
|
70 |
+
*
|
71 |
+
* @param selectValue
|
72 |
+
* @return void
|
73 |
+
*/
|
74 |
+
obj.organizer.addButtonLogic = function ( selectValue ) {
|
75 |
+
if ( selectValue !== '-1' ) {
|
76 |
+
$( obj.selectors.organizer.add_button ).show();
|
77 |
+
} else {
|
78 |
+
$( obj.selectors.organizer.add_button ).hide();
|
79 |
+
}
|
80 |
+
};
|
81 |
+
/**
|
82 |
+
* Trigger events for bind events.
|
83 |
+
*
|
84 |
+
* @since 6.0.1
|
85 |
+
*/
|
86 |
+
obj.organizer.bindEvents = function () {
|
87 |
+
|
88 |
+
$( obj.selectors.organizer.area )
|
89 |
+
.on( 'change', obj.selectors.organizer.post_dropdown, function () {
|
90 |
+
obj.organizer.addButtonLogic( this.value );
|
91 |
+
obj.organizer.deleteButtonDisplayLogic();
|
92 |
+
|
93 |
+
} );
|
94 |
+
|
95 |
+
// Functions to run when the delete button is clicked.
|
96 |
+
$( obj.selectors.organizer.area )
|
97 |
+
.on( 'click', obj.selectors.organizer.delete_button, function () {
|
98 |
+
// We have to run this in a setTimeout because the original functionality uses a fade of 500ms.
|
99 |
+
// Therefore we use 525ms to run slightly after it is done.
|
100 |
+
setTimeout( function () {
|
101 |
+
obj.organizer.deleteButtonDisplayLogic();
|
102 |
+
}, 525 );
|
103 |
+
|
104 |
+
} );
|
105 |
+
|
106 |
+
};
|
107 |
|
108 |
/**
|
109 |
* If the 'feature event' box is checked, automatically check the
|
110 |
* sticky-in-month-view box also.
|
111 |
+
*
|
112 |
+
* @since 6.0.1
|
113 |
+
*
|
114 |
*/
|
115 |
+
obj.auto_enable_sticky_field = function () {
|
116 |
if ( $( this ).prop( 'checked' ) ) {
|
117 |
+
$( obj.selectors.sticky_in_month_view_checkbox ).prop( 'checked', true );
|
118 |
}
|
119 |
};
|
120 |
|
121 |
+
/**
|
122 |
+
* Bind featured events logic.
|
123 |
+
*
|
124 |
+
* @since 6.0.1
|
125 |
+
*/
|
126 |
+
obj.bindFeaturedEvents = function () {
|
127 |
+
$( obj.selectors.featured_event_checkbox ).on( 'change', obj.auto_enable_sticky_field );
|
128 |
+
$( obj ).trigger( 'event-editor-post-init.tribe' );
|
129 |
+
};
|
130 |
+
|
131 |
+
/**
|
132 |
+
* Initialize
|
133 |
+
*
|
134 |
+
* @since 6.0.1
|
135 |
+
*/
|
136 |
+
obj.init = function () {
|
137 |
+
// Hide the "Add Organizer" button by default.
|
138 |
+
$( obj.selectors.organizer.add_button ).hide();
|
139 |
+
// Run our delete button logic.
|
140 |
+
obj.organizer.deleteButtonDisplayLogic();
|
141 |
+
obj.organizer.bindEvents();
|
142 |
+
obj.bindFeaturedEvents();
|
143 |
+
};
|
144 |
+
|
145 |
+
// Init our main object.
|
146 |
+
obj.init();
|
147 |
+
|
148 |
+
} )( jQuery, tribe_events_event_editor );
|
src/resources/js/event-editor.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
var tribe_events_event_editor=tribe_events_event_editor||{}
|
1 |
+
var tribe_events_event_editor=tribe_events_event_editor||{};!function(e,t){"use strict";t.selectors={sticky_in_month_view_checkbox:'input[name="EventShowInCalendar"]',featured_event_checkbox:'input[name="feature_event"]',organizer:{area:"#event_tribe_organizer",delete_button:".tribe-delete-this",add_button:"#event_tribe_organizer .tribe-add-post",post_dropdown:".linked-post-dropdown",saved_organizers:".saved-linked-post"}},t.organizer={},t.organizer.deleteButtonDisplayLogic=function(){const n=e(t.selectors.organizer.area).find(t.selectors.organizer.saved_organizers);e(t.selectors.organizer.area).find(t.selectors.organizer.delete_button).each(function(){if(n.length>1)return void e(this).show();const o=e(t.selectors.organizer.area+" "+t.selectors.organizer.post_dropdown);t.organizer.addButtonLogic(o.val()),e(this).hide()})},t.organizer.addButtonLogic=function(n){"-1"!==n?e(t.selectors.organizer.add_button).show():e(t.selectors.organizer.add_button).hide()},t.organizer.bindEvents=function(){e(t.selectors.organizer.area).on("change",t.selectors.organizer.post_dropdown,function(){t.organizer.addButtonLogic(this.value),t.organizer.deleteButtonDisplayLogic()}),e(t.selectors.organizer.area).on("click",t.selectors.organizer.delete_button,function(){setTimeout(function(){t.organizer.deleteButtonDisplayLogic()},525)})},t.auto_enable_sticky_field=function(){e(this).prop("checked")&&e(t.selectors.sticky_in_month_view_checkbox).prop("checked",!0)},t.bindFeaturedEvents=function(){e(t.selectors.featured_event_checkbox).on("change",t.auto_enable_sticky_field),e(t).trigger("event-editor-post-init.tribe")},t.init=function(){e(t.selectors.organizer.add_button).hide(),t.organizer.deleteButtonDisplayLogic(),t.organizer.bindEvents(),t.bindFeaturedEvents()},t.init()}(jQuery,tribe_events_event_editor);
|
src/resources/js/views/datepicker.js
CHANGED
@@ -642,6 +642,16 @@ tribe.events.views.datepicker = {};
|
|
642 |
obj.options.beforeShowMonth = obj.filterMonthCells;
|
643 |
obj.options.beforeShowYear = obj.filterYearCells;
|
644 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
645 |
$input
|
646 |
.bootstrapDatepicker( obj.options )
|
647 |
.on( changeEvent, { container: $container }, changeHandler )
|
642 |
obj.options.beforeShowMonth = obj.filterMonthCells;
|
643 |
obj.options.beforeShowYear = obj.filterYearCells;
|
644 |
|
645 |
+
// A tweak for RTL languages.
|
646 |
+
if ( document.dir && document.dir === 'rtl' ) {
|
647 |
+
obj.options.rtl = true;
|
648 |
+
}
|
649 |
+
|
650 |
+
// ...and for document language.
|
651 |
+
if ( document.lang ) {
|
652 |
+
obj.options.language = document.lang;
|
653 |
+
}
|
654 |
+
|
655 |
$input
|
656 |
.bootstrapDatepicker( obj.options )
|
657 |
.on( changeEvent, { container: $container }, changeHandler )
|
src/resources/js/views/manager.js
CHANGED
@@ -601,6 +601,17 @@ tribe.events.views.manager = {};
|
|
601 |
// Clean up the container and event listeners
|
602 |
obj.cleanup( $container );
|
603 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
604 |
// Replace the current container with the new Data.
|
605 |
$container.replaceWith( $html );
|
606 |
$container = $html;
|
@@ -608,6 +619,14 @@ tribe.events.views.manager = {};
|
|
608 |
// Setup the container with the data received.
|
609 |
obj.setup( 0, $container );
|
610 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
611 |
// Update the global set of containers with all of the manager object.
|
612 |
obj.selectContainers();
|
613 |
|
601 |
// Clean up the container and event listeners
|
602 |
obj.cleanup( $container );
|
603 |
|
604 |
+
/*
|
605 |
+
* Dispatch an event before the container is replaced; bound events are
|
606 |
+
* removed!
|
607 |
+
*/
|
608 |
+
document.dispatchEvent(
|
609 |
+
new CustomEvent(
|
610 |
+
'containerReplaceBefore.tribeEvents',
|
611 |
+
{ detail: $container },
|
612 |
+
),
|
613 |
+
);
|
614 |
+
|
615 |
// Replace the current container with the new Data.
|
616 |
$container.replaceWith( $html );
|
617 |
$container = $html;
|
619 |
// Setup the container with the data received.
|
620 |
obj.setup( 0, $container );
|
621 |
|
622 |
+
// Dispatch an event after the container is replaced and set up.
|
623 |
+
document.dispatchEvent(
|
624 |
+
new CustomEvent(
|
625 |
+
'containerReplaceAfter.tribeEvents',
|
626 |
+
{ detail: $container },
|
627 |
+
),
|
628 |
+
);
|
629 |
+
|
630 |
// Update the global set of containers with all of the manager object.
|
631 |
obj.selectContainers();
|
632 |
|
src/views/single-event.php
CHANGED
@@ -18,7 +18,16 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
18 |
$events_label_singular = tribe_get_event_label_singular();
|
19 |
$events_label_plural = tribe_get_event_label_plural();
|
20 |
|
21 |
-
$event_id = get_the_ID();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
|
23 |
/**
|
24 |
* Allows filtering of the single event template title classes.
|
18 |
$events_label_singular = tribe_get_event_label_singular();
|
19 |
$events_label_plural = tribe_get_event_label_plural();
|
20 |
|
21 |
+
$event_id = Tribe__Events__Main::postIdHelper( get_the_ID() );
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Allows filtering of the event ID.
|
25 |
+
*
|
26 |
+
* @since 6.0.1
|
27 |
+
*
|
28 |
+
* @param int $event_id
|
29 |
+
*/
|
30 |
+
$event_id = apply_filters( 'tec_events_single_event_id', $event_id );
|
31 |
|
32 |
/**
|
33 |
* Allows filtering of the single event template title classes.
|
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: 6.0.
|
6 |
* Author: The Events Calendar
|
7 |
* Author URI: https://evnt.is/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: 6.0.1
|
6 |
* Author: The Events Calendar
|
7 |
* Author URI: https://evnt.is/1x
|
8 |
* Text Domain: the-events-calendar
|
vendor/autoload.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInitb894359d15008797e6ddab61567f70cd::getLoader();
|
vendor/composer/autoload_classmap.php
CHANGED
@@ -57,6 +57,7 @@ return array(
|
|
57 |
'TEC\\Events\\Custom_Tables\\V1\\Models\\Validators\\End_Date_UTC' => $baseDir . '/src/Events/Custom_Tables/V1/Models/Validators/End_Date_UTC.php',
|
58 |
'TEC\\Events\\Custom_Tables\\V1\\Models\\Validators\\Ignore_Validator' => $baseDir . '/src/Events/Custom_Tables/V1/Models/Validators/Ignore_Validator.php',
|
59 |
'TEC\\Events\\Custom_Tables\\V1\\Models\\Validators\\Integer_Key' => $baseDir . '/src/Events/Custom_Tables/V1/Models/Validators/Integer_Key.php',
|
|
|
60 |
'TEC\\Events\\Custom_Tables\\V1\\Models\\Validators\\Positive_Integer' => $baseDir . '/src/Events/Custom_Tables/V1/Models/Validators/Positive_Integer.php',
|
61 |
'TEC\\Events\\Custom_Tables\\V1\\Models\\Validators\\Present' => $baseDir . '/src/Events/Custom_Tables/V1/Models/Validators/Present.php',
|
62 |
'TEC\\Events\\Custom_Tables\\V1\\Models\\Validators\\Range_Dates' => $baseDir . '/src/Events/Custom_Tables/V1/Models/Validators/Range_Dates.php',
|
@@ -155,6 +156,7 @@ return array(
|
|
155 |
'Tribe\\Events\\Event_Status\\Template_Modifications' => $baseDir . '/src/Tribe/Event_Status/Template_Modifications.php',
|
156 |
'Tribe\\Events\\I18n' => $baseDir . '/src/Tribe/I18n.php',
|
157 |
'Tribe\\Events\\Integrations\\Beaver_Builder' => $baseDir . '/src/Tribe/Integrations/Beaver_Builder.php',
|
|
|
158 |
'Tribe\\Events\\Integrations\\Fusion\\Service_Provider' => $baseDir . '/src/Tribe/Integrations/Fusion/Service_Provider.php',
|
159 |
'Tribe\\Events\\Integrations\\Fusion\\Widget_Shortcode' => $baseDir . '/src/Tribe/Integrations/Fusion/Widget_Shortcode.php',
|
160 |
'Tribe\\Events\\Integrations\\Hello_Elementor\\Service_Provider' => $baseDir . '/src/Tribe/Integrations/Hello_Elementor/Service_Provider.php',
|
57 |
'TEC\\Events\\Custom_Tables\\V1\\Models\\Validators\\End_Date_UTC' => $baseDir . '/src/Events/Custom_Tables/V1/Models/Validators/End_Date_UTC.php',
|
58 |
'TEC\\Events\\Custom_Tables\\V1\\Models\\Validators\\Ignore_Validator' => $baseDir . '/src/Events/Custom_Tables/V1/Models/Validators/Ignore_Validator.php',
|
59 |
'TEC\\Events\\Custom_Tables\\V1\\Models\\Validators\\Integer_Key' => $baseDir . '/src/Events/Custom_Tables/V1/Models/Validators/Integer_Key.php',
|
60 |
+
'TEC\\Events\\Custom_Tables\\V1\\Models\\Validators\\Occurrence_Duration' => $baseDir . '/src/Events/Custom_Tables/V1/Models/Validators/Occurrence_Duration.php',
|
61 |
'TEC\\Events\\Custom_Tables\\V1\\Models\\Validators\\Positive_Integer' => $baseDir . '/src/Events/Custom_Tables/V1/Models/Validators/Positive_Integer.php',
|
62 |
'TEC\\Events\\Custom_Tables\\V1\\Models\\Validators\\Present' => $baseDir . '/src/Events/Custom_Tables/V1/Models/Validators/Present.php',
|
63 |
'TEC\\Events\\Custom_Tables\\V1\\Models\\Validators\\Range_Dates' => $baseDir . '/src/Events/Custom_Tables/V1/Models/Validators/Range_Dates.php',
|
156 |
'Tribe\\Events\\Event_Status\\Template_Modifications' => $baseDir . '/src/Tribe/Event_Status/Template_Modifications.php',
|
157 |
'Tribe\\Events\\I18n' => $baseDir . '/src/Tribe/I18n.php',
|
158 |
'Tribe\\Events\\Integrations\\Beaver_Builder' => $baseDir . '/src/Tribe/Integrations/Beaver_Builder.php',
|
159 |
+
'Tribe\\Events\\Integrations\\Divi\\Service_Provider' => $baseDir . '/src/Tribe/Integrations/Divi/Service_Provider.php',
|
160 |
'Tribe\\Events\\Integrations\\Fusion\\Service_Provider' => $baseDir . '/src/Tribe/Integrations/Fusion/Service_Provider.php',
|
161 |
'Tribe\\Events\\Integrations\\Fusion\\Widget_Shortcode' => $baseDir . '/src/Tribe/Integrations/Fusion/Widget_Shortcode.php',
|
162 |
'Tribe\\Events\\Integrations\\Hello_Elementor\\Service_Provider' => $baseDir . '/src/Tribe/Integrations/Hello_Elementor/Service_Provider.php',
|
vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -19,15 +19,15 @@ class ComposerAutoloaderInit047571bb9c5b6978ec6fb64db0b7588e
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
25 |
|
26 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
27 |
if ($useStaticLoader) {
|
28 |
require_once __DIR__ . '/autoload_static.php';
|
29 |
|
30 |
-
call_user_func(\Composer\Autoload\
|
31 |
} else {
|
32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
33 |
foreach ($map as $namespace => $path) {
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInitb894359d15008797e6ddab61567f70cd
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInitb894359d15008797e6ddab61567f70cd', 'loadClassLoader'), true, true);
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInitb894359d15008797e6ddab61567f70cd', 'loadClassLoader'));
|
25 |
|
26 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
27 |
if ($useStaticLoader) {
|
28 |
require_once __DIR__ . '/autoload_static.php';
|
29 |
|
30 |
+
call_user_func(\Composer\Autoload\ComposerStaticInitb894359d15008797e6ddab61567f70cd::getInitializer($loader));
|
31 |
} else {
|
32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
33 |
foreach ($map as $namespace => $path) {
|
vendor/composer/autoload_static.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
-
class
|
8 |
{
|
9 |
public static $prefixLengthsPsr4 = array (
|
10 |
'T' =>
|
@@ -77,6 +77,7 @@ class ComposerStaticInit047571bb9c5b6978ec6fb64db0b7588e
|
|
77 |
'TEC\\Events\\Custom_Tables\\V1\\Models\\Validators\\End_Date_UTC' => __DIR__ . '/../..' . '/src/Events/Custom_Tables/V1/Models/Validators/End_Date_UTC.php',
|
78 |
'TEC\\Events\\Custom_Tables\\V1\\Models\\Validators\\Ignore_Validator' => __DIR__ . '/../..' . '/src/Events/Custom_Tables/V1/Models/Validators/Ignore_Validator.php',
|
79 |
'TEC\\Events\\Custom_Tables\\V1\\Models\\Validators\\Integer_Key' => __DIR__ . '/../..' . '/src/Events/Custom_Tables/V1/Models/Validators/Integer_Key.php',
|
|
|
80 |
'TEC\\Events\\Custom_Tables\\V1\\Models\\Validators\\Positive_Integer' => __DIR__ . '/../..' . '/src/Events/Custom_Tables/V1/Models/Validators/Positive_Integer.php',
|
81 |
'TEC\\Events\\Custom_Tables\\V1\\Models\\Validators\\Present' => __DIR__ . '/../..' . '/src/Events/Custom_Tables/V1/Models/Validators/Present.php',
|
82 |
'TEC\\Events\\Custom_Tables\\V1\\Models\\Validators\\Range_Dates' => __DIR__ . '/../..' . '/src/Events/Custom_Tables/V1/Models/Validators/Range_Dates.php',
|
@@ -175,6 +176,7 @@ class ComposerStaticInit047571bb9c5b6978ec6fb64db0b7588e
|
|
175 |
'Tribe\\Events\\Event_Status\\Template_Modifications' => __DIR__ . '/../..' . '/src/Tribe/Event_Status/Template_Modifications.php',
|
176 |
'Tribe\\Events\\I18n' => __DIR__ . '/../..' . '/src/Tribe/I18n.php',
|
177 |
'Tribe\\Events\\Integrations\\Beaver_Builder' => __DIR__ . '/../..' . '/src/Tribe/Integrations/Beaver_Builder.php',
|
|
|
178 |
'Tribe\\Events\\Integrations\\Fusion\\Service_Provider' => __DIR__ . '/../..' . '/src/Tribe/Integrations/Fusion/Service_Provider.php',
|
179 |
'Tribe\\Events\\Integrations\\Fusion\\Widget_Shortcode' => __DIR__ . '/../..' . '/src/Tribe/Integrations/Fusion/Widget_Shortcode.php',
|
180 |
'Tribe\\Events\\Integrations\\Hello_Elementor\\Service_Provider' => __DIR__ . '/../..' . '/src/Tribe/Integrations/Hello_Elementor/Service_Provider.php',
|
@@ -270,9 +272,9 @@ class ComposerStaticInit047571bb9c5b6978ec6fb64db0b7588e
|
|
270 |
public static function getInitializer(ClassLoader $loader)
|
271 |
{
|
272 |
return \Closure::bind(function () use ($loader) {
|
273 |
-
$loader->prefixLengthsPsr4 =
|
274 |
-
$loader->prefixDirsPsr4 =
|
275 |
-
$loader->classMap =
|
276 |
|
277 |
}, null, ClassLoader::class);
|
278 |
}
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
+
class ComposerStaticInitb894359d15008797e6ddab61567f70cd
|
8 |
{
|
9 |
public static $prefixLengthsPsr4 = array (
|
10 |
'T' =>
|
77 |
'TEC\\Events\\Custom_Tables\\V1\\Models\\Validators\\End_Date_UTC' => __DIR__ . '/../..' . '/src/Events/Custom_Tables/V1/Models/Validators/End_Date_UTC.php',
|
78 |
'TEC\\Events\\Custom_Tables\\V1\\Models\\Validators\\Ignore_Validator' => __DIR__ . '/../..' . '/src/Events/Custom_Tables/V1/Models/Validators/Ignore_Validator.php',
|
79 |
'TEC\\Events\\Custom_Tables\\V1\\Models\\Validators\\Integer_Key' => __DIR__ . '/../..' . '/src/Events/Custom_Tables/V1/Models/Validators/Integer_Key.php',
|
80 |
+
'TEC\\Events\\Custom_Tables\\V1\\Models\\Validators\\Occurrence_Duration' => __DIR__ . '/../..' . '/src/Events/Custom_Tables/V1/Models/Validators/Occurrence_Duration.php',
|
81 |
'TEC\\Events\\Custom_Tables\\V1\\Models\\Validators\\Positive_Integer' => __DIR__ . '/../..' . '/src/Events/Custom_Tables/V1/Models/Validators/Positive_Integer.php',
|
82 |
'TEC\\Events\\Custom_Tables\\V1\\Models\\Validators\\Present' => __DIR__ . '/../..' . '/src/Events/Custom_Tables/V1/Models/Validators/Present.php',
|
83 |
'TEC\\Events\\Custom_Tables\\V1\\Models\\Validators\\Range_Dates' => __DIR__ . '/../..' . '/src/Events/Custom_Tables/V1/Models/Validators/Range_Dates.php',
|
176 |
'Tribe\\Events\\Event_Status\\Template_Modifications' => __DIR__ . '/../..' . '/src/Tribe/Event_Status/Template_Modifications.php',
|
177 |
'Tribe\\Events\\I18n' => __DIR__ . '/../..' . '/src/Tribe/I18n.php',
|
178 |
'Tribe\\Events\\Integrations\\Beaver_Builder' => __DIR__ . '/../..' . '/src/Tribe/Integrations/Beaver_Builder.php',
|
179 |
+
'Tribe\\Events\\Integrations\\Divi\\Service_Provider' => __DIR__ . '/../..' . '/src/Tribe/Integrations/Divi/Service_Provider.php',
|
180 |
'Tribe\\Events\\Integrations\\Fusion\\Service_Provider' => __DIR__ . '/../..' . '/src/Tribe/Integrations/Fusion/Service_Provider.php',
|
181 |
'Tribe\\Events\\Integrations\\Fusion\\Widget_Shortcode' => __DIR__ . '/../..' . '/src/Tribe/Integrations/Fusion/Widget_Shortcode.php',
|
182 |
'Tribe\\Events\\Integrations\\Hello_Elementor\\Service_Provider' => __DIR__ . '/../..' . '/src/Tribe/Integrations/Hello_Elementor/Service_Provider.php',
|
272 |
public static function getInitializer(ClassLoader $loader)
|
273 |
{
|
274 |
return \Closure::bind(function () use ($loader) {
|
275 |
+
$loader->prefixLengthsPsr4 = ComposerStaticInitb894359d15008797e6ddab61567f70cd::$prefixLengthsPsr4;
|
276 |
+
$loader->prefixDirsPsr4 = ComposerStaticInitb894359d15008797e6ddab61567f70cd::$prefixDirsPsr4;
|
277 |
+
$loader->classMap = ComposerStaticInitb894359d15008797e6ddab61567f70cd::$classMap;
|
278 |
|
279 |
}, null, ClassLoader::class);
|
280 |
}
|
vendor/composer/installed.json
CHANGED
@@ -1,17 +1,17 @@
|
|
1 |
[
|
2 |
{
|
3 |
"name": "woocommerce/action-scheduler",
|
4 |
-
"version": "3.
|
5 |
-
"version_normalized": "3.
|
6 |
"source": {
|
7 |
"type": "git",
|
8 |
"url": "https://github.com/woocommerce/action-scheduler.git",
|
9 |
-
"reference": "
|
10 |
},
|
11 |
"dist": {
|
12 |
"type": "zip",
|
13 |
-
"url": "https://api.github.com/repos/woocommerce/action-scheduler/zipball/
|
14 |
-
"reference": "
|
15 |
"shasum": ""
|
16 |
},
|
17 |
"require-dev": {
|
@@ -20,7 +20,7 @@
|
|
20 |
"wp-cli/wp-cli": "~2.5.0",
|
21 |
"yoast/phpunit-polyfills": "^1.0"
|
22 |
},
|
23 |
-
"time": "2022-
|
24 |
"type": "wordpress-plugin",
|
25 |
"extra": {
|
26 |
"scripts-description": {
|
1 |
[
|
2 |
{
|
3 |
"name": "woocommerce/action-scheduler",
|
4 |
+
"version": "3.5.0",
|
5 |
+
"version_normalized": "3.5.0.0",
|
6 |
"source": {
|
7 |
"type": "git",
|
8 |
"url": "https://github.com/woocommerce/action-scheduler.git",
|
9 |
+
"reference": "2f013f99dbea83933431a10f2a92c3388545ea43"
|
10 |
},
|
11 |
"dist": {
|
12 |
"type": "zip",
|
13 |
+
"url": "https://api.github.com/repos/woocommerce/action-scheduler/zipball/2f013f99dbea83933431a10f2a92c3388545ea43",
|
14 |
+
"reference": "2f013f99dbea83933431a10f2a92c3388545ea43",
|
15 |
"shasum": ""
|
16 |
},
|
17 |
"require-dev": {
|
20 |
"wp-cli/wp-cli": "~2.5.0",
|
21 |
"yoast/phpunit-polyfills": "^1.0"
|
22 |
},
|
23 |
+
"time": "2022-08-25T20:43:08+00:00",
|
24 |
"type": "wordpress-plugin",
|
25 |
"extra": {
|
26 |
"scripts-description": {
|
vendor/woocommerce/action-scheduler/action-scheduler.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* Description: A robust scheduling library for use in WordPress plugins.
|
6 |
* Author: Automattic
|
7 |
* Author URI: https://automattic.com/
|
8 |
-
* Version: 3.
|
9 |
* License: GPLv3
|
10 |
*
|
11 |
* Copyright 2019 Automattic, Inc. (https://automattic.com/contact/)
|
@@ -26,27 +26,27 @@
|
|
26 |
* @package ActionScheduler
|
27 |
*/
|
28 |
|
29 |
-
if ( ! function_exists( '
|
30 |
|
31 |
if ( ! class_exists( 'ActionScheduler_Versions', false ) ) {
|
32 |
require_once __DIR__ . '/classes/ActionScheduler_Versions.php';
|
33 |
add_action( 'plugins_loaded', array( 'ActionScheduler_Versions', 'initialize_latest_version' ), 1, 0 );
|
34 |
}
|
35 |
|
36 |
-
add_action( 'plugins_loaded', '
|
37 |
|
38 |
/**
|
39 |
* Registers this version of Action Scheduler.
|
40 |
*/
|
41 |
-
function
|
42 |
$versions = ActionScheduler_Versions::instance();
|
43 |
-
$versions->register( '3.
|
44 |
}
|
45 |
|
46 |
/**
|
47 |
* Initializes this version of Action Scheduler.
|
48 |
*/
|
49 |
-
function
|
50 |
// A final safety check is required even here, because historic versions of Action Scheduler
|
51 |
// followed a different pattern (in some unusual cases, we could reach this point and the
|
52 |
// ActionScheduler class is already defined—so we need to guard against that).
|
@@ -58,7 +58,7 @@ if ( ! function_exists( 'action_scheduler_register_3_dot_4_dot_0' ) && function_
|
|
58 |
|
59 |
// Support usage in themes - load this version if no plugin has loaded a version yet.
|
60 |
if ( did_action( 'plugins_loaded' ) && ! doing_action( 'plugins_loaded' ) && ! class_exists( 'ActionScheduler', false ) ) {
|
61 |
-
|
62 |
do_action( 'action_scheduler_pre_theme_init' );
|
63 |
ActionScheduler_Versions::initialize_latest_version();
|
64 |
}
|
5 |
* Description: A robust scheduling library for use in WordPress plugins.
|
6 |
* Author: Automattic
|
7 |
* Author URI: https://automattic.com/
|
8 |
+
* Version: 3.5.0
|
9 |
* License: GPLv3
|
10 |
*
|
11 |
* Copyright 2019 Automattic, Inc. (https://automattic.com/contact/)
|
26 |
* @package ActionScheduler
|
27 |
*/
|
28 |
|
29 |
+
if ( ! function_exists( 'action_scheduler_register_3_dot_5_dot_0' ) && function_exists( 'add_action' ) ) {
|
30 |
|
31 |
if ( ! class_exists( 'ActionScheduler_Versions', false ) ) {
|
32 |
require_once __DIR__ . '/classes/ActionScheduler_Versions.php';
|
33 |
add_action( 'plugins_loaded', array( 'ActionScheduler_Versions', 'initialize_latest_version' ), 1, 0 );
|
34 |
}
|
35 |
|
36 |
+
add_action( 'plugins_loaded', 'action_scheduler_register_3_dot_5_dot_0', 0, 0 );
|
37 |
|
38 |
/**
|
39 |
* Registers this version of Action Scheduler.
|
40 |
*/
|
41 |
+
function action_scheduler_register_3_dot_5_dot_0() {
|
42 |
$versions = ActionScheduler_Versions::instance();
|
43 |
+
$versions->register( '3.5.0', 'action_scheduler_initialize_3_dot_5_dot_0' );
|
44 |
}
|
45 |
|
46 |
/**
|
47 |
* Initializes this version of Action Scheduler.
|
48 |
*/
|
49 |
+
function action_scheduler_initialize_3_dot_5_dot_0() {
|
50 |
// A final safety check is required even here, because historic versions of Action Scheduler
|
51 |
// followed a different pattern (in some unusual cases, we could reach this point and the
|
52 |
// ActionScheduler class is already defined—so we need to guard against that).
|
58 |
|
59 |
// Support usage in themes - load this version if no plugin has loaded a version yet.
|
60 |
if ( did_action( 'plugins_loaded' ) && ! doing_action( 'plugins_loaded' ) && ! class_exists( 'ActionScheduler', false ) ) {
|
61 |
+
action_scheduler_initialize_3_dot_5_dot_0();
|
62 |
do_action( 'action_scheduler_pre_theme_init' );
|
63 |
ActionScheduler_Versions::initialize_latest_version();
|
64 |
}
|
vendor/woocommerce/action-scheduler/changelog.txt
CHANGED
@@ -1,5 +1,13 @@
|
|
1 |
*** Changelog ***
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
= 3.4.2 - 2022-06-08 =
|
4 |
* Fix - Change the include for better linting.
|
5 |
* Fix - update: Added Action scheduler completed action hook.
|
1 |
*** Changelog ***
|
2 |
|
3 |
+
= 3.5.0 - 2022-08-25 =
|
4 |
+
* Add - The active view link within the "Tools > Scheduled Actions" screen is now clickable.
|
5 |
+
* Add - A warning when there are past-due actions.
|
6 |
+
* Enhancement - Added the ability to schedule unique actions via an atomic operation.
|
7 |
+
* Enhancement - Improvements to cache invalidation when processing batches (when running on WordPress 6.0+).
|
8 |
+
* Enhancement - If a recurring action is found to be consistently failing, it will stop being rescheduled.
|
9 |
+
* Enhancement - Adds a new "Past Due" view to the scheduled actions list table.
|
10 |
+
|
11 |
= 3.4.2 - 2022-06-08 =
|
12 |
* Fix - Change the include for better linting.
|
13 |
* Fix - update: Added Action scheduler completed action hook.
|
vendor/woocommerce/action-scheduler/classes/ActionScheduler_ActionFactory.php
CHANGED
@@ -6,27 +6,29 @@
|
|
6 |
class ActionScheduler_ActionFactory {
|
7 |
|
8 |
/**
|
9 |
-
*
|
10 |
-
* @param string $hook The hook to trigger when this action runs
|
11 |
-
* @param array $args Args to pass to callbacks when the hook is triggered
|
12 |
-
* @param ActionScheduler_Schedule $schedule The action's schedule
|
13 |
-
* @param string $group A group to put the action in
|
14 |
*
|
15 |
-
* @
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
*/
|
17 |
public function get_stored_action( $status, $hook, array $args = array(), ActionScheduler_Schedule $schedule = null, $group = '' ) {
|
18 |
|
19 |
switch ( $status ) {
|
20 |
-
case ActionScheduler_Store::STATUS_PENDING
|
21 |
$action_class = 'ActionScheduler_Action';
|
22 |
break;
|
23 |
-
case ActionScheduler_Store::STATUS_CANCELED
|
24 |
$action_class = 'ActionScheduler_CanceledAction';
|
25 |
if ( ! is_null( $schedule ) && ! is_a( $schedule, 'ActionScheduler_CanceledSchedule' ) && ! is_a( $schedule, 'ActionScheduler_NullSchedule' ) ) {
|
26 |
$schedule = new ActionScheduler_CanceledSchedule( $schedule->get_date() );
|
27 |
}
|
28 |
break;
|
29 |
-
default
|
30 |
$action_class = 'ActionScheduler_FinishedAction';
|
31 |
break;
|
32 |
}
|
@@ -57,76 +59,142 @@ class ActionScheduler_ActionFactory {
|
|
57 |
* given priority in queue processing. This has the added advantage of making sure async actions can be
|
58 |
* claimed by both the existing WP Cron and WP CLI runners, as well as a new async request runner.
|
59 |
*
|
60 |
-
* @param string $hook The hook to trigger when this action runs
|
61 |
-
* @param array
|
62 |
-
* @param string $group A group to put the action in
|
63 |
*
|
64 |
-
* @return int The ID of the stored action
|
65 |
*/
|
66 |
public function async( $hook, $args = array(), $group = '' ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
$schedule = new ActionScheduler_NullSchedule();
|
68 |
-
$action
|
69 |
-
return $this->store( $action );
|
70 |
}
|
71 |
|
72 |
/**
|
73 |
-
*
|
74 |
-
* @param array $args Args to pass when the hook is triggered
|
75 |
-
* @param int $when Unix timestamp when the action will run
|
76 |
-
* @param string $group A group to put the action in
|
77 |
*
|
78 |
-
* @
|
|
|
|
|
|
|
|
|
|
|
79 |
*/
|
80 |
public function single( $hook, $args = array(), $when = null, $group = '' ) {
|
81 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
$schedule = new ActionScheduler_SimpleSchedule( $date );
|
83 |
-
$action
|
84 |
-
return $this->store( $action );
|
85 |
}
|
86 |
|
87 |
/**
|
88 |
* Create the first instance of an action recurring on a given interval.
|
89 |
*
|
90 |
-
* @param string $hook The hook to trigger when this action runs
|
91 |
-
* @param array
|
92 |
-
* @param int
|
93 |
-
* @param int
|
94 |
-
* @param string $group A group to put the action in
|
95 |
*
|
96 |
-
* @return int The ID of the stored action
|
97 |
*/
|
98 |
public function recurring( $hook, $args = array(), $first = null, $interval = null, $group = '' ) {
|
99 |
-
|
100 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
101 |
}
|
102 |
-
$date
|
103 |
$schedule = new ActionScheduler_IntervalSchedule( $date, $interval );
|
104 |
-
$action
|
105 |
-
return $this->store( $action );
|
106 |
}
|
107 |
|
108 |
/**
|
109 |
* Create the first instance of an action recurring on a Cron schedule.
|
110 |
*
|
111 |
-
* @param string $hook The hook to trigger when this action runs
|
112 |
-
* @param array
|
113 |
-
* @param int
|
114 |
* to run at a time calculated after this timestamp matching the cron
|
115 |
* expression. This can be used to delay the first instance of the action.
|
116 |
-
* @param int
|
117 |
-
* @param string $group A group to put the action in
|
118 |
*
|
119 |
-
* @return int The ID of the stored action
|
120 |
*/
|
121 |
public function cron( $hook, $args = array(), $base_timestamp = null, $schedule = null, $group = '' ) {
|
122 |
-
|
123 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
}
|
125 |
-
$date
|
126 |
-
$cron
|
127 |
$schedule = new ActionScheduler_CronSchedule( $date, $cron );
|
128 |
-
$action
|
129 |
-
return $this->store( $action );
|
130 |
}
|
131 |
|
132 |
/**
|
@@ -162,13 +230,15 @@ class ActionScheduler_ActionFactory {
|
|
162 |
}
|
163 |
|
164 |
$schedule_class = get_class( $schedule );
|
165 |
-
$new_schedule
|
166 |
-
$new_action
|
167 |
return $this->store( $new_action );
|
168 |
}
|
169 |
|
170 |
/**
|
171 |
-
*
|
|
|
|
|
172 |
*
|
173 |
* @return int The ID of the stored action
|
174 |
*/
|
@@ -176,4 +246,17 @@ class ActionScheduler_ActionFactory {
|
|
176 |
$store = ActionScheduler_Store::instance();
|
177 |
return $store->save_action( $action );
|
178 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
179 |
}
|
6 |
class ActionScheduler_ActionFactory {
|
7 |
|
8 |
/**
|
9 |
+
* Return stored actions for given params.
|
|
|
|
|
|
|
|
|
10 |
*
|
11 |
+
* @param string $status The action's status in the data store.
|
12 |
+
* @param string $hook The hook to trigger when this action runs.
|
13 |
+
* @param array $args Args to pass to callbacks when the hook is triggered.
|
14 |
+
* @param ActionScheduler_Schedule $schedule The action's schedule.
|
15 |
+
* @param string $group A group to put the action in.
|
16 |
+
*
|
17 |
+
* @return ActionScheduler_Action An instance of the stored action.
|
18 |
*/
|
19 |
public function get_stored_action( $status, $hook, array $args = array(), ActionScheduler_Schedule $schedule = null, $group = '' ) {
|
20 |
|
21 |
switch ( $status ) {
|
22 |
+
case ActionScheduler_Store::STATUS_PENDING:
|
23 |
$action_class = 'ActionScheduler_Action';
|
24 |
break;
|
25 |
+
case ActionScheduler_Store::STATUS_CANCELED:
|
26 |
$action_class = 'ActionScheduler_CanceledAction';
|
27 |
if ( ! is_null( $schedule ) && ! is_a( $schedule, 'ActionScheduler_CanceledSchedule' ) && ! is_a( $schedule, 'ActionScheduler_NullSchedule' ) ) {
|
28 |
$schedule = new ActionScheduler_CanceledSchedule( $schedule->get_date() );
|
29 |
}
|
30 |
break;
|
31 |
+
default:
|
32 |
$action_class = 'ActionScheduler_FinishedAction';
|
33 |
break;
|
34 |
}
|
59 |
* given priority in queue processing. This has the added advantage of making sure async actions can be
|
60 |
* claimed by both the existing WP Cron and WP CLI runners, as well as a new async request runner.
|
61 |
*
|
62 |
+
* @param string $hook The hook to trigger when this action runs.
|
63 |
+
* @param array $args Args to pass when the hook is triggered.
|
64 |
+
* @param string $group A group to put the action in.
|
65 |
*
|
66 |
+
* @return int The ID of the stored action.
|
67 |
*/
|
68 |
public function async( $hook, $args = array(), $group = '' ) {
|
69 |
+
return $this->async_unique( $hook, $args, $group, false );
|
70 |
+
}
|
71 |
+
|
72 |
+
/**
|
73 |
+
* Same as async, but also supports $unique param.
|
74 |
+
*
|
75 |
+
* @param string $hook The hook to trigger when this action runs.
|
76 |
+
* @param array $args Args to pass when the hook is triggered.
|
77 |
+
* @param string $group A group to put the action in.
|
78 |
+
* @param bool $unique Whether to ensure the action is unique.
|
79 |
+
*
|
80 |
+
* @return int The ID of the stored action.
|
81 |
+
*/
|
82 |
+
public function async_unique( $hook, $args = array(), $group = '', $unique = true ) {
|
83 |
$schedule = new ActionScheduler_NullSchedule();
|
84 |
+
$action = new ActionScheduler_Action( $hook, $args, $schedule, $group );
|
85 |
+
return $unique ? $this->store_unique_action( $action, $unique ) : $this->store( $action );
|
86 |
}
|
87 |
|
88 |
/**
|
89 |
+
* Create single action.
|
|
|
|
|
|
|
90 |
*
|
91 |
+
* @param string $hook The hook to trigger when this action runs.
|
92 |
+
* @param array $args Args to pass when the hook is triggered.
|
93 |
+
* @param int $when Unix timestamp when the action will run.
|
94 |
+
* @param string $group A group to put the action in.
|
95 |
+
*
|
96 |
+
* @return int The ID of the stored action.
|
97 |
*/
|
98 |
public function single( $hook, $args = array(), $when = null, $group = '' ) {
|
99 |
+
return $this->single_unique( $hook, $args, $when, $group, false );
|
100 |
+
}
|
101 |
+
|
102 |
+
/**
|
103 |
+
* Create single action only if there is no pending or running action with same name and params.
|
104 |
+
*
|
105 |
+
* @param string $hook The hook to trigger when this action runs.
|
106 |
+
* @param array $args Args to pass when the hook is triggered.
|
107 |
+
* @param int $when Unix timestamp when the action will run.
|
108 |
+
* @param string $group A group to put the action in.
|
109 |
+
* @param bool $unique Whether action scheduled should be unique.
|
110 |
+
*
|
111 |
+
* @return int The ID of the stored action.
|
112 |
+
*/
|
113 |
+
public function single_unique( $hook, $args = array(), $when = null, $group = '', $unique = true ) {
|
114 |
+
$date = as_get_datetime_object( $when );
|
115 |
$schedule = new ActionScheduler_SimpleSchedule( $date );
|
116 |
+
$action = new ActionScheduler_Action( $hook, $args, $schedule, $group );
|
117 |
+
return $unique ? $this->store_unique_action( $action ) : $this->store( $action );
|
118 |
}
|
119 |
|
120 |
/**
|
121 |
* Create the first instance of an action recurring on a given interval.
|
122 |
*
|
123 |
+
* @param string $hook The hook to trigger when this action runs.
|
124 |
+
* @param array $args Args to pass when the hook is triggered.
|
125 |
+
* @param int $first Unix timestamp for the first run.
|
126 |
+
* @param int $interval Seconds between runs.
|
127 |
+
* @param string $group A group to put the action in.
|
128 |
*
|
129 |
+
* @return int The ID of the stored action.
|
130 |
*/
|
131 |
public function recurring( $hook, $args = array(), $first = null, $interval = null, $group = '' ) {
|
132 |
+
return $this->recurring_unique( $hook, $args, $first, $interval, $group, false );
|
133 |
+
}
|
134 |
+
|
135 |
+
/**
|
136 |
+
* Create the first instance of an action recurring on a given interval only if there is no pending or running action with same name and params.
|
137 |
+
*
|
138 |
+
* @param string $hook The hook to trigger when this action runs.
|
139 |
+
* @param array $args Args to pass when the hook is triggered.
|
140 |
+
* @param int $first Unix timestamp for the first run.
|
141 |
+
* @param int $interval Seconds between runs.
|
142 |
+
* @param string $group A group to put the action in.
|
143 |
+
* @param bool $unique Whether action scheduled should be unique.
|
144 |
+
*
|
145 |
+
* @return int The ID of the stored action.
|
146 |
+
*/
|
147 |
+
public function recurring_unique( $hook, $args = array(), $first = null, $interval = null, $group = '', $unique = true ) {
|
148 |
+
if ( empty( $interval ) ) {
|
149 |
+
return $this->single_unique( $hook, $unique, $args, $first, $group );
|
150 |
}
|
151 |
+
$date = as_get_datetime_object( $first );
|
152 |
$schedule = new ActionScheduler_IntervalSchedule( $date, $interval );
|
153 |
+
$action = new ActionScheduler_Action( $hook, $args, $schedule, $group );
|
154 |
+
return $unique ? $this->store_unique_action( $action ) : $this->store( $action );
|
155 |
}
|
156 |
|
157 |
/**
|
158 |
* Create the first instance of an action recurring on a Cron schedule.
|
159 |
*
|
160 |
+
* @param string $hook The hook to trigger when this action runs.
|
161 |
+
* @param array $args Args to pass when the hook is triggered.
|
162 |
+
* @param int $base_timestamp The first instance of the action will be scheduled
|
163 |
* to run at a time calculated after this timestamp matching the cron
|
164 |
* expression. This can be used to delay the first instance of the action.
|
165 |
+
* @param int $schedule A cron definition string.
|
166 |
+
* @param string $group A group to put the action in.
|
167 |
*
|
168 |
+
* @return int The ID of the stored action.
|
169 |
*/
|
170 |
public function cron( $hook, $args = array(), $base_timestamp = null, $schedule = null, $group = '' ) {
|
171 |
+
return $this->cron_unique( $hook, $args, $base_timestamp, $schedule, $group, false );
|
172 |
+
}
|
173 |
+
|
174 |
+
|
175 |
+
/**
|
176 |
+
* Create the first instance of an action recurring on a Cron schedule only if there is no pending or running action with same name and params.
|
177 |
+
*
|
178 |
+
* @param string $hook The hook to trigger when this action runs.
|
179 |
+
* @param array $args Args to pass when the hook is triggered.
|
180 |
+
* @param int $base_timestamp The first instance of the action will be scheduled
|
181 |
+
* to run at a time calculated after this timestamp matching the cron
|
182 |
+
* expression. This can be used to delay the first instance of the action.
|
183 |
+
* @param int $schedule A cron definition string.
|
184 |
+
* @param string $group A group to put the action in.
|
185 |
+
* @param bool $unique Whether action scheduled should be unique.
|
186 |
+
*
|
187 |
+
* @return int The ID of the stored action.
|
188 |
+
**/
|
189 |
+
public function cron_unique( $hook, $args = array(), $base_timestamp = null, $schedule = null, $group = '', $unique = true ) {
|
190 |
+
if ( empty( $schedule ) ) {
|
191 |
+
return $this->single_unique( $hook, $unique, $args, $base_timestamp, $group );
|
192 |
}
|
193 |
+
$date = as_get_datetime_object( $base_timestamp );
|
194 |
+
$cron = CronExpression::factory( $schedule );
|
195 |
$schedule = new ActionScheduler_CronSchedule( $date, $cron );
|
196 |
+
$action = new ActionScheduler_Action( $hook, $args, $schedule, $group );
|
197 |
+
return $unique ? $this->store_unique_action( $action ) : $this->store( $action );
|
198 |
}
|
199 |
|
200 |
/**
|
230 |
}
|
231 |
|
232 |
$schedule_class = get_class( $schedule );
|
233 |
+
$new_schedule = new $schedule( $next, $schedule->get_recurrence(), $schedule->get_first_date() );
|
234 |
+
$new_action = new ActionScheduler_Action( $action->get_hook(), $action->get_args(), $new_schedule, $action->get_group() );
|
235 |
return $this->store( $new_action );
|
236 |
}
|
237 |
|
238 |
/**
|
239 |
+
* Save action to database.
|
240 |
+
*
|
241 |
+
* @param ActionScheduler_Action $action Action object to save.
|
242 |
*
|
243 |
* @return int The ID of the stored action
|
244 |
*/
|
246 |
$store = ActionScheduler_Store::instance();
|
247 |
return $store->save_action( $action );
|
248 |
}
|
249 |
+
|
250 |
+
/**
|
251 |
+
* Store action if it's unique.
|
252 |
+
*
|
253 |
+
* @param ActionScheduler_Action $action Action object to store.
|
254 |
+
*
|
255 |
+
* @return int ID of the created action. Will be 0 if action was not created.
|
256 |
+
*/
|
257 |
+
protected function store_unique_action( ActionScheduler_Action $action ) {
|
258 |
+
$store = ActionScheduler_Store::instance();
|
259 |
+
return method_exists( $store, 'save_unique_action' ) ?
|
260 |
+
$store->save_unique_action( $action ) : $store->save_action( $action );
|
261 |
+
}
|
262 |
}
|
vendor/woocommerce/action-scheduler/classes/ActionScheduler_AdminView.php
CHANGED
@@ -40,7 +40,7 @@ class ActionScheduler_AdminView extends ActionScheduler_AdminView_Deprecated {
|
|
40 |
}
|
41 |
|
42 |
add_action( 'admin_menu', array( $this, 'register_menu' ) );
|
43 |
-
|
44 |
add_action( 'current_screen', array( $this, 'add_help_tabs' ) );
|
45 |
}
|
46 |
}
|
@@ -110,6 +110,96 @@ class ActionScheduler_AdminView extends ActionScheduler_AdminView_Deprecated {
|
|
110 |
return $this->list_table;
|
111 |
}
|
112 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
113 |
/**
|
114 |
* Provide more information about the screen and its data in the help tab.
|
115 |
*/
|
40 |
}
|
41 |
|
42 |
add_action( 'admin_menu', array( $this, 'register_menu' ) );
|
43 |
+
add_action( 'admin_notices', array( $this, 'maybe_check_pastdue_actions' ) );
|
44 |
add_action( 'current_screen', array( $this, 'add_help_tabs' ) );
|
45 |
}
|
46 |
}
|
110 |
return $this->list_table;
|
111 |
}
|
112 |
|
113 |
+
/**
|
114 |
+
* Action: admin_notices
|
115 |
+
*
|
116 |
+
* Maybe check past-due actions, and print notice.
|
117 |
+
*
|
118 |
+
* @uses $this->check_pastdue_actions()
|
119 |
+
*/
|
120 |
+
public function maybe_check_pastdue_actions() {
|
121 |
+
|
122 |
+
# Filter to prevent checking actions (ex: inappropriate user).
|
123 |
+
if ( ! apply_filters( 'action_scheduler_check_pastdue_actions', current_user_can( 'manage_options' ) ) ) {
|
124 |
+
return;
|
125 |
+
}
|
126 |
+
|
127 |
+
# Get last check transient.
|
128 |
+
$last_check = get_transient( 'action_scheduler_last_pastdue_actions_check' );
|
129 |
+
|
130 |
+
# If transient exists, we're within interval, so bail.
|
131 |
+
if ( ! empty( $last_check ) ) {
|
132 |
+
return;
|
133 |
+
}
|
134 |
+
|
135 |
+
# Perform the check.
|
136 |
+
$this->check_pastdue_actions();
|
137 |
+
}
|
138 |
+
|
139 |
+
/**
|
140 |
+
* Check past-due actions, and print notice.
|
141 |
+
*
|
142 |
+
* @todo update $link_url to "Past-due" filter when released (see issue #510, PR #511)
|
143 |
+
*/
|
144 |
+
protected function check_pastdue_actions() {
|
145 |
+
|
146 |
+
# Set thresholds.
|
147 |
+
$threshold_seconds = ( int ) apply_filters( 'action_scheduler_pastdue_actions_seconds', DAY_IN_SECONDS );
|
148 |
+
$threshhold_min = ( int ) apply_filters( 'action_scheduler_pastdue_actions_min', 1 );
|
149 |
+
|
150 |
+
# Allow third-parties to preempt the default check logic.
|
151 |
+
$check = apply_filters( 'action_scheduler_pastdue_actions_check_pre', null );
|
152 |
+
|
153 |
+
# Scheduled actions query arguments.
|
154 |
+
$query_args = array(
|
155 |
+
'date' => as_get_datetime_object( time() - $threshold_seconds ),
|
156 |
+
'status' => ActionScheduler_Store::STATUS_PENDING,
|
157 |
+
'per_page' => $threshhold_min,
|
158 |
+
);
|
159 |
+
|
160 |
+
# If no third-party preempted, run default check.
|
161 |
+
if ( is_null( $check ) ) {
|
162 |
+
$store = ActionScheduler_Store::instance();
|
163 |
+
$num_pastdue_actions = ( int ) $store->query_actions( $query_args, 'count' );
|
164 |
+
|
165 |
+
# Check if past-due actions count is greater than or equal to threshold.
|
166 |
+
$check = ( $num_pastdue_actions >= $threshhold_min );
|
167 |
+
$check = ( bool ) apply_filters( 'action_scheduler_pastdue_actions_check', $check, $num_pastdue_actions, $threshold_seconds, $threshhold_min );
|
168 |
+
}
|
169 |
+
|
170 |
+
# If check failed, set transient and abort.
|
171 |
+
if ( ! boolval( $check ) ) {
|
172 |
+
$interval = apply_filters( 'action_scheduler_pastdue_actions_check_interval', round( $threshold_seconds / 4 ), $threshold_seconds );
|
173 |
+
set_transient( 'action_scheduler_last_pastdue_actions_check', time(), $interval );
|
174 |
+
|
175 |
+
return;
|
176 |
+
}
|
177 |
+
|
178 |
+
$actions_url = add_query_arg( array(
|
179 |
+
'page' => 'action-scheduler',
|
180 |
+
'status' => 'past-due',
|
181 |
+
'order' => 'asc',
|
182 |
+
), admin_url( 'tools.php' ) );
|
183 |
+
|
184 |
+
# Print notice.
|
185 |
+
echo '<div class="notice notice-warning"><p>';
|
186 |
+
printf(
|
187 |
+
_n(
|
188 |
+
// translators: 1) is the number of affected actions, 2) is a link to an admin screen.
|
189 |
+
'<strong>Action Scheduler:</strong> %1$d <a href="%2$s">past-due action</a> found; something may be wrong. <a href="https://actionscheduler.org/faq/#my-site-has-past-due-actions-what-can-i-do" target="_blank">Read documentation »</a>',
|
190 |
+
'<strong>Action Scheduler:</strong> %1$d <a href="%2$s">past-due actions</a> found; something may be wrong. <a href="https://actionscheduler.org/faq/#my-site-has-past-due-actions-what-can-i-do" target="_blank">Read documentation »</a>',
|
191 |
+
$num_pastdue_actions,
|
192 |
+
'action-scheduler'
|
193 |
+
),
|
194 |
+
$num_pastdue_actions,
|
195 |
+
esc_attr( esc_url( $actions_url ) )
|
196 |
+
);
|
197 |
+
echo '</p></div>';
|
198 |
+
|
199 |
+
# Facilitate third-parties to evaluate and print notices.
|
200 |
+
do_action( 'action_scheduler_pastdue_actions_extra_notices', $query_args );
|
201 |
+
}
|
202 |
+
|
203 |
/**
|
204 |
* Provide more information about the screen and its data in the help tab.
|
205 |
*/
|
vendor/woocommerce/action-scheduler/classes/ActionScheduler_Exception.php
CHANGED
@@ -6,6 +6,6 @@
|
|
6 |
* Facilitates catching Exceptions unique to Action Scheduler.
|
7 |
*
|
8 |
* @package ActionScheduler
|
9 |
-
* @since
|
10 |
*/
|
11 |
interface ActionScheduler_Exception {}
|
6 |
* Facilitates catching Exceptions unique to Action Scheduler.
|
7 |
*
|
8 |
* @package ActionScheduler
|
9 |
+
* @since 2.1.0
|
10 |
*/
|
11 |
interface ActionScheduler_Exception {}
|
vendor/woocommerce/action-scheduler/classes/ActionScheduler_ListTable.php
CHANGED
@@ -467,6 +467,10 @@ class ActionScheduler_ListTable extends ActionScheduler_Abstract_ListTable {
|
|
467 |
|
468 |
$schedule_display_string = '';
|
469 |
|
|
|
|
|
|
|
|
|
470 |
if ( ! $schedule->get_date() ) {
|
471 |
return '0000-00-00 00:00:00';
|
472 |
}
|
@@ -583,6 +587,16 @@ class ActionScheduler_ListTable extends ActionScheduler_Abstract_ListTable {
|
|
583 |
'search' => $this->get_request_search_query(),
|
584 |
);
|
585 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
586 |
$this->items = array();
|
587 |
|
588 |
$total_items = $this->store->query_actions( $query, 'count' );
|
@@ -623,7 +637,7 @@ class ActionScheduler_ListTable extends ActionScheduler_Abstract_ListTable {
|
|
623 |
* Prints the available statuses so the user can click to filter.
|
624 |
*/
|
625 |
protected function display_filter_by_status() {
|
626 |
-
$this->status_counts = $this->store->action_counts();
|
627 |
parent::display_filter_by_status();
|
628 |
}
|
629 |
|
467 |
|
468 |
$schedule_display_string = '';
|
469 |
|
470 |
+
if ( is_a( $schedule, 'ActionScheduler_NullSchedule' ) ) {
|
471 |
+
return __( 'async', 'action-scheduler' );
|
472 |
+
}
|
473 |
+
|
474 |
if ( ! $schedule->get_date() ) {
|
475 |
return '0000-00-00 00:00:00';
|
476 |
}
|
587 |
'search' => $this->get_request_search_query(),
|
588 |
);
|
589 |
|
590 |
+
/**
|
591 |
+
* Change query arguments to query for past-due actions.
|
592 |
+
* Past-due actions have the 'pending' status and are in the past.
|
593 |
+
* This is needed because registering 'past-due' as a status is overkill.
|
594 |
+
*/
|
595 |
+
if ( 'past-due' === $this->get_request_status() ) {
|
596 |
+
$query['status'] = ActionScheduler_Store::STATUS_PENDING;
|
597 |
+
$query['date'] = as_get_datetime_object();
|
598 |
+
}
|
599 |
+
|
600 |
$this->items = array();
|
601 |
|
602 |
$total_items = $this->store->query_actions( $query, 'count' );
|
637 |
* Prints the available statuses so the user can click to filter.
|
638 |
*/
|
639 |
protected function display_filter_by_status() {
|
640 |
+
$this->status_counts = $this->store->action_counts() + $this->store->extra_action_counts();
|
641 |
parent::display_filter_by_status();
|
642 |
}
|
643 |
|
vendor/woocommerce/action-scheduler/classes/ActionScheduler_QueueRunner.php
CHANGED
@@ -173,15 +173,34 @@ class ActionScheduler_QueueRunner extends ActionScheduler_Abstract_QueueRunner {
|
|
173 |
}
|
174 |
|
175 |
/**
|
176 |
-
*
|
177 |
*
|
178 |
-
*
|
179 |
-
*
|
180 |
-
*
|
181 |
-
* add_filter( 'action_scheduler_queue_runner_flush_cache', '__return_true' );
|
182 |
*/
|
183 |
protected function clear_caches() {
|
184 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
185 |
wp_cache_flush();
|
186 |
}
|
187 |
}
|
173 |
}
|
174 |
|
175 |
/**
|
176 |
+
* Flush the cache if possible (intended for use after a batch of actions has been processed).
|
177 |
*
|
178 |
+
* This is useful because running large batches can eat up memory and because invalid data can accrue in the
|
179 |
+
* runtime cache, which may lead to unexpected results.
|
|
|
|
|
180 |
*/
|
181 |
protected function clear_caches() {
|
182 |
+
/*
|
183 |
+
* Calling wp_cache_flush_runtime() lets us clear the runtime cache without invalidating the external object
|
184 |
+
* cache, so we will always prefer this when it is available (but it was only introduced in WordPress 6.0).
|
185 |
+
*/
|
186 |
+
if ( function_exists( 'wp_cache_flush_runtime' ) ) {
|
187 |
+
wp_cache_flush_runtime();
|
188 |
+
} elseif (
|
189 |
+
! wp_using_ext_object_cache()
|
190 |
+
/**
|
191 |
+
* When an external object cache is in use, and when wp_cache_flush_runtime() is not available, then
|
192 |
+
* normally the cache will not be flushed after processing a batch of actions (to avoid a performance
|
193 |
+
* penalty for other processes).
|
194 |
+
*
|
195 |
+
* This filter makes it possible to override this behavior and always flush the cache, even if an external
|
196 |
+
* object cache is in use.
|
197 |
+
*
|
198 |
+
* @since 1.0
|
199 |
+
*
|
200 |
+
* @param bool $flush_cache If the cache should be flushed.
|
201 |
+
*/
|
202 |
+
|| apply_filters( 'action_scheduler_queue_runner_flush_cache', false )
|
203 |
+
) {
|
204 |
wp_cache_flush();
|
205 |
}
|
206 |
}
|
vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_ListTable.php
CHANGED
@@ -683,7 +683,7 @@ abstract class ActionScheduler_Abstract_ListTable extends WP_List_Table {
|
|
683 |
}
|
684 |
|
685 |
if ( $status_name === $request_status || ( empty( $request_status ) && 'all' === $status_name ) ) {
|
686 |
-
$status_list_item = '<li class="%1$s"><
|
687 |
} else {
|
688 |
$status_list_item = '<li class="%1$s"><a href="%2$s">%3$s</a> (%4$d)</li>';
|
689 |
}
|
683 |
}
|
684 |
|
685 |
if ( $status_name === $request_status || ( empty( $request_status ) && 'all' === $status_name ) ) {
|
686 |
+
$status_list_item = '<li class="%1$s"><a href="%2$s" class="current">%3$s</a> (%4$d)</li>';
|
687 |
} else {
|
688 |
$status_list_item = '<li class="%1$s"><a href="%2$s">%3$s</a> (%4$d)</li>';
|
689 |
}
|
vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_QueueRunner.php
CHANGED
@@ -86,6 +86,19 @@ abstract class ActionScheduler_Abstract_QueueRunner extends ActionScheduler_Abst
|
|
86 |
* @param int $action_id
|
87 |
*/
|
88 |
protected function schedule_next_instance( ActionScheduler_Action $action, $action_id ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
try {
|
90 |
ActionScheduler::factory()->repeat( $action );
|
91 |
} catch ( Exception $e ) {
|
@@ -93,6 +106,51 @@ abstract class ActionScheduler_Abstract_QueueRunner extends ActionScheduler_Abst
|
|
93 |
}
|
94 |
}
|
95 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
/**
|
97 |
* Run the queue cleaner.
|
98 |
*
|
86 |
* @param int $action_id
|
87 |
*/
|
88 |
protected function schedule_next_instance( ActionScheduler_Action $action, $action_id ) {
|
89 |
+
// If a recurring action has been consistently failing, we may wish to stop rescheduling it.
|
90 |
+
if (
|
91 |
+
ActionScheduler_Store::STATUS_FAILED === $this->store->get_status( $action_id )
|
92 |
+
&& $this->recurring_action_is_consistently_failing( $action, $action_id )
|
93 |
+
) {
|
94 |
+
ActionScheduler_Logger::instance()->log(
|
95 |
+
$action_id,
|
96 |
+
__( 'This action appears to be consistently failing. A new instance will not be scheduled.', 'action-scheduler' )
|
97 |
+
);
|
98 |
+
|
99 |
+
return;
|
100 |
+
}
|
101 |
+
|
102 |
try {
|
103 |
ActionScheduler::factory()->repeat( $action );
|
104 |
} catch ( Exception $e ) {
|
106 |
}
|
107 |
}
|
108 |
|
109 |
+
/**
|
110 |
+
* Determine if the specified recurring action has been consistently failing.
|
111 |
+
*
|
112 |
+
* @param ActionScheduler_Action $action The recurring action to be rescheduled.
|
113 |
+
* @param int $action_id The ID of the recurring action.
|
114 |
+
*
|
115 |
+
* @return bool
|
116 |
+
*/
|
117 |
+
private function recurring_action_is_consistently_failing( ActionScheduler_Action $action, $action_id ) {
|
118 |
+
/**
|
119 |
+
* Controls the failure threshold for recurring actions.
|
120 |
+
*
|
121 |
+
* Before rescheduling a recurring action, we look at its status. If it failed, we then check if all of the most
|
122 |
+
* recent actions (upto the threshold set by this filter) sharing the same hook have also failed: if they have,
|
123 |
+
* that is considered consistent failure and a new instance of the action will not be scheduled.
|
124 |
+
*
|
125 |
+
* @param int $failure_threshold Number of actions of the same hook to examine for failure. Defaults to 5.
|
126 |
+
*/
|
127 |
+
$consistent_failure_threshold = (int) apply_filters( 'action_scheduler_recurring_action_failure_threshold', 5 );
|
128 |
+
|
129 |
+
// This query should find the earliest *failing* action (for the hook we are interested in) within our threshold.
|
130 |
+
$query_args = array(
|
131 |
+
'hook' => $action->get_hook(),
|
132 |
+
'status' => ActionScheduler_Store::STATUS_FAILED,
|
133 |
+
'date' => date_create( 'now', timezone_open( 'UTC' ) )->format( 'Y-m-d H:i:s' ),
|
134 |
+
'date_compare' => '<',
|
135 |
+
'per_page' => 1,
|
136 |
+
'offset' => $consistent_failure_threshold - 1
|
137 |
+
);
|
138 |
+
|
139 |
+
$first_failing_action_id = $this->store->query_actions( $query_args );
|
140 |
+
|
141 |
+
// If we didn't retrieve an action ID, then there haven't been enough failures for us to worry about.
|
142 |
+
if ( empty( $first_failing_action_id ) ) {
|
143 |
+
return false;
|
144 |
+
}
|
145 |
+
|
146 |
+
// Now let's fetch the first action (having the same hook) of *any status*ithin the same window.
|
147 |
+
unset( $query_args['status'] );
|
148 |
+
$first_action_id_with_the_same_hook = $this->store->query_actions( $query_args );
|
149 |
+
|
150 |
+
// If the IDs match, then actions for this hook must be consistently failing.
|
151 |
+
return $first_action_id_with_the_same_hook === $first_failing_action_id;
|
152 |
+
}
|
153 |
+
|
154 |
/**
|
155 |
* Run the queue cleaner.
|
156 |
*
|
vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Store.php
CHANGED
@@ -76,7 +76,7 @@ abstract class ActionScheduler_Store extends ActionScheduler_Store_Deprecated {
|
|
76 |
/**
|
77 |
* Query for action count or list of action IDs.
|
78 |
*
|
79 |
-
* @since
|
80 |
*
|
81 |
* @param array $query {
|
82 |
* Query filtering options.
|
@@ -104,7 +104,7 @@ abstract class ActionScheduler_Store extends ActionScheduler_Store_Deprecated {
|
|
104 |
/**
|
105 |
* Run query to get a single action ID.
|
106 |
*
|
107 |
-
* @since
|
108 |
*
|
109 |
* @see ActionScheduler_Store::query_actions for $query arg usage but 'per_page' and 'offset' can't be used.
|
110 |
*
|
@@ -131,6 +131,34 @@ abstract class ActionScheduler_Store extends ActionScheduler_Store_Deprecated {
|
|
131 |
*/
|
132 |
abstract public function action_counts();
|
133 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
134 |
/**
|
135 |
* @param string $action_id
|
136 |
*/
|
76 |
/**
|
77 |
* Query for action count or list of action IDs.
|
78 |
*
|
79 |
+
* @since 3.3.0 $query['status'] accepts array of statuses instead of a single status.
|
80 |
*
|
81 |
* @param array $query {
|
82 |
* Query filtering options.
|
104 |
/**
|
105 |
* Run query to get a single action ID.
|
106 |
*
|
107 |
+
* @since 3.3.0
|
108 |
*
|
109 |
* @see ActionScheduler_Store::query_actions for $query arg usage but 'per_page' and 'offset' can't be used.
|
110 |
*
|
131 |
*/
|
132 |
abstract public function action_counts();
|
133 |
|
134 |
+
/**
|
135 |
+
* Get additional action counts.
|
136 |
+
*
|
137 |
+
* - add past-due actions
|
138 |
+
*
|
139 |
+
* @return array
|
140 |
+
*/
|
141 |
+
public function extra_action_counts() {
|
142 |
+
$extra_actions = array();
|
143 |
+
|
144 |
+
$pastdue_action_counts = ( int ) $this->query_actions( array(
|
145 |
+
'status' => self::STATUS_PENDING,
|
146 |
+
'date' => as_get_datetime_object(),
|
147 |
+
), 'count' );
|
148 |
+
|
149 |
+
if ( $pastdue_action_counts ) {
|
150 |
+
$extra_actions['past-due'] = $pastdue_action_counts;
|
151 |
+
}
|
152 |
+
|
153 |
+
/**
|
154 |
+
* Allows 3rd party code to add extra action counts (used in filters in the list table).
|
155 |
+
*
|
156 |
+
* @since 3.5.0
|
157 |
+
* @param $extra_actions array Array with format action_count_identifier => action count.
|
158 |
+
*/
|
159 |
+
return apply_filters( 'action_scheduler_extra_action_counts', $extra_actions );
|
160 |
+
}
|
161 |
+
|
162 |
/**
|
163 |
* @param string $action_id
|
164 |
*/
|
vendor/woocommerce/action-scheduler/classes/actions/ActionScheduler_Action.php
CHANGED
@@ -18,8 +18,29 @@ class ActionScheduler_Action {
|
|
18 |
$this->set_group($group);
|
19 |
}
|
20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
public function execute() {
|
22 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
}
|
24 |
|
25 |
/**
|
18 |
$this->set_group($group);
|
19 |
}
|
20 |
|
21 |
+
/**
|
22 |
+
* Executes the action.
|
23 |
+
*
|
24 |
+
* If no callbacks are registered, an exception will be thrown and the action will not be
|
25 |
+
* fired. This is useful to help detect cases where the code responsible for setting up
|
26 |
+
* a scheduled action no longer exists.
|
27 |
+
*
|
28 |
+
* @throws Exception If no callbacks are registered for this action.
|
29 |
+
*/
|
30 |
public function execute() {
|
31 |
+
$hook = $this->get_hook();
|
32 |
+
|
33 |
+
if ( ! has_action( $hook ) ) {
|
34 |
+
throw new Exception(
|
35 |
+
sprintf(
|
36 |
+
/* translators: 1: action hook. */
|
37 |
+
__( 'Scheduled action for %1$s will not be executed as no callbacks are registered.', 'action-scheduler' ),
|
38 |
+
$hook
|
39 |
+
)
|
40 |
+
);
|
41 |
+
}
|
42 |
+
|
43 |
+
do_action_ref_array( $hook, array_values( $this->get_args() ) );
|
44 |
}
|
45 |
|
46 |
/**
|
vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_DBStore.php
CHANGED
@@ -36,22 +36,48 @@ class ActionScheduler_DBStore extends ActionScheduler_Store {
|
|
36 |
$table_maker->register_tables();
|
37 |
}
|
38 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
/**
|
40 |
* Save an action.
|
41 |
*
|
42 |
* @param ActionScheduler_Action $action Action object.
|
43 |
-
* @param DateTime $date Optional schedule date. Default null.
|
|
|
44 |
*
|
45 |
* @return int Action ID.
|
46 |
* @throws RuntimeException Throws exception when saving the action fails.
|
47 |
*/
|
48 |
-
|
49 |
-
|
50 |
|
|
|
51 |
$this->validate_action( $action );
|
52 |
|
53 |
-
/** @var \wpdb $wpdb */
|
54 |
-
global $wpdb;
|
55 |
$data = array(
|
56 |
'hook' => $action->get_hook(),
|
57 |
'status' => ( $action->is_finished() ? self::STATUS_COMPLETE : self::STATUS_PENDING ),
|
@@ -60,6 +86,7 @@ class ActionScheduler_DBStore extends ActionScheduler_Store {
|
|
60 |
'schedule' => serialize( $action->get_schedule() ), // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.serialize_serialize
|
61 |
'group_id' => $this->get_group_id( $action->get_group() ),
|
62 |
);
|
|
|
63 |
$args = wp_json_encode( $action->get_args() );
|
64 |
if ( strlen( $args ) <= static::$max_index_length ) {
|
65 |
$data['args'] = $args;
|
@@ -68,13 +95,18 @@ class ActionScheduler_DBStore extends ActionScheduler_Store {
|
|
68 |
$data['extended_args'] = $args;
|
69 |
}
|
70 |
|
71 |
-
$
|
72 |
-
|
|
|
|
|
73 |
$action_id = $wpdb->insert_id;
|
74 |
|
75 |
if ( is_wp_error( $action_id ) ) {
|
76 |
throw new \RuntimeException( $action_id->get_error_message() );
|
77 |
} elseif ( empty( $action_id ) ) {
|
|
|
|
|
|
|
78 |
throw new \RuntimeException( $wpdb->last_error ? $wpdb->last_error : __( 'Database error.', 'action-scheduler' ) );
|
79 |
}
|
80 |
|
@@ -87,6 +119,103 @@ class ActionScheduler_DBStore extends ActionScheduler_Store {
|
|
87 |
}
|
88 |
}
|
89 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
90 |
/**
|
91 |
* Generate a hash from json_encoded $args using MD5 as this isn't for security.
|
92 |
*
|
@@ -232,7 +361,7 @@ class ActionScheduler_DBStore extends ActionScheduler_Store {
|
|
232 |
/**
|
233 |
* Returns the SQL statement to query (or count) actions.
|
234 |
*
|
235 |
-
* @since
|
236 |
*
|
237 |
* @param array $query Filtering options.
|
238 |
* @param string $select_or_count Whether the SQL should select and return the IDs or just the row count.
|
@@ -384,7 +513,7 @@ class ActionScheduler_DBStore extends ActionScheduler_Store {
|
|
384 |
/**
|
385 |
* Query for action count or list of action IDs.
|
386 |
*
|
387 |
-
* @since
|
388 |
*
|
389 |
* @see ActionScheduler_Store::query_actions for $query arg usage.
|
390 |
*
|
@@ -670,7 +799,7 @@ class ActionScheduler_DBStore extends ActionScheduler_Store {
|
|
670 |
/**
|
671 |
* Sets the order-by clause used in the action claim query.
|
672 |
*
|
673 |
-
* @since
|
674 |
*
|
675 |
* @param string $order_by_sql
|
676 |
*/
|
36 |
$table_maker->register_tables();
|
37 |
}
|
38 |
|
39 |
+
/**
|
40 |
+
* Save an action, checks if this is a unique action before actually saving.
|
41 |
+
*
|
42 |
+
* @param ActionScheduler_Action $action Action object.
|
43 |
+
* @param \DateTime $scheduled_date Optional schedule date. Default null.
|
44 |
+
*
|
45 |
+
* @return int Action ID.
|
46 |
+
* @throws RuntimeException Throws exception when saving the action fails.
|
47 |
+
*/
|
48 |
+
public function save_unique_action( ActionScheduler_Action $action, \DateTime $scheduled_date = null ) {
|
49 |
+
return $this->save_action_to_db( $action, $scheduled_date, true );
|
50 |
+
}
|
51 |
+
|
52 |
+
/**
|
53 |
+
* Save an action. Can save duplicate action as well, prefer using `save_unique_action` instead.
|
54 |
+
*
|
55 |
+
* @param ActionScheduler_Action $action Action object.
|
56 |
+
* @param \DateTime $scheduled_date Optional schedule date. Default null.
|
57 |
+
*
|
58 |
+
* @return int Action ID.
|
59 |
+
* @throws RuntimeException Throws exception when saving the action fails.
|
60 |
+
*/
|
61 |
+
public function save_action( ActionScheduler_Action $action, \DateTime $scheduled_date = null ) {
|
62 |
+
return $this->save_action_to_db( $action, $scheduled_date, false );
|
63 |
+
}
|
64 |
+
|
65 |
/**
|
66 |
* Save an action.
|
67 |
*
|
68 |
* @param ActionScheduler_Action $action Action object.
|
69 |
+
* @param ?DateTime $date Optional schedule date. Default null.
|
70 |
+
* @param bool $unique Whether the action should be unique.
|
71 |
*
|
72 |
* @return int Action ID.
|
73 |
* @throws RuntimeException Throws exception when saving the action fails.
|
74 |
*/
|
75 |
+
private function save_action_to_db( ActionScheduler_Action $action, DateTime $date = null, $unique = false ) {
|
76 |
+
global $wpdb;
|
77 |
|
78 |
+
try {
|
79 |
$this->validate_action( $action );
|
80 |
|
|
|
|
|
81 |
$data = array(
|
82 |
'hook' => $action->get_hook(),
|
83 |
'status' => ( $action->is_finished() ? self::STATUS_COMPLETE : self::STATUS_PENDING ),
|
86 |
'schedule' => serialize( $action->get_schedule() ), // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.serialize_serialize
|
87 |
'group_id' => $this->get_group_id( $action->get_group() ),
|
88 |
);
|
89 |
+
|
90 |
$args = wp_json_encode( $action->get_args() );
|
91 |
if ( strlen( $args ) <= static::$max_index_length ) {
|
92 |
$data['args'] = $args;
|
95 |
$data['extended_args'] = $args;
|
96 |
}
|
97 |
|
98 |
+
$insert_sql = $this->build_insert_sql( $data, $unique );
|
99 |
+
|
100 |
+
// phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared -- $insert_sql should be already prepared.
|
101 |
+
$wpdb->query( $insert_sql );
|
102 |
$action_id = $wpdb->insert_id;
|
103 |
|
104 |
if ( is_wp_error( $action_id ) ) {
|
105 |
throw new \RuntimeException( $action_id->get_error_message() );
|
106 |
} elseif ( empty( $action_id ) ) {
|
107 |
+
if ( $unique ) {
|
108 |
+
return 0;
|
109 |
+
}
|
110 |
throw new \RuntimeException( $wpdb->last_error ? $wpdb->last_error : __( 'Database error.', 'action-scheduler' ) );
|
111 |
}
|
112 |
|
119 |
}
|
120 |
}
|
121 |
|
122 |
+
/**
|
123 |
+
* Helper function to build insert query.
|
124 |
+
*
|
125 |
+
* @param array $data Row data for action.
|
126 |
+
* @param bool $unique Whether the action should be unique.
|
127 |
+
*
|
128 |
+
* @return string Insert query.
|
129 |
+
*/
|
130 |
+
private function build_insert_sql( array $data, $unique ) {
|
131 |
+
global $wpdb;
|
132 |
+
$columns = array_keys( $data );
|
133 |
+
$values = array_values( $data );
|
134 |
+
$placeholders = array_map( array( $this, 'get_placeholder_for_column' ), $columns );
|
135 |
+
|
136 |
+
$table_name = ! empty( $wpdb->actionscheduler_actions ) ? $wpdb->actionscheduler_actions : $wpdb->prefix . 'actionscheduler_actions';
|
137 |
+
|
138 |
+
$column_sql = '`' . implode( '`, `', $columns ) . '`';
|
139 |
+
$placeholder_sql = implode( ', ', $placeholders );
|
140 |
+
$where_clause = $this->build_where_clause_for_insert( $data, $table_name, $unique );
|
141 |
+
// phpcs:disable WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- $column_sql and $where_clause are already prepared. $placeholder_sql is hardcoded.
|
142 |
+
$insert_query = $wpdb->prepare(
|
143 |
+
"
|
144 |
+
INSERT INTO $table_name ( $column_sql )
|
145 |
+
SELECT $placeholder_sql FROM DUAL
|
146 |
+
WHERE ( $where_clause ) IS NULL",
|
147 |
+
$values
|
148 |
+
);
|
149 |
+
// phpcs:enable
|
150 |
+
|
151 |
+
return $insert_query;
|
152 |
+
}
|
153 |
+
|
154 |
+
/**
|
155 |
+
* Helper method to build where clause for action insert statement.
|
156 |
+
*
|
157 |
+
* @param array $data Row data for action.
|
158 |
+
* @param string $table_name Action table name.
|
159 |
+
* @param bool $unique Where action should be unique.
|
160 |
+
*
|
161 |
+
* @return string Where clause to be used with insert.
|
162 |
+
*/
|
163 |
+
private function build_where_clause_for_insert( $data, $table_name, $unique ) {
|
164 |
+
global $wpdb;
|
165 |
+
|
166 |
+
if ( ! $unique ) {
|
167 |
+
return 'SELECT NULL FROM DUAL';
|
168 |
+
}
|
169 |
+
|
170 |
+
$pending_statuses = array(
|
171 |
+
ActionScheduler_Store::STATUS_PENDING,
|
172 |
+
ActionScheduler_Store::STATUS_RUNNING,
|
173 |
+
);
|
174 |
+
$pending_status_placeholders = implode( ', ', array_fill( 0, count( $pending_statuses ), '%s' ) );
|
175 |
+
// phpcs:disable WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- $pending_status_placeholders is hardcoded.
|
176 |
+
$where_clause = $wpdb->prepare(
|
177 |
+
"
|
178 |
+
SELECT action_id FROM $table_name
|
179 |
+
WHERE status IN ( $pending_status_placeholders )
|
180 |
+
AND hook = %s
|
181 |
+
AND `group_id` = %d
|
182 |
+
",
|
183 |
+
array_merge(
|
184 |
+
$pending_statuses,
|
185 |
+
array(
|
186 |
+
$data['hook'],
|
187 |
+
$data['group_id'],
|
188 |
+
)
|
189 |
+
)
|
190 |
+
);
|
191 |
+
// phpcs:enable
|
192 |
+
|
193 |
+
return "$where_clause" . ' LIMIT 1';
|
194 |
+
}
|
195 |
+
|
196 |
+
/**
|
197 |
+
* Helper method to get $wpdb->prepare placeholder for a given column name.
|
198 |
+
*
|
199 |
+
* @param string $column_name Name of column in actions table.
|
200 |
+
*
|
201 |
+
* @return string Placeholder to use for given column.
|
202 |
+
*/
|
203 |
+
private function get_placeholder_for_column( $column_name ) {
|
204 |
+
$string_columns = array(
|
205 |
+
'hook',
|
206 |
+
'status',
|
207 |
+
'scheduled_date_gmt',
|
208 |
+
'scheduled_date_local',
|
209 |
+
'args',
|
210 |
+
'schedule',
|
211 |
+
'last_attempt_gmt',
|
212 |
+
'last_attempt_local',
|
213 |
+
'extended_args',
|
214 |
+
);
|
215 |
+
|
216 |
+
return in_array( $column_name, $string_columns ) ? '%s' : '%d';
|
217 |
+
}
|
218 |
+
|
219 |
/**
|
220 |
* Generate a hash from json_encoded $args using MD5 as this isn't for security.
|
221 |
*
|
361 |
/**
|
362 |
* Returns the SQL statement to query (or count) actions.
|
363 |
*
|
364 |
+
* @since 3.3.0 $query['status'] accepts array of statuses instead of a single status.
|
365 |
*
|
366 |
* @param array $query Filtering options.
|
367 |
* @param string $select_or_count Whether the SQL should select and return the IDs or just the row count.
|
513 |
/**
|
514 |
* Query for action count or list of action IDs.
|
515 |
*
|
516 |
+
* @since 3.3.0 $query['status'] accepts array of statuses instead of a single status.
|
517 |
*
|
518 |
* @see ActionScheduler_Store::query_actions for $query arg usage.
|
519 |
*
|
799 |
/**
|
800 |
* Sets the order-by clause used in the action claim query.
|
801 |
*
|
802 |
+
* @since 3.4.0
|
803 |
*
|
804 |
* @param string $order_by_sql
|
805 |
*/
|
vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore.php
CHANGED
@@ -452,7 +452,7 @@ class ActionScheduler_wpPostStore extends ActionScheduler_Store {
|
|
452 |
/**
|
453 |
* Query for action count or list of action IDs.
|
454 |
*
|
455 |
-
* @since
|
456 |
*
|
457 |
* @see ActionScheduler_Store::query_actions for $query arg usage.
|
458 |
*
|
452 |
/**
|
453 |
* Query for action count or list of action IDs.
|
454 |
*
|
455 |
+
* @since 3.3.0 $query['status'] accepts array of statuses instead of a single status.
|
456 |
*
|
457 |
* @see ActionScheduler_Store::query_actions for $query arg usage.
|
458 |
*
|
vendor/woocommerce/action-scheduler/functions.php
CHANGED
@@ -1,7 +1,8 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
/**
|
4 |
* General API functions for scheduling actions
|
|
|
|
|
5 |
*/
|
6 |
|
7 |
/**
|
@@ -10,57 +11,61 @@
|
|
10 |
* @param string $hook The hook to trigger.
|
11 |
* @param array $args Arguments to pass when the hook triggers.
|
12 |
* @param string $group The group to assign this job to.
|
|
|
|
|
13 |
* @return int The action ID.
|
14 |
*/
|
15 |
-
function as_enqueue_async_action( $hook, $args = array(), $group = '' ) {
|
16 |
if ( ! ActionScheduler::is_initialized( __FUNCTION__ ) ) {
|
17 |
return 0;
|
18 |
}
|
19 |
-
return ActionScheduler::factory()->
|
20 |
}
|
21 |
|
22 |
/**
|
23 |
* Schedule an action to run one time
|
24 |
*
|
25 |
-
* @param int
|
26 |
* @param string $hook The hook to trigger.
|
27 |
-
* @param array
|
28 |
* @param string $group The group to assign this job to.
|
|
|
29 |
*
|
30 |
* @return int The action ID.
|
31 |
*/
|
32 |
-
function as_schedule_single_action( $timestamp, $hook, $args = array(), $group = '' ) {
|
33 |
if ( ! ActionScheduler::is_initialized( __FUNCTION__ ) ) {
|
34 |
return 0;
|
35 |
}
|
36 |
-
return ActionScheduler::factory()->
|
37 |
}
|
38 |
|
39 |
/**
|
40 |
* Schedule a recurring action
|
41 |
*
|
42 |
-
* @param int
|
43 |
-
* @param int
|
44 |
* @param string $hook The hook to trigger.
|
45 |
-
* @param array
|
46 |
* @param string $group The group to assign this job to.
|
|
|
47 |
*
|
48 |
* @return int The action ID.
|
49 |
*/
|
50 |
-
function as_schedule_recurring_action( $timestamp, $interval_in_seconds, $hook, $args = array(), $group = '' ) {
|
51 |
if ( ! ActionScheduler::is_initialized( __FUNCTION__ ) ) {
|
52 |
return 0;
|
53 |
}
|
54 |
-
return ActionScheduler::factory()->
|
55 |
}
|
56 |
|
57 |
/**
|
58 |
* Schedule an action that recurs on a cron-like schedule.
|
59 |
*
|
60 |
-
* @param int
|
61 |
-
*
|
62 |
-
*
|
63 |
-
* @param string $schedule A cron-link schedule string
|
64 |
* @see http://en.wikipedia.org/wiki/Cron
|
65 |
* * * * * * *
|
66 |
* ┬ ┬ ┬ ┬ ┬ ┬
|
@@ -72,16 +77,17 @@ function as_schedule_recurring_action( $timestamp, $interval_in_seconds, $hook,
|
|
72 |
* | +-------------------- hour (0 - 23)
|
73 |
* +------------------------- min (0 - 59)
|
74 |
* @param string $hook The hook to trigger.
|
75 |
-
* @param array
|
76 |
* @param string $group The group to assign this job to.
|
|
|
77 |
*
|
78 |
* @return int The action ID.
|
79 |
*/
|
80 |
-
function as_schedule_cron_action( $timestamp, $schedule, $hook, $args = array(), $group = '' ) {
|
81 |
if ( ! ActionScheduler::is_initialized( __FUNCTION__ ) ) {
|
82 |
return 0;
|
83 |
}
|
84 |
-
return ActionScheduler::factory()->
|
85 |
}
|
86 |
|
87 |
/**
|
@@ -95,7 +101,7 @@ function as_schedule_cron_action( $timestamp, $schedule, $hook, $args = array(),
|
|
95 |
* by this method also.
|
96 |
*
|
97 |
* @param string $hook The hook that the job will trigger.
|
98 |
-
* @param array
|
99 |
* @param string $group The group the job is assigned to.
|
100 |
*
|
101 |
* @return int|null The scheduled action ID if a scheduled action was found, or null if no matching action found.
|
@@ -141,7 +147,7 @@ function as_unschedule_action( $hook, $args = array(), $group = '' ) {
|
|
141 |
* Cancel all occurrences of a scheduled action.
|
142 |
*
|
143 |
* @param string $hook The hook that the job will trigger.
|
144 |
-
* @param array
|
145 |
* @param string $group The group the job is assigned to.
|
146 |
*/
|
147 |
function as_unschedule_all_actions( $hook, $args = array(), $group = '' ) {
|
@@ -172,9 +178,9 @@ function as_unschedule_all_actions( $hook, $args = array(), $group = '' ) {
|
|
172 |
* returned. Or there may be no async, in-progress or pending action for this hook, in which case,
|
173 |
* boolean false will be the return value.
|
174 |
*
|
175 |
-
* @param string $hook
|
176 |
-
* @param array
|
177 |
-
* @param string $group
|
178 |
*
|
179 |
* @return int|bool The timestamp for the next occurrence of a pending scheduled action, true for an async or in-progress action or false if there is no matching action.
|
180 |
*/
|
@@ -210,7 +216,7 @@ function as_next_scheduled_action( $hook, $args = null, $group = '' ) {
|
|
210 |
$scheduled_date = $action->get_schedule()->get_date();
|
211 |
if ( $scheduled_date ) {
|
212 |
return (int) $scheduled_date->format( 'U' );
|
213 |
-
} elseif ( null === $scheduled_date ) { // pending async action with NullSchedule
|
214 |
return true;
|
215 |
}
|
216 |
|
@@ -223,7 +229,7 @@ function as_next_scheduled_action( $hook, $args = null, $group = '' ) {
|
|
223 |
* It's recommended to use this function when you need to know whether a specific action is currently scheduled
|
224 |
* (pending or in-progress).
|
225 |
*
|
226 |
-
* @since
|
227 |
*
|
228 |
* @param string $hook The hook of the action.
|
229 |
* @param array $args Args that have been passed to the action. Null will matches any args.
|
@@ -237,10 +243,10 @@ function as_has_scheduled_action( $hook, $args = null, $group = '' ) {
|
|
237 |
}
|
238 |
|
239 |
$query_args = array(
|
240 |
-
'hook'
|
241 |
-
'status'
|
242 |
-
'group'
|
243 |
-
'orderby'
|
244 |
);
|
245 |
|
246 |
if ( null !== $args ) {
|
@@ -249,26 +255,26 @@ function as_has_scheduled_action( $hook, $args = null, $group = '' ) {
|
|
249 |
|
250 |
$action_id = ActionScheduler::store()->query_action( $query_args );
|
251 |
|
252 |
-
return
|
253 |
}
|
254 |
|
255 |
/**
|
256 |
* Find scheduled actions
|
257 |
*
|
258 |
-
* @param array
|
259 |
-
*
|
260 |
-
*
|
261 |
-
*
|
262 |
-
*
|
263 |
-
*
|
264 |
-
*
|
265 |
-
*
|
266 |
-
*
|
267 |
-
*
|
268 |
-
*
|
269 |
-
*
|
270 |
-
*
|
271 |
-
*
|
272 |
*
|
273 |
* @param string $return_format OBJECT, ARRAY_A, or ids.
|
274 |
*
|
@@ -279,25 +285,25 @@ function as_get_scheduled_actions( $args = array(), $return_format = OBJECT ) {
|
|
279 |
return array();
|
280 |
}
|
281 |
$store = ActionScheduler::store();
|
282 |
-
foreach ( array('date', 'modified') as $key ) {
|
283 |
-
if ( isset($args[$key]) ) {
|
284 |
-
$args[$key] = as_get_datetime_object($args[$key]);
|
285 |
}
|
286 |
}
|
287 |
$ids = $store->query_actions( $args );
|
288 |
|
289 |
-
if (
|
290 |
return $ids;
|
291 |
}
|
292 |
|
293 |
$actions = array();
|
294 |
foreach ( $ids as $action_id ) {
|
295 |
-
$actions[$action_id] = $store->fetch_action( $action_id );
|
296 |
}
|
297 |
|
298 |
-
if (
|
299 |
foreach ( $actions as $action_id => $action_object ) {
|
300 |
-
$actions[$action_id] = get_object_vars($action_object);
|
301 |
}
|
302 |
}
|
303 |
|
@@ -316,7 +322,7 @@ function as_get_scheduled_actions( $args = array(), $return_format = OBJECT ) {
|
|
316 |
* timezone when instantiating datetimes rather than leaving it up to
|
317 |
* the PHP default.
|
318 |
*
|
319 |
-
* @param mixed
|
320 |
* @param string $timezone A timezone identifier, like UTC or Europe/Lisbon. The list of valid identifiers is available http://php.net/manual/en/timezones.php.
|
321 |
*
|
322 |
* @return ActionScheduler_DateTime
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* General API functions for scheduling actions
|
4 |
+
*
|
5 |
+
* @package ActionScheduler.
|
6 |
*/
|
7 |
|
8 |
/**
|
11 |
* @param string $hook The hook to trigger.
|
12 |
* @param array $args Arguments to pass when the hook triggers.
|
13 |
* @param string $group The group to assign this job to.
|
14 |
+
* @param bool $unique Whether the action should be unique.
|
15 |
+
*
|
16 |
* @return int The action ID.
|
17 |
*/
|
18 |
+
function as_enqueue_async_action( $hook, $args = array(), $group = '', $unique = false ) {
|
19 |
if ( ! ActionScheduler::is_initialized( __FUNCTION__ ) ) {
|
20 |
return 0;
|
21 |
}
|
22 |
+
return ActionScheduler::factory()->async_unique( $hook, $args, $group, $unique );
|
23 |
}
|
24 |
|
25 |
/**
|
26 |
* Schedule an action to run one time
|
27 |
*
|
28 |
+
* @param int $timestamp When the job will run.
|
29 |
* @param string $hook The hook to trigger.
|
30 |
+
* @param array $args Arguments to pass when the hook triggers.
|
31 |
* @param string $group The group to assign this job to.
|
32 |
+
* @param bool $unique Whether the action should be unique.
|
33 |
*
|
34 |
* @return int The action ID.
|
35 |
*/
|
36 |
+
function as_schedule_single_action( $timestamp, $hook, $args = array(), $group = '', $unique = false ) {
|
37 |
if ( ! ActionScheduler::is_initialized( __FUNCTION__ ) ) {
|
38 |
return 0;
|
39 |
}
|
40 |
+
return ActionScheduler::factory()->single_unique( $hook, $args, $timestamp, $group, $unique );
|
41 |
}
|
42 |
|
43 |
/**
|
44 |
* Schedule a recurring action
|
45 |
*
|
46 |
+
* @param int $timestamp When the first instance of the job will run.
|
47 |
+
* @param int $interval_in_seconds How long to wait between runs.
|
48 |
* @param string $hook The hook to trigger.
|
49 |
+
* @param array $args Arguments to pass when the hook triggers.
|
50 |
* @param string $group The group to assign this job to.
|
51 |
+
* @param bool $unique Whether the action should be unique.
|
52 |
*
|
53 |
* @return int The action ID.
|
54 |
*/
|
55 |
+
function as_schedule_recurring_action( $timestamp, $interval_in_seconds, $hook, $args = array(), $group = '', $unique = false ) {
|
56 |
if ( ! ActionScheduler::is_initialized( __FUNCTION__ ) ) {
|
57 |
return 0;
|
58 |
}
|
59 |
+
return ActionScheduler::factory()->recurring_unique( $hook, $args, $timestamp, $interval_in_seconds, $group, $unique );
|
60 |
}
|
61 |
|
62 |
/**
|
63 |
* Schedule an action that recurs on a cron-like schedule.
|
64 |
*
|
65 |
+
* @param int $timestamp The first instance of the action will be scheduled
|
66 |
+
* to run at a time calculated after this timestamp matching the cron
|
67 |
+
* expression. This can be used to delay the first instance of the action.
|
68 |
+
* @param string $schedule A cron-link schedule string.
|
69 |
* @see http://en.wikipedia.org/wiki/Cron
|
70 |
* * * * * * *
|
71 |
* ┬ ┬ ┬ ┬ ┬ ┬
|
77 |
* | +-------------------- hour (0 - 23)
|
78 |
* +------------------------- min (0 - 59)
|
79 |
* @param string $hook The hook to trigger.
|
80 |
+
* @param array $args Arguments to pass when the hook triggers.
|
81 |
* @param string $group The group to assign this job to.
|
82 |
+
* @param bool $unique Whether the action should be unique.
|
83 |
*
|
84 |
* @return int The action ID.
|
85 |
*/
|
86 |
+
function as_schedule_cron_action( $timestamp, $schedule, $hook, $args = array(), $group = '', $unique = false ) {
|
87 |
if ( ! ActionScheduler::is_initialized( __FUNCTION__ ) ) {
|
88 |
return 0;
|
89 |
}
|
90 |
+
return ActionScheduler::factory()->cron_unique( $hook, $args, $timestamp, $schedule, $group, $unique );
|
91 |
}
|
92 |
|
93 |
/**
|
101 |
* by this method also.
|
102 |
*
|
103 |
* @param string $hook The hook that the job will trigger.
|
104 |
+
* @param array $args Args that would have been passed to the job.
|
105 |
* @param string $group The group the job is assigned to.
|
106 |
*
|
107 |
* @return int|null The scheduled action ID if a scheduled action was found, or null if no matching action found.
|
147 |
* Cancel all occurrences of a scheduled action.
|
148 |
*
|
149 |
* @param string $hook The hook that the job will trigger.
|
150 |
+
* @param array $args Args that would have been passed to the job.
|
151 |
* @param string $group The group the job is assigned to.
|
152 |
*/
|
153 |
function as_unschedule_all_actions( $hook, $args = array(), $group = '' ) {
|
178 |
* returned. Or there may be no async, in-progress or pending action for this hook, in which case,
|
179 |
* boolean false will be the return value.
|
180 |
*
|
181 |
+
* @param string $hook Name of the hook to search for.
|
182 |
+
* @param array $args Arguments of the action to be searched.
|
183 |
+
* @param string $group Group of the action to be searched.
|
184 |
*
|
185 |
* @return int|bool The timestamp for the next occurrence of a pending scheduled action, true for an async or in-progress action or false if there is no matching action.
|
186 |
*/
|
216 |
$scheduled_date = $action->get_schedule()->get_date();
|
217 |
if ( $scheduled_date ) {
|
218 |
return (int) $scheduled_date->format( 'U' );
|
219 |
+
} elseif ( null === $scheduled_date ) { // pending async action with NullSchedule.
|
220 |
return true;
|
221 |
}
|
222 |
|
229 |
* It's recommended to use this function when you need to know whether a specific action is currently scheduled
|
230 |
* (pending or in-progress).
|
231 |
*
|
232 |
+
* @since 3.3.0
|
233 |
*
|
234 |
* @param string $hook The hook of the action.
|
235 |
* @param array $args Args that have been passed to the action. Null will matches any args.
|
243 |
}
|
244 |
|
245 |
$query_args = array(
|
246 |
+
'hook' => $hook,
|
247 |
+
'status' => array( ActionScheduler_Store::STATUS_RUNNING, ActionScheduler_Store::STATUS_PENDING ),
|
248 |
+
'group' => $group,
|
249 |
+
'orderby' => 'none',
|
250 |
);
|
251 |
|
252 |
if ( null !== $args ) {
|
255 |
|
256 |
$action_id = ActionScheduler::store()->query_action( $query_args );
|
257 |
|
258 |
+
return null !== $action_id;
|
259 |
}
|
260 |
|
261 |
/**
|
262 |
* Find scheduled actions
|
263 |
*
|
264 |
+
* @param array $args Possible arguments, with their default values.
|
265 |
+
* 'hook' => '' - the name of the action that will be triggered.
|
266 |
+
* 'args' => NULL - the args array that will be passed with the action.
|
267 |
+
* 'date' => NULL - the scheduled date of the action. Expects a DateTime object, a unix timestamp, or a string that can parsed with strtotime(). Used in UTC timezone.
|
268 |
+
* 'date_compare' => '<=' - operator for testing "date". accepted values are '!=', '>', '>=', '<', '<=', '='.
|
269 |
+
* 'modified' => NULL - the date the action was last updated. Expects a DateTime object, a unix timestamp, or a string that can parsed with strtotime(). Used in UTC timezone.
|
270 |
+
* 'modified_compare' => '<=' - operator for testing "modified". accepted values are '!=', '>', '>=', '<', '<=', '='.
|
271 |
+
* 'group' => '' - the group the action belongs to.
|
272 |
+
* 'status' => '' - ActionScheduler_Store::STATUS_COMPLETE or ActionScheduler_Store::STATUS_PENDING.
|
273 |
+
* 'claimed' => NULL - TRUE to find claimed actions, FALSE to find unclaimed actions, a string to find a specific claim ID.
|
274 |
+
* 'per_page' => 5 - Number of results to return.
|
275 |
+
* 'offset' => 0.
|
276 |
+
* 'orderby' => 'date' - accepted values are 'hook', 'group', 'modified', 'date' or 'none'.
|
277 |
+
* 'order' => 'ASC'.
|
278 |
*
|
279 |
* @param string $return_format OBJECT, ARRAY_A, or ids.
|
280 |
*
|
285 |
return array();
|
286 |
}
|
287 |
$store = ActionScheduler::store();
|
288 |
+
foreach ( array( 'date', 'modified' ) as $key ) {
|
289 |
+
if ( isset( $args[ $key ] ) ) {
|
290 |
+
$args[ $key ] = as_get_datetime_object( $args[ $key ] );
|
291 |
}
|
292 |
}
|
293 |
$ids = $store->query_actions( $args );
|
294 |
|
295 |
+
if ( 'ids' === $return_format || 'int' === $return_format ) {
|
296 |
return $ids;
|
297 |
}
|
298 |
|
299 |
$actions = array();
|
300 |
foreach ( $ids as $action_id ) {
|
301 |
+
$actions[ $action_id ] = $store->fetch_action( $action_id );
|
302 |
}
|
303 |
|
304 |
+
if ( ARRAY_A == $return_format ) {
|
305 |
foreach ( $actions as $action_id => $action_object ) {
|
306 |
+
$actions[ $action_id ] = get_object_vars( $action_object );
|
307 |
}
|
308 |
}
|
309 |
|
322 |
* timezone when instantiating datetimes rather than leaving it up to
|
323 |
* the PHP default.
|
324 |
*
|
325 |
+
* @param mixed $date_string A date/time string. Valid formats are explained in http://php.net/manual/en/datetime.formats.php.
|
326 |
* @param string $timezone A timezone identifier, like UTC or Europe/Lisbon. The list of valid identifiers is available http://php.net/manual/en/timezones.php.
|
327 |
*
|
328 |
* @return ActionScheduler_DateTime
|
vendor/woocommerce/action-scheduler/readme.txt
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
Contributors: Automattic, wpmuguru, claudiosanches, peterfabian1000, vedjain, jamosova, obliviousharmony, konamiman, sadowski, royho, barryhughes-1
|
3 |
Tags: scheduler, cron
|
4 |
Requires at least: 5.2
|
5 |
-
Tested up to:
|
6 |
-
Stable tag: 3.
|
7 |
License: GPLv3
|
8 |
Requires PHP: 5.6
|
9 |
|
@@ -47,6 +47,14 @@ Collaboration is cool. We'd love to work with you to improve Action Scheduler. [
|
|
47 |
|
48 |
== Changelog ==
|
49 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
= 3.4.2 - 2022-06-08 =
|
51 |
* Fix - Change the include for better linting.
|
52 |
* Fix - update: Added Action scheduler completed action hook.
|
2 |
Contributors: Automattic, wpmuguru, claudiosanches, peterfabian1000, vedjain, jamosova, obliviousharmony, konamiman, sadowski, royho, barryhughes-1
|
3 |
Tags: scheduler, cron
|
4 |
Requires at least: 5.2
|
5 |
+
Tested up to: 6.0
|
6 |
+
Stable tag: 3.5.0
|
7 |
License: GPLv3
|
8 |
Requires PHP: 5.6
|
9 |
|
47 |
|
48 |
== Changelog ==
|
49 |
|
50 |
+
= 3.5.0 - 2022-08-25 =
|
51 |
+
* Add - The active view link within the "Tools > Scheduled Actions" screen is now clickable.
|
52 |
+
* Add - A warning when there are past-due actions.
|
53 |
+
* Enhancement - Added the ability to schedule unique actions via an atomic operation.
|
54 |
+
* Enhancement - Improvements to cache invalidation when processing batches (when running on WordPress 6.0+).
|
55 |
+
* Enhancement - If a recurring action is found to be consistently failing, it will stop being rescheduled.
|
56 |
+
* Enhancement - Adds a new "Past Due" view to the scheduled actions list table.
|
57 |
+
|
58 |
= 3.4.2 - 2022-06-08 =
|
59 |
* Fix - Change the include for better linting.
|
60 |
* Fix - update: Added Action scheduler completed action hook.
|