The Events Calendar - Version 4.9.3.1

Version Description

Download this release

Release Info

Developer ModernTribe
Plugin Icon The Events Calendar
Version 4.9.3.1
Comparing to
See all releases

Code changes from version 4.9.3 to 4.9.3.1

Files changed (58) hide show
  1. common/lang/tribe-common.pot +27 -27
  2. common/src/Tribe/Context.php +188 -53
  3. common/src/Tribe/Context/locations.php +25 -9
  4. common/src/Tribe/Main.php +2 -1
  5. common/src/Tribe/Repository.php +23 -1
  6. common/src/Tribe/Repository/Decorator.php +11 -2
  7. common/src/Tribe/Repository/Interface.php +13 -2
  8. common/src/Tribe/Rewrite.php +60 -21
  9. common/src/Tribe/Utils/Array.php +23 -0
  10. common/src/functions/url.php +182 -0
  11. common/src/resources/css/common.css +3 -5
  12. common/src/resources/css/common.min.css +1 -1
  13. common/src/resources/postcss/base/_buttons.pcss +1 -0
  14. common/src/resources/postcss/components/_image.pcss +0 -1
  15. common/src/resources/postcss/components/_navigation.pcss +2 -4
  16. common/tribe-autoload.php +1 -1
  17. common/vendor/autoload_52.php +1 -1
  18. common/vendor/composer/autoload_real_52.php +3 -3
  19. lang/the-events-calendar-de_DE.mo +0 -0
  20. readme.txt +6 -1
  21. src/Tribe/Main.php +1 -1
  22. src/Tribe/Rewrite.php +17 -16
  23. src/Tribe/Views/V2/Assets.php +1 -10
  24. src/Tribe/Views/V2/Hooks.php +7 -3
  25. src/Tribe/Views/V2/Service_Provider.php +0 -3
  26. src/Tribe/Views/V2/Theme_Compatibility.php +69 -44
  27. src/Tribe/Views/V2/month-view-demo-template-tags.php +0 -432
  28. src/admin-views/admin-update-message.php +11 -5
  29. src/admin-views/admin-welcome-message.php +5 -4
  30. src/resources/css/views/tribe-events-v2.css +23 -126
  31. src/resources/js/views/scripts.js +0 -93
  32. src/resources/postcss/base/_layouts.pcss +0 -1
  33. src/resources/postcss/components/_all.pcss +0 -3
  34. src/resources/postcss/components/_tooltip.pcss +0 -40
  35. src/resources/postcss/views/month/_calendar-event.pcss +10 -6
  36. src/resources/postcss/views/month/_day.pcss +1 -10
  37. src/resources/postcss/views/month/_multiday-event.pcss +4 -75
  38. src/resources/postcss/views/tribe-events-v2.pcss +10 -1
  39. src/views/v2/index.php +6 -7
  40. src/views/v2/month.php +2 -7
  41. src/views/v2/month/calendar-event.php +3 -3
  42. src/views/v2/month/calendar-event/date.php +6 -13
  43. src/views/v2/month/calendar-event/featured-image.php +1 -13
  44. src/views/v2/month/calendar-event/title.php +4 -7
  45. src/views/v2/month/calendar-event/tooltip.php +6 -12
  46. src/views/v2/month/calendar-event/tooltip/description.php +1 -1
  47. src/views/v2/month/calendar-event/tooltip/featured-image.php +1 -12
  48. src/views/v2/month/day-events-multiday.php +0 -39
  49. src/views/v2/month/day-events.php +0 -35
  50. src/views/v2/month/day.php +2 -8
  51. src/views/v2/month/event-multiday-spacer.php +0 -19
  52. src/views/v2/month/event-multiday.php +15 -45
  53. src/views/v2/month/{calendar-event/tooltip → tooltip}/cta.php +1 -1
  54. the-events-calendar.php +1 -1
  55. vendor/autoload.php +1 -1
  56. vendor/composer/autoload_classmap.php +1 -4
  57. vendor/composer/autoload_real.php +4 -4
  58. vendor/composer/autoload_static.php +5 -8
common/lang/tribe-common.pot CHANGED
@@ -2,13 +2,13 @@
2
  # This file is distributed under the same license as the Tribe Common package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Tribe Common 4.9.9\n"
6
  "Report-Msgid-Bugs-To: http://m.tri.be/191x\n"
7
- "POT-Creation-Date: 2019-05-15 19:53:58+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2019-05-15 19:53\n"
12
  "Last-Translator: \n"
13
  "Language-Team: \n"
14
 
@@ -1655,99 +1655,99 @@ msgstr ""
1655
  msgid "Full debug (all events)"
1656
  msgstr ""
1657
 
1658
- #: src/Tribe/Main.php:265
1659
  msgid ": activate to sort column ascending"
1660
  msgstr ""
1661
 
1662
- #: src/Tribe/Main.php:266
1663
  msgid ": activate to sort column descending"
1664
  msgstr ""
1665
 
1666
- #: src/Tribe/Main.php:268
1667
  msgid "Show _MENU_ entries"
1668
  msgstr ""
1669
 
1670
- #: src/Tribe/Main.php:269
1671
  msgid "No data available in table"
1672
  msgstr ""
1673
 
1674
- #: src/Tribe/Main.php:270
1675
  msgid "Showing _START_ to _END_ of _TOTAL_ entries"
1676
  msgstr ""
1677
 
1678
- #: src/Tribe/Main.php:271
1679
  msgid "Showing 0 to 0 of 0 entries"
1680
  msgstr ""
1681
 
1682
- #: src/Tribe/Main.php:272
1683
  msgid "(filtered from _MAX_ total entries)"
1684
  msgstr ""
1685
 
1686
- #: src/Tribe/Main.php:273
1687
  msgid "No matching records found"
1688
  msgstr ""
1689
 
1690
- #: src/Tribe/Main.php:274
1691
  msgid "Search:"
1692
  msgstr ""
1693
 
1694
- #: src/Tribe/Main.php:275
1695
  msgid "All items on this page were selected. "
1696
  msgstr ""
1697
 
1698
- #: src/Tribe/Main.php:276
1699
  msgid "Select all pages"
1700
  msgstr ""
1701
 
1702
- #: src/Tribe/Main.php:277
1703
  msgid "Clear Selection."
1704
  msgstr ""
1705
 
1706
- #: src/Tribe/Main.php:279
1707
  msgid "All"
1708
  msgstr ""
1709
 
1710
- #: src/Tribe/Main.php:280 src/Tribe/Main.php:297
1711
  msgid "Next"
1712
  msgstr ""
1713
 
1714
- #: src/Tribe/Main.php:281
1715
  msgid "Previous"
1716
  msgstr ""
1717
 
1718
- #: src/Tribe/Main.php:286
1719
  msgid ": Selected %d rows"
1720
  msgstr ""
1721
 
1722
- #: src/Tribe/Main.php:287
1723
  msgid ": Selected 1 row"
1724
  msgstr ""
1725
 
1726
- #: src/Tribe/Main.php:298
1727
  msgid "Prev"
1728
  msgstr ""
1729
 
1730
- #: src/Tribe/Main.php:299 src/Tribe/Main.php:301
1731
  msgid "Today"
1732
  msgstr ""
1733
 
1734
- #: src/Tribe/Main.php:300
1735
  msgid "Done"
1736
  msgstr ""
1737
 
1738
- #: src/Tribe/Main.php:302
1739
  msgid "Clear"
1740
  msgstr ""
1741
 
1742
- #: src/Tribe/Main.php:308 src/admin-views/tribe-options-help.php:50
1743
  msgid "Copy to clipboard"
1744
  msgstr ""
1745
 
1746
- #: src/Tribe/Main.php:309
1747
  msgid "System info copied"
1748
  msgstr ""
1749
 
1750
- #: src/Tribe/Main.php:310
1751
  msgid "Press \"Cmd + C\" to copy"
1752
  msgstr ""
1753
 
2
  # This file is distributed under the same license as the Tribe Common package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Tribe Common 4.9.10\n"
6
  "Report-Msgid-Bugs-To: http://m.tri.be/191x\n"
7
+ "POT-Creation-Date: 2019-06-05 16:13:28+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2019-06-05 16:13\n"
12
  "Last-Translator: \n"
13
  "Language-Team: \n"
14
 
1655
  msgid "Full debug (all events)"
1656
  msgstr ""
1657
 
1658
+ #: src/Tribe/Main.php:266
1659
  msgid ": activate to sort column ascending"
1660
  msgstr ""
1661
 
1662
+ #: src/Tribe/Main.php:267
1663
  msgid ": activate to sort column descending"
1664
  msgstr ""
1665
 
1666
+ #: src/Tribe/Main.php:269
1667
  msgid "Show _MENU_ entries"
1668
  msgstr ""
1669
 
1670
+ #: src/Tribe/Main.php:270
1671
  msgid "No data available in table"
1672
  msgstr ""
1673
 
1674
+ #: src/Tribe/Main.php:271
1675
  msgid "Showing _START_ to _END_ of _TOTAL_ entries"
1676
  msgstr ""
1677
 
1678
+ #: src/Tribe/Main.php:272
1679
  msgid "Showing 0 to 0 of 0 entries"
1680
  msgstr ""
1681
 
1682
+ #: src/Tribe/Main.php:273
1683
  msgid "(filtered from _MAX_ total entries)"
1684
  msgstr ""
1685
 
1686
+ #: src/Tribe/Main.php:274
1687
  msgid "No matching records found"
1688
  msgstr ""
1689
 
1690
+ #: src/Tribe/Main.php:275
1691
  msgid "Search:"
1692
  msgstr ""
1693
 
1694
+ #: src/Tribe/Main.php:276
1695
  msgid "All items on this page were selected. "
1696
  msgstr ""
1697
 
1698
+ #: src/Tribe/Main.php:277
1699
  msgid "Select all pages"
1700
  msgstr ""
1701
 
1702
+ #: src/Tribe/Main.php:278
1703
  msgid "Clear Selection."
1704
  msgstr ""
1705
 
1706
+ #: src/Tribe/Main.php:280
1707
  msgid "All"
1708
  msgstr ""
1709
 
1710
+ #: src/Tribe/Main.php:281 src/Tribe/Main.php:298
1711
  msgid "Next"
1712
  msgstr ""
1713
 
1714
+ #: src/Tribe/Main.php:282
1715
  msgid "Previous"
1716
  msgstr ""
1717
 
1718
+ #: src/Tribe/Main.php:287
1719
  msgid ": Selected %d rows"
1720
  msgstr ""
1721
 
1722
+ #: src/Tribe/Main.php:288
1723
  msgid ": Selected 1 row"
1724
  msgstr ""
1725
 
1726
+ #: src/Tribe/Main.php:299
1727
  msgid "Prev"
1728
  msgstr ""
1729
 
1730
+ #: src/Tribe/Main.php:300 src/Tribe/Main.php:302
1731
  msgid "Today"
1732
  msgstr ""
1733
 
1734
+ #: src/Tribe/Main.php:301
1735
  msgid "Done"
1736
  msgstr ""
1737
 
1738
+ #: src/Tribe/Main.php:303
1739
  msgid "Clear"
1740
  msgstr ""
1741
 
1742
+ #: src/Tribe/Main.php:309 src/admin-views/tribe-options-help.php:50
1743
  msgid "Copy to clipboard"
1744
  msgstr ""
1745
 
1746
+ #: src/Tribe/Main.php:310
1747
  msgid "System info copied"
1748
  msgstr ""
1749
 
1750
+ #: src/Tribe/Main.php:311
1751
  msgid "Press \"Cmd + C\" to copy"
1752
  msgstr ""
1753
 
common/src/Tribe/Context.php CHANGED
@@ -1,5 +1,7 @@
1
  <?php
2
 
 
 
3
  /**
4
  * Class Tribe__Context
5
  *
@@ -8,74 +10,163 @@
8
  */
9
  class Tribe__Context {
10
 
11
- const NOT_FOUND = '__not_found__';
 
 
 
 
 
12
 
13
- const REQUEST_VAR = 'request_var';
 
 
 
 
 
14
 
15
- const TRIBE_OPTION = 'tribe_option';
 
 
 
 
 
16
 
17
- const OPTION = 'option';
 
 
 
 
 
18
 
19
- const TRANSIENT = 'transient';
 
 
 
 
 
20
 
21
- const QUERY_VAR = 'query_var';
 
 
 
 
 
22
 
23
- const QUERY_PROP = 'query_prop';
 
 
 
 
 
24
 
25
- const CONSTANT = 'constant';
 
 
 
 
 
26
 
27
- const STATIC_PROP = 'static_prop';
 
 
 
 
 
28
 
29
- const PROP = 'prop';
 
 
 
 
 
30
 
31
- const STATIC_METHOD = 'static_method';
 
 
 
 
 
32
 
33
- const METHOD = 'method';
 
 
 
 
 
34
 
35
- const FUNC = 'func';
 
 
 
 
 
36
 
37
- const GLOBAL_VAR = 'global_var';
 
 
 
 
 
38
 
39
- const FILTER = 'filter';
 
 
 
 
 
40
 
41
- /*
42
- *
43
- * An array defining the properties the context will be able to read and (dangerously) write.
44
- *
45
- * This is the configuration that should be modified to add/remove/modify values and locations
46
- * provided by the global context.
47
- * Each entry has the shape [ <key> => [ 'read' => <read_locations>, 'write' => <write_locations> ] ].
48
- * The key is used to identify the property that will be accessible with the `get` and
49
- * 'dangerously_set_global_context' method, e.g. `$context->get( 'event_display', 'list' );`.
50
- * The locations is a list of locations the context will search, top to bottom, left to right, to find a value that's
51
- * not empty or the default one, here's a list of supported lookup locations:
52
- *
53
- * request_var - look into $_GET, $_POST, $_PUT, $_DELETE, $_REQUEST.
54
- * query_var - get the value from the main WP_Query object query vars.
55
- * query_prop - get the value from a property of the main WP_Query object.
56
- * tribe_option - get the value from a Tribe option.
57
- * option - get the value from a database option.
58
- * transient - get the value from a transient.
59
- * constant - get the value from a constant, can also be a class constant with <class>::<const>.
60
- * global_var - get the value from a global variable
61
- * static_prop - get the value from a class static property, format: `array( $class, $prop )`.
62
- * prop - get the value from a tribe() container binding, format `array( $binding, $prop )`.
63
- * static_method - get the value from a class static method.
64
- * method - get the value calling a method on a tribe() container binding.
65
- * func - get the value from a function or a closure.
66
- * filter - get the value by applying a filter.
67
- *
68
- * For each location additional arguments can be specified:
69
- * orm_arg - if `false` then the location will never produce an ORM argument, if provided the ORM arg produced bye the
70
- * location will have this name.
71
- * orm_transform - if provided the value of the location will be obtained by passing it as an argument to a callable.
72
- *
73
- * As the Context locations increase in number it would be impractical to define them inline here.
74
- * The locations will be loaded by the `Tribe__Context::populate_locations` method from the `Context/locations.php`
75
- * file.
76
- *
77
- * @var array
78
- */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
79
  protected static $locations = [];
80
 
81
  /**
@@ -1216,6 +1307,50 @@ class Tribe__Context {
1216
  return $default;
1217
  }
1218
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1219
  /**
1220
  * Maps an input array to the corresponding read locations.
1221
  *
1
  <?php
2
 
3
+ use Tribe__Utils__Array as Arr;
4
+
5
  /**
6
  * Class Tribe__Context
7
  *
10
  */
11
  class Tribe__Context {
12
 
13
+ /**
14
+ * The value that will be used to indicate no value was found in any location while trying to read it.
15
+ *
16
+ * @since TBD
17
+ */
18
+ const NOT_FOUND = '__not_found__';
19
 
20
+ /**
21
+ * The key to locate a context value as the value of a request variable.
22
+ *
23
+ * @since TBD
24
+ */
25
+ const REQUEST_VAR = 'request_var';
26
 
27
+ /**
28
+ * The key to locate a context value as the value of a Tribe option.
29
+ *
30
+ * @since TBD
31
+ */
32
+ const TRIBE_OPTION = 'tribe_option';
33
 
34
+ /**
35
+ * The key to locate a context value as the value of an option.
36
+ *
37
+ * @since TBD
38
+ */
39
+ const OPTION = 'option';
40
 
41
+ /**
42
+ * The key to locate a context value as the value of a transient.
43
+ *
44
+ * @since TBD
45
+ */
46
+ const TRANSIENT = 'transient';
47
 
48
+ /**
49
+ * The key to locate a context value as the value of the main query (global `$wp_query`) query var.
50
+ *
51
+ * @since TBD
52
+ */
53
+ const QUERY_VAR = 'query_var';
54
 
55
+ /**
56
+ * The key to locate a context value as the value of the main query (global `$wp_query`) property.
57
+ *
58
+ * @since TBD
59
+ */
60
+ const QUERY_PROP = 'query_prop';
61
 
62
+ /**
63
+ * The key to locate a context value as the value of a constant.
64
+ *
65
+ * @since TBD
66
+ */
67
+ const CONSTANT = 'constant';
68
 
69
+ /**
70
+ * The key to locate a context value as a static class property.
71
+ *
72
+ * @since TBD
73
+ */
74
+ const STATIC_PROP = 'static_prop';
75
 
76
+ /**
77
+ * The key to locate a context value as property of an object.
78
+ *
79
+ * @since TBD
80
+ */
81
+ const PROP = 'prop';
82
 
83
+ /**
84
+ * The key to locate a context value as result running a static class method.
85
+ *
86
+ * @since TBD
87
+ */
88
+ const STATIC_METHOD = 'static_method';
89
 
90
+ /**
91
+ * The key to locate a context value as result running a method on an object.
92
+ *
93
+ * @since TBD
94
+ */
95
+ const METHOD = 'method';
96
 
97
+ /**
98
+ * The key to locate a context value as result running a callback function (e.g. a callable, a closure).
99
+ *
100
+ * @since TBD
101
+ */
102
+ const FUNC = 'func';
103
 
104
+ /**
105
+ * The key to locate a context value as result of reading a global value.
106
+ *
107
+ * @since TBD
108
+ */
109
+ const GLOBAL_VAR = 'global_var';
110
 
111
+ /**
112
+ * The key to locate a context value as result of an `apply_filters` call.
113
+ *
114
+ * @since TBD
115
+ */
116
+ const FILTER = 'filter';
117
 
118
+ /**
119
+ * The key to locate a context value among the values parsed by `WP::parse_request`.
120
+ *
121
+ * @since TBD
122
+ */
123
+ const WP_PARSED = 'wp_parsed';
124
+
125
+ /**
126
+ * The key to locate a context value among the values in the query mached by `WP::parse_request`.
127
+ *
128
+ * @since TBD
129
+ */
130
+ const WP_MATCHED_QUERY = 'wp_matched_query';
131
+
132
+ /*
133
+ *
134
+ * An array defining the properties the context will be able to read and (dangerously) write.
135
+ *
136
+ * This is the configuration that should be modified to add/remove/modify values and locations
137
+ * provided by the global context.
138
+ * Each entry has the shape [ <key> => [ 'read' => <read_locations>, 'write' => <write_locations> ] ].
139
+ * The key is used to identify the property that will be accessible with the `get` and
140
+ * 'dangerously_set_global_context' method, e.g. `$context->get( 'event_display', 'list' );`.
141
+ * The locations is a list of locations the context will search, top to bottom, left to right, to find a value that's
142
+ * not empty or the default one, here's a list of supported lookup locations:
143
+ *
144
+ * request_var - look into $_GET, $_POST, $_PUT, $_DELETE, $_REQUEST.
145
+ * query_var - get the value from the main WP_Query object query vars.
146
+ * query_prop - get the value from a property of the main WP_Query object.
147
+ * tribe_option - get the value from a Tribe option.
148
+ * option - get the value from a database option.
149
+ * transient - get the value from a transient.
150
+ * constant - get the value from a constant, can also be a class constant with <class>::<const>.
151
+ * global_var - get the value from a global variable
152
+ * static_prop - get the value from a class static property, format: `array( $class, $prop )`.
153
+ * prop - get the value from a tribe() container binding, format `array( $binding, $prop )`.
154
+ * static_method - get the value from a class static method.
155
+ * method - get the value calling a method on a tribe() container binding.
156
+ * func - get the value from a function or a closure.
157
+ * filter - get the value by applying a filter.
158
+ *
159
+ * For each location additional arguments can be specified:
160
+ * orm_arg - if `false` then the location will never produce an ORM argument, if provided the ORM arg produced bye the
161
+ * location will have this name.
162
+ * orm_transform - if provided the value of the location will be obtained by passing it as an argument to a callable.
163
+ *
164
+ * As the Context locations increase in number it would be impractical to define them inline here.
165
+ * The locations will be loaded by the `Tribe__Context::populate_locations` method from the `Context/locations.php`
166
+ * file.
167
+ *
168
+ * @var array
169
+ */
170
  protected static $locations = [];
171
 
172
  /**
1307
  return $default;
1308
  }
1309
 
1310
+ /**
1311
+ * Reads (gets) the value reading it from a query var parsed from the global `$wp` object.
1312
+ *
1313
+ * @since 4.9.8
1314
+ *
1315
+ * @param array $vars The list of variables to read, in order.
1316
+ * @param mixed $default The default value to return if no variable was parsed.
1317
+ *
1318
+ * @return mixed The first valid value found or the default value.
1319
+ */
1320
+ public function wp_parsed( array $vars, $default ) {
1321
+ /** @var WP $wp */
1322
+ global $wp;
1323
+
1324
+ if ( ! $wp instanceof WP || empty($wp->query_vars) ) {
1325
+ return $default;
1326
+ }
1327
+
1328
+ return Arr::get_first_set( (array) $wp->query_vars, $vars, $default );
1329
+ }
1330
+
1331
+ /**
1332
+ * Reads (gets) the value reading it from a query var parsed from the query matched by the global `$wp` object.
1333
+ *
1334
+ * @since 4.9.8
1335
+ *
1336
+ * @param array $vars The list of variables to read, in order.
1337
+ * @param mixed $default The default value to return if no variable was parsed.
1338
+ *
1339
+ * @return mixed The first valid value found or the default value.
1340
+ */
1341
+ public function wp_matched_query( array $vars, $default ) {
1342
+ /** @var WP $wp */
1343
+ global $wp;
1344
+
1345
+ if ( ! $wp instanceof WP || empty( $wp->matched_query ) ) {
1346
+ return $default;
1347
+ }
1348
+
1349
+ parse_str( $wp->matched_query, $query_vars );
1350
+
1351
+ return Arr::get_first_set( (array) $query_vars, $vars, $default );
1352
+ }
1353
+
1354
  /**
1355
  * Maps an input array to the corresponding read locations.
1356
  *
common/src/Tribe/Context/locations.php CHANGED
@@ -23,22 +23,27 @@ return [
23
  ],
24
  'event_display' => [
25
  'read' => [
26
- Tribe__Context::REQUEST_VAR => 'tribe_event_display',
27
- Tribe__Context::QUERY_VAR => 'eventDisplay',
 
 
 
28
  ],
29
  'write' => [
30
- Tribe__Context::REQUEST_VAR => 'tribe_event_display',
31
  Tribe__Context::QUERY_VAR => 'eventDisplay',
32
  ],
33
  ],
34
  'view' => [
35
  'read' => [
36
- Tribe__Context::REQUEST_VAR => [ 'view', 'tribe_view', 'tribe_event_display' ],
37
- Tribe__Context::QUERY_VAR => [ 'tribe_view', 'eventDisplay' ],
38
- Tribe__Context::TRIBE_OPTION => 'viewOption',
 
 
39
  ],
40
  'write' => [
41
- Tribe__Context::REQUEST_VAR => [ 'view', 'tribe_view', 'tribe_event_display' ],
42
  Tribe__Context::QUERY_VAR => [ 'tribe_view', 'eventDisplay' ],
43
  ],
44
  ],
@@ -157,6 +162,17 @@ return [
157
  Tribe__Context::REQUEST_VAR => 'paged',
158
  Tribe__Context::QUERY_VAR => 'paged',
159
  ],
160
- ]
 
 
 
 
 
 
 
 
 
 
 
 
161
  ];
162
-
23
  ],
24
  'event_display' => [
25
  'read' => [
26
+ Tribe__Context::WP_MATCHED_QUERY => [ 'eventDisplay' ],
27
+ Tribe__Context::WP_PARSED => [ 'eventDisplay' ],
28
+ Tribe__Context::REQUEST_VAR => [ 'view', 'tribe_view', 'tribe_event_display', 'eventDisplay' ],
29
+ Tribe__Context::QUERY_VAR => 'eventDisplay',
30
+ Tribe__Context::TRIBE_OPTION => 'viewOption',
31
  ],
32
  'write' => [
33
+ Tribe__Context::REQUEST_VAR => [ 'view', 'tribe_view', 'tribe_event_display', 'eventDisplay' ],
34
  Tribe__Context::QUERY_VAR => 'eventDisplay',
35
  ],
36
  ],
37
  'view' => [
38
  'read' => [
39
+ Tribe__Context::WP_MATCHED_QUERY => [ 'eventDisplay' ],
40
+ Tribe__Context::WP_PARSED => [ 'eventDisplay' ],
41
+ Tribe__Context::REQUEST_VAR => [ 'view', 'tribe_view', 'tribe_event_display', 'eventDisplay' ],
42
+ Tribe__Context::QUERY_VAR => [ 'tribe_view', 'eventDisplay' ],
43
+ Tribe__Context::TRIBE_OPTION => 'viewOption',
44
  ],
45
  'write' => [
46
+ Tribe__Context::REQUEST_VAR => [ 'view', 'tribe_view', 'tribe_event_display', 'eventDisplay' ],
47
  Tribe__Context::QUERY_VAR => [ 'tribe_view', 'eventDisplay' ],
48
  ],
49
  ],
162
  Tribe__Context::REQUEST_VAR => 'paged',
163
  Tribe__Context::QUERY_VAR => 'paged',
164
  ],
165
+ ],
166
+ 'event_display_mode' => [
167
+ /**
168
+ * We use the `eventDisplay` query var with duplicity: when parsed from the path it represents the View, when
169
+ * appended as a query var it represents the "view mode". Here we invert the order to read the appended query
170
+ * var first and get, from its position, a clean variable we can consume in Views.
171
+ */
172
+ 'read' => [
173
+ Tribe__Context::REQUEST_VAR => [ 'view', 'tribe_view', 'tribe_event_display', 'eventDisplay' ],
174
+ Tribe__Context::WP_PARSED => [ 'eventDisplay' ],
175
+ Tribe__Context::QUERY_VAR => 'eventDisplay',
176
+ ],
177
+ ],
178
  ];
 
