The Events Calendar - Version 6.0.6

Version Description

= [6.0] = Please see the changelog for the complete list of changes in this release. Previous versions of The Events Calendar are not cross-compatible with 6.X add-ons. Remember to always make a backup of your database and files before updating!

Download this release

Release Info

Developer bordoni
Plugin Icon The Events Calendar
Version 6.0.6
Comparing to
See all releases

Code changes from version 6.0.5 to 6.0.6

Files changed (67) hide show
  1. common/lang/tribe-common-de_DE.mo +0 -0
  2. common/lang/tribe-common.pot +26 -26
  3. common/src/Common/Storage/Timed_Option.php +340 -0
  4. common/src/Tribe/Admin/Notice/Date_Based.php +14 -3
  5. common/src/Tribe/Feature_Detection.php +8 -16
  6. common/src/Tribe/Main.php +5 -1
  7. common/src/Tribe/Process/Tester.php +2 -1
  8. common/src/Tribe/Utils/Collection_Trait.php +46 -0
  9. common/src/Tribe/Utils/Lazy_Collection.php +1 -0
  10. common/src/Tribe/Utils/Lazy_String.php +29 -3
  11. common/src/Tribe/Utils/Post_Thumbnail.php +38 -12
  12. common/src/functions/transient.php +25 -0
  13. common/src/functions/utils.php +1 -1
  14. common/src/resources/css/common-full.min.css +1 -1
  15. common/src/resources/css/dialog.min.css +1 -1
  16. common/src/resources/css/variables-skeleton.min.css +1 -1
  17. common/vendor/autoload.php +1 -1
  18. common/vendor/autoload_52.php +1 -1
  19. common/vendor/composer/autoload_classmap.php +1 -0
  20. common/vendor/composer/autoload_real.php +4 -4
  21. common/vendor/composer/autoload_real_52.php +3 -3
  22. common/vendor/composer/autoload_static.php +6 -5
  23. common/vendor/tribe-selectWoo/dist/js/selectWoo.full.js +6 -1
  24. common/vendor/tribe-selectWoo/dist/js/selectWoo.full.min.js +16 -1
  25. lang/the-events-calendar-de_DE.mo +0 -0
  26. lang/the-events-calendar-de_DE_formal.mo +0 -0
  27. lang/the-events-calendar-hr.mo +0 -0
  28. lang/the-events-calendar-ru_RU.mo +0 -0
  29. lang/the-events-calendar-sk_SK.mo +0 -0
  30. lang/the-events-calendar.pot +25 -21
  31. readme.txt +21 -1
  32. src/Events/Custom_Tables/V1/Migration/Admin/Phase_View_Renderer.php +16 -6
  33. src/Events/Custom_Tables/V1/Migration/Reports/Event_Report.php +1 -1
  34. src/Events/Custom_Tables/V1/Models/Builder.php +11 -1
  35. src/Events/Custom_Tables/V1/Models/Event.php +0 -3
  36. src/Events/Custom_Tables/V1/Models/Model.php +45 -13
  37. src/Events/Custom_Tables/V1/Schema_Builder/Abstract_Custom_Field.php +10 -1
  38. src/Events/Custom_Tables/V1/Schema_Builder/Abstract_Custom_Table.php +55 -0
  39. src/Events/Custom_Tables/V1/Tables/Occurrences.php +21 -16
  40. src/Events/Custom_Tables/V1/WP_Query/Monitors/Query_Monitor.php +2 -1
  41. src/Events/Custom_Tables/V1/WP_Query/Provider.php +28 -1
  42. src/Events/Custom_Tables/V1/WP_Query/Repository/Custom_Tables_Query_Filters.php +1 -36
  43. src/Events/Custom_Tables/V1/admin-views/migration/partials/failure-event-loop.php +1 -1
  44. src/Events/Custom_Tables/V1/admin-views/migration/phase/migration-prompt.php +30 -19
  45. src/Tribe/API.php +19 -2
  46. src/Tribe/Admin/Timezone_Updater.php +9 -1
  47. src/Tribe/Front_Page_View.php +25 -0
  48. src/Tribe/Main.php +1 -1
  49. src/Tribe/Query.php +107 -68
  50. src/Tribe/Repositories/Event.php +10 -5
  51. src/Tribe/Rewrite.php +5 -1
  52. src/Tribe/Service_Providers/Context.php +9 -0
  53. src/Tribe/Views/V2/Hooks.php +0 -2
  54. src/Tribe/Views/V2/Query/Event_Query_Controller.php +3 -5
  55. src/Tribe/Views/V2/Query/Hide_From_Upcoming_Controller.php +56 -0
  56. src/Tribe/Views/V2/Service_Provider.php +7 -4
  57. src/Tribe/Views/V2/View.php +5 -5
  58. src/Tribe/Views/V2/Views/List_View.php +8 -6
  59. src/Tribe/Views/V2/iCalendar/Request.php +0 -1
  60. src/deprecated/Traits/Tribe__Events__Query_Deprecated.php +33 -0
  61. src/resources/js/views/manager.js +2 -2
  62. src/views/modules/map-basic.php +1 -0
  63. the-events-calendar.php +1 -1
  64. vendor/autoload.php +1 -1
  65. vendor/composer/autoload_classmap.php +2 -0
  66. vendor/composer/autoload_real.php +4 -4
  67. vendor/composer/autoload_static.php +6 -4
common/lang/tribe-common-de_DE.mo CHANGED
Binary file
common/lang/tribe-common.pot CHANGED
@@ -2,15 +2,15 @@
2
  # This file is distributed under the GPLv2 or later.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Tribe Common 5.0.4\n"
6
  "Report-Msgid-Bugs-To: https://evnt.is/191x\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "POT-Creation-Date: 2022-11-25T10:27:59-08:00\n"
13
- "PO-Revision-Date: 2022-11-25 18:28\n"
14
  "X-Generator: WP-CLI 2.7.1\n"
15
  "X-Domain: tribe-common\n"
16
 
@@ -3037,89 +3037,89 @@ msgstr ""
3037
  msgid "Null logger (will log nothing)"
3038
  msgstr ""
3039
 
3040
- #: src/Tribe/Main.php:383
3041
  msgid ": activate to sort column ascending"
3042
  msgstr ""
3043
 
3044
- #: src/Tribe/Main.php:384
3045
  msgid ": activate to sort column descending"
3046
  msgstr ""
3047
 
3048
- #: src/Tribe/Main.php:386
3049
  msgid "Show _MENU_ entries"
3050
  msgstr ""
3051
 
3052
- #: src/Tribe/Main.php:387
3053
  msgid "No data available in table"
3054
  msgstr ""
3055
 
3056
- #: src/Tribe/Main.php:388
3057
  msgid "Showing _START_ to _END_ of _TOTAL_ entries"
3058
  msgstr ""
3059
 
3060
- #: src/Tribe/Main.php:389
3061
  msgid "Showing 0 to 0 of 0 entries"
3062
  msgstr ""
3063
 
3064
- #: src/Tribe/Main.php:390
3065
  msgid "(filtered from _MAX_ total entries)"
3066
  msgstr ""
3067
 
3068
- #: src/Tribe/Main.php:391
3069
  msgid "No matching records found"
3070
  msgstr ""
3071
 
3072
- #: src/Tribe/Main.php:392
3073
  msgid "Search:"
3074
  msgstr ""
3075
 
3076
- #: src/Tribe/Main.php:393
3077
  msgid "All items on this page were selected. "
3078
  msgstr ""
3079
 
3080
- #: src/Tribe/Main.php:394
3081
  msgid "Select all pages"
3082
  msgstr ""
3083
 
3084
- #: src/Tribe/Main.php:395
3085
  msgid "Clear Selection."
3086
  msgstr ""
3087
 
3088
- #: src/Tribe/Main.php:397
3089
  msgid "All"
3090
  msgstr ""
3091
 
3092
- #: src/Tribe/Main.php:398
3093
- #: src/Tribe/Main.php:415
3094
  msgid "Next"
3095
  msgstr ""
3096
 
3097
- #: src/Tribe/Main.php:399
3098
  msgid "Previous"
3099
  msgstr ""
3100
 
3101
- #: src/Tribe/Main.php:404
3102
  msgid ": Selected %d rows"
3103
  msgstr ""
3104
 
3105
- #: src/Tribe/Main.php:405
3106
  msgid ": Selected 1 row"
3107
  msgstr ""
3108
 
3109
- #: src/Tribe/Main.php:416
3110
  msgid "Prev"
3111
  msgstr ""
3112
 
3113
- #: src/Tribe/Main.php:417
3114
- #: src/Tribe/Main.php:419
3115
  msgid "Today"
3116
  msgstr ""
3117
 
3118
- #: src/Tribe/Main.php:418
3119
  msgid "Done"
3120
  msgstr ""
3121
 
3122
- #: src/Tribe/Main.php:420
3123
  msgid "Clear"
3124
  msgstr ""
3125
 
2
  # This file is distributed under the GPLv2 or later.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Tribe Common 5.0.6\n"
6
  "Report-Msgid-Bugs-To: https://evnt.is/191x\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "POT-Creation-Date: 2022-12-12T22:20:27-08:00\n"
13
+ "PO-Revision-Date: 2022-12-13 06:20\n"
14
  "X-Generator: WP-CLI 2.7.1\n"
15
  "X-Domain: tribe-common\n"
16
 
3037
  msgid "Null logger (will log nothing)"
3038
  msgstr ""
3039
 
3040
+ #: src/Tribe/Main.php:386
3041
  msgid ": activate to sort column ascending"
3042
  msgstr ""
3043
 
3044
+ #: src/Tribe/Main.php:387
3045
  msgid ": activate to sort column descending"
3046
  msgstr ""
3047
 
3048
+ #: src/Tribe/Main.php:389
3049
  msgid "Show _MENU_ entries"
3050
  msgstr ""
3051
 
3052
+ #: src/Tribe/Main.php:390
3053
  msgid "No data available in table"
3054
  msgstr ""
3055
 
3056
+ #: src/Tribe/Main.php:391
3057
  msgid "Showing _START_ to _END_ of _TOTAL_ entries"
3058
  msgstr ""
3059
 
3060
+ #: src/Tribe/Main.php:392
3061
  msgid "Showing 0 to 0 of 0 entries"
3062
  msgstr ""
3063
 
3064
+ #: src/Tribe/Main.php:393
3065
  msgid "(filtered from _MAX_ total entries)"
3066
  msgstr ""
3067
 
3068
+ #: src/Tribe/Main.php:394
3069
  msgid "No matching records found"
3070
  msgstr ""
3071
 
3072
+ #: src/Tribe/Main.php:395
3073
  msgid "Search:"
3074
  msgstr ""
3075
 
3076
+ #: src/Tribe/Main.php:396
3077
  msgid "All items on this page were selected. "
3078
  msgstr ""
3079
 
3080
+ #: src/Tribe/Main.php:397
3081
  msgid "Select all pages"
3082
  msgstr ""
3083
 
3084
+ #: src/Tribe/Main.php:398
3085
  msgid "Clear Selection."
3086
  msgstr ""
3087
 
3088
+ #: src/Tribe/Main.php:400
3089
  msgid "All"
3090
  msgstr ""
3091
 
3092
+ #: src/Tribe/Main.php:401
3093
+ #: src/Tribe/Main.php:418
3094
  msgid "Next"
3095
  msgstr ""
3096
 
3097
+ #: src/Tribe/Main.php:402
3098
  msgid "Previous"
3099
  msgstr ""
3100
 
3101
+ #: src/Tribe/Main.php:407
3102
  msgid ": Selected %d rows"
3103
  msgstr ""
3104
 
3105
+ #: src/Tribe/Main.php:408
3106
  msgid ": Selected 1 row"
3107
  msgstr ""
3108
 
3109
+ #: src/Tribe/Main.php:419
3110
  msgid "Prev"
3111
  msgstr ""
3112
 
3113
+ #: src/Tribe/Main.php:420
3114
+ #: src/Tribe/Main.php:422
3115
  msgid "Today"
3116
  msgstr ""
3117
 
3118
+ #: src/Tribe/Main.php:421
3119
  msgid "Done"
3120
  msgstr ""
3121
 
3122
+ #: src/Tribe/Main.php:423
3123
  msgid "Clear"
3124
  msgstr ""
3125
 
common/src/Common/Storage/Timed_Option.php ADDED
@@ -0,0 +1,340 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace TEC\Common\Storage;
4
+
5
+ /**
6
+ * Class Timed_Option which will handle the storage of values that need to be transient in nature but without the
7
+ * performance cost of Transients. This is specially important when dealing with WordPress installs that have no Object
8
+ * Caching, on those cases Transients will execute two SQL queries when using `get_transient()`, which is demolishes
9
+ * the performance of certain pages.
10
+ *
11
+ * @since 5.0.6
12
+ *
13
+ * @package TEC\Common
14
+ */
15
+ class Timed_Option {
16
+ /**
17
+ *
18
+ *
19
+ * @since 5.0.6
20
+ *
21
+ * @var bool
22
+ */
23
+ protected $active = true;
24
+
25
+ /**
26
+ * Prefix for all the Timed Options stored on the database.
27
+ *
28
+ * @since 5.0.6
29
+ *
30
+ * @var string
31
+ */
32
+ protected $option_name_prefix = 'tec_timed_';
33
+
34
+ /**
35
+ * Local storage of the data on the Options. Keys will not have the prefix used on the database.
36
+ *
37
+ * @since 5.0.6
38
+ *
39
+ * @var array
40
+ */
41
+ protected $data = [];
42
+
43
+ /**
44
+ * Deactivate the usage of Database Timed Options, all timed options are only a glorified memoization.
45
+ *
46
+ * @since 5.0.6
47
+ *
48
+ * @return void
49
+ */
50
+ public function deactivate(): void {
51
+ $this->active = false;
52
+ }
53
+
54
+ /**
55
+ * Activate the usage of Database Timed Options.
56
+ *
57
+ * @since 5.0.6
58
+ *
59
+ * @return void
60
+ */
61
+ public function activate(): void {
62
+ $this->active = true;
63
+ }
64
+
65
+ /**
66
+ * Is the timed options active?
67
+ *
68
+ * @since 5.0.6
69
+ *
70
+ * @return bool
71
+ */
72
+ public function is_active(): bool {
73
+ /**
74
+ * Allows the modification of the state of usage for Timed Options.
75
+ *
76
+ * @since 5.0.6
77
+ *
78
+ * @param bool $active Whether we use Database Timed Options or a glorified Memoization system.
79
+ */
80
+ return (bool) apply_filters( 'tec_common_timed_option_is_active', $this->active );
81
+ }
82
+
83
+ /**
84
+ * Gets the option name for a given timed option, by attaching a prefix and allowing filtering.
85
+ *
86
+ * @since 5.0.6
87
+ *
88
+ * @param string $key Key for the option we are trying to get the option name for.
89
+ *
90
+ * @return string
91
+ */
92
+ public function get_option_name( string $key ): string {
93
+ /**
94
+ * Allows the modification of where we store the Transient Data.
95
+ *
96
+ * @since 5.0.6
97
+ *
98
+ * @param string $option_name Name of the option where all the transient data will live.
99
+ */
100
+ return (string) apply_filters( 'tec_common_timed_option_name', $this->option_name_prefix . $key, $this->option_name_prefix );
101
+ }
102
+
103
+ /**
104
+ * Fetches the value of a given timed option.
105
+ *
106
+ * @since 5.0.6
107
+ *
108
+ * @param string $key Key for the option we are trying to get.
109
+ * @param mixed $default Default value when the option is either expired or not-set.
110
+ * @param bool $force If we should expire cache and fetch from the database.
111
+ *
112
+ * @return mixed|null
113
+ */
114
+ public function get( $key, $default = null, bool $force = false ) {
115
+ /**
116
+ * Allows the filtering the default timed_option value.
117
+ *
118
+ * @since 5.0.6
119
+ *
120
+ * @param mixed $default Default value when the option is either expired or not-set.
121
+ * @param string $key Key for the option we are trying to get.
122
+ * @param bool $force If we should expire cache and fetch from the database.
123
+ */
124
+ $default = apply_filters( 'tec_common_timed_option_default_value', $default, $key, $force );
125
+
126
+ /**
127
+ * Allows the filtering to short-circuit the whole fetch logic.
128
+ *
129
+ * @since 5.0.6
130
+ *
131
+ * @param mixed|null $pre If anything diff than null it will short-circuit.
132
+ * @param string $key Key for the option we are trying to get.
133
+ * @param mixed $default Default value when the option is either expired or not-set.
134
+ * @param bool $force If we should expire cache and fetch from the database.
135
+ */
136
+ $pre = apply_filters( 'tec_common_timed_option_pre_value', null, $key, $default, $force );
137
+
138
+ if ( null !== $pre ) {
139
+ return $pre;
140
+ }
141
+
142
+ $time = time();
143
+
144
+ // If we have a stored value that is not expired, use it.
145
+ if (
146
+ ! $force
147
+ && isset( $this->data[ $key ] )
148
+ && is_numeric( $this->data[ $key ]['expiration'] )
149
+ && $time < $this->data[ $key ]['expiration']
150
+ ) {
151
+ /**
152
+ * Allows the filtering of the cached value of the timed option.
153
+ *
154
+ * @since 5.0.6
155
+ *
156
+ * @param mixed $value If anything diff than null it will short-circuit.
157
+ * @param string $key Key for the option we are trying to get.
158
+ * @param mixed $default Default value when the option is either expired or not-set.
159
+ * @param bool $force If we should expire cache and fetch from the database.
160
+ * @param bool $cache If the value was pulled from cache.
161
+ */
162
+ return apply_filters( 'tec_common_timed_option_value', $this->data[ $key ]['value'], $key, $default, $force, true );
163
+ }
164
+
165
+ $timed_option = null;
166
+
167
+ if ( $this->is_active() ) {
168
+ $timed_option_name = $this->get_option_name( $key );
169
+ if ( true === $force ) {
170
+ wp_cache_delete( $timed_option_name, 'options' );
171
+ }
172
+ $timed_option = get_option( $timed_option_name, null );
173
+ }
174
+
175
+ // Bail with default when non-existent.
176
+ if ( empty( $timed_option ) ) {
177
+ if ( $this->is_active() ) {
178
+ // Avoids next request check, forces auto-loading.
179
+ $this->set( $key, null, 0 );
180
+ }
181
+
182
+ return $default;
183
+ }
184
+
185
+ // Bail with default when expired.
186
+ if ( $time >= $timed_option['expiration'] ) {
187
+ $this->delete( $key );
188
+
189
+ return $default;
190
+ }
191
+
192
+ $this->data[ $key ] = $timed_option;
193
+
194
+ /**
195
+ * Allows the filtering of the value of the timed option.
196
+ *
197
+ * @since 5.0.6
198
+ *
199
+ * @param mixed $value If anything diff than null it will short-circuit.
200
+ * @param string $key Key for the option we are trying to get.
201
+ * @param mixed $default Default value when the option is either expired or not-set.
202
+ * @param bool $force If we should expire cache and fetch from the database.
203
+ * @param bool $cache If the value was pulled from cache.
204
+ */
205
+ return apply_filters( 'tec_common_timed_option_value', $timed_option['value'], $key, $default, $force, false );
206
+ }
207
+
208
+ /**
209
+ * Delete a given timed option based on a key.
210
+ * Will also clear local cache.
211
+ *
212
+ * @since 5.0.6
213
+ *
214
+ * @param string $key Which timed option we are checking.
215
+ *
216
+ * @return bool
217
+ */
218
+ public function delete( $key ): bool {
219
+ $key = (string) $key;
220
+ $updated = false;
221
+
222
+ if ( $this->is_active() ) {
223
+ $timed_option_name = $this->get_option_name( $key );
224
+ $updated = update_option( $timed_option_name, null, true );
225
+ wp_cache_delete( $timed_option_name, 'options' );
226
+ }
227
+
228
+ // Bail with default when non-existent.
229
+ if ( ! isset( $this->data[ $key ] ) ) {
230
+ return $updated;
231
+ }
232
+
233
+ unset( $this->data[ $key ] );
234
+
235
+ return $updated;
236
+ }
237
+
238
+ /**
239
+ * Checks if a given timed option exists.
240
+ *
241
+ * @since 5.0.6
242
+ *
243
+ * @param string $key Which timed option we are checking.
244
+ * @param bool $force Clears the cache before get_option()
245
+ *
246
+ * @return bool
247
+ */
248
+ public function exists( $key, bool $force = false ): bool {
249
+ /**
250
+ * Allows the filtering to short-circuit the whole exists logic.
251
+ *
252
+ * @since 5.0.6
253
+ *
254
+ * @param mixed|null $pre If anything diff than null it will short-circuit.
255
+ * @param string $key Key for the option we are trying to get.
256
+ * @param bool $force If we should expire cache and fetch from the database.
257
+ */
258
+ $pre = apply_filters( 'tec_common_timed_option_pre_exists', null, $key, $force );
259
+
260
+ if ( null !== $pre ) {
261
+ return (bool) $pre;
262
+ }
263
+
264
+ $time = time();
265
+ $cached = false;
266
+ $timed_option = null;
267
+
268
+ // If we have a stored value that is not expired, use it.
269
+ if (
270
+ ! $force
271
+ && isset( $this->data[ $key ] )
272
+ && is_numeric( $this->data[ $key ]['expiration'] )
273
+ && $time < $this->data[ $key ]['expiration']
274
+ ) {
275
+ $cached = true;
276
+ $timed_option = $this->data[ $key ];
277
+ } elseif ( $this->is_active() ) {
278
+ $timed_option_name = $this->get_option_name( $key );
279
+ if ( true === $force ) {
280
+ wp_cache_delete( $timed_option_name, 'options' );
281
+ }
282
+ $timed_option = get_option( $timed_option_name, null );
283
+ }
284
+
285
+ $exists = true;
286
+
287
+ if ( null === $timed_option ) {
288
+ $exists = false;
289
+ }
290
+
291
+ if ( ! is_array( $timed_option ) ) {
292
+ $exists = false;
293
+ }
294
+
295
+ if ( ! isset( $timed_option['expiration'] ) || ! is_numeric( $timed_option['expiration'] ) ) {
296
+ $exists = false;
297
+ }
298
+
299
+ /**
300
+ * Does a particular timed option key exists.
301
+ *
302
+ * @since 5.0.6
303
+ *
304
+ * @param mixed $exists If anything diff than null it will short-circuit.
305
+ * @param string $key Key for the option we are trying to get.
306
+ * @param bool $force If we should expire cache and fetch from the database.
307
+ * @param bool $cached If the value was pulled from cache.
308
+ */
309
+ return (bool) apply_filters( 'tec_common_timed_option_exists', $exists, $key, $force, $cached );
310
+ }
311
+
312
+ /**
313
+ * Update the value of a timed option on the database and on local cache.
314
+ *
315
+ * @since 5.0.6
316
+ *
317
+ * @param string $key Key for this option.
318
+ * @param mixed $value Value stored for this option.
319
+ * @param int $expiration Expiration in seconds for this timed option.
320
+ *
321
+ * @return bool
322
+ */
323
+ public function set( $key, $value, int $expiration = DAY_IN_SECONDS ): bool {
324
+ $key = (string) $key;
325
+ $data = [
326
+ 'key' => $key,
327
+ 'value' => $value,
328
+ 'expiration' => time() + $expiration,
329
+ ];
330
+
331
+ $this->data[ $key ] = $data;
332
+ $updated = true;
333
+
334
+ if ( $this->is_active() ) {
335
+ $updated = update_option( $this->get_option_name( $key ), $data, true );
336
+ }
337
+
338
+ return $updated;
339
+ }
340
+ }
common/src/Tribe/Admin/Notice/Date_Based.php CHANGED
@@ -281,7 +281,9 @@ abstract class Date_Based {
281
  */
282
  public function get_start_time() {
283
  $date = Dates::build_date_object( $this->start_date, 'UTC' );
284
- $date = $date->setTime( $this->start_time, 0 );
 
 
285
 
286
  /**
287
  * Allow filtering of the start date DateTime object,
@@ -305,7 +307,9 @@ abstract class Date_Based {
305
  */
306
  public function get_end_time() {
307
  $date = Dates::build_date_object( $this->end_date, 'UTC' );
308
- $date = $date->setTime( $this->end_time, 0 );
 
 
309
 
310
  /**
311
  * Allow filtering of the end date DateTime object,
@@ -330,8 +334,15 @@ abstract class Date_Based {
330
  * @return int $end_time The date & time the notice should stop displaying, as a Unix timestamp.
331
  */
332
  public function get_extension_time() {
 
 
 
 
333
  $date = Dates::build_date_object( $this->extension_date, 'UTC' );
334
- $date = $date->setTime( $this->extension_time, 0 );
 
 
 
335
 
336
  /**
337
  * Allow filtering of the extension date DateTime object,
281
  */
282
  public function get_start_time() {
283
  $date = Dates::build_date_object( $this->start_date, 'UTC' );
284
+ if ( $this->start_time !== null ) {
285
+ $date = $date->setTime( $this->start_time, 0 );
286
+ }
287
 
288
  /**
289
  * Allow filtering of the start date DateTime object,
307
  */
308
  public function get_end_time() {
309
  $date = Dates::build_date_object( $this->end_date, 'UTC' );
310
+ if ( $this->end_time !== null ) {
311
+ $date = $date->setTime( $this->end_time, 0 );
312
+ }
313
 
314
  /**
315
  * Allow filtering of the end date DateTime object,
334
  * @return int $end_time The date & time the notice should stop displaying, as a Unix timestamp.
335
  */
336
  public function get_extension_time() {
337
+ if ( $this->extension_date === null ) {
338
+ return null;
339
+ }
340
+
341
  $date = Dates::build_date_object( $this->extension_date, 'UTC' );
342
+
343
+ if ( $this->extension_time !== null ) {
344
+ $date = $date->setTime( $this->extension_time, 0 );
345
+ }
346
 
347
  /**
348
  * Allow filtering of the extension date DateTime object,
common/src/Tribe/Feature_Detection.php CHANGED
@@ -71,13 +71,15 @@ class Tribe__Feature_Detection {
71
  return (bool) $supports_async_process;
72
  }
73
 
74
- $cached = get_transient( self::$transient );
75
-
76
  $this->lock_option_name = 'tribe_feature_support_check_lock';
 
 
 
 
77
  if (
78
  $force
79
- || false === $cached
80
- || ( is_array( $cached ) && ! isset( $cached['supports_async_process'] ) )
81
  ) {
82
  if ( $this->is_locked() ) {
83
  // We're already running this check, bail and return the safe option for the time being.
@@ -100,12 +102,10 @@ class Tribe__Feature_Detection {
100
  $wait_up_to = 10;
101
  $start = time();
102
  $supports_async_process = false;
103
- $transient_name = Tribe__Process__Tester::TRANSIENT_NAME;
104
 
105
  while ( time() <= $start + $wait_up_to ) {
106
  // We want to force a refetch from the database on each check.
107
- wp_cache_delete( $transient_name, 'transient' );
108
- $supports_async_process = (bool) get_transient( $transient_name );
109
 
110
  if ( $supports_async_process ) {
111
  break;
@@ -113,23 +113,15 @@ class Tribe__Feature_Detection {
113
  sleep( $wait_up_to / 5 );
114
  }
115
 
116
- // Remove it not to spoof future checks.
117
- delete_transient( $transient_name );
118
-
119
  $this->unlock();
120
-
121
- $cached['supports_async_process'] = $supports_async_process;
122
-
123
  if ( $supports_async_process ) {
124
  tribe( 'logger' )->log( 'AJAX-based async processing is supported.', Tribe__Log::DEBUG );
125
  } else {
126
  tribe( 'logger' )->log( 'AJAX-based async processing is not supported; background processing will rely on WP Cron.', Tribe__Log::DEBUG );
127
  }
128
-
129
- set_transient( self::$transient, $cached, WEEK_IN_SECONDS );
130
  }
131
 
132
- return $cached['supports_async_process'];
133
  }
134
 
135
  /**
71
  return (bool) $supports_async_process;
72
  }
73
 
 
 
74
  $this->lock_option_name = 'tribe_feature_support_check_lock';
75
+ $transient_name = Tribe__Process__Tester::TRANSIENT_NAME;
76
+ $timed_option_exists = tec_timed_option()->exists( $transient_name );
77
+ $supports_async_process = tec_timed_option()->get( $transient_name, null, $force );
78
+
79
  if (
80
  $force
81
+ || null === $supports_async_process
82
+ || ! $timed_option_exists
83
  ) {
84
  if ( $this->is_locked() ) {
85
  // We're already running this check, bail and return the safe option for the time being.
102
  $wait_up_to = 10;
103
  $start = time();
104
  $supports_async_process = false;
 
105
 
106
  while ( time() <= $start + $wait_up_to ) {
107
  // We want to force a refetch from the database on each check.
108
+ $supports_async_process = (bool) tec_timed_option()->get( $transient_name );
 
109
 
110
  if ( $supports_async_process ) {
111
  break;
113
  sleep( $wait_up_to / 5 );
114
  }
115
 
 
 
 
116
  $this->unlock();
 
 
 
117
  if ( $supports_async_process ) {
118
  tribe( 'logger' )->log( 'AJAX-based async processing is supported.', Tribe__Log::DEBUG );
119
  } else {
120
  tribe( 'logger' )->log( 'AJAX-based async processing is not supported; background processing will rely on WP Cron.', Tribe__Log::DEBUG );
121
  }
 
 
122
  }
123
 
124
+ return (bool) $supports_async_process;
125
  }
126
 
127
  /**
common/src/Tribe/Main.php CHANGED
@@ -21,7 +21,7 @@ class Tribe__Main {
21
  const OPTIONNAME = 'tribe_events_calendar_options';
22
  const OPTIONNAMENETWORK = 'tribe_events_calendar_network_options';
23
 
24
- const VERSION = '5.0.4';
25
 
26
  const FEED_URL = 'https://theeventscalendar.com/feed/';
27
 
@@ -184,6 +184,7 @@ class Tribe__Main {
184
  public function init_libraries() {
185
  require_once $this->plugin_path . 'src/functions/utils.php';
186
  require_once $this->plugin_path . 'src/functions/conditionals.php';
 
187
  require_once $this->plugin_path . 'src/functions/url.php';
188
  require_once $this->plugin_path . 'src/functions/query.php';
189
  require_once $this->plugin_path . 'src/functions/multibyte.php';
@@ -194,6 +195,8 @@ class Tribe__Main {
194
  require_once $this->plugin_path . 'src/functions/template-tags/post.php';
195
 
196
  Tribe__Debug::instance();
 
 
197
  tribe( 'assets' );
198
  tribe( 'assets.pipeline' );
199
  tribe( 'settings.manager' );
@@ -676,6 +679,7 @@ class Tribe__Main {
676
  * @return void Implementation of components loader doesn't return anything.
677
  */
678
  public function bind_implementations() {
 
679
  tribe_singleton( 'settings.manager', 'Tribe__Settings_Manager' );
680
  tribe_singleton( 'settings', 'Tribe__Settings', [ 'hook' ] );
681
  tribe_singleton( 'ajax.dropdown', 'Tribe__Ajax__Dropdown', [ 'hook' ] );
21
  const OPTIONNAME = 'tribe_events_calendar_options';
22
  const OPTIONNAMENETWORK = 'tribe_events_calendar_network_options';
23
 
24
+ const VERSION = '5.0.6';
25
 
26
  const FEED_URL = 'https://theeventscalendar.com/feed/';
27
 
184
  public function init_libraries() {
185
  require_once $this->plugin_path . 'src/functions/utils.php';
186
  require_once $this->plugin_path . 'src/functions/conditionals.php';
187
+ require_once $this->plugin_path . 'src/functions/transient.php';
188
  require_once $this->plugin_path . 'src/functions/url.php';
189
  require_once $this->plugin_path . 'src/functions/query.php';
190
  require_once $this->plugin_path . 'src/functions/multibyte.php';
195
  require_once $this->plugin_path . 'src/functions/template-tags/post.php';
196
 
197
  Tribe__Debug::instance();
198
+ tec_timed_option();
199
+
200
  tribe( 'assets' );
201
  tribe( 'assets.pipeline' );
202
  tribe( 'settings.manager' );
679
  * @return void Implementation of components loader doesn't return anything.
680
  */
681
  public function bind_implementations() {
682
+ tribe_singleton( \TEC\Common\Storage\Timed_Option::class, \TEC\Common\Storage\Timed_Option::class );
683
  tribe_singleton( 'settings.manager', 'Tribe__Settings_Manager' );
684
  tribe_singleton( 'settings', 'Tribe__Settings', [ 'hook' ] );
685
  tribe_singleton( 'ajax.dropdown', 'Tribe__Ajax__Dropdown', [ 'hook' ] );
common/src/Tribe/Process/Tester.php CHANGED
@@ -73,6 +73,7 @@ class Tribe__Process__Tester extends Tribe__Process__Handler {
73
 
74
  /**
75
  * The task this class will perform is just setting a transient.
 
76
  * The transient existence will be used as a canary to detect if
77
  * background processing is supported.
78
  *
@@ -81,7 +82,7 @@ class Tribe__Process__Tester extends Tribe__Process__Handler {
81
  * @param array|null $data_source Unused.
82
  */
83
  protected function handle( array $data_source = null ) {
84
- set_transient( self::TRANSIENT_NAME, 1, HOUR_IN_SECONDS );
85
  }
86
 
87
  /**
73
 
74
  /**
75
  * The task this class will perform is just setting a transient.
76
+ *
77
  * The transient existence will be used as a canary to detect if
78
  * background processing is supported.
79
  *
82
  * @param array|null $data_source Unused.
83
  */
84
  protected function handle( array $data_source = null ) {
85
+ tec_timed_option()->set( static::TRANSIENT_NAME, 1, WEEK_IN_SECONDS );
86
  }
87
 
88
  /**
common/src/Tribe/Utils/Collection_Trait.php CHANGED
@@ -67,6 +67,7 @@ trait Collection_Trait {
67
  /**
68
  * {@inheritDoc}
69
  */
 
70
  public function offsetExists( $offset ) {
71
  $items = $this->all();
72
 
@@ -76,6 +77,7 @@ trait Collection_Trait {
76
  /**
77
  * {@inheritDoc}
78
  */
 
79
  public function offsetGet( $offset ) {
80
  $items = $this->all();
81
 
@@ -87,6 +89,7 @@ trait Collection_Trait {
87
  /**
88
  * {@inheritDoc}
89
  */
 
90
  public function offsetSet( $offset, $value ) {
91
  $this->items = $this->all();
92
 
@@ -96,6 +99,7 @@ trait Collection_Trait {
96
  /**
97
  * {@inheritDoc}
98
  */
 
99
  public function offsetUnset( $offset ) {
100
  $this->items = $this->all();
101
 
@@ -105,6 +109,7 @@ trait Collection_Trait {
105
  /**
106
  * {@inheritDoc}
107
  */
 
108
  public function next() {
109
  $this->items_index ++;
110
  }
@@ -112,6 +117,7 @@ trait Collection_Trait {
112
  /**
113
  * {@inheritDoc}
114
  */
 
115
  public function valid() {
116
  $items = $this->all();
117
 
@@ -121,6 +127,7 @@ trait Collection_Trait {
121
  /**
122
  * {@inheritDoc}
123
  */
 
124
  public function key() {
125
  return $this->items_index;
126
  }
@@ -128,6 +135,7 @@ trait Collection_Trait {
128
  /**
129
  * {@inheritDoc}
130
  */
 
131
  public function current() {
132
  $items = array_values( $this->all() );
133
 
@@ -137,6 +145,7 @@ trait Collection_Trait {
137
  /**
138
  * {@inheritDoc}
139
  */
 
140
  public function rewind() {
141
  $this->items_index = 0;
142
  }
@@ -144,6 +153,7 @@ trait Collection_Trait {
144
  /**
145
  * {@inheritDoc}
146
  */
 
147
  public function count() {
148
  return count( $this->all() );
149
  }
@@ -169,6 +179,7 @@ trait Collection_Trait {
169
 
170
  if ( method_exists( $this, 'custom_unserialize' ) ) {
171
  $this->items = $this->custom_unserialize( $to_unserialize );
 
172
  return;
173
  }
174
 
@@ -178,6 +189,7 @@ trait Collection_Trait {
178
  /**
179
  * {@inheritDoc}
180
  */
 
181
  public function seek( $position ) {
182
  $this->items_index = $position;
183
  }
@@ -204,4 +216,38 @@ trait Collection_Trait {
204
 
205
  return $filtered;
206
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
207
  }
67
  /**
68
  * {@inheritDoc}
69
  */
70
+ #[\ReturnTypeWillChange]
71
  public function offsetExists( $offset ) {
72
  $items = $this->all();
73
 
77
  /**
78
  * {@inheritDoc}
79
  */
80
+ #[\ReturnTypeWillChange]
81
  public function offsetGet( $offset ) {
82
  $items = $this->all();
83
 
89
  /**
90
  * {@inheritDoc}
91
  */
92
+ #[\ReturnTypeWillChange]
93
  public function offsetSet( $offset, $value ) {
94
  $this->items = $this->all();
95
 
99
  /**
100
  * {@inheritDoc}
101
  */
102
+ #[\ReturnTypeWillChange]
103
  public function offsetUnset( $offset ) {
104
  $this->items = $this->all();
105
 
109
  /**
110
  * {@inheritDoc}
111
  */
112
+ #[\ReturnTypeWillChange]
113
  public function next() {
114
  $this->items_index ++;
115
  }
117
  /**
118
  * {@inheritDoc}
119
  */
120
+ #[\ReturnTypeWillChange]
121
  public function valid() {
122
  $items = $this->all();
123
 
127
  /**
128
  * {@inheritDoc}
129
  */
130
+ #[\ReturnTypeWillChange]
131
  public function key() {
132
  return $this->items_index;
133
  }
135
  /**
136
  * {@inheritDoc}
137
  */
138
+ #[\ReturnTypeWillChange]
139
  public function current() {
140
  $items = array_values( $this->all() );
141
 
145
  /**
146
  * {@inheritDoc}
147
  */
148
+ #[\ReturnTypeWillChange]
149
  public function rewind() {
150
  $this->items_index = 0;
151
  }
153
  /**
154
  * {@inheritDoc}
155
  */
156
+ #[\ReturnTypeWillChange]
157
  public function count() {
158
  return count( $this->all() );
159
  }
179
 
180
  if ( method_exists( $this, 'custom_unserialize' ) ) {
181
  $this->items = $this->custom_unserialize( $to_unserialize );
182
+
183
  return;
184
  }
185
 
189
  /**
190
  * {@inheritDoc}
191
  */
192
+ #[\ReturnTypeWillChange]
193
  public function seek( $position ) {
194
  $this->items_index = $position;
195
  }
216
 
217
  return $filtered;
218
  }
219
+
220
+ /**
221
+ * PHP 8.0+ compatible implementation of the serialization logic.
222
+ *
223
+ * @since 5.0.6
224
+ *
225
+ * @return array The data to serialize.
226
+ */
227
+ public function __serialize(): array {
228
+ $to_serialize = $this->all();
229
+
230
+ if ( method_exists( $this, 'before_serialize' ) ) {
231
+ $to_serialize = $this->before_serialize( $this->all() );
232
+ }
233
+
234
+ return $to_serialize;
235
+ }
236
+
237
+ /**
238
+ * PHP 8.0+ compatible implementation of the unserialization logic.
239
+ *
240
+ * @since 5.0.6
241
+ *
242
+ * @param array $data The data to unserialize.
243
+ */
244
+ public function __unserialize( array $data ): void {
245
+ if ( method_exists( $this, 'custom_unserialize' ) ) {
246
+ $this->items = $this->custom_unserialize( serialize( $data ) );
247
+
248
+ return;
249
+ }
250
+
251
+ $this->items = $data;
252
+ }
253
  }
common/src/Tribe/Utils/Lazy_Collection.php CHANGED
@@ -111,6 +111,7 @@ class Lazy_Collection implements Collection_Interface {
111
  /**
112
  * {@inheritDoc}
113
  */
 
114
  public function jsonSerialize() {
115
  return $this->all();
116
  }
111
  /**
112
  * {@inheritDoc}
113
  */
114
+ #[\ReturnTypeWillChange]
115
  public function jsonSerialize() {
116
  return $this->all();
117
  }
common/src/Tribe/Utils/Lazy_String.php CHANGED
@@ -132,15 +132,41 @@ class Lazy_String implements \Serializable, \JsonSerializable {
132
  * @since 4.9.16
133
  */
134
  public function unserialize( $serialized ) {
135
- list( $string, $escaped ) = unserialize( $serialized );
136
- $this->string = $string;
137
- $this->escaped = $escaped;
138
  }
139
 
140
  /**
141
  * {@inheritDoc}
142
  */
 
143
  public function jsonSerialize() {
144
  return $this->value();
145
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
146
  }
132
  * @since 4.9.16
133
  */
134
  public function unserialize( $serialized ) {
135
+ $data = unserialize( $serialized );
136
+ $this->__unserialize( $data );
 
137
  }
138
 
139
  /**
140
  * {@inheritDoc}
141
  */
142
+ #[\ReturnTypeWillChange]
143
  public function jsonSerialize() {
144
  return $this->value();
145
  }
146
+
147
+ /**
148
+ * PHP 8.0+ compatible implementation of the serialization logic.
149
+ *
150
+ * @since 5.0.6
151
+ *
152
+ * @return array The data to serialize.
153
+ */
154
+ public function __serialize(): array {
155
+ return [
156
+ 'string' => $this->__toString(),
157
+ 'escaped' => $this->escaped(),
158
+ ];
159
+ }
160
+
161
+ /**
162
+ * PHP 8.0+ compatible implementation of the unserialization logic.
163
+ *
164
+ * @since 5.0.6
165
+ *
166
+ * @param array $data The data to unserialize.
167
+ */
168
+ public function __unserialize( array $data ): void {
169
+ $this->string = $data['string'] ?? null;
170
+ $this->escaped = $data['escaped'] ?? null;
171
+ }
172
  }
common/src/Tribe/Utils/Post_Thumbnail.php CHANGED
@@ -230,6 +230,7 @@ class Post_Thumbnail implements \ArrayAccess, \Serializable {
230
  /**
231
  * {@inheritDoc}
232
  */
 
233
  public function offsetExists( $offset ) {
234
  $this->data = $this->fetch_data();
235
 
@@ -239,6 +240,7 @@ class Post_Thumbnail implements \ArrayAccess, \Serializable {
239
  /**
240
  * {@inheritDoc}
241
  */
 
242
  public function offsetGet( $offset ) {
243
  $this->data = $this->fetch_data();
244
 
@@ -250,6 +252,7 @@ class Post_Thumbnail implements \ArrayAccess, \Serializable {
250
  /**
251
  * {@inheritDoc}
252
  */
 
253
  public function offsetSet( $offset, $value ) {
254
  $this->data = $this->fetch_data();
255
 
@@ -259,6 +262,7 @@ class Post_Thumbnail implements \ArrayAccess, \Serializable {
259
  /**
260
  * {@inheritDoc}
261
  */
 
262
  public function offsetUnset( $offset ) {
263
  $this->data = $this->fetch_data();
264
 
@@ -283,10 +287,7 @@ class Post_Thumbnail implements \ArrayAccess, \Serializable {
283
  * {@inheritDoc}
284
  */
285
  public function serialize() {
286
- $data = $this->fetch_data();
287
- $data['post_id'] = $this->post_id;
288
-
289
- return wp_json_encode( $data );
290
  }
291
 
292
  /**
@@ -294,14 +295,7 @@ class Post_Thumbnail implements \ArrayAccess, \Serializable {
294
  */
295
  public function unserialize( $serialized ) {
296
  $data = json_decode( $serialized, true );
297
- array_walk( $data, static function ( &$data_entry ) {
298
- if ( is_array( $data_entry ) ) {
299
- $data_entry = (object) $data_entry;
300
- }
301
- } );
302
- $this->post_id = $data['post_id'];
303
- unset( $data['post_id'] );
304
- $this->data = ! empty( $data ) ? $data : null;
305
  }
306
 
307
  /**
@@ -327,4 +321,36 @@ class Post_Thumbnail implements \ArrayAccess, \Serializable {
327
 
328
  return $this->exists;
329
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
330
  }
230
  /**
231
  * {@inheritDoc}
232
  */
233
+ #[\ReturnTypeWillChange]
234
  public function offsetExists( $offset ) {
235
  $this->data = $this->fetch_data();
236
 
240
  /**
241
  * {@inheritDoc}
242
  */
243
+ #[\ReturnTypeWillChange]
244
  public function offsetGet( $offset ) {
245
  $this->data = $this->fetch_data();
246
 
252
  /**
253
  * {@inheritDoc}
254
  */
255
+ #[\ReturnTypeWillChange]
256
  public function offsetSet( $offset, $value ) {
257
  $this->data = $this->fetch_data();
258
 
262
  /**
263
  * {@inheritDoc}
264
  */
265
+ #[\ReturnTypeWillChange]
266
  public function offsetUnset( $offset ) {
267
  $this->data = $this->fetch_data();
268
 
287
  * {@inheritDoc}
288
  */
289
  public function serialize() {
290
+ return wp_json_encode( $this->__serialize() );
 
 
 
291
  }
292
 
293
  /**
295
  */
296
  public function unserialize( $serialized ) {
297
  $data = json_decode( $serialized, true );
298
+ $this->__unserialize( $data );
 
 
 
 
 
 
 
299
  }
300
 
301
  /**
321
 
322
  return $this->exists;
323
  }
324
+
325
+ /**
326
+ * PHP 8.0+ compatible implementation of the serialization logic.
327
+ *
328
+ * @since 5.0.6
329
+ *
330
+ * @return array The data to serialize.
331
+ */
332
+ public function __serialize(): array {
333
+ $data = $this->fetch_data();
334
+ $data['post_id'] = $this->post_id;
335
+
336
+ return $data;
337
+ }
338
+
339
+ /**
340
+ * PHP 8.0+ compatible implementation of the unserialization logic.
341
+ *
342
+ * @since 5.0.6
343
+ *
344
+ * @param array $data The data to unserialize.
345
+ */
346
+ public function __unserialize( array $data ): void {
347
+ array_walk( $data, static function ( &$data_entry ) {
348
+ if ( is_array( $data_entry ) ) {
349
+ $data_entry = (object) $data_entry;
350
+ }
351
+ } );
352
+ $this->post_id = $data['post_id'];
353
+ unset( $data['post_id'] );
354
+ $this->data = ! empty( $data ) ? $data : null;
355
+ }
356
  }
common/src/functions/transient.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Functions, or polyfills, related to Transient data manipulation.
4
+ *
5
+ * @since 5.0.6
6
+ */
7
+
8
+ if ( ! function_exists( 'tec_timed_option' ) ) {
9
+ /**
10
+ * Checks if a file is from one of the specified plugins.
11
+ *
12
+ * @since 5.0.6
13
+ *
14
+ * @return \TEC\Common\Storage\Timed_Option
15
+ */
16
+ function tec_timed_option(): \TEC\Common\Storage\Timed_Option {
17
+ static $timed_option;
18
+
19
+ if ( ! isset( $timed_option ) ) {
20
+ $timed_option = tribe( \TEC\Common\Storage\Timed_Option::class );
21
+ }
22
+
23
+ return $timed_option;
24
+ }
25
+ }
common/src/functions/utils.php CHANGED
@@ -1127,7 +1127,7 @@ if ( ! function_exists( 'tribe_sanitize_deep' ) ) {
1127
  return $value;
1128
  }
1129
  if ( is_string( $value ) ) {
1130
- $value = filter_var( $value, FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES );
1131
  return $value;
1132
  }
1133
  if ( is_int( $value ) ) {
1127
  return $value;
1128
  }
1129
  if ( is_string( $value ) ) {
1130
+ $value = filter_var( $value, FILTER_SANITIZE_STRING );
1131
  return $value;
1132
  }
1133
  if ( is_int( $value ) ) {
common/src/resources/css/common-full.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;appearance:none}.tribe-common button,.tribe-common input,.tribe-common optgroup,.tribe-common select,.tribe-common textarea{color:inherit;font:inherit;-webkit-font-smoothing:antialiased;line-height:normal}.tribe-common button,.tribe-common input,.tribe-common select,.tribe-common textarea{border-radius:0;outline:0}.tribe-common select:-moz-focusring{color:transparent;text-shadow:0 0 0 #000}.tribe-common optgroup{font-weight:700}.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}#top .main_color .tribe-common button[disabled],#top.tribe-theme-enfold .tribe-common button[disabled]{opacity:1}.tribe-theme-twentynineteen .tribe-common h1:before,.tribe-theme-twentynineteen .tribe-common h2:before{content:none}.tribe-theme-twentynineteen .tribe-common button,.tribe-theme-twentynineteen .tribe-common input[type=button],.tribe-theme-twentynineteen .tribe-common input[type=reset],.tribe-theme-twentynineteen .tribe-common input[type=submit]{outline:none}.tribe-theme-twentynineteen .tribe-common td,.tribe-theme-twentynineteen .tribe-common th{word-break:normal}.tribe-theme-twentyseventeen .tribe-common h5{letter-spacing:normal;text-transform:none}.tribe-theme-twentyseventeen .tribe-common input[type=text]{border-radius:0}.tribe-theme-twentytwenty .tribe-common{background-color:var(--tec-color-background-events);letter-spacing:normal}.tribe-theme-twentytwenty .tribe-common input,.tribe-theme-twentytwenty .tribe-common textarea{letter-spacing:normal}.tribe-theme-twentytwenty .tribe-common *{word-break:normal}.tribe-theme-twentytwentyone.tribe-common .tribe-common .button:not(:hover):not(:active):not(.has-background),.tribe-theme-twentytwentyone.tribe-common .tribe-common .wp-block-button .wp-block-button__link:not(:hover):not(:active):not(.has-background),.tribe-theme-twentytwentyone.tribe-common .tribe-common .wp-block-file a.wp-block-file__button:not(:hover):not(:active):not(.has-background),.tribe-theme-twentytwentyone.tribe-common .tribe-common .wp-block-search .wp-block-search__button:not(:hover):not(:active):not(.has-background),.tribe-theme-twentytwentyone.tribe-common .tribe-common button:not(:hover):not(:active):not(.has-background),.tribe-theme-twentytwentyone.tribe-common .tribe-common input[type=reset]:not(:hover):not(:active):not(.has-background),.tribe-theme-twentytwentyone.tribe-common .tribe-common input[type=submit]:not(:hover):not(:active):not(.has-background){background-color:initial}.tribe-common .tribe-common-form-control-checkbox,.tribe-common .tribe-common-form-control-radio{line-height:0}.tribe-common .tribe-common-form-control-checkbox__label,.tribe-common .tribe-common-form-control-radio__label{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-2);line-height:var(--tec-line-height-3);font-weight:var(--tec-font-weight-regular)}.tribe-common .tribe-common-form-control-checkbox__label:hover,.tribe-common .tribe-common-form-control-radio__label:hover{opacity:var(--tec-opacity-icon-hover)}.tribe-common .tribe-common-form-control-checkbox__input,.tribe-common .tribe-common-form-control-radio__input{-webkit-appearance:none;appearance:none;background-color:var(--tec-form-color-background);border:1px solid var(--tec-form-color-border-default);height:20px;position:relative;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-color:var(--tec-form-color-border-active);opacity:var(--tec-opacity-icon-hover)}.tribe-common .tribe-common-form-control-checkbox__input:checked,.tribe-common .tribe-common-form-control-radio__input:checked{background-color:var(--tec-form-color-border-active)}.tribe-common .tribe-common-form-control-checkbox__input{border-radius:4px}.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' 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='var(--tec-color-background)'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;content:"";display:block;height:9px;left:50%;margin:0;position:absolute;top:50%;transform:translate(-50%,-50%);width:12px}.tribe-common .tribe-common-form-control-checkbox__input:focus+.tribe-common-form-control-checkbox__label,.tribe-common .tribe-common-form-control-checkbox__input:hover+.tribe-common-form-control-checkbox__label{opacity:var(--tec-opacity-icon-hover)}.tribe-common .tribe-common-form-control-radio__input{border-radius:50%}.tribe-common .tribe-common-form-control-radio__input:checked:before{background-color:var(--tec-form-color-background);border-radius:50%;content:"";display:block;height:8px;left:50%;margin:0;position:absolute;top:50%;transform:translate(-50%,-50%);width:8px}.tribe-common .tribe-common-form-control-radio__input:focus+.tribe-common-form-control-radio__label,.tribe-common .tribe-common-form-control-radio__input:hover+.tribe-common-form-control-radio__label{opacity:var(--tec-opacity-icon-hover)}#top .main_color .tribe-common .tribe-common-form-control-checkbox__label,#top .main_color .tribe-common .tribe-common-form-control-radio__label,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-checkbox__label,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-radio__label{font-size:var(--tec-font-size-2);font-weight:var(--tec-font-weight-regular)}.tribe-theme-twentytwenty .tribe-common .tribe-common-form-control-checkbox__input:checked:before{margin:0}.tribe-common .tribe-common-form-control-slider{line-height:0}.tribe-common .tribe-common-form-control-slider__input{-webkit-appearance:none;appearance:none;background-color:transparent;border:0}.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:var(--tec-transition-background-color);background-color:var(--tec-form-color-accent-primary)}.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:var(--tec-transition-background-color);background-color:var(--tec-form-color-accent-primary)}.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:var(--tec-form-color-accent-primary);border-radius:10px}.tribe-common .tribe-common-form-control-slider__input::-webkit-slider-thumb{background-color:var(--tec-form-color-background);border:1px solid var(--tec-form-color-border-secondary);border-radius:50%;box-shadow:var(--tec-form-box-shadow-default);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:var(--tec-form-color-background);border:1px solid var(--tec-form-color-border-secondary);border-radius:50%;box-shadow:var(--tec-form-box-shadow-default);height:20px;width:20px;margin-top:-5px}.tribe-common .tribe-common-form-control-slider__input::-ms-thumb{background-color:var(--tec-form-color-background);border:1px solid var(--tec-form-color-border-secondary);border-radius:50%;box-shadow:var(--tec-form-box-shadow-default);height:20px;width:20px;margin-top:-5px;box-shadow:none;margin-top:-1px}.tribe-common .tribe-common-form-control-slider__label{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);line-height:var(--tec-line-height-0);color:var(--tec-color-text-secondary)}#top .main_color .tribe-common .tribe-common-form-control-slider__label,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-slider__label,.tribe-common .tribe-common-form-control-slider__label{font-size:var(--tec-font-size-1);font-weight:var(--tec-font-weight-regular)}.tribe-common .tribe-common-form-control-text__input{font-size:var(--tec-font-size-3);border:0;border-bottom:1px solid var(--tec-color-border-default)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-form-control-text__input,.tribe-common .tribe-common-form-control-text__input{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);line-height:var(--tec-line-height-3);font-weight:var(--tec-font-weight-regular)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-form-control-text__input{font-size:var(--tec-font-size-2);border:0}.tribe-common .tribe-common-form-control-text__input::placeholder{color:var(--tec-color-text-secondary);font-style:normal;opacity:var(--tec-opacity-default)}.tribe-common .tribe-common-form-control-text__input:focus{border-bottom-color:var(--tec-color-border-active);outline:0}.tribe-theme-twentyseventeen .tribe-common .tribe-common-form-control-text__input{color:var(--tec-color-text-primary)}.tribe-theme-twentytwenty .tribe-common .tribe-common-form-control-text__input{line-height:inherit}#top .main_color .tribe-common .tribe-common-form-control-text__input,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-text__input{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-3);line-height:var(--tec-line-height-3);font-weight:var(--tec-font-weight-regular);background:var(--tec-color-background);border:0;border-bottom:1px solid var(--tec-color-border-default)}#top .main_color .tribe-common .tribe-common-form-control-text__input:focus,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-text__input:focus{border-bottom-color:var(--tec-color-border-active);box-shadow:none}#top .main_color .tribe-common.tribe-common--breakpoint-medium .tribe-common-form-control-text__input,#top.tribe-theme-enfold .tribe-common.tribe-common--breakpoint-medium .tribe-common-form-control-text__input{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-2);line-height:var(--tec-line-height-3);font-weight:var(--tec-font-weight-regular);border:0}.tribe-common .tribe-common-form-control-toggle{line-height:0;position:relative}.tribe-common .tribe-common-form-control-toggle__input{border:none;border-radius:5px;height:10px;margin:5px 0;padding:0;position:relative;transition:var(--tec-transition-background-color);-webkit-appearance:none;appearance:none;background-color:var(--tec-form-color-border-secondary);width:40px}.tribe-common .tribe-common-form-control-toggle__input::-ms-check{display:none}.tribe-common .tribe-common-form-control-toggle__input+label:before{background-color:var(--tec-form-color-background);border:1px solid var(--tec-form-color-border-secondary);border-radius:50%;box-shadow:var(--tec-form-box-shadow-default);height:20px;width:20px;content:"";left:0;position:absolute;top:0;transition:var(--tec-transition-transform)}.tribe-common .tribe-common-form-control-toggle__input:checked{background-color:var(--tec-form-color-accent-primary)}.tribe-common .tribe-common-form-control-toggle__input:checked+label:before{transform:translateX(20px)}.tribe-common .tribe-common-form-control-toggle__label{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);line-height:var(--tec-line-height-0);color:var(--tec-color-text-secondary)}#top .main_color .tribe-common .tribe-common-form-control-toggle__label,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-toggle__label,.tribe-common .tribe-common-form-control-toggle__label{font-size:var(--tec-font-size-1);font-weight:var(--tec-font-weight-regular)}.tribe-theme-twentytwenty .tribe-common .tribe-common-form-control-toggle__input{top:0}.tribe-theme-twentytwenty .tribe-common .tribe-common-form-control-toggle__input:checked:before{content:none}.tribe-theme-twentytwentyone .tribe-common .tribe-common-form-control-toggle__input:after{display:none}.tribe-common a,.tribe-common a:active,.tribe-common a:focus,.tribe-common a:hover,.tribe-common a:visited{color:var(--tec-color-text-primary);outline:0;text-decoration:none}.site-footer .widget-area .tribe-common a,.tribe-theme-twentyseventeen .site-footer .widget-area .tribe-common a,.tribe-theme-twentyseventeen .tribe-common a{box-shadow:none}.site-footer .widget-area .tribe-common a:focus,.site-footer .widget-area .tribe-common a:hover,.tribe-theme-twentyseventeen .site-footer .widget-area .tribe-common a:focus,.tribe-theme-twentyseventeen .site-footer .widget-area .tribe-common a:hover,.tribe-theme-twentyseventeen .tribe-common a:focus,.tribe-theme-twentyseventeen .tribe-common a:hover{box-shadow:none;color:var(--tec-color-text-primary)}.tribe-theme-twentynineteen .entry .tribe-common a,.tribe-theme-twentynineteen .tribe-common a,.tribe-theme-twentytwentyone .entry .tribe-common a,.tribe-theme-twentytwentyone .tribe-common a{text-decoration:none}.main_color .sidebar .tribe-common a,.main_color .sidebar .tribe-common a:active,.main_color .sidebar .tribe-common a:focus,.main_color .sidebar .tribe-common a:hover,.main_color .sidebar .tribe-common a:visited,.tribe-theme-enfold .tribe-common a,.tribe-theme-enfold .tribe-common a:active,.tribe-theme-enfold .tribe-common a:focus,.tribe-theme-enfold .tribe-common a:hover,.tribe-theme-enfold .tribe-common a:visited{color:var(--tec-color-text-primary)}.tribe-common .tribe-common-anchor{border-bottom:2px solid transparent;transition:var(--tec-transition-border-color)}.tribe-common .tribe-common-anchor:active,.tribe-common .tribe-common-anchor:focus,.tribe-common .tribe-common-anchor:hover{border-bottom:2px solid currentColor}.tribe-common .tribe-common-anchor-alt{border-bottom:2px solid var(--tec-color-link-accent);color:var(--tec-color-link-primary);transition:var(--tec-transition-color)}.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 currentColor;color:var(--tec-color-link-accent)}.tribe-common .tribe-common-anchor-thin{border-bottom:1px solid transparent;transition:var(--tec-transition-border-color)}.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 var(--tec-color-link-primary)}.tribe-common .tribe-common-anchor-thin-alt{border-bottom:1px solid var(--tec-color-link-accent);color:var(--tec-color-link-primary);transition:var(--tec-transition-color)}.tribe-common .tribe-common-anchor-thin-alt:active,.tribe-common .tribe-common-anchor-thin-alt:focus,.tribe-common .tribe-common-anchor-thin-alt:hover{border-bottom:1px solid currentColor;color:var(--tec-color-link-accent)}.tribe-theme-twentyseventeen .tribe-common .tribe-common-anchor-alt:focus,.tribe-theme-twentyseventeen .tribe-common .tribe-common-anchor-alt:hover,.tribe-theme-twentyseventeen .tribe-common .tribe-common-anchor-thin-alt:focus,.tribe-theme-twentyseventeen .tribe-common .tribe-common-anchor-thin-alt:hover{color:var(--tec-color-accent-primary)}.site-footer .widget-area .tribe-common .tribe-common-anchor,.site-footer .widget-area .tribe-common .tribe-common-anchor-thin,.tribe-theme-twentyseventeen .site-footer .widget-area .tribe-common .tribe-common-anchor,.tribe-theme-twentyseventeen .site-footer .widget-area .tribe-common .tribe-common-anchor-thin{transition:var(--tec-transition-border-color)}.site-footer .widget-area .tribe-common .tribe-common-anchor-alt,.site-footer .widget-area .tribe-common .tribe-common-anchor-thin-alt,.tribe-theme-twentyseventeen .site-footer .widget-area .tribe-common .tribe-common-anchor-alt,.tribe-theme-twentyseventeen .site-footer .widget-area .tribe-common .tribe-common-anchor-thin-alt{transition:var(--tec-transition-color)}.tribe-common .tribe-common-b1{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-2);font-weight:var(--tec-font-weight-regular);line-height:var(--tec-line-height-3)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b1{font-size:var(--tec-font-size-3);line-height:var(--tec-line-height-3)}.tribe-common .tribe-common-b1--bold{font-weight:var(--tec-font-weight-bold)}.tribe-common .tribe-common-b2{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-1);font-weight:var(--tec-font-weight-regular);line-height:var(--tec-line-height-0)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b2{font-size:var(--tec-font-size-2);line-height:var(--tec-line-height-3)}.tribe-common .tribe-common-b2--bold{font-weight:var(--tec-font-weight-bold)}.tribe-common .tribe-common-b3{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-0);font-weight:var(--tec-font-weight-regular);line-height:var(--tec-line-height-2)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b3{font-size:var(--tec-font-size-1);line-height:var(--tec-line-height-0)}.tribe-common .tribe-common-b3--bold{font-weight:var(--tec-font-weight-bold)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b1--min-medium{font-size:var(--tec-font-size-3);line-height:var(--tec-line-height-3)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b2--min-medium{font-size:var(--tec-font-size-2);line-height:var(--tec-line-height-3)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b3--min-medium,.tribe-common .tribe-common-cta{font-size:var(--tec-font-size-1);line-height:var(--tec-line-height-0)}.tribe-common .tribe-common-cta{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-regular);font-weight:var(--tec-font-weight-bold);border-bottom:2px solid transparent;transition:var(--tec-transition-border-color)}.tribe-common .tribe-common-cta:active,.tribe-common .tribe-common-cta:focus,.tribe-common .tribe-common-cta:hover{border-bottom:2px solid currentColor}.tribe-common .tribe-common-cta--alt{border-bottom:2px solid var(--tec-color-link-accent);color:var(--tec-color-link-primary);transition:var(--tec-transition-color)}.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 currentColor;color:var(--tec-color-link-accent)}.tribe-common .tribe-common-cta--thin{border-bottom:1px solid transparent;transition:var(--tec-transition-border-color)}.tribe-common .tribe-common-cta--thin:active,.tribe-common .tribe-common-cta--thin:focus,.tribe-common .tribe-common-cta--thin:hover{border-bottom:1px solid var(--tec-color-link-primary)}.tribe-common .tribe-common-cta--thin-alt{border-bottom:1px solid var(--tec-color-link-accent);color:var(--tec-color-link-primary);transition:var(--tec-transition-color)}.tribe-common .tribe-common-cta--thin-alt:active,.tribe-common .tribe-common-cta--thin-alt:focus,.tribe-common .tribe-common-cta--thin-alt:hover{border-bottom:1px solid currentColor;color:var(--tec-color-link-accent)}.tribe-theme-twentyseventeen .tribe-common .tribe-common-cta--alt:focus,.tribe-theme-twentyseventeen .tribe-common .tribe-common-cta--alt:hover,.tribe-theme-twentyseventeen .tribe-common .tribe-common-cta--thin-alt:focus,.tribe-theme-twentyseventeen .tribe-common .tribe-common-cta--thin-alt:hover{color:var(--tec-color-accent-primary)}.tribe-common .tribe-common-h1{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-bold);font-size:var(--tec-font-size-8);line-height:var(--tec-line-height-1)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h1{font-size:var(--tec-font-size-10);line-height:var(--tec-line-height-0)}.tribe-common .tribe-common-h2{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-bold);font-size:var(--tec-font-size-7);line-height:var(--tec-line-height-1)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h2{font-size:var(--tec-font-size-9);line-height:var(--tec-line-height-0)}.tribe-common .tribe-common-h3{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-bold);font-size:var(--tec-font-size-6);line-height:var(--tec-line-height-2)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h3{font-size:var(--tec-font-size-8);line-height:var(--tec-line-height-1)}.tribe-common .tribe-common-h4{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-bold);font-size:var(--tec-font-size-5);line-height:var(--tec-line-height-1)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h4{font-size:var(--tec-font-size-7);line-height:var(--tec-line-height-1)}.tribe-common .tribe-common-h5{font-size:var(--tec-font-size-4)}.tribe-common .tribe-common-h5,.tribe-common .tribe-common-h6{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-bold);line-height:var(--tec-line-height-2)}.tribe-common .tribe-common-h6{font-size:var(--tec-font-size-3)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h6{font-size:var(--tec-font-size-3);line-height:var(--tec-line-height-3)}.tribe-common .tribe-common-h7{font-size:var(--tec-font-size-2);line-height:var(--tec-line-height-3)}.tribe-common .tribe-common-h7,.tribe-common .tribe-common-h8{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-bold)}.tribe-common .tribe-common-h8{font-size:var(--tec-font-size-1);line-height:var(--tec-line-height-0)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h3--min-medium{font-size:var(--tec-font-size-8);line-height:var(--tec-line-height-1)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h4--min-medium{font-size:var(--tec-font-size-7);line-height:var(--tec-line-height-1)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h5--min-medium{font-size:var(--tec-font-size-4);line-height:var(--tec-line-height-2)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h6--min-medium{font-size:var(--tec-font-size-3);line-height:var(--tec-line-height-3)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h7--min-medium{font-size:var(--tec-font-size-2);line-height:var(--tec-line-height-3)}.tribe-common .tribe-common-h--alt{font-weight:var(--tec-font-weight-regular)}.tribe-theme-avada #main .tribe-common .tribe-common-h1{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-bold);font-size:var(--tec-font-size-8);line-height:var(--tec-line-height-1)}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h1{font-size:var(--tec-font-size-10);line-height:var(--tec-line-height-0)}.tribe-theme-avada #main .tribe-common .tribe-common-h2{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-bold);font-size:var(--tec-font-size-7);line-height:var(--tec-line-height-1)}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h2{font-size:var(--tec-font-size-9);line-height:var(--tec-line-height-0)}.tribe-theme-avada #main .tribe-common .tribe-common-h3{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-bold);font-size:var(--tec-font-size-6);line-height:var(--tec-line-height-2)}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h3{font-size:var(--tec-font-size-8);line-height:var(--tec-line-height-1)}.tribe-theme-avada #main .tribe-common .tribe-common-h4{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-bold);font-size:var(--tec-font-size-5);line-height:var(--tec-line-height-1)}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h4{font-size:var(--tec-font-size-7);line-height:var(--tec-line-height-1)}.tribe-theme-avada #main .tribe-common .tribe-common-h5{font-size:var(--tec-font-size-4)}.tribe-theme-avada #main .tribe-common .tribe-common-h5,.tribe-theme-avada #main .tribe-common .tribe-common-h6{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-bold);line-height:var(--tec-line-height-2)}.tribe-theme-avada #main .tribe-common .tribe-common-h6{font-size:var(--tec-font-size-3)}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h6{font-size:var(--tec-font-size-3);line-height:var(--tec-line-height-3)}.tribe-theme-avada #main .tribe-common .tribe-common-h7{font-size:var(--tec-font-size-2);line-height:var(--tec-line-height-3)}.tribe-theme-avada #main .tribe-common .tribe-common-h7,.tribe-theme-avada #main .tribe-common .tribe-common-h8{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-bold)}.tribe-theme-avada #main .tribe-common .tribe-common-h8{font-size:var(--tec-font-size-1);line-height:var(--tec-line-height-0)}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h3--min-medium{font-size:var(--tec-font-size-8);line-height:var(--tec-line-height-1)}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h4--min-medium{font-size:var(--tec-font-size-7);line-height:var(--tec-line-height-1)}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h5--min-medium{font-size:var(--tec-font-size-4);line-height:var(--tec-line-height-2)}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h6--min-medium{font-size:var(--tec-font-size-3);line-height:var(--tec-line-height-3)}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h7--min-medium{font-size:var(--tec-font-size-2);line-height:var(--tec-line-height-3)}.tribe-theme-avada #main .tribe-common .tribe-common-h--alt{font-weight:var(--tec-font-weight-regular)}.tribe-common button{border:none}.tribe-common button,.tribe-common button:focus,.tribe-common button:hover,.tribe-theme-twentyseventeen .tribe-common button:focus,.tribe-theme-twentyseventeen .tribe-common button:hover{background-color:transparent}.tribe-theme-twentytwenty .tribe-common button{background-color:transparent;text-transform:inherit}.tribe-theme-twentytwenty .tribe-common button:focus,.tribe-theme-twentytwenty .tribe-common button:hover{text-decoration:none}.tribe-theme-twentytwentyone .tribe-common button:not(:hover):not(:active){background-color:inherit;color:inherit}.tribe-theme-enfold .tribe-common th{letter-spacing:0;text-transform:none}.tribe-common .tribe-common-c-btn-border,.tribe-common a.tribe-common-c-btn-border{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-2);line-height:var(--tec-line-height-3);font-weight:var(--tec-font-weight-regular);font-weight:var(--tec-font-weight-bold);border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto;background-color:var(--tec-color-background);border:1px solid var(--tec-color-accent-primary);border-radius:var(--tec-border-radius-default);text-align:center;transition:var(--tec-transition);color:var(--tec-color-button-primary);padding:11px 20px;width:100%}.tribe-common--breakpoint-medium.tribe-common .tribe-common-c-btn-border,.tribe-common--breakpoint-medium.tribe-common a.tribe-common-c-btn-border{width:auto}.tribe-common .tribe-common-c-btn-border:focus,.tribe-common .tribe-common-c-btn-border:hover,.tribe-common a.tribe-common-c-btn-border:focus,.tribe-common a.tribe-common-c-btn-border:hover{background-color:var(--tec-color-accent-primary);color:var(--tec-color-background)}.tribe-common .tribe-common-c-btn-border:active,.tribe-common a.tribe-common-c-btn-border:active{opacity:.9}.tribe-common .tribe-common-c-btn-border--secondary,.tribe-common a.tribe-common-c-btn-border--secondary{border-color:var(--tec-color-button-secondary);color:var(--tec-color-button-secondary)}.tribe-common .tribe-common-c-btn-border--secondary:focus,.tribe-common .tribe-common-c-btn-border--secondary:hover,.tribe-common a.tribe-common-c-btn-border--secondary:focus,.tribe-common a.tribe-common-c-btn-border--secondary:hover{background-color:var(--tec-color-button-secondary)}.tribe-common .tribe-common-c-btn-border--secondary:active,.tribe-common a.tribe-common-c-btn-border--secondary:active{opacity:.9}.tribe-common .tribe-common-c-btn-border--alt,.tribe-common a.tribe-common-c-btn-border--alt{border-color:var(--tec-color-border-secondary);color:var(--tec-color-text-primary);font-weight:var(--tec-font-weight-regular)}.tribe-common .tribe-common-c-btn-border--alt:focus,.tribe-common .tribe-common-c-btn-border--alt:hover,.tribe-common a.tribe-common-c-btn-border--alt:focus,.tribe-common a.tribe-common-c-btn-border--alt:hover{background-color:var(--tec-color-background);border-color:var(--tec-color-border-active);color:var(--tec-color-text-primary)}.tribe-common .tribe-common-c-btn-border--alt:active,.tribe-common a.tribe-common-c-btn-border--alt:active{opacity:.9}.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn-border:focus,.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn-border:hover{background-color:var(--tec-color-button-primary)}.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn-border--secondary:focus,.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn-border--secondary:hover{background-color:var(--tec-color-button-secondary)}.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn-border--alt:focus,.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn-border--alt:hover{background-color:var(--tec-color-background)}.tribe-common .tribe-common-c-btn-border-small,.tribe-common a.tribe-common-c-btn-border-small{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-1);line-height:var(--tec-line-height-0);font-weight:var(--tec-font-weight-regular);border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto;background-color:var(--tec-color-background);border:1px solid var(--tec-color-border-default);border-radius:var(--tec-border-radius-default);text-align:center;transition:var(--tec-transition-color-border-color)}.tribe-common .tribe-common-c-btn-border-small:focus,.tribe-common .tribe-common-c-btn-border-small:hover,.tribe-common a.tribe-common-c-btn-border-small:focus,.tribe-common a.tribe-common-c-btn-border-small:hover{background-color:var(--tec-color-background)}.tribe-common .tribe-common-c-btn-border-small:active,.tribe-common a.tribe-common-c-btn-border-small:active{border-color:var(--tec-color-border-active)}.tribe-common .tribe-common-c-btn-border-small,.tribe-common a.tribe-common-c-btn-border-small{color:var(--tec-color-text-secondary);padding:14px 20px;width:100%}.tribe-common--breakpoint-medium.tribe-common .tribe-common-c-btn-border-small,.tribe-common--breakpoint-medium.tribe-common a.tribe-common-c-btn-border-small{padding:6px 15px;width:auto}.tribe-common .tribe-common-c-btn-border-small:active,.tribe-common .tribe-common-c-btn-border-small:focus,.tribe-common .tribe-common-c-btn-border-small:hover,.tribe-common a.tribe-common-c-btn-border-small:active,.tribe-common a.tribe-common-c-btn-border-small:focus,.tribe-common a.tribe-common-c-btn-border-small:hover{color:var(--tec-color-text-primary)}.tribe-common .tribe-common-c-btn-border-small:disabled,.tribe-common a.tribe-common-c-btn-border-small:disabled{color:var(--tec-color-text-disabled)}.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn-border-small:hover{background-color:var(--tec-color-background)}.tribe-common .tribe-common-c-btn-icon{border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto}.tribe-common .tribe-common-c-btn-icon--caret-left:active .tribe-common-c-btn-icon__icon-svg path,.tribe-common .tribe-common-c-btn-icon--caret-left:focus .tribe-common-c-btn-icon__icon-svg path,.tribe-common .tribe-common-c-btn-icon--caret-left:hover .tribe-common-c-btn-icon__icon-svg path,.tribe-common .tribe-common-c-btn-icon--caret-right:active .tribe-common-c-btn-icon__icon-svg path,.tribe-common .tribe-common-c-btn-icon--caret-right:focus .tribe-common-c-btn-icon__icon-svg path,.tribe-common .tribe-common-c-btn-icon--caret-right:hover .tribe-common-c-btn-icon__icon-svg path{fill:var(--tec-color-icon-primary)}.tribe-common .tribe-common-c-btn-icon--caret-left:disabled .tribe-common-c-btn-icon__icon-svg path,.tribe-common .tribe-common-c-btn-icon--caret-right:disabled .tribe-common-c-btn-icon__icon-svg path{fill:var(--tec-color-icon-disabled)}.tribe-common .tribe-common-c-btn-icon--caret-left .tribe-common-c-btn-icon__icon-svg path,.tribe-common .tribe-common-c-btn-icon--caret-right .tribe-common-c-btn-icon__icon-svg path{fill:var(--tec-color-icon-secondary)}.tribe-common .tribe-common-c-btn-icon--border{align-items:center;background-color:var(--tec-color-background);border:1px solid var(--tec-color-border-default);display:inline-flex;height:56px;justify-content:center;transition:none;width:56px}.tribe-common .tribe-common-c-btn-icon--border:focus,.tribe-common .tribe-common-c-btn-icon--border:hover{background-color:var(--tec-color-background)}.tribe-common .tribe-common-c-btn-icon--border:active{border-color:var(--tec-color-border-active)}.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn-icon--border:hover{background-color:var(--tec-color-background)}.tribe-common .tribe-common-c-btn,.tribe-common a.tribe-common-c-btn{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-2);line-height:var(--tec-line-height-3);font-weight:var(--tec-font-weight-regular);font-weight:var(--tec-font-weight-bold);border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto;border-radius:var(--tec-border-radius-default);color:var(--tec-color-background);text-align:center;transition:var(--tec-transition-background-color);background-color:var(--tec-color-button-primary);padding:11px 20px;width:100%}.tribe-common--breakpoint-medium.tribe-common .tribe-common-c-btn,.tribe-common--breakpoint-medium.tribe-common a.tribe-common-c-btn{width:auto}.tribe-common .tribe-common-c-btn:focus,.tribe-common .tribe-common-c-btn:hover,.tribe-common a.tribe-common-c-btn:focus,.tribe-common a.tribe-common-c-btn:hover{background-color:var(--tec-color-button-primary-hover)}.tribe-common .tribe-common-c-btn:active,.tribe-common a.tribe-common-c-btn:active{background-color:var(--tec-color-button-primary-active)}.tribe-common .tribe-common-c-btn:disabled,.tribe-common a.tribe-common-c-btn:disabled{background-color:var(--tec-color-button-primary-background)}.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn:focus,.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn:hover{background-color:var(--tec-color-button-primary-hover);color:var(--tec-color-background)}.tribe-theme-twentytwenty .tribe-common .tribe-common-c-btn{background-color:var(--tec-color-button-primary)}.tribe-theme-twentytwenty .tribe-common .tribe-common-c-btn:focus,.tribe-theme-twentytwenty .tribe-common .tribe-common-c-btn:hover{background-color:var(--tec-color-button-primary-hover);color:var(--tec-color-background)}.tribe-theme-twentytwentyone .tribe-common .tribe-common-c-btn{outline:none}.tribe-theme-twentytwentyone .tribe-common .tribe-common-c-btn:not(:hover):not(:active){background-color:var(--tec-color-button-primary);color:var(--tec-color-background)}.tribe-common .tribe-common-c-loader__dot circle{animation-direction:normal;animation-duration:2.24s;animation-iteration-count:infinite;animation-name:a;fill:currentColor;opacity:var(--tec-opacity-background)}.tribe-common .tribe-common-c-loader__dot--first circle{animation-delay:.45s}.tribe-common .tribe-common-c-loader__dot--second circle{animation-delay:1.05s}.tribe-common .tribe-common-c-loader__dot--third circle{animation-delay:1.35s}@keyframes a{50%{opacity:var(--tec-opacity-default)}}.tribe-common .tribe-common-c-svgicon{color:var(--tec-color-accent-primary)}.tribe-common .tribe-common-c-svgicon--featured path{fill:currentColor}.tribe-common .tribe-common-c-svgicon--recurring path{fill:var(--tec-color-icon-active);stroke:var(--tec-color-icon-active)}.tribe-common .tribe-common-c-svgicon--close-alt path,.tribe-common .tribe-common-c-svgicon--close path{stroke:var(--tec-color-icon-secondary)}.tribe-common .tribe-common-c-svgicon--messages-not-found path{stroke:var(--tec-color-icon-active)}.tribe-common .tribe-common-c-svgicon--messages-not-found .tribe-common-c-svgicon__svg-stroke{stroke:currentColor}.tribe-common .tribe-common-c-svgicon__svg-fill{fill:var(--tec-color-icon-active)}.tribe-common .tribe-common-c-svgicon__svg-stroke{stroke:var(--tec-color-icon-active)}
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;appearance:none}.tribe-common button,.tribe-common input,.tribe-common optgroup,.tribe-common select,.tribe-common textarea{color:inherit;font:inherit;-webkit-font-smoothing:antialiased;line-height:normal}.tribe-common button,.tribe-common input,.tribe-common select,.tribe-common textarea{border-radius:0;outline:0}.tribe-common select:-moz-focusring{color:transparent;text-shadow:0 0 0 #000}.tribe-common optgroup{font-weight:700}.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}#top .main_color .tribe-common button[disabled],#top.tribe-theme-enfold .tribe-common button[disabled]{opacity:1}.tribe-theme-twentynineteen .tribe-common h1:before,.tribe-theme-twentynineteen .tribe-common h2:before{content:none}.tribe-theme-twentynineteen .tribe-common button,.tribe-theme-twentynineteen .tribe-common input[type=button],.tribe-theme-twentynineteen .tribe-common input[type=reset],.tribe-theme-twentynineteen .tribe-common input[type=submit]{outline:none}.tribe-theme-twentynineteen .tribe-common td,.tribe-theme-twentynineteen .tribe-common th{word-break:normal}.tribe-theme-twentyseventeen .tribe-common h5{letter-spacing:normal;text-transform:none}.tribe-theme-twentyseventeen .tribe-common input[type=text]{border-radius:0}.tribe-theme-twentytwenty .tribe-common{background-color:var(--tec-color-background-events);letter-spacing:normal}.tribe-theme-twentytwenty .tribe-common input,.tribe-theme-twentytwenty .tribe-common textarea{letter-spacing:normal}.tribe-theme-twentytwenty .tribe-common *{word-break:normal}.tribe-theme-twentytwentyone.tribe-common .tribe-common .button:not(:hover):not(:active):not(.has-background),.tribe-theme-twentytwentyone.tribe-common .tribe-common .wp-block-button .wp-block-button__link:not(:hover):not(:active):not(.has-background),.tribe-theme-twentytwentyone.tribe-common .tribe-common .wp-block-file a.wp-block-file__button:not(:hover):not(:active):not(.has-background),.tribe-theme-twentytwentyone.tribe-common .tribe-common .wp-block-search .wp-block-search__button:not(:hover):not(:active):not(.has-background),.tribe-theme-twentytwentyone.tribe-common .tribe-common button:not(:hover):not(:active):not(.has-background),.tribe-theme-twentytwentyone.tribe-common .tribe-common input[type=reset]:not(:hover):not(:active):not(.has-background),.tribe-theme-twentytwentyone.tribe-common .tribe-common input[type=submit]:not(:hover):not(:active):not(.has-background){background-color:initial}.tribe-common .tribe-common-form-control-checkbox,.tribe-common .tribe-common-form-control-radio{line-height:0}.tribe-common .tribe-common-form-control-checkbox__label,.tribe-common .tribe-common-form-control-radio__label{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-2);line-height:var(--tec-line-height-3);font-weight:var(--tec-font-weight-regular)}.tribe-common .tribe-common-form-control-checkbox__label:hover,.tribe-common .tribe-common-form-control-radio__label:hover{opacity:var(--tec-opacity-icon-hover)}.tribe-common .tribe-common-form-control-checkbox__input,.tribe-common .tribe-common-form-control-radio__input{-webkit-appearance:none;appearance:none;background-color:var(--tec-form-color-background);border:1px solid var(--tec-form-color-border-default);height:20px;position:relative;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-color:var(--tec-form-color-border-active);opacity:var(--tec-opacity-icon-hover)}.tribe-common .tribe-common-form-control-checkbox__input:checked,.tribe-common .tribe-common-form-control-radio__input:checked{background-color:var(--tec-form-color-border-active)}.tribe-common .tribe-common-form-control-checkbox__input{border-radius:4px}.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' 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%;margin:0;position:absolute;top:50%;transform:translate(-50%,-50%);width:12px}.tribe-common .tribe-common-form-control-checkbox__input:focus+.tribe-common-form-control-checkbox__label,.tribe-common .tribe-common-form-control-checkbox__input:hover+.tribe-common-form-control-checkbox__label{opacity:var(--tec-opacity-icon-hover)}.tribe-common .tribe-common-form-control-radio__input{border-radius:50%}.tribe-common .tribe-common-form-control-radio__input:checked:before{background-color:var(--tec-form-color-background);border-radius:50%;content:"";display:block;height:8px;left:50%;margin:0;position:absolute;top:50%;transform:translate(-50%,-50%);width:8px}.tribe-common .tribe-common-form-control-radio__input:focus+.tribe-common-form-control-radio__label,.tribe-common .tribe-common-form-control-radio__input:hover+.tribe-common-form-control-radio__label{opacity:var(--tec-opacity-icon-hover)}#top .main_color .tribe-common .tribe-common-form-control-checkbox__label,#top .main_color .tribe-common .tribe-common-form-control-radio__label,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-checkbox__label,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-radio__label{font-size:var(--tec-font-size-2);font-weight:var(--tec-font-weight-regular)}.tribe-theme-twentytwenty .tribe-common .tribe-common-form-control-checkbox__input:checked:before{margin:0}.tribe-common .tribe-common-form-control-slider{line-height:0}.tribe-common .tribe-common-form-control-slider__input{-webkit-appearance:none;appearance:none;background-color:transparent;border:0}.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:var(--tec-transition-background-color);background-color:var(--tec-form-color-accent-primary)}.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:var(--tec-transition-background-color);background-color:var(--tec-form-color-accent-primary)}.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:var(--tec-form-color-accent-primary);border-radius:10px}.tribe-common .tribe-common-form-control-slider__input::-webkit-slider-thumb{background-color:var(--tec-form-color-background);border:1px solid var(--tec-form-color-border-secondary);border-radius:50%;box-shadow:var(--tec-form-box-shadow-default);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:var(--tec-form-color-background);border:1px solid var(--tec-form-color-border-secondary);border-radius:50%;box-shadow:var(--tec-form-box-shadow-default);height:20px;width:20px;margin-top:-5px}.tribe-common .tribe-common-form-control-slider__input::-ms-thumb{background-color:var(--tec-form-color-background);border:1px solid var(--tec-form-color-border-secondary);border-radius:50%;box-shadow:var(--tec-form-box-shadow-default);height:20px;width:20px;margin-top:-5px;box-shadow:none;margin-top:-1px}.tribe-common .tribe-common-form-control-slider__label{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);line-height:var(--tec-line-height-0);color:var(--tec-color-text-secondary)}#top .main_color .tribe-common .tribe-common-form-control-slider__label,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-slider__label,.tribe-common .tribe-common-form-control-slider__label{font-size:var(--tec-font-size-1);font-weight:var(--tec-font-weight-regular)}.tribe-common .tribe-common-form-control-text__input{font-size:var(--tec-font-size-3);border:0;border-bottom:1px solid var(--tec-color-border-default)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-form-control-text__input,.tribe-common .tribe-common-form-control-text__input{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);line-height:var(--tec-line-height-3);font-weight:var(--tec-font-weight-regular)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-form-control-text__input{font-size:var(--tec-font-size-2);border:0}.tribe-common .tribe-common-form-control-text__input::placeholder{color:var(--tec-color-text-secondary);font-style:normal;opacity:var(--tec-opacity-default)}.tribe-common .tribe-common-form-control-text__input:focus{border-bottom-color:var(--tec-color-border-active);outline:0}.tribe-theme-twentyseventeen .tribe-common .tribe-common-form-control-text__input{color:var(--tec-color-text-primary)}.tribe-theme-twentytwenty .tribe-common .tribe-common-form-control-text__input{line-height:inherit}#top .main_color .tribe-common .tribe-common-form-control-text__input,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-text__input{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-3);line-height:var(--tec-line-height-3);font-weight:var(--tec-font-weight-regular);background:var(--tec-color-background);border:0;border-bottom:1px solid var(--tec-color-border-default)}#top .main_color .tribe-common .tribe-common-form-control-text__input:focus,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-text__input:focus{border-bottom-color:var(--tec-color-border-active);box-shadow:none}#top .main_color .tribe-common.tribe-common--breakpoint-medium .tribe-common-form-control-text__input,#top.tribe-theme-enfold .tribe-common.tribe-common--breakpoint-medium .tribe-common-form-control-text__input{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-2);line-height:var(--tec-line-height-3);font-weight:var(--tec-font-weight-regular);border:0}.tribe-common .tribe-common-form-control-toggle{line-height:0;position:relative}.tribe-common .tribe-common-form-control-toggle__input{border:none;border-radius:5px;height:10px;margin:5px 0;padding:0;position:relative;transition:var(--tec-transition-background-color);-webkit-appearance:none;appearance:none;background-color:var(--tec-form-color-border-secondary);width:40px}.tribe-common .tribe-common-form-control-toggle__input::-ms-check{display:none}.tribe-common .tribe-common-form-control-toggle__input+label:before{background-color:var(--tec-form-color-background);border:1px solid var(--tec-form-color-border-secondary);border-radius:50%;box-shadow:var(--tec-form-box-shadow-default);height:20px;width:20px;content:"";left:0;position:absolute;top:0;transition:var(--tec-transition-transform)}.tribe-common .tribe-common-form-control-toggle__input:checked{background-color:var(--tec-form-color-accent-primary)}.tribe-common .tribe-common-form-control-toggle__input:checked+label:before{transform:translateX(20px)}.tribe-common .tribe-common-form-control-toggle__label{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);line-height:var(--tec-line-height-0);color:var(--tec-color-text-secondary)}#top .main_color .tribe-common .tribe-common-form-control-toggle__label,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-toggle__label,.tribe-common .tribe-common-form-control-toggle__label{font-size:var(--tec-font-size-1);font-weight:var(--tec-font-weight-regular)}.tribe-theme-twentytwenty .tribe-common .tribe-common-form-control-toggle__input{top:0}.tribe-theme-twentytwenty .tribe-common .tribe-common-form-control-toggle__input:checked:before{content:none}.tribe-theme-twentytwentyone .tribe-common .tribe-common-form-control-toggle__input:after{display:none}.tribe-common a,.tribe-common a:active,.tribe-common a:focus,.tribe-common a:hover,.tribe-common a:visited{color:var(--tec-color-text-primary);outline:0;text-decoration:none}.site-footer .widget-area .tribe-common a,.tribe-theme-twentyseventeen .site-footer .widget-area .tribe-common a,.tribe-theme-twentyseventeen .tribe-common a{box-shadow:none}.site-footer .widget-area .tribe-common a:focus,.site-footer .widget-area .tribe-common a:hover,.tribe-theme-twentyseventeen .site-footer .widget-area .tribe-common a:focus,.tribe-theme-twentyseventeen .site-footer .widget-area .tribe-common a:hover,.tribe-theme-twentyseventeen .tribe-common a:focus,.tribe-theme-twentyseventeen .tribe-common a:hover{box-shadow:none;color:var(--tec-color-text-primary)}.tribe-theme-twentynineteen .entry .tribe-common a,.tribe-theme-twentynineteen .tribe-common a,.tribe-theme-twentytwentyone .entry .tribe-common a,.tribe-theme-twentytwentyone .tribe-common a{text-decoration:none}.main_color .sidebar .tribe-common a,.main_color .sidebar .tribe-common a:active,.main_color .sidebar .tribe-common a:focus,.main_color .sidebar .tribe-common a:hover,.main_color .sidebar .tribe-common a:visited,.tribe-theme-enfold .tribe-common a,.tribe-theme-enfold .tribe-common a:active,.tribe-theme-enfold .tribe-common a:focus,.tribe-theme-enfold .tribe-common a:hover,.tribe-theme-enfold .tribe-common a:visited{color:var(--tec-color-text-primary)}.tribe-common .tribe-common-anchor{border-bottom:2px solid transparent;transition:var(--tec-transition-border-color)}.tribe-common .tribe-common-anchor:active,.tribe-common .tribe-common-anchor:focus,.tribe-common .tribe-common-anchor:hover{border-bottom:2px solid currentColor}.tribe-common .tribe-common-anchor-alt{border-bottom:2px solid var(--tec-color-link-accent);color:var(--tec-color-link-primary);transition:var(--tec-transition-color)}.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 currentColor;color:var(--tec-color-link-accent)}.tribe-common .tribe-common-anchor-thin{border-bottom:1px solid transparent;transition:var(--tec-transition-border-color)}.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 var(--tec-color-link-primary)}.tribe-common .tribe-common-anchor-thin-alt{border-bottom:1px solid var(--tec-color-link-accent);color:var(--tec-color-link-primary);transition:var(--tec-transition-color)}.tribe-common .tribe-common-anchor-thin-alt:active,.tribe-common .tribe-common-anchor-thin-alt:focus,.tribe-common .tribe-common-anchor-thin-alt:hover{border-bottom:1px solid currentColor;color:var(--tec-color-link-accent)}.tribe-theme-twentyseventeen .tribe-common .tribe-common-anchor-alt:focus,.tribe-theme-twentyseventeen .tribe-common .tribe-common-anchor-alt:hover,.tribe-theme-twentyseventeen .tribe-common .tribe-common-anchor-thin-alt:focus,.tribe-theme-twentyseventeen .tribe-common .tribe-common-anchor-thin-alt:hover{color:var(--tec-color-accent-primary)}.site-footer .widget-area .tribe-common .tribe-common-anchor,.site-footer .widget-area .tribe-common .tribe-common-anchor-thin,.tribe-theme-twentyseventeen .site-footer .widget-area .tribe-common .tribe-common-anchor,.tribe-theme-twentyseventeen .site-footer .widget-area .tribe-common .tribe-common-anchor-thin{transition:var(--tec-transition-border-color)}.site-footer .widget-area .tribe-common .tribe-common-anchor-alt,.site-footer .widget-area .tribe-common .tribe-common-anchor-thin-alt,.tribe-theme-twentyseventeen .site-footer .widget-area .tribe-common .tribe-common-anchor-alt,.tribe-theme-twentyseventeen .site-footer .widget-area .tribe-common .tribe-common-anchor-thin-alt{transition:var(--tec-transition-color)}.tribe-common .tribe-common-b1{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-2);font-weight:var(--tec-font-weight-regular);line-height:var(--tec-line-height-3)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b1{font-size:var(--tec-font-size-3);line-height:var(--tec-line-height-3)}.tribe-common .tribe-common-b1--bold{font-weight:var(--tec-font-weight-bold)}.tribe-common .tribe-common-b2{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-1);font-weight:var(--tec-font-weight-regular);line-height:var(--tec-line-height-0)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b2{font-size:var(--tec-font-size-2);line-height:var(--tec-line-height-3)}.tribe-common .tribe-common-b2--bold{font-weight:var(--tec-font-weight-bold)}.tribe-common .tribe-common-b3{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-0);font-weight:var(--tec-font-weight-regular);line-height:var(--tec-line-height-2)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b3{font-size:var(--tec-font-size-1);line-height:var(--tec-line-height-0)}.tribe-common .tribe-common-b3--bold{font-weight:var(--tec-font-weight-bold)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b1--min-medium{font-size:var(--tec-font-size-3);line-height:var(--tec-line-height-3)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b2--min-medium{font-size:var(--tec-font-size-2);line-height:var(--tec-line-height-3)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b3--min-medium,.tribe-common .tribe-common-cta{font-size:var(--tec-font-size-1);line-height:var(--tec-line-height-0)}.tribe-common .tribe-common-cta{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-regular);font-weight:var(--tec-font-weight-bold);border-bottom:2px solid transparent;transition:var(--tec-transition-border-color)}.tribe-common .tribe-common-cta:active,.tribe-common .tribe-common-cta:focus,.tribe-common .tribe-common-cta:hover{border-bottom:2px solid currentColor}.tribe-common .tribe-common-cta--alt{border-bottom:2px solid var(--tec-color-link-accent);color:var(--tec-color-link-primary);transition:var(--tec-transition-color)}.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 currentColor;color:var(--tec-color-link-accent)}.tribe-common .tribe-common-cta--thin{border-bottom:1px solid transparent;transition:var(--tec-transition-border-color)}.tribe-common .tribe-common-cta--thin:active,.tribe-common .tribe-common-cta--thin:focus,.tribe-common .tribe-common-cta--thin:hover{border-bottom:1px solid var(--tec-color-link-primary)}.tribe-common .tribe-common-cta--thin-alt{border-bottom:1px solid var(--tec-color-link-accent);color:var(--tec-color-link-primary);transition:var(--tec-transition-color)}.tribe-common .tribe-common-cta--thin-alt:active,.tribe-common .tribe-common-cta--thin-alt:focus,.tribe-common .tribe-common-cta--thin-alt:hover{border-bottom:1px solid currentColor;color:var(--tec-color-link-accent)}.tribe-theme-twentyseventeen .tribe-common .tribe-common-cta--alt:focus,.tribe-theme-twentyseventeen .tribe-common .tribe-common-cta--alt:hover,.tribe-theme-twentyseventeen .tribe-common .tribe-common-cta--thin-alt:focus,.tribe-theme-twentyseventeen .tribe-common .tribe-common-cta--thin-alt:hover{color:var(--tec-color-accent-primary)}.tribe-common .tribe-common-h1{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-bold);font-size:var(--tec-font-size-8);line-height:var(--tec-line-height-1)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h1{font-size:var(--tec-font-size-10);line-height:var(--tec-line-height-0)}.tribe-common .tribe-common-h2{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-bold);font-size:var(--tec-font-size-7);line-height:var(--tec-line-height-1)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h2{font-size:var(--tec-font-size-9);line-height:var(--tec-line-height-0)}.tribe-common .tribe-common-h3{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-bold);font-size:var(--tec-font-size-6);line-height:var(--tec-line-height-2)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h3{font-size:var(--tec-font-size-8);line-height:var(--tec-line-height-1)}.tribe-common .tribe-common-h4{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-bold);font-size:var(--tec-font-size-5);line-height:var(--tec-line-height-1)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h4{font-size:var(--tec-font-size-7);line-height:var(--tec-line-height-1)}.tribe-common .tribe-common-h5{font-size:var(--tec-font-size-4)}.tribe-common .tribe-common-h5,.tribe-common .tribe-common-h6{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-bold);line-height:var(--tec-line-height-2)}.tribe-common .tribe-common-h6{font-size:var(--tec-font-size-3)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h6{font-size:var(--tec-font-size-3);line-height:var(--tec-line-height-3)}.tribe-common .tribe-common-h7{font-size:var(--tec-font-size-2);line-height:var(--tec-line-height-3)}.tribe-common .tribe-common-h7,.tribe-common .tribe-common-h8{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-bold)}.tribe-common .tribe-common-h8{font-size:var(--tec-font-size-1);line-height:var(--tec-line-height-0)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h3--min-medium{font-size:var(--tec-font-size-8);line-height:var(--tec-line-height-1)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h4--min-medium{font-size:var(--tec-font-size-7);line-height:var(--tec-line-height-1)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h5--min-medium{font-size:var(--tec-font-size-4);line-height:var(--tec-line-height-2)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h6--min-medium{font-size:var(--tec-font-size-3);line-height:var(--tec-line-height-3)}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h7--min-medium{font-size:var(--tec-font-size-2);line-height:var(--tec-line-height-3)}.tribe-common .tribe-common-h--alt{font-weight:var(--tec-font-weight-regular)}.tribe-theme-avada #main .tribe-common .tribe-common-h1{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-bold);font-size:var(--tec-font-size-8);line-height:var(--tec-line-height-1)}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h1{font-size:var(--tec-font-size-10);line-height:var(--tec-line-height-0)}.tribe-theme-avada #main .tribe-common .tribe-common-h2{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-bold);font-size:var(--tec-font-size-7);line-height:var(--tec-line-height-1)}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h2{font-size:var(--tec-font-size-9);line-height:var(--tec-line-height-0)}.tribe-theme-avada #main .tribe-common .tribe-common-h3{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-bold);font-size:var(--tec-font-size-6);line-height:var(--tec-line-height-2)}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h3{font-size:var(--tec-font-size-8);line-height:var(--tec-line-height-1)}.tribe-theme-avada #main .tribe-common .tribe-common-h4{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-bold);font-size:var(--tec-font-size-5);line-height:var(--tec-line-height-1)}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h4{font-size:var(--tec-font-size-7);line-height:var(--tec-line-height-1)}.tribe-theme-avada #main .tribe-common .tribe-common-h5{font-size:var(--tec-font-size-4)}.tribe-theme-avada #main .tribe-common .tribe-common-h5,.tribe-theme-avada #main .tribe-common .tribe-common-h6{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-bold);line-height:var(--tec-line-height-2)}.tribe-theme-avada #main .tribe-common .tribe-common-h6{font-size:var(--tec-font-size-3)}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h6{font-size:var(--tec-font-size-3);line-height:var(--tec-line-height-3)}.tribe-theme-avada #main .tribe-common .tribe-common-h7{font-size:var(--tec-font-size-2);line-height:var(--tec-line-height-3)}.tribe-theme-avada #main .tribe-common .tribe-common-h7,.tribe-theme-avada #main .tribe-common .tribe-common-h8{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-weight:var(--tec-font-weight-bold)}.tribe-theme-avada #main .tribe-common .tribe-common-h8{font-size:var(--tec-font-size-1);line-height:var(--tec-line-height-0)}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h3--min-medium{font-size:var(--tec-font-size-8);line-height:var(--tec-line-height-1)}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h4--min-medium{font-size:var(--tec-font-size-7);line-height:var(--tec-line-height-1)}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h5--min-medium{font-size:var(--tec-font-size-4);line-height:var(--tec-line-height-2)}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h6--min-medium{font-size:var(--tec-font-size-3);line-height:var(--tec-line-height-3)}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h7--min-medium{font-size:var(--tec-font-size-2);line-height:var(--tec-line-height-3)}.tribe-theme-avada #main .tribe-common .tribe-common-h--alt{font-weight:var(--tec-font-weight-regular)}.tribe-common button{border:none}.tribe-common button,.tribe-common button:focus,.tribe-common button:hover,.tribe-theme-twentyseventeen .tribe-common button:focus,.tribe-theme-twentyseventeen .tribe-common button:hover{background-color:transparent}.tribe-theme-twentytwenty .tribe-common button{background-color:transparent;text-transform:inherit}.tribe-theme-twentytwenty .tribe-common button:focus,.tribe-theme-twentytwenty .tribe-common button:hover{text-decoration:none}.tribe-theme-twentytwentyone .tribe-common button:not(:hover):not(:active){background-color:inherit;color:inherit}.tribe-theme-enfold .tribe-common th{letter-spacing:0;text-transform:none}.tribe-common .tribe-common-c-btn-border,.tribe-common a.tribe-common-c-btn-border{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-2);line-height:var(--tec-line-height-3);font-weight:var(--tec-font-weight-regular);font-weight:var(--tec-font-weight-bold);border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto;background-color:var(--tec-color-background);border:1px solid var(--tec-color-accent-primary);border-radius:var(--tec-border-radius-default);text-align:center;transition:var(--tec-transition);color:var(--tec-color-button-primary);padding:11px 20px;width:100%}.tribe-common--breakpoint-medium.tribe-common .tribe-common-c-btn-border,.tribe-common--breakpoint-medium.tribe-common a.tribe-common-c-btn-border{width:auto}.tribe-common .tribe-common-c-btn-border:focus,.tribe-common .tribe-common-c-btn-border:hover,.tribe-common a.tribe-common-c-btn-border:focus,.tribe-common a.tribe-common-c-btn-border:hover{background-color:var(--tec-color-accent-primary);color:var(--tec-color-background)}.tribe-common .tribe-common-c-btn-border:active,.tribe-common a.tribe-common-c-btn-border:active{opacity:.9}.tribe-common .tribe-common-c-btn-border--secondary,.tribe-common a.tribe-common-c-btn-border--secondary{border-color:var(--tec-color-button-secondary);color:var(--tec-color-button-secondary)}.tribe-common .tribe-common-c-btn-border--secondary:focus,.tribe-common .tribe-common-c-btn-border--secondary:hover,.tribe-common a.tribe-common-c-btn-border--secondary:focus,.tribe-common a.tribe-common-c-btn-border--secondary:hover{background-color:var(--tec-color-button-secondary)}.tribe-common .tribe-common-c-btn-border--secondary:active,.tribe-common a.tribe-common-c-btn-border--secondary:active{opacity:.9}.tribe-common .tribe-common-c-btn-border--alt,.tribe-common a.tribe-common-c-btn-border--alt{border-color:var(--tec-color-border-secondary);color:var(--tec-color-text-primary);font-weight:var(--tec-font-weight-regular)}.tribe-common .tribe-common-c-btn-border--alt:focus,.tribe-common .tribe-common-c-btn-border--alt:hover,.tribe-common a.tribe-common-c-btn-border--alt:focus,.tribe-common a.tribe-common-c-btn-border--alt:hover{background-color:var(--tec-color-background);border-color:var(--tec-color-border-active);color:var(--tec-color-text-primary)}.tribe-common .tribe-common-c-btn-border--alt:active,.tribe-common a.tribe-common-c-btn-border--alt:active{opacity:.9}.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn-border:focus,.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn-border:hover{background-color:var(--tec-color-button-primary)}.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn-border--secondary:focus,.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn-border--secondary:hover{background-color:var(--tec-color-button-secondary)}.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn-border--alt:focus,.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn-border--alt:hover{background-color:var(--tec-color-background)}.tribe-common .tribe-common-c-btn-border-small,.tribe-common a.tribe-common-c-btn-border-small{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-1);line-height:var(--tec-line-height-0);font-weight:var(--tec-font-weight-regular);border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto;background-color:var(--tec-color-background);border:1px solid var(--tec-color-border-default);border-radius:var(--tec-border-radius-default);text-align:center;transition:var(--tec-transition-color-border-color)}.tribe-common .tribe-common-c-btn-border-small:focus,.tribe-common .tribe-common-c-btn-border-small:hover,.tribe-common a.tribe-common-c-btn-border-small:focus,.tribe-common a.tribe-common-c-btn-border-small:hover{background-color:var(--tec-color-background)}.tribe-common .tribe-common-c-btn-border-small:active,.tribe-common a.tribe-common-c-btn-border-small:active{border-color:var(--tec-color-border-active)}.tribe-common .tribe-common-c-btn-border-small,.tribe-common a.tribe-common-c-btn-border-small{color:var(--tec-color-text-secondary);padding:14px 20px;width:100%}.tribe-common--breakpoint-medium.tribe-common .tribe-common-c-btn-border-small,.tribe-common--breakpoint-medium.tribe-common a.tribe-common-c-btn-border-small{padding:6px 15px;width:auto}.tribe-common .tribe-common-c-btn-border-small:active,.tribe-common .tribe-common-c-btn-border-small:focus,.tribe-common .tribe-common-c-btn-border-small:hover,.tribe-common a.tribe-common-c-btn-border-small:active,.tribe-common a.tribe-common-c-btn-border-small:focus,.tribe-common a.tribe-common-c-btn-border-small:hover{color:var(--tec-color-text-primary)}.tribe-common .tribe-common-c-btn-border-small:disabled,.tribe-common a.tribe-common-c-btn-border-small:disabled{color:var(--tec-color-text-disabled)}.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn-border-small:hover{background-color:var(--tec-color-background)}.tribe-common .tribe-common-c-btn-icon{border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto}.tribe-common .tribe-common-c-btn-icon--caret-left:active .tribe-common-c-btn-icon__icon-svg path,.tribe-common .tribe-common-c-btn-icon--caret-left:focus .tribe-common-c-btn-icon__icon-svg path,.tribe-common .tribe-common-c-btn-icon--caret-left:hover .tribe-common-c-btn-icon__icon-svg path,.tribe-common .tribe-common-c-btn-icon--caret-right:active .tribe-common-c-btn-icon__icon-svg path,.tribe-common .tribe-common-c-btn-icon--caret-right:focus .tribe-common-c-btn-icon__icon-svg path,.tribe-common .tribe-common-c-btn-icon--caret-right:hover .tribe-common-c-btn-icon__icon-svg path{fill:var(--tec-color-icon-primary)}.tribe-common .tribe-common-c-btn-icon--caret-left:disabled .tribe-common-c-btn-icon__icon-svg path,.tribe-common .tribe-common-c-btn-icon--caret-right:disabled .tribe-common-c-btn-icon__icon-svg path{fill:var(--tec-color-icon-disabled)}.tribe-common .tribe-common-c-btn-icon--caret-left .tribe-common-c-btn-icon__icon-svg path,.tribe-common .tribe-common-c-btn-icon--caret-right .tribe-common-c-btn-icon__icon-svg path{fill:var(--tec-color-icon-secondary)}.tribe-common .tribe-common-c-btn-icon--border{align-items:center;background-color:var(--tec-color-background);border:1px solid var(--tec-color-border-default);display:inline-flex;height:56px;justify-content:center;transition:none;width:56px}.tribe-common .tribe-common-c-btn-icon--border:focus,.tribe-common .tribe-common-c-btn-icon--border:hover{background-color:var(--tec-color-background)}.tribe-common .tribe-common-c-btn-icon--border:active{border-color:var(--tec-color-border-active)}.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn-icon--border:hover{background-color:var(--tec-color-background)}.tribe-common .tribe-common-c-btn,.tribe-common a.tribe-common-c-btn{color:var(--tec-color-text-primary);font-family:var(--tec-font-family-sans-serif);font-size:var(--tec-font-size-2);line-height:var(--tec-line-height-3);font-weight:var(--tec-font-weight-regular);font-weight:var(--tec-font-weight-bold);border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto;border-radius:var(--tec-border-radius-default);color:var(--tec-color-background);text-align:center;transition:var(--tec-transition-background-color);background-color:var(--tec-color-button-primary);padding:11px 20px;width:100%}.tribe-common--breakpoint-medium.tribe-common .tribe-common-c-btn,.tribe-common--breakpoint-medium.tribe-common a.tribe-common-c-btn{width:auto}.tribe-common .tribe-common-c-btn:focus,.tribe-common .tribe-common-c-btn:hover,.tribe-common a.tribe-common-c-btn:focus,.tribe-common a.tribe-common-c-btn:hover{background-color:var(--tec-color-button-primary-hover)}.tribe-common .tribe-common-c-btn:active,.tribe-common a.tribe-common-c-btn:active{background-color:var(--tec-color-button-primary-active)}.tribe-common .tribe-common-c-btn:disabled,.tribe-common a.tribe-common-c-btn:disabled{background-color:var(--tec-color-button-primary-background)}.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn:focus,.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn:hover{background-color:var(--tec-color-button-primary-hover);color:var(--tec-color-background)}.tribe-theme-twentytwenty .tribe-common .tribe-common-c-btn{background-color:var(--tec-color-button-primary)}.tribe-theme-twentytwenty .tribe-common .tribe-common-c-btn:focus,.tribe-theme-twentytwenty .tribe-common .tribe-common-c-btn:hover{background-color:var(--tec-color-button-primary-hover);color:var(--tec-color-background)}.tribe-theme-twentytwentyone .tribe-common .tribe-common-c-btn{outline:none}.tribe-theme-twentytwentyone .tribe-common .tribe-common-c-btn:not(:hover):not(:active){background-color:var(--tec-color-button-primary);color:var(--tec-color-background)}.tribe-common .tribe-common-c-loader__dot circle{animation-direction:normal;animation-duration:2.24s;animation-iteration-count:infinite;animation-name:a;fill:currentColor;opacity:var(--tec-opacity-background)}.tribe-common .tribe-common-c-loader__dot--first circle{animation-delay:.45s}.tribe-common .tribe-common-c-loader__dot--second circle{animation-delay:1.05s}.tribe-common .tribe-common-c-loader__dot--third circle{animation-delay:1.35s}@keyframes a{50%{opacity:var(--tec-opacity-default)}}.tribe-common .tribe-common-c-svgicon{color:var(--tec-color-accent-primary)}.tribe-common .tribe-common-c-svgicon--featured path{fill:currentColor}.tribe-common .tribe-common-c-svgicon--recurring path{fill:var(--tec-color-icon-active);stroke:var(--tec-color-icon-active)}.tribe-common .tribe-common-c-svgicon--close-alt path,.tribe-common .tribe-common-c-svgicon--close path{stroke:var(--tec-color-icon-secondary)}.tribe-common .tribe-common-c-svgicon--messages-not-found path{stroke:var(--tec-color-icon-active)}.tribe-common .tribe-common-c-svgicon--messages-not-found .tribe-common-c-svgicon__svg-stroke{stroke:currentColor}.tribe-common .tribe-common-c-svgicon__svg-fill{fill:var(--tec-color-icon-active)}.tribe-common .tribe-common-c-svgicon__svg-stroke{stroke:var(--tec-color-icon-active)}
common/src/resources/css/dialog.min.css CHANGED
@@ -1 +1 @@
1
- .tribe-common .tribe-dialog{--tribe-dialog-background-color:#fff;--tribe-dialog-close-background:#fff;--tribe-dialog-close-border-color:#bababa;--tribe-dialog-close-border-width:1px;--tribe-dialog-close-color:#bababa;--tribe-dialog-close-height:12px;--tribe-dialog-close-height-desktop:16px;--tribe-dialog-overlay-color:transparent;--tribe-modal-overlay-color:rgba(20,24,39,.9);--tribe-dialog-border-radius:4px;--tribe-dialog-padding:16px;--tribe-dialog-padding-top:24px;--tribe-dialog-padding-side:28px}.tribe-common div.tribe-dialog{align-items:center;display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:100}.tribe-common div.tribe-dialog[aria-hidden=true]{display:none}.tribe-common .tribe-dialog__overlay{background-color:var(--tribe-dialog-overlay-color);height:100vh;left:0;opacity:.9;position:fixed;top:0;width:100vw;z-index:100}.tribe-common .tribe-dialog__wrapper{background-color:var(--tribe-dialog-background-color);border-radius:var(--tribe-dialog-border-radius);box-shadow:0 2px 54px 0 var(--tribe-modal-overlay-color);max-height:100vh;max-width:100vw;overflow-y:auto;padding:var(--tribe-dialog-padding);-webkit-perspective:1000;-webkit-transform:translateZ(0);width:800px;z-index:200}.tribe-common .tribe-dialog__wrapper div[role=document]{align-items:flex-end;display:flex;flex-flow:column;justify-content:space-between;position:relative}.tribe-common .tribe-dialog__close-button{background:var(--tribe-dialog-close-background);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18'%3E%3Cpath d='M16 2L2 16m14 0L2 2' stroke='var(--tec-color-icon-secondary)' fill='none' fill-rule='evenodd' stroke-linecap='square' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;cursor:pointer;display:inline-block;font-size:14px;height:var(--tribe-dialog-close-height);line-height:var(--tribe-dialog-close-height);padding:0;position:absolute;width:var(--tribe-dialog-close-height);z-index:1}.tribe-common .tribe-dialog__close-button:focus,.tribe-common .tribe-dialog__close-button:hover{background:var(--tribe-dialog-close-background);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18'%3E%3Cpath d='M16 2L2 16m14 0L2 2' stroke='var(--tec-color-icon-primary)' fill='none' fill-rule='evenodd' stroke-linecap='square' stroke-width='2'/%3E%3C/svg%3E");background-size:contain;outline:none}.tribe-common .tribe-dialog__close-button--hidden{display:none}.tribe-common .tribe-dialog__close-button--round{border-radius:50%}.tribe-common .tribe-dialog__close-button--border{border:var(--tribe-dialog-close-border-width) solid var(--tribe-dialog-close-border-color)}.tribe-common h2.tribe-dialog__title{align-self:flex-start;margin:0 0 22px;padding-right:calc(var(--tribe-dialog-close-height) + .5em);padding-top:0}.tribe-common .tribe-dialog__content{color:#141827;font-size:14px;line-height:1.64em;padding-right:calc(var(--tribe-dialog-close-height) + .5em);padding-top:calc(var(--tribe-dialog-close-height) + .5em);width:100%}.tribe-common .tribe-dialog__title+.tribe-dialog__content{padding:0}.tribe-common .tribe-dialog__content p{font-size:var(--font-size-2)}.tribe-common .tribe-modal__overlay{background-color:var(--tribe-modal-overlay-color)}.tribe-common .tribe-confirm__content{padding-right:0}.tribe-common .tribe-dialog__button_wrap{display:flex;flex-flow:row wrap;justify-content:flex-end;margin-top:1rem}.tribe-common .tribe-dialog__button-cancel,.tribe-common .tribe-dialog__button-continue{margin-left:var(--spacer-1);width:auto}#top .main_color .tribe-common div.tribe-dialog,#top.tribe-theme-enfold .tribe-common div.tribe-dialog,.tribe-theme-avada .tribe-common div.tribe-dialog,.tribe-theme-divi .tribe-common div.tribe-dialog{z-index:99999}@media screen and (min-width:768px){.tribe-common .tribe-dialog__wrapper{max-height:calc(100vh - 160px);padding:var(--tribe-dialog-padding-top) var(--tribe-dialog-padding-side)}.tribe-common .tribe-dialog__close-button{height:var(--tribe-dialog-close-height-desktop);line-height:var(--tribe-dialog-close-height-desktop);width:var(--tribe-dialog-close-height-desktop)}}@media screen and (max-width:768px){.tribe-common .tribe-dialog__content:last-of-type{padding-bottom:36px}}
1
+ .tribe-common .tribe-dialog{--tribe-dialog-background-color:#fff;--tribe-dialog-close-background:#fff;--tribe-dialog-close-border-color:#bababa;--tribe-dialog-close-border-width:1px;--tribe-dialog-close-color:#bababa;--tribe-dialog-close-height:12px;--tribe-dialog-close-height-desktop:16px;--tribe-dialog-overlay-color:transparent;--tribe-modal-overlay-color:rgba(20,24,39,.9);--tribe-dialog-border-radius:4px;--tribe-dialog-padding:16px;--tribe-dialog-padding-top:24px;--tribe-dialog-padding-side:28px}.tribe-common div.tribe-dialog{align-items:center;display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:100}.tribe-common div.tribe-dialog[aria-hidden=true]{display:none}.tribe-common .tribe-dialog__overlay{background-color:var(--tribe-dialog-overlay-color);height:100vh;left:0;opacity:.9;position:fixed;top:0;width:100vw;z-index:100}.tribe-common .tribe-dialog__wrapper{background-color:var(--tribe-dialog-background-color);border-radius:var(--tribe-dialog-border-radius);box-shadow:0 2px 54px 0 var(--tribe-modal-overlay-color);max-height:100vh;max-width:100vw;overflow-y:auto;padding:var(--tribe-dialog-padding);-webkit-perspective:1000;-webkit-transform:translateZ(0);width:800px;z-index:200}.tribe-common .tribe-dialog__wrapper div[role=document]{align-items:flex-end;display:flex;flex-flow:column;justify-content:space-between;position:relative}.tribe-common .tribe-dialog__close-button{background:var(--tribe-dialog-close-background);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18'%3E%3Cpath d='M16 2L2 16m14 0L2 2' stroke='%23bababa' fill='none' fill-rule='evenodd' stroke-linecap='square' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;cursor:pointer;display:inline-block;font-size:14px;height:var(--tribe-dialog-close-height);line-height:var(--tribe-dialog-close-height);padding:0;position:absolute;width:var(--tribe-dialog-close-height);z-index:1}.tribe-common .tribe-dialog__close-button:focus,.tribe-common .tribe-dialog__close-button:hover{background:var(--tribe-dialog-close-background);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18'%3E%3Cpath d='M16 2L2 16m14 0L2 2' stroke='%235d5d5d' fill='none' fill-rule='evenodd' stroke-linecap='square' stroke-width='2'/%3E%3C/svg%3E");background-size:contain;outline:none}.tribe-common .tribe-dialog__close-button--hidden{display:none}.tribe-common .tribe-dialog__close-button--round{border-radius:50%}.tribe-common .tribe-dialog__close-button--border{border:var(--tribe-dialog-close-border-width) solid var(--tribe-dialog-close-border-color)}.tribe-common h2.tribe-dialog__title{align-self:flex-start;margin:0 0 22px;padding-right:calc(var(--tribe-dialog-close-height) + .5em);padding-top:0}.tribe-common .tribe-dialog__content{color:#141827;font-size:14px;line-height:1.64em;padding-right:calc(var(--tribe-dialog-close-height) + .5em);padding-top:calc(var(--tribe-dialog-close-height) + .5em);width:100%}.tribe-common .tribe-dialog__title+.tribe-dialog__content{padding:0}.tribe-common .tribe-dialog__content p{font-size:var(--font-size-2)}.tribe-common .tribe-modal__overlay{background-color:var(--tribe-modal-overlay-color)}.tribe-common .tribe-confirm__content{padding-right:0}.tribe-common .tribe-dialog__button_wrap{display:flex;flex-flow:row wrap;justify-content:flex-end;margin-top:1rem}.tribe-common .tribe-dialog__button-cancel,.tribe-common .tribe-dialog__button-continue{margin-left:var(--spacer-1);width:auto}#top .main_color .tribe-common div.tribe-dialog,#top.tribe-theme-enfold .tribe-common div.tribe-dialog,.tribe-theme-avada .tribe-common div.tribe-dialog,.tribe-theme-divi .tribe-common div.tribe-dialog{z-index:99999}@media screen and (min-width:768px){.tribe-common .tribe-dialog__wrapper{max-height:calc(100vh - 160px);padding:var(--tribe-dialog-padding-top) var(--tribe-dialog-padding-side)}.tribe-common .tribe-dialog__close-button{height:var(--tribe-dialog-close-height-desktop);line-height:var(--tribe-dialog-close-height-desktop);width:var(--tribe-dialog-close-height-desktop)}}@media screen and (max-width:768px){.tribe-common .tribe-dialog__content:last-of-type{padding-bottom:36px}}
common/src/resources/css/variables-skeleton.min.css CHANGED
@@ -1 +1 @@
1
- :root{--tec-grid-gutter:48px;--tec-grid-gutter-negative:calc(var(--tec-grid-gutter)*-1);--tec-grid-gutter-half:calc(var(--tec-grid-gutter)/2);--tec-grid-gutter-half-negative:calc(var(--tec-grid-gutter-half)*-1);--tec-grid-gutter-small:42px;--tec-grid-gutter-small-negative:calc(var(--tec-grid-gutter-small)*-1);--tec-grid-gutter-small-half:calc(var(--tec-grid-gutter-small)/2);--tec-grid-gutter-small-half-negative:calc(var(--tec-grid-gutter-small-half)*-1);--tec-grid-gutter-page:42px;--tec-grid-gutter-page-small:19.5px;--tec-grid-width-default:1176px;--tec-grid-width-min:320px;--tec-grid-width:calc(var(--tec-grid-width-default) + var(--tec-grid-gutter-page)*2);--tec-grid-width-1-of-2:50%;--tec-grid-width-1-of-3:33.333%;--tec-grid-width-1-of-4:25%;--tec-grid-width-1-of-5:20%;--tec-grid-width-1-of-7:14.285%;--tec-grid-width-1-of-8:12.5%;--tec-grid-width-1-of-9:11.111%;--grid-gutter:var(--tec-grid-gutter);--grid-gutter-negative:var(--tec-grid-gutter-negative);--grid-gutter-half:var(--tec-grid-gutter-half);--grid-gutter-half-negative:var(--tec-grid-gutter-half-negative);--grid-gutter-small:var(--tec-grid-gutter-small);--grid-gutter-small-negative:var(--tec-grid-gutter-small-negative);--grid-gutter-small-half:var(--tec-grid-gutter-small-half);--grid-gutter-small-half-negative:var(--tec-grid-gutter-small-half-negative);--grid-gutter-page:var(--tec-grid-gutter-page);--grid-gutter-page-small:var(--tec-grid-gutter-page-small);--grid-width-default:var(--tec-grid-width-default);--grid-width-min:var(--tec-grid-width-min);--grid-width:var(--tec-grid-width);--grid-width-1-of-2:var(--tec-grid-width-1-of-2);--grid-width-1-of-3:var(--tec-grid-width-1-of-3);--grid-width-1-of-4:var(--tec-grid-width-1-of-4);--grid-width-1-of-5:var(--tec-grid-width-1-of-5);--grid-width-1-of-7:var(--tec-grid-width-1-of-7);--grid-width-1-of-8:var(--tec-grid-width-1-of-8);--grid-width-1-of-9:var(--tec-grid-width-1-of-9);--tec-spacer-0:4px;--tec-spacer-1:8px;--tec-spacer-2:12px;--tec-spacer-3:16px;--tec-spacer-4:20px;--tec-spacer-5:24px;--tec-spacer-6:28px;--tec-spacer-7:32px;--tec-spacer-8:40px;--tec-spacer-9:48px;--tec-spacer-10:56px;--tec-spacer-11:64px;--tec-spacer-12:80px;--tec-spacer-13:96px;--tec-spacer-14:160px;--spacer-0:var(--tec-spacer-0);--spacer-1:var(--tec-spacer-1);--spacer-2:var(--tec-spacer-2);--spacer-3:var(--tec-spacer-3);--spacer-4:var(--tec-spacer-4);--spacer-5:var(--tec-spacer-5);--spacer-6:var(--tec-spacer-6);--spacer-7:var(--tec-spacer-7);--spacer-8:var(--tec-spacer-8);--spacer-9:var(--tec-spacer-9);--spacer-10:var(--tec-spacer-10);--spacer-11:var(--tec-spacer-11);--spacer-12:var(--tec-spacer-12);--spacer-13:var(--tec-spacer-13);--spacer-14:var(--tec-spacer-14);--tec-z-index-spinner-container:100;--tec-z-index-views-selector:30;--tec-z-index-dropdown:30;--tec-z-index-events-bar-button:20;--tec-z-index-search:10;--tec-z-index-filters:9;--tec-z-index-scroller:7;--tec-z-index-week-event-hover:5;--tec-z-index-map-event-hover:5;--tec-z-index-map-event-hover-actions:6;--tec-z-index-multiday-event:5;--tec-z-index-multiday-event-bar:2;--z-index-spinner-container:var(--tec-z-index-spinner-container);--z-index-views-selector:var(--tec-z-index-views-selector);--z-index-dropdown:var(--tec-z-index-dropdown);--z-index-events-bar-button:var(--tec-z-index-events-bar-button);--z-index-search:var(--tec-z-index-search);--z-index-filters:var(--tec-z-index-filters);--z-index-scroller:var(--tec-z-index-scroller);--z-index-week-event-hover:var(--tec-z-index-week-event-hover);--z-index-map-event-hover:var(--tec-z-index-map-event-hover);--z-index-map-event-hover-actions:var(--tec-z-index-map-event-hover-actions);--z-index-multiday-event:var(--tec-z-index-multiday-event);--z-index-multiday-event-bar:var(--tec-z-index-multiday-event-bar);--tec-color-text-primary:#141827;--tec-color-text-primary-light:rgba(20,24,39,.62);--tec-color-text-secondary:#5d5d5d;--tec-color-text-disabled:#d5d5d5;--tec-color-text-events-title:var(--tec-color-text-primary);--tec-color-text-event-title:var(--tec-color-text-events-title);--tec-color-text-event-date:var(--tec-color-text-primary);--tec-color-text-secondary-event-date:var(--tec-color-text-secondary);--tec-color-icon-primary:#5d5d5d;--tec-color-icon-primary-alt:#757575;--tec-color-icon-secondary:#bababa;--tec-color-icon-active:#141827;--tec-color-icon-disabled:#d5d5d5;--tec-color-icon-focus:#334aff;--tec-color-icon-error:#da394d;--tec-color-event-icon:#141827;--tec-color-event-icon-hover:#334aff;--tec-color-accent-primary:#334aff;--tec-color-accent-primary-hover:rgba(51,74,255,.8);--tec-color-accent-primary-active:rgba(51,74,255,.9);--tec-color-accent-primary-background:rgba(51,74,255,.07);--tec-color-accent-secondary:#141827;--tec-color-accent-secondary-hover:rgba(20,24,39,.8);--tec-color-accent-secondary-active:rgba(20,24,39,.9);--tec-color-accent-secondary-background:rgba(20,24,39,.07);--tec-color-button-primary:var(--tec-color-accent-primary);--tec-color-button-primary-hover:var(--tec-color-accent-primary-hover);--tec-color-button-primary-active:var(--tec-color-accent-primary-active);--tec-color-button-primary-background:var(--tec-color-accent-primary-background);--tec-color-button-secondary:var(--tec-color-accent-secondary);--tec-color-button-secondary-hover:var(--tec-color-accent-secondary-hover);--tec-color-button-secondary-active:var(--tec-color-accent-secondary-active);--tec-color-button-secondary-background:var(--tec-color-accent-secondary-background);--tec-color-link-primary:var(--tec-color-text-primary);--tec-color-link-accent-hover:rgba(51,74,255,.8);--tec-color-border-default:#d5d5d5;--tec-color-border-secondary:#e4e4e4;--tec-color-border-tertiary:#7d7d7d;--tec-color-border-hover:#5d5d5d;--tec-color-border-active:#141827;--tec-color-background:#fff;--tec-color-background-events:transparent;--tec-color-background-transparent:hsla(0,0%,100%,.6);--tec-color-background-secondary:#f7f6f6;--tec-color-background-messages:rgba(20,24,39,.07);--tec-color-background-secondary-hover:#f0eeee;--tec-color-background-error:rgba(218,57,77,.08);--tec-color-box-shadow:rgba(0,0,0,.14);--tec-color-box-shadow-secondary:rgba(0,0,0,.1);--tec-color-scroll-track:rgba(0,0,0,.25);--tec-color-scroll-bar:rgba(0,0,0,.5);--tec-color-background-primary-multiday:rgba(51,74,255,.24);--tec-color-background-primary-multiday-hover:rgba(51,74,255,.34);--tec-color-background-secondary-multiday:rgba(20,24,39,.24);--tec-color-background-secondary-multiday-hover:rgba(20,24,39,.34);--tec-color-accent-primary-week-event:rgba(51,74,255,.1);--tec-color-accent-primary-week-event-hover:rgba(51,74,255,.2);--tec-color-accent-primary-week-event-featured:rgba(51,74,255,.04);--tec-color-accent-primary-week-event-featured-hover:rgba(51,74,255,.14);--tec-color-background-secondary-datepicker:var(--tec-color-background-secondary);--tec-color-accent-primary-background-datepicker:var(--tec-color-accent-primary-background);--color-text-primary:var(--tec-color-text-primary);--color-text-primary-light:var(--tec-color-text-primary-light);--color-text-secondary:var(--tec-color-text-secondary);--color-text-disabled:var(--tec-color-text-disabled);--color-icon-primary:var(--tec-color-icon-primary);--color-icon-primary-alt:var(--tec-color-icon-primary);--color-icon-secondary:var(--tec-color-icon-secondary);--color-icon-active:var(--tec-color-icon-active);--color-icon-disabled:var(--tec-color-icon-disabled);--color-icon-focus:var(--tec-color-icon-focus);--color-icon-error:var(--tec-color-icon-error);--color-accent-primary:var(--tec-color-accent-primary);--color-accent-primary-hover:var(--tec-color-accent-primary-hover);--color-accent-primary-active:var(--tec-color-accent-primary-active);--color-accent-primary-background:var(--tec-color-accent-primary-background);--color-accent-primary-multiday:var(--tec-color-accent-primary-multiday);--color-accent-primary-multiday-hover:var(--tec-color-accent-primary-multiday-hover);--color-accent-primary-week-event:var(--tec-color-accent-primary-week-event);--color-accent-primary-week-event-hover:var(--tec-color-accent-primary-week-event-hover);--color-accent-primary-week-event-featured:var(--tec-color-accent-primary-week-event-featured);--color-accent-primary-week-event-featured-hover:var(--tec-color-accent-primary-week-event-featured-hover);--color-accent-secondary:var(--tec-color-accent-secondary);--color-accent-secondary-hover:var(--tec-color-accent-secondary-hover);--color-accent-secondary-active:var(--tec-color-accent-secondary-active);--color-accent-secondary-background:var(--tec-color-accent-secondary-background);--color-border-default:var(--tec-color-border-default);--color-border-secondary:var(--tec-color-border-secondary);--color-border-tertiary:var(--tec-color-border-tertiary);--color-border-hover:var(--tec-color-border-hover);--color-border-active:var(--tec-color-border-active);--color-background:var(--tec-color-background);--color-background-transparent:var(--tec-color-background-transparent);--color-background-secondary:var(--tec-color-background-secondary);--color-background-messages:var(--tec-color-background-messages);--color-background-secondary-hover:var(--tec-color-background-secondary-hover);--color-background-error:var(--tec-color-icon-error);--color-box-shadow:var(--tec-color-box-shadow);--color-box-shadow-secondary:var(--tec-color-box-shadow-secondary);--color-scroll-track:var(--tec-color-scroll-track);--color-scroll-bar:var(--tec-color-scroll-bar)}
1
+ :root{--tec-grid-gutter:48px;--tec-grid-gutter-negative:calc(var(--tec-grid-gutter)*-1);--tec-grid-gutter-half:calc(var(--tec-grid-gutter)/2);--tec-grid-gutter-half-negative:calc(var(--tec-grid-gutter-half)*-1);--tec-grid-gutter-small:42px;--tec-grid-gutter-small-negative:calc(var(--tec-grid-gutter-small)*-1);--tec-grid-gutter-small-half:calc(var(--tec-grid-gutter-small)/2);--tec-grid-gutter-small-half-negative:calc(var(--tec-grid-gutter-small-half)*-1);--tec-grid-gutter-page:42px;--tec-grid-gutter-page-small:19.5px;--tec-grid-width-default:1176px;--tec-grid-width-min:320px;--tec-grid-width:calc(var(--tec-grid-width-default) + var(--tec-grid-gutter-page)*2);--tec-grid-width-1-of-2:50%;--tec-grid-width-1-of-3:33.333%;--tec-grid-width-1-of-4:25%;--tec-grid-width-1-of-5:20%;--tec-grid-width-1-of-7:14.285%;--tec-grid-width-1-of-8:12.5%;--tec-grid-width-1-of-9:11.111%;--grid-gutter:var(--tec-grid-gutter);--grid-gutter-negative:var(--tec-grid-gutter-negative);--grid-gutter-half:var(--tec-grid-gutter-half);--grid-gutter-half-negative:var(--tec-grid-gutter-half-negative);--grid-gutter-small:var(--tec-grid-gutter-small);--grid-gutter-small-negative:var(--tec-grid-gutter-small-negative);--grid-gutter-small-half:var(--tec-grid-gutter-small-half);--grid-gutter-small-half-negative:var(--tec-grid-gutter-small-half-negative);--grid-gutter-page:var(--tec-grid-gutter-page);--grid-gutter-page-small:var(--tec-grid-gutter-page-small);--grid-width-default:var(--tec-grid-width-default);--grid-width-min:var(--tec-grid-width-min);--grid-width:var(--tec-grid-width);--grid-width-1-of-2:var(--tec-grid-width-1-of-2);--grid-width-1-of-3:var(--tec-grid-width-1-of-3);--grid-width-1-of-4:var(--tec-grid-width-1-of-4);--grid-width-1-of-5:var(--tec-grid-width-1-of-5);--grid-width-1-of-7:var(--tec-grid-width-1-of-7);--grid-width-1-of-8:var(--tec-grid-width-1-of-8);--grid-width-1-of-9:var(--tec-grid-width-1-of-9);--tec-spacer-0:4px;--tec-spacer-1:8px;--tec-spacer-2:12px;--tec-spacer-3:16px;--tec-spacer-4:20px;--tec-spacer-5:24px;--tec-spacer-6:28px;--tec-spacer-7:32px;--tec-spacer-8:40px;--tec-spacer-9:48px;--tec-spacer-10:56px;--tec-spacer-11:64px;--tec-spacer-12:80px;--tec-spacer-13:96px;--tec-spacer-14:160px;--spacer-0:var(--tec-spacer-0);--spacer-1:var(--tec-spacer-1);--spacer-2:var(--tec-spacer-2);--spacer-3:var(--tec-spacer-3);--spacer-4:var(--tec-spacer-4);--spacer-5:var(--tec-spacer-5);--spacer-6:var(--tec-spacer-6);--spacer-7:var(--tec-spacer-7);--spacer-8:var(--tec-spacer-8);--spacer-9:var(--tec-spacer-9);--spacer-10:var(--tec-spacer-10);--spacer-11:var(--tec-spacer-11);--spacer-12:var(--tec-spacer-12);--spacer-13:var(--tec-spacer-13);--spacer-14:var(--tec-spacer-14);--tec-z-index-spinner-container:100;--tec-z-index-views-selector:30;--tec-z-index-dropdown:30;--tec-z-index-events-bar-button:20;--tec-z-index-search:10;--tec-z-index-filters:9;--tec-z-index-scroller:7;--tec-z-index-week-event-hover:5;--tec-z-index-map-event-hover:5;--tec-z-index-map-event-hover-actions:6;--tec-z-index-multiday-event:5;--tec-z-index-multiday-event-bar:2;--z-index-spinner-container:var(--tec-z-index-spinner-container);--z-index-views-selector:var(--tec-z-index-views-selector);--z-index-dropdown:var(--tec-z-index-dropdown);--z-index-events-bar-button:var(--tec-z-index-events-bar-button);--z-index-search:var(--tec-z-index-search);--z-index-filters:var(--tec-z-index-filters);--z-index-scroller:var(--tec-z-index-scroller);--z-index-week-event-hover:var(--tec-z-index-week-event-hover);--z-index-map-event-hover:var(--tec-z-index-map-event-hover);--z-index-map-event-hover-actions:var(--tec-z-index-map-event-hover-actions);--z-index-multiday-event:var(--tec-z-index-multiday-event);--z-index-multiday-event-bar:var(--tec-z-index-multiday-event-bar);--tec-color-text-primary:#141827;--tec-color-text-primary-light:rgba(20,24,39,.62);--tec-color-text-secondary:#5d5d5d;--tec-color-text-disabled:#d5d5d5;--tec-color-text-events-title:var(--tec-color-text-primary);--tec-color-text-event-title:var(--tec-color-text-events-title);--tec-color-text-event-date:var(--tec-color-text-primary);--tec-color-text-secondary-event-date:var(--tec-color-text-secondary);--tec-color-icon-primary:#5d5d5d;--tec-color-icon-primary-alt:#757575;--tec-color-icon-secondary:#bababa;--tec-color-icon-active:#141827;--tec-color-icon-disabled:#d5d5d5;--tec-color-icon-focus:#334aff;--tec-color-icon-error:#da394d;--tec-color-event-icon:#141827;--tec-color-event-icon-hover:#334aff;--tec-color-accent-primary:#334aff;--tec-color-accent-primary-hover:rgba(51,74,255,.8);--tec-color-accent-primary-active:rgba(51,74,255,.9);--tec-color-accent-primary-background:rgba(51,74,255,.07);--tec-color-accent-secondary:#141827;--tec-color-accent-secondary-hover:rgba(20,24,39,.8);--tec-color-accent-secondary-active:rgba(20,24,39,.9);--tec-color-accent-secondary-background:rgba(20,24,39,.07);--tec-color-button-primary:var(--tec-color-accent-primary);--tec-color-button-primary-hover:var(--tec-color-accent-primary-hover);--tec-color-button-primary-active:var(--tec-color-accent-primary-active);--tec-color-button-primary-background:var(--tec-color-accent-primary-background);--tec-color-button-secondary:var(--tec-color-accent-secondary);--tec-color-button-secondary-hover:var(--tec-color-accent-secondary-hover);--tec-color-button-secondary-active:var(--tec-color-accent-secondary-active);--tec-color-button-secondary-background:var(--tec-color-accent-secondary-background);--tec-color-link-primary:var(--tec-color-text-primary);--tec-color-link-accent:var(--tec-color-accent-primary);--tec-color-link-accent-hover:rgba(51,74,255,.8);--tec-color-border-default:#d5d5d5;--tec-color-border-secondary:#e4e4e4;--tec-color-border-tertiary:#7d7d7d;--tec-color-border-hover:#5d5d5d;--tec-color-border-active:#141827;--tec-color-background:#fff;--tec-color-background-events:transparent;--tec-color-background-transparent:hsla(0,0%,100%,.6);--tec-color-background-secondary:#f7f6f6;--tec-color-background-messages:rgba(20,24,39,.07);--tec-color-background-secondary-hover:#f0eeee;--tec-color-background-error:rgba(218,57,77,.08);--tec-color-box-shadow:rgba(0,0,0,.14);--tec-color-box-shadow-secondary:rgba(0,0,0,.1);--tec-color-scroll-track:rgba(0,0,0,.25);--tec-color-scroll-bar:rgba(0,0,0,.5);--tec-color-background-primary-multiday:rgba(51,74,255,.24);--tec-color-background-primary-multiday-hover:rgba(51,74,255,.34);--tec-color-background-secondary-multiday:rgba(20,24,39,.24);--tec-color-background-secondary-multiday-hover:rgba(20,24,39,.34);--tec-color-accent-primary-week-event:rgba(51,74,255,.1);--tec-color-accent-primary-week-event-hover:rgba(51,74,255,.2);--tec-color-accent-primary-week-event-featured:rgba(51,74,255,.04);--tec-color-accent-primary-week-event-featured-hover:rgba(51,74,255,.14);--tec-color-background-secondary-datepicker:var(--tec-color-background-secondary);--tec-color-accent-primary-background-datepicker:var(--tec-color-accent-primary-background);--color-text-primary:var(--tec-color-text-primary);--color-text-primary-light:var(--tec-color-text-primary-light);--color-text-secondary:var(--tec-color-text-secondary);--color-text-disabled:var(--tec-color-text-disabled);--color-icon-primary:var(--tec-color-icon-primary);--color-icon-primary-alt:var(--tec-color-icon-primary);--color-icon-secondary:var(--tec-color-icon-secondary);--color-icon-active:var(--tec-color-icon-active);--color-icon-disabled:var(--tec-color-icon-disabled);--color-icon-focus:var(--tec-color-icon-focus);--color-icon-error:var(--tec-color-icon-error);--color-accent-primary:var(--tec-color-accent-primary);--color-accent-primary-hover:var(--tec-color-accent-primary-hover);--color-accent-primary-active:var(--tec-color-accent-primary-active);--color-accent-primary-background:var(--tec-color-accent-primary-background);--color-accent-primary-multiday:var(--tec-color-accent-primary-multiday);--color-accent-primary-multiday-hover:var(--tec-color-accent-primary-multiday-hover);--color-accent-primary-week-event:var(--tec-color-accent-primary-week-event);--color-accent-primary-week-event-hover:var(--tec-color-accent-primary-week-event-hover);--color-accent-primary-week-event-featured:var(--tec-color-accent-primary-week-event-featured);--color-accent-primary-week-event-featured-hover:var(--tec-color-accent-primary-week-event-featured-hover);--color-accent-secondary:var(--tec-color-accent-secondary);--color-accent-secondary-hover:var(--tec-color-accent-secondary-hover);--color-accent-secondary-active:var(--tec-color-accent-secondary-active);--color-accent-secondary-background:var(--tec-color-accent-secondary-background);--color-border-default:var(--tec-color-border-default);--color-border-secondary:var(--tec-color-border-secondary);--color-border-tertiary:var(--tec-color-border-tertiary);--color-border-hover:var(--tec-color-border-hover);--color-border-active:var(--tec-color-border-active);--color-background:var(--tec-color-background);--color-background-transparent:var(--tec-color-background-transparent);--color-background-secondary:var(--tec-color-background-secondary);--color-background-messages:var(--tec-color-background-messages);--color-background-secondary-hover:var(--tec-color-background-secondary-hover);--color-background-error:var(--tec-color-icon-error);--color-box-shadow:var(--tec-color-box-shadow);--color-box-shadow-secondary:var(--tec-color-box-shadow-secondary);--color-scroll-track:var(--tec-color-scroll-track);--color-scroll-bar:var(--tec-color-scroll-bar)}
common/vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit64b515648cded8ca1d94403794cfaa9f::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit917314f3938b1aedc49bbc814dabfab1::getLoader();
common/vendor/autoload_52.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
- return ComposerAutoloaderInitbeabd17b86513429d64cb8532e2f9449::getLoader();
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
+ return ComposerAutoloaderInit191341ac2ee85980a63f448c0658fc22::getLoader();
common/vendor/composer/autoload_classmap.php CHANGED
@@ -118,6 +118,7 @@ return array(
118
  'Psr\\Log\\Test\\LoggerInterfaceTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
119
  'Psr\\Log\\Test\\TestLogger' => $vendorDir . '/psr/log/Psr/Log/Test/TestLogger.php',
120
  'TEC\\Common\\Editor\\Full_Site\\Template_Utils' => $baseDir . '/src/Common/Editor/Full_Site/Template_Utils.php',
 
121
  'Tribe\\Admin\\Conditional_Content\\Black_Friday' => $baseDir . '/src/Tribe/Admin/Conditional_Content/Black_Friday.php',
122
  'Tribe\\Admin\\Conditional_Content\\Datetime_Conditional_Abstract' => $baseDir . '/src/Tribe/Admin/Conditional_Content/Datetime_Conditional_Abstract.php',
123
  'Tribe\\Admin\\Conditional_Content\\End_Of_Year_Sale' => $baseDir . '/src/Tribe/Admin/Conditional_Content/End_Of_Year_Sale.php',
118
  'Psr\\Log\\Test\\LoggerInterfaceTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
119
  'Psr\\Log\\Test\\TestLogger' => $vendorDir . '/psr/log/Psr/Log/Test/TestLogger.php',
120
  'TEC\\Common\\Editor\\Full_Site\\Template_Utils' => $baseDir . '/src/Common/Editor/Full_Site/Template_Utils.php',
121
+ 'TEC\\Common\\Storage\\Timed_Option' => $baseDir . '/src/Common/Storage/Timed_Option.php',
122
  'Tribe\\Admin\\Conditional_Content\\Black_Friday' => $baseDir . '/src/Tribe/Admin/Conditional_Content/Black_Friday.php',
123
  'Tribe\\Admin\\Conditional_Content\\Datetime_Conditional_Abstract' => $baseDir . '/src/Tribe/Admin/Conditional_Content/Datetime_Conditional_Abstract.php',
124
  'Tribe\\Admin\\Conditional_Content\\End_Of_Year_Sale' => $baseDir . '/src/Tribe/Admin/Conditional_Content/End_Of_Year_Sale.php',
common/vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit64b515648cded8ca1d94403794cfaa9f
6
  {
7
  private static $loader;
8
 
@@ -19,15 +19,15 @@ class ComposerAutoloaderInit64b515648cded8ca1d94403794cfaa9f
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit64b515648cded8ca1d94403794cfaa9f', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit64b515648cded8ca1d94403794cfaa9f', '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\ComposerStaticInit64b515648cded8ca1d94403794cfaa9f::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 ComposerAutoloaderInit917314f3938b1aedc49bbc814dabfab1
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInit917314f3938b1aedc49bbc814dabfab1', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit917314f3938b1aedc49bbc814dabfab1', '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\ComposerStaticInit917314f3938b1aedc49bbc814dabfab1::getInitializer($loader));
31
  } else {
32
  $map = require __DIR__ . '/autoload_namespaces.php';
33
  foreach ($map as $namespace => $path) {
common/vendor/composer/autoload_real_52.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real_52.php generated by xrstf/composer-php52
4
 
5
- class ComposerAutoloaderInitbeabd17b86513429d64cb8532e2f9449 {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
@@ -19,9 +19,9 @@ class ComposerAutoloaderInitbeabd17b86513429d64cb8532e2f9449 {
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInitbeabd17b86513429d64cb8532e2f9449', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInitbeabd17b86513429d64cb8532e2f9449', '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 ComposerAutoloaderInit191341ac2ee85980a63f448c0658fc22 {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInit191341ac2ee85980a63f448c0658fc22', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit191341ac2ee85980a63f448c0658fc22', 'loadClassLoader'));
25
 
26
  $vendorDir = dirname(dirname(__FILE__));
27
  $baseDir = dirname($vendorDir);
common/vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInit64b515648cded8ca1d94403794cfaa9f
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'T' =>
@@ -179,6 +179,7 @@ class ComposerStaticInit64b515648cded8ca1d94403794cfaa9f
179
  'Psr\\Log\\Test\\LoggerInterfaceTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
180
  'Psr\\Log\\Test\\TestLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/TestLogger.php',
181
  'TEC\\Common\\Editor\\Full_Site\\Template_Utils' => __DIR__ . '/../..' . '/src/Common/Editor/Full_Site/Template_Utils.php',
 
182
  'Tribe\\Admin\\Conditional_Content\\Black_Friday' => __DIR__ . '/../..' . '/src/Tribe/Admin/Conditional_Content/Black_Friday.php',
183
  'Tribe\\Admin\\Conditional_Content\\Datetime_Conditional_Abstract' => __DIR__ . '/../..' . '/src/Tribe/Admin/Conditional_Content/Datetime_Conditional_Abstract.php',
184
  'Tribe\\Admin\\Conditional_Content\\End_Of_Year_Sale' => __DIR__ . '/../..' . '/src/Tribe/Admin/Conditional_Content/End_Of_Year_Sale.php',
@@ -273,10 +274,10 @@ class ComposerStaticInit64b515648cded8ca1d94403794cfaa9f
273
  public static function getInitializer(ClassLoader $loader)
274
  {
275
  return \Closure::bind(function () use ($loader) {
276
- $loader->prefixLengthsPsr4 = ComposerStaticInit64b515648cded8ca1d94403794cfaa9f::$prefixLengthsPsr4;
277
- $loader->prefixDirsPsr4 = ComposerStaticInit64b515648cded8ca1d94403794cfaa9f::$prefixDirsPsr4;
278
- $loader->prefixesPsr0 = ComposerStaticInit64b515648cded8ca1d94403794cfaa9f::$prefixesPsr0;
279
- $loader->classMap = ComposerStaticInit64b515648cded8ca1d94403794cfaa9f::$classMap;
280
 
281
  }, null, ClassLoader::class);
282
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit917314f3938b1aedc49bbc814dabfab1
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'T' =>
179
  'Psr\\Log\\Test\\LoggerInterfaceTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
180
  'Psr\\Log\\Test\\TestLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/TestLogger.php',
181
  'TEC\\Common\\Editor\\Full_Site\\Template_Utils' => __DIR__ . '/../..' . '/src/Common/Editor/Full_Site/Template_Utils.php',
182
+ 'TEC\\Common\\Storage\\Timed_Option' => __DIR__ . '/../..' . '/src/Common/Storage/Timed_Option.php',
183
  'Tribe\\Admin\\Conditional_Content\\Black_Friday' => __DIR__ . '/../..' . '/src/Tribe/Admin/Conditional_Content/Black_Friday.php',
184
  'Tribe\\Admin\\Conditional_Content\\Datetime_Conditional_Abstract' => __DIR__ . '/../..' . '/src/Tribe/Admin/Conditional_Content/Datetime_Conditional_Abstract.php',
185
  'Tribe\\Admin\\Conditional_Content\\End_Of_Year_Sale' => __DIR__ . '/../..' . '/src/Tribe/Admin/Conditional_Content/End_Of_Year_Sale.php',
274
  public static function getInitializer(ClassLoader $loader)
275
  {
276
  return \Closure::bind(function () use ($loader) {
277
+ $loader->prefixLengthsPsr4 = ComposerStaticInit917314f3938b1aedc49bbc814dabfab1::$prefixLengthsPsr4;
278
+ $loader->prefixDirsPsr4 = ComposerStaticInit917314f3938b1aedc49bbc814dabfab1::$prefixDirsPsr4;
279
+ $loader->prefixesPsr0 = ComposerStaticInit917314f3938b1aedc49bbc814dabfab1::$prefixesPsr0;
280
+ $loader->classMap = ComposerStaticInit917314f3938b1aedc49bbc814dabfab1::$classMap;
281
 
282
  }, null, ClassLoader::class);
283
  }
common/vendor/tribe-selectWoo/dist/js/selectWoo.full.js CHANGED
@@ -1875,7 +1875,12 @@ S2.define('select2/selection/allowClear',[
1875
  }
1876
  }
1877
 
1878
- this.$element.val(this.placeholder.id).trigger('change');
 
 
 
 
 
1879
 
1880
  this.trigger('toggle', {});
1881
  };
1875
  }
1876
  }
1877
 
1878
+ // Allow clearing when the data-placeholder attribute isn't set.
1879
+ if ( typeof this.placeholder !== 'undefined' ) {
1880
+ this.$element.val( this.placeholder.id ).trigger( 'change' );
1881
+ } else {
1882
+ this.$element.val( '' ).trigger( 'change' );
1883
+ }
1884
 
1885
  this.trigger('toggle', {});
1886
  };
common/vendor/tribe-selectWoo/dist/js/selectWoo.full.min.js CHANGED
@@ -1 +1,16 @@
1
- !function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&module.exports?module.exports=function(t,n){return void 0===n&&(n="undefined"!=typeof window?require("jquery"):require("jquery")(t)),e(n),n}:e(jQuery)}(function(e){var t=function(){if(e&&e.fn&&e.fn.select2&&e.fn.select2.amd)var t=e.fn.select2.amd;var n,i,o,r;return t&&t.requirejs||(t?i=t:t={},function(e){var t,r,s,a,l={},c={},u={},d={},p=Object.prototype.hasOwnProperty,h=[].slice,f=/\.js$/;function g(e,t){return p.call(e,t)}function m(e,t){var n,i,o,r,s,a,l,c,d,p,h,g=t&&t.split("/"),m=u.map,v=m&&m["*"]||{};if(e){for(s=(e=e.split("/")).length-1,u.nodeIdCompat&&f.test(e[s])&&(e[s]=e[s].replace(f,"")),"."===e[0].charAt(0)&&g&&(e=g.slice(0,g.length-1).concat(e)),d=0;d<e.length;d++)if("."===(h=e[d]))e.splice(d,1),d-=1;else if(".."===h){if(0===d||1===d&&".."===e[2]||".."===e[d-1])continue;d>0&&(e.splice(d-1,2),d-=2)}e=e.join("/")}if((g||v)&&m){for(d=(n=e.split("/")).length;d>0;d-=1){if(i=n.slice(0,d).join("/"),g)for(p=g.length;p>0;p-=1)if((o=m[g.slice(0,p).join("/")])&&(o=o[i])){r=o,a=d;break}if(r)break;!l&&v&&v[i]&&(l=v[i],c=d)}!r&&l&&(r=l,a=c),r&&(n.splice(0,a,r),e=n.join("/"))}return e}function v(t,n){return function(){var i=h.call(arguments,0);return"string"!=typeof i[0]&&1===i.length&&i.push(null),r.apply(e,i.concat([t,n]))}}function y(e){return function(t){l[e]=t}}function w(n){if(g(c,n)){var i=c[n];delete c[n],d[n]=!0,t.apply(e,i)}if(!g(l,n)&&!g(d,n))throw new Error("No "+n);return l[n]}function _(e){var t,n=e?e.indexOf("!"):-1;return n>-1&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function $(e){return e?_(e):[]}function b(e){return function(){return u&&u.config&&u.config[e]||{}}}s=function(e,t){var n,i,o=_(e),r=o[0],s=t[1];return e=o[1],r&&(n=w(r=m(r,s))),r?e=n&&n.normalize?n.normalize(e,(i=s,function(e){return m(e,i)})):m(e,s):(r=(o=_(e=m(e,s)))[0],e=o[1],r&&(n=w(r))),{f:r?r+"!"+e:e,n:e,pr:r,p:n}},a={require:function(e){return v(e)},exports:function(e){var t=l[e];return void 0!==t?t:l[e]={}},module:function(e){return{id:e,uri:"",exports:l[e],config:b(e)}}},t=function(t,n,i,o){var r,u,p,h,f,m,_,b=[],x=typeof i;if(m=$(o=o||t),"undefined"===x||"function"===x){for(n=!n.length&&i.length?["require","exports","module"]:n,f=0;f<n.length;f+=1)if("require"===(u=(h=s(n[f],m)).f))b[f]=a.require(t);else if("exports"===u)b[f]=a.exports(t),_=!0;else if("module"===u)r=b[f]=a.module(t);else if(g(l,u)||g(c,u)||g(d,u))b[f]=w(u);else{if(!h.p)throw new Error(t+" missing "+u);h.p.load(h.n,v(o,!0),y(u),{}),b[f]=l[u]}p=i?i.apply(l[t],b):void 0,t&&(r&&r.exports!==e&&r.exports!==l[t]?l[t]=r.exports:p===e&&_||(l[t]=p))}else t&&(l[t]=i)},n=i=r=function(n,i,o,l,c){if("string"==typeof n)return a[n]?a[n](i):w(s(n,$(i)).f);if(!n.splice){if((u=n).deps&&r(u.deps,u.callback),!i)return;i.splice?(n=i,i=o,o=null):n=e}return i=i||function(){},"function"==typeof o&&(o=l,l=c),l?t(e,n,i,o):setTimeout(function(){t(e,n,i,o)},4),r},r.config=function(e){return r(e)},n._defined=l,(o=function(e,t,n){if("string"!=typeof e)throw new Error("See almond README: incorrect module build, no module name");t.splice||(n=t,t=[]),g(l,e)||g(c,e)||(c[e]=[e,t,n])}).amd={jQuery:!0}}(),t.requirejs=n,t.require=i,t.define=o),t.define("almond",function(){}),t.define("jquery",[],function(){var t=e||$;return null==t&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),t}),t.define("select2/utils",["jquery"],function(e){var t={};function n(e){var t=e.prototype,n=[];for(var i in t){"function"==typeof t[i]&&("constructor"!==i&&n.push(i))}return n}t.Extend=function(e,t){var n={}.hasOwnProperty;function i(){this.constructor=e}for(var o in t)n.call(t,o)&&(e[o]=t[o]);return i.prototype=t.prototype,e.prototype=new i,e.__super__=t.prototype,e},t.Decorate=function(e,t){var i=n(t),o=n(e);function r(){var n=Array.prototype.unshift,i=t.prototype.constructor.length,o=e.prototype.constructor;i>0&&(n.call(arguments,e.prototype.constructor),o=t.prototype.constructor),o.apply(this,arguments)}t.displayName=e.displayName,r.prototype=new function(){this.constructor=r};for(var s=0;s<o.length;s++){var a=o[s];r.prototype[a]=e.prototype[a]}for(var l=function(e){var n=function(){};e in r.prototype&&(n=r.prototype[e]);var i=t.prototype[e];return function(){return Array.prototype.unshift.call(arguments,n),i.apply(this,arguments)}},c=0;c<i.length;c++){var u=i[c];r.prototype[u]=l(u)}return r};var i=function(){this.listeners={}};return i.prototype.on=function(e,t){this.listeners=this.listeners||{},e in this.listeners?this.listeners[e].push(t):this.listeners[e]=[t]},i.prototype.trigger=function(e){var t=Array.prototype.slice,n=t.call(arguments,1);this.listeners=this.listeners||{},null==n&&(n=[]),0===n.length&&n.push({}),n[0]._type=e,e in this.listeners&&this.invoke(this.listeners[e],t.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},i.prototype.invoke=function(e,t){for(var n=0,i=e.length;n<i;n++)e[n].apply(this,t)},t.Observable=i,t.generateChars=function(e){for(var t="",n=0;n<e;n++){t+=Math.floor(36*Math.random()).toString(36)}return t},t.bind=function(e,t){return function(){e.apply(t,arguments)}},t._convertData=function(e){for(var t in e){var n=t.split("-"),i=e;if(1!==n.length){for(var o=0;o<n.length;o++){var r=n[o];(r=r.substring(0,1).toLowerCase()+r.substring(1))in i||(i[r]={}),o==n.length-1&&(i[r]=e[t]),i=i[r]}delete e[t]}}return e},t.hasScroll=function(t,n){var i=e(n),o=n.style.overflowX,r=n.style.overflowY;return(o!==r||"hidden"!==r&&"visible"!==r)&&("scroll"===o||"scroll"===r||(i.innerHeight()<n.scrollHeight||i.innerWidth()<n.scrollWidth))},t.escapeMarkup=function(e){var t={"\\":"&#92;","&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#47;"};return"string"!=typeof e?e:String(e).replace(/[&<>"'\/\\]/g,function(e){return t[e]})},t.appendMany=function(t,n){if("1.7"===e.fn.jquery.substr(0,3)){var i=e();e.map(n,function(e){i=i.add(e)}),n=i}t.append(n)},t.isTouchscreen=function(){return void 0===t._isTouchscreenCache&&(t._isTouchscreenCache="ontouchstart"in document.documentElement),t._isTouchscreenCache},t}),t.define("select2/results",["jquery","./utils"],function(e,t){function n(e,t,i){this.$element=e,this.data=i,this.options=t,n.__super__.constructor.call(this)}return t.Extend(n,t.Observable),n.prototype.render=function(){var t=e('<ul class="select2-results__options" role="listbox" tabindex="-1"></ul>');return this.options.get("multiple")&&t.attr("aria-multiselectable","true"),this.$results=t,t},n.prototype.clear=function(){this.$results.empty()},n.prototype.displayMessage=function(t){var n=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var i=e('<li role="alert" aria-live="assertive" class="select2-results__option"></li>'),o=this.options.get("translations").get(t.message);i.append(n(o(t.args))),i[0].className+=" select2-results__message",this.$results.append(i)},n.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},n.prototype.append=function(e){this.hideLoading();var t=[];if(null!=e.results&&0!==e.results.length){e.results=this.sort(e.results);for(var n=0;n<e.results.length;n++){var i=e.results[n],o=this.option(i);t.push(o)}this.$results.append(t)}else 0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"})},n.prototype.position=function(e,t){t.find(".select2-results").append(e)},n.prototype.sort=function(e){return this.options.get("sorter")(e)},n.prototype.highlightFirstItem=function(){var e=this.$results.find(".select2-results__option[data-selected]"),t=e.filter("[data-selected=true]");t.length>0?t.first().trigger("mouseenter"):e.first().trigger("mouseenter"),this.ensureHighlightVisible()},n.prototype.setClasses=function(){var t=this;this.data.current(function(n){var i=e.map(n,function(e){return e.id.toString()});t.$results.find(".select2-results__option[data-selected]").each(function(){var t=e(this),n=e.data(this,"data"),o=""+n.id;null!=n.element&&n.element.selected||null==n.element&&e.inArray(o,i)>-1?t.attr("data-selected","true"):t.attr("data-selected","false")})})},n.prototype.showLoading=function(e){this.hideLoading();var t={disabled:!0,loading:!0,text:this.options.get("translations").get("searching")(e)},n=this.option(t);n.className+=" loading-results",this.$results.prepend(n)},n.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},n.prototype.option=function(t){var n=document.createElement("li");n.className="select2-results__option";var i={role:"option","data-selected":"false",tabindex:-1};for(var o in t.disabled&&(delete i["data-selected"],i["aria-disabled"]="true"),null==t.id&&delete i["data-selected"],null!=t._resultId&&(n.id=t._resultId),t.title&&(n.title=t.title),t.children&&(i["aria-label"]=t.text,delete i["data-selected"]),i){var r=i[o];n.setAttribute(o,r)}if(t.children){var s=e(n),a=document.createElement("strong");a.className="select2-results__group";var l=e(a);this.template(t,a),l.attr("role","presentation");for(var c=[],u=0;u<t.children.length;u++){var d=t.children[u],p=this.option(d);c.push(p)}var h=e("<ul></ul>",{class:"select2-results__options select2-results__options--nested",role:"listbox"});h.append(c),s.attr("role","list"),s.append(a),s.append(h)}else this.template(t,n);return e.data(n,"data",t),n},n.prototype.bind=function(t,n){var i=this,o=t.id+"-results";this.$results.attr("id",o),t.on("results:all",function(e){i.clear(),i.append(e.data),t.isOpen()&&(i.setClasses(),i.highlightFirstItem())}),t.on("results:append",function(e){i.append(e.data),t.isOpen()&&i.setClasses()}),t.on("query",function(e){i.hideMessages(),i.showLoading(e)}),t.on("select",function(){t.isOpen()&&(i.setClasses(),i.highlightFirstItem())}),t.on("unselect",function(){t.isOpen()&&(i.setClasses(),i.highlightFirstItem())}),t.on("open",function(){i.$results.attr("aria-expanded","true"),i.$results.attr("aria-hidden","false"),i.setClasses(),i.ensureHighlightVisible()}),t.on("close",function(){i.$results.attr("aria-expanded","false"),i.$results.attr("aria-hidden","true"),i.$results.removeAttr("aria-activedescendant")}),t.on("results:toggle",function(){var e=i.getHighlightedResults();0!==e.length&&e.trigger("mouseup")}),t.on("results:select",function(){var e=i.getHighlightedResults();if(0!==e.length){var t=e.data("data");"true"==e.attr("data-selected")?i.trigger("close",{}):i.trigger("select",{data:t})}}),t.on("results:previous",function(){var e=i.getHighlightedResults(),t=i.$results.find("[data-selected]"),n=t.index(e);if(0!==n){var o=n-1;0===e.length&&(o=0);var r=t.eq(o);r.trigger("mouseenter");var s=i.$results.offset().top,a=r.offset().top,l=i.$results.scrollTop()+(a-s);0===o?i.$results.scrollTop(0):a-s<0&&i.$results.scrollTop(l)}}),t.on("results:next",function(){var e=i.getHighlightedResults(),t=i.$results.find("[data-selected]"),n=t.index(e)+1;if(!(n>=t.length)){var o=t.eq(n);o.trigger("mouseenter");var r=i.$results.offset().top+i.$results.outerHeight(!1),s=o.offset().top+o.outerHeight(!1),a=i.$results.scrollTop()+s-r;0===n?i.$results.scrollTop(0):s>r&&i.$results.scrollTop(a)}}),t.on("results:focus",function(e){e.element.addClass("select2-results__option--highlighted").attr("aria-selected","true"),i.$results.attr("aria-activedescendant",e.element.attr("id"))}),t.on("results:message",function(e){i.displayMessage(e)}),e.fn.mousewheel&&this.$results.on("mousewheel",function(e){var t=i.$results.scrollTop(),n=i.$results.get(0).scrollHeight-t+e.deltaY,o=e.deltaY>0&&t-e.deltaY<=0,r=e.deltaY<0&&n<=i.$results.height();o?(i.$results.scrollTop(0),e.preventDefault(),e.stopPropagation()):r&&(i.$results.scrollTop(i.$results.get(0).scrollHeight-i.$results.height()),e.preventDefault(),e.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[data-selected]",function(t){var n=e(this),o=n.data("data");"true"!==n.attr("data-selected")?i.trigger("select",{originalEvent:t,data:o}):i.options.get("multiple")?i.trigger("unselect",{originalEvent:t,data:o}):i.trigger("close",{})}),this.$results.on("mouseenter",".select2-results__option[data-selected]",function(t){var n=e(this).data("data");i.getHighlightedResults().removeClass("select2-results__option--highlighted").attr("aria-selected","false"),i.trigger("results:focus",{data:n,element:e(this)})})},n.prototype.getHighlightedResults=function(){return this.$results.find(".select2-results__option--highlighted")},n.prototype.destroy=function(){this.$results.remove()},n.prototype.ensureHighlightVisible=function(){var e=this.getHighlightedResults();if(0!==e.length){var t=this.$results.find("[data-selected]").index(e),n=this.$results.offset().top,i=e.offset().top,o=this.$results.scrollTop()+(i-n),r=i-n;o-=2*e.outerHeight(!1),t<=2?this.$results.scrollTop(0):(r>this.$results.outerHeight()||r<0)&&this.$results.scrollTop(o)}},n.prototype.template=function(t,n){var i=this.options.get("templateResult"),o=this.options.get("escapeMarkup"),r=i(t,n);null==r?n.style.display="none":"string"==typeof r?n.innerHTML=o(r):e(n).append(r)},n}),t.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),t.define("select2/selection/base",["jquery","../utils","../keys"],function(e,t,n){function i(e,t){this.$element=e,this.options=t,i.__super__.constructor.call(this)}return t.Extend(i,t.Observable),i.prototype.render=function(){var t=e('<span class="select2-selection" aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=this.$element.data("old-tabindex")?this._tabindex=this.$element.data("old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),t.attr("title",this.$element.attr("title")),t.attr("tabindex",this._tabindex),this.$selection=t,t},i.prototype.bind=function(e,t){var i=this,o=(e.id,e.id+"-results");this.options.get("minimumResultsForSearch");this.container=e,this.$selection.on("focus",function(e){i.trigger("focus",e)}),this.$selection.on("blur",function(e){i._handleBlur(e)}),this.$selection.on("keydown",function(e){i.trigger("keypress",e),e.which===n.SPACE&&e.preventDefault()}),e.on("results:focus",function(e){i.$selection.attr("aria-activedescendant",e.data._resultId)}),e.on("selection:update",function(e){i.update(e.data)}),e.on("open",function(){i.$selection.attr("aria-expanded","true"),i.$selection.attr("aria-owns",o),i._attachCloseHandler(e)}),e.on("close",function(){i.$selection.attr("aria-expanded","false"),i.$selection.removeAttr("aria-activedescendant"),i.$selection.removeAttr("aria-owns"),window.setTimeout(function(){i.$selection.trigger("focus")},1),i._detachCloseHandler(e)}),e.on("enable",function(){i.$selection.attr("tabindex",i._tabindex)}),e.on("disable",function(){i.$selection.attr("tabindex","-1")})},i.prototype._handleBlur=function(t){var n=this;window.setTimeout(function(){document.activeElement==n.$selection[0]||e.contains(n.$selection[0],document.activeElement)||n.trigger("blur",t)},1)},i.prototype._attachCloseHandler=function(t){e(document.body).on("mousedown.select2."+t.id,function(t){var n=e(t.target),i=n.closest(".select2");e(".select2.select2-container--open").each(function(){var t=e(this);this!=i[0]&&(t.data("element").select2("close"),setTimeout(function(){t.find("*:focus").blur(),n.trigger("focus")},1))})})},i.prototype._detachCloseHandler=function(t){e(document.body).off("mousedown.select2."+t.id)},i.prototype.position=function(e,t){t.find(".selection").append(e)},i.prototype.destroy=function(){this._detachCloseHandler(this.container)},i.prototype.update=function(e){throw new Error("The `update` method must be defined in child classes.")},i}),t.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(e,t,n,i){function o(){o.__super__.constructor.apply(this,arguments)}return n.Extend(o,t),o.prototype.render=function(){var e=o.__super__.render.call(this);return e.addClass("select2-selection--single"),e.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),e},o.prototype.bind=function(e,t){var n=this;o.__super__.bind.apply(this,arguments);var i=e.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",i).attr("role","textbox").attr("aria-readonly","true"),this.$selection.attr("aria-labelledby",i),this.$selection.attr("role","combobox"),this.$selection.on("mousedown",function(e){1===e.which&&n.trigger("toggle",{originalEvent:e})}),this.$selection.on("focus",function(e){}),this.$selection.on("keydown",function(t){!e.isOpen()&&t.which>=48&&t.which<=90&&e.open()}),this.$selection.on("blur",function(e){}),e.on("focus",function(t){e.isOpen()||n.$selection.trigger("focus")}),e.on("selection:update",function(e){n.update(e.data)})},o.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},o.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},o.prototype.selectionContainer=function(){return e("<span></span>")},o.prototype.update=function(e){if(0!==e.length){var t=e[0],n=this.$selection.find(".select2-selection__rendered"),i=this.display(t,n);n.empty().append(i),n.prop("title",t.title||t.text)}else this.clear()},o}),t.define("select2/selection/multiple",["jquery","./base","../utils"],function(e,t,n){function i(e,t){i.__super__.constructor.apply(this,arguments)}return n.Extend(i,t),i.prototype.render=function(){var e=i.__super__.render.call(this);return e.addClass("select2-selection--multiple"),e.html('<ul class="select2-selection__rendered" aria-live="polite" aria-relevant="additions removals" aria-atomic="true"></ul>'),e},i.prototype.bind=function(t,n){var o=this;i.__super__.bind.apply(this,arguments),this.$selection.on("click",function(e){o.trigger("toggle",{originalEvent:e})}),this.$selection.on("click",".select2-selection__choice__remove",function(t){if(!o.options.get("disabled")){var n=e(this).parent().data("data");o.trigger("unselect",{originalEvent:t,data:n})}}),this.$selection.on("keydown",function(e){!t.isOpen()&&e.which>=48&&e.which<=90&&t.open()}),t.on("focus",function(){o.focusOnSearch()})},i.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},i.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},i.prototype.selectionContainer=function(){return e('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation" aria-hidden="true">&times;</span></li>')},i.prototype.focusOnSearch=function(){var e=this;void 0!==e.$search&&setTimeout(function(){e._keyUpPrevented=!0,e.$search.trigger("focus")},1)},i.prototype.update=function(e){if(this.clear(),0!==e.length){for(var t=[],i=0;i<e.length;i++){var o=e[i],r=this.selectionContainer(),s=this.display(o,r);"string"==typeof s&&(s=s.trim()),r.append(s),r.prop("title",o.title||o.text),r.data("data",o),t.push(r)}var a=this.$selection.find(".select2-selection__rendered");n.appendMany(a,t)}},i}),t.define("select2/selection/placeholder",["../utils"],function(e){function t(e,t,n){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n)}return t.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},t.prototype.createPlaceholder=function(e,t){var n=this.selectionContainer();return n.html(this.display(t)),n.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"),n},t.prototype.update=function(e,t){var n=1==t.length&&t[0].id!=this.placeholder.id;if(t.length>1||n)return e.call(this,t);this.clear();var i=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(i)},t}),t.define("select2/selection/allowClear",["jquery","../keys"],function(e,t){function n(){}return n.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(e){i._handleClear(e)}),t.on("keypress",function(e){i._handleKeyboardClear(e,t)})},n.prototype._handleClear=function(e,t){if(!this.options.get("disabled")){var n=this.$selection.find(".select2-selection__clear");if(0!==n.length){t.stopPropagation();for(var i=n.data("data"),o=0;o<i.length;o++){var r={data:i[o]};if(this.trigger("unselect",r),r.prevented)return}this.$element.val(this.placeholder.id).trigger("change"),this.trigger("toggle",{})}}},n.prototype._handleKeyboardClear=function(e,n,i){i.isOpen()||n.which!=t.DELETE&&n.which!=t.BACKSPACE||this._handleClear(n)},n.prototype.update=function(t,n){if(t.call(this,n),!(this.$selection.find(".select2-selection__placeholder").length>0||0===n.length)){var i=e('<span class="select2-selection__clear">&times;</span>');i.data("data",n),this.$selection.find(".select2-selection__rendered").prepend(i)}},n}),t.define("select2/selection/search",["jquery","../utils","../keys"],function(e,t,n){function i(e,t,n){e.call(this,t,n)}return i.prototype.render=function(t){var n=e('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="text" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="textbox" aria-autocomplete="list" /></li>');this.$searchContainer=n,this.$search=n.find("input");var i=t.call(this);return this._transferTabIndex(),i},i.prototype.bind=function(e,t,i){var o=this,r=t.id+"-results";e.call(this,t,i),t.on("open",function(){o.$search.attr("aria-owns",r),o.$search.trigger("focus")}),t.on("close",function(){o.$search.val(""),o.$search.removeAttr("aria-activedescendant"),o.$search.removeAttr("aria-owns"),o.$search.trigger("focus")}),t.on("enable",function(){o.$search.prop("disabled",!1),o._transferTabIndex()}),t.on("disable",function(){o.$search.prop("disabled",!0)}),t.on("focus",function(e){o.$search.trigger("focus")}),t.on("results:focus",function(e){o.$search.attr("aria-activedescendant",e.data._resultId)}),this.$selection.on("focusin",".select2-search--inline",function(e){o.trigger("focus",e)}),this.$selection.on("focusout",".select2-search--inline",function(e){o._handleBlur(e)}),this.$selection.on("keydown",".select2-search--inline",function(e){if(e.stopPropagation(),o.trigger("keypress",e),o._keyUpPrevented=e.isDefaultPrevented(),e.which===n.BACKSPACE&&""===o.$search.val()){var i=o.$searchContainer.prev(".select2-selection__choice");if(i.length>0){var r=i.data("data");o.searchRemoveChoice(r),e.preventDefault()}}else e.which===n.ENTER&&(t.open(),e.preventDefault())});var s=document.documentMode,a=s&&s<=11;this.$selection.on("input.searchcheck",".select2-search--inline",function(e){a?o.$selection.off("input.search input.searchcheck"):o.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(e){if(a&&"input"===e.type)o.$selection.off("input.search input.searchcheck");else{var t=e.which;t!=n.SHIFT&&t!=n.CTRL&&t!=n.ALT&&t!=n.TAB&&o.handleSearch(e)}})},i.prototype._transferTabIndex=function(e){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},i.prototype.createPlaceholder=function(e,t){this.$search.attr("placeholder",t.text)},i.prototype.update=function(e,t){var n=this.$search[0]==document.activeElement;this.$search.attr("placeholder",""),e.call(this,t),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),n&&this.$search.trigger("focus")},i.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var e=this.$search.val();this.trigger("query",{term:e})}this._keyUpPrevented=!1},i.prototype.searchRemoveChoice=function(e,t){this.trigger("unselect",{data:t}),this.$search.val(t.text),this.handleSearch()},i.prototype.resizeSearch=function(){this.$search.css("width","25px");var e="";""!==this.$search.attr("placeholder")?e=this.$selection.find(".select2-selection__rendered").innerWidth():e=.75*(this.$search.val().length+1)+"em";this.$search.css("width",e)},i}),t.define("select2/selection/eventRelay",["jquery"],function(e){function t(){}return t.prototype.bind=function(t,n,i){var o=this,r=["open","opening","close","closing","select","selecting","unselect","unselecting"],s=["opening","closing","selecting","unselecting"];t.call(this,n,i),n.on("*",function(t,n){if(-1!==e.inArray(t,r)){n=n||{};var i=e.Event("select2:"+t,{params:n});o.$element.trigger(i),-1!==e.inArray(t,s)&&(n.prevented=i.isDefaultPrevented())}})},t}),t.define("select2/translation",["jquery","require"],function(e,t){function n(e){this.dict=e||{}}return n.prototype.all=function(){return this.dict},n.prototype.get=function(e){return this.dict[e]},n.prototype.extend=function(t){this.dict=e.extend({},t.all(),this.dict)},n._cache={},n.loadPath=function(e){if(!(e in n._cache)){var i=t(e);n._cache[e]=i}return new n(n._cache[e])},n}),t.define("select2/diacritics",[],function(){return{"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"}}),t.define("select2/data/base",["../utils"],function(e){function t(e,n){t.__super__.constructor.call(this)}return e.Extend(t,e.Observable),t.prototype.current=function(e){throw new Error("The `current` method must be defined in child classes.")},t.prototype.query=function(e,t){throw new Error("The `query` method must be defined in child classes.")},t.prototype.bind=function(e,t){},t.prototype.destroy=function(){},t.prototype.generateResultId=function(t,n){var i="";return i+=null!=t?t.id:e.generateChars(4),i+="-result-",i+=e.generateChars(4),null!=n.id?i+="-"+n.id.toString():i+="-"+e.generateChars(4),i},t}),t.define("select2/data/select",["./base","../utils","jquery"],function(e,t,n){function i(e,t){this.$element=e,this.options=t,i.__super__.constructor.call(this)}return t.Extend(i,e),i.prototype.current=function(e){var t=[],i=this;this.$element.find(":selected").each(function(){var e=n(this),o=i.item(e);t.push(o)}),e(t)},i.prototype.select=function(e){var t=this;if(e.selected=!0,n(e.element).is("option"))return e.element.selected=!0,void this.$element.trigger("change");if(this.$element.prop("multiple"))this.current(function(i){var o=[];(e=[e]).push.apply(e,i);for(var r=0;r<e.length;r++){var s=e[r].id;-1===n.inArray(s,o)&&o.push(s)}t.$element.val(o),t.$element.trigger("change")});else{var i=e.id;this.$element.val(i),this.$element.trigger("change")}},i.prototype.unselect=function(e){var t=this;if(this.$element.prop("multiple")){if(e.selected=!1,n(e.element).is("option"))return e.element.selected=!1,void this.$element.trigger("change");this.current(function(i){for(var o=[],r=0;r<i.length;r++){var s=i[r].id;s!==e.id&&-1===n.inArray(s,o)&&o.push(s)}t.$element.val(o),t.$element.trigger("change")})}},i.prototype.bind=function(e,t){var n=this;this.container=e,e.on("select",function(e){n.select(e.data)}),e.on("unselect",function(e){n.unselect(e.data)})},i.prototype.destroy=function(){this.$element.find("*").each(function(){n.removeData(this,"data")})},i.prototype.query=function(e,t){var i=[],o=this;this.$element.children().each(function(){var t=n(this);if(t.is("option")||t.is("optgroup")){var r=o.item(t),s=o.matches(e,r);null!==s&&i.push(s)}}),t({results:i})},i.prototype.addOptions=function(e){t.appendMany(this.$element,e)},i.prototype.option=function(e){var t;e.children?(t=document.createElement("optgroup")).label=e.text:void 0!==(t=document.createElement("option")).textContent?t.textContent=e.text:t.innerText=e.text,void 0!==e.id&&(t.value=e.id),e.disabled&&(t.disabled=!0),e.selected&&(t.selected=!0),e.title&&(t.title=e.title);var i=n(t),o=this._normalizeItem(e);return o.element=t,n.data(t,"data",o),i},i.prototype.item=function(e){var t={};if(null!=(t=n.data(e[0],"data")))return t;if(e.is("option"))t={id:e.val(),text:e.text(),disabled:e.prop("disabled"),selected:e.prop("selected"),title:e.prop("title")};else if(e.is("optgroup")){t={text:e.prop("label"),children:[],title:e.prop("title")};for(var i=e.children("option"),o=[],r=0;r<i.length;r++){var s=n(i[r]),a=this.item(s);o.push(a)}t.children=o}return(t=this._normalizeItem(t)).element=e[0],n.data(e[0],"data",t),t},i.prototype._normalizeItem=function(e){n.isPlainObject(e)||(e={id:e,text:e});return null!=(e=n.extend({},{text:""},e)).id&&(e.id=e.id.toString()),null!=e.text&&(e.text=e.text.toString()),null==e._resultId&&e.id&&(e._resultId=this.generateResultId(this.container,e)),n.extend({},{selected:!1,disabled:!1},e)},i.prototype.matches=function(e,t){return this.options.get("matcher")(e,t)},i}),t.define("select2/data/array",["./select","../utils","jquery"],function(e,t,n){function i(e,t){var n=t.get("data")||[];i.__super__.constructor.call(this,e,t),this.addOptions(this.convertToOptions(n))}return t.Extend(i,e),i.prototype.select=function(e){var t=this.$element.find("option").filter(function(t,n){return n.value==e.id.toString()});0===t.length&&(t=this.option(e),this.addOptions(t)),i.__super__.select.call(this,e)},i.prototype.convertToOptions=function(e){var i=this,o=this.$element.find("option"),r=o.map(function(){return i.item(n(this)).id}).get(),s=[];function a(e){return function(){return n(this).val()==e.id}}for(var l=0;l<e.length;l++){var c=this._normalizeItem(e[l]);if(n.inArray(c.id,r)>=0){var u=o.filter(a(c)),d=this.item(u),p=n.extend(!0,{},c,d),h=this.option(p);u.replaceWith(h)}else{var f=this.option(c);if(c.children){var g=this.convertToOptions(c.children);t.appendMany(f,g)}s.push(f)}}return s},i}),t.define("select2/data/ajax",["./array","../utils","jquery"],function(e,t,n){function i(e,t){this.ajaxOptions=this._applyDefaults(t.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),i.__super__.constructor.call(this,e,t)}return t.Extend(i,e),i.prototype._applyDefaults=function(e){var t={data:function(e){return n.extend({},e,{q:e.term})},transport:function(e,t,i){var o=n.ajax(e);return o.then(t),o.fail(i),o}};return n.extend({},t,e,!0)},i.prototype.processResults=function(e){return e},i.prototype.query=function(e,t){var i=this;null!=this._request&&("function"==typeof this._request.abort&&this._request.abort(),this._request=null);var o=n.extend({type:"GET"},this.ajaxOptions);function r(){var n=o.transport(o,function(n){var o=i.processResults(n,e);i.options.get("debug")&&window.console&&console.error&&(o&&o.results&&Array.isArray(o.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),t(o),i.container.focusOnActiveElement()},function(){n.status&&"0"===n.status||i.trigger("results:message",{message:"errorLoading"})});i._request=n}"function"==typeof o.url&&(o.url=o.url.call(this.$element,e)),"function"==typeof o.data&&(o.data=o.data.call(this.$element,e)),this.ajaxOptions.delay&&null!=e.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(r,this.ajaxOptions.delay)):r()},i}),t.define("select2/data/tags",["jquery"],function(e){function t(e,t,n){var i=n.get("tags"),o=n.get("createTag");void 0!==o&&(this.createTag=o);var r=n.get("insertTag");if(void 0!==r&&(this.insertTag=r),e.call(this,t,n),Array.isArray(i))for(var s=0;s<i.length;s++){var a=i[s],l=this._normalizeItem(a),c=this.option(l);this.$element.append(c)}}return t.prototype.query=function(e,t,n){var i=this;this._removeOldTags(),null!=t.term&&null==t.page?e.call(this,t,function e(o,r){for(var s=o.results,a=0;a<s.length;a++){var l=s[a],c=null!=l.children&&!e({results:l.children},!0);if((l.text||"").toUpperCase()===(t.term||"").toUpperCase()||c)return!r&&(o.data=s,void n(o))}if(r)return!0;var u=i.createTag(t);if(null!=u){var d=i.option(u);d.attr("data-select2-tag",!0),i.addOptions([d]),i.insertTag(s,u)}o.results=s,n(o)}):e.call(this,t,n)},t.prototype.createTag=function(e,t){if("string"!=typeof t.term)return null;var n=t.term.trim();return""===n?null:{id:n,text:n}},t.prototype.insertTag=function(e,t,n){t.unshift(n)},t.prototype._removeOldTags=function(t){this._lastTag;this.$element.find("option[data-select2-tag]").each(function(){this.selected||e(this).remove()})},t}),t.define("select2/data/tokenizer",["jquery"],function(e){function t(e,t,n){var i=n.get("tokenizer");void 0!==i&&(this.tokenizer=i),e.call(this,t,n)}return t.prototype.bind=function(e,t,n){e.call(this,t,n),this.$search=t.dropdown.$search||t.selection.$search||n.find(".select2-search__field")},t.prototype.query=function(t,n,i){var o=this;n.term=n.term||"";var r=this.tokenizer(n,this.options,function(t){var n=o._normalizeItem(t);if(!o.$element.find("option").filter(function(){return e(this).val()===n.id}).length){var i=o.option(n);i.attr("data-select2-tag",!0),o._removeOldTags(),o.addOptions([i])}!function(e){o.trigger("select",{data:e})}(n)});r.term!==n.term&&(this.$search.length&&(this.$search.val(r.term),this.$search.trigger("focus")),n.term=r.term),t.call(this,n,i)},t.prototype.tokenizer=function(t,n,i,o){for(var r=i.get("tokenSeparators")||[],s=n.term,a=0,l=this.createTag||function(e){return{id:e.term,text:e.term}};a<s.length;){var c=s[a];if(-1!==e.inArray(c,r)){var u=s.substr(0,a),d=l(e.extend({},n,{term:u}));null!=d?(o(d),s=s.substr(a+1)||"",a=0):a++}else a++}return{term:s}},t}),t.define("select2/data/minimumInputLength",[],function(){function e(e,t,n){this.minimumInputLength=n.get("minimumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",t.term.length<this.minimumInputLength?this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),t.define("select2/data/maximumInputLength",[],function(){function e(e,t,n){this.maximumInputLength=n.get("maximumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",this.maximumInputLength>0&&t.term.length>this.maximumInputLength?this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),t.define("select2/data/maximumSelectionLength",[],function(){function e(e,t,n){this.maximumSelectionLength=n.get("maximumSelectionLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){var i=this;this.current(function(o){var r=null!=o?o.length:0;i.maximumSelectionLength>0&&r>=i.maximumSelectionLength?i.trigger("results:message",{message:"maximumSelected",args:{maximum:i.maximumSelectionLength}}):e.call(i,t,n)})},e}),t.define("select2/dropdown",["jquery","./utils"],function(e,t){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return t.Extend(n,t.Observable),n.prototype.render=function(){var t=e('<span class="select2-dropdown"><span class="select2-results"></span></span>');return t.attr("dir",this.options.get("dir")),this.$dropdown=t,t},n.prototype.bind=function(){},n.prototype.position=function(e,t){},n.prototype.destroy=function(){this.$dropdown.remove()},n}),t.define("select2/dropdown/search",["jquery","../utils"],function(e,t){function n(){}return n.prototype.render=function(t){var n=t.call(this),i=e('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="text" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="combobox" aria-autocomplete="list" aria-expanded="true" /></span>');return this.$searchContainer=i,this.$search=i.find("input"),n.prepend(i),n},n.prototype.bind=function(t,n,i){var o=this,r=n.id+"-results";t.call(this,n,i),this.$search.on("keydown",function(e){o.trigger("keypress",e),o._keyUpPrevented=e.isDefaultPrevented()}),this.$search.on("input",function(t){e(this).off("keyup")}),this.$search.on("keyup input",function(e){o.handleSearch(e)}),n.on("open",function(){o.$search.attr("tabindex",0),o.$search.attr("aria-owns",r),o.$search.trigger("focus"),window.setTimeout(function(){o.$search.trigger("focus")},0)}),n.on("close",function(){o.$search.attr("tabindex",-1),o.$search.removeAttr("aria-activedescendant"),o.$search.removeAttr("aria-owns"),o.$search.val("")}),n.on("focus",function(){n.isOpen()||o.$search.trigger("focus")}),n.on("results:all",function(e){null!=e.query.term&&""!==e.query.term||(o.showSearch(e)?o.$searchContainer.removeClass("select2-search--hide"):o.$searchContainer.addClass("select2-search--hide"))}),n.on("results:focus",function(e){o.$search.attr("aria-activedescendant",e.data._resultId)})},n.prototype.handleSearch=function(e){if(!this._keyUpPrevented){var t=this.$search.val();this.trigger("query",{term:t})}this._keyUpPrevented=!1},n.prototype.showSearch=function(e,t){return!0},n}),t.define("select2/dropdown/hidePlaceholder",[],function(){function e(e,t,n,i){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n,i)}return e.prototype.append=function(e,t){t.results=this.removePlaceholder(t.results),e.call(this,t)},e.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},e.prototype.removePlaceholder=function(e,t){for(var n=t.slice(0),i=t.length-1;i>=0;i--){var o=t[i];this.placeholder.id===o.id&&n.splice(i,1)}return n},e}),t.define("select2/dropdown/infiniteScroll",["jquery"],function(e){function t(e,t,n,i){this.lastParams={},e.call(this,t,n,i),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return t.prototype.append=function(e,t){this.$loadingMore.remove(),this.loading=!1,e.call(this,t),this.showLoadingMore(t)&&this.$results.append(this.$loadingMore)},t.prototype.bind=function(t,n,i){var o=this;t.call(this,n,i),n.on("query",function(e){o.lastParams=e,o.loading=!0}),n.on("query:append",function(e){o.lastParams=e,o.loading=!0}),this.$results.on("scroll",function(){var t=e.contains(document.documentElement,o.$loadingMore[0]);!o.loading&&t&&(o.$results.offset().top+o.$results.outerHeight(!1)+50>=o.$loadingMore.offset().top+o.$loadingMore.outerHeight(!1)&&o.loadMore())})},t.prototype.loadMore=function(){this.loading=!0;var t=e.extend({},{page:1},this.lastParams);t.page++,this.trigger("query:append",t)},t.prototype.showLoadingMore=function(e,t){return t.pagination&&t.pagination.more},t.prototype.createLoadingMore=function(){var t=e('<li class="select2-results__option select2-results__option--load-more"role="option" aria-disabled="true"></li>'),n=this.options.get("translations").get("loadingMore");return t.html(n(this.lastParams)),t},t}),t.define("select2/dropdown/attachBody",["jquery","../utils"],function(e,t){function n(t,n,i){this.$dropdownParent=i.get("dropdownParent")||e(document.body),t.call(this,n,i)}return n.prototype.bind=function(e,t,n){var i=this,o=!1;e.call(this,t,n),t.on("open",function(){i._showDropdown(),i._attachPositioningHandler(t),o||(o=!0,t.on("results:all",function(){i._positionDropdown(),i._resizeDropdown()}),t.on("results:append",function(){i._positionDropdown(),i._resizeDropdown()}))}),t.on("close",function(){i._hideDropdown(),i._detachPositioningHandler(t)}),this.$dropdownContainer.on("mousedown",function(e){e.stopPropagation()})},n.prototype.destroy=function(e){e.call(this),this.$dropdownContainer.remove()},n.prototype.position=function(e,t,n){t.attr("class",n.attr("class")),t.removeClass("select2"),t.addClass("select2-container--open"),t.css({position:"absolute",top:-999999}),this.$container=n},n.prototype.render=function(t){var n=e("<span></span>"),i=t.call(this);return n.append(i),this.$dropdownContainer=n,n},n.prototype._hideDropdown=function(e){this.$dropdownContainer.detach()},n.prototype._attachPositioningHandler=function(n,i){var o=this,r="scroll.select2."+i.id,s="resize.select2."+i.id,a="orientationchange.select2."+i.id,l=this.$container.parents().filter(t.hasScroll);l.each(function(){e(this).data("select2-scroll-position",{x:e(this).scrollLeft(),y:e(this).scrollTop()})}),l.on(r,function(t){var n=e(this).data("select2-scroll-position");e(this).scrollTop(n.y)}),e(window).on(r+" "+s+" "+a,function(e){o._positionDropdown(),o._resizeDropdown()})},n.prototype._detachPositioningHandler=function(n,i){var o="scroll.select2."+i.id,r="resize.select2."+i.id,s="orientationchange.select2."+i.id;this.$container.parents().filter(t.hasScroll).off(o),e(window).off(o+" "+r+" "+s)},n.prototype._positionDropdown=function(){var t=e(window),n=this.$dropdown.hasClass("select2-dropdown--above"),i=this.$dropdown.hasClass("select2-dropdown--below"),o=null,r=this.$container.offset();r.bottom=r.top+this.$container.outerHeight(!1);var s={height:this.$container.outerHeight(!1)};s.top=r.top,s.bottom=r.top+s.height;var a=this.$dropdown.outerHeight(!1),l=t.scrollTop(),c=t.scrollTop()+t.height(),u=l<r.top-a,d=c>r.bottom+a,p={left:r.left,top:s.bottom},h=this.$dropdownParent;"static"===h.css("position")&&(h=h.offsetParent());var f=h.offset();p.top-=f.top,p.left-=f.left,n||i||(o="below"),d||!u||n?!u&&d&&n&&(o="below"):o="above",("above"==o||n&&"below"!==o)&&(p.top=s.top-f.top-a),null!=o&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+o),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+o)),this.$dropdownContainer.css(p)},n.prototype._resizeDropdown=function(){var e={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(e.minWidth=e.width,e.position="relative",e.width="auto"),this.$dropdown.css(e)},n.prototype._showDropdown=function(e){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},n}),t.define("select2/dropdown/minimumResultsForSearch",[],function(){function e(e,t,n,i){this.minimumResultsForSearch=n.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),e.call(this,t,n,i)}return e.prototype.showSearch=function(e,t){return!(function e(t){for(var n=0,i=0;i<t.length;i++){var o=t[i];o.children?n+=e(o.children):n++}return n}(t.data.results)<this.minimumResultsForSearch)&&e.call(this,t)},e}),t.define("select2/dropdown/selectOnClose",[],function(){function e(){}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("close",function(e){i._handleSelectOnClose(e)})},e.prototype._handleSelectOnClose=function(e,t){if(t&&null!=t.originalSelect2Event){var n=t.originalSelect2Event;if("select"===n._type||"unselect"===n._type)return}var i=this.getHighlightedResults();if(!(i.length<1)){var o=i.data("data");null!=o.element&&o.element.selected||null==o.element&&o.selected||this.trigger("select",{data:o})}},e}),t.define("select2/dropdown/closeOnSelect",[],function(){function e(){}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("select",function(e){i._selectTriggered(e)}),t.on("unselect",function(e){i._selectTriggered(e)})},e.prototype._selectTriggered=function(e,t){var n=t.originalEvent;n&&n.ctrlKey||this.trigger("close",{originalEvent:n,originalSelect2Event:t})},e}),t.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return 1!=t&&(n+="s"),n},inputTooShort:function(e){return"Please enter "+(e.minimum-e.input.length)+" or more characters"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return 1!=e.maximum&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),t.define("select2/defaults",["jquery","require","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./i18n/en"],function(e,t,n,i,o,r,s,a,l,c,u,d,p,h,f,g,m,v,y,w,_,$,b,x,A,C,S,E,O){function T(){this.reset()}return T.prototype.apply=function(d){if(null==(d=e.extend(!0,{},this.defaults,d)).dataAdapter){if(null!=d.ajax?d.dataAdapter=f:null!=d.data?d.dataAdapter=h:d.dataAdapter=p,d.minimumInputLength>0&&(d.dataAdapter=c.Decorate(d.dataAdapter,v)),d.maximumInputLength>0&&(d.dataAdapter=c.Decorate(d.dataAdapter,y)),d.maximumSelectionLength>0&&(d.dataAdapter=c.Decorate(d.dataAdapter,w)),d.tags&&(d.dataAdapter=c.Decorate(d.dataAdapter,g)),null==d.tokenSeparators&&null==d.tokenizer||(d.dataAdapter=c.Decorate(d.dataAdapter,m)),null!=d.query){var O=t(d.amdBase+"compat/query");d.dataAdapter=c.Decorate(d.dataAdapter,O)}if(null!=d.initSelection){var T=t(d.amdBase+"compat/initSelection");d.dataAdapter=c.Decorate(d.dataAdapter,T)}}if(null==d.resultsAdapter&&(d.resultsAdapter=n,null!=d.ajax&&(d.resultsAdapter=c.Decorate(d.resultsAdapter,x)),null!=d.placeholder&&(d.resultsAdapter=c.Decorate(d.resultsAdapter,b)),d.selectOnClose&&(d.resultsAdapter=c.Decorate(d.resultsAdapter,S))),null==d.dropdownAdapter){if(d.multiple)d.dropdownAdapter=_;else{var D=c.Decorate(_,$);d.dropdownAdapter=D}if(0!==d.minimumResultsForSearch&&(d.dropdownAdapter=c.Decorate(d.dropdownAdapter,C)),d.closeOnSelect&&(d.dropdownAdapter=c.Decorate(d.dropdownAdapter,E)),null!=d.dropdownCssClass||null!=d.dropdownCss||null!=d.adaptDropdownCssClass){var q=t(d.amdBase+"compat/dropdownCss");d.dropdownAdapter=c.Decorate(d.dropdownAdapter,q)}d.dropdownAdapter=c.Decorate(d.dropdownAdapter,A)}if(null==d.selectionAdapter){if(d.multiple?d.selectionAdapter=o:d.selectionAdapter=i,null!=d.placeholder&&(d.selectionAdapter=c.Decorate(d.selectionAdapter,r)),d.allowClear&&(d.selectionAdapter=c.Decorate(d.selectionAdapter,s)),d.multiple&&(d.selectionAdapter=c.Decorate(d.selectionAdapter,a)),null!=d.containerCssClass||null!=d.containerCss||null!=d.adaptContainerCssClass){var j=t(d.amdBase+"compat/containerCss");d.selectionAdapter=c.Decorate(d.selectionAdapter,j)}d.selectionAdapter=c.Decorate(d.selectionAdapter,l)}if("string"==typeof d.language)if(d.language.indexOf("-")>0){var L=d.language.split("-")[0];d.language=[d.language,L]}else d.language=[d.language];if(Array.isArray(d.language)){var k=new u;d.language.push("en");for(var P=d.language,I=0;I<P.length;I++){var M=P[I],R={};try{R=u.loadPath(M)}catch(e){try{M=this.defaults.amdLanguageBase+M,R=u.loadPath(M)}catch(e){d.debug&&window.console&&console.warn&&console.warn('Select2: The language file for "'+M+'" could not be automatically loaded. A fallback will be used instead.');continue}}k.extend(R)}d.translations=k}else{var z=u.loadPath(this.defaults.amdLanguageBase+"en"),H=new u(d.language);H.extend(z),d.translations=H}return d},T.prototype.reset=function(){function t(e){return e.replace(/[^\u0000-\u007E]/g,function(e){return d[e]||e})}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:c.escapeMarkup,language:O,matcher:function n(i,o){if("string"!=typeof i.term||""===i.term.trim())return o;if(o.children&&o.children.length>0){for(var r=e.extend(!0,{},o),s=o.children.length-1;s>=0;s--)null==n(i,o.children[s])&&r.children.splice(s,1);return r.children.length>0?r:n(i,r)}var a=t(o.text).toUpperCase(),l=t(i.term).toUpperCase();return a.indexOf(l)>-1?o:null},minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(e){return e},templateResult:function(e){return e.text},templateSelection:function(e){return e.text},theme:"default",width:"resolve"}},T.prototype.set=function(t,n){var i={};i[e.camelCase(t)]=n;var o=c._convertData(i);e.extend(this.defaults,o)},new T}),t.define("select2/options",["require","jquery","./defaults","./utils"],function(e,t,n,i){function o(t,o){if(this.options=t,null!=o&&this.fromElement(o),this.options=n.apply(this.options),o&&o.is("input")){var r=e(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=i.Decorate(this.options.dataAdapter,r)}}return o.prototype.fromElement=function(e){var n=["select2"];null==this.options.multiple&&(this.options.multiple=e.prop("multiple")),null==this.options.disabled&&(this.options.disabled=e.prop("disabled")),null==this.options.language&&(e.prop("lang")?this.options.language=e.prop("lang").toLowerCase():e.closest("[lang]").prop("lang")&&(this.options.language=e.closest("[lang]").prop("lang"))),null==this.options.dir&&(e.prop("dir")?this.options.dir=e.prop("dir"):e.closest("[dir]").prop("dir")?this.options.dir=e.closest("[dir]").prop("dir"):this.options.dir="ltr"),e.prop("disabled",this.options.disabled),e.prop("multiple",this.options.multiple),e.data("select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),e.data("data",e.data("select2Tags")),e.data("tags",!0)),e.data("ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),e.attr("ajax--url",e.data("ajaxUrl")),e.data("ajax--url",e.data("ajaxUrl")));var o={};o=t.fn.jquery&&"1."==t.fn.jquery.substr(0,2)&&e[0].dataset?t.extend(!0,{},e[0].dataset,e.data()):e.data();var r=t.extend(!0,{},o);for(var s in r=i._convertData(r))t.inArray(s,n)>-1||(t.isPlainObject(this.options[s])?t.extend(this.options[s],r[s]):this.options[s]=r[s]);return this},o.prototype.get=function(e){return this.options[e]},o.prototype.set=function(e,t){this.options[e]=t},o}),t.define("select2/core",["jquery","./options","./utils","./keys"],function(e,t,n,i){var o=function(e,n){null!=e.data("select2")&&e.data("select2").destroy(),this.$element=e,this.id=this._generateId(e),n=n||{},this.options=new t(n,e),o.__super__.constructor.call(this);var i=e.attr("tabindex")||0;e.data("old-tabindex",i),e.attr("tabindex","-1");var r=this.options.get("dataAdapter");this.dataAdapter=new r(e,this.options);var s=this.render();this._placeContainer(s);var a=this.options.get("selectionAdapter");this.selection=new a(e,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,s);var l=this.options.get("dropdownAdapter");this.dropdown=new l(e,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,s);var c=this.options.get("resultsAdapter");this.results=new c(e,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var u=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(e){u.trigger("selection:update",{data:e})}),e.addClass("select2-hidden-accessible"),e.attr("aria-hidden","true"),this._syncAttributes(),e.data("select2",this)};return n.Extend(o,n.Observable),o.prototype._generateId=function(e){return"select2-"+(null!=e.attr("id")?e.attr("id"):null!=e.attr("name")?e.attr("name")+"-"+n.generateChars(2):n.generateChars(4)).replace(/(:|\.|\[|\]|,)/g,"")},o.prototype._placeContainer=function(e){e.insertAfter(this.$element);var t=this._resolveWidth(this.$element,this.options.get("width"));null!=t&&e.css("width",t)},o.prototype._resolveWidth=function(e,t){var n=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==t){var i=this._resolveWidth(e,"style");return null!=i?i:this._resolveWidth(e,"element")}if("element"==t){var o=e.outerWidth(!1);return o<=0?"auto":o+"px"}if("style"==t){var r=e.attr("style");if("string"!=typeof r)return null;for(var s=r.split(";"),a=0,l=s.length;a<l;a+=1){var c=s[a].replace(/\s/g,"").match(n);if(null!==c&&c.length>=1)return c[1]}return null}return t},o.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},o.prototype._registerDomEvents=function(){var t=this;this.$element.on("change.select2",function(){t.dataAdapter.current(function(e){t.trigger("selection:update",{data:e})})}),this.$element.on("focus.select2",function(e){t.trigger("focus",e)}),this._syncA=n.bind(this._syncAttributes,this),this._syncS=n.bind(this._syncSubtree,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._syncA);var i=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=i?(this._observer=new i(function(n){e.each(n,t._syncA),e.each(n,t._syncS)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})):this.$element[0].addEventListener&&(this.$element[0].addEventListener("DOMAttrModified",t._syncA,!1),this.$element[0].addEventListener("DOMNodeInserted",t._syncS,!1),this.$element[0].addEventListener("DOMNodeRemoved",t._syncS,!1))},o.prototype._registerDataEvents=function(){var e=this;this.dataAdapter.on("*",function(t,n){e.trigger(t,n)})},o.prototype._registerSelectionEvents=function(){var t=this,n=["toggle","focus"];this.selection.on("toggle",function(){t.toggleDropdown()}),this.selection.on("focus",function(e){t.focus(e)}),this.selection.on("*",function(i,o){-1===e.inArray(i,n)&&t.trigger(i,o)})},o.prototype._registerDropdownEvents=function(){var e=this;this.dropdown.on("*",function(t,n){e.trigger(t,n)})},o.prototype._registerResultsEvents=function(){var e=this;this.results.on("*",function(t,n){e.trigger(t,n)})},o.prototype._registerEvents=function(){var t=this;this.on("open",function(){t.$container.addClass("select2-container--open")}),this.on("close",function(){t.$container.removeClass("select2-container--open")}),this.on("enable",function(){t.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){t.$container.addClass("select2-container--disabled")}),this.on("blur",function(){t.$container.removeClass("select2-container--focus")}),this.on("query",function(e){t.isOpen()||t.trigger("open",{}),this.dataAdapter.query(e,function(n){t.trigger("results:all",{data:n,query:e})})}),this.on("query:append",function(e){this.dataAdapter.query(e,function(n){t.trigger("results:append",{data:n,query:e})})}),this.on("open",function(){setTimeout(function(){t.focusOnActiveElement()},1)}),e(document).on("keydown",function(e){var n=e.which;if(t.isOpen()){n===i.ESC||n===i.TAB||n===i.UP&&e.altKey?(t.close(),e.preventDefault()):n===i.ENTER?(t.trigger("results:select",{}),e.preventDefault()):n===i.SPACE&&e.ctrlKey?(t.trigger("results:toggle",{}),e.preventDefault()):n===i.UP?(t.trigger("results:previous",{}),e.preventDefault()):n===i.DOWN&&(t.trigger("results:next",{}),e.preventDefault());var o=t.$dropdown.find(".select2-search__field");o.length||(o=t.$container.find(".select2-search__field")),n===i.DOWN||n===i.UP?t.focusOnActiveElement():(o.trigger("focus"),setTimeout(function(){t.focusOnActiveElement()},1e3))}else t.hasFocus()&&(n!==i.ENTER&&n!==i.SPACE&&n!==i.DOWN||(t.open(),e.preventDefault()))})},o.prototype.focusOnActiveElement=function(){this.isOpen()&&!n.isTouchscreen()&&this.$results.find("li.select2-results__option--highlighted").trigger("focus")},o.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},o.prototype._syncSubtree=function(e,t){var n=!1,i=this;if(!e||!e.target||"OPTION"===e.target.nodeName||"OPTGROUP"===e.target.nodeName){if(t)if(t.addedNodes&&t.addedNodes.length>0)for(var o=0;o<t.addedNodes.length;o++){t.addedNodes[o].selected&&(n=!0)}else t.removedNodes&&t.removedNodes.length>0&&(n=!0);else n=!0;n&&this.dataAdapter.current(function(e){i.trigger("selection:update",{data:e})})}},o.prototype.trigger=function(e,t){var n=o.__super__.trigger,i={open:"opening",close:"closing",select:"selecting",unselect:"unselecting"};if(void 0===t&&(t={}),e in i){var r=i[e],s={prevented:!1,name:e,args:t};if(n.call(this,r,s),s.prevented)return void(t.prevented=!0)}n.call(this,e,t)},o.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},o.prototype.open=function(){this.isOpen()||this.trigger("query",{})},o.prototype.close=function(){this.isOpen()&&this.trigger("close",{})},o.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},o.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},o.prototype.focus=function(e){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},o.prototype.enable=function(e){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),null!=e&&0!==e.length||(e=[!0]);var t=!e[0];this.$element.prop("disabled",t)},o.prototype.data=function(){this.options.get("debug")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var e=[];return this.dataAdapter.current(function(t){e=t}),e},o.prototype.val=function(t){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==t||0===t.length)return this.$element.val();var n=t[0];Array.isArray(n)&&(n=e.map(n,function(e){return e.toString()})),this.$element.val(n).trigger("change")},o.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._syncA),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&(this.$element[0].removeEventListener("DOMAttrModified",this._syncA,!1),this.$element[0].removeEventListener("DOMNodeInserted",this._syncS,!1),this.$element[0].removeEventListener("DOMNodeRemoved",this._syncS,!1)),this._syncA=null,this._syncS=null,this.$element.off(".select2"),this.$element.attr("tabindex",this.$element.data("old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},o.prototype.render=function(){var t=e('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return t.attr("dir",this.options.get("dir")),this.$container=t,this.$container.addClass("select2-container--"+this.options.get("theme")),t.data("element",this.$element),t},o}),t.define("select2/compat/utils",["jquery"],function(e){return{syncCssClasses:function(t,n,i){var o,r,s=[];(o=t.attr("class").trim())&&e((o=""+o).split(/\s+/)).each(function(){0===this.indexOf("select2-")&&s.push(this)}),(o=n.attr("class").trim())&&e((o=""+o).split(/\s+/)).each(function(){0!==this.indexOf("select2-")&&null!=(r=i(this))&&s.push(r)}),t.attr("class",s.join(" "))}}}),t.define("select2/compat/containerCss",["jquery","./utils"],function(e,t){function n(e){return null}function i(){}return i.prototype.render=function(e){var i=e.call(this),o=this.options.get("containerCssClass")||"";"function"==typeof o&&(o=o(this.$element));var r=this.options.get("adaptContainerCssClass");if(r=r||n,-1!==o.indexOf(":all:")){o=o.replace(":all:","");var s=r;r=function(e){var t=s(e);return null!=t?t+" "+e:e}}var a=this.options.get("containerCss")||{};return"function"==typeof a&&(a=a(this.$element)),t.syncCssClasses(i,this.$element,r),i.css(a),i.addClass(o),i},i}),t.define("select2/compat/dropdownCss",["jquery","./utils"],function(e,t){function n(e){return null}function i(){}return i.prototype.render=function(e){var i=e.call(this),o=this.options.get("dropdownCssClass")||"";"function"==typeof o&&(o=o(this.$element));var r=this.options.get("adaptDropdownCssClass");if(r=r||n,-1!==o.indexOf(":all:")){o=o.replace(":all:","");var s=r;r=function(e){var t=s(e);return null!=t?t+" "+e:e}}var a=this.options.get("dropdownCss")||{};return"function"==typeof a&&(a=a(this.$element)),t.syncCssClasses(i,this.$element,r),i.css(a),i.addClass(o),i},i}),t.define("select2/compat/initSelection",["jquery"],function(e){function t(e,t,n){n.get("debug")&&window.console&&console.warn&&console.warn("Select2: The `initSelection` option has been deprecated in favor of a custom data adapter that overrides the `current` method. This method is now called multiple times instead of a single time when the instance is initialized. Support will be removed for the `initSelection` option in future versions of Select2"),this.initSelection=n.get("initSelection"),this._isInitialized=!1,e.call(this,t,n)}return t.prototype.current=function(e,t){var n=this;this._isInitialized?e.call(this,t):this.initSelection.call(null,this.$element,function(e){n._isInitialized=!0,Array.isArray(e)||(e=[e]),t(e)})},t}),t.define("select2/compat/inputData",["jquery"],function(e){function t(e,t,n){this._currentData=[],this._valueSeparator=n.get("valueSeparator")||",","hidden"===t.prop("type")&&n.get("debug")&&console&&console.warn&&console.warn("Select2: Using a hidden input with Select2 is no longer supported and may stop working in the future. It is recommended to use a `<select>` element instead."),e.call(this,t,n)}return t.prototype.current=function(t,n){function i(t,n){var o=[];return t.selected||-1!==e.inArray(t.id,n)?(t.selected=!0,o.push(t)):t.selected=!1,t.children&&o.push.apply(o,i(t.children,n)),o}for(var o=[],r=0;r<this._currentData.length;r++){var s=this._currentData[r];o.push.apply(o,i(s,this.$element.val().split(this._valueSeparator)))}n(o)},t.prototype.select=function(t,n){if(this.options.get("multiple")){var i=this.$element.val();i+=this._valueSeparator+n.id,this.$element.val(i),this.$element.trigger("change")}else this.current(function(t){e.map(t,function(e){e.selected=!1})}),this.$element.val(n.id),this.$element.trigger("change")},t.prototype.unselect=function(e,t){var n=this;t.selected=!1,this.current(function(e){for(var i=[],o=0;o<e.length;o++){var r=e[o];t.id!=r.id&&i.push(r.id)}n.$element.val(i.join(n._valueSeparator)),n.$element.trigger("change")})},t.prototype.query=function(e,t,n){for(var i=[],o=0;o<this._currentData.length;o++){var r=this._currentData[o],s=this.matches(t,r);null!==s&&i.push(s)}n({results:i})},t.prototype.addOptions=function(t,n){var i=e.map(n,function(t){return e.data(t[0],"data")});this._currentData.push.apply(this._currentData,i)},t}),t.define("select2/compat/matcher",["jquery"],function(e){return function(t){return function(n,i){var o=e.extend(!0,{},i);if(null==n.term||""===n.term.trim())return o;if(i.children){for(var r=i.children.length-1;r>=0;r--){var s=i.children[r];t(n.term,s.text,s)||o.children.splice(r,1)}if(o.children.length>0)return o}return t(n.term,i.text,i)?o:null}}}),t.define("select2/compat/query",[],function(){function e(e,t,n){n.get("debug")&&window.console&&console.warn&&console.warn("Select2: The `query` option has been deprecated in favor of a custom data adapter that overrides the `query` method. Support will be removed for the `query` option in future versions of Select2."),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.callback=n,this.options.get("query").call(null,t)},e}),t.define("select2/dropdown/attachContainer",[],function(){function e(e,t,n){e.call(this,t,n)}return e.prototype.position=function(e,t,n){n.find(".dropdown-wrapper").append(t),t.addClass("select2-dropdown--below"),n.addClass("select2-container--below")},e}),t.define("select2/dropdown/stopPropagation",[],function(){function e(){}return e.prototype.bind=function(e,t,n){e.call(this,t,n);this.$dropdown.on(["blur","change","click","dblclick","focus","focusin","focusout","input","keydown","keyup","keypress","mousedown","mouseenter","mouseleave","mousemove","mouseover","mouseup","search","touchend","touchstart"].join(" "),function(e){e.stopPropagation()})},e}),t.define("select2/selection/stopPropagation",[],function(){function e(){}return e.prototype.bind=function(e,t,n){e.call(this,t,n);this.$selection.on(["blur","change","click","dblclick","focus","focusin","focusout","input","keydown","keyup","keypress","mousedown","mouseenter","mouseleave","mousemove","mouseover","mouseup","search","touchend","touchstart"].join(" "),function(e){e.stopPropagation()})},e}),r=function(e){var t,n,i=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],o="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],r=Array.prototype.slice;if(e.event.fixHooks)for(var s=i.length;s;)e.event.fixHooks[i[--s]]=e.event.mouseHooks;var a=e.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var t=o.length;t;)this.addEventListener(o[--t],l,!1);else this.onmousewheel=l;e.data(this,"mousewheel-line-height",a.getLineHeight(this)),e.data(this,"mousewheel-page-height",a.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var t=o.length;t;)this.removeEventListener(o[--t],l,!1);else this.onmousewheel=null;e.removeData(this,"mousewheel-line-height"),e.removeData(this,"mousewheel-page-height")},getLineHeight:function(t){var n=e(t),i=n["offsetParent"in e.fn?"offsetParent":"parent"]();return i.length||(i=e("body")),parseInt(i.css("fontSize"),10)||parseInt(n.css("fontSize"),10)||16},getPageHeight:function(t){return e(t).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};function l(i){var o,s=i||window.event,l=r.call(arguments,1),d=0,p=0,h=0,f=0,g=0;if((i=e.event.fix(s)).type="mousewheel","detail"in s&&(h=-1*s.detail),"wheelDelta"in s&&(h=s.wheelDelta),"wheelDeltaY"in s&&(h=s.wheelDeltaY),"wheelDeltaX"in s&&(p=-1*s.wheelDeltaX),"axis"in s&&s.axis===s.HORIZONTAL_AXIS&&(p=-1*h,h=0),d=0===h?p:h,"deltaY"in s&&(d=h=-1*s.deltaY),"deltaX"in s&&(p=s.deltaX,0===h&&(d=-1*p)),0!==h||0!==p){if(1===s.deltaMode){var m=e.data(this,"mousewheel-line-height");d*=m,h*=m,p*=m}else if(2===s.deltaMode){var v=e.data(this,"mousewheel-page-height");d*=v,h*=v,p*=v}if(o=Math.max(Math.abs(h),Math.abs(p)),(!n||o<n)&&(n=o,u(s,o)&&(n/=40)),u(s,o)&&(d/=40,p/=40,h/=40),d=Math[d>=1?"floor":"ceil"](d/n),p=Math[p>=1?"floor":"ceil"](p/n),h=Math[h>=1?"floor":"ceil"](h/n),a.settings.normalizeOffset&&this.getBoundingClientRect){var y=this.getBoundingClientRect();f=i.clientX-y.left,g=i.clientY-y.top}return i.deltaX=p,i.deltaY=h,i.deltaFactor=n,i.offsetX=f,i.offsetY=g,i.deltaMode=0,l.unshift(i,d,p,h),t&&clearTimeout(t),t=setTimeout(c,200),(e.event.dispatch||e.event.handle).apply(this,l)}}function c(){n=null}function u(e,t){return a.settings.adjustOldDeltas&&"mousewheel"===e.type&&t%120==0}e.fn.extend({mousewheel:function(e){return e?this.bind("mousewheel",e):this.trigger("mousewheel")},unmousewheel:function(e){return this.unbind("mousewheel",e)}})},"function"==typeof t.define&&t.define.amd?t.define("jquery-mousewheel",["jquery"],r):"object"==typeof exports?module.exports=r:r(e),t.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults"],function(e,t,n,i){if(null==e.fn.select2TEC){var o=["open","close","destroy"];e.fn.select2TEC=function(t){if("object"==typeof(t=t||{}))return this.each(function(){var i=e.extend(!0,{},t);new n(e(this),i)}),this;if("string"==typeof t){var i,r=Array.prototype.slice.call(arguments,1);return this.each(function(){var n=e(this).data("select2");null==n&&window.console&&console.error&&console.error("The select2('"+t+"') method was called on an element that is not using Select2."),i=n[t].apply(n,r)}),e.inArray(t,o)>-1?this:i}throw new Error("Invalid arguments for Select2: "+t)}}return null!=e.fn.select2&&null!=e.fn.select2.defaults&&(e.fn.select2TEC.defaults=e.fn.select2.defaults),null==e.fn.select2TEC.defaults&&(e.fn.select2TEC.defaults=i),e.fn.select2=e.fn.select2||e.fn.select2TEC,n}),{define:t.define,require:t.require}}(),n=t.require("jquery.select2");return e.fn.select2.amd=t,e.fn.select2TEC.amd=t,n});
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * SelectWoo 1.0.1
3
+ * https://github.com/woocommerce/selectWoo
4
+ *
5
+ * Released under the MIT license
6
+ * https://github.com/woocommerce/selectWoo/blob/master/LICENSE.md
7
+ */
8
+ !function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&module.exports?module.exports=function(t,n){return void 0===n&&(n="undefined"!=typeof window?require("jquery"):require("jquery")(t)),e(n),n}:e(jQuery)}(function(e){var t=function(){if(e&&e.fn&&e.fn.select2&&e.fn.select2.amd)var t=e.fn.select2.amd;var n,i,o,r;return t&&t.requirejs||(t?i=t:t={},function(e){var t,r,s,a,l={},c={},u={},d={},p=Object.prototype.hasOwnProperty,h=[].slice,f=/\.js$/;function g(e,t){return p.call(e,t)}function m(e,t){var n,i,o,r,s,a,l,c,d,p,h,g=t&&t.split("/"),m=u.map,v=m&&m["*"]||{};if(e){for(s=(e=e.split("/")).length-1,u.nodeIdCompat&&f.test(e[s])&&(e[s]=e[s].replace(f,"")),"."===e[0].charAt(0)&&g&&(e=g.slice(0,g.length-1).concat(e)),d=0;d<e.length;d++)if("."===(h=e[d]))e.splice(d,1),d-=1;else if(".."===h){if(0===d||1===d&&".."===e[2]||".."===e[d-1])continue;d>0&&(e.splice(d-1,2),d-=2)}e=e.join("/")}if((g||v)&&m){for(d=(n=e.split("/")).length;d>0;d-=1){if(i=n.slice(0,d).join("/"),g)for(p=g.length;p>0;p-=1)if((o=m[g.slice(0,p).join("/")])&&(o=o[i])){r=o,a=d;break}if(r)break;!l&&v&&v[i]&&(l=v[i],c=d)}!r&&l&&(r=l,a=c),r&&(n.splice(0,a,r),e=n.join("/"))}return e}function v(t,n){return function(){var i=h.call(arguments,0);return"string"!=typeof i[0]&&1===i.length&&i.push(null),r.apply(e,i.concat([t,n]))}}function y(e){return function(t){l[e]=t}}function w(n){if(g(c,n)){var i=c[n];delete c[n],d[n]=!0,t.apply(e,i)}if(!g(l,n)&&!g(d,n))throw new Error("No "+n);return l[n]}function _(e){var t,n=e?e.indexOf("!"):-1;return n>-1&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function $(e){return e?_(e):[]}s=function(e,t){var n,i,o=_(e),r=o[0],s=t[1];return e=o[1],r&&(n=w(r=m(r,s))),r?e=n&&n.normalize?n.normalize(e,(i=s,function(e){return m(e,i)})):m(e,s):(r=(o=_(e=m(e,s)))[0],e=o[1],r&&(n=w(r))),{f:r?r+"!"+e:e,n:e,pr:r,p:n}},a={require:function(e){return v(e)},exports:function(e){var t=l[e];return void 0!==t?t:l[e]={}},module:function(e){return{id:e,uri:"",exports:l[e],config:function(e){return function(){return u&&u.config&&u.config[e]||{}}}(e)}}},t=function(t,n,i,o){var r,u,p,h,f,m,_,b=[],x=typeof i;if(m=$(o=o||t),"undefined"===x||"function"===x){for(n=!n.length&&i.length?["require","exports","module"]:n,f=0;f<n.length;f+=1)if("require"===(u=(h=s(n[f],m)).f))b[f]=a.require(t);else if("exports"===u)b[f]=a.exports(t),_=!0;else if("module"===u)r=b[f]=a.module(t);else if(g(l,u)||g(c,u)||g(d,u))b[f]=w(u);else{if(!h.p)throw new Error(t+" missing "+u);h.p.load(h.n,v(o,!0),y(u),{}),b[f]=l[u]}p=i?i.apply(l[t],b):void 0,t&&(r&&r.exports!==e&&r.exports!==l[t]?l[t]=r.exports:p===e&&_||(l[t]=p))}else t&&(l[t]=i)},n=i=r=function(n,i,o,l,c){if("string"==typeof n)return a[n]?a[n](i):w(s(n,$(i)).f);if(!n.splice){if((u=n).deps&&r(u.deps,u.callback),!i)return;i.splice?(n=i,i=o,o=null):n=e}return i=i||function(){},"function"==typeof o&&(o=l,l=c),l?t(e,n,i,o):setTimeout(function(){t(e,n,i,o)},4),r},r.config=function(e){return r(e)},n._defined=l,(o=function(e,t,n){if("string"!=typeof e)throw new Error("See almond README: incorrect module build, no module name");t.splice||(n=t,t=[]),g(l,e)||g(c,e)||(c[e]=[e,t,n])}).amd={jQuery:!0}}(),t.requirejs=n,t.require=i,t.define=o),t.define("almond",function(){}),t.define("jquery",[],function(){var t=e||$;return null==t&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),t}),t.define("select2/utils",["jquery"],function(e){var t={};function n(e){var t=e.prototype,n=[];for(var i in t){"function"==typeof t[i]&&("constructor"!==i&&n.push(i))}return n}t.Extend=function(e,t){var n={}.hasOwnProperty;function i(){this.constructor=e}for(var o in t)n.call(t,o)&&(e[o]=t[o]);return i.prototype=t.prototype,e.prototype=new i,e.__super__=t.prototype,e},t.Decorate=function(e,t){var i=n(t),o=n(e);function r(){var n=Array.prototype.unshift,i=t.prototype.constructor.length,o=e.prototype.constructor;i>0&&(n.call(arguments,e.prototype.constructor),o=t.prototype.constructor),o.apply(this,arguments)}t.displayName=e.displayName,r.prototype=new function(){this.constructor=r};for(var s=0;s<o.length;s++){var a=o[s];r.prototype[a]=e.prototype[a]}for(var l=function(e){var n=function(){};e in r.prototype&&(n=r.prototype[e]);var i=t.prototype[e];return function(){return Array.prototype.unshift.call(arguments,n),i.apply(this,arguments)}},c=0;c<i.length;c++){var u=i[c];r.prototype[u]=l(u)}return r};var i=function(){this.listeners={}};return i.prototype.on=function(e,t){this.listeners=this.listeners||{},e in this.listeners?this.listeners[e].push(t):this.listeners[e]=[t]},i.prototype.trigger=function(e){var t=Array.prototype.slice,n=t.call(arguments,1);this.listeners=this.listeners||{},null==n&&(n=[]),0===n.length&&n.push({}),n[0]._type=e,e in this.listeners&&this.invoke(this.listeners[e],t.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},i.prototype.invoke=function(e,t){for(var n=0,i=e.length;n<i;n++)e[n].apply(this,t)},t.Observable=i,t.generateChars=function(e){for(var t="",n=0;n<e;n++){t+=Math.floor(36*Math.random()).toString(36)}return t},t.bind=function(e,t){return function(){e.apply(t,arguments)}},t._convertData=function(e){for(var t in e){var n=t.split("-"),i=e;if(1!==n.length){for(var o=0;o<n.length;o++){var r=n[o];(r=r.substring(0,1).toLowerCase()+r.substring(1))in i||(i[r]={}),o==n.length-1&&(i[r]=e[t]),i=i[r]}delete e[t]}}return e},t.hasScroll=function(t,n){var i=e(n),o=n.style.overflowX,r=n.style.overflowY;return(o!==r||"hidden"!==r&&"visible"!==r)&&("scroll"===o||"scroll"===r||(i.innerHeight()<n.scrollHeight||i.innerWidth()<n.scrollWidth))},t.escapeMarkup=function(e){var t={"\\":"&#92;","&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#47;"};return"string"!=typeof e?e:String(e).replace(/[&<>"'\/\\]/g,function(e){return t[e]})},t.appendMany=function(t,n){if("1.7"===e.fn.jquery.substr(0,3)){var i=e();e.map(n,function(e){i=i.add(e)}),n=i}t.append(n)},t.isTouchscreen=function(){return void 0===t._isTouchscreenCache&&(t._isTouchscreenCache="ontouchstart"in document.documentElement),t._isTouchscreenCache},t}),t.define("select2/results",["jquery","./utils"],function(e,t){function n(e,t,i){this.$element=e,this.data=i,this.options=t,n.__super__.constructor.call(this)}return t.Extend(n,t.Observable),n.prototype.render=function(){var t=e('<ul class="select2-results__options" role="listbox" tabindex="-1"></ul>');return this.options.get("multiple")&&t.attr("aria-multiselectable","true"),this.$results=t,t},n.prototype.clear=function(){this.$results.empty()},n.prototype.displayMessage=function(t){var n=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var i=e('<li role="alert" aria-live="assertive" class="select2-results__option"></li>'),o=this.options.get("translations").get(t.message);i.append(n(o(t.args))),i[0].className+=" select2-results__message",this.$results.append(i)},n.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},n.prototype.append=function(e){this.hideLoading();var t=[];if(null!=e.results&&0!==e.results.length){e.results=this.sort(e.results);for(var n=0;n<e.results.length;n++){var i=e.results[n],o=this.option(i);t.push(o)}this.$results.append(t)}else 0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"})},n.prototype.position=function(e,t){t.find(".select2-results").append(e)},n.prototype.sort=function(e){return this.options.get("sorter")(e)},n.prototype.highlightFirstItem=function(){var e=this.$results.find(".select2-results__option[data-selected]"),t=e.filter("[data-selected=true]");t.length>0?t.first().trigger("mouseenter"):e.first().trigger("mouseenter"),this.ensureHighlightVisible()},n.prototype.setClasses=function(){var t=this;this.data.current(function(n){var i=e.map(n,function(e){return e.id.toString()});t.$results.find(".select2-results__option[data-selected]").each(function(){var t=e(this),n=e.data(this,"data"),o=""+n.id;null!=n.element&&n.element.selected||null==n.element&&e.inArray(o,i)>-1?t.attr("data-selected","true"):t.attr("data-selected","false")})})},n.prototype.showLoading=function(e){this.hideLoading();var t={disabled:!0,loading:!0,text:this.options.get("translations").get("searching")(e)},n=this.option(t);n.className+=" loading-results",this.$results.prepend(n)},n.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},n.prototype.option=function(t){var n=document.createElement("li");n.className="select2-results__option";var i={role:"option","data-selected":"false",tabindex:-1};for(var o in t.disabled&&(delete i["data-selected"],i["aria-disabled"]="true"),null==t.id&&delete i["data-selected"],null!=t._resultId&&(n.id=t._resultId),t.title&&(n.title=t.title),t.children&&(i["aria-label"]=t.text,delete i["data-selected"]),i){var r=i[o];n.setAttribute(o,r)}if(t.children){var s=e(n),a=document.createElement("strong");a.className="select2-results__group";var l=e(a);this.template(t,a),l.attr("role","presentation");for(var c=[],u=0;u<t.children.length;u++){var d=t.children[u],p=this.option(d);c.push(p)}var h=e("<ul></ul>",{class:"select2-results__options select2-results__options--nested",role:"listbox"});h.append(c),s.attr("role","list"),s.append(a),s.append(h)}else this.template(t,n);return e.data(n,"data",t),n},n.prototype.bind=function(t,n){var i=this,o=t.id+"-results";this.$results.attr("id",o),t.on("results:all",function(e){i.clear(),i.append(e.data),t.isOpen()&&(i.setClasses(),i.highlightFirstItem())}),t.on("results:append",function(e){i.append(e.data),t.isOpen()&&i.setClasses()}),t.on("query",function(e){i.hideMessages(),i.showLoading(e)}),t.on("select",function(){t.isOpen()&&(i.setClasses(),i.highlightFirstItem())}),t.on("unselect",function(){t.isOpen()&&(i.setClasses(),i.highlightFirstItem())}),t.on("open",function(){i.$results.attr("aria-expanded","true"),i.$results.attr("aria-hidden","false"),i.setClasses(),i.ensureHighlightVisible()}),t.on("close",function(){i.$results.attr("aria-expanded","false"),i.$results.attr("aria-hidden","true"),i.$results.removeAttr("aria-activedescendant")}),t.on("results:toggle",function(){var e=i.getHighlightedResults();0!==e.length&&e.trigger("mouseup")}),t.on("results:select",function(){var e=i.getHighlightedResults();if(0!==e.length){var t=e.data("data");"true"==e.attr("data-selected")?i.trigger("close",{}):i.trigger("select",{data:t})}}),t.on("results:previous",function(){var e=i.getHighlightedResults(),t=i.$results.find("[data-selected]"),n=t.index(e);if(0!==n){var o=n-1;0===e.length&&(o=0);var r=t.eq(o);r.trigger("mouseenter");var s=i.$results.offset().top,a=r.offset().top,l=i.$results.scrollTop()+(a-s);0===o?i.$results.scrollTop(0):a-s<0&&i.$results.scrollTop(l)}}),t.on("results:next",function(){var e=i.getHighlightedResults(),t=i.$results.find("[data-selected]"),n=t.index(e)+1;if(!(n>=t.length)){var o=t.eq(n);o.trigger("mouseenter");var r=i.$results.offset().top+i.$results.outerHeight(!1),s=o.offset().top+o.outerHeight(!1),a=i.$results.scrollTop()+s-r;0===n?i.$results.scrollTop(0):s>r&&i.$results.scrollTop(a)}}),t.on("results:focus",function(e){e.element.addClass("select2-results__option--highlighted").attr("aria-selected","true"),i.$results.attr("aria-activedescendant",e.element.attr("id"))}),t.on("results:message",function(e){i.displayMessage(e)}),e.fn.mousewheel&&this.$results.on("mousewheel",function(e){var t=i.$results.scrollTop(),n=i.$results.get(0).scrollHeight-t+e.deltaY,o=e.deltaY>0&&t-e.deltaY<=0,r=e.deltaY<0&&n<=i.$results.height();o?(i.$results.scrollTop(0),e.preventDefault(),e.stopPropagation()):r&&(i.$results.scrollTop(i.$results.get(0).scrollHeight-i.$results.height()),e.preventDefault(),e.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[data-selected]",function(t){var n=e(this),o=n.data("data");"true"!==n.attr("data-selected")?i.trigger("select",{originalEvent:t,data:o}):i.options.get("multiple")?i.trigger("unselect",{originalEvent:t,data:o}):i.trigger("close",{})}),this.$results.on("mouseenter",".select2-results__option[data-selected]",function(t){var n=e(this).data("data");i.getHighlightedResults().removeClass("select2-results__option--highlighted").attr("aria-selected","false"),i.trigger("results:focus",{data:n,element:e(this)})})},n.prototype.getHighlightedResults=function(){return this.$results.find(".select2-results__option--highlighted")},n.prototype.destroy=function(){this.$results.remove()},n.prototype.ensureHighlightVisible=function(){var e=this.getHighlightedResults();if(0!==e.length){var t=this.$results.find("[data-selected]").index(e),n=this.$results.offset().top,i=e.offset().top,o=this.$results.scrollTop()+(i-n),r=i-n;o-=2*e.outerHeight(!1),t<=2?this.$results.scrollTop(0):(r>this.$results.outerHeight()||r<0)&&this.$results.scrollTop(o)}},n.prototype.template=function(t,n){var i=this.options.get("templateResult"),o=this.options.get("escapeMarkup"),r=i(t,n);null==r?n.style.display="none":"string"==typeof r?n.innerHTML=o(r):e(n).append(r)},n}),t.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),t.define("select2/selection/base",["jquery","../utils","../keys"],function(e,t,n){function i(e,t){this.$element=e,this.options=t,i.__super__.constructor.call(this)}return t.Extend(i,t.Observable),i.prototype.render=function(){var t=e('<span class="select2-selection" aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=this.$element.data("old-tabindex")?this._tabindex=this.$element.data("old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),t.attr("title",this.$element.attr("title")),t.attr("tabindex",this._tabindex),this.$selection=t,t},i.prototype.bind=function(e,t){var i=this,o=(e.id,e.id+"-results");this.options.get("minimumResultsForSearch");this.container=e,this.$selection.on("focus",function(e){i.trigger("focus",e)}),this.$selection.on("blur",function(e){i._handleBlur(e)}),this.$selection.on("keydown",function(e){i.trigger("keypress",e),e.which===n.SPACE&&e.preventDefault()}),e.on("results:focus",function(e){i.$selection.attr("aria-activedescendant",e.data._resultId)}),e.on("selection:update",function(e){i.update(e.data)}),e.on("open",function(){i.$selection.attr("aria-expanded","true"),i.$selection.attr("aria-owns",o),i._attachCloseHandler(e)}),e.on("close",function(){i.$selection.attr("aria-expanded","false"),i.$selection.removeAttr("aria-activedescendant"),i.$selection.removeAttr("aria-owns"),window.setTimeout(function(){i.$selection.trigger("focus")},1),i._detachCloseHandler(e)}),e.on("enable",function(){i.$selection.attr("tabindex",i._tabindex)}),e.on("disable",function(){i.$selection.attr("tabindex","-1")})},i.prototype._handleBlur=function(t){var n=this;window.setTimeout(function(){document.activeElement==n.$selection[0]||e.contains(n.$selection[0],document.activeElement)||n.trigger("blur",t)},1)},i.prototype._attachCloseHandler=function(t){e(document.body).on("mousedown.select2."+t.id,function(t){var n=e(t.target),i=n.closest(".select2");e(".select2.select2-container--open").each(function(){var t=e(this);this!=i[0]&&(t.data("element").select2("close"),setTimeout(function(){t.find("*:focus").blur(),n.trigger("focus")},1))})})},i.prototype._detachCloseHandler=function(t){e(document.body).off("mousedown.select2."+t.id)},i.prototype.position=function(e,t){t.find(".selection").append(e)},i.prototype.destroy=function(){this._detachCloseHandler(this.container)},i.prototype.update=function(e){throw new Error("The `update` method must be defined in child classes.")},i}),t.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(e,t,n,i){function o(){o.__super__.constructor.apply(this,arguments)}return n.Extend(o,t),o.prototype.render=function(){var e=o.__super__.render.call(this);return e.addClass("select2-selection--single"),e.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),e},o.prototype.bind=function(e,t){var n=this;o.__super__.bind.apply(this,arguments);var i=e.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",i).attr("role","textbox").attr("aria-readonly","true"),this.$selection.attr("aria-labelledby",i),this.$selection.attr("role","combobox"),this.$selection.on("mousedown",function(e){1===e.which&&n.trigger("toggle",{originalEvent:e})}),this.$selection.on("focus",function(e){}),this.$selection.on("keydown",function(t){!e.isOpen()&&t.which>=48&&t.which<=90&&e.open()}),this.$selection.on("blur",function(e){}),e.on("focus",function(t){e.isOpen()||n.$selection.trigger("focus")}),e.on("selection:update",function(e){n.update(e.data)})},o.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},o.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},o.prototype.selectionContainer=function(){return e("<span></span>")},o.prototype.update=function(e){if(0!==e.length){var t=e[0],n=this.$selection.find(".select2-selection__rendered"),i=this.display(t,n);n.empty().append(i),n.prop("title",t.title||t.text)}else this.clear()},o}),t.define("select2/selection/multiple",["jquery","./base","../utils"],function(e,t,n){function i(e,t){i.__super__.constructor.apply(this,arguments)}return n.Extend(i,t),i.prototype.render=function(){var e=i.__super__.render.call(this);return e.addClass("select2-selection--multiple"),e.html('<ul class="select2-selection__rendered" aria-live="polite" aria-relevant="additions removals" aria-atomic="true"></ul>'),e},i.prototype.bind=function(t,n){var o=this;i.__super__.bind.apply(this,arguments),this.$selection.on("click",function(e){o.trigger("toggle",{originalEvent:e})}),this.$selection.on("click",".select2-selection__choice__remove",function(t){if(!o.options.get("disabled")){var n=e(this).parent().data("data");o.trigger("unselect",{originalEvent:t,data:n})}}),this.$selection.on("keydown",function(e){!t.isOpen()&&e.which>=48&&e.which<=90&&t.open()}),t.on("focus",function(){o.focusOnSearch()})},i.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},i.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},i.prototype.selectionContainer=function(){return e('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation" aria-hidden="true">&times;</span></li>')},i.prototype.focusOnSearch=function(){var e=this;void 0!==e.$search&&setTimeout(function(){e._keyUpPrevented=!0,e.$search.trigger("focus")},1)},i.prototype.update=function(e){if(this.clear(),0!==e.length){for(var t=[],i=0;i<e.length;i++){var o=e[i],r=this.selectionContainer(),s=this.display(o,r);"string"==typeof s&&(s=s.trim()),r.append(s),r.prop("title",o.title||o.text),r.data("data",o),t.push(r)}var a=this.$selection.find(".select2-selection__rendered");n.appendMany(a,t)}},i}),t.define("select2/selection/placeholder",["../utils"],function(e){function t(e,t,n){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n)}return t.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},t.prototype.createPlaceholder=function(e,t){var n=this.selectionContainer();return n.html(this.display(t)),n.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"),n},t.prototype.update=function(e,t){var n=1==t.length&&t[0].id!=this.placeholder.id;if(t.length>1||n)return e.call(this,t);this.clear();var i=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(i)},t}),t.define("select2/selection/allowClear",["jquery","../keys"],function(e,t){function n(){}return n.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(e){i._handleClear(e)}),t.on("keypress",function(e){i._handleKeyboardClear(e,t)})},n.prototype._handleClear=function(e,t){if(!this.options.get("disabled")){var n=this.$selection.find(".select2-selection__clear");if(0!==n.length){t.stopPropagation();for(var i=n.data("data"),o=0;o<i.length;o++){var r={data:i[o]};if(this.trigger("unselect",r),r.prevented)return}void 0!==this.placeholder?this.$element.val(this.placeholder.id).trigger("change"):this.$element.val("").trigger("change"),this.trigger("toggle",{})}}},n.prototype._handleKeyboardClear=function(e,n,i){i.isOpen()||n.which!=t.DELETE&&n.which!=t.BACKSPACE||this._handleClear(n)},n.prototype.update=function(t,n){if(t.call(this,n),!(this.$selection.find(".select2-selection__placeholder").length>0||0===n.length)){var i=e('<span class="select2-selection__clear">&times;</span>');i.data("data",n),this.$selection.find(".select2-selection__rendered").prepend(i)}},n}),t.define("select2/selection/search",["jquery","../utils","../keys"],function(e,t,n){function i(e,t,n){e.call(this,t,n)}return i.prototype.render=function(t){var n=e('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="text" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="textbox" aria-autocomplete="list" /></li>');this.$searchContainer=n,this.$search=n.find("input");var i=t.call(this);return this._transferTabIndex(),i},i.prototype.bind=function(e,t,i){var o=this,r=t.id+"-results";e.call(this,t,i),t.on("open",function(){o.$search.attr("aria-owns",r),o.$search.trigger("focus")}),t.on("close",function(){o.$search.val(""),o.$search.removeAttr("aria-activedescendant"),o.$search.removeAttr("aria-owns"),o.$search.trigger("focus")}),t.on("enable",function(){o.$search.prop("disabled",!1),o._transferTabIndex()}),t.on("disable",function(){o.$search.prop("disabled",!0)}),t.on("focus",function(e){o.$search.trigger("focus")}),t.on("results:focus",function(e){o.$search.attr("aria-activedescendant",e.data._resultId)}),this.$selection.on("focusin",".select2-search--inline",function(e){o.trigger("focus",e)}),this.$selection.on("focusout",".select2-search--inline",function(e){o._handleBlur(e)}),this.$selection.on("keydown",".select2-search--inline",function(e){if(e.stopPropagation(),o.trigger("keypress",e),o._keyUpPrevented=e.isDefaultPrevented(),e.which===n.BACKSPACE&&""===o.$search.val()){var i=o.$searchContainer.prev(".select2-selection__choice");if(i.length>0){var r=i.data("data");o.searchRemoveChoice(r),e.preventDefault()}}else e.which===n.ENTER&&(t.open(),e.preventDefault())});var s=document.documentMode,a=s&&s<=11;this.$selection.on("input.searchcheck",".select2-search--inline",function(e){a?o.$selection.off("input.search input.searchcheck"):o.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(e){if(a&&"input"===e.type)o.$selection.off("input.search input.searchcheck");else{var t=e.which;t!=n.SHIFT&&t!=n.CTRL&&t!=n.ALT&&t!=n.TAB&&o.handleSearch(e)}})},i.prototype._transferTabIndex=function(e){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},i.prototype.createPlaceholder=function(e,t){this.$search.attr("placeholder",t.text)},i.prototype.update=function(e,t){var n=this.$search[0]==document.activeElement;this.$search.attr("placeholder",""),e.call(this,t),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),n&&this.$search.trigger("focus")},i.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var e=this.$search.val();this.trigger("query",{term:e})}this._keyUpPrevented=!1},i.prototype.searchRemoveChoice=function(e,t){this.trigger("unselect",{data:t}),this.$search.val(t.text),this.handleSearch()},i.prototype.resizeSearch=function(){this.$search.css("width","25px");var e="";""!==this.$search.attr("placeholder")?e=this.$selection.find(".select2-selection__rendered").innerWidth():e=.75*(this.$search.val().length+1)+"em";this.$search.css("width",e)},i}),t.define("select2/selection/eventRelay",["jquery"],function(e){function t(){}return t.prototype.bind=function(t,n,i){var o=this,r=["open","opening","close","closing","select","selecting","unselect","unselecting"],s=["opening","closing","selecting","unselecting"];t.call(this,n,i),n.on("*",function(t,n){if(-1!==e.inArray(t,r)){n=n||{};var i=e.Event("select2:"+t,{params:n});o.$element.trigger(i),-1!==e.inArray(t,s)&&(n.prevented=i.isDefaultPrevented())}})},t}),t.define("select2/translation",["jquery","require"],function(e,t){function n(e){this.dict=e||{}}return n.prototype.all=function(){return this.dict},n.prototype.get=function(e){return this.dict[e]},n.prototype.extend=function(t){this.dict=e.extend({},t.all(),this.dict)},n._cache={},n.loadPath=function(e){if(!(e in n._cache)){var i=t(e);n._cache[e]=i}return new n(n._cache[e])},n}),t.define("select2/diacritics",[],function(){return{"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"}}),t.define("select2/data/base",["../utils"],function(e){function t(e,n){t.__super__.constructor.call(this)}return e.Extend(t,e.Observable),t.prototype.current=function(e){throw new Error("The `current` method must be defined in child classes.")},t.prototype.query=function(e,t){throw new Error("The `query` method must be defined in child classes.")},t.prototype.bind=function(e,t){},t.prototype.destroy=function(){},t.prototype.generateResultId=function(t,n){var i="";return i+=null!=t?t.id:e.generateChars(4),i+="-result-",i+=e.generateChars(4),null!=n.id?i+="-"+n.id.toString():i+="-"+e.generateChars(4),i},t}),t.define("select2/data/select",["./base","../utils","jquery"],function(e,t,n){function i(e,t){this.$element=e,this.options=t,i.__super__.constructor.call(this)}return t.Extend(i,e),i.prototype.current=function(e){var t=[],i=this;this.$element.find(":selected").each(function(){var e=n(this),o=i.item(e);t.push(o)}),e(t)},i.prototype.select=function(e){var t=this;if(e.selected=!0,n(e.element).is("option"))return e.element.selected=!0,void this.$element.trigger("change");if(this.$element.prop("multiple"))this.current(function(i){var o=[];(e=[e]).push.apply(e,i);for(var r=0;r<e.length;r++){var s=e[r].id;-1===n.inArray(s,o)&&o.push(s)}t.$element.val(o),t.$element.trigger("change")});else{var i=e.id;this.$element.val(i),this.$element.trigger("change")}},i.prototype.unselect=function(e){var t=this;if(this.$element.prop("multiple")){if(e.selected=!1,n(e.element).is("option"))return e.element.selected=!1,void this.$element.trigger("change");this.current(function(i){for(var o=[],r=0;r<i.length;r++){var s=i[r].id;s!==e.id&&-1===n.inArray(s,o)&&o.push(s)}t.$element.val(o),t.$element.trigger("change")})}},i.prototype.bind=function(e,t){var n=this;this.container=e,e.on("select",function(e){n.select(e.data)}),e.on("unselect",function(e){n.unselect(e.data)})},i.prototype.destroy=function(){this.$element.find("*").each(function(){n.removeData(this,"data")})},i.prototype.query=function(e,t){var i=[],o=this;this.$element.children().each(function(){var t=n(this);if(t.is("option")||t.is("optgroup")){var r=o.item(t),s=o.matches(e,r);null!==s&&i.push(s)}}),t({results:i})},i.prototype.addOptions=function(e){t.appendMany(this.$element,e)},i.prototype.option=function(e){var t;e.children?(t=document.createElement("optgroup")).label=e.text:void 0!==(t=document.createElement("option")).textContent?t.textContent=e.text:t.innerText=e.text,void 0!==e.id&&(t.value=e.id),e.disabled&&(t.disabled=!0),e.selected&&(t.selected=!0),e.title&&(t.title=e.title);var i=n(t),o=this._normalizeItem(e);return o.element=t,n.data(t,"data",o),i},i.prototype.item=function(e){var t={};if(null!=(t=n.data(e[0],"data")))return t;if(e.is("option"))t={id:e.val(),text:e.text(),disabled:e.prop("disabled"),selected:e.prop("selected"),title:e.prop("title")};else if(e.is("optgroup")){t={text:e.prop("label"),children:[],title:e.prop("title")};for(var i=e.children("option"),o=[],r=0;r<i.length;r++){var s=n(i[r]),a=this.item(s);o.push(a)}t.children=o}return(t=this._normalizeItem(t)).element=e[0],n.data(e[0],"data",t),t},i.prototype._normalizeItem=function(e){n.isPlainObject(e)||(e={id:e,text:e});return null!=(e=n.extend({},{text:""},e)).id&&(e.id=e.id.toString()),null!=e.text&&(e.text=e.text.toString()),null==e._resultId&&e.id&&(e._resultId=this.generateResultId(this.container,e)),n.extend({},{selected:!1,disabled:!1},e)},i.prototype.matches=function(e,t){return this.options.get("matcher")(e,t)},i}),t.define("select2/data/array",["./select","../utils","jquery"],function(e,t,n){function i(e,t){var n=t.get("data")||[];i.__super__.constructor.call(this,e,t),this.addOptions(this.convertToOptions(n))}return t.Extend(i,e),i.prototype.select=function(e){var t=this.$element.find("option").filter(function(t,n){return n.value==e.id.toString()});0===t.length&&(t=this.option(e),this.addOptions(t)),i.__super__.select.call(this,e)},i.prototype.convertToOptions=function(e){var i=this,o=this.$element.find("option"),r=o.map(function(){return i.item(n(this)).id}).get(),s=[];function a(e){return function(){return n(this).val()==e.id}}for(var l=0;l<e.length;l++){var c=this._normalizeItem(e[l]);if(n.inArray(c.id,r)>=0){var u=o.filter(a(c)),d=this.item(u),p=n.extend(!0,{},c,d),h=this.option(p);u.replaceWith(h)}else{var f=this.option(c);if(c.children){var g=this.convertToOptions(c.children);t.appendMany(f,g)}s.push(f)}}return s},i}),t.define("select2/data/ajax",["./array","../utils","jquery"],function(e,t,n){function i(e,t){this.ajaxOptions=this._applyDefaults(t.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),i.__super__.constructor.call(this,e,t)}return t.Extend(i,e),i.prototype._applyDefaults=function(e){var t={data:function(e){return n.extend({},e,{q:e.term})},transport:function(e,t,i){var o=n.ajax(e);return o.then(t),o.fail(i),o}};return n.extend({},t,e,!0)},i.prototype.processResults=function(e){return e},i.prototype.query=function(e,t){var i=this;null!=this._request&&("function"==typeof this._request.abort&&this._request.abort(),this._request=null);var o=n.extend({type:"GET"},this.ajaxOptions);function r(){var n=o.transport(o,function(n){var o=i.processResults(n,e);i.options.get("debug")&&window.console&&console.error&&(o&&o.results&&Array.isArray(o.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),t(o),i.container.focusOnActiveElement()},function(){n.status&&"0"===n.status||i.trigger("results:message",{message:"errorLoading"})});i._request=n}"function"==typeof o.url&&(o.url=o.url.call(this.$element,e)),"function"==typeof o.data&&(o.data=o.data.call(this.$element,e)),this.ajaxOptions.delay&&null!=e.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(r,this.ajaxOptions.delay)):r()},i}),t.define("select2/data/tags",["jquery"],function(e){function t(e,t,n){var i=n.get("tags"),o=n.get("createTag");void 0!==o&&(this.createTag=o);var r=n.get("insertTag");if(void 0!==r&&(this.insertTag=r),e.call(this,t,n),Array.isArray(i))for(var s=0;s<i.length;s++){var a=i[s],l=this._normalizeItem(a),c=this.option(l);this.$element.append(c)}}return t.prototype.query=function(e,t,n){var i=this;this._removeOldTags(),null!=t.term&&null==t.page?e.call(this,t,function e(o,r){for(var s=o.results,a=0;a<s.length;a++){var l=s[a],c=null!=l.children&&!e({results:l.children},!0);if((l.text||"").toUpperCase()===(t.term||"").toUpperCase()||c)return!r&&(o.data=s,void n(o))}if(r)return!0;var u=i.createTag(t);if(null!=u){var d=i.option(u);d.attr("data-select2-tag",!0),i.addOptions([d]),i.insertTag(s,u)}o.results=s,n(o)}):e.call(this,t,n)},t.prototype.createTag=function(e,t){if("string"!=typeof t.term)return null;var n=t.term.trim();return""===n?null:{id:n,text:n}},t.prototype.insertTag=function(e,t,n){t.unshift(n)},t.prototype._removeOldTags=function(t){this._lastTag;this.$element.find("option[data-select2-tag]").each(function(){this.selected||e(this).remove()})},t}),t.define("select2/data/tokenizer",["jquery"],function(e){function t(e,t,n){var i=n.get("tokenizer");void 0!==i&&(this.tokenizer=i),e.call(this,t,n)}return t.prototype.bind=function(e,t,n){e.call(this,t,n),this.$search=t.dropdown.$search||t.selection.$search||n.find(".select2-search__field")},t.prototype.query=function(t,n,i){var o=this;n.term=n.term||"";var r=this.tokenizer(n,this.options,function(t){var n=o._normalizeItem(t);if(!o.$element.find("option").filter(function(){return e(this).val()===n.id}).length){var i=o.option(n);i.attr("data-select2-tag",!0),o._removeOldTags(),o.addOptions([i])}!function(e){o.trigger("select",{data:e})}(n)});r.term!==n.term&&(this.$search.length&&(this.$search.val(r.term),this.$search.trigger("focus")),n.term=r.term),t.call(this,n,i)},t.prototype.tokenizer=function(t,n,i,o){for(var r=i.get("tokenSeparators")||[],s=n.term,a=0,l=this.createTag||function(e){return{id:e.term,text:e.term}};a<s.length;){var c=s[a];if(-1!==e.inArray(c,r)){var u=s.substr(0,a),d=l(e.extend({},n,{term:u}));null!=d?(o(d),s=s.substr(a+1)||"",a=0):a++}else a++}return{term:s}},t}),t.define("select2/data/minimumInputLength",[],function(){function e(e,t,n){this.minimumInputLength=n.get("minimumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",t.term.length<this.minimumInputLength?this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),t.define("select2/data/maximumInputLength",[],function(){function e(e,t,n){this.maximumInputLength=n.get("maximumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",this.maximumInputLength>0&&t.term.length>this.maximumInputLength?this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),t.define("select2/data/maximumSelectionLength",[],function(){function e(e,t,n){this.maximumSelectionLength=n.get("maximumSelectionLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){var i=this;this.current(function(o){var r=null!=o?o.length:0;i.maximumSelectionLength>0&&r>=i.maximumSelectionLength?i.trigger("results:message",{message:"maximumSelected",args:{maximum:i.maximumSelectionLength}}):e.call(i,t,n)})},e}),t.define("select2/dropdown",["jquery","./utils"],function(e,t){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return t.Extend(n,t.Observable),n.prototype.render=function(){var t=e('<span class="select2-dropdown"><span class="select2-results"></span></span>');return t.attr("dir",this.options.get("dir")),this.$dropdown=t,t},n.prototype.bind=function(){},n.prototype.position=function(e,t){},n.prototype.destroy=function(){this.$dropdown.remove()},n}),t.define("select2/dropdown/search",["jquery","../utils"],function(e,t){function n(){}return n.prototype.render=function(t){var n=t.call(this),i=e('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="text" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="combobox" aria-autocomplete="list" aria-expanded="true" /></span>');return this.$searchContainer=i,this.$search=i.find("input"),n.prepend(i),n},n.prototype.bind=function(t,n,i){var o=this,r=n.id+"-results";t.call(this,n,i),this.$search.on("keydown",function(e){o.trigger("keypress",e),o._keyUpPrevented=e.isDefaultPrevented()}),this.$search.on("input",function(t){e(this).off("keyup")}),this.$search.on("keyup input",function(e){o.handleSearch(e)}),n.on("open",function(){o.$search.attr("tabindex",0),o.$search.attr("aria-owns",r),o.$search.trigger("focus"),window.setTimeout(function(){o.$search.trigger("focus")},0)}),n.on("close",function(){o.$search.attr("tabindex",-1),o.$search.removeAttr("aria-activedescendant"),o.$search.removeAttr("aria-owns"),o.$search.val("")}),n.on("focus",function(){n.isOpen()||o.$search.trigger("focus")}),n.on("results:all",function(e){null!=e.query.term&&""!==e.query.term||(o.showSearch(e)?o.$searchContainer.removeClass("select2-search--hide"):o.$searchContainer.addClass("select2-search--hide"))}),n.on("results:focus",function(e){o.$search.attr("aria-activedescendant",e.data._resultId)})},n.prototype.handleSearch=function(e){if(!this._keyUpPrevented){var t=this.$search.val();this.trigger("query",{term:t})}this._keyUpPrevented=!1},n.prototype.showSearch=function(e,t){return!0},n}),t.define("select2/dropdown/hidePlaceholder",[],function(){function e(e,t,n,i){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n,i)}return e.prototype.append=function(e,t){t.results=this.removePlaceholder(t.results),e.call(this,t)},e.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},e.prototype.removePlaceholder=function(e,t){for(var n=t.slice(0),i=t.length-1;i>=0;i--){var o=t[i];this.placeholder.id===o.id&&n.splice(i,1)}return n},e}),t.define("select2/dropdown/infiniteScroll",["jquery"],function(e){function t(e,t,n,i){this.lastParams={},e.call(this,t,n,i),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return t.prototype.append=function(e,t){this.$loadingMore.remove(),this.loading=!1,e.call(this,t),this.showLoadingMore(t)&&this.$results.append(this.$loadingMore)},t.prototype.bind=function(t,n,i){var o=this;t.call(this,n,i),n.on("query",function(e){o.lastParams=e,o.loading=!0}),n.on("query:append",function(e){o.lastParams=e,o.loading=!0}),this.$results.on("scroll",function(){var t=e.contains(document.documentElement,o.$loadingMore[0]);!o.loading&&t&&(o.$results.offset().top+o.$results.outerHeight(!1)+50>=o.$loadingMore.offset().top+o.$loadingMore.outerHeight(!1)&&o.loadMore())})},t.prototype.loadMore=function(){this.loading=!0;var t=e.extend({},{page:1},this.lastParams);t.page++,this.trigger("query:append",t)},t.prototype.showLoadingMore=function(e,t){return t.pagination&&t.pagination.more},t.prototype.createLoadingMore=function(){var t=e('<li class="select2-results__option select2-results__option--load-more"role="option" aria-disabled="true"></li>'),n=this.options.get("translations").get("loadingMore");return t.html(n(this.lastParams)),t},t}),t.define("select2/dropdown/attachBody",["jquery","../utils"],function(e,t){function n(t,n,i){this.$dropdownParent=i.get("dropdownParent")||e(document.body),t.call(this,n,i)}return n.prototype.bind=function(e,t,n){var i=this,o=!1;e.call(this,t,n),t.on("open",function(){i._showDropdown(),i._attachPositioningHandler(t),o||(o=!0,t.on("results:all",function(){i._positionDropdown(),i._resizeDropdown()}),t.on("results:append",function(){i._positionDropdown(),i._resizeDropdown()}))}),t.on("close",function(){i._hideDropdown(),i._detachPositioningHandler(t)}),this.$dropdownContainer.on("mousedown",function(e){e.stopPropagation()})},n.prototype.destroy=function(e){e.call(this),this.$dropdownContainer.remove()},n.prototype.position=function(e,t,n){t.attr("class",n.attr("class")),t.removeClass("select2"),t.addClass("select2-container--open"),t.css({position:"absolute",top:-999999}),this.$container=n},n.prototype.render=function(t){var n=e("<span></span>"),i=t.call(this);return n.append(i),this.$dropdownContainer=n,n},n.prototype._hideDropdown=function(e){this.$dropdownContainer.detach()},n.prototype._attachPositioningHandler=function(n,i){var o=this,r="scroll.select2."+i.id,s="resize.select2."+i.id,a="orientationchange.select2."+i.id,l=this.$container.parents().filter(t.hasScroll);l.each(function(){e(this).data("select2-scroll-position",{x:e(this).scrollLeft(),y:e(this).scrollTop()})}),l.on(r,function(t){var n=e(this).data("select2-scroll-position");e(this).scrollTop(n.y)}),e(window).on(r+" "+s+" "+a,function(e){o._positionDropdown(),o._resizeDropdown()})},n.prototype._detachPositioningHandler=function(n,i){var o="scroll.select2."+i.id,r="resize.select2."+i.id,s="orientationchange.select2."+i.id;this.$container.parents().filter(t.hasScroll).off(o),e(window).off(o+" "+r+" "+s)},n.prototype._positionDropdown=function(){var t=e(window),n=this.$dropdown.hasClass("select2-dropdown--above"),i=this.$dropdown.hasClass("select2-dropdown--below"),o=null,r=this.$container.offset();r.bottom=r.top+this.$container.outerHeight(!1);var s={height:this.$container.outerHeight(!1)};s.top=r.top,s.bottom=r.top+s.height;var a=this.$dropdown.outerHeight(!1),l=t.scrollTop(),c=t.scrollTop()+t.height(),u=l<r.top-a,d=c>r.bottom+a,p={left:r.left,top:s.bottom},h=this.$dropdownParent;"static"===h.css("position")&&(h=h.offsetParent());var f=h.offset();p.top-=f.top,p.left-=f.left,n||i||(o="below"),d||!u||n?!u&&d&&n&&(o="below"):o="above",("above"==o||n&&"below"!==o)&&(p.top=s.top-f.top-a),null!=o&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+o),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+o)),this.$dropdownContainer.css(p)},n.prototype._resizeDropdown=function(){var e={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(e.minWidth=e.width,e.position="relative",e.width="auto"),this.$dropdown.css(e)},n.prototype._showDropdown=function(e){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},n}),t.define("select2/dropdown/minimumResultsForSearch",[],function(){function e(e,t,n,i){this.minimumResultsForSearch=n.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),e.call(this,t,n,i)}return e.prototype.showSearch=function(e,t){return!(function e(t){for(var n=0,i=0;i<t.length;i++){var o=t[i];o.children?n+=e(o.children):n++}return n}(t.data.results)<this.minimumResultsForSearch)&&e.call(this,t)},e}),t.define("select2/dropdown/selectOnClose",[],function(){function e(){}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("close",function(e){i._handleSelectOnClose(e)})},e.prototype._handleSelectOnClose=function(e,t){if(t&&null!=t.originalSelect2Event){var n=t.originalSelect2Event;if("select"===n._type||"unselect"===n._type)return}var i=this.getHighlightedResults();if(!(i.length<1)){var o=i.data("data");null!=o.element&&o.element.selected||null==o.element&&o.selected||this.trigger("select",{data:o})}},e}),t.define("select2/dropdown/closeOnSelect",[],function(){function e(){}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("select",function(e){i._selectTriggered(e)}),t.on("unselect",function(e){i._selectTriggered(e)})},e.prototype._selectTriggered=function(e,t){var n=t.originalEvent;n&&n.ctrlKey||this.trigger("close",{originalEvent:n,originalSelect2Event:t})},e}),t.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return 1!=t&&(n+="s"),n},inputTooShort:function(e){return"Please enter "+(e.minimum-e.input.length)+" or more characters"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return 1!=e.maximum&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),t.define("select2/defaults",["jquery","require","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./i18n/en"],function(e,t,n,i,o,r,s,a,l,c,u,d,p,h,f,g,m,v,y,w,_,$,b,x,A,C,S,E,O){function T(){this.reset()}return T.prototype.apply=function(d){if(null==(d=e.extend(!0,{},this.defaults,d)).dataAdapter){if(null!=d.ajax?d.dataAdapter=f:null!=d.data?d.dataAdapter=h:d.dataAdapter=p,d.minimumInputLength>0&&(d.dataAdapter=c.Decorate(d.dataAdapter,v)),d.maximumInputLength>0&&(d.dataAdapter=c.Decorate(d.dataAdapter,y)),d.maximumSelectionLength>0&&(d.dataAdapter=c.Decorate(d.dataAdapter,w)),d.tags&&(d.dataAdapter=c.Decorate(d.dataAdapter,g)),null==d.tokenSeparators&&null==d.tokenizer||(d.dataAdapter=c.Decorate(d.dataAdapter,m)),null!=d.query){var O=t(d.amdBase+"compat/query");d.dataAdapter=c.Decorate(d.dataAdapter,O)}if(null!=d.initSelection){var T=t(d.amdBase+"compat/initSelection");d.dataAdapter=c.Decorate(d.dataAdapter,T)}}if(null==d.resultsAdapter&&(d.resultsAdapter=n,null!=d.ajax&&(d.resultsAdapter=c.Decorate(d.resultsAdapter,x)),null!=d.placeholder&&(d.resultsAdapter=c.Decorate(d.resultsAdapter,b)),d.selectOnClose&&(d.resultsAdapter=c.Decorate(d.resultsAdapter,S))),null==d.dropdownAdapter){if(d.multiple)d.dropdownAdapter=_;else{var D=c.Decorate(_,$);d.dropdownAdapter=D}if(0!==d.minimumResultsForSearch&&(d.dropdownAdapter=c.Decorate(d.dropdownAdapter,C)),d.closeOnSelect&&(d.dropdownAdapter=c.Decorate(d.dropdownAdapter,E)),null!=d.dropdownCssClass||null!=d.dropdownCss||null!=d.adaptDropdownCssClass){var q=t(d.amdBase+"compat/dropdownCss");d.dropdownAdapter=c.Decorate(d.dropdownAdapter,q)}d.dropdownAdapter=c.Decorate(d.dropdownAdapter,A)}if(null==d.selectionAdapter){if(d.multiple?d.selectionAdapter=o:d.selectionAdapter=i,null!=d.placeholder&&(d.selectionAdapter=c.Decorate(d.selectionAdapter,r)),d.allowClear&&(d.selectionAdapter=c.Decorate(d.selectionAdapter,s)),d.multiple&&(d.selectionAdapter=c.Decorate(d.selectionAdapter,a)),null!=d.containerCssClass||null!=d.containerCss||null!=d.adaptContainerCssClass){var j=t(d.amdBase+"compat/containerCss");d.selectionAdapter=c.Decorate(d.selectionAdapter,j)}d.selectionAdapter=c.Decorate(d.selectionAdapter,l)}if("string"==typeof d.language)if(d.language.indexOf("-")>0){var L=d.language.split("-")[0];d.language=[d.language,L]}else d.language=[d.language];if(Array.isArray(d.language)){var k=new u;d.language.push("en");for(var P=d.language,I=0;I<P.length;I++){var M=P[I],R={};try{R=u.loadPath(M)}catch(e){try{M=this.defaults.amdLanguageBase+M,R=u.loadPath(M)}catch(e){d.debug&&window.console&&console.warn&&console.warn('Select2: The language file for "'+M+'" could not be automatically loaded. A fallback will be used instead.');continue}}k.extend(R)}d.translations=k}else{var z=u.loadPath(this.defaults.amdLanguageBase+"en"),H=new u(d.language);H.extend(z),d.translations=H}return d},T.prototype.reset=function(){function t(e){return e.replace(/[^\u0000-\u007E]/g,function(e){return d[e]||e})}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:c.escapeMarkup,language:O,matcher:function n(i,o){if("string"!=typeof i.term||""===i.term.trim())return o;if(o.children&&o.children.length>0){for(var r=e.extend(!0,{},o),s=o.children.length-1;s>=0;s--)null==n(i,o.children[s])&&r.children.splice(s,1);return r.children.length>0?r:n(i,r)}var a=t(o.text).toUpperCase(),l=t(i.term).toUpperCase();return a.indexOf(l)>-1?o:null},minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(e){return e},templateResult:function(e){return e.text},templateSelection:function(e){return e.text},theme:"default",width:"resolve"}},T.prototype.set=function(t,n){var i={};i[e.camelCase(t)]=n;var o=c._convertData(i);e.extend(this.defaults,o)},new T}),t.define("select2/options",["require","jquery","./defaults","./utils"],function(e,t,n,i){function o(t,o){if(this.options=t,null!=o&&this.fromElement(o),this.options=n.apply(this.options),o&&o.is("input")){var r=e(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=i.Decorate(this.options.dataAdapter,r)}}return o.prototype.fromElement=function(e){var n=["select2"];null==this.options.multiple&&(this.options.multiple=e.prop("multiple")),null==this.options.disabled&&(this.options.disabled=e.prop("disabled")),null==this.options.language&&(e.prop("lang")?this.options.language=e.prop("lang").toLowerCase():e.closest("[lang]").prop("lang")&&(this.options.language=e.closest("[lang]").prop("lang"))),null==this.options.dir&&(e.prop("dir")?this.options.dir=e.prop("dir"):e.closest("[dir]").prop("dir")?this.options.dir=e.closest("[dir]").prop("dir"):this.options.dir="ltr"),e.prop("disabled",this.options.disabled),e.prop("multiple",this.options.multiple),e.data("select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),e.data("data",e.data("select2Tags")),e.data("tags",!0)),e.data("ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),e.attr("ajax--url",e.data("ajaxUrl")),e.data("ajax--url",e.data("ajaxUrl")));var o={};o=t.fn.jquery&&"1."==t.fn.jquery.substr(0,2)&&e[0].dataset?t.extend(!0,{},e[0].dataset,e.data()):e.data();var r=t.extend(!0,{},o);for(var s in r=i._convertData(r))t.inArray(s,n)>-1||(t.isPlainObject(this.options[s])?t.extend(this.options[s],r[s]):this.options[s]=r[s]);return this},o.prototype.get=function(e){return this.options[e]},o.prototype.set=function(e,t){this.options[e]=t},o}),t.define("select2/core",["jquery","./options","./utils","./keys"],function(e,t,n,i){var o=function(e,n){null!=e.data("select2")&&e.data("select2").destroy(),this.$element=e,this.id=this._generateId(e),n=n||{},this.options=new t(n,e),o.__super__.constructor.call(this);var i=e.attr("tabindex")||0;e.data("old-tabindex",i),e.attr("tabindex","-1");var r=this.options.get("dataAdapter");this.dataAdapter=new r(e,this.options);var s=this.render();this._placeContainer(s);var a=this.options.get("selectionAdapter");this.selection=new a(e,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,s);var l=this.options.get("dropdownAdapter");this.dropdown=new l(e,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,s);var c=this.options.get("resultsAdapter");this.results=new c(e,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var u=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(e){u.trigger("selection:update",{data:e})}),e.addClass("select2-hidden-accessible"),e.attr("aria-hidden","true"),this._syncAttributes(),e.data("select2",this)};return n.Extend(o,n.Observable),o.prototype._generateId=function(e){return"select2-"+(null!=e.attr("id")?e.attr("id"):null!=e.attr("name")?e.attr("name")+"-"+n.generateChars(2):n.generateChars(4)).replace(/(:|\.|\[|\]|,)/g,"")},o.prototype._placeContainer=function(e){e.insertAfter(this.$element);var t=this._resolveWidth(this.$element,this.options.get("width"));null!=t&&e.css("width",t)},o.prototype._resolveWidth=function(e,t){var n=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==t){var i=this._resolveWidth(e,"style");return null!=i?i:this._resolveWidth(e,"element")}if("element"==t){var o=e.outerWidth(!1);return o<=0?"auto":o+"px"}if("style"==t){var r=e.attr("style");if("string"!=typeof r)return null;for(var s=r.split(";"),a=0,l=s.length;a<l;a+=1){var c=s[a].replace(/\s/g,"").match(n);if(null!==c&&c.length>=1)return c[1]}return null}return t},o.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},o.prototype._registerDomEvents=function(){var t=this;this.$element.on("change.select2",function(){t.dataAdapter.current(function(e){t.trigger("selection:update",{data:e})})}),this.$element.on("focus.select2",function(e){t.trigger("focus",e)}),this._syncA=n.bind(this._syncAttributes,this),this._syncS=n.bind(this._syncSubtree,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._syncA);var i=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=i?(this._observer=new i(function(n){e.each(n,t._syncA),e.each(n,t._syncS)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})):this.$element[0].addEventListener&&(this.$element[0].addEventListener("DOMAttrModified",t._syncA,!1),this.$element[0].addEventListener("DOMNodeInserted",t._syncS,!1),this.$element[0].addEventListener("DOMNodeRemoved",t._syncS,!1))},o.prototype._registerDataEvents=function(){var e=this;this.dataAdapter.on("*",function(t,n){e.trigger(t,n)})},o.prototype._registerSelectionEvents=function(){var t=this,n=["toggle","focus"];this.selection.on("toggle",function(){t.toggleDropdown()}),this.selection.on("focus",function(e){t.focus(e)}),this.selection.on("*",function(i,o){-1===e.inArray(i,n)&&t.trigger(i,o)})},o.prototype._registerDropdownEvents=function(){var e=this;this.dropdown.on("*",function(t,n){e.trigger(t,n)})},o.prototype._registerResultsEvents=function(){var e=this;this.results.on("*",function(t,n){e.trigger(t,n)})},o.prototype._registerEvents=function(){var t=this;this.on("open",function(){t.$container.addClass("select2-container--open")}),this.on("close",function(){t.$container.removeClass("select2-container--open")}),this.on("enable",function(){t.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){t.$container.addClass("select2-container--disabled")}),this.on("blur",function(){t.$container.removeClass("select2-container--focus")}),this.on("query",function(e){t.isOpen()||t.trigger("open",{}),this.dataAdapter.query(e,function(n){t.trigger("results:all",{data:n,query:e})})}),this.on("query:append",function(e){this.dataAdapter.query(e,function(n){t.trigger("results:append",{data:n,query:e})})}),this.on("open",function(){setTimeout(function(){t.focusOnActiveElement()},1)}),e(document).on("keydown",function(e){var n=e.which;if(t.isOpen()){n===i.ESC||n===i.TAB||n===i.UP&&e.altKey?(t.close(),e.preventDefault()):n===i.ENTER?(t.trigger("results:select",{}),e.preventDefault()):n===i.SPACE&&e.ctrlKey?(t.trigger("results:toggle",{}),e.preventDefault()):n===i.UP?(t.trigger("results:previous",{}),e.preventDefault()):n===i.DOWN&&(t.trigger("results:next",{}),e.preventDefault());var o=t.$dropdown.find(".select2-search__field");o.length||(o=t.$container.find(".select2-search__field")),n===i.DOWN||n===i.UP?t.focusOnActiveElement():(o.trigger("focus"),setTimeout(function(){t.focusOnActiveElement()},1e3))}else t.hasFocus()&&(n!==i.ENTER&&n!==i.SPACE&&n!==i.DOWN||(t.open(),e.preventDefault()))})},o.prototype.focusOnActiveElement=function(){this.isOpen()&&!n.isTouchscreen()&&this.$results.find("li.select2-results__option--highlighted").trigger("focus")},o.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},o.prototype._syncSubtree=function(e,t){var n=!1,i=this;if(!e||!e.target||"OPTION"===e.target.nodeName||"OPTGROUP"===e.target.nodeName){if(t)if(t.addedNodes&&t.addedNodes.length>0)for(var o=0;o<t.addedNodes.length;o++){t.addedNodes[o].selected&&(n=!0)}else t.removedNodes&&t.removedNodes.length>0&&(n=!0);else n=!0;n&&this.dataAdapter.current(function(e){i.trigger("selection:update",{data:e})})}},o.prototype.trigger=function(e,t){var n=o.__super__.trigger,i={open:"opening",close:"closing",select:"selecting",unselect:"unselecting"};if(void 0===t&&(t={}),e in i){var r=i[e],s={prevented:!1,name:e,args:t};if(n.call(this,r,s),s.prevented)return void(t.prevented=!0)}n.call(this,e,t)},o.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},o.prototype.open=function(){this.isOpen()||this.trigger("query",{})},o.prototype.close=function(){this.isOpen()&&this.trigger("close",{})},o.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},o.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},o.prototype.focus=function(e){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},o.prototype.enable=function(e){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),null!=e&&0!==e.length||(e=[!0]);var t=!e[0];this.$element.prop("disabled",t)},o.prototype.data=function(){this.options.get("debug")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var e=[];return this.dataAdapter.current(function(t){e=t}),e},o.prototype.val=function(t){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==t||0===t.length)return this.$element.val();var n=t[0];Array.isArray(n)&&(n=e.map(n,function(e){return e.toString()})),this.$element.val(n).trigger("change")},o.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._syncA),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&(this.$element[0].removeEventListener("DOMAttrModified",this._syncA,!1),this.$element[0].removeEventListener("DOMNodeInserted",this._syncS,!1),this.$element[0].removeEventListener("DOMNodeRemoved",this._syncS,!1)),this._syncA=null,this._syncS=null,this.$element.off(".select2"),this.$element.attr("tabindex",this.$element.data("old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},o.prototype.render=function(){var t=e('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return t.attr("dir",this.options.get("dir")),this.$container=t,this.$container.addClass("select2-container--"+this.options.get("theme")),t.data("element",this.$element),t},o}),t.define("select2/compat/utils",["jquery"],function(e){return{syncCssClasses:function(t,n,i){var o,r,s=[];(o=t.attr("class").trim())&&e((o=""+o).split(/\s+/)).each(function(){0===this.indexOf("select2-")&&s.push(this)}),(o=n.attr("class").trim())&&e((o=""+o).split(/\s+/)).each(function(){0!==this.indexOf("select2-")&&null!=(r=i(this))&&s.push(r)}),t.attr("class",s.join(" "))}}}),t.define("select2/compat/containerCss",["jquery","./utils"],function(e,t){function n(e){return null}function i(){}return i.prototype.render=function(e){var i=e.call(this),o=this.options.get("containerCssClass")||"";"function"==typeof o&&(o=o(this.$element));var r=this.options.get("adaptContainerCssClass");if(r=r||n,-1!==o.indexOf(":all:")){o=o.replace(":all:","");var s=r;r=function(e){var t=s(e);return null!=t?t+" "+e:e}}var a=this.options.get("containerCss")||{};return"function"==typeof a&&(a=a(this.$element)),t.syncCssClasses(i,this.$element,r),i.css(a),i.addClass(o),i},i}),t.define("select2/compat/dropdownCss",["jquery","./utils"],function(e,t){function n(e){return null}function i(){}return i.prototype.render=function(e){var i=e.call(this),o=this.options.get("dropdownCssClass")||"";"function"==typeof o&&(o=o(this.$element));var r=this.options.get("adaptDropdownCssClass");if(r=r||n,-1!==o.indexOf(":all:")){o=o.replace(":all:","");var s=r;r=function(e){var t=s(e);return null!=t?t+" "+e:e}}var a=this.options.get("dropdownCss")||{};return"function"==typeof a&&(a=a(this.$element)),t.syncCssClasses(i,this.$element,r),i.css(a),i.addClass(o),i},i}),t.define("select2/compat/initSelection",["jquery"],function(e){function t(e,t,n){n.get("debug")&&window.console&&console.warn&&console.warn("Select2: The `initSelection` option has been deprecated in favor of a custom data adapter that overrides the `current` method. This method is now called multiple times instead of a single time when the instance is initialized. Support will be removed for the `initSelection` option in future versions of Select2"),this.initSelection=n.get("initSelection"),this._isInitialized=!1,e.call(this,t,n)}return t.prototype.current=function(e,t){var n=this;this._isInitialized?e.call(this,t):this.initSelection.call(null,this.$element,function(e){n._isInitialized=!0,Array.isArray(e)||(e=[e]),t(e)})},t}),t.define("select2/compat/inputData",["jquery"],function(e){function t(e,t,n){this._currentData=[],this._valueSeparator=n.get("valueSeparator")||",","hidden"===t.prop("type")&&n.get("debug")&&console&&console.warn&&console.warn("Select2: Using a hidden input with Select2 is no longer supported and may stop working in the future. It is recommended to use a `<select>` element instead."),e.call(this,t,n)}return t.prototype.current=function(t,n){function i(t,n){var o=[];return t.selected||-1!==e.inArray(t.id,n)?(t.selected=!0,o.push(t)):t.selected=!1,t.children&&o.push.apply(o,i(t.children,n)),o}for(var o=[],r=0;r<this._currentData.length;r++){var s=this._currentData[r];o.push.apply(o,i(s,this.$element.val().split(this._valueSeparator)))}n(o)},t.prototype.select=function(t,n){if(this.options.get("multiple")){var i=this.$element.val();i+=this._valueSeparator+n.id,this.$element.val(i),this.$element.trigger("change")}else this.current(function(t){e.map(t,function(e){e.selected=!1})}),this.$element.val(n.id),this.$element.trigger("change")},t.prototype.unselect=function(e,t){var n=this;t.selected=!1,this.current(function(e){for(var i=[],o=0;o<e.length;o++){var r=e[o];t.id!=r.id&&i.push(r.id)}n.$element.val(i.join(n._valueSeparator)),n.$element.trigger("change")})},t.prototype.query=function(e,t,n){for(var i=[],o=0;o<this._currentData.length;o++){var r=this._currentData[o],s=this.matches(t,r);null!==s&&i.push(s)}n({results:i})},t.prototype.addOptions=function(t,n){var i=e.map(n,function(t){return e.data(t[0],"data")});this._currentData.push.apply(this._currentData,i)},t}),t.define("select2/compat/matcher",["jquery"],function(e){return function(t){return function(n,i){var o=e.extend(!0,{},i);if(null==n.term||""===n.term.trim())return o;if(i.children){for(var r=i.children.length-1;r>=0;r--){var s=i.children[r];t(n.term,s.text,s)||o.children.splice(r,1)}if(o.children.length>0)return o}return t(n.term,i.text,i)?o:null}}}),t.define("select2/compat/query",[],function(){function e(e,t,n){n.get("debug")&&window.console&&console.warn&&console.warn("Select2: The `query` option has been deprecated in favor of a custom data adapter that overrides the `query` method. Support will be removed for the `query` option in future versions of Select2."),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.callback=n,this.options.get("query").call(null,t)},e}),t.define("select2/dropdown/attachContainer",[],function(){function e(e,t,n){e.call(this,t,n)}return e.prototype.position=function(e,t,n){n.find(".dropdown-wrapper").append(t),t.addClass("select2-dropdown--below"),n.addClass("select2-container--below")},e}),t.define("select2/dropdown/stopPropagation",[],function(){function e(){}return e.prototype.bind=function(e,t,n){e.call(this,t,n);this.$dropdown.on(["blur","change","click","dblclick","focus","focusin","focusout","input","keydown","keyup","keypress","mousedown","mouseenter","mouseleave","mousemove","mouseover","mouseup","search","touchend","touchstart"].join(" "),function(e){e.stopPropagation()})},e}),t.define("select2/selection/stopPropagation",[],function(){function e(){}return e.prototype.bind=function(e,t,n){e.call(this,t,n);this.$selection.on(["blur","change","click","dblclick","focus","focusin","focusout","input","keydown","keyup","keypress","mousedown","mouseenter","mouseleave","mousemove","mouseover","mouseup","search","touchend","touchstart"].join(" "),function(e){e.stopPropagation()})},e}),
9
+ /*!
10
+ * jQuery Mousewheel 3.1.13
11
+ *
12
+ * Copyright jQuery Foundation and other contributors
13
+ * Released under the MIT license
14
+ * http://jquery.org/license
15
+ */
16
+ r=function(e){var t,n,i=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],o="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],r=Array.prototype.slice;if(e.event.fixHooks)for(var s=i.length;s;)e.event.fixHooks[i[--s]]=e.event.mouseHooks;var a=e.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var t=o.length;t;)this.addEventListener(o[--t],l,!1);else this.onmousewheel=l;e.data(this,"mousewheel-line-height",a.getLineHeight(this)),e.data(this,"mousewheel-page-height",a.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var t=o.length;t;)this.removeEventListener(o[--t],l,!1);else this.onmousewheel=null;e.removeData(this,"mousewheel-line-height"),e.removeData(this,"mousewheel-page-height")},getLineHeight:function(t){var n=e(t),i=n["offsetParent"in e.fn?"offsetParent":"parent"]();return i.length||(i=e("body")),parseInt(i.css("fontSize"),10)||parseInt(n.css("fontSize"),10)||16},getPageHeight:function(t){return e(t).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};function l(i){var o,s=i||window.event,l=r.call(arguments,1),d=0,p=0,h=0,f=0,g=0;if((i=e.event.fix(s)).type="mousewheel","detail"in s&&(h=-1*s.detail),"wheelDelta"in s&&(h=s.wheelDelta),"wheelDeltaY"in s&&(h=s.wheelDeltaY),"wheelDeltaX"in s&&(p=-1*s.wheelDeltaX),"axis"in s&&s.axis===s.HORIZONTAL_AXIS&&(p=-1*h,h=0),d=0===h?p:h,"deltaY"in s&&(d=h=-1*s.deltaY),"deltaX"in s&&(p=s.deltaX,0===h&&(d=-1*p)),0!==h||0!==p){if(1===s.deltaMode){var m=e.data(this,"mousewheel-line-height");d*=m,h*=m,p*=m}else if(2===s.deltaMode){var v=e.data(this,"mousewheel-page-height");d*=v,h*=v,p*=v}if(o=Math.max(Math.abs(h),Math.abs(p)),(!n||o<n)&&(n=o,u(s,o)&&(n/=40)),u(s,o)&&(d/=40,p/=40,h/=40),d=Math[d>=1?"floor":"ceil"](d/n),p=Math[p>=1?"floor":"ceil"](p/n),h=Math[h>=1?"floor":"ceil"](h/n),a.settings.normalizeOffset&&this.getBoundingClientRect){var y=this.getBoundingClientRect();f=i.clientX-y.left,g=i.clientY-y.top}return i.deltaX=p,i.deltaY=h,i.deltaFactor=n,i.offsetX=f,i.offsetY=g,i.deltaMode=0,l.unshift(i,d,p,h),t&&clearTimeout(t),t=setTimeout(c,200),(e.event.dispatch||e.event.handle).apply(this,l)}}function c(){n=null}function u(e,t){return a.settings.adjustOldDeltas&&"mousewheel"===e.type&&t%120==0}e.fn.extend({mousewheel:function(e){return e?this.bind("mousewheel",e):this.trigger("mousewheel")},unmousewheel:function(e){return this.unbind("mousewheel",e)}})},"function"==typeof t.define&&t.define.amd?t.define("jquery-mousewheel",["jquery"],r):"object"==typeof exports?module.exports=r:r(e),t.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults"],function(e,t,n,i){if(null==e.fn.select2TEC){var o=["open","close","destroy"];e.fn.select2TEC=function(t){if("object"==typeof(t=t||{}))return this.each(function(){var i=e.extend(!0,{},t);new n(e(this),i)}),this;if("string"==typeof t){var i,r=Array.prototype.slice.call(arguments,1);return this.each(function(){var n=e(this).data("select2");null==n&&window.console&&console.error&&console.error("The select2('"+t+"') method was called on an element that is not using Select2."),i=n[t].apply(n,r)}),e.inArray(t,o)>-1?this:i}throw new Error("Invalid arguments for Select2: "+t)}}return null!=e.fn.select2&&null!=e.fn.select2.defaults&&(e.fn.select2TEC.defaults=e.fn.select2.defaults),null==e.fn.select2TEC.defaults&&(e.fn.select2TEC.defaults=i),e.fn.select2=e.fn.select2||e.fn.select2TEC,n}),{define:t.define,require:t.require}}(),n=t.require("jquery.select2");return e.fn.select2.amd=t,e.fn.select2TEC.amd=t,n});
lang/the-events-calendar-de_DE.mo CHANGED
Binary file
lang/the-events-calendar-de_DE_formal.mo CHANGED
Binary file
lang/the-events-calendar-hr.mo CHANGED
Binary file
lang/the-events-calendar-ru_RU.mo CHANGED
Binary file
lang/the-events-calendar-sk_SK.mo CHANGED
Binary file
lang/the-events-calendar.pot CHANGED
@@ -2,15 +2,15 @@
2
  # This file is distributed under the GPLv2 or later.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: The Events Calendar 6.0.5\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/the-events-calendar\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "POT-Creation-Date: 2022-11-28T09:01:05-08:00\n"
13
- "PO-Revision-Date: 2022-11-28 17:01\n"
14
  "X-Generator: WP-CLI 2.7.1\n"
15
  "X-Domain: the-events-calendar\n"
16
 
@@ -2117,7 +2117,7 @@ msgstr ""
2117
 
2118
  #: src/admin-views/tribe-options-general.php:243
2119
  #: src/admin-views/tribe-options-general.php:261
2120
- #: src/Tribe/Views/V2/Hooks.php:1210
2121
  msgid "Disabled"
2122
  msgstr ""
2123
 
@@ -4550,24 +4550,24 @@ msgstr ""
4550
  msgid "Enter Event Aggregator License"
4551
  msgstr ""
4552
 
4553
- #: src/Tribe/API.php:798
4554
  msgid "An event having a post meta value of `%s` meridian is not valid. Make sure it is either `am` or `pm`, or remove it entirely if using the 24-hour format."
4555
  msgstr ""
4556
 
4557
- #: src/Tribe/API.php:826
4558
  msgid "An event having a post meta value of `%s` hour (am/pm) is not valid. Make sure it is from 1 to 12."
4559
  msgstr ""
4560
 
4561
- #: src/Tribe/API.php:843
4562
  msgid "An event having a post meta value of `%s` hour (12-hour) is not valid. Make sure it is from 1 to 12."
4563
  msgstr ""
4564
 
4565
- #: src/Tribe/API.php:850
4566
  msgid "An event having a post meta value of `%s` hour (24-hour) is not valid. Make sure it is from 0 to 23."
4567
  msgstr ""
4568
 
4569
- #: src/Tribe/API.php:880
4570
- #: src/Tribe/API.php:891
4571
  msgid "An event having a post meta value of `%s` minutes is not valid. Make sure it is from 0 to 59."
4572
  msgstr ""
4573
 
@@ -4875,7 +4875,7 @@ msgstr ""
4875
  msgid "Edit Venue"
4876
  msgstr ""
4877
 
4878
- #: src/Tribe/Front_Page_View.php:239
4879
  msgctxt "Customizer static front page setting"
4880
  msgid "Main %s Page"
4881
  msgstr ""
@@ -7424,44 +7424,44 @@ msgstr ""
7424
  msgid "Options selected here will override what was selected in the \"Global Elements\" section on Single Event views."
7425
  msgstr ""
7426
 
7427
- #: src/Tribe/Views/V2/Hooks.php:568
7428
  msgid "We recommend a 16:9 aspect ratio for featured images."
7429
  msgstr ""
7430
 
7431
- #: src/Tribe/Views/V2/Hooks.php:645
7432
  msgid "Recommended for all sites using the updated calendar views."
7433
  msgstr ""
7434
 
7435
- #: src/Tribe/Views/V2/Hooks.php:660
7436
  msgid "The Events Calendar - View V2"
7437
  msgstr ""
7438
 
7439
- #: src/Tribe/Views/V2/Hooks.php:976
7440
  msgctxt "Capitalized label for the event website link."
7441
  msgid "View %s Website"
7442
  msgstr ""
7443
 
7444
- #: src/Tribe/Views/V2/Hooks.php:1004
7445
  msgctxt "Capitalized label for the venue website link."
7446
  msgid "View %s Website"
7447
  msgstr ""
7448
 
7449
- #: src/Tribe/Views/V2/Hooks.php:1032
7450
  msgctxt "Capitalized label for the organizer website link."
7451
  msgid "View %s Website"
7452
  msgstr ""
7453
 
7454
- #: src/Tribe/Views/V2/Hooks.php:1096
7455
  msgctxt "The default text label for the \"today\" button on the Month View."
7456
  msgid "This Month"
7457
  msgstr ""
7458
 
7459
- #: src/Tribe/Views/V2/Hooks.php:1116
7460
  msgctxt "The default text for the 'today' button's title and aria-label on the Week View."
7461
  msgid "Click to select the current month"
7462
  msgstr ""
7463
 
7464
- #: src/Tribe/Views/V2/Hooks.php:1210
7465
  msgid "Enabled"
7466
  msgstr ""
7467
 
@@ -7545,7 +7545,7 @@ msgctxt "The text label for the Day View."
7545
  msgid "Day"
7546
  msgstr ""
7547
 
7548
- #: src/Tribe/Views/V2/Views/List_View.php:61
7549
  msgctxt "The text label for the List View."
7550
  msgid "List"
7551
  msgstr ""
@@ -7687,6 +7687,10 @@ msgstr ""
7687
  msgid "In a location"
7688
  msgstr ""
7689
 
 
 
 
 
7690
  #: src/views/single-event.php:78
7691
  #: src/views/single-event/back-link.php:18
7692
  msgctxt "%s Events plural label"
2
  # This file is distributed under the GPLv2 or later.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: The Events Calendar 6.0.6\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/the-events-calendar\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "POT-Creation-Date: 2022-12-12T22:20:06-08:00\n"
13
+ "PO-Revision-Date: 2022-12-13 06:20\n"
14
  "X-Generator: WP-CLI 2.7.1\n"
15
  "X-Domain: the-events-calendar\n"
16
 
2117
 
2118
  #: src/admin-views/tribe-options-general.php:243
2119
  #: src/admin-views/tribe-options-general.php:261
2120
+ #: src/Tribe/Views/V2/Hooks.php:1208
2121
  msgid "Disabled"
2122
  msgstr ""
2123
 
4550
  msgid "Enter Event Aggregator License"
4551
  msgstr ""
4552
 
4553
+ #: src/Tribe/API.php:815
4554
  msgid "An event having a post meta value of `%s` meridian is not valid. Make sure it is either `am` or `pm`, or remove it entirely if using the 24-hour format."
4555
  msgstr ""
4556
 
4557
+ #: src/Tribe/API.php:843
4558
  msgid "An event having a post meta value of `%s` hour (am/pm) is not valid. Make sure it is from 1 to 12."
4559
  msgstr ""
4560
 
4561
+ #: src/Tribe/API.php:860
4562
  msgid "An event having a post meta value of `%s` hour (12-hour) is not valid. Make sure it is from 1 to 12."
4563
  msgstr ""
4564
 
4565
+ #: src/Tribe/API.php:867
4566
  msgid "An event having a post meta value of `%s` hour (24-hour) is not valid. Make sure it is from 0 to 23."
4567
  msgstr ""
4568
 
4569
+ #: src/Tribe/API.php:897
4570
+ #: src/Tribe/API.php:908
4571
  msgid "An event having a post meta value of `%s` minutes is not valid. Make sure it is from 0 to 59."
4572
  msgstr ""
4573
 
4875
  msgid "Edit Venue"
4876
  msgstr ""
4877
 
4878
+ #: src/Tribe/Front_Page_View.php:242
4879
  msgctxt "Customizer static front page setting"
4880
  msgid "Main %s Page"
4881
  msgstr ""
7424
  msgid "Options selected here will override what was selected in the \"Global Elements\" section on Single Event views."
7425
  msgstr ""
7426
 
7427
+ #: src/Tribe/Views/V2/Hooks.php:566
7428
  msgid "We recommend a 16:9 aspect ratio for featured images."
7429
  msgstr ""
7430
 
7431
+ #: src/Tribe/Views/V2/Hooks.php:643
7432
  msgid "Recommended for all sites using the updated calendar views."
7433
  msgstr ""
7434
 
7435
+ #: src/Tribe/Views/V2/Hooks.php:658
7436
  msgid "The Events Calendar - View V2"
7437
  msgstr ""
7438
 
7439
+ #: src/Tribe/Views/V2/Hooks.php:974
7440
  msgctxt "Capitalized label for the event website link."
7441
  msgid "View %s Website"
7442
  msgstr ""
7443
 
7444
+ #: src/Tribe/Views/V2/Hooks.php:1002
7445
  msgctxt "Capitalized label for the venue website link."
7446
  msgid "View %s Website"
7447
  msgstr ""
7448
 
7449
+ #: src/Tribe/Views/V2/Hooks.php:1030
7450
  msgctxt "Capitalized label for the organizer website link."
7451
  msgid "View %s Website"
7452
  msgstr ""
7453
 
7454
+ #: src/Tribe/Views/V2/Hooks.php:1094
7455
  msgctxt "The default text label for the \"today\" button on the Month View."
7456
  msgid "This Month"
7457
  msgstr ""
7458
 
7459
+ #: src/Tribe/Views/V2/Hooks.php:1114
7460
  msgctxt "The default text for the 'today' button's title and aria-label on the Week View."
7461
  msgid "Click to select the current month"
7462
  msgstr ""
7463
 
7464
+ #: src/Tribe/Views/V2/Hooks.php:1208
7465
  msgid "Enabled"
7466
  msgstr ""
7467
 
7545
  msgid "Day"
7546
  msgstr ""
7547
 
7548
+ #: src/Tribe/Views/V2/Views/List_View.php:62
7549
  msgctxt "The text label for the List View."
7550
  msgid "List"
7551
  msgstr ""
7687
  msgid "In a location"
7688
  msgstr ""
7689
 
7690
+ #: src/views/modules/map-basic.php:28
7691
+ msgid "Venue location map"
7692
+ msgstr ""
7693
+
7694
  #: src/views/single-event.php:78
7695
  #: src/views/single-event/back-link.php:18
7696
  msgctxt "%s Events plural label"
readme.txt CHANGED
@@ -4,7 +4,7 @@ Contributors: theeventscalendar, borkweb, bordoni, brianjessee, aguseo, camwynsp
4
  Tags: events, calendar, event, schedule, organizer
5
  Donate link: https://evnt.is/29
6
  Requires at least: 5.8.6
7
- Stable tag: 6.0.5
8
  Tested up to: 6.1.1
9
  Requires PHP: 7.3
10
  License: GPLv2 or later
@@ -229,6 +229,25 @@ Remember to always make a backup of your database and files before updating!
229
 
230
  == Changelog ==
231
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
232
  = [6.0.5] 2022-11-29 =
233
 
234
  * Fix - Fix for scenarios where fatal `Call to a member function get() on null in... the-events-calendar/src/Tribe/Query.php(46)` would occur when `$wp_query` global was not set. [TEC-4566]
@@ -247,6 +266,7 @@ Remember to always make a backup of your database and files before updating!
247
  * Tweak - Added filters: `tec_events_custom_tables_v1_query_modifier_applies_to_query`, `tec_events_display_settings_tab_fields`, `tribe_general_settings_tab_fields`
248
  * Language - 118 new strings added, 287 updated, 10 fuzzied, and 88 obsoleted.
249
 
 
250
  = [6.0.4] 2022-11-15 =
251
 
252
  * Version - The Events Calendar 6.0.4 is only compatible with Events Calendar PRO 6.0.3 and higher
4
  Tags: events, calendar, event, schedule, organizer
5
  Donate link: https://evnt.is/29
6
  Requires at least: 5.8.6
7
+ Stable tag: 6.0.6
8
  Tested up to: 6.1.1
9
  Requires PHP: 7.3
10
  License: GPLv2 or later
229
 
230
  == Changelog ==
231
 
232
+ = [6.0.6] 2022-12-14 =
233
+
234
+ * Fix - Resolved a migration state problem in the view not being handled properly when preview is unsupported and a migration error happens simultaneously. [TEC-4482]
235
+ * Fix - Prevent a couple scenarios that would cause 404 pages on events. This addresses both an error from UTC offset validation failures and an issue where table renaming improperly created foreign keys that pointed to an invalid constraint target. [TEC-4578]
236
+ * Fix - Avoid query filtering issues where the Event post type would be incorrectly added to queries. [TEC-4588]
237
+ * Fix - Incorrect results when including Events in the main blog loop. [TEC-4474]
238
+ * Fix - Avoid errors when third-party plugins reference or use the `Tribe__Events__Query::pre_get_posts` method. [TEC-4540]
239
+ * Fix - Prevent Serializable interface deprecated error in PHP 8.1 when migrating events. [ECP-1319]
240
+ * Fix - Ensure the `Previous Events` button when using the `Event View` Elementor widget navigates correctly to the previous page. [FBAR-273]
241
+ * Fix - Ensure that when we hit a single-event ical endpoint we get a the correct single event. [TEC-4469]
242
+ * Fix - Avoid PHP fatal error on PHP 8.0+ in some settings' pages when setting the front page to the Main Events Page. [BTRIA-1545]
243
+ * Tweak - Add aria label to Google Maps iFrame embed to improve accessibility. [TEC-4404]
244
+ * Tweak - Prevent unbound query for previous URL on list based views, improving performance.
245
+ * Tweak - Additional views setup no longer run extra Database Query unnecessarily, improving performance.
246
+ * Tweak - Improve performance on the Settings page when dealing with a big dataset of events.
247
+ * Tweak - Improve performance on the `tribe_events()` and on the Event Views by removing an unnecessary JOIN for hiding of specific upcoming events.
248
+ * Tweak - Changed views: `modules/map-basic`
249
+ * Language - 1 new strings added, 17 updated, 0 fuzzied, and 0 obsoleted
250
+
251
  = [6.0.5] 2022-11-29 =
252
 
253
  * Fix - Fix for scenarios where fatal `Call to a member function get() on null in... the-events-calendar/src/Tribe/Query.php(46)` would occur when `$wp_query` global was not set. [TEC-4566]
266
  * Tweak - Added filters: `tec_events_custom_tables_v1_query_modifier_applies_to_query`, `tec_events_display_settings_tab_fields`, `tribe_general_settings_tab_fields`
267
  * Language - 118 new strings added, 287 updated, 10 fuzzied, and 88 obsoleted.
268
 
269
+
270
  = [6.0.4] 2022-11-15 =
271
 
272
  * Version - The Events Calendar 6.0.4 is only compatible with Events Calendar PRO 6.0.3 and higher
src/Events/Custom_Tables/V1/Migration/Admin/Phase_View_Renderer.php CHANGED
@@ -212,15 +212,25 @@ class Phase_View_Renderer {
212
  * @return false|string|\WP_Error
213
  */
214
  protected function get_template_html( $template, $vars = [] ) {
215
- $file_path = $this->template_directory . $template;
216
- if ( ! file_exists( $file_path ) ) {
217
- return new \WP_Error( 'tec-ct1-migration-phase-non-existent-template', null, [ 'template' => $template, 'phase_renderer' => $this ] );
 
 
 
 
 
 
 
 
 
 
 
 
218
  }
219
 
220
- extract( $vars, EXTR_OVERWRITE );
221
  ob_start();
222
- include $file_path;
223
-
224
  return ob_get_clean();
225
  }
226
 
212
  * @return false|string|\WP_Error
213
  */
214
  protected function get_template_html( $template, $vars = [] ) {
215
+ $get_template_html_file_path = $this->template_directory . $template;
216
+ extract( $vars, EXTR_OVERWRITE );
217
+ if ( ! file_exists( $get_template_html_file_path ) ) {
218
+ do_action( 'tribe_log',
219
+ 'error',
220
+ 'Error locating template file.', [
221
+ 'source' => __METHOD__ . ':' . __LINE__,
222
+ 'file_path' => $get_template_html_file_path,
223
+ 'template' => $template
224
+ ] );
225
+
226
+ return new \WP_Error( 'tec-ct1-migration-phase-non-existent-template',
227
+ null,
228
+ [ 'template' => $template, 'phase_renderer' => $this ]
229
+ );
230
  }
231
 
 
232
  ob_start();
233
+ include $get_template_html_file_path;
 
234
  return ob_get_clean();
235
  }
236
 
src/Events/Custom_Tables/V1/Migration/Reports/Event_Report.php CHANGED
@@ -527,7 +527,7 @@ class Event_Report implements JsonSerializable {
527
  *
528
  * @since 6.0.0
529
  *
530
- * @return array
531
  */
532
  public function jsonSerialize() {
533
  return $this->data;
527
  *
528
  * @since 6.0.0
529
  *
530
+ * @return mixed
531
  */
532
  public function jsonSerialize() {
533
  return $this->data;
src/Events/Custom_Tables/V1/Models/Builder.php CHANGED
@@ -412,7 +412,17 @@ class Builder {
412
  $SQL = $wpdb->prepare( $SQL, ...$validated['values'] );
413
  $this->queries[] = $SQL;
414
  if ( $this->execute_queries ) {
415
- $result += (int) $wpdb->query( $SQL );
 
 
 
 
 
 
 
 
 
 
416
  }
417
  } while ( count( $data ) );
418
 
412
  $SQL = $wpdb->prepare( $SQL, ...$validated['values'] );
413
  $this->queries[] = $SQL;
414
  if ( $this->execute_queries ) {
415
+ $query_result = $wpdb->query( $SQL );
416
+ $result += (int) $query_result;
417
+ }
418
+ // Log our errors.
419
+ if ( $query_result === false && $wpdb->last_error ) {
420
+ do_action( 'tribe_log',
421
+ 'error',
422
+ "ORM Builder mysql error while performing insert on {$this->model->table_name()}.", [
423
+ 'source' => __METHOD__ . ':' . __LINE__,
424
+ 'mysql error' => $wpdb->last_error,
425
+ ] );
426
  }
427
  } while ( count( $data ) );
428
 
src/Events/Custom_Tables/V1/Models/Event.php CHANGED
@@ -9,9 +9,6 @@
9
 
10
  namespace TEC\Events\Custom_Tables\V1\Models;
11
 
12
- use DateTime;
13
- use DateTimeZone;
14
- use Exception;
15
  use TEC\Events\Custom_Tables\V1\Models\Formatters\Date_Formatter;
16
  use TEC\Events\Custom_Tables\V1\Models\Formatters\End_Date_Formatter;
17
  use TEC\Events\Custom_Tables\V1\Models\Formatters\Integer_Key_Formatter;
9
 
10
  namespace TEC\Events\Custom_Tables\V1\Models;
11
 
 
 
 
12
  use TEC\Events\Custom_Tables\V1\Models\Formatters\Date_Formatter;
13
  use TEC\Events\Custom_Tables\V1\Models\Formatters\End_Date_Formatter;
14
  use TEC\Events\Custom_Tables\V1\Models\Formatters\Integer_Key_Formatter;
src/Events/Custom_Tables/V1/Models/Model.php CHANGED
@@ -257,8 +257,21 @@ abstract class Model implements Serializable {
257
  static::$static_errors[ $name ] = $error_string;
258
  }
259
 
 
 
 
 
 
 
 
 
 
 
 
 
 
260
  // No errors were found.
261
- return empty( $this->errors() );
262
  }
263
 
264
  /**
@@ -528,17 +541,43 @@ abstract class Model implements Serializable {
528
  return array_key_exists( $column, $this->validations );
529
  }
530
 
 
 
 
 
 
 
 
 
 
 
 
 
531
  /**
532
  * If a model is cached, make sure only the important data is serialized, to reduce the amount of space that the
533
  * object uses when stored as a string.
534
  *
535
  * @since 6.0.0
 
 
536
  * @return string The string representing the object.
537
  */
538
- public function serialize() {
539
- $encode = wp_json_encode( $this->to_array() );
 
540
 
541
- return is_string( $encode ) ? $encode : '';
 
 
 
 
 
 
 
 
 
 
 
542
  }
543
 
544
  /**
@@ -546,19 +585,12 @@ abstract class Model implements Serializable {
546
  * object.
547
  *
548
  * @since 6.0.0
 
549
  *
550
  * @param string $serialized
551
  */
552
  public function unserialize( $serialized ) {
553
- $data = json_decode( $serialized, true );
554
-
555
- if ( ! is_array( $data ) ) {
556
- return;
557
- }
558
-
559
- foreach ( $data as $column => $value ) {
560
- $this->{$column} = $value;
561
- }
562
  }
563
 
564
  /**
257
  static::$static_errors[ $name ] = $error_string;
258
  }
259
 
260
+ if ( ! empty( $this->errors() ) ) {
261
+ // For debug purposes, log validation errors.
262
+ // These will fail update/insertions on the database.
263
+ do_action( 'tribe_log',
264
+ 'debug',
265
+ "Model failed validation.", [
266
+ 'source' => __METHOD__ . ':' . __LINE__,
267
+ 'errors' => $this->errors(),
268
+ ] );
269
+
270
+ return false;
271
+ }
272
+
273
  // No errors were found.
274
+ return true;
275
  }
276
 
277
  /**
541
  return array_key_exists( $column, $this->validations );
542
  }
543
 
544
+ /**
545
+ * If a model is cached, make sure only the important data is serialized, to reduce the amount of space that the
546
+ * object uses when stored as a string.
547
+ *
548
+ * @since 6.0.6
549
+ *
550
+ * @return array The array representation of the object.
551
+ */
552
+ public function __serialize(): array {
553
+ return $this->to_array();
554
+ }
555
+
556
  /**
557
  * If a model is cached, make sure only the important data is serialized, to reduce the amount of space that the
558
  * object uses when stored as a string.
559
  *
560
  * @since 6.0.0
561
+ * @since 6.0.6 - Utilize magic method for 8.1 support.
562
+ *
563
  * @return string The string representing the object.
564
  */
565
+ public function serialize(): string {
566
+ return serialize( $this->__serialize() );
567
+ }
568
 
569
+ /**
570
+ * If this object is constructed out of a `unserialize` call make sure the properties are set up correctly on the
571
+ * object.
572
+ *
573
+ * @since 6.0.6
574
+ *
575
+ * @param array $serialized The array representation of the object.
576
+ */
577
+ public function __unserialize(array $serialized): void {
578
+ foreach ( $serialized as $column => $value ) {
579
+ $this->{$column} = $value;
580
+ }
581
  }
582
 
583
  /**
585
  * object.
586
  *
587
  * @since 6.0.0
588
+ * @since 6.0.6 - Utilize magic method for 8.1 support.
589
  *
590
  * @param string $serialized
591
  */
592
  public function unserialize( $serialized ) {
593
+ $this->__unserialize( unserialize( $serialized ) );
 
 
 
 
 
 
 
 
594
  }
595
 
596
  /**
src/Events/Custom_Tables/V1/Schema_Builder/Abstract_Custom_Field.php CHANGED
@@ -24,8 +24,8 @@ abstract class Abstract_Custom_Field implements Field_Schema_Interface {
24
  * {@inheritdoc}
25
  */
26
  public function update() {
 
27
  require_once ABSPATH . 'wp-admin/includes/upgrade.php';
28
-
29
  $results = (array) dbDelta( $this->get_update_sql() );
30
  $this->sync_stored_version();
31
  $results = $this->after_update( $results );
@@ -44,6 +44,15 @@ abstract class Abstract_Custom_Field implements Field_Schema_Interface {
44
  */
45
  abstract protected function get_update_sql();
46
 
 
 
 
 
 
 
 
 
 
47
  /**
48
  * Allows extending classes that require it to run some methods
49
  * immediately after the table creation or update.
24
  * {@inheritdoc}
25
  */
26
  public function update() {
27
+ $this->before_update();
28
  require_once ABSPATH . 'wp-admin/includes/upgrade.php';
 
29
  $results = (array) dbDelta( $this->get_update_sql() );
30
  $this->sync_stored_version();
31
  $results = $this->after_update( $results );
44
  */
45
  abstract protected function get_update_sql();
46
 
47
+ /**
48
+ * Allows extending classes that require it to run some methods
49
+ * immediately before the field creation or update.
50
+ *
51
+ * @since 6.0.6
52
+ */
53
+ protected function before_update() :void {
54
+ }
55
+
56
  /**
57
  * Allows extending classes that require it to run some methods
58
  * immediately after the table creation or update.
src/Events/Custom_Tables/V1/Schema_Builder/Abstract_Custom_Table.php CHANGED
@@ -9,6 +9,8 @@
9
 
10
  namespace TEC\Events\Custom_Tables\V1\Schema_Builder;
11
 
 
 
12
  /**
13
  * Class Base_Custom_Table
14
  *
@@ -51,6 +53,7 @@ abstract class Abstract_Custom_Table implements Table_Schema_Interface {
51
  * {@inheritdoc}
52
  */
53
  public function update() {
 
54
  require_once ABSPATH . 'wp-admin/includes/upgrade.php';
55
  $results = (array) dbDelta( $this->get_update_sql() );
56
  $this->sync_stored_version();
@@ -70,6 +73,15 @@ abstract class Abstract_Custom_Table implements Table_Schema_Interface {
70
  */
71
  abstract protected function get_update_sql();
72
 
 
 
 
 
 
 
 
 
 
73
  /**
74
  * Allows extending classes that require it to run some methods
75
  * immediately after the table creation or update.
@@ -129,6 +141,49 @@ abstract class Abstract_Custom_Table implements Table_Schema_Interface {
129
  ) >= 1;
130
  }
131
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
132
  /**
133
  * Returns whether a table exists in the database or not.
134
  *
9
 
10
  namespace TEC\Events\Custom_Tables\V1\Schema_Builder;
11
 
12
+ use stdClass;
13
+
14
  /**
15
  * Class Base_Custom_Table
16
  *
53
  * {@inheritdoc}
54
  */
55
  public function update() {
56
+ $this->before_update();
57
  require_once ABSPATH . 'wp-admin/includes/upgrade.php';
58
  $results = (array) dbDelta( $this->get_update_sql() );
59
  $this->sync_stored_version();
73
  */
74
  abstract protected function get_update_sql();
75
 
76
+ /**
77
+ * Allows extending classes that require it to run some methods
78
+ * immediately before the table creation or update.
79
+ *
80
+ * @since 6.0.6
81
+ */
82
+ protected function before_update() :void {
83
+ }
84
+
85
  /**
86
  * Allows extending classes that require it to run some methods
87
  * immediately after the table creation or update.
141
  ) >= 1;
142
  }
143
 
144
+ /**
145
+ * Checks if a constraint exists for a particular field.
146
+ *
147
+ * @since 6.0.6
148
+ *
149
+ * @param string $this_field The field of the table that has the foreign key (not the target of the constraint).
150
+ * @param string $this_table The table that has the foreign key (not the target of the constraint).
151
+ *
152
+ * @return bool Whether this constraint exists.
153
+ */
154
+ public function has_constraint( $this_field, $this_table ): bool {
155
+ return ! empty( $this->get_schema_constraint( $this_field, $this_table ) );
156
+ }
157
+
158
+ /**
159
+ * Fetches the constraint for a particular field.
160
+ *
161
+ * @since 6.0.6
162
+ *
163
+ * @param string $this_field The field of the table that has the foreign key (not the target of the constraint).
164
+ * @param string $this_table The table that has the foreign key (not the target of the constraint).
165
+ *
166
+ * @return stdClass|null A stdClass with the INFORMATION_SCHEMA.key_column_usage or null if none found.
167
+ */
168
+ public function get_schema_constraint( $this_field, $this_table ): ?stdClass {
169
+ global $wpdb;
170
+
171
+ $query = $wpdb->prepare(
172
+ "SELECT *
173
+ FROM INFORMATION_SCHEMA.key_column_usage
174
+ WHERE referenced_table_schema = DATABASE()
175
+ AND referenced_table_name IS NOT NULL
176
+ AND COLUMN_NAME= %s
177
+ AND TABLE_NAME = %s",
178
+ $this_field,
179
+ $this_table
180
+ );
181
+
182
+ $results = $wpdb->get_results( $query );
183
+
184
+ return ! empty( $results ) ? array_pop( $results ) : null;
185
+ }
186
+
187
  /**
188
  * Returns whether a table exists in the database or not.
189
  *
src/Events/Custom_Tables/V1/Tables/Occurrences.php CHANGED
@@ -25,9 +25,11 @@ class Occurrences extends Abstract_Custom_Table {
25
  const SCHEMA_VERSION_OPTION = 'tec_ct1_occurrences_table_schema_version';
26
 
27
  /**
 
 
28
  * @inheritDoc
29
  */
30
- const SCHEMA_VERSION = '1.0.0';
31
 
32
  /**
33
  * @inheritDoc
@@ -74,32 +76,35 @@ class Occurrences extends Abstract_Custom_Table {
74
  }
75
 
76
  /**
77
- * Overrides the base method to add `event_id` as foreign key on the Events
78
- * custom table.
 
79
  *
80
  * {@inheritdoc}
81
  */
82
  protected function after_update( array $results ) {
83
- $this_table = self::table_name( true );
84
- $events_table = Events::table_name( true );
85
-
86
- $updated = false;
87
  if (
88
  $this->exists()
89
- && $this->exists( Events::table_name( true ) )
90
- && ! $this->has_index( 'event_id', $events_table )
91
  ) {
92
- global $wpdb;
93
- $SQL = "ALTER TABLE {$this_table}
94
- ADD FOREIGN KEY (event_id) REFERENCES {$events_table} (event_id)
95
- ON DELETE CASCADE";
96
-
97
  $updated = $wpdb->query( $SQL );
 
 
 
 
 
 
 
 
98
  }
99
 
100
  $message = $updated
101
- ? "Added event_id as foreign key from {$events_table}"
102
- : "Failed to add event_id as foreign key from {$events_table}";
103
 
104
  $results[ $this_table . '.event_id' ] = $message;
105
 
25
  const SCHEMA_VERSION_OPTION = 'tec_ct1_occurrences_table_schema_version';
26
 
27
  /**
28
+ * @since 6.0.6 Will now simply create an `event_id` index, removes the foreign key from the previous version.
29
+ *
30
  * @inheritDoc
31
  */
32
+ const SCHEMA_VERSION = '1.0.1';
33
 
34
  /**
35
  * @inheritDoc
76
  }
77
 
78
  /**
79
+ * Overrides the base method to add `event_id` as key.
80
+ *
81
+ * @since 6.0.6 Will now create an `event_id` index, removes the foreign key from the previous version.
82
  *
83
  * {@inheritdoc}
84
  */
85
  protected function after_update( array $results ) {
86
+ global $wpdb;
87
+ $this_table = self::table_name( true );
88
+ $updated = false;
 
89
  if (
90
  $this->exists()
91
+ && ! $this->has_index( 'event_id', $this_table )
 
92
  ) {
93
+ $SQL = "ALTER TABLE {$this_table} ADD INDEX (event_id)";
 
 
 
 
94
  $updated = $wpdb->query( $SQL );
95
+ } else if ( $this->exists()
96
+ && $this->has_constraint( 'event_id', $this_table ) ) {
97
+ // We are moving away from foreign key constraints. If this is our old schema, find the FK name and drop it.
98
+ $constraint = $this->get_schema_constraint( 'event_id', $this_table );
99
+ $foreign_key_name = $constraint->CONSTRAINT_NAME ?? null;
100
+ if ( $foreign_key_name ) {
101
+ $updated = $wpdb->query( "ALTER TABLE {$this_table} DROP FOREIGN KEY {$foreign_key_name}" );
102
+ }
103
  }
104
 
105
  $message = $updated
106
+ ? "Added event_id as key in {$this_table}"
107
+ : "Failed to add event_id as key in {$this_table}";
108
 
109
  $results[ $this_table . '.event_id' ] = $message;
110
 
src/Events/Custom_Tables/V1/WP_Query/Monitors/Query_Monitor.php CHANGED
@@ -208,10 +208,11 @@ trait Query_Monitor {
208
  /**
209
  * Return the number of Queries to which at least one modifier is attached.
210
  *
211
- * @since 6.0.0
212
  *
213
  * @return int The number of modifier instances.
214
  */
 
215
  public function count() {
216
  return $this->modifiers->count();
217
  }
208
  /**
209
  * Return the number of Queries to which at least one modifier is attached.
210
  *
211
+ * @since 6.0.0
212
  *
213
  * @return int The number of modifier instances.
214
  */
215
+ #[\ReturnTypeWillChange]
216
  public function count() {
217
  return $this->modifiers->count();
218
  }
src/Events/Custom_Tables/V1/WP_Query/Provider.php CHANGED
@@ -109,11 +109,38 @@ class Provider extends \tad_DI52_ServiceProvider implements Serializable, Provid
109
  *
110
  * @since 6.0.0
111
  *
112
- * @param string $data The dat
113
  *
114
  * @return void Return void to not spawn the object from serialized data.
115
  */
116
  public function unserialize( $data ) {
117
  return;
118
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
119
  }
109
  *
110
  * @since 6.0.0
111
  *
112
+ * @param string $data The data to unserialize.
113
  *
114
  * @return void Return void to not spawn the object from serialized data.
115
  */
116
  public function unserialize( $data ) {
117
  return;
118
  }
119
+
120
+ /**
121
+ * Implements the method that is going to be invoked to serialize
122
+ * the class to make sure the Container instance, that uses non-serializable
123
+ * Closures, will not be part of the serialized data.
124
+ *
125
+ * @since 6.0.6
126
+ *
127
+ * @return array An empty array, the object is not serializable.
128
+ */
129
+ public function __serialize():array {
130
+ return [];
131
+ }
132
+
133
+ /**
134
+ * Returns void to not spawn the object from serialized data.
135
+ *
136
+ * @since 6.0.6
137
+ *
138
+ * @param array $data The data to unserialize.
139
+ *
140
+ * @return void Return void to not spawn the object from serialized data.
141
+ */
142
+ public function __unserialize( array $data ): void {
143
+ return;
144
+ }
145
+
146
  }
src/Events/Custom_Tables/V1/WP_Query/Repository/Custom_Tables_Query_Filters.php CHANGED
@@ -347,41 +347,6 @@ class Custom_Tables_Query_Filters extends Query_Filters {
347
  parent::join( $join_clause, $id, $override );
348
  }
349
 
350
- /**
351
- * Overrides the base method to handle requests based on the post parent, usually coming from PRO.
352
- *
353
- * @since 6.0.0
354
- *
355
- * @param string $where_clause The original WHERE clause the repository is adding to the query.
356
- * @param string|null $id An optional unique identifier for the query.
357
- * @param bool $override Whether to override a pre-existing WHERE clause with this one, if present, or
358
- * not. This will only apply if the `$id` is provided.
359
- */
360
- public function where( $where_clause, $id = null, $override = false ) {
361
- global $wpdb;
362
-
363
- // @see Tribe__Events__Pro__Repositories__Event::filter_by_in_series for the origin of this statement.
364
- $is_in_series_where = preg_match(
365
- '/^' . preg_quote( "{$wpdb->posts}.post_parent", '/' ) . '\\s?=\\s?(?<id>\\d+)/',
366
- $where_clause,
367
- $m );
368
-
369
- // TODO: Move into PRO?
370
- if ( $is_in_series_where && isset( $m['id'] ) ) {
371
- $occurrences = Occurrences::table_name( true );
372
- $occurrence_id = Occurrence::normalize_id( absint( $m['id'] ) );
373
- $occurrence = Occurrence::find( $occurrence_id, 'occurrence_id' );
374
-
375
- if ( ! $occurrence instanceof Occurrence ) {
376
- return;
377
- }
378
-
379
- $where_clause = (string) $wpdb->prepare( "{$occurrences}.post_id = %d", $occurrence->post_id );
380
- }
381
-
382
- parent::where( $where_clause, $id, $override );
383
- }
384
-
385
  /**
386
  * Sets the mask value for a query var, or a list of query vars, that should be applied at filtering time.
387
  *
@@ -437,7 +402,7 @@ class Custom_Tables_Query_Filters extends Query_Filters {
437
  // Nothing to deduplicate.
438
  return $query_join;
439
  }
440
-
441
  // Break each current JOIN clause into a set of couples in the shape `['JOIN' 'table on ...']`.
442
  $query_vars_join_couples = [];
443
  $preg_split_flags = PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE;
347
  parent::join( $join_clause, $id, $override );
348
  }
349
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
350
  /**
351
  * Sets the mask value for a query var, or a list of query vars, that should be applied at filtering time.
352
  *
402
  // Nothing to deduplicate.
403
  return $query_join;
404
  }
405
+
406
  // Break each current JOIN clause into a set of couples in the shape `['JOIN' 'table on ...']`.
407
  $query_vars_join_couples = [];
408
  $preg_split_flags = PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE;
src/Events/Custom_Tables/V1/admin-views/migration/partials/failure-event-loop.php CHANGED
@@ -17,7 +17,7 @@ use TEC\Events\Custom_Tables\V1\Migration\String_Dictionary;
17
  } else {
18
  ?>
19
  <a target="_blank"
20
- href="<?php echo get_edit_post_link( $event->source_event_post->ID, false ) ?>"><?php echo esc_html( $event->source_event_post->post_title ); ?></a>
21
 
22
  <?php
23
  echo $event->get_migration_strategy_text();
17
  } else {
18
  ?>
19
  <a target="_blank"
20
+ href="<?php echo get_edit_post_link( $event->source_event_post->ID ?? null, false ) ?>"><?php echo esc_html( $event->source_event_post->post_title ?? "[Unknown title]" ); ?></a>
21
 
22
  <?php
23
  echo $event->get_migration_strategy_text();
src/Events/Custom_Tables/V1/admin-views/migration/phase/migration-prompt.php CHANGED
@@ -13,8 +13,8 @@ use TEC\Events\Custom_Tables\V1\Migration\String_Dictionary;
13
 
14
 
15
  $alert_classes = [
16
- 'tec-ct1-upgrade__alert' => true,
17
- 'tec-ct1-upgrade__alert--error' => (bool) $report->has_errors,
18
  ];
19
  ?>
20
  <div class="tec-ct1-upgrade__row">
@@ -40,23 +40,33 @@ $alert_classes = [
40
  <i class="tec-ct1-upgrade__alert-icon">i</i>
41
  <span>
42
  <?php
43
- if ( $report->has_errors ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
  echo esc_html( $text->get( 'migration-is-blocked' ) );
45
  } else {
46
- if ( $preview_unsupported ) {
47
- echo sprintf(
48
- esc_html( $text->get( 'preview-unsupported' ) ),
49
- '<strong>',
50
- '</strong>'
51
- );
52
- } else {
53
- echo sprintf(
54
- esc_html( $text->get( 'preview-estimate' ) ),
55
- '<strong>',
56
- '</strong>',
57
- $report->estimated_time_in_minutes
58
- );
59
- }
60
  $addendum = $text->get( 'migration-prompt-plugin-state-addendum' );
61
  if ( $addendum ) {
62
  ?>
@@ -64,7 +74,8 @@ $alert_classes = [
64
  <?php
65
  }
66
  ?>
67
- <a href="<?php echo esc_url( $text->get( 'learn-more-button-url' ) ); ?>" target="_blank" rel="noopener">
 
68
  <?php echo esc_html( $text->get( 'learn-more-button' ) ); ?>.
69
  </a>
70
  <?php
@@ -105,7 +116,7 @@ if ( ! $preview_unsupported ) {
105
  <div class="tec-ct1-upgrade__row tec-ct1-action-container">
106
  <div class="content-container">
107
  <?php
108
- if ( ! $report->has_errors ) {
109
  ?>
110
  <button class="tec-ct1-upgrade-start-migration"
111
  type="button"><?php echo esc_html( $text->get( 'start-migration-button' ) ); ?></button>
13
 
14
 
15
  $alert_classes = [
16
+ 'tec-ct1-upgrade__alert' => true,
17
+ 'tec-ct1-upgrade__alert--error' => (bool) $report->has_errors,
18
  ];
19
  ?>
20
  <div class="tec-ct1-upgrade__row">
40
  <i class="tec-ct1-upgrade__alert-icon">i</i>
41
  <span>
42
  <?php
43
+ if ( $preview_unsupported ) {
44
+ echo sprintf(
45
+ esc_html( $text->get( 'preview-unsupported' ) ),
46
+ '<strong>',
47
+ '</strong>'
48
+ );
49
+ $addendum = $text->get( 'migration-prompt-plugin-state-addendum' );
50
+ if ( $addendum ) {
51
+ ?>
52
+ <strong><?php echo esc_html( $addendum ); ?></strong>
53
+ <?php
54
+ }
55
+ ?>
56
+ <a href="<?php echo esc_url( $text->get( 'learn-more-button-url' ) ); ?>" target="_blank"
57
+ rel="noopener">
58
+ <?php echo esc_html( $text->get( 'learn-more-button' ) ); ?>.
59
+ </a>
60
+ <?php
61
+ } else if ( $report->has_errors ) {
62
  echo esc_html( $text->get( 'migration-is-blocked' ) );
63
  } else {
64
+ echo sprintf(
65
+ esc_html( $text->get( 'preview-estimate' ) ),
66
+ '<strong>',
67
+ '</strong>',
68
+ $report->estimated_time_in_minutes
69
+ );
 
 
 
 
 
 
 
 
70
  $addendum = $text->get( 'migration-prompt-plugin-state-addendum' );
71
  if ( $addendum ) {
72
  ?>
74
  <?php
75
  }
76
  ?>
77
+ <a href="<?php echo esc_url( $text->get( 'learn-more-button-url' ) ); ?>" target="_blank"
78
+ rel="noopener">
79
  <?php echo esc_html( $text->get( 'learn-more-button' ) ); ?>.
80
  </a>
81
  <?php
116
  <div class="tec-ct1-upgrade__row tec-ct1-action-container">
117
  <div class="content-container">
118
  <?php
119
+ if ( ! $report->has_errors || $preview_unsupported ) {
120
  ?>
121
  <button class="tec-ct1-upgrade-start-migration"
122
  type="button"><?php echo esc_html( $text->get( 'start-migration-button' ) ); ?></button>
src/Tribe/API.php CHANGED
@@ -452,13 +452,30 @@ if ( ! class_exists( 'Tribe__Events__API' ) ) {
452
  return $data;
453
  }
454
 
 
 
 
455
  // Additionally store datetimes in UTC
456
  if ( empty( $data['EventStartDateUTC'] ) ) {
457
- $data['EventStartDateUTC'] = Tribe__Events__Timezones::to_utc( $data['EventStartDate'], $data['EventTimezone'] );
 
 
 
 
 
 
 
458
  }
459
 
460
  if ( empty( $data['EventEndDateUTC'] ) ) {
461
- $data['EventEndDateUTC'] = Tribe__Events__Timezones::to_utc( $data['EventEndDate'], $data['EventTimezone'] );
 
 
 
 
 
 
 
462
  }
463
 
464
  // sanity check that start date < end date
452
  return $data;
453
  }
454
 
455
+ $utc_tz = new DateTimeZone( 'UTC' );
456
+ $is_utc_offset = Tribe__Events__Timezones::is_utc_offset( $data['EventTimezone'] );
457
+
458
  // Additionally store datetimes in UTC
459
  if ( empty( $data['EventStartDateUTC'] ) ) {
460
+ if ( $is_utc_offset ) {
461
+ // Convert a UTC offset timezone to a localized timezone, e.g. UTC-5 to America/New_York.
462
+ $data['EventStartDateUTC'] = Tribe__Date_Utils::immutable( $data['EventStartDate'], $data['EventTimezone'] )
463
+ ->setTimezone( $utc_tz )
464
+ ->format( Tribe__Date_Utils::DBDATETIMEFORMAT );
465
+ } else {
466
+ $data['EventStartDateUTC'] = Tribe__Events__Timezones::to_utc( $data['EventStartDate'], $data['EventTimezone'] );
467
+ }
468
  }
469
 
470
  if ( empty( $data['EventEndDateUTC'] ) ) {
471
+ if ( $is_utc_offset ) {
472
+ // Convert a UTC offset timezone to a localized timezone, e.g. UTC-5 to America/New_York.
473
+ $data['EventEndDateUTC'] = Tribe__Date_Utils::immutable( $data['EventEndDate'], $data['EventTimezone'] )
474
+ ->setTimezone( $utc_tz )
475
+ ->format( Tribe__Date_Utils::DBDATETIMEFORMAT );
476
+ } else {
477
+ $data['EventEndDateUTC'] = Tribe__Events__Timezones::to_utc( $data['EventEndDate'], $data['EventTimezone'] );
478
+ }
479
  }
480
 
481
  // sanity check that start date < end date
src/Tribe/Admin/Timezone_Updater.php CHANGED
@@ -177,7 +177,15 @@ class Tribe__Events__Admin__Timezone_Updater {
177
  * @return bool
178
  */
179
  public function update_needed() {
180
- return (bool) $this->find( 1, true );
 
 
 
 
 
 
 
 
181
  }
182
 
183
  /**
177
  * @return bool
178
  */
179
  public function update_needed() {
180
+ $timed_option_key = 'events_timezone_update_needed';
181
+ $update_needed = tec_timed_option()->get( $timed_option_key );
182
+
183
+ if ( null === $update_needed ) {
184
+ $update_needed = (bool) $this->find( 1, true );
185
+ tec_timed_option()->set( $timed_option_key, $update_needed );
186
+ }
187
+
188
+ return $update_needed;
189
  }
190
 
191
  /**
src/Tribe/Front_Page_View.php CHANGED
@@ -30,6 +30,7 @@ class Tribe__Events__Front_Page_View {
30
  // Implement front page view
31
  add_action( 'parse_query', [ $this, 'parse_query' ], 5 );
32
  add_filter( 'tribe_events_get_link', [ $this, 'main_event_page_links' ] );
 
33
  }
34
 
35
  add_action( 'parse_query', [ $this, 'parse_customizer_query' ] );
@@ -235,6 +236,8 @@ class Tribe__Events__Front_Page_View {
235
  return $output;
236
  }
237
 
 
 
238
  $label = sprintf(
239
  esc_html_x( 'Main %s Page', 'Customizer static front page setting', 'the-events-calendar' ),
240
  tribe_get_event_label_plural()
@@ -243,6 +246,7 @@ class Tribe__Events__Front_Page_View {
243
  $selected = $this->is_page_on_front() ? 'selected' : '';
244
  $option = '<option class="level-0" value="' . $this->get_virtual_id() . '" ' . $selected . '>' . $label . '</option></select>';
245
  return str_replace( '</select>', $option, $output );
 
246
  }
247
 
248
  /**
@@ -268,6 +272,7 @@ class Tribe__Events__Front_Page_View {
268
  } elseif ( 'page' === $value && $this->is_virtual_page_on_front() ) {
269
  tribe_update_option( 'front_page_event_archive', true );
270
  }
 
271
  return $value;
272
  }
273
 
@@ -349,4 +354,24 @@ class Tribe__Events__Front_Page_View {
349
  public function get_virtual_id() {
350
  return $this->home_virtual_ID;
351
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
352
  }
30
  // Implement front page view
31
  add_action( 'parse_query', [ $this, 'parse_query' ], 5 );
32
  add_filter( 'tribe_events_get_link', [ $this, 'main_event_page_links' ] );
33
+ add_filter( 'pre_option_page_on_front', [ $this, 'hydrate_virtual_page_cache' ] );
34
  }
35
 
36
  add_action( 'parse_query', [ $this, 'parse_customizer_query' ] );
236
  return $output;
237
  }
238
 
239
+ $this->hydrate_virtual_page_cache();
240
+
241
  $label = sprintf(
242
  esc_html_x( 'Main %s Page', 'Customizer static front page setting', 'the-events-calendar' ),
243
  tribe_get_event_label_plural()
246
  $selected = $this->is_page_on_front() ? 'selected' : '';
247
  $option = '<option class="level-0" value="' . $this->get_virtual_id() . '" ' . $selected . '>' . $label . '</option></select>';
248
  return str_replace( '</select>', $option, $output );
249
+
250
  }
251
 
252
  /**
272
  } elseif ( 'page' === $value && $this->is_virtual_page_on_front() ) {
273
  tribe_update_option( 'front_page_event_archive', true );
274
  }
275
+
276
  return $value;
277
  }
278
 
354
  public function get_virtual_id() {
355
  return $this->home_virtual_ID;
356
  }
357
+
358
+ /**
359
+ * Hydrates the post cache for the post that should represent the virtual page.
360
+ *
361
+ * @since 6.0.6
362
+ *
363
+ * @param mixed|null $input The first iput of the method, when used as a filter.
364
+ *
365
+ * @return mixed|null The first input of the method, when used as a filter, unmodified.
366
+ */
367
+ public function hydrate_virtual_page_cache( $input = null ) {
368
+ if ( wp_cache_get( $this->home_virtual_ID, 'posts' ) instanceof WP_Post ) {
369
+ return $input;
370
+ }
371
+
372
+ // Since the page is a virtual one, do not set the post ID, it will be set to `0` by default.
373
+ wp_cache_set( $this->home_virtual_ID, new WP_Post( (object) [ 'post_type' => 'page' ] ), 'posts' );
374
+
375
+ return $input;
376
+ }
377
  }
src/Tribe/Main.php CHANGED
@@ -37,7 +37,7 @@ if ( ! class_exists( 'Tribe__Events__Main' ) ) {
37
  const VENUE_POST_TYPE = 'tribe_venue';
38
  const ORGANIZER_POST_TYPE = 'tribe_organizer';
39
 
40
- const VERSION = '6.0.5';
41
 
42
  /**
43
  * Min Pro Addon
37
  const VENUE_POST_TYPE = 'tribe_venue';
38
  const ORGANIZER_POST_TYPE = 'tribe_organizer';
39
 
40
+ const VERSION = '6.0.6';
41
 
42
  /**
43
  * Min Pro Addon
src/Tribe/Query.php CHANGED
@@ -6,8 +6,13 @@
6
  use Tribe__Utils__Array as Arr;
7
  use Tribe__Date_Utils as Dates;
8
  use Tribe__Events__Main as TEC;
 
 
 
9
 
10
  class Tribe__Events__Query {
 
 
11
  /**
12
  * @since 4.9.4
13
  *
@@ -22,20 +27,35 @@ class Tribe__Events__Query {
22
  * @param WP_Query $query
23
  */
24
  public static function parse_query( $query ) {
25
- global $wp_query;
26
- if ( is_admin() ) {
27
- return $query;
28
  }
29
 
30
  // If this is set then the class will bail out of any filtering.
31
  if ( $query->get( 'tribe_suppress_query_filters', false ) ) {
32
- return $query;
33
  }
34
 
35
- $context = tribe_context();
 
 
 
 
36
 
37
- // These are only required for Main Query stuff.
38
- if ( ! ( $context->is( 'is_main_query' ) && $context->is( 'tec_post_type' ) ) ) {
 
 
 
 
 
 
 
 
 
 
 
39
 
40
  if ( $query->is_home() ) {
41
  /**
@@ -43,87 +63,67 @@ class Tribe__Events__Query {
43
  * set when the SQL query is constructed to avoid having a is_page() instead of a is_home().
44
  */
45
  add_filter( 'option_page_on_front', [ __CLASS__, 'default_page_on_front' ] );
46
- // check option for including events in the main wordpress loop, if true, add events post type
47
- if ( tribe_get_option( 'showEventsInMainLoop', false )
48
- && ( ! isset( $wp_query ) || ! get_query_var( 'tribe_events_front_page' ) ) ) {
49
- $query->query_vars['post_type'] = isset( $query->query_vars['post_type'] )
50
- ? ( array ) $query->query_vars['post_type']
51
- : [ 'post' ];
52
-
53
- if ( ! in_array( Tribe__Events__Main::POSTTYPE, $query->query_vars['post_type'], true ) ) {
54
- $query->query_vars['post_type'][] = Tribe__Events__Main::POSTTYPE;
55
- }
56
- $query->tribe_is_multi_posttype = true;
57
- }
58
- }
59
-
60
 
61
- if ( ( (array) $query->get( 'post_type', [] ) ) === [ Tribe__Events__Main::POSTTYPE ] ) {
62
- // Not the main query in Event context, but it's an event query: check back later.
 
 
 
 
63
  add_filter( 'parse_query', [ __CLASS__, 'filter_and_order_by_date' ], 1000 );
64
  }
65
-
66
- return $query;
67
  }
68
 
69
- // set paged
70
- if ( isset( $_GET['tribe_paged'] ) ) {
71
- $query->set( 'paged', absint( tribe_get_request_var( 'tribe_paged' ) ) );
72
- }
73
 
74
- // Add tribe events post type to tag queries only in tag archives
75
- if (
76
- $query->is_tag
77
- && (array) $query->get( 'post_type' ) != [ Tribe__Events__Main::POSTTYPE ]
 
78
  ) {
79
- $types = $query->get( 'post_type' );
80
-
81
- if ( empty( $types ) ) {
82
- $types = [ 'post' ];
83
- }
84
-
85
- if ( is_array( $types ) && $query->is_main_query() ) {
86
- $types[] = Tribe__Events__Main::POSTTYPE;
87
- } elseif ( $query->is_main_query() ) {
88
- if ( is_string( $types ) ) {
89
- $types = [ $types, Tribe__Events__Main::POSTTYPE ];
90
- } else {
91
- if ( $types != 'any' ) {
92
- $types = [ 'post', Tribe__Events__Main::POSTTYPE ];
93
- }
94
- }
95
- }
96
-
97
- $query->set( 'post_type', $types );
98
  }
99
 
100
- $types = (array) $context->get( 'post_type' );
 
101
 
102
- // check if any possibility of this being an event query
103
- $query->tribe_is_event = $context->is( 'event_post_type' );
104
-
105
- $query->tribe_is_multi_posttype = ( $query->tribe_is_event && count( $types ) >= 2 ) || in_array( 'any', $types );
 
 
106
 
107
  // check if any possibility of this being an event category
108
- $query->tribe_is_event_category = $context->is( 'event_category' );
 
 
109
 
110
- $query->tribe_is_event_venue = $context->is( 'venue_post_type' );
111
 
112
- $query->tribe_is_event_organizer = $context->is( 'organizer_post_type' );
 
 
 
113
 
114
- $query->tribe_is_event_query = $context->is( 'tec_post_type' );
115
 
116
- $query->tribe_is_past = 'past' === $context->get( 'event_display' );
 
117
 
118
- // never allow 404 on month view
119
  if (
120
- $query->is_main_query()
121
- && 'month' === $query->get( 'eventDisplay' )
122
- && ! $query->is_tax
123
- && ! $query->tribe_is_event_category
124
  ) {
125
  $query->is_post_type_archive = true;
126
- $query->queried_object = get_post_type_object( Tribe__Events__Main::POSTTYPE );
127
  $query->queried_object_id = 0;
128
  }
129
 
@@ -535,4 +535,43 @@ class Tribe__Events__Query {
535
  $query->query['meta_query'] = $query->query_vars['meta_query'];
536
  $query->query['orderby'] = $query->query_vars['orderby'];
537
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
538
  }
6
  use Tribe__Utils__Array as Arr;
7
  use Tribe__Date_Utils as Dates;
8
  use Tribe__Events__Main as TEC;
9
+ use Tribe__Events__Venue as Venue;
10
+ use Tribe__Events__Organizer as Organizer;
11
+ use Tribe__Admin__Helpers as Admin_Helpers;
12
 
13
  class Tribe__Events__Query {
14
+ use Tribe__Events__Query_Deprecated;
15
+
16
  /**
17
  * @since 4.9.4
18
  *
27
  * @param WP_Query $query
28
  */
29
  public static function parse_query( $query ) {
30
+ // Do not act on wrong object types or in the context of an Admin request.
31
+ if ( ! $query instanceof WP_Query || is_admin() ) {
32
+ return;
33
  }
34
 
35
  // If this is set then the class will bail out of any filtering.
36
  if ( $query->get( 'tribe_suppress_query_filters', false ) ) {
37
+ return;
38
  }
39
 
40
+ // Work out if this is an Event query or not, do not set the flag yet.
41
+ $is_event_query = (array) $query->get( 'post_type' ) === [ TEC::POSTTYPE ];
42
+ $any_post_type = (array) $query->get( 'post_type' ) === [ 'any' ];
43
+ $is_main_query = $query->is_main_query();
44
+ $query_post_types = self::get_query_post_types( $query );
45
 
46
+ $tec_post_types = [ TEC::POSTTYPE, Venue::POSTTYPE, Organizer::POSTTYPE ];
47
+
48
+ if ( $is_main_query ) {
49
+ if ( $query->is_single() && count( array_intersect( $query_post_types, $tec_post_types ) ) === 0 ) {
50
+ // Do not modify a single query for a non-TEC post type.
51
+ return;
52
+ }
53
+
54
+ // Commute the `tribe_paged` query var to the `paged` one, if set.
55
+ $paged = tribe_get_request_var( 'tribe_paged' );
56
+ if ( $paged !== null ) {
57
+ $query->set( 'paged', (int) $paged );
58
+ }
59
 
60
  if ( $query->is_home() ) {
61
  /**
63
  * set when the SQL query is constructed to avoid having a is_page() instead of a is_home().
64
  */
65
  add_filter( 'option_page_on_front', [ __CLASS__, 'default_page_on_front' ] );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
 
67
+ // Include Events in the main loop if the option is checked.
68
+ if ( ! $any_post_type && tribe_get_option( 'showEventsInMainLoop', false ) ) {
69
+ self::add_post_type_to_query( $query, TEC::POSTTYPE );
70
+ }
71
+ } else if ( $is_event_query ) {
72
+ // Not the main query, but it's an event query: check back later to filter and order by date.
73
  add_filter( 'parse_query', [ __CLASS__, 'filter_and_order_by_date' ], 1000 );
74
  }
 
 
75
  }
76
 
77
+ // Refresh the value of the flag: it might have changed in the previous block.
78
+ $is_event_query = (array) $query->get( 'post_type' ) === [ TEC::POSTTYPE ];
79
+ // Refresh the query post types: they might have been modified.
80
+ $query_post_types = (array) $query->get( 'post_type' );
81
 
82
+ // Add Events to tag archives when not looking at the admin screen for posts.
83
+ if ( ! $any_post_type
84
+ && $query->is_tag
85
+ && ! $is_event_query
86
+ && ! Admin_Helpers::instance()->is_post_type_screen( 'post' )
87
  ) {
88
+ self::add_post_type_to_query( $query, TEC::POSTTYPE );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
  }
90
 
91
+ // Flag the query as one to fetch Events.
92
+ $query->tribe_is_event = $is_event_query;
93
 
94
+ // This query will fetch the Event post type, and others.
95
+ $query->tribe_is_multi_posttype = $any_post_type
96
+ || (
97
+ count( $query_post_types ) > 1
98
+ && in_array( TEC::POSTTYPE, $query_post_types, true )
99
+ );
100
 
101
  // check if any possibility of this being an event category
102
+ $query->tribe_is_event_category = $query->is_tax( TEC::TAXONOMY );
103
+
104
+ $query->tribe_is_event_venue = $query_post_types === [ Venue::POSTTYPE ];
105
 
106
+ $query->tribe_is_event_organizer = $query_post_types === [ Organizer::POSTTYPE ];
107
 
108
+ $query->tribe_is_event_query = $query->tribe_is_event
109
+ || $query->tribe_is_event_category
110
+ || $query->tribe_is_event_venue
111
+ || $query->tribe_is_event_organizer;
112
 
113
+ $event_display = $query->get( 'eventDisplay' );
114
 
115
+ $query->tribe_is_past = ( $is_main_query && 'past' === tribe_context()->get( 'event_display' ) )
116
+ || $event_display === 'past';
117
 
118
+ // Never allow 404 on month view.
119
  if (
120
+ ! $query->tribe_is_event_category
121
+ && $is_main_query
122
+ && $event_display === 'month'
123
+ && ! $query->is_tax()
124
  ) {
125
  $query->is_post_type_archive = true;
126
+ $query->queried_object = get_post_type_object( TEC::POSTTYPE );
127
  $query->queried_object_id = 0;
128
  }
129
 
535
  $query->query['meta_query'] = $query->query_vars['meta_query'];
536
  $query->query['orderby'] = $query->query_vars['orderby'];
537
  }
538
+
539
+ /**
540
+ * Returns the query post type(s) in array format.
541
+ *
542
+ * @since 6.0.6
543
+ *
544
+ * @param WP_Query $query The query object to read the post type entry from.
545
+ *
546
+ * @return array<string> The post type(s) read from the query.
547
+ */
548
+ protected static function get_query_post_types( WP_Query $query ): array {
549
+ $query_post_types = (array) $query->get( 'post_type' );
550
+
551
+ // A query for the main posts page will not have a `post_type` set: let's correct that now.
552
+ if ( $query_post_types === [ '' ] ) {
553
+ $query_post_types = [ 'post' ];
554
+ }
555
+
556
+ return $query_post_types;
557
+ }
558
+
559
+ /**
560
+ * Updates the query post count to include the specified ones.
561
+ *
562
+ * @since 6.0.6
563
+ *
564
+ * @param WP_Query $query The query object to modify.
565
+ * @param string ...$post_types The post types to add to the query `post_types` entry.
566
+ *
567
+ * @return void The query object is modified by reference.
568
+ */
569
+ protected static function add_post_type_to_query( WP_Query $query, string ...$post_types ): void {
570
+ $query_post_types = self::get_query_post_types( $query );
571
+
572
+ $updated_post_types = array_unique( array_merge( $post_types, $query_post_types ) );
573
+
574
+ $query->set( 'post_type', $updated_post_types );
575
+ $query->query['post_type'] = $updated_post_types;
576
+ }
577
  }
src/Tribe/Repositories/Event.php CHANGED
@@ -1781,14 +1781,19 @@ class Tribe__Events__Repositories__Event extends Tribe__Repository {
1781
  */
1782
  public function filter_by_hidden_on_upcoming( $hidden ) {
1783
  $hidden = tribe_is_truthy( $hidden );
 
1784
 
1785
  if ( $hidden ) {
1786
- $this->by( 'meta_equals', '_EventHideFromUpcoming', 'yes' );
1787
-
1788
- return;
 
 
 
 
 
 
1789
  }
1790
-
1791
- $this->by( 'meta_not_exists', '_EventHideFromUpcoming' );
1792
  }
1793
 
1794
  /**
1781
  */
1782
  public function filter_by_hidden_on_upcoming( $hidden ) {
1783
  $hidden = tribe_is_truthy( $hidden );
1784
+ $hidden_posts = tribe( \Tribe\Events\Views\V2\Query\Hide_From_Upcoming_Controller::class )->get_hidden_post_ids();
1785
 
1786
  if ( $hidden ) {
1787
+ if ( isset( $this->query_args['post__in'] ) ) {
1788
+ $hidden_posts = array_merge( (array) $this->query_args['post__in'], $hidden_posts );
1789
+ }
1790
+ $this->in( $hidden_posts );
1791
+ } else {
1792
+ if ( isset( $this->query_args['post__not_in'] ) ) {
1793
+ $hidden_posts = array_merge( (array) $this->query_args['post__not_in'], $hidden_posts );
1794
+ }
1795
+ $this->not_in( $hidden_posts );
1796
  }
 
 
1797
  }
1798
 
1799
  /**
src/Tribe/Rewrite.php CHANGED
@@ -639,7 +639,11 @@ class Tribe__Events__Rewrite extends Tribe__Rewrite {
639
  return $query_vars;
640
  }
641
 
642
- parse_str( parse_url( $url, PHP_URL_QUERY ), $url_query_vars );
 
 
 
 
643
 
644
  if (
645
  ! isset( $query_vars['eventDisplay'], $url_query_vars['eventDisplay'] )
639
  return $query_vars;
640
  }
641
 
642
+ $query_string = parse_url( $url, PHP_URL_QUERY );
643
+ $url_query_vars = [];
644
+ if ( ! empty( $query_string ) ) {
645
+ parse_str( $query_string, $url_query_vars );
646
+ }
647
 
648
  if (
649
  ! isset( $query_vars['eventDisplay'], $url_query_vars['eventDisplay'] )
src/Tribe/Service_Providers/Context.php CHANGED
@@ -67,6 +67,15 @@ class Context extends \tad_DI52_ServiceProvider {
67
  Tribe__Context::WP_PARSED => [ 'eventDisplay' ],
68
  Tribe__Context::REQUEST_VAR => [ 'view', 'tribe_view', 'tribe_event_display', 'eventDisplay' ],
69
  Tribe__Context::QUERY_VAR => [ 'tribe_view', 'eventDisplay' ],
 
 
 
 
 
 
 
 
 
70
  Tribe__Context::TRIBE_OPTION => 'viewOption',
71
  ],
72
  'write' => [
67
  Tribe__Context::WP_PARSED => [ 'eventDisplay' ],
68
  Tribe__Context::REQUEST_VAR => [ 'view', 'tribe_view', 'tribe_event_display', 'eventDisplay' ],
69
  Tribe__Context::QUERY_VAR => [ 'tribe_view', 'eventDisplay' ],
70
+ Tribe__Context::FUNC => [
71
+ static function () {
72
+ if ( 1 === (int) tribe_get_request_var( 'ical', 0 ) && is_singular( TEC::POSTTYPE ) ) {
73
+ return 'single-event';
74
+ }
75
+
76
+ return Tribe__Context::NOT_FOUND;
77
+ }
78
+ ],
79
  Tribe__Context::TRIBE_OPTION => 'viewOption',
80
  ],
81
  'write' => [
src/Tribe/Views/V2/Hooks.php CHANGED
@@ -44,8 +44,6 @@ class Hooks extends \tad_DI52_ServiceProvider {
44
  * @since 4.9.2
45
  */
46
  public function register() {
47
- $this->container->singleton( Event_Query_Controller::class, Event_Query_Controller::class );
48
-
49
  $this->add_actions();
50
  $this->add_filters();
51
  }
44
  * @since 4.9.2
45
  */
46
  public function register() {
 
 
47
  $this->add_actions();
48
  $this->add_filters();
49
  }
src/Tribe/Views/V2/Query/Event_Query_Controller.php CHANGED
@@ -2,8 +2,8 @@
2
  /**
3
  * Controls an Event query connecting it with the Repository and Context.
4
  *
 
5
  * @package Tribe\Events\Views\V2\Query
6
- * @since 4.9.2
7
  */
8
 
9
  namespace Tribe\Events\Views\V2\Query;
@@ -47,12 +47,10 @@ class Event_Query_Controller {
47
  *
48
  * @param null|array $posts The array of posts to populate. By default empty when coming from the WP_Query
49
  * class, it might have been pre-populated by other methods though.
 
50
  * @return array|null A populated list of posts, or the original value if the filtering should not apply.
51
  */
52
- public
53
- function inject_posts(
54
- $posts = null, \WP_Query $query = null
55
- ) {
56
  if ( ! $query instanceof \WP_Query ) {
57
  return $posts;
58
  }
2
  /**
3
  * Controls an Event query connecting it with the Repository and Context.
4
  *
5
+ * @since 4.9.2
6
  * @package Tribe\Events\Views\V2\Query
 
7
  */
8
 
9
  namespace Tribe\Events\Views\V2\Query;
47
  *
48
  * @param null|array $posts The array of posts to populate. By default empty when coming from the WP_Query
49
  * class, it might have been pre-populated by other methods though.
50
+ *
51
  * @return array|null A populated list of posts, or the original value if the filtering should not apply.
52
  */
53
+ public function inject_posts( $posts = null, \WP_Query $query = null ) {
 
 
 
54
  if ( ! $query instanceof \WP_Query ) {
55
  return $posts;
56
  }
src/Tribe/Views/V2/Query/Hide_From_Upcoming_Controller.php ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Tribe\Events\Views\V2\Query;
4
+
5
+ use Tribe__Cache_Listener as Cache_Listener;
6
+
7
+ /**
8
+ * Class Hide_From_Upcoming_Controller
9
+ *
10
+ * @since 6.0.6
11
+ *
12
+ * @package Tribe\Events\Views\V2\Query
13
+ */
14
+ class Hide_From_Upcoming_Controller {
15
+
16
+ /**
17
+ * Stores the name of the Tribe Cache for the upcoming ids that need to be hidden.
18
+ *
19
+ * @since 6.0.6
20
+ *
21
+ * @var string
22
+ */
23
+ protected $timed_option_key = 'events_hide_from_upcoming_ids';
24
+
25
+ /**
26
+ * Determine which are the posts are supposed to be hidden.
27
+ * Please be careful with this query below, it's currently an unbound query, that is why it only runs once a day.
28
+ *
29
+ * @since 6.0.6
30
+ *
31
+ * @return array
32
+ */
33
+ public function get_hidden_post_ids(): array {
34
+ $expiration_trigger = Cache_Listener::TRIGGER_SAVE_POST;
35
+ $hidden_ids = tribe_cache()->get( $this->timed_option_key, $expiration_trigger, null );
36
+
37
+ if ( null === $hidden_ids ) {
38
+ global $wpdb;
39
+
40
+ $sql = "
41
+ SELECT {$wpdb->postmeta}.post_id
42
+ FROM {$wpdb->postmeta}
43
+ WHERE 1=1
44
+ AND {$wpdb->postmeta}.meta_key = '_EventHideFromUpcoming'
45
+ AND ( {$wpdb->postmeta}.meta_value = 'yes' OR {$wpdb->postmeta}.meta_value = '1' )
46
+ GROUP BY {$wpdb->postmeta}.post_id;
47
+ ";
48
+ $hidden_ids = $wpdb->get_col( $sql );
49
+
50
+ tribe_cache()->set( $this->timed_option_key, $hidden_ids, DAY_IN_SECONDS, $expiration_trigger );
51
+ }
52
+
53
+ return (array) $hidden_ids;
54
+ }
55
+
56
+ }
src/Tribe/Views/V2/Service_Provider.php CHANGED
@@ -41,11 +41,14 @@ class Service_Provider extends \tad_DI52_ServiceProvider {
41
  $this->container->singleton( Rest_Endpoint::class, Rest_Endpoint::class );
42
  $this->container->singleton( Template\Settings\Advanced_Display::class, Template\Settings\Advanced_Display::class );
43
  $this->container->singleton( Template\JSON_LD::class, Template\JSON_LD::class );
 
 
44
 
45
- tribe_register_provider( Widgets\Service_Provider::class );
46
- tribe_register_provider( Customizer\Service_Provider::class );
47
- tribe_register_provider( iCalendar\iCalendar_Handler::class );
48
- tribe_register_provider( Event_Status_Provider::class );
 
49
 
50
  $this->register_hooks();
51
  $this->register_assets();
41
  $this->container->singleton( Rest_Endpoint::class, Rest_Endpoint::class );
42
  $this->container->singleton( Template\Settings\Advanced_Display::class, Template\Settings\Advanced_Display::class );
43
  $this->container->singleton( Template\JSON_LD::class, Template\JSON_LD::class );
44
+ $this->container->singleton( Query\Event_Query_Controller::class, Query\Event_Query_Controller::class );
45
+ $this->container->singleton( Query\Hide_From_Upcoming_Controller::class, Query\Hide_From_Upcoming_Controller::class );
46
 
47
+
48
+ $this->container->register( Widgets\Service_Provider::class );
49
+ $this->container->register( Customizer\Service_Provider::class );
50
+ $this->container->register( iCalendar\iCalendar_Handler::class );
51
+ $this->container->register( Event_Status_Provider::class );
52
 
53
  $this->register_hooks();
54
  $this->register_assets();
src/Tribe/Views/V2/View.php CHANGED
@@ -2451,11 +2451,6 @@ class View implements View_Interface {
2451
  return;
2452
  }
2453
 
2454
- // If no events found, do not show.
2455
- if ( 0 === tribe_events()->found() ) {
2456
- return;
2457
- }
2458
-
2459
  $now = $this->context->get( 'now', time() );
2460
  $latest = tribe_events_latest_date();
2461
 
@@ -2516,6 +2511,11 @@ class View implements View_Interface {
2516
  return;
2517
  }
2518
 
 
 
 
 
 
2519
  if ( ! empty( $template_vars['show_latest_past'] ) ) {
2520
  $template_vars['show_latest_past'] = true;
2521
  $latest_past_view = static::make( Latest_Past_View::Class );
2451
  return;
2452
  }
2453
 
 
 
 
 
 
2454
  $now = $this->context->get( 'now', time() );
2455
  $latest = tribe_events_latest_date();
2456
 
2511
  return;
2512
  }
2513
 
2514
+ // If no events found, do not show.
2515
+ if ( 0 === tribe_events()->found() ) {
2516
+ return;
2517
+ }
2518
+
2519
  if ( ! empty( $template_vars['show_latest_past'] ) ) {
2520
  $template_vars['show_latest_past'] = true;
2521
  $latest_past_view = static::make( Latest_Past_View::Class );
src/Tribe/Views/V2/Views/List_View.php CHANGED
@@ -2,8 +2,8 @@
2
  /**
3
  * The List View.
4
  *
 
5
  * @package Tribe\Events\Views\V2\Views
6
- * @since 4.9.2
7
  */
8
 
9
  namespace Tribe\Events\Views\V2\Views;
@@ -19,6 +19,7 @@ use Tribe__Utils__Array as Arr;
19
 
20
  class List_View extends View {
21
  use List_Behavior;
 
22
  /**
23
  * Slug for this view
24
  *
@@ -78,7 +79,7 @@ class List_View extends View {
78
 
79
  if ( 'past' === $display ) {
80
  $url = parent::next_url( $canonical, [ Utils\View::get_past_event_display_key() => 'past' ] );
81
- } else if ( $current_page > 1 ) {
82
  $url = parent::prev_url( $canonical );
83
  } else {
84
  $url = $this->get_past_url( $canonical );
@@ -125,7 +126,7 @@ class List_View extends View {
125
  * @since 4.9.3
126
  *
127
  * @param bool $canonical Whether to return the canonical version of the URL or the normal one.
128
- * @param int $page The page to return the URL for.
129
  *
130
  * @return string The URL to the past URL page, if available, or an empty string.
131
  */
@@ -140,6 +141,7 @@ class List_View extends View {
140
  ] ) ) );
141
 
142
  $past->order_by( '__none' );
 
143
 
144
  if ( $past->count() > 0 ) {
145
  $event_display_key = Utils\View::get_past_event_display_key();
@@ -192,7 +194,7 @@ class List_View extends View {
192
  * @since 4.9.3
193
  *
194
  * @param bool $canonical Whether to return the canonical version of the URL or the normal one.
195
- * @param int $page The page to return the URL for.
196
  *
197
  * @return string The URL to the upcoming URL page, if available, or an empty string.
198
  */
@@ -200,7 +202,7 @@ class List_View extends View {
200
  $default_date = 'now';
201
  $date = $this->context->get( 'event_date', $default_date );
202
  $event_date_var = $default_date === $date ? '' : $date;
203
- $url = '';
204
 
205
  $upcoming = tribe_events()->by_args( $this->setup_repository_args( $this->context->alter( [
206
  'eventDisplay' => $this->slug,
@@ -255,7 +257,7 @@ class List_View extends View {
255
 
256
  $context_arr = $context->to_array();
257
 
258
- $date = Arr::get( $context_arr, 'event_date', 'now' );
259
  $event_display = Arr::get( $context_arr, 'event_display_mode', Arr::get( $context_arr, 'event_display' ), 'current' );
260
 
261
  if ( 'past' !== $event_display ) {
2
  /**
3
  * The List View.
4
  *
5
+ * @since 4.9.2
6
  * @package Tribe\Events\Views\V2\Views
 
7
  */
8
 
9
  namespace Tribe\Events\Views\V2\Views;
19
 
20
  class List_View extends View {
21
  use List_Behavior;
22
+
23
  /**
24
  * Slug for this view
25
  *
79
 
80
  if ( 'past' === $display ) {
81
  $url = parent::next_url( $canonical, [ Utils\View::get_past_event_display_key() => 'past' ] );
82
+ } elseif ( $current_page > 1 ) {
83
  $url = parent::prev_url( $canonical );
84
  } else {
85
  $url = $this->get_past_url( $canonical );
126
  * @since 4.9.3
127
  *
128
  * @param bool $canonical Whether to return the canonical version of the URL or the normal one.
129
+ * @param int $page The page to return the URL for.
130
  *
131
  * @return string The URL to the past URL page, if available, or an empty string.
132
  */
141
  ] ) ) );
142
 
143
  $past->order_by( '__none' );
144
+ $past->per_page( 1 );
145
 
146
  if ( $past->count() > 0 ) {
147
  $event_display_key = Utils\View::get_past_event_display_key();
194
  * @since 4.9.3
195
  *
196
  * @param bool $canonical Whether to return the canonical version of the URL or the normal one.
197
+ * @param int $page The page to return the URL for.
198
  *
199
  * @return string The URL to the upcoming URL page, if available, or an empty string.
200
  */
202
  $default_date = 'now';
203
  $date = $this->context->get( 'event_date', $default_date );
204
  $event_date_var = $default_date === $date ? '' : $date;
205
+ $url = '';
206
 
207
  $upcoming = tribe_events()->by_args( $this->setup_repository_args( $this->context->alter( [
208
  'eventDisplay' => $this->slug,
257
 
258
  $context_arr = $context->to_array();
259
 
260
+ $date = Arr::get( $context_arr, 'event_date', 'now' );
261
  $event_display = Arr::get( $context_arr, 'event_display_mode', Arr::get( $context_arr, 'event_display' ), 'current' );
262
 
263
  if ( 'past' !== $event_display ) {
src/Tribe/Views/V2/iCalendar/Request.php CHANGED
@@ -73,7 +73,6 @@ class Request {
73
  $event_ids = [ $this->context->get( 'post_id' ) ];
74
  }
75
 
76
-
77
  return $event_ids;
78
  }
79
  }
73
  $event_ids = [ $this->context->get( 'post_id' ) ];
74
  }
75
 
 
76
  return $event_ids;
77
  }
78
  }
src/deprecated/Traits/Tribe__Events__Query_Deprecated.php ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Handles the `Tribe__Events__Query` class deprecated methods.
4
+ *
5
+ * This trait will only make sense in the context of the `Tribe__Events__Query` class
6
+ * and it should not be used elsewhere.
7
+ *
8
+ * @since 6.0.6
9
+ */
10
+
11
+ /**
12
+ * Trait Tribe__Events__Query_Deprecated.
13
+ *
14
+ * @since 6.0.6
15
+ */
16
+ trait Tribe__Events__Query_Deprecated {
17
+ /**
18
+ * Is hooked by init() filter to parse the WP_Query arguments for main and alt queries.
19
+ *
20
+ * @deprecated 6.0.0 Query filtering is now handled in the Views v2 component or the Custom Tables v1 component.
21
+ *
22
+ * @param object $query WP_Query object args supplied or default
23
+ *
24
+ * @return WP_Query $query The query, unmodified.
25
+ */
26
+ public static function pre_get_posts( $query ) {
27
+ _deprecated_function(
28
+ 'Tribe__Events__Query::pre_get_posts',
29
+ '6.0.0',
30
+ 'No replacement avaialble.'
31
+ );
32
+ }
33
+ }
src/resources/js/views/manager.js CHANGED
@@ -310,7 +310,7 @@ tribe.events.views.manager = {};
310
 
311
  var $link = $( this );
312
  var url = $link.attr( 'href' );
313
- var currentUrl = containerData.url;
314
  var nonce = $link.data( 'view-rest-nonce' );
315
  var shouldManageUrl = obj.shouldManageUrl( $container );
316
  var shortcodeId = $container.data( 'view-shortcode' );
@@ -321,7 +321,7 @@ tribe.events.views.manager = {};
321
  }
322
 
323
  var data = {
324
- prev_url: encodeURI( decodeURI( currentUrl ) ),
325
  url: encodeURI( decodeURI( url ) ),
326
  should_manage_url: shouldManageUrl,
327
  _wpnonce: nonce,
310
 
311
  var $link = $( this );
312
  var url = $link.attr( 'href' );
313
+ var prevUrl = containerData.prev_url;
314
  var nonce = $link.data( 'view-rest-nonce' );
315
  var shouldManageUrl = obj.shouldManageUrl( $container );
316
  var shortcodeId = $container.data( 'view-shortcode' );
321
  }
322
 
323
  var data = {
324
+ prev_url: encodeURI( decodeURI( prevUrl ) ),
325
  url: encodeURI( decodeURI( url ) ),
326
  should_manage_url: shouldManageUrl,
327
  _wpnonce: nonce,
src/views/modules/map-basic.php CHANGED
@@ -25,6 +25,7 @@ if ( ! defined( 'ABSPATH' ) ) {
25
  ?>
26
 
27
  <iframe
 
28
  width="<?php echo esc_attr( $width ); ?>"
29
  height="<?php echo esc_attr( $height ); ?>"
30
  frameborder="0" style="border:0"
25
  ?>
26
 
27
  <iframe
28
+ aria-label="<?php esc_attr_e( 'Venue location map', 'the-events-calendar' ); ?>"
29
  width="<?php echo esc_attr( $width ); ?>"
30
  height="<?php echo esc_attr( $height ); ?>"
31
  frameborder="0" style="border:0"
the-events-calendar.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Plugin Name: The Events Calendar
4
  * Description: The Events Calendar is a carefully crafted, extensible plugin that lets you easily share your events. Beautiful. Solid. Awesome.
5
- * Version: 6.0.5
6
  * Author: The Events Calendar
7
  * Author URI: https://evnt.is/1x
8
  * Text Domain: the-events-calendar
2
  /**
3
  * Plugin Name: The Events Calendar
4
  * Description: The Events Calendar is a carefully crafted, extensible plugin that lets you easily share your events. Beautiful. Solid. Awesome.
5
+ * Version: 6.0.6
6
  * Author: The Events Calendar
7
  * Author URI: https://evnt.is/1x
8
  * Text Domain: the-events-calendar
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit49497ee1d02aa8ac2b4440e830654553::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInitdcfb3a6946aeb144cba24b61f9cce864::getLoader();
vendor/composer/autoload_classmap.php CHANGED
@@ -193,6 +193,7 @@ return array(
193
  'Tribe\\Events\\Views\\V2\\Manager' => $baseDir . '/src/Tribe/Views/V2/Manager.php',
194
  'Tribe\\Events\\Views\\V2\\Messages' => $baseDir . '/src/Tribe/Views/V2/Messages.php',
195
  'Tribe\\Events\\Views\\V2\\Query\\Event_Query_Controller' => $baseDir . '/src/Tribe/Views/V2/Query/Event_Query_Controller.php',
 
196
  'Tribe\\Events\\Views\\V2\\Repository\\Event_Period' => $baseDir . '/src/Tribe/Views/V2/Repository/Event_Period.php',
197
  'Tribe\\Events\\Views\\V2\\Repository\\Event_Result' => $baseDir . '/src/Tribe/Views/V2/Repository/Event_Result.php',
198
  'Tribe\\Events\\Views\\V2\\Repository\\Events_Result_Set' => $baseDir . '/src/Tribe/Views/V2/Repository/Events_Result_Set.php',
@@ -251,4 +252,5 @@ return array(
251
  'Tribe\\Events\\Views\\V2\\iCalendar\\Traits\\Outlook_Methods' => $baseDir . '/src/Tribe/Views/V2/iCalendar/Traits/Outlook_Methods.php',
252
  'Tribe\\Events\\Views\\V2\\iCalendar\\iCalendar_Handler' => $baseDir . '/src/Tribe/Views/V2/iCalendar/iCalendar_Handler.php',
253
  'Tribe__Events__Main_Deprecated' => $baseDir . '/src/deprecated/Traits/Tribe__Events__Main_Deprecated.php',
 
254
  );
193
  'Tribe\\Events\\Views\\V2\\Manager' => $baseDir . '/src/Tribe/Views/V2/Manager.php',
194
  'Tribe\\Events\\Views\\V2\\Messages' => $baseDir . '/src/Tribe/Views/V2/Messages.php',
195
  'Tribe\\Events\\Views\\V2\\Query\\Event_Query_Controller' => $baseDir . '/src/Tribe/Views/V2/Query/Event_Query_Controller.php',
196
+ 'Tribe\\Events\\Views\\V2\\Query\\Hide_From_Upcoming_Controller' => $baseDir . '/src/Tribe/Views/V2/Query/Hide_From_Upcoming_Controller.php',
197
  'Tribe\\Events\\Views\\V2\\Repository\\Event_Period' => $baseDir . '/src/Tribe/Views/V2/Repository/Event_Period.php',
198
  'Tribe\\Events\\Views\\V2\\Repository\\Event_Result' => $baseDir . '/src/Tribe/Views/V2/Repository/Event_Result.php',
199
  'Tribe\\Events\\Views\\V2\\Repository\\Events_Result_Set' => $baseDir . '/src/Tribe/Views/V2/Repository/Events_Result_Set.php',
252
  'Tribe\\Events\\Views\\V2\\iCalendar\\Traits\\Outlook_Methods' => $baseDir . '/src/Tribe/Views/V2/iCalendar/Traits/Outlook_Methods.php',
253
  'Tribe\\Events\\Views\\V2\\iCalendar\\iCalendar_Handler' => $baseDir . '/src/Tribe/Views/V2/iCalendar/iCalendar_Handler.php',
254
  'Tribe__Events__Main_Deprecated' => $baseDir . '/src/deprecated/Traits/Tribe__Events__Main_Deprecated.php',
255
+ 'Tribe__Events__Query_Deprecated' => $baseDir . '/src/deprecated/Traits/Tribe__Events__Query_Deprecated.php',
256
  );
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit49497ee1d02aa8ac2b4440e830654553
6
  {
7
  private static $loader;
8
 
@@ -19,15 +19,15 @@ class ComposerAutoloaderInit49497ee1d02aa8ac2b4440e830654553
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit49497ee1d02aa8ac2b4440e830654553', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit49497ee1d02aa8ac2b4440e830654553', '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\ComposerStaticInit49497ee1d02aa8ac2b4440e830654553::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 ComposerAutoloaderInitdcfb3a6946aeb144cba24b61f9cce864
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInitdcfb3a6946aeb144cba24b61f9cce864', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInitdcfb3a6946aeb144cba24b61f9cce864', '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\ComposerStaticInitdcfb3a6946aeb144cba24b61f9cce864::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 ComposerStaticInit49497ee1d02aa8ac2b4440e830654553
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'T' =>
@@ -213,6 +213,7 @@ class ComposerStaticInit49497ee1d02aa8ac2b4440e830654553
213
  'Tribe\\Events\\Views\\V2\\Manager' => __DIR__ . '/../..' . '/src/Tribe/Views/V2/Manager.php',
214
  'Tribe\\Events\\Views\\V2\\Messages' => __DIR__ . '/../..' . '/src/Tribe/Views/V2/Messages.php',
215
  'Tribe\\Events\\Views\\V2\\Query\\Event_Query_Controller' => __DIR__ . '/../..' . '/src/Tribe/Views/V2/Query/Event_Query_Controller.php',
 
216
  'Tribe\\Events\\Views\\V2\\Repository\\Event_Period' => __DIR__ . '/../..' . '/src/Tribe/Views/V2/Repository/Event_Period.php',
217
  'Tribe\\Events\\Views\\V2\\Repository\\Event_Result' => __DIR__ . '/../..' . '/src/Tribe/Views/V2/Repository/Event_Result.php',
218
  'Tribe\\Events\\Views\\V2\\Repository\\Events_Result_Set' => __DIR__ . '/../..' . '/src/Tribe/Views/V2/Repository/Events_Result_Set.php',
@@ -271,14 +272,15 @@ class ComposerStaticInit49497ee1d02aa8ac2b4440e830654553
271
  'Tribe\\Events\\Views\\V2\\iCalendar\\Traits\\Outlook_Methods' => __DIR__ . '/../..' . '/src/Tribe/Views/V2/iCalendar/Traits/Outlook_Methods.php',
272
  'Tribe\\Events\\Views\\V2\\iCalendar\\iCalendar_Handler' => __DIR__ . '/../..' . '/src/Tribe/Views/V2/iCalendar/iCalendar_Handler.php',
273
  'Tribe__Events__Main_Deprecated' => __DIR__ . '/../..' . '/src/deprecated/Traits/Tribe__Events__Main_Deprecated.php',
 
274
  );
275
 
276
  public static function getInitializer(ClassLoader $loader)
277
  {
278
  return \Closure::bind(function () use ($loader) {
279
- $loader->prefixLengthsPsr4 = ComposerStaticInit49497ee1d02aa8ac2b4440e830654553::$prefixLengthsPsr4;
280
- $loader->prefixDirsPsr4 = ComposerStaticInit49497ee1d02aa8ac2b4440e830654553::$prefixDirsPsr4;
281
- $loader->classMap = ComposerStaticInit49497ee1d02aa8ac2b4440e830654553::$classMap;
282
 
283
  }, null, ClassLoader::class);
284
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInitdcfb3a6946aeb144cba24b61f9cce864
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'T' =>
213
  'Tribe\\Events\\Views\\V2\\Manager' => __DIR__ . '/../..' . '/src/Tribe/Views/V2/Manager.php',
214
  'Tribe\\Events\\Views\\V2\\Messages' => __DIR__ . '/../..' . '/src/Tribe/Views/V2/Messages.php',
215
  'Tribe\\Events\\Views\\V2\\Query\\Event_Query_Controller' => __DIR__ . '/../..' . '/src/Tribe/Views/V2/Query/Event_Query_Controller.php',
216
+ 'Tribe\\Events\\Views\\V2\\Query\\Hide_From_Upcoming_Controller' => __DIR__ . '/../..' . '/src/Tribe/Views/V2/Query/Hide_From_Upcoming_Controller.php',
217
  'Tribe\\Events\\Views\\V2\\Repository\\Event_Period' => __DIR__ . '/../..' . '/src/Tribe/Views/V2/Repository/Event_Period.php',
218
  'Tribe\\Events\\Views\\V2\\Repository\\Event_Result' => __DIR__ . '/../..' . '/src/Tribe/Views/V2/Repository/Event_Result.php',
219
  'Tribe\\Events\\Views\\V2\\Repository\\Events_Result_Set' => __DIR__ . '/../..' . '/src/Tribe/Views/V2/Repository/Events_Result_Set.php',
272
  'Tribe\\Events\\Views\\V2\\iCalendar\\Traits\\Outlook_Methods' => __DIR__ . '/../..' . '/src/Tribe/Views/V2/iCalendar/Traits/Outlook_Methods.php',
273
  'Tribe\\Events\\Views\\V2\\iCalendar\\iCalendar_Handler' => __DIR__ . '/../..' . '/src/Tribe/Views/V2/iCalendar/iCalendar_Handler.php',
274
  'Tribe__Events__Main_Deprecated' => __DIR__ . '/../..' . '/src/deprecated/Traits/Tribe__Events__Main_Deprecated.php',
275
+ 'Tribe__Events__Query_Deprecated' => __DIR__ . '/../..' . '/src/deprecated/Traits/Tribe__Events__Query_Deprecated.php',
276
  );
277
 
278
  public static function getInitializer(ClassLoader $loader)
279
  {
280
  return \Closure::bind(function () use ($loader) {
281
+ $loader->prefixLengthsPsr4 = ComposerStaticInitdcfb3a6946aeb144cba24b61f9cce864::$prefixLengthsPsr4;
282
+ $loader->prefixDirsPsr4 = ComposerStaticInitdcfb3a6946aeb144cba24b61f9cce864::$prefixDirsPsr4;
283
+ $loader->classMap = ComposerStaticInitdcfb3a6946aeb144cba24b61f9cce864::$classMap;
284
 
285
  }, null, ClassLoader::class);
286
  }