common/src/Tribe/Main.php CHANGED
@@ -17,7 +17,7 @@ class Tribe__Main {
17
  const OPTIONNAME = 'tribe_events_calendar_options';
18
  const OPTIONNAMENETWORK = 'tribe_events_calendar_network_options';
19
 
20
- const VERSION = '4.9.9';
21
 
22
  const FEED_URL = 'https://theeventscalendar.com/feed/';
23
 
@@ -162,6 +162,7 @@ class Tribe__Main {
162
  */
163
  public function init_libraries() {
164
  require_once $this->plugin_path . 'src/functions/utils.php';
 
165
  require_once $this->plugin_path . 'src/functions/query.php';
166
  require_once $this->plugin_path . 'src/functions/multibyte.php';
167
  require_once $this->plugin_path . 'src/functions/template-tags/general.php';
17
  const OPTIONNAME = 'tribe_events_calendar_options';
18
  const OPTIONNAMENETWORK = 'tribe_events_calendar_network_options';
19
 
20
+ const VERSION = '4.9.11';
21
 
22
  const FEED_URL = 'https://theeventscalendar.com/feed/';
23
 
162
  */
163
  public function init_libraries() {
164
  require_once $this->plugin_path . 'src/functions/utils.php';
165
+ require_once $this->plugin_path . 'src/functions/url.php';
166
  require_once $this->plugin_path . 'src/functions/query.php';
167
  require_once $this->plugin_path . 'src/functions/multibyte.php';
168
  require_once $this->plugin_path . 'src/functions/template-tags/general.php';
common/src/Tribe/Repository.php CHANGED
@@ -861,9 +861,22 @@ abstract class Tribe__Repository
861
  * @return WP_Post
862
  */
863
  protected function format_item( $id ) {
864
- return null === $this->formatter
865
  ? get_post( $id )
866
  : $this->formatter->format_item( $id );
 
 
 
 
 
 
 
 
 
 
 
 
 
867
  }
868
 
869
  /**
@@ -3511,6 +3524,15 @@ abstract class Tribe__Repository
3511
  return $this;
3512
  }
3513
 
 
 
 
 
 
 
 
 
 
3514
  /**
3515
  * Flush current filters and query information.
3516
  *
861
  * @return WP_Post
862
  */
863
  protected function format_item( $id ) {
864
+ $formatted = null === $this->formatter
865
  ? get_post( $id )
866
  : $this->formatter->format_item( $id );
867
+
868
+ /**
869
+ * Filters a single formatted result.
870
+ *
871
+ * @since TBD
872
+ *
873
+ * @param mixed|WP_Post $formatted The formatted post result, usually a post object.
874
+ * @param int $id The formatted post ID.
875
+ * @param Tribe__Repository__Interface $this The current repository object.
876
+ */
877
+ $formatted = apply_filters( "tribe_repository_{$this->filter_name}_format_item", $formatted, $id, $this );
878
+
879
+ return $formatted;
880
  }
881
 
882
  /**
3524
  return $this;
3525
  }
3526
 
3527
+ /**
3528
+ * {@inheritDoc}
3529
+ */
3530
+ public function set_found_rows( $found_rows ) {
3531
+ $this->skip_found_rows = ! $found_rows;
3532
+
3533
+ return $this;
3534
+ }
3535
+
3536
  /**
3537
  * Flush current filters and query information.
3538
  *
common/src/Tribe/Repository/Decorator.php CHANGED
@@ -657,14 +657,23 @@ abstract class Tribe__Repository__Decorator implements Tribe__Repository__Interf
657
  /**
658
  * {@inheritDoc}
659
  */
660
- public function next( ){
661
  return $this->decorated->next();
662
  }
663
 
664
  /**
665
  * {@inheritDoc}
666
  */
667
- public function prev( ){
668
  return $this->decorated->prev();
669
  }
 
 
 
 
 
 
 
 
 
670
  }
657
  /**
658
  * {@inheritDoc}
659
  */
660
+ public function next() {
661
  return $this->decorated->next();
662
  }
663
 
664
  /**
665
  * {@inheritDoc}
666
  */
667
+ public function prev() {
668
  return $this->decorated->prev();
669
  }
670
+
671
+ /**
672
+ * {@inheritDoc}
673
+ */
674
+ public function set_found_rows( $found_rows ) {
675
+ $this->decorated->set_found_rows( $found_rows );
676
+
677
+ return $this;
678
+ }
679
  }
common/src/Tribe/Repository/Interface.php CHANGED
@@ -291,7 +291,7 @@ interface Tribe__Repository__Interface
291
  *
292
  * @return \Tribe__Repository__Interface The repository instance that will yield the next page results.
293
  */
294
- public function next( );
295
 
296
  /**
297
  * Returns a cloned instance of the repository that will yield the previous page results.
@@ -304,5 +304,16 @@ interface Tribe__Repository__Interface
304
  *
305
  * @return \Tribe__Repository__Interface The repository instance that will yield the previous page results.
306
  */
307
- public function prev( );
 
 
 
 
 
 
 
 
 
 
 
308
  }
291
  *
292
  * @return \Tribe__Repository__Interface The repository instance that will yield the next page results.
293
  */
294
+ public function next();
295
 
296
  /**
297
  * Returns a cloned instance of the repository that will yield the previous page results.
304
  *
305
  * @return \Tribe__Repository__Interface The repository instance that will yield the previous page results.
306
  */
307
+ public function prev();
308
+
309
+ /**
310
+ * Sets the found rows calculation to be enabled for queries.
311
+ *
312
+ * @since 4.9.10
313
+ *
314
+ * @param bool $found_rows Whether found rows calculation should be enabled.
315
+ *
316
+ * @return \Tribe__Repository__Interface The repository instance, for chaining.
317
+ */
318
+ public function set_found_rows( $found_rows );
319
  }
common/src/Tribe/Rewrite.php CHANGED
@@ -48,7 +48,7 @@ class Tribe__Rewrite {
48
  */
49
  public $bases = array();
50
  /**
51
- * After creating the Hooks on WordPress we lock the usage of the function
52
  *
53
  * @var boolean
54
  */
@@ -57,6 +57,8 @@ class Tribe__Rewrite {
57
  /**
58
  * An array cache of resolved canonical URLs in the shape `[ <url> => <canonical_url> ]`.
59
  *
 
 
60
  * @var array
61
  */
62
  protected $canonical_url_cache = null;
@@ -64,10 +66,21 @@ class Tribe__Rewrite {
64
  /**
65
  * An array cache of parsed URLs in the shape `[ <url> => <parsed_vars> ]`.
66
  *
 
 
67
  * @var array
68
  */
69
  protected $parse_request_cache = null;
70
 
 
 
 
 
 
 
 
 
 
71
  /**
72
  * Static Singleton Factory Method
73
  *
@@ -76,7 +89,6 @@ class Tribe__Rewrite {
76
  public static function instance() {
77
  if ( ! static::$instance ) {
78
  static::$instance = new static;
79
- static::$instance->setup();
80
  }
81
 
82
  return static::$instance;
@@ -118,20 +130,6 @@ class Tribe__Rewrite {
118
  // Gets the rewrite bases and completes any other required setup work
119
  $this->setup( $wp_rewrite );
120
 
121
- /**
122
- * Use this to change the Tribe__Events__Rewrite instance before new rules
123
- * are committed.
124
- *
125
- * Should be used when you want to add more rewrite rules without having to
126
- * deal with the array merge, noting that rules for The Events Calendar are
127
- * themselves added via this hook (default priority).
128
- *
129
- * @var Tribe__Events__Rewrite $rewrite
130
- *
131
- * @deprecated 4.3 Use `tribe_pre_rewrite`
132
- */
133
- do_action( 'tribe_events_pre_rewrite', $this );
134
-
135
  /**
136
  * Use this to change the Tribe__Rewrite instance before new rules
137
  * are committed.
@@ -334,8 +332,7 @@ class Tribe__Rewrite {
334
  * @param string $url The URL to try and translate into its canonical form.
335
  * @param bool $force Whether to try and use the cache or force a new canonical URL conversion.
336
  *
337
- * @return string|void The canonical URL, or the input URL if it could not resolved to a canonical one.
338
- *
339
  */
340
  public function get_canonical_url( $url, $force = false ) {
341
  if ( get_class( $this ) === Tribe__Rewrite::class ) {
@@ -503,7 +500,8 @@ class Tribe__Rewrite {
503
  }
504
 
505
  if ( $canonical_url !== $resolved ) {
506
- $resolved = trailingslashit( $resolved );
 
507
  }
508
 
509
  if ( count( $unmatched_vars ) ) {
@@ -649,7 +647,9 @@ class Tribe__Rewrite {
649
  $slugs = explode( '|', $matches['slugs'] );
650
  // The localized version is the last.
651
  $localized_slug = end( $slugs );
652
- $dynamic_matchers["{$page_regex}/(\d+)"] = "{$localized_slug}/{$query_vars['paged']}";
 
 
653
  }
654
  }
655
 
@@ -702,7 +702,7 @@ class Tribe__Rewrite {
702
  *
703
  * @return array An array of query vars, as parsed from the input URL.
704
  */
705
- public function parse_request( string $url, array $extra_query_vars = [], $force = false ) {
706
  if ( null === $this->rewrite ) {
707
  // We re-do this check here as the object might have been initialized before the global rewrite was set.
708
  $this->setup();
@@ -913,4 +913,43 @@ class Tribe__Rewrite {
913
  public function __destruct() {
914
  $this->dump_cache();
915
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
916
  }
48
  */
49
  public $bases = array();
50
  /**
51
+ * After creating the Hooks on WordPress we lock the usage of the function.
52
  *
53
  * @var boolean
54
  */
57
  /**
58
  * An array cache of resolved canonical URLs in the shape `[ <url> => <canonical_url> ]`.
59
  *
60
+ * @since TBD
61
+ *
62
  * @var array
63
  */
64
  protected $canonical_url_cache = null;
66
  /**
67
  * An array cache of parsed URLs in the shape `[ <url> => <parsed_vars> ]`.
68
  *
69
+ * @since TBD
70
+ *
71
  * @var array
72
  */
73
  protected $parse_request_cache = null;
74
 
75
+ /**
76
+ * And array cache of cleaned URLs.
77
+ *
78
+ * @since TBD
79
+ *
80
+ * @var array
81
+ */
82
+ protected $clean_url_cache = null;
83
+
84
  /**
85
  * Static Singleton Factory Method
86
  *
89
  public static function instance() {
90
  if ( ! static::$instance ) {
91
  static::$instance = new static;
 
92
  }
93
 
94
  return static::$instance;
130
  // Gets the rewrite bases and completes any other required setup work
131
  $this->setup( $wp_rewrite );
132
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
133
  /**
134
  * Use this to change the Tribe__Rewrite instance before new rules
135
  * are committed.
332
  * @param string $url The URL to try and translate into its canonical form.
333
  * @param bool $force Whether to try and use the cache or force a new canonical URL conversion.
334
  *
335
+ * @return string The canonical URL, or the input URL if it could not be resolved to a canonical one.
 
336
  */
337
  public function get_canonical_url( $url, $force = false ) {
338
  if ( get_class( $this ) === Tribe__Rewrite::class ) {
500
  }
501
 
502
  if ( $canonical_url !== $resolved ) {
503
+ // Be sure to add a trailing slash to the URL; before `?` or `#`.
504
+ $resolved = preg_replace( '/(?<!\\/)(#|\\?)/u', '/$1', $resolved );
505
  }
506
 
507
  if ( count( $unmatched_vars ) ) {
647
  $slugs = explode( '|', $matches['slugs'] );
648
  // The localized version is the last.
649
  $localized_slug = end( $slugs );
650
+ // We use two different regular expressions to read pages, let's add both.
651
+ $dynamic_matchers["{$page_regex}/(\d+)"] = "{$localized_slug}/{$query_vars['paged']}";
652
+ $dynamic_matchers["{$page_regex}/([0-9]{1,})"] = "{$localized_slug}/{$query_vars['paged']}";
653
  }
654
  }
655
 
702
  *
703
  * @return array An array of query vars, as parsed from the input URL.
704
  */
705
+ public function parse_request( $url, array $extra_query_vars = [], $force = false ) {
706
  if ( null === $this->rewrite ) {
707
  // We re-do this check here as the object might have been initialized before the global rewrite was set.
708
  $this->setup();
913
  public function __destruct() {
914
  $this->dump_cache();
915
  }
916
+
917
+ /**
918
+ * Returns the "clean" version of a URL.
919
+ *
920
+ * The URL is first parsed then resolved to a canonical URL.
921
+ * As an example the URL `/events/list/?post_type=tribe_events` is "dirty" in that the `post_type` query variable
922
+ * is redundant. The clean version of the URL is `/events/list/`, where the query variable is removed.
923
+ *
924
+ * @since TBD
925
+ *
926
+ * @param string $url The URL to clean.
927
+ * @param bool $force Whether to try and use the cache or force a new URL cleaning run.
928
+ *
929
+ * @return string The cleaned URL, or the input URL if it could not be resolved to a clean one.
930
+ */
931
+ public function get_clean_url( $url, $force = false ) {
932
+ if ( ! $force ) {
933
+ $this->warmup_cache(
934
+ 'clean_url',
935
+ WEEK_IN_SECONDS,
936
+ Listener::TRIGGER_GENERATE_REWRITE_RULES
937
+ );
938
+ if ( isset( $this->clean_url_cache[ $url ] ) ) {
939
+ return $this->clean_url_cache[ $url ];
940
+ }
941
+ }
942
+
943
+ $parsed_vars = $this->parse_request( $url );
944
+
945
+ if ( empty( $parsed_vars ) ) {
946
+ return home_url();
947
+ }
948
+
949
+ $clean = $this->get_canonical_url( add_query_arg( $parsed_vars, home_url() ) );
950
+
951
+ $this->clean_url_cache[ $url ] = $clean;
952
+
953
+ return $clean;
954
+ }
955
  }
common/src/Tribe/Utils/Array.php CHANGED
@@ -417,4 +417,27 @@ class Tribe__Utils__Array {
417
 
418
  return ksort( $array );
419
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
420
  }
417
 
418
  return ksort( $array );
419
  }
420
+
421
+ /**
422
+ * Returns the value associated with the first index, among the indexes, that is set in the array..
423
+ *
424
+ * @since TBD
425
+ *
426
+ * @param array $array The array to search.
427
+ * @param array $indexes The indexes to search; in order the function will look from the first to the last.
428
+ * @param null $default The value that will be returned if the array does not have any of the indexes set.
429
+ *
430
+ * @return mixed|null The set value or the default value.
431
+ */
432
+ public static function get_first_set( array $array, array $indexes, $default = null ) {
433
+ foreach ( $indexes as $index ) {
434
+ if ( ! isset( $array[ $index ] ) ) {
435
+ continue;
436
+ }
437
+
438
+ return $array[ $index ];
439
+ }
440
+
441
+ return $default;
442
+ }
443
  }
common/src/functions/url.php ADDED
@@ -0,0 +1,182 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Functions, or polyfills, related to URL manipulation
4
+ *
5
+ * @since TBD
6
+ */
7
+
8
+ /**
9
+ * The code for the `tribe_build_url` function is from https://github.com/jakeasmith/http_build_url
10
+ *
11
+ * @see https://github.com/jakeasmith/http_build_url
12
+ *
13
+ * URL constants as defined in the PHP Manual under "Constants usable with
14
+ * http_build_url()".
15
+ *
16
+ * @see http://us2.php.net/manual/en/http.constants.php#http.constants.url
17
+ */
18
+ if ( ! defined( 'HTTP_URL_REPLACE' ) ) {
19
+ define( 'HTTP_URL_REPLACE', 1 );
20
+ }
21
+ if ( ! defined( 'HTTP_URL_JOIN_PATH' ) ) {
22
+ define( 'HTTP_URL_JOIN_PATH', 2 );
23
+ }
24
+ if ( ! defined( 'HTTP_URL_JOIN_QUERY' ) ) {
25
+ define( 'HTTP_URL_JOIN_QUERY', 4 );
26
+ }
27
+ if ( ! defined( 'HTTP_URL_STRIP_USER' ) ) {
28
+ define( 'HTTP_URL_STRIP_USER', 8 );
29
+ }
30
+ if ( ! defined( 'HTTP_URL_STRIP_PASS' ) ) {
31
+ define( 'HTTP_URL_STRIP_PASS', 16 );
32
+ }
33
+ if ( ! defined( 'HTTP_URL_STRIP_AUTH' ) ) {
34
+ define( 'HTTP_URL_STRIP_AUTH', 32 );
35
+ }
36
+ if ( ! defined( 'HTTP_URL_STRIP_PORT' ) ) {
37
+ define( 'HTTP_URL_STRIP_PORT', 64 );
38
+ }
39
+ if ( ! defined( 'HTTP_URL_STRIP_PATH' ) ) {
40
+ define( 'HTTP_URL_STRIP_PATH', 128 );
41
+ }
42
+ if ( ! defined( 'HTTP_URL_STRIP_QUERY' ) ) {
43
+ define( 'HTTP_URL_STRIP_QUERY', 256 );
44
+ }
45
+ if ( ! defined( 'HTTP_URL_STRIP_FRAGMENT' ) ) {
46
+ define( 'HTTP_URL_STRIP_FRAGMENT', 512 );
47
+ }
48
+ if ( ! defined( 'HTTP_URL_STRIP_ALL' ) ) {
49
+ define( 'HTTP_URL_STRIP_ALL', 1024 );
50
+ }
51
+
52
+ if ( ! function_exists( 'tribe_build_url' ) ) {
53
+ /**
54
+ * Build a URL.
55
+ *
56
+ * The parts of the second URL will be merged into the first according to
57
+ * the flags argument.
58
+ *
59
+ * @since TBD
60
+ *
61
+ * @param mixed $url (part(s) of) an URL in form of a string or associative array like parse_url() returns.
62
+ * @param mixed $parts Same as the first argument.
63
+ * @param int $flags A bitmask of binary ordered HTTP_URL constants; HTTP_URL_REPLACE is the default.
64
+ * @param array $new_url if set, it will be filled with the parts of the composed url like `parse_url()` would
65
+ * return.
66
+ *
67
+ * @return string The URL built from its parts.
68
+ */
69
+ function tribe_build_url( $url, $parts = [], $flags = HTTP_URL_REPLACE, &$new_url = [] ) {
70
+ is_array( $url ) || $url = parse_url( $url );
71
+ is_array( $parts ) || $parts = parse_url( $parts );
72
+
73
+ ( isset( $url['query'] ) && is_string( $url['query'] ) ) || $url['query'] = null;
74
+ ( isset( $parts['query'] ) && is_string( $parts['query'] ) ) || $parts['query'] = null;
75
+
76
+ $keys = [ 'user', 'pass', 'port', 'path', 'query', 'fragment' ];
77
+
78
+ // HTTP_URL_STRIP_ALL and HTTP_URL_STRIP_AUTH cover several other flags.
79
+ if ( $flags & HTTP_URL_STRIP_ALL ) {
80
+ $flags |= HTTP_URL_STRIP_USER | HTTP_URL_STRIP_PASS
81
+ | HTTP_URL_STRIP_PORT | HTTP_URL_STRIP_PATH
82
+ | HTTP_URL_STRIP_QUERY | HTTP_URL_STRIP_FRAGMENT;
83
+ } elseif ( $flags & HTTP_URL_STRIP_AUTH ) {
84
+ $flags |= HTTP_URL_STRIP_USER | HTTP_URL_STRIP_PASS;
85
+ }
86
+
87
+ // Schema and host are alwasy replaced
88
+ foreach ( [ 'scheme', 'host' ] as $part ) {
89
+ if ( isset( $parts[ $part ] ) ) {
90
+ $url[ $part ] = $parts[ $part ];
91
+ }
92
+ }
93
+
94
+ if ( $flags & HTTP_URL_REPLACE ) {
95
+ foreach ( $keys as $key ) {
96
+ if ( isset( $parts[ $key ] ) ) {
97
+ $url[ $key ] = $parts[ $key ];
98
+ }
99
+ }
100
+ } else {
101
+ if ( isset( $parts['path'] ) && ( $flags & HTTP_URL_JOIN_PATH ) ) {
102
+ if ( isset( $url['path'] ) && substr( $parts['path'], 0, 1 ) !== '/' ) {
103
+ // Workaround for trailing slashes
104
+ $url['path'] .= 'a';
105
+ $url['path'] = rtrim(
106
+ str_replace( basename( $url['path'] ), '', $url['path'] ),
107
+ '/'
108
+ ) . '/' . ltrim( $parts['path'], '/' );
109
+ } else {
110
+ $url['path'] = $parts['path'];
111
+ }
112
+ }
113
+
114
+ if ( isset( $parts['query'] ) && ( $flags & HTTP_URL_JOIN_QUERY ) ) {
115
+ if ( isset( $url['query'] ) ) {
116
+ parse_str( $url['query'], $url_query );
117
+ parse_str( $parts['query'], $parts_query );
118
+
119
+ $url['query'] = http_build_query(
120
+ array_replace_recursive(
121
+ $url_query,
122
+ $parts_query
123
+ )
124
+ );
125
+ } else {
126
+ $url['query'] = $parts['query'];
127
+ }
128
+ }
129
+ }
130
+
131
+ if ( isset( $url['path'] ) && $url['path'] !== '' && substr( $url['path'], 0, 1 ) !== '/' ) {
132
+ $url['path'] = '/' . $url['path'];
133
+ }
134
+
135
+ foreach ( $keys as $key ) {
136
+ $strip = 'HTTP_URL_STRIP_' . strtoupper( $key );
137
+ if ( $flags & constant( $strip ) ) {
138
+ unset( $url[ $key ] );
139
+ }
140
+ }
141
+
142
+ $parsed_string = '';
143
+
144
+ if ( ! empty( $url['scheme'] ) ) {
145
+ $parsed_string .= $url['scheme'] . '://';
146
+ }
147
+
148
+ if ( ! empty( $url['user'] ) ) {
149
+ $parsed_string .= $url['user'];
150
+
151
+ if ( isset( $url['pass'] ) ) {
152
+ $parsed_string .= ':' . $url['pass'];
153
+ }
154
+
155
+ $parsed_string .= '@';
156
+ }
157
+
158
+ if ( ! empty( $url['host'] ) ) {
159
+ $parsed_string .= $url['host'];
160
+ }
161
+
162
+ if ( ! empty( $url['port'] ) ) {
163
+ $parsed_string .= ':' . $url['port'];
164
+ }
165
+
166
+ if ( ! empty( $url['path'] ) ) {
167
+ $parsed_string .= $url['path'];
168
+ }
169
+
170
+ if ( ! empty( $url['query'] ) ) {
171
+ $parsed_string .= '?' . $url['query'];
172
+ }
173
+
174
+ if ( ! empty( $url['fragment'] ) ) {
175
+ $parsed_string .= '#' . $url['fragment'];
176
+ }
177
+
178
+ $new_url = $url;
179
+
180
+ return $parsed_string;
181
+ }
182
+ }
common/src/resources/css/common.css CHANGED
@@ -1564,6 +1564,7 @@ body#top .tribe-common .tribe-common-form-control-toggle__label {
1564
 
1565
  .tribe-common button {
1566
  background-color: #FFFFFF;
 
1567
  }
1568
 
1569
  /* -----------------------------------------------------------------------------
@@ -1946,7 +1947,6 @@ body#top .tribe-common .tribe-common-form-control-toggle__label {
1946
  right: 0;
1947
  top: 0;
1948
  width: 100%;
1949
- overflow: hidden;
1950
  }
1951
 
1952
  /**
@@ -1987,8 +1987,7 @@ body#top .tribe-common .tribe-common-form-control-toggle__label {
1987
 
1988
  }
1989
 
1990
- .tribe-common .tribe-common-c-nav__list-item {
1991
- }
1992
 
1993
  .tribe-common .tribe-common-c-nav__prev,
1994
  .tribe-common .tribe-common-c-nav__next {
@@ -2001,7 +2000,6 @@ body#top .tribe-common .tribe-common-form-control-toggle__label {
2001
  font-size: 12px;
2002
  line-height: 1.42;
2003
  font-weight: 700;
2004
-
2005
  }
2006
 
2007
  .tribe-common .tribe-common-c-nav__prev:hover, .tribe-common .tribe-common-c-nav__next:hover {
@@ -2009,6 +2007,7 @@ body#top .tribe-common .tribe-common-form-control-toggle__label {
2009
  }
2010
 
2011
  .tribe-common .tribe-common-c-nav__prev:disabled, .tribe-common .tribe-common-c-nav__next:disabled {
 
2012
  color: #D5D5D5;
2013
  }
2014
 
@@ -2256,7 +2255,6 @@ body#top .tribe-common .tribe-common-form-control-tabs__label {
2256
  .tribe-common .tribe-common-c-nav__prev,
2257
  .tribe-common .tribe-common-c-nav__next {
2258
  font-size: 14px
2259
-
2260
  }
2261
 
2262
  .tribe-common .tribe-common-c-search {
1564
 
1565
  .tribe-common button {
1566
  background-color: #FFFFFF;
1567
+ padding: 0;
1568
  }
1569
 
1570
  /* -----------------------------------------------------------------------------
1947
  right: 0;
1948
  top: 0;
1949
  width: 100%;
 
1950
  }
1951
 
1952
  /**
1987
 
1988
  }
1989
 
1990
+ /* .tribe-common-c-nav__list-item {} */
 
1991
 
1992
  .tribe-common .tribe-common-c-nav__prev,
1993
  .tribe-common .tribe-common-c-nav__next {
2000
  font-size: 12px;
2001
  line-height: 1.42;
2002
  font-weight: 700;
 
2003
  }
2004
 
2005
  .tribe-common .tribe-common-c-nav__prev:hover, .tribe-common .tribe-common-c-nav__next:hover {
2007
  }
2008
 
2009
  .tribe-common .tribe-common-c-nav__prev:disabled, .tribe-common .tribe-common-c-nav__next:disabled {
2010
+ background-color: transparent;
2011
  color: #D5D5D5;
2012
  }
2013
 
2255
  .tribe-common .tribe-common-c-nav__prev,
2256
  .tribe-common .tribe-common-c-nav__next {
2257
  font-size: 14px
 
2258
  }
2259
 
2260
  .tribe-common .tribe-common-c-search {
common/src/resources/css/common.min.css CHANGED
@@ -1 +1 @@
1
- .tribe-common figure{line-height:0}.tribe-common figcaption{line-height:normal}.tribe-common a{background-color:transparent;-webkit-text-decoration-skip:objects}.tribe-common abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.tribe-common code,.tribe-common kbd,.tribe-common pre,.tribe-common samp{font-family:monospace;font-size:1em}.tribe-common b,.tribe-common strong{font-weight:inherit;font-weight:bolder}.tribe-common dfn{font-style:italic}.tribe-common mark{background-color:#ff0;color:#000}.tribe-common small{font-size:80%}.tribe-common sub,.tribe-common sup{font-size:75%;line-height:0}.tribe-common hr{border:0;height:0}.tribe-common button,.tribe-common input[type=button],.tribe-common input[type=email],.tribe-common input[type=password],.tribe-common input[type=reset],.tribe-common input[type=search],.tribe-common input[type=submit],.tribe-common input[type=text],.tribe-common input[type=url],.tribe-common textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none}.tribe-common button,.tribe-common input,.tribe-common optgroup,.tribe-common select,.tribe-common textarea{color:inherit;font:inherit;line-height:normal;-webkit-font-smoothing:antialiased}.tribe-common button,.tribe-common input,.tribe-common select,.tribe-common textarea{outline:0;border-radius:0}.tribe-common select:-moz-focusring{color:transparent;text-shadow:0 0 0 #000}.tribe-common optgroup{font-weight:700}.tribe-common ol,.tribe-common ul{list-style:none}.tribe-common h1,.tribe-common h2,.tribe-common h3,.tribe-common h4,.tribe-common h5,.tribe-common h6,.tribe-common p{font-weight:400;text-rendering:optimizeLegibility}.tribe-common .tribe-common-form-control-checkbox__label,.tribe-common .tribe-common-form-control-radio__label{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;color:#727272;cursor:pointer;display:inline-block;margin-left:11px;vertical-align:middle}.tribe-common .tribe-common-form-control-checkbox__input,.tribe-common .tribe-common-form-control-radio__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border:1px solid #141827;cursor:pointer;display:inline-block;height:20px;margin:0;position:relative;vertical-align:middle;width:20px}.tribe-common .tribe-common-form-control-checkbox__input:active,.tribe-common .tribe-common-form-control-checkbox__input:focus,.tribe-common .tribe-common-form-control-checkbox__input:hover,.tribe-common .tribe-common-form-control-radio__input:active,.tribe-common .tribe-common-form-control-radio__input:focus,.tribe-common .tribe-common-form-control-radio__input:hover{border:1px solid #141827}.tribe-common .tribe-common-form-control-checkbox__input:checked,.tribe-common .tribe-common-form-control-radio__input:checked{background-color:#141827}.tribe-common .tribe-common-form-control-checkbox__input:checked:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='9' viewBox='0 0 12 9' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.6.1L3.9 6.8 1.4 4.3c-.1-.1-.3-.1-.4 0l-.8.8c-.1.1-.1.3 0 .4l3.4 3.4c.2.1.4.1.5 0l7.7-7.7c.1-.1.1-.3 0-.4L11 .1c-.1-.1-.3-.1-.4 0z' fill='%23FFF'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;content:"";display:block;height:9px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:12px}.tribe-common .tribe-common-form-control-radio__input{border-radius:50%}.tribe-common .tribe-common-form-control-radio__input:checked:before{background-color:#fff;border-radius:50%;content:"";display:block;height:8px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:8px}.tribe-common .tribe-common-form-control-checkbox-radio-group>*{margin-bottom:15px}.tribe-common .tribe-common-form-control-checkbox-radio-group>:last-child{margin-bottom:0}.tribe-common .tribe-common-form-control-input-group>*{margin-bottom:8px}.tribe-common .tribe-common-form-control-input-group>:last-child{margin-bottom:0}.tribe-common .tribe-common-form-control-select{position:relative}.tribe-common .tribe-common-form-control-select__button{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;font-weight:700;border:1px solid #d5d5d5;padding:12px 40px 12px 18px;position:relative;text-align:left;width:205px}.tribe-common .tribe-common-form-control-select__button:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='6' viewBox='0 0 12 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23727272' d='M6 6l6-6H0z'/%3E%3C/svg%3E");content:"";height:6px;position:absolute;right:16px;top:50%;transform:translateY(-50%);width:12px}.tribe-common .tribe-common-form-control-select__list{background-color:#fff;border:1px solid #d5d5d5;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);left:0;position:absolute;top:55px;width:205px}.tribe-common .tribe-common-form-control-select__list-item{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;color:#727272;cursor:pointer;padding:6px 18px;text-align:left}.tribe-common .tribe-common-form-control-select__list-item:first-child{padding-top:16px}.tribe-common .tribe-common-form-control-select__list-item:last-child{padding-bottom:16px}.tribe-common .tribe-common-form-control-select__list-item[aria-selected=true]{color:#141827;font-weight:700}.tribe-common .tribe-common-form-control-slider__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;cursor:pointer;display:inline-block;margin:0;padding:0;width:120px;vertical-align:middle}.tribe-common .tribe-common-form-control-slider__input::-webkit-slider-runnable-track{border:none;border-radius:5px;height:10px;margin:5px 0;padding:0;position:relative;transition:background-color .2s ease;background-color:#334aff}.tribe-common .tribe-common-form-control-slider__input::-moz-range-track{border:none;border-radius:5px;height:10px;margin:5px 0;padding:0;position:relative;transition:background-color .2s ease;background-color:#334aff}.tribe-common .tribe-common-form-control-slider__input::-ms-track{background-color:transparent;border-color:transparent;border-width:5px 0;color:transparent;height:10px}.tribe-common .tribe-common-form-control-slider__input::-ms-fill-lower,.tribe-common .tribe-common-form-control-slider__input::-ms-fill-upper{background-color:#334aff;border-radius:10px}.tribe-common .tribe-common-form-control-slider__input::-webkit-slider-thumb{background-color:#fff;border:1px solid #d5d5d5;border-radius:50%;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);height:20px;width:20px;margin-top:-5px;-webkit-appearance:none;appearance:none}.tribe-common .tribe-common-form-control-slider__input::-moz-range-thumb{background-color:#fff;border:1px solid #d5d5d5;border-radius:50%;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);height:20px;width:20px;margin-top:-5px}.tribe-common .tribe-common-form-control-slider__input::-ms-thumb{background-color:#fff;border:1px solid #d5d5d5;border-radius:50%;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);height:20px;width:20px;margin-top:-5px;box-shadow:none;margin-top:-1px}.tribe-common .tribe-common-form-control-slider__label{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;line-height:1.38;font-weight:400;color:#727272;cursor:pointer;display:inline-block;margin-left:11px;vertical-align:middle}.tribe-common .tribe-common-form-control-slider--vertical .tribe-common-form-control-slider__label{display:block;margin:0 0 6px}.tribe-common .tribe-common-form-control-tabs{position:relative}.tribe-common .tribe-common-form-control-tabs__button{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;font-weight:700;border:1px solid #d5d5d5;padding:12px 40px 12px 18px;position:relative;text-align:left;width:205px}.tribe-common .tribe-common-form-control-tabs__button:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='6' viewBox='0 0 12 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23727272' d='M6 6l6-6H0z'/%3E%3C/svg%3E");content:"";height:6px;position:absolute;right:16px;top:50%;transform:translateY(-50%);width:12px}.tribe-common .tribe-common-form-control-tabs__list{background-color:#fff;border:1px solid #d5d5d5;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);left:0;position:absolute;top:55px;width:205px}.tribe-common .tribe-common-form-control-tabs__list-item:first-child .tribe-common-form-control-tabs__label{padding-top:16px}.tribe-common .tribe-common-form-control-tabs__list-item:last-child .tribe-common-form-control-tabs__label{padding-bottom:16px}.tribe-common .tribe-common-form-control-tabs__input{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tribe-common .tribe-common-form-control-tabs__input:checked+.tribe-common-form-control-tabs__label{color:#141827;font-weight:700}.tribe-common .tribe-common-form-control-tabs__label{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;color:#727272;cursor:pointer;padding:6px 18px;text-align:left}body#top .tribe-common .tribe-common-form-control-tabs__list-item:first-child .tribe-common-form-control-tabs__label{padding-top:16px}body#top .tribe-common .tribe-common-form-control-tabs__list-item:last-child .tribe-common-form-control-tabs__label{padding-bottom:16px}body#top .tribe-common .tribe-common-form-control-tabs__input:checked+.tribe-common-form-control-tabs__label{color:#141827;font-weight:700}body#top .tribe-common .tribe-common-form-control-tabs__label{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400}.tribe-common .tribe-common-form-control-text__label{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tribe-common .tribe-common-form-control-text__input{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;font-weight:700;border:1px solid #d5d5d5;padding:12px 18px;width:100%}.tribe-common .tribe-common-form-control-text__input::-webkit-input-placeholder{color:#727272;font-weight:400}.tribe-common .tribe-common-form-control-text__input:-ms-input-placeholder,.tribe-common .tribe-common-form-control-text__input::-ms-input-placeholder{color:#727272;font-weight:400}.tribe-common .tribe-common-form-control-text__input::placeholder{color:#727272;font-weight:400}body#top .tribe-common .tribe-common-form-control-text__input{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;font-weight:700;border:1px solid #d5d5d5;padding:12px 18px;width:100%}body#top .tribe-common .tribe-common-form-control-text__input::-webkit-input-placeholder{color:#727272;font-weight:400}body#top .tribe-common .tribe-common-form-control-text__input:-ms-input-placeholder,body#top .tribe-common .tribe-common-form-control-text__input::-ms-input-placeholder{color:#727272;font-weight:400}body#top .tribe-common .tribe-common-form-control-text__input::placeholder{color:#727272;font-weight:400}.tribe-common .tribe-common-form-control-toggle__input{border:none;border-radius:5px;height:10px;margin:5px 0;padding:0;position:relative;transition:background-color .2s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#d5d5d5;cursor:pointer;display:inline-block;vertical-align:middle;width:40px}.tribe-common .tribe-common-form-control-toggle__input:after{background-color:#fff;border:1px solid #d5d5d5;border-radius:50%;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);height:20px;width:20px;content:"";left:0;position:absolute;top:-5px;transition:transform .2s ease}.tribe-common .tribe-common-form-control-toggle__input:checked{background-color:#334aff}.tribe-common .tribe-common-form-control-toggle__input:checked:after{transform:translateX(20px)}.tribe-common .tribe-common-form-control-toggle__label{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;line-height:1.38;font-weight:400;color:#727272;cursor:pointer;display:inline-block;margin-left:11px;vertical-align:middle}.tribe-common .tribe-common-form-control-toggle--vertical .tribe-common-form-control-toggle__label{display:block;margin:0 0 6px}body#top .tribe-common .tribe-common-form-control-toggle__input{display:inline-block}body#top .tribe-common .tribe-common-form-control-toggle__label{color:#727272;font-weight:400}.tribe-common .tribe-common-g-col{min-width:0;width:100%}.tribe-common .tribe-common-g-row{display:flex;flex-wrap:wrap}.tribe-common a{cursor:pointer}.tribe-common .tribe-common-anchor{border-bottom:2px solid transparent;transition:border-color .2s ease}.tribe-common .tribe-common-anchor:active,.tribe-common .tribe-common-anchor:focus,.tribe-common .tribe-common-anchor:hover{border-bottom:2px solid #141827}.tribe-common .tribe-common-anchor-alt{border-bottom:2px solid #334aff;transition:color .2s ease}.tribe-common .tribe-common-anchor-alt:active,.tribe-common .tribe-common-anchor-alt:focus,.tribe-common .tribe-common-anchor-alt:hover{border-bottom:2px solid #334aff;color:#334aff}.tribe-common .tribe-common-anchor-thin{border-bottom:1px solid transparent;transition:border-color .2s ease}.tribe-common .tribe-common-anchor-thin:active,.tribe-common .tribe-common-anchor-thin:focus,.tribe-common .tribe-common-anchor-thin:hover{border-bottom:1px solid #141827}.tribe-common .tribe-common-b1{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.62}.tribe-common .tribe-common-b1--bold{font-weight:700}.tribe-common .tribe-common-b2{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1.38}.tribe-common .tribe-common-b2--bold{font-weight:700}.tribe-common .tribe-common-b3{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:11px;font-weight:400;line-height:1.5}.tribe-common .tribe-common-b3--bold{font-weight:700}.tribe-common .tribe-common-cta{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;line-height:1.38;font-weight:400;font-weight:700;border-bottom:2px solid transparent;transition:border-color .2s ease}.tribe-common .tribe-common-cta:active,.tribe-common .tribe-common-cta:focus,.tribe-common .tribe-common-cta:hover{border-bottom:2px solid #141827}.tribe-common .tribe-common-cta--alt{border-bottom:2px solid #334aff;transition:color .2s ease}.tribe-common .tribe-common-cta--alt:active,.tribe-common .tribe-common-cta--alt:focus,.tribe-common .tribe-common-cta--alt:hover{border-bottom:2px solid #334aff;color:#334aff}.tribe-common .tribe-common-h1{font-size:28px}.tribe-common .tribe-common-h1,.tribe-common .tribe-common-h2{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;line-height:1.42}.tribe-common .tribe-common-h2{font-size:24px}.tribe-common .tribe-common-h3{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:22px;line-height:1.5}.tribe-common .tribe-common-h3--alt{font-weight:400}.tribe-common .tribe-common-h4{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:20px;line-height:1.42}.tribe-common .tribe-common-h4--alt{font-weight:400}.tribe-common .tribe-common-h5{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:18px;line-height:1.5}.tribe-common .tribe-common-h6{font-size:16px}.tribe-common .tribe-common-h6,.tribe-common .tribe-common-h7{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;line-height:1.62}.tribe-common .tribe-common-h7{font-size:14px}.tribe-common .tribe-common-h8{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:12px;line-height:1.38}.tribe-common button{background-color:#fff}.tribe-common .tribe-common-l-container{max-width:1260px;margin-left:auto;margin-right:auto;padding-left:19.5px;padding-right:19.5px;width:100%}.tribe-common .tribe-common-svgicon{background-size:contain;background-repeat:no-repeat}.tribe-common .tribe-common-svgicon--featured{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='20' viewBox='0 0 16 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23334AFF' d='M0 0h16v20l-7.902-5.122L0 20z'/%3E%3C/svg%3E");height:10px;width:8px}.tribe-common .tribe-common-svgicon--recurring{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.333 3.826c0 .065 0 .13-.02.174 0 .022-.02.065-.02.087a.9.9 0 0 1-.197.37L10.45 7.37a.797.797 0 0 1-.592.26.797.797 0 0 1-.593-.26c-.316-.348-.316-.935 0-1.305l1.225-1.348H6.3C3.753 4.717 1.66 7 1.66 9.827c0 1.369.474 2.651 1.363 3.608.316.348.316.935 0 1.304A.797.797 0 0 1 2.43 15a.797.797 0 0 1-.593-.26C.652 13.434 0 11.695 0 9.847c0-3.826 2.825-6.935 6.301-6.935h4.208L9.284 1.565c-.316-.348-.316-.935 0-1.304.316-.348.85-.348 1.185 0l2.647 2.913c.099.109.158.239.198.37 0 .021.02.065.02.086v.196zM20 10.152c0 3.826-2.825 6.935-6.301 6.935H9.49l1.225 1.348c.336.348.336.935 0 1.304a.797.797 0 0 1-.593.261.83.83 0 0 1-.592-.26l-2.627-2.936a.948.948 0 0 1-.198-.37c0-.021-.02-.064-.02-.086-.02-.065-.02-.109-.02-.174 0-.065 0-.13.02-.174 0-.022.02-.065.02-.087a.9.9 0 0 1 .198-.37L9.55 12.63c.316-.347.849-.347 1.185 0 .336.348.336.935 0 1.305L9.51 15.283h4.208c2.548 0 4.641-2.283 4.641-5.11 0-1.369-.474-2.651-1.362-3.608a.97.97 0 0 1 0-1.304c.316-.348.849-.348 1.185 0C19.348 6.543 20 8.283 20 10.152z' fill='%23334AFF'/%3E%3C/svg%3E");height:10px;width:10px}.tribe-common-a11y-hidden{display:none!important;visibility:hidden}.tribe-common-a11y-visual-hide,.tribe-common-a11y-visual-show{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tribe-common .tribe-common-c-btn-border{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;line-height:1.38;font-weight:400;border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto;border:1px solid #d5d5d5;transition:color .2s ease,border-color .2s ease;color:#727272;padding:6px 16px 7px}.tribe-common .tribe-common-c-btn-border:active{border-color:#141827}.tribe-common .tribe-common-c-btn-border:active,.tribe-common .tribe-common-c-btn-border:focus,.tribe-common .tribe-common-c-btn-border:hover{color:#141827}.tribe-common .tribe-common-c-btn-border:disabled{color:#d5d5d5}.tribe-common .tribe-common-c-btn-icon{border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto;background-color:transparent}.tribe-common .tribe-common-c-btn-icon:before{background-repeat:no-repeat;background-size:contain;content:"";display:block}.tribe-common .tribe-common-c-btn-icon--border{border:1px solid #d5d5d5;align-items:center;display:inline-flex;height:56px;justify-content:center;transition:none;width:56px}.tribe-common .tribe-common-c-btn-icon--border:active{border-color:#141827}.tribe-common .tribe-common-c-btn-icon--caret-left:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' viewBox='0 0 12 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23727272' d='M11.916 17.841L10 19.757l-9.9-9.9L10-.041l1.916 1.916-7.983 7.984z'/%3E%3C/svg%3E");height:20px;width:12px}.tribe-common .tribe-common-c-btn-icon--caret-left:active:before,.tribe-common .tribe-common-c-btn-icon--caret-left:focus:before,.tribe-common .tribe-common-c-btn-icon--caret-left:hover:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' viewBox='0 0 12 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23141827' d='M11.916 17.841L10 19.757l-9.9-9.9L10-.041l1.916 1.916-7.983 7.984z'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--caret-left:disabled:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' viewBox='0 0 12 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23D5D5D5' d='M11.916 17.841L10 19.757l-9.9-9.9L10-.041l1.916 1.916-7.983 7.984z'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--caret-right:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' viewBox='0 0 12 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23727272' d='M.084 2.159L2 .243l9.9 9.9L2 20.041.084 18.126l7.983-7.984z'/%3E%3C/svg%3E");height:20px;width:12px}.tribe-common .tribe-common-c-btn-icon--caret-right:active:before,.tribe-common .tribe-common-c-btn-icon--caret-right:focus:before,.tribe-common .tribe-common-c-btn-icon--caret-right:hover:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' viewBox='0 0 12 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23141827' d='M.084 2.159L2 .243l9.9 9.9L2 20.041.084 18.126l7.983-7.984z'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--caret-right:disabled:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' viewBox='0 0 12 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23D5D5D5' d='M.084 2.159L2 .243l9.9 9.9L2 20.041.084 18.126l7.983-7.984z'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--filters:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='20' viewBox='0 0 24 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 16.75l22 .232M0 9.75l22 .232M0 2.75l22 .232' stroke-width='1.5' stroke-linecap='square' fill='%23727272' stroke='%23727272'/%3E%3Cpath d='M6 6a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM6 20a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM16 13a3 3 0 1 0 0-6 3 3 0 0 0 0 6z' fill='%23727272' stroke='%23727272'/%3E%3C/svg%3E");height:20px;width:24px}.tribe-common .tribe-common-c-btn-icon--filters:active:before,.tribe-common .tribe-common-c-btn-icon--filters:focus:before,.tribe-common .tribe-common-c-btn-icon--filters:hover:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='20' viewBox='0 0 24 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 16.75l22 .232M0 9.75l22 .232M0 2.75l22 .232' stroke-width='1.5' stroke-linecap='square' fill='%23141827' stroke='%23141827'/%3E%3Cpath d='M6 6a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM6 20a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM16 13a3 3 0 1 0 0-6 3 3 0 0 0 0 6z' fill='%23141827' stroke='%23141827'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--filters:disabled:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='20' viewBox='0 0 24 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 16.75l22 .232M0 9.75l22 .232M0 2.75l22 .232' stroke-width='1.5' stroke-linecap='square' fill='%23D5D5D5' stroke='%23D5D5D5'/%3E%3Cpath d='M6 6a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM6 20a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM16 13a3 3 0 1 0 0-6 3 3 0 0 0 0 6z' fill='%23D5D5D5' stroke='%23D5D5D5'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--search:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 18.711l-6.044-6.044a7.782 7.782 0 0 0 1.688-4.845c0-2.089-.822-4.044-2.288-5.533C11.866.822 9.91 0 7.822 0S3.778.822 2.29 2.289A7.801 7.801 0 0 0 0 7.822c0 2.09.822 4.045 2.289 5.534a7.801 7.801 0 0 0 5.533 2.288c1.778 0 3.467-.6 4.845-1.688L18.71 20 20 18.711zM3.578 12.067c-2.334-2.334-2.334-6.156 0-8.49a5.968 5.968 0 0 1 4.244-1.755c1.6 0 3.111.622 4.245 1.756 2.333 2.333 2.333 6.155 0 8.489a5.968 5.968 0 0 1-4.245 1.755c-1.6 0-3.11-.622-4.244-1.755z' fill='%23727272'/%3E%3C/svg%3E");height:20px;width:20px}.tribe-common .tribe-common-c-btn-icon--search:active:before,.tribe-common .tribe-common-c-btn-icon--search:focus:before,.tribe-common .tribe-common-c-btn-icon--search:hover:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 18.711l-6.044-6.044a7.782 7.782 0 0 0 1.688-4.845c0-2.089-.822-4.044-2.288-5.533C11.866.822 9.91 0 7.822 0S3.778.822 2.29 2.289A7.801 7.801 0 0 0 0 7.822c0 2.09.822 4.045 2.289 5.534a7.801 7.801 0 0 0 5.533 2.288c1.778 0 3.467-.6 4.845-1.688L18.71 20 20 18.711zM3.578 12.067c-2.334-2.334-2.334-6.156 0-8.49a5.968 5.968 0 0 1 4.244-1.755c1.6 0 3.111.622 4.245 1.756 2.333 2.333 2.333 6.155 0 8.489a5.968 5.968 0 0 1-4.245 1.755c-1.6 0-3.11-.622-4.244-1.755z' fill='%23141827'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--search:disabled:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 18.711l-6.044-6.044a7.782 7.782 0 0 0 1.688-4.845c0-2.089-.822-4.044-2.288-5.533C11.866.822 9.91 0 7.822 0S3.778.822 2.29 2.289A7.801 7.801 0 0 0 0 7.822c0 2.09.822 4.045 2.289 5.534a7.801 7.801 0 0 0 5.533 2.288c1.778 0 3.467-.6 4.845-1.688L18.71 20 20 18.711zM3.578 12.067c-2.334-2.334-2.334-6.156 0-8.49a5.968 5.968 0 0 1 4.244-1.755c1.6 0 3.111.622 4.245 1.756 2.333 2.333 2.333 6.155 0 8.489a5.968 5.968 0 0 1-4.245 1.755c-1.6 0-3.11-.622-4.244-1.755z' fill='%23D5D5D5'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;font-weight:700;border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto;color:#fff;text-align:center;transition:background-color .2s ease;background-color:#334aff;padding:16px 22px 17px;width:100%}.tribe-common .tribe-common-c-btn:focus,.tribe-common .tribe-common-c-btn:hover{background-color:rgba(51,74,255,.8)}.tribe-common .tribe-common-c-btn:active{background-color:rgba(51,74,255,.9)}.tribe-common .tribe-common-c-btn:disabled{background-color:rgba(51,74,255,.07)}.tribe-common .tribe-common-c-btn:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='22' height='19' viewBox='0 0 22 19' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23FFF' d='M11.648 0L9.62 1.956l6.23 6.005H0v2.793h15.85L9.62 16.76l2.028 1.956 9.705-9.358z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;content:"";display:inline-block;height:10px;margin-left:8px;width:12px}.tribe-common .tribe-common-c-btn--secondary{padding:12px 19px 13px;width:auto}.tribe-common .tribe-common-c-btn--secondary:after{content:none}.tribe-common .tribe-common-c-image{display:block;height:auto;margin-left:auto;margin-right:auto;width:100%}.tribe-common .tribe-common-c-image--bg{position:relative}.tribe-common .tribe-common-c-image__bg{background:50% no-repeat;background-size:cover;bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;overflow:hidden}.tribe-common .tribe-common-c-nav{border-top:1px solid #d5d5d5;padding-top:24px}.tribe-common .tribe-common-c-nav__list{display:flex;list-style:none;width:100%;flex-wrap:wrap;justify-content:space-between}.tribe-common .tribe-common-c-nav__next,.tribe-common .tribe-common-c-nav__prev{display:flex;justify-content:center;flex-wrap:wrap;align-items:center;color:#727272;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;line-height:1.42;font-weight:700}.tribe-common .tribe-common-c-nav__next:hover,.tribe-common .tribe-common-c-nav__prev:hover{color:var(--color-navigation-hover)}.tribe-common .tribe-common-c-nav__next:disabled,.tribe-common .tribe-common-c-nav__prev:disabled{color:#d5d5d5}.tribe-common .tribe-common-c-nav__prev:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' viewBox='0 0 12 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23727272' d='M11.916 17.841L10 19.757l-9.9-9.9L10-.041l1.916 1.916-7.983 7.984z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;content:"";height:14px;margin-right:10px;width:12px}.tribe-common .tribe-common-c-nav__prev:active:before,.tribe-common .tribe-common-c-nav__prev:focus:before,.tribe-common .tribe-common-c-nav__prev:hover:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' viewBox='0 0 12 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23141827' d='M11.916 17.841L10 19.757l-9.9-9.9L10-.041l1.916 1.916-7.983 7.984z'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-nav__prev:disabled:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' viewBox='0 0 12 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23D5D5D5' d='M11.916 17.841L10 19.757l-9.9-9.9L10-.041l1.916 1.916-7.983 7.984z'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-nav__next:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' viewBox='0 0 12 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23727272' d='M.084 2.159L2 .243l9.9 9.9L2 20.041.084 18.126l7.983-7.984z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;content:"";height:14px;margin-left:10px;width:12px}.tribe-common .tribe-common-c-nav__next:active:after,.tribe-common .tribe-common-c-nav__next:focus:after,.tribe-common .tribe-common-c-nav__next:hover:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' viewBox='0 0 12 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23141827' d='M.084 2.159L2 .243l9.9 9.9L2 20.041.084 18.126l7.983-7.984z'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-nav__next:disabled:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' viewBox='0 0 12 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23D5D5D5' d='M.084 2.159L2 .243l9.9 9.9L2 20.041.084 18.126l7.983-7.984z'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-search__input-group>:first-child{flex:1 1 34.5%}.tribe-common .tribe-common-c-search__input-group>:nth-child(2){flex:1 1 37.5%}.tribe-common .tribe-common-c-search__input-group>:nth-child(3){flex:1 1 28%}.tribe-common .tribe-common-c-search__button{flex:none;margin-top:8px}@media (min-width:768px){.tribe-common .tribe-common-form-control-select__button{padding:16px 44px 16px 18px;width:220px}.tribe-common .tribe-common-form-control-select__button:after{right:18px}.tribe-common .tribe-common-form-control-select__list{width:220px}.tribe-common .tribe-common-form-control-tabs{display:flex}.tribe-common .tribe-common-form-control-tabs__button{display:none!important;visibility:hidden}.tribe-common .tribe-common-form-control-tabs__list{border:1px solid #d5d5d5;box-shadow:none;display:flex!important;flex:none;position:static;visibility:visible;width:auto;outline:none}.tribe-common .tribe-common-form-control-tabs__list-item:first-child .tribe-common-form-control-tabs__label{margin-top:-6px;padding-top:17px}.tribe-common .tribe-common-form-control-tabs__list-item:last-child .tribe-common-form-control-tabs__label{margin-bottom:-6px;padding-bottom:17px}.tribe-common .tribe-common-form-control-tabs__list-item{border-right:1px solid #d5d5d5;flex:none;margin:6px 0;width:88px}.tribe-common .tribe-common-form-control-tabs__list-item:last-child{border:none;width:87px}.tribe-common .tribe-common-form-control-tabs__label{margin:-6px 0;padding:17px 5px;text-align:center;display:block}body#top .tribe-common .tribe-common-form-control-tabs__list-item:first-child .tribe-common-form-control-tabs__label{margin-top:-6px;padding-top:17px}body#top .tribe-common .tribe-common-form-control-tabs__list-item:last-child .tribe-common-form-control-tabs__label{margin-bottom:-6px;padding-bottom:17px}body#top .tribe-common .tribe-common-form-control-tabs__label{margin:-6px 0;padding:17px 5px;text-align:center;display:block}.tribe-common .tribe-common-g-row--gutters{margin-left:-24px;margin-right:-24px}.tribe-common .tribe-common-g-row--gutters>.tribe-common-g-col{padding-left:24px;padding-right:24px}.tribe-common .tribe-common-b1{font-size:16px;line-height:1.62}.tribe-common .tribe-common-b2{font-size:14px;line-height:1.62}.tribe-common .tribe-common-b3{font-size:12px;line-height:1.38}.tribe-common .tribe-common-h1{font-size:42px;line-height:1.38}.tribe-common .tribe-common-h2{font-size:32px;line-height:1.38}.tribe-common .tribe-common-h3{font-size:28px;line-height:1.42}.tribe-common .tribe-common-h4{font-size:24px;line-height:1.42}.tribe-common .tribe-common-l-container{padding-left:42px;padding-right:42px}.tribe-common .tribe-common-c-btn{width:auto}.tribe-common .tribe-common-c-nav{padding-top:32px}.tribe-common .tribe-common-c-nav__next,.tribe-common .tribe-common-c-nav__prev{font-size:14px}.tribe-common .tribe-common-c-search{display:flex}.tribe-common .tribe-common-c-search__input-group{background-color:#fff;border:1px solid #d5d5d5;border-right:none;display:flex;flex:auto;max-width:645px;padding:8px 0}.tribe-common .tribe-common-c-search__input-group>*{margin-bottom:0}.tribe-common .tribe-common-c-search__input{border:none;border-right:1px solid #d5d5d5;height:auto;padding:7px 18px 8px}.tribe-common .tribe-common-c-search__button{margin-top:0}body#top .tribe-common .tribe-common-form-control-text-group{padding:8px 0}body#top .tribe-common .tribe-common-c-search__input{border:none;border-right:1px solid #d5d5d5;padding:7px 18px 8px}}
1
+ .tribe-common figure{line-height:0}.tribe-common figcaption{line-height:normal}.tribe-common a{background-color:transparent;-webkit-text-decoration-skip:objects}.tribe-common abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.tribe-common code,.tribe-common kbd,.tribe-common pre,.tribe-common samp{font-family:monospace;font-size:1em}.tribe-common b,.tribe-common strong{font-weight:inherit;font-weight:bolder}.tribe-common dfn{font-style:italic}.tribe-common mark{background-color:#ff0;color:#000}.tribe-common small{font-size:80%}.tribe-common sub,.tribe-common sup{font-size:75%;line-height:0}.tribe-common hr{border:0;height:0}.tribe-common button,.tribe-common input[type=button],.tribe-common input[type=email],.tribe-common input[type=password],.tribe-common input[type=reset],.tribe-common input[type=search],.tribe-common input[type=submit],.tribe-common input[type=text],.tribe-common input[type=url],.tribe-common textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none}.tribe-common button,.tribe-common input,.tribe-common optgroup,.tribe-common select,.tribe-common textarea{color:inherit;font:inherit;line-height:normal;-webkit-font-smoothing:antialiased}.tribe-common button,.tribe-common input,.tribe-common select,.tribe-common textarea{outline:0;border-radius:0}.tribe-common select:-moz-focusring{color:transparent;text-shadow:0 0 0 #000}.tribe-common optgroup{font-weight:700}.tribe-common ol,.tribe-common ul{list-style:none}.tribe-common h1,.tribe-common h2,.tribe-common h3,.tribe-common h4,.tribe-common h5,.tribe-common h6,.tribe-common p{font-weight:400;text-rendering:optimizeLegibility}.tribe-common .tribe-common-form-control-checkbox__label,.tribe-common .tribe-common-form-control-radio__label{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;color:#727272;cursor:pointer;display:inline-block;margin-left:11px;vertical-align:middle}.tribe-common .tribe-common-form-control-checkbox__input,.tribe-common .tribe-common-form-control-radio__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border:1px solid #141827;cursor:pointer;display:inline-block;height:20px;margin:0;position:relative;vertical-align:middle;width:20px}.tribe-common .tribe-common-form-control-checkbox__input:active,.tribe-common .tribe-common-form-control-checkbox__input:focus,.tribe-common .tribe-common-form-control-checkbox__input:hover,.tribe-common .tribe-common-form-control-radio__input:active,.tribe-common .tribe-common-form-control-radio__input:focus,.tribe-common .tribe-common-form-control-radio__input:hover{border:1px solid #141827}.tribe-common .tribe-common-form-control-checkbox__input:checked,.tribe-common .tribe-common-form-control-radio__input:checked{background-color:#141827}.tribe-common .tribe-common-form-control-checkbox__input:checked:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='9' viewBox='0 0 12 9' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.6.1L3.9 6.8 1.4 4.3c-.1-.1-.3-.1-.4 0l-.8.8c-.1.1-.1.3 0 .4l3.4 3.4c.2.1.4.1.5 0l7.7-7.7c.1-.1.1-.3 0-.4L11 .1c-.1-.1-.3-.1-.4 0z' fill='%23FFF'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;content:"";display:block;height:9px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:12px}.tribe-common .tribe-common-form-control-radio__input{border-radius:50%}.tribe-common .tribe-common-form-control-radio__input:checked:before{background-color:#fff;border-radius:50%;content:"";display:block;height:8px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:8px}.tribe-common .tribe-common-form-control-checkbox-radio-group>*{margin-bottom:15px}.tribe-common .tribe-common-form-control-checkbox-radio-group>:last-child{margin-bottom:0}.tribe-common .tribe-common-form-control-input-group>*{margin-bottom:8px}.tribe-common .tribe-common-form-control-input-group>:last-child{margin-bottom:0}.tribe-common .tribe-common-form-control-select{position:relative}.tribe-common .tribe-common-form-control-select__button{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;font-weight:700;border:1px solid #d5d5d5;padding:12px 40px 12px 18px;position:relative;text-align:left;width:205px}.tribe-common .tribe-common-form-control-select__button:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='6' viewBox='0 0 12 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23727272' d='M6 6l6-6H0z'/%3E%3C/svg%3E");content:"";height:6px;position:absolute;right:16px;top:50%;transform:translateY(-50%);width:12px}.tribe-common .tribe-common-form-control-select__list{background-color:#fff;border:1px solid #d5d5d5;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);left:0;position:absolute;top:55px;width:205px}.tribe-common .tribe-common-form-control-select__list-item{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;color:#727272;cursor:pointer;padding:6px 18px;text-align:left}.tribe-common .tribe-common-form-control-select__list-item:first-child{padding-top:16px}.tribe-common .tribe-common-form-control-select__list-item:last-child{padding-bottom:16px}.tribe-common .tribe-common-form-control-select__list-item[aria-selected=true]{color:#141827;font-weight:700}.tribe-common .tribe-common-form-control-slider__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;cursor:pointer;display:inline-block;margin:0;padding:0;width:120px;vertical-align:middle}.tribe-common .tribe-common-form-control-slider__input::-webkit-slider-runnable-track{border:none;border-radius:5px;height:10px;margin:5px 0;padding:0;position:relative;transition:background-color .2s ease;background-color:#334aff}.tribe-common .tribe-common-form-control-slider__input::-moz-range-track{border:none;border-radius:5px;height:10px;margin:5px 0;padding:0;position:relative;transition:background-color .2s ease;background-color:#334aff}.tribe-common .tribe-common-form-control-slider__input::-ms-track{background-color:transparent;border-color:transparent;border-width:5px 0;color:transparent;height:10px}.tribe-common .tribe-common-form-control-slider__input::-ms-fill-lower,.tribe-common .tribe-common-form-control-slider__input::-ms-fill-upper{background-color:#334aff;border-radius:10px}.tribe-common .tribe-common-form-control-slider__input::-webkit-slider-thumb{background-color:#fff;border:1px solid #d5d5d5;border-radius:50%;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);height:20px;width:20px;margin-top:-5px;-webkit-appearance:none;appearance:none}.tribe-common .tribe-common-form-control-slider__input::-moz-range-thumb{background-color:#fff;border:1px solid #d5d5d5;border-radius:50%;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);height:20px;width:20px;margin-top:-5px}.tribe-common .tribe-common-form-control-slider__input::-ms-thumb{background-color:#fff;border:1px solid #d5d5d5;border-radius:50%;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);height:20px;width:20px;margin-top:-5px;box-shadow:none;margin-top:-1px}.tribe-common .tribe-common-form-control-slider__label{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;line-height:1.38;font-weight:400;color:#727272;cursor:pointer;display:inline-block;margin-left:11px;vertical-align:middle}.tribe-common .tribe-common-form-control-slider--vertical .tribe-common-form-control-slider__label{display:block;margin:0 0 6px}.tribe-common .tribe-common-form-control-tabs{position:relative}.tribe-common .tribe-common-form-control-tabs__button{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;font-weight:700;border:1px solid #d5d5d5;padding:12px 40px 12px 18px;position:relative;text-align:left;width:205px}.tribe-common .tribe-common-form-control-tabs__button:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='6' viewBox='0 0 12 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23727272' d='M6 6l6-6H0z'/%3E%3C/svg%3E");content:"";height:6px;position:absolute;right:16px;top:50%;transform:translateY(-50%);width:12px}.tribe-common .tribe-common-form-control-tabs__list{background-color:#fff;border:1px solid #d5d5d5;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);left:0;position:absolute;top:55px;width:205px}.tribe-common .tribe-common-form-control-tabs__list-item:first-child .tribe-common-form-control-tabs__label{padding-top:16px}.tribe-common .tribe-common-form-control-tabs__list-item:last-child .tribe-common-form-control-tabs__label{padding-bottom:16px}.tribe-common .tribe-common-form-control-tabs__input{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tribe-common .tribe-common-form-control-tabs__input:checked+.tribe-common-form-control-tabs__label{color:#141827;font-weight:700}.tribe-common .tribe-common-form-control-tabs__label{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;color:#727272;cursor:pointer;padding:6px 18px;text-align:left}body#top .tribe-common .tribe-common-form-control-tabs__list-item:first-child .tribe-common-form-control-tabs__label{padding-top:16px}body#top .tribe-common .tribe-common-form-control-tabs__list-item:last-child .tribe-common-form-control-tabs__label{padding-bottom:16px}body#top .tribe-common .tribe-common-form-control-tabs__input:checked+.tribe-common-form-control-tabs__label{color:#141827;font-weight:700}body#top .tribe-common .tribe-common-form-control-tabs__label{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400}.tribe-common .tribe-common-form-control-text__label{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tribe-common .tribe-common-form-control-text__input{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;font-weight:700;border:1px solid #d5d5d5;padding:12px 18px;width:100%}.tribe-common .tribe-common-form-control-text__input::-webkit-input-placeholder{color:#727272;font-weight:400}.tribe-common .tribe-common-form-control-text__input:-ms-input-placeholder,.tribe-common .tribe-common-form-control-text__input::-ms-input-placeholder{color:#727272;font-weight:400}.tribe-common .tribe-common-form-control-text__input::placeholder{color:#727272;font-weight:400}body#top .tribe-common .tribe-common-form-control-text__input{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;font-weight:700;border:1px solid #d5d5d5;padding:12px 18px;width:100%}body#top .tribe-common .tribe-common-form-control-text__input::-webkit-input-placeholder{color:#727272;font-weight:400}body#top .tribe-common .tribe-common-form-control-text__input:-ms-input-placeholder,body#top .tribe-common .tribe-common-form-control-text__input::-ms-input-placeholder{color:#727272;font-weight:400}body#top .tribe-common .tribe-common-form-control-text__input::placeholder{color:#727272;font-weight:400}.tribe-common .tribe-common-form-control-toggle__input{border:none;border-radius:5px;height:10px;margin:5px 0;padding:0;position:relative;transition:background-color .2s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#d5d5d5;cursor:pointer;display:inline-block;vertical-align:middle;width:40px}.tribe-common .tribe-common-form-control-toggle__input:after{background-color:#fff;border:1px solid #d5d5d5;border-radius:50%;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);height:20px;width:20px;content:"";left:0;position:absolute;top:-5px;transition:transform .2s ease}.tribe-common .tribe-common-form-control-toggle__input:checked{background-color:#334aff}.tribe-common .tribe-common-form-control-toggle__input:checked:after{transform:translateX(20px)}.tribe-common .tribe-common-form-control-toggle__label{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;line-height:1.38;font-weight:400;color:#727272;cursor:pointer;display:inline-block;margin-left:11px;vertical-align:middle}.tribe-common .tribe-common-form-control-toggle--vertical .tribe-common-form-control-toggle__label{display:block;margin:0 0 6px}body#top .tribe-common .tribe-common-form-control-toggle__input{display:inline-block}body#top .tribe-common .tribe-common-form-control-toggle__label{color:#727272;font-weight:400}.tribe-common .tribe-common-g-col{min-width:0;width:100%}.tribe-common .tribe-common-g-row{display:flex;flex-wrap:wrap}.tribe-common a{cursor:pointer}.tribe-common .tribe-common-anchor{border-bottom:2px solid transparent;transition:border-color .2s ease}.tribe-common .tribe-common-anchor:active,.tribe-common .tribe-common-anchor:focus,.tribe-common .tribe-common-anchor:hover{border-bottom:2px solid #141827}.tribe-common .tribe-common-anchor-alt{border-bottom:2px solid #334aff;transition:color .2s ease}.tribe-common .tribe-common-anchor-alt:active,.tribe-common .tribe-common-anchor-alt:focus,.tribe-common .tribe-common-anchor-alt:hover{border-bottom:2px solid #334aff;color:#334aff}.tribe-common .tribe-common-anchor-thin{border-bottom:1px solid transparent;transition:border-color .2s ease}.tribe-common .tribe-common-anchor-thin:active,.tribe-common .tribe-common-anchor-thin:focus,.tribe-common .tribe-common-anchor-thin:hover{border-bottom:1px solid #141827}.tribe-common .tribe-common-b1{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.62}.tribe-common .tribe-common-b1--bold{font-weight:700}.tribe-common .tribe-common-b2{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1.38}.tribe-common .tribe-common-b2--bold{font-weight:700}.tribe-common .tribe-common-b3{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:11px;font-weight:400;line-height:1.5}.tribe-common .tribe-common-b3--bold{font-weight:700}.tribe-common .tribe-common-cta{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;line-height:1.38;font-weight:400;font-weight:700;border-bottom:2px solid transparent;transition:border-color .2s ease}.tribe-common .tribe-common-cta:active,.tribe-common .tribe-common-cta:focus,.tribe-common .tribe-common-cta:hover{border-bottom:2px solid #141827}.tribe-common .tribe-common-cta--alt{border-bottom:2px solid #334aff;transition:color .2s ease}.tribe-common .tribe-common-cta--alt:active,.tribe-common .tribe-common-cta--alt:focus,.tribe-common .tribe-common-cta--alt:hover{border-bottom:2px solid #334aff;color:#334aff}.tribe-common .tribe-common-h1{font-size:28px}.tribe-common .tribe-common-h1,.tribe-common .tribe-common-h2{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;line-height:1.42}.tribe-common .tribe-common-h2{font-size:24px}.tribe-common .tribe-common-h3{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:22px;line-height:1.5}.tribe-common .tribe-common-h3--alt{font-weight:400}.tribe-common .tribe-common-h4{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:20px;line-height:1.42}.tribe-common .tribe-common-h4--alt{font-weight:400}.tribe-common .tribe-common-h5{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:18px;line-height:1.5}.tribe-common .tribe-common-h6{font-size:16px}.tribe-common .tribe-common-h6,.tribe-common .tribe-common-h7{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;line-height:1.62}.tribe-common .tribe-common-h7{font-size:14px}.tribe-common .tribe-common-h8{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:12px;line-height:1.38}.tribe-common button{background-color:#fff;padding:0}.tribe-common .tribe-common-l-container{max-width:1260px;margin-left:auto;margin-right:auto;padding-left:19.5px;padding-right:19.5px;width:100%}.tribe-common .tribe-common-svgicon{background-size:contain;background-repeat:no-repeat}.tribe-common .tribe-common-svgicon--featured{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='20' viewBox='0 0 16 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23334AFF' d='M0 0h16v20l-7.902-5.122L0 20z'/%3E%3C/svg%3E");height:10px;width:8px}.tribe-common .tribe-common-svgicon--recurring{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.333 3.826c0 .065 0 .13-.02.174 0 .022-.02.065-.02.087a.9.9 0 0 1-.197.37L10.45 7.37a.797.797 0 0 1-.592.26.797.797 0 0 1-.593-.26c-.316-.348-.316-.935 0-1.305l1.225-1.348H6.3C3.753 4.717 1.66 7 1.66 9.827c0 1.369.474 2.651 1.363 3.608.316.348.316.935 0 1.304A.797.797 0 0 1 2.43 15a.797.797 0 0 1-.593-.26C.652 13.434 0 11.695 0 9.847c0-3.826 2.825-6.935 6.301-6.935h4.208L9.284 1.565c-.316-.348-.316-.935 0-1.304.316-.348.85-.348 1.185 0l2.647 2.913c.099.109.158.239.198.37 0 .021.02.065.02.086v.196zM20 10.152c0 3.826-2.825 6.935-6.301 6.935H9.49l1.225 1.348c.336.348.336.935 0 1.304a.797.797 0 0 1-.593.261.83.83 0 0 1-.592-.26l-2.627-2.936a.948.948 0 0 1-.198-.37c0-.021-.02-.064-.02-.086-.02-.065-.02-.109-.02-.174 0-.065 0-.13.02-.174 0-.022.02-.065.02-.087a.9.9 0 0 1 .198-.37L9.55 12.63c.316-.347.849-.347 1.185 0 .336.348.336.935 0 1.305L9.51 15.283h4.208c2.548 0 4.641-2.283 4.641-5.11 0-1.369-.474-2.651-1.362-3.608a.97.97 0 0 1 0-1.304c.316-.348.849-.348 1.185 0C19.348 6.543 20 8.283 20 10.152z' fill='%23334AFF'/%3E%3C/svg%3E");height:10px;width:10px}.tribe-common-a11y-hidden{display:none!important;visibility:hidden}.tribe-common-a11y-visual-hide,.tribe-common-a11y-visual-show{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tribe-common .tribe-common-c-btn-border{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;line-height:1.38;font-weight:400;border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto;border:1px solid #d5d5d5;transition:color .2s ease,border-color .2s ease;color:#727272;padding:6px 16px 7px}.tribe-common .tribe-common-c-btn-border:active{border-color:#141827}.tribe-common .tribe-common-c-btn-border:active,.tribe-common .tribe-common-c-btn-border:focus,.tribe-common .tribe-common-c-btn-border:hover{color:#141827}.tribe-common .tribe-common-c-btn-border:disabled{color:#d5d5d5}.tribe-common .tribe-common-c-btn-icon{border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto;background-color:transparent}.tribe-common .tribe-common-c-btn-icon:before{background-repeat:no-repeat;background-size:contain;content:"";display:block}.tribe-common .tribe-common-c-btn-icon--border{border:1px solid #d5d5d5;align-items:center;display:inline-flex;height:56px;justify-content:center;transition:none;width:56px}.tribe-common .tribe-common-c-btn-icon--border:active{border-color:#141827}.tribe-common .tribe-common-c-btn-icon--caret-left:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' viewBox='0 0 12 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23727272' d='M11.916 17.841L10 19.757l-9.9-9.9L10-.041l1.916 1.916-7.983 7.984z'/%3E%3C/svg%3E");height:20px;width:12px}.tribe-common .tribe-common-c-btn-icon--caret-left:active:before,.tribe-common .tribe-common-c-btn-icon--caret-left:focus:before,.tribe-common .tribe-common-c-btn-icon--caret-left:hover:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' viewBox='0 0 12 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23141827' d='M11.916 17.841L10 19.757l-9.9-9.9L10-.041l1.916 1.916-7.983 7.984z'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--caret-left:disabled:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' viewBox='0 0 12 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23D5D5D5' d='M11.916 17.841L10 19.757l-9.9-9.9L10-.041l1.916 1.916-7.983 7.984z'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--caret-right:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' viewBox='0 0 12 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23727272' d='M.084 2.159L2 .243l9.9 9.9L2 20.041.084 18.126l7.983-7.984z'/%3E%3C/svg%3E");height:20px;width:12px}.tribe-common .tribe-common-c-btn-icon--caret-right:active:before,.tribe-common .tribe-common-c-btn-icon--caret-right:focus:before,.tribe-common .tribe-common-c-btn-icon--caret-right:hover:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' viewBox='0 0 12 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23141827' d='M.084 2.159L2 .243l9.9 9.9L2 20.041.084 18.126l7.983-7.984z'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--caret-right:disabled:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' viewBox='0 0 12 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23D5D5D5' d='M.084 2.159L2 .243l9.9 9.9L2 20.041.084 18.126l7.983-7.984z'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--filters:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='20' viewBox='0 0 24 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 16.75l22 .232M0 9.75l22 .232M0 2.75l22 .232' stroke-width='1.5' stroke-linecap='square' fill='%23727272' stroke='%23727272'/%3E%3Cpath d='M6 6a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM6 20a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM16 13a3 3 0 1 0 0-6 3 3 0 0 0 0 6z' fill='%23727272' stroke='%23727272'/%3E%3C/svg%3E");height:20px;width:24px}.tribe-common .tribe-common-c-btn-icon--filters:active:before,.tribe-common .tribe-common-c-btn-icon--filters:focus:before,.tribe-common .tribe-common-c-btn-icon--filters:hover:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='20' viewBox='0 0 24 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 16.75l22 .232M0 9.75l22 .232M0 2.75l22 .232' stroke-width='1.5' stroke-linecap='square' fill='%23141827' stroke='%23141827'/%3E%3Cpath d='M6 6a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM6 20a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM16 13a3 3 0 1 0 0-6 3 3 0 0 0 0 6z' fill='%23141827' stroke='%23141827'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--filters:disabled:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='20' viewBox='0 0 24 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 16.75l22 .232M0 9.75l22 .232M0 2.75l22 .232' stroke-width='1.5' stroke-linecap='square' fill='%23D5D5D5' stroke='%23D5D5D5'/%3E%3Cpath d='M6 6a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM6 20a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM16 13a3 3 0 1 0 0-6 3 3 0 0 0 0 6z' fill='%23D5D5D5' stroke='%23D5D5D5'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--search:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 18.711l-6.044-6.044a7.782 7.782 0 0 0 1.688-4.845c0-2.089-.822-4.044-2.288-5.533C11.866.822 9.91 0 7.822 0S3.778.822 2.29 2.289A7.801 7.801 0 0 0 0 7.822c0 2.09.822 4.045 2.289 5.534a7.801 7.801 0 0 0 5.533 2.288c1.778 0 3.467-.6 4.845-1.688L18.71 20 20 18.711zM3.578 12.067c-2.334-2.334-2.334-6.156 0-8.49a5.968 5.968 0 0 1 4.244-1.755c1.6 0 3.111.622 4.245 1.756 2.333 2.333 2.333 6.155 0 8.489a5.968 5.968 0 0 1-4.245 1.755c-1.6 0-3.11-.622-4.244-1.755z' fill='%23727272'/%3E%3C/svg%3E");height:20px;width:20px}.tribe-common .tribe-common-c-btn-icon--search:active:before,.tribe-common .tribe-common-c-btn-icon--search:focus:before,.tribe-common .tribe-common-c-btn-icon--search:hover:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 18.711l-6.044-6.044a7.782 7.782 0 0 0 1.688-4.845c0-2.089-.822-4.044-2.288-5.533C11.866.822 9.91 0 7.822 0S3.778.822 2.29 2.289A7.801 7.801 0 0 0 0 7.822c0 2.09.822 4.045 2.289 5.534a7.801 7.801 0 0 0 5.533 2.288c1.778 0 3.467-.6 4.845-1.688L18.71 20 20 18.711zM3.578 12.067c-2.334-2.334-2.334-6.156 0-8.49a5.968 5.968 0 0 1 4.244-1.755c1.6 0 3.111.622 4.245 1.756 2.333 2.333 2.333 6.155 0 8.489a5.968 5.968 0 0 1-4.245 1.755c-1.6 0-3.11-.622-4.244-1.755z' fill='%23141827'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--search:disabled:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 18.711l-6.044-6.044a7.782 7.782 0 0 0 1.688-4.845c0-2.089-.822-4.044-2.288-5.533C11.866.822 9.91 0 7.822 0S3.778.822 2.29 2.289A7.801 7.801 0 0 0 0 7.822c0 2.09.822 4.045 2.289 5.534a7.801 7.801 0 0 0 5.533 2.288c1.778 0 3.467-.6 4.845-1.688L18.71 20 20 18.711zM3.578 12.067c-2.334-2.334-2.334-6.156 0-8.49a5.968 5.968 0 0 1 4.244-1.755c1.6 0 3.111.622 4.245 1.756 2.333 2.333 2.333 6.155 0 8.489a5.968 5.968 0 0 1-4.245 1.755c-1.6 0-3.11-.622-4.244-1.755z' fill='%23D5D5D5'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;font-weight:700;border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto;color:#fff;text-align:center;transition:background-color .2s ease;background-color:#334aff;padding:16px 22px 17px;width:100%}.tribe-common .tribe-common-c-btn:focus,.tribe-common .tribe-common-c-btn:hover{background-color:rgba(51,74,255,.8)}.tribe-common .tribe-common-c-btn:active{background-color:rgba(51,74,255,.9)}.tribe-common .tribe-common-c-btn:disabled{background-color:rgba(51,74,255,.07)}.tribe-common .tribe-common-c-btn:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='22' height='19' viewBox='0 0 22 19' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23FFF' d='M11.648 0L9.62 1.956l6.23 6.005H0v2.793h15.85L9.62 16.76l2.028 1.956 9.705-9.358z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;content:"";display:inline-block;height:10px;margin-left:8px;width:12px}.tribe-common .tribe-common-c-btn--secondary{padding:12px 19px 13px;width:auto}.tribe-common .tribe-common-c-btn--secondary:after{content:none}.tribe-common .tribe-common-c-image{display:block;height:auto;margin-left:auto;margin-right:auto;width:100%}.tribe-common .tribe-common-c-image--bg{position:relative}.tribe-common .tribe-common-c-image__bg{background:50% no-repeat;background-size:cover;bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.tribe-common .tribe-common-c-nav{border-top:1px solid #d5d5d5;padding-top:24px}.tribe-common .tribe-common-c-nav__list{display:flex;list-style:none;width:100%;flex-wrap:wrap;justify-content:space-between}.tribe-common .tribe-common-c-nav__next,.tribe-common .tribe-common-c-nav__prev{display:flex;justify-content:center;flex-wrap:wrap;align-items:center;color:#727272;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;line-height:1.42;font-weight:700}.tribe-common .tribe-common-c-nav__next:hover,.tribe-common .tribe-common-c-nav__prev:hover{color:var(--color-navigation-hover)}.tribe-common .tribe-common-c-nav__next:disabled,.tribe-common .tribe-common-c-nav__prev:disabled{background-color:transparent;color:#d5d5d5}.tribe-common .tribe-common-c-nav__prev:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' viewBox='0 0 12 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23727272' d='M11.916 17.841L10 19.757l-9.9-9.9L10-.041l1.916 1.916-7.983 7.984z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;content:"";height:14px;margin-right:10px;width:12px}.tribe-common .tribe-common-c-nav__prev:active:before,.tribe-common .tribe-common-c-nav__prev:focus:before,.tribe-common .tribe-common-c-nav__prev:hover:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' viewBox='0 0 12 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23141827' d='M11.916 17.841L10 19.757l-9.9-9.9L10-.041l1.916 1.916-7.983 7.984z'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-nav__prev:disabled:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' viewBox='0 0 12 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23D5D5D5' d='M11.916 17.841L10 19.757l-9.9-9.9L10-.041l1.916 1.916-7.983 7.984z'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-nav__next:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' viewBox='0 0 12 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23727272' d='M.084 2.159L2 .243l9.9 9.9L2 20.041.084 18.126l7.983-7.984z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;content:"";height:14px;margin-left:10px;width:12px}.tribe-common .tribe-common-c-nav__next:active:after,.tribe-common .tribe-common-c-nav__next:focus:after,.tribe-common .tribe-common-c-nav__next:hover:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' viewBox='0 0 12 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23141827' d='M.084 2.159L2 .243l9.9 9.9L2 20.041.084 18.126l7.983-7.984z'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-nav__next:disabled:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' viewBox='0 0 12 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23D5D5D5' d='M.084 2.159L2 .243l9.9 9.9L2 20.041.084 18.126l7.983-7.984z'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-search__input-group>:first-child{flex:1 1 34.5%}.tribe-common .tribe-common-c-search__input-group>:nth-child(2){flex:1 1 37.5%}.tribe-common .tribe-common-c-search__input-group>:nth-child(3){flex:1 1 28%}.tribe-common .tribe-common-c-search__button{flex:none;margin-top:8px}@media (min-width:768px){.tribe-common .tribe-common-form-control-select__button{padding:16px 44px 16px 18px;width:220px}.tribe-common .tribe-common-form-control-select__button:after{right:18px}.tribe-common .tribe-common-form-control-select__list{width:220px}.tribe-common .tribe-common-form-control-tabs{display:flex}.tribe-common .tribe-common-form-control-tabs__button{display:none!important;visibility:hidden}.tribe-common .tribe-common-form-control-tabs__list{border:1px solid #d5d5d5;box-shadow:none;display:flex!important;flex:none;position:static;visibility:visible;width:auto;outline:none}.tribe-common .tribe-common-form-control-tabs__list-item:first-child .tribe-common-form-control-tabs__label{margin-top:-6px;padding-top:17px}.tribe-common .tribe-common-form-control-tabs__list-item:last-child .tribe-common-form-control-tabs__label{margin-bottom:-6px;padding-bottom:17px}.tribe-common .tribe-common-form-control-tabs__list-item{border-right:1px solid #d5d5d5;flex:none;margin:6px 0;width:88px}.tribe-common .tribe-common-form-control-tabs__list-item:last-child{border:none;width:87px}.tribe-common .tribe-common-form-control-tabs__label{margin:-6px 0;padding:17px 5px;text-align:center;display:block}body#top .tribe-common .tribe-common-form-control-tabs__list-item:first-child .tribe-common-form-control-tabs__label{margin-top:-6px;padding-top:17px}body#top .tribe-common .tribe-common-form-control-tabs__list-item:last-child .tribe-common-form-control-tabs__label{margin-bottom:-6px;padding-bottom:17px}body#top .tribe-common .tribe-common-form-control-tabs__label{margin:-6px 0;padding:17px 5px;text-align:center;display:block}.tribe-common .tribe-common-g-row--gutters{margin-left:-24px;margin-right:-24px}.tribe-common .tribe-common-g-row--gutters>.tribe-common-g-col{padding-left:24px;padding-right:24px}.tribe-common .tribe-common-b1{font-size:16px;line-height:1.62}.tribe-common .tribe-common-b2{font-size:14px;line-height:1.62}.tribe-common .tribe-common-b3{font-size:12px;line-height:1.38}.tribe-common .tribe-common-h1{font-size:42px;line-height:1.38}.tribe-common .tribe-common-h2{font-size:32px;line-height:1.38}.tribe-common .tribe-common-h3{font-size:28px;line-height:1.42}.tribe-common .tribe-common-h4{font-size:24px;line-height:1.42}.tribe-common .tribe-common-l-container{padding-left:42px;padding-right:42px}.tribe-common .tribe-common-c-btn{width:auto}.tribe-common .tribe-common-c-nav{padding-top:32px}.tribe-common .tribe-common-c-nav__next,.tribe-common .tribe-common-c-nav__prev{font-size:14px}.tribe-common .tribe-common-c-search{display:flex}.tribe-common .tribe-common-c-search__input-group{background-color:#fff;border:1px solid #d5d5d5;border-right:none;display:flex;flex:auto;max-width:645px;padding:8px 0}.tribe-common .tribe-common-c-search__input-group>*{margin-bottom:0}.tribe-common .tribe-common-c-search__input{border:none;border-right:1px solid #d5d5d5;height:auto;padding:7px 18px 8px}.tribe-common .tribe-common-c-search__button{margin-top:0}body#top .tribe-common .tribe-common-form-control-text-group{padding:8px 0}body#top .tribe-common .tribe-common-c-search__input{border:none;border-right:1px solid #d5d5d5;padding:7px 18px 8px}}
common/src/resources/postcss/base/_buttons.pcss CHANGED
@@ -5,5 +5,6 @@
5
 
6
  button {
7
  background-color: var(--color-background);
 
8
  }
9
  }
5
 
6
  button {
7
  background-color: var(--color-background);
8
+ padding: 0;
9
  }
10
  }
common/src/resources/postcss/components/_image.pcss CHANGED
@@ -35,6 +35,5 @@
35
  right: 0;
36
  top: 0;
37
  width: 100%;
38
- overflow: hidden;
39
  }
40
  }
35
  right: 0;
36
  top: 0;
37
  width: 100%;
 
38
  }
39
  }
common/src/resources/postcss/components/_navigation.pcss CHANGED
@@ -40,8 +40,7 @@
40
 
41
  }
42
 
43
- .tribe-common-c-nav__list-item {
44
- }
45
 
46
  .tribe-common-c-nav__prev,
47
  .tribe-common-c-nav__next {
@@ -64,9 +63,9 @@
64
  }
65
 
66
  &:disabled {
 
67
  color: var(--color-text-disabled);
68
  }
69
-
70
  }
71
 
72
  .tribe-common-c-nav__prev {
@@ -96,7 +95,6 @@
96
  background-image: svg-inline(caret-left-disabled);
97
  }
98
  }
99
-
100
  }
101
 
102
  .tribe-common-c-nav__next {
40
 
41
  }
42
 
43
+ /* .tribe-common-c-nav__list-item {} */
 
44
 
45
  .tribe-common-c-nav__prev,
46
  .tribe-common-c-nav__next {
63
  }
64
 
65
  &:disabled {
66
+ background-color: transparent;
67
  color: var(--color-text-disabled);
68
  }
 
69
  }
70
 
71
  .tribe-common-c-nav__prev {
95
  background-image: svg-inline(caret-left-disabled);
96
  }
97
  }
 
98
  }
99
 
100
  .tribe-common-c-nav__next {
common/tribe-autoload.php CHANGED
@@ -1,5 +1,5 @@
1
  <?php
2
- $common = dirname( __FILE__ ) . '/src';
3
 
4
  require_once $common . '/Tribe/Autoloader.php';
5
 
1
  <?php
2
+ $common = __DIR__ . '/src';
3
 
4
  require_once $common . '/Tribe/Autoloader.php';
5
 
common/vendor/autoload_52.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
- return ComposerAutoloaderInitfffeb31c034cfc97d6d7f6e3e1c537b0::getLoader();
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
+ return ComposerAutoloaderInit8be28ee3e909f3421bdac74c24f5e27c::getLoader();
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 ComposerAutoloaderInitfffeb31c034cfc97d6d7f6e3e1c537b0 {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
@@ -19,9 +19,9 @@ class ComposerAutoloaderInitfffeb31c034cfc97d6d7f6e3e1c537b0 {
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInitfffeb31c034cfc97d6d7f6e3e1c537b0', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInitfffeb31c034cfc97d6d7f6e3e1c537b0', 'loadClassLoader'));
25
 
26
  $vendorDir = dirname(dirname(__FILE__));
27
  $baseDir = dirname($vendorDir);
2
 
3
  // autoload_real_52.php generated by xrstf/composer-php52
4
 
5
+ class ComposerAutoloaderInit8be28ee3e909f3421bdac74c24f5e27c {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInit8be28ee3e909f3421bdac74c24f5e27c', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit8be28ee3e909f3421bdac74c24f5e27c', 'loadClassLoader'));
25
 
26
  $vendorDir = dirname(dirname(__FILE__));
27
  $baseDir = dirname($vendorDir);
lang/the-events-calendar-de_DE.mo CHANGED
Binary file
readme.txt CHANGED
@@ -4,7 +4,7 @@ Contributors: ModernTribe, borkweb, barry.hughes, bordoni, brianjessee, aguseo,
4
  Tags: events, calendar, event, venue, organizer, dates, date, google maps, conference, workshop, concert, meeting, seminar, summit, class, modern tribe, tribe, widget
5
  Donate link: http://m.tri.be/29
6
  Requires at least: 4.7
7
- Stable tag: 4.9.3
8
  Tested up to: 5.2.2
9
  Requires PHP: 5.6
10
  License: GPLv2 or later
@@ -215,6 +215,11 @@ Still not happy? Shoot us an email to support@theeventscalendar.com or tweet to
215
 
216
  == Changelog ==
217
 
 
 
 
 
 
218
  = [4.9.3] 2019-06-06 =
219
 
220
  * Fix - Fixed issue where the previous events link was not present on initial page load of the List View [127477]
4
  Tags: events, calendar, event, venue, organizer, dates, date, google maps, conference, workshop, concert, meeting, seminar, summit, class, modern tribe, tribe, widget
5
  Donate link: http://m.tri.be/29
6
  Requires at least: 4.7
7
+ Stable tag: 4.9.3.1
8
  Tested up to: 5.2.2
9
  Requires PHP: 5.6
10
  License: GPLv2 or later
215
 
216
  == Changelog ==
217
 
218
+ = [4.9.3.1] 2019-06-07 =
219
+
220
+ * Fix - Remove caching of rewrite base slugs which make third-party, Photo and Week work as expected [129035]
221
+ * Tweak - Adjust newsletter signup submission destination [129034]
222
+
223
  = [4.9.3] 2019-06-06 =
224
 
225
  * Fix - Fixed issue where the previous events link was not present on initial page load of the List View [127477]
src/Tribe/Main.php CHANGED
@@ -34,7 +34,7 @@ if ( ! class_exists( 'Tribe__Events__Main' ) ) {
34
  const VENUE_POST_TYPE = 'tribe_venue';
35
  const ORGANIZER_POST_TYPE = 'tribe_organizer';
36
 
37
- const VERSION = '4.9.3';
38
 
39
  /**
40
  * Min Pro Addon
34
  const VENUE_POST_TYPE = 'tribe_venue';
35
  const ORGANIZER_POST_TYPE = 'tribe_organizer';
36
 
37
+ const VERSION = '4.9.3.1';
38
 
39
  /**
40
  * Min Pro Addon
src/Tribe/Rewrite.php CHANGED
@@ -222,6 +222,19 @@ class Tribe__Events__Rewrite extends Tribe__Rewrite {
222
 
223
  $tec = Tribe__Events__Main::instance();
224
 
 
 
 
 
 
 
 
 
 
 
 
 
 
225
  /**
226
  * If you want to modify the base slugs before the i18n happens filter this use this filter
227
  * All the bases need to have a key and a value, they might be the same or not.
@@ -238,21 +251,9 @@ class Tribe__Events__Rewrite extends Tribe__Rewrite {
238
  * Means that is a value that can be overwritten and relies on the user value entered on the
239
  * options page.
240
  *
241
- * @var array $bases
242
  */
243
- $bases = apply_filters( 'tribe_events_rewrite_base_slugs', array(
244
- 'month' => array( 'month', $tec->monthSlug ),
245
- 'list' => array( 'list', $tec->listSlug ),
246
- 'today' => array( 'today', $tec->todaySlug ),
247
- 'day' => array( 'day', $tec->daySlug ),
248
- 'tag' => array( 'tag', $tec->tag_slug ),
249
- 'tax' => array( 'category', $tec->category_slug ),
250
- 'page' => array( 'page', esc_html_x( 'page', 'The "/page/" URL string component.', 'the-events-calendar' ) ),
251
- 'single' => array( Tribe__Settings_Manager::get_option( 'singleEventSlug', 'event' ), $tec->rewriteSlugSingular ),
252
- 'archive' => array( Tribe__Settings_Manager::get_option( 'eventsSlug', 'events' ), $tec->rewriteSlug ),
253
- 'featured' => array( 'featured', $tec->featured_slug ),
254
- ) );
255
-
256
 
257
  // Remove duplicates (no need to have 'month' twice if no translations are in effect, etc)
258
  $bases = array_map( 'array_unique', $bases );
@@ -451,7 +452,7 @@ class Tribe__Events__Rewrite extends Tribe__Rewrite {
451
  * {@inheritDoc}
452
  */
453
  protected function get_localized_matchers() {
454
- $localized_matchers = parent::get_localized_matchers();
455
 
456
  // Handle the dates.
457
  $localized_matchers['(\d{4}-\d{2})'] = 'eventDate';
@@ -492,7 +493,7 @@ class Tribe__Events__Rewrite extends Tribe__Rewrite {
492
  // Remove leading/trailing slashes to get something like `grand-parent/parent/child`.
493
  $category_slug = trim( $category_slug, '/' );
494
 
495
- $dynamic_matchers["{$cat_regex}/(?:[^/]+/)*([^/]+)"] = "{$localized_slug}/{$category_slug}";
496
  }
497
  }
498
  }
222
 
223
  $tec = Tribe__Events__Main::instance();
224
 
225
+ $default_bases = [
226
+ 'month' => [ 'month', $tec->monthSlug ],
227
+ 'list' => [ 'list', $tec->listSlug ],
228
+ 'today' => [ 'today', $tec->todaySlug ],
229
+ 'day' => [ 'day', $tec->daySlug ],
230
+ 'tag' => [ 'tag', $tec->tag_slug ],
231
+ 'tax' => [ 'category', $tec->category_slug ],
232
+ 'page' => [ 'page', esc_html_x( 'page', 'The "/page/" URL string component.', 'the-events-calendar' ) ],
233
+ 'single' => [ tribe_get_option( 'singleEventSlug', 'event' ), $tec->rewriteSlugSingular ],
234
+ 'archive' => [ tribe_get_option( 'eventsSlug', 'events' ), $tec->rewriteSlug ],
235
+ 'featured' => [ 'featured', $tec->featured_slug ],
236
+ ];
237
+
238
  /**
239
  * If you want to modify the base slugs before the i18n happens filter this use this filter
240
  * All the bases need to have a key and a value, they might be the same or not.
251
  * Means that is a value that can be overwritten and relies on the user value entered on the
252
  * options page.
253
  *
254
+ * @param array $bases
255
  */
256
+ $bases = apply_filters( 'tribe_events_rewrite_base_slugs', $default_bases );
 
 
 
 
 
 
 
 
 
 
 
 
257
 
258
  // Remove duplicates (no need to have 'month' twice if no translations are in effect, etc)
259
  $bases = array_map( 'array_unique', $bases );
452
  * {@inheritDoc}
453
  */
454
  protected function get_localized_matchers() {
455
+ $localized_matchers = parent::get_localized_matchers();
456
 
457
  // Handle the dates.
458
  $localized_matchers['(\d{4}-\d{2})'] = 'eventDate';
493
  // Remove leading/trailing slashes to get something like `grand-parent/parent/child`.
494
  $category_slug = trim( $category_slug, '/' );
495
 
496
+ $dynamic_matchers[ "{$cat_regex}/(?:[^/]+/)*([^/]+)" ] = "{$localized_slug}/{$category_slug}";
497
  }
498
  }
499
  }
src/Tribe/Views/V2/Assets.php CHANGED
@@ -33,7 +33,7 @@ class Assets extends \tad_DI52_ServiceProvider {
33
  $plugin,
34
  'tribe-events-calendar-views-v2',
35
  'views/tribe-events-v2.css',
36
- [ 'tribe-common-style', 'tribe-tooltipster-css' ], // @todo: check if we're including tooltips only in month view.
37
  'wp_enqueue_scripts',
38
  [ 'priority' => 10 ]
39
  );
@@ -45,14 +45,5 @@ class Assets extends \tad_DI52_ServiceProvider {
45
  [ 'jquery', 'tribe-common', 'tribe-query-string', 'underscore' ],
46
  null // prevent it from loading
47
  );
48
-
49
- tribe_asset(
50
- $plugin,
51
- 'tribe-events-views-v2-scripts',
52
- 'views/scripts.js',
53
- [ 'jquery', 'tribe-common', 'tribe-tooltipster' ], // @todo: check if we're including tooltips only in month view.
54
- 'wp_enqueue_scripts',
55
- [ 'priority' => 10 ]
56
- );
57
  }
58
  }
33
  $plugin,
34
  'tribe-events-calendar-views-v2',
35
  'views/tribe-events-v2.css',
36
+ [ 'tribe-common-style' ],
37
  'wp_enqueue_scripts',
38
  [ 'priority' => 10 ]
39
  );
45
  [ 'jquery', 'tribe-common', 'tribe-query-string', 'underscore' ],
46
  null // prevent it from loading
47
  );
 
 
 
 
 
 
 
 
 
48
  }
49
  }
src/Tribe/Views/V2/Hooks.php CHANGED
@@ -67,7 +67,7 @@ class Hooks extends \tad_DI52_ServiceProvider {
67
  add_filter( 'tribe_suppress_query_filters', '__return_true' );
68
  add_filter( 'template_include', [ $this, 'filter_template_include' ], 50 );
69
  add_filter( 'posts_pre_query', [ $this, 'filter_posts_pre_query' ], 20, 2 );
70
- add_filter( 'body_class', [ $this, 'body_class' ] );
71
  add_filter( 'query_vars', [ $this, 'filter_query_vars' ], 15 );
72
  }
73
 
@@ -202,8 +202,12 @@ class Hooks extends \tad_DI52_ServiceProvider {
202
  * Filters the body classes to add theme compatibility ones.
203
  *
204
  * @since 4.9.3
 
 
 
 
205
  */
206
- public function body_class( $classes ) {
207
- return $this->container->make( Theme_Compatibility::class )->body_class( $classes );
208
  }
209
  }
67
  add_filter( 'tribe_suppress_query_filters', '__return_true' );
68
  add_filter( 'template_include', [ $this, 'filter_template_include' ], 50 );
69
  add_filter( 'posts_pre_query', [ $this, 'filter_posts_pre_query' ], 20, 2 );
70
+ add_filter( 'body_class', [ $this, 'filter_body_class' ] );
71
  add_filter( 'query_vars', [ $this, 'filter_query_vars' ], 15 );
72
  }
73
 
202
  * Filters the body classes to add theme compatibility ones.
203
  *
204
  * @since 4.9.3
205
+ *
206
+ * @param array $classes Classes that are been passed to the body.
207
+ *
208
+ * @return array $classes
209
  */
210
+ public function filter_body_class( $classes ) {
211
+ return $this->container->make( Theme_Compatibility::class )->filter_add_body_classes( $classes );
212
  }
213
  }
src/Tribe/Views/V2/Service_Provider.php CHANGED
@@ -46,9 +46,6 @@ class Service_Provider extends \tad_DI52_ServiceProvider {
46
 
47
  // Since the View main class will act as a DI container itself let's provide it with the global container.
48
  View::set_container( $this->container );
49
-
50
- // @todo: remove this when we hydrate the month view with data and we use the correct template tags.
51
- require_once tribe( 'tec.main' )->plugin_path . 'src/Tribe/Views/V2/month-view-demo-template-tags.php';
52
  }
53
 
54
  /**
46
 
47
  // Since the View main class will act as a DI container itself let's provide it with the global container.
48
  View::set_container( $this->container );
 
 
 
49
  }
50
 
51
  /**
src/Tribe/Views/V2/Theme_Compatibility.php CHANGED
@@ -1,8 +1,9 @@
1
  <?php
2
  /**
3
  * Add theme compatibility things here.
4
- * @TODO: This is an implementation to set a body class we can use in the common implementation.
5
- * @TODO: Check this once we move forward with the views structure.
 
6
  * @since 4.9.3
7
  *
8
  * @package Tribe\Events\Views\V2
@@ -10,13 +11,17 @@
10
  namespace Tribe\Events\Views\V2;
11
 
12
  use Tribe\Events\Views\V2\Template_Bootstrap;
 
13
 
14
  class Theme_Compatibility {
15
-
16
- /*
17
- * List of themes which have compatibility fixes
 
 
 
18
  */
19
- public $themes_with_compatibility_fixes = [
20
  'avada',
21
  'divi',
22
  'enfold',
@@ -25,74 +30,94 @@ class Theme_Compatibility {
25
  'twentynineteen',
26
  ];
27
 
28
-
29
  /**
30
- * Register
31
  *
32
  * @since 4.9.3
33
- *
34
- *
35
- * @return void
36
  */
37
- public function register() {}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
 
39
  /**
40
- * Checks if theme needs a compatibility fix.
41
- *
42
- * @param string $theme Name of template from WP_Theme->Template, defaults to current active template.
43
  *
44
  * @since 4.9.3
45
  *
46
- * @return mixed
 
 
47
  */
48
- public function needs_compatibility_fix( $theme = null ) {
49
- // Defaults to current active theme
50
- if ( $theme === null ) {
51
- $theme = get_stylesheet();
52
  }
53
 
54
- /**
55
- * Allows to filter the theme list with compatibility fixes.
56
- *
57
- * @since 4.9.3
58
- *
59
- * @param array $themes_with_compatibility_fixes A list of themes we provide compatibility for.
60
- */
61
- $theme_compatibility_list = apply_filters( 'tribe_events_views_v2_themes_compatibility_fixes', $this->themes_with_compatibility_fixes );
62
 
63
- return in_array( $theme, $theme_compatibility_list );
64
  }
65
 
66
  /**
67
- * Add the theme to the body class.
68
  *
69
  * @since 4.9.3
70
  *
71
  * @return array $classes
72
  */
73
- public function body_class( $classes ) {
 
 
 
74
 
75
- if (
76
- ! tribe( Template_Bootstrap::class )->should_load()
77
- || ! $this->needs_compatibility_fix()
78
- ) {
79
  return $classes;
80
  }
81
 
82
- $child_theme = get_option( 'stylesheet' );
83
- $parent_theme = get_option( 'template' );
84
 
85
  // if the 2 options are the same, then there is no child theme.
86
- if ( $child_theme == $parent_theme ) {
87
- $child_theme = false;
88
  }
89
 
90
- $classes[] = "tribe-theme-$parent_theme";
 
91
 
92
- if ( $child_theme ) {
93
- $classes[] = "tribe-theme-child-$child_theme";
94
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
95
 
96
- return $classes;
97
  }
98
  }
1
  <?php
2
  /**
3
  * Add theme compatibility things here.
4
+ *
5
+ * @todo This is an implementation to set a body class we can use in the common implementation.
6
+ *
7
  * @since 4.9.3
8
  *
9
  * @package Tribe\Events\Views\V2
11
  namespace Tribe\Events\Views\V2;
12
 
13
  use Tribe\Events\Views\V2\Template_Bootstrap;
14
+ use Tribe__Container as Container;
15
 
16
  class Theme_Compatibility {
17
+ /**
18
+ * List of themes which have compatibility.
19
+ *
20
+ * @since TBD
21
+ *
22
+ * @var array
23
  */
24
+ protected $themes = [
25
  'avada',
26
  'divi',
27
  'enfold',
30
  'twentynineteen',
31
  ];
32
 
 
33
  /**
34
+ * Checks if theme needs a compatibility fix.
35
  *
36
  * @since 4.9.3
37
+ *
38
+ * @return boolean
 
39
  */
40
+ public function is_compatibility_required() {
41
+ $template = get_template();
42
+ $stylesheet = get_stylesheet();
43
+
44
+ // Prevents empty stylesheet or template
45
+ if ( empty( $template ) || empty( $stylesheet ) ) {
46
+ return false;
47
+ }
48
+
49
+ if ( in_array( $template, $this->get_registered_themes() ) ) {
50
+ return true;
51
+ }
52
+
53
+ return false;
54
+ }
55
 
56
  /**
57
+ * Add the theme to the body class.
 
 
58
  *
59
  * @since 4.9.3
60
  *
61
+ * @param array $classes Classes that are been passed to the body.
62
+ *
63
+ * @return array $classes
64
  */
65
+ public function filter_add_body_classes( array $classes ) {
66
+ if ( ! tribe( Template_Bootstrap::class )->should_load() ) {
67
+ return $classes;
 
68
  }
69
 
70
+ if ( ! $this->is_compatibility_required() ) {
71
+ return $classes;
72
+ }
 
 
 
 
 
73
 
74
+ return array_merge( $classes, $this->get_body_classes() );
75
  }
76
 
77
  /**
78
+ * Fetches the correct class strings for theme and child theme if available.
79
  *
80
  * @since 4.9.3
81
  *
82
  * @return array $classes
83
  */
84
+ public function get_body_classes() {
85
+ $classes = [];
86
+ $child_theme = get_stylesheet();
87
+ $parent_theme = get_template();
88
 
89
+ // Prevents empty stylesheet or template
90
+ if ( empty( $parent_theme ) || empty( $child_theme ) ) {
 
 
91
  return $classes;
92
  }
93
 
94
+ $classes[] = sanitize_html_class( "tribe-theme-$parent_theme" );
 
95
 
96
  // if the 2 options are the same, then there is no child theme.
97
+ if ( $child_theme !== $parent_theme ) {
98
+ $classes[] = sanitize_html_class( "tribe-theme-child-$child_theme" );
99
  }
100
 
101
+ return $classes;
102
+ }
103
 
104
+ /**
105
+ * Returns a list of themes registred for compatibility with our Views.
106
+ *
107
+ * @since TBD
108
+ *
109
+ * @return array An array of the themes registred.
110
+ */
111
+ public function get_registered_themes() {
112
+ /**
113
+ * Filters the list of themes that are registred for compatibility.
114
+ *
115
+ * @since TBD
116
+ *
117
+ * @param array $registered An associative array of views in the shape `[ <slug> => <class> ]`.
118
+ */
119
+ $registered = apply_filters( 'tribe_events_views_v2_theme_compatibility_registered', $this->themes );
120
 
121
+ return (array) $registered;
122
  }
123
  }
src/Tribe/Views/V2/month-view-demo-template-tags.php DELETED
@@ -1,432 +0,0 @@
1
- <?php
2
- /**
3
- * Month view demo data and temporary template tags to handle the data.
4
- *
5
- * @package Tribe\Events\Views\V2
6
- * @since TBD
7
- */
8
-
9
- // @todo: remove this when we hydrate the month view with data and we use the correct template tags.
10
-
11
- if ( ! function_exists( 'tribe_events_views_v2_month_demo_day_get_data' ) ) :
12
- /**
13
- * Get the day data of the $month array
14
- *
15
- * @since TBD
16
- *
17
- * @return bool
18
- */
19
- function tribe_events_views_v2_month_demo_day_get_data( $month = [], $day_number = 0 ) {
20
- $key = array_search( $day_number, array_column( $month, 'daynum' ) );
21
-
22
- return false !== $key ? $month[ $key ] : $key;
23
- }
24
- endif;
25
-
26
- if ( ! function_exists( 'tribe_events_views_v2_month_demo_day_has_events' ) ) :
27
- /**
28
- * Check if a given day has events
29
- *
30
- * @since TBD
31
- *
32
- * @return bool
33
- */
34
- function tribe_events_views_v2_month_demo_day_has_events( $month = [], $day_number = 0 ) {
35
-
36
- if ( ! $day_data = tribe_events_views_v2_month_demo_day_get_data( $month, $day_number ) ) {
37
- return false;
38
- }
39
-
40
- return (bool) $day_data[ 'total_events' ];
41
- }
42
- endif;
43
-
44
-
45
- if ( ! function_exists( 'tribe_events_views_v2_month_demo_day_get_events' ) ) :
46
- /**
47
- * Get events for a given day
48
- *
49
- * @since TBD
50
- *
51
- * @return array
52
- */
53
- function tribe_events_views_v2_month_demo_day_get_events( $month = [], $day_number = 0 ) {
54
-
55
- if ( ! $has_events = tribe_events_views_v2_month_demo_day_has_events( $month, $day_number ) ) {
56
- return false;
57
- }
58
-
59
- $day_data = tribe_events_views_v2_month_demo_day_get_data( $month, $day_number );
60
-
61
- return $day_data[ 'events' ];
62
- }
63
- endif;
64
-
65
-
66
- if ( ! function_exists( 'tribe_events_views_v2_month_demo_day_get_events_multiday' ) ) :
67
- /**
68
- * Get multiday events for a given day
69
- *
70
- * @since TBD
71
- *
72
- * @return array
73
- */
74
- function tribe_events_views_v2_month_demo_day_get_events_multiday( $month = [], $day_number = 0 ) {
75
- $events = tribe_events_views_v2_month_demo_day_get_events( $month, $day_number );
76
-
77
- if ( ! $events ) {
78
- return [];
79
- }
80
-
81
- $multiday = [];
82
-
83
- foreach ( $events as $event ) {
84
-
85
- // Add it to the array if multiday is set and multiday is true.
86
- // Or if it false (we are using this as empty spaces)
87
- if (
88
- ( isset( $event['multiday'] ) && $event['multiday'] )
89
- || false === $event
90
- ) {
91
- $multiday[] = $event;
92
- }
93
- }
94
-
95
- return $multiday;
96
- }
97
- endif;
98
-
99
-
100
- if ( ! function_exists( 'tribe_events_views_v2_month_demo_day_get_events_regular' ) ) :
101
- /**
102
- * Get regular events for a given day.
103
- *
104
- * @since TBD
105
- *
106
- * @return array
107
- */
108
- function tribe_events_views_v2_month_demo_day_get_events_regular( $month = [], $day_number = 0 ) {
109
- $events = tribe_events_views_v2_month_demo_day_get_events( $month, $day_number );
110
-
111
- if ( ! $events ) {
112
- return [];
113
- }
114
-
115
- $regular = [];
116
-
117
- foreach ( $events as $event ) {
118
-
119
- if ( false === $event ) {
120
- // it's an empty space, continue with the next one.
121
- continue;
122
- }
123
-
124
- // Add it to the new array if multiday exists and is set to false.
125
- // or if multiday is not set.
126
- if (
127
- ( isset( $event['multiday'] ) && ! $event['multiday'] )
128
- || ! isset( $event['multiday'] )
129
- ) {
130
- $regular[] = $event;
131
- }
132
- }
133
-
134
- return $regular;
135
- }
136
- endif;
137
-
138
-
139
- if ( ! function_exists( 'tribe_events_views_v2_month_demo_add_data' ) ) :
140
- /**
141
- * Return an array with the events for the month
142
- *
143
- * @since TBD
144
- *
145
- * @return array
146
- */
147
- function tribe_events_views_v2_month_demo_add_data() {
148
-
149
- $event1 = [
150
- 'title' => esc_html__( 'WordCamp Buenos Aires', 'the-events-calendar' ),
151
- 'ID' => 1,
152
- 'multiday' => true,
153
- 'start_date' => 1,
154
- 'start_this_week' => true,
155
- 'end_this_week' => true,
156
- 'duration' => 2, // duration in days
157
- ];
158
-
159
- $event2 = [
160
- 'title' => esc_html__( 'TedX Argentina', 'the-events-calendar' ),
161
- 'ID' => 14,
162
- 'multiday' => true,
163
- 'start_date' => 1,
164
- 'start_this_week' => true,
165
- 'end_this_week' => true,
166
- 'duration' => 3, // duration in days
167
- 'featured' => true,
168
- ];
169
-
170
- $event3 = [
171
- 'title' => esc_html__( 'UX and UI Workshop', 'the-events-calendar' ),
172
- 'ID' => 18,
173
- 'multiday' => true,
174
- 'start_date' => 2,
175
- 'start_this_week' => true,
176
- 'end_this_week' => true,
177
- 'duration' => 3, // duration in days
178
- ];
179
-
180
- $event4 = [
181
- 'title' => esc_html__( 'Contributors hackaton', 'the-events-calendar' ),
182
- 'ID' => 23,
183
- 'multiday' => true,
184
- 'start_date' => 4,
185
- 'start_this_week' => true,
186
- 'end_this_week' => true,
187
- 'duration' => 2, // duration in days
188
- 'featured' => true,
189
- ];
190
-
191
- $event_multi_5 = [
192
- 'title' => esc_html__( 'Prepping long weekend', 'the-events-calendar' ),
193
- 'ID' => 25,
194
- 'multiday' => true,
195
- 'start_date' => 19,
196
- 'start_this_week' => true,
197
- 'end_this_week' => true,
198
- 'duration' => 2, // duration in days
199
- 'featured' => false,
200
- ];
201
-
202
- $event_multi_weekend_pre = [
203
- 'title' => esc_html__( 'Long weekend', 'the-events-calendar' ),
204
- 'ID' => 40,
205
- 'multiday' => true,
206
- 'start_date' => 19,
207
- 'start_this_week' => true,
208
- 'end_this_week' => false,
209
- 'duration' => 3, // duration in days
210
- 'featured' => false,
211
- ];
212
-
213
- $event_multi_weekend_post = [
214
- 'title' => esc_html__( 'Long weekend', 'the-events-calendar' ),
215
- 'ID' => 40,
216
- 'multiday' => true,
217
- 'start_date' => 22,
218
- 'end_this_week' => true,
219
- 'start_this_week' => false,
220
- 'duration' => 2, // duration in days
221
- 'featured' => false,
222
- ];
223
-
224
- $event_not_multi_1 = [
225
- 'title' => esc_html__( 'Melbourne WordPress Meetup', 'the-events-calendar' ),
226
- 'ID' => 57,
227
- 'multiday' => false,
228
- 'featured' => true,
229
- 'recurring' => false,
230
- ];
231
-
232
- $event_not_multi_2 = [
233
- 'title' => esc_html__( 'North Sydney Meetup', 'the-events-calendar' ),
234
- 'ID' => 53,
235
- 'multiday' => false,
236
- 'featured' => true,
237
- 'recurring' => false,
238
- 'image' => 'https://cldup.com/xfPL3E4sMe-2000x2000.jpeg',
239
- ];
240
-
241
- $event_not_multi_3 = [
242
- 'title' => esc_html__( 'HackNight #CodeforthePeople', 'the-events-calendar' ),
243
- 'ID' => 59,
244
- 'multiday' => false,
245
- 'featured' => false,
246
- 'recurring' => false,
247
- 'image' => 'https://cldup.com/GkpQuY_i8k-1200x1200.jpeg',
248
- ];
249
-
250
- $event_not_multi_4 = [
251
- 'title' => esc_html__( 'Winnipeg WordPress Meetup', 'the-events-calendar' ),
252
- 'ID' => 39,
253
- 'multiday' => false,
254
- 'featured' => false,
255
- 'recurring' => false,
256
- 'image' => 'https://cldup.com/Nhp8FNOyBl-2000x2000.jpeg',
257
- ];
258
-
259
- $event_not_multi_5 = [
260
- 'title' => esc_html__( 'Hannover WordPress Meetup', 'the-events-calendar' ),
261
- 'ID' => 89,
262
- 'multiday' => false,
263
- 'featured' => false,
264
- 'recurring' => false,
265
- ];
266
-
267
- $event_not_multi_recurring = [
268
- 'title' => esc_html__( 'Taco Tuesdays!', 'the-events-calendar' ),
269
- 'ID' => 69,
270
- 'multiday' => false,
271
- 'featured' => false,
272
- 'recurring' => true,
273
- ];
274
-
275
-
276
- // Day 1
277
- $day_1_events = [ $event1, $event2 ];
278
-
279
- $day1 = [
280
- 'daynum' => 1,
281
- 'events' => $day_1_events,
282
- 'total_events' => count( $day_1_events ),
283
- ];
284
-
285
- // Day 2
286
- $day_2_events = [ $event1, $event2, $event3 ];
287
-
288
- $day2 = [
289
- 'daynum' => 2,
290
- 'events' => $day_2_events,
291
- 'total_events' => count( $day_2_events )
292
- ];
293
-
294
- // Day 3
295
- $day_3_events = [ false, $event2, $event3 ];
296
-
297
- $day3 = [
298
- 'daynum' => 3,
299
- 'events' => $day_3_events,
300
- 'total_events' => count( $day_3_events )
301
- ];
302
-
303
- // Day 4
304
- $day_4_events = [ $event4, false, $event3 ];
305
-
306
- $day4 = [
307
- 'daynum' => 4,
308
- 'events' => $day_4_events,
309
- 'total_events' => count( $day_4_events )
310
- ];
311
-
312
- // Day 5
313
- $day_5_events = [ $event4, $event3 ];
314
-
315
- $day5 = [
316
- 'daynum' => 5,
317
- 'events' => $day_5_events,
318
- 'total_events' => count( $day_5_events )
319
- ];
320
-
321
- // Day 6
322
- $day_6_events = [ $event_not_multi_2 ];
323
- $day6 = [
324
- 'daynum' => 6,
325
- 'events' => $day_6_events,
326
- 'total_events' => count( $day_6_events )
327
- ];
328
-
329
- $day7 = [];
330
-
331
- $week1 = [ $day1, $day2, $day3, $day4, $day5, $day6 ];
332
-
333
- /*
334
- Week 2
335
- */
336
-
337
- $day_9_events = [ $event_not_multi_recurring, $event_not_multi_1 ];
338
-
339
- $day9 = [
340
- 'daynum' => 9,
341
- 'events' => $day_9_events,
342
- 'total_events' => count( $day_9_events )
343
- ];
344
-
345
- $day_10_events = [ $event_not_multi_3 ];
346
-
347
- $day10 = [
348
- 'daynum' => 10,
349
- 'events' => $day_10_events,
350
- 'total_events' => count( $day_10_events )
351
- ];
352
-
353
- $week2 = [ $day9, $day10 ];
354
-
355
- /*
356
- Week 3
357
- */
358
-
359
- $day_16_events = [ $event_not_multi_recurring ];
360
-
361
- $day16 = [
362
- 'daynum' => 16,
363
- 'events' => $day_16_events,
364
- 'total_events' => count( $day_16_events )
365
- ];
366
-
367
- $day_19_events = [ $event_multi_weekend_pre, $event_multi_5 ];
368
-
369
- $day19 = [
370
- 'daynum' => 19,
371
- 'events' => $day_19_events,
372
- 'total_events' => count( $day_19_events )
373
- ];
374
-
375
- $day_20_events = [ $event_multi_weekend_pre, $event_multi_5 ];
376
-
377
- $day20 = [
378
- 'daynum' => 20,
379
- 'events' => $day_20_events,
380
- 'total_events' => count( $day_20_events )
381
- ];
382
-
383
- $day21 = [
384
- 'daynum' => 21,
385
- 'events' => [ $event_multi_weekend_pre, false ],
386
- 'total_events' => count( [ $event_multi_weekend_pre, false ] )
387
- ];
388
-
389
- $week3 = [ $day16, $day19, $day20, $day21 ];
390
-
391
- /*
392
- Week 4
393
- */
394
-
395
- $day_22_events = [ $event_multi_weekend_post ];
396
-
397
- $day22 = [
398
- 'daynum' => 22,
399
- 'events' => $day_22_events,
400
- 'total_events' => count( $day_22_events )
401
- ];
402
-
403
- $day_23_events = [ $event_multi_weekend_post, $event_not_multi_recurring ];
404
-
405
- $day23 = [
406
- 'daynum' => 23,
407
- 'events' => $day_23_events,
408
- 'total_events' => count( $day_23_events )
409
- ];
410
-
411
- $day26 = [
412
- 'daynum' => 26,
413
- 'events' => [ $event_not_multi_4 ],
414
- 'total_events' => count( [ $event_not_multi_4 ] )
415
- ];
416
-
417
- $day27 = [
418
- 'daynum' => 27,
419
- 'events' => [ $event_not_multi_5 ],
420
- 'total_events' => count( [ $event_not_multi_5 ] )
421
- ];
422
-
423
- $week4 = [ $day22, $day23, $day26, $day27 ];
424
-
425
- $month = array_merge( $week1, $week2, $week3, $week4 );
426
-
427
-
428
- return $month;
429
-
430
- }
431
- add_filter( 'tribe_events_views_v2_month_demo_data', 'tribe_events_views_v2_month_demo_add_data' );
432
- endif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/admin-views/admin-update-message.php CHANGED
@@ -36,11 +36,17 @@
36
  <br/>
37
  <h2><?php esc_html_e( 'PSST... Want a Discount?', 'the-events-calendar' ); ?></h2>
38
  <p><?php esc_html_e( 'We send out discounts to our core users via our newsletter.', 'the-events-calendar' ); ?></p>
39
- <form action="https://moderntribe.createsend.com/t/r/s/athqh/" method="post">
40
- <p><input id="listthkduyk" name="cm-ol-thkduyk" type="checkbox" /> <label for="listthkduyk">Developer News</label></p>
41
- <p><input id="listathqh" name="cm-ol-athqh" checked type="checkbox" /> <label for="listathqh">News and Announcements</label></p>
42
- <p><input id="fieldEmail" class="regular-text" name="cm-athqh-athqh" type="email" placeholder="Email" required /></p>
43
- <button type="submit" class="button-primary"><?php esc_html_e( 'Sign Up', 'the-events-calendar' ); ?></button>
 
 
 
 
 
 
44
  </form>
45
  <br/>
46
  <hr/>
36
  <br/>
37
  <h2><?php esc_html_e( 'PSST... Want a Discount?', 'the-events-calendar' ); ?></h2>
38
  <p><?php esc_html_e( 'We send out discounts to our core users via our newsletter.', 'the-events-calendar' ); ?></p>
39
+ <form action="https://support-api.tri.be/mailing-list/subscribe" method="post">
40
+ <p><input id="fieldEmail" class="regular-text" name="email" type="email" placeholder="Email" required /></p>
41
+ <div>
42
+ <input id="cm-privacy-consent" name="consent" required type="checkbox" role="checkbox" aria-checked="false" />
43
+ <label for="cm-privacy-consent"><?php esc_html_e( 'Add me to the list', 'the-events-calendar' ); ?></label>
44
+ </div>
45
+ <p>
46
+ <input type="hidden" name="list" value="tec-newsletter" />
47
+ <input type="hidden" name="source" value="plugin:tec" />
48
+ <button type="submit" class="button-primary"><?php esc_html_e( 'Sign Up', 'the-events-calendar' ); ?></button>
49
+ </p>
50
  </form>
51
  <br/>
52
  <hr/>
src/admin-views/admin-welcome-message.php CHANGED
@@ -45,14 +45,15 @@
45
  <h4 data-tribe-icon="dashicons-megaphone"><?php esc_html_e( "Don't Miss Out", 'the-events-calendar' ); ?></h4>
46
  <p><?php esc_html_e( 'Get the latest on The Events Calendar, occasional discounts, and hilarious gifs delivered straight to your inbox.', 'the-events-calendar' ); ?></p>
47
 
48
- <form action="https://moderntribe.createsend.com/t/r/s/athqh/" method="post">
49
- <p><input id="fieldEmail" class="regular-text" name="cm-athqh-athqh" type="email" placeholder="<?php esc_attr_e( 'Email', 'the-events-calendar' ); ?>" required /></p>
50
  <div>
51
- <input id="cm-privacy-consent" name="cm-privacy-consent" required type="checkbox" role="checkbox" aria-checked="false" />
52
  <label for="cm-privacy-consent"><?php esc_html_e( 'Add me to the list', 'the-events-calendar' ); ?></label>
53
- <input id="cm-privacy-consent-hidden" name="cm-privacy-consent-hidden" type="hidden" value="true" />
54
  </div>
55
  <p>
 
 
56
  <button type="submit" class="button-primary"><?php esc_html_e( 'Sign Up', 'the-events-calendar' ); ?></button>
57
  </p>
58
  </form>
45
  <h4 data-tribe-icon="dashicons-megaphone"><?php esc_html_e( "Don't Miss Out", 'the-events-calendar' ); ?></h4>
46
  <p><?php esc_html_e( 'Get the latest on The Events Calendar, occasional discounts, and hilarious gifs delivered straight to your inbox.', 'the-events-calendar' ); ?></p>
47
 
48
+ <form action="https://support-api.tri.be/mailing-list/subscribe" method="post">
49
+ <p><input id="fieldEmail" class="regular-text" name="email" type="email" placeholder="<?php esc_attr_e( 'Email', 'the-events-calendar' ); ?>" required /></p>
50
  <div>
51
+ <input id="cm-privacy-consent" name="consent" required type="checkbox" role="checkbox" aria-checked="false" />
52
  <label for="cm-privacy-consent"><?php esc_html_e( 'Add me to the list', 'the-events-calendar' ); ?></label>
 
53
  </div>
54
  <p>
55
+ <input type="hidden" name="list" value="tec-newsletter" />
56
+ <input type="hidden" name="source" value="plugin:tec" />
57
  <button type="submit" class="button-primary"><?php esc_html_e( 'Sign Up', 'the-events-calendar' ); ?></button>
58
  </p>
59
  </form>
src/resources/css/views/tribe-events-v2.css CHANGED
@@ -293,11 +293,8 @@
293
  .tribe-events .tribe-events-l-container {
294
  margin-bottom: 80px;
295
  margin-top: 64px;
296
- position: relative;
297
  }
298
 
299
- /* @todo: making this relative so the loader can take its dimension. Check where do we want to place it. */
300
-
301
  /* Components */
302
 
303
  /* -----------------------------------------------------------------------------
@@ -331,47 +328,6 @@
331
 
332
  }
333
 
334
- /* Tooltip */
335
-
336
- /* -----------------------------------------------------------------------------
337
- *
338
- * Tooltip
339
- *
340
- * ----------------------------------------------------------------------------- */
341
-
342
- .tribe-events .tribe-events-tooltip__content {
343
- position: absolute;
344
- visibility: hidden; /* A11y purposes */
345
- }
346
-
347
- /* Defining our tooltipster theme. */
348
-
349
- .tooltipster-base.tribe-events-tooltip-theme {
350
- background-color: #FFFFFF;
351
- border: 1px solid #D5D5D5;
352
- box-shadow: 0 2px 12px 0 rgba(0,0,0, 0.14);
353
- padding: 24px;
354
- max-width: 254px;
355
- }
356
-
357
- .tooltipster-base.tribe-events-tooltip-theme .tooltipster-box {
358
- background-color: transparent;
359
- border: none;
360
- border-radius: 0;
361
- box-shadow: none;
362
- margin: 0;
363
- }
364
-
365
- .tooltipster-base.tribe-events-tooltip-theme .tooltipster-box .tooltipster-content {
366
- color: #141827;
367
- overflow: inherit;
368
- padding: 0;
369
- }
370
-
371
- .tooltipster-base.tribe-events-tooltip-theme .tooltipster-arrow {
372
- display: none;
373
- }
374
-
375
  /* Day marker */
376
 
377
  /* -----------------------------------------------------------------------------
@@ -629,10 +585,6 @@
629
  position: relative;
630
  }
631
 
632
- .tribe-events .tribe-events-calendar-month__calendar-event:first-of-type {
633
- margin-top: 0;
634
- }
635
-
636
  .tribe-events .tribe-events-calendar-month__calendar-event-featured-image-wrapper {
637
  margin-bottom: 4px;
638
  }
@@ -665,8 +617,16 @@
665
  font-weight: 400;
666
  }
667
 
668
- .tribe-events .tribe-events-calendar-month__calendar-event-title-link {
669
- color: #141827;
 
 
 
 
 
 
 
 
670
  }
671
 
672
  .tribe-events .tribe-events-calendar-month__calendar-event-tooltip-featured-image-wrapper {
@@ -701,7 +661,7 @@
701
  font-size: 16px;
702
  line-height: 1.62;
703
 
704
- padding: 8px 16px;
705
  }
706
 
707
  .tribe-events .tribe-events-calendar-month__day-date-link {
@@ -738,10 +698,6 @@
738
  color: #D5D5D5;
739
  }
740
 
741
- .tribe-events .tribe-events-calendar-month__day-events {
742
- display: none;
743
- }
744
-
745
  /* -----------------------------------------------------------------------------
746
  * Grid Header
747
  * ----------------------------------------------------------------------------- */
@@ -804,7 +760,10 @@
804
  * ----------------------------------------------------------------------------- */
805
 
806
  .tribe-events .tribe-events-calendar-month__event-multiday {
807
- display: none;
 
 
 
808
  }
809
 
810
  .tribe-events .tribe-events-calendar-month__event-multiday-inner {
@@ -839,38 +798,14 @@
839
  font-weight: 400;
840
  }
841
 
842
- .tribe-events .tribe-events-calendar-month__event-multiday-width-1 {
843
- width: 100%;
844
- }
845
-
846
- .tribe-events .tribe-events-calendar-month__event-multiday-width-2 {
847
- width: calc(200% + 2px);
848
- }
849
-
850
- .tribe-events .tribe-events-calendar-month__event-multiday-width-3 {
851
- width: calc(300% + 3px);
852
- }
853
-
854
- .tribe-events .tribe-events-calendar-month__event-multiday-width-4 {
855
- width: calc(400% + 4px);
856
- }
857
-
858
- .tribe-events .tribe-events-calendar-month__event-multiday-width-5 {
859
- width: calc(500% + 5px);
860
- }
861
-
862
- .tribe-events .tribe-events-calendar-month__event-multiday-width-6 {
863
- width: calc(600% + 6px);
864
- }
865
-
866
- .tribe-events .tribe-events-calendar-month__event-multiday-width-7 {
867
- width: calc(700% + 7px);
868
- }
869
 
870
- .tribe-events .tribe-events-calendar-month__event-multiday--empty,
871
- .tribe-events .tribe-events-calendar-month__event-multiday--hidden {
872
- display: none;
873
- }
874
 
875
  @media (min-width: 768px) {
876
 
@@ -995,11 +930,6 @@
995
  line-height: 1.42;
996
  }
997
 
998
- .tribe-events .tribe-events-calendar-month__day-events {
999
- display: block;
1000
- padding: 0 16px 16px
1001
- }
1002
-
1003
  .tribe-events .tribe-events-calendar-month__week:first-of-type {
1004
  border-top: 1px solid #D5D5D5
1005
  }
@@ -1007,38 +937,5 @@
1007
  .tribe-events .tribe-events-calendar-month__week {
1008
  border-left: 1px solid #D5D5D5
1009
  }
 
1010
 
1011
- .tribe-events .tribe-events-calendar-month__event-multiday {
1012
- display: block;
1013
- border-radius: 6px;
1014
- background-color: white;
1015
- overflow: hidden;
1016
- position: absolute;
1017
- z-index: 99
1018
- }
1019
-
1020
- .tribe-events .tribe-events-calendar-month__event-multiday--start {
1021
- border-radius: 6px 0 0 6px
1022
- }
1023
- .tribe-events .tribe-events-calendar-month__event-multiday--start.tribe-events-calendar-month__event-multiday--end {
1024
- border-radius: 6px;
1025
- }
1026
-
1027
- .tribe-events .tribe-events-calendar-month__event-multiday--end {
1028
- border-radius: 0 6px 6px 0
1029
- }
1030
- .tribe-events .tribe-events-calendar-month__event-multiday--end.tribe-events-calendar-month__event-multiday--start {
1031
- border-radius: 6px;
1032
- }
1033
-
1034
- .tribe-events .tribe-events-calendar-month__multiday-wrapper {
1035
- height: 19px;
1036
- margin-bottom: 4px;
1037
- position: relative
1038
- }
1039
-
1040
- .tribe-events .tribe-events-calendar-month__event-multiday--empty,
1041
- .tribe-events .tribe-events-calendar-month__event-multiday--hidden {
1042
- visibility: hidden
1043
- }
1044
- }
293
  .tribe-events .tribe-events-l-container {
294
  margin-bottom: 80px;
295
  margin-top: 64px;
 
296
  }
297
 
 
 
298
  /* Components */
299
 
300
  /* -----------------------------------------------------------------------------
328
 
329
  }
330
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
331
  /* Day marker */
332
 
333
  /* -----------------------------------------------------------------------------
585
  position: relative;
586
  }
587
 
 
 
 
 
588
  .tribe-events .tribe-events-calendar-month__calendar-event-featured-image-wrapper {
589
  margin-bottom: 4px;
590
  }
617
  font-weight: 400;
618
  }
619
 
620
+ .tribe-events .tribe-events-calendar-month__calendar-event-tooltip {
621
+ background-color: #FFFFFF;
622
+ border: 1px solid #D5D5D5;
623
+ box-shadow: 0 2px 12px 0 rgba(0,0,0, 0.14);
624
+ display: none;
625
+ left: -40px;
626
+ padding: 24px;
627
+ position: absolute;
628
+ top: calc(100% + 8px);
629
+ width: calc(100% + 80px);
630
  }
631
 
632
  .tribe-events .tribe-events-calendar-month__calendar-event-tooltip-featured-image-wrapper {
661
  font-size: 16px;
662
  line-height: 1.62;
663
 
664
+ padding: 8px;
665
  }
666
 
667
  .tribe-events .tribe-events-calendar-month__day-date-link {
698
  color: #D5D5D5;
699
  }
700
 
 
 
 
 
701
  /* -----------------------------------------------------------------------------
702
  * Grid Header
703
  * ----------------------------------------------------------------------------- */
760
  * ----------------------------------------------------------------------------- */
761
 
762
  .tribe-events .tribe-events-calendar-month__event-multiday {
763
+ border-radius: 6px;
764
+ margin-bottom: 4px;
765
+ background-color: white;
766
+ overflow: hidden;
767
  }
768
 
769
  .tribe-events .tribe-events-calendar-month__event-multiday-inner {
798
  font-weight: 400;
799
  }
800
 
801
+ /**
802
+ * Views Manager Loader required the views container to be position: relative;
803
+ * @todo move this to somewhere that makes sense
804
+ */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
805
 
806
+ .tribe-events {
807
+ position: relative;
808
+ }
 
809
 
810
  @media (min-width: 768px) {
811
 
930
  line-height: 1.42;
931
  }
932
 
 
 
 
 
 
933
  .tribe-events .tribe-events-calendar-month__week:first-of-type {
934
  border-top: 1px solid #D5D5D5
935
  }
937
  .tribe-events .tribe-events-calendar-month__week {
938
  border-left: 1px solid #D5D5D5
939
  }
940
+ }
941
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/resources/js/views/scripts.js DELETED
@@ -1,93 +0,0 @@
1
- /**
2
- * Makes sure we have all the required levels on the Tribe Object
3
- *
4
- * @since TBD
5
- *
6
- * @type {PlainObject}
7
- */
8
- tribe.events = tribe.events || {};
9
- tribe.events.views = tribe.events.views || {};
10
-
11
- /**
12
- * Configures Views Object in the Global Tribe variable
13
- *
14
- * @since TBD
15
- *
16
- * @type {PlainObject}
17
- */
18
- tribe.events.views.scripts = {};
19
-
20
- /**
21
- * Initializes in a Strict env the code that manages the Event Views
22
- *
23
- * @since TBD
24
- *
25
- * @param {PlainObject} $ jQuery
26
- * @param {PlainObject} _ Underscore.js
27
- * @param {PlainObject} obj tribe.events.views.scripts
28
- *
29
- * @return {void}
30
- */
31
- ( function( $, _, obj ) {
32
- 'use strict';
33
- var $document = $( document );
34
-
35
- /**
36
- * Selectors used for configuration and setup
37
- *
38
- * @since TBD
39
- *
40
- * @type {PlainObject}
41
- */
42
- obj.selectors = {
43
- tooltip: '.tribe-events-tooltip',
44
- tooltipContent: '.tribe-events-tooltip__content',
45
- };
46
-
47
- /**
48
- * Initialize accessible tooltips via tooltipster
49
- *
50
- * @since TBD
51
- *
52
- */
53
- obj.initTooltips = function() {
54
-
55
- $( obj.selectors.tooltip ).tooltipster( {
56
- interactive: true,
57
- theme: [ 'tribe-common', 'tribe-events', 'tribe-events-tooltip-theme' ],
58
- functionInit: function( instance, helper ) {
59
- var content = $( helper.origin ).find( obj.selectors.tooltipContent ).html();
60
- instance.content( content );
61
- $( helper.origin )
62
- .focus( function() {
63
- $( this ).tooltipster( 'open' );
64
- })
65
- .blur( function() {
66
- $( this ).tooltipster( 'close' );
67
- });
68
- },
69
- functionReady: function( instance, helper ) {
70
- $( helper.origin ).find( obj.selectors.tooltipContent ).attr( 'aria-hidden', false );
71
- },
72
- functionAfter: function( instance, helper ) {
73
- $( helper.origin ).find( obj.selectors.tooltipContent ).attr( 'aria-hidden', true );
74
- }
75
- } );
76
- };
77
-
78
- /**
79
- * Handles the initialization of the scripts when Document is ready
80
- *
81
- * @since TBD
82
- *
83
- * @return {void}
84
- */
85
- obj.ready = function() {
86
-
87
- obj.initTooltips();
88
-
89
- };
90
-
91
- // Configure on document ready
92
- $document.ready( obj.ready );
93
- }( jQuery, window.underscore || window._, tribe.events.views.scripts ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/resources/postcss/base/_layouts.pcss CHANGED
@@ -8,7 +8,6 @@
8
  .tribe-events-l-container {
9
  margin-bottom: var(--spacer-11);
10
  margin-top: var(--spacer-10);
11
- position: relative; /* @todo: making this relative so the loader can take its dimension. Check where do we want to place it. */
12
 
13
  @media (--viewport-medium) {
14
  margin-bottom: var(--spacer-13);
8
  .tribe-events-l-container {
9
  margin-bottom: var(--spacer-11);
10
  margin-top: var(--spacer-10);
 
11
 
12
  @media (--viewport-medium) {
13
  margin-bottom: var(--spacer-13);
src/resources/postcss/components/_all.pcss CHANGED
@@ -10,9 +10,6 @@
10
  /* Small CTA */
11
  @import "_small-cta.pcss";
12
 
13
- /* Tooltip */
14
- @import "_tooltip.pcss";
15
-
16
  /* Day marker */
17
  @import "_day-marker.pcss";
18
 
10
  /* Small CTA */
11
  @import "_small-cta.pcss";
12
 
 
 
 
13
  /* Day marker */
14
  @import "_day-marker.pcss";
15
 
src/resources/postcss/components/_tooltip.pcss DELETED
@@ -1,40 +0,0 @@
1
- /* -----------------------------------------------------------------------------
2
- *
3
- * Tooltip
4
- *
5
- * ----------------------------------------------------------------------------- */
6
-
7
- .tribe-events {
8
-
9
- .tribe-events-tooltip__content {
10
- position: absolute;
11
- visibility: hidden; /* A11y purposes */
12
- }
13
- }
14
-
15
- /* Defining our tooltipster theme. */
16
- .tooltipster-base.tribe-events-tooltip-theme {
17
- background-color: var(--color-background);
18
- border: 1px solid var(--color-border-default);
19
- box-shadow: var(--box-shadow-tooltip);
20
- padding: var(--spacer-4);
21
- max-width: 254px;
22
-
23
- .tooltipster-box {
24
- background-color: transparent;
25
- border: none;
26
- border-radius: 0;
27
- box-shadow: none;
28
- margin: 0;
29
-
30
- .tooltipster-content {
31
- color: var(--color-text-primary);
32
- overflow: inherit;
33
- padding: 0;
34
- }
35
- }
36
-
37
- .tooltipster-arrow {
38
- display: none;
39
- }
40
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/resources/postcss/views/month/_calendar-event.pcss CHANGED
@@ -7,10 +7,6 @@
7
  .tribe-events-calendar-month__calendar-event {
8
  margin: var(--spacer-1) 0;
9
  position: relative;
10
-
11
- &:first-of-type {
12
- margin-top: 0;
13
- }
14
  }
15
 
16
  .tribe-events-calendar-month__calendar-event-featured-image-wrapper {
@@ -41,8 +37,16 @@
41
  font-weight: var(--font-weight-regular);
42
  }
43
 
44
- .tribe-events-calendar-month__calendar-event-title-link {
45
- color: var(--color-text-primary);
 
 
 
 
 
 
 
 
46
  }
47
 
48
  .tribe-events-calendar-month__calendar-event-tooltip-featured-image-wrapper {
7
  .tribe-events-calendar-month__calendar-event {
8
  margin: var(--spacer-1) 0;
9
  position: relative;
 
 
 
 
10
  }
11
 
12
  .tribe-events-calendar-month__calendar-event-featured-image-wrapper {
37
  font-weight: var(--font-weight-regular);
38
  }
39
 
40
+ .tribe-events-calendar-month__calendar-event-tooltip {
41
+ background-color: var(--color-background);
42
+ border: 1px solid var(--color-border-default);
43
+ box-shadow: var(--box-shadow-tooltip);
44
+ display: none;
45
+ left: calc(var(--spacer-7) * -1);
46
+ padding: var(--spacer-4);
47
+ position: absolute;
48
+ top: calc(100% + var(--spacer-1));
49
+ width: calc(100% + (2 * var(--spacer-7)));
50
  }
51
 
52
  .tribe-events-calendar-month__calendar-event-tooltip-featured-image-wrapper {
src/resources/postcss/views/month/_day.pcss CHANGED
@@ -37,7 +37,7 @@
37
  @mixin desktop-heading-4;
38
  }
39
 
40
- padding: var(--spacer-1) var(--spacer-2);
41
  }
42
 
43
  .tribe-events-calendar-month__day-date-link {
@@ -73,13 +73,4 @@
73
  .tribe-events-calendar-month__day-date--disabled {
74
  color: var(--color-text-disabled);
75
  }
76
-
77
- .tribe-events-calendar-month__day-events {
78
- display: none;
79
-
80
- @media (--viewport-medium) {
81
- display: block;
82
- padding: 0 var(--spacer-2) var(--spacer-2);
83
- }
84
- }
85
  }
37
  @mixin desktop-heading-4;
38
  }
39
 
40
+ padding: var(--spacer-1);
41
  }
42
 
43
  .tribe-events-calendar-month__day-date-link {
73
  .tribe-events-calendar-month__day-date--disabled {
74
  color: var(--color-text-disabled);
75
  }
 
 
 
 
 
 
 
 
 
76
  }
src/resources/postcss/views/month/_multiday-event.pcss CHANGED
@@ -5,34 +5,10 @@
5
  * ----------------------------------------------------------------------------- */
6
 
7
  .tribe-events-calendar-month__event-multiday {
8
- display: none;
9
-
10
- @media (--viewport-medium) {
11
- display: block;
12
- border-radius: 6px;
13
- background-color: white;
14
- overflow: hidden;
15
- position: absolute;
16
- z-index: calc( var(--z-index-spinner-container) - 1 );
17
- }
18
- }
19
-
20
- .tribe-events-calendar-month__event-multiday--start {
21
- @media (--viewport-medium) {
22
- border-radius: 6px 0 0 6px;
23
- &.tribe-events-calendar-month__event-multiday--end {
24
- border-radius: 6px;
25
- }
26
- }
27
- }
28
-
29
- .tribe-events-calendar-month__event-multiday--end {
30
- @media (--viewport-medium) {
31
- border-radius: 0 6px 6px 0;
32
- &.tribe-events-calendar-month__event-multiday--start {
33
- border-radius: 6px;
34
- }
35
- }
36
  }
37
 
38
  .tribe-events-calendar-month__event-multiday-inner {
@@ -50,15 +26,6 @@
50
  }
51
  }
52
 
53
- .tribe-events-calendar-month__multiday-wrapper {
54
-
55
- @media (--viewport-medium) {
56
- height: 19px;
57
- margin-bottom: var(--spacer-0);
58
- position: relative;
59
- }
60
- }
61
-
62
  .tribe-events-calendar-month__event-multiday-inner--border-left {
63
  border-left: 2px solid var(--color-accent-primary);
64
  }
@@ -75,42 +42,4 @@
75
  .tribe-events-calendar-month__event-multiday-title {
76
  font-weight: var(--font-weight-regular);
77
  }
78
-
79
- .tribe-events-calendar-month__event-multiday-width-1 {
80
- width: 100%;
81
- }
82
-
83
- .tribe-events-calendar-month__event-multiday-width-2 {
84
- width: calc( 200% + 2px );
85
- }
86
-
87
- .tribe-events-calendar-month__event-multiday-width-3 {
88
- width: calc( 300% + 3px );
89
- }
90
-
91
- .tribe-events-calendar-month__event-multiday-width-4 {
92
- width: calc( 400% + 4px );
93
- }
94
-
95
- .tribe-events-calendar-month__event-multiday-width-5 {
96
- width: calc( 500% + 5px );
97
- }
98
-
99
- .tribe-events-calendar-month__event-multiday-width-6 {
100
- width: calc( 600% + 6px );
101
- }
102
-
103
- .tribe-events-calendar-month__event-multiday-width-7 {
104
- width: calc( 700% + 7px );
105
- }
106
-
107
- .tribe-events-calendar-month__event-multiday--empty,
108
- .tribe-events-calendar-month__event-multiday--hidden {
109
- display: none;
110
-
111
- @media (--viewport-medium) {
112
- visibility: hidden;
113
- }
114
- }
115
-
116
  }
5
  * ----------------------------------------------------------------------------- */
6
 
7
  .tribe-events-calendar-month__event-multiday {
8
+ border-radius: 6px;
9
+ margin-bottom: var(--spacer-0);
10
+ background-color: white;
11
+ overflow: hidden;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  }
13
 
14
  .tribe-events-calendar-month__event-multiday-inner {
26
  }
27
  }
28
 
 
 
 
 
 
 
 
 
 
29
  .tribe-events-calendar-month__event-multiday-inner--border-left {
30
  border-left: 2px solid var(--color-accent-primary);
31
  }
42
  .tribe-events-calendar-month__event-multiday-title {
43
  font-weight: var(--font-weight-regular);
44
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  }
src/resources/postcss/views/tribe-events-v2.pcss CHANGED
@@ -15,4 +15,13 @@
15
  @import "../components/_all.pcss";
16
 
17
  /* Views */
18
- @import "_all.pcss";
 
 
 
 
 
 
 
 
 
15
  @import "../components/_all.pcss";
16
 
17
  /* Views */
18
+ @import "_all.pcss";
19
+
20
+ /**
21
+ * Views Manager Loader required the views container to be position: relative;
22
+ * @todo move this to somewhere that makes sense
23
+ */
24
+ .tribe-events {
25
+ position: relative;
26
+ }
27
+
src/views/v2/index.php CHANGED
@@ -1,9 +1,8 @@
1
  <?php
2
  use Tribe\Events\Views\V2\Template_Bootstrap;
3
- // @TODO: We're setting the div wrapper over here, but we'll need to revise this.
4
- get_header();?>
5
- <div class="tribe-common tribe-events">
6
- <?php echo tribe( Template_Bootstrap::class )->get_view_html(); ?>
7
- </div>
8
- <?php
9
- get_footer();
1
  <?php
2
  use Tribe\Events\Views\V2\Template_Bootstrap;
3
+
4
+ get_header();
5
+
6
+ echo tribe( Template_Bootstrap::class )->get_view_html();
7
+
8
+ get_footer();
 
src/views/v2/month.php CHANGED
@@ -15,12 +15,6 @@
15
 
16
  $events = $this->get( 'events' );
17
 
18
- /*
19
- Adding this as a temprorary data structure.
20
- @todo: This array should contain the month with real events.
21
- */
22
- $month = apply_filters( 'tribe_events_views_v2_month_demo_data', [] );
23
-
24
  ?>
25
 
26
  <div class="tribe-common-l-container tribe-events-l-container">
@@ -42,7 +36,7 @@ $month = apply_filters( 'tribe_events_views_v2_month_demo_data', [] );
42
 
43
  <?php for ( $day = 0; $day < 7; $day++ ) : ?>
44
 
45
- <?php $this->template( 'month/day', [ 'day' => $day, 'week' => $week, 'month' => $month ] ); ?>
46
 
47
  <?php endfor; ?>
48
 
@@ -55,3 +49,4 @@ $month = apply_filters( 'tribe_events_views_v2_month_demo_data', [] );
55
  </div>
56
 
57
  </div>
 
15
 
16
  $events = $this->get( 'events' );
17
 
 
 
 
 
 
 
18
  ?>
19
 
20
  <div class="tribe-common-l-container tribe-events-l-container">
36
 
37
  <?php for ( $day = 0; $day < 7; $day++ ) : ?>
38
 
39
+ <?php $this->template( 'month/day', [ 'day' => $day, 'week' => $week ] ); ?>
40
 
41
  <?php endfor; ?>
42
 
49
  </div>
50
 
51
  </div>
52
+
src/views/v2/month/calendar-event.php CHANGED
@@ -14,7 +14,7 @@
14
  */
15
 
16
  $event = $this->get( 'event' );
17
- //$event_id = $event->ID;
18
 
19
  $classes = [ 'tribe-events-calendar-month__calendar-event' ];
20
 
@@ -32,8 +32,8 @@ $classes = [ 'tribe-events-calendar-month__calendar-event' ];
32
  <?php $this->template( 'month/calendar-event/date', [ 'event' => $event ] ); ?>
33
  <?php $this->template( 'month/calendar-event/title', [ 'event' => $event ] ); ?>
34
 
35
- <?php $this->template( 'month/calendar-event/tooltip', [ 'event' => $event ] ); ?>
36
-
37
  </div>
38
 
 
 
39
  </article>
14
  */
15
 
16
  $event = $this->get( 'event' );
17
+ $event_id = $event->ID;
18
 
19
  $classes = [ 'tribe-events-calendar-month__calendar-event' ];
20
 
32
  <?php $this->template( 'month/calendar-event/date', [ 'event' => $event ] ); ?>
33
  <?php $this->template( 'month/calendar-event/title', [ 'event' => $event ] ); ?>
34
 
 
 
35
  </div>
36
 
37
+ <?php $this->template( 'month/calendar-event/tooltip', [ 'event' => $event ] ); ?>
38
+
39
  </article>
src/views/v2/month/calendar-event/date.php CHANGED
@@ -12,28 +12,21 @@
12
  * @version 4.9.3
13
  *
14
  */
15
- $event = $this->get( 'event' );
16
- $is_featured = isset( $event->featured ) && $event->featured;
17
- $is_recurring = isset( $event->recurring ) && $event->recurring;
18
  ?>
19
  <div class="tribe-events-calendar-month__calendar-event-datetime">
20
  <time datetime="14:00">2pm</time>
21
  <span class="tribe-events-calendar-month__calendar-event-datetime-separator"> - </span>
22
  <time datetime="18:00">6pm</time>
23
- <?php if ( $is_featured ) : ?>
24
- <em
25
- class="tribe-events-calendar-month__calendar-event-datetime-featured tribe-common-svgicon tribe-common-svgicon--featured"
26
- aria-label="<?php esc_attr_e( 'Featured', 'the-events-calendar' ) ?>"
27
- title="<?php esc_attr_e( 'Featured', 'the-events-calendar' ) ?>"
28
- >
29
- </em>
30
- <?php endif; ?>
31
- <?php if ( $is_recurring ) : ?>
32
  <em
33
  class="tribe-events-calendar-month__calendar-event-datetime-recurring tribe-common-svgicon tribe-common-svgicon--recurring"
34
  aria-label="<?php esc_attr_e( 'Recurring', 'the-events-calendar' ) ?>"
35
  title="<?php esc_attr_e( 'Recurring', 'the-events-calendar' ) ?>"
36
  >
37
  </em>
38
- <?php endif; ?>
39
  </div>
12
  * @version 4.9.3
13
  *
14
  */
 
 
 
15
  ?>
16
  <div class="tribe-events-calendar-month__calendar-event-datetime">
17
  <time datetime="14:00">2pm</time>
18
  <span class="tribe-events-calendar-month__calendar-event-datetime-separator"> - </span>
19
  <time datetime="18:00">6pm</time>
20
+ <em
21
+ class="tribe-events-calendar-month__calendar-event-datetime-featured tribe-common-svgicon tribe-common-svgicon--featured"
22
+ aria-label="<?php esc_attr_e( 'Featured', 'the-events-calendar' ) ?>"
23
+ title="<?php esc_attr_e( 'Featured', 'the-events-calendar' ) ?>"
24
+ >
25
+ </em>
 
 
 
26
  <em
27
  class="tribe-events-calendar-month__calendar-event-datetime-recurring tribe-common-svgicon tribe-common-svgicon--recurring"
28
  aria-label="<?php esc_attr_e( 'Recurring', 'the-events-calendar' ) ?>"
29
  title="<?php esc_attr_e( 'Recurring', 'the-events-calendar' ) ?>"
30
  >
31
  </em>
 
32
  </div>
src/views/v2/month/calendar-event/featured-image.php CHANGED
@@ -12,21 +12,9 @@
12
  * @version 4.9.3
13
  *
14
  */
15
- $event = $this->get( 'event' );
16
-
17
- if ( ! isset( $event->image ) ) { // @todo: use template tags for images here
18
- return;
19
- }
20
-
21
  ?>
22
  <div class="tribe-events-calendar-month__calendar-event-featured-image-wrapper">
23
  <div class="tribe-events-calendar-month__calendar-event-featured-image tribe-common-c-image tribe-common-c-image--bg">
24
- <div
25
- class="tribe-common-c-image__bg"
26
- style="background-image: url('<?php echo esc_attr( $event->image ); ?>');"
27
- role="img"
28
- aria-label="alt text here"
29
- >
30
- </div>
31
  </div>
32
  </div>
12
  * @version 4.9.3
13
  *
14
  */
 
 
 
 
 
 
15
  ?>
16
  <div class="tribe-events-calendar-month__calendar-event-featured-image-wrapper">
17
  <div class="tribe-events-calendar-month__calendar-event-featured-image tribe-common-c-image tribe-common-c-image--bg">
18
+ <div class="tribe-common-c-image__bg"></div>
 
 
 
 
 
 
19
  </div>
20
  </div>
src/views/v2/month/calendar-event/title.php CHANGED
@@ -12,17 +12,14 @@
12
  * @version 4.9.3
13
  *
14
  */
15
- $event = $this->get( 'event' );
16
- $event_id = $event->ID;
17
  ?>
18
- <h3 class="tribe-events-calendar-month__calendar-event-title tribe-common-h8 tribe-events-tooltip"
19
- data-tooltip-content="#tooltip_content-<?php echo esc_attr( $event_id ); ?>"
20
- aria-describedby="#tooltip_content-<?php echo esc_attr( $event_id ); ?>">
21
  <a
22
- title="<?php echo esc_attr( $event->title ); ?>"
 
23
  rel="bookmark"
24
  class="tribe-events-calendar-month__calendar-event-title-link tribe-common-anchor-thin"
25
  >
26
- <?php echo esc_html( $event->title ); ?>
27
  </a>
28
  </h3>
12
  * @version 4.9.3
13
  *
14
  */
 
 
15
  ?>
16
+ <h3 class="tribe-events-calendar-month__calendar-event-title tribe-common-h8">
 
 
17
  <a
18
+ href="#"
19
+ title="Lorem Ipsum"
20
  rel="bookmark"
21
  class="tribe-events-calendar-month__calendar-event-title-link tribe-common-anchor-thin"
22
  >
23
+ Lorem Ipsum
24
  </a>
25
  </h3>
src/views/v2/month/calendar-event/tooltip.php CHANGED
@@ -12,17 +12,11 @@
12
  * @version 4.9.3
13
  *
14
  */
15
- $event = $this->get( 'event' );
16
- $event_id = $event->ID;
17
  ?>
18
- <div class="tribe-events-tooltip__content">
19
- <div
20
- id="tooltip_content-<?php echo esc_attr( $event_id ); ?>"
21
- class="tribe-events-calendar-month__calendar-event-tooltip"
22
- role="tooltip"
23
- >
24
- <?php $this->template( 'month/calendar-event/tooltip/featured-image', [ 'event' => $event ] ); ?>
25
- <?php $this->template( 'month/calendar-event/tooltip/description', [ 'event' => $event ] ); ?>
26
- <?php $this->template( 'month/calendar-event/tooltip/cta', [ 'event' => $event ] ); ?>
27
- </div>
28
  </div>
12
  * @version 4.9.3
13
  *
14
  */
15
+ // $event = $this->get( 'event' );
16
+ // $event_id = $event->ID;
17
  ?>
18
+ <div class="tribe-events-calendar-month__calendar-event-tooltip">
19
+ <?php $this->template( 'month/calendar-event/tooltip/featured-image', [ 'event' => $event ] ); ?>
20
+ <?php $this->template( 'month/calendar-event/tooltip/description', [ 'event' => $event ] ); ?>
21
+ <?php /* RSVP Ticket CTA goes here */ ?>
 
 
 
 
 
 
22
  </div>
src/views/v2/month/calendar-event/tooltip/description.php CHANGED
@@ -14,5 +14,5 @@
14
  */
15
  ?>
16
  <p class="tribe-events-calendar-month__calendar-event-tooltip-description tribe-common-b3">
17
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. In consectetur metus tortor, et maximus libero aliquet in. Praesent rhoncus ultricies neque in imperdiet. Aenean at ex luctus, tempor justo eget, pharetra magna. Nullam ut odio maximus nisi mollis gravida.
18
  </p>
14
  */
15
  ?>
16
  <p class="tribe-events-calendar-month__calendar-event-tooltip-description tribe-common-b3">
17
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. In consectetur metus tortor, et maximus libero aliquet in. Praesent rhoncus ultricies neque in imperdiet. Aenean at ex luctus, tempor justo eget, pharetra magna. Nullam ut odio maximus nisi mollis gravida. Fusce dictum vestibulum pretium. In faucibus aliquet hendrerit. Sed ultrices tristique odio id bibendum. Donec at porta ante, sit amet vehicula erat. Quisque non est dapibus neque faucibus faucibus. Nulla ac justo ornare, facilisis mi id, vulputate lorem.
18
  </p>
src/views/v2/month/calendar-event/tooltip/featured-image.php CHANGED
@@ -12,20 +12,9 @@
12
  * @version 4.9.3
13
  *
14
  */
15
- $event = $this->get( 'event' );
16
-
17
- if ( ! isset( $event->image ) ) { // @todo: use template tags for images here
18
- return;
19
- }
20
  ?>
21
  <div class="tribe-events-calendar-month__calendar-event-tooltip-featured-image-wrapper">
22
  <div class="tribe-events-calendar-month__calendar-event-tooltip-featured-image tribe-common-c-image tribe-common-c-image--bg">
23
- <div
24
- class="tribe-common-c-image__bg"
25
- style="background-image: url('<?php echo esc_attr( $event->image ); ?>');"
26
- role="img"
27
- aria-label="alt text here"
28
- >
29
- </div>
30
  </div>
31
  </div>
12
  * @version 4.9.3
13
  *
14
  */
 
 
 
 
 
15
  ?>
16
  <div class="tribe-events-calendar-month__calendar-event-tooltip-featured-image-wrapper">
17
  <div class="tribe-events-calendar-month__calendar-event-tooltip-featured-image tribe-common-c-image tribe-common-c-image--bg">
18
+ <div class="tribe-common-c-image__bg"></div>
 
 
 
 
 
 
19
  </div>
20
  </div>
src/views/v2/month/day-events-multiday.php DELETED
@@ -1,39 +0,0 @@
1
- <?php
2
- /**
3
- * View: Month View - Day Events Multiday
4
- *
5
- * Override this template in your own theme by creating a file at:
6
- * [your-theme]/tribe/events/views/v2/month/day-events-multiday.php
7
- *
8
- * See more documentation about our views templating system.
9
- *
10
- * @link {INSERT_ARTCILE_LINK_HERE}
11
- *
12
- * @version TBD
13
- *
14
- */
15
- $day_number = $this->get( 'day' );
16
- $month = $this->get( 'month' );
17
-
18
- // Get the multiday events for that day
19
- // @todo: This is a function with demo purposes.
20
- $events_multiday = tribe_events_views_v2_month_demo_day_get_events_multiday( $month, $day_number );
21
-
22
- if ( ! $events_multiday ) {
23
- return;
24
- }
25
- ?>
26
-
27
- <?php foreach ( $events_multiday as $event ) : ?>
28
-
29
- <?php
30
- // we receive false, we need to fill an empty space
31
- if ( false === $event ) {
32
- $this->template( 'month/event-multiday-spacer' );
33
- continue;
34
- }
35
-
36
- $this->template( 'month/event-multiday', [ 'event' => (object) $event, 'day' => $day_number ] );
37
- ?>
38
-
39
- <?php endforeach; ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/views/v2/month/day-events.php DELETED
@@ -1,35 +0,0 @@
1
- <?php
2
- /**
3
- * View: Month View - Day Events
4
- *
5
- * Override this template in your own theme by creating a file at:
6
- * [your-theme]/tribe/events/views/v2/month/day-events.php
7
- *
8
- * See more documentation about our views templating system.
9
- *
10
- * @link {INSERT_ARTCILE_LINK_HERE}
11
- *
12
- * @version TBD
13
- *
14
- */
15
- $day_number = $this->get( 'day' );
16
- $month = $this->get( 'month' );
17
-
18
- // Get the multiday events for that day
19
- // @todo: This is a function with demo purposes.
20
- $events_regular = tribe_events_views_v2_month_demo_day_get_events_regular( $month, $day_number );
21
-
22
- // Bail if there are no events
23
- if ( ! $events_regular ) {
24
- return;
25
- }
26
- ?>
27
- <div class="tribe-events-calendar-month__day-events">
28
-
29
- <?php foreach ( $events_regular as $event ) : ?>
30
-
31
- <?php $this->template( 'month/calendar-event', [ 'event' => (object) $event, 'day' => $day_number ] ); ?>
32
-
33
- <?php endforeach; ?>
34
-
35
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/views/v2/month/day.php CHANGED
@@ -14,8 +14,7 @@
14
  */
15
  // @todo: This is just for presentation purposes, while building the view.
16
  $day_number = ( $week < 1 ) ? ( $day + 1 ) * ( $week + 1 ) : ( $day + 1 ) + $week * 7;
17
- $month_number = 6;
18
- $month = $this->get( 'month' );
19
 
20
  $day_title_classes = [ 'tribe-events-calendar-month__day-date' ];
21
  $day_title_link_classes = [ 'tribe-events-calendar-month__day-date-link' ];
@@ -26,7 +25,6 @@ if ( $day_number == date( 'd', time() ) ) {
26
  $day_title_classes[] = 'tribe-events-calendar-month__day-date--current';
27
  $day_title_link_classes[] = 'tribe-events-calendar-month__day-date-link--current';
28
  }
29
-
30
  ?>
31
 
32
  <div class="tribe-events-calendar-month__day" role="gridcell" aria-labelledby="<?php echo esc_attr( $day_id ); ?>">
@@ -43,9 +41,5 @@ if ( $day_number == date( 'd', time() ) ) {
43
  </time>
44
  </h3>
45
  </div>
46
-
47
- <?php $this->template( 'month/day-events-multiday', [ 'day' => $day_number, 'month' => $month ] ); ?>
48
-
49
- <?php $this->template( 'month/day-events', [ 'day' => $day_number, 'month' => $month ] ); ?>
50
-
51
  </div>
14
  */
15
  // @todo: This is just for presentation purposes, while building the view.
16
  $day_number = ( $week < 1 ) ? ( $day + 1 ) * ( $week + 1 ) : ( $day + 1 ) + $week * 7;
17
+ $month_number = 5;
 
18
 
19
  $day_title_classes = [ 'tribe-events-calendar-month__day-date' ];
20
  $day_title_link_classes = [ 'tribe-events-calendar-month__day-date-link' ];
25
  $day_title_classes[] = 'tribe-events-calendar-month__day-date--current';
26
  $day_title_link_classes[] = 'tribe-events-calendar-month__day-date-link--current';
27
  }
 
28
  ?>
29
 
30
  <div class="tribe-events-calendar-month__day" role="gridcell" aria-labelledby="<?php echo esc_attr( $day_id ); ?>">
41
  </time>
42
  </h3>
43
  </div>
44
+ <!-- Events for this day will be listed here -->
 
 
 
 
45
  </div>
src/views/v2/month/event-multiday-spacer.php DELETED
@@ -1,19 +0,0 @@
1
- <?php
2
- /**
3
- * View: Month Event Multiday - Hidden Event / Spacer
4
- *
5
- * Override this template in your own theme by creating a file at:
6
- * [your-theme]/tribe/events/views/v2/month/event-multiday.php
7
- *
8
- * See more documentation about our views templating system.
9
- *
10
- * @link {INSERT_ARTCILE_LINK_HERE}
11
- *
12
- * @version TBD
13
- *
14
- */
15
-
16
- ?>
17
- <div class="tribe-events-calendar-month__multiday-wrapper">
18
- <div class="tribe-events-calendar-month__event-multiday--empty" aria-hidden="true"></div>
19
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/views/v2/month/event-multiday.php CHANGED
@@ -15,55 +15,25 @@
15
 
16
  $event = $this->get( 'event' );
17
  $event_id = $event->ID;
18
- $day_number = $this->get( 'day' );
19
 
20
  $classes = [ 'tribe-events-calendar-month__event-multiday' ];
21
- $classes_inner = [ 'tribe-events-calendar-month__event-multiday-inner' ];
22
 
23
- // Check if it's featured.
24
- if ( $is_featured = isset( $event->featured ) && $event->featured ) { // @todo: later use tribe( 'tec.featured_events' )->is_featured( $event_id ) or similar
25
  $classes[] = 'tribe-events-calendar-month__event-multiday--featured';
26
  }
27
-
28
- // If it starts today and this week, let's add the left border and set the width
29
- if ( $starts_today = $event->start_date == $day_number ) { // @todo:later we can check mm/dd or even year
30
-
31
- // @todo: check if it ends this week or not, in order to split the duration
32
- $classes[] = 'tribe-events-calendar-month__event-multiday-width-' . $event->duration;
33
-
34
- if ( isset( $event->start_this_week ) && $event->start_this_week ) {
35
- // adding the left border because it starts today
36
- $classes_inner[] = 'tribe-events-calendar-month__event-multiday-inner--border-left';
37
- $classes[] = 'tribe-events-calendar-month__event-multiday--start';
38
- }
39
-
40
- } else {
41
- $classes[] = 'tribe-events-calendar-month__event-multiday--hidden';
42
- }
43
-
44
- // if it ends this week, let's add the right border
45
- $end_this_week = isset( $event->end_this_week ) && $event->end_this_week;
46
- if ( $end_this_week ) {
47
- $classes_inner[] = 'tribe-events-calendar-month__event-multiday-inner--border-right';
48
- $classes[] = 'tribe-events-calendar-month__event-multiday--end';
49
- }
50
  ?>
51
- <div class="tribe-events-calendar-month__multiday-wrapper">
52
-
53
- <div class="<?php echo esc_attr( implode( ' ', $classes ) ); ?>">
54
- <time datetime="the-date-and-or-duration" class="tribe-common-a11y-visual-hide">The date and duration</time>
55
- <a class="<?php echo esc_attr( implode( ' ', $classes_inner ) ); ?>">
56
- <?php if ( $is_featured ) : ?>
57
- <em
58
- class="tribe-events-calendar-month__event-multiday-featured-icon tribe-common-svgicon tribe-common-svgicon--featured"
59
- aria-label="<?php esc_attr_e( 'Featured', 'the-events-calendar' ); ?>"
60
- title="<?php esc_attr_e( 'Featured', 'the-events-calendar' ); ?>"
61
- ></em>
62
- <?php endif; ?>
63
- <h3 class="tribe-events-calendar-month__event-multiday-title tribe-common-h8">
64
- <?php echo $event->title; ?>
65
- </h3>
66
- </a>
67
- </div>
68
-
69
  </div>
15
 
16
  $event = $this->get( 'event' );
17
  $event_id = $event->ID;
 
18
 
19
  $classes = [ 'tribe-events-calendar-month__event-multiday' ];
 
20
 
21
+ if ( $is_featured = tribe( 'tec.featured_events' )->is_featured( $event_id ) ) {
 
22
  $classes[] = 'tribe-events-calendar-month__event-multiday--featured';
23
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  ?>
25
+ <div class="<?php echo esc_attr( implode( ' ', $classes ) ); ?>">
26
+ <time datetime="the-date-and-or-duration" class="tribe-common-a11y-visual-hide">The date and duration</time>
27
+ <a class="tribe-events-calendar-month__event-multiday-inner tribe-events-calendar-month__event-multiday-inner--border-left tribe-events-calendar-month__event-multiday-inner--border-right">
28
+ <?php if ( $is_featured ) : ?>
29
+ <em
30
+ class="tribe-events-calendar-month__event-multiday-featured-icon tribe-common-svgicon tribe-common-svgicon--featured"
31
+ aria-label="<?php esc_attr_e( 'Featured', 'the-events-calendar' ); ?>"
32
+ title="<?php esc_attr_e( 'Featured', 'the-events-calendar' ); ?>"
33
+ ></em>
34
+ <?php endif; ?>
35
+ <h3 class="tribe-events-calendar-month__event-multiday-title tribe-common-h8">
36
+ Lorem ipsum
37
+ </h3>
38
+ </a>
 
 
 
 
39
  </div>
src/views/v2/month/{calendar-event/tooltip → tooltip}/cta.php RENAMED
@@ -13,7 +13,7 @@
13
  *
14
  */
15
  ?>
16
- <div class="tribe-events-c-small-cta tribe-events-calendar-month__calendar-event-tooltip-cta">
17
  <a class="tribe-events-c-small-cta__link tribe-common-cta tribe-common-cta--alt">Buy Now</a>
18
  <span class="tribe-events-c-small-cta__price">$10</span>
19
  </div>
13
  *
14
  */
15
  ?>
16
+ <div class="tribe-events-c-small-cta">
17
  <a class="tribe-events-c-small-cta__link tribe-common-cta tribe-common-cta--alt">Buy Now</a>
18
  <span class="tribe-events-c-small-cta__price">$10</span>
19
  </div>
the-events-calendar.php CHANGED
@@ -2,7 +2,7 @@
2
  /*
3
  Plugin Name: The Events Calendar
4
  Description: The Events Calendar is a carefully crafted, extensible plugin that lets you easily share your events. Beautiful. Solid. Awesome.
5
- Version: 4.9.3
6
  Author: Modern Tribe, Inc.
7
  Author URI: http://m.tri.be/1x
8
  Text Domain: the-events-calendar
2
  /*
3
  Plugin Name: The Events Calendar
4
  Description: The Events Calendar is a carefully crafted, extensible plugin that lets you easily share your events. Beautiful. Solid. Awesome.
5
+ Version: 4.9.3.1
6
  Author: Modern Tribe, Inc.
7
  Author URI: http://m.tri.be/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 ComposerAutoloaderInitb866a3ab9ee6be3ce1ed0cf476650f52::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit5ce369a6eb0c98361b55fe85cd99c7b3::getLoader();
vendor/composer/autoload_classmap.php CHANGED
@@ -36,6 +36,7 @@ return array(
36
  'Tribe\\Events\\Views\\V2\\TestCase' => $baseDir . '/tests/views_integration/Tribe/Events/Views/V2/TestCase.php',
37
  'Tribe\\Events\\Views\\V2\\TestCaseTest' => $baseDir . '/tests/views_integration/Tribe/Events/Views/V2/TestCaseTest.php',
38
  'Tribe\\Events\\Views\\V2\\TestHtmlCase' => $baseDir . '/tests/views_integration/Tribe/Events/Views/V2/TestHtmlCase.php',
 
39
  'Tribe\\Events\\Views\\V2\\Theme_Compatibility' => $baseDir . '/src/Tribe/Views/V2/Theme_Compatibility.php',
40
  'Tribe\\Events\\Views\\V2\\Url' => $baseDir . '/src/Tribe/Views/V2/Url.php',
41
  'Tribe\\Events\\Views\\V2\\UrlTest' => $baseDir . '/tests/views_integration/Tribe/Events/Views/V2/UrlTest.php',
@@ -45,10 +46,6 @@ return array(
45
  'Tribe\\Events\\Views\\V2\\View_Interface' => $baseDir . '/src/Tribe/Views/V2/View_Interface.php',
46
  'Tribe\\Events\\Views\\V2\\Views\\HTML\\LoaderTest' => $baseDir . '/tests/views_integration/Tribe/Events/Views/V2/HTML/LoaderTest.php',
47
  'Tribe\\Events\\Views\\V2\\Views\\HTML\\MonthTest' => $baseDir . '/tests/views_integration/Tribe/Events/Views/V2/HTML/MonthTest.php',
48
- 'Tribe\\Events\\Views\\V2\\Views\\HTML\\Month\\CalendarEvent\\MonthCalendarEventDateTest' => $baseDir . '/tests/views_integration/Tribe/Events/Views/V2/HTML/Month/CalendarEvent/MonthCalendarEventDateTest.php',
49
- 'Tribe\\Events\\Views\\V2\\Views\\HTML\\Month\\CalendarEvent\\MonthCalendarEventFeaturedImageTest' => $baseDir . '/tests/views_integration/Tribe/Events/Views/V2/HTML/Month/CalendarEvent/MonthCalendarEventFeaturedImageTest.php',
50
- 'Tribe\\Events\\Views\\V2\\Views\\HTML\\Month\\CalendarEvent\\MonthCalendarEventTitleTest' => $baseDir . '/tests/views_integration/Tribe/Events/Views/V2/HTML/Month/CalendarEvent/MonthCalendarEventTitleTest.php',
51
- 'Tribe\\Events\\Views\\V2\\Views\\HTML\\Month\\CalendarEvent\\MonthCalendarEventTooltipTest' => $baseDir . '/tests/views_integration/Tribe/Events/Views/V2/HTML/Month/CalendarEvent/MonthCalendarEventTooltipTest.php',
52
  'Tribe\\Events\\Views\\V2\\Views\\HTML\\Month\\MonthDayTest' => $baseDir . '/tests/views_integration/Tribe/Events/Views/V2/HTML/Month/MonthDayTest.php',
53
  'Tribe\\Events\\Views\\V2\\Views\\HTML\\Month\\MonthEventMultidayTest' => $baseDir . '/tests/views_integration/Tribe/Events/Views/V2/HTML/Month/MonthEventMultidayTest.php',
54
  'Tribe\\Events\\Views\\V2\\Views\\HTML\\Month\\MonthGridHeaderTest' => $baseDir . '/tests/views_integration/Tribe/Events/Views/V2/HTML/Month/MonthGridHeaderTest.php',
36
  'Tribe\\Events\\Views\\V2\\TestCase' => $baseDir . '/tests/views_integration/Tribe/Events/Views/V2/TestCase.php',
37
  'Tribe\\Events\\Views\\V2\\TestCaseTest' => $baseDir . '/tests/views_integration/Tribe/Events/Views/V2/TestCaseTest.php',
38
  'Tribe\\Events\\Views\\V2\\TestHtmlCase' => $baseDir . '/tests/views_integration/Tribe/Events/Views/V2/TestHtmlCase.php',
39
+ 'Tribe\\Events\\Views\\V2\\ThemeCompatibilityTest' => $baseDir . '/tests/views_integration/Tribe/Events/Views/V2/ThemeCompatibilityTest.php',
40
  'Tribe\\Events\\Views\\V2\\Theme_Compatibility' => $baseDir . '/src/Tribe/Views/V2/Theme_Compatibility.php',
41
  'Tribe\\Events\\Views\\V2\\Url' => $baseDir . '/src/Tribe/Views/V2/Url.php',
42
  'Tribe\\Events\\Views\\V2\\UrlTest' => $baseDir . '/tests/views_integration/Tribe/Events/Views/V2/UrlTest.php',
46
  'Tribe\\Events\\Views\\V2\\View_Interface' => $baseDir . '/src/Tribe/Views/V2/View_Interface.php',
47
  'Tribe\\Events\\Views\\V2\\Views\\HTML\\LoaderTest' => $baseDir . '/tests/views_integration/Tribe/Events/Views/V2/HTML/LoaderTest.php',
48
  'Tribe\\Events\\Views\\V2\\Views\\HTML\\MonthTest' => $baseDir . '/tests/views_integration/Tribe/Events/Views/V2/HTML/MonthTest.php',
 
 
 
 
49
  'Tribe\\Events\\Views\\V2\\Views\\HTML\\Month\\MonthDayTest' => $baseDir . '/tests/views_integration/Tribe/Events/Views/V2/HTML/Month/MonthDayTest.php',
50
  'Tribe\\Events\\Views\\V2\\Views\\HTML\\Month\\MonthEventMultidayTest' => $baseDir . '/tests/views_integration/Tribe/Events/Views/V2/HTML/Month/MonthEventMultidayTest.php',
51
  'Tribe\\Events\\Views\\V2\\Views\\HTML\\Month\\MonthGridHeaderTest' => $baseDir . '/tests/views_integration/Tribe/Events/Views/V2/HTML/Month/MonthGridHeaderTest.php',
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInitb866a3ab9ee6be3ce1ed0cf476650f52
6
  {
7
  private static $loader;
8
 
@@ -19,15 +19,15 @@ class ComposerAutoloaderInitb866a3ab9ee6be3ce1ed0cf476650f52
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInitb866a3ab9ee6be3ce1ed0cf476650f52', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInitb866a3ab9ee6be3ce1ed0cf476650f52', '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\ComposerStaticInitb866a3ab9ee6be3ce1ed0cf476650f52::getInitializer($loader));
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 ComposerAutoloaderInit5ce369a6eb0c98361b55fe85cd99c7b3
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInit5ce369a6eb0c98361b55fe85cd99c7b3', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit5ce369a6eb0c98361b55fe85cd99c7b3', '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\ComposerStaticInit5ce369a6eb0c98361b55fe85cd99c7b3::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 ComposerStaticInitb866a3ab9ee6be3ce1ed0cf476650f52
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'T' =>
@@ -61,6 +61,7 @@ class ComposerStaticInitb866a3ab9ee6be3ce1ed0cf476650f52
61
  'Tribe\\Events\\Views\\V2\\TestCase' => __DIR__ . '/../..' . '/tests/views_integration/Tribe/Events/Views/V2/TestCase.php',
62
  'Tribe\\Events\\Views\\V2\\TestCaseTest' => __DIR__ . '/../..' . '/tests/views_integration/Tribe/Events/Views/V2/TestCaseTest.php',
63
  'Tribe\\Events\\Views\\V2\\TestHtmlCase' => __DIR__ . '/../..' . '/tests/views_integration/Tribe/Events/Views/V2/TestHtmlCase.php',
 
64
  'Tribe\\Events\\Views\\V2\\Theme_Compatibility' => __DIR__ . '/../..' . '/src/Tribe/Views/V2/Theme_Compatibility.php',
65
  'Tribe\\Events\\Views\\V2\\Url' => __DIR__ . '/../..' . '/src/Tribe/Views/V2/Url.php',
66
  'Tribe\\Events\\Views\\V2\\UrlTest' => __DIR__ . '/../..' . '/tests/views_integration/Tribe/Events/Views/V2/UrlTest.php',
@@ -70,10 +71,6 @@ class ComposerStaticInitb866a3ab9ee6be3ce1ed0cf476650f52
70
  'Tribe\\Events\\Views\\V2\\View_Interface' => __DIR__ . '/../..' . '/src/Tribe/Views/V2/View_Interface.php',
71
  'Tribe\\Events\\Views\\V2\\Views\\HTML\\LoaderTest' => __DIR__ . '/../..' . '/tests/views_integration/Tribe/Events/Views/V2/HTML/LoaderTest.php',
72
  'Tribe\\Events\\Views\\V2\\Views\\HTML\\MonthTest' => __DIR__ . '/../..' . '/tests/views_integration/Tribe/Events/Views/V2/HTML/MonthTest.php',
73
- 'Tribe\\Events\\Views\\V2\\Views\\HTML\\Month\\CalendarEvent\\MonthCalendarEventDateTest' => __DIR__ . '/../..' . '/tests/views_integration/Tribe/Events/Views/V2/HTML/Month/CalendarEvent/MonthCalendarEventDateTest.php',
74
- 'Tribe\\Events\\Views\\V2\\Views\\HTML\\Month\\CalendarEvent\\MonthCalendarEventFeaturedImageTest' => __DIR__ . '/../..' . '/tests/views_integration/Tribe/Events/Views/V2/HTML/Month/CalendarEvent/MonthCalendarEventFeaturedImageTest.php',
75
- 'Tribe\\Events\\Views\\V2\\Views\\HTML\\Month\\CalendarEvent\\MonthCalendarEventTitleTest' => __DIR__ . '/../..' . '/tests/views_integration/Tribe/Events/Views/V2/HTML/Month/CalendarEvent/MonthCalendarEventTitleTest.php',
76
- 'Tribe\\Events\\Views\\V2\\Views\\HTML\\Month\\CalendarEvent\\MonthCalendarEventTooltipTest' => __DIR__ . '/../..' . '/tests/views_integration/Tribe/Events/Views/V2/HTML/Month/CalendarEvent/MonthCalendarEventTooltipTest.php',
77
  'Tribe\\Events\\Views\\V2\\Views\\HTML\\Month\\MonthDayTest' => __DIR__ . '/../..' . '/tests/views_integration/Tribe/Events/Views/V2/HTML/Month/MonthDayTest.php',
78
  'Tribe\\Events\\Views\\V2\\Views\\HTML\\Month\\MonthEventMultidayTest' => __DIR__ . '/../..' . '/tests/views_integration/Tribe/Events/Views/V2/HTML/Month/MonthEventMultidayTest.php',
79
  'Tribe\\Events\\Views\\V2\\Views\\HTML\\Month\\MonthGridHeaderTest' => __DIR__ . '/../..' . '/tests/views_integration/Tribe/Events/Views/V2/HTML/Month/MonthGridHeaderTest.php',
@@ -88,9 +85,9 @@ class ComposerStaticInitb866a3ab9ee6be3ce1ed0cf476650f52
88
  public static function getInitializer(ClassLoader $loader)
89
  {
90
  return \Closure::bind(function () use ($loader) {
91
- $loader->prefixLengthsPsr4 = ComposerStaticInitb866a3ab9ee6be3ce1ed0cf476650f52::$prefixLengthsPsr4;
92
- $loader->prefixDirsPsr4 = ComposerStaticInitb866a3ab9ee6be3ce1ed0cf476650f52::$prefixDirsPsr4;
93
- $loader->classMap = ComposerStaticInitb866a3ab9ee6be3ce1ed0cf476650f52::$classMap;
94
 
95
  }, null, ClassLoader::class);
96
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit5ce369a6eb0c98361b55fe85cd99c7b3
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'T' =>
61
  'Tribe\\Events\\Views\\V2\\TestCase' => __DIR__ . '/../..' . '/tests/views_integration/Tribe/Events/Views/V2/TestCase.php',
62
  'Tribe\\Events\\Views\\V2\\TestCaseTest' => __DIR__ . '/../..' . '/tests/views_integration/Tribe/Events/Views/V2/TestCaseTest.php',
63
  'Tribe\\Events\\Views\\V2\\TestHtmlCase' => __DIR__ . '/../..' . '/tests/views_integration/Tribe/Events/Views/V2/TestHtmlCase.php',
64
+ 'Tribe\\Events\\Views\\V2\\ThemeCompatibilityTest' => __DIR__ . '/../..' . '/tests/views_integration/Tribe/Events/Views/V2/ThemeCompatibilityTest.php',
65
  'Tribe\\Events\\Views\\V2\\Theme_Compatibility' => __DIR__ . '/../..' . '/src/Tribe/Views/V2/Theme_Compatibility.php',
66
  'Tribe\\Events\\Views\\V2\\Url' => __DIR__ . '/../..' . '/src/Tribe/Views/V2/Url.php',
67
  'Tribe\\Events\\Views\\V2\\UrlTest' => __DIR__ . '/../..' . '/tests/views_integration/Tribe/Events/Views/V2/UrlTest.php',
71
  'Tribe\\Events\\Views\\V2\\View_Interface' => __DIR__ . '/../..' . '/src/Tribe/Views/V2/View_Interface.php',
72
  'Tribe\\Events\\Views\\V2\\Views\\HTML\\LoaderTest' => __DIR__ . '/../..' . '/tests/views_integration/Tribe/Events/Views/V2/HTML/LoaderTest.php',
73
  'Tribe\\Events\\Views\\V2\\Views\\HTML\\MonthTest' => __DIR__ . '/../..' . '/tests/views_integration/Tribe/Events/Views/V2/HTML/MonthTest.php',
 
 
 
 
74
  'Tribe\\Events\\Views\\V2\\Views\\HTML\\Month\\MonthDayTest' => __DIR__ . '/../..' . '/tests/views_integration/Tribe/Events/Views/V2/HTML/Month/MonthDayTest.php',
75
  'Tribe\\Events\\Views\\V2\\Views\\HTML\\Month\\MonthEventMultidayTest' => __DIR__ . '/../..' . '/tests/views_integration/Tribe/Events/Views/V2/HTML/Month/MonthEventMultidayTest.php',
76
  'Tribe\\Events\\Views\\V2\\Views\\HTML\\Month\\MonthGridHeaderTest' => __DIR__ . '/../..' . '/tests/views_integration/Tribe/Events/Views/V2/HTML/Month/MonthGridHeaderTest.php',
85
  public static function getInitializer(ClassLoader $loader)
86
  {
87
  return \Closure::bind(function () use ($loader) {
88
+ $loader->prefixLengthsPsr4 = ComposerStaticInit5ce369a6eb0c98361b55fe85cd99c7b3::$prefixLengthsPsr4;
89
+ $loader->prefixDirsPsr4 = ComposerStaticInit5ce369a6eb0c98361b55fe85cd99c7b3::$prefixDirsPsr4;
90
+ $loader->classMap = ComposerStaticInit5ce369a6eb0c98361b55fe85cd99c7b3::$classMap;
91
 
92
  }, null, ClassLoader::class);
93
  }