Version Description
Download this release
Release Info
Developer | bordoni |
Plugin | Event Tickets |
Version | 5.0.4 |
Comparing to | |
See all releases |
Code changes from version 5.0.3.1 to 5.0.4
- common/lang/tribe-common.pot +121 -121
- common/src/Tribe/Admin/Activation_Page.php +13 -13
- common/src/Tribe/Admin/Help_Page.php +126 -111
- common/src/Tribe/Admin/Live_Date_Preview.php +5 -5
- common/src/Tribe/Admin/Notice/Marketing.php +8 -8
- common/src/Tribe/Admin/Notice/Php_Version.php +4 -4
- common/src/Tribe/Admin/Notice/Plugin_Download.php +7 -7
- common/src/Tribe/Admin/Notice/Plugin_Upgrade_Notice.php +1 -1
- common/src/Tribe/Admin/Notices.php +25 -25
- common/src/Tribe/Ajax/Dropdown.php +14 -14
- common/src/Tribe/Ajax/Operations.php +2 -2
- common/src/Tribe/App_Shop.php +23 -13
- common/src/Tribe/Asset/Data.php +67 -67
- common/src/Tribe/Assets.php +2 -2
- common/src/Tribe/Assets_Pipeline.php +1 -1
- common/src/Tribe/Autoloader.php +4 -4
- common/src/Tribe/Cache.php +36 -0
- common/src/Tribe/Changelog_Reader.php +2 -2
- common/src/Tribe/Context.php +18 -17
- common/src/Tribe/Cost_Utils.php +27 -22
- common/src/Tribe/Credits.php +5 -5
- common/src/Tribe/Customizer.php +98 -31
- common/src/Tribe/Customizer/Control.php +20 -0
- common/src/Tribe/Customizer/Controls/Heading.php +52 -0
- common/src/Tribe/Customizer/Section.php +10 -10
- common/src/Tribe/Data.php +1 -1
- common/src/Tribe/Date_Utils.php +40 -40
- common/src/Tribe/Debug.php +1 -1
- common/src/Tribe/Dependency.php +15 -15
- common/src/Tribe/Deprecation.php +16 -16
- common/src/Tribe/Dialog/View.php +12 -0
- common/src/Tribe/Documentation/Swagger/Cost_Details_Definition_Provider.php +15 -15
- common/src/Tribe/Documentation/Swagger/Date_Details_Definition_Provider.php +22 -22
- common/src/Tribe/Documentation/Swagger/Image_Definition_Provider.php +18 -18
- common/src/Tribe/Documentation/Swagger/Image_Size_Definition_Provider.php +17 -17
- common/src/Tribe/Documentation/Swagger/Term_Definition_Provider.php +32 -32
- common/src/Tribe/Duplicate/Post.php +14 -14
- common/src/Tribe/Duplicate/Strategy/Base.php +1 -1
- common/src/Tribe/Duplicate/Strategy/Like.php +2 -2
- common/src/Tribe/Duplicate/Strategy_Factory.php +3 -3
- common/src/Tribe/Editor.php +11 -9
- common/src/Tribe/Editor/Assets.php +94 -43
- common/src/Tribe/Editor/Blocks/Abstract.php +8 -12
- common/src/Tribe/Editor/Blocks/Interface.php +1 -1
- common/src/Tribe/Editor/Configuration.php +24 -24
- common/src/Tribe/Editor/Meta.php +24 -24
- common/src/Tribe/Editor/Provider.php +2 -2
- common/src/Tribe/Editor/Utils.php +2 -2
- common/src/Tribe/Error.php +4 -4
- common/src/Tribe/Exception.php +1 -1
- common/src/Tribe/Extension.php +6 -6
- common/src/Tribe/Extension_Loader.php +9 -5
- common/src/Tribe/Field.php +11 -11
- common/src/Tribe/JSON_LD/Abstract.php +14 -14
- common/src/Tribe/Languages/Locations.php +7 -7
- common/src/Tribe/Languages/Recaptcha_Map.php +2 -2
- common/src/Tribe/Log.php +14 -15
- common/src/Tribe/Log/Action_Logger.php +1 -1
- common/src/Tribe/Log/Admin.php +23 -23
- common/src/Tribe/Log/File_Logger.php +6 -12
- common/src/Tribe/Log/Logger.php +1 -1
- common/src/Tribe/Log/Null_Logger.php +4 -4
- common/src/Tribe/Log/Service_Provider.php +28 -0
- common/src/Tribe/Main.php +7 -9
- common/src/Tribe/Meta/Chunker.php +34 -34
- common/src/Tribe/Notices.php +1 -1
- common/src/Tribe/PUE/Notices.php +11 -11
- common/src/Tribe/PUE/Package_Handler.php +1 -1
- common/src/Tribe/PUE/Plugin_Info.php +4 -4
- common/src/Tribe/PUE/Utility.php +3 -3
- common/src/Tribe/Plugin_Meta_Links.php +8 -8
- common/src/Tribe/Plugins_API.php +135 -135
- common/src/Tribe/Post_History.php +4 -4
- common/src/Tribe/Promise.php +3 -3
- common/src/Tribe/Promoter/PUE.php +4 -4
- common/src/Tribe/REST/Post_Repository.php +16 -12
- common/src/Tribe/Repository.php +127 -120
- common/src/Tribe/Repository/Core_Read_Interface.php +2 -2
- common/src/Tribe/Repository/Decorator.php +5 -5
- common/src/Tribe/Repository/Query_Filters.php +100 -100
- common/src/Tribe/Rewrite.php +13 -11
- common/src/Tribe/Service_Providers/Debug_Bar.php +3 -3
- common/src/Tribe/Service_Providers/Processes.php +11 -11
- common/src/Tribe/Service_Providers/Promoter.php +12 -12
- common/src/Tribe/Settings.php +27 -27
- common/src/Tribe/Settings_Manager.php +23 -17
- common/src/Tribe/Settings_Tab.php +12 -12
- common/src/Tribe/Simple_Table.php +3 -3
- common/src/Tribe/Support.php +21 -21
- common/src/Tribe/Support/Obfuscator.php +2 -2
- common/src/Tribe/Support/Template_Checker.php +6 -7
- common/src/Tribe/Support/Template_Checker_Report.php +2 -2
- common/src/Tribe/Tabbed_View.php +7 -7
- common/src/Tribe/Tabbed_View/Tab.php +6 -6
- common/src/Tribe/Template.php +5 -4
- common/src/Tribe/Template_Factory.php +3 -3
- common/src/Tribe/Template_Part_Cache.php +3 -3
- common/src/Tribe/Templates.php +1 -1
- common/src/Tribe/Terms.php +1 -1
- common/src/Tribe/Timezones.php +5 -5
- common/src/Tribe/Tracker.php +17 -17
- common/src/Tribe/Updater.php +4 -4
- common/src/Tribe/Utils/Array.php +146 -0
- common/src/Tribe/Utils/Callback.php +8 -8
- common/src/Tribe/Utils/Collection.php +1 -1
- common/src/Tribe/Utils/Color.php +9 -9
- common/src/Tribe/Utils/Coordinates_Provider.php +3 -3
- common/src/Tribe/Utils/Element_Attributes.php +1 -1
- common/src/Tribe/Utils/Global_ID.php +8 -8
- common/src/Tribe/Utils/JSON.php +3 -3
- common/src/Tribe/Utils/Paths.php +63 -0
- common/src/Tribe/Utils/Plugins.php +3 -3
- common/src/Tribe/Utils/Post_Root_Pool.php +2 -2
- common/src/Tribe/Validate.php +6 -6
- common/src/Tribe/Validator/Base.php +1 -1
- common/src/Tribe/View_Helpers.php +10 -10
- common/src/Tribe/Widget/Widget_Abstract.php +199 -14
- common/src/Tribe/Widget/Widget_Interface.php +37 -3
- common/src/admin-views/notices/tribe-bf-general.php +1 -1
- common/src/admin-views/tribe-options-display.php +48 -47
- common/src/admin-views/tribe-options-help.php +37 -7
- common/src/admin-views/tribe-options-licenses.php +10 -10
- common/src/admin-views/tribe-options-network.php +15 -15
- common/src/functions/query.php +1 -1
- common/src/functions/template-tags/date.php +6 -6
- common/src/functions/template-tags/general.php +12 -12
- common/src/functions/template-tags/html.php +80 -0
- common/src/functions/utils.php +1 -1
- common/src/resources/css/common-full.min.css +1 -1
- common/src/resources/css/common-skeleton.min.css +1 -1
- common/src/resources/css/tribe-common-admin.min.css +1 -1
- common/src/resources/images/mascot.png +0 -0
- common/src/resources/js/admin-log-controls.js +3 -3
- common/src/resources/js/admin-log-controls.min.js +1 -1
- common/src/resources/js/admin/help-page.js +6 -3
- common/src/resources/js/dependency.js +1 -1
- common/src/resources/js/dropdowns.js +2 -2
- common/src/resources/js/dropdowns.min.js +1 -1
- common/src/views/dialog/button.php +14 -4
- common/src/views/v2/components/icons/arrow-right.php +23 -0
- common/src/views/v2/components/icons/caret-down.php +23 -0
- common/src/views/v2/components/icons/close-alt.php +2 -2
- common/src/views/v2/components/icons/close.php +2 -2
- common/src/views/v2/components/icons/day.php +23 -0
- common/src/views/v2/components/icons/dot.php +23 -0
- common/src/views/v2/components/icons/error.php +23 -0
- common/src/views/v2/components/icons/featured.php +23 -0
- common/src/views/v2/components/icons/filter.php +2 -2
- common/src/views/v2/components/icons/list.php +23 -0
- common/src/views/v2/components/icons/location.php +23 -0
- common/src/views/v2/components/icons/mail.php +23 -0
- common/src/views/v2/components/icons/map-pin.php +23 -0
- common/src/views/v2/components/icons/map.php +23 -0
- common/src/views/v2/components/icons/messages-not-found.php +23 -0
- common/src/views/v2/components/icons/minus.php +2 -2
- common/src/views/v2/components/icons/month.php +23 -0
- common/src/views/v2/components/icons/no-map.php +23 -0
- common/src/views/v2/components/icons/phone.php +23 -0
- common/src/views/v2/components/icons/photo.php +23 -0
- common/src/views/v2/components/icons/play.php +23 -0
- common/src/views/v2/components/icons/plus.php +5 -5
- common/src/views/v2/components/icons/recurring.php +23 -0
- common/src/views/v2/components/icons/reset.php +2 -2
- common/src/views/v2/components/icons/search.php +23 -0
- common/src/views/v2/components/icons/video.php +23 -0
- common/src/views/v2/components/icons/virtual.php +23 -0
- common/src/views/v2/components/icons/website.php +23 -0
- common/src/views/v2/components/icons/week.php +23 -0
- common/vendor/autoload.php +1 -1
- common/vendor/autoload_52.php +1 -1
- common/vendor/composer/autoload_classmap.php +3 -0
- common/vendor/composer/autoload_real.php +4 -4
- common/vendor/composer/autoload_real_52.php +3 -3
- common/vendor/composer/autoload_static.php +8 -5
- common/vendor/composer/installed.json +6 -6
- common/vendor/faction23/a11y-dialog/a11y-dialog.min.js +1 -1
- common/vendor/lucatume/di52/src/tad/DI52/Container.php +34 -15
- common/vendor/lucatume/di52/src/tad/DI52/closuresSupport.php +17 -10
- event-tickets.php +1 -1
- lang/event-tickets-de_DE.mo +0 -0
- lang/event-tickets-es_ES.mo +0 -0
- lang/event-tickets-ro_RO.mo +0 -0
- lang/event-tickets-sv_SE.mo +0 -0
- lang/event-tickets.pot +340 -259
- readme.txt +24 -4
- src/Tribe/Admin/Notices.php +91 -13
- src/Tribe/Attendees.php +20 -8
- src/Tribe/Commerce/PayPal/Main.php +4 -0
- src/Tribe/Editor.php +13 -13
- src/Tribe/Editor/Configuration.php +36 -18
- src/Tribe/Editor/Provider.php +32 -12
- src/Tribe/Editor/Template/Overwrite.php +2 -1
- src/Tribe/Editor/Warnings.php +127 -0
- src/Tribe/Main.php +1 -1
- src/Tribe/Metabox.php +2 -2
- src/Tribe/Tickets.php +1 -1
- src/admin-views/admin-welcome-message.php +36 -12
- src/admin-views/editor/fieldset/advanced.php +20 -169
- src/admin-views/editor/fieldset/settings-provider.php +18 -20
- src/admin-views/editor/panel/ticket.php +274 -21
- src/admin-views/tribe-options-tickets.php +11 -1
- src/modules/blocks/attendees/index.js +1 -0
- src/modules/blocks/rsvp/index.js +1 -0
- src/modules/blocks/ticket/index.js +1 -0
- src/modules/blocks/tickets/controls/template.js +1 -1
- src/modules/blocks/tickets/index.js +1 -0
- src/modules/data/blocks/rsvp/reducers/details.js +3 -1
- src/modules/data/blocks/rsvp/sagas.js +0 -1
- src/modules/data/blocks/ticket/reducers/tickets/ticket/details.js +3 -1
- src/modules/data/blocks/ticket/reducers/tickets/ticket/temp-details.js +3 -1
- src/resources/css/tickets-admin.css +31 -4
- src/resources/css/tickets-admin.min.css +1 -1
- src/resources/js/app/blocks.js +21 -15
- src/resources/js/app/blocks.min.js +1 -1
common/lang/tribe-common.pot
CHANGED
@@ -2,13 +2,13 @@
|
|
2 |
# This file is distributed under the same license as the Tribe Common package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Tribe Common 4.12.
|
6 |
"Report-Msgid-Bugs-To: http://m.tri.be/191x\n"
|
7 |
-
"POT-Creation-Date: 2020-11
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"PO-Revision-Date: 2020-11
|
12 |
"Last-Translator: \n"
|
13 |
"Language-Team: \n"
|
14 |
|
@@ -28,7 +28,7 @@ msgstr ""
|
|
28 |
msgid "Return to WordPress Updates"
|
29 |
msgstr ""
|
30 |
|
31 |
-
#: src/Tribe/Admin/Help_Page.php:56 src/admin-views/tribe-options-help.php:
|
32 |
msgid "Copy to clipboard"
|
33 |
msgstr ""
|
34 |
|
@@ -40,7 +40,7 @@ msgstr ""
|
|
40 |
msgid "Press \"Cmd + C\" to copy"
|
41 |
msgstr ""
|
42 |
|
43 |
-
#: src/Tribe/Admin/Help_Page.php:79 src/Tribe/Customizer.php:
|
44 |
#: src/Tribe/Plugins_API.php:25
|
45 |
msgid "The Events Calendar"
|
46 |
msgstr ""
|
@@ -51,128 +51,128 @@ msgid ""
|
|
51 |
"easily share your events."
|
52 |
msgstr ""
|
53 |
|
54 |
-
#: src/Tribe/Admin/Help_Page.php:
|
55 |
msgid "Event Tickets"
|
56 |
msgstr ""
|
57 |
|
58 |
-
#: src/Tribe/Admin/Help_Page.php:
|
59 |
msgid ""
|
60 |
"Events Tickets is a carefully crafted, extensible plugin that lets you "
|
61 |
"easily sell tickets for your events."
|
62 |
msgstr ""
|
63 |
|
64 |
-
#: src/Tribe/Admin/Help_Page.php:
|
65 |
msgid "Advanced Post Manager"
|
66 |
msgstr ""
|
67 |
|
68 |
-
#: src/Tribe/Admin/Help_Page.php:
|
69 |
msgid ""
|
70 |
"Turbo charge your posts admin for any custom post type with sortable filters "
|
71 |
"and columns, and auto-registration of metaboxes."
|
72 |
msgstr ""
|
73 |
|
74 |
-
#: src/Tribe/Admin/Help_Page.php:
|
75 |
msgid " and "
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Admin/Help_Page.php:
|
79 |
msgid "Events Calendar PRO"
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Admin/Help_Page.php:
|
83 |
msgid "Eventbrite Tickets"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Admin/Help_Page.php:
|
87 |
msgid "Community Events"
|
88 |
msgstr ""
|
89 |
|
90 |
-
#: src/Tribe/Admin/Help_Page.php:
|
91 |
msgid "Event Aggregator"
|
92 |
msgstr ""
|
93 |
|
94 |
-
#: src/Tribe/Admin/Help_Page.php:
|
95 |
msgid "Filter Bar"
|
96 |
msgstr ""
|
97 |
|
98 |
-
#: src/Tribe/Admin/Help_Page.php:
|
99 |
msgid "Virtual Events"
|
100 |
msgstr ""
|
101 |
|
102 |
-
#: src/Tribe/Admin/Help_Page.php:
|
103 |
msgid "Event Tickets Plus"
|
104 |
msgstr ""
|
105 |
|
106 |
-
#: src/Tribe/Admin/Help_Page.php:
|
107 |
msgid "Community Tickets"
|
108 |
msgstr ""
|
109 |
|
110 |
-
#: src/Tribe/Admin/Help_Page.php:
|
111 |
msgctxt "not available"
|
112 |
msgid "n/a"
|
113 |
msgstr ""
|
114 |
|
115 |
-
#: src/Tribe/Admin/Help_Page.php:
|
116 |
msgid "You need to upgrade!"
|
117 |
msgstr ""
|
118 |
|
119 |
-
#: src/Tribe/Admin/Help_Page.php:
|
120 |
msgid "You are up to date!"
|
121 |
msgstr ""
|
122 |
|
123 |
-
#: src/Tribe/Admin/Help_Page.php:
|
124 |
msgid "Activate %s"
|
125 |
msgstr ""
|
126 |
|
127 |
-
#: src/Tribe/Admin/Help_Page.php:
|
128 |
msgid "Activate Plugin"
|
129 |
msgstr ""
|
130 |
|
131 |
-
#: src/Tribe/Admin/Help_Page.php:
|
132 |
msgid "Upgrade Plugin"
|
133 |
msgstr ""
|
134 |
|
135 |
-
#: src/Tribe/Admin/Help_Page.php:
|
136 |
msgid "Install %s"
|
137 |
msgstr ""
|
138 |
|
139 |
-
#: src/Tribe/Admin/Help_Page.php:
|
140 |
msgid "Install Plugin"
|
141 |
msgstr ""
|
142 |
|
143 |
-
#: src/Tribe/Admin/Help_Page.php:
|
144 |
msgid "Latest Version:"
|
145 |
msgstr ""
|
146 |
|
147 |
-
#: src/Tribe/Admin/Help_Page.php:
|
148 |
msgid "Requires:"
|
149 |
msgstr ""
|
150 |
|
151 |
-
#: src/Tribe/Admin/Help_Page.php:
|
152 |
msgid "WordPress "
|
153 |
msgstr ""
|
154 |
|
155 |
-
#: src/Tribe/Admin/Help_Page.php:
|
156 |
msgid "Active Users:"
|
157 |
msgstr ""
|
158 |
|
159 |
-
#: src/Tribe/Admin/Help_Page.php:
|
160 |
msgid "Rating:"
|
161 |
msgstr ""
|
162 |
|
163 |
-
#: src/Tribe/Admin/Help_Page.php:
|
164 |
msgid "Premium Add-Ons"
|
165 |
msgstr ""
|
166 |
|
167 |
-
#: src/Tribe/Admin/Help_Page.php:
|
168 |
msgid "Plugin Active"
|
169 |
msgstr ""
|
170 |
|
171 |
-
#: src/Tribe/Admin/Help_Page.php:
|
172 |
msgid "Plugin Inactive"
|
173 |
msgstr ""
|
174 |
|
175 |
-
#: src/Tribe/Admin/Help_Page.php:
|
176 |
msgid "Visit the Add-on Page"
|
177 |
msgstr ""
|
178 |
|
@@ -236,135 +236,135 @@ msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
|
236 |
msgstr ""
|
237 |
|
238 |
#: src/Tribe/App_Shop.php:50 src/Tribe/App_Shop.php:51
|
239 |
-
#: src/Tribe/App_Shop.php:
|
240 |
msgid "Event Add-Ons"
|
241 |
msgstr ""
|
242 |
|
243 |
-
#: src/Tribe/App_Shop.php:
|
244 |
msgid "Events Marketing Bundle"
|
245 |
msgstr ""
|
246 |
|
247 |
-
#: src/Tribe/App_Shop.php:
|
248 |
-
#: src/Tribe/App_Shop.php:
|
249 |
msgid "Save over 20%"
|
250 |
msgstr ""
|
251 |
|
252 |
-
#: src/Tribe/App_Shop.php:
|
253 |
msgid "Ticket sales, attendee management, and email marketing for your events"
|
254 |
msgstr ""
|
255 |
|
256 |
-
#: src/Tribe/App_Shop.php:
|
257 |
msgid "Event Importer Bundle"
|
258 |
msgstr ""
|
259 |
|
260 |
-
#: src/Tribe/App_Shop.php:
|
261 |
msgid "Save over 25%"
|
262 |
msgstr ""
|
263 |
|
264 |
-
#: src/Tribe/App_Shop.php:
|
265 |
msgid ""
|
266 |
"Fill your calendar with events from across the web, including Google "
|
267 |
"Calendar, Meetup, and more."
|
268 |
msgstr ""
|
269 |
|
270 |
-
#: src/Tribe/App_Shop.php:
|
271 |
msgid "Virtual Events Marketing Bundle"
|
272 |
msgstr ""
|
273 |
|
274 |
-
#: src/Tribe/App_Shop.php:
|
275 |
msgid "Streamline your online events and increase revenue."
|
276 |
msgstr ""
|
277 |
|
278 |
-
#: src/Tribe/App_Shop.php:
|
279 |
msgid "Sell tickets and earn revenue for online events"
|
280 |
msgstr ""
|
281 |
|
282 |
-
#: src/Tribe/App_Shop.php:
|
283 |
msgid "Zoom integration"
|
284 |
msgstr ""
|
285 |
|
286 |
-
#: src/Tribe/App_Shop.php:
|
287 |
msgid "Automated emails optimized for virtual events"
|
288 |
msgstr ""
|
289 |
|
290 |
-
#: src/Tribe/App_Shop.php:
|
291 |
msgid "Add recurring events"
|
292 |
msgstr ""
|
293 |
|
294 |
-
#: src/Tribe/App_Shop.php:
|
295 |
msgid "Community Manager Bundle"
|
296 |
msgstr ""
|
297 |
|
298 |
-
#: src/Tribe/App_Shop.php:
|
299 |
msgid ""
|
300 |
"Handle event submissions with ticket sales and everything you need to build "
|
301 |
"a robust community."
|
302 |
msgstr ""
|
303 |
|
304 |
-
#: src/Tribe/App_Shop.php:
|
305 |
msgid "Ultimate Bundle"
|
306 |
msgstr ""
|
307 |
|
308 |
-
#: src/Tribe/App_Shop.php:
|
309 |
msgid "All of our premium events management plugins at a deep discount."
|
310 |
msgstr ""
|
311 |
|
312 |
-
#: src/Tribe/App_Shop.php:
|
313 |
msgid "Website URL CTA"
|
314 |
msgstr ""
|
315 |
|
316 |
-
#: src/Tribe/App_Shop.php:
|
317 |
msgid ""
|
318 |
"Create a strong call-to-action for attendees to \"Join Webinar\" instead of "
|
319 |
"only sharing a website address."
|
320 |
msgstr ""
|
321 |
|
322 |
-
#: src/Tribe/App_Shop.php:
|
323 |
msgid "Link Directly to Webinar"
|
324 |
msgstr ""
|
325 |
|
326 |
-
#: src/Tribe/App_Shop.php:
|
327 |
msgid ""
|
328 |
"When users click on the event title, they’ll be taken right to the source of "
|
329 |
"your event, offering a direct route to join."
|
330 |
msgstr ""
|
331 |
|
332 |
-
#: src/Tribe/App_Shop.php:
|
333 |
msgid "Events Happening Now"
|
334 |
msgstr ""
|
335 |
|
336 |
-
#: src/Tribe/App_Shop.php:
|
337 |
msgid ""
|
338 |
"Use this shortcode to display events that are currently in progress, like "
|
339 |
"webinars and livestreams."
|
340 |
msgstr ""
|
341 |
|
342 |
-
#: src/Tribe/App_Shop.php:
|
343 |
msgid "Custom Venue Links"
|
344 |
msgstr ""
|
345 |
|
346 |
-
#: src/Tribe/App_Shop.php:
|
347 |
msgid ""
|
348 |
"Turn the venue name for your event into a clickable URL — a great way to "
|
349 |
"link directly to a venue’s website or a virtual meeting."
|
350 |
msgstr ""
|
351 |
|
352 |
-
#: src/Tribe/App_Shop.php:
|
353 |
msgid "Adjust Label"
|
354 |
msgstr ""
|
355 |
|
356 |
-
#: src/Tribe/App_Shop.php:
|
357 |
msgid ""
|
358 |
"Change \"Events\" to \"Webinars,\" or \"Venues\" to \"Livestream,\" or "
|
359 |
"\"Organizers\" to \"Hosts.\" Tailor your calendar for virtual events and "
|
360 |
"meetings."
|
361 |
msgstr ""
|
362 |
|
363 |
-
#: src/Tribe/App_Shop.php:
|
364 |
msgid "Reach Attendees"
|
365 |
msgstr ""
|
366 |
|
367 |
-
#: src/Tribe/App_Shop.php:
|
368 |
msgid ""
|
369 |
"From registration to attendance history, view every step of the event "
|
370 |
"lifecycle with this HubSpot integration."
|
@@ -386,7 +386,7 @@ msgstr ""
|
|
386 |
msgid "Rate %1$sEvent Tickets%2$s %3$s"
|
387 |
msgstr ""
|
388 |
|
389 |
-
#: src/Tribe/Customizer.php:
|
390 |
msgid ""
|
391 |
"Use the following panel of your customizer to change the styling of your "
|
392 |
"Calendar and Event pages."
|
@@ -430,31 +430,31 @@ msgstr ""
|
|
430 |
msgid "Modern Tribe JSON-LD Data"
|
431 |
msgstr ""
|
432 |
|
433 |
-
#: src/Tribe/Dialog/View.php:
|
434 |
msgid "Open the modal window"
|
435 |
msgstr ""
|
436 |
|
437 |
-
#: src/Tribe/Dialog/View.php:
|
438 |
msgid "Close this modal window"
|
439 |
msgstr ""
|
440 |
|
441 |
-
#: src/Tribe/Dialog/View.php:
|
442 |
msgid "Cancel"
|
443 |
msgstr ""
|
444 |
|
445 |
-
#: src/Tribe/Dialog/View.php:
|
446 |
msgid "Confirm"
|
447 |
msgstr ""
|
448 |
|
449 |
-
#: src/Tribe/Dialog/View.php:
|
450 |
msgid "OK"
|
451 |
msgstr ""
|
452 |
|
453 |
-
#: src/Tribe/Dialog/View.php:
|
454 |
msgid "Open the dialog window"
|
455 |
msgstr ""
|
456 |
|
457 |
-
#: src/Tribe/Dialog/View.php:
|
458 |
msgid "Close this dialog window"
|
459 |
msgstr ""
|
460 |
|
@@ -570,7 +570,7 @@ msgstr ""
|
|
570 |
msgid "A list of links to the term own, archive and parent REST URL"
|
571 |
msgstr ""
|
572 |
|
573 |
-
#: src/Tribe/Editor/Blocks/Abstract.php:
|
574 |
msgid "Problem loading the block, please remove this block to restart."
|
575 |
msgstr ""
|
576 |
|
@@ -1845,107 +1845,107 @@ msgstr ""
|
|
1845 |
msgid "Null logger (will log nothing)"
|
1846 |
msgstr ""
|
1847 |
|
1848 |
-
#: src/Tribe/Log.php:
|
1849 |
msgid "Cannot set %s as the current logging engine"
|
1850 |
msgstr ""
|
1851 |
|
1852 |
-
#: src/Tribe/Log.php:
|
1853 |
msgid "Disabled"
|
1854 |
msgstr ""
|
1855 |
|
1856 |
-
#: src/Tribe/Log.php:
|
1857 |
msgid "Only errors"
|
1858 |
msgstr ""
|
1859 |
|
1860 |
-
#: src/Tribe/Log.php:
|
1861 |
msgid "Warnings and errors"
|
1862 |
msgstr ""
|
1863 |
|
1864 |
-
#: src/Tribe/Log.php:
|
1865 |
msgid "Full debug (all events)"
|
1866 |
msgstr ""
|
1867 |
|
1868 |
-
#: src/Tribe/Main.php:
|
1869 |
msgid ": activate to sort column ascending"
|
1870 |
msgstr ""
|
1871 |
|
1872 |
-
#: src/Tribe/Main.php:
|
1873 |
msgid ": activate to sort column descending"
|
1874 |
msgstr ""
|
1875 |
|
1876 |
-
#: src/Tribe/Main.php:
|
1877 |
msgid "Show _MENU_ entries"
|
1878 |
msgstr ""
|
1879 |
|
1880 |
-
#: src/Tribe/Main.php:
|
1881 |
msgid "No data available in table"
|
1882 |
msgstr ""
|
1883 |
|
1884 |
-
#: src/Tribe/Main.php:
|
1885 |
msgid "Showing _START_ to _END_ of _TOTAL_ entries"
|
1886 |
msgstr ""
|
1887 |
|
1888 |
-
#: src/Tribe/Main.php:
|
1889 |
msgid "Showing 0 to 0 of 0 entries"
|
1890 |
msgstr ""
|
1891 |
|
1892 |
-
#: src/Tribe/Main.php:
|
1893 |
msgid "(filtered from _MAX_ total entries)"
|
1894 |
msgstr ""
|
1895 |
|
1896 |
-
#: src/Tribe/Main.php:
|
1897 |
msgid "No matching records found"
|
1898 |
msgstr ""
|
1899 |
|
1900 |
-
#: src/Tribe/Main.php:
|
1901 |
msgid "Search:"
|
1902 |
msgstr ""
|
1903 |
|
1904 |
-
#: src/Tribe/Main.php:
|
1905 |
msgid "All items on this page were selected. "
|
1906 |
msgstr ""
|
1907 |
|
1908 |
-
#: src/Tribe/Main.php:
|
1909 |
msgid "Select all pages"
|
1910 |
msgstr ""
|
1911 |
|
1912 |
-
#: src/Tribe/Main.php:
|
1913 |
msgid "Clear Selection."
|
1914 |
msgstr ""
|
1915 |
|
1916 |
-
#: src/Tribe/Main.php:
|
1917 |
msgid "All"
|
1918 |
msgstr ""
|
1919 |
|
1920 |
-
#: src/Tribe/Main.php:
|
1921 |
msgid "Next"
|
1922 |
msgstr ""
|
1923 |
|
1924 |
-
#: src/Tribe/Main.php:
|
1925 |
msgid "Previous"
|
1926 |
msgstr ""
|
1927 |
|
1928 |
-
#: src/Tribe/Main.php:
|
1929 |
msgid ": Selected %d rows"
|
1930 |
msgstr ""
|
1931 |
|
1932 |
-
#: src/Tribe/Main.php:
|
1933 |
msgid ": Selected 1 row"
|
1934 |
msgstr ""
|
1935 |
|
1936 |
-
#: src/Tribe/Main.php:
|
1937 |
msgid "Prev"
|
1938 |
msgstr ""
|
1939 |
|
1940 |
-
#: src/Tribe/Main.php:
|
1941 |
msgid "Today"
|
1942 |
msgstr ""
|
1943 |
|
1944 |
-
#: src/Tribe/Main.php:
|
1945 |
msgid "Done"
|
1946 |
msgstr ""
|
1947 |
|
1948 |
-
#: src/Tribe/Main.php:
|
1949 |
msgid "Clear"
|
1950 |
msgstr ""
|
1951 |
|
@@ -2432,16 +2432,16 @@ msgstr ""
|
|
2432 |
msgid "Display"
|
2433 |
msgstr ""
|
2434 |
|
2435 |
-
#: src/Tribe/Settings_Manager.php:
|
2436 |
msgid "Network"
|
2437 |
msgstr ""
|
2438 |
|
2439 |
-
#: src/Tribe/Settings_Manager.php:
|
2440 |
#: src/admin-views/tribe-options-licenses.php:57
|
2441 |
msgid "Licenses"
|
2442 |
msgstr ""
|
2443 |
|
2444 |
-
#: src/Tribe/Settings_Manager.php:
|
2445 |
msgid "Help"
|
2446 |
msgstr ""
|
2447 |
|
@@ -2741,22 +2741,22 @@ msgstr ""
|
|
2741 |
msgid "Download log"
|
2742 |
msgstr ""
|
2743 |
|
2744 |
-
#: src/admin-views/tribe-options-display.php:
|
2745 |
msgid "Date Format Settings"
|
2746 |
msgstr ""
|
2747 |
|
2748 |
-
#: src/admin-views/tribe-options-display.php:
|
2749 |
msgid ""
|
2750 |
"The following three fields accept the date format options available to the "
|
2751 |
"PHP %1$s function. <a href=\"%2$s\" target=\"_blank\">Learn how to make your "
|
2752 |
"own date format here</a>."
|
2753 |
msgstr ""
|
2754 |
|
2755 |
-
#: src/admin-views/tribe-options-display.php:
|
2756 |
msgid "Compact Date Format"
|
2757 |
msgstr ""
|
2758 |
|
2759 |
-
#: src/admin-views/tribe-options-display.php:
|
2760 |
msgid ""
|
2761 |
"Select the date format used for elements with minimal space, such as in "
|
2762 |
"datepickers."
|
@@ -2867,28 +2867,28 @@ msgid ""
|
|
2867 |
"steps:"
|
2868 |
msgstr ""
|
2869 |
|
2870 |
-
#: src/admin-views/tribe-options-help.php:
|
2871 |
msgid ""
|
2872 |
"%s. All of the common (and not-so-common) answers to questions we see are "
|
2873 |
"here. It’s often the fastest path to finding an answer!"
|
2874 |
msgstr ""
|
2875 |
|
2876 |
-
#: src/admin-views/tribe-options-help.php:
|
2877 |
msgid "Check our Knowledgebase"
|
2878 |
msgstr ""
|
2879 |
|
2880 |
-
#: src/admin-views/tribe-options-help.php:
|
2881 |
msgid ""
|
2882 |
"%s. Testing for an existing conflict is the best start for in-depth "
|
2883 |
"troubleshooting. We will often ask you to follow these steps when opening a "
|
2884 |
"new thread, so doing this ahead of time will be super helpful."
|
2885 |
msgstr ""
|
2886 |
|
2887 |
-
#: src/admin-views/tribe-options-help.php:
|
2888 |
msgid "Test for a theme or plugin conflict"
|
2889 |
msgstr ""
|
2890 |
|
2891 |
-
#: src/admin-views/tribe-options-help.php:
|
2892 |
msgid ""
|
2893 |
"%s. There are very few issues we haven’t seen and it’s likely another user "
|
2894 |
"has already asked your question and gotten an answer from our support staff. "
|
@@ -2896,25 +2896,25 @@ msgid ""
|
|
2896 |
"for anyone to search and review."
|
2897 |
msgstr ""
|
2898 |
|
2899 |
-
#: src/admin-views/tribe-options-help.php:
|
2900 |
msgid "Search our support help desk"
|
2901 |
msgstr ""
|
2902 |
|
2903 |
-
#: src/admin-views/tribe-options-help.php:
|
2904 |
msgid ""
|
2905 |
"Please note that all hands-on support is provided via the help desk. You can "
|
2906 |
"email or tweet at us… but we will probably point you back to the help desk 😄"
|
2907 |
msgstr ""
|
2908 |
|
2909 |
-
#: src/admin-views/tribe-options-help.php:
|
2910 |
msgid "Read more about our support policy"
|
2911 |
msgstr ""
|
2912 |
|
2913 |
-
#: src/admin-views/tribe-options-help.php:
|
2914 |
msgid "System Information"
|
2915 |
msgstr ""
|
2916 |
|
2917 |
-
#: src/admin-views/tribe-options-help.php:
|
2918 |
msgid ""
|
2919 |
"The details of your calendar plugin and settings is often needed for you or "
|
2920 |
"our staff to help troubleshoot an issue. Please opt-in below to "
|
@@ -2922,19 +2922,19 @@ msgid ""
|
|
2922 |
"allow us to assist you faster if you post in our help desk."
|
2923 |
msgstr ""
|
2924 |
|
2925 |
-
#: src/admin-views/tribe-options-help.php:
|
2926 |
msgid "Recent Template Changes"
|
2927 |
msgstr ""
|
2928 |
|
2929 |
-
#: src/admin-views/tribe-options-help.php:
|
2930 |
msgid "Event Log"
|
2931 |
msgstr ""
|
2932 |
|
2933 |
-
#: src/admin-views/tribe-options-help.php:
|
2934 |
msgid "News and Tutorials"
|
2935 |
msgstr ""
|
2936 |
|
2937 |
-
#: src/admin-views/tribe-options-help.php:
|
2938 |
msgid "More..."
|
2939 |
msgstr ""
|
2940 |
|
2 |
# This file is distributed under the same license as the Tribe Common package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Tribe Common 4.12.15\n"
|
6 |
"Report-Msgid-Bugs-To: http://m.tri.be/191x\n"
|
7 |
+
"POT-Creation-Date: 2020-12-11 06:24:08+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"PO-Revision-Date: 2020-12-11 06:24\n"
|
12 |
"Last-Translator: \n"
|
13 |
"Language-Team: \n"
|
14 |
|
28 |
msgid "Return to WordPress Updates"
|
29 |
msgstr ""
|
30 |
|
31 |
+
#: src/Tribe/Admin/Help_Page.php:56 src/admin-views/tribe-options-help.php:80
|
32 |
msgid "Copy to clipboard"
|
33 |
msgstr ""
|
34 |
|
40 |
msgid "Press \"Cmd + C\" to copy"
|
41 |
msgstr ""
|
42 |
|
43 |
+
#: src/Tribe/Admin/Help_Page.php:79 src/Tribe/Customizer.php:625
|
44 |
#: src/Tribe/Plugins_API.php:25
|
45 |
msgid "The Events Calendar"
|
46 |
msgstr ""
|
51 |
"easily share your events."
|
52 |
msgstr ""
|
53 |
|
54 |
+
#: src/Tribe/Admin/Help_Page.php:98 src/Tribe/Plugins_API.php:76
|
55 |
msgid "Event Tickets"
|
56 |
msgstr ""
|
57 |
|
58 |
+
#: src/Tribe/Admin/Help_Page.php:102
|
59 |
msgid ""
|
60 |
"Events Tickets is a carefully crafted, extensible plugin that lets you "
|
61 |
"easily sell tickets for your events."
|
62 |
msgstr ""
|
63 |
|
64 |
+
#: src/Tribe/Admin/Help_Page.php:117
|
65 |
msgid "Advanced Post Manager"
|
66 |
msgstr ""
|
67 |
|
68 |
+
#: src/Tribe/Admin/Help_Page.php:121
|
69 |
msgid ""
|
70 |
"Turbo charge your posts admin for any custom post type with sortable filters "
|
71 |
"and columns, and auto-registration of metaboxes."
|
72 |
msgstr ""
|
73 |
|
74 |
+
#: src/Tribe/Admin/Help_Page.php:199
|
75 |
msgid " and "
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Admin/Help_Page.php:223
|
79 |
msgid "Events Calendar PRO"
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Admin/Help_Page.php:232 src/Tribe/Plugins_API.php:179
|
83 |
msgid "Eventbrite Tickets"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Admin/Help_Page.php:240 src/Tribe/Plugins_API.php:144
|
87 |
msgid "Community Events"
|
88 |
msgstr ""
|
89 |
|
90 |
+
#: src/Tribe/Admin/Help_Page.php:248 src/Tribe/Plugins_API.php:42
|
91 |
msgid "Event Aggregator"
|
92 |
msgstr ""
|
93 |
|
94 |
+
#: src/Tribe/Admin/Help_Page.php:258 src/Tribe/Plugins_API.php:127
|
95 |
msgid "Filter Bar"
|
96 |
msgstr ""
|
97 |
|
98 |
+
#: src/Tribe/Admin/Help_Page.php:266 src/Tribe/Plugins_API.php:213
|
99 |
msgid "Virtual Events"
|
100 |
msgstr ""
|
101 |
|
102 |
+
#: src/Tribe/Admin/Help_Page.php:274 src/Tribe/Plugins_API.php:93
|
103 |
msgid "Event Tickets Plus"
|
104 |
msgstr ""
|
105 |
|
106 |
+
#: src/Tribe/Admin/Help_Page.php:283 src/Tribe/Plugins_API.php:161
|
107 |
msgid "Community Tickets"
|
108 |
msgstr ""
|
109 |
|
110 |
+
#: src/Tribe/Admin/Help_Page.php:444
|
111 |
msgctxt "not available"
|
112 |
msgid "n/a"
|
113 |
msgstr ""
|
114 |
|
115 |
+
#: src/Tribe/Admin/Help_Page.php:452
|
116 |
msgid "You need to upgrade!"
|
117 |
msgstr ""
|
118 |
|
119 |
+
#: src/Tribe/Admin/Help_Page.php:452 src/Tribe/Admin/Help_Page.php:827
|
120 |
msgid "You are up to date!"
|
121 |
msgstr ""
|
122 |
|
123 |
+
#: src/Tribe/Admin/Help_Page.php:817
|
124 |
msgid "Activate %s"
|
125 |
msgstr ""
|
126 |
|
127 |
+
#: src/Tribe/Admin/Help_Page.php:817
|
128 |
msgid "Activate Plugin"
|
129 |
msgstr ""
|
130 |
|
131 |
+
#: src/Tribe/Admin/Help_Page.php:825
|
132 |
msgid "Upgrade Plugin"
|
133 |
msgstr ""
|
134 |
|
135 |
+
#: src/Tribe/Admin/Help_Page.php:841
|
136 |
msgid "Install %s"
|
137 |
msgstr ""
|
138 |
|
139 |
+
#: src/Tribe/Admin/Help_Page.php:841
|
140 |
msgid "Install Plugin"
|
141 |
msgstr ""
|
142 |
|
143 |
+
#: src/Tribe/Admin/Help_Page.php:858
|
144 |
msgid "Latest Version:"
|
145 |
msgstr ""
|
146 |
|
147 |
+
#: src/Tribe/Admin/Help_Page.php:861
|
148 |
msgid "Requires:"
|
149 |
msgstr ""
|
150 |
|
151 |
+
#: src/Tribe/Admin/Help_Page.php:862
|
152 |
msgid "WordPress "
|
153 |
msgstr ""
|
154 |
|
155 |
+
#: src/Tribe/Admin/Help_Page.php:864
|
156 |
msgid "Active Users:"
|
157 |
msgstr ""
|
158 |
|
159 |
+
#: src/Tribe/Admin/Help_Page.php:867
|
160 |
msgid "Rating:"
|
161 |
msgstr ""
|
162 |
|
163 |
+
#: src/Tribe/Admin/Help_Page.php:890
|
164 |
msgid "Premium Add-Ons"
|
165 |
msgstr ""
|
166 |
|
167 |
+
#: src/Tribe/Admin/Help_Page.php:896
|
168 |
msgid "Plugin Active"
|
169 |
msgstr ""
|
170 |
|
171 |
+
#: src/Tribe/Admin/Help_Page.php:898
|
172 |
msgid "Plugin Inactive"
|
173 |
msgstr ""
|
174 |
|
175 |
+
#: src/Tribe/Admin/Help_Page.php:903
|
176 |
msgid "Visit the Add-on Page"
|
177 |
msgstr ""
|
178 |
|
236 |
msgstr ""
|
237 |
|
238 |
#: src/Tribe/App_Shop.php:50 src/Tribe/App_Shop.php:51
|
239 |
+
#: src/Tribe/App_Shop.php:82
|
240 |
msgid "Event Add-Ons"
|
241 |
msgstr ""
|
242 |
|
243 |
+
#: src/Tribe/App_Shop.php:175
|
244 |
msgid "Events Marketing Bundle"
|
245 |
msgstr ""
|
246 |
|
247 |
+
#: src/Tribe/App_Shop.php:178 src/Tribe/App_Shop.php:202
|
248 |
+
#: src/Tribe/App_Shop.php:221 src/Tribe/App_Shop.php:234
|
249 |
msgid "Save over 20%"
|
250 |
msgstr ""
|
251 |
|
252 |
+
#: src/Tribe/App_Shop.php:179
|
253 |
msgid "Ticket sales, attendee management, and email marketing for your events"
|
254 |
msgstr ""
|
255 |
|
256 |
+
#: src/Tribe/App_Shop.php:187
|
257 |
msgid "Event Importer Bundle"
|
258 |
msgstr ""
|
259 |
|
260 |
+
#: src/Tribe/App_Shop.php:190
|
261 |
msgid "Save over 25%"
|
262 |
msgstr ""
|
263 |
|
264 |
+
#: src/Tribe/App_Shop.php:191
|
265 |
msgid ""
|
266 |
"Fill your calendar with events from across the web, including Google "
|
267 |
"Calendar, Meetup, and more."
|
268 |
msgstr ""
|
269 |
|
270 |
+
#: src/Tribe/App_Shop.php:199
|
271 |
msgid "Virtual Events Marketing Bundle"
|
272 |
msgstr ""
|
273 |
|
274 |
+
#: src/Tribe/App_Shop.php:203
|
275 |
msgid "Streamline your online events and increase revenue."
|
276 |
msgstr ""
|
277 |
|
278 |
+
#: src/Tribe/App_Shop.php:211
|
279 |
msgid "Sell tickets and earn revenue for online events"
|
280 |
msgstr ""
|
281 |
|
282 |
+
#: src/Tribe/App_Shop.php:212 src/Tribe/Plugins_API.php:218
|
283 |
msgid "Zoom integration"
|
284 |
msgstr ""
|
285 |
|
286 |
+
#: src/Tribe/App_Shop.php:213
|
287 |
msgid "Automated emails optimized for virtual events"
|
288 |
msgstr ""
|
289 |
|
290 |
+
#: src/Tribe/App_Shop.php:214
|
291 |
msgid "Add recurring events"
|
292 |
msgstr ""
|
293 |
|
294 |
+
#: src/Tribe/App_Shop.php:218
|
295 |
msgid "Community Manager Bundle"
|
296 |
msgstr ""
|
297 |
|
298 |
+
#: src/Tribe/App_Shop.php:222
|
299 |
msgid ""
|
300 |
"Handle event submissions with ticket sales and everything you need to build "
|
301 |
"a robust community."
|
302 |
msgstr ""
|
303 |
|
304 |
+
#: src/Tribe/App_Shop.php:231
|
305 |
msgid "Ultimate Bundle"
|
306 |
msgstr ""
|
307 |
|
308 |
+
#: src/Tribe/App_Shop.php:235
|
309 |
msgid "All of our premium events management plugins at a deep discount."
|
310 |
msgstr ""
|
311 |
|
312 |
+
#: src/Tribe/App_Shop.php:262
|
313 |
msgid "Website URL CTA"
|
314 |
msgstr ""
|
315 |
|
316 |
+
#: src/Tribe/App_Shop.php:265
|
317 |
msgid ""
|
318 |
"Create a strong call-to-action for attendees to \"Join Webinar\" instead of "
|
319 |
"only sharing a website address."
|
320 |
msgstr ""
|
321 |
|
322 |
+
#: src/Tribe/App_Shop.php:268
|
323 |
msgid "Link Directly to Webinar"
|
324 |
msgstr ""
|
325 |
|
326 |
+
#: src/Tribe/App_Shop.php:271
|
327 |
msgid ""
|
328 |
"When users click on the event title, they’ll be taken right to the source of "
|
329 |
"your event, offering a direct route to join."
|
330 |
msgstr ""
|
331 |
|
332 |
+
#: src/Tribe/App_Shop.php:274
|
333 |
msgid "Events Happening Now"
|
334 |
msgstr ""
|
335 |
|
336 |
+
#: src/Tribe/App_Shop.php:277
|
337 |
msgid ""
|
338 |
"Use this shortcode to display events that are currently in progress, like "
|
339 |
"webinars and livestreams."
|
340 |
msgstr ""
|
341 |
|
342 |
+
#: src/Tribe/App_Shop.php:280
|
343 |
msgid "Custom Venue Links"
|
344 |
msgstr ""
|
345 |
|
346 |
+
#: src/Tribe/App_Shop.php:283
|
347 |
msgid ""
|
348 |
"Turn the venue name for your event into a clickable URL — a great way to "
|
349 |
"link directly to a venue’s website or a virtual meeting."
|
350 |
msgstr ""
|
351 |
|
352 |
+
#: src/Tribe/App_Shop.php:286
|
353 |
msgid "Adjust Label"
|
354 |
msgstr ""
|
355 |
|
356 |
+
#: src/Tribe/App_Shop.php:289
|
357 |
msgid ""
|
358 |
"Change \"Events\" to \"Webinars,\" or \"Venues\" to \"Livestream,\" or "
|
359 |
"\"Organizers\" to \"Hosts.\" Tailor your calendar for virtual events and "
|
360 |
"meetings."
|
361 |
msgstr ""
|
362 |
|
363 |
+
#: src/Tribe/App_Shop.php:292
|
364 |
msgid "Reach Attendees"
|
365 |
msgstr ""
|
366 |
|
367 |
+
#: src/Tribe/App_Shop.php:295
|
368 |
msgid ""
|
369 |
"From registration to attendance history, view every step of the event "
|
370 |
"lifecycle with this HubSpot integration."
|
386 |
msgid "Rate %1$sEvent Tickets%2$s %3$s"
|
387 |
msgstr ""
|
388 |
|
389 |
+
#: src/Tribe/Customizer.php:626
|
390 |
msgid ""
|
391 |
"Use the following panel of your customizer to change the styling of your "
|
392 |
"Calendar and Event pages."
|
430 |
msgid "Modern Tribe JSON-LD Data"
|
431 |
msgstr ""
|
432 |
|
433 |
+
#: src/Tribe/Dialog/View.php:157
|
434 |
msgid "Open the modal window"
|
435 |
msgstr ""
|
436 |
|
437 |
+
#: src/Tribe/Dialog/View.php:158
|
438 |
msgid "Close this modal window"
|
439 |
msgstr ""
|
440 |
|
441 |
+
#: src/Tribe/Dialog/View.php:228
|
442 |
msgid "Cancel"
|
443 |
msgstr ""
|
444 |
|
445 |
+
#: src/Tribe/Dialog/View.php:229
|
446 |
msgid "Confirm"
|
447 |
msgstr ""
|
448 |
|
449 |
+
#: src/Tribe/Dialog/View.php:296
|
450 |
msgid "OK"
|
451 |
msgstr ""
|
452 |
|
453 |
+
#: src/Tribe/Dialog/View.php:366
|
454 |
msgid "Open the dialog window"
|
455 |
msgstr ""
|
456 |
|
457 |
+
#: src/Tribe/Dialog/View.php:381
|
458 |
msgid "Close this dialog window"
|
459 |
msgstr ""
|
460 |
|
570 |
msgid "A list of links to the term own, archive and parent REST URL"
|
571 |
msgstr ""
|
572 |
|
573 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:123
|
574 |
msgid "Problem loading the block, please remove this block to restart."
|
575 |
msgstr ""
|
576 |
|
1845 |
msgid "Null logger (will log nothing)"
|
1846 |
msgstr ""
|
1847 |
|
1848 |
+
#: src/Tribe/Log.php:288
|
1849 |
msgid "Cannot set %s as the current logging engine"
|
1850 |
msgstr ""
|
1851 |
|
1852 |
+
#: src/Tribe/Log.php:387
|
1853 |
msgid "Disabled"
|
1854 |
msgstr ""
|
1855 |
|
1856 |
+
#: src/Tribe/Log.php:388
|
1857 |
msgid "Only errors"
|
1858 |
msgstr ""
|
1859 |
|
1860 |
+
#: src/Tribe/Log.php:389
|
1861 |
msgid "Warnings and errors"
|
1862 |
msgstr ""
|
1863 |
|
1864 |
+
#: src/Tribe/Log.php:390
|
1865 |
msgid "Full debug (all events)"
|
1866 |
msgstr ""
|
1867 |
|
1868 |
+
#: src/Tribe/Main.php:310
|
1869 |
msgid ": activate to sort column ascending"
|
1870 |
msgstr ""
|
1871 |
|
1872 |
+
#: src/Tribe/Main.php:311
|
1873 |
msgid ": activate to sort column descending"
|
1874 |
msgstr ""
|
1875 |
|
1876 |
+
#: src/Tribe/Main.php:313
|
1877 |
msgid "Show _MENU_ entries"
|
1878 |
msgstr ""
|
1879 |
|
1880 |
+
#: src/Tribe/Main.php:314
|
1881 |
msgid "No data available in table"
|
1882 |
msgstr ""
|
1883 |
|
1884 |
+
#: src/Tribe/Main.php:315
|
1885 |
msgid "Showing _START_ to _END_ of _TOTAL_ entries"
|
1886 |
msgstr ""
|
1887 |
|
1888 |
+
#: src/Tribe/Main.php:316
|
1889 |
msgid "Showing 0 to 0 of 0 entries"
|
1890 |
msgstr ""
|
1891 |
|
1892 |
+
#: src/Tribe/Main.php:317
|
1893 |
msgid "(filtered from _MAX_ total entries)"
|
1894 |
msgstr ""
|
1895 |
|
1896 |
+
#: src/Tribe/Main.php:318
|
1897 |
msgid "No matching records found"
|
1898 |
msgstr ""
|
1899 |
|
1900 |
+
#: src/Tribe/Main.php:319
|
1901 |
msgid "Search:"
|
1902 |
msgstr ""
|
1903 |
|
1904 |
+
#: src/Tribe/Main.php:320
|
1905 |
msgid "All items on this page were selected. "
|
1906 |
msgstr ""
|
1907 |
|
1908 |
+
#: src/Tribe/Main.php:321
|
1909 |
msgid "Select all pages"
|
1910 |
msgstr ""
|
1911 |
|
1912 |
+
#: src/Tribe/Main.php:322
|
1913 |
msgid "Clear Selection."
|
1914 |
msgstr ""
|
1915 |
|
1916 |
+
#: src/Tribe/Main.php:324
|
1917 |
msgid "All"
|
1918 |
msgstr ""
|
1919 |
|
1920 |
+
#: src/Tribe/Main.php:325 src/Tribe/Main.php:342
|
1921 |
msgid "Next"
|
1922 |
msgstr ""
|
1923 |
|
1924 |
+
#: src/Tribe/Main.php:326
|
1925 |
msgid "Previous"
|
1926 |
msgstr ""
|
1927 |
|
1928 |
+
#: src/Tribe/Main.php:331
|
1929 |
msgid ": Selected %d rows"
|
1930 |
msgstr ""
|
1931 |
|
1932 |
+
#: src/Tribe/Main.php:332
|
1933 |
msgid ": Selected 1 row"
|
1934 |
msgstr ""
|
1935 |
|
1936 |
+
#: src/Tribe/Main.php:343
|
1937 |
msgid "Prev"
|
1938 |
msgstr ""
|
1939 |
|
1940 |
+
#: src/Tribe/Main.php:344 src/Tribe/Main.php:346
|
1941 |
msgid "Today"
|
1942 |
msgstr ""
|
1943 |
|
1944 |
+
#: src/Tribe/Main.php:345
|
1945 |
msgid "Done"
|
1946 |
msgstr ""
|
1947 |
|
1948 |
+
#: src/Tribe/Main.php:347
|
1949 |
msgid "Clear"
|
1950 |
msgstr ""
|
1951 |
|
2432 |
msgid "Display"
|
2433 |
msgstr ""
|
2434 |
|
2435 |
+
#: src/Tribe/Settings_Manager.php:259
|
2436 |
msgid "Network"
|
2437 |
msgstr ""
|
2438 |
|
2439 |
+
#: src/Tribe/Settings_Manager.php:293
|
2440 |
#: src/admin-views/tribe-options-licenses.php:57
|
2441 |
msgid "Licenses"
|
2442 |
msgstr ""
|
2443 |
|
2444 |
+
#: src/Tribe/Settings_Manager.php:323
|
2445 |
msgid "Help"
|
2446 |
msgstr ""
|
2447 |
|
2741 |
msgid "Download log"
|
2742 |
msgstr ""
|
2743 |
|
2744 |
+
#: src/admin-views/tribe-options-display.php:23
|
2745 |
msgid "Date Format Settings"
|
2746 |
msgstr ""
|
2747 |
|
2748 |
+
#: src/admin-views/tribe-options-display.php:29
|
2749 |
msgid ""
|
2750 |
"The following three fields accept the date format options available to the "
|
2751 |
"PHP %1$s function. <a href=\"%2$s\" target=\"_blank\">Learn how to make your "
|
2752 |
"own date format here</a>."
|
2753 |
msgstr ""
|
2754 |
|
2755 |
+
#: src/admin-views/tribe-options-display.php:37
|
2756 |
msgid "Compact Date Format"
|
2757 |
msgstr ""
|
2758 |
|
2759 |
+
#: src/admin-views/tribe-options-display.php:38
|
2760 |
msgid ""
|
2761 |
"Select the date format used for elements with minimal space, such as in "
|
2762 |
"datepickers."
|
2867 |
"steps:"
|
2868 |
msgstr ""
|
2869 |
|
2870 |
+
#: src/admin-views/tribe-options-help.php:33
|
2871 |
msgid ""
|
2872 |
"%s. All of the common (and not-so-common) answers to questions we see are "
|
2873 |
"here. It’s often the fastest path to finding an answer!"
|
2874 |
msgstr ""
|
2875 |
|
2876 |
+
#: src/admin-views/tribe-options-help.php:37
|
2877 |
msgid "Check our Knowledgebase"
|
2878 |
msgstr ""
|
2879 |
|
2880 |
+
#: src/admin-views/tribe-options-help.php:43
|
2881 |
msgid ""
|
2882 |
"%s. Testing for an existing conflict is the best start for in-depth "
|
2883 |
"troubleshooting. We will often ask you to follow these steps when opening a "
|
2884 |
"new thread, so doing this ahead of time will be super helpful."
|
2885 |
msgstr ""
|
2886 |
|
2887 |
+
#: src/admin-views/tribe-options-help.php:47
|
2888 |
msgid "Test for a theme or plugin conflict"
|
2889 |
msgstr ""
|
2890 |
|
2891 |
+
#: src/admin-views/tribe-options-help.php:53
|
2892 |
msgid ""
|
2893 |
"%s. There are very few issues we haven’t seen and it’s likely another user "
|
2894 |
"has already asked your question and gotten an answer from our support staff. "
|
2896 |
"for anyone to search and review."
|
2897 |
msgstr ""
|
2898 |
|
2899 |
+
#: src/admin-views/tribe-options-help.php:57
|
2900 |
msgid "Search our support help desk"
|
2901 |
msgstr ""
|
2902 |
|
2903 |
+
#: src/admin-views/tribe-options-help.php:67
|
2904 |
msgid ""
|
2905 |
"Please note that all hands-on support is provided via the help desk. You can "
|
2906 |
"email or tweet at us… but we will probably point you back to the help desk 😄"
|
2907 |
msgstr ""
|
2908 |
|
2909 |
+
#: src/admin-views/tribe-options-help.php:68
|
2910 |
msgid "Read more about our support policy"
|
2911 |
msgstr ""
|
2912 |
|
2913 |
+
#: src/admin-views/tribe-options-help.php:71
|
2914 |
msgid "System Information"
|
2915 |
msgstr ""
|
2916 |
|
2917 |
+
#: src/admin-views/tribe-options-help.php:72
|
2918 |
msgid ""
|
2919 |
"The details of your calendar plugin and settings is often needed for you or "
|
2920 |
"our staff to help troubleshoot an issue. Please opt-in below to "
|
2922 |
"allow us to assist you faster if you post in our help desk."
|
2923 |
msgstr ""
|
2924 |
|
2925 |
+
#: src/admin-views/tribe-options-help.php:82
|
2926 |
msgid "Recent Template Changes"
|
2927 |
msgstr ""
|
2928 |
|
2929 |
+
#: src/admin-views/tribe-options-help.php:85
|
2930 |
msgid "Event Log"
|
2931 |
msgstr ""
|
2932 |
|
2933 |
+
#: src/admin-views/tribe-options-help.php:104
|
2934 |
msgid "News and Tutorials"
|
2935 |
msgstr ""
|
2936 |
|
2937 |
+
#: src/admin-views/tribe-options-help.php:110
|
2938 |
msgid "More..."
|
2939 |
msgstr ""
|
2940 |
|
common/src/Tribe/Admin/Activation_Page.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Shows a welcome or update message after the plugin is installed/updated.
|
4 |
*/
|
5 |
class Tribe__Admin__Activation_Page {
|
6 |
-
protected $args =
|
7 |
public $update_slug = 'update-message-';
|
8 |
public $welcome_slug = 'welcome-message-';
|
9 |
protected $current_context = '';
|
@@ -24,8 +24,8 @@ class Tribe__Admin__Activation_Page {
|
|
24 |
* @type string $welcome_page_template
|
25 |
* }
|
26 |
*/
|
27 |
-
public function __construct( array $args =
|
28 |
-
$this->args = wp_parse_args( $args,
|
29 |
'slug' => '',
|
30 |
'activation_transient' => '',
|
31 |
'version' => '',
|
@@ -35,9 +35,9 @@ class Tribe__Admin__Activation_Page {
|
|
35 |
'update_page_template' => '',
|
36 |
'welcome_page_title' => '',
|
37 |
'welcome_page_template' => '',
|
38 |
-
|
39 |
|
40 |
-
$this->update_slug
|
41 |
$this->welcome_slug .= $this->args['slug'];
|
42 |
|
43 |
$this->hooks();
|
@@ -76,11 +76,11 @@ class Tribe__Admin__Activation_Page {
|
|
76 |
return;
|
77 |
}
|
78 |
|
79 |
-
add_action( 'admin_init',
|
80 |
-
add_action( 'admin_menu',
|
81 |
|
82 |
-
add_action( 'update_plugin_complete_actions',
|
83 |
-
add_action( 'update_bulk_plugins_complete_actions',
|
84 |
}
|
85 |
|
86 |
/**
|
@@ -92,7 +92,7 @@ class Tribe__Admin__Activation_Page {
|
|
92 |
* @return array The filtered Links
|
93 |
*/
|
94 |
public function update_complete_actions( $actions, $plugin ) {
|
95 |
-
$plugins =
|
96 |
|
97 |
if ( ! empty( $_GET['plugins'] ) ) {
|
98 |
$plugins = explode( ',', esc_attr( $_GET['plugins'] ) );
|
@@ -262,8 +262,8 @@ class Tribe__Admin__Activation_Page {
|
|
262 |
}
|
263 |
|
264 |
$this->disable_default_settings_page();
|
265 |
-
add_filter( 'admin_body_class',
|
266 |
-
add_action( Tribe__Settings::instance()->admin_page,
|
267 |
}
|
268 |
|
269 |
/**
|
@@ -283,7 +283,7 @@ class Tribe__Admin__Activation_Page {
|
|
283 |
* in the Events > Settings slot instead, for this request only).
|
284 |
*/
|
285 |
protected function disable_default_settings_page() {
|
286 |
-
remove_action( Tribe__Settings::instance()->admin_page,
|
287 |
}
|
288 |
|
289 |
/**
|
3 |
* Shows a welcome or update message after the plugin is installed/updated.
|
4 |
*/
|
5 |
class Tribe__Admin__Activation_Page {
|
6 |
+
protected $args = [];
|
7 |
public $update_slug = 'update-message-';
|
8 |
public $welcome_slug = 'welcome-message-';
|
9 |
protected $current_context = '';
|
24 |
* @type string $welcome_page_template
|
25 |
* }
|
26 |
*/
|
27 |
+
public function __construct( array $args = [] ) {
|
28 |
+
$this->args = wp_parse_args( $args, [
|
29 |
'slug' => '',
|
30 |
'activation_transient' => '',
|
31 |
'version' => '',
|
35 |
'update_page_template' => '',
|
36 |
'welcome_page_title' => '',
|
37 |
'welcome_page_template' => '',
|
38 |
+
] );
|
39 |
|
40 |
+
$this->update_slug .= $this->args['slug'];
|
41 |
$this->welcome_slug .= $this->args['slug'];
|
42 |
|
43 |
$this->hooks();
|
76 |
return;
|
77 |
}
|
78 |
|
79 |
+
add_action( 'admin_init', [ $this, 'maybe_redirect' ], 10, 0 );
|
80 |
+
add_action( 'admin_menu', [ $this, 'register_page' ], 100, 0 ); // come in after the default page is registered
|
81 |
|
82 |
+
add_action( 'update_plugin_complete_actions', [ $this, 'update_complete_actions' ], 15, 2 );
|
83 |
+
add_action( 'update_bulk_plugins_complete_actions', [ $this, 'update_complete_actions' ], 15, 2 );
|
84 |
}
|
85 |
|
86 |
/**
|
92 |
* @return array The filtered Links
|
93 |
*/
|
94 |
public function update_complete_actions( $actions, $plugin ) {
|
95 |
+
$plugins = [];
|
96 |
|
97 |
if ( ! empty( $_GET['plugins'] ) ) {
|
98 |
$plugins = explode( ',', esc_attr( $_GET['plugins'] ) );
|
262 |
}
|
263 |
|
264 |
$this->disable_default_settings_page();
|
265 |
+
add_filter( 'admin_body_class', [ $this, 'admin_body_class' ] );
|
266 |
+
add_action( Tribe__Settings::instance()->admin_page, [ $this, 'display_page' ] );
|
267 |
}
|
268 |
|
269 |
/**
|
283 |
* in the Events > Settings slot instead, for this request only).
|
284 |
*/
|
285 |
protected function disable_default_settings_page() {
|
286 |
+
remove_action( Tribe__Settings::instance()->admin_page, [ Tribe__Settings::instance(), 'generatePage' ] );
|
287 |
}
|
288 |
|
289 |
/**
|
common/src/Tribe/Admin/Help_Page.php
CHANGED
@@ -72,50 +72,59 @@ class Tribe__Admin__Help_Page {
|
|
72 |
* @return array
|
73 |
*/
|
74 |
public function get_plugins( $plugin_name = null, $is_active = true ) {
|
75 |
-
$plugins =
|
76 |
|
77 |
-
$plugins['the-events-calendar'] =
|
78 |
'name' => 'the-events-calendar',
|
79 |
'title' => esc_html__( 'The Events Calendar', 'tribe-common' ),
|
80 |
'repo' => 'https://wordpress.org/plugins/the-events-calendar/',
|
81 |
'forum' => 'https://wordpress.org/support/plugin/the-events-calendar/',
|
82 |
'stars_url' => 'https://wordpress.org/support/plugin/the-events-calendar/reviews/?filter=5',
|
83 |
-
'description' => esc_html__(
|
|
|
|
|
|
|
84 |
'is_active' => false,
|
85 |
'version' => null,
|
86 |
-
|
87 |
|
88 |
if ( class_exists( 'Tribe__Events__Main' ) ) {
|
89 |
$plugins['the-events-calendar']['version'] = Tribe__Events__Main::VERSION;
|
90 |
$plugins['the-events-calendar']['is_active'] = true;
|
91 |
}
|
92 |
|
93 |
-
$plugins['event-tickets'] =
|
94 |
'name' => 'event-tickets',
|
95 |
'title' => esc_html__( 'Event Tickets', 'tribe-common' ),
|
96 |
'repo' => 'https://wordpress.org/plugins/event-tickets/',
|
97 |
'forum' => 'https://wordpress.org/support/plugin/event-tickets',
|
98 |
'stars_url' => 'https://wordpress.org/support/plugin/event-tickets/reviews/?filter=5',
|
99 |
-
'description' => esc_html__(
|
|
|
|
|
|
|
100 |
'is_active' => false,
|
101 |
'version' => null,
|
102 |
-
|
103 |
|
104 |
if ( class_exists( 'Tribe__Tickets__Main' ) ) {
|
105 |
$plugins['event-tickets']['version'] = Tribe__Tickets__Main::VERSION;
|
106 |
$plugins['event-tickets']['is_active'] = true;
|
107 |
}
|
108 |
|
109 |
-
$plugins['advanced-post-manager'] =
|
110 |
'name' => 'advanced-post-manager',
|
111 |
'title' => esc_html__( 'Advanced Post Manager', 'tribe-common' ),
|
112 |
'repo' => 'https://wordpress.org/plugins/advanced-post-manager/',
|
113 |
'forum' => 'https://wordpress.org/support/plugin/advanced-post-manager/',
|
114 |
'stars_url' => 'https://wordpress.org/support/plugin/advanced-post-manager/reviews/?filter=5',
|
115 |
-
'description' => esc_html__(
|
|
|
|
|
|
|
116 |
'is_active' => false,
|
117 |
'version' => null,
|
118 |
-
|
119 |
|
120 |
if ( class_exists( 'Tribe_APM' ) ) {
|
121 |
$plugins['advanced-post-manager']['version'] = 1;
|
@@ -156,7 +165,7 @@ class Tribe__Admin__Help_Page {
|
|
156 |
public function get_plugin_forum_links( $is_active = true ) {
|
157 |
$plugins = $this->get_plugins( null, $is_active );
|
158 |
|
159 |
-
$list =
|
160 |
foreach ( $plugins as $plugin ) {
|
161 |
$list[] = '<a href="' . esc_url( $plugin['forum'] ) . '" target="_blank">' . $plugin['title'] . '</a>';
|
162 |
}
|
@@ -207,73 +216,75 @@ class Tribe__Admin__Help_Page {
|
|
207 |
* @return array
|
208 |
*/
|
209 |
public function get_addons( $plugin = null, $is_active = null, $is_important = null ) {
|
210 |
-
$addons =
|
211 |
-
|
212 |
-
$addons['events-calendar-pro'] =
|
213 |
-
'id'
|
214 |
-
'title'
|
215 |
-
'link'
|
216 |
-
'plugin'
|
217 |
-
'is_active'
|
218 |
'is_important' => true,
|
219 |
-
|
220 |
|
221 |
-
$addons['eventbrite-tickets'] =
|
222 |
'id' => 'eventbrite-tickets',
|
223 |
'title' => esc_html__( 'Eventbrite Tickets', 'tribe-common' ),
|
224 |
'link' => 'http://m.tri.be/ds',
|
225 |
-
'plugin' =>
|
226 |
'is_active' => class_exists( 'Tribe__Events__Tickets__Eventbrite__Main' ),
|
227 |
-
|
228 |
|
229 |
-
$addons['community-events'] =
|
230 |
'id' => 'community-events',
|
231 |
'title' => esc_html__( 'Community Events', 'tribe-common' ),
|
232 |
'link' => 'http://m.tri.be/dt',
|
233 |
-
'plugin' =>
|
234 |
'is_active' => class_exists( 'Tribe__Events__Community__Main' ),
|
235 |
-
|
236 |
|
237 |
-
$addons['event-aggregator'] =
|
238 |
'id' => 'event-aggregator',
|
239 |
'title' => esc_html__( 'Event Aggregator', 'tribe-common' ),
|
240 |
'link' => 'http://m.tri.be/19mk',
|
241 |
-
'plugin' =>
|
242 |
-
'is_active' => class_exists( 'Tribe__Events__Aggregator' ) && tribe(
|
243 |
-
|
|
|
|
|
244 |
|
245 |
-
$addons['events-filter-bar'] =
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
|
253 |
$addons['events-virtual'] = [
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
];
|
260 |
|
261 |
-
$addons['event-tickets-plus'] =
|
262 |
-
'id'
|
263 |
-
'title'
|
264 |
-
'link'
|
265 |
-
'plugin'
|
266 |
-
'is_active'
|
267 |
'is_important' => true,
|
268 |
-
|
269 |
|
270 |
-
$addons['event-community-tickets'] =
|
271 |
'id' => 'event-community-tickets',
|
272 |
'title' => esc_html__( 'Community Tickets', 'tribe-common' ),
|
273 |
'link' => 'http://m.tri.be/18m2',
|
274 |
-
'plugin' =>
|
275 |
'is_active' => class_exists( 'Tribe__Events__Community__Tickets__Main' ),
|
276 |
-
|
277 |
|
278 |
/**
|
279 |
* Filter the array of premium addons upsold on the sidebar of the Settings > Help tab
|
@@ -288,7 +299,7 @@ class Tribe__Admin__Help_Page {
|
|
288 |
}
|
289 |
|
290 |
// Allow for easily grab the addons for a plugin
|
291 |
-
$filtered =
|
292 |
foreach ( $addons as $id => $addon ) {
|
293 |
if ( ! is_null( $plugin ) && ! in_array( $plugin, (array) $addon['plugin'] ) ) {
|
294 |
continue;
|
@@ -318,10 +329,10 @@ class Tribe__Admin__Help_Page {
|
|
318 |
|
319 |
public function is_active( $should_be_active ) {
|
320 |
$plugins = $this->get_plugins( null, true );
|
321 |
-
$addons
|
322 |
|
323 |
-
$actives
|
324 |
-
$is_active =
|
325 |
|
326 |
foreach ( $actives as $id => $active ) {
|
327 |
if ( in_array( $id, (array) $should_be_active ) ) {
|
@@ -342,11 +353,11 @@ class Tribe__Admin__Help_Page {
|
|
342 |
* @return string Link with the GA arguments
|
343 |
*/
|
344 |
public function get_ga_link( $link = null, $relative = true ) {
|
345 |
-
$query_args =
|
346 |
'utm_source' => 'helptab',
|
347 |
'utm_medium' => 'plugin-tec',
|
348 |
'utm_campaign' => 'in-app',
|
349 |
-
|
350 |
|
351 |
if ( true === $relative ) {
|
352 |
$link = trailingslashit( Tribe__Main::$tec_url . $link );
|
@@ -363,8 +374,8 @@ class Tribe__Admin__Help_Page {
|
|
363 |
* @return array Feed Title and Link
|
364 |
*/
|
365 |
public function get_feed_items() {
|
366 |
-
$news_rss
|
367 |
-
$news_feed =
|
368 |
|
369 |
if ( ! is_wp_error( $news_rss ) ) {
|
370 |
/**
|
@@ -376,10 +387,10 @@ class Tribe__Admin__Help_Page {
|
|
376 |
$rss_items = $news_rss->get_items( 0, $maxitems );
|
377 |
if ( $maxitems > 0 ) {
|
378 |
foreach ( $rss_items as $item ) {
|
379 |
-
$item
|
380 |
'title' => esc_html( $item->get_title() ),
|
381 |
'link' => esc_url( $item->get_permalink() ),
|
382 |
-
|
383 |
$news_feed[] = $item;
|
384 |
}
|
385 |
}
|
@@ -417,16 +428,16 @@ class Tribe__Admin__Help_Page {
|
|
417 |
}
|
418 |
|
419 |
// Fetch the data
|
420 |
-
$data = plugins_api( 'plugin_information',
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
|
431 |
if ( ! is_wp_error( $data ) ) {
|
432 |
// Format Downloaded Infomation
|
@@ -487,13 +498,13 @@ class Tribe__Admin__Help_Page {
|
|
487 |
}
|
488 |
|
489 |
// Only add List Item if is a UL or OL
|
490 |
-
if ( in_array( $line['type'],
|
491 |
$text .= '<li>' . "\n";
|
492 |
}
|
493 |
|
494 |
$text .= $this->get_content_html( $item );
|
495 |
|
496 |
-
if ( in_array( $line['type'],
|
497 |
$text .= '</li>' . "\n";
|
498 |
}
|
499 |
}
|
@@ -515,7 +526,7 @@ class Tribe__Admin__Help_Page {
|
|
515 |
* @access private
|
516 |
* @var array
|
517 |
*/
|
518 |
-
private $sections =
|
519 |
|
520 |
/**
|
521 |
* Incremented with each method call, then stored in $section->uid.
|
@@ -573,7 +584,7 @@ class Tribe__Admin__Help_Page {
|
|
573 |
// Everytime you call this we will add this up
|
574 |
self::$section_count++;
|
575 |
|
576 |
-
$possible_types = (array) apply_filters( 'tribe_help_available_section_types',
|
577 |
|
578 |
// Set a Default type
|
579 |
if ( empty( $type ) || ! in_array( $type, $possible_types ) ) {
|
@@ -581,21 +592,21 @@ class Tribe__Admin__Help_Page {
|
|
581 |
}
|
582 |
|
583 |
// Create the section and Sanitize the values to avoid having to do it later
|
584 |
-
$section = (object)
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
|
590 |
-
|
591 |
-
|
592 |
|
593 |
-
|
594 |
-
|
595 |
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
|
600 |
$this->sections[ $section->id ] = $section;
|
601 |
|
@@ -614,7 +625,7 @@ class Tribe__Admin__Help_Page {
|
|
614 |
*
|
615 |
* @return object The content item added
|
616 |
*/
|
617 |
-
public function add_section_content( $section_id, $content, $priority = 10, $arguments =
|
618 |
$section_id = sanitize_html_class( $section_id );
|
619 |
|
620 |
// Check if the section exists
|
@@ -659,13 +670,13 @@ class Tribe__Admin__Help_Page {
|
|
659 |
public function remove_section( $section_id ) {
|
660 |
if (
|
661 |
! isset( $this->sections[ $section_id ] ) &&
|
662 |
-
! in_array( (object)
|
663 |
) {
|
664 |
// There are no sections to remove, so false
|
665 |
return false;
|
666 |
}
|
667 |
|
668 |
-
$removed =
|
669 |
foreach ( $this->sections as $id => $section ) {
|
670 |
if ( ! is_numeric( $id ) && ! is_numeric( $section_id ) && ! empty( $section->id ) ) {
|
671 |
if ( $section->id === $section_id ) {
|
@@ -719,9 +730,9 @@ class Tribe__Admin__Help_Page {
|
|
719 |
}
|
720 |
|
721 |
// Sort by Priority
|
722 |
-
uasort( $sections,
|
723 |
|
724 |
-
$html =
|
725 |
|
726 |
foreach ( $sections as $index => $section ) {
|
727 |
$section = (object) $section;
|
@@ -744,7 +755,7 @@ class Tribe__Admin__Help_Page {
|
|
744 |
$section = apply_filters( 'tribe_help_section_' . $section->id, $section, $this );
|
745 |
|
746 |
// Sort by Priority
|
747 |
-
uasort( $section->content,
|
748 |
|
749 |
$html[ $section->id . '-start' ] = '<div id="tribe-' . sanitize_html_class( $section->id ) . '" class="tribe-help-section clearfix tribe-section-type-' . sanitize_html_class( $section->type ) . '">';
|
750 |
|
@@ -795,20 +806,20 @@ class Tribe__Admin__Help_Page {
|
|
795 |
$plugin_exists = isset( $plugins[ $status['file'] ] );
|
796 |
|
797 |
if ( 'install' !== $status['status'] && ! $plugin_active ) {
|
798 |
-
$args =
|
799 |
-
'action'
|
800 |
-
'plugin'
|
801 |
'plugin_status' => 'all',
|
802 |
-
'paged'
|
803 |
-
's'
|
804 |
-
|
805 |
$activate_url = wp_nonce_url( add_query_arg( $args, 'plugins.php' ), 'activate-plugin_' . $status['file'] );
|
806 |
$link = '<a class="button" href="' . $activate_url . '" aria-label="' . esc_attr( sprintf( esc_attr__( 'Activate %s', 'tribe-common' ), $plugin->name ) ) . '">' . esc_html__( 'Activate Plugin', 'tribe-common' ) . '</a>';
|
807 |
} elseif ( 'update_available' === $status['status'] ) {
|
808 |
-
$args =
|
809 |
'action' => 'upgrade-plugin',
|
810 |
'plugin' => $status['file'],
|
811 |
-
|
812 |
$update_url = wp_nonce_url( add_query_arg( $args, 'update.php' ), 'upgrade-plugin_' . $status['file'] );
|
813 |
|
814 |
$link = '<a class="button" href="' . $update_url . '">' . esc_html__( 'Upgrade Plugin', 'tribe-common' ) . '</a>';
|
@@ -819,13 +830,13 @@ class Tribe__Admin__Help_Page {
|
|
819 |
|
820 |
if ( ! isset( $link ) ) {
|
821 |
if ( $api_data ) {
|
822 |
-
$args =
|
823 |
'tab' => 'plugin-information',
|
824 |
'plugin' => $plugin->name,
|
825 |
'TB_iframe' => true,
|
826 |
'width' => 772,
|
827 |
'height' => 600,
|
828 |
-
|
829 |
$iframe_url = add_query_arg( $args, admin_url( '/plugin-install.php' ) );
|
830 |
$link = '<a class="button thickbox" href="' . $iframe_url . '" aria-label="' . esc_attr( sprintf( esc_attr__( 'Install %s', 'tribe-common' ), $plugin->name ) ) . '">' . esc_html__( 'Install Plugin', 'tribe-common' ) . '</a>';
|
831 |
} else {
|
@@ -854,13 +865,17 @@ class Tribe__Admin__Help_Page {
|
|
854 |
<dd><?php echo esc_html( number_format( $api_data->active_installs ) ); ?>+</dd>
|
855 |
|
856 |
<dt><?php esc_html_e( 'Rating:', 'tribe-common' ); ?></dt>
|
857 |
-
<dd
|
858 |
-
<?php
|
859 |
-
|
860 |
-
|
861 |
-
|
862 |
-
|
863 |
-
|
|
|
|
|
|
|
|
|
864 |
</dl>
|
865 |
<?php } ?>
|
866 |
|
72 |
* @return array
|
73 |
*/
|
74 |
public function get_plugins( $plugin_name = null, $is_active = true ) {
|
75 |
+
$plugins = [];
|
76 |
|
77 |
+
$plugins['the-events-calendar'] = [
|
78 |
'name' => 'the-events-calendar',
|
79 |
'title' => esc_html__( 'The Events Calendar', 'tribe-common' ),
|
80 |
'repo' => 'https://wordpress.org/plugins/the-events-calendar/',
|
81 |
'forum' => 'https://wordpress.org/support/plugin/the-events-calendar/',
|
82 |
'stars_url' => 'https://wordpress.org/support/plugin/the-events-calendar/reviews/?filter=5',
|
83 |
+
'description' => esc_html__(
|
84 |
+
'The Events Calendar is a carefully crafted, extensible plugin that lets you easily share your events.',
|
85 |
+
'tribe-common'
|
86 |
+
),
|
87 |
'is_active' => false,
|
88 |
'version' => null,
|
89 |
+
];
|
90 |
|
91 |
if ( class_exists( 'Tribe__Events__Main' ) ) {
|
92 |
$plugins['the-events-calendar']['version'] = Tribe__Events__Main::VERSION;
|
93 |
$plugins['the-events-calendar']['is_active'] = true;
|
94 |
}
|
95 |
|
96 |
+
$plugins['event-tickets'] = [
|
97 |
'name' => 'event-tickets',
|
98 |
'title' => esc_html__( 'Event Tickets', 'tribe-common' ),
|
99 |
'repo' => 'https://wordpress.org/plugins/event-tickets/',
|
100 |
'forum' => 'https://wordpress.org/support/plugin/event-tickets',
|
101 |
'stars_url' => 'https://wordpress.org/support/plugin/event-tickets/reviews/?filter=5',
|
102 |
+
'description' => esc_html__(
|
103 |
+
'Events Tickets is a carefully crafted, extensible plugin that lets you easily sell tickets for your events.',
|
104 |
+
'tribe-common'
|
105 |
+
),
|
106 |
'is_active' => false,
|
107 |
'version' => null,
|
108 |
+
];
|
109 |
|
110 |
if ( class_exists( 'Tribe__Tickets__Main' ) ) {
|
111 |
$plugins['event-tickets']['version'] = Tribe__Tickets__Main::VERSION;
|
112 |
$plugins['event-tickets']['is_active'] = true;
|
113 |
}
|
114 |
|
115 |
+
$plugins['advanced-post-manager'] = [
|
116 |
'name' => 'advanced-post-manager',
|
117 |
'title' => esc_html__( 'Advanced Post Manager', 'tribe-common' ),
|
118 |
'repo' => 'https://wordpress.org/plugins/advanced-post-manager/',
|
119 |
'forum' => 'https://wordpress.org/support/plugin/advanced-post-manager/',
|
120 |
'stars_url' => 'https://wordpress.org/support/plugin/advanced-post-manager/reviews/?filter=5',
|
121 |
+
'description' => esc_html__(
|
122 |
+
'Turbo charge your posts admin for any custom post type with sortable filters and columns, and auto-registration of metaboxes.',
|
123 |
+
'tribe-common'
|
124 |
+
),
|
125 |
'is_active' => false,
|
126 |
'version' => null,
|
127 |
+
];
|
128 |
|
129 |
if ( class_exists( 'Tribe_APM' ) ) {
|
130 |
$plugins['advanced-post-manager']['version'] = 1;
|
165 |
public function get_plugin_forum_links( $is_active = true ) {
|
166 |
$plugins = $this->get_plugins( null, $is_active );
|
167 |
|
168 |
+
$list = [];
|
169 |
foreach ( $plugins as $plugin ) {
|
170 |
$list[] = '<a href="' . esc_url( $plugin['forum'] ) . '" target="_blank">' . $plugin['title'] . '</a>';
|
171 |
}
|
216 |
* @return array
|
217 |
*/
|
218 |
public function get_addons( $plugin = null, $is_active = null, $is_important = null ) {
|
219 |
+
$addons = [];
|
220 |
+
|
221 |
+
$addons['events-calendar-pro'] = [
|
222 |
+
'id' => 'events-calendar-pro',
|
223 |
+
'title' => esc_html__( 'Events Calendar PRO', 'tribe-common' ),
|
224 |
+
'link' => 'http://m.tri.be/dr',
|
225 |
+
'plugin' => [ 'the-events-calendar' ],
|
226 |
+
'is_active' => class_exists( 'Tribe__Events__Pro__Main' ),
|
227 |
'is_important' => true,
|
228 |
+
];
|
229 |
|
230 |
+
$addons['eventbrite-tickets'] = [
|
231 |
'id' => 'eventbrite-tickets',
|
232 |
'title' => esc_html__( 'Eventbrite Tickets', 'tribe-common' ),
|
233 |
'link' => 'http://m.tri.be/ds',
|
234 |
+
'plugin' => [ 'the-events-calendar' ],
|
235 |
'is_active' => class_exists( 'Tribe__Events__Tickets__Eventbrite__Main' ),
|
236 |
+
];
|
237 |
|
238 |
+
$addons['community-events'] = [
|
239 |
'id' => 'community-events',
|
240 |
'title' => esc_html__( 'Community Events', 'tribe-common' ),
|
241 |
'link' => 'http://m.tri.be/dt',
|
242 |
+
'plugin' => [ 'the-events-calendar' ],
|
243 |
'is_active' => class_exists( 'Tribe__Events__Community__Main' ),
|
244 |
+
];
|
245 |
|
246 |
+
$addons['event-aggregator'] = [
|
247 |
'id' => 'event-aggregator',
|
248 |
'title' => esc_html__( 'Event Aggregator', 'tribe-common' ),
|
249 |
'link' => 'http://m.tri.be/19mk',
|
250 |
+
'plugin' => [ 'the-events-calendar' ],
|
251 |
+
'is_active' => class_exists( 'Tribe__Events__Aggregator' ) && tribe(
|
252 |
+
'events-aggregator.main'
|
253 |
+
)->is_service_active(),
|
254 |
+
];
|
255 |
|
256 |
+
$addons['events-filter-bar'] = [
|
257 |
+
'id' => 'events-filter-bar',
|
258 |
+
'title' => esc_html__( 'Filter Bar', 'tribe-common' ),
|
259 |
+
'link' => 'http://m.tri.be/hu',
|
260 |
+
'plugin' => [ 'the-events-calendar' ],
|
261 |
+
'is_active' => class_exists( 'Tribe__Events__Filterbar__View' ),
|
262 |
+
];
|
263 |
|
264 |
$addons['events-virtual'] = [
|
265 |
+
'id' => 'events-virtual',
|
266 |
+
'title' => esc_html__( 'Virtual Events', 'tribe-common' ),
|
267 |
+
'link' => 'http://m.tri.be/1alb',
|
268 |
+
'plugin' => [ 'the-events-calendar' ],
|
269 |
+
'is_active' => class_exists( '\Tribe\Events\Virtual\Plugin' ),
|
270 |
];
|
271 |
|
272 |
+
$addons['event-tickets-plus'] = [
|
273 |
+
'id' => 'event-tickets-plus',
|
274 |
+
'title' => esc_html__( 'Event Tickets Plus', 'tribe-common' ),
|
275 |
+
'link' => 'http://m.tri.be/18wa',
|
276 |
+
'plugin' => [ 'event-tickets' ],
|
277 |
+
'is_active' => class_exists( 'Tribe__Tickets_Plus__Main' ),
|
278 |
'is_important' => true,
|
279 |
+
];
|
280 |
|
281 |
+
$addons['event-community-tickets'] = [
|
282 |
'id' => 'event-community-tickets',
|
283 |
'title' => esc_html__( 'Community Tickets', 'tribe-common' ),
|
284 |
'link' => 'http://m.tri.be/18m2',
|
285 |
+
'plugin' => [ 'event-tickets' ],
|
286 |
'is_active' => class_exists( 'Tribe__Events__Community__Tickets__Main' ),
|
287 |
+
];
|
288 |
|
289 |
/**
|
290 |
* Filter the array of premium addons upsold on the sidebar of the Settings > Help tab
|
299 |
}
|
300 |
|
301 |
// Allow for easily grab the addons for a plugin
|
302 |
+
$filtered = [];
|
303 |
foreach ( $addons as $id => $addon ) {
|
304 |
if ( ! is_null( $plugin ) && ! in_array( $plugin, (array) $addon['plugin'] ) ) {
|
305 |
continue;
|
329 |
|
330 |
public function is_active( $should_be_active ) {
|
331 |
$plugins = $this->get_plugins( null, true );
|
332 |
+
$addons = $this->get_addons( null, true );
|
333 |
|
334 |
+
$actives = array_merge( $plugins, $addons );
|
335 |
+
$is_active = [];
|
336 |
|
337 |
foreach ( $actives as $id => $active ) {
|
338 |
if ( in_array( $id, (array) $should_be_active ) ) {
|
353 |
* @return string Link with the GA arguments
|
354 |
*/
|
355 |
public function get_ga_link( $link = null, $relative = true ) {
|
356 |
+
$query_args = [
|
357 |
'utm_source' => 'helptab',
|
358 |
'utm_medium' => 'plugin-tec',
|
359 |
'utm_campaign' => 'in-app',
|
360 |
+
];
|
361 |
|
362 |
if ( true === $relative ) {
|
363 |
$link = trailingslashit( Tribe__Main::$tec_url . $link );
|
374 |
* @return array Feed Title and Link
|
375 |
*/
|
376 |
public function get_feed_items() {
|
377 |
+
$news_rss = fetch_feed( Tribe__Main::FEED_URL );
|
378 |
+
$news_feed = [];
|
379 |
|
380 |
if ( ! is_wp_error( $news_rss ) ) {
|
381 |
/**
|
387 |
$rss_items = $news_rss->get_items( 0, $maxitems );
|
388 |
if ( $maxitems > 0 ) {
|
389 |
foreach ( $rss_items as $item ) {
|
390 |
+
$item = [
|
391 |
'title' => esc_html( $item->get_title() ),
|
392 |
'link' => esc_url( $item->get_permalink() ),
|
393 |
+
];
|
394 |
$news_feed[] = $item;
|
395 |
}
|
396 |
}
|
428 |
}
|
429 |
|
430 |
// Fetch the data
|
431 |
+
$data = plugins_api( 'plugin_information', [
|
432 |
+
'slug' => $plugin->name,
|
433 |
+
'is_ssl' => is_ssl(),
|
434 |
+
'fields' => [
|
435 |
+
'banners' => true,
|
436 |
+
'reviews' => true,
|
437 |
+
'downloaded' => true,
|
438 |
+
'active_installs' => true,
|
439 |
+
],
|
440 |
+
] );
|
441 |
|
442 |
if ( ! is_wp_error( $data ) ) {
|
443 |
// Format Downloaded Infomation
|
498 |
}
|
499 |
|
500 |
// Only add List Item if is a UL or OL
|
501 |
+
if ( in_array( $line['type'], [ 'ul', 'ol' ] ) ) {
|
502 |
$text .= '<li>' . "\n";
|
503 |
}
|
504 |
|
505 |
$text .= $this->get_content_html( $item );
|
506 |
|
507 |
+
if ( in_array( $line['type'], [ 'ul', 'ol' ] ) ) {
|
508 |
$text .= '</li>' . "\n";
|
509 |
}
|
510 |
}
|
526 |
* @access private
|
527 |
* @var array
|
528 |
*/
|
529 |
+
private $sections = [];
|
530 |
|
531 |
/**
|
532 |
* Incremented with each method call, then stored in $section->uid.
|
584 |
// Everytime you call this we will add this up
|
585 |
self::$section_count++;
|
586 |
|
587 |
+
$possible_types = (array) apply_filters( 'tribe_help_available_section_types', [ 'default', 'box' ] );
|
588 |
|
589 |
// Set a Default type
|
590 |
if ( empty( $type ) || ! in_array( $type, $possible_types ) ) {
|
592 |
}
|
593 |
|
594 |
// Create the section and Sanitize the values to avoid having to do it later
|
595 |
+
$section = (object) [
|
596 |
+
'id' => sanitize_html_class( $id ),
|
597 |
+
'title' => esc_html( $title ),
|
598 |
+
'priority' => absint( $priority ),
|
599 |
+
'type' => sanitize_html_class( $type ),
|
600 |
|
601 |
+
// This Method Unique count integer used for ordering with priority
|
602 |
+
'unique_call_order' => self::$section_count,
|
603 |
|
604 |
+
// Counter for ordering Content
|
605 |
+
'content_count' => 0,
|
606 |
|
607 |
+
// Setup the Base for the content to come
|
608 |
+
'content' => [],
|
609 |
+
];
|
610 |
|
611 |
$this->sections[ $section->id ] = $section;
|
612 |
|
625 |
*
|
626 |
* @return object The content item added
|
627 |
*/
|
628 |
+
public function add_section_content( $section_id, $content, $priority = 10, $arguments = [] ) {
|
629 |
$section_id = sanitize_html_class( $section_id );
|
630 |
|
631 |
// Check if the section exists
|
670 |
public function remove_section( $section_id ) {
|
671 |
if (
|
672 |
! isset( $this->sections[ $section_id ] ) &&
|
673 |
+
! in_array( (object) [ 'id' => $section_id ], $this->sections, true )
|
674 |
) {
|
675 |
// There are no sections to remove, so false
|
676 |
return false;
|
677 |
}
|
678 |
|
679 |
+
$removed = [];
|
680 |
foreach ( $this->sections as $id => $section ) {
|
681 |
if ( ! is_numeric( $id ) && ! is_numeric( $section_id ) && ! empty( $section->id ) ) {
|
682 |
if ( $section->id === $section_id ) {
|
730 |
}
|
731 |
|
732 |
// Sort by Priority
|
733 |
+
uasort( $sections, [ $this, 'by_priority' ] );
|
734 |
|
735 |
+
$html = [];
|
736 |
|
737 |
foreach ( $sections as $index => $section ) {
|
738 |
$section = (object) $section;
|
755 |
$section = apply_filters( 'tribe_help_section_' . $section->id, $section, $this );
|
756 |
|
757 |
// Sort by Priority
|
758 |
+
uasort( $section->content, [ $this, 'by_priority' ] );
|
759 |
|
760 |
$html[ $section->id . '-start' ] = '<div id="tribe-' . sanitize_html_class( $section->id ) . '" class="tribe-help-section clearfix tribe-section-type-' . sanitize_html_class( $section->type ) . '">';
|
761 |
|
806 |
$plugin_exists = isset( $plugins[ $status['file'] ] );
|
807 |
|
808 |
if ( 'install' !== $status['status'] && ! $plugin_active ) {
|
809 |
+
$args = [
|
810 |
+
'action' => 'activate',
|
811 |
+
'plugin' => $status['file'],
|
812 |
'plugin_status' => 'all',
|
813 |
+
'paged' => 1,
|
814 |
+
's' => '',
|
815 |
+
];
|
816 |
$activate_url = wp_nonce_url( add_query_arg( $args, 'plugins.php' ), 'activate-plugin_' . $status['file'] );
|
817 |
$link = '<a class="button" href="' . $activate_url . '" aria-label="' . esc_attr( sprintf( esc_attr__( 'Activate %s', 'tribe-common' ), $plugin->name ) ) . '">' . esc_html__( 'Activate Plugin', 'tribe-common' ) . '</a>';
|
818 |
} elseif ( 'update_available' === $status['status'] ) {
|
819 |
+
$args = [
|
820 |
'action' => 'upgrade-plugin',
|
821 |
'plugin' => $status['file'],
|
822 |
+
];
|
823 |
$update_url = wp_nonce_url( add_query_arg( $args, 'update.php' ), 'upgrade-plugin_' . $status['file'] );
|
824 |
|
825 |
$link = '<a class="button" href="' . $update_url . '">' . esc_html__( 'Upgrade Plugin', 'tribe-common' ) . '</a>';
|
830 |
|
831 |
if ( ! isset( $link ) ) {
|
832 |
if ( $api_data ) {
|
833 |
+
$args = [
|
834 |
'tab' => 'plugin-information',
|
835 |
'plugin' => $plugin->name,
|
836 |
'TB_iframe' => true,
|
837 |
'width' => 772,
|
838 |
'height' => 600,
|
839 |
+
];
|
840 |
$iframe_url = add_query_arg( $args, admin_url( '/plugin-install.php' ) );
|
841 |
$link = '<a class="button thickbox" href="' . $iframe_url . '" aria-label="' . esc_attr( sprintf( esc_attr__( 'Install %s', 'tribe-common' ), $plugin->name ) ) . '">' . esc_html__( 'Install Plugin', 'tribe-common' ) . '</a>';
|
842 |
} else {
|
865 |
<dd><?php echo esc_html( number_format( $api_data->active_installs ) ); ?>+</dd>
|
866 |
|
867 |
<dt><?php esc_html_e( 'Rating:', 'tribe-common' ); ?></dt>
|
868 |
+
<dd>
|
869 |
+
<a href="<?php echo esc_url( $plugin->stars_url ); ?>" target="_blank">
|
870 |
+
<?php
|
871 |
+
wp_star_rating( [
|
872 |
+
'rating' => $api_data->rating,
|
873 |
+
'type' => 'percent',
|
874 |
+
'number' => $api_data->num_ratings,
|
875 |
+
] );
|
876 |
+
?>
|
877 |
+
</a>
|
878 |
+
</dd>
|
879 |
</dl>
|
880 |
<?php } ?>
|
881 |
|
common/src/Tribe/Admin/Live_Date_Preview.php
CHANGED
@@ -3,12 +3,12 @@
|
|
3 |
* Facilitiates live date previews in the Events > Settings > Display admin screen.
|
4 |
*/
|
5 |
class Tribe__Admin__Live_Date_Preview {
|
6 |
-
protected $target_fields =
|
7 |
'dateWithYearFormat',
|
8 |
'dateWithoutYearFormat',
|
9 |
'monthAndYearFormat',
|
10 |
'weekDayFormat',
|
11 |
-
|
12 |
|
13 |
/**
|
14 |
* Static Singleton Holder
|
@@ -31,7 +31,7 @@ class Tribe__Admin__Live_Date_Preview {
|
|
31 |
* the user is actually on that tab).
|
32 |
*/
|
33 |
public function __construct() {
|
34 |
-
add_action( 'tribe_settings_after_do_tabs',
|
35 |
}
|
36 |
|
37 |
/**
|
@@ -50,10 +50,10 @@ class Tribe__Admin__Live_Date_Preview {
|
|
50 |
*/
|
51 |
$this->target_fields = (array) apply_filters( 'tribe_settings_date_preview_fields', $this->target_fields );
|
52 |
|
53 |
-
add_filter( 'tribe_field_div_end',
|
54 |
|
55 |
// We are still before `admin_enqueue_scripts` making it safe to use `tribe_asset`
|
56 |
-
tribe_asset( Tribe__Main::instance(), 'tribe-date-live-refresh', 'admin-date-preview.js',
|
57 |
}
|
58 |
|
59 |
public function setup_date_previews( $html, $field ) {
|
3 |
* Facilitiates live date previews in the Events > Settings > Display admin screen.
|
4 |
*/
|
5 |
class Tribe__Admin__Live_Date_Preview {
|
6 |
+
protected $target_fields = [
|
7 |
'dateWithYearFormat',
|
8 |
'dateWithoutYearFormat',
|
9 |
'monthAndYearFormat',
|
10 |
'weekDayFormat',
|
11 |
+
];
|
12 |
|
13 |
/**
|
14 |
* Static Singleton Holder
|
31 |
* the user is actually on that tab).
|
32 |
*/
|
33 |
public function __construct() {
|
34 |
+
add_action( 'tribe_settings_after_do_tabs', [ $this, 'listen' ] );
|
35 |
}
|
36 |
|
37 |
/**
|
50 |
*/
|
51 |
$this->target_fields = (array) apply_filters( 'tribe_settings_date_preview_fields', $this->target_fields );
|
52 |
|
53 |
+
add_filter( 'tribe_field_div_end', [ $this, 'setup_date_previews' ], 10, 2 );
|
54 |
|
55 |
// We are still before `admin_enqueue_scripts` making it safe to use `tribe_asset`
|
56 |
+
tribe_asset( Tribe__Main::instance(), 'tribe-date-live-refresh', 'admin-date-preview.js', [ 'jquery' ], 'admin_enqueue_scripts' );
|
57 |
}
|
58 |
|
59 |
public function setup_date_previews( $html, $field ) {
|
common/src/Tribe/Admin/Notice/Marketing.php
CHANGED
@@ -45,7 +45,7 @@ class Tribe__Admin__Notice__Marketing {
|
|
45 |
/**
|
46 |
* Register the Black Friday notice.
|
47 |
*
|
48 |
-
* @since
|
49 |
*/
|
50 |
public function black_friday_hook_notice() {
|
51 |
|
@@ -65,7 +65,7 @@ class Tribe__Admin__Notice__Marketing {
|
|
65 |
/**
|
66 |
* Unix time for Monday of Thanksgiving week @ 11am UTC. (11am UTC is 6am EST).
|
67 |
*
|
68 |
-
* @since
|
69 |
*
|
70 |
* @return int
|
71 |
*/
|
@@ -79,7 +79,7 @@ class Tribe__Admin__Notice__Marketing {
|
|
79 |
/**
|
80 |
* Allow filtering of the Black Friday sale start date, mainly for testing purposes.
|
81 |
*
|
82 |
-
* @since
|
83 |
*
|
84 |
* @param int $bf_start_date Unix time for the Monday of Thanksgiving week @ 6am UTC.
|
85 |
*/
|
@@ -89,7 +89,7 @@ class Tribe__Admin__Notice__Marketing {
|
|
89 |
/**
|
90 |
* Unix time for Dec 1 @ 5am UTC. (5am UTC is 12am EST).
|
91 |
*
|
92 |
-
* @since
|
93 |
*
|
94 |
* @return int
|
95 |
*/
|
@@ -102,7 +102,7 @@ class Tribe__Admin__Notice__Marketing {
|
|
102 |
/**
|
103 |
* Allow filtering of the Black Friday sale end date, mainly for testing purposes.
|
104 |
*
|
105 |
-
* @since
|
106 |
*
|
107 |
* @param int $bf_end_date Unix time for Dec 1 @ 6am UTC.
|
108 |
*/
|
@@ -114,7 +114,7 @@ class Tribe__Admin__Notice__Marketing {
|
|
114 |
* Unix times for Monday of Thanksgiving week @ 6am UTC and Dec 1 2020 @ 6am UTC.
|
115 |
* 6am UTC is midnight for TheEventsCalendar.com, which uses the America/Los_Angeles time zone.
|
116 |
*
|
117 |
-
* @since
|
118 |
*
|
119 |
* @return boolean
|
120 |
*/
|
@@ -149,12 +149,12 @@ class Tribe__Admin__Notice__Marketing {
|
|
149 |
/**
|
150 |
* HTML for the Black Friday notice.
|
151 |
*
|
152 |
-
* @since
|
153 |
*
|
154 |
* @return string
|
155 |
*/
|
156 |
public function black_friday_display_notice() {
|
157 |
-
Tribe__Assets::instance()->enqueue(
|
158 |
|
159 |
$current_screen = get_current_screen();
|
160 |
|
45 |
/**
|
46 |
* Register the Black Friday notice.
|
47 |
*
|
48 |
+
* @since 4.12.14
|
49 |
*/
|
50 |
public function black_friday_hook_notice() {
|
51 |
|
65 |
/**
|
66 |
* Unix time for Monday of Thanksgiving week @ 11am UTC. (11am UTC is 6am EST).
|
67 |
*
|
68 |
+
* @since 4.12.14
|
69 |
*
|
70 |
* @return int
|
71 |
*/
|
79 |
/**
|
80 |
* Allow filtering of the Black Friday sale start date, mainly for testing purposes.
|
81 |
*
|
82 |
+
* @since 4.12.14
|
83 |
*
|
84 |
* @param int $bf_start_date Unix time for the Monday of Thanksgiving week @ 6am UTC.
|
85 |
*/
|
89 |
/**
|
90 |
* Unix time for Dec 1 @ 5am UTC. (5am UTC is 12am EST).
|
91 |
*
|
92 |
+
* @since 4.12.14
|
93 |
*
|
94 |
* @return int
|
95 |
*/
|
102 |
/**
|
103 |
* Allow filtering of the Black Friday sale end date, mainly for testing purposes.
|
104 |
*
|
105 |
+
* @since 4.12.14
|
106 |
*
|
107 |
* @param int $bf_end_date Unix time for Dec 1 @ 6am UTC.
|
108 |
*/
|
114 |
* Unix times for Monday of Thanksgiving week @ 6am UTC and Dec 1 2020 @ 6am UTC.
|
115 |
* 6am UTC is midnight for TheEventsCalendar.com, which uses the America/Los_Angeles time zone.
|
116 |
*
|
117 |
+
* @since 4.12.14
|
118 |
*
|
119 |
* @return boolean
|
120 |
*/
|
149 |
/**
|
150 |
* HTML for the Black Friday notice.
|
151 |
*
|
152 |
+
* @since 4.12.14
|
153 |
*
|
154 |
* @return string
|
155 |
*/
|
156 |
public function black_friday_display_notice() {
|
157 |
+
Tribe__Assets::instance()->enqueue( [ 'tribe-common-admin' ] );
|
158 |
|
159 |
$current_screen = get_current_screen();
|
160 |
|
common/src/Tribe/Admin/Notice/Php_Version.php
CHANGED
@@ -9,13 +9,13 @@ class Tribe__Admin__Notice__Php_Version {
|
|
9 |
// display the PHP version notice
|
10 |
tribe_notice(
|
11 |
'php-deprecated',
|
12 |
-
|
13 |
-
|
14 |
'type' => 'warning',
|
15 |
'dismiss' => 1,
|
16 |
'wrap' => 'p',
|
17 |
-
|
18 |
-
|
19 |
);
|
20 |
|
21 |
}
|
9 |
// display the PHP version notice
|
10 |
tribe_notice(
|
11 |
'php-deprecated',
|
12 |
+
[ $this, 'display_notice' ],
|
13 |
+
[
|
14 |
'type' => 'warning',
|
15 |
'dismiss' => 1,
|
16 |
'wrap' => 'p',
|
17 |
+
],
|
18 |
+
[ $this, 'should_display' ]
|
19 |
);
|
20 |
|
21 |
}
|
common/src/Tribe/Admin/Notice/Plugin_Download.php
CHANGED
@@ -7,7 +7,7 @@ class Tribe__Admin__Notice__Plugin_Download {
|
|
7 |
|
8 |
private $plugin_path;
|
9 |
|
10 |
-
private $plugins_required =
|
11 |
|
12 |
/**
|
13 |
* @param string $plugin_path Path to the plugin file we're showing a notice for
|
@@ -17,7 +17,7 @@ class Tribe__Admin__Notice__Plugin_Download {
|
|
17 |
|
18 |
tribe_notice(
|
19 |
plugin_basename( $plugin_path ),
|
20 |
-
|
21 |
);
|
22 |
}
|
23 |
|
@@ -60,7 +60,7 @@ class Tribe__Admin__Notice__Plugin_Download {
|
|
60 |
}
|
61 |
|
62 |
$plugin_data = get_plugin_data( $this->plugin_path );
|
63 |
-
$req_plugins =
|
64 |
|
65 |
if ( empty( $this->plugins_required ) ) {
|
66 |
return;
|
@@ -111,10 +111,10 @@ class Tribe__Admin__Notice__Plugin_Download {
|
|
111 |
$plugin_name[] = $plugin_data['Name'];
|
112 |
}
|
113 |
|
114 |
-
$allowed_html =
|
115 |
-
'strong' =>
|
116 |
-
'a' =>
|
117 |
-
|
118 |
|
119 |
$plugin_names_clean_text = wp_kses( $this->implode_with_grammar( $plugin_name ), $allowed_html );
|
120 |
$req_plugin_names_clean_text = wp_kses( $this->implode_with_grammar( $req_plugins ), $allowed_html );
|
7 |
|
8 |
private $plugin_path;
|
9 |
|
10 |
+
private $plugins_required = [];
|
11 |
|
12 |
/**
|
13 |
* @param string $plugin_path Path to the plugin file we're showing a notice for
|
17 |
|
18 |
tribe_notice(
|
19 |
plugin_basename( $plugin_path ),
|
20 |
+
[ $this, 'show_inactive_plugins_alert' ]
|
21 |
);
|
22 |
}
|
23 |
|
60 |
}
|
61 |
|
62 |
$plugin_data = get_plugin_data( $this->plugin_path );
|
63 |
+
$req_plugins = [];
|
64 |
|
65 |
if ( empty( $this->plugins_required ) ) {
|
66 |
return;
|
111 |
$plugin_name[] = $plugin_data['Name'];
|
112 |
}
|
113 |
|
114 |
+
$allowed_html = [
|
115 |
+
'strong' => [],
|
116 |
+
'a' => [ 'href' => [] ],
|
117 |
+
];
|
118 |
|
119 |
$plugin_names_clean_text = wp_kses( $this->implode_with_grammar( $plugin_name ), $allowed_html );
|
120 |
$req_plugin_names_clean_text = wp_kses( $this->implode_with_grammar( $req_plugins ), $allowed_html );
|
common/src/Tribe/Admin/Notice/Plugin_Upgrade_Notice.php
CHANGED
@@ -46,7 +46,7 @@ class Tribe__Admin__Notice__Plugin_Upgrade_Notice {
|
|
46 |
$this->current_version = $current_version;
|
47 |
$this->plugin_path = $plugin_path;
|
48 |
|
49 |
-
add_action( "in_plugin_update_message-$plugin_path",
|
50 |
}
|
51 |
|
52 |
/**
|
46 |
$this->current_version = $current_version;
|
47 |
$this->plugin_path = $plugin_path;
|
48 |
|
49 |
+
add_action( "in_plugin_update_message-$plugin_path", [ $this, 'maybe_run' ] );
|
50 |
}
|
51 |
|
52 |
/**
|
common/src/Tribe/Admin/Notices.php
CHANGED
@@ -65,7 +65,7 @@ class Tribe__Admin__Notices {
|
|
65 |
*
|
66 |
* @var array
|
67 |
*/
|
68 |
-
protected $notices =
|
69 |
|
70 |
/**
|
71 |
* Register the Methods in the correct places
|
@@ -80,7 +80,7 @@ class Tribe__Admin__Notices {
|
|
80 |
}
|
81 |
|
82 |
// Before we bail on the
|
83 |
-
add_action( 'wp_ajax_tribe_notice_dismiss',
|
84 |
|
85 |
// Doing AJAX? bail.
|
86 |
if ( tribe( 'context' )->doing_ajax() ) {
|
@@ -88,14 +88,14 @@ class Tribe__Admin__Notices {
|
|
88 |
}
|
89 |
|
90 |
// Hook the actual rendering of notices
|
91 |
-
add_action( 'current_screen',
|
92 |
|
93 |
// Add our notice dismissal script
|
94 |
tribe_asset(
|
95 |
Tribe__Main::instance(),
|
96 |
'tribe-notice-dismiss',
|
97 |
'notice-dismiss.js',
|
98 |
-
|
99 |
'admin_enqueue_scripts'
|
100 |
);
|
101 |
}
|
@@ -180,7 +180,7 @@ class Tribe__Admin__Notices {
|
|
180 |
$wrap = isset( $notice->wrap ) ? $notice->wrap : false;
|
181 |
|
182 |
if ( is_callable( $content ) ) {
|
183 |
-
$content = call_user_func_array( $content,
|
184 |
}
|
185 |
|
186 |
// Return the rendered HTML
|
@@ -219,7 +219,7 @@ class Tribe__Admin__Notices {
|
|
219 |
$notice = $this->get( $slug );
|
220 |
$this->notices[ $slug ]->is_rendered = true;
|
221 |
|
222 |
-
$classes
|
223 |
$classes[] = sanitize_html_class( 'notice-' . $notice->type );
|
224 |
$classes[] = sanitize_html_class( 'tribe-notice-' . $notice->slug );
|
225 |
|
@@ -382,10 +382,10 @@ class Tribe__Admin__Notices {
|
|
382 |
* @return int
|
383 |
*/
|
384 |
public function undismiss_for_all( $slug ) {
|
385 |
-
$user_query = new WP_User_Query(
|
386 |
'meta_key' => self::$meta_key,
|
387 |
'meta_value' => $slug,
|
388 |
-
|
389 |
|
390 |
$affected = 0;
|
391 |
|
@@ -411,23 +411,23 @@ class Tribe__Admin__Notices {
|
|
411 |
*
|
412 |
* @return stdClass
|
413 |
*/
|
414 |
-
public function register( $slug, $callback, $arguments =
|
415 |
// Prevent weird stuff here
|
416 |
$slug = sanitize_title_with_dashes( $slug );
|
417 |
|
418 |
-
$defaults =
|
419 |
-
'callback'
|
420 |
-
'content'
|
421 |
-
'action'
|
422 |
-
'priority'
|
423 |
-
'expire'
|
424 |
-
'dismiss'
|
425 |
-
'type'
|
426 |
-
'is_rendered'
|
427 |
-
'wrap'
|
428 |
-
|
429 |
-
|
430 |
-
$defaults['callback'] =
|
431 |
$defaults['content'] = $callback;
|
432 |
|
433 |
if ( is_callable( $active_callback ) ) {
|
@@ -467,9 +467,9 @@ class Tribe__Admin__Notices {
|
|
467 |
*
|
468 |
* @return stdClass Which notice was registered
|
469 |
*/
|
470 |
-
public function register_transient( $slug, $html, $arguments =
|
471 |
$notices = $this->get_transients();
|
472 |
-
$notices[ $slug ] =
|
473 |
$this->set_transients( $notices );
|
474 |
}
|
475 |
|
@@ -557,7 +557,7 @@ class Tribe__Admin__Notices {
|
|
557 |
|
558 |
$transient = self::$transient_notices_name;
|
559 |
$notices = get_transient( $transient );
|
560 |
-
$notices = is_array( $notices ) ? $notices :
|
561 |
|
562 |
if ( $this->did_prune_transients ) {
|
563 |
$this->did_prune_transients = true;
|
65 |
*
|
66 |
* @var array
|
67 |
*/
|
68 |
+
protected $notices = [];
|
69 |
|
70 |
/**
|
71 |
* Register the Methods in the correct places
|
80 |
}
|
81 |
|
82 |
// Before we bail on the
|
83 |
+
add_action( 'wp_ajax_tribe_notice_dismiss', [ $this, 'maybe_dismiss' ] );
|
84 |
|
85 |
// Doing AJAX? bail.
|
86 |
if ( tribe( 'context' )->doing_ajax() ) {
|
88 |
}
|
89 |
|
90 |
// Hook the actual rendering of notices
|
91 |
+
add_action( 'current_screen', [ $this, 'hook' ], 20 );
|
92 |
|
93 |
// Add our notice dismissal script
|
94 |
tribe_asset(
|
95 |
Tribe__Main::instance(),
|
96 |
'tribe-notice-dismiss',
|
97 |
'notice-dismiss.js',
|
98 |
+
[ 'jquery' ],
|
99 |
'admin_enqueue_scripts'
|
100 |
);
|
101 |
}
|
180 |
$wrap = isset( $notice->wrap ) ? $notice->wrap : false;
|
181 |
|
182 |
if ( is_callable( $content ) ) {
|
183 |
+
$content = call_user_func_array( $content, [ $notice ] );
|
184 |
}
|
185 |
|
186 |
// Return the rendered HTML
|
219 |
$notice = $this->get( $slug );
|
220 |
$this->notices[ $slug ]->is_rendered = true;
|
221 |
|
222 |
+
$classes = [ 'tribe-dismiss-notice', 'notice' ];
|
223 |
$classes[] = sanitize_html_class( 'notice-' . $notice->type );
|
224 |
$classes[] = sanitize_html_class( 'tribe-notice-' . $notice->slug );
|
225 |
|
382 |
* @return int
|
383 |
*/
|
384 |
public function undismiss_for_all( $slug ) {
|
385 |
+
$user_query = new WP_User_Query( [
|
386 |
'meta_key' => self::$meta_key,
|
387 |
'meta_value' => $slug,
|
388 |
+
] );
|
389 |
|
390 |
$affected = 0;
|
391 |
|
411 |
*
|
412 |
* @return stdClass
|
413 |
*/
|
414 |
+
public function register( $slug, $callback, $arguments = [], $active_callback = null ) {
|
415 |
// Prevent weird stuff here
|
416 |
$slug = sanitize_title_with_dashes( $slug );
|
417 |
|
418 |
+
$defaults = [
|
419 |
+
'callback' => null,
|
420 |
+
'content' => null,
|
421 |
+
'action' => 'admin_notices',
|
422 |
+
'priority' => 10,
|
423 |
+
'expire' => false,
|
424 |
+
'dismiss' => false,
|
425 |
+
'type' => 'error',
|
426 |
+
'is_rendered' => false,
|
427 |
+
'wrap' => false,
|
428 |
+
];
|
429 |
+
|
430 |
+
$defaults['callback'] = [ $this, 'render_' . $slug ];
|
431 |
$defaults['content'] = $callback;
|
432 |
|
433 |
if ( is_callable( $active_callback ) ) {
|
467 |
*
|
468 |
* @return stdClass Which notice was registered
|
469 |
*/
|
470 |
+
public function register_transient( $slug, $html, $arguments = [], $expire = null ) {
|
471 |
$notices = $this->get_transients();
|
472 |
+
$notices[ $slug ] = [ $html, $arguments, time() + $expire ];
|
473 |
$this->set_transients( $notices );
|
474 |
}
|
475 |
|
557 |
|
558 |
$transient = self::$transient_notices_name;
|
559 |
$notices = get_transient( $transient );
|
560 |
+
$notices = is_array( $notices ) ? $notices : [];
|
561 |
|
562 |
if ( $this->did_prune_transients ) {
|
563 |
$this->did_prune_transients = true;
|
common/src/Tribe/Ajax/Dropdown.php
CHANGED
@@ -15,8 +15,8 @@ class Tribe__Ajax__Dropdown {
|
|
15 |
* @return void
|
16 |
*/
|
17 |
public function hook() {
|
18 |
-
add_action( 'wp_ajax_tribe_dropdown',
|
19 |
-
add_action( 'wp_ajax_nopriv_tribe_dropdown',
|
20 |
}
|
21 |
|
22 |
/**
|
@@ -118,7 +118,7 @@ class Tribe__Ajax__Dropdown {
|
|
118 |
}
|
119 |
|
120 |
foreach ( $into as $term ) {
|
121 |
-
$term->children =
|
122 |
$this->sort_terms_hierarchically( $terms, $term->children, $term->term_id );
|
123 |
}
|
124 |
}
|
@@ -145,7 +145,7 @@ class Tribe__Ajax__Dropdown {
|
|
145 |
}
|
146 |
|
147 |
if ( empty( $results ) ) {
|
148 |
-
return
|
149 |
}
|
150 |
|
151 |
return array_values( (array) $results );
|
@@ -160,12 +160,12 @@ class Tribe__Ajax__Dropdown {
|
|
160 |
* @return object
|
161 |
*/
|
162 |
public function parse_params( $params ) {
|
163 |
-
$defaults =
|
164 |
'search' => null,
|
165 |
'page' => 0,
|
166 |
-
'args' =>
|
167 |
'source' => null,
|
168 |
-
|
169 |
|
170 |
$arguments = wp_parse_args( $params, $defaults );
|
171 |
|
@@ -183,7 +183,7 @@ class Tribe__Ajax__Dropdown {
|
|
183 |
*/
|
184 |
public function route() {
|
185 |
// Push all POST params into a Default set of data
|
186 |
-
$args = $this->parse_params( empty( $_POST ) ?
|
187 |
|
188 |
if ( empty( $args->source ) ) {
|
189 |
$this->error( esc_attr__( 'Missing data source for this dropdown', 'tribe-common' ) );
|
@@ -192,9 +192,9 @@ class Tribe__Ajax__Dropdown {
|
|
192 |
// Define a Filter to allow external calls to our Select2 Dropboxes
|
193 |
$filter = sanitize_key( 'tribe_dropdown_' . $args->source );
|
194 |
if ( has_filter( $filter ) ) {
|
195 |
-
$data = apply_filters( $filter,
|
196 |
} else {
|
197 |
-
$data = call_user_func_array(
|
198 |
}
|
199 |
|
200 |
// if we got a empty dataset we return an error
|
@@ -216,7 +216,7 @@ class Tribe__Ajax__Dropdown {
|
|
216 |
private function success( $data ) {
|
217 |
// We need a Results item for Select2 Work
|
218 |
if ( ! isset( $data['results'] ) ) {
|
219 |
-
$data['results'] =
|
220 |
}
|
221 |
|
222 |
wp_send_json_success( $data );
|
@@ -231,10 +231,10 @@ class Tribe__Ajax__Dropdown {
|
|
231 |
* @return void
|
232 |
*/
|
233 |
private function error( $message ) {
|
234 |
-
$data =
|
235 |
'message' => $message,
|
236 |
-
'results' =>
|
237 |
-
|
238 |
wp_send_json_error( $data );
|
239 |
}
|
240 |
|
15 |
* @return void
|
16 |
*/
|
17 |
public function hook() {
|
18 |
+
add_action( 'wp_ajax_tribe_dropdown', [ $this, 'route' ] );
|
19 |
+
add_action( 'wp_ajax_nopriv_tribe_dropdown', [ $this, 'route' ] );
|
20 |
}
|
21 |
|
22 |
/**
|
118 |
}
|
119 |
|
120 |
foreach ( $into as $term ) {
|
121 |
+
$term->children = [];
|
122 |
$this->sort_terms_hierarchically( $terms, $term->children, $term->term_id );
|
123 |
}
|
124 |
}
|
145 |
}
|
146 |
|
147 |
if ( empty( $results ) ) {
|
148 |
+
return [];
|
149 |
}
|
150 |
|
151 |
return array_values( (array) $results );
|
160 |
* @return object
|
161 |
*/
|
162 |
public function parse_params( $params ) {
|
163 |
+
$defaults = [
|
164 |
'search' => null,
|
165 |
'page' => 0,
|
166 |
+
'args' => [],
|
167 |
'source' => null,
|
168 |
+
];
|
169 |
|
170 |
$arguments = wp_parse_args( $params, $defaults );
|
171 |
|
183 |
*/
|
184 |
public function route() {
|
185 |
// Push all POST params into a Default set of data
|
186 |
+
$args = $this->parse_params( empty( $_POST ) ? [] : $_POST );
|
187 |
|
188 |
if ( empty( $args->source ) ) {
|
189 |
$this->error( esc_attr__( 'Missing data source for this dropdown', 'tribe-common' ) );
|
192 |
// Define a Filter to allow external calls to our Select2 Dropboxes
|
193 |
$filter = sanitize_key( 'tribe_dropdown_' . $args->source );
|
194 |
if ( has_filter( $filter ) ) {
|
195 |
+
$data = apply_filters( $filter, [], $args->search, $args->page, $args->args, $args->source );
|
196 |
} else {
|
197 |
+
$data = call_user_func_array( [ $this, $args->source ], (array) $args );
|
198 |
}
|
199 |
|
200 |
// if we got a empty dataset we return an error
|
216 |
private function success( $data ) {
|
217 |
// We need a Results item for Select2 Work
|
218 |
if ( ! isset( $data['results'] ) ) {
|
219 |
+
$data['results'] = [];
|
220 |
}
|
221 |
|
222 |
wp_send_json_success( $data );
|
231 |
* @return void
|
232 |
*/
|
233 |
private function error( $message ) {
|
234 |
+
$data = [
|
235 |
'message' => $message,
|
236 |
+
'results' => [],
|
237 |
+
];
|
238 |
wp_send_json_error( $data );
|
239 |
}
|
240 |
|
common/src/Tribe/Ajax/Operations.php
CHANGED
@@ -8,7 +8,7 @@
|
|
8 |
*/
|
9 |
class Tribe__Ajax__Operations {
|
10 |
|
11 |
-
public function verify_or_exit( $nonce, $action, $exit_data =
|
12 |
if ( ! wp_verify_nonce( $nonce, $action ) ) {
|
13 |
exit( $exit_data );
|
14 |
}
|
@@ -16,7 +16,7 @@ class Tribe__Ajax__Operations {
|
|
16 |
return true;
|
17 |
}
|
18 |
|
19 |
-
public function exit_data( $data =
|
20 |
exit( $data );
|
21 |
}
|
22 |
}
|
8 |
*/
|
9 |
class Tribe__Ajax__Operations {
|
10 |
|
11 |
+
public function verify_or_exit( $nonce, $action, $exit_data = [] ) {
|
12 |
if ( ! wp_verify_nonce( $nonce, $action ) ) {
|
13 |
exit( $exit_data );
|
14 |
}
|
16 |
return true;
|
17 |
}
|
18 |
|
19 |
+
public function exit_data( $data = [] ) {
|
20 |
exit( $data );
|
21 |
}
|
22 |
}
|
common/src/Tribe/App_Shop.php
CHANGED
@@ -33,8 +33,8 @@ if ( ! class_exists( 'Tribe__App_Shop' ) ) {
|
|
33 |
* Class constructor
|
34 |
*/
|
35 |
public function __construct() {
|
36 |
-
add_action( 'admin_menu',
|
37 |
-
add_action( 'wp_before_admin_bar_render',
|
38 |
|
39 |
$this->register_assets();
|
40 |
}
|
@@ -53,7 +53,17 @@ if ( ! class_exists( 'Tribe__App_Shop' ) ) {
|
|
53 |
|
54 |
$where = Tribe__Settings::instance()->get_parent_slug();
|
55 |
|
56 |
-
$this->admin_page = add_submenu_page(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
}
|
58 |
|
59 |
/**
|
@@ -67,12 +77,12 @@ if ( ! class_exists( 'Tribe__App_Shop' ) ) {
|
|
67 |
if ( current_user_can( $capability ) ) {
|
68 |
global $wp_admin_bar;
|
69 |
|
70 |
-
$wp_admin_bar->add_menu(
|
71 |
'id' => 'tribe-events-app-shop',
|
72 |
'title' => esc_html__( 'Event Add-Ons', 'tribe-common' ),
|
73 |
-
'href' => Tribe__Settings::instance()->get_url(
|
74 |
'parent' => 'tribe-events-settings-group',
|
75 |
-
|
76 |
}
|
77 |
}
|
78 |
|
@@ -82,14 +92,14 @@ if ( ! class_exists( 'Tribe__App_Shop' ) ) {
|
|
82 |
protected function register_assets() {
|
83 |
tribe_assets(
|
84 |
Tribe__Main::instance(),
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
'admin_enqueue_scripts',
|
90 |
-
|
91 |
-
'conditionals' =>
|
92 |
-
|
93 |
);
|
94 |
}
|
95 |
|
33 |
* Class constructor
|
34 |
*/
|
35 |
public function __construct() {
|
36 |
+
add_action( 'admin_menu', [ $this, 'add_menu_page' ], 100 );
|
37 |
+
add_action( 'wp_before_admin_bar_render', [ $this, 'add_toolbar_item' ], 20 );
|
38 |
|
39 |
$this->register_assets();
|
40 |
}
|
53 |
|
54 |
$where = Tribe__Settings::instance()->get_parent_slug();
|
55 |
|
56 |
+
$this->admin_page = add_submenu_page(
|
57 |
+
$where,
|
58 |
+
$page_title,
|
59 |
+
$menu_title,
|
60 |
+
$capability,
|
61 |
+
self::MENU_SLUG,
|
62 |
+
[
|
63 |
+
$this,
|
64 |
+
'do_menu_page',
|
65 |
+
]
|
66 |
+
);
|
67 |
}
|
68 |
|
69 |
/**
|
77 |
if ( current_user_can( $capability ) ) {
|
78 |
global $wp_admin_bar;
|
79 |
|
80 |
+
$wp_admin_bar->add_menu( [
|
81 |
'id' => 'tribe-events-app-shop',
|
82 |
'title' => esc_html__( 'Event Add-Ons', 'tribe-common' ),
|
83 |
+
'href' => Tribe__Settings::instance()->get_url( [ 'page' => self::MENU_SLUG ] ),
|
84 |
'parent' => 'tribe-events-settings-group',
|
85 |
+
] );
|
86 |
}
|
87 |
}
|
88 |
|
92 |
protected function register_assets() {
|
93 |
tribe_assets(
|
94 |
Tribe__Main::instance(),
|
95 |
+
[
|
96 |
+
[ 'tribe-app-shop-css', 'app-shop.css' ],
|
97 |
+
[ 'tribe-app-shop-js', 'app-shop.js', [ 'jquery' ] ],
|
98 |
+
],
|
99 |
'admin_enqueue_scripts',
|
100 |
+
[
|
101 |
+
'conditionals' => [ $this, 'is_current_page' ],
|
102 |
+
]
|
103 |
);
|
104 |
}
|
105 |
|
common/src/Tribe/Asset/Data.php
CHANGED
@@ -1,67 +1,67 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Handles adding script data to the page in cases where localizing a
|
4 |
-
* specific script is not suitable.
|
5 |
-
*
|
6 |
-
* Should generally be accessed via tribe( 'tribe.asset.script-data' )
|
7 |
-
* rather than via direct instantiation.
|
8 |
-
*/
|
9 |
-
class Tribe__Asset__Data {
|
10 |
-
/**
|
11 |
-
* Container for any JS data objects that should be added to the page.
|
12 |
-
*
|
13 |
-
* @var array
|
14 |
-
*/
|
15 |
-
protected $objects =
|
16 |
-
|
17 |
-
/**
|
18 |
-
* Hooks up the method used to actually render the JSON data.
|
19 |
-
*/
|
20 |
-
public function hook() {
|
21 |
-
if ( is_admin() ) {
|
22 |
-
add_action( 'admin_footer',
|
23 |
-
add_action( 'customize_controls_print_footer_scripts',
|
24 |
-
} else {
|
25 |
-
add_action( 'wp_footer',
|
26 |
-
}
|
27 |
-
}
|
28 |
-
|
29 |
-
/**
|
30 |
-
* Adds the provided data to the list of objects that should be available
|
31 |
-
* to other scripts.
|
32 |
-
*
|
33 |
-
* @param string $object_name Object name.
|
34 |
-
* @param array $data Object data.
|
35 |
-
*/
|
36 |
-
public function add( $object_name, $data ) {
|
37 |
-
/**
|
38 |
-
* Allow plugins to filter data for a specific object.
|
39 |
-
*
|
40 |
-
* @since 4.8.4
|
41 |
-
*
|
42 |
-
* @param array $data Object data.
|
43 |
-
* @param string $object_name Object name.
|
44 |
-
*/
|
45 |
-
$data = apply_filters( "tribe_asset_data_add_object_{$object_name}", $data, $object_name );
|
46 |
-
|
47 |
-
$this->objects[ $object_name ] = $data;
|
48 |
-
}
|
49 |
-
|
50 |
-
/**
|
51 |
-
* Outputs the
|
52 |
-
* @internal
|
53 |
-
*/
|
54 |
-
public function render_json() {
|
55 |
-
if ( empty( $this->objects ) ) {
|
56 |
-
return;
|
57 |
-
}
|
58 |
-
|
59 |
-
echo '<script> /* <![CDATA[ */';
|
60 |
-
|
61 |
-
foreach ( $this->objects as $object_name => $data ) {
|
62 |
-
echo 'var ' . esc_html( $object_name ) . ' = ' . wp_json_encode( $data ) . ';';
|
63 |
-
}
|
64 |
-
|
65 |
-
echo '/* ]]> */ </script>';
|
66 |
-
}
|
67 |
-
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Handles adding script data to the page in cases where localizing a
|
4 |
+
* specific script is not suitable.
|
5 |
+
*
|
6 |
+
* Should generally be accessed via tribe( 'tribe.asset.script-data' )
|
7 |
+
* rather than via direct instantiation.
|
8 |
+
*/
|
9 |
+
class Tribe__Asset__Data {
|
10 |
+
/**
|
11 |
+
* Container for any JS data objects that should be added to the page.
|
12 |
+
*
|
13 |
+
* @var array
|
14 |
+
*/
|
15 |
+
protected $objects = [];
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Hooks up the method used to actually render the JSON data.
|
19 |
+
*/
|
20 |
+
public function hook() {
|
21 |
+
if ( is_admin() ) {
|
22 |
+
add_action( 'admin_footer', [ $this, 'render_json' ] );
|
23 |
+
add_action( 'customize_controls_print_footer_scripts', [ $this, 'render_json' ] );
|
24 |
+
} else {
|
25 |
+
add_action( 'wp_footer', [ $this, 'render_json' ] );
|
26 |
+
}
|
27 |
+
}
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Adds the provided data to the list of objects that should be available
|
31 |
+
* to other scripts.
|
32 |
+
*
|
33 |
+
* @param string $object_name Object name.
|
34 |
+
* @param array $data Object data.
|
35 |
+
*/
|
36 |
+
public function add( $object_name, $data ) {
|
37 |
+
/**
|
38 |
+
* Allow plugins to filter data for a specific object.
|
39 |
+
*
|
40 |
+
* @since 4.8.4
|
41 |
+
*
|
42 |
+
* @param array $data Object data.
|
43 |
+
* @param string $object_name Object name.
|
44 |
+
*/
|
45 |
+
$data = apply_filters( "tribe_asset_data_add_object_{$object_name}", $data, $object_name );
|
46 |
+
|
47 |
+
$this->objects[ $object_name ] = $data;
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Outputs the
|
52 |
+
* @internal
|
53 |
+
*/
|
54 |
+
public function render_json() {
|
55 |
+
if ( empty( $this->objects ) ) {
|
56 |
+
return;
|
57 |
+
}
|
58 |
+
|
59 |
+
echo '<script> /* <![CDATA[ */';
|
60 |
+
|
61 |
+
foreach ( $this->objects as $object_name => $data ) {
|
62 |
+
echo 'var ' . esc_html( $object_name ) . ' = ' . wp_json_encode( $data ) . ';';
|
63 |
+
}
|
64 |
+
|
65 |
+
echo '/* ]]> */ </script>';
|
66 |
+
}
|
67 |
+
}
|
common/src/Tribe/Assets.php
CHANGED
@@ -539,8 +539,8 @@ class Tribe__Assets {
|
|
539 |
}
|
540 |
|
541 |
if ( isset( $arguments['translations']['domain'], $arguments['translations']['path'] ) ) {
|
542 |
-
$asset->
|
543 |
-
$asset->
|
544 |
}
|
545 |
|
546 |
/**
|
539 |
}
|
540 |
|
541 |
if ( isset( $arguments['translations']['domain'], $arguments['translations']['path'] ) ) {
|
542 |
+
$asset->translations['domain'] = $arguments['translations']['domain'];
|
543 |
+
$asset->translations['path'] = $arguments['translations']['path'];
|
544 |
}
|
545 |
|
546 |
/**
|
common/src/Tribe/Assets_Pipeline.php
CHANGED
@@ -12,7 +12,7 @@ class Tribe__Assets_Pipeline {
|
|
12 |
* @since 4.7.7
|
13 |
*/
|
14 |
public function hook() {
|
15 |
-
add_filter( 'script_loader_tag',
|
16 |
}
|
17 |
|
18 |
/**
|
12 |
* @since 4.7.7
|
13 |
*/
|
14 |
public function hook() {
|
15 |
+
add_filter( 'script_loader_tag', [ $this, 'prevent_underscore_conflict' ], 10, 2 );
|
16 |
}
|
17 |
|
18 |
/**
|
common/src/Tribe/Autoloader.php
CHANGED
@@ -77,12 +77,12 @@
|
|
77 |
protected $dir_separator = '__';
|
78 |
|
79 |
/** @var string[] */
|
80 |
-
protected $fallback_dirs =
|
81 |
|
82 |
/**
|
83 |
* @var array
|
84 |
*/
|
85 |
-
protected $class_paths =
|
86 |
|
87 |
/**
|
88 |
* Returns the singleton instance of the class.
|
@@ -130,7 +130,7 @@
|
|
130 |
}
|
131 |
|
132 |
if ( ! isset( $this->prefixes[ $prefix ] ) ) {
|
133 |
-
$this->prefixes[ $prefix ] =
|
134 |
}
|
135 |
|
136 |
$this->prefixes[ $prefix ][] = $root_dir;
|
@@ -148,7 +148,7 @@
|
|
148 |
* autoload register.
|
149 |
*/
|
150 |
public function register_autoloader() {
|
151 |
-
spl_autoload_register(
|
152 |
}
|
153 |
|
154 |
/**
|
77 |
protected $dir_separator = '__';
|
78 |
|
79 |
/** @var string[] */
|
80 |
+
protected $fallback_dirs = [];
|
81 |
|
82 |
/**
|
83 |
* @var array
|
84 |
*/
|
85 |
+
protected $class_paths = [];
|
86 |
|
87 |
/**
|
88 |
* Returns the singleton instance of the class.
|
130 |
}
|
131 |
|
132 |
if ( ! isset( $this->prefixes[ $prefix ] ) ) {
|
133 |
+
$this->prefixes[ $prefix ] = [];
|
134 |
}
|
135 |
|
136 |
$this->prefixes[ $prefix ][] = $root_dir;
|
148 |
* autoload register.
|
149 |
*/
|
150 |
public function register_autoloader() {
|
151 |
+
spl_autoload_register( [ $this, 'autoload' ] );
|
152 |
}
|
153 |
|
154 |
/**
|
common/src/Tribe/Cache.php
CHANGED
@@ -87,6 +87,10 @@ class Tribe__Cache implements ArrayAccess {
|
|
87 |
* @return bool
|
88 |
*/
|
89 |
public function set_transient( $id, $value, $expiration = 0, $expiration_trigger = '' ) {
|
|
|
|
|
|
|
|
|
90 |
return set_transient( $this->get_id( $id, $expiration_trigger ), $value, $expiration );
|
91 |
}
|
92 |
|
@@ -506,4 +510,36 @@ class Tribe__Cache implements ArrayAccess {
|
|
506 |
}
|
507 |
} while ( ! empty( $post_objects ) && is_array( $post_objects ) && count( $post_objects ) < count( $post_ids ) );
|
508 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
509 |
}
|
87 |
* @return bool
|
88 |
*/
|
89 |
public function set_transient( $id, $value, $expiration = 0, $expiration_trigger = '' ) {
|
90 |
+
if ( $this->data_size_over_packet_size( $value ) ) {
|
91 |
+
return false;
|
92 |
+
}
|
93 |
+
|
94 |
return set_transient( $this->get_id( $id, $expiration_trigger ), $value, $expiration );
|
95 |
}
|
96 |
|
510 |
}
|
511 |
} while ( ! empty( $post_objects ) && is_array( $post_objects ) && count( $post_objects ) < count( $post_ids ) );
|
512 |
}
|
513 |
+
|
514 |
+
/**
|
515 |
+
* If NOT using an external object caching system, then check if the size, in bytes, of the data
|
516 |
+
* to write to the database would fit into the `max_allowed_packet` setting or not.
|
517 |
+
*
|
518 |
+
* @since 4.12.14
|
519 |
+
*
|
520 |
+
* @param string|array|object $value The value to check.
|
521 |
+
*
|
522 |
+
* @return bool Whether the data, in its serialized form, would fit into the current database `max_allowed_packet`
|
523 |
+
* setting or not.
|
524 |
+
*/
|
525 |
+
public function data_size_over_packet_size( $value ) {
|
526 |
+
if ( wp_using_ext_object_cache() ) {
|
527 |
+
// We cannot know and that is a concern of the external caching system.
|
528 |
+
return false;
|
529 |
+
}
|
530 |
+
|
531 |
+
try {
|
532 |
+
$serialized_value = maybe_serialize( $value );
|
533 |
+
$size = strlen( $serialized_value );
|
534 |
+
} catch ( Exception $e ) {
|
535 |
+
// The underlying function would run into the same issue, bail and do not set the transient.
|
536 |
+
return true;
|
537 |
+
}
|
538 |
+
|
539 |
+
/** @var Tribe__Feature_Detection $feature_detection */
|
540 |
+
$feature_detection = tribe( 'feature-detection' );
|
541 |
+
|
542 |
+
// If the size of the string is above 90% of the database `max_allowed_packet` setting, then it should not be written to the db.
|
543 |
+
return $size > ( $feature_detection->get_mysql_max_packet_size() * .9 );
|
544 |
+
}
|
545 |
}
|
common/src/Tribe/Changelog_Reader.php
CHANGED
@@ -17,7 +17,7 @@ class Tribe__Changelog_Reader {
|
|
17 |
$contents = $this->extract_changelog_section();
|
18 |
$lines = explode( "\n", $contents );
|
19 |
|
20 |
-
$sections
|
21 |
$current_section = '';
|
22 |
foreach ( $lines as $line ) {
|
23 |
$line = trim( $line );
|
@@ -27,7 +27,7 @@ class Tribe__Changelog_Reader {
|
|
27 |
}
|
28 |
$header = trim( $line, '= ' );
|
29 |
$current_section = esc_html( $header );
|
30 |
-
$sections[ $current_section ] =
|
31 |
} elseif ( strlen( $line ) > 0 ) {
|
32 |
$message = trim( $line, '* ' );
|
33 |
$sections[ $current_section ][] = esc_html( $message );
|
17 |
$contents = $this->extract_changelog_section();
|
18 |
$lines = explode( "\n", $contents );
|
19 |
|
20 |
+
$sections = [];
|
21 |
$current_section = '';
|
22 |
foreach ( $lines as $line ) {
|
23 |
$line = trim( $line );
|
27 |
}
|
28 |
$header = trim( $line, '= ' );
|
29 |
$current_section = esc_html( $header );
|
30 |
+
$sections[ $current_section ] = [];
|
31 |
} elseif ( strlen( $line ) > 0 ) {
|
32 |
$message = trim( $line, '* ' );
|
33 |
$sections[ $current_section ][] = esc_html( $message );
|
common/src/Tribe/Context.php
CHANGED
@@ -190,13 +190,13 @@ class Tribe__Context {
|
|
190 |
*
|
191 |
* @var array
|
192 |
*/
|
193 |
-
protected static $associative_locations =
|
194 |
self::TRANSIENT,
|
195 |
self::METHOD,
|
196 |
self::STATIC_METHOD,
|
197 |
self::PROP,
|
198 |
self::STATIC_PROP,
|
199 |
-
|
200 |
|
201 |
/**
|
202 |
* Whether the static dynamic locations were set or not.
|
@@ -213,7 +213,7 @@ class Tribe__Context {
|
|
213 |
*
|
214 |
* @var array
|
215 |
*/
|
216 |
-
protected $override_locations =
|
217 |
|
218 |
/**
|
219 |
* Whether the context of the current HTTP request is an AJAX one or not.
|
@@ -234,7 +234,8 @@ class Tribe__Context {
|
|
234 |
*
|
235 |
* @var array
|
236 |
*/
|
237 |
-
protected $request_cache =
|
|
|
238 |
/**
|
239 |
* Whether this context should use the default locations or not.
|
240 |
* This flag property is set to `false` when a context is obtained using
|
@@ -281,7 +282,7 @@ class Tribe__Context {
|
|
281 |
}
|
282 |
|
283 |
if ( ! empty( $post_or_type ) ) {
|
284 |
-
$lookup =
|
285 |
|
286 |
$current_post = Tribe__Utils__Array::get_in_any( $lookup, 'post', get_post() );
|
287 |
|
@@ -292,7 +293,7 @@ class Tribe__Context {
|
|
292 |
return ! empty( $post ) && $post == $current_post;
|
293 |
}
|
294 |
|
295 |
-
$post_types = is_array( $post_or_type ) ? $post_or_type :
|
296 |
|
297 |
$post = $is_post ? get_post( $current_post ) : null;
|
298 |
|
@@ -306,7 +307,7 @@ class Tribe__Context {
|
|
306 |
$post_type = Tribe__Utils__Array::get_in_any( $lookup, 'post_type', 'post' );
|
307 |
}
|
308 |
|
309 |
-
return (bool) count( array_intersect( $post_types,
|
310 |
}
|
311 |
|
312 |
return $is_new || $is_post;
|
@@ -446,7 +447,7 @@ class Tribe__Context {
|
|
446 |
if ( null !== $key ) {
|
447 |
unset( $this->request_cache[ $key ] );
|
448 |
} else {
|
449 |
-
$this->request_cache =
|
450 |
}
|
451 |
}
|
452 |
|
@@ -753,7 +754,7 @@ class Tribe__Context {
|
|
753 |
|
754 |
foreach ( $classes_and_methods as $class => $method ) {
|
755 |
$the_value = class_exists( $class ) && method_exists( $class, $method )
|
756 |
-
? call_user_func(
|
757 |
: self::NOT_FOUND;
|
758 |
|
759 |
if ( $the_value !== self::NOT_FOUND ) {
|
@@ -867,16 +868,16 @@ class Tribe__Context {
|
|
867 |
foreach ( $targets as $arg_1 => $arg_2 ) {
|
868 |
if ( self::FUNC === $location && is_array( $arg_2 ) && is_callable( $arg_2 ) ) {
|
869 |
// Handles write functions specified as an array.
|
870 |
-
$location_args =
|
871 |
} else {
|
872 |
$location_args = in_array( $location, self::$associative_locations, true )
|
873 |
-
?
|
874 |
: (array) $arg_2;
|
875 |
}
|
876 |
|
877 |
-
$args = array_merge( $location_args,
|
878 |
|
879 |
-
call_user_func_array(
|
880 |
}
|
881 |
}
|
882 |
}
|
@@ -1055,7 +1056,7 @@ class Tribe__Context {
|
|
1055 |
if ( ! class_exists( $class ) ) {
|
1056 |
return;
|
1057 |
}
|
1058 |
-
call_user_func(
|
1059 |
}
|
1060 |
|
1061 |
/**
|
@@ -1071,7 +1072,7 @@ class Tribe__Context {
|
|
1071 |
if ( ! tribe()->offsetExists( $binding ) ) {
|
1072 |
return;
|
1073 |
}
|
1074 |
-
call_user_func(
|
1075 |
}
|
1076 |
|
1077 |
/**
|
@@ -1142,7 +1143,7 @@ class Tribe__Context {
|
|
1142 |
*/
|
1143 |
public function to_array( ) {
|
1144 |
$locations = array_keys( array_merge( $this->get_locations(), $this->request_cache ) );
|
1145 |
-
$dump =
|
1146 |
|
1147 |
foreach ( $locations as $location ) {
|
1148 |
$the_value = $this->get( $location, self::NOT_FOUND );
|
@@ -1232,7 +1233,7 @@ class Tribe__Context {
|
|
1232 |
public function get_orm_args( array $fields = null, $whitelist = true ) {
|
1233 |
$locations = $this->get_locations();
|
1234 |
$dump = $this->to_array();
|
1235 |
-
$orm_args =
|
1236 |
$is_global_context = tribe_context() === $this;
|
1237 |
|
1238 |
foreach ( $dump as $key => $value ) {
|
190 |
*
|
191 |
* @var array
|
192 |
*/
|
193 |
+
protected static $associative_locations = [
|
194 |
self::TRANSIENT,
|
195 |
self::METHOD,
|
196 |
self::STATIC_METHOD,
|
197 |
self::PROP,
|
198 |
self::STATIC_PROP,
|
199 |
+
];
|
200 |
|
201 |
/**
|
202 |
* Whether the static dynamic locations were set or not.
|
213 |
*
|
214 |
* @var array
|
215 |
*/
|
216 |
+
protected $override_locations = [];
|
217 |
|
218 |
/**
|
219 |
* Whether the context of the current HTTP request is an AJAX one or not.
|
234 |
*
|
235 |
* @var array
|
236 |
*/
|
237 |
+
protected $request_cache = [];
|
238 |
+
|
239 |
/**
|
240 |
* Whether this context should use the default locations or not.
|
241 |
* This flag property is set to `false` when a context is obtained using
|
282 |
}
|
283 |
|
284 |
if ( ! empty( $post_or_type ) ) {
|
285 |
+
$lookup = [ $_GET, $_POST, $_REQUEST ];
|
286 |
|
287 |
$current_post = Tribe__Utils__Array::get_in_any( $lookup, 'post', get_post() );
|
288 |
|
293 |
return ! empty( $post ) && $post == $current_post;
|
294 |
}
|
295 |
|
296 |
+
$post_types = is_array( $post_or_type ) ? $post_or_type : [ $post_or_type ];
|
297 |
|
298 |
$post = $is_post ? get_post( $current_post ) : null;
|
299 |
|
307 |
$post_type = Tribe__Utils__Array::get_in_any( $lookup, 'post_type', 'post' );
|
308 |
}
|
309 |
|
310 |
+
return (bool) count( array_intersect( $post_types, [ $post_type ] ) );
|
311 |
}
|
312 |
|
313 |
return $is_new || $is_post;
|
447 |
if ( null !== $key ) {
|
448 |
unset( $this->request_cache[ $key ] );
|
449 |
} else {
|
450 |
+
$this->request_cache = [];
|
451 |
}
|
452 |
}
|
453 |
|
754 |
|
755 |
foreach ( $classes_and_methods as $class => $method ) {
|
756 |
$the_value = class_exists( $class ) && method_exists( $class, $method )
|
757 |
+
? call_user_func( [ $class, $method ] )
|
758 |
: self::NOT_FOUND;
|
759 |
|
760 |
if ( $the_value !== self::NOT_FOUND ) {
|
868 |
foreach ( $targets as $arg_1 => $arg_2 ) {
|
869 |
if ( self::FUNC === $location && is_array( $arg_2 ) && is_callable( $arg_2 ) ) {
|
870 |
// Handles write functions specified as an array.
|
871 |
+
$location_args = [ $arg_2 ];
|
872 |
} else {
|
873 |
$location_args = in_array( $location, self::$associative_locations, true )
|
874 |
+
? [ $arg_1, $arg_2 ]
|
875 |
: (array) $arg_2;
|
876 |
}
|
877 |
|
878 |
+
$args = array_merge( $location_args, [ $value ] );
|
879 |
|
880 |
+
call_user_func_array( [ $this, $write_func ], $args );
|
881 |
}
|
882 |
}
|
883 |
}
|
1056 |
if ( ! class_exists( $class ) ) {
|
1057 |
return;
|
1058 |
}
|
1059 |
+
call_user_func( [ $class, $method ], $value );
|
1060 |
}
|
1061 |
|
1062 |
/**
|
1072 |
if ( ! tribe()->offsetExists( $binding ) ) {
|
1073 |
return;
|
1074 |
}
|
1075 |
+
call_user_func( [ tribe( $binding ), $method ], $value );
|
1076 |
}
|
1077 |
|
1078 |
/**
|
1143 |
*/
|
1144 |
public function to_array( ) {
|
1145 |
$locations = array_keys( array_merge( $this->get_locations(), $this->request_cache ) );
|
1146 |
+
$dump = [];
|
1147 |
|
1148 |
foreach ( $locations as $location ) {
|
1149 |
$the_value = $this->get( $location, self::NOT_FOUND );
|
1233 |
public function get_orm_args( array $fields = null, $whitelist = true ) {
|
1234 |
$locations = $this->get_locations();
|
1235 |
$dump = $this->to_array();
|
1236 |
+
$orm_args = [];
|
1237 |
$is_global_context = tribe_context() === $this;
|
1238 |
|
1239 |
foreach ( $dump as $key => $value ) {
|
common/src/Tribe/Cost_Utils.php
CHANGED
@@ -86,7 +86,7 @@ class Tribe__Cost_Utils {
|
|
86 |
* @return array
|
87 |
*/
|
88 |
public function get_separators() {
|
89 |
-
$separators =
|
90 |
|
91 |
/**
|
92 |
* Filters the cost string possible separators, those must be only 1 char.
|
@@ -161,29 +161,33 @@ class Tribe__Cost_Utils {
|
|
161 |
*
|
162 |
* @return string|array The merged cost range.
|
163 |
*/
|
164 |
-
public function merge_cost_ranges( $original_string_cost, $merging_cost, $with_currency_symbol, $sorted_mins =
|
165 |
if ( empty( $merging_cost ) || $original_string_cost === $merging_cost ) {
|
166 |
return $original_string_cost;
|
167 |
}
|
168 |
|
169 |
$_merging_cost = array_map(
|
170 |
-
|
171 |
);
|
172 |
-
$_merging_cost = array_map(
|
173 |
$numeric_merging_cost_costs = array_filter( $_merging_cost, 'is_numeric' );
|
174 |
|
175 |
-
$matches =
|
176 |
preg_match_all(
|
177 |
'!\d+(?:([' . preg_quote( $this->_supported_decimal_separators ) . '])\d+)?!', $original_string_cost,
|
178 |
$matches
|
179 |
);
|
180 |
$this->_current_original_cost_separator = empty( $matches[1][0] ) ? '.' : $matches[1][0];
|
181 |
-
$matches[0] = empty( $matches[0] )
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
|
|
|
|
|
|
|
|
187 |
$numeric_orignal_costs = empty( $matches[0] ) ? $matches[0] : array_map(
|
188 |
'floatval', $matches[0]
|
189 |
);
|
@@ -215,10 +219,10 @@ class Tribe__Cost_Utils {
|
|
215 |
$cost_max = empty( $all_numeric_costs ) ? '' : max( $all_numeric_costs );
|
216 |
}
|
217 |
|
218 |
-
$cost = array_filter(
|
219 |
|
220 |
if ( $with_currency_symbol ) {
|
221 |
-
$formatted_cost =
|
222 |
foreach ( $cost as $c ) {
|
223 |
$formatted_cost[] = is_numeric( $c ) ? tribe_format_currency( $c ) : $c;
|
224 |
}
|
@@ -226,7 +230,8 @@ class Tribe__Cost_Utils {
|
|
226 |
}
|
227 |
|
228 |
return empty( $cost ) ? $original_string_cost : array_map(
|
229 |
-
|
|
|
230 |
);
|
231 |
}
|
232 |
|
@@ -304,7 +309,7 @@ class Tribe__Cost_Utils {
|
|
304 |
*/
|
305 |
public function parse_cost_range( $costs, $max_decimals = null, $sort = true ) {
|
306 |
if ( ! is_array( $costs ) && ! is_string( $costs ) ) {
|
307 |
-
return
|
308 |
}
|
309 |
|
310 |
// make sure costs is an array
|
@@ -312,7 +317,7 @@ class Tribe__Cost_Utils {
|
|
312 |
|
313 |
// If there aren't any costs, return a blank array
|
314 |
if ( 0 === count( $costs ) ) {
|
315 |
-
return
|
316 |
}
|
317 |
|
318 |
// Build the regular expression
|
@@ -324,7 +329,7 @@ class Tribe__Cost_Utils {
|
|
324 |
if ( preg_match_all( '/' . $price_regex . '/', $cost, $matches ) ) {
|
325 |
$cost = reset( $matches );
|
326 |
} else {
|
327 |
-
$cost =
|
328 |
continue;
|
329 |
}
|
330 |
|
@@ -340,7 +345,7 @@ class Tribe__Cost_Utils {
|
|
340 |
$max = max( $max_decimals, $max );
|
341 |
}
|
342 |
|
343 |
-
$output_costs =
|
344 |
$costs = call_user_func_array( 'array_merge', $costs );
|
345 |
|
346 |
foreach ( $costs as $cost ) {
|
@@ -348,7 +353,7 @@ class Tribe__Cost_Utils {
|
|
348 |
|
349 |
if ( is_numeric( $numeric_cost ) ) {
|
350 |
// Creates a Well Balanced Index that will perform good on a Key Sorting method
|
351 |
-
$index = str_replace(
|
352 |
} else {
|
353 |
// Makes sure that we have "index-safe" string
|
354 |
$index = sanitize_title( $numeric_cost );
|
@@ -410,7 +415,7 @@ class Tribe__Cost_Utils {
|
|
410 |
* @return int|float
|
411 |
*/
|
412 |
protected function numerize_numbers( $value ) {
|
413 |
-
$matches =
|
414 |
|
415 |
$pattern = '/(\\d{1,}([' . $this->_supported_decimal_separators . ']\\d{1,}))/';
|
416 |
|
@@ -436,7 +441,7 @@ class Tribe__Cost_Utils {
|
|
436 |
return false;
|
437 |
}
|
438 |
|
439 |
-
$currency_symbols =
|
440 |
$i = 0;
|
441 |
foreach ( $costs as $string => $value ) {
|
442 |
if ( is_numeric( $string ) ) {
|
@@ -471,7 +476,7 @@ class Tribe__Cost_Utils {
|
|
471 |
return false;
|
472 |
}
|
473 |
|
474 |
-
$currency_positions =
|
475 |
foreach ( $original_costs as $original_cost ) {
|
476 |
$currency_symbol_position = strpos( trim( $original_cost ), $currency_symbol );
|
477 |
if ( false === $currency_symbol_position ) {
|
86 |
* @return array
|
87 |
*/
|
88 |
public function get_separators() {
|
89 |
+
$separators = [ ',', '.' ];
|
90 |
|
91 |
/**
|
92 |
* Filters the cost string possible separators, those must be only 1 char.
|
161 |
*
|
162 |
* @return string|array The merged cost range.
|
163 |
*/
|
164 |
+
public function merge_cost_ranges( $original_string_cost, $merging_cost, $with_currency_symbol, $sorted_mins = [], $sorted_maxs = [] ) {
|
165 |
if ( empty( $merging_cost ) || $original_string_cost === $merging_cost ) {
|
166 |
return $original_string_cost;
|
167 |
}
|
168 |
|
169 |
$_merging_cost = array_map(
|
170 |
+
[ $this, 'convert_decimal_separator' ], (array) $merging_cost
|
171 |
);
|
172 |
+
$_merging_cost = array_map( [ $this, 'numerize_numbers' ], $_merging_cost );
|
173 |
$numeric_merging_cost_costs = array_filter( $_merging_cost, 'is_numeric' );
|
174 |
|
175 |
+
$matches = [];
|
176 |
preg_match_all(
|
177 |
'!\d+(?:([' . preg_quote( $this->_supported_decimal_separators ) . '])\d+)?!', $original_string_cost,
|
178 |
$matches
|
179 |
);
|
180 |
$this->_current_original_cost_separator = empty( $matches[1][0] ) ? '.' : $matches[1][0];
|
181 |
+
$matches[0] = empty( $matches[0] )
|
182 |
+
? $matches[0]
|
183 |
+
: array_map(
|
184 |
+
[
|
185 |
+
$this,
|
186 |
+
'convert_decimal_separator',
|
187 |
+
],
|
188 |
+
$matches[0]
|
189 |
+
);
|
190 |
+
|
191 |
$numeric_orignal_costs = empty( $matches[0] ) ? $matches[0] : array_map(
|
192 |
'floatval', $matches[0]
|
193 |
);
|
219 |
$cost_max = empty( $all_numeric_costs ) ? '' : max( $all_numeric_costs );
|
220 |
}
|
221 |
|
222 |
+
$cost = array_filter( [ $cost_min, $cost_max ] );
|
223 |
|
224 |
if ( $with_currency_symbol ) {
|
225 |
+
$formatted_cost = [];
|
226 |
foreach ( $cost as $c ) {
|
227 |
$formatted_cost[] = is_numeric( $c ) ? tribe_format_currency( $c ) : $c;
|
228 |
}
|
230 |
}
|
231 |
|
232 |
return empty( $cost ) ? $original_string_cost : array_map(
|
233 |
+
[ $this, 'restore_original_decimal_separator' ],
|
234 |
+
$cost
|
235 |
);
|
236 |
}
|
237 |
|
309 |
*/
|
310 |
public function parse_cost_range( $costs, $max_decimals = null, $sort = true ) {
|
311 |
if ( ! is_array( $costs ) && ! is_string( $costs ) ) {
|
312 |
+
return [];
|
313 |
}
|
314 |
|
315 |
// make sure costs is an array
|
317 |
|
318 |
// If there aren't any costs, return a blank array
|
319 |
if ( 0 === count( $costs ) ) {
|
320 |
+
return [];
|
321 |
}
|
322 |
|
323 |
// Build the regular expression
|
329 |
if ( preg_match_all( '/' . $price_regex . '/', $cost, $matches ) ) {
|
330 |
$cost = reset( $matches );
|
331 |
} else {
|
332 |
+
$cost = [ $cost ];
|
333 |
continue;
|
334 |
}
|
335 |
|
345 |
$max = max( $max_decimals, $max );
|
346 |
}
|
347 |
|
348 |
+
$output_costs = [];
|
349 |
$costs = call_user_func_array( 'array_merge', $costs );
|
350 |
|
351 |
foreach ( $costs as $cost ) {
|
353 |
|
354 |
if ( is_numeric( $numeric_cost ) ) {
|
355 |
// Creates a Well Balanced Index that will perform good on a Key Sorting method
|
356 |
+
$index = str_replace( [ '.', ',' ], '', number_format( $numeric_cost, $max ) );
|
357 |
} else {
|
358 |
// Makes sure that we have "index-safe" string
|
359 |
$index = sanitize_title( $numeric_cost );
|
415 |
* @return int|float
|
416 |
*/
|
417 |
protected function numerize_numbers( $value ) {
|
418 |
+
$matches = [];
|
419 |
|
420 |
$pattern = '/(\\d{1,}([' . $this->_supported_decimal_separators . ']\\d{1,}))/';
|
421 |
|
441 |
return false;
|
442 |
}
|
443 |
|
444 |
+
$currency_symbols = [];
|
445 |
$i = 0;
|
446 |
foreach ( $costs as $string => $value ) {
|
447 |
if ( is_numeric( $string ) ) {
|
476 |
return false;
|
477 |
}
|
478 |
|
479 |
+
$currency_positions = [];
|
480 |
foreach ( $original_costs as $original_cost ) {
|
481 |
$currency_symbol_position = strpos( trim( $original_cost ), $currency_symbol );
|
482 |
if ( false === $currency_symbol_position ) {
|
common/src/Tribe/Credits.php
CHANGED
@@ -13,8 +13,8 @@ class Tribe__Credits {
|
|
13 |
* Hook the functionality of this class into the world
|
14 |
*/
|
15 |
public function hook() {
|
16 |
-
add_filter( 'tribe_events_after_html',
|
17 |
-
add_filter( 'admin_footer_text',
|
18 |
}
|
19 |
|
20 |
/**
|
@@ -43,7 +43,7 @@ class Tribe__Credits {
|
|
43 |
public function rating_nudge( $footer_text ) {
|
44 |
$admin_helpers = Tribe__Admin__Helpers::instance();
|
45 |
|
46 |
-
add_filter( 'tribe_tickets_post_types',
|
47 |
|
48 |
// only display custom text on Tribe Admin Pages
|
49 |
if ( $admin_helpers->is_screen() || $admin_helpers->is_post_type_screen() ) {
|
@@ -69,7 +69,7 @@ class Tribe__Credits {
|
|
69 |
}
|
70 |
}
|
71 |
|
72 |
-
remove_filter( 'tribe_tickets_post_types',
|
73 |
|
74 |
return $footer_text;
|
75 |
}
|
@@ -80,7 +80,7 @@ class Tribe__Credits {
|
|
80 |
* This will limit the request for ratings to only those post type pages
|
81 |
*/
|
82 |
public function tmp_return_tribe_events( $unused_post_types ) {
|
83 |
-
return
|
84 |
}
|
85 |
|
86 |
/**
|
13 |
* Hook the functionality of this class into the world
|
14 |
*/
|
15 |
public function hook() {
|
16 |
+
add_filter( 'tribe_events_after_html', [ $this, 'html_comment_credit' ] );
|
17 |
+
add_filter( 'admin_footer_text', [ $this, 'rating_nudge' ], 1, 2 );
|
18 |
}
|
19 |
|
20 |
/**
|
43 |
public function rating_nudge( $footer_text ) {
|
44 |
$admin_helpers = Tribe__Admin__Helpers::instance();
|
45 |
|
46 |
+
add_filter( 'tribe_tickets_post_types', [ $this, 'tmp_return_tribe_events' ], 99 );
|
47 |
|
48 |
// only display custom text on Tribe Admin Pages
|
49 |
if ( $admin_helpers->is_screen() || $admin_helpers->is_post_type_screen() ) {
|
69 |
}
|
70 |
}
|
71 |
|
72 |
+
remove_filter( 'tribe_tickets_post_types', [ $this, 'tmp_return_tribe_events' ], 99 );
|
73 |
|
74 |
return $footer_text;
|
75 |
}
|
80 |
* This will limit the request for ratings to only those post type pages
|
81 |
*/
|
82 |
public function tmp_return_tribe_events( $unused_post_types ) {
|
83 |
+
return [ 'tribe_events' ];
|
84 |
}
|
85 |
|
86 |
/**
|
common/src/Tribe/Customizer.php
CHANGED
@@ -64,7 +64,7 @@ final class Tribe__Customizer {
|
|
64 |
* @access private
|
65 |
* @var array
|
66 |
*/
|
67 |
-
private $sections_class =
|
68 |
|
69 |
/**
|
70 |
* Array of Sections Classes, for non-panel pages
|
@@ -73,7 +73,7 @@ final class Tribe__Customizer {
|
|
73 |
* @access private
|
74 |
* @var array
|
75 |
*/
|
76 |
-
private $settings =
|
77 |
|
78 |
/**
|
79 |
* Inline Style has been added
|
@@ -110,16 +110,31 @@ final class Tribe__Customizer {
|
|
110 |
$this->ID = apply_filters( 'tribe_customizer_panel_id', 'tribe_customizer', $this );
|
111 |
|
112 |
// Hook the Registering methods
|
113 |
-
add_action( 'customize_register',
|
114 |
|
115 |
-
add_action( 'wp_print_footer_scripts',
|
116 |
|
117 |
// front end styles from customizer
|
118 |
-
add_action( '
|
119 |
-
add_action( '
|
120 |
-
add_action( 'wp_print_footer_scripts',
|
121 |
|
122 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
}
|
124 |
|
125 |
/**
|
@@ -137,7 +152,7 @@ final class Tribe__Customizer {
|
|
137 |
return $sections;
|
138 |
}
|
139 |
|
140 |
-
return get_option( 'tribe_events_pro_customizer',
|
141 |
}
|
142 |
|
143 |
/**
|
@@ -230,7 +245,7 @@ final class Tribe__Customizer {
|
|
230 |
*
|
231 |
* @return mixed Return the variable based on the index
|
232 |
*/
|
233 |
-
public static function search_var( $variable = null, $indexes =
|
234 |
if ( is_object( $variable ) ) {
|
235 |
$variable = (array) $variable;
|
236 |
}
|
@@ -270,7 +285,7 @@ final class Tribe__Customizer {
|
|
270 |
*
|
271 |
* @param array $defaults
|
272 |
*/
|
273 |
-
$defaults[ $section->ID ] = apply_filters( "tribe_events_pro_customizer_section_{$section->ID}_defaults",
|
274 |
|
275 |
/**
|
276 |
* Allow filtering the defaults for each settings to be filtered before the Ghost options to be set
|
@@ -279,7 +294,7 @@ final class Tribe__Customizer {
|
|
279 |
*
|
280 |
* @param array $defaults
|
281 |
*/
|
282 |
-
$settings
|
283 |
$defaults[ $section->ID ] = apply_filters( "tribe_customizer_section_{$section->ID}_defaults", $settings );
|
284 |
$sections[ $section->ID ] = wp_parse_args( $settings, $defaults[ $section->ID ] );
|
285 |
}
|
@@ -336,7 +351,7 @@ final class Tribe__Customizer {
|
|
336 |
public function has_option() {
|
337 |
$search = func_get_args();
|
338 |
$option = self::get_option();
|
339 |
-
$real_option = get_option( $this->ID,
|
340 |
|
341 |
// Get section and Settign based on keys
|
342 |
$section = reset( $search );
|
@@ -374,7 +389,7 @@ final class Tribe__Customizer {
|
|
374 |
/**
|
375 |
* Print the CSS for the customizer for shortcodes.
|
376 |
*
|
377 |
-
* @
|
378 |
*/
|
379 |
public function shortcode_inline_style() {
|
380 |
/**
|
@@ -393,14 +408,38 @@ final class Tribe__Customizer {
|
|
393 |
$this->inline_style();
|
394 |
}
|
395 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
396 |
/**
|
397 |
* Print the CSS for the customizer using wp_add_inline_style
|
398 |
*
|
399 |
-
* @
|
|
|
|
|
400 |
*/
|
401 |
-
public function inline_style() {
|
402 |
// Only load once on front-end.
|
403 |
-
if ( is_customize_preview() || is_admin() || $this->inline_style ) {
|
404 |
return false;
|
405 |
}
|
406 |
|
@@ -420,7 +459,9 @@ final class Tribe__Customizer {
|
|
420 |
return false;
|
421 |
}
|
422 |
|
423 |
-
$sheets = [
|
|
|
|
|
424 |
|
425 |
/**
|
426 |
* Allow plugins to add themselves to this list.
|
@@ -436,10 +477,34 @@ final class Tribe__Customizer {
|
|
436 |
return false;
|
437 |
}
|
438 |
|
439 |
-
//
|
440 |
foreach ( array_reverse( $sheets ) as $sheet ) {
|
441 |
if ( wp_style_is( $sheet ) ) {
|
442 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
443 |
$this->inline_style = true;
|
444 |
|
445 |
break;
|
@@ -457,15 +522,15 @@ final class Tribe__Customizer {
|
|
457 |
$css = $template;
|
458 |
$sections = $this->get_option();
|
459 |
|
460 |
-
$search =
|
461 |
-
$replace =
|
462 |
|
463 |
foreach ( $sections as $section => $settings ) {
|
464 |
if ( ! is_array( $settings ) ) {
|
465 |
continue;
|
466 |
}
|
467 |
foreach ( $settings as $setting => $value ) {
|
468 |
-
$index =
|
469 |
|
470 |
// Add search based on Underscore template
|
471 |
$search[] = '<%= ' . implode( '.', $index ) . ' %>';
|
@@ -518,11 +583,13 @@ final class Tribe__Customizer {
|
|
518 |
* Allows people to Register and de-register the method to register more Fields
|
519 |
*
|
520 |
* @since 4.4
|
|
|
521 |
*
|
522 |
* @param array $section
|
523 |
* @param WP_Customize_Manager $manager
|
|
|
524 |
*/
|
525 |
-
do_action( "tribe_customizer_register_{$id}_settings", $this->sections[ $id ], $this->manager );
|
526 |
}
|
527 |
|
528 |
/**
|
@@ -554,13 +621,13 @@ final class Tribe__Customizer {
|
|
554 |
return $panel;
|
555 |
}
|
556 |
|
557 |
-
$panel_args =
|
558 |
-
'title'
|
559 |
'description' => esc_html__( 'Use the following panel of your customizer to change the styling of your Calendar and Event pages.', 'tribe-common' ),
|
560 |
|
561 |
// After `static_front_page`
|
562 |
-
'priority'
|
563 |
-
|
564 |
|
565 |
/**
|
566 |
* Filter the Panel Arguments for WP Customize
|
@@ -714,10 +781,10 @@ final class Tribe__Customizer {
|
|
714 |
// Add the Partial
|
715 |
$this->manager->selective_refresh->add_partial(
|
716 |
$name,
|
717 |
-
|
718 |
'selector' => '#' . esc_attr( $this->ID . '_css' ),
|
719 |
-
'render_callback' =>
|
720 |
-
|
721 |
);
|
722 |
}
|
723 |
}
|
64 |
* @access private
|
65 |
* @var array
|
66 |
*/
|
67 |
+
private $sections_class = [];
|
68 |
|
69 |
/**
|
70 |
* Array of Sections Classes, for non-panel pages
|
73 |
* @access private
|
74 |
* @var array
|
75 |
*/
|
76 |
+
private $settings = [];
|
77 |
|
78 |
/**
|
79 |
* Inline Style has been added
|
110 |
$this->ID = apply_filters( 'tribe_customizer_panel_id', 'tribe_customizer', $this );
|
111 |
|
112 |
// Hook the Registering methods
|
113 |
+
add_action( 'customize_register', [ $this, 'register' ], 15 );
|
114 |
|
115 |
+
add_action( 'wp_print_footer_scripts', [ $this, 'print_css_template' ], 15 );
|
116 |
|
117 |
// front end styles from customizer
|
118 |
+
add_action( 'tribe_events_pro_widget_render', [ $this, 'inline_style' ], 101 );
|
119 |
+
add_action( 'wp_print_footer_scripts', [ $this, 'shortcode_inline_style' ], 5 );
|
120 |
+
add_action( 'wp_print_footer_scripts', [ $this, 'widget_inline_style' ], 5 );
|
121 |
|
122 |
+
/**
|
123 |
+
* Allows filtering the action that will be used to trigger the printing of inline scripts.
|
124 |
+
*
|
125 |
+
* By default inline scripts will be printed on the `wp_enqueue_scripts` action, but other
|
126 |
+
* plugins or later iterations might require inline styles to be printed on other actions.
|
127 |
+
*
|
128 |
+
* @since 4.12.15
|
129 |
+
*
|
130 |
+
* @param string $inline_script_action_handle The handle of the action that will be used to try
|
131 |
+
* and attempt to print inline scripts.
|
132 |
+
*/
|
133 |
+
$print_styles_action = apply_filters( 'tribe_customizer_print_styles_action', 'wp_enqueue_scripts' );
|
134 |
+
|
135 |
+
add_action( $print_styles_action, [ $this, 'inline_style' ], 15 );
|
136 |
+
|
137 |
+
add_filter( "default_option_{$this->ID}", [ $this, 'maybe_fallback_get_option' ] );
|
138 |
}
|
139 |
|
140 |
/**
|
152 |
return $sections;
|
153 |
}
|
154 |
|
155 |
+
return get_option( 'tribe_events_pro_customizer', [] );
|
156 |
}
|
157 |
|
158 |
/**
|
245 |
*
|
246 |
* @return mixed Return the variable based on the index
|
247 |
*/
|
248 |
+
public static function search_var( $variable = null, $indexes = [], $default = null ) {
|
249 |
if ( is_object( $variable ) ) {
|
250 |
$variable = (array) $variable;
|
251 |
}
|
285 |
*
|
286 |
* @param array $defaults
|
287 |
*/
|
288 |
+
$defaults[ $section->ID ] = apply_filters( "tribe_events_pro_customizer_section_{$section->ID}_defaults", [] );
|
289 |
|
290 |
/**
|
291 |
* Allow filtering the defaults for each settings to be filtered before the Ghost options to be set
|
294 |
*
|
295 |
* @param array $defaults
|
296 |
*/
|
297 |
+
$settings = isset( $sections[ $section->ID ] ) ? $sections[ $section->ID ] : [];
|
298 |
$defaults[ $section->ID ] = apply_filters( "tribe_customizer_section_{$section->ID}_defaults", $settings );
|
299 |
$sections[ $section->ID ] = wp_parse_args( $settings, $defaults[ $section->ID ] );
|
300 |
}
|
351 |
public function has_option() {
|
352 |
$search = func_get_args();
|
353 |
$option = self::get_option();
|
354 |
+
$real_option = get_option( $this->ID, [] );
|
355 |
|
356 |
// Get section and Settign based on keys
|
357 |
$section = reset( $search );
|
389 |
/**
|
390 |
* Print the CSS for the customizer for shortcodes.
|
391 |
*
|
392 |
+
* @since 4.12.6
|
393 |
*/
|
394 |
public function shortcode_inline_style() {
|
395 |
/**
|
408 |
$this->inline_style();
|
409 |
}
|
410 |
|
411 |
+
/**
|
412 |
+
* Print the CSS for the customizer for widgets.
|
413 |
+
*
|
414 |
+
* @since 4.12.14
|
415 |
+
*/
|
416 |
+
public function widget_inline_style() {
|
417 |
+
/**
|
418 |
+
* Whether customizer styles should print for widgets or not.
|
419 |
+
*
|
420 |
+
* @since 4.12.14
|
421 |
+
*
|
422 |
+
* @param boolean $should_print Whether the inline styles should be printed on screen.
|
423 |
+
*/
|
424 |
+
$should_print = apply_filters( 'tribe_customizer_should_print_widget_customizer_styles', false );
|
425 |
+
|
426 |
+
if ( empty( $should_print ) ) {
|
427 |
+
return;
|
428 |
+
}
|
429 |
+
|
430 |
+
$this->inline_style();
|
431 |
+
}
|
432 |
+
|
433 |
/**
|
434 |
* Print the CSS for the customizer using wp_add_inline_style
|
435 |
*
|
436 |
+
* @since 4.12.15 Added the `$force` parameter to force the print of the style inline.
|
437 |
+
*
|
438 |
+
* @param bool $force Whether to ignore the context to try and printe the style inline, or not.
|
439 |
*/
|
440 |
+
public function inline_style( $force = false ) {
|
441 |
// Only load once on front-end.
|
442 |
+
if ( ! $force && ( is_customize_preview() || is_admin() || $this->inline_style ) ) {
|
443 |
return false;
|
444 |
}
|
445 |
|
459 |
return false;
|
460 |
}
|
461 |
|
462 |
+
$sheets = [
|
463 |
+
'tribe-common-full-style',
|
464 |
+
];
|
465 |
|
466 |
/**
|
467 |
* Allow plugins to add themselves to this list.
|
477 |
return false;
|
478 |
}
|
479 |
|
480 |
+
// Add customizer styles inline with the latest stylesheet that is enqueued.
|
481 |
foreach ( array_reverse( $sheets ) as $sheet ) {
|
482 |
if ( wp_style_is( $sheet ) ) {
|
483 |
+
$inline_style = wp_strip_all_tags( $this->parse_css_template( $css_template ) );
|
484 |
+
|
485 |
+
/**
|
486 |
+
* Fires before a style is, possibly, printed inline depending on the stylesheet.
|
487 |
+
*
|
488 |
+
* @since 4.12.15
|
489 |
+
*
|
490 |
+
* @param string $sheet The handle of the stylesheet the style will be printed inline for.
|
491 |
+
* @param string $inline_style The inline style contents, as they will be printed on the page.
|
492 |
+
*/
|
493 |
+
do_action( 'tribe_customizer_before_inline_style', $sheet, $inline_style );
|
494 |
+
|
495 |
+
// Just print styles if doing 'wp_print_footer_scripts' action.
|
496 |
+
$just_print = (bool) doing_action( 'wp_print_footer_scripts' );
|
497 |
+
|
498 |
+
if ( $just_print ) {
|
499 |
+
printf(
|
500 |
+
"<style id='%s-inline-css' type='text/css'>\n%s\n</style>\n",
|
501 |
+
esc_attr( $sheet ),
|
502 |
+
$inline_style
|
503 |
+
);
|
504 |
+
} else {
|
505 |
+
wp_add_inline_style( $sheet, $inline_style );
|
506 |
+
}
|
507 |
+
|
508 |
$this->inline_style = true;
|
509 |
|
510 |
break;
|
522 |
$css = $template;
|
523 |
$sections = $this->get_option();
|
524 |
|
525 |
+
$search = [];
|
526 |
+
$replace = [];
|
527 |
|
528 |
foreach ( $sections as $section => $settings ) {
|
529 |
if ( ! is_array( $settings ) ) {
|
530 |
continue;
|
531 |
}
|
532 |
foreach ( $settings as $setting => $value ) {
|
533 |
+
$index = [ $section, $setting ];
|
534 |
|
535 |
// Add search based on Underscore template
|
536 |
$search[] = '<%= ' . implode( '.', $index ) . ' %>';
|
583 |
* Allows people to Register and de-register the method to register more Fields
|
584 |
*
|
585 |
* @since 4.4
|
586 |
+
* @since 4.12.15 Add Customizer instance as a parameter.
|
587 |
*
|
588 |
* @param array $section
|
589 |
* @param WP_Customize_Manager $manager
|
590 |
+
* @param Tribe__Customizer $customizer The current customizer instance.
|
591 |
*/
|
592 |
+
do_action( "tribe_customizer_register_{$id}_settings", $this->sections[ $id ], $this->manager, $this );
|
593 |
}
|
594 |
|
595 |
/**
|
621 |
return $panel;
|
622 |
}
|
623 |
|
624 |
+
$panel_args = [
|
625 |
+
'title' => esc_html__( 'The Events Calendar', 'tribe-common' ),
|
626 |
'description' => esc_html__( 'Use the following panel of your customizer to change the styling of your Calendar and Event pages.', 'tribe-common' ),
|
627 |
|
628 |
// After `static_front_page`
|
629 |
+
'priority' => 125,
|
630 |
+
];
|
631 |
|
632 |
/**
|
633 |
* Filter the Panel Arguments for WP Customize
|
781 |
// Add the Partial
|
782 |
$this->manager->selective_refresh->add_partial(
|
783 |
$name,
|
784 |
+
[
|
785 |
'selector' => '#' . esc_attr( $this->ID . '_css' ),
|
786 |
+
'render_callback' => [ $this, 'print_css_template' ],
|
787 |
+
]
|
788 |
);
|
789 |
}
|
790 |
}
|
common/src/Tribe/Customizer/Control.php
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The base class for any custom Control.
|
4 |
+
*
|
5 |
+
* @since 4.12.14
|
6 |
+
*
|
7 |
+
* @package Tribe\Customizer
|
8 |
+
*/
|
9 |
+
|
10 |
+
namespace Tribe\Customizer;
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Class Control
|
14 |
+
*
|
15 |
+
* @since 4.12.14
|
16 |
+
*
|
17 |
+
* @package Tribe\Customizer
|
18 |
+
*/
|
19 |
+
abstract class Control extends \WP_Customize_Control {
|
20 |
+
}
|
common/src/Tribe/Customizer/Controls/Heading.php
ADDED
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Models a Customizer heading, a Control just in name, it does not control any setting.
|
4 |
+
*
|
5 |
+
* @since 4.12.14
|
6 |
+
*
|
7 |
+
* @package Tribe\Customizer\Controls
|
8 |
+
*/
|
9 |
+
|
10 |
+
namespace Tribe\Customizer\Controls;
|
11 |
+
|
12 |
+
use Tribe\Customizer\Control;
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Class Heading
|
16 |
+
*
|
17 |
+
* @since 4.12.14
|
18 |
+
*
|
19 |
+
* @package Tribe\Customizer\Controls
|
20 |
+
*/
|
21 |
+
class Heading extends Control {
|
22 |
+
/**
|
23 |
+
* Anyone able to set theme options will be able to see the header.
|
24 |
+
*
|
25 |
+
* @since 4.12.14
|
26 |
+
*
|
27 |
+
* @var string
|
28 |
+
*/
|
29 |
+
public $capability = 'edit_theme_options';
|
30 |
+
|
31 |
+
/**
|
32 |
+
* The heading does not control any setting.
|
33 |
+
*
|
34 |
+
* @since 4.12.14
|
35 |
+
*
|
36 |
+
* @var array<string,mixed>
|
37 |
+
*/
|
38 |
+
public $settings = [];
|
39 |
+
|
40 |
+
/**
|
41 |
+
* Render the control's content
|
42 |
+
*
|
43 |
+
* @since 4.12.14
|
44 |
+
*/
|
45 |
+
public function render_content() {
|
46 |
+
?>
|
47 |
+
<h4 style="font-size: 16px; font-weight: normal; line-height: 1.75; margin-top: 0; margin-bottom: 0px;">
|
48 |
+
<?php echo esc_html( $this->label ); ?>
|
49 |
+
</h4>
|
50 |
+
<?php
|
51 |
+
}
|
52 |
+
}
|
common/src/Tribe/Customizer/Section.php
CHANGED
@@ -41,7 +41,7 @@ abstract class Tribe__Customizer__Section {
|
|
41 |
* @access private
|
42 |
* @var array
|
43 |
*/
|
44 |
-
public $defaults =
|
45 |
|
46 |
/**
|
47 |
* Information to setup the Section
|
@@ -51,12 +51,12 @@ abstract class Tribe__Customizer__Section {
|
|
51 |
* @access public
|
52 |
* @var array
|
53 |
*/
|
54 |
-
public $arguments =
|
55 |
'priority' => 10,
|
56 |
'capability' => 'edit_theme_options',
|
57 |
'title' => null,
|
58 |
'description' => null,
|
59 |
-
|
60 |
|
61 |
/**
|
62 |
* Overwrite this method to create the Fields/Settings for this section
|
@@ -85,7 +85,7 @@ abstract class Tribe__Customizer__Section {
|
|
85 |
* @param array $settings The actual options on the database
|
86 |
* @return array
|
87 |
*/
|
88 |
-
public function create_ghost_settings( $settings =
|
89 |
return $settings;
|
90 |
}
|
91 |
|
@@ -147,15 +147,15 @@ abstract class Tribe__Customizer__Section {
|
|
147 |
$this->setup();
|
148 |
|
149 |
// Hook the Register methods
|
150 |
-
add_action( "tribe_customizer_register_{$this->ID}_settings",
|
151 |
-
add_filter( 'tribe_customizer_pre_sections',
|
152 |
|
153 |
// Append this section CSS template
|
154 |
-
add_filter( 'tribe_customizer_css_template',
|
155 |
-
add_filter( "tribe_customizer_section_{$this->ID}_defaults",
|
156 |
|
157 |
// Create the Ghost Options
|
158 |
-
add_filter( 'tribe_customizer_pre_get_option',
|
159 |
|
160 |
// By Default Invoking a new Section will load, unless `load` is set to false
|
161 |
if ( true === (bool) $this->load ) {
|
@@ -167,7 +167,7 @@ abstract class Tribe__Customizer__Section {
|
|
167 |
* A way to apply filters when getting the Customizer options
|
168 |
* @return array
|
169 |
*/
|
170 |
-
public function get_defaults( $settings =
|
171 |
// Create Ghost Options
|
172 |
return $this->create_ghost_settings( wp_parse_args( $settings, $this->defaults ) );
|
173 |
}
|
41 |
* @access private
|
42 |
* @var array
|
43 |
*/
|
44 |
+
public $defaults = [];
|
45 |
|
46 |
/**
|
47 |
* Information to setup the Section
|
51 |
* @access public
|
52 |
* @var array
|
53 |
*/
|
54 |
+
public $arguments = [
|
55 |
'priority' => 10,
|
56 |
'capability' => 'edit_theme_options',
|
57 |
'title' => null,
|
58 |
'description' => null,
|
59 |
+
];
|
60 |
|
61 |
/**
|
62 |
* Overwrite this method to create the Fields/Settings for this section
|
85 |
* @param array $settings The actual options on the database
|
86 |
* @return array
|
87 |
*/
|
88 |
+
public function create_ghost_settings( $settings = [] ) {
|
89 |
return $settings;
|
90 |
}
|
91 |
|
147 |
$this->setup();
|
148 |
|
149 |
// Hook the Register methods
|
150 |
+
add_action( "tribe_customizer_register_{$this->ID}_settings", [ $this, 'register_settings' ], 10, 2 );
|
151 |
+
add_filter( 'tribe_customizer_pre_sections', [ $this, 'register' ], 10, 2 );
|
152 |
|
153 |
// Append this section CSS template
|
154 |
+
add_filter( 'tribe_customizer_css_template', [ $this, 'get_css_template' ], 15 );
|
155 |
+
add_filter( "tribe_customizer_section_{$this->ID}_defaults", [ $this, 'get_defaults' ], 10 );
|
156 |
|
157 |
// Create the Ghost Options
|
158 |
+
add_filter( 'tribe_customizer_pre_get_option', [ $this, 'filter_settings' ], 10, 2 );
|
159 |
|
160 |
// By Default Invoking a new Section will load, unless `load` is set to false
|
161 |
if ( true === (bool) $this->load ) {
|
167 |
* A way to apply filters when getting the Customizer options
|
168 |
* @return array
|
169 |
*/
|
170 |
+
public function get_defaults( $settings = [] ) {
|
171 |
// Create Ghost Options
|
172 |
return $this->create_ghost_settings( wp_parse_args( $settings, $this->defaults ) );
|
173 |
}
|
common/src/Tribe/Data.php
CHANGED
@@ -49,7 +49,7 @@ class Tribe__Data implements ArrayAccess, Iterator {
|
|
49 |
* @param array|object $data An array or object of data.
|
50 |
* @param mixed $default The default value that should be returned if a key is not set
|
51 |
*/
|
52 |
-
public function __construct( $data =
|
53 |
$this->data = (array) $data;
|
54 |
$this->default = $default;
|
55 |
}
|
49 |
* @param array|object $data An array or object of data.
|
50 |
* @param mixed $default The default value that should be returned if a key is not set
|
51 |
*/
|
52 |
+
public function __construct( $data = [], $default = false ) {
|
53 |
$this->data = (array) $data;
|
54 |
$this->default = $default;
|
55 |
}
|
common/src/Tribe/Date_Utils.php
CHANGED
@@ -35,10 +35,10 @@ if ( ! class_exists( 'Tribe__Date_Utils' ) ) {
|
|
35 |
*/
|
36 |
private static $default_datepicker_format_index = 1;
|
37 |
|
38 |
-
private static $localized_months_full
|
39 |
-
private static $localized_months_short =
|
40 |
-
private static $localized_weekdays
|
41 |
-
private static $localized_months
|
42 |
|
43 |
/**
|
44 |
* Get the datepickerFormat index.
|
@@ -95,7 +95,7 @@ if ( ! class_exists( 'Tribe__Date_Utils' ) ) {
|
|
95 |
public static function datepicker_formats( $translate = null ) {
|
96 |
|
97 |
// The datepicker has issues when a period separator and no leading zero is used. Those formats are purposefully omitted.
|
98 |
-
$formats =
|
99 |
0 => 'Y-m-d',
|
100 |
1 => 'n/j/Y',
|
101 |
2 => 'm/d/Y',
|
@@ -120,7 +120,7 @@ if ( ! class_exists( 'Tribe__Date_Utils' ) ) {
|
|
120 |
'm9' => 'Y.m',
|
121 |
'm10' => 'm.Y',
|
122 |
'm11' => 'm.Y',
|
123 |
-
|
124 |
|
125 |
if ( is_null( $translate ) ) {
|
126 |
return $formats;
|
@@ -140,55 +140,55 @@ if ( ! class_exists( 'Tribe__Date_Utils' ) ) {
|
|
140 |
*/
|
141 |
public static function datetime_from_format( $format, $date ) {
|
142 |
// Reverse engineer the relevant date formats
|
143 |
-
$keys =
|
144 |
// Year with 4 Digits
|
145 |
-
'Y' =>
|
146 |
|
147 |
// Year with 2 Digits
|
148 |
-
'y' =>
|
149 |
|
150 |
// Month with leading 0
|
151 |
-
'm' =>
|
152 |
|
153 |
// Month without the leading 0
|
154 |
-
'n' =>
|
155 |
|
156 |
// Month ABBR 3 letters
|
157 |
-
'M' =>
|
158 |
|
159 |
// Month Name
|
160 |
-
'F' =>
|
161 |
|
162 |
// Day with leading 0
|
163 |
-
'd' =>
|
164 |
|
165 |
// Day without leading 0
|
166 |
-
'j' =>
|
167 |
|
168 |
// Day ABBR 3 Letters
|
169 |
-
'D' =>
|
170 |
|
171 |
// Day Name
|
172 |
-
'l' =>
|
173 |
|
174 |
// Hour 12h formatted, with leading 0
|
175 |
-
'h' =>
|
176 |
|
177 |
// Hour 24h formatted, with leading 0
|
178 |
-
'H' =>
|
179 |
|
180 |
// Hour 12h formatted, without leading 0
|
181 |
-
'g' =>
|
182 |
|
183 |
// Hour 24h formatted, without leading 0
|
184 |
-
'G' =>
|
185 |
|
186 |
// Minutes with leading 0
|
187 |
-
'i' =>
|
188 |
|
189 |
// Seconds with leading 0
|
190 |
-
's' =>
|
191 |
-
|
192 |
|
193 |
$date_regex = "/{$keys['Y'][1]}-{$keys['m'][1]}-{$keys['d'][1]}( {$keys['H'][1]}:{$keys['i'][1]}:{$keys['s'][1]})?$/";
|
194 |
|
@@ -213,7 +213,7 @@ if ( ! class_exists( 'Tribe__Date_Utils' ) ) {
|
|
213 |
}
|
214 |
}
|
215 |
|
216 |
-
$dt =
|
217 |
|
218 |
// Now try to match it
|
219 |
if ( preg_match( '#^' . $regex . '$#', $date, $dt ) ) {
|
@@ -377,7 +377,7 @@ if ( ! class_exists( 'Tribe__Date_Utils' ) ) {
|
|
377 |
* @return bool If the timestamp is a weekday.
|
378 |
*/
|
379 |
public static function is_weekday( $curdate ) {
|
380 |
-
return in_array( date( 'N', $curdate ),
|
381 |
}
|
382 |
|
383 |
/**
|
@@ -388,7 +388,7 @@ if ( ! class_exists( 'Tribe__Date_Utils' ) ) {
|
|
388 |
* @return bool If the timestamp is a weekend.
|
389 |
*/
|
390 |
public static function is_weekend( $curdate ) {
|
391 |
-
return in_array( date( 'N', $curdate ),
|
392 |
}
|
393 |
|
394 |
/**
|
@@ -664,7 +664,7 @@ if ( ! class_exists( 'Tribe__Date_Utils' ) ) {
|
|
664 |
}
|
665 |
|
666 |
if ( empty( self::$localized_months_full ) ) {
|
667 |
-
self::$localized_months_full =
|
668 |
'January' => self::$localized_months['full']['01'],
|
669 |
'February' => self::$localized_months['full']['02'],
|
670 |
'March' => self::$localized_months['full']['03'],
|
@@ -677,7 +677,7 @@ if ( ! class_exists( 'Tribe__Date_Utils' ) ) {
|
|
677 |
'October' => self::$localized_months['full']['10'],
|
678 |
'November' => self::$localized_months['full']['11'],
|
679 |
'December' => self::$localized_months['full']['12'],
|
680 |
-
|
681 |
}
|
682 |
|
683 |
return self::$localized_months_full;
|
@@ -696,7 +696,7 @@ if ( ! class_exists( 'Tribe__Date_Utils' ) ) {
|
|
696 |
}
|
697 |
|
698 |
if ( empty( self::$localized_months_short ) ) {
|
699 |
-
self::$localized_months_short =
|
700 |
'Jan' => self::$localized_months['short']['01'],
|
701 |
'Feb' => self::$localized_months['short']['02'],
|
702 |
'Mar' => self::$localized_months['short']['03'],
|
@@ -709,7 +709,7 @@ if ( ! class_exists( 'Tribe__Date_Utils' ) ) {
|
|
709 |
'Oct' => self::$localized_months['short']['10'],
|
710 |
'Nov' => self::$localized_months['short']['11'],
|
711 |
'Dec' => self::$localized_months['short']['12'],
|
712 |
-
|
713 |
}
|
714 |
|
715 |
return self::$localized_months_short;
|
@@ -797,7 +797,7 @@ if ( ! class_exists( 'Tribe__Date_Utils' ) ) {
|
|
797 |
public static function wp_locale_weekday( $weekday, $format = 'weekday' ) {
|
798 |
$weekday = trim( $weekday );
|
799 |
|
800 |
-
$valid_formats =
|
801 |
'full',
|
802 |
'weekday',
|
803 |
'initial',
|
@@ -805,7 +805,7 @@ if ( ! class_exists( 'Tribe__Date_Utils' ) ) {
|
|
805 |
'abbrev',
|
806 |
'abbr',
|
807 |
'short',
|
808 |
-
|
809 |
|
810 |
// if there isn't a valid format, bail without providing a localized string
|
811 |
if ( ! in_array( $format, $valid_formats ) ) {
|
@@ -819,7 +819,7 @@ if ( ! class_exists( 'Tribe__Date_Utils' ) ) {
|
|
819 |
// if the weekday isn't numeric, we need to convert to numeric in order to
|
820 |
// leverage self::localized_weekdays
|
821 |
if ( ! is_numeric( $weekday ) ) {
|
822 |
-
$days_of_week =
|
823 |
'Sun',
|
824 |
'Mon',
|
825 |
'Tue',
|
@@ -827,7 +827,7 @@ if ( ! class_exists( 'Tribe__Date_Utils' ) ) {
|
|
827 |
'Thu',
|
828 |
'Fri',
|
829 |
'Sat',
|
830 |
-
|
831 |
|
832 |
$day_index = array_search( ucwords( substr( $weekday, 0, 3 ) ), $days_of_week );
|
833 |
|
@@ -871,14 +871,14 @@ if ( ! class_exists( 'Tribe__Date_Utils' ) ) {
|
|
871 |
public static function wp_locale_month( $month, $format = 'month' ) {
|
872 |
$month = trim( $month );
|
873 |
|
874 |
-
$valid_formats =
|
875 |
'full',
|
876 |
'month',
|
877 |
'abbreviation',
|
878 |
'abbrev',
|
879 |
'abbr',
|
880 |
'short',
|
881 |
-
|
882 |
|
883 |
// if there isn't a valid format, bail without providing a localized string
|
884 |
if ( ! in_array( $format, $valid_formats ) ) {
|
@@ -898,7 +898,7 @@ if ( ! class_exists( 'Tribe__Date_Utils' ) ) {
|
|
898 |
return $month;
|
899 |
}
|
900 |
} else {
|
901 |
-
$months =
|
902 |
'Jan',
|
903 |
'Feb',
|
904 |
'Mar',
|
@@ -911,7 +911,7 @@ if ( ! class_exists( 'Tribe__Date_Utils' ) ) {
|
|
911 |
'Oct',
|
912 |
'Nov',
|
913 |
'Dec',
|
914 |
-
|
915 |
|
916 |
// convert the provided month to a 3-character month and find it in the months array so we
|
917 |
// can build an appropriate month number
|
@@ -1184,7 +1184,7 @@ if ( ! class_exists( 'Tribe__Date_Utils' ) ) {
|
|
1184 |
&& is_numeric( $month )
|
1185 |
&& is_numeric( $year )
|
1186 |
&& is_numeric( $week_direction )
|
1187 |
-
&& in_array( $week_direction,
|
1188 |
)
|
1189 |
) {
|
1190 |
return false;
|
35 |
*/
|
36 |
private static $default_datepicker_format_index = 1;
|
37 |
|
38 |
+
private static $localized_months_full = [];
|
39 |
+
private static $localized_months_short = [];
|
40 |
+
private static $localized_weekdays = [];
|
41 |
+
private static $localized_months = [];
|
42 |
|
43 |
/**
|
44 |
* Get the datepickerFormat index.
|
95 |
public static function datepicker_formats( $translate = null ) {
|
96 |
|
97 |
// The datepicker has issues when a period separator and no leading zero is used. Those formats are purposefully omitted.
|
98 |
+
$formats = [
|
99 |
0 => 'Y-m-d',
|
100 |
1 => 'n/j/Y',
|
101 |
2 => 'm/d/Y',
|
120 |
'm9' => 'Y.m',
|
121 |
'm10' => 'm.Y',
|
122 |
'm11' => 'm.Y',
|
123 |
+
];
|
124 |
|
125 |
if ( is_null( $translate ) ) {
|
126 |
return $formats;
|
140 |
*/
|
141 |
public static function datetime_from_format( $format, $date ) {
|
142 |
// Reverse engineer the relevant date formats
|
143 |
+
$keys = [
|
144 |
// Year with 4 Digits
|
145 |
+
'Y' => [ 'year', '\d{4}' ],
|
146 |
|
147 |
// Year with 2 Digits
|
148 |
+
'y' => [ 'year', '\d{2}' ],
|
149 |
|
150 |
// Month with leading 0
|
151 |
+
'm' => [ 'month', '\d{2}' ],
|
152 |
|
153 |
// Month without the leading 0
|
154 |
+
'n' => [ 'month', '\d{1,2}' ],
|
155 |
|
156 |
// Month ABBR 3 letters
|
157 |
+
'M' => [ 'month', '[A-Z][a-z]{2}' ],
|
158 |
|
159 |
// Month Name
|
160 |
+
'F' => [ 'month', '[A-Z][a-z]{2,8}' ],
|
161 |
|
162 |
// Day with leading 0
|
163 |
+
'd' => [ 'day', '\d{2}' ],
|
164 |
|
165 |
// Day without leading 0
|
166 |
+
'j' => [ 'day', '\d{1,2}' ],
|
167 |
|
168 |
// Day ABBR 3 Letters
|
169 |
+
'D' => [ 'day', '[A-Z][a-z]{2}' ],
|
170 |
|
171 |
// Day Name
|
172 |
+
'l' => [ 'day', '[A-Z][a-z]{5,8}' ],
|
173 |
|
174 |
// Hour 12h formatted, with leading 0
|
175 |
+
'h' => [ 'hour', '\d{2}' ],
|
176 |
|
177 |
// Hour 24h formatted, with leading 0
|
178 |
+
'H' => [ 'hour', '\d{2}' ],
|
179 |
|
180 |
// Hour 12h formatted, without leading 0
|
181 |
+
'g' => [ 'hour', '\d{1,2}' ],
|
182 |
|
183 |
// Hour 24h formatted, without leading 0
|
184 |
+
'G' => [ 'hour', '\d{1,2}' ],
|
185 |
|
186 |
// Minutes with leading 0
|
187 |
+
'i' => [ 'minute', '\d{2}' ],
|
188 |
|
189 |
// Seconds with leading 0
|
190 |
+
's' => [ 'second', '\d{2}' ],
|
191 |
+
];
|
192 |
|
193 |
$date_regex = "/{$keys['Y'][1]}-{$keys['m'][1]}-{$keys['d'][1]}( {$keys['H'][1]}:{$keys['i'][1]}:{$keys['s'][1]})?$/";
|
194 |
|
213 |
}
|
214 |
}
|
215 |
|
216 |
+
$dt = [];
|
217 |
|
218 |
// Now try to match it
|
219 |
if ( preg_match( '#^' . $regex . '$#', $date, $dt ) ) {
|
377 |
* @return bool If the timestamp is a weekday.
|
378 |
*/
|
379 |
public static function is_weekday( $curdate ) {
|
380 |
+
return in_array( date( 'N', $curdate ), [ 1, 2, 3, 4, 5 ] );
|
381 |
}
|
382 |
|
383 |
/**
|
388 |
* @return bool If the timestamp is a weekend.
|
389 |
*/
|
390 |
public static function is_weekend( $curdate ) {
|
391 |
+
return in_array( date( 'N', $curdate ), [ 6, 7 ] );
|
392 |
}
|
393 |
|
394 |
/**
|
664 |
}
|
665 |
|
666 |
if ( empty( self::$localized_months_full ) ) {
|
667 |
+
self::$localized_months_full = [
|
668 |
'January' => self::$localized_months['full']['01'],
|
669 |
'February' => self::$localized_months['full']['02'],
|
670 |
'March' => self::$localized_months['full']['03'],
|
677 |
'October' => self::$localized_months['full']['10'],
|
678 |
'November' => self::$localized_months['full']['11'],
|
679 |
'December' => self::$localized_months['full']['12'],
|
680 |
+
];
|
681 |
}
|
682 |
|
683 |
return self::$localized_months_full;
|
696 |
}
|
697 |
|
698 |
if ( empty( self::$localized_months_short ) ) {
|
699 |
+
self::$localized_months_short = [
|
700 |
'Jan' => self::$localized_months['short']['01'],
|
701 |
'Feb' => self::$localized_months['short']['02'],
|
702 |
'Mar' => self::$localized_months['short']['03'],
|
709 |
'Oct' => self::$localized_months['short']['10'],
|
710 |
'Nov' => self::$localized_months['short']['11'],
|
711 |
'Dec' => self::$localized_months['short']['12'],
|
712 |
+
];
|
713 |
}
|
714 |
|
715 |
return self::$localized_months_short;
|
797 |
public static function wp_locale_weekday( $weekday, $format = 'weekday' ) {
|
798 |
$weekday = trim( $weekday );
|
799 |
|
800 |
+
$valid_formats = [
|
801 |
'full',
|
802 |
'weekday',
|
803 |
'initial',
|
805 |
'abbrev',
|
806 |
'abbr',
|
807 |
'short',
|
808 |
+
];
|
809 |
|
810 |
// if there isn't a valid format, bail without providing a localized string
|
811 |
if ( ! in_array( $format, $valid_formats ) ) {
|
819 |
// if the weekday isn't numeric, we need to convert to numeric in order to
|
820 |
// leverage self::localized_weekdays
|
821 |
if ( ! is_numeric( $weekday ) ) {
|
822 |
+
$days_of_week = [
|
823 |
'Sun',
|
824 |
'Mon',
|
825 |
'Tue',
|
827 |
'Thu',
|
828 |
'Fri',
|
829 |
'Sat',
|
830 |
+
];
|
831 |
|
832 |
$day_index = array_search( ucwords( substr( $weekday, 0, 3 ) ), $days_of_week );
|
833 |
|
871 |
public static function wp_locale_month( $month, $format = 'month' ) {
|
872 |
$month = trim( $month );
|
873 |
|
874 |
+
$valid_formats = [
|
875 |
'full',
|
876 |
'month',
|
877 |
'abbreviation',
|
878 |
'abbrev',
|
879 |
'abbr',
|
880 |
'short',
|
881 |
+
];
|
882 |
|
883 |
// if there isn't a valid format, bail without providing a localized string
|
884 |
if ( ! in_array( $format, $valid_formats ) ) {
|
898 |
return $month;
|
899 |
}
|
900 |
} else {
|
901 |
+
$months = [
|
902 |
'Jan',
|
903 |
'Feb',
|
904 |
'Mar',
|
911 |
'Oct',
|
912 |
'Nov',
|
913 |
'Dec',
|
914 |
+
];
|
915 |
|
916 |
// convert the provided month to a 3-character month and find it in the months array so we
|
917 |
// can build an appropriate month number
|
1184 |
&& is_numeric( $month )
|
1185 |
&& is_numeric( $year )
|
1186 |
&& is_numeric( $week_direction )
|
1187 |
+
&& in_array( $week_direction, [ -1, 1 ] )
|
1188 |
)
|
1189 |
) {
|
1190 |
return false;
|
common/src/Tribe/Debug.php
CHANGED
@@ -5,7 +5,7 @@ class Tribe__Debug {
|
|
5 |
* constructor
|
6 |
*/
|
7 |
public function __construct() {
|
8 |
-
add_action( 'tribe_debug',
|
9 |
}
|
10 |
|
11 |
/**
|
5 |
* constructor
|
6 |
*/
|
7 |
public function __construct() {
|
8 |
+
add_action( 'tribe_debug', [ __CLASS__, 'render' ], 10, 2 );
|
9 |
}
|
10 |
|
11 |
/**
|
common/src/Tribe/Dependency.php
CHANGED
@@ -11,23 +11,23 @@ if ( ! class_exists( 'Tribe__Dependency' ) ) {
|
|
11 |
/**
|
12 |
* A multidimensional array of active tribe plugins in the following format
|
13 |
*
|
14 |
-
*
|
15 |
* 'class' => 'main class name',
|
16 |
* 'version' => 'version num', (optional)
|
17 |
* 'path' => 'Path to the main plugin/bootstrap file' (optional)
|
18 |
-
*
|
19 |
*/
|
20 |
protected $active_plugins = [];
|
21 |
|
22 |
/**
|
23 |
* A multidimensional array of active tribe plugins in the following format
|
24 |
*
|
25 |
-
*
|
26 |
* 'class' => 'main class name',
|
27 |
* 'path' => 'Path to the main plugin/bootstrap file'
|
28 |
* 'version' => 'version num', (optional)
|
29 |
* 'dependencies' => 'A multidimensional of dependencies' (optional)
|
30 |
-
*
|
31 |
*/
|
32 |
protected $registered_plugins = [];
|
33 |
|
@@ -49,13 +49,13 @@ if ( ! class_exists( 'Tribe__Dependency' ) ) {
|
|
49 |
* @param null|string $path Path to the main plugin/bootstrap file
|
50 |
* @param array $dependencies An array of dependencies for a plugin
|
51 |
*/
|
52 |
-
public function add_registered_plugin( $main_class, $version = null, $path = null, $dependencies =
|
53 |
-
$plugin =
|
54 |
'class' => $main_class,
|
55 |
'version' => $version,
|
56 |
'path' => $path,
|
57 |
'dependencies' => $dependencies,
|
58 |
-
|
59 |
|
60 |
$this->registered_plugins[ $main_class ] = $plugin;
|
61 |
|
@@ -83,11 +83,11 @@ if ( ! class_exists( 'Tribe__Dependency' ) ) {
|
|
83 |
* @param string $path Path to the main plugin/bootstrap file
|
84 |
*/
|
85 |
public function add_active_plugin( $main_class, $version = null, $path = null ) {
|
86 |
-
$plugin =
|
87 |
-
'class'
|
88 |
-
'version'
|
89 |
-
'path'
|
90 |
-
|
91 |
|
92 |
$this->active_plugins[ $main_class ] = $plugin;
|
93 |
}
|
@@ -267,7 +267,7 @@ if ( ! class_exists( 'Tribe__Dependency' ) ) {
|
|
267 |
*
|
268 |
* @return bool
|
269 |
*/
|
270 |
-
public function has_requisite_plugins( $plugins_required =
|
271 |
foreach ( $plugins_required as $class => $version ) {
|
272 |
// Return false if the plugin is not set or is a lesser version
|
273 |
if ( ! $this->is_plugin_active( $class ) ) {
|
@@ -307,7 +307,7 @@ if ( ! class_exists( 'Tribe__Dependency' ) ) {
|
|
307 |
*
|
308 |
* @return true|int The number of failed dependency checks; `true` or `0` to indicate no checks failed.
|
309 |
*/
|
310 |
-
public function has_valid_dependencies( $plugin, $dependencies =
|
311 |
if ( empty( $dependencies ) ) {
|
312 |
return true;
|
313 |
}
|
@@ -415,7 +415,7 @@ if ( ! class_exists( 'Tribe__Dependency' ) ) {
|
|
415 |
* @param array $classes_req Any Main class files/tribe plugins required for this to run.
|
416 |
* @param array $dependencies an array of dependencies to check.
|
417 |
*/
|
418 |
-
public function register_plugin( $file_path, $main_class, $version, $classes_req =
|
419 |
/**
|
420 |
* Filters the version string for a plugin.
|
421 |
*
|
11 |
/**
|
12 |
* A multidimensional array of active tribe plugins in the following format
|
13 |
*
|
14 |
+
* [
|
15 |
* 'class' => 'main class name',
|
16 |
* 'version' => 'version num', (optional)
|
17 |
* 'path' => 'Path to the main plugin/bootstrap file' (optional)
|
18 |
+
* ]
|
19 |
*/
|
20 |
protected $active_plugins = [];
|
21 |
|
22 |
/**
|
23 |
* A multidimensional array of active tribe plugins in the following format
|
24 |
*
|
25 |
+
* [
|
26 |
* 'class' => 'main class name',
|
27 |
* 'path' => 'Path to the main plugin/bootstrap file'
|
28 |
* 'version' => 'version num', (optional)
|
29 |
* 'dependencies' => 'A multidimensional of dependencies' (optional)
|
30 |
+
* ]
|
31 |
*/
|
32 |
protected $registered_plugins = [];
|
33 |
|
49 |
* @param null|string $path Path to the main plugin/bootstrap file
|
50 |
* @param array $dependencies An array of dependencies for a plugin
|
51 |
*/
|
52 |
+
public function add_registered_plugin( $main_class, $version = null, $path = null, $dependencies = [] ) {
|
53 |
+
$plugin = [
|
54 |
'class' => $main_class,
|
55 |
'version' => $version,
|
56 |
'path' => $path,
|
57 |
'dependencies' => $dependencies,
|
58 |
+
];
|
59 |
|
60 |
$this->registered_plugins[ $main_class ] = $plugin;
|
61 |
|
83 |
* @param string $path Path to the main plugin/bootstrap file
|
84 |
*/
|
85 |
public function add_active_plugin( $main_class, $version = null, $path = null ) {
|
86 |
+
$plugin = [
|
87 |
+
'class' => $main_class,
|
88 |
+
'version' => $version,
|
89 |
+
'path' => $path,
|
90 |
+
];
|
91 |
|
92 |
$this->active_plugins[ $main_class ] = $plugin;
|
93 |
}
|
267 |
*
|
268 |
* @return bool
|
269 |
*/
|
270 |
+
public function has_requisite_plugins( $plugins_required = [] ) {
|
271 |
foreach ( $plugins_required as $class => $version ) {
|
272 |
// Return false if the plugin is not set or is a lesser version
|
273 |
if ( ! $this->is_plugin_active( $class ) ) {
|
307 |
*
|
308 |
* @return true|int The number of failed dependency checks; `true` or `0` to indicate no checks failed.
|
309 |
*/
|
310 |
+
public function has_valid_dependencies( $plugin, $dependencies = [], $addon = false ) {
|
311 |
if ( empty( $dependencies ) ) {
|
312 |
return true;
|
313 |
}
|
415 |
* @param array $classes_req Any Main class files/tribe plugins required for this to run.
|
416 |
* @param array $dependencies an array of dependencies to check.
|
417 |
*/
|
418 |
+
public function register_plugin( $file_path, $main_class, $version, $classes_req = [], $dependencies = [] ) {
|
419 |
/**
|
420 |
* Filters the version string for a plugin.
|
421 |
*
|
common/src/Tribe/Deprecation.php
CHANGED
@@ -27,10 +27,10 @@ class Tribe__Deprecation {
|
|
27 |
*
|
28 |
* @var array
|
29 |
*/
|
30 |
-
protected $deprecated_filters =
|
31 |
-
'tribe_cost_regex' =>
|
32 |
-
'tribe_rewrite_prepared_slug' =>
|
33 |
-
|
34 |
|
35 |
/**
|
36 |
* An array specifying the tag, version and optional replacements
|
@@ -44,9 +44,9 @@ class Tribe__Deprecation {
|
|
44 |
*
|
45 |
* @var array
|
46 |
*/
|
47 |
-
protected $deprecated_actions =
|
48 |
-
'tribe_pre_rewrite' =>
|
49 |
-
|
50 |
|
51 |
/**
|
52 |
* @return Tribe__Deprecation
|
@@ -71,9 +71,9 @@ class Tribe__Deprecation {
|
|
71 |
*/
|
72 |
public function deprecate_actions() {
|
73 |
foreach ( array_keys( $this->deprecated_actions ) as $new_action_tag ) {
|
74 |
-
add_action( $new_action_tag,
|
75 |
add_filter(
|
76 |
-
$this->deprecated_actions[ $new_action_tag ][1],
|
77 |
);
|
78 |
}
|
79 |
}
|
@@ -85,9 +85,9 @@ class Tribe__Deprecation {
|
|
85 |
*/
|
86 |
public function deprecate_filters() {
|
87 |
foreach ( array_keys( $this->deprecated_filters ) as $new_filter_tag ) {
|
88 |
-
add_filter( $new_filter_tag,
|
89 |
add_filter(
|
90 |
-
$this->deprecated_filters[ $new_filter_tag ][1],
|
91 |
);
|
92 |
}
|
93 |
}
|
@@ -104,7 +104,7 @@ class Tribe__Deprecation {
|
|
104 |
$action = $this->get_action_for_deprecated_tag( $action );
|
105 |
}
|
106 |
|
107 |
-
remove_action( $deprecated_tag,
|
108 |
|
109 |
if ( doing_action( $deprecated_tag ) || has_filter( $deprecated_tag ) ) {
|
110 |
_deprecated_function(
|
@@ -112,7 +112,7 @@ class Tribe__Deprecation {
|
|
112 |
);
|
113 |
}
|
114 |
|
115 |
-
add_action( $deprecated_tag,
|
116 |
}
|
117 |
|
118 |
/**
|
@@ -133,17 +133,17 @@ class Tribe__Deprecation {
|
|
133 |
$filter = $this->get_filter_for_deprecated_tag( $filter );
|
134 |
}
|
135 |
|
136 |
-
remove_filter( $deprecated_tag,
|
137 |
|
138 |
if ( has_filter( $deprecated_tag ) || doing_filter( $deprecated_tag ) ) {
|
139 |
-
$version = Tribe__Utils__Array::get( $this->deprecated_filters,
|
140 |
|
141 |
_deprecated_function(
|
142 |
'The ' . $deprecated_tag . ' filter', $version, $filter
|
143 |
);
|
144 |
}
|
145 |
|
146 |
-
add_filter( $deprecated_tag,
|
147 |
|
148 |
return $value;
|
149 |
}
|
27 |
*
|
28 |
* @var array
|
29 |
*/
|
30 |
+
protected $deprecated_filters = [
|
31 |
+
'tribe_cost_regex' => [ '4.3', 'tribe_events_cost_regex' ],
|
32 |
+
'tribe_rewrite_prepared_slug' => [ '4.3', 'tribe_events_rewrite_prepared_slug' ],
|
33 |
+
];
|
34 |
|
35 |
/**
|
36 |
* An array specifying the tag, version and optional replacements
|
44 |
*
|
45 |
* @var array
|
46 |
*/
|
47 |
+
protected $deprecated_actions = [
|
48 |
+
'tribe_pre_rewrite' => [ '4.3', 'tribe_events_pre_rewrite' ],
|
49 |
+
];
|
50 |
|
51 |
/**
|
52 |
* @return Tribe__Deprecation
|
71 |
*/
|
72 |
public function deprecate_actions() {
|
73 |
foreach ( array_keys( $this->deprecated_actions ) as $new_action_tag ) {
|
74 |
+
add_action( $new_action_tag, [ $this, 'deprecated_action_message' ] );
|
75 |
add_filter(
|
76 |
+
$this->deprecated_actions[ $new_action_tag ][1], [ $this, 'deprecated_action_message' ]
|
77 |
);
|
78 |
}
|
79 |
}
|
85 |
*/
|
86 |
public function deprecate_filters() {
|
87 |
foreach ( array_keys( $this->deprecated_filters ) as $new_filter_tag ) {
|
88 |
+
add_filter( $new_filter_tag, [ $this, 'deprecated_filter_message' ] );
|
89 |
add_filter(
|
90 |
+
$this->deprecated_filters[ $new_filter_tag ][1], [ $this, 'deprecated_filter_message' ]
|
91 |
);
|
92 |
}
|
93 |
}
|
104 |
$action = $this->get_action_for_deprecated_tag( $action );
|
105 |
}
|
106 |
|
107 |
+
remove_action( $deprecated_tag, [ $this, 'deprecated_action_message' ] );
|
108 |
|
109 |
if ( doing_action( $deprecated_tag ) || has_filter( $deprecated_tag ) ) {
|
110 |
_deprecated_function(
|
112 |
);
|
113 |
}
|
114 |
|
115 |
+
add_action( $deprecated_tag, [ $this, 'deprecated_action_message' ] );
|
116 |
}
|
117 |
|
118 |
/**
|
133 |
$filter = $this->get_filter_for_deprecated_tag( $filter );
|
134 |
}
|
135 |
|
136 |
+
remove_filter( $deprecated_tag, [ $this, 'deprecated_filter_message' ] );
|
137 |
|
138 |
if ( has_filter( $deprecated_tag ) || doing_filter( $deprecated_tag ) ) {
|
139 |
+
$version = Tribe__Utils__Array::get( $this->deprecated_filters, [ $filter, 0 ], null );
|
140 |
|
141 |
_deprecated_function(
|
142 |
'The ' . $deprecated_tag . ' filter', $version, $filter
|
143 |
);
|
144 |
}
|
145 |
|
146 |
+
add_filter( $deprecated_tag, [ $this, 'deprecated_filter_message' ] );
|
147 |
|
148 |
return $value;
|
149 |
}
|
common/src/Tribe/Dialog/View.php
CHANGED
@@ -45,10 +45,12 @@ class View extends \Tribe__Template {
|
|
45 |
*
|
46 |
* @type string $button_id The ID for the trigger button (optional).
|
47 |
* @type array $button_classes Any desired classes for the trigger button (optional).
|
|
|
48 |
* @type boolean $button_disabled Should the button be disabled (optional).
|
49 |
* @type string $button_text The text for the dialog trigger button ("Open the dialog window").
|
50 |
* @type string $button_type The type for the trigger button (optional).
|
51 |
* @type string $button_value The value for the trigger button (optional).
|
|
|
52 |
* @type string $close_event The dialog close event hook name (`tribe_dialog_close_dialog`).
|
53 |
* @type string $content_classes The dialog content classes ("tribe-dialog__content").
|
54 |
* @type array $context Any additional context data you need to expose to this file (optional).
|
@@ -113,10 +115,12 @@ class View extends \Tribe__Template {
|
|
113 |
*
|
114 |
* @type string $button_id The ID for the trigger button (optional).
|
115 |
* @type array $button_classes Any desired classes for the trigger button (optional).
|
|
|
116 |
* @type boolean $button_disabled Should the button be disabled (optional).
|
117 |
* @type string $button_text The text for the dialog trigger button ("Open the modal window").
|
118 |
* @type string $button_type The type for the trigger button (optional).
|
119 |
* @type string $button_value The value for the trigger button (optional).
|
|
|
120 |
* @type string $close_event The dialog close event hook name (`tribe_dialog_close_modal`).
|
121 |
* @type string $content_classes The dialog content classes ("tribe-dialog__content tribe-modal__content").
|
122 |
* @type string $title_classes The dialog title classes ("tribe-dialog__title tribe-modal__title").
|
@@ -182,10 +186,12 @@ class View extends \Tribe__Template {
|
|
182 |
*
|
183 |
* @type string $button_id The ID for the trigger button (optional).
|
184 |
* @type array $button_classes Any desired classes for the trigger button (optional).
|
|
|
185 |
* @type boolean $button_disabled Should the button be disabled (optional).
|
186 |
* @type string $button_text The text for the dialog trigger button ("Open the dialog window").
|
187 |
* @type string $button_type The type for the trigger button (optional).
|
188 |
* @type string $button_value The value for the trigger button (optional).
|
|
|
189 |
* @type string $cancel_button_text Text for the "Cancel" button ("Cancel").
|
190 |
* @type string $content_classes The dialog content classes ("tribe-dialog__content tribe-confirm__content").
|
191 |
* @type string $continue_button_text Text for the "Continue" button ("Confirm").
|
@@ -250,10 +256,12 @@ class View extends \Tribe__Template {
|
|
250 |
* @type string $alert_button_text Text for the "OK" button ("OK").
|
251 |
* @type string $button_id The ID for the trigger button (optional).
|
252 |
* @type array $button_classes Any desired classes for the trigger button (optional).
|
|
|
253 |
* @type boolean $button_disabled Should the button be disabled (optional).
|
254 |
* @type string $button_text The text for the dialog trigger button ("Open the dialog window").
|
255 |
* @type string $button_type The type for the trigger button (optional).
|
256 |
* @type string $button_value The value for the trigger button (optional).
|
|
|
257 |
* @type string $content_classes The dialog content classes ("tribe-dialog__content tribe-alert__content").
|
258 |
* @type string $title_classes The dialog title classes ("tribe-dialog__title tribe-alert__title").
|
259 |
* @type array $context Any additional context data you need to expose to this file (optional).
|
@@ -315,10 +323,12 @@ class View extends \Tribe__Template {
|
|
315 |
*
|
316 |
* @type string $button_id The ID for the trigger button (optional).
|
317 |
* @type array $button_classes Any desired classes for the trigger button (optional).
|
|
|
318 |
* @type boolean $button_disabled Should the button be disabled (optional).
|
319 |
* @type string $button_text The text for the dialog trigger button ("Open the dialog window").
|
320 |
* @type string $button_type The type for the trigger button (optional).
|
321 |
* @type string $button_value The value for the trigger button (optional).
|
|
|
322 |
* @type string $close_event The dialog event hook name (`tribe_dialog_close_dialog`).
|
323 |
* @type string $content_classes The dialog content classes ("tribe-dialog__content").
|
324 |
* @type string $title_classes The dialog title classes ("tribe-dialog__title").
|
@@ -349,12 +359,14 @@ class View extends \Tribe__Template {
|
|
349 |
private function build_dialog( $content, $id, $args ) {
|
350 |
$default_args = [
|
351 |
'button_classes' => '',
|
|
|
352 |
'button_disabled' => false,
|
353 |
'button_id' => '',
|
354 |
'button_name' => '',
|
355 |
'button_text' => __( 'Open the dialog window', 'tribe-common' ),
|
356 |
'button_type' => '',
|
357 |
'button_value' => '',
|
|
|
358 |
'close_event' => 'tribe_dialog_close_dialog',
|
359 |
'content_classes' => 'tribe-dialog__content',
|
360 |
'context' => '',
|
45 |
*
|
46 |
* @type string $button_id The ID for the trigger button (optional).
|
47 |
* @type array $button_classes Any desired classes for the trigger button (optional).
|
48 |
+
* @type array $button_attributes Any desired attributes for the trigger button (optional).
|
49 |
* @type boolean $button_disabled Should the button be disabled (optional).
|
50 |
* @type string $button_text The text for the dialog trigger button ("Open the dialog window").
|
51 |
* @type string $button_type The type for the trigger button (optional).
|
52 |
* @type string $button_value The value for the trigger button (optional).
|
53 |
+
* @type boolean $button_display If the dialog button should be displayed or not (optional).
|
54 |
* @type string $close_event The dialog close event hook name (`tribe_dialog_close_dialog`).
|
55 |
* @type string $content_classes The dialog content classes ("tribe-dialog__content").
|
56 |
* @type array $context Any additional context data you need to expose to this file (optional).
|
115 |
*
|
116 |
* @type string $button_id The ID for the trigger button (optional).
|
117 |
* @type array $button_classes Any desired classes for the trigger button (optional).
|
118 |
+
* @type array $button_attributes Any desired attributes for the trigger button (optional).
|
119 |
* @type boolean $button_disabled Should the button be disabled (optional).
|
120 |
* @type string $button_text The text for the dialog trigger button ("Open the modal window").
|
121 |
* @type string $button_type The type for the trigger button (optional).
|
122 |
* @type string $button_value The value for the trigger button (optional).
|
123 |
+
* @type boolean $button_display If the dialog button should be displayed or not (optional).
|
124 |
* @type string $close_event The dialog close event hook name (`tribe_dialog_close_modal`).
|
125 |
* @type string $content_classes The dialog content classes ("tribe-dialog__content tribe-modal__content").
|
126 |
* @type string $title_classes The dialog title classes ("tribe-dialog__title tribe-modal__title").
|
186 |
*
|
187 |
* @type string $button_id The ID for the trigger button (optional).
|
188 |
* @type array $button_classes Any desired classes for the trigger button (optional).
|
189 |
+
* @type array $button_attributes Any desired attributes for the trigger button (optional).
|
190 |
* @type boolean $button_disabled Should the button be disabled (optional).
|
191 |
* @type string $button_text The text for the dialog trigger button ("Open the dialog window").
|
192 |
* @type string $button_type The type for the trigger button (optional).
|
193 |
* @type string $button_value The value for the trigger button (optional).
|
194 |
+
* @type boolean $button_display If the dialog button should be displayed or not (optional).
|
195 |
* @type string $cancel_button_text Text for the "Cancel" button ("Cancel").
|
196 |
* @type string $content_classes The dialog content classes ("tribe-dialog__content tribe-confirm__content").
|
197 |
* @type string $continue_button_text Text for the "Continue" button ("Confirm").
|
256 |
* @type string $alert_button_text Text for the "OK" button ("OK").
|
257 |
* @type string $button_id The ID for the trigger button (optional).
|
258 |
* @type array $button_classes Any desired classes for the trigger button (optional).
|
259 |
+
* @type array $button_attributes Any desired attributes for the trigger button (optional).
|
260 |
* @type boolean $button_disabled Should the button be disabled (optional).
|
261 |
* @type string $button_text The text for the dialog trigger button ("Open the dialog window").
|
262 |
* @type string $button_type The type for the trigger button (optional).
|
263 |
* @type string $button_value The value for the trigger button (optional).
|
264 |
+
* @type boolean $button_display If the dialog button should be displayed or not (optional).
|
265 |
* @type string $content_classes The dialog content classes ("tribe-dialog__content tribe-alert__content").
|
266 |
* @type string $title_classes The dialog title classes ("tribe-dialog__title tribe-alert__title").
|
267 |
* @type array $context Any additional context data you need to expose to this file (optional).
|
323 |
*
|
324 |
* @type string $button_id The ID for the trigger button (optional).
|
325 |
* @type array $button_classes Any desired classes for the trigger button (optional).
|
326 |
+
* @type array $button_attributes Any desired attributes for the trigger button (optional).
|
327 |
* @type boolean $button_disabled Should the button be disabled (optional).
|
328 |
* @type string $button_text The text for the dialog trigger button ("Open the dialog window").
|
329 |
* @type string $button_type The type for the trigger button (optional).
|
330 |
* @type string $button_value The value for the trigger button (optional).
|
331 |
+
* @type boolean $button_display If the dialog button should be displayed or not (optional).
|
332 |
* @type string $close_event The dialog event hook name (`tribe_dialog_close_dialog`).
|
333 |
* @type string $content_classes The dialog content classes ("tribe-dialog__content").
|
334 |
* @type string $title_classes The dialog title classes ("tribe-dialog__title").
|
359 |
private function build_dialog( $content, $id, $args ) {
|
360 |
$default_args = [
|
361 |
'button_classes' => '',
|
362 |
+
'button_attributes' => [],
|
363 |
'button_disabled' => false,
|
364 |
'button_id' => '',
|
365 |
'button_name' => '',
|
366 |
'button_text' => __( 'Open the dialog window', 'tribe-common' ),
|
367 |
'button_type' => '',
|
368 |
'button_value' => '',
|
369 |
+
'button_display' => true,
|
370 |
'close_event' => 'tribe_dialog_close_dialog',
|
371 |
'content_classes' => 'tribe-dialog__content',
|
372 |
'context' => '',
|
common/src/Tribe/Documentation/Swagger/Cost_Details_Definition_Provider.php
CHANGED
@@ -16,25 +16,25 @@ class Tribe__Documentation__Swagger__Cost_Details_Definition_Provider
|
|
16 |
* @return array An array description of a Swagger supported component.
|
17 |
*/
|
18 |
public function get_documentation() {
|
19 |
-
$documentation =
|
20 |
'type' => 'object',
|
21 |
-
'properties' =>
|
22 |
-
'currency_symbol'
|
23 |
-
'type'
|
24 |
'description' => __( 'The cost currency symbol', 'tribe-common' ),
|
25 |
-
|
26 |
-
'currency_position ' =>
|
27 |
-
'type'
|
28 |
'description' => __( 'The position of the currency symbol in the cost string', 'tribe-common' ),
|
29 |
-
'enum'
|
30 |
-
|
31 |
-
'values'
|
32 |
-
'type'
|
33 |
-
'items'
|
34 |
'description' => __( 'A sorted array of all the numeric values for the cost', 'tribe-common' ),
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
|
39 |
/**
|
40 |
* Filters the Swagger documentation generated for a cost details in the TEC REST API.
|
16 |
* @return array An array description of a Swagger supported component.
|
17 |
*/
|
18 |
public function get_documentation() {
|
19 |
+
$documentation = [
|
20 |
'type' => 'object',
|
21 |
+
'properties' => [
|
22 |
+
'currency_symbol' => [
|
23 |
+
'type' => 'string',
|
24 |
'description' => __( 'The cost currency symbol', 'tribe-common' ),
|
25 |
+
],
|
26 |
+
'currency_position ' => [
|
27 |
+
'type' => 'string',
|
28 |
'description' => __( 'The position of the currency symbol in the cost string', 'tribe-common' ),
|
29 |
+
'enum' => [ 'prefix', 'postfix' ],
|
30 |
+
],
|
31 |
+
'values' => [
|
32 |
+
'type' => 'array',
|
33 |
+
'items' => [ 'type' => 'integer' ],
|
34 |
'description' => __( 'A sorted array of all the numeric values for the cost', 'tribe-common' ),
|
35 |
+
],
|
36 |
+
],
|
37 |
+
];
|
38 |
|
39 |
/**
|
40 |
* Filters the Swagger documentation generated for a cost details in the TEC REST API.
|
common/src/Tribe/Documentation/Swagger/Date_Details_Definition_Provider.php
CHANGED
@@ -16,35 +16,35 @@ class Tribe__Documentation__Swagger__Date_Details_Definition_Provider
|
|
16 |
* @return array An array description of a Swagger supported component.
|
17 |
*/
|
18 |
public function get_documentation() {
|
19 |
-
$documentation =
|
20 |
'type' => 'object',
|
21 |
-
'properties' =>
|
22 |
-
'year' =>
|
23 |
-
'type'
|
24 |
'description' => __( 'The date year', 'tribe-common' ),
|
25 |
-
|
26 |
-
'month'
|
27 |
-
'type'
|
28 |
'description' => __( 'The date month', 'tribe-common' ),
|
29 |
-
|
30 |
-
'day'
|
31 |
-
'type'
|
32 |
'description' => __( 'The date day', 'tribe-common' ),
|
33 |
-
|
34 |
-
'hour'
|
35 |
-
'type'
|
36 |
'description' => __( 'The date hour', 'tribe-common' ),
|
37 |
-
|
38 |
-
'minutes' =>
|
39 |
-
'type'
|
40 |
'description' => __( 'The date minutes', 'tribe-common' ),
|
41 |
-
|
42 |
-
'seconds' =>
|
43 |
-
'type'
|
44 |
'description' => __( 'The date seconds', 'tribe-common' ),
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
|
49 |
/**
|
50 |
* Filters the Swagger documentation generated for an date details in the TEC REST API.
|
16 |
* @return array An array description of a Swagger supported component.
|
17 |
*/
|
18 |
public function get_documentation() {
|
19 |
+
$documentation = [
|
20 |
'type' => 'object',
|
21 |
+
'properties' => [
|
22 |
+
'year' => [
|
23 |
+
'type' => 'integer',
|
24 |
'description' => __( 'The date year', 'tribe-common' ),
|
25 |
+
],
|
26 |
+
'month' => [
|
27 |
+
'type' => 'integer',
|
28 |
'description' => __( 'The date month', 'tribe-common' ),
|
29 |
+
],
|
30 |
+
'day' => [
|
31 |
+
'type' => 'integer',
|
32 |
'description' => __( 'The date day', 'tribe-common' ),
|
33 |
+
],
|
34 |
+
'hour' => [
|
35 |
+
'type' => 'integer',
|
36 |
'description' => __( 'The date hour', 'tribe-common' ),
|
37 |
+
],
|
38 |
+
'minutes' => [
|
39 |
+
'type' => 'integer',
|
40 |
'description' => __( 'The date minutes', 'tribe-common' ),
|
41 |
+
],
|
42 |
+
'seconds' => [
|
43 |
+
'type' => 'integer',
|
44 |
'description' => __( 'The date seconds', 'tribe-common' ),
|
45 |
+
],
|
46 |
+
],
|
47 |
+
];
|
48 |
|
49 |
/**
|
50 |
* Filters the Swagger documentation generated for an date details in the TEC REST API.
|
common/src/Tribe/Documentation/Swagger/Image_Definition_Provider.php
CHANGED
@@ -16,39 +16,39 @@ class Tribe__Documentation__Swagger__Image_Definition_Provider
|
|
16 |
* @return array An array description of a Swagger supported component.
|
17 |
*/
|
18 |
public function get_documentation() {
|
19 |
-
$documentation =
|
20 |
'type' => 'object',
|
21 |
-
'properties' =>
|
22 |
-
'url' =>
|
23 |
'type' => 'string',
|
24 |
'format' => 'uri',
|
25 |
'description' => __( 'The URL to the full size version of the image', 'tribe-common' ),
|
26 |
-
|
27 |
-
'id' =>
|
28 |
'type' => 'integer',
|
29 |
'description' => __( 'The image WordPress post ID', 'tribe-common' ),
|
30 |
-
|
31 |
-
'extension' =>
|
32 |
'type' => 'string',
|
33 |
'description' => __( 'The image file extension', 'tribe-common' ),
|
34 |
-
|
35 |
-
'width' =>
|
36 |
'type' => 'integer',
|
37 |
'description' => __( 'The image natural width in pixels', 'tribe-common' ),
|
38 |
-
|
39 |
-
'height' =>
|
40 |
'type' => 'integer',
|
41 |
'description' => __( 'The image natural height in pixels', 'tribe-common' ),
|
42 |
-
|
43 |
-
'sizes' =>
|
44 |
'type' => 'array',
|
45 |
'description' => __( 'The details about each size available for the image', 'tribe-common' ),
|
46 |
-
'items' =>
|
47 |
'$ref' => '#/components/schemas/ImageSize',
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
|
53 |
/**
|
54 |
* Filters the Swagger documentation generated for an image deatails in the TEC REST API.
|
16 |
* @return array An array description of a Swagger supported component.
|
17 |
*/
|
18 |
public function get_documentation() {
|
19 |
+
$documentation = [
|
20 |
'type' => 'object',
|
21 |
+
'properties' => [
|
22 |
+
'url' => [
|
23 |
'type' => 'string',
|
24 |
'format' => 'uri',
|
25 |
'description' => __( 'The URL to the full size version of the image', 'tribe-common' ),
|
26 |
+
],
|
27 |
+
'id' => [
|
28 |
'type' => 'integer',
|
29 |
'description' => __( 'The image WordPress post ID', 'tribe-common' ),
|
30 |
+
],
|
31 |
+
'extension' => [
|
32 |
'type' => 'string',
|
33 |
'description' => __( 'The image file extension', 'tribe-common' ),
|
34 |
+
],
|
35 |
+
'width' => [
|
36 |
'type' => 'integer',
|
37 |
'description' => __( 'The image natural width in pixels', 'tribe-common' ),
|
38 |
+
],
|
39 |
+
'height' => [
|
40 |
'type' => 'integer',
|
41 |
'description' => __( 'The image natural height in pixels', 'tribe-common' ),
|
42 |
+
],
|
43 |
+
'sizes' => [
|
44 |
'type' => 'array',
|
45 |
'description' => __( 'The details about each size available for the image', 'tribe-common' ),
|
46 |
+
'items' => [
|
47 |
'$ref' => '#/components/schemas/ImageSize',
|
48 |
+
],
|
49 |
+
],
|
50 |
+
],
|
51 |
+
];
|
52 |
|
53 |
/**
|
54 |
* Filters the Swagger documentation generated for an image deatails in the TEC REST API.
|
common/src/Tribe/Documentation/Swagger/Image_Size_Definition_Provider.php
CHANGED
@@ -16,28 +16,28 @@ class Tribe__Documentation__Swagger__Image_Size_Definition_Provider
|
|
16 |
* @return array An array description of a Swagger supported component.
|
17 |
*/
|
18 |
public function get_documentation() {
|
19 |
-
$documentation =
|
20 |
'type' => 'object',
|
21 |
-
'properties' =>
|
22 |
-
'width'
|
23 |
-
'type'
|
24 |
'description' => __( 'The image width in pixels in the specified size', 'tribe-common' ),
|
25 |
-
|
26 |
-
'height'
|
27 |
-
'type'
|
28 |
'description' => __( 'The image height in pixels in the specified size', 'tribe-common' ),
|
29 |
-
|
30 |
-
'mime-type' =>
|
31 |
-
'type'
|
32 |
'description' => __( 'The image mime-type', 'tribe-common' ),
|
33 |
-
|
34 |
-
'url'
|
35 |
-
'type'
|
36 |
-
'format'
|
37 |
'description' => __( 'The link to the image in the specified size on the site', 'tribe-common' ),
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
|
42 |
/**
|
43 |
* Filters the Swagger documentation generated for an image size in the TEC REST API.
|
16 |
* @return array An array description of a Swagger supported component.
|
17 |
*/
|
18 |
public function get_documentation() {
|
19 |
+
$documentation = [
|
20 |
'type' => 'object',
|
21 |
+
'properties' => [
|
22 |
+
'width' => [
|
23 |
+
'type' => 'integer',
|
24 |
'description' => __( 'The image width in pixels in the specified size', 'tribe-common' ),
|
25 |
+
],
|
26 |
+
'height' => [
|
27 |
+
'type' => 'integer',
|
28 |
'description' => __( 'The image height in pixels in the specified size', 'tribe-common' ),
|
29 |
+
],
|
30 |
+
'mime-type' => [
|
31 |
+
'type' => 'string',
|
32 |
'description' => __( 'The image mime-type', 'tribe-common' ),
|
33 |
+
],
|
34 |
+
'url' => [
|
35 |
+
'type' => 'string',
|
36 |
+
'format' => 'uri',
|
37 |
'description' => __( 'The link to the image in the specified size on the site', 'tribe-common' ),
|
38 |
+
],
|
39 |
+
],
|
40 |
+
];
|
41 |
|
42 |
/**
|
43 |
* Filters the Swagger documentation generated for an image size in the TEC REST API.
|
common/src/Tribe/Documentation/Swagger/Term_Definition_Provider.php
CHANGED
@@ -16,48 +16,48 @@ class Tribe__Documentation__Swagger__Term_Definition_Provider
|
|
16 |
* @return array An array description of a Swagger supported component.
|
17 |
*/
|
18 |
public function get_documentation() {
|
19 |
-
$documentation =
|
20 |
'type' => 'object',
|
21 |
-
'properties' =>
|
22 |
-
'id'
|
23 |
-
'type'
|
24 |
'description' => __( 'The WordPress term ID', 'tribe-common' ),
|
25 |
-
|
26 |
-
'name'
|
27 |
-
'type'
|
28 |
'description' => __( 'The term name', 'tribe-common' ),
|
29 |
-
|
30 |
-
'slug'
|
31 |
-
'type'
|
32 |
'description' => __( 'The term slug', 'tribe-common' ),
|
33 |
-
|
34 |
-
'taxonomy'
|
35 |
-
'type'
|
36 |
'description' => __( 'The taxonomy the term belongs to', 'tribe-common' ),
|
37 |
-
|
38 |
-
'description' =>
|
39 |
-
'type'
|
40 |
'description' => __( 'The term description', 'tribe-common' ),
|
41 |
-
|
42 |
-
'parent'
|
43 |
-
'type'
|
44 |
'description' => __( 'The term parent term if any', 'tribe-common' ),
|
45 |
-
|
46 |
-
'count'
|
47 |
-
'type'
|
48 |
'description' => __( 'The number of posts associated with the term', 'tribe-common' ),
|
49 |
-
|
50 |
-
'url'
|
51 |
-
'type'
|
52 |
'description' => __( 'The URL to the term archive page', 'tribe-common' ),
|
53 |
-
|
54 |
-
'urls'
|
55 |
-
'type'
|
56 |
-
'items'
|
57 |
'description' => __( 'A list of links to the term own, archive and parent REST URL', 'tribe-common' ),
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
|
62 |
/**
|
63 |
* Filters the Swagger documentation generated for an term in the TEC REST API.
|
16 |
* @return array An array description of a Swagger supported component.
|
17 |
*/
|
18 |
public function get_documentation() {
|
19 |
+
$documentation = [
|
20 |
'type' => 'object',
|
21 |
+
'properties' => [
|
22 |
+
'id' => [
|
23 |
+
'type' => 'integer',
|
24 |
'description' => __( 'The WordPress term ID', 'tribe-common' ),
|
25 |
+
],
|
26 |
+
'name' => [
|
27 |
+
'type' => 'string',
|
28 |
'description' => __( 'The term name', 'tribe-common' ),
|
29 |
+
],
|
30 |
+
'slug' => [
|
31 |
+
'type' => 'string',
|
32 |
'description' => __( 'The term slug', 'tribe-common' ),
|
33 |
+
],
|
34 |
+
'taxonomy' => [
|
35 |
+
'type' => 'string',
|
36 |
'description' => __( 'The taxonomy the term belongs to', 'tribe-common' ),
|
37 |
+
],
|
38 |
+
'description' => [
|
39 |
+
'type' => 'string',
|
40 |
'description' => __( 'The term description', 'tribe-common' ),
|
41 |
+
],
|
42 |
+
'parent' => [
|
43 |
+
'type' => 'integer',
|
44 |
'description' => __( 'The term parent term if any', 'tribe-common' ),
|
45 |
+
],
|
46 |
+
'count' => [
|
47 |
+
'type' => 'integer',
|
48 |
'description' => __( 'The number of posts associated with the term', 'tribe-common' ),
|
49 |
+
],
|
50 |
+
'url' => [
|
51 |
+
'type' => 'string',
|
52 |
'description' => __( 'The URL to the term archive page', 'tribe-common' ),
|
53 |
+
],
|
54 |
+
'urls' => [
|
55 |
+
'type' => 'array',
|
56 |
+
'items' => [ 'type' => 'string' ],
|
57 |
'description' => __( 'A list of links to the term own, archive and parent REST URL', 'tribe-common' ),
|
58 |
+
],
|
59 |
+
],
|
60 |
+
];
|
61 |
|
62 |
/**
|
63 |
* Filters the Swagger documentation generated for an term in the TEC REST API.
|
common/src/Tribe/Duplicate/Post.php
CHANGED
@@ -14,7 +14,7 @@ class Tribe__Duplicate__Post {
|
|
14 |
/**
|
15 |
* @var array The columns of the post table.
|
16 |
*/
|
17 |
-
public static $post_table_columns =
|
18 |
'ID',
|
19 |
'post_author',
|
20 |
'post_date',
|
@@ -38,17 +38,17 @@ class Tribe__Duplicate__Post {
|
|
38 |
'post_type',
|
39 |
'post_mime_type',
|
40 |
'comment_count',
|
41 |
-
|
42 |
|
43 |
/**
|
44 |
* @var array The post fields that should be used to find a duplicate.
|
45 |
*/
|
46 |
-
protected $post_fields =
|
47 |
|
48 |
/**
|
49 |
* @var array The custom fields that should be used to find a duplicate.
|
50 |
*/
|
51 |
-
protected $custom_fields =
|
52 |
|
53 |
/**
|
54 |
* @var Tribe__Duplicate__Strategy_Factory
|
@@ -93,7 +93,7 @@ class Tribe__Duplicate__Post {
|
|
93 |
*/
|
94 |
public function use_post_fields( array $post_fields ) {
|
95 |
if ( empty( $post_fields ) ) {
|
96 |
-
$this->post_fields =
|
97 |
|
98 |
return;
|
99 |
}
|
@@ -112,16 +112,16 @@ class Tribe__Duplicate__Post {
|
|
112 |
* @since 4.6
|
113 |
*/
|
114 |
protected function cast_to_strategy( array $fields ) {
|
115 |
-
$cast =
|
116 |
|
117 |
foreach ( $fields as $key => $value ) {
|
118 |
if ( is_numeric( $key ) ) {
|
119 |
-
$cast[ $value ] =
|
120 |
} elseif ( is_array( $value ) ) {
|
121 |
if ( ! empty( $value['match'] ) ) {
|
122 |
$cast[ $key ] = $value;
|
123 |
} else {
|
124 |
-
$cast[ $key ] = array_merge( $value,
|
125 |
}
|
126 |
}
|
127 |
}
|
@@ -291,9 +291,9 @@ class Tribe__Duplicate__Post {
|
|
291 |
/** @var wpdb $wpdb */
|
292 |
global $wpdb;
|
293 |
|
294 |
-
$where_frags
|
295 |
-
$custom_fields_where_frags =
|
296 |
-
$join
|
297 |
|
298 |
if ( ! empty( $this->post_fields ) ) {
|
299 |
$queryable_post_fields = array_intersect_key( $postarr, $this->post_fields );
|
@@ -333,10 +333,10 @@ class Tribe__Duplicate__Post {
|
|
333 |
*/
|
334 |
$join_limit = apply_filters( 'tribe_duplicate_post_join_limit', $this->join_limit, $where_frags, $this->post_type );
|
335 |
|
336 |
-
$excluded_status =
|
337 |
'trash',
|
338 |
'autodraft',
|
339 |
-
|
340 |
|
341 |
/**
|
342 |
* Filters the excluded status.
|
@@ -360,7 +360,7 @@ class Tribe__Duplicate__Post {
|
|
360 |
$post_status_conditional = $wpdb->prepare( "{$wpdb->posts}.post_status NOT IN ( {$in_string} )", $excluded_status );
|
361 |
}
|
362 |
|
363 |
-
$queries =
|
364 |
|
365 |
if ( ! empty( $join_limit ) && ! empty( $join ) ) {
|
366 |
while ( count( $join ) ) {
|
14 |
/**
|
15 |
* @var array The columns of the post table.
|
16 |
*/
|
17 |
+
public static $post_table_columns = [
|
18 |
'ID',
|
19 |
'post_author',
|
20 |
'post_date',
|
38 |
'post_type',
|
39 |
'post_mime_type',
|
40 |
'comment_count',
|
41 |
+
];
|
42 |
|
43 |
/**
|
44 |
* @var array The post fields that should be used to find a duplicate.
|
45 |
*/
|
46 |
+
protected $post_fields = [];
|
47 |
|
48 |
/**
|
49 |
* @var array The custom fields that should be used to find a duplicate.
|
50 |
*/
|
51 |
+
protected $custom_fields = [];
|
52 |
|
53 |
/**
|
54 |
* @var Tribe__Duplicate__Strategy_Factory
|
93 |
*/
|
94 |
public function use_post_fields( array $post_fields ) {
|
95 |
if ( empty( $post_fields ) ) {
|
96 |
+
$this->post_fields = [];
|
97 |
|
98 |
return;
|
99 |
}
|
112 |
* @since 4.6
|
113 |
*/
|
114 |
protected function cast_to_strategy( array $fields ) {
|
115 |
+
$cast = [];
|
116 |
|
117 |
foreach ( $fields as $key => $value ) {
|
118 |
if ( is_numeric( $key ) ) {
|
119 |
+
$cast[ $value ] = [ 'match' => 'same' ];
|
120 |
} elseif ( is_array( $value ) ) {
|
121 |
if ( ! empty( $value['match'] ) ) {
|
122 |
$cast[ $key ] = $value;
|
123 |
} else {
|
124 |
+
$cast[ $key ] = array_merge( $value, [ 'match' => 'same' ] );
|
125 |
}
|
126 |
}
|
127 |
}
|
291 |
/** @var wpdb $wpdb */
|
292 |
global $wpdb;
|
293 |
|
294 |
+
$where_frags = [];
|
295 |
+
$custom_fields_where_frags = [];
|
296 |
+
$join = [];
|
297 |
|
298 |
if ( ! empty( $this->post_fields ) ) {
|
299 |
$queryable_post_fields = array_intersect_key( $postarr, $this->post_fields );
|
333 |
*/
|
334 |
$join_limit = apply_filters( 'tribe_duplicate_post_join_limit', $this->join_limit, $where_frags, $this->post_type );
|
335 |
|
336 |
+
$excluded_status = [
|
337 |
'trash',
|
338 |
'autodraft',
|
339 |
+
];
|
340 |
|
341 |
/**
|
342 |
* Filters the excluded status.
|
360 |
$post_status_conditional = $wpdb->prepare( "{$wpdb->posts}.post_status NOT IN ( {$in_string} )", $excluded_status );
|
361 |
}
|
362 |
|
363 |
+
$queries = [];
|
364 |
|
365 |
if ( ! empty( $join_limit ) && ! empty( $join ) ) {
|
366 |
while ( count( $join ) ) {
|
common/src/Tribe/Duplicate/Strategy/Base.php
CHANGED
@@ -19,6 +19,6 @@ abstract class Tribe__Duplicate__Strategy__Base {
|
|
19 |
* @since 4.6
|
20 |
*/
|
21 |
protected function is_a_numeric_post_field( $key ) {
|
22 |
-
return in_array( $key,
|
23 |
}
|
24 |
}
|
19 |
* @since 4.6
|
20 |
*/
|
21 |
protected function is_a_numeric_post_field( $key ) {
|
22 |
+
return in_array( $key, [ 'ID', 'post_author', 'post_parent', 'menu_order', 'comment_count' ] );
|
23 |
}
|
24 |
}
|
common/src/Tribe/Duplicate/Strategy/Like.php
CHANGED
@@ -31,7 +31,7 @@ class Tribe__Duplicate__Strategy__Like
|
|
31 |
|
32 |
$frags = $this->get_where_frags( $value );
|
33 |
|
34 |
-
$where_frags =
|
35 |
foreach ( $frags as $frag ) {
|
36 |
$formatted_frag = '%' . $wpdb->esc_like( strtolower( trim( $frag ) ) ) . '%';
|
37 |
$where_frags[] = $wpdb->prepare( "{$key} LIKE %s", $formatted_frag );
|
@@ -73,7 +73,7 @@ class Tribe__Duplicate__Strategy__Like
|
|
73 |
|
74 |
$frags = $this->get_where_frags( $value );
|
75 |
|
76 |
-
$where_frags =
|
77 |
foreach ( $frags as $frag ) {
|
78 |
$formatted_frag = '%' . $wpdb->esc_like( strtolower( trim( $frag ) ) ) . '%';
|
79 |
$query = "{$table_alias}.meta_value LIKE %s";
|
31 |
|
32 |
$frags = $this->get_where_frags( $value );
|
33 |
|
34 |
+
$where_frags = [];
|
35 |
foreach ( $frags as $frag ) {
|
36 |
$formatted_frag = '%' . $wpdb->esc_like( strtolower( trim( $frag ) ) ) . '%';
|
37 |
$where_frags[] = $wpdb->prepare( "{$key} LIKE %s", $formatted_frag );
|
73 |
|
74 |
$frags = $this->get_where_frags( $value );
|
75 |
|
76 |
+
$where_frags = [ $wpdb->prepare( "{$table_alias}.meta_key = %s", $key ) ];
|
77 |
foreach ( $frags as $frag ) {
|
78 |
$formatted_frag = '%' . $wpdb->esc_like( strtolower( trim( $frag ) ) ) . '%';
|
79 |
$query = "{$table_alias}.meta_value LIKE %s";
|
common/src/Tribe/Duplicate/Strategy_Factory.php
CHANGED
@@ -8,14 +8,14 @@
|
|
8 |
* @since 4.6
|
9 |
*/
|
10 |
class Tribe__Duplicate__Strategy_Factory {
|
11 |
-
protected $strategy_map =
|
12 |
|
13 |
public function __construct() {
|
14 |
-
$strategy_map =
|
15 |
'default' => 'Tribe__Duplicate__Strategy__Same',
|
16 |
'same' => 'Tribe__Duplicate__Strategy__Same',
|
17 |
'like' => 'Tribe__Duplicate__Strategy__Like',
|
18 |
-
|
19 |
|
20 |
/**
|
21 |
* Filters the strategies managed by the strategy factory.
|
8 |
* @since 4.6
|
9 |
*/
|
10 |
class Tribe__Duplicate__Strategy_Factory {
|
11 |
+
protected $strategy_map = [];
|
12 |
|
13 |
public function __construct() {
|
14 |
+
$strategy_map = [
|
15 |
'default' => 'Tribe__Duplicate__Strategy__Same',
|
16 |
'same' => 'Tribe__Duplicate__Strategy__Same',
|
17 |
'like' => 'Tribe__Duplicate__Strategy__Like',
|
18 |
+
];
|
19 |
|
20 |
/**
|
21 |
* Filters the strategies managed by the strategy factory.
|
common/src/Tribe/Editor.php
CHANGED
@@ -91,10 +91,10 @@ class Tribe__Editor {
|
|
91 |
*
|
92 |
* @return array
|
93 |
*/
|
94 |
-
public function add_support( $args =
|
95 |
// Make sure we have the Support argument and it's an array
|
96 |
if ( ! isset( $args['supports'] ) || ! is_array( $args['supports'] ) ) {
|
97 |
-
$args['supports'] =
|
98 |
}
|
99 |
|
100 |
// Add Editor Support
|
@@ -114,13 +114,13 @@ class Tribe__Editor {
|
|
114 |
*
|
115 |
* @return array
|
116 |
*/
|
117 |
-
public function add_rest_support( $args =
|
118 |
// Blocks Editor requires REST support
|
119 |
$args['show_in_rest'] = true;
|
120 |
|
121 |
// Make sure we have the Support argument and it's an array
|
122 |
if ( ! isset( $args['supports'] ) || ! is_array( $args['supports'] ) ) {
|
123 |
-
$args['supports'] =
|
124 |
}
|
125 |
|
126 |
if ( ! in_array( 'revisions', $args['supports'] ) ) {
|
@@ -196,28 +196,30 @@ class Tribe__Editor {
|
|
196 |
* @return bool
|
197 |
*/
|
198 |
public function is_classic_option_active() {
|
199 |
-
$valid_values =
|
200 |
|
201 |
return in_array( (string) get_option( 'classic-editor-replace' ), $valid_values, true );
|
202 |
}
|
203 |
|
204 |
/**
|
205 |
-
* Detect if
|
206 |
*
|
207 |
* @since 4.8
|
208 |
*
|
209 |
* @return bool
|
210 |
*/
|
211 |
public function is_classic_editor() {
|
212 |
-
$disabled_by_plugin
|
|
|
213 |
/**
|
214 |
-
* Allow other addons to
|
215 |
*
|
216 |
* @since 4.8.5
|
217 |
*
|
218 |
* @param bool $classic_is_active Whether the classic editor should be used.
|
219 |
*/
|
220 |
-
$disabled_by_filter
|
|
|
221 |
$is_classic_editor_request = tribe_get_request_var( 'classic-editor', null );
|
222 |
|
223 |
return $is_classic_editor_request || $disabled_by_plugin || $disabled_by_filter;
|
91 |
*
|
92 |
* @return array
|
93 |
*/
|
94 |
+
public function add_support( $args = [] ) {
|
95 |
// Make sure we have the Support argument and it's an array
|
96 |
if ( ! isset( $args['supports'] ) || ! is_array( $args['supports'] ) ) {
|
97 |
+
$args['supports'] = [];
|
98 |
}
|
99 |
|
100 |
// Add Editor Support
|
114 |
*
|
115 |
* @return array
|
116 |
*/
|
117 |
+
public function add_rest_support( $args = [] ) {
|
118 |
// Blocks Editor requires REST support
|
119 |
$args['show_in_rest'] = true;
|
120 |
|
121 |
// Make sure we have the Support argument and it's an array
|
122 |
if ( ! isset( $args['supports'] ) || ! is_array( $args['supports'] ) ) {
|
123 |
+
$args['supports'] = [];
|
124 |
}
|
125 |
|
126 |
if ( ! in_array( 'revisions', $args['supports'] ) ) {
|
196 |
* @return bool
|
197 |
*/
|
198 |
public function is_classic_option_active() {
|
199 |
+
$valid_values = [ 'replace', 'classic' ];
|
200 |
|
201 |
return in_array( (string) get_option( 'classic-editor-replace' ), $valid_values, true );
|
202 |
}
|
203 |
|
204 |
/**
|
205 |
+
* Detect if the classic editor is force-activated via plugin or if it comes from a request.
|
206 |
*
|
207 |
* @since 4.8
|
208 |
*
|
209 |
* @return bool
|
210 |
*/
|
211 |
public function is_classic_editor() {
|
212 |
+
$disabled_by_plugin = $this->is_classic_plugin_active() && $this->is_classic_option_active();
|
213 |
+
|
214 |
/**
|
215 |
+
* Allow other addons to disable classic editor based on options.
|
216 |
*
|
217 |
* @since 4.8.5
|
218 |
*
|
219 |
* @param bool $classic_is_active Whether the classic editor should be used.
|
220 |
*/
|
221 |
+
$disabled_by_filter = apply_filters( 'tribe_editor_classic_is_active', false );
|
222 |
+
|
223 |
$is_classic_editor_request = tribe_get_request_var( 'classic-editor', null );
|
224 |
|
225 |
return $is_classic_editor_request || $disabled_by_plugin || $disabled_by_filter;
|
common/src/Tribe/Editor/Assets.php
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* Events Gutenberg Assets
|
4 |
*
|
@@ -12,7 +13,7 @@ class Tribe__Editor__Assets {
|
|
12 |
* @return void
|
13 |
*/
|
14 |
public function hook() {
|
15 |
-
add_action( 'tribe_plugins_loaded',
|
16 |
}
|
17 |
|
18 |
/**
|
@@ -35,12 +36,22 @@ class Tribe__Editor__Assets {
|
|
35 |
/**
|
36 |
* @todo revise this dependencies
|
37 |
*/
|
38 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
'enqueue_block_editor_assets',
|
40 |
-
|
41 |
'in_footer' => false,
|
42 |
-
'localize'
|
43 |
-
|
44 |
'name' => 'tribe_editor_config',
|
45 |
/**
|
46 |
* Array used to setup the FE with custom variables from the BE
|
@@ -50,10 +61,10 @@ class Tribe__Editor__Assets {
|
|
50 |
* @param array An array with the variables to be localized
|
51 |
*/
|
52 |
'data' => tribe_callback( 'common.editor.configuration', 'localize' ),
|
53 |
-
|
54 |
-
|
55 |
'priority' => 11,
|
56 |
-
|
57 |
);
|
58 |
|
59 |
tribe_asset(
|
@@ -63,13 +74,23 @@ class Tribe__Editor__Assets {
|
|
63 |
/**
|
64 |
* @todo revise this dependencies
|
65 |
*/
|
66 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
'enqueue_block_editor_assets',
|
68 |
-
|
69 |
'in_footer' => false,
|
70 |
-
'localize' =>
|
71 |
'priority' => 12,
|
72 |
-
|
73 |
);
|
74 |
tribe_asset(
|
75 |
$plugin,
|
@@ -78,13 +99,23 @@ class Tribe__Editor__Assets {
|
|
78 |
/**
|
79 |
* @todo revise this dependencies
|
80 |
*/
|
81 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
'enqueue_block_editor_assets',
|
83 |
-
|
84 |
'in_footer' => false,
|
85 |
-
'localize' =>
|
86 |
'priority' => 13,
|
87 |
-
|
88 |
);
|
89 |
tribe_asset(
|
90 |
$plugin,
|
@@ -93,13 +124,23 @@ class Tribe__Editor__Assets {
|
|
93 |
/**
|
94 |
* @todo revise this dependencies
|
95 |
*/
|
96 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
'enqueue_block_editor_assets',
|
98 |
-
|
99 |
'in_footer' => false,
|
100 |
-
'localize' =>
|
101 |
'priority' => 14,
|
102 |
-
|
103 |
);
|
104 |
tribe_asset(
|
105 |
$plugin,
|
@@ -108,7 +149,7 @@ class Tribe__Editor__Assets {
|
|
108 |
/**
|
109 |
* @todo revise this dependencies
|
110 |
*/
|
111 |
-
|
112 |
'react',
|
113 |
'react-dom',
|
114 |
'wp-components',
|
@@ -118,13 +159,13 @@ class Tribe__Editor__Assets {
|
|
118 |
'wp-i18n',
|
119 |
'wp-element',
|
120 |
'wp-editor',
|
121 |
-
|
122 |
'enqueue_block_editor_assets',
|
123 |
-
|
124 |
'in_footer' => false,
|
125 |
-
'localize' =>
|
126 |
'priority' => 15,
|
127 |
-
|
128 |
);
|
129 |
tribe_asset(
|
130 |
$plugin,
|
@@ -133,13 +174,23 @@ class Tribe__Editor__Assets {
|
|
133 |
/**
|
134 |
* @todo revise this dependencies
|
135 |
*/
|
136 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
137 |
'enqueue_block_editor_assets',
|
138 |
-
|
139 |
'in_footer' => false,
|
140 |
-
'localize' =>
|
141 |
'priority' => 16,
|
142 |
-
|
143 |
);
|
144 |
tribe_asset(
|
145 |
$plugin,
|
@@ -148,7 +199,7 @@ class Tribe__Editor__Assets {
|
|
148 |
/**
|
149 |
* @todo revise this dependencies
|
150 |
*/
|
151 |
-
|
152 |
'react',
|
153 |
'react-dom',
|
154 |
'wp-components',
|
@@ -158,13 +209,13 @@ class Tribe__Editor__Assets {
|
|
158 |
'wp-i18n',
|
159 |
'wp-element',
|
160 |
'wp-editor',
|
161 |
-
|
162 |
'enqueue_block_editor_assets',
|
163 |
-
|
164 |
'in_footer' => false,
|
165 |
-
'localize' =>
|
166 |
'priority' => 17,
|
167 |
-
|
168 |
);
|
169 |
/**
|
170 |
* @todo: figure out why element styles are loading for tickets but not events.
|
@@ -176,7 +227,7 @@ class Tribe__Editor__Assets {
|
|
176 |
/**
|
177 |
* @todo revise this dependencies
|
178 |
*/
|
179 |
-
|
180 |
'react',
|
181 |
'react-dom',
|
182 |
'wp-components',
|
@@ -186,23 +237,23 @@ class Tribe__Editor__Assets {
|
|
186 |
'wp-i18n',
|
187 |
'wp-element',
|
188 |
'wp-editor',
|
189 |
-
|
190 |
'enqueue_block_editor_assets',
|
191 |
-
|
192 |
'in_footer' => false,
|
193 |
-
'localize' =>
|
194 |
'priority' => 17,
|
195 |
-
|
196 |
);
|
197 |
tribe_asset(
|
198 |
$plugin,
|
199 |
'tribe-common-gutenberg-elements-styles',
|
200 |
'app/elements.css',
|
201 |
-
|
202 |
'enqueue_block_editor_assets',
|
203 |
-
|
204 |
-
'in_footer'
|
205 |
-
|
206 |
);
|
207 |
}
|
208 |
}
|
1 |
<?php
|
2 |
+
|
3 |
/**
|
4 |
* Events Gutenberg Assets
|
5 |
*
|
13 |
* @return void
|
14 |
*/
|
15 |
public function hook() {
|
16 |
+
add_action( 'tribe_plugins_loaded', [ $this, 'register' ] );
|
17 |
}
|
18 |
|
19 |
/**
|
36 |
/**
|
37 |
* @todo revise this dependencies
|
38 |
*/
|
39 |
+
[
|
40 |
+
'react',
|
41 |
+
'react-dom',
|
42 |
+
'wp-components',
|
43 |
+
'wp-api',
|
44 |
+
'wp-api-request',
|
45 |
+
'wp-blocks',
|
46 |
+
'wp-i18n',
|
47 |
+
'wp-element',
|
48 |
+
'wp-editor',
|
49 |
+
],
|
50 |
'enqueue_block_editor_assets',
|
51 |
+
[
|
52 |
'in_footer' => false,
|
53 |
+
'localize' => [
|
54 |
+
[
|
55 |
'name' => 'tribe_editor_config',
|
56 |
/**
|
57 |
* Array used to setup the FE with custom variables from the BE
|
61 |
* @param array An array with the variables to be localized
|
62 |
*/
|
63 |
'data' => tribe_callback( 'common.editor.configuration', 'localize' ),
|
64 |
+
],
|
65 |
+
],
|
66 |
'priority' => 11,
|
67 |
+
]
|
68 |
);
|
69 |
|
70 |
tribe_asset(
|
74 |
/**
|
75 |
* @todo revise this dependencies
|
76 |
*/
|
77 |
+
[
|
78 |
+
'react',
|
79 |
+
'react-dom',
|
80 |
+
'wp-components',
|
81 |
+
'wp-api',
|
82 |
+
'wp-api-request',
|
83 |
+
'wp-blocks',
|
84 |
+
'wp-i18n',
|
85 |
+
'wp-element',
|
86 |
+
'wp-editor',
|
87 |
+
],
|
88 |
'enqueue_block_editor_assets',
|
89 |
+
[
|
90 |
'in_footer' => false,
|
91 |
+
'localize' => [],
|
92 |
'priority' => 12,
|
93 |
+
]
|
94 |
);
|
95 |
tribe_asset(
|
96 |
$plugin,
|
99 |
/**
|
100 |
* @todo revise this dependencies
|
101 |
*/
|
102 |
+
[
|
103 |
+
'react',
|
104 |
+
'react-dom',
|
105 |
+
'wp-components',
|
106 |
+
'wp-api',
|
107 |
+
'wp-api-request',
|
108 |
+
'wp-blocks',
|
109 |
+
'wp-i18n',
|
110 |
+
'wp-element',
|
111 |
+
'wp-editor',
|
112 |
+
],
|
113 |
'enqueue_block_editor_assets',
|
114 |
+
[
|
115 |
'in_footer' => false,
|
116 |
+
'localize' => [],
|
117 |
'priority' => 13,
|
118 |
+
]
|
119 |
);
|
120 |
tribe_asset(
|
121 |
$plugin,
|
124 |
/**
|
125 |
* @todo revise this dependencies
|
126 |
*/
|
127 |
+
[
|
128 |
+
'react',
|
129 |
+
'react-dom',
|
130 |
+
'wp-components',
|
131 |
+
'wp-api',
|
132 |
+
'wp-api-request',
|
133 |
+
'wp-blocks',
|
134 |
+
'wp-i18n',
|
135 |
+
'wp-element',
|
136 |
+
'wp-editor',
|
137 |
+
],
|
138 |
'enqueue_block_editor_assets',
|
139 |
+
[
|
140 |
'in_footer' => false,
|
141 |
+
'localize' => [],
|
142 |
'priority' => 14,
|
143 |
+
]
|
144 |
);
|
145 |
tribe_asset(
|
146 |
$plugin,
|
149 |
/**
|
150 |
* @todo revise this dependencies
|
151 |
*/
|
152 |
+
[
|
153 |
'react',
|
154 |
'react-dom',
|
155 |
'wp-components',
|
159 |
'wp-i18n',
|
160 |
'wp-element',
|
161 |
'wp-editor',
|
162 |
+
],
|
163 |
'enqueue_block_editor_assets',
|
164 |
+
[
|
165 |
'in_footer' => false,
|
166 |
+
'localize' => [],
|
167 |
'priority' => 15,
|
168 |
+
]
|
169 |
);
|
170 |
tribe_asset(
|
171 |
$plugin,
|
174 |
/**
|
175 |
* @todo revise this dependencies
|
176 |
*/
|
177 |
+
[
|
178 |
+
'react',
|
179 |
+
'react-dom',
|
180 |
+
'wp-components',
|
181 |
+
'wp-api',
|
182 |
+
'wp-api-request',
|
183 |
+
'wp-blocks',
|
184 |
+
'wp-i18n',
|
185 |
+
'wp-element',
|
186 |
+
'wp-editor',
|
187 |
+
],
|
188 |
'enqueue_block_editor_assets',
|
189 |
+
[
|
190 |
'in_footer' => false,
|
191 |
+
'localize' => [],
|
192 |
'priority' => 16,
|
193 |
+
]
|
194 |
);
|
195 |
tribe_asset(
|
196 |
$plugin,
|
199 |
/**
|
200 |
* @todo revise this dependencies
|
201 |
*/
|
202 |
+
[
|
203 |
'react',
|
204 |
'react-dom',
|
205 |
'wp-components',
|
209 |
'wp-i18n',
|
210 |
'wp-element',
|
211 |
'wp-editor',
|
212 |
+
],
|
213 |
'enqueue_block_editor_assets',
|
214 |
+
[
|
215 |
'in_footer' => false,
|
216 |
+
'localize' => [],
|
217 |
'priority' => 17,
|
218 |
+
]
|
219 |
);
|
220 |
/**
|
221 |
* @todo: figure out why element styles are loading for tickets but not events.
|
227 |
/**
|
228 |
* @todo revise this dependencies
|
229 |
*/
|
230 |
+
[
|
231 |
'react',
|
232 |
'react-dom',
|
233 |
'wp-components',
|
237 |
'wp-i18n',
|
238 |
'wp-element',
|
239 |
'wp-editor',
|
240 |
+
],
|
241 |
'enqueue_block_editor_assets',
|
242 |
+
[
|
243 |
'in_footer' => false,
|
244 |
+
'localize' => [],
|
245 |
'priority' => 17,
|
246 |
+
]
|
247 |
);
|
248 |
tribe_asset(
|
249 |
$plugin,
|
250 |
'tribe-common-gutenberg-elements-styles',
|
251 |
'app/elements.css',
|
252 |
+
[],
|
253 |
'enqueue_block_editor_assets',
|
254 |
+
[
|
255 |
+
'in_footer' => false,
|
256 |
+
]
|
257 |
);
|
258 |
}
|
259 |
}
|
common/src/Tribe/Editor/Blocks/Abstract.php
CHANGED
@@ -47,7 +47,7 @@ implements Tribe__Editor__Blocks__Interface {
|
|
47 |
*
|
48 |
* @return array
|
49 |
*/
|
50 |
-
public function attributes( $params =
|
51 |
|
52 |
// get the default attributes
|
53 |
$default_attributes = $this->default_attributes();
|
@@ -80,7 +80,7 @@ implements Tribe__Editor__Blocks__Interface {
|
|
80 |
*/
|
81 |
public function default_attributes() {
|
82 |
|
83 |
-
$attributes =
|
84 |
|
85 |
/**
|
86 |
* Filters the default attributes
|
@@ -102,12 +102,8 @@ implements Tribe__Editor__Blocks__Interface {
|
|
102 |
*
|
103 |
* @return string
|
104 |
*/
|
105 |
-
public function render( $attributes =
|
106 |
-
|
107 |
-
$json_string = json_encode( $attributes, JSON_PRETTY_PRINT );
|
108 |
-
} else {
|
109 |
-
$json_string = json_encode( $attributes );
|
110 |
-
}
|
111 |
|
112 |
return
|
113 |
'<pre class="tribe-placeholder-text-' . $this->name() . '">' .
|
@@ -136,13 +132,13 @@ implements Tribe__Editor__Blocks__Interface {
|
|
136 |
* @return void
|
137 |
*/
|
138 |
public function register() {
|
139 |
-
$block_args =
|
140 |
-
'render_callback' =>
|
141 |
-
|
142 |
|
143 |
register_block_type( $this->name(), $block_args );
|
144 |
|
145 |
-
add_action( 'wp_ajax_' . $this->get_ajax_action(),
|
146 |
|
147 |
$this->assets();
|
148 |
$this->hook();
|
47 |
*
|
48 |
* @return array
|
49 |
*/
|
50 |
+
public function attributes( $params = [] ) {
|
51 |
|
52 |
// get the default attributes
|
53 |
$default_attributes = $this->default_attributes();
|
80 |
*/
|
81 |
public function default_attributes() {
|
82 |
|
83 |
+
$attributes = [];
|
84 |
|
85 |
/**
|
86 |
* Filters the default attributes
|
102 |
*
|
103 |
* @return string
|
104 |
*/
|
105 |
+
public function render( $attributes = [] ) {
|
106 |
+
$json_string = json_encode( $attributes, JSON_PRETTY_PRINT );
|
|
|
|
|
|
|
|
|
107 |
|
108 |
return
|
109 |
'<pre class="tribe-placeholder-text-' . $this->name() . '">' .
|
132 |
* @return void
|
133 |
*/
|
134 |
public function register() {
|
135 |
+
$block_args = [
|
136 |
+
'render_callback' => [ $this, 'render' ],
|
137 |
+
];
|
138 |
|
139 |
register_block_type( $this->name(), $block_args );
|
140 |
|
141 |
+
add_action( 'wp_ajax_' . $this->get_ajax_action(), [ $this, 'ajax' ] );
|
142 |
|
143 |
$this->assets();
|
144 |
$this->hook();
|
common/src/Tribe/Editor/Blocks/Interface.php
CHANGED
@@ -38,7 +38,7 @@ interface Tribe__Editor__Blocks__Interface {
|
|
38 |
*
|
39 |
* @return string
|
40 |
*/
|
41 |
-
public function render( $attributes =
|
42 |
|
43 |
/**
|
44 |
* Does the registration for PHP rendering for the Block, important due to been
|
38 |
*
|
39 |
* @return string
|
40 |
*/
|
41 |
+
public function render( $attributes = [] );
|
42 |
|
43 |
/**
|
44 |
* Does the registration for PHP rendering for the Block, important due to been
|
common/src/Tribe/Editor/Configuration.php
CHANGED
@@ -16,31 +16,31 @@ class Tribe__Editor__Configuration implements Tribe__Editor__Configuration_Inter
|
|
16 |
* @return array
|
17 |
*/
|
18 |
public function localize() {
|
19 |
-
$editor_config =
|
20 |
-
'common' =>
|
21 |
'adminUrl' => admin_url(),
|
22 |
-
'timeZone' =>
|
23 |
'showTimeZone' => false,
|
24 |
'label' => $this->get_timezone_label(),
|
25 |
-
|
26 |
-
'rest' =>
|
27 |
'url' => get_rest_url(),
|
28 |
-
'nonce' =>
|
29 |
'wp_rest' => wp_create_nonce( 'wp_rest' ),
|
30 |
-
|
31 |
-
'namespaces' =>
|
32 |
'core' => 'wp/v2',
|
33 |
-
|
34 |
-
|
35 |
'dateSettings' => $this->get_date_settings(),
|
36 |
-
'constants' =>
|
37 |
'hideUpsell' => ( defined( 'TRIBE_HIDE_UPSELL' ) && TRIBE_HIDE_UPSELL ),
|
38 |
-
|
39 |
'countries' => tribe( 'languages.locations' )->get_countries(),
|
40 |
'usStates' => Tribe__View_Helpers::loadStates(),
|
41 |
-
|
42 |
'blocks' => [],
|
43 |
-
|
44 |
|
45 |
/**
|
46 |
* Filter the default configuration used to localize variables
|
@@ -76,31 +76,31 @@ class Tribe__Editor__Configuration implements Tribe__Editor__Configuration_Inter
|
|
76 |
public function get_date_settings() {
|
77 |
global $wp_locale;
|
78 |
|
79 |
-
return
|
80 |
-
'l10n' =>
|
81 |
'locale' => get_user_locale(),
|
82 |
'months' => array_values( $wp_locale->month ),
|
83 |
'monthsShort' => array_values( $wp_locale->month_abbrev ),
|
84 |
'weekdays' => array_values( $wp_locale->weekday ),
|
85 |
'weekdaysShort' => array_values( $wp_locale->weekday_abbrev ),
|
86 |
'meridiem' => (object) $wp_locale->meridiem,
|
87 |
-
'relative' =>
|
88 |
/* translators: %s: duration */
|
89 |
'future' => __( '%s from now', 'default' ),
|
90 |
/* translators: %s: duration */
|
91 |
'past' => __( '%s ago', 'default' ),
|
92 |
-
|
93 |
-
|
94 |
-
'formats' =>
|
95 |
'time' => get_option( 'time_format', __( 'g:i a', 'default' ) ),
|
96 |
'date' => get_option( 'date_format', __( 'F j, Y', 'default' ) ),
|
97 |
'dateNoYear' => __( 'F j', 'default' ),
|
98 |
'datetime' => get_option( 'date_format', __( 'F j, Y', 'default' ) ) . ' ' . get_option( 'time_format', __( 'g:i a', 'default' ) ),
|
99 |
-
|
100 |
-
'timezone' =>
|
101 |
'offset' => get_option( 'gmt_offset', 0 ),
|
102 |
'string' => $this->get_timezone_label(),
|
103 |
-
|
104 |
-
|
105 |
}
|
106 |
}
|
16 |
* @return array
|
17 |
*/
|
18 |
public function localize() {
|
19 |
+
$editor_config = [
|
20 |
+
'common' => [
|
21 |
'adminUrl' => admin_url(),
|
22 |
+
'timeZone' => [
|
23 |
'showTimeZone' => false,
|
24 |
'label' => $this->get_timezone_label(),
|
25 |
+
],
|
26 |
+
'rest' => [
|
27 |
'url' => get_rest_url(),
|
28 |
+
'nonce' => [
|
29 |
'wp_rest' => wp_create_nonce( 'wp_rest' ),
|
30 |
+
],
|
31 |
+
'namespaces' => [
|
32 |
'core' => 'wp/v2',
|
33 |
+
],
|
34 |
+
],
|
35 |
'dateSettings' => $this->get_date_settings(),
|
36 |
+
'constants' => [
|
37 |
'hideUpsell' => ( defined( 'TRIBE_HIDE_UPSELL' ) && TRIBE_HIDE_UPSELL ),
|
38 |
+
],
|
39 |
'countries' => tribe( 'languages.locations' )->get_countries(),
|
40 |
'usStates' => Tribe__View_Helpers::loadStates(),
|
41 |
+
],
|
42 |
'blocks' => [],
|
43 |
+
];
|
44 |
|
45 |
/**
|
46 |
* Filter the default configuration used to localize variables
|
76 |
public function get_date_settings() {
|
77 |
global $wp_locale;
|
78 |
|
79 |
+
return [
|
80 |
+
'l10n' => [
|
81 |
'locale' => get_user_locale(),
|
82 |
'months' => array_values( $wp_locale->month ),
|
83 |
'monthsShort' => array_values( $wp_locale->month_abbrev ),
|
84 |
'weekdays' => array_values( $wp_locale->weekday ),
|
85 |
'weekdaysShort' => array_values( $wp_locale->weekday_abbrev ),
|
86 |
'meridiem' => (object) $wp_locale->meridiem,
|
87 |
+
'relative' => [
|
88 |
/* translators: %s: duration */
|
89 |
'future' => __( '%s from now', 'default' ),
|
90 |
/* translators: %s: duration */
|
91 |
'past' => __( '%s ago', 'default' ),
|
92 |
+
],
|
93 |
+
],
|
94 |
+
'formats' => [
|
95 |
'time' => get_option( 'time_format', __( 'g:i a', 'default' ) ),
|
96 |
'date' => get_option( 'date_format', __( 'F j, Y', 'default' ) ),
|
97 |
'dateNoYear' => __( 'F j', 'default' ),
|
98 |
'datetime' => get_option( 'date_format', __( 'F j, Y', 'default' ) ) . ' ' . get_option( 'time_format', __( 'g:i a', 'default' ) ),
|
99 |
+
],
|
100 |
+
'timezone' => [
|
101 |
'offset' => get_option( 'gmt_offset', 0 ),
|
102 |
'string' => $this->get_timezone_label(),
|
103 |
+
],
|
104 |
+
];
|
105 |
}
|
106 |
}
|
common/src/Tribe/Editor/Meta.php
CHANGED
@@ -16,13 +16,13 @@ abstract class Tribe__Editor__Meta
|
|
16 |
* @return array
|
17 |
*/
|
18 |
protected function text() {
|
19 |
-
return
|
20 |
-
'auth_callback' =>
|
21 |
'sanitize_callback' => 'sanitize_text_field',
|
22 |
'type' => 'string',
|
23 |
'single' => true,
|
24 |
'show_in_rest' => true,
|
25 |
-
|
26 |
}
|
27 |
|
28 |
/**
|
@@ -33,13 +33,13 @@ abstract class Tribe__Editor__Meta
|
|
33 |
* @return array
|
34 |
*/
|
35 |
protected function textarea() {
|
36 |
-
return
|
37 |
-
'auth_callback' =>
|
38 |
'sanitize_callback' => 'sanitize_textarea_field',
|
39 |
'type' => 'string',
|
40 |
'single' => true,
|
41 |
'show_in_rest' => true,
|
42 |
-
|
43 |
}
|
44 |
|
45 |
/**
|
@@ -50,13 +50,13 @@ abstract class Tribe__Editor__Meta
|
|
50 |
* @return array
|
51 |
*/
|
52 |
protected function url() {
|
53 |
-
return
|
54 |
-
'auth_callback' =>
|
55 |
'sanitize_callback' => 'esc_url_raw',
|
56 |
'type' => 'string',
|
57 |
'single' => true,
|
58 |
'show_in_rest' => true,
|
59 |
-
|
60 |
}
|
61 |
|
62 |
/**
|
@@ -67,13 +67,13 @@ abstract class Tribe__Editor__Meta
|
|
67 |
* @return array
|
68 |
*/
|
69 |
protected function numeric() {
|
70 |
-
return
|
71 |
-
'auth_callback' =>
|
72 |
'sanitize_callback' => 'absint',
|
73 |
'type' => 'number',
|
74 |
'single' => true,
|
75 |
'show_in_rest' => true,
|
76 |
-
|
77 |
}
|
78 |
|
79 |
/***
|
@@ -84,13 +84,13 @@ abstract class Tribe__Editor__Meta
|
|
84 |
* @return array
|
85 |
*/
|
86 |
protected function boolean() {
|
87 |
-
return
|
88 |
-
'auth_callback' =>
|
89 |
-
'sanitize_callback' =>
|
90 |
'type' => 'boolean',
|
91 |
'single' => true,
|
92 |
'show_in_rest' => true,
|
93 |
-
|
94 |
}
|
95 |
|
96 |
/**
|
@@ -101,14 +101,14 @@ abstract class Tribe__Editor__Meta
|
|
101 |
* @return array
|
102 |
*/
|
103 |
protected function numeric_array() {
|
104 |
-
return
|
105 |
'description' => __( 'Numeric Array', 'tribe-common' ),
|
106 |
-
'auth_callback' =>
|
107 |
-
'sanitize_callback' =>
|
108 |
'type' => 'number',
|
109 |
'single' => false,
|
110 |
'show_in_rest' => true,
|
111 |
-
|
112 |
}
|
113 |
|
114 |
/**
|
@@ -119,14 +119,14 @@ abstract class Tribe__Editor__Meta
|
|
119 |
* @return array
|
120 |
*/
|
121 |
protected function text_array() {
|
122 |
-
return
|
123 |
'description' => __( 'Text Array', 'tribe-common' ),
|
124 |
-
'auth_callback' =>
|
125 |
-
'sanitize_callback' =>
|
126 |
'type' => 'string',
|
127 |
'single' => false,
|
128 |
'show_in_rest' => true,
|
129 |
-
|
130 |
}
|
131 |
|
132 |
/**
|
16 |
* @return array
|
17 |
*/
|
18 |
protected function text() {
|
19 |
+
return [
|
20 |
+
'auth_callback' => [ $this, 'auth_callback' ],
|
21 |
'sanitize_callback' => 'sanitize_text_field',
|
22 |
'type' => 'string',
|
23 |
'single' => true,
|
24 |
'show_in_rest' => true,
|
25 |
+
];
|
26 |
}
|
27 |
|
28 |
/**
|
33 |
* @return array
|
34 |
*/
|
35 |
protected function textarea() {
|
36 |
+
return [
|
37 |
+
'auth_callback' => [ $this, 'auth_callback' ],
|
38 |
'sanitize_callback' => 'sanitize_textarea_field',
|
39 |
'type' => 'string',
|
40 |
'single' => true,
|
41 |
'show_in_rest' => true,
|
42 |
+
];
|
43 |
}
|
44 |
|
45 |
/**
|
50 |
* @return array
|
51 |
*/
|
52 |
protected function url() {
|
53 |
+
return [
|
54 |
+
'auth_callback' => [ $this, 'auth_callback' ],
|
55 |
'sanitize_callback' => 'esc_url_raw',
|
56 |
'type' => 'string',
|
57 |
'single' => true,
|
58 |
'show_in_rest' => true,
|
59 |
+
];
|
60 |
}
|
61 |
|
62 |
/**
|
67 |
* @return array
|
68 |
*/
|
69 |
protected function numeric() {
|
70 |
+
return [
|
71 |
+
'auth_callback' => [ $this, 'auth_callback' ],
|
72 |
'sanitize_callback' => 'absint',
|
73 |
'type' => 'number',
|
74 |
'single' => true,
|
75 |
'show_in_rest' => true,
|
76 |
+
];
|
77 |
}
|
78 |
|
79 |
/***
|
84 |
* @return array
|
85 |
*/
|
86 |
protected function boolean() {
|
87 |
+
return [
|
88 |
+
'auth_callback' => [ $this, 'auth_callback' ],
|
89 |
+
'sanitize_callback' => [ $this, 'sanitize_boolean' ],
|
90 |
'type' => 'boolean',
|
91 |
'single' => true,
|
92 |
'show_in_rest' => true,
|
93 |
+
];
|
94 |
}
|
95 |
|
96 |
/**
|
101 |
* @return array
|
102 |
*/
|
103 |
protected function numeric_array() {
|
104 |
+
return [
|
105 |
'description' => __( 'Numeric Array', 'tribe-common' ),
|
106 |
+
'auth_callback' => [ $this, 'auth_callback' ],
|
107 |
+
'sanitize_callback' => [ $this, 'sanitize_numeric_array' ],
|
108 |
'type' => 'number',
|
109 |
'single' => false,
|
110 |
'show_in_rest' => true,
|
111 |
+
];
|
112 |
}
|
113 |
|
114 |
/**
|
119 |
* @return array
|
120 |
*/
|
121 |
protected function text_array() {
|
122 |
+
return [
|
123 |
'description' => __( 'Text Array', 'tribe-common' ),
|
124 |
+
'auth_callback' => [ $this, 'auth_callback' ],
|
125 |
+
'sanitize_callback' => [ $this, 'sanitize_text_array' ],
|
126 |
'type' => 'string',
|
127 |
'single' => false,
|
128 |
'show_in_rest' => true,
|
129 |
+
];
|
130 |
}
|
131 |
|
132 |
/**
|
common/src/Tribe/Editor/Provider.php
CHANGED
@@ -18,7 +18,7 @@ class Tribe__Editor__Provider extends tad_DI52_ServiceProvider {
|
|
18 |
return;
|
19 |
}
|
20 |
|
21 |
-
$this->container->singleton( 'editor.assets', 'Tribe__Editor__Assets',
|
22 |
|
23 |
$this->hook();
|
24 |
|
@@ -36,7 +36,7 @@ class Tribe__Editor__Provider extends tad_DI52_ServiceProvider {
|
|
36 |
*/
|
37 |
protected function hook() {
|
38 |
// Setup the registration of Blocks
|
39 |
-
add_action( 'init',
|
40 |
}
|
41 |
|
42 |
/**
|
18 |
return;
|
19 |
}
|
20 |
|
21 |
+
$this->container->singleton( 'editor.assets', 'Tribe__Editor__Assets', [ 'hook' ] );
|
22 |
|
23 |
$this->hook();
|
24 |
|
36 |
*/
|
37 |
protected function hook() {
|
38 |
// Setup the registration of Blocks
|
39 |
+
add_action( 'init', [ $this, 'register_blocks' ], 20 );
|
40 |
}
|
41 |
|
42 |
/**
|
common/src/Tribe/Editor/Utils.php
CHANGED
@@ -95,10 +95,10 @@ class Tribe__Editor__Utils {
|
|
95 |
return false;
|
96 |
}
|
97 |
|
98 |
-
return wp_update_post(
|
99 |
'ID' => $post_id,
|
100 |
'post_content' => $next_content,
|
101 |
-
|
102 |
}
|
103 |
|
104 |
/**
|
95 |
return false;
|
96 |
}
|
97 |
|
98 |
+
return wp_update_post( [
|
99 |
'ID' => $post_id,
|
100 |
'post_content' => $next_content,
|
101 |
+
] );
|
102 |
}
|
103 |
|
104 |
/**
|
common/src/Tribe/Error.php
CHANGED
@@ -7,7 +7,7 @@ class Tribe__Error {
|
|
7 |
* All the Errors Registered
|
8 |
* @var array
|
9 |
*/
|
10 |
-
private $items =
|
11 |
|
12 |
/**
|
13 |
* Static Singleton Holder
|
@@ -49,9 +49,9 @@ class Tribe__Error {
|
|
49 |
*
|
50 |
* @return WP_Error
|
51 |
*/
|
52 |
-
public function send( $indexes, $context =
|
53 |
if ( ! $this->exists( $indexes ) ) {
|
54 |
-
$indexes =
|
55 |
}
|
56 |
|
57 |
// Fetches the Errors
|
@@ -170,7 +170,7 @@ class Tribe__Error {
|
|
170 |
$variable = $variable[ $index ];
|
171 |
}
|
172 |
|
173 |
-
$return
|
174 |
$was_namespace = is_array( $variable );
|
175 |
|
176 |
/**
|
7 |
* All the Errors Registered
|
8 |
* @var array
|
9 |
*/
|
10 |
+
private $items = [];
|
11 |
|
12 |
/**
|
13 |
* Static Singleton Holder
|
49 |
*
|
50 |
* @return WP_Error
|
51 |
*/
|
52 |
+
public function send( $indexes, $context = [], $sprintf = [] ) {
|
53 |
if ( ! $this->exists( $indexes ) ) {
|
54 |
+
$indexes = [ 'unknown' ];
|
55 |
}
|
56 |
|
57 |
// Fetches the Errors
|
170 |
$variable = $variable[ $index ];
|
171 |
}
|
172 |
|
173 |
+
$return = [];
|
174 |
$was_namespace = is_array( $variable );
|
175 |
|
176 |
/**
|
common/src/Tribe/Exception.php
CHANGED
@@ -45,7 +45,7 @@ class Tribe__Exception extends Exception {
|
|
45 |
*/
|
46 |
private function get_log_type_for_exception_code( $code ) {
|
47 |
$map = array(
|
48 |
-
// @todo:
|
49 |
);
|
50 |
|
51 |
return isset( $map[ $code ] ) ? $map[ $code ] : Tribe__Log::ERROR;
|
45 |
*/
|
46 |
private function get_log_type_for_exception_code( $code ) {
|
47 |
$map = array(
|
48 |
+
// @todo [BTRIA-583]: Let's add a decent exception code to log type map here.
|
49 |
);
|
50 |
|
51 |
return isset( $map[ $code ] ) ? $map[ $code ] : Tribe__Log::ERROR;
|
common/src/Tribe/Extension.php
CHANGED
@@ -42,7 +42,7 @@ abstract class Tribe__Extension {
|
|
42 |
* resulting data is stored in this.
|
43 |
* }
|
44 |
*/
|
45 |
-
protected $args =
|
46 |
|
47 |
/**
|
48 |
* The various extension instances
|
@@ -53,7 +53,7 @@ abstract class Tribe__Extension {
|
|
53 |
* @type object $child_class_name instance
|
54 |
* }
|
55 |
*/
|
56 |
-
private static $instances =
|
57 |
|
58 |
/**
|
59 |
* Get singleton instance of child class
|
@@ -101,7 +101,7 @@ abstract class Tribe__Extension {
|
|
101 |
if ( did_action( $init_hook ) > 0 ) {
|
102 |
$this->register();
|
103 |
} else {
|
104 |
-
add_action( $init_hook,
|
105 |
}
|
106 |
}
|
107 |
|
@@ -127,7 +127,7 @@ abstract class Tribe__Extension {
|
|
127 |
* @param string|null $minimum_version Minimum acceptable version of plugin.
|
128 |
*/
|
129 |
final protected function add_required_plugin( $main_class, $minimum_version = null ) {
|
130 |
-
$this->set(
|
131 |
}
|
132 |
|
133 |
/**
|
@@ -143,7 +143,7 @@ abstract class Tribe__Extension {
|
|
143 |
$this->get_plugin_file(),
|
144 |
__( 'Tutorial', 'tribe-common' ),
|
145 |
$url,
|
146 |
-
|
147 |
);
|
148 |
}
|
149 |
|
@@ -391,7 +391,7 @@ abstract class Tribe__Extension {
|
|
391 |
|
392 |
// Class name was not set by debug_backtrace() hackery.
|
393 |
if ( null === $class_name ) {
|
394 |
-
tribe_notice( 'tribe_debug_backtrace_disabled',
|
395 |
}
|
396 |
|
397 |
return $class_name;
|
42 |
* resulting data is stored in this.
|
43 |
* }
|
44 |
*/
|
45 |
+
protected $args = [];
|
46 |
|
47 |
/**
|
48 |
* The various extension instances
|
53 |
* @type object $child_class_name instance
|
54 |
* }
|
55 |
*/
|
56 |
+
private static $instances = [];
|
57 |
|
58 |
/**
|
59 |
* Get singleton instance of child class
|
101 |
if ( did_action( $init_hook ) > 0 ) {
|
102 |
$this->register();
|
103 |
} else {
|
104 |
+
add_action( $init_hook, [ $this, 'register' ] );
|
105 |
}
|
106 |
}
|
107 |
|
127 |
* @param string|null $minimum_version Minimum acceptable version of plugin.
|
128 |
*/
|
129 |
final protected function add_required_plugin( $main_class, $minimum_version = null ) {
|
130 |
+
$this->set( [ 'requires', $main_class ], $minimum_version );
|
131 |
}
|
132 |
|
133 |
/**
|
143 |
$this->get_plugin_file(),
|
144 |
__( 'Tutorial', 'tribe-common' ),
|
145 |
$url,
|
146 |
+
[ 'class' => 'tribe-meta-link-extension' ]
|
147 |
);
|
148 |
}
|
149 |
|
391 |
|
392 |
// Class name was not set by debug_backtrace() hackery.
|
393 |
if ( null === $class_name ) {
|
394 |
+
tribe_notice( 'tribe_debug_backtrace_disabled', [ __CLASS__, 'notice_debug_backtrace' ] );
|
395 |
}
|
396 |
|
397 |
return $class_name;
|
common/src/Tribe/Extension_Loader.php
CHANGED
@@ -15,7 +15,7 @@ class Tribe__Extension_Loader {
|
|
15 |
* @param array $plugin_basename Plugin header key/value pairs.
|
16 |
* }
|
17 |
*/
|
18 |
-
private $plugin_data =
|
19 |
|
20 |
/**
|
21 |
* Class instance.
|
@@ -51,7 +51,7 @@ class Tribe__Extension_Loader {
|
|
51 |
* @return array Prefixes
|
52 |
*/
|
53 |
public static function get_extension_file_prefixes() {
|
54 |
-
$prefixes =
|
55 |
|
56 |
/**
|
57 |
* Filter which plugin folder prefixes are considered tribe extensions.
|
@@ -97,13 +97,17 @@ class Tribe__Extension_Loader {
|
|
97 |
|
98 |
// Class instantiation.
|
99 |
if ( class_exists( $p_data['ExtensionClass'] ) ) {
|
100 |
-
$extension_args =
|
101 |
'file' => $plugin_file,
|
102 |
'plugin_data' => $p_data,
|
103 |
-
|
104 |
|
105 |
// Instantiates extension instance.
|
106 |
-
$extension = call_user_func(
|
|
|
|
|
|
|
|
|
107 |
|
108 |
if ( null !== $extension ) {
|
109 |
$success = true;
|
15 |
* @param array $plugin_basename Plugin header key/value pairs.
|
16 |
* }
|
17 |
*/
|
18 |
+
private $plugin_data = [];
|
19 |
|
20 |
/**
|
21 |
* Class instance.
|
51 |
* @return array Prefixes
|
52 |
*/
|
53 |
public static function get_extension_file_prefixes() {
|
54 |
+
$prefixes = [ 'tribe-ext-' ];
|
55 |
|
56 |
/**
|
57 |
* Filter which plugin folder prefixes are considered tribe extensions.
|
97 |
|
98 |
// Class instantiation.
|
99 |
if ( class_exists( $p_data['ExtensionClass'] ) ) {
|
100 |
+
$extension_args = [
|
101 |
'file' => $plugin_file,
|
102 |
'plugin_data' => $p_data,
|
103 |
+
];
|
104 |
|
105 |
// Instantiates extension instance.
|
106 |
+
$extension = call_user_func(
|
107 |
+
[ $p_data['ExtensionClass'], 'instance' ],
|
108 |
+
$p_data['ExtensionClass'],
|
109 |
+
$extension_args
|
110 |
+
);
|
111 |
|
112 |
if ( null !== $extension ) {
|
113 |
$success = true;
|
common/src/Tribe/Field.php
CHANGED
@@ -68,7 +68,7 @@ if ( ! class_exists( 'Tribe__Field' ) ) {
|
|
68 |
public function __construct( $id, $field, $value = null ) {
|
69 |
|
70 |
// setup the defaults
|
71 |
-
$this->defaults =
|
72 |
'type' => 'html',
|
73 |
'name' => $id,
|
74 |
'fieldset_attributes' => [],
|
@@ -90,10 +90,10 @@ if ( ! class_exists( 'Tribe__Field' ) ) {
|
|
90 |
'clear_after' => true,
|
91 |
'tooltip_first' => false,
|
92 |
'allow_clear' => false,
|
93 |
-
|
94 |
|
95 |
// a list of valid field types, to prevent screwy behavior
|
96 |
-
$this->valid_field_types =
|
97 |
'heading',
|
98 |
'html',
|
99 |
'text',
|
@@ -109,7 +109,7 @@ if ( ! class_exists( 'Tribe__Field' ) ) {
|
|
109 |
'license_key',
|
110 |
'wrapped_html',
|
111 |
'email',
|
112 |
-
|
113 |
|
114 |
$this->valid_field_types = apply_filters( 'tribe_valid_field_types', $this->valid_field_types );
|
115 |
|
@@ -221,7 +221,7 @@ if ( ! class_exists( 'Tribe__Field' ) ) {
|
|
221 |
} elseif ( in_array( $this->type, $this->valid_field_types ) ) {
|
222 |
|
223 |
// the specified type exists, run the appropriate method
|
224 |
-
$field = call_user_func(
|
225 |
|
226 |
// filter the output
|
227 |
$field = apply_filters( 'tribe_field_output_' . $this->type, $field, $this->id, $this );
|
@@ -275,8 +275,8 @@ if ( ! class_exists( 'Tribe__Field' ) ) {
|
|
275 |
if ( $this->label ) {
|
276 |
if ( isset( $this->label_attributes ) ) {
|
277 |
$this->label_attributes['class'] = isset( $this->label_attributes['class'] ) ?
|
278 |
-
implode( ' ', array_merge(
|
279 |
-
|
280 |
$this->label_attributes = $this->concat_attributes( $this->label_attributes );
|
281 |
}
|
282 |
$return = sprintf( '<legend class="tribe-field-label" %s>%s</legend>', $this->label_attributes, $this->label );
|
@@ -496,10 +496,10 @@ if ( ! class_exists( 'Tribe__Field' ) ) {
|
|
496 |
* @return string the field
|
497 |
*/
|
498 |
public function wysiwyg() {
|
499 |
-
$settings =
|
500 |
'teeny' => true,
|
501 |
'wpautop' => true,
|
502 |
-
|
503 |
ob_start();
|
504 |
wp_editor( html_entity_decode( ( $this->value ) ), $this->name, $settings );
|
505 |
$editor = ob_get_clean();
|
@@ -560,7 +560,7 @@ if ( ! class_exists( 'Tribe__Field' ) ) {
|
|
560 |
|
561 |
if ( ! is_array( $this->value ) ) {
|
562 |
if ( ! empty( $this->value ) ) {
|
563 |
-
$this->value =
|
564 |
} else {
|
565 |
$this->value = [];
|
566 |
}
|
@@ -779,7 +779,7 @@ if ( ! class_exists( 'Tribe__Field' ) ) {
|
|
779 |
*
|
780 |
* Example usage:
|
781 |
*
|
782 |
-
* $attrs =
|
783 |
* printf ( '<p %s>%s</p>', tribe_concat_attributes( $attrs ), 'bar' );
|
784 |
*
|
785 |
* // <p> class="one two" style="color:red;">bar</p>
|
68 |
public function __construct( $id, $field, $value = null ) {
|
69 |
|
70 |
// setup the defaults
|
71 |
+
$this->defaults = [
|
72 |
'type' => 'html',
|
73 |
'name' => $id,
|
74 |
'fieldset_attributes' => [],
|
90 |
'clear_after' => true,
|
91 |
'tooltip_first' => false,
|
92 |
'allow_clear' => false,
|
93 |
+
];
|
94 |
|
95 |
// a list of valid field types, to prevent screwy behavior
|
96 |
+
$this->valid_field_types = [
|
97 |
'heading',
|
98 |
'html',
|
99 |
'text',
|
109 |
'license_key',
|
110 |
'wrapped_html',
|
111 |
'email',
|
112 |
+
];
|
113 |
|
114 |
$this->valid_field_types = apply_filters( 'tribe_valid_field_types', $this->valid_field_types );
|
115 |
|
221 |
} elseif ( in_array( $this->type, $this->valid_field_types ) ) {
|
222 |
|
223 |
// the specified type exists, run the appropriate method
|
224 |
+
$field = call_user_func( [ $this, $this->type ] );
|
225 |
|
226 |
// filter the output
|
227 |
$field = apply_filters( 'tribe_field_output_' . $this->type, $field, $this->id, $this );
|
275 |
if ( $this->label ) {
|
276 |
if ( isset( $this->label_attributes ) ) {
|
277 |
$this->label_attributes['class'] = isset( $this->label_attributes['class'] ) ?
|
278 |
+
implode( ' ', array_merge( [ 'tribe-field-label' ], $this->label_attributes['class'] ) ) :
|
279 |
+
[ 'tribe-field-label' ];
|
280 |
$this->label_attributes = $this->concat_attributes( $this->label_attributes );
|
281 |
}
|
282 |
$return = sprintf( '<legend class="tribe-field-label" %s>%s</legend>', $this->label_attributes, $this->label );
|
496 |
* @return string the field
|
497 |
*/
|
498 |
public function wysiwyg() {
|
499 |
+
$settings = [
|
500 |
'teeny' => true,
|
501 |
'wpautop' => true,
|
502 |
+
];
|
503 |
ob_start();
|
504 |
wp_editor( html_entity_decode( ( $this->value ) ), $this->name, $settings );
|
505 |
$editor = ob_get_clean();
|
560 |
|
561 |
if ( ! is_array( $this->value ) ) {
|
562 |
if ( ! empty( $this->value ) ) {
|
563 |
+
$this->value = [ $this->value ];
|
564 |
} else {
|
565 |
$this->value = [];
|
566 |
}
|
779 |
*
|
780 |
* Example usage:
|
781 |
*
|
782 |
+
* $attrs = [ 'class' => ['one', 'two'], 'style' => 'color:red;' ];
|
783 |
* printf ( '<p %s>%s</p>', tribe_concat_attributes( $attrs ), 'bar' );
|
784 |
*
|
785 |
* // <p> class="one two" style="color:red;">bar</p>
|
common/src/Tribe/JSON_LD/Abstract.php
CHANGED
@@ -19,14 +19,14 @@ abstract class Tribe__JSON_LD__Abstract {
|
|
19 |
*
|
20 |
* @var array
|
21 |
*/
|
22 |
-
private static $instances =
|
23 |
|
24 |
/**
|
25 |
* Holder for the Already fetched Posts
|
26 |
*
|
27 |
* @var array
|
28 |
*/
|
29 |
-
protected static $posts =
|
30 |
|
31 |
/**
|
32 |
* Holder for a post when it has multiple types
|
@@ -35,7 +35,7 @@ abstract class Tribe__JSON_LD__Abstract {
|
|
35 |
*
|
36 |
* @var array
|
37 |
*/
|
38 |
-
protected static $types =
|
39 |
|
40 |
/**
|
41 |
* The class singleton constructor.
|
@@ -72,24 +72,24 @@ abstract class Tribe__JSON_LD__Abstract {
|
|
72 |
* be generated, the `$post` parameter is not a valid post ID or object or the data
|
73 |
* for the post has been fetched already.
|
74 |
*/
|
75 |
-
public function get_data( $post = null, $args =
|
76 |
$post_id = Tribe__Main::post_id_helper( $post );
|
77 |
if ( ! $post_id ) {
|
78 |
-
return
|
79 |
}
|
80 |
|
81 |
// This prevents a JSON_LD from existing twice one the same page
|
82 |
if ( $this->exists( $post_id ) && $this->type_exists( $post_id, $this->type ) ) {
|
83 |
-
return
|
84 |
}
|
85 |
|
86 |
$post = get_post( $post_id );
|
87 |
|
88 |
if ( empty( $post->ID ) ) {
|
89 |
-
return
|
90 |
}
|
91 |
|
92 |
-
$data = (object)
|
93 |
|
94 |
// We may need to prevent the context to be triggered
|
95 |
if ( ! isset( $args['context'] ) || false !== $args['context'] ) {
|
@@ -112,7 +112,7 @@ abstract class Tribe__JSON_LD__Abstract {
|
|
112 |
|
113 |
// Index by ID: this will allow filter code to identify the actual event being referred to
|
114 |
// without injecting an additional property
|
115 |
-
return
|
116 |
}
|
117 |
|
118 |
/**
|
@@ -149,7 +149,7 @@ abstract class Tribe__JSON_LD__Abstract {
|
|
149 |
*
|
150 |
* @return string
|
151 |
*/
|
152 |
-
public function get_markup( $post = null, $args =
|
153 |
$data = $this->get_data( $post, $args );
|
154 |
$type = strtolower( esc_attr( $this->type ) );
|
155 |
$this->set_type( $post, $type );
|
@@ -182,7 +182,7 @@ abstract class Tribe__JSON_LD__Abstract {
|
|
182 |
return ! empty( $html ) ? implode( "\r\n", $html ) : '';
|
183 |
}
|
184 |
|
185 |
-
public function markup( $post = null, $args =
|
186 |
$html = $this->get_markup( $post, $args );
|
187 |
|
188 |
/**
|
@@ -296,7 +296,7 @@ abstract class Tribe__JSON_LD__Abstract {
|
|
296 |
}
|
297 |
|
298 |
if ( empty( self::$types[ $id ] ) ) {
|
299 |
-
self::$types[ $id ] =
|
300 |
} else {
|
301 |
self::$types[ $id ][] = $this->type;
|
302 |
}
|
@@ -343,8 +343,8 @@ abstract class Tribe__JSON_LD__Abstract {
|
|
343 |
* Added for testing purposes.
|
344 |
*/
|
345 |
public static function unregister_all() {
|
346 |
-
self::$posts =
|
347 |
-
self::$types =
|
348 |
}
|
349 |
|
350 |
/**
|
19 |
*
|
20 |
* @var array
|
21 |
*/
|
22 |
+
private static $instances = [];
|
23 |
|
24 |
/**
|
25 |
* Holder for the Already fetched Posts
|
26 |
*
|
27 |
* @var array
|
28 |
*/
|
29 |
+
protected static $posts = [];
|
30 |
|
31 |
/**
|
32 |
* Holder for a post when it has multiple types
|
35 |
*
|
36 |
* @var array
|
37 |
*/
|
38 |
+
protected static $types = [];
|
39 |
|
40 |
/**
|
41 |
* The class singleton constructor.
|
72 |
* be generated, the `$post` parameter is not a valid post ID or object or the data
|
73 |
* for the post has been fetched already.
|
74 |
*/
|
75 |
+
public function get_data( $post = null, $args = [] ) {
|
76 |
$post_id = Tribe__Main::post_id_helper( $post );
|
77 |
if ( ! $post_id ) {
|
78 |
+
return [];
|
79 |
}
|
80 |
|
81 |
// This prevents a JSON_LD from existing twice one the same page
|
82 |
if ( $this->exists( $post_id ) && $this->type_exists( $post_id, $this->type ) ) {
|
83 |
+
return [];
|
84 |
}
|
85 |
|
86 |
$post = get_post( $post_id );
|
87 |
|
88 |
if ( empty( $post->ID ) ) {
|
89 |
+
return [];
|
90 |
}
|
91 |
|
92 |
+
$data = (object) [];
|
93 |
|
94 |
// We may need to prevent the context to be triggered
|
95 |
if ( ! isset( $args['context'] ) || false !== $args['context'] ) {
|
112 |
|
113 |
// Index by ID: this will allow filter code to identify the actual event being referred to
|
114 |
// without injecting an additional property
|
115 |
+
return [ $post->ID => $data ];
|
116 |
}
|
117 |
|
118 |
/**
|
149 |
*
|
150 |
* @return string
|
151 |
*/
|
152 |
+
public function get_markup( $post = null, $args = [] ) {
|
153 |
$data = $this->get_data( $post, $args );
|
154 |
$type = strtolower( esc_attr( $this->type ) );
|
155 |
$this->set_type( $post, $type );
|
182 |
return ! empty( $html ) ? implode( "\r\n", $html ) : '';
|
183 |
}
|
184 |
|
185 |
+
public function markup( $post = null, $args = [] ) {
|
186 |
$html = $this->get_markup( $post, $args );
|
187 |
|
188 |
/**
|
296 |
}
|
297 |
|
298 |
if ( empty( self::$types[ $id ] ) ) {
|
299 |
+
self::$types[ $id ] = [ $this->type ];
|
300 |
} else {
|
301 |
self::$types[ $id ][] = $this->type;
|
302 |
}
|
343 |
* Added for testing purposes.
|
344 |
*/
|
345 |
public static function unregister_all() {
|
346 |
+
self::$posts = [];
|
347 |
+
self::$types = [];
|
348 |
}
|
349 |
|
350 |
/**
|
common/src/Tribe/Languages/Locations.php
CHANGED
@@ -23,7 +23,7 @@ class Tribe__Languages__Locations {
|
|
23 |
* }
|
24 |
*/
|
25 |
public function get_countries() {
|
26 |
-
return tribe( 'cache' )->get( 'tribe_country_list', '',
|
27 |
}
|
28 |
|
29 |
/**
|
@@ -38,7 +38,7 @@ class Tribe__Languages__Locations {
|
|
38 |
* }
|
39 |
*/
|
40 |
public function get_us_states() {
|
41 |
-
return tribe( 'cache' )->get( 'tribe_us_states_list', '',
|
42 |
}
|
43 |
|
44 |
/**
|
@@ -51,7 +51,7 @@ class Tribe__Languages__Locations {
|
|
51 |
* }
|
52 |
*/
|
53 |
public function build_country_array() {
|
54 |
-
$countries =
|
55 |
'US' => esc_html__( 'United States', 'tribe-common' ),
|
56 |
'AF' => esc_html__( 'Afghanistan', 'tribe-common' ),
|
57 |
'AX' => esc_html__( 'Åland Islands', 'tribe-common' ),
|
@@ -295,7 +295,7 @@ class Tribe__Languages__Locations {
|
|
295 |
'YE' => esc_html__( 'Yemen', 'tribe-common' ),
|
296 |
'ZM' => esc_html__( 'Zambia', 'tribe-common' ),
|
297 |
'ZW' => esc_html__( 'Zimbabwe', 'tribe-common' ),
|
298 |
-
|
299 |
|
300 |
// Perform a natural sort, ensures the countries are in the expected order even once translated.
|
301 |
natsort( $countries );
|
@@ -320,7 +320,7 @@ class Tribe__Languages__Locations {
|
|
320 |
* }
|
321 |
*/
|
322 |
public function build_us_states_array() {
|
323 |
-
$states =
|
324 |
'AL' => esc_html__( 'Alabama', 'tribe-common' ),
|
325 |
'AK' => esc_html__( 'Alaska', 'tribe-common' ),
|
326 |
'AZ' => esc_html__( 'Arizona', 'tribe-common' ),
|
@@ -331,7 +331,7 @@ class Tribe__Languages__Locations {
|
|
331 |
'DE' => esc_html__( 'Delaware', 'tribe-common' ),
|
332 |
'DC' => esc_html__( 'District of Columbia', 'tribe-common' ),
|
333 |
'FL' => esc_html__( 'Florida', 'tribe-common' ),
|
334 |
-
'GA' => esc_html_x( 'Georgia', 'The US state Georgia','tribe-common' ),
|
335 |
'HI' => esc_html__( 'Hawaii', 'tribe-common' ),
|
336 |
'ID' => esc_html__( 'Idaho', 'tribe-common' ),
|
337 |
'IL' => esc_html__( 'Illinois', 'tribe-common' ),
|
@@ -372,7 +372,7 @@ class Tribe__Languages__Locations {
|
|
372 |
'WV' => esc_html__( 'West Virginia', 'tribe-common' ),
|
373 |
'WI' => esc_html__( 'Wisconsin', 'tribe-common' ),
|
374 |
'WY' => esc_html__( 'Wyoming', 'tribe-common' ),
|
375 |
-
|
376 |
|
377 |
// Perform a natural sort, ensures the states are in the expected order even once translated.
|
378 |
natsort( $states );
|
23 |
* }
|
24 |
*/
|
25 |
public function get_countries() {
|
26 |
+
return tribe( 'cache' )->get( 'tribe_country_list', '', [ $this, 'build_country_array' ] );
|
27 |
}
|
28 |
|
29 |
/**
|
38 |
* }
|
39 |
*/
|
40 |
public function get_us_states() {
|
41 |
+
return tribe( 'cache' )->get( 'tribe_us_states_list', '', [ $this, 'build_us_states_array' ] );
|
42 |
}
|
43 |
|
44 |
/**
|
51 |
* }
|
52 |
*/
|
53 |
public function build_country_array() {
|
54 |
+
$countries = [
|
55 |
'US' => esc_html__( 'United States', 'tribe-common' ),
|
56 |
'AF' => esc_html__( 'Afghanistan', 'tribe-common' ),
|
57 |
'AX' => esc_html__( 'Åland Islands', 'tribe-common' ),
|
295 |
'YE' => esc_html__( 'Yemen', 'tribe-common' ),
|
296 |
'ZM' => esc_html__( 'Zambia', 'tribe-common' ),
|
297 |
'ZW' => esc_html__( 'Zimbabwe', 'tribe-common' ),
|
298 |
+
];
|
299 |
|
300 |
// Perform a natural sort, ensures the countries are in the expected order even once translated.
|
301 |
natsort( $countries );
|
320 |
* }
|
321 |
*/
|
322 |
public function build_us_states_array() {
|
323 |
+
$states = [
|
324 |
'AL' => esc_html__( 'Alabama', 'tribe-common' ),
|
325 |
'AK' => esc_html__( 'Alaska', 'tribe-common' ),
|
326 |
'AZ' => esc_html__( 'Arizona', 'tribe-common' ),
|
331 |
'DE' => esc_html__( 'Delaware', 'tribe-common' ),
|
332 |
'DC' => esc_html__( 'District of Columbia', 'tribe-common' ),
|
333 |
'FL' => esc_html__( 'Florida', 'tribe-common' ),
|
334 |
+
'GA' => esc_html_x( 'Georgia', 'The US state Georgia', 'tribe-common' ),
|
335 |
'HI' => esc_html__( 'Hawaii', 'tribe-common' ),
|
336 |
'ID' => esc_html__( 'Idaho', 'tribe-common' ),
|
337 |
'IL' => esc_html__( 'Illinois', 'tribe-common' ),
|
372 |
'WV' => esc_html__( 'West Virginia', 'tribe-common' ),
|
373 |
'WI' => esc_html__( 'Wisconsin', 'tribe-common' ),
|
374 |
'WY' => esc_html__( 'Wyoming', 'tribe-common' ),
|
375 |
+
];
|
376 |
|
377 |
// Perform a natural sort, ensures the states are in the expected order even once translated.
|
378 |
natsort( $states );
|
common/src/Tribe/Languages/Recaptcha_Map.php
CHANGED
@@ -16,7 +16,7 @@ class Tribe__Languages__Recaptcha_Map implements Tribe__Languages__Map_Interface
|
|
16 |
* e.g. [ 'pt-BR' => 'Portuguese (Brazil)' ]
|
17 |
*/
|
18 |
public function get_supported_languages() {
|
19 |
-
return
|
20 |
'ar' => 'Arabic',
|
21 |
'af' => 'Afrikaans',
|
22 |
'am' => 'Amharic',
|
@@ -87,7 +87,7 @@ class Tribe__Languages__Recaptcha_Map implements Tribe__Languages__Map_Interface
|
|
87 |
'ur' => 'Urdu',
|
88 |
'vi' => 'Vietnamese',
|
89 |
'zu' => 'Zulu',
|
90 |
-
|
91 |
}
|
92 |
|
93 |
/**
|
16 |
* e.g. [ 'pt-BR' => 'Portuguese (Brazil)' ]
|
17 |
*/
|
18 |
public function get_supported_languages() {
|
19 |
+
return [
|
20 |
'ar' => 'Arabic',
|
21 |
'af' => 'Afrikaans',
|
22 |
'am' => 'Amharic',
|
87 |
'ur' => 'Urdu',
|
88 |
'vi' => 'Vietnamese',
|
89 |
'zu' => 'Zulu',
|
90 |
+
];
|
91 |
}
|
92 |
|
93 |
/**
|
common/src/Tribe/Log.php
CHANGED
@@ -36,7 +36,7 @@ class Tribe__Log {
|
|
36 |
*
|
37 |
* @var array
|
38 |
*/
|
39 |
-
protected $levels =
|
40 |
|
41 |
/**
|
42 |
* Alternative representation of the $levels property allowing quick look
|
@@ -44,15 +44,14 @@ class Tribe__Log {
|
|
44 |
*
|
45 |
* @var array
|
46 |
*/
|
47 |
-
protected $prioritized_levels =
|
48 |
|
49 |
/**
|
50 |
* Instantiated loggers, stored for re-use.
|
51 |
*
|
52 |
* @var array
|
53 |
*/
|
54 |
-
protected $loggers =
|
55 |
-
|
56 |
|
57 |
public function __construct() {
|
58 |
if ( is_admin() ) {
|
@@ -75,7 +74,7 @@ class Tribe__Log {
|
|
75 |
*/
|
76 |
protected function log_cleanup() {
|
77 |
$this->register_cleanup_task();
|
78 |
-
do_action( self::CLEANUP,
|
79 |
}
|
80 |
|
81 |
/**
|
@@ -163,7 +162,7 @@ class Tribe__Log {
|
|
163 |
$original_type = $type;
|
164 |
|
165 |
// some levels are really just debug information
|
166 |
-
$debug_types =
|
167 |
|
168 |
if ( in_array( $type, $debug_types ) ) {
|
169 |
$type = self::DEBUG;
|
@@ -219,10 +218,10 @@ class Tribe__Log {
|
|
219 |
* @return array
|
220 |
*/
|
221 |
public function get_logging_engines() {
|
222 |
-
$available_engines =
|
223 |
-
$bundled_engines
|
224 |
'Tribe__Log__File_Logger',
|
225 |
-
|
226 |
|
227 |
foreach ( $bundled_engines as $engine_class ) {
|
228 |
$engine = $this->get_engine( $engine_class );
|
@@ -384,12 +383,12 @@ class Tribe__Log {
|
|
384 |
*
|
385 |
* @param array $logging_levels
|
386 |
*/
|
387 |
-
$this->levels = (array) apply_filters( 'tribe_common_logging_levels',
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
}
|
394 |
|
395 |
return $this->levels;
|
36 |
*
|
37 |
* @var array
|
38 |
*/
|
39 |
+
protected $levels = [];
|
40 |
|
41 |
/**
|
42 |
* Alternative representation of the $levels property allowing quick look
|
44 |
*
|
45 |
* @var array
|
46 |
*/
|
47 |
+
protected $prioritized_levels = [];
|
48 |
|
49 |
/**
|
50 |
* Instantiated loggers, stored for re-use.
|
51 |
*
|
52 |
* @var array
|
53 |
*/
|
54 |
+
protected $loggers = [];
|
|
|
55 |
|
56 |
public function __construct() {
|
57 |
if ( is_admin() ) {
|
74 |
*/
|
75 |
protected function log_cleanup() {
|
76 |
$this->register_cleanup_task();
|
77 |
+
do_action( self::CLEANUP, [ $this, 'do_cleanup' ] );
|
78 |
}
|
79 |
|
80 |
/**
|
162 |
$original_type = $type;
|
163 |
|
164 |
// some levels are really just debug information
|
165 |
+
$debug_types = [ self::SUCCESS, self::COLORIZE ];
|
166 |
|
167 |
if ( in_array( $type, $debug_types ) ) {
|
168 |
$type = self::DEBUG;
|
218 |
* @return array
|
219 |
*/
|
220 |
public function get_logging_engines() {
|
221 |
+
$available_engines = [];
|
222 |
+
$bundled_engines = [
|
223 |
'Tribe__Log__File_Logger',
|
224 |
+
];
|
225 |
|
226 |
foreach ( $bundled_engines as $engine_class ) {
|
227 |
$engine = $this->get_engine( $engine_class );
|
383 |
*
|
384 |
* @param array $logging_levels
|
385 |
*/
|
386 |
+
$this->levels = (array) apply_filters( 'tribe_common_logging_levels', [
|
387 |
+
[ self::DISABLE, __( 'Disabled', 'tribe-common' ) ],
|
388 |
+
[ self::ERROR, __( 'Only errors', 'tribe-common' ) ],
|
389 |
+
[ self::WARNING, __( 'Warnings and errors', 'tribe-common' ) ],
|
390 |
+
[ self::DEBUG, __( 'Full debug (all events)', 'tribe-common' ) ],
|
391 |
+
] );
|
392 |
}
|
393 |
|
394 |
return $this->levels;
|
common/src/Tribe/Log/Action_Logger.php
CHANGED
@@ -78,7 +78,7 @@ class Action_Logger implements \Tribe__Log__Logger {
|
|
78 |
*
|
79 |
* @since 4.9.16
|
80 |
*/
|
81 |
-
public function retrieve( $limit = 0, array $args =
|
82 |
return [
|
83 |
[
|
84 |
'message' => __(
|
78 |
*
|
79 |
* @since 4.9.16
|
80 |
*/
|
81 |
+
public function retrieve( $limit = 0, array $args = [] ) {
|
82 |
return [
|
83 |
[
|
84 |
'message' => __(
|
common/src/Tribe/Log/Admin.php
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
<?php
|
2 |
class Tribe__Log__Admin {
|
3 |
public function __construct() {
|
4 |
-
add_action( 'wp_ajax_tribe_logging_controls',
|
5 |
-
add_action( 'init',
|
6 |
-
add_action( 'plugins_loaded',
|
7 |
}
|
8 |
|
9 |
/**
|
@@ -29,11 +29,11 @@ class Tribe__Log__Admin {
|
|
29 |
* an appropriate response.
|
30 |
*/
|
31 |
public function listen() {
|
32 |
-
$fields = wp_parse_args( $_POST,
|
33 |
'check' => '',
|
34 |
'log-level' => '',
|
35 |
'log-engine' => '',
|
36 |
-
|
37 |
|
38 |
foreach ( $fields as &$single_field ) {
|
39 |
$single_field = sanitize_text_field( $single_field );
|
@@ -58,9 +58,9 @@ class Tribe__Log__Admin {
|
|
58 |
*/
|
59 |
do_action( 'tribe_common_updated_log_settings' );
|
60 |
|
61 |
-
$data =
|
62 |
'logs' => $this->get_available_logs(),
|
63 |
-
|
64 |
|
65 |
if ( ! empty( $fields['log-view'] ) ) {
|
66 |
$data['entries'] = $this->get_log_entries( $fields['log-view'] );
|
@@ -103,17 +103,17 @@ class Tribe__Log__Admin {
|
|
103 |
Tribe__Main::instance(),
|
104 |
'tribe-common-logging-controls',
|
105 |
'admin-log-controls.js',
|
106 |
-
|
107 |
'admin_enqueue_scripts',
|
108 |
-
|
109 |
-
'conditionals' =>
|
110 |
-
'localize'
|
111 |
'name' => 'tribe_logger_data',
|
112 |
-
'data' =>
|
113 |
'check' => wp_create_nonce( 'logging-controls' ),
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
);
|
118 |
}
|
119 |
|
@@ -130,7 +130,7 @@ class Tribe__Log__Admin {
|
|
130 |
}
|
131 |
|
132 |
if ( empty( $available_logs ) ) {
|
133 |
-
return
|
134 |
}
|
135 |
|
136 |
return $available_logs;
|
@@ -145,10 +145,10 @@ class Tribe__Log__Admin {
|
|
145 |
$available_engines = $this->log_manager()->get_logging_engines();
|
146 |
|
147 |
if ( empty( $available_engines ) ) {
|
148 |
-
return
|
149 |
}
|
150 |
|
151 |
-
$engine_list =
|
152 |
|
153 |
foreach ( $available_engines as $class_name => $engine ) {
|
154 |
/**
|
@@ -171,7 +171,7 @@ class Tribe__Log__Admin {
|
|
171 |
return (array) $logger->retrieve();
|
172 |
}
|
173 |
|
174 |
-
return
|
175 |
}
|
176 |
|
177 |
/**
|
@@ -182,7 +182,7 @@ class Tribe__Log__Admin {
|
|
182 |
* @return array
|
183 |
*/
|
184 |
protected function get_logging_levels() {
|
185 |
-
$levels
|
186 |
$available_levels = $this->log_manager()->get_logging_levels();
|
187 |
|
188 |
foreach ( $available_levels as $logging_level ) {
|
@@ -201,10 +201,10 @@ class Tribe__Log__Admin {
|
|
201 |
* @return string
|
202 |
*/
|
203 |
protected function get_log_url( $log = null ) {
|
204 |
-
$query =
|
205 |
'tribe-common-log' => 'download',
|
206 |
-
'check'
|
207 |
-
|
208 |
|
209 |
$log_download_url = add_query_arg( $query, get_admin_url( null, 'edit.php' ) );
|
210 |
|
1 |
<?php
|
2 |
class Tribe__Log__Admin {
|
3 |
public function __construct() {
|
4 |
+
add_action( 'wp_ajax_tribe_logging_controls', [ $this, 'listen' ] );
|
5 |
+
add_action( 'init', [ $this, 'serve_log_downloads' ] );
|
6 |
+
add_action( 'plugins_loaded', [ $this, 'register_script' ] );
|
7 |
}
|
8 |
|
9 |
/**
|
29 |
* an appropriate response.
|
30 |
*/
|
31 |
public function listen() {
|
32 |
+
$fields = wp_parse_args( $_POST, [
|
33 |
'check' => '',
|
34 |
'log-level' => '',
|
35 |
'log-engine' => '',
|
36 |
+
] );
|
37 |
|
38 |
foreach ( $fields as &$single_field ) {
|
39 |
$single_field = sanitize_text_field( $single_field );
|
58 |
*/
|
59 |
do_action( 'tribe_common_updated_log_settings' );
|
60 |
|
61 |
+
$data = [
|
62 |
'logs' => $this->get_available_logs(),
|
63 |
+
];
|
64 |
|
65 |
if ( ! empty( $fields['log-view'] ) ) {
|
66 |
$data['entries'] = $this->get_log_entries( $fields['log-view'] );
|
103 |
Tribe__Main::instance(),
|
104 |
'tribe-common-logging-controls',
|
105 |
'admin-log-controls.js',
|
106 |
+
[ 'jquery' ],
|
107 |
'admin_enqueue_scripts',
|
108 |
+
[
|
109 |
+
'conditionals' => [ Tribe__Admin__Help_Page::instance(), 'is_current_page' ],
|
110 |
+
'localize' => (object) [
|
111 |
'name' => 'tribe_logger_data',
|
112 |
+
'data' => [
|
113 |
'check' => wp_create_nonce( 'logging-controls' ),
|
114 |
+
],
|
115 |
+
],
|
116 |
+
]
|
117 |
);
|
118 |
}
|
119 |
|
130 |
}
|
131 |
|
132 |
if ( empty( $available_logs ) ) {
|
133 |
+
return [ '' => _x( 'None currently available', 'log selector', 'tribe-common' ) ];
|
134 |
}
|
135 |
|
136 |
return $available_logs;
|
145 |
$available_engines = $this->log_manager()->get_logging_engines();
|
146 |
|
147 |
if ( empty( $available_engines ) ) {
|
148 |
+
return [ '' => _x( 'None currently available', 'log engines', 'tribe-common' ) ];
|
149 |
}
|
150 |
|
151 |
+
$engine_list = [];
|
152 |
|
153 |
foreach ( $available_engines as $class_name => $engine ) {
|
154 |
/**
|
171 |
return (array) $logger->retrieve();
|
172 |
}
|
173 |
|
174 |
+
return [];
|
175 |
}
|
176 |
|
177 |
/**
|
182 |
* @return array
|
183 |
*/
|
184 |
protected function get_logging_levels() {
|
185 |
+
$levels = [];
|
186 |
$available_levels = $this->log_manager()->get_logging_levels();
|
187 |
|
188 |
foreach ( $available_levels as $logging_level ) {
|
201 |
* @return string
|
202 |
*/
|
203 |
protected function get_log_url( $log = null ) {
|
204 |
+
$query = [
|
205 |
'tribe-common-log' => 'download',
|
206 |
+
'check' => wp_create_nonce( 'download_log' ),
|
207 |
+
];
|
208 |
|
209 |
$log_download_url = add_query_arg( $query, get_admin_url( null, 'edit.php' ) );
|
210 |
|
common/src/Tribe/Log/File_Logger.php
CHANGED
@@ -155,7 +155,7 @@ class Tribe__Log__File_Logger implements Tribe__Log__Logger {
|
|
155 |
return;
|
156 |
}
|
157 |
|
158 |
-
fputcsv( $this->handle,
|
159 |
}
|
160 |
|
161 |
/**
|
@@ -171,7 +171,7 @@ class Tribe__Log__File_Logger implements Tribe__Log__Logger {
|
|
171 |
*
|
172 |
* @return array
|
173 |
*/
|
174 |
-
public function retrieve( $limit = 0, array $args =
|
175 |
// Ensure we're in 'read' mode before we try to retrieve
|
176 |
if ( 'r' !== $this->context ) {
|
177 |
$this->set_context( 'r' );
|
@@ -179,10 +179,10 @@ class Tribe__Log__File_Logger implements Tribe__Log__Logger {
|
|
179 |
|
180 |
// Couldn't obtain the file handle? We'll bail out without causing further disruption
|
181 |
if ( ! $this->handle ) {
|
182 |
-
return
|
183 |
}
|
184 |
|
185 |
-
$rows =
|
186 |
|
187 |
while ( $current_row = fgetcsv( $this->handle ) ) {
|
188 |
if ( $limit && $limit === count( $rows ) ) {
|
@@ -212,7 +212,7 @@ class Tribe__Log__File_Logger implements Tribe__Log__Logger {
|
|
212 |
* @return array
|
213 |
*/
|
214 |
public function list_available_logs() {
|
215 |
-
$logs =
|
216 |
|
217 |
// This could be called when the log dir is not accessible.
|
218 |
if ( ! $this->is_available() ) {
|
@@ -238,13 +238,7 @@ class Tribe__Log__File_Logger implements Tribe__Log__Logger {
|
|
238 |
}
|
239 |
|
240 |
$name = $node->getFilename();
|
241 |
-
|
242 |
-
// DirectoryIterator::getExtension() is only available on 5.3.6
|
243 |
-
if ( version_compare( phpversion(), '5.3.6', '>=' ) ) {
|
244 |
-
$ext = $node->getExtension();
|
245 |
-
} else {
|
246 |
-
$ext = pathinfo( $name, PATHINFO_EXTENSION );
|
247 |
-
}
|
248 |
|
249 |
// Skip unless it is a .log file with the expected prefix
|
250 |
if ( 'log' !== $ext || 0 !== strpos( $name, $basename ) ) {
|
155 |
return;
|
156 |
}
|
157 |
|
158 |
+
fputcsv( $this->handle, [ date_i18n( 'Y-m-d H:i:s' ), $entry, $type, $src ] );
|
159 |
}
|
160 |
|
161 |
/**
|
171 |
*
|
172 |
* @return array
|
173 |
*/
|
174 |
+
public function retrieve( $limit = 0, array $args = [] ) {
|
175 |
// Ensure we're in 'read' mode before we try to retrieve
|
176 |
if ( 'r' !== $this->context ) {
|
177 |
$this->set_context( 'r' );
|
179 |
|
180 |
// Couldn't obtain the file handle? We'll bail out without causing further disruption
|
181 |
if ( ! $this->handle ) {
|
182 |
+
return [];
|
183 |
}
|
184 |
|
185 |
+
$rows = [];
|
186 |
|
187 |
while ( $current_row = fgetcsv( $this->handle ) ) {
|
188 |
if ( $limit && $limit === count( $rows ) ) {
|
212 |
* @return array
|
213 |
*/
|
214 |
public function list_available_logs() {
|
215 |
+
$logs = [];
|
216 |
|
217 |
// This could be called when the log dir is not accessible.
|
218 |
if ( ! $this->is_available() ) {
|
238 |
}
|
239 |
|
240 |
$name = $node->getFilename();
|
241 |
+
$ext = $node->getExtension();
|
|
|
|
|
|
|
|
|
|
|
|
|
242 |
|
243 |
// Skip unless it is a .log file with the expected prefix
|
244 |
if ( 'log' !== $ext || 0 !== strpos( $name, $basename ) ) {
|
common/src/Tribe/Log/Logger.php
CHANGED
@@ -43,7 +43,7 @@ interface Tribe__Log__Logger {
|
|
43 |
*
|
44 |
* @return array
|
45 |
*/
|
46 |
-
public function retrieve( $limit = 0, array $args =
|
47 |
|
48 |
/**
|
49 |
* Returns a list of currently accessible logs (current first, oldest last).
|
43 |
*
|
44 |
* @return array
|
45 |
*/
|
46 |
+
public function retrieve( $limit = 0, array $args = [] );
|
47 |
|
48 |
/**
|
49 |
* Returns a list of currently accessible logs (current first, oldest last).
|
common/src/Tribe/Log/Null_Logger.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
|
4 |
/**
|
5 |
* Class Null_Logger
|
6 |
-
*
|
7 |
* Logs nothing, reads nothing.
|
8 |
*/
|
9 |
class Tribe__Log__Null_Logger implements Tribe__Log__Logger {
|
@@ -54,8 +54,8 @@ class Tribe__Log__Null_Logger implements Tribe__Log__Logger {
|
|
54 |
*
|
55 |
* @return array
|
56 |
*/
|
57 |
-
public function retrieve( $limit = 0, array $args =
|
58 |
-
return
|
59 |
}
|
60 |
|
61 |
/**
|
@@ -78,7 +78,7 @@ class Tribe__Log__Null_Logger implements Tribe__Log__Logger {
|
|
78 |
* @return array
|
79 |
*/
|
80 |
public function list_available_logs() {
|
81 |
-
return
|
82 |
}
|
83 |
|
84 |
/**
|
3 |
|
4 |
/**
|
5 |
* Class Null_Logger
|
6 |
+
*
|
7 |
* Logs nothing, reads nothing.
|
8 |
*/
|
9 |
class Tribe__Log__Null_Logger implements Tribe__Log__Logger {
|
54 |
*
|
55 |
* @return array
|
56 |
*/
|
57 |
+
public function retrieve( $limit = 0, array $args = [] ) {
|
58 |
+
return [];
|
59 |
}
|
60 |
|
61 |
/**
|
78 |
* @return array
|
79 |
*/
|
80 |
public function list_available_logs() {
|
81 |
+
return [];
|
82 |
}
|
83 |
|
84 |
/**
|
common/src/Tribe/Log/Service_Provider.php
CHANGED
@@ -22,6 +22,8 @@ class Service_Provider extends \tad_DI52_ServiceProvider {
|
|
22 |
* @since 4.9.16
|
23 |
*/
|
24 |
public function register() {
|
|
|
|
|
25 |
$this->container->singleton( Logger::class, [ $this, 'build_logger' ] );
|
26 |
$this->container->singleton( 'monolog',
|
27 |
function () {
|
@@ -145,4 +147,30 @@ class Service_Provider extends \tad_DI52_ServiceProvider {
|
|
145 |
|
146 |
return $logging_engines;
|
147 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
148 |
}
|
22 |
* @since 4.9.16
|
23 |
*/
|
24 |
public function register() {
|
25 |
+
$this->container->singleton( 'log', $this );
|
26 |
+
$this->container->singleton( static::class, $this );
|
27 |
$this->container->singleton( Logger::class, [ $this, 'build_logger' ] );
|
28 |
$this->container->singleton( 'monolog',
|
29 |
function () {
|
147 |
|
148 |
return $logging_engines;
|
149 |
}
|
150 |
+
|
151 |
+
/**
|
152 |
+
* Enables logging in the service provider, if not already enabled.
|
153 |
+
*
|
154 |
+
* @since 4.12.15
|
155 |
+
*/
|
156 |
+
public function enable() {
|
157 |
+
if ( has_action( 'tribe_log', [ $this, 'dispatch_log' ] ) ) {
|
158 |
+
return;
|
159 |
+
}
|
160 |
+
|
161 |
+
add_action( 'tribe_log', [ $this, 'dispatch_log' ] );
|
162 |
+
}
|
163 |
+
|
164 |
+
/**
|
165 |
+
* Disables the logging functions.
|
166 |
+
*
|
167 |
+
* @since 4.12.15
|
168 |
+
*/
|
169 |
+
public function disable() {
|
170 |
+
if ( ! has_action( 'tribe_log', [ $this, 'dispatch_log' ] ) ) {
|
171 |
+
return;
|
172 |
+
}
|
173 |
+
|
174 |
+
remove_action( 'tribe_log', [ $this, 'dispatch_log' ] );
|
175 |
+
}
|
176 |
}
|
common/src/Tribe/Main.php
CHANGED
@@ -19,7 +19,7 @@ class Tribe__Main {
|
|
19 |
const OPTIONNAME = 'tribe_events_calendar_options';
|
20 |
const OPTIONNAMENETWORK = 'tribe_events_calendar_network_options';
|
21 |
|
22 |
-
const VERSION = '4.12.
|
23 |
|
24 |
const FEED_URL = 'https://theeventscalendar.com/feed/';
|
25 |
|
@@ -67,12 +67,7 @@ class Tribe__Main {
|
|
67 |
return;
|
68 |
}
|
69 |
|
70 |
-
|
71 |
-
if ( version_compare( PHP_VERSION, '5.2.17', '<=' ) ) {
|
72 |
-
require_once realpath( dirname( dirname( dirname( __FILE__ ) ) ) . '/vendor/autoload_52.php' );
|
73 |
-
} else {
|
74 |
-
require_once realpath( dirname( dirname( dirname( __FILE__ ) ) ) . '/vendor/autoload.php' );
|
75 |
-
}
|
76 |
|
77 |
// the DI container class
|
78 |
require_once dirname( __FILE__ ) . '/Container.php';
|
@@ -428,11 +423,14 @@ class Tribe__Main {
|
|
428 |
// Are we on the Plugins page?
|
429 |
$is_plugins = $helper->is_screen( 'plugins' );
|
430 |
|
|
|
|
|
|
|
431 |
// Are we viewing a generic Tribe screen?
|
432 |
// Includes: Events > Settings, Events > Help, App Shop page, and more.
|
433 |
$is_tribe_screen = $helper->is_screen();
|
434 |
|
435 |
-
return $is_post_type || $is_plugins || $is_tribe_screen;
|
436 |
}
|
437 |
|
438 |
/**
|
@@ -561,7 +559,7 @@ class Tribe__Main {
|
|
561 |
if ( 'plugins.php' !== $page ) {
|
562 |
return;
|
563 |
}
|
564 |
-
$notices = apply_filters( 'tribe_plugin_notices',
|
565 |
wp_localize_script( 'tribe-pue-notices', 'tribe_plugin_notices', $notices );
|
566 |
}
|
567 |
|
19 |
const OPTIONNAME = 'tribe_events_calendar_options';
|
20 |
const OPTIONNAMENETWORK = 'tribe_events_calendar_network_options';
|
21 |
|
22 |
+
const VERSION = '4.12.15';
|
23 |
|
24 |
const FEED_URL = 'https://theeventscalendar.com/feed/';
|
25 |
|
67 |
return;
|
68 |
}
|
69 |
|
70 |
+
require_once realpath( dirname( dirname( dirname( __FILE__ ) ) ) . '/vendor/autoload.php' );
|
|
|
|
|
|
|
|
|
|
|
71 |
|
72 |
// the DI container class
|
73 |
require_once dirname( __FILE__ ) . '/Container.php';
|
423 |
// Are we on the Plugins page?
|
424 |
$is_plugins = $helper->is_screen( 'plugins' );
|
425 |
|
426 |
+
// Are we on the Widgets page?
|
427 |
+
$is_widgets = $helper->is_screen( 'widgets' );
|
428 |
+
|
429 |
// Are we viewing a generic Tribe screen?
|
430 |
// Includes: Events > Settings, Events > Help, App Shop page, and more.
|
431 |
$is_tribe_screen = $helper->is_screen();
|
432 |
|
433 |
+
return $is_post_type || $is_plugins || $is_widgets || $is_tribe_screen;
|
434 |
}
|
435 |
|
436 |
/**
|
559 |
if ( 'plugins.php' !== $page ) {
|
560 |
return;
|
561 |
}
|
562 |
+
$notices = apply_filters( 'tribe_plugin_notices', [] );
|
563 |
wp_localize_script( 'tribe-pue-notices', 'tribe_plugin_notices', $notices );
|
564 |
}
|
565 |
|
common/src/Tribe/Meta/Chunker.php
CHANGED
@@ -63,7 +63,7 @@ class Tribe__Meta__Chunker {
|
|
63 |
/**
|
64 |
* @var array The post types supported by the Chunker.
|
65 |
*/
|
66 |
-
protected $post_types =
|
67 |
|
68 |
/**
|
69 |
* @var int The filter priority at which Chunker will operate on meta CRUD operations.
|
@@ -95,11 +95,11 @@ class Tribe__Meta__Chunker {
|
|
95 |
return;
|
96 |
}
|
97 |
|
98 |
-
add_filter( 'update_post_metadata',
|
99 |
-
add_filter( 'delete_post_metadata',
|
100 |
-
add_filter( 'add_post_metadata',
|
101 |
-
add_filter( 'get_post_metadata',
|
102 |
-
add_action( 'deleted_post',
|
103 |
}
|
104 |
|
105 |
/**
|
@@ -114,8 +114,8 @@ class Tribe__Meta__Chunker {
|
|
114 |
return;
|
115 |
}
|
116 |
|
117 |
-
$this->chunks_cache =
|
118 |
-
$this->post_ids_cache =
|
119 |
|
120 |
$chunked_keys = get_option( $this->chunked_keys_option_name );
|
121 |
|
@@ -199,7 +199,7 @@ class Tribe__Meta__Chunker {
|
|
199 |
$option = (array) get_option( $this->chunked_keys_option_name );
|
200 |
|
201 |
if ( ! isset( $option[ $post_id ] ) ) {
|
202 |
-
$option[ $post_id ] =
|
203 |
} else {
|
204 |
$option[ $post_id ][] = $meta_key;
|
205 |
}
|
@@ -383,10 +383,10 @@ class Tribe__Meta__Chunker {
|
|
383 |
protected function remove_checksum_for( $object_id, $meta_key ) {
|
384 |
/** @var wpdb $wpdb */
|
385 |
global $wpdb;
|
386 |
-
$data =
|
387 |
'post_id' => $object_id,
|
388 |
'meta_key' => $this->get_checksum_key( $meta_key ),
|
389 |
-
|
390 |
$wpdb->delete( $wpdb->postmeta, $data );
|
391 |
}
|
392 |
|
@@ -481,7 +481,7 @@ class Tribe__Meta__Chunker {
|
|
481 |
*/
|
482 |
protected function prefix_chunks( array $chunks ) {
|
483 |
$count = count( $chunks );
|
484 |
-
$prefixed =
|
485 |
for ( $i = 0; $i < $count; $i ++ ) {
|
486 |
$prefixed[] = "{$i}{$this->chunk_separator}{$chunks[$i]}";
|
487 |
}
|
@@ -525,21 +525,21 @@ class Tribe__Meta__Chunker {
|
|
525 |
$chunk_meta_key = $this->get_chunk_meta_key( $meta_key );
|
526 |
$this->insert_meta( $object_id, $meta_key, $chunks[0] );
|
527 |
foreach ( $chunks as $chunk ) {
|
528 |
-
$wpdb->insert( $wpdb->postmeta,
|
529 |
'post_id' => $object_id,
|
530 |
'meta_key' => $chunk_meta_key,
|
531 |
'meta_value' => $chunk,
|
532 |
-
|
533 |
}
|
534 |
|
535 |
$glued = $this->glue_chunks( $this->get_chunks_for( $object_id, $meta_key ) );
|
536 |
$checksum_key = $this->get_checksum_key( $meta_key );
|
537 |
-
$wpdb->delete( $wpdb->postmeta,
|
538 |
-
$wpdb->insert( $wpdb->postmeta,
|
539 |
'post_id' => $object_id,
|
540 |
'meta_key' => $checksum_key,
|
541 |
'meta_value' => md5( $glued ),
|
542 |
-
|
543 |
}
|
544 |
|
545 |
/**
|
@@ -554,11 +554,11 @@ class Tribe__Meta__Chunker {
|
|
554 |
protected function insert_meta( $object_id, $meta_key, $meta_value ) {
|
555 |
/** @var wpdb $wpdb */
|
556 |
global $wpdb;
|
557 |
-
$data =
|
558 |
'post_id' => $object_id,
|
559 |
'meta_key' => $meta_key,
|
560 |
'meta_value' => maybe_serialize( $meta_value ),
|
561 |
-
|
562 |
$wpdb->insert( $wpdb->postmeta, $data );
|
563 |
}
|
564 |
|
@@ -574,7 +574,7 @@ class Tribe__Meta__Chunker {
|
|
574 |
* @see Tribe__Meta__Chunker::get_chunks_for()
|
575 |
*/
|
576 |
public function glue_chunks( array $chunks ) {
|
577 |
-
$ordered_chunks =
|
578 |
foreach ( $chunks as $chunk ) {
|
579 |
preg_match( '/(\\d+)' . preg_quote( $this->chunk_separator ) . '(.*)/', $chunk, $matches );
|
580 |
$ordered_chunks[ $matches[1] ] = $matches[2];
|
@@ -614,7 +614,7 @@ class Tribe__Meta__Chunker {
|
|
614 |
$object_id, $chunk_meta_key
|
615 |
) );
|
616 |
|
617 |
-
$meta_values =
|
618 |
foreach ( $meta_ids as $meta_id ) {
|
619 |
$query = $wpdb->prepare( "SELECT meta_value FROM {$wpdb->postmeta} WHERE meta_id = %d", $meta_id );
|
620 |
$meta_values[] = $wpdb->get_var( $query );
|
@@ -736,11 +736,11 @@ class Tribe__Meta__Chunker {
|
|
736 |
* Unhooks the Chunker from the metadata operations.
|
737 |
*/
|
738 |
public function unhook() {
|
739 |
-
remove_filter( 'update_post_metadata',
|
740 |
-
remove_filter( 'delete_post_metadata',
|
741 |
-
remove_filter( 'add_post_metadata',
|
742 |
-
remove_filter( 'get_post_metadata',
|
743 |
-
remove_action( 'deleted_post',
|
744 |
}
|
745 |
|
746 |
/**
|
@@ -813,25 +813,25 @@ class Tribe__Meta__Chunker {
|
|
813 |
$all_meta = $this->get_all_meta( $object_id );
|
814 |
|
815 |
if ( empty( $all_meta ) ) {
|
816 |
-
return
|
817 |
}
|
818 |
|
819 |
-
$grouped =
|
820 |
foreach ( $all_meta as $entry ) {
|
821 |
if ( ! isset( $grouped[ $entry['meta_key'] ] ) ) {
|
822 |
-
$grouped[ $entry['meta_key'] ] =
|
823 |
} else {
|
824 |
$grouped[ $entry['meta_key'] ][] = $entry['meta_value'];
|
825 |
}
|
826 |
}
|
827 |
|
828 |
-
$chunker_meta_keys = array_filter( array_keys( $grouped ),
|
829 |
|
830 |
if ( empty( $chunker_meta_keys ) ) {
|
831 |
return $grouped;
|
832 |
}
|
833 |
|
834 |
-
$checksum_keys = array_filter( $chunker_meta_keys,
|
835 |
|
836 |
if ( empty( $checksum_keys ) ) {
|
837 |
return $grouped;
|
@@ -840,14 +840,14 @@ class Tribe__Meta__Chunker {
|
|
840 |
$chunker_meta = array_intersect_key( $grouped, array_combine( $chunker_meta_keys, $chunker_meta_keys ) );
|
841 |
$normal_meta = array_diff_key( $grouped, array_combine( $chunker_meta_keys, $chunker_meta_keys ) );
|
842 |
foreach ( $checksum_keys as $checksum_key ) {
|
843 |
-
$normal_meta_key = str_replace(
|
844 |
$chunk_meta_key = $this->get_chunk_meta_key( $normal_meta_key );
|
845 |
|
846 |
if ( empty( $chunker_meta[ $chunk_meta_key ] ) ) {
|
847 |
continue;
|
848 |
}
|
849 |
|
850 |
-
$normal_meta[ $normal_meta_key ] =
|
851 |
}
|
852 |
|
853 |
return $normal_meta;
|
@@ -881,7 +881,7 @@ class Tribe__Meta__Chunker {
|
|
881 |
$query = $wpdb->prepare( "SELECT meta_key, meta_value FROM {$wpdb->postmeta} WHERE post_id = %d", $object_id );
|
882 |
$results = $wpdb->get_results( $query, ARRAY_A );
|
883 |
|
884 |
-
return ! empty( $results ) && is_array( $results ) ? $results :
|
885 |
}
|
886 |
|
887 |
/**
|
63 |
/**
|
64 |
* @var array The post types supported by the Chunker.
|
65 |
*/
|
66 |
+
protected $post_types = [];
|
67 |
|
68 |
/**
|
69 |
* @var int The filter priority at which Chunker will operate on meta CRUD operations.
|
95 |
return;
|
96 |
}
|
97 |
|
98 |
+
add_filter( 'update_post_metadata', [ $this, 'filter_update_metadata' ], $this->filter_priority, 4 );
|
99 |
+
add_filter( 'delete_post_metadata', [ $this, 'filter_delete_metadata' ], $this->filter_priority, 3 );
|
100 |
+
add_filter( 'add_post_metadata', [ $this, 'filter_add_metadata' ], $this->filter_priority, 4 );
|
101 |
+
add_filter( 'get_post_metadata', [ $this, 'filter_get_metadata' ], $this->filter_priority, 4 );
|
102 |
+
add_action( 'deleted_post', [ $this, 'remove_post_entry' ] );
|
103 |
}
|
104 |
|
105 |
/**
|
114 |
return;
|
115 |
}
|
116 |
|
117 |
+
$this->chunks_cache = [];
|
118 |
+
$this->post_ids_cache = [];
|
119 |
|
120 |
$chunked_keys = get_option( $this->chunked_keys_option_name );
|
121 |
|
199 |
$option = (array) get_option( $this->chunked_keys_option_name );
|
200 |
|
201 |
if ( ! isset( $option[ $post_id ] ) ) {
|
202 |
+
$option[ $post_id ] = [ $meta_key ];
|
203 |
} else {
|
204 |
$option[ $post_id ][] = $meta_key;
|
205 |
}
|
383 |
protected function remove_checksum_for( $object_id, $meta_key ) {
|
384 |
/** @var wpdb $wpdb */
|
385 |
global $wpdb;
|
386 |
+
$data = [
|
387 |
'post_id' => $object_id,
|
388 |
'meta_key' => $this->get_checksum_key( $meta_key ),
|
389 |
+
];
|
390 |
$wpdb->delete( $wpdb->postmeta, $data );
|
391 |
}
|
392 |
|
481 |
*/
|
482 |
protected function prefix_chunks( array $chunks ) {
|
483 |
$count = count( $chunks );
|
484 |
+
$prefixed = [];
|
485 |
for ( $i = 0; $i < $count; $i ++ ) {
|
486 |
$prefixed[] = "{$i}{$this->chunk_separator}{$chunks[$i]}";
|
487 |
}
|
525 |
$chunk_meta_key = $this->get_chunk_meta_key( $meta_key );
|
526 |
$this->insert_meta( $object_id, $meta_key, $chunks[0] );
|
527 |
foreach ( $chunks as $chunk ) {
|
528 |
+
$wpdb->insert( $wpdb->postmeta, [
|
529 |
'post_id' => $object_id,
|
530 |
'meta_key' => $chunk_meta_key,
|
531 |
'meta_value' => $chunk,
|
532 |
+
] );
|
533 |
}
|
534 |
|
535 |
$glued = $this->glue_chunks( $this->get_chunks_for( $object_id, $meta_key ) );
|
536 |
$checksum_key = $this->get_checksum_key( $meta_key );
|
537 |
+
$wpdb->delete( $wpdb->postmeta, [ 'post_id' => $object_id, 'meta_key' => $checksum_key ] );
|
538 |
+
$wpdb->insert( $wpdb->postmeta, [
|
539 |
'post_id' => $object_id,
|
540 |
'meta_key' => $checksum_key,
|
541 |
'meta_value' => md5( $glued ),
|
542 |
+
] );
|
543 |
}
|
544 |
|
545 |
/**
|
554 |
protected function insert_meta( $object_id, $meta_key, $meta_value ) {
|
555 |
/** @var wpdb $wpdb */
|
556 |
global $wpdb;
|
557 |
+
$data = [
|
558 |
'post_id' => $object_id,
|
559 |
'meta_key' => $meta_key,
|
560 |
'meta_value' => maybe_serialize( $meta_value ),
|
561 |
+
];
|
562 |
$wpdb->insert( $wpdb->postmeta, $data );
|
563 |
}
|
564 |
|
574 |
* @see Tribe__Meta__Chunker::get_chunks_for()
|
575 |
*/
|
576 |
public function glue_chunks( array $chunks ) {
|
577 |
+
$ordered_chunks = [];
|
578 |
foreach ( $chunks as $chunk ) {
|
579 |
preg_match( '/(\\d+)' . preg_quote( $this->chunk_separator ) . '(.*)/', $chunk, $matches );
|
580 |
$ordered_chunks[ $matches[1] ] = $matches[2];
|
614 |
$object_id, $chunk_meta_key
|
615 |
) );
|
616 |
|
617 |
+
$meta_values = [];
|
618 |
foreach ( $meta_ids as $meta_id ) {
|
619 |
$query = $wpdb->prepare( "SELECT meta_value FROM {$wpdb->postmeta} WHERE meta_id = %d", $meta_id );
|
620 |
$meta_values[] = $wpdb->get_var( $query );
|
736 |
* Unhooks the Chunker from the metadata operations.
|
737 |
*/
|
738 |
public function unhook() {
|
739 |
+
remove_filter( 'update_post_metadata', [ $this, 'filter_update_metadata' ], $this->filter_priority );
|
740 |
+
remove_filter( 'delete_post_metadata', [ $this, 'filter_delete_metadata' ], $this->filter_priority );
|
741 |
+
remove_filter( 'add_post_metadata', [ $this, 'filter_add_metadata' ], $this->filter_priority );
|
742 |
+
remove_filter( 'get_post_metadata', [ $this, 'filter_get_metadata' ], $this->filter_priority );
|
743 |
+
remove_action( 'deleted_post', [ $this, 'remove_post_entry' ] );
|
744 |
}
|
745 |
|
746 |
/**
|
813 |
$all_meta = $this->get_all_meta( $object_id );
|
814 |
|
815 |
if ( empty( $all_meta ) ) {
|
816 |
+
return [];
|
817 |
}
|
818 |
|
819 |
+
$grouped = [];
|
820 |
foreach ( $all_meta as $entry ) {
|
821 |
if ( ! isset( $grouped[ $entry['meta_key'] ] ) ) {
|
822 |
+
$grouped[ $entry['meta_key'] ] = [ $entry['meta_value'] ];
|
823 |
} else {
|
824 |
$grouped[ $entry['meta_key'] ][] = $entry['meta_value'];
|
825 |
}
|
826 |
}
|
827 |
|
828 |
+
$chunker_meta_keys = array_filter( array_keys( $grouped ), [ $this, 'is_chunker_logic_meta_key' ] );
|
829 |
|
830 |
if ( empty( $chunker_meta_keys ) ) {
|
831 |
return $grouped;
|
832 |
}
|
833 |
|
834 |
+
$checksum_keys = array_filter( $chunker_meta_keys, [ $this, 'is_chunker_checksum_key' ] );
|
835 |
|
836 |
if ( empty( $checksum_keys ) ) {
|
837 |
return $grouped;
|
840 |
$chunker_meta = array_intersect_key( $grouped, array_combine( $chunker_meta_keys, $chunker_meta_keys ) );
|
841 |
$normal_meta = array_diff_key( $grouped, array_combine( $chunker_meta_keys, $chunker_meta_keys ) );
|
842 |
foreach ( $checksum_keys as $checksum_key ) {
|
843 |
+
$normal_meta_key = str_replace( [ $this->meta_key_prefix, '_checksum' ], '', $checksum_key );
|
844 |
$chunk_meta_key = $this->get_chunk_meta_key( $normal_meta_key );
|
845 |
|
846 |
if ( empty( $chunker_meta[ $chunk_meta_key ] ) ) {
|
847 |
continue;
|
848 |
}
|
849 |
|
850 |
+
$normal_meta[ $normal_meta_key ] = [ $this->glue_chunks( $chunker_meta[ $chunk_meta_key ] ) ];
|
851 |
}
|
852 |
|
853 |
return $normal_meta;
|
881 |
$query = $wpdb->prepare( "SELECT meta_key, meta_value FROM {$wpdb->postmeta} WHERE post_id = %d", $object_id );
|
882 |
$results = $wpdb->get_results( $query, ARRAY_A );
|
883 |
|
884 |
+
return ! empty( $results ) && is_array( $results ) ? $results : [];
|
885 |
}
|
886 |
|
887 |
/**
|
common/src/Tribe/Notices.php
CHANGED
@@ -5,7 +5,7 @@ class Tribe__Notices {
|
|
5 |
* Notices to be displayed in the admin
|
6 |
* @var array
|
7 |
*/
|
8 |
-
protected $notices =
|
9 |
|
10 |
/**
|
11 |
* Define an admin notice
|
5 |
* Notices to be displayed in the admin
|
6 |
* @var array
|
7 |
*/
|
8 |
+
protected $notices = [];
|
9 |
|
10 |
/**
|
11 |
* Define an admin notice
|
common/src/Tribe/PUE/Notices.php
CHANGED
@@ -10,9 +10,9 @@ class Tribe__PUE__Notices {
|
|
10 |
const EXPIRED_KEY = 'expired_key';
|
11 |
const STORE_KEY = 'tribe_pue_key_notices';
|
12 |
|
13 |
-
protected $registered =
|
14 |
-
protected $saved_notices =
|
15 |
-
protected $notices =
|
16 |
|
17 |
protected $plugin_names = [
|
18 |
'pue_install_key_event_tickets_plus' => 'Event Tickets Plus',
|
@@ -30,8 +30,8 @@ class Tribe__PUE__Notices {
|
|
30 |
*/
|
31 |
public function __construct() {
|
32 |
$this->populate();
|
33 |
-
add_action( 'current_screen',
|
34 |
-
add_action( 'tribe_pue_notices_save_notices',
|
35 |
}
|
36 |
|
37 |
/**
|
@@ -53,7 +53,7 @@ class Tribe__PUE__Notices {
|
|
53 |
* groups.
|
54 |
*/
|
55 |
protected function populate() {
|
56 |
-
$this->saved_notices = (array) get_option( self::STORE_KEY,
|
57 |
|
58 |
if ( empty( $this->saved_notices ) ) {
|
59 |
return;
|
@@ -193,7 +193,7 @@ class Tribe__PUE__Notices {
|
|
193 |
*/
|
194 |
public function setup_notices() {
|
195 |
// Don't allow this to run multiple times
|
196 |
-
remove_action( 'current_screen',
|
197 |
|
198 |
// No need to display license key notices to users without appropriate capabilities
|
199 |
if ( ! current_user_can( 'install_plugins' ) ) {
|
@@ -205,7 +205,7 @@ class Tribe__PUE__Notices {
|
|
205 |
continue;
|
206 |
}
|
207 |
|
208 |
-
$callback =
|
209 |
|
210 |
if ( is_callable( $callback ) ) {
|
211 |
tribe_notice( 'pue_key-' . $notice_type, $callback, 'dismiss=1&type=warning' );
|
@@ -237,9 +237,9 @@ class Tribe__PUE__Notices {
|
|
237 |
|
238 |
$empty_keys = $wpdb->get_results( $sql, ARRAY_N );
|
239 |
|
240 |
-
$formatted_empty_keys =
|
241 |
foreach ( $empty_keys as $empty_key ) {
|
242 |
-
$empty_key = Tribe__Utils__Array::get( $empty_key,
|
243 |
$formatted_empty_keys[] = Tribe__Utils__Array::get( $this->plugin_names, $empty_key );
|
244 |
}
|
245 |
|
@@ -380,7 +380,7 @@ class Tribe__PUE__Notices {
|
|
380 |
protected function render_notice( $slug, $inner_html ) {
|
381 |
|
382 |
// Enqueue the notice CSS.
|
383 |
-
tribe( 'assets' )->enqueue(
|
384 |
|
385 |
$mascot = esc_url( Tribe__Main::instance()->plugin_url . 'src/resources/images/mascot.png' );
|
386 |
|
10 |
const EXPIRED_KEY = 'expired_key';
|
11 |
const STORE_KEY = 'tribe_pue_key_notices';
|
12 |
|
13 |
+
protected $registered = [];
|
14 |
+
protected $saved_notices = [];
|
15 |
+
protected $notices = [];
|
16 |
|
17 |
protected $plugin_names = [
|
18 |
'pue_install_key_event_tickets_plus' => 'Event Tickets Plus',
|
30 |
*/
|
31 |
public function __construct() {
|
32 |
$this->populate();
|
33 |
+
add_action( 'current_screen', [ $this, 'setup_notices' ] );
|
34 |
+
add_action( 'tribe_pue_notices_save_notices', [ $this, 'maybe_undismiss_notices' ] );
|
35 |
}
|
36 |
|
37 |
/**
|
53 |
* groups.
|
54 |
*/
|
55 |
protected function populate() {
|
56 |
+
$this->saved_notices = (array) get_option( self::STORE_KEY, [] );
|
57 |
|
58 |
if ( empty( $this->saved_notices ) ) {
|
59 |
return;
|
193 |
*/
|
194 |
public function setup_notices() {
|
195 |
// Don't allow this to run multiple times
|
196 |
+
remove_action( 'current_screen', [ $this, 'setup_notices' ] );
|
197 |
|
198 |
// No need to display license key notices to users without appropriate capabilities
|
199 |
if ( ! current_user_can( 'install_plugins' ) ) {
|
205 |
continue;
|
206 |
}
|
207 |
|
208 |
+
$callback = [ $this, 'render_' . $notice_type ];
|
209 |
|
210 |
if ( is_callable( $callback ) ) {
|
211 |
tribe_notice( 'pue_key-' . $notice_type, $callback, 'dismiss=1&type=warning' );
|
237 |
|
238 |
$empty_keys = $wpdb->get_results( $sql, ARRAY_N );
|
239 |
|
240 |
+
$formatted_empty_keys = [];
|
241 |
foreach ( $empty_keys as $empty_key ) {
|
242 |
+
$empty_key = Tribe__Utils__Array::get( $empty_key, [ 0 ] );
|
243 |
$formatted_empty_keys[] = Tribe__Utils__Array::get( $this->plugin_names, $empty_key );
|
244 |
}
|
245 |
|
380 |
protected function render_notice( $slug, $inner_html ) {
|
381 |
|
382 |
// Enqueue the notice CSS.
|
383 |
+
tribe( 'assets' )->enqueue( [ 'tribe-common-admin' ] );
|
384 |
|
385 |
$mascot = esc_url( Tribe__Main::instance()->plugin_url . 'src/resources/images/mascot.png' );
|
386 |
|
common/src/Tribe/PUE/Package_Handler.php
CHANGED
@@ -102,7 +102,7 @@ class Tribe__PUE__Package_Handler {
|
|
102 |
protected function download( $package ) {
|
103 |
if ( empty( $this->filesystem ) ) {
|
104 |
// try to connect
|
105 |
-
$this->upgrader->fs_connect(
|
106 |
|
107 |
global $wp_filesystem;
|
108 |
|
102 |
protected function download( $package ) {
|
103 |
if ( empty( $this->filesystem ) ) {
|
104 |
// try to connect
|
105 |
+
$this->upgrader->fs_connect( [ WP_CONTENT_DIR, WP_PLUGIN_DIR ] );
|
106 |
|
107 |
global $wp_filesystem;
|
108 |
|
common/src/Tribe/PUE/Plugin_Info.php
CHANGED
@@ -93,8 +93,7 @@ if ( ! class_exists( 'Tribe__PUE__Plugin_Info' ) ) {
|
|
93 |
|
94 |
// The custom update API is built so that many fields have the same name and format
|
95 |
// as those returned by the native WordPress.org API. These can be assigned directly.
|
96 |
-
|
97 |
-
$sameFormat = array(
|
98 |
'name',
|
99 |
'slug',
|
100 |
'version',
|
@@ -109,7 +108,8 @@ if ( ! class_exists( 'Tribe__PUE__Plugin_Info' ) ) {
|
|
109 |
'api_expired',
|
110 |
'api_upgrade',
|
111 |
'api_invalid',
|
112 |
-
|
|
|
113 |
foreach ( $sameFormat as $field ) {
|
114 |
if ( isset( $this->$field ) ) {
|
115 |
$info->$field = $this->$field;
|
@@ -132,7 +132,7 @@ if ( ! class_exists( 'Tribe__PUE__Plugin_Info' ) ) {
|
|
132 |
} elseif ( is_array( $this->sections ) ) {
|
133 |
$info->sections = $this->sections;
|
134 |
} else {
|
135 |
-
$info->sections =
|
136 |
}
|
137 |
|
138 |
return $info;
|
93 |
|
94 |
// The custom update API is built so that many fields have the same name and format
|
95 |
// as those returned by the native WordPress.org API. These can be assigned directly.
|
96 |
+
$sameFormat = [
|
|
|
97 |
'name',
|
98 |
'slug',
|
99 |
'version',
|
108 |
'api_expired',
|
109 |
'api_upgrade',
|
110 |
'api_invalid',
|
111 |
+
];
|
112 |
+
|
113 |
foreach ( $sameFormat as $field ) {
|
114 |
if ( isset( $this->$field ) ) {
|
115 |
$info->$field = $this->$field;
|
132 |
} elseif ( is_array( $this->sections ) ) {
|
133 |
$info->sections = $this->sections;
|
134 |
} else {
|
135 |
+
$info->sections = [ 'description' => '' ];
|
136 |
}
|
137 |
|
138 |
return $info;
|
common/src/Tribe/PUE/Utility.php
CHANGED
@@ -28,7 +28,7 @@ if ( ! class_exists( 'Tribe__PUE__Utility' ) ) {
|
|
28 |
public $version;
|
29 |
public $homepage;
|
30 |
public $download_url;
|
31 |
-
public $sections =
|
32 |
public $upgrade_notice;
|
33 |
public $custom_update;
|
34 |
|
@@ -61,7 +61,7 @@ if ( ! class_exists( 'Tribe__PUE__Utility' ) ) {
|
|
61 |
*/
|
62 |
public static function from_plugin_info( $info ) {
|
63 |
$update = new Tribe__PUE__Utility();
|
64 |
-
$copyFields =
|
65 |
'id',
|
66 |
'slug',
|
67 |
'version',
|
@@ -76,7 +76,7 @@ if ( ! class_exists( 'Tribe__PUE__Utility' ) ) {
|
|
76 |
'api_invalid_message',
|
77 |
'api_inline_invalid_message',
|
78 |
'custom_update',
|
79 |
-
|
80 |
|
81 |
foreach ( $copyFields as $field ) {
|
82 |
if ( ! isset( $info->$field ) ) {
|
28 |
public $version;
|
29 |
public $homepage;
|
30 |
public $download_url;
|
31 |
+
public $sections = [];
|
32 |
public $upgrade_notice;
|
33 |
public $custom_update;
|
34 |
|
61 |
*/
|
62 |
public static function from_plugin_info( $info ) {
|
63 |
$update = new Tribe__PUE__Utility();
|
64 |
+
$copyFields = [
|
65 |
'id',
|
66 |
'slug',
|
67 |
'version',
|
76 |
'api_invalid_message',
|
77 |
'api_inline_invalid_message',
|
78 |
'custom_update',
|
79 |
+
];
|
80 |
|
81 |
foreach ( $copyFields as $field ) {
|
82 |
if ( ! isset( $info->$field ) ) {
|
common/src/Tribe/Plugin_Meta_Links.php
CHANGED
@@ -30,7 +30,7 @@ class Tribe__Plugin_Meta_Links {
|
|
30 |
* }
|
31 |
* }
|
32 |
*/
|
33 |
-
private $meta_links =
|
34 |
|
35 |
/**
|
36 |
* Returns the singleton instance of this class.
|
@@ -42,7 +42,7 @@ class Tribe__Plugin_Meta_Links {
|
|
42 |
}
|
43 |
|
44 |
private function __construct() {
|
45 |
-
add_action( 'plugin_row_meta',
|
46 |
}
|
47 |
|
48 |
/**
|
@@ -53,7 +53,7 @@ class Tribe__Plugin_Meta_Links {
|
|
53 |
* @param string $href URL for the link.
|
54 |
* @param array $attributes Key => value attributes for element.
|
55 |
*/
|
56 |
-
public function add_link( $plugin, $title, $href, $attributes =
|
57 |
$attributes['href'] = $href;
|
58 |
|
59 |
// Build the <a> element.
|
@@ -79,12 +79,12 @@ class Tribe__Plugin_Meta_Links {
|
|
79 |
$basename = plugin_basename( $plugin );
|
80 |
|
81 |
// Get any current links for this plugin.
|
82 |
-
$cur_links = Tribe__Utils__Array::get( $this->meta_links, $basename,
|
83 |
|
84 |
-
$cur_links[] =
|
85 |
-
'html'
|
86 |
'remove' => $remove,
|
87 |
-
|
88 |
|
89 |
$this->meta_links = Tribe__Utils__Array::set( $this->meta_links, $basename, $cur_links );
|
90 |
}
|
@@ -99,7 +99,7 @@ class Tribe__Plugin_Meta_Links {
|
|
99 |
*/
|
100 |
public function filter_meta_links( $links, $basename ) {
|
101 |
// Gets any links that are set for this plugin, defaults to an empty array.
|
102 |
-
$set_links = Tribe__Utils__Array::get( $this->meta_links, $basename,
|
103 |
|
104 |
foreach ( $set_links as $link ) {
|
105 |
|
30 |
* }
|
31 |
* }
|
32 |
*/
|
33 |
+
private $meta_links = [];
|
34 |
|
35 |
/**
|
36 |
* Returns the singleton instance of this class.
|
42 |
}
|
43 |
|
44 |
private function __construct() {
|
45 |
+
add_action( 'plugin_row_meta', [ $this, 'filter_meta_links' ], 10, 2 );
|
46 |
}
|
47 |
|
48 |
/**
|
53 |
* @param string $href URL for the link.
|
54 |
* @param array $attributes Key => value attributes for element.
|
55 |
*/
|
56 |
+
public function add_link( $plugin, $title, $href, $attributes = [] ) {
|
57 |
$attributes['href'] = $href;
|
58 |
|
59 |
// Build the <a> element.
|
79 |
$basename = plugin_basename( $plugin );
|
80 |
|
81 |
// Get any current links for this plugin.
|
82 |
+
$cur_links = Tribe__Utils__Array::get( $this->meta_links, $basename, [] );
|
83 |
|
84 |
+
$cur_links[] = [
|
85 |
+
'html' => $html,
|
86 |
'remove' => $remove,
|
87 |
+
];
|
88 |
|
89 |
$this->meta_links = Tribe__Utils__Array::set( $this->meta_links, $basename, $cur_links );
|
90 |
}
|
99 |
*/
|
100 |
public function filter_meta_links( $links, $basename ) {
|
101 |
// Gets any links that are set for this plugin, defaults to an empty array.
|
102 |
+
$set_links = Tribe__Utils__Array::get( $this->meta_links, $basename, [] );
|
103 |
|
104 |
foreach ( $set_links as $link ) {
|
105 |
|
common/src/Tribe/Plugins_API.php
CHANGED
@@ -20,213 +20,213 @@ class Tribe__Plugins_API {
|
|
20 |
* @return array
|
21 |
*/
|
22 |
public function get_products() {
|
23 |
-
$products =
|
24 |
-
'the-events-calendar'
|
25 |
-
'title'
|
26 |
-
'slug'
|
27 |
-
'link'
|
28 |
-
'description'
|
29 |
-
'features'
|
30 |
__( 'Customizable', 'tribe-common' ),
|
31 |
__( 'Import & export events', 'tribe-common' ),
|
32 |
__( 'Timezone support', 'tribe-common' ),
|
33 |
__( 'Multiple views', 'tribe-common' ),
|
34 |
],
|
35 |
-
'image'
|
36 |
-
'logo'
|
37 |
-
'is_installed'
|
38 |
-
'free'
|
39 |
'active_installs' => 800000,
|
40 |
-
|
41 |
-
'event-aggregator'
|
42 |
-
'title'
|
43 |
-
'slug'
|
44 |
-
'link'
|
45 |
-
'description'
|
46 |
-
'features'
|
47 |
__( 'Schedule automated imports', 'tribe-common' ),
|
48 |
__( 'Customizable', 'tribe-common' ),
|
49 |
__( 'Works with Google Calendar, Meetup, and more', 'tribe-common' ),
|
50 |
__( 'Refine by date, location, or keyword', 'tribe-common' ),
|
51 |
],
|
52 |
-
'image'
|
53 |
-
'logo'
|
54 |
-
'is_installed'
|
55 |
-
'free'
|
56 |
'active_installs' => 20000,
|
57 |
-
|
58 |
-
'events-calendar-pro'
|
59 |
-
'title'
|
60 |
-
'slug'
|
61 |
-
'link'
|
62 |
-
'description'
|
63 |
-
'features'
|
64 |
__( 'Premium support', 'tribe-common' ),
|
65 |
__( 'Recurring events', 'tribe-common' ),
|
66 |
__( 'Additional views', 'tribe-common' ),
|
67 |
__( 'Shortcodes', 'tribe-common' ),
|
68 |
],
|
69 |
-
'image'
|
70 |
-
'logo'
|
71 |
-
'is_installed'
|
72 |
-
'free'
|
73 |
'active_installs' => 100000,
|
74 |
-
|
75 |
-
'event-tickets'
|
76 |
-
'title'
|
77 |
-
'slug'
|
78 |
-
'link'
|
79 |
-
'description'
|
80 |
-
'features'
|
81 |
__( 'Add tickets and RSVP to any post', 'tribe-common' ),
|
82 |
__( 'Paypal integration', 'tribe-common' ),
|
83 |
__( 'Attendee reports', 'tribe-common' ),
|
84 |
__( 'Customizable ticket template', 'tribe-common' ),
|
85 |
],
|
86 |
-
'image'
|
87 |
-
'logo'
|
88 |
-
'is_installed'
|
89 |
-
'free'
|
90 |
'active_installs' => 20000,
|
91 |
-
|
92 |
-
'event-tickets-plus'
|
93 |
-
'title'
|
94 |
-
'slug'
|
95 |
-
'link'
|
96 |
-
'description'
|
97 |
-
'features'
|
98 |
__( 'Custom registration fields', 'tribe-common' ),
|
99 |
__( 'WooCommerce compatibility', 'tribe-common' ),
|
100 |
__( 'Ticket scanning with mobile app', 'tribe-common' ),
|
101 |
__( 'Custom attendee registration fields', 'tribe-common' ),
|
102 |
],
|
103 |
-
'image'
|
104 |
-
'logo'
|
105 |
-
'is_installed'
|
106 |
-
'free'
|
107 |
'active_installs' => 10000,
|
108 |
-
|
109 |
-
'promoter'
|
110 |
-
'title'
|
111 |
-
'slug'
|
112 |
-
'link'
|
113 |
-
'description'
|
114 |
-
'features'
|
115 |
__( 'Automate email touchpoints', 'tribe-common' ),
|
116 |
__( 'Customize email templates', 'tribe-common' ),
|
117 |
__( 'Streamline your email process', 'tribe-common' ),
|
118 |
__( 'Segment your attendee lists', 'tribe-common' ),
|
119 |
],
|
120 |
-
'image'
|
121 |
-
'logo'
|
122 |
-
'is_installed'
|
123 |
-
'free'
|
124 |
'active_installs' => 1000,
|
125 |
-
|
126 |
-
'tribe-filterbar'
|
127 |
-
'title'
|
128 |
-
'slug'
|
129 |
-
'link'
|
130 |
-
'description'
|
131 |
-
'features'
|
132 |
__( 'Configurable set of filters', 'tribe-common' ),
|
133 |
__( 'Horizontal or vertical', 'tribe-common' ),
|
134 |
__( 'Filter category, price, and more', 'tribe-common' ),
|
135 |
__( 'Filter distance (for Events Calendar Pro)', 'tribe-common' ),
|
136 |
],
|
137 |
-
'image'
|
138 |
-
'logo'
|
139 |
-
'is_installed'
|
140 |
-
'free'
|
141 |
'active_installs' => 20000,
|
142 |
-
|
143 |
-
'events-community'
|
144 |
-
'title'
|
145 |
-
'slug'
|
146 |
-
'link'
|
147 |
-
'description'
|
148 |
-
'features'
|
149 |
__( 'Publishing Control', 'tribe-common' ),
|
150 |
__( 'Event Submission Form', 'tribe-common' ),
|
151 |
__( 'Registered User Settings', 'tribe-common' ),
|
152 |
__( 'Email notifications', 'tribe-common' ),
|
153 |
],
|
154 |
-
'image'
|
155 |
-
'logo'
|
156 |
-
'is_installed'
|
157 |
-
'free'
|
158 |
'active_installs' => 20000,
|
159 |
-
|
160 |
-
'events-community-tickets' =>
|
161 |
-
'title'
|
162 |
-
'slug'
|
163 |
-
'link'
|
164 |
-
'description'
|
165 |
-
'features'
|
166 |
__( 'Users submit events and sell tickets', 'tribe-common' ),
|
167 |
__( 'Split commission with users', 'tribe-common' ),
|
168 |
__( 'No admin access required', 'tribe-common' ), /* code review: fail this */
|
169 |
__( 'Sales reporting', 'tribe-common' ),
|
170 |
],
|
171 |
-
'requires'
|
172 |
-
'image'
|
173 |
-
'logo'
|
174 |
-
'is_installed'
|
175 |
-
'free'
|
176 |
'active_installs' => 10000,
|
177 |
-
|
178 |
-
'tribe-eventbrite'
|
179 |
-
'title'
|
180 |
-
'slug'
|
181 |
-
'link'
|
182 |
-
'description'
|
183 |
-
'features'
|
184 |
__( 'Manage tickets from WordPress', 'tribe-common' ),
|
185 |
__( 'Ticket availability automatically updates', 'tribe-common' ),
|
186 |
__( 'Integrated with your events on Eventbrite', 'tribe-common' ),
|
187 |
__( 'Automatically import your events', 'tribe-common' ),
|
188 |
],
|
189 |
-
'image'
|
190 |
-
'logo'
|
191 |
-
'is_installed'
|
192 |
-
'free'
|
193 |
'active_installs' => 20000,
|
194 |
-
|
195 |
-
'image-widget-plus'
|
196 |
-
'title'
|
197 |
-
'slug'
|
198 |
-
'link'
|
199 |
-
'description'
|
200 |
-
'features'
|
201 |
__( 'Multi-Image Support', 'tribe-common' ),
|
202 |
__( 'Lightbox', 'tribe-common' ),
|
203 |
__( 'Slideshow', 'tribe-common' ),
|
204 |
__( 'Random Images', 'tribe-common' ),
|
205 |
],
|
206 |
-
'image'
|
207 |
-
'logo'
|
208 |
-
'is_installed'
|
209 |
-
'free'
|
210 |
'active_installs' => 2500,
|
211 |
-
|
212 |
-
'events-virtual'
|
213 |
-
'title'
|
214 |
-
'slug'
|
215 |
-
'link'
|
216 |
-
'description'
|
217 |
-
'features'
|
218 |
__( 'Zoom integration', 'tribe-common' ),
|
219 |
__( 'Virtual event labels', 'tribe-common' ),
|
220 |
__( 'Status control for canceled or postponed events', 'tribe-common' ),
|
221 |
__( 'Embed livestreams and videos', 'tribe-common' ),
|
222 |
],
|
223 |
-
'image'
|
224 |
-
'logo'
|
225 |
-
'is_installed'
|
226 |
-
'free'
|
227 |
'active_installs' => 2500,
|
228 |
-
|
229 |
-
|
230 |
|
231 |
return $products;
|
232 |
}
|
20 |
* @return array
|
21 |
*/
|
22 |
public function get_products() {
|
23 |
+
$products = [
|
24 |
+
'the-events-calendar' => [
|
25 |
+
'title' => __( 'The Events Calendar', 'tribe-common' ),
|
26 |
+
'slug' => 'the-events-calendar',
|
27 |
+
'link' => 'https://m.tri.be/1ai-',
|
28 |
+
'description' => __( 'Our flagship free calendar', 'tribe-common' ),
|
29 |
+
'features' => [
|
30 |
__( 'Customizable', 'tribe-common' ),
|
31 |
__( 'Import & export events', 'tribe-common' ),
|
32 |
__( 'Timezone support', 'tribe-common' ),
|
33 |
__( 'Multiple views', 'tribe-common' ),
|
34 |
],
|
35 |
+
'image' => 'images/shop/calendar.jpg',
|
36 |
+
'logo' => 'images/logo/the-events-calendar.svg',
|
37 |
+
'is_installed' => class_exists( 'Tribe__Events__Main' ),
|
38 |
+
'free' => true,
|
39 |
'active_installs' => 800000,
|
40 |
+
],
|
41 |
+
'event-aggregator' => [
|
42 |
+
'title' => __( 'Event Aggregator', 'tribe-common' ),
|
43 |
+
'slug' => 'event-aggregator',
|
44 |
+
'link' => 'https://m.tri.be/1aj0',
|
45 |
+
'description' => __( 'Automated imports for your calendar', 'tribe-common' ),
|
46 |
+
'features' => [
|
47 |
__( 'Schedule automated imports', 'tribe-common' ),
|
48 |
__( 'Customizable', 'tribe-common' ),
|
49 |
__( 'Works with Google Calendar, Meetup, and more', 'tribe-common' ),
|
50 |
__( 'Refine by date, location, or keyword', 'tribe-common' ),
|
51 |
],
|
52 |
+
'image' => 'images/shop/aggregator.jpg',
|
53 |
+
'logo' => 'images/logo/event-aggregator.svg',
|
54 |
+
'is_installed' => class_exists( 'Tribe__Events__Aggregator' ) && Tribe__Events__Aggregator::is_service_active(),
|
55 |
+
'free' => false,
|
56 |
'active_installs' => 20000,
|
57 |
+
],
|
58 |
+
'events-calendar-pro' => [
|
59 |
+
'title' => __( 'Events Calendar Pro', 'tribe-common' ),
|
60 |
+
'slug' => 'events-calendar-pro',
|
61 |
+
'link' => 'https://m.tri.be/1ai-',
|
62 |
+
'description' => __( 'Power up your calendar with Pro', 'tribe-common' ),
|
63 |
+
'features' => [
|
64 |
__( 'Premium support', 'tribe-common' ),
|
65 |
__( 'Recurring events', 'tribe-common' ),
|
66 |
__( 'Additional views', 'tribe-common' ),
|
67 |
__( 'Shortcodes', 'tribe-common' ),
|
68 |
],
|
69 |
+
'image' => 'images/shop/pro.jpg',
|
70 |
+
'logo' => 'images/logo/events-calendar-pro.svg',
|
71 |
+
'is_installed' => class_exists( 'Tribe__Events__Pro__Main' ),
|
72 |
+
'free' => false,
|
73 |
'active_installs' => 100000,
|
74 |
+
],
|
75 |
+
'event-tickets' => [
|
76 |
+
'title' => __( 'Event Tickets', 'tribe-common' ),
|
77 |
+
'slug' => 'event-tickets',
|
78 |
+
'link' => 'https://m.tri.be/1aj1',
|
79 |
+
'description' => __( 'Manage ticketing and RSVPs', 'tribe-common' ),
|
80 |
+
'features' => [
|
81 |
__( 'Add tickets and RSVP to any post', 'tribe-common' ),
|
82 |
__( 'Paypal integration', 'tribe-common' ),
|
83 |
__( 'Attendee reports', 'tribe-common' ),
|
84 |
__( 'Customizable ticket template', 'tribe-common' ),
|
85 |
],
|
86 |
+
'image' => 'images/shop/tickets.jpg',
|
87 |
+
'logo' => 'images/logo/event-tickets.svg',
|
88 |
+
'is_installed' => class_exists( 'Tribe__Tickets__Main' ),
|
89 |
+
'free' => true,
|
90 |
'active_installs' => 20000,
|
91 |
+
],
|
92 |
+
'event-tickets-plus' => [
|
93 |
+
'title' => __( 'Event Tickets Plus', 'tribe-common' ),
|
94 |
+
'slug' => 'event-tickets-plus',
|
95 |
+
'link' => 'http://m.tri.be/1aj1',
|
96 |
+
'description' => __( 'Monetize your events', 'tribe-common' ),
|
97 |
+
'features' => [
|
98 |
__( 'Custom registration fields', 'tribe-common' ),
|
99 |
__( 'WooCommerce compatibility', 'tribe-common' ),
|
100 |
__( 'Ticket scanning with mobile app', 'tribe-common' ),
|
101 |
__( 'Custom attendee registration fields', 'tribe-common' ),
|
102 |
],
|
103 |
+
'image' => 'images/shop/tickets-plus.jpg',
|
104 |
+
'logo' => 'images/logo/event-tickets-plus.svg',
|
105 |
+
'is_installed' => class_exists( 'Tribe__Tickets_Plus__Main' ),
|
106 |
+
'free' => false,
|
107 |
'active_installs' => 10000,
|
108 |
+
],
|
109 |
+
'promoter' => [
|
110 |
+
'title' => __( 'Promoter', 'tribe-common' ),
|
111 |
+
'slug' => 'promoter',
|
112 |
+
'link' => 'https://m.tri.be/1acy',
|
113 |
+
'description' => __( 'An email marketing solution for events and the people running them', 'tribe-common' ),
|
114 |
+
'features' => [
|
115 |
__( 'Automate email touchpoints', 'tribe-common' ),
|
116 |
__( 'Customize email templates', 'tribe-common' ),
|
117 |
__( 'Streamline your email process', 'tribe-common' ),
|
118 |
__( 'Segment your attendee lists', 'tribe-common' ),
|
119 |
],
|
120 |
+
'image' => 'images/shop/promoter.jpg',
|
121 |
+
'logo' => 'images/logo/promoter.svg',
|
122 |
+
'is_installed' => tribe( 'promoter.pue' )->has_license_key(),
|
123 |
+
'free' => false,
|
124 |
'active_installs' => 1000,
|
125 |
+
],
|
126 |
+
'tribe-filterbar' => [
|
127 |
+
'title' => __( 'Filter Bar', 'tribe-common' ),
|
128 |
+
'slug' => 'tribe-filterbar',
|
129 |
+
'link' => 'https://m.tri.be/19o6',
|
130 |
+
'description' => __( 'Help users find exactly the right event', 'tribe-common' ),
|
131 |
+
'features' => [
|
132 |
__( 'Configurable set of filters', 'tribe-common' ),
|
133 |
__( 'Horizontal or vertical', 'tribe-common' ),
|
134 |
__( 'Filter category, price, and more', 'tribe-common' ),
|
135 |
__( 'Filter distance (for Events Calendar Pro)', 'tribe-common' ),
|
136 |
],
|
137 |
+
'image' => 'images/shop/filter-bar.jpg',
|
138 |
+
'logo' => 'images/logo/filterbar.svg',
|
139 |
+
'is_installed' => class_exists( 'Tribe__Events__Filterbar__View' ),
|
140 |
+
'free' => false,
|
141 |
'active_installs' => 20000,
|
142 |
+
],
|
143 |
+
'events-community' => [
|
144 |
+
'title' => __( 'Community Events', 'tribe-common' ),
|
145 |
+
'slug' => 'events-community',
|
146 |
+
'link' => 'https://m.tri.be/19o7',
|
147 |
+
'description' => __( 'Users submit events to your calendar', 'tribe-common' ),
|
148 |
+
'features' => [
|
149 |
__( 'Publishing Control', 'tribe-common' ),
|
150 |
__( 'Event Submission Form', 'tribe-common' ),
|
151 |
__( 'Registered User Settings', 'tribe-common' ),
|
152 |
__( 'Email notifications', 'tribe-common' ),
|
153 |
],
|
154 |
+
'image' => 'images/shop/community.jpg',
|
155 |
+
'logo' => 'images/logo/community-events.svg',
|
156 |
+
'is_installed' => class_exists( 'Tribe__Events__Community__Main' ),
|
157 |
+
'free' => false,
|
158 |
'active_installs' => 20000,
|
159 |
+
],
|
160 |
+
'events-community-tickets' => [
|
161 |
+
'title' => __( 'Community Tickets', 'tribe-common' ),
|
162 |
+
'slug' => 'events-community-tickets',
|
163 |
+
'link' => 'https://m.tri.be/19o8',
|
164 |
+
'description' => __( 'Run your own events marketplace', 'tribe-common' ),
|
165 |
+
'features' => [
|
166 |
__( 'Users submit events and sell tickets', 'tribe-common' ),
|
167 |
__( 'Split commission with users', 'tribe-common' ),
|
168 |
__( 'No admin access required', 'tribe-common' ), /* code review: fail this */
|
169 |
__( 'Sales reporting', 'tribe-common' ),
|
170 |
],
|
171 |
+
'requires' => _x( 'Event Tickets Plus and Community Events', 'Names of required plugins for Community Tickets', 'tribe-common' ),
|
172 |
+
'image' => 'images/shop/community-tickets.jpg',
|
173 |
+
'logo' => 'images/logo/community-tickets.svg',
|
174 |
+
'is_installed' => class_exists( 'Tribe__Events__Community__Tickets__Main' ),
|
175 |
+
'free' => false,
|
176 |
'active_installs' => 10000,
|
177 |
+
],
|
178 |
+
'tribe-eventbrite' => [
|
179 |
+
'title' => __( 'Eventbrite Tickets', 'tribe-common' ),
|
180 |
+
'slug' => 'tribe-eventbrite',
|
181 |
+
'link' => 'https://m.tri.be/19o9',
|
182 |
+
'description' => __( 'Unite the power of TEC with the ticketing of Eventbrite', 'tribe-common' ),
|
183 |
+
'features' => [
|
184 |
__( 'Manage tickets from WordPress', 'tribe-common' ),
|
185 |
__( 'Ticket availability automatically updates', 'tribe-common' ),
|
186 |
__( 'Integrated with your events on Eventbrite', 'tribe-common' ),
|
187 |
__( 'Automatically import your events', 'tribe-common' ),
|
188 |
],
|
189 |
+
'image' => 'images/shop/eventbrite.jpg',
|
190 |
+
'logo' => 'images/logo/eventbrite-tickets.svg',
|
191 |
+
'is_installed' => class_exists( 'Tribe__Events__Tickets__Eventbrite__Main' ),
|
192 |
+
'free' => false,
|
193 |
'active_installs' => 20000,
|
194 |
+
],
|
195 |
+
'image-widget-plus' => [
|
196 |
+
'title' => __( 'Image Widget Plus', 'tribe-common' ),
|
197 |
+
'slug' => 'image-widget-plus',
|
198 |
+
'link' => 'https://m.tri.be/19nv',
|
199 |
+
'description' => __( 'Beautiful display options for your favorite photos.', 'tribe-common' ),
|
200 |
+
'features' => [
|
201 |
__( 'Multi-Image Support', 'tribe-common' ),
|
202 |
__( 'Lightbox', 'tribe-common' ),
|
203 |
__( 'Slideshow', 'tribe-common' ),
|
204 |
__( 'Random Images', 'tribe-common' ),
|
205 |
],
|
206 |
+
'image' => 'images/shop/image-widget-plus.jpg',
|
207 |
+
'logo' => 'images/logo/image-widget-plus.svg',
|
208 |
+
'is_installed' => class_exists( 'Tribe__Image__Plus__Main' ),
|
209 |
+
'free' => false,
|
210 |
'active_installs' => 2500,
|
211 |
+
],
|
212 |
+
'events-virtual' => [
|
213 |
+
'title' => __( 'Virtual Events', 'tribe-common' ),
|
214 |
+
'slug' => 'events-virtual',
|
215 |
+
'link' => 'http://m.tri.be/virtual-events',
|
216 |
+
'description' => __( 'Features to optimize your calendar for virtual events.', 'tribe-common' ),
|
217 |
+
'features' => [
|
218 |
__( 'Zoom integration', 'tribe-common' ),
|
219 |
__( 'Virtual event labels', 'tribe-common' ),
|
220 |
__( 'Status control for canceled or postponed events', 'tribe-common' ),
|
221 |
__( 'Embed livestreams and videos', 'tribe-common' ),
|
222 |
],
|
223 |
+
'image' => 'images/shop/virtual-events.jpg',
|
224 |
+
'logo' => 'images/logo/virtual-events.svg',
|
225 |
+
'is_installed' => defined( 'EVENTS_VIRTUAL_FILE' ),
|
226 |
+
'free' => false,
|
227 |
'active_installs' => 2500,
|
228 |
+
],
|
229 |
+
];
|
230 |
|
231 |
return $products;
|
232 |
}
|
common/src/Tribe/Post_History.php
CHANGED
@@ -47,16 +47,16 @@ class Tribe__Post_History {
|
|
47 |
* @param string $message
|
48 |
* @param array $data
|
49 |
*/
|
50 |
-
public function add_entry( $message, array $data =
|
51 |
$datetime = current_time( 'mysql' );
|
52 |
$checksum = uniqid( substr( hash( 'md5', $datetime . $message . serialize( $data ) ), 0, 8 ) . '_' );
|
53 |
|
54 |
-
$log_entry = wp_slash( json_encode(
|
55 |
'datetime' => $datetime,
|
56 |
'message' => $message,
|
57 |
'data' => $data,
|
58 |
'checksum' => $checksum,
|
59 |
-
|
60 |
|
61 |
add_post_meta( $this->post_id, self::HISTORY_KEY, $log_entry );
|
62 |
}
|
@@ -84,7 +84,7 @@ class Tribe__Post_History {
|
|
84 |
* @return array
|
85 |
*/
|
86 |
public function get_entries() {
|
87 |
-
$entries =
|
88 |
|
89 |
foreach ( get_post_meta( $this->post_id, self::HISTORY_KEY ) as $log_entry ) {
|
90 |
$log_entry = json_decode( $log_entry );
|
47 |
* @param string $message
|
48 |
* @param array $data
|
49 |
*/
|
50 |
+
public function add_entry( $message, array $data = [] ) {
|
51 |
$datetime = current_time( 'mysql' );
|
52 |
$checksum = uniqid( substr( hash( 'md5', $datetime . $message . serialize( $data ) ), 0, 8 ) . '_' );
|
53 |
|
54 |
+
$log_entry = wp_slash( json_encode( [
|
55 |
'datetime' => $datetime,
|
56 |
'message' => $message,
|
57 |
'data' => $data,
|
58 |
'checksum' => $checksum,
|
59 |
+
] ) );
|
60 |
|
61 |
add_post_meta( $this->post_id, self::HISTORY_KEY, $log_entry );
|
62 |
}
|
84 |
* @return array
|
85 |
*/
|
86 |
public function get_entries() {
|
87 |
+
$entries = [];
|
88 |
|
89 |
foreach ( get_post_meta( $this->post_id, self::HISTORY_KEY ) as $log_entry ) {
|
90 |
$log_entry = json_decode( $log_entry );
|
common/src/Tribe/Promise.php
CHANGED
@@ -60,13 +60,13 @@ class Tribe__Promise extends Tribe__Process__Queue {
|
|
60 |
* @param array $extra_args An array of extra arguments that will be passed to the
|
61 |
* callback function.
|
62 |
*/
|
63 |
-
public function __construct( $callback = null, array $items = null, array $extra_args =
|
64 |
parent::__construct();
|
65 |
|
66 |
if ( ! empty( $callback ) && ! empty( $items ) ) {
|
67 |
foreach ( $items as $target ) {
|
68 |
$item['callback'] = $callback;
|
69 |
-
$item['args'] = array_merge(
|
70 |
$this->push_to_queue( $item );
|
71 |
}
|
72 |
}
|
@@ -272,7 +272,7 @@ class Tribe__Promise extends Tribe__Process__Queue {
|
|
272 |
*/
|
273 |
protected function unpack_callback( $callback ) {
|
274 |
if ( $callback instanceof Tribe__Utils__Callback ) {
|
275 |
-
$callback =
|
276 |
}
|
277 |
|
278 |
return $callback;
|
60 |
* @param array $extra_args An array of extra arguments that will be passed to the
|
61 |
* callback function.
|
62 |
*/
|
63 |
+
public function __construct( $callback = null, array $items = null, array $extra_args = [] ) {
|
64 |
parent::__construct();
|
65 |
|
66 |
if ( ! empty( $callback ) && ! empty( $items ) ) {
|
67 |
foreach ( $items as $target ) {
|
68 |
$item['callback'] = $callback;
|
69 |
+
$item['args'] = array_merge( [ $target ], $extra_args );
|
70 |
$this->push_to_queue( $item );
|
71 |
}
|
72 |
}
|
272 |
*/
|
273 |
protected function unpack_callback( $callback ) {
|
274 |
if ( $callback instanceof Tribe__Utils__Callback ) {
|
275 |
+
$callback = [ tribe( $callback->get_slug() ), $callback->get_method() ];
|
276 |
}
|
277 |
|
278 |
return $callback;
|
common/src/Tribe/Promoter/PUE.php
CHANGED
@@ -23,10 +23,10 @@ class Tribe__Promoter__PUE {
|
|
23 |
* @since 4.9
|
24 |
*/
|
25 |
public function load() {
|
26 |
-
$this->pue_checker = new Tribe__PUE__Checker( 'http://tri.be/', $this->slug,
|
27 |
'context' => 'service',
|
28 |
'plugin_name' => __( 'Promoter', 'tribe-common' ),
|
29 |
-
|
30 |
}
|
31 |
|
32 |
/**
|
@@ -57,10 +57,10 @@ class Tribe__Promoter__PUE {
|
|
57 |
return false;
|
58 |
}
|
59 |
|
60 |
-
return
|
61 |
'key' => $key,
|
62 |
'is_network_key' => $is_network_key,
|
63 |
-
|
64 |
}
|
65 |
|
66 |
/**
|
23 |
* @since 4.9
|
24 |
*/
|
25 |
public function load() {
|
26 |
+
$this->pue_checker = new Tribe__PUE__Checker( 'http://tri.be/', $this->slug, [
|
27 |
'context' => 'service',
|
28 |
'plugin_name' => __( 'Promoter', 'tribe-common' ),
|
29 |
+
] );
|
30 |
}
|
31 |
|
32 |
/**
|
57 |
return false;
|
58 |
}
|
59 |
|
60 |
+
return [
|
61 |
'key' => $key,
|
62 |
'is_network_key' => $is_network_key,
|
63 |
+
];
|
64 |
}
|
65 |
|
66 |
/**
|
common/src/Tribe/REST/Post_Repository.php
CHANGED
@@ -14,11 +14,11 @@ class Tribe__REST__Post_Repository {
|
|
14 |
$full_url = get_attachment_link( $image_id );
|
15 |
$file = get_attached_file( $image_id );
|
16 |
|
17 |
-
$data =
|
18 |
'url' => $full_url,
|
19 |
'id' => $image_id,
|
20 |
'extension' => pathinfo( $file, PATHINFO_EXTENSION ),
|
21 |
-
|
22 |
|
23 |
$metadata = wp_get_attachment_metadata( $image_id );
|
24 |
|
@@ -49,26 +49,26 @@ class Tribe__REST__Post_Repository {
|
|
49 |
*/
|
50 |
protected function get_date_details( $date ) {
|
51 |
if ( empty( $date ) ) {
|
52 |
-
return
|
53 |
'year' => '',
|
54 |
'month' => '',
|
55 |
'day' => '',
|
56 |
'hour' => '',
|
57 |
'minutes' => '',
|
58 |
'seconds' => '',
|
59 |
-
|
60 |
}
|
61 |
|
62 |
$time = strtotime( $date );
|
63 |
|
64 |
-
return
|
65 |
'year' => date( 'Y', $time ),
|
66 |
'month' => date( 'm', $time ),
|
67 |
'day' => date( 'd', $time ),
|
68 |
'hour' => date( 'H', $time ),
|
69 |
'minutes' => date( 'i', $time ),
|
70 |
'seconds' => date( 's', $time ),
|
71 |
-
|
72 |
}
|
73 |
|
74 |
/**
|
@@ -80,15 +80,19 @@ class Tribe__REST__Post_Repository {
|
|
80 |
*
|
81 |
* @return array
|
82 |
*/
|
83 |
-
protected function format_and_sort_cost_couples( array $cost_couples =
|
84 |
global $wp_locale;
|
85 |
|
86 |
-
$cost_values =
|
87 |
foreach ( $cost_couples as $key => $value ) {
|
88 |
-
$value = str_replace(
|
89 |
-
|
90 |
-
|
91 |
-
|
|
|
|
|
|
|
|
|
92 |
if ( is_numeric( $value ) ) {
|
93 |
$cost_values[] = $value;
|
94 |
} else {
|
14 |
$full_url = get_attachment_link( $image_id );
|
15 |
$file = get_attached_file( $image_id );
|
16 |
|
17 |
+
$data = [
|
18 |
'url' => $full_url,
|
19 |
'id' => $image_id,
|
20 |
'extension' => pathinfo( $file, PATHINFO_EXTENSION ),
|
21 |
+
];
|
22 |
|
23 |
$metadata = wp_get_attachment_metadata( $image_id );
|
24 |
|
49 |
*/
|
50 |
protected function get_date_details( $date ) {
|
51 |
if ( empty( $date ) ) {
|
52 |
+
return [
|
53 |
'year' => '',
|
54 |
'month' => '',
|
55 |
'day' => '',
|
56 |
'hour' => '',
|
57 |
'minutes' => '',
|
58 |
'seconds' => '',
|
59 |
+
];
|
60 |
}
|
61 |
|
62 |
$time = strtotime( $date );
|
63 |
|
64 |
+
return [
|
65 |
'year' => date( 'Y', $time ),
|
66 |
'month' => date( 'm', $time ),
|
67 |
'day' => date( 'd', $time ),
|
68 |
'hour' => date( 'H', $time ),
|
69 |
'minutes' => date( 'i', $time ),
|
70 |
'seconds' => date( 's', $time ),
|
71 |
+
];
|
72 |
}
|
73 |
|
74 |
/**
|
80 |
*
|
81 |
* @return array
|
82 |
*/
|
83 |
+
protected function format_and_sort_cost_couples( array $cost_couples = [] ) {
|
84 |
global $wp_locale;
|
85 |
|
86 |
+
$cost_values = [];
|
87 |
foreach ( $cost_couples as $key => $value ) {
|
88 |
+
$value = str_replace(
|
89 |
+
[
|
90 |
+
$wp_locale->number_format['decimal_point'],
|
91 |
+
$wp_locale->number_format['thousands_sep'],
|
92 |
+
],
|
93 |
+
[ '.', '' ],
|
94 |
+
'' . $value
|
95 |
+
);
|
96 |
if ( is_numeric( $value ) ) {
|
97 |
$cost_values[] = $value;
|
98 |
} else {
|
common/src/Tribe/Repository.php
CHANGED
@@ -14,19 +14,19 @@ abstract class Tribe__Repository
|
|
14 |
/**
|
15 |
* @var array An array of keys that cannot be updated on this repository.
|
16 |
*/
|
17 |
-
protected static $blocked_keys =
|
18 |
'ID',
|
19 |
'post_type',
|
20 |
'post_modified',
|
21 |
'post_modified_gmt',
|
22 |
'guid',
|
23 |
'comment_count',
|
24 |
-
|
25 |
|
26 |
/**
|
27 |
* @var array A list of the default filters supported and implemented by the repository.
|
28 |
*/
|
29 |
-
protected static $default_modifiers =
|
30 |
'p',
|
31 |
'author',
|
32 |
'author_name',
|
@@ -121,22 +121,22 @@ abstract class Tribe__Repository
|
|
121 |
'term_in',
|
122 |
'term_not_in',
|
123 |
'term_and',
|
124 |
-
|
125 |
|
126 |
/**
|
127 |
* @var array An array of default arguments that will be applied to all queries.
|
128 |
*/
|
129 |
-
protected static $common_args =
|
130 |
'post_type' => 'post',
|
131 |
'suppress_filters' => false,
|
132 |
-
'posts_per_page' => -
|
133 |
-
|
134 |
|
135 |
/**
|
136 |
* @var array A list of query modifiers that will trigger a overriding merge, thus
|
137 |
* replacing previous values, when set multiple times.
|
138 |
*/
|
139 |
-
protected static $replacing_modifiers =
|
140 |
'p',
|
141 |
'author',
|
142 |
'author_name',
|
@@ -191,20 +191,22 @@ abstract class Tribe__Repository
|
|
191 |
'guid',
|
192 |
'perm',
|
193 |
'order',
|
194 |
-
|
195 |
|
196 |
/**
|
197 |
* @var int
|
198 |
*/
|
199 |
protected static $meta_alias = 0;
|
|
|
200 |
/**
|
201 |
* @var array A list of keys that denote the value to check should be cast to array.
|
202 |
*/
|
203 |
-
protected static $multi_value_keys =
|
|
|
204 |
/**
|
205 |
* @var array A map of SQL comparison operators to their human-readable counterpart.
|
206 |
*/
|
207 |
-
protected static $comparison_operators =
|
208 |
'=' => 'equals',
|
209 |
'!=' => 'not-equals',
|
210 |
'>' => 'gt',
|
@@ -221,7 +223,7 @@ abstract class Tribe__Repository
|
|
221 |
'NOT EXISTS' => 'not-exists',
|
222 |
'REGEXP' => 'regexp',
|
223 |
'NOT REGEXP' => 'not-regexp',
|
224 |
-
|
225 |
|
226 |
/**
|
227 |
* A counter to keep track, on the class level, of the aliases generated for the terms table
|
@@ -238,7 +240,7 @@ abstract class Tribe__Repository
|
|
238 |
/**
|
239 |
* @var array The post IDs that will be updated.
|
240 |
*/
|
241 |
-
protected $ids =
|
242 |
/**
|
243 |
* @var bool Whether the post IDs to update have already been fetched or not.
|
244 |
*/
|
@@ -246,101 +248,114 @@ abstract class Tribe__Repository
|
|
246 |
/**
|
247 |
* @var array The updates that will be saved to the database.
|
248 |
*/
|
249 |
-
protected $updates =
|
250 |
|
251 |
/**
|
252 |
* @var array A list of taxonomies this repository will recognize.
|
253 |
*/
|
254 |
-
protected $taxonomies =
|
255 |
|
256 |
/**
|
257 |
* @var array A map detailing which fields should be converted from a
|
258 |
* GMT time and date to a local one.
|
259 |
*/
|
260 |
-
protected $to_local_time_map =
|
261 |
'post_date_gmt' => 'post_date',
|
262 |
-
|
|
|
263 |
/**
|
264 |
* @var array A map detailing which fields should be converted from a
|
265 |
* localized time and date to a GMT one.
|
266 |
*/
|
267 |
-
protected $to_gmt_map =
|
268 |
'post_date' => 'post_date_gmt',
|
269 |
-
|
270 |
|
271 |
/**
|
272 |
* @var array
|
273 |
*/
|
274 |
-
protected $default_args =
|
|
|
275 |
/**
|
276 |
* @var array An array of query modifying callbacks populated while applying
|
277 |
* the filters.
|
278 |
*/
|
279 |
-
protected $query_modifiers =
|
|
|
280 |
/**
|
281 |
* @var bool Whether the current query is void or not.
|
282 |
*/
|
283 |
protected $void_query = false;
|
|
|
284 |
/**
|
285 |
* @var array An array of query arguments that will be populated while applying
|
286 |
* filters.
|
287 |
*/
|
288 |
-
protected $query_args =
|
289 |
-
'meta_query' =>
|
290 |
-
'tax_query' =>
|
291 |
-
'date_query' =>
|
292 |
-
|
|
|
293 |
/**
|
294 |
* @var array An array of query arguments that support 'relation'.
|
295 |
*/
|
296 |
-
protected $relation_query_args =
|
297 |
'meta_query',
|
298 |
'tax_query',
|
299 |
'date_query',
|
300 |
-
|
|
|
301 |
/**
|
302 |
* @var WP_Query The current query object built and modified by the instance.
|
303 |
*/
|
304 |
protected $current_query;
|
|
|
305 |
/**
|
306 |
* @var array An associative array of the filters that will be applied and the used values.
|
307 |
*/
|
308 |
-
protected $current_filters =
|
|
|
309 |
/**
|
310 |
* @var string|null The current filter being applied.
|
311 |
*/
|
312 |
protected $current_filter;
|
|
|
313 |
/**
|
314 |
* @var Tribe__Repository__Query_Filters
|
315 |
*/
|
316 |
public $filter_query;
|
|
|
317 |
/**
|
318 |
* @var string The filter that should be used to get a post by its primary key.
|
319 |
*/
|
320 |
protected $primary_key = 'p';
|
|
|
321 |
/**
|
322 |
* @var array A map of callbacks in the shape [ <slug> => <callback|primitive> ]
|
323 |
*/
|
324 |
-
protected $schema =
|
325 |
|
326 |
/**
|
327 |
* @var array A map of schema slugs and their meta keys to be queried.
|
328 |
*/
|
329 |
-
protected $simple_meta_schema =
|
330 |
|
331 |
/**
|
332 |
* @var array A map of schema slugs and their taxonomies to be queried.
|
333 |
*/
|
334 |
-
protected $simple_tax_schema =
|
335 |
|
336 |
/**
|
337 |
* @var Tribe__Repository__Interface
|
338 |
*/
|
339 |
protected $main_repository;
|
|
|
340 |
/**
|
341 |
* @var Tribe__Repository__Formatter_Interface
|
342 |
*/
|
343 |
protected $formatter;
|
|
|
344 |
/**
|
345 |
* @var bool
|
346 |
*/
|
@@ -360,7 +375,7 @@ abstract class Tribe__Repository
|
|
360 |
*
|
361 |
* @var array
|
362 |
*/
|
363 |
-
protected $update_fields_aliases =
|
364 |
'title' => 'post_title',
|
365 |
'content' => 'post_content',
|
366 |
'description' => 'post_content',
|
@@ -374,7 +389,7 @@ abstract class Tribe__Repository
|
|
374 |
'date_utc' => 'post_date_gmt',
|
375 |
'tag' => 'post_tag',
|
376 |
'image' => '_thumbnail_id',
|
377 |
-
|
378 |
|
379 |
/**
|
380 |
* The default create args that will be used by the repository
|
@@ -423,9 +438,9 @@ abstract class Tribe__Repository
|
|
423 |
*/
|
424 |
public function __construct() {
|
425 |
$this->filter_query = new Tribe__Repository__Query_Filters();
|
426 |
-
$this->default_args = array_merge(
|
427 |
-
$post_types = (array) Tribe__Utils__Array::get( $this->default_args, 'post_type',
|
428 |
-
$this->taxonomies = get_taxonomies(
|
429 |
|
430 |
/**
|
431 |
* Allow plugins to init their classes and setup hooks at the initial setup of a repository.
|
@@ -502,7 +517,8 @@ abstract class Tribe__Repository
|
|
502 |
*/
|
503 |
public function where( $key, $value = null ) {
|
504 |
$call_args = func_get_args();
|
505 |
-
|
|
|
506 |
}
|
507 |
|
508 |
/**
|
@@ -650,7 +666,7 @@ abstract class Tribe__Repository
|
|
650 |
*/
|
651 |
public function all() {
|
652 |
if ( $this->void_query ) {
|
653 |
-
return
|
654 |
}
|
655 |
|
656 |
$query = $this->build_query();
|
@@ -691,7 +707,7 @@ abstract class Tribe__Repository
|
|
691 |
*/
|
692 |
$formatted = $return_ids
|
693 |
? $results
|
694 |
-
: array_filter( array_map(
|
695 |
|
696 |
// Reset the fields if required.
|
697 |
$query->set( 'fields', $original_fields_value );
|
@@ -722,7 +738,7 @@ abstract class Tribe__Repository
|
|
722 |
public function order( $order = 'ASC' ) {
|
723 |
$order = strtoupper( $order );
|
724 |
|
725 |
-
if ( ! in_array( $order,
|
726 |
return $this;
|
727 |
}
|
728 |
|
@@ -754,7 +770,7 @@ abstract class Tribe__Repository
|
|
754 |
* {@inheritdoc}
|
755 |
*/
|
756 |
public function permission( $permission ) {
|
757 |
-
if ( ! in_array( $permission,
|
758 |
return $this;
|
759 |
}
|
760 |
|
@@ -930,10 +946,10 @@ abstract class Tribe__Repository
|
|
930 |
* {@inheritdoc}
|
931 |
*/
|
932 |
public function nth( $n ) {
|
933 |
-
$per_page = (int) Tribe__Utils__Array::get_in_any(
|
934 |
$this->query_args,
|
935 |
$this->default_args,
|
936 |
-
|
937 |
|
938 |
if ( - 1 !== $per_page && $n > $per_page ) {
|
939 |
return null;
|
@@ -1010,12 +1026,12 @@ abstract class Tribe__Repository
|
|
1010 |
$matching_ids = $this->get_ids();
|
1011 |
|
1012 |
if ( empty( $matching_ids ) ) {
|
1013 |
-
return
|
1014 |
}
|
1015 |
|
1016 |
$spliced = array_splice( $matching_ids, 0, $n );
|
1017 |
|
1018 |
-
return $return_ids ? $spliced : array_map(
|
1019 |
}
|
1020 |
|
1021 |
/**
|
@@ -1125,20 +1141,11 @@ abstract class Tribe__Repository
|
|
1125 |
*/
|
1126 |
$this->query_args = array_merge( $this->query_args, $query_modifier );
|
1127 |
} else {
|
1128 |
-
$query_args = $this->query_args;
|
1129 |
-
|
1130 |
-
// Handle relation separately because we do not want that to merge recursively
|
1131 |
-
foreach ( $this->relation_query_args as $query_arg ) {
|
1132 |
-
if ( isset( $query_args[ $query_arg ]['relation'], $query_modifier[ $query_arg ]['relation'] ) ) {
|
1133 |
-
unset( $query_args[ $query_arg ]['relation'] );
|
1134 |
-
}
|
1135 |
-
}
|
1136 |
-
|
1137 |
/**
|
1138 |
* We do a recursive merge to allow "stacking" of same kind of queries;
|
1139 |
-
* e.g. two or more `tax_query
|
1140 |
*/
|
1141 |
-
$this->query_args =
|
1142 |
}
|
1143 |
} else {
|
1144 |
/**
|
@@ -1186,18 +1193,18 @@ abstract class Tribe__Repository
|
|
1186 |
if ( $this->has_default_modifier( $key ) ) {
|
1187 |
// let's use the default filters normalizing the key first
|
1188 |
$call_args[0] = $this->normalize_key( $key );
|
1189 |
-
$query_modifier = call_user_func_array(
|
1190 |
} elseif ( 2 === count( $call_args ) ) {
|
1191 |
// Pass query argument $key with the single value argument.
|
1192 |
-
$query_modifier =
|
1193 |
$key => $call_args[1],
|
1194 |
-
|
1195 |
} else {
|
1196 |
// More than two $call_args were sent (key, value), assume it was meant for a filter that was not defined yet.
|
1197 |
throw Tribe__Repository__Usage_Error::because_the_read_filter_is_not_defined( $key, $this );
|
1198 |
}
|
1199 |
} else {
|
1200 |
-
$query_modifier = call_user_func_array(
|
1201 |
}
|
1202 |
|
1203 |
return $query_modifier;
|
@@ -1247,7 +1254,7 @@ abstract class Tribe__Repository
|
|
1247 |
// `ID` to `id`
|
1248 |
$normalized = strtolower( $key );
|
1249 |
|
1250 |
-
$post_prefixed =
|
1251 |
'password',
|
1252 |
'name__in',
|
1253 |
'_in',
|
@@ -1262,7 +1269,7 @@ abstract class Tribe__Repository
|
|
1262 |
'modified',
|
1263 |
'modified_gmt',
|
1264 |
'content_filtered',
|
1265 |
-
|
1266 |
|
1267 |
if ( in_array( $key, $post_prefixed, true ) ) {
|
1268 |
$normalized = 'post_' . $key;
|
@@ -1320,11 +1327,11 @@ abstract class Tribe__Repository
|
|
1320 |
$to_update = $this->get_ids();
|
1321 |
|
1322 |
if ( empty( $to_update ) ) {
|
1323 |
-
return $return_promise ? new Tribe__Promise() :
|
1324 |
}
|
1325 |
|
1326 |
-
$exit =
|
1327 |
-
$postarrs =
|
1328 |
|
1329 |
foreach ( $to_update as $id ) {
|
1330 |
$postarrs[ $id ] = $this->filter_postarr_for_update( $this->build_postarr( $id ), $id );
|
@@ -1355,7 +1362,7 @@ abstract class Tribe__Repository
|
|
1355 |
*/
|
1356 |
public function get_ids() {
|
1357 |
if ( $this->void_query ) {
|
1358 |
-
return
|
1359 |
}
|
1360 |
|
1361 |
|
@@ -1387,7 +1394,7 @@ abstract class Tribe__Repository
|
|
1387 |
* Extending classes might use this method to run sub-queries
|
1388 |
* and signal a void query; let's return an empty array.
|
1389 |
*/
|
1390 |
-
return
|
1391 |
}
|
1392 |
}
|
1393 |
|
@@ -1533,7 +1540,7 @@ abstract class Tribe__Repository
|
|
1533 |
public function where_meta_related_by( $meta_keys, $compare, $field = null, $values = null ) {
|
1534 |
$meta_keys = Tribe__Utils__Array::list_to_array( $meta_keys );
|
1535 |
|
1536 |
-
if ( ! in_array( $compare,
|
1537 |
if ( empty( $field ) || empty( $values ) ) {
|
1538 |
throw Tribe__Repository__Usage_Error::because_this_comparison_operator_requires_fields_and_values( $meta_keys, $compare, $this );
|
1539 |
}
|
@@ -1591,7 +1598,7 @@ abstract class Tribe__Repository
|
|
1591 |
public function where_meta_related_by_meta( $meta_keys, $compare, $meta_field = null, $meta_values = null, $or_not_exists = false ) {
|
1592 |
$meta_keys = Tribe__Utils__Array::list_to_array( $meta_keys );
|
1593 |
|
1594 |
-
if ( ! in_array( $compare,
|
1595 |
if ( empty( $meta_field ) || empty( $meta_values ) ) {
|
1596 |
throw Tribe__Repository__Usage_Error::because_this_comparison_operator_requires_fields_and_values( $meta_keys, $compare, $this );
|
1597 |
}
|
@@ -1678,7 +1685,7 @@ abstract class Tribe__Repository
|
|
1678 |
$buffered_count = count( $buffered );
|
1679 |
|
1680 |
foreach ( $all_callbacks as $c ) {
|
1681 |
-
call_user_func_array(
|
1682 |
|
1683 |
if ( $buffered_count === count( $this->filter_query->get_buffered_where_clauses() ) ) {
|
1684 |
throw Tribe__Repository__Usage_Error::because_where_or_should_only_be_used_with_methods_that_add_where_clauses( $c, $this );
|
@@ -1719,12 +1726,12 @@ abstract class Tribe__Repository
|
|
1719 |
* @param string|null $by The ->by() lookup to use (defaults to meta_regexp_or_like).
|
1720 |
*/
|
1721 |
public function add_simple_meta_schema_entry( $key, $meta_key, $by = null ) {
|
1722 |
-
$this->schema[ $key ] =
|
1723 |
|
1724 |
-
$this->simple_meta_schema[ $key ] =
|
1725 |
'meta_key' => $meta_key,
|
1726 |
'by' => $by,
|
1727 |
-
|
1728 |
}
|
1729 |
|
1730 |
/**
|
@@ -1737,12 +1744,12 @@ abstract class Tribe__Repository
|
|
1737 |
* @param string|null $by The ->by() lookup to use (defaults to term_in).
|
1738 |
*/
|
1739 |
public function add_simple_tax_schema_entry( $key, $taxonomy, $by = null ) {
|
1740 |
-
$this->schema[ $key ] =
|
1741 |
|
1742 |
-
$this->simple_tax_schema[ $key ] =
|
1743 |
'taxonomy' => $taxonomy,
|
1744 |
'by' => $by,
|
1745 |
-
|
1746 |
}
|
1747 |
|
1748 |
/**
|
@@ -1764,7 +1771,7 @@ abstract class Tribe__Repository
|
|
1764 |
* @throws Tribe__Repository__Usage_Error If a filter is called with wrong arguments.
|
1765 |
*/
|
1766 |
protected function apply_default_modifier( $key, $value ) {
|
1767 |
-
$args =
|
1768 |
|
1769 |
$call_args = func_get_args();
|
1770 |
$arg_1 = isset( $call_args[2] ) ? $call_args[2] : null;
|
@@ -1776,14 +1783,14 @@ abstract class Tribe__Repository
|
|
1776 |
switch ( $key ) {
|
1777 |
default:
|
1778 |
// leverage built-in WP_Query filters
|
1779 |
-
$args =
|
1780 |
break;
|
1781 |
case 'ID':
|
1782 |
case 'id':
|
1783 |
-
$args =
|
1784 |
break;
|
1785 |
case 'search':
|
1786 |
-
$args =
|
1787 |
break;
|
1788 |
case 'post_status':
|
1789 |
$this->query_args['post_status'] = (array) $value;
|
@@ -1813,7 +1820,7 @@ abstract class Tribe__Repository
|
|
1813 |
break;
|
1814 |
case 'to_ping':
|
1815 |
$this->filter_query->to_get_posts_to_ping( $value );
|
1816 |
-
$args =
|
1817 |
break;
|
1818 |
case 'post_modified':
|
1819 |
$args = $this->get_posts_after( $value, 'post_modified' );
|
@@ -1828,7 +1835,7 @@ abstract class Tribe__Repository
|
|
1828 |
$this->filter_query->to_get_posts_with_guid_like( $value );
|
1829 |
break;
|
1830 |
case 'menu_order':
|
1831 |
-
$args =
|
1832 |
break;
|
1833 |
case 'meta':
|
1834 |
case 'meta_equals':
|
@@ -1990,7 +1997,7 @@ abstract class Tribe__Repository
|
|
1990 |
* @return array
|
1991 |
*/
|
1992 |
protected function get_posts_after( $value, $column = 'post_date' ) {
|
1993 |
-
$timezone = in_array( $column,
|
1994 |
? 'UTC'
|
1995 |
: Tribe__Timezones::generate_timezone_string_from_utc_offset( Tribe__Timezones::wp_timezone_string() );
|
1996 |
|
@@ -2002,16 +2009,16 @@ abstract class Tribe__Repository
|
|
2002 |
|
2003 |
$array_key = sprintf( '%s-after', $column );
|
2004 |
|
2005 |
-
return
|
2006 |
-
'date_query' =>
|
2007 |
'relation' => 'AND',
|
2008 |
-
$array_key =>
|
2009 |
'inclusive' => true,
|
2010 |
'column' => $column,
|
2011 |
'after' => $date->format( 'Y-m-d H:i:s' ),
|
2012 |
-
|
2013 |
-
|
2014 |
-
|
2015 |
}
|
2016 |
|
2017 |
/**
|
@@ -2025,7 +2032,7 @@ abstract class Tribe__Repository
|
|
2025 |
* @return array
|
2026 |
*/
|
2027 |
protected function get_posts_before( $value, $column = 'post_date' ) {
|
2028 |
-
$timezone = in_array( $column,
|
2029 |
? 'UTC'
|
2030 |
: Tribe__Timezones::generate_timezone_string_from_utc_offset( Tribe__Timezones::wp_timezone_string() );
|
2031 |
|
@@ -2037,16 +2044,16 @@ abstract class Tribe__Repository
|
|
2037 |
|
2038 |
$array_key = sprintf( '%s-before', $column );
|
2039 |
|
2040 |
-
return
|
2041 |
-
'date_query' =>
|
2042 |
'relation' => 'AND',
|
2043 |
-
$array_key =>
|
2044 |
'inclusive' => true,
|
2045 |
'column' => $column,
|
2046 |
'before' => $date->format( 'Y-m-d H:i:s' ),
|
2047 |
-
|
2048 |
-
|
2049 |
-
|
2050 |
}
|
2051 |
|
2052 |
/**
|
@@ -2071,16 +2078,16 @@ abstract class Tribe__Repository
|
|
2071 |
if ( count( $meta_keys ) === 1 ) {
|
2072 |
$array_key = $this->sql_slug( $meta_keys[0], $postfix );
|
2073 |
|
2074 |
-
$args =
|
2075 |
-
'meta_query' =>
|
2076 |
-
$array_key =>
|
2077 |
'key' => $meta_keys[0],
|
2078 |
'compare' => strtoupper( $compare ),
|
2079 |
-
|
2080 |
-
|
2081 |
-
|
2082 |
|
2083 |
-
if ( ! in_array( $compare,
|
2084 |
$args['meta_query'][ $array_key ]['value'] = $meta_value;
|
2085 |
}
|
2086 |
|
@@ -2167,22 +2174,22 @@ abstract class Tribe__Repository
|
|
2167 |
* @return array
|
2168 |
*/
|
2169 |
protected function build_tax_query( $taxonomy, $terms, $field, $operator ) {
|
2170 |
-
if ( in_array( $operator,
|
2171 |
$array_key = $this->sql_slug( $taxonomy, $operator );
|
2172 |
} else {
|
2173 |
$array_key = $this->sql_slug( $taxonomy, $field, $operator );
|
2174 |
}
|
2175 |
|
2176 |
-
return
|
2177 |
-
'tax_query' =>
|
2178 |
-
$array_key =>
|
2179 |
'taxonomy' => $taxonomy,
|
2180 |
'field' => $field,
|
2181 |
'terms' => $terms,
|
2182 |
'operator' => strtoupper( $operator ),
|
2183 |
-
|
2184 |
-
|
2185 |
-
|
2186 |
}
|
2187 |
|
2188 |
/**
|
@@ -2226,12 +2233,12 @@ abstract class Tribe__Repository
|
|
2226 |
public function prepare_interval( $values, $format = '%s', $operator = 'IN' ) {
|
2227 |
$values = Tribe__Utils__Array::list_to_array( $values );
|
2228 |
|
2229 |
-
$prepared =
|
2230 |
foreach ( $values as $value ) {
|
2231 |
$prepared[] = $this->prepare_value( $value, $format );
|
2232 |
}
|
2233 |
|
2234 |
-
return in_array( $operator,
|
2235 |
? sprintf( '%s AND %s', $prepared[0], $prepared[1] )
|
2236 |
: sprintf( '(%s)', implode( ',', $prepared ) );
|
2237 |
}
|
@@ -2432,7 +2439,7 @@ abstract class Tribe__Repository
|
|
2432 |
$to_delete = $this->get_ids();
|
2433 |
|
2434 |
if ( empty( $to_delete ) ) {
|
2435 |
-
return $return_promise ? new Tribe__Promise() :
|
2436 |
}
|
2437 |
|
2438 |
|
@@ -2862,10 +2869,10 @@ abstract class Tribe__Repository
|
|
2862 |
* {@inheritdoc}
|
2863 |
*/
|
2864 |
public function build_postarr( $id = null ) {
|
2865 |
-
$postarr =
|
2866 |
-
'tax_input' =>
|
2867 |
-
'meta_input' =>
|
2868 |
-
|
2869 |
|
2870 |
/*
|
2871 |
* The check is lax here by design: we leave space for the client code
|
@@ -3042,7 +3049,7 @@ abstract class Tribe__Repository
|
|
3042 |
/**
|
3043 |
* {@inheritdoc}
|
3044 |
*/
|
3045 |
-
public function filter( $args =
|
3046 |
$list = new WP_List_Util( $this->all() );
|
3047 |
|
3048 |
return $list->filter( $args, $operator );
|
@@ -3051,7 +3058,7 @@ abstract class Tribe__Repository
|
|
3051 |
/**
|
3052 |
* {@inheritdoc}
|
3053 |
*/
|
3054 |
-
public function sort( $orderby =
|
3055 |
$list = new WP_List_Util( $this->all() );
|
3056 |
|
3057 |
return $list->sort( $orderby, $order, $preserve_keys );
|
14 |
/**
|
15 |
* @var array An array of keys that cannot be updated on this repository.
|
16 |
*/
|
17 |
+
protected static $blocked_keys = [
|
18 |
'ID',
|
19 |
'post_type',
|
20 |
'post_modified',
|
21 |
'post_modified_gmt',
|
22 |
'guid',
|
23 |
'comment_count',
|
24 |
+
];
|
25 |
|
26 |
/**
|
27 |
* @var array A list of the default filters supported and implemented by the repository.
|
28 |
*/
|
29 |
+
protected static $default_modifiers = [
|
30 |
'p',
|
31 |
'author',
|
32 |
'author_name',
|
121 |
'term_in',
|
122 |
'term_not_in',
|
123 |
'term_and',
|
124 |
+
];
|
125 |
|
126 |
/**
|
127 |
* @var array An array of default arguments that will be applied to all queries.
|
128 |
*/
|
129 |
+
protected static $common_args = [
|
130 |
'post_type' => 'post',
|
131 |
'suppress_filters' => false,
|
132 |
+
'posts_per_page' => -1,
|
133 |
+
];
|
134 |
|
135 |
/**
|
136 |
* @var array A list of query modifiers that will trigger a overriding merge, thus
|
137 |
* replacing previous values, when set multiple times.
|
138 |
*/
|
139 |
+
protected static $replacing_modifiers = [
|
140 |
'p',
|
141 |
'author',
|
142 |
'author_name',
|
191 |
'guid',
|
192 |
'perm',
|
193 |
'order',
|
194 |
+
];
|
195 |
|
196 |
/**
|
197 |
* @var int
|
198 |
*/
|
199 |
protected static $meta_alias = 0;
|
200 |
+
|
201 |
/**
|
202 |
* @var array A list of keys that denote the value to check should be cast to array.
|
203 |
*/
|
204 |
+
protected static $multi_value_keys = [ 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN' ];
|
205 |
+
|
206 |
/**
|
207 |
* @var array A map of SQL comparison operators to their human-readable counterpart.
|
208 |
*/
|
209 |
+
protected static $comparison_operators = [
|
210 |
'=' => 'equals',
|
211 |
'!=' => 'not-equals',
|
212 |
'>' => 'gt',
|
223 |
'NOT EXISTS' => 'not-exists',
|
224 |
'REGEXP' => 'regexp',
|
225 |
'NOT REGEXP' => 'not-regexp',
|
226 |
+
];
|
227 |
|
228 |
/**
|
229 |
* A counter to keep track, on the class level, of the aliases generated for the terms table
|
240 |
/**
|
241 |
* @var array The post IDs that will be updated.
|
242 |
*/
|
243 |
+
protected $ids = [];
|
244 |
/**
|
245 |
* @var bool Whether the post IDs to update have already been fetched or not.
|
246 |
*/
|
248 |
/**
|
249 |
* @var array The updates that will be saved to the database.
|
250 |
*/
|
251 |
+
protected $updates = [];
|
252 |
|
253 |
/**
|
254 |
* @var array A list of taxonomies this repository will recognize.
|
255 |
*/
|
256 |
+
protected $taxonomies = [];
|
257 |
|
258 |
/**
|
259 |
* @var array A map detailing which fields should be converted from a
|
260 |
* GMT time and date to a local one.
|
261 |
*/
|
262 |
+
protected $to_local_time_map = [
|
263 |
'post_date_gmt' => 'post_date',
|
264 |
+
];
|
265 |
+
|
266 |
/**
|
267 |
* @var array A map detailing which fields should be converted from a
|
268 |
* localized time and date to a GMT one.
|
269 |
*/
|
270 |
+
protected $to_gmt_map = [
|
271 |
'post_date' => 'post_date_gmt',
|
272 |
+
];
|
273 |
|
274 |
/**
|
275 |
* @var array
|
276 |
*/
|
277 |
+
protected $default_args = [ 'post_type' => 'post' ];
|
278 |
+
|
279 |
/**
|
280 |
* @var array An array of query modifying callbacks populated while applying
|
281 |
* the filters.
|
282 |
*/
|
283 |
+
protected $query_modifiers = [];
|
284 |
+
|
285 |
/**
|
286 |
* @var bool Whether the current query is void or not.
|
287 |
*/
|
288 |
protected $void_query = false;
|
289 |
+
|
290 |
/**
|
291 |
* @var array An array of query arguments that will be populated while applying
|
292 |
* filters.
|
293 |
*/
|
294 |
+
protected $query_args = [
|
295 |
+
'meta_query' => [ 'relation' => 'AND' ],
|
296 |
+
'tax_query' => [ 'relation' => 'AND' ],
|
297 |
+
'date_query' => [ 'relation' => 'AND' ],
|
298 |
+
];
|
299 |
+
|
300 |
/**
|
301 |
* @var array An array of query arguments that support 'relation'.
|
302 |
*/
|
303 |
+
protected $relation_query_args = [
|
304 |
'meta_query',
|
305 |
'tax_query',
|
306 |
'date_query',
|
307 |
+
];
|
308 |
+
|
309 |
/**
|
310 |
* @var WP_Query The current query object built and modified by the instance.
|
311 |
*/
|
312 |
protected $current_query;
|
313 |
+
|
314 |
/**
|
315 |
* @var array An associative array of the filters that will be applied and the used values.
|
316 |
*/
|
317 |
+
protected $current_filters = [];
|
318 |
+
|
319 |
/**
|
320 |
* @var string|null The current filter being applied.
|
321 |
*/
|
322 |
protected $current_filter;
|
323 |
+
|
324 |
/**
|
325 |
* @var Tribe__Repository__Query_Filters
|
326 |
*/
|
327 |
public $filter_query;
|
328 |
+
|
329 |
/**
|
330 |
* @var string The filter that should be used to get a post by its primary key.
|
331 |
*/
|
332 |
protected $primary_key = 'p';
|
333 |
+
|
334 |
/**
|
335 |
* @var array A map of callbacks in the shape [ <slug> => <callback|primitive> ]
|
336 |
*/
|
337 |
+
protected $schema = [];
|
338 |
|
339 |
/**
|
340 |
* @var array A map of schema slugs and their meta keys to be queried.
|
341 |
*/
|
342 |
+
protected $simple_meta_schema = [];
|
343 |
|
344 |
/**
|
345 |
* @var array A map of schema slugs and their taxonomies to be queried.
|
346 |
*/
|
347 |
+
protected $simple_tax_schema = [];
|
348 |
|
349 |
/**
|
350 |
* @var Tribe__Repository__Interface
|
351 |
*/
|
352 |
protected $main_repository;
|
353 |
+
|
354 |
/**
|
355 |
* @var Tribe__Repository__Formatter_Interface
|
356 |
*/
|
357 |
protected $formatter;
|
358 |
+
|
359 |
/**
|
360 |
* @var bool
|
361 |
*/
|
375 |
*
|
376 |
* @var array
|
377 |
*/
|
378 |
+
protected $update_fields_aliases = [
|
379 |
'title' => 'post_title',
|
380 |
'content' => 'post_content',
|
381 |
'description' => 'post_content',
|
389 |
'date_utc' => 'post_date_gmt',
|
390 |
'tag' => 'post_tag',
|
391 |
'image' => '_thumbnail_id',
|
392 |
+
];
|
393 |
|
394 |
/**
|
395 |
* The default create args that will be used by the repository
|
438 |
*/
|
439 |
public function __construct() {
|
440 |
$this->filter_query = new Tribe__Repository__Query_Filters();
|
441 |
+
$this->default_args = array_merge( [ 'posts_per_page' => -1 ], $this->default_args );
|
442 |
+
$post_types = (array) Tribe__Utils__Array::get( $this->default_args, 'post_type', [] );
|
443 |
+
$this->taxonomies = get_taxonomies( [ 'object_type' => $post_types ], 'names' );
|
444 |
|
445 |
/**
|
446 |
* Allow plugins to init their classes and setup hooks at the initial setup of a repository.
|
517 |
*/
|
518 |
public function where( $key, $value = null ) {
|
519 |
$call_args = func_get_args();
|
520 |
+
|
521 |
+
return call_user_func_array( [ $this, 'by' ], $call_args );
|
522 |
}
|
523 |
|
524 |
/**
|
666 |
*/
|
667 |
public function all() {
|
668 |
if ( $this->void_query ) {
|
669 |
+
return [];
|
670 |
}
|
671 |
|
672 |
$query = $this->build_query();
|
707 |
*/
|
708 |
$formatted = $return_ids
|
709 |
? $results
|
710 |
+
: array_filter( array_map( [ $this, 'format_item' ], $results ) );
|
711 |
|
712 |
// Reset the fields if required.
|
713 |
$query->set( 'fields', $original_fields_value );
|
738 |
public function order( $order = 'ASC' ) {
|
739 |
$order = strtoupper( $order );
|
740 |
|
741 |
+
if ( ! in_array( $order, [ 'ASC', 'DESC' ], true ) ) {
|
742 |
return $this;
|
743 |
}
|
744 |
|
770 |
* {@inheritdoc}
|
771 |
*/
|
772 |
public function permission( $permission ) {
|
773 |
+
if ( ! in_array( $permission, [ self::PERMISSION_READABLE, self::PERMISSION_EDITABLE ], true ) ) {
|
774 |
return $this;
|
775 |
}
|
776 |
|
946 |
* {@inheritdoc}
|
947 |
*/
|
948 |
public function nth( $n ) {
|
949 |
+
$per_page = (int) Tribe__Utils__Array::get_in_any( [
|
950 |
$this->query_args,
|
951 |
$this->default_args,
|
952 |
+
], 'posts_per_page', get_option( 'posts_per_page' ) );
|
953 |
|
954 |
if ( - 1 !== $per_page && $n > $per_page ) {
|
955 |
return null;
|
1026 |
$matching_ids = $this->get_ids();
|
1027 |
|
1028 |
if ( empty( $matching_ids ) ) {
|
1029 |
+
return [];
|
1030 |
}
|
1031 |
|
1032 |
$spliced = array_splice( $matching_ids, 0, $n );
|
1033 |
|
1034 |
+
return $return_ids ? $spliced : array_map( [ $this, 'format_item' ], $spliced );
|
1035 |
}
|
1036 |
|
1037 |
/**
|
1141 |
*/
|
1142 |
$this->query_args = array_merge( $this->query_args, $query_modifier );
|
1143 |
} else {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1144 |
/**
|
1145 |
* We do a recursive merge to allow "stacking" of same kind of queries;
|
1146 |
+
* e.g. two or more `tax_query` or `meta_query` entries should merge into one.
|
1147 |
*/
|
1148 |
+
$this->query_args = Arr::merge_recursive_query_vars( $this->query_args, $query_modifier );
|
1149 |
}
|
1150 |
} else {
|
1151 |
/**
|
1193 |
if ( $this->has_default_modifier( $key ) ) {
|
1194 |
// let's use the default filters normalizing the key first
|
1195 |
$call_args[0] = $this->normalize_key( $key );
|
1196 |
+
$query_modifier = call_user_func_array( [ $this, 'apply_default_modifier' ], $call_args );
|
1197 |
} elseif ( 2 === count( $call_args ) ) {
|
1198 |
// Pass query argument $key with the single value argument.
|
1199 |
+
$query_modifier = [
|
1200 |
$key => $call_args[1],
|
1201 |
+
];
|
1202 |
} else {
|
1203 |
// More than two $call_args were sent (key, value), assume it was meant for a filter that was not defined yet.
|
1204 |
throw Tribe__Repository__Usage_Error::because_the_read_filter_is_not_defined( $key, $this );
|
1205 |
}
|
1206 |
} else {
|
1207 |
+
$query_modifier = call_user_func_array( [ $this, 'apply_modifier' ], $call_args );
|
1208 |
}
|
1209 |
|
1210 |
return $query_modifier;
|
1254 |
// `ID` to `id`
|
1255 |
$normalized = strtolower( $key );
|
1256 |
|
1257 |
+
$post_prefixed = [
|
1258 |
'password',
|
1259 |
'name__in',
|
1260 |
'_in',
|
1269 |
'modified',
|
1270 |
'modified_gmt',
|
1271 |
'content_filtered',
|
1272 |
+
];
|
1273 |
|
1274 |
if ( in_array( $key, $post_prefixed, true ) ) {
|
1275 |
$normalized = 'post_' . $key;
|
1327 |
$to_update = $this->get_ids();
|
1328 |
|
1329 |
if ( empty( $to_update ) ) {
|
1330 |
+
return $return_promise ? new Tribe__Promise() : [];
|
1331 |
}
|
1332 |
|
1333 |
+
$exit = [];
|
1334 |
+
$postarrs = [];
|
1335 |
|
1336 |
foreach ( $to_update as $id ) {
|
1337 |
$postarrs[ $id ] = $this->filter_postarr_for_update( $this->build_postarr( $id ), $id );
|
1362 |
*/
|
1363 |
public function get_ids() {
|
1364 |
if ( $this->void_query ) {
|
1365 |
+
return [];
|
1366 |
}
|
1367 |
|
1368 |
|
1394 |
* Extending classes might use this method to run sub-queries
|
1395 |
* and signal a void query; let's return an empty array.
|
1396 |
*/
|
1397 |
+
return [];
|
1398 |
}
|
1399 |
}
|
1400 |
|
1540 |
public function where_meta_related_by( $meta_keys, $compare, $field = null, $values = null ) {
|
1541 |
$meta_keys = Tribe__Utils__Array::list_to_array( $meta_keys );
|
1542 |
|
1543 |
+
if ( ! in_array( $compare, [ 'EXISTS', 'NOT EXISTS' ], true ) ) {
|
1544 |
if ( empty( $field ) || empty( $values ) ) {
|
1545 |
throw Tribe__Repository__Usage_Error::because_this_comparison_operator_requires_fields_and_values( $meta_keys, $compare, $this );
|
1546 |
}
|
1598 |
public function where_meta_related_by_meta( $meta_keys, $compare, $meta_field = null, $meta_values = null, $or_not_exists = false ) {
|
1599 |
$meta_keys = Tribe__Utils__Array::list_to_array( $meta_keys );
|
1600 |
|
1601 |
+
if ( ! in_array( $compare, [ 'EXISTS', 'NOT EXISTS' ], true ) ) {
|
1602 |
if ( empty( $meta_field ) || empty( $meta_values ) ) {
|
1603 |
throw Tribe__Repository__Usage_Error::because_this_comparison_operator_requires_fields_and_values( $meta_keys, $compare, $this );
|
1604 |
}
|
1685 |
$buffered_count = count( $buffered );
|
1686 |
|
1687 |
foreach ( $all_callbacks as $c ) {
|
1688 |
+
call_user_func_array( [ $this, $c[0] ], array_slice( $c, 1 ) );
|
1689 |
|
1690 |
if ( $buffered_count === count( $this->filter_query->get_buffered_where_clauses() ) ) {
|
1691 |
throw Tribe__Repository__Usage_Error::because_where_or_should_only_be_used_with_methods_that_add_where_clauses( $c, $this );
|
1726 |
* @param string|null $by The ->by() lookup to use (defaults to meta_regexp_or_like).
|
1727 |
*/
|
1728 |
public function add_simple_meta_schema_entry( $key, $meta_key, $by = null ) {
|
1729 |
+
$this->schema[ $key ] = [ $this, 'filter_by_simple_meta_schema' ];
|
1730 |
|
1731 |
+
$this->simple_meta_schema[ $key ] = [
|
1732 |
'meta_key' => $meta_key,
|
1733 |
'by' => $by,
|
1734 |
+
];
|
1735 |
}
|
1736 |
|
1737 |
/**
|
1744 |
* @param string|null $by The ->by() lookup to use (defaults to term_in).
|
1745 |
*/
|
1746 |
public function add_simple_tax_schema_entry( $key, $taxonomy, $by = null ) {
|
1747 |
+
$this->schema[ $key ] = [ $this, 'filter_by_simple_tax_schema' ];
|
1748 |
|
1749 |
+
$this->simple_tax_schema[ $key ] = [
|
1750 |
'taxonomy' => $taxonomy,
|
1751 |
'by' => $by,
|
1752 |
+
];
|
1753 |
}
|
1754 |
|
1755 |
/**
|
1771 |
* @throws Tribe__Repository__Usage_Error If a filter is called with wrong arguments.
|
1772 |
*/
|
1773 |
protected function apply_default_modifier( $key, $value ) {
|
1774 |
+
$args = [];
|
1775 |
|
1776 |
$call_args = func_get_args();
|
1777 |
$arg_1 = isset( $call_args[2] ) ? $call_args[2] : null;
|
1783 |
switch ( $key ) {
|
1784 |
default:
|
1785 |
// leverage built-in WP_Query filters
|
1786 |
+
$args = [ $key => $value ];
|
1787 |
break;
|
1788 |
case 'ID':
|
1789 |
case 'id':
|
1790 |
+
$args = [ 'p' => $value ];
|
1791 |
break;
|
1792 |
case 'search':
|
1793 |
+
$args = [ 's' => $value ];
|
1794 |
break;
|
1795 |
case 'post_status':
|
1796 |
$this->query_args['post_status'] = (array) $value;
|
1820 |
break;
|
1821 |
case 'to_ping':
|
1822 |
$this->filter_query->to_get_posts_to_ping( $value );
|
1823 |
+
$args = [ 'to_ping' => $value ];
|
1824 |
break;
|
1825 |
case 'post_modified':
|
1826 |
$args = $this->get_posts_after( $value, 'post_modified' );
|
1835 |
$this->filter_query->to_get_posts_with_guid_like( $value );
|
1836 |
break;
|
1837 |
case 'menu_order':
|
1838 |
+
$args = [ 'menu_order' => $value ];
|
1839 |
break;
|
1840 |
case 'meta':
|
1841 |
case 'meta_equals':
|
1997 |
* @return array
|
1998 |
*/
|
1999 |
protected function get_posts_after( $value, $column = 'post_date' ) {
|
2000 |
+
$timezone = in_array( $column, [ 'post_date_gmt', 'post_modified_gmt' ], true )
|
2001 |
? 'UTC'
|
2002 |
: Tribe__Timezones::generate_timezone_string_from_utc_offset( Tribe__Timezones::wp_timezone_string() );
|
2003 |
|
2009 |
|
2010 |
$array_key = sprintf( '%s-after', $column );
|
2011 |
|
2012 |
+
return [
|
2013 |
+
'date_query' => [
|
2014 |
'relation' => 'AND',
|
2015 |
+
$array_key => [
|
2016 |
'inclusive' => true,
|
2017 |
'column' => $column,
|
2018 |
'after' => $date->format( 'Y-m-d H:i:s' ),
|
2019 |
+
],
|
2020 |
+
],
|
2021 |
+
];
|
2022 |
}
|
2023 |
|
2024 |
/**
|
2032 |
* @return array
|
2033 |
*/
|
2034 |
protected function get_posts_before( $value, $column = 'post_date' ) {
|
2035 |
+
$timezone = in_array( $column, [ 'post_date_gmt', 'post_modified_gmt' ], true )
|
2036 |
? 'UTC'
|
2037 |
: Tribe__Timezones::generate_timezone_string_from_utc_offset( Tribe__Timezones::wp_timezone_string() );
|
2038 |
|
2044 |
|
2045 |
$array_key = sprintf( '%s-before', $column );
|
2046 |
|
2047 |
+
return [
|
2048 |
+
'date_query' => [
|
2049 |
'relation' => 'AND',
|
2050 |
+
$array_key => [
|
2051 |
'inclusive' => true,
|
2052 |
'column' => $column,
|
2053 |
'before' => $date->format( 'Y-m-d H:i:s' ),
|
2054 |
+
],
|
2055 |
+
],
|
2056 |
+
];
|
2057 |
}
|
2058 |
|
2059 |
/**
|
2078 |
if ( count( $meta_keys ) === 1 ) {
|
2079 |
$array_key = $this->sql_slug( $meta_keys[0], $postfix );
|
2080 |
|
2081 |
+
$args = [
|
2082 |
+
'meta_query' => [
|
2083 |
+
$array_key => [
|
2084 |
'key' => $meta_keys[0],
|
2085 |
'compare' => strtoupper( $compare ),
|
2086 |
+
],
|
2087 |
+
],
|
2088 |
+
];
|
2089 |
|
2090 |
+
if ( ! in_array( $compare, [ 'EXISTS', 'NOT EXISTS' ], true ) ) {
|
2091 |
$args['meta_query'][ $array_key ]['value'] = $meta_value;
|
2092 |
}
|
2093 |
|
2174 |
* @return array
|
2175 |
*/
|
2176 |
protected function build_tax_query( $taxonomy, $terms, $field, $operator ) {
|
2177 |
+
if ( in_array( $operator, [ 'EXISTS', 'NOT EXISTS' ], true ) ) {
|
2178 |
$array_key = $this->sql_slug( $taxonomy, $operator );
|
2179 |
} else {
|
2180 |
$array_key = $this->sql_slug( $taxonomy, $field, $operator );
|
2181 |
}
|
2182 |
|
2183 |
+
return [
|
2184 |
+
'tax_query' => [
|
2185 |
+
$array_key => [
|
2186 |
'taxonomy' => $taxonomy,
|
2187 |
'field' => $field,
|
2188 |
'terms' => $terms,
|
2189 |
'operator' => strtoupper( $operator ),
|
2190 |
+
],
|
2191 |
+
],
|
2192 |
+
];
|
2193 |
}
|
2194 |
|
2195 |
/**
|
2233 |
public function prepare_interval( $values, $format = '%s', $operator = 'IN' ) {
|
2234 |
$values = Tribe__Utils__Array::list_to_array( $values );
|
2235 |
|
2236 |
+
$prepared = [];
|
2237 |
foreach ( $values as $value ) {
|
2238 |
$prepared[] = $this->prepare_value( $value, $format );
|
2239 |
}
|
2240 |
|
2241 |
+
return in_array( $operator, [ 'BETWEEN', 'NOT BETWEEN' ] )
|
2242 |
? sprintf( '%s AND %s', $prepared[0], $prepared[1] )
|
2243 |
: sprintf( '(%s)', implode( ',', $prepared ) );
|
2244 |
}
|
2439 |
$to_delete = $this->get_ids();
|
2440 |
|
2441 |
if ( empty( $to_delete ) ) {
|
2442 |
+
return $return_promise ? new Tribe__Promise() : [];
|
2443 |
}
|
2444 |
|
2445 |
|
2869 |
* {@inheritdoc}
|
2870 |
*/
|
2871 |
public function build_postarr( $id = null ) {
|
2872 |
+
$postarr = [
|
2873 |
+
'tax_input' => [],
|
2874 |
+
'meta_input' => [],
|
2875 |
+
];
|
2876 |
|
2877 |
/*
|
2878 |
* The check is lax here by design: we leave space for the client code
|
3049 |
/**
|
3050 |
* {@inheritdoc}
|
3051 |
*/
|
3052 |
+
public function filter( $args = [], $operator = 'AND' ) {
|
3053 |
$list = new WP_List_Util( $this->all() );
|
3054 |
|
3055 |
return $list->filter( $args, $operator );
|
3058 |
/**
|
3059 |
* {@inheritdoc}
|
3060 |
*/
|
3061 |
+
public function sort( $orderby = [], $order = 'ASC', $preserve_keys = false ) {
|
3062 |
$list = new WP_List_Util( $this->all() );
|
3063 |
|
3064 |
return $list->sort( $orderby, $order, $preserve_keys );
|
common/src/Tribe/Repository/Core_Read_Interface.php
CHANGED
@@ -362,7 +362,7 @@ interface Core_Read_Interface {
|
|
362 |
*
|
363 |
* @see \wp_list_filter()
|
364 |
*/
|
365 |
-
public function filter( $args =
|
366 |
|
367 |
/**
|
368 |
* Sorts the results according to the specified criteria.
|
@@ -382,7 +382,7 @@ interface Core_Read_Interface {
|
|
382 |
*
|
383 |
* @see \wp_list_sort()
|
384 |
*/
|
385 |
-
public function sort( $orderby =
|
386 |
|
387 |
/**
|
388 |
* Builds a collection on the result of the `all()` method call.
|
362 |
*
|
363 |
* @see \wp_list_filter()
|
364 |
*/
|
365 |
+
public function filter( $args = [], $operator = 'AND' );
|
366 |
|
367 |
/**
|
368 |
* Sorts the results according to the specified criteria.
|
382 |
*
|
383 |
* @see \wp_list_sort()
|
384 |
*/
|
385 |
+
public function sort( $orderby = [], $order = 'ASC', $preserve_keys = false );
|
386 |
|
387 |
/**
|
388 |
* Builds a collection on the result of the `all()` method call.
|
common/src/Tribe/Repository/Decorator.php
CHANGED
@@ -51,7 +51,7 @@ abstract class Tribe__Repository__Decorator implements Tribe__Repository__Interf
|
|
51 |
*/
|
52 |
public function by( $key, $value = null ) {
|
53 |
$call_args = func_get_args();
|
54 |
-
call_user_func_array(
|
55 |
|
56 |
return $this;
|
57 |
}
|
@@ -61,7 +61,7 @@ abstract class Tribe__Repository__Decorator implements Tribe__Repository__Interf
|
|
61 |
*/
|
62 |
public function where( $key, $value = null ) {
|
63 |
$call_args = func_get_args();
|
64 |
-
call_user_func_array(
|
65 |
|
66 |
return $this;
|
67 |
}
|
@@ -322,7 +322,7 @@ abstract class Tribe__Repository__Decorator implements Tribe__Repository__Interf
|
|
322 |
*/
|
323 |
public function where_or( $callbacks ) {
|
324 |
$call_args = func_get_args();
|
325 |
-
call_user_func_array(
|
326 |
|
327 |
return $this;
|
328 |
}
|
@@ -545,14 +545,14 @@ abstract class Tribe__Repository__Decorator implements Tribe__Repository__Interf
|
|
545 |
/**
|
546 |
* {@inheritdoc}
|
547 |
*/
|
548 |
-
public function filter( $orderby =
|
549 |
return $this->decorated->filter( $orderby, $order, $preserve_keys );
|
550 |
}
|
551 |
|
552 |
/**
|
553 |
* {@inheritdoc}
|
554 |
*/
|
555 |
-
public function sort( $orderby =
|
556 |
return $this->decorated->sort( $orderby, $order, $preserve_keys );
|
557 |
}
|
558 |
|
51 |
*/
|
52 |
public function by( $key, $value = null ) {
|
53 |
$call_args = func_get_args();
|
54 |
+
call_user_func_array( [ $this->decorated, 'by' ], $call_args );
|
55 |
|
56 |
return $this;
|
57 |
}
|
61 |
*/
|
62 |
public function where( $key, $value = null ) {
|
63 |
$call_args = func_get_args();
|
64 |
+
call_user_func_array( [ $this->decorated, 'where' ], $call_args );
|
65 |
|
66 |
return $this;
|
67 |
}
|
322 |
*/
|
323 |
public function where_or( $callbacks ) {
|
324 |
$call_args = func_get_args();
|
325 |
+
call_user_func_array( [ $this->decorated, 'where_or' ], $call_args );
|
326 |
|
327 |
return $this;
|
328 |
}
|
545 |
/**
|
546 |
* {@inheritdoc}
|
547 |
*/
|
548 |
+
public function filter( $orderby = [], $order = 'ASC', $preserve_keys = false ) {
|
549 |
return $this->decorated->filter( $orderby, $order, $preserve_keys );
|
550 |
}
|
551 |
|
552 |
/**
|
553 |
* {@inheritdoc}
|
554 |
*/
|
555 |
+
public function sort( $orderby = [], $order = 'ASC', $preserve_keys = false ) {
|
556 |
return $this->decorated->sort( $orderby, $order, $preserve_keys );
|
557 |
}
|
558 |
|
common/src/Tribe/Repository/Query_Filters.php
CHANGED
@@ -17,16 +17,16 @@ class Tribe__Repository__Query_Filters {
|
|
17 |
/**
|
18 |
* @var array
|
19 |
*/
|
20 |
-
protected static $initial_query_vars =
|
21 |
-
'like' =>
|
22 |
-
'post_title' =>
|
23 |
-
'post_content' =>
|
24 |
-
'post_excerpt' =>
|
25 |
-
|
26 |
-
'status' =>
|
27 |
-
'join' =>
|
28 |
-
'where' =>
|
29 |
-
|
30 |
|
31 |
/**
|
32 |
* An array of the filters that can be set and unset by id.
|
@@ -55,7 +55,7 @@ class Tribe__Repository__Query_Filters {
|
|
55 |
/**
|
56 |
* @var array A list of the filters this class has added.
|
57 |
*/
|
58 |
-
protected $active_filters =
|
59 |
|
60 |
/**
|
61 |
* @var bool
|
@@ -65,7 +65,7 @@ class Tribe__Repository__Query_Filters {
|
|
65 |
/**
|
66 |
* @var array
|
67 |
*/
|
68 |
-
protected $buffered_where_clauses =
|
69 |
|
70 |
/**
|
71 |
* Stores the last request run by the current query.
|
@@ -99,38 +99,38 @@ class Tribe__Repository__Query_Filters {
|
|
99 |
$values = Tribe__Utils__Array::list_to_array( $values );
|
100 |
|
101 |
if ( empty( $meta_keys ) || count( $values ) === 0 ) {
|
102 |
-
return
|
103 |
}
|
104 |
|
105 |
-
$args =
|
106 |
-
'meta_query' =>
|
107 |
-
$query_slug =>
|
108 |
'relation' => 'AND',
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
|
113 |
foreach ( $meta_keys as $key ) {
|
114 |
-
$args['meta_query'][ $query_slug ][ $key ] =
|
115 |
-
'not-exists' =>
|
116 |
'key' => $key,
|
117 |
'compare' => 'NOT EXISTS',
|
118 |
-
|
119 |
'relation' => 'OR',
|
120 |
-
|
121 |
|
122 |
if ( count( $values ) > 1 ) {
|
123 |
-
$args['meta_query'][ $query_slug ][ $key ]['not-in'] =
|
124 |
'key' => $key,
|
125 |
'compare' => 'NOT IN',
|
126 |
'value' => $values,
|
127 |
-
|
128 |
} else {
|
129 |
-
$args['meta_query'][ $query_slug ][ $key ]['not-equals'] =
|
130 |
'key' => $key,
|
131 |
'value' => $values[0],
|
132 |
'compare' => '!=',
|
133 |
-
|
134 |
}
|
135 |
}
|
136 |
|
@@ -153,30 +153,30 @@ class Tribe__Repository__Query_Filters {
|
|
153 |
$values = Tribe__Utils__Array::list_to_array( $values );
|
154 |
|
155 |
if ( empty( $meta_keys ) || count( $values ) === 0 ) {
|
156 |
-
return
|
157 |
}
|
158 |
|
159 |
-
$args =
|
160 |
-
'meta_query' =>
|
161 |
-
$query_slug =>
|
162 |
'relation' => 'OR',
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
|
167 |
foreach ( $meta_keys as $meta_key ) {
|
168 |
if ( count( $values ) > 1 ) {
|
169 |
-
$args['meta_query'][ $query_slug ][ $meta_key ] =
|
170 |
'key' => $meta_key,
|
171 |
'compare' => 'IN',
|
172 |
'value' => $values,
|
173 |
-
|
174 |
} else {
|
175 |
-
$args['meta_query'][ $query_slug ][ $meta_key ] =
|
176 |
'key' => $meta_key,
|
177 |
'compare' => '=',
|
178 |
'value' => $values[0],
|
179 |
-
|
180 |
}
|
181 |
}
|
182 |
|
@@ -197,22 +197,22 @@ class Tribe__Repository__Query_Filters {
|
|
197 |
$meta_keys = Tribe__Utils__Array::list_to_array( $meta_keys );
|
198 |
|
199 |
if ( empty( $meta_keys ) ) {
|
200 |
-
return
|
201 |
}
|
202 |
|
203 |
-
$args =
|
204 |
-
'meta_query' =>
|
205 |
-
$query_slug =>
|
206 |
'relation' => 'OR',
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
|
211 |
foreach ( $meta_keys as $meta_key ) {
|
212 |
-
$args['meta_query'][ $query_slug ][ $meta_key ] =
|
213 |
'key' => $meta_key,
|
214 |
'compare' => 'EXISTS',
|
215 |
-
|
216 |
}
|
217 |
|
218 |
return $args;
|
@@ -235,35 +235,35 @@ class Tribe__Repository__Query_Filters {
|
|
235 |
$values = Tribe__Utils__Array::list_to_array( $values );
|
236 |
|
237 |
if ( empty( $meta_keys ) || count( $values ) === 0 ) {
|
238 |
-
return
|
239 |
}
|
240 |
|
241 |
-
$args =
|
242 |
-
'meta_query' =>
|
243 |
-
$query_slug =>
|
244 |
'relation' => 'AND',
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
|
249 |
foreach ( $meta_keys as $meta_key ) {
|
250 |
-
$args['meta_query'][ $query_slug ][ $meta_key ]['does-not-exist'] =
|
251 |
'key' => $meta_key,
|
252 |
'compare' => 'NOT EXISTS',
|
253 |
-
|
254 |
$args['meta_query'][ $query_slug ][ $meta_key ]['relation'] = 'OR';
|
255 |
if ( count( $values ) > 1 ) {
|
256 |
-
$args['meta_query'][ $query_slug ][ $meta_key ]['in'] =
|
257 |
'key' => $meta_key,
|
258 |
'compare' => 'IN',
|
259 |
'value' => $values,
|
260 |
-
|
261 |
} else {
|
262 |
-
$args['meta_query'][ $query_slug ][ $meta_key ]['equals'] =
|
263 |
'key' => $meta_key,
|
264 |
'compare' => '=',
|
265 |
'value' => $values[0],
|
266 |
-
|
267 |
}
|
268 |
}
|
269 |
|
@@ -287,36 +287,36 @@ class Tribe__Repository__Query_Filters {
|
|
287 |
$values = Tribe__Utils__Array::list_to_array( $values );
|
288 |
|
289 |
if ( empty( $meta_keys ) || count( $values ) === 0 ) {
|
290 |
-
return
|
291 |
}
|
292 |
|
293 |
-
$args =
|
294 |
-
'meta_query' =>
|
295 |
-
$query_slug =>
|
296 |
'relation' => 'AND',
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
|
301 |
foreach ( $meta_keys as $meta_key ) {
|
302 |
-
$args['meta_query'][ $query_slug ][ $meta_key ]['does-not-exist'] =
|
303 |
'key' => $meta_key,
|
304 |
'compare' => 'NOT EXISTS',
|
305 |
-
|
306 |
$args['meta_query'][ $query_slug ][ $meta_key ]['relation'] = 'OR';
|
307 |
|
308 |
if ( count( $values ) > 1 ) {
|
309 |
-
$args['meta_query'][ $query_slug ][ $meta_key ]['not-in'] =
|
310 |
'key' => $meta_key,
|
311 |
'compare' => 'NOT IN',
|
312 |
'value' => $values,
|
313 |
-
|
314 |
} else {
|
315 |
-
$args['meta_query'][ $query_slug ][ $meta_key ]['not-equals'] =
|
316 |
'key' => $meta_key,
|
317 |
'compare' => '!=',
|
318 |
'value' => $values[0],
|
319 |
-
|
320 |
}
|
321 |
}
|
322 |
|
@@ -366,11 +366,11 @@ class Tribe__Repository__Query_Filters {
|
|
366 |
global $wpdb;
|
367 |
|
368 |
$like = $wpdb->esc_like( $entry );
|
369 |
-
$variations =
|
370 |
$wpdb->prepare( "{$wpdb->posts}.{$field} LIKE %s ", "{$like}%" ),
|
371 |
$wpdb->prepare( "{$wpdb->posts}.{$field} LIKE %s ", "%{$like}%" ),
|
372 |
$wpdb->prepare( "{$wpdb->posts}.{$field} LIKE %s ", "%{$like}" ),
|
373 |
-
|
374 |
|
375 |
return ' AND (' . implode( ' OR ', $variations ) . ')';
|
376 |
}
|
@@ -430,7 +430,7 @@ class Tribe__Repository__Query_Filters {
|
|
430 |
$matching_ids = $wpdb->get_col( $relation_query );
|
431 |
|
432 |
if ( empty( $matching_ids ) ) {
|
433 |
-
$query->posts =
|
434 |
$filtered_found_posts = 0;
|
435 |
break;
|
436 |
}
|
@@ -438,7 +438,7 @@ class Tribe__Repository__Query_Filters {
|
|
438 |
if ( $ids_only ) {
|
439 |
$query->posts = array_intersect( $query->posts, $matching_ids );
|
440 |
} else {
|
441 |
-
$updated_query_posts =
|
442 |
foreach ( $query->posts as $this_post ) {
|
443 |
if ( in_array( $this_post->ID, $matching_ids ) ) {
|
444 |
$updated_query_posts[] = $this_post;
|
@@ -475,8 +475,8 @@ class Tribe__Repository__Query_Filters {
|
|
475 |
public function to_get_posts_with_title_like( $value ) {
|
476 |
$this->query_vars['like']['post_title'][] = $value;
|
477 |
|
478 |
-
if ( ! has_filter( 'posts_where',
|
479 |
-
$this->add_filter( 'posts_where',
|
480 |
}
|
481 |
}
|
482 |
|
@@ -492,7 +492,7 @@ class Tribe__Repository__Query_Filters {
|
|
492 |
* @param int $accepted_args
|
493 |
*/
|
494 |
protected function add_filter( $tag, $function_to_add, $priority = 10, $accepted_args = 1 ) {
|
495 |
-
$this->active_filters[] =
|
496 |
add_filter( $tag, $function_to_add, $priority, $accepted_args );
|
497 |
}
|
498 |
|
@@ -506,8 +506,8 @@ class Tribe__Repository__Query_Filters {
|
|
506 |
public function to_get_posts_with_content_like( $value ) {
|
507 |
$this->query_vars['like']['post_content'][] = $value;
|
508 |
|
509 |
-
if ( ! has_filter( 'posts_where',
|
510 |
-
$this->add_filter( 'posts_where',
|
511 |
}
|
512 |
}
|
513 |
|
@@ -521,8 +521,8 @@ class Tribe__Repository__Query_Filters {
|
|
521 |
public function to_get_posts_with_excerpt_like( $value ) {
|
522 |
$this->query_vars['like']['post_excerpt'] = $value;
|
523 |
|
524 |
-
if ( ! has_filter( 'posts_where',
|
525 |
-
add_filter( 'posts_where',
|
526 |
}
|
527 |
}
|
528 |
|
@@ -536,8 +536,8 @@ class Tribe__Repository__Query_Filters {
|
|
536 |
public function to_get_posts_with_filtered_content_like( $value ) {
|
537 |
$this->query_vars['like']['post_content_filtered'][] = $value;
|
538 |
|
539 |
-
if ( ! has_filter( 'posts_where',
|
540 |
-
add_filter( 'posts_where',
|
541 |
}
|
542 |
}
|
543 |
|
@@ -551,8 +551,8 @@ class Tribe__Repository__Query_Filters {
|
|
551 |
public function to_get_posts_with_guid_like( $value ) {
|
552 |
$this->query_vars['like']['guid'][] = $value;
|
553 |
|
554 |
-
if ( ! has_filter( 'posts_where',
|
555 |
-
add_filter( 'posts_where',
|
556 |
}
|
557 |
}
|
558 |
|
@@ -566,8 +566,8 @@ class Tribe__Repository__Query_Filters {
|
|
566 |
public function to_get_posts_to_ping( $value ) {
|
567 |
$this->query_vars['to_ping'] = $value;
|
568 |
|
569 |
-
if ( ! has_filter( 'posts_where',
|
570 |
-
add_filter( 'posts_where',
|
571 |
}
|
572 |
}
|
573 |
|
@@ -666,8 +666,8 @@ class Tribe__Repository__Query_Filters {
|
|
666 |
$this->query_vars['where'][] = '(' . $where_clause . ')';
|
667 |
}
|
668 |
|
669 |
-
if ( ! has_filter( 'posts_where',
|
670 |
-
add_filter( 'posts_where',
|
671 |
}
|
672 |
}
|
673 |
}
|
@@ -690,8 +690,8 @@ class Tribe__Repository__Query_Filters {
|
|
690 |
$this->query_vars['join'][] = $join_clause;
|
691 |
}
|
692 |
|
693 |
-
if ( ! has_filter( 'posts_join',
|
694 |
-
add_filter( 'posts_join',
|
695 |
}
|
696 |
}
|
697 |
|
@@ -738,8 +738,8 @@ class Tribe__Repository__Query_Filters {
|
|
738 |
$this->query_vars[ $orderby_key ][ $id ] = array_merge( $this->query_vars[ $orderby_key ][ $id ], $entries );
|
739 |
}
|
740 |
|
741 |
-
if ( ! has_filter( 'posts_orderby',
|
742 |
-
add_filter( 'posts_orderby',
|
743 |
}
|
744 |
}
|
745 |
|
@@ -762,8 +762,8 @@ class Tribe__Repository__Query_Filters {
|
|
762 |
$this->query_vars['fields'][] = $field;
|
763 |
}
|
764 |
|
765 |
-
if ( ! has_filter( 'posts_fields',
|
766 |
-
add_filter( 'posts_fields',
|
767 |
}
|
768 |
}
|
769 |
|
@@ -795,7 +795,7 @@ class Tribe__Repository__Query_Filters {
|
|
795 |
|
796 |
if ( $get_clean ) {
|
797 |
$this->buffer_where_clauses = false;
|
798 |
-
$this->buffered_where_clauses =
|
799 |
}
|
800 |
|
801 |
return $clauses;
|
@@ -846,7 +846,7 @@ class Tribe__Repository__Query_Filters {
|
|
846 |
global $wpdb;
|
847 |
|
848 |
foreach ( $input as $string ) {
|
849 |
-
$buffer[] = is_array( $string ) ? $string :
|
850 |
}
|
851 |
|
852 |
$buffer = array_unique( call_user_func_array( 'array_merge', $buffer ) );
|
17 |
/**
|
18 |
* @var array
|
19 |
*/
|
20 |
+
protected static $initial_query_vars = [
|
21 |
+
'like' => [
|
22 |
+
'post_title' => [],
|
23 |
+
'post_content' => [],
|
24 |
+
'post_excerpt' => [],
|
25 |
+
],
|
26 |
+
'status' => [],
|
27 |
+
'join' => [],
|
28 |
+
'where' => [],
|
29 |
+
];
|
30 |
|
31 |
/**
|
32 |
* An array of the filters that can be set and unset by id.
|
55 |
/**
|
56 |
* @var array A list of the filters this class has added.
|
57 |
*/
|
58 |
+
protected $active_filters = [];
|
59 |
|
60 |
/**
|
61 |
* @var bool
|
65 |
/**
|
66 |
* @var array
|
67 |
*/
|
68 |
+
protected $buffered_where_clauses = [];
|
69 |
|
70 |
/**
|
71 |
* Stores the last request run by the current query.
|
99 |
$values = Tribe__Utils__Array::list_to_array( $values );
|
100 |
|
101 |
if ( empty( $meta_keys ) || count( $values ) === 0 ) {
|
102 |
+
return [];
|
103 |
}
|
104 |
|
105 |
+
$args = [
|
106 |
+
'meta_query' => [
|
107 |
+
$query_slug => [
|
108 |
'relation' => 'AND',
|
109 |
+
],
|
110 |
+
],
|
111 |
+
];
|
112 |
|
113 |
foreach ( $meta_keys as $key ) {
|
114 |
+
$args['meta_query'][ $query_slug ][ $key ] = [
|
115 |
+
'not-exists' => [
|
116 |
'key' => $key,
|
117 |
'compare' => 'NOT EXISTS',
|
118 |
+
],
|
119 |
'relation' => 'OR',
|
120 |
+
];
|
121 |
|
122 |
if ( count( $values ) > 1 ) {
|
123 |
+
$args['meta_query'][ $query_slug ][ $key ]['not-in'] = [
|
124 |
'key' => $key,
|
125 |
'compare' => 'NOT IN',
|
126 |
'value' => $values,
|
127 |
+
];
|
128 |
} else {
|
129 |
+
$args['meta_query'][ $query_slug ][ $key ]['not-equals'] = [
|
130 |
'key' => $key,
|
131 |
'value' => $values[0],
|
132 |
'compare' => '!=',
|
133 |
+
];
|
134 |
}
|
135 |
}
|
136 |
|
153 |
$values = Tribe__Utils__Array::list_to_array( $values );
|
154 |
|
155 |
if ( empty( $meta_keys ) || count( $values ) === 0 ) {
|
156 |
+
return [];
|
157 |
}
|
158 |
|
159 |
+
$args = [
|
160 |
+
'meta_query' => [
|
161 |
+
$query_slug => [
|
162 |
'relation' => 'OR',
|
163 |
+
],
|
164 |
+
],
|
165 |
+
];
|
166 |
|
167 |
foreach ( $meta_keys as $meta_key ) {
|
168 |
if ( count( $values ) > 1 ) {
|
169 |
+
$args['meta_query'][ $query_slug ][ $meta_key ] = [
|
170 |
'key' => $meta_key,
|
171 |
'compare' => 'IN',
|
172 |
'value' => $values,
|
173 |
+
];
|
174 |
} else {
|
175 |
+
$args['meta_query'][ $query_slug ][ $meta_key ] = [
|
176 |
'key' => $meta_key,
|
177 |
'compare' => '=',
|
178 |
'value' => $values[0],
|
179 |
+
];
|
180 |
}
|
181 |
}
|
182 |
|
197 |
$meta_keys = Tribe__Utils__Array::list_to_array( $meta_keys );
|
198 |
|
199 |
if ( empty( $meta_keys ) ) {
|
200 |
+
return [];
|
201 |
}
|
202 |
|
203 |
+
$args = [
|
204 |
+
'meta_query' => [
|
205 |
+
$query_slug => [
|
206 |
'relation' => 'OR',
|
207 |
+
],
|
208 |
+
],
|
209 |
+
];
|
210 |
|
211 |
foreach ( $meta_keys as $meta_key ) {
|
212 |
+
$args['meta_query'][ $query_slug ][ $meta_key ] = [
|
213 |
'key' => $meta_key,
|
214 |
'compare' => 'EXISTS',
|
215 |
+
];
|
216 |
}
|
217 |
|
218 |
return $args;
|
235 |
$values = Tribe__Utils__Array::list_to_array( $values );
|
236 |
|
237 |
if ( empty( $meta_keys ) || count( $values ) === 0 ) {
|
238 |
+
return [];
|
239 |
}
|
240 |
|
241 |
+
$args = [
|
242 |
+
'meta_query' => [
|
243 |
+
$query_slug => [
|
244 |
'relation' => 'AND',
|
245 |
+
],
|
246 |
+
],
|
247 |
+
];
|
248 |
|
249 |
foreach ( $meta_keys as $meta_key ) {
|
250 |
+
$args['meta_query'][ $query_slug ][ $meta_key ]['does-not-exist'] = [
|
251 |
'key' => $meta_key,
|
252 |
'compare' => 'NOT EXISTS',
|
253 |
+
];
|
254 |
$args['meta_query'][ $query_slug ][ $meta_key ]['relation'] = 'OR';
|
255 |
if ( count( $values ) > 1 ) {
|
256 |
+
$args['meta_query'][ $query_slug ][ $meta_key ]['in'] = [
|
257 |
'key' => $meta_key,
|
258 |
'compare' => 'IN',
|
259 |
'value' => $values,
|
260 |
+
];
|
261 |
} else {
|
262 |
+
$args['meta_query'][ $query_slug ][ $meta_key ]['equals'] = [
|
263 |
'key' => $meta_key,
|
264 |
'compare' => '=',
|
265 |
'value' => $values[0],
|
266 |
+
];
|
267 |
}
|
268 |
}
|
269 |
|
287 |
$values = Tribe__Utils__Array::list_to_array( $values );
|
288 |
|
289 |
if ( empty( $meta_keys ) || count( $values ) === 0 ) {
|
290 |
+
return [];
|
291 |
}
|
292 |
|
293 |
+
$args = [
|
294 |
+
'meta_query' => [
|
295 |
+
$query_slug => [
|
296 |
'relation' => 'AND',
|
297 |
+
],
|
298 |
+
],
|
299 |
+
];
|
300 |
|
301 |
foreach ( $meta_keys as $meta_key ) {
|
302 |
+
$args['meta_query'][ $query_slug ][ $meta_key ]['does-not-exist'] = [
|
303 |
'key' => $meta_key,
|
304 |
'compare' => 'NOT EXISTS',
|
305 |
+
];
|
306 |
$args['meta_query'][ $query_slug ][ $meta_key ]['relation'] = 'OR';
|
307 |
|
308 |
if ( count( $values ) > 1 ) {
|
309 |
+
$args['meta_query'][ $query_slug ][ $meta_key ]['not-in'] = [
|
310 |
'key' => $meta_key,
|
311 |
'compare' => 'NOT IN',
|
312 |
'value' => $values,
|
313 |
+
];
|
314 |
} else {
|
315 |
+
$args['meta_query'][ $query_slug ][ $meta_key ]['not-equals'] = [
|
316 |
'key' => $meta_key,
|
317 |
'compare' => '!=',
|
318 |
'value' => $values[0],
|
319 |
+
];
|
320 |
}
|
321 |
}
|
322 |
|
366 |
global $wpdb;
|
367 |
|
368 |
$like = $wpdb->esc_like( $entry );
|
369 |
+
$variations = [
|
370 |
$wpdb->prepare( "{$wpdb->posts}.{$field} LIKE %s ", "{$like}%" ),
|
371 |
$wpdb->prepare( "{$wpdb->posts}.{$field} LIKE %s ", "%{$like}%" ),
|
372 |
$wpdb->prepare( "{$wpdb->posts}.{$field} LIKE %s ", "%{$like}" ),
|
373 |
+
];
|
374 |
|
375 |
return ' AND (' . implode( ' OR ', $variations ) . ')';
|
376 |
}
|
430 |
$matching_ids = $wpdb->get_col( $relation_query );
|
431 |
|
432 |
if ( empty( $matching_ids ) ) {
|
433 |
+
$query->posts = [];
|
434 |
$filtered_found_posts = 0;
|
435 |
break;
|
436 |
}
|
438 |
if ( $ids_only ) {
|
439 |
$query->posts = array_intersect( $query->posts, $matching_ids );
|
440 |
} else {
|
441 |
+
$updated_query_posts = [];
|
442 |
foreach ( $query->posts as $this_post ) {
|
443 |
if ( in_array( $this_post->ID, $matching_ids ) ) {
|
444 |
$updated_query_posts[] = $this_post;
|
475 |
public function to_get_posts_with_title_like( $value ) {
|
476 |
$this->query_vars['like']['post_title'][] = $value;
|
477 |
|
478 |
+
if ( ! has_filter( 'posts_where', [ $this, 'filter_by_like' ] ) ) {
|
479 |
+
$this->add_filter( 'posts_where', [ $this, 'filter_by_like' ], 10, 2 );
|
480 |
}
|
481 |
}
|
482 |
|
492 |
* @param int $accepted_args
|
493 |
*/
|
494 |
protected function add_filter( $tag, $function_to_add, $priority = 10, $accepted_args = 1 ) {
|
495 |
+
$this->active_filters[] = [ $tag, $function_to_add, $priority ];
|
496 |
add_filter( $tag, $function_to_add, $priority, $accepted_args );
|
497 |
}
|
498 |
|
506 |
public function to_get_posts_with_content_like( $value ) {
|
507 |
$this->query_vars['like']['post_content'][] = $value;
|
508 |
|
509 |
+
if ( ! has_filter( 'posts_where', [ $this, 'filter_by_like' ] ) ) {
|
510 |
+
$this->add_filter( 'posts_where', [ $this, 'filter_by_like' ], 10, 2 );
|
511 |
}
|
512 |
}
|
513 |
|
521 |
public function to_get_posts_with_excerpt_like( $value ) {
|
522 |
$this->query_vars['like']['post_excerpt'] = $value;
|
523 |
|
524 |
+
if ( ! has_filter( 'posts_where', [ $this, 'filter_by_like' ] ) ) {
|
525 |
+
add_filter( 'posts_where', [ $this, 'filter_by_like' ], 10, 2 );
|
526 |
}
|
527 |
}
|
528 |
|
536 |
public function to_get_posts_with_filtered_content_like( $value ) {
|
537 |
$this->query_vars['like']['post_content_filtered'][] = $value;
|
538 |
|
539 |
+
if ( ! has_filter( 'posts_where', [ $this, 'filter_by_like' ] ) ) {
|
540 |
+
add_filter( 'posts_where', [ $this, 'filter_by_like' ], 10, 2 );
|
541 |
}
|
542 |
}
|
543 |
|
551 |
public function to_get_posts_with_guid_like( $value ) {
|
552 |
$this->query_vars['like']['guid'][] = $value;
|
553 |
|
554 |
+
if ( ! has_filter( 'posts_where', [ $this, 'filter_by_like' ] ) ) {
|
555 |
+
add_filter( 'posts_where', [ $this, 'filter_by_like' ], 10, 2 );
|
556 |
}
|
557 |
}
|
558 |
|
566 |
public function to_get_posts_to_ping( $value ) {
|
567 |
$this->query_vars['to_ping'] = $value;
|
568 |
|
569 |
+
if ( ! has_filter( 'posts_where', [ $this, 'filter_by_to_ping' ] ) ) {
|
570 |
+
add_filter( 'posts_where', [ $this, 'filter_by_to_ping' ], 10, 2 );
|
571 |
}
|
572 |
}
|
573 |
|
666 |
$this->query_vars['where'][] = '(' . $where_clause . ')';
|
667 |
}
|
668 |
|
669 |
+
if ( ! has_filter( 'posts_where', [ $this, 'filter_posts_where' ] ) ) {
|
670 |
+
add_filter( 'posts_where', [ $this, 'filter_posts_where' ], 10, 2 );
|
671 |
}
|
672 |
}
|
673 |
}
|
690 |
$this->query_vars['join'][] = $join_clause;
|
691 |
}
|
692 |
|
693 |
+
if ( ! has_filter( 'posts_join', [ $this, 'filter_posts_join' ] ) ) {
|
694 |
+
add_filter( 'posts_join', [ $this, 'filter_posts_join' ], 10, 2 );
|
695 |
}
|
696 |
}
|
697 |
|
738 |
$this->query_vars[ $orderby_key ][ $id ] = array_merge( $this->query_vars[ $orderby_key ][ $id ], $entries );
|
739 |
}
|
740 |
|
741 |
+
if ( ! has_filter( 'posts_orderby', [ $this, 'filter_posts_orderby' ] ) ) {
|
742 |
+
add_filter( 'posts_orderby', [ $this, 'filter_posts_orderby' ], 10, 2 );
|
743 |
}
|
744 |
}
|
745 |
|
762 |
$this->query_vars['fields'][] = $field;
|
763 |
}
|
764 |
|
765 |
+
if ( ! has_filter( 'posts_fields', [ $this, 'filter_posts_fields' ] ) ) {
|
766 |
+
add_filter( 'posts_fields', [ $this, 'filter_posts_fields' ], 10, 2 );
|
767 |
}
|
768 |
}
|
769 |
|
795 |
|
796 |
if ( $get_clean ) {
|
797 |
$this->buffer_where_clauses = false;
|
798 |
+
$this->buffered_where_clauses = [];
|
799 |
}
|
800 |
|
801 |
return $clauses;
|
846 |
global $wpdb;
|
847 |
|
848 |
foreach ( $input as $string ) {
|
849 |
+
$buffer[] = is_array( $string ) ? $string : [ $string ];
|
850 |
}
|
851 |
|
852 |
$buffer = array_unique( call_user_func_array( 'array_merge', $buffer ) );
|
common/src/Tribe/Rewrite.php
CHANGED
@@ -47,14 +47,15 @@ class Tribe__Rewrite {
|
|
47 |
*
|
48 |
* @var array
|
49 |
*/
|
50 |
-
public $rules =
|
51 |
|
52 |
/**
|
53 |
* Base slugs for rewrite urls
|
54 |
*
|
55 |
* @var array
|
56 |
*/
|
57 |
-
public $bases =
|
|
|
58 |
/**
|
59 |
* After creating the Hooks on WordPress we lock the usage of the function.
|
60 |
*
|
@@ -182,17 +183,17 @@ class Tribe__Rewrite {
|
|
182 |
}
|
183 |
|
184 |
protected function add_hooks() {
|
185 |
-
add_filter( 'generate_rewrite_rules',
|
186 |
|
187 |
// Remove percent Placeholders on all items
|
188 |
-
add_filter( 'rewrite_rules_array',
|
189 |
|
190 |
add_action( 'shutdown', [ $this, 'dump_cache' ] );
|
191 |
}
|
192 |
|
193 |
protected function remove_hooks() {
|
194 |
-
remove_filter( 'generate_rewrite_rules',
|
195 |
-
remove_filter( 'rewrite_rules_array',
|
196 |
|
197 |
remove_action( 'shutdown', [ $this, 'dump_cache' ] );
|
198 |
}
|
@@ -229,10 +230,10 @@ class Tribe__Rewrite {
|
|
229 |
*
|
230 |
* @return Tribe__Events__Rewrite
|
231 |
*/
|
232 |
-
public function add( $regex, $args =
|
233 |
$regex = (array) $regex;
|
234 |
|
235 |
-
$default =
|
236 |
$args = array_filter( wp_parse_args( $args, $default ) );
|
237 |
|
238 |
$url = add_query_arg( $args, 'index.php' );
|
@@ -245,7 +246,7 @@ class Tribe__Rewrite {
|
|
245 |
|
246 |
// Add the Bases to the regex
|
247 |
foreach ( $this->bases as $key => $value ) {
|
248 |
-
$regex = str_replace(
|
249 |
}
|
250 |
|
251 |
// Apply the Preg Indexes to the URL
|
@@ -553,7 +554,8 @@ class Tribe__Rewrite {
|
|
553 |
$replace
|
554 |
);
|
555 |
|
556 |
-
|
|
|
557 |
|
558 |
// Remove trailing chars.
|
559 |
$path = rtrim( $replaced, '?$' );
|
@@ -884,7 +886,7 @@ class Tribe__Rewrite {
|
|
884 |
$url_components = parse_url($url);
|
885 |
$url_path = Arr::get( $url_components, 'path', '/' );
|
886 |
$site_path = parse_url( home_url(), PHP_URL_PATH );
|
887 |
-
if ( !
|
888 |
// The current site is in a sub-directory: the site path should be dropped from the request path.
|
889 |
$url_path = str_replace( $site_path, '', $url_path );
|
890 |
}
|
47 |
*
|
48 |
* @var array
|
49 |
*/
|
50 |
+
public $rules = [];
|
51 |
|
52 |
/**
|
53 |
* Base slugs for rewrite urls
|
54 |
*
|
55 |
* @var array
|
56 |
*/
|
57 |
+
public $bases = [];
|
58 |
+
|
59 |
/**
|
60 |
* After creating the Hooks on WordPress we lock the usage of the function.
|
61 |
*
|
183 |
}
|
184 |
|
185 |
protected function add_hooks() {
|
186 |
+
add_filter( 'generate_rewrite_rules', [ $this, 'filter_generate' ] );
|
187 |
|
188 |
// Remove percent Placeholders on all items
|
189 |
+
add_filter( 'rewrite_rules_array', [ $this, 'remove_percent_placeholders' ], 25 );
|
190 |
|
191 |
add_action( 'shutdown', [ $this, 'dump_cache' ] );
|
192 |
}
|
193 |
|
194 |
protected function remove_hooks() {
|
195 |
+
remove_filter( 'generate_rewrite_rules', [ $this, 'filter_generate' ] );
|
196 |
+
remove_filter( 'rewrite_rules_array', [ $this, 'remove_percent_placeholders' ], 25 );
|
197 |
|
198 |
remove_action( 'shutdown', [ $this, 'dump_cache' ] );
|
199 |
}
|
230 |
*
|
231 |
* @return Tribe__Events__Rewrite
|
232 |
*/
|
233 |
+
public function add( $regex, $args = [] ) {
|
234 |
$regex = (array) $regex;
|
235 |
|
236 |
+
$default = [];
|
237 |
$args = array_filter( wp_parse_args( $args, $default ) );
|
238 |
|
239 |
$url = add_query_arg( $args, 'index.php' );
|
246 |
|
247 |
// Add the Bases to the regex
|
248 |
foreach ( $this->bases as $key => $value ) {
|
249 |
+
$regex = str_replace( [ '{{ ' . $key . ' }}', '{{' . $key . '}}' ], $value, $regex );
|
250 |
}
|
251 |
|
252 |
// Apply the Preg Indexes to the URL
|
554 |
$replace
|
555 |
);
|
556 |
|
557 |
+
// Use case-insensitive replace to make sure to work with some decoding using uppercase escaped chars.
|
558 |
+
$replaced = str_ireplace( array_keys( $replace ), $replace, $link_template );
|
559 |
|
560 |
// Remove trailing chars.
|
561 |
$path = rtrim( $replaced, '?$' );
|
886 |
$url_components = parse_url($url);
|
887 |
$url_path = Arr::get( $url_components, 'path', '/' );
|
888 |
$site_path = parse_url( home_url(), PHP_URL_PATH );
|
889 |
+
if ( ! empty( $site_path ) && '/' !== $site_path ) {
|
890 |
// The current site is in a sub-directory: the site path should be dropped from the request path.
|
891 |
$url_path = str_replace( $site_path, '', $url_path );
|
892 |
}
|
common/src/Tribe/Service_Providers/Debug_Bar.php
CHANGED
@@ -12,7 +12,7 @@ class Tribe__Service_Providers__Debug_Bar extends tad_DI52_ServiceProvider {
|
|
12 |
* Binds and sets up implementations.
|
13 |
*/
|
14 |
public function register() {
|
15 |
-
add_filter( 'debug_bar_panels',
|
16 |
}
|
17 |
|
18 |
/**
|
@@ -33,10 +33,10 @@ class Tribe__Service_Providers__Debug_Bar extends tad_DI52_ServiceProvider {
|
|
33 |
*
|
34 |
* @param Debug_Bar_Panel[] The default list of Modern Tribe panels added to the Debug Bar.
|
35 |
*/
|
36 |
-
$tribe_panels = apply_filters( 'tribe_debug_bar_panels',
|
37 |
new Tribe__Debug_Bar__Panels__Context(),
|
38 |
new Tribe__Debug_Bar__Panels__Json_Ld(),
|
39 |
-
|
40 |
|
41 |
if ( count( $tribe_panels ) > 0 ) {
|
42 |
$panels = array_merge( $panels, $tribe_panels );
|
12 |
* Binds and sets up implementations.
|
13 |
*/
|
14 |
public function register() {
|
15 |
+
add_filter( 'debug_bar_panels', [ $this, 'add_panels' ] );
|
16 |
}
|
17 |
|
18 |
/**
|
33 |
*
|
34 |
* @param Debug_Bar_Panel[] The default list of Modern Tribe panels added to the Debug Bar.
|
35 |
*/
|
36 |
+
$tribe_panels = apply_filters( 'tribe_debug_bar_panels', [
|
37 |
new Tribe__Debug_Bar__Panels__Context(),
|
38 |
new Tribe__Debug_Bar__Panels__Json_Ld(),
|
39 |
+
] );
|
40 |
|
41 |
if ( count( $tribe_panels ) > 0 ) {
|
42 |
$panels = array_merge( $panels, $tribe_panels );
|
common/src/Tribe/Service_Providers/Processes.php
CHANGED
@@ -69,10 +69,10 @@ class Tribe__Service_Providers__Processes extends tad_DI52_ServiceProvider {
|
|
69 |
*/
|
70 |
protected function hook_handler_for( $action ) {
|
71 |
if ( null === $this->handler_actions ) {
|
72 |
-
$handlers =
|
73 |
'Tribe__Process__Tester',
|
74 |
'Tribe__Process__Post_Thumbnail_Setter',
|
75 |
-
|
76 |
|
77 |
/**
|
78 |
* Filters the process handler classes the Service Provider should handle.
|
@@ -87,7 +87,7 @@ class Tribe__Service_Providers__Processes extends tad_DI52_ServiceProvider {
|
|
87 |
|
88 |
$this->handler_actions = array_combine(
|
89 |
$handlers,
|
90 |
-
array_map(
|
91 |
);
|
92 |
}
|
93 |
|
@@ -110,9 +110,9 @@ class Tribe__Service_Providers__Processes extends tad_DI52_ServiceProvider {
|
|
110 |
*/
|
111 |
protected function hook_queue_for( $action ) {
|
112 |
if ( null === $this->queue_actions ) {
|
113 |
-
$queues =
|
114 |
'Tribe__Promise',
|
115 |
-
|
116 |
|
117 |
/**
|
118 |
* Filters the queue processing classes the Service Provider should handle.
|
@@ -127,7 +127,7 @@ class Tribe__Service_Providers__Processes extends tad_DI52_ServiceProvider {
|
|
127 |
|
128 |
$all_queues_actions = array_combine(
|
129 |
$queues,
|
130 |
-
array_map(
|
131 |
);
|
132 |
}
|
133 |
|
@@ -152,7 +152,7 @@ class Tribe__Service_Providers__Processes extends tad_DI52_ServiceProvider {
|
|
152 |
*/
|
153 |
protected function get_handler_action( $handler_class ) {
|
154 |
/** @var Tribe__Process__Handler handler_class */
|
155 |
-
return 'tribe_process_' . call_user_func(
|
156 |
}
|
157 |
|
158 |
/**
|
@@ -166,7 +166,7 @@ class Tribe__Service_Providers__Processes extends tad_DI52_ServiceProvider {
|
|
166 |
*/
|
167 |
protected function get_queue_action( $queue_class ) {
|
168 |
/** @var Tribe__Process__Queue queue_class */
|
169 |
-
return 'tribe_queue_' . call_user_func(
|
170 |
}
|
171 |
|
172 |
/**
|
@@ -201,7 +201,7 @@ class Tribe__Service_Providers__Processes extends tad_DI52_ServiceProvider {
|
|
201 |
* Here we parse the scheduled cron events to get those scheduled by a queue
|
202 |
* or process handler.
|
203 |
*/
|
204 |
-
$hooks = $this->get_scheduled_like(
|
205 |
|
206 |
if ( empty( $hooks ) ) {
|
207 |
return;
|
@@ -254,11 +254,11 @@ class Tribe__Service_Providers__Processes extends tad_DI52_ServiceProvider {
|
|
254 |
$cron = get_option( 'cron', false );
|
255 |
|
256 |
if ( empty( $cron ) ) {
|
257 |
-
return
|
258 |
}
|
259 |
|
260 |
$needles = (array) $needles;
|
261 |
-
$matching =
|
262 |
|
263 |
foreach ( $cron as $time ) {
|
264 |
if ( ! is_array( $time ) ) {
|
69 |
*/
|
70 |
protected function hook_handler_for( $action ) {
|
71 |
if ( null === $this->handler_actions ) {
|
72 |
+
$handlers = [
|
73 |
'Tribe__Process__Tester',
|
74 |
'Tribe__Process__Post_Thumbnail_Setter',
|
75 |
+
];
|
76 |
|
77 |
/**
|
78 |
* Filters the process handler classes the Service Provider should handle.
|
87 |
|
88 |
$this->handler_actions = array_combine(
|
89 |
$handlers,
|
90 |
+
array_map( [ $this, 'get_handler_action' ], $handlers )
|
91 |
);
|
92 |
}
|
93 |
|
110 |
*/
|
111 |
protected function hook_queue_for( $action ) {
|
112 |
if ( null === $this->queue_actions ) {
|
113 |
+
$queues = [
|
114 |
'Tribe__Promise',
|
115 |
+
];
|
116 |
|
117 |
/**
|
118 |
* Filters the queue processing classes the Service Provider should handle.
|
127 |
|
128 |
$all_queues_actions = array_combine(
|
129 |
$queues,
|
130 |
+
array_map( [ $this, 'get_queue_action' ], $queues )
|
131 |
);
|
132 |
}
|
133 |
|
152 |
*/
|
153 |
protected function get_handler_action( $handler_class ) {
|
154 |
/** @var Tribe__Process__Handler handler_class */
|
155 |
+
return 'tribe_process_' . call_user_func( [ $handler_class, 'action' ] );
|
156 |
}
|
157 |
|
158 |
/**
|
166 |
*/
|
167 |
protected function get_queue_action( $queue_class ) {
|
168 |
/** @var Tribe__Process__Queue queue_class */
|
169 |
+
return 'tribe_queue_' . call_user_func( [ $queue_class, 'action' ] );
|
170 |
}
|
171 |
|
172 |
/**
|
201 |
* Here we parse the scheduled cron events to get those scheduled by a queue
|
202 |
* or process handler.
|
203 |
*/
|
204 |
+
$hooks = $this->get_scheduled_like( [ 'tribe_process_', 'tribe_queue_' ] );
|
205 |
|
206 |
if ( empty( $hooks ) ) {
|
207 |
return;
|
254 |
$cron = get_option( 'cron', false );
|
255 |
|
256 |
if ( empty( $cron ) ) {
|
257 |
+
return [];
|
258 |
}
|
259 |
|
260 |
$needles = (array) $needles;
|
261 |
+
$matching = [];
|
262 |
|
263 |
foreach ( $cron as $time ) {
|
264 |
if ( ! is_array( $time ) ) {
|
common/src/Tribe/Service_Providers/Promoter.php
CHANGED
@@ -14,7 +14,7 @@ class Tribe__Service_Providers__Promoter extends tad_DI52_ServiceProvider {
|
|
14 |
*/
|
15 |
public function register() {
|
16 |
tribe_singleton( 'promoter.auth', 'Tribe__Promoter__Auth' );
|
17 |
-
tribe_singleton( 'promoter.pue', 'Tribe__Promoter__PUE',
|
18 |
tribe_singleton( 'promoter.view', 'Tribe__Promoter__View' );
|
19 |
|
20 |
$this->hook();
|
@@ -39,8 +39,8 @@ class Tribe__Service_Providers__Promoter extends tad_DI52_ServiceProvider {
|
|
39 |
}
|
40 |
|
41 |
// The usage of a high priority so we can push the icon to the end
|
42 |
-
add_action( 'admin_bar_menu',
|
43 |
-
add_action( 'tribe_common_loaded',
|
44 |
}
|
45 |
|
46 |
/**
|
@@ -60,7 +60,7 @@ class Tribe__Service_Providers__Promoter extends tad_DI52_ServiceProvider {
|
|
60 |
* It uses and inline SVG as will provider more flexibility for styling so we can change
|
61 |
* the fill of the path property of the SVG so we can match the WP installations.
|
62 |
*/
|
63 |
-
$args =
|
64 |
'id' => 'promoter-admin-bar',
|
65 |
'title' => sprintf(
|
66 |
"<span class='promoter-admin-bar__icon'>%s</span><span class='promoter-admin-bar__text'>%s</span>",
|
@@ -68,11 +68,11 @@ class Tribe__Service_Providers__Promoter extends tad_DI52_ServiceProvider {
|
|
68 |
'Promoter'
|
69 |
),
|
70 |
'href' => 'https://promoter.theeventscalendar.com/',
|
71 |
-
'meta' =>
|
72 |
'target' => '_blank',
|
73 |
'class' => 'promoter-admin-bar-link',
|
74 |
-
|
75 |
-
|
76 |
$wp_admin_bar->add_node( $args );
|
77 |
}
|
78 |
|
@@ -86,11 +86,11 @@ class Tribe__Service_Providers__Promoter extends tad_DI52_ServiceProvider {
|
|
86 |
Tribe__Main::instance(),
|
87 |
'promoter',
|
88 |
'promoter.css',
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
'conditionals' =>
|
93 |
-
|
94 |
);
|
95 |
}
|
96 |
|
14 |
*/
|
15 |
public function register() {
|
16 |
tribe_singleton( 'promoter.auth', 'Tribe__Promoter__Auth' );
|
17 |
+
tribe_singleton( 'promoter.pue', 'Tribe__Promoter__PUE', [ 'load' ] );
|
18 |
tribe_singleton( 'promoter.view', 'Tribe__Promoter__View' );
|
19 |
|
20 |
$this->hook();
|
39 |
}
|
40 |
|
41 |
// The usage of a high priority so we can push the icon to the end
|
42 |
+
add_action( 'admin_bar_menu', [ $this, 'add_promoter_logo_on_admin_bar' ], 1000 );
|
43 |
+
add_action( 'tribe_common_loaded', [ $this, 'add_promoter_assets' ] );
|
44 |
}
|
45 |
|
46 |
/**
|
60 |
* It uses and inline SVG as will provider more flexibility for styling so we can change
|
61 |
* the fill of the path property of the SVG so we can match the WP installations.
|
62 |
*/
|
63 |
+
$args = [
|
64 |
'id' => 'promoter-admin-bar',
|
65 |
'title' => sprintf(
|
66 |
"<span class='promoter-admin-bar__icon'>%s</span><span class='promoter-admin-bar__text'>%s</span>",
|
68 |
'Promoter'
|
69 |
),
|
70 |
'href' => 'https://promoter.theeventscalendar.com/',
|
71 |
+
'meta' => [
|
72 |
'target' => '_blank',
|
73 |
'class' => 'promoter-admin-bar-link',
|
74 |
+
],
|
75 |
+
];
|
76 |
$wp_admin_bar->add_node( $args );
|
77 |
}
|
78 |
|
86 |
Tribe__Main::instance(),
|
87 |
'promoter',
|
88 |
'promoter.css',
|
89 |
+
[],
|
90 |
+
[ 'wp_enqueue_scripts', 'admin_enqueue_scripts' ],
|
91 |
+
[
|
92 |
+
'conditionals' => [ $this, 'should_load_promoter_styles' ],
|
93 |
+
]
|
94 |
);
|
95 |
}
|
96 |
|
common/src/Tribe/Settings.php
CHANGED
@@ -140,22 +140,22 @@ if ( ! class_exists( 'Tribe__Settings' ) ) {
|
|
140 |
* An array defining the suite root plugins.
|
141 |
* @var array
|
142 |
*/
|
143 |
-
protected $root_plugins =
|
144 |
'the-events-calendar/the-events-calendar.php',
|
145 |
'event-tickets/event-ticket.php',
|
146 |
-
|
147 |
|
148 |
/**
|
149 |
* An associative array in the form [ <tab-slug> => array(...<fields>) ]
|
150 |
* @var array
|
151 |
*/
|
152 |
-
protected $fields_for_save =
|
153 |
|
154 |
/**
|
155 |
* An array that contains the fields that are currently being validated.
|
156 |
* @var array
|
157 |
*/
|
158 |
-
protected $current_fields =
|
159 |
|
160 |
/**
|
161 |
* Static Singleton Factory Method
|
@@ -178,10 +178,10 @@ if ( ! class_exists( 'Tribe__Settings' ) ) {
|
|
178 |
$this->requiredCap = apply_filters( 'tribe_settings_req_cap', 'manage_options' );
|
179 |
$this->adminSlug = apply_filters( 'tribe_settings_admin_slug', 'tribe-common' );
|
180 |
$this->help_slug = apply_filters( 'tribe_settings_help_slug', 'tribe-common-help' );
|
181 |
-
$this->errors = get_option( 'tribe_settings_errors',
|
182 |
$this->major_error = get_option( 'tribe_settings_major_error', false );
|
183 |
-
$this->sent_data = get_option( 'tribe_settings_sent_data',
|
184 |
-
$this->validated =
|
185 |
$this->defaultTab = null;
|
186 |
$this->currentTab = null;
|
187 |
|
@@ -193,11 +193,11 @@ if ( ! class_exists( 'Tribe__Settings' ) ) {
|
|
193 |
*/
|
194 |
public function hook() {
|
195 |
// run actions & filters
|
196 |
-
add_action( 'admin_menu',
|
197 |
-
add_action( 'network_admin_menu',
|
198 |
-
add_action( 'admin_init',
|
199 |
-
add_action( 'tribe_settings_below_tabs',
|
200 |
-
add_action( 'tribe_settings_below_tabs',
|
201 |
}
|
202 |
|
203 |
/**
|
@@ -254,7 +254,7 @@ if ( ! class_exists( 'Tribe__Settings' ) ) {
|
|
254 |
esc_html__( 'Settings', 'tribe-common' ),
|
255 |
$this->requiredCap,
|
256 |
self::$parent_slug,
|
257 |
-
|
258 |
);
|
259 |
}
|
260 |
}
|
@@ -270,10 +270,10 @@ if ( ! class_exists( 'Tribe__Settings' ) ) {
|
|
270 |
}
|
271 |
|
272 |
$this->admin_page = add_submenu_page(
|
273 |
-
'settings.php', esc_html__( 'Events Settings', 'tribe-common' ), esc_html__( 'Events Settings', 'tribe-common' ), $this->requiredCap, $this->adminSlug,
|
274 |
$this,
|
275 |
'generatePage',
|
276 |
-
|
277 |
);
|
278 |
|
279 |
$this->admin_page = add_submenu_page(
|
@@ -282,10 +282,10 @@ if ( ! class_exists( 'Tribe__Settings' ) ) {
|
|
282 |
esc_html__( 'Events Help', 'tribe-common' ),
|
283 |
$this->requiredCap,
|
284 |
$this->help_slug,
|
285 |
-
|
286 |
tribe( 'settings.manager' ),
|
287 |
'do_help_tab',
|
288 |
-
|
289 |
);
|
290 |
}
|
291 |
|
@@ -440,7 +440,7 @@ if ( ! class_exists( 'Tribe__Settings' ) ) {
|
|
440 |
|
441 |
// bail if we have errors
|
442 |
if ( count( $this->errors ) ) {
|
443 |
-
remove_action( 'shutdown',
|
444 |
add_option( 'tribe_settings_errors', $this->errors );
|
445 |
add_option( 'tribe_settings_major_error', $this->major_error );
|
446 |
wp_redirect( $this->url );
|
@@ -488,8 +488,8 @@ if ( ! class_exists( 'Tribe__Settings' ) ) {
|
|
488 |
|
489 |
// do not generate errors for dependent fields that should not show
|
490 |
if ( ! empty( $this->errors ) ) {
|
491 |
-
$keep
|
492 |
-
$compare = empty( $keep ) ?
|
493 |
$this->errors = array_intersect_key( $this->errors, $compare );
|
494 |
}
|
495 |
|
@@ -512,7 +512,7 @@ if ( ! class_exists( 'Tribe__Settings' ) ) {
|
|
512 |
do_action( 'tribe_settings_save_tab_' . $this->currentTab );
|
513 |
|
514 |
// we'll need this later
|
515 |
-
$parent_options =
|
516 |
|
517 |
/**
|
518 |
* loop through each validated option and either
|
@@ -588,11 +588,11 @@ if ( ! class_exists( 'Tribe__Settings' ) ) {
|
|
588 |
|
589 |
do_action( 'tribe_settings_after_save' );
|
590 |
do_action( 'tribe_settings_after_save_' . $this->currentTab );
|
591 |
-
remove_action( 'shutdown',
|
592 |
add_option( 'tribe_settings_sent_data', $_POST );
|
593 |
add_option( 'tribe_settings_errors', $this->errors );
|
594 |
add_option( 'tribe_settings_major_error', $this->major_error );
|
595 |
-
wp_redirect( esc_url_raw( add_query_arg(
|
596 |
exit;
|
597 |
}
|
598 |
|
@@ -669,11 +669,11 @@ if ( ! class_exists( 'Tribe__Settings' ) ) {
|
|
669 |
*
|
670 |
* @return string
|
671 |
*/
|
672 |
-
public function get_url( array $args =
|
673 |
-
$defaults =
|
674 |
-
'page'
|
675 |
'parent' => self::$parent_page,
|
676 |
-
|
677 |
|
678 |
// Allow the link to be "changed" on the fly
|
679 |
$args = wp_parse_args( $args, $defaults );
|
140 |
* An array defining the suite root plugins.
|
141 |
* @var array
|
142 |
*/
|
143 |
+
protected $root_plugins = [
|
144 |
'the-events-calendar/the-events-calendar.php',
|
145 |
'event-tickets/event-ticket.php',
|
146 |
+
];
|
147 |
|
148 |
/**
|
149 |
* An associative array in the form [ <tab-slug> => array(...<fields>) ]
|
150 |
* @var array
|
151 |
*/
|
152 |
+
protected $fields_for_save = [];
|
153 |
|
154 |
/**
|
155 |
* An array that contains the fields that are currently being validated.
|
156 |
* @var array
|
157 |
*/
|
158 |
+
protected $current_fields = [];
|
159 |
|
160 |
/**
|
161 |
* Static Singleton Factory Method
|
178 |
$this->requiredCap = apply_filters( 'tribe_settings_req_cap', 'manage_options' );
|
179 |
$this->adminSlug = apply_filters( 'tribe_settings_admin_slug', 'tribe-common' );
|
180 |
$this->help_slug = apply_filters( 'tribe_settings_help_slug', 'tribe-common-help' );
|
181 |
+
$this->errors = get_option( 'tribe_settings_errors', [] );
|
182 |
$this->major_error = get_option( 'tribe_settings_major_error', false );
|
183 |
+
$this->sent_data = get_option( 'tribe_settings_sent_data', [] );
|
184 |
+
$this->validated = [];
|
185 |
$this->defaultTab = null;
|
186 |
$this->currentTab = null;
|
187 |
|
193 |
*/
|
194 |
public function hook() {
|
195 |
// run actions & filters
|
196 |
+
add_action( 'admin_menu', [ $this, 'addPage' ] );
|
197 |
+
add_action( 'network_admin_menu', [ $this, 'addNetworkPage' ] );
|
198 |
+
add_action( 'admin_init', [ $this, 'initTabs' ] );
|
199 |
+
add_action( 'tribe_settings_below_tabs', [ $this, 'displayErrors' ] );
|
200 |
+
add_action( 'tribe_settings_below_tabs', [ $this, 'displaySuccess' ] );
|
201 |
}
|
202 |
|
203 |
/**
|
254 |
esc_html__( 'Settings', 'tribe-common' ),
|
255 |
$this->requiredCap,
|
256 |
self::$parent_slug,
|
257 |
+
[ $this, 'generatePage' ]
|
258 |
);
|
259 |
}
|
260 |
}
|
270 |
}
|
271 |
|
272 |
$this->admin_page = add_submenu_page(
|
273 |
+
'settings.php', esc_html__( 'Events Settings', 'tribe-common' ), esc_html__( 'Events Settings', 'tribe-common' ), $this->requiredCap, $this->adminSlug, [
|
274 |
$this,
|
275 |
'generatePage',
|
276 |
+
]
|
277 |
);
|
278 |
|
279 |
$this->admin_page = add_submenu_page(
|
282 |
esc_html__( 'Events Help', 'tribe-common' ),
|
283 |
$this->requiredCap,
|
284 |
$this->help_slug,
|
285 |
+
[
|
286 |
tribe( 'settings.manager' ),
|
287 |
'do_help_tab',
|
288 |
+
]
|
289 |
);
|
290 |
}
|
291 |
|
440 |
|
441 |
// bail if we have errors
|
442 |
if ( count( $this->errors ) ) {
|
443 |
+
remove_action( 'shutdown', [ $this, 'deleteOptions' ] );
|
444 |
add_option( 'tribe_settings_errors', $this->errors );
|
445 |
add_option( 'tribe_settings_major_error', $this->major_error );
|
446 |
wp_redirect( $this->url );
|
488 |
|
489 |
// do not generate errors for dependent fields that should not show
|
490 |
if ( ! empty( $this->errors ) ) {
|
491 |
+
$keep = array_filter( array_keys( $this->errors ), [ $this, 'dependency_checks' ] );
|
492 |
+
$compare = empty( $keep ) ? [] : array_combine( $keep, $keep );
|
493 |
$this->errors = array_intersect_key( $this->errors, $compare );
|
494 |
}
|
495 |
|
512 |
do_action( 'tribe_settings_save_tab_' . $this->currentTab );
|
513 |
|
514 |
// we'll need this later
|
515 |
+
$parent_options = [];
|
516 |
|
517 |
/**
|
518 |
* loop through each validated option and either
|
588 |
|
589 |
do_action( 'tribe_settings_after_save' );
|
590 |
do_action( 'tribe_settings_after_save_' . $this->currentTab );
|
591 |
+
remove_action( 'shutdown', [ $this, 'deleteOptions' ] );
|
592 |
add_option( 'tribe_settings_sent_data', $_POST );
|
593 |
add_option( 'tribe_settings_errors', $this->errors );
|
594 |
add_option( 'tribe_settings_major_error', $this->major_error );
|
595 |
+
wp_redirect( esc_url_raw( add_query_arg( [ 'saved' => true ], $this->url ) ) );
|
596 |
exit;
|
597 |
}
|
598 |
|
669 |
*
|
670 |
* @return string
|
671 |
*/
|
672 |
+
public function get_url( array $args = [] ) {
|
673 |
+
$defaults = [
|
674 |
+
'page' => $this->adminSlug,
|
675 |
'parent' => self::$parent_page,
|
676 |
+
];
|
677 |
|
678 |
// Allow the link to be "changed" on the fly
|
679 |
$args = wp_parse_args( $args, $defaults );
|
common/src/Tribe/Settings_Manager.php
CHANGED
@@ -13,7 +13,7 @@ class Tribe__Settings_Manager {
|
|
13 |
|
14 |
// Load multisite defaults
|
15 |
if ( is_multisite() ) {
|
16 |
-
$tribe_events_mu_defaults =
|
17 |
if ( file_exists( WP_CONTENT_DIR . '/tribe-events-mu-defaults.php' ) ) {
|
18 |
require_once WP_CONTENT_DIR . '/tribe-events-mu-defaults.php';
|
19 |
}
|
@@ -23,13 +23,13 @@ class Tribe__Settings_Manager {
|
|
23 |
|
24 |
public function add_hooks() {
|
25 |
// option pages
|
26 |
-
add_action( '_network_admin_menu',
|
27 |
-
add_action( '_admin_menu',
|
28 |
|
29 |
-
add_action( 'admin_menu',
|
30 |
-
add_action( 'tribe_settings_do_tabs',
|
31 |
-
add_action( 'tribe_settings_do_tabs',
|
32 |
-
add_action( 'tribe_settings_validate_tab_network',
|
33 |
add_action( 'updated_option', [ $this, 'update_options_cache' ], 10, 3 );
|
34 |
}
|
35 |
|
@@ -171,7 +171,7 @@ class Tribe__Settings_Manager {
|
|
171 |
*/
|
172 |
public static function get_network_options() {
|
173 |
if ( ! isset( self::$network_options ) ) {
|
174 |
-
$options = get_site_option( Tribe__Main::OPTIONNAMENETWORK,
|
175 |
self::$network_options = apply_filters( 'tribe_get_network_options', $options );
|
176 |
}
|
177 |
|
@@ -216,11 +216,11 @@ class Tribe__Settings_Manager {
|
|
216 |
if ( ! is_array( $options ) ) {
|
217 |
return;
|
218 |
}
|
|
|
219 |
if ( $apply_filters == true ) {
|
220 |
$options = apply_filters( 'tribe-events-save-network-options', $options );
|
221 |
}
|
222 |
|
223 |
-
// @TODO use getNetworkOptions + force
|
224 |
if ( update_site_option( Tribe__Main::OPTIONNAMENETWORK, $options ) ) {
|
225 |
self::$network_options = apply_filters( 'tribe_get_network_options', $options );
|
226 |
} else {
|
@@ -236,10 +236,15 @@ class Tribe__Settings_Manager {
|
|
236 |
public static function add_network_options_page() {
|
237 |
$tribe_settings = Tribe__Settings::instance();
|
238 |
add_submenu_page(
|
239 |
-
'settings.php',
|
|
|
|
|
|
|
|
|
|
|
240 |
$tribe_settings,
|
241 |
'generatePage',
|
242 |
-
|
243 |
);
|
244 |
}
|
245 |
|
@@ -285,11 +290,11 @@ class Tribe__Settings_Manager {
|
|
285 |
*/
|
286 |
$license_fields = apply_filters( 'tribe_license_fields', $licenses_tab );
|
287 |
|
288 |
-
new Tribe__Settings_Tab( 'licenses', esc_html__( 'Licenses', 'tribe-common' ),
|
289 |
'priority' => '40',
|
290 |
'fields' => $license_fields,
|
291 |
'network_admin' => is_network_admin() ? true : false,
|
292 |
-
|
293 |
}
|
294 |
|
295 |
/**
|
@@ -309,7 +314,7 @@ class Tribe__Settings_Manager {
|
|
309 |
* @todo move to an admin class
|
310 |
*/
|
311 |
public function add_help_admin_menu_item() {
|
312 |
-
$hidden_settings_tabs = self::get_network_option( 'hideSettingsTabs',
|
313 |
if ( in_array( 'help', $hidden_settings_tabs ) ) {
|
314 |
return;
|
315 |
}
|
@@ -318,7 +323,7 @@ class Tribe__Settings_Manager {
|
|
318 |
$title = esc_html__( 'Help', 'tribe-common' );
|
319 |
$slug = 'tribe-help';
|
320 |
|
321 |
-
add_submenu_page( $parent, $title, $title, 'manage_options', $slug,
|
322 |
}
|
323 |
|
324 |
/**
|
@@ -327,7 +332,8 @@ class Tribe__Settings_Manager {
|
|
327 |
* @return bool
|
328 |
*/
|
329 |
protected function have_addons() {
|
330 |
-
$addons = apply_filters( 'tribe_licensable_addons',
|
|
|
331 |
return ! empty( $addons );
|
332 |
}
|
333 |
|
@@ -337,7 +343,7 @@ class Tribe__Settings_Manager {
|
|
337 |
* @return void
|
338 |
*/
|
339 |
public function save_all_tabs_hidden() {
|
340 |
-
$all_tabs_keys = array_keys( apply_filters( 'tribe_settings_all_tabs',
|
341 |
|
342 |
$network_options = (array) get_site_option( Tribe__Main::OPTIONNAMENETWORK );
|
343 |
|
13 |
|
14 |
// Load multisite defaults
|
15 |
if ( is_multisite() ) {
|
16 |
+
$tribe_events_mu_defaults = [];
|
17 |
if ( file_exists( WP_CONTENT_DIR . '/tribe-events-mu-defaults.php' ) ) {
|
18 |
require_once WP_CONTENT_DIR . '/tribe-events-mu-defaults.php';
|
19 |
}
|
23 |
|
24 |
public function add_hooks() {
|
25 |
// option pages
|
26 |
+
add_action( '_network_admin_menu', [ $this, 'init_options' ] );
|
27 |
+
add_action( '_admin_menu', [ $this, 'init_options' ] );
|
28 |
|
29 |
+
add_action( 'admin_menu', [ $this, 'add_help_admin_menu_item' ], 50 );
|
30 |
+
add_action( 'tribe_settings_do_tabs', [ $this, 'do_setting_tabs' ] );
|
31 |
+
add_action( 'tribe_settings_do_tabs', [ $this, 'do_network_settings_tab' ], 400 );
|
32 |
+
add_action( 'tribe_settings_validate_tab_network', [ $this, 'save_all_tabs_hidden' ] );
|
33 |
add_action( 'updated_option', [ $this, 'update_options_cache' ], 10, 3 );
|
34 |
}
|
35 |
|
171 |
*/
|
172 |
public static function get_network_options() {
|
173 |
if ( ! isset( self::$network_options ) ) {
|
174 |
+
$options = get_site_option( Tribe__Main::OPTIONNAMENETWORK, [] );
|
175 |
self::$network_options = apply_filters( 'tribe_get_network_options', $options );
|
176 |
}
|
177 |
|
216 |
if ( ! is_array( $options ) ) {
|
217 |
return;
|
218 |
}
|
219 |
+
|
220 |
if ( $apply_filters == true ) {
|
221 |
$options = apply_filters( 'tribe-events-save-network-options', $options );
|
222 |
}
|
223 |
|
|
|
224 |
if ( update_site_option( Tribe__Main::OPTIONNAMENETWORK, $options ) ) {
|
225 |
self::$network_options = apply_filters( 'tribe_get_network_options', $options );
|
226 |
} else {
|
236 |
public static function add_network_options_page() {
|
237 |
$tribe_settings = Tribe__Settings::instance();
|
238 |
add_submenu_page(
|
239 |
+
'settings.php',
|
240 |
+
$tribe_settings->menuName,
|
241 |
+
$tribe_settings->menuName,
|
242 |
+
'manage_network_options',
|
243 |
+
'tribe-common',
|
244 |
+
[
|
245 |
$tribe_settings,
|
246 |
'generatePage',
|
247 |
+
]
|
248 |
);
|
249 |
}
|
250 |
|
290 |
*/
|
291 |
$license_fields = apply_filters( 'tribe_license_fields', $licenses_tab );
|
292 |
|
293 |
+
new Tribe__Settings_Tab( 'licenses', esc_html__( 'Licenses', 'tribe-common' ), [
|
294 |
'priority' => '40',
|
295 |
'fields' => $license_fields,
|
296 |
'network_admin' => is_network_admin() ? true : false,
|
297 |
+
] );
|
298 |
}
|
299 |
|
300 |
/**
|
314 |
* @todo move to an admin class
|
315 |
*/
|
316 |
public function add_help_admin_menu_item() {
|
317 |
+
$hidden_settings_tabs = self::get_network_option( 'hideSettingsTabs', [] );
|
318 |
if ( in_array( 'help', $hidden_settings_tabs ) ) {
|
319 |
return;
|
320 |
}
|
323 |
$title = esc_html__( 'Help', 'tribe-common' );
|
324 |
$slug = 'tribe-help';
|
325 |
|
326 |
+
add_submenu_page( $parent, $title, $title, 'manage_options', $slug, [ $this, 'do_help_tab' ] );
|
327 |
}
|
328 |
|
329 |
/**
|
332 |
* @return bool
|
333 |
*/
|
334 |
protected function have_addons() {
|
335 |
+
$addons = apply_filters( 'tribe_licensable_addons', [] );
|
336 |
+
|
337 |
return ! empty( $addons );
|
338 |
}
|
339 |
|
343 |
* @return void
|
344 |
*/
|
345 |
public function save_all_tabs_hidden() {
|
346 |
+
$all_tabs_keys = array_keys( apply_filters( 'tribe_settings_all_tabs', [] ) );
|
347 |
|
348 |
$network_options = (array) get_site_option( Tribe__Main::OPTIONNAMENETWORK );
|
349 |
|
common/src/Tribe/Settings_Tab.php
CHANGED
@@ -45,16 +45,16 @@ if ( ! class_exists( 'Tribe__Settings_Tab' ) ) {
|
|
45 |
* @param string $name the tab's visible name
|
46 |
* @param array $args additional arguments for the tab
|
47 |
*/
|
48 |
-
public function __construct( $id, $name, $args =
|
49 |
|
50 |
// setup the defaults
|
51 |
-
$this->defaults =
|
52 |
-
'fields' =>
|
53 |
'priority' => 50,
|
54 |
'show_save' => true,
|
55 |
'display_callback' => false,
|
56 |
'network_admin' => false,
|
57 |
-
|
58 |
|
59 |
// parse args with defaults
|
60 |
$this->args = wp_parse_args( $args, $this->defaults );
|
@@ -68,9 +68,9 @@ if ( ! class_exists( 'Tribe__Settings_Tab' ) ) {
|
|
68 |
|
69 |
// run actions & filters
|
70 |
if ( ! $this->network_admin ) {
|
71 |
-
add_filter( 'tribe_settings_all_tabs',
|
72 |
}
|
73 |
-
add_filter( 'tribe_settings_tabs',
|
74 |
}
|
75 |
|
76 |
/**
|
@@ -83,13 +83,13 @@ if ( ! class_exists( 'Tribe__Settings_Tab' ) ) {
|
|
83 |
* @return array $tabs the filtered tabs
|
84 |
*/
|
85 |
public function addTab( $tabs ) {
|
86 |
-
$hideSettingsTabs = Tribe__Settings_Manager::get_network_option( 'hideSettingsTabs',
|
87 |
if ( ( isset( $this->fields ) || has_action( 'tribe_settings_content_tab_' . $this->id ) ) && ( empty( $hideSettingsTabs ) || ! in_array( $this->id, $hideSettingsTabs ) ) ) {
|
88 |
if ( ( is_network_admin() && $this->args['network_admin'] ) || ( ! is_network_admin() && ! $this->args['network_admin'] ) ) {
|
89 |
$tabs[ $this->id ] = $this->name;
|
90 |
-
add_filter( 'tribe_settings_fields',
|
91 |
-
add_filter( 'tribe_settings_no_save_tabs',
|
92 |
-
add_filter( 'tribe_settings_content_tab_' . $this->id,
|
93 |
}
|
94 |
}
|
95 |
|
@@ -122,7 +122,7 @@ if ( ! class_exists( 'Tribe__Settings_Tab' ) ) {
|
|
122 |
if ( ! empty ( $this->fields ) ) {
|
123 |
$fields[ $this->id ] = $this->fields;
|
124 |
} elseif ( has_action( 'tribe_settings_content_tab_' . $this->id ) ) {
|
125 |
-
$fields[ $this->id ] = $this->fields =
|
126 |
}
|
127 |
|
128 |
return $fields;
|
@@ -156,7 +156,7 @@ if ( ! class_exists( 'Tribe__Settings_Tab' ) ) {
|
|
156 |
return;
|
157 |
}
|
158 |
|
159 |
-
$sent_data = get_option( 'tribe_settings_sent_data',
|
160 |
|
161 |
if ( is_array( $this->fields ) && ! empty( $this->fields ) ) {
|
162 |
foreach ( $this->fields as $key => $field ) {
|
45 |
* @param string $name the tab's visible name
|
46 |
* @param array $args additional arguments for the tab
|
47 |
*/
|
48 |
+
public function __construct( $id, $name, $args = [] ) {
|
49 |
|
50 |
// setup the defaults
|
51 |
+
$this->defaults = [
|
52 |
+
'fields' => [],
|
53 |
'priority' => 50,
|
54 |
'show_save' => true,
|
55 |
'display_callback' => false,
|
56 |
'network_admin' => false,
|
57 |
+
];
|
58 |
|
59 |
// parse args with defaults
|
60 |
$this->args = wp_parse_args( $args, $this->defaults );
|
68 |
|
69 |
// run actions & filters
|
70 |
if ( ! $this->network_admin ) {
|
71 |
+
add_filter( 'tribe_settings_all_tabs', [ $this, 'addAllTabs' ] );
|
72 |
}
|
73 |
+
add_filter( 'tribe_settings_tabs', [ $this, 'addTab' ], $this->priority );
|
74 |
}
|
75 |
|
76 |
/**
|
83 |
* @return array $tabs the filtered tabs
|
84 |
*/
|
85 |
public function addTab( $tabs ) {
|
86 |
+
$hideSettingsTabs = Tribe__Settings_Manager::get_network_option( 'hideSettingsTabs', [] );
|
87 |
if ( ( isset( $this->fields ) || has_action( 'tribe_settings_content_tab_' . $this->id ) ) && ( empty( $hideSettingsTabs ) || ! in_array( $this->id, $hideSettingsTabs ) ) ) {
|
88 |
if ( ( is_network_admin() && $this->args['network_admin'] ) || ( ! is_network_admin() && ! $this->args['network_admin'] ) ) {
|
89 |
$tabs[ $this->id ] = $this->name;
|
90 |
+
add_filter( 'tribe_settings_fields', [ $this, 'addFields' ] );
|
91 |
+
add_filter( 'tribe_settings_no_save_tabs', [ $this, 'showSaveTab' ] );
|
92 |
+
add_filter( 'tribe_settings_content_tab_' . $this->id, [ $this, 'doContent' ] );
|
93 |
}
|
94 |
}
|
95 |
|
122 |
if ( ! empty ( $this->fields ) ) {
|
123 |
$fields[ $this->id ] = $this->fields;
|
124 |
} elseif ( has_action( 'tribe_settings_content_tab_' . $this->id ) ) {
|
125 |
+
$fields[ $this->id ] = $this->fields = [ 0 => null ]; // just to trick it
|
126 |
}
|
127 |
|
128 |
return $fields;
|
156 |
return;
|
157 |
}
|
158 |
|
159 |
+
$sent_data = get_option( 'tribe_settings_sent_data', [] );
|
160 |
|
161 |
if ( is_array( $this->fields ) && ! empty( $this->fields ) ) {
|
162 |
foreach ( $this->fields as $key => $field ) {
|
common/src/Tribe/Simple_Table.php
CHANGED
@@ -8,7 +8,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
8 |
/**
|
9 |
* A class for outputting a multidimensional array as a straightforward HTML table
|
10 |
*
|
11 |
-
* @
|
12 |
*/
|
13 |
class Tribe__Simple_Table {
|
14 |
|
@@ -38,7 +38,7 @@ class Tribe__Simple_Table {
|
|
38 |
* @param array $tbody Multidimension array containing table rows/columns
|
39 |
* @param array $thead Single dimension array containing table headings
|
40 |
*/
|
41 |
-
public function __construct( $tbody, $thead =
|
42 |
$this->thead = $thead;
|
43 |
$this->tbody = $tbody;
|
44 |
}
|
@@ -143,7 +143,7 @@ class Tribe__Simple_Table {
|
|
143 |
*
|
144 |
* @return string HTML element
|
145 |
*/
|
146 |
-
private function output_element( $html_tag, $data = null, $attributes =
|
147 |
$output = '<' . tag_escape( $html_tag );
|
148 |
|
149 |
if ( ! empty( $attributes ) ) {
|
8 |
/**
|
9 |
* A class for outputting a multidimensional array as a straightforward HTML table
|
10 |
*
|
11 |
+
* @todo Remove this in version 5 if it does not see much usage
|
12 |
*/
|
13 |
class Tribe__Simple_Table {
|
14 |
|
38 |
* @param array $tbody Multidimension array containing table rows/columns
|
39 |
* @param array $thead Single dimension array containing table headings
|
40 |
*/
|
41 |
+
public function __construct( $tbody, $thead = [] ) {
|
42 |
$this->thead = $thead;
|
43 |
$this->tbody = $tbody;
|
44 |
}
|
143 |
*
|
144 |
* @return string HTML element
|
145 |
*/
|
146 |
+
private function output_element( $html_tag, $data = null, $attributes = [] ) {
|
147 |
$output = '<' . tag_escape( $html_tag );
|
148 |
|
149 |
if ( ! empty( $attributes ) ) {
|
common/src/Tribe/Support.php
CHANGED
@@ -26,20 +26,20 @@ if ( ! class_exists( 'Tribe__Support' ) ) {
|
|
26 |
*
|
27 |
* @var array
|
28 |
*/
|
29 |
-
protected $must_escape =
|
30 |
'tribeEventsAfterHTML',
|
31 |
'tribeEventsBeforeHTML',
|
32 |
-
|
33 |
|
34 |
/**
|
35 |
* Field prefixes here should be partially obfuscated before being printed.
|
36 |
*
|
37 |
* @var array
|
38 |
*/
|
39 |
-
protected $must_obfuscate_prefixes =
|
40 |
'pue_install_key_',
|
41 |
'google_maps_js_api_key',
|
42 |
-
|
43 |
|
44 |
private function __construct() {
|
45 |
/**
|
@@ -49,11 +49,11 @@ if ( ! class_exists( 'Tribe__Support' ) ) {
|
|
49 |
*/
|
50 |
$this->must_escape = (array) apply_filters( 'tribe_help_must_escape_fields', $this->must_escape );
|
51 |
|
52 |
-
add_action( 'tribe_help_pre_get_sections',
|
53 |
-
add_action( 'delete_option_rewrite_rules',
|
54 |
|
55 |
-
add_action( 'rest_api_init',
|
56 |
-
add_action( 'wp_ajax_tribe_toggle_sysinfo_optin',
|
57 |
}
|
58 |
|
59 |
/**
|
@@ -74,7 +74,7 @@ if ( ! class_exists( 'Tribe__Support' ) ) {
|
|
74 |
global $wpdb;
|
75 |
$user = wp_get_current_user();
|
76 |
|
77 |
-
$plugins =
|
78 |
if ( function_exists( 'get_plugin_data' ) ) {
|
79 |
$plugins_raw = wp_get_active_and_valid_plugins();
|
80 |
foreach ( $plugins_raw as $k => $v ) {
|
@@ -93,7 +93,7 @@ if ( ! class_exists( 'Tribe__Support' ) ) {
|
|
93 |
}
|
94 |
}
|
95 |
|
96 |
-
$network_plugins =
|
97 |
if ( is_multisite() && function_exists( 'get_plugin_data' ) ) {
|
98 |
$plugins_raw = wp_get_active_network_plugins();
|
99 |
foreach ( $plugins_raw as $k => $v ) {
|
@@ -112,7 +112,7 @@ if ( ! class_exists( 'Tribe__Support' ) ) {
|
|
112 |
}
|
113 |
}
|
114 |
|
115 |
-
$mu_plugins =
|
116 |
if ( function_exists( 'get_mu_plugins' ) ) {
|
117 |
$mu_plugins_raw = get_mu_plugins();
|
118 |
foreach ( $mu_plugins_raw as $k => $v ) {
|
@@ -130,10 +130,10 @@ if ( ! class_exists( 'Tribe__Support' ) ) {
|
|
130 |
}
|
131 |
}
|
132 |
|
133 |
-
$keys = apply_filters( 'tribe-pue-install-keys',
|
134 |
//Obfuscate the License Keys for Security
|
135 |
if ( is_array( $keys ) && ! empty( $keys ) ) {
|
136 |
-
$secure_keys =
|
137 |
foreach ( $keys as $plugin => $license ) {
|
138 |
$secure_keys[ $plugin ] = preg_replace( '/^(.{4}).*(.{4})$/', '$1' . str_repeat( '#', 32 ) . '$2', $license );
|
139 |
}
|
@@ -145,15 +145,15 @@ if ( ! class_exists( 'Tribe__Support' ) ) {
|
|
145 |
$server = explode( '/', reset( $server ) );
|
146 |
|
147 |
//PHP Information
|
148 |
-
$php_info =
|
149 |
-
$php_vars =
|
150 |
'max_execution_time',
|
151 |
'memory_limit',
|
152 |
'upload_max_filesize',
|
153 |
'post_max_size',
|
154 |
'display_errors',
|
155 |
'log_errors',
|
156 |
-
|
157 |
|
158 |
foreach ( $php_vars as $php_var ) {
|
159 |
if ( isset( $wpdb->qm_php_vars ) && isset( $wpdb->qm_php_vars[ $php_var ] ) ) {
|
@@ -176,7 +176,7 @@ if ( ! class_exists( 'Tribe__Support' ) ) {
|
|
176 |
}
|
177 |
|
178 |
$site_url = get_site_url();
|
179 |
-
$systeminfo =
|
180 |
'Home URL' => get_home_url(),
|
181 |
'Site URL' => $site_url,
|
182 |
'Site Language' => get_option( 'WPLANG' ) ? get_option( 'WPLANG' ) : esc_html__( 'English', 'tribe-common' ),
|
@@ -206,7 +206,7 @@ if ( ! class_exists( 'Tribe__Support' ) ) {
|
|
206 |
'Week Starts On' => get_option( 'start_of_week' ),
|
207 |
'Common Library Dir' => $GLOBALS['tribe-common-info']['dir'],
|
208 |
'Common Library Version' => $GLOBALS['tribe-common-info']['version'],
|
209 |
-
|
210 |
|
211 |
if ( $this->rewrite_rules_purged ) {
|
212 |
$systeminfo['rewrite rules purged'] = esc_html__( 'Rewrite rules were purged on load of this help page. Chances are there is a rewrite rule flush occurring in a plugin or theme!', 'tribe-common' );
|
@@ -262,7 +262,7 @@ if ( ! class_exists( 'Tribe__Support' ) ) {
|
|
262 |
} elseif ( is_array( $v ) && $is_numeric_array ) {
|
263 |
$output .= sprintf( '<dd class="support-stats-array"><ul><li>%s</li></ul></dd>', join( '</li><li>', $v ) );
|
264 |
} else {
|
265 |
-
$formatted_v =
|
266 |
foreach ( $v as $obj_key => $obj_val ) {
|
267 |
if ( in_array( $obj_key, $this->must_escape ) ) {
|
268 |
$obj_val = esc_html( $obj_val );
|
@@ -383,7 +383,7 @@ if ( ! class_exists( 'Tribe__Support' ) ) {
|
|
383 |
update_option( 'tribe_systeminfo_optin', $optin_key );
|
384 |
|
385 |
//Only Connect If a License Exists
|
386 |
-
$keys = apply_filters( 'tribe-pue-install-keys',
|
387 |
if ( is_array( $keys ) && ! empty( $keys ) ) {
|
388 |
Tribe__Support::send_sysinfo_key( $optin_key );
|
389 |
} else {
|
@@ -412,7 +412,7 @@ if ( ! class_exists( 'Tribe__Support' ) ) {
|
|
412 |
*/
|
413 |
public static function send_sysinfo_key( $optin_key = null, $url = null, $remove = null, $pueadd = false ) {
|
414 |
|
415 |
-
$url
|
416 |
|
417 |
$teccom_url = 'https://theeventscalendar.com/';
|
418 |
|
26 |
*
|
27 |
* @var array
|
28 |
*/
|
29 |
+
protected $must_escape = [
|
30 |
'tribeEventsAfterHTML',
|
31 |
'tribeEventsBeforeHTML',
|
32 |
+
];
|
33 |
|
34 |
/**
|
35 |
* Field prefixes here should be partially obfuscated before being printed.
|
36 |
*
|
37 |
* @var array
|
38 |
*/
|
39 |
+
protected $must_obfuscate_prefixes = [
|
40 |
'pue_install_key_',
|
41 |
'google_maps_js_api_key',
|
42 |
+
];
|
43 |
|
44 |
private function __construct() {
|
45 |
/**
|
49 |
*/
|
50 |
$this->must_escape = (array) apply_filters( 'tribe_help_must_escape_fields', $this->must_escape );
|
51 |
|
52 |
+
add_action( 'tribe_help_pre_get_sections', [ $this, 'append_system_info' ], 10 );
|
53 |
+
add_action( 'delete_option_rewrite_rules', [ $this, 'log_rewrite_rule_purge' ] );
|
54 |
|
55 |
+
add_action( 'rest_api_init', [ __CLASS__, 'create_sysinfo_endpoint' ] );
|
56 |
+
add_action( 'wp_ajax_tribe_toggle_sysinfo_optin', [ __CLASS__, 'ajax_sysinfo_optin' ] );
|
57 |
}
|
58 |
|
59 |
/**
|
74 |
global $wpdb;
|
75 |
$user = wp_get_current_user();
|
76 |
|
77 |
+
$plugins = [];
|
78 |
if ( function_exists( 'get_plugin_data' ) ) {
|
79 |
$plugins_raw = wp_get_active_and_valid_plugins();
|
80 |
foreach ( $plugins_raw as $k => $v ) {
|
93 |
}
|
94 |
}
|
95 |
|
96 |
+
$network_plugins = [];
|
97 |
if ( is_multisite() && function_exists( 'get_plugin_data' ) ) {
|
98 |
$plugins_raw = wp_get_active_network_plugins();
|
99 |
foreach ( $plugins_raw as $k => $v ) {
|
112 |
}
|
113 |
}
|
114 |
|
115 |
+
$mu_plugins = [];
|
116 |
if ( function_exists( 'get_mu_plugins' ) ) {
|
117 |
$mu_plugins_raw = get_mu_plugins();
|
118 |
foreach ( $mu_plugins_raw as $k => $v ) {
|
130 |
}
|
131 |
}
|
132 |
|
133 |
+
$keys = apply_filters( 'tribe-pue-install-keys', [] );
|
134 |
//Obfuscate the License Keys for Security
|
135 |
if ( is_array( $keys ) && ! empty( $keys ) ) {
|
136 |
+
$secure_keys = [];
|
137 |
foreach ( $keys as $plugin => $license ) {
|
138 |
$secure_keys[ $plugin ] = preg_replace( '/^(.{4}).*(.{4})$/', '$1' . str_repeat( '#', 32 ) . '$2', $license );
|
139 |
}
|
145 |
$server = explode( '/', reset( $server ) );
|
146 |
|
147 |
//PHP Information
|
148 |
+
$php_info = [];
|
149 |
+
$php_vars = [
|
150 |
'max_execution_time',
|
151 |
'memory_limit',
|
152 |
'upload_max_filesize',
|
153 |
'post_max_size',
|
154 |
'display_errors',
|
155 |
'log_errors',
|
156 |
+
];
|
157 |
|
158 |
foreach ( $php_vars as $php_var ) {
|
159 |
if ( isset( $wpdb->qm_php_vars ) && isset( $wpdb->qm_php_vars[ $php_var ] ) ) {
|
176 |
}
|
177 |
|
178 |
$site_url = get_site_url();
|
179 |
+
$systeminfo = [
|
180 |
'Home URL' => get_home_url(),
|
181 |
'Site URL' => $site_url,
|
182 |
'Site Language' => get_option( 'WPLANG' ) ? get_option( 'WPLANG' ) : esc_html__( 'English', 'tribe-common' ),
|
206 |
'Week Starts On' => get_option( 'start_of_week' ),
|
207 |
'Common Library Dir' => $GLOBALS['tribe-common-info']['dir'],
|
208 |
'Common Library Version' => $GLOBALS['tribe-common-info']['version'],
|
209 |
+
];
|
210 |
|
211 |
if ( $this->rewrite_rules_purged ) {
|
212 |
$systeminfo['rewrite rules purged'] = esc_html__( 'Rewrite rules were purged on load of this help page. Chances are there is a rewrite rule flush occurring in a plugin or theme!', 'tribe-common' );
|
262 |
} elseif ( is_array( $v ) && $is_numeric_array ) {
|
263 |
$output .= sprintf( '<dd class="support-stats-array"><ul><li>%s</li></ul></dd>', join( '</li><li>', $v ) );
|
264 |
} else {
|
265 |
+
$formatted_v = [];
|
266 |
foreach ( $v as $obj_key => $obj_val ) {
|
267 |
if ( in_array( $obj_key, $this->must_escape ) ) {
|
268 |
$obj_val = esc_html( $obj_val );
|
383 |
update_option( 'tribe_systeminfo_optin', $optin_key );
|
384 |
|
385 |
//Only Connect If a License Exists
|
386 |
+
$keys = apply_filters( 'tribe-pue-install-keys', [] );
|
387 |
if ( is_array( $keys ) && ! empty( $keys ) ) {
|
388 |
Tribe__Support::send_sysinfo_key( $optin_key );
|
389 |
} else {
|
412 |
*/
|
413 |
public static function send_sysinfo_key( $optin_key = null, $url = null, $remove = null, $pueadd = false ) {
|
414 |
|
415 |
+
$url = $url ? $url : urlencode( str_replace( [ 'http://', 'https://' ], '', get_site_url() ) );
|
416 |
|
417 |
$teccom_url = 'https://theeventscalendar.com/';
|
418 |
|
common/src/Tribe/Support/Obfuscator.php
CHANGED
@@ -6,14 +6,14 @@ class Tribe__Support__Obfuscator {
|
|
6 |
/**
|
7 |
* @var array
|
8 |
*/
|
9 |
-
protected $prefixes =
|
10 |
|
11 |
/**
|
12 |
* Tribe__Support__Obfuscator constructor.
|
13 |
*
|
14 |
* @param array $prefixes
|
15 |
*/
|
16 |
-
public function __construct( array $prefixes =
|
17 |
$this->prefixes = $prefixes;
|
18 |
}
|
19 |
|
6 |
/**
|
7 |
* @var array
|
8 |
*/
|
9 |
+
protected $prefixes = [];
|
10 |
|
11 |
/**
|
12 |
* Tribe__Support__Obfuscator constructor.
|
13 |
*
|
14 |
* @param array $prefixes
|
15 |
*/
|
16 |
+
public function __construct( array $prefixes = [] ) {
|
17 |
$this->prefixes = $prefixes;
|
18 |
}
|
19 |
|
common/src/Tribe/Support/Template_Checker.php
CHANGED
@@ -9,9 +9,8 @@ class Tribe__Support__Template_Checker {
|
|
9 |
protected $plugin_views_dir = '';
|
10 |
protected $theme_views_dir = '';
|
11 |
|
12 |
-
protected $originals =
|
13 |
-
protected $overrides =
|
14 |
-
|
15 |
|
16 |
/**
|
17 |
* Examine the plugin views (and optionally any theme overrides) and analyse
|
@@ -176,7 +175,7 @@ class Tribe__Support__Template_Checker {
|
|
176 |
* @return array
|
177 |
*/
|
178 |
public function get_versioned_views() {
|
179 |
-
$versioned_views =
|
180 |
|
181 |
foreach ( $this->originals as $key => $version ) {
|
182 |
if ( ! empty( $version ) ) {
|
@@ -196,7 +195,7 @@ class Tribe__Support__Template_Checker {
|
|
196 |
* @return array
|
197 |
*/
|
198 |
public function get_views_tagged_this_release() {
|
199 |
-
$currently_tagged_views =
|
200 |
|
201 |
foreach ( $this->get_versioned_views() as $key => $version ) {
|
202 |
if ( $version === $this->plugin_version ) {
|
@@ -226,7 +225,7 @@ class Tribe__Support__Template_Checker {
|
|
226 |
* @return array
|
227 |
*/
|
228 |
public function get_versioned_overrides() {
|
229 |
-
$versioned_views =
|
230 |
|
231 |
foreach ( $this->overrides as $key => $version ) {
|
232 |
if ( ! empty( $version ) ) {
|
@@ -252,7 +251,7 @@ class Tribe__Support__Template_Checker {
|
|
252 |
* @return array
|
253 |
*/
|
254 |
public function get_outdated_overrides( $include_unknown = false ) {
|
255 |
-
$outdated =
|
256 |
$originals = $this->get_versioned_views();
|
257 |
|
258 |
$overrides = $include_unknown
|
9 |
protected $plugin_views_dir = '';
|
10 |
protected $theme_views_dir = '';
|
11 |
|
12 |
+
protected $originals = [];
|
13 |
+
protected $overrides = [];
|
|
|
14 |
|
15 |
/**
|
16 |
* Examine the plugin views (and optionally any theme overrides) and analyse
|
175 |
* @return array
|
176 |
*/
|
177 |
public function get_versioned_views() {
|
178 |
+
$versioned_views = [];
|
179 |
|
180 |
foreach ( $this->originals as $key => $version ) {
|
181 |
if ( ! empty( $version ) ) {
|
195 |
* @return array
|
196 |
*/
|
197 |
public function get_views_tagged_this_release() {
|
198 |
+
$currently_tagged_views = [];
|
199 |
|
200 |
foreach ( $this->get_versioned_views() as $key => $version ) {
|
201 |
if ( $version === $this->plugin_version ) {
|
225 |
* @return array
|
226 |
*/
|
227 |
public function get_versioned_overrides() {
|
228 |
+
$versioned_views = [];
|
229 |
|
230 |
foreach ( $this->overrides as $key => $version ) {
|
231 |
if ( ! empty( $version ) ) {
|
251 |
* @return array
|
252 |
*/
|
253 |
public function get_outdated_overrides( $include_unknown = false ) {
|
254 |
+
$outdated = [];
|
255 |
$originals = $this->get_versioned_views();
|
256 |
|
257 |
$overrides = $include_unknown
|
common/src/Tribe/Support/Template_Checker_Report.php
CHANGED
@@ -14,7 +14,7 @@ class Tribe__Support__Template_Checker_Report {
|
|
14 |
*
|
15 |
* @var array
|
16 |
*/
|
17 |
-
protected static $plugin_reports =
|
18 |
|
19 |
/**
|
20 |
* Container for finished report.
|
@@ -53,7 +53,7 @@ class Tribe__Support__Template_Checker_Report {
|
|
53 |
*
|
54 |
* @var array $registered_template_systems
|
55 |
*/
|
56 |
-
return apply_filters( 'tribe_support_registered_template_systems',
|
57 |
}
|
58 |
|
59 |
/**
|
14 |
*
|
15 |
* @var array
|
16 |
*/
|
17 |
+
protected static $plugin_reports = [];
|
18 |
|
19 |
/**
|
20 |
* Container for finished report.
|
53 |
*
|
54 |
* @var array $registered_template_systems
|
55 |
*/
|
56 |
+
return apply_filters( 'tribe_support_registered_template_systems', [] );
|
57 |
}
|
58 |
|
59 |
/**
|
common/src/Tribe/Tabbed_View.php
CHANGED
@@ -13,7 +13,7 @@ class Tribe__Tabbed_View {
|
|
13 |
*
|
14 |
* @var array An associative array in the [<slug> => <instance>] format.
|
15 |
*/
|
16 |
-
protected $items =
|
17 |
|
18 |
/**
|
19 |
* The slug of the default tab
|
@@ -32,7 +32,7 @@ class Tribe__Tabbed_View {
|
|
32 |
*
|
33 |
* @var array|object
|
34 |
*/
|
35 |
-
protected $data =
|
36 |
|
37 |
/**
|
38 |
* @var string
|
@@ -99,7 +99,7 @@ class Tribe__Tabbed_View {
|
|
99 |
* @return Tribe__Tabbed_View__Tab[] An array of all the active and visible tabs.
|
100 |
*/
|
101 |
public function get_visibles() {
|
102 |
-
return array_filter( $this->get(),
|
103 |
}
|
104 |
|
105 |
/**
|
@@ -175,7 +175,7 @@ class Tribe__Tabbed_View {
|
|
175 |
* @return null|array|object If we couldn't find the tab it will be null, if the slug is null will return all tabs
|
176 |
*/
|
177 |
public function get( $slug = null ) {
|
178 |
-
uasort( $this->items,
|
179 |
|
180 |
if ( is_null( $slug ) ) {
|
181 |
return $this->items;
|
@@ -295,7 +295,7 @@ class Tribe__Tabbed_View {
|
|
295 |
* @return Tribe__Tabbed_View__Tab[]
|
296 |
*/
|
297 |
public function get_tabs() {
|
298 |
-
uasort( $this->items,
|
299 |
|
300 |
return array_values( $this->items );
|
301 |
}
|
@@ -332,9 +332,9 @@ class Tribe__Tabbed_View {
|
|
332 |
return '';
|
333 |
}
|
334 |
|
335 |
-
$default_data =
|
336 |
'view' => $this,
|
337 |
-
|
338 |
|
339 |
$data = array_merge( $default_data, (array) $this->data );
|
340 |
|
13 |
*
|
14 |
* @var array An associative array in the [<slug> => <instance>] format.
|
15 |
*/
|
16 |
+
protected $items = [];
|
17 |
|
18 |
/**
|
19 |
* The slug of the default tab
|
32 |
*
|
33 |
* @var array|object
|
34 |
*/
|
35 |
+
protected $data = [];
|
36 |
|
37 |
/**
|
38 |
* @var string
|
99 |
* @return Tribe__Tabbed_View__Tab[] An array of all the active and visible tabs.
|
100 |
*/
|
101 |
public function get_visibles() {
|
102 |
+
return array_filter( $this->get(), [ $this, 'is_tab_visible' ] );
|
103 |
}
|
104 |
|
105 |
/**
|
175 |
* @return null|array|object If we couldn't find the tab it will be null, if the slug is null will return all tabs
|
176 |
*/
|
177 |
public function get( $slug = null ) {
|
178 |
+
uasort( $this->items, [ $this, 'sort_by_priority' ] );
|
179 |
|
180 |
if ( is_null( $slug ) ) {
|
181 |
return $this->items;
|
295 |
* @return Tribe__Tabbed_View__Tab[]
|
296 |
*/
|
297 |
public function get_tabs() {
|
298 |
+
uasort( $this->items, [ $this, 'sort_by_priority' ] );
|
299 |
|
300 |
return array_values( $this->items );
|
301 |
}
|
332 |
return '';
|
333 |
}
|
334 |
|
335 |
+
$default_data = [
|
336 |
'view' => $this,
|
337 |
+
];
|
338 |
|
339 |
$data = array_merge( $default_data, (array) $this->data );
|
340 |
|
common/src/Tribe/Tabbed_View/Tab.php
CHANGED
@@ -20,7 +20,7 @@ class Tribe__Tabbed_View__Tab {
|
|
20 |
*
|
21 |
* @var array|object
|
22 |
*/
|
23 |
-
protected $data =
|
24 |
|
25 |
/**
|
26 |
* The template file that should be used to render the tab.
|
@@ -164,9 +164,9 @@ class Tribe__Tabbed_View__Tab {
|
|
164 |
return '';
|
165 |
}
|
166 |
|
167 |
-
$default_data =
|
168 |
'tab' => $this,
|
169 |
-
|
170 |
|
171 |
$data = array_merge( $default_data, (array) $this->data );
|
172 |
|
@@ -189,14 +189,14 @@ class Tribe__Tabbed_View__Tab {
|
|
189 |
*
|
190 |
* @return string
|
191 |
*/
|
192 |
-
public function get_url( $args =
|
193 |
if ( ! empty( $this->url ) ) {
|
194 |
return $this->url;
|
195 |
}
|
196 |
|
197 |
-
$defaults =
|
198 |
'tab' => $this->get_slug(),
|
199 |
-
|
200 |
|
201 |
// Allow the link to be "changed" on the fly
|
202 |
$args = wp_parse_args( $args, $defaults );
|
20 |
*
|
21 |
* @var array|object
|
22 |
*/
|
23 |
+
protected $data = [];
|
24 |
|
25 |
/**
|
26 |
* The template file that should be used to render the tab.
|
164 |
return '';
|
165 |
}
|
166 |
|
167 |
+
$default_data = [
|
168 |
'tab' => $this,
|
169 |
+
];
|
170 |
|
171 |
$data = array_merge( $default_data, (array) $this->data );
|
172 |
|
189 |
*
|
190 |
* @return string
|
191 |
*/
|
192 |
+
public function get_url( $args = [], $relative = false ) {
|
193 |
if ( ! empty( $this->url ) ) {
|
194 |
return $this->url;
|
195 |
}
|
196 |
|
197 |
+
$defaults = [
|
198 |
'tab' => $this->get_slug(),
|
199 |
+
];
|
200 |
|
201 |
// Allow the link to be "changed" on the fly
|
202 |
$args = wp_parse_args( $args, $defaults );
|
common/src/Tribe/Template.php
CHANGED
@@ -1,5 +1,6 @@
|
|
1 |
<?php
|
2 |
|
|
|
3 |
use Tribe\Utils\Strings;
|
4 |
|
5 |
class Tribe__Template {
|
@@ -10,7 +11,7 @@ class Tribe__Template {
|
|
10 |
*
|
11 |
* @var array
|
12 |
*/
|
13 |
-
protected $folder =
|
14 |
|
15 |
/**
|
16 |
* The origin class for the plugin where the template lives
|
@@ -37,7 +38,7 @@ class Tribe__Template {
|
|
37 |
*
|
38 |
* @var array
|
39 |
*/
|
40 |
-
protected $global =
|
41 |
|
42 |
/**
|
43 |
* Used for finding templates for public templates on themes inside of a folder.
|
@@ -233,7 +234,7 @@ class Tribe__Template {
|
|
233 |
*
|
234 |
* @return self
|
235 |
*/
|
236 |
-
public function add_template_globals( $context =
|
237 |
// Cast as Array merge and save
|
238 |
$this->global = wp_parse_args( (array) $context, $this->global );
|
239 |
|
@@ -612,7 +613,7 @@ class Tribe__Template {
|
|
612 |
}
|
613 |
|
614 |
// Build the File Path
|
615 |
-
$file =
|
616 |
|
617 |
// Append the Extension to the file path
|
618 |
$file .= '.php';
|
1 |
<?php
|
2 |
|
3 |
+
use Tribe\Utils\Paths;
|
4 |
use Tribe\Utils\Strings;
|
5 |
|
6 |
class Tribe__Template {
|
11 |
*
|
12 |
* @var array
|
13 |
*/
|
14 |
+
protected $folder = [];
|
15 |
|
16 |
/**
|
17 |
* The origin class for the plugin where the template lives
|
38 |
*
|
39 |
* @var array
|
40 |
*/
|
41 |
+
protected $global = [];
|
42 |
|
43 |
/**
|
44 |
* Used for finding templates for public templates on themes inside of a folder.
|
234 |
*
|
235 |
* @return self
|
236 |
*/
|
237 |
+
public function add_template_globals( $context = [] ) {
|
238 |
// Cast as Array merge and save
|
239 |
$this->global = wp_parse_args( (array) $context, $this->global );
|
240 |
|
613 |
}
|
614 |
|
615 |
// Build the File Path
|
616 |
+
$file = Paths::merge( $folder['path'], $name );
|
617 |
|
618 |
// Append the Extension to the file path
|
619 |
$file .= '.php';
|
common/src/Tribe/Template_Factory.php
CHANGED
@@ -23,7 +23,7 @@ class Tribe__Template_Factory {
|
|
23 |
*
|
24 |
* @var array
|
25 |
**/
|
26 |
-
protected $asset_packages =
|
27 |
|
28 |
/**
|
29 |
* Static variable that holds array of vendor script handles, for adding to later deps.
|
@@ -33,7 +33,7 @@ class Tribe__Template_Factory {
|
|
33 |
* @static
|
34 |
* @var array
|
35 |
*/
|
36 |
-
protected static $vendor_scripts =
|
37 |
|
38 |
/**
|
39 |
* Constant that holds the ajax hook suffix for the view
|
@@ -154,7 +154,7 @@ class Tribe__Template_Factory {
|
|
154 |
* @param string $name
|
155 |
* @param array $deps Dependents
|
156 |
*/
|
157 |
-
public static function asset_package( $name, $deps =
|
158 |
|
159 |
$common = Tribe__Main::instance();
|
160 |
$prefix = 'tribe-events';
|
23 |
*
|
24 |
* @var array
|
25 |
**/
|
26 |
+
protected $asset_packages = [];
|
27 |
|
28 |
/**
|
29 |
* Static variable that holds array of vendor script handles, for adding to later deps.
|
33 |
* @static
|
34 |
* @var array
|
35 |
*/
|
36 |
+
protected static $vendor_scripts = [];
|
37 |
|
38 |
/**
|
39 |
* Constant that holds the ajax hook suffix for the view
|
154 |
* @param string $name
|
155 |
* @param array $deps Dependents
|
156 |
*/
|
157 |
+
public static function asset_package( $name, $deps = [] ) {
|
158 |
|
159 |
$common = Tribe__Main::instance();
|
160 |
$prefix = 'tribe-events';
|
common/src/Tribe/Template_Part_Cache.php
CHANGED
@@ -56,13 +56,13 @@ class Tribe__Template_Part_Cache {
|
|
56 |
public function add_hooks() {
|
57 |
|
58 |
// set the cached html in transients after the template part is included
|
59 |
-
add_filter( 'tribe_get_template_part_content',
|
60 |
|
61 |
// get the cached html right before the setup_view runs so it's available for bypassing any view logic
|
62 |
-
add_action( 'tribe_events_before_view',
|
63 |
|
64 |
// when the specified template part is included, show the cached html instead
|
65 |
-
add_filter( 'tribe_get_template_part_path_' . $this->template,
|
66 |
}
|
67 |
|
68 |
/**
|
56 |
public function add_hooks() {
|
57 |
|
58 |
// set the cached html in transients after the template part is included
|
59 |
+
add_filter( 'tribe_get_template_part_content', [ $this, 'set' ], 10, 2 );
|
60 |
|
61 |
// get the cached html right before the setup_view runs so it's available for bypassing any view logic
|
62 |
+
add_action( 'tribe_events_before_view', [ $this, 'get' ], 9, 1 );
|
63 |
|
64 |
// when the specified template part is included, show the cached html instead
|
65 |
+
add_filter( 'tribe_get_template_part_path_' . $this->template, [ $this, 'display' ] );
|
66 |
}
|
67 |
|
68 |
/**
|
common/src/Tribe/Templates.php
CHANGED
@@ -37,7 +37,7 @@ class Tribe__Templates {
|
|
37 |
*/
|
38 |
public static function locate_stylesheet( $stylesheets, $fallback = false ) {
|
39 |
if ( ! is_array( $stylesheets ) ) {
|
40 |
-
$stylesheets =
|
41 |
}
|
42 |
if ( empty( $stylesheets ) ) {
|
43 |
return $fallback;
|
37 |
*/
|
38 |
public static function locate_stylesheet( $stylesheets, $fallback = false ) {
|
39 |
if ( ! is_array( $stylesheets ) ) {
|
40 |
+
$stylesheets = [ $stylesheets ];
|
41 |
}
|
42 |
if ( empty( $stylesheets ) ) {
|
43 |
return $fallback;
|
common/src/Tribe/Terms.php
CHANGED
@@ -16,7 +16,7 @@ class Tribe__Terms {
|
|
16 |
public static function translate_terms_to_ids( $terms, $taxonomy, $create_missing = true ) {
|
17 |
$terms = is_string( $terms ) ? preg_split( '/\\s*,\\s*/', $terms ) : (array) $terms;
|
18 |
|
19 |
-
$term_ids =
|
20 |
foreach ( $terms as $term ) {
|
21 |
if ( ! $term instanceof WP_Term && ! strlen( trim( $term ) ) ) {
|
22 |
continue;
|
16 |
public static function translate_terms_to_ids( $terms, $taxonomy, $create_missing = true ) {
|
17 |
$terms = is_string( $terms ) ? preg_split( '/\\s*,\\s*/', $terms ) : (array) $terms;
|
18 |
|
19 |
+
$term_ids = [];
|
20 |
foreach ( $terms as $term ) {
|
21 |
if ( ! $term instanceof WP_Term && ! strlen( trim( $term ) ) ) {
|
22 |
continue;
|
common/src/Tribe/Timezones.php
CHANGED
@@ -15,7 +15,7 @@ class Tribe__Timezones {
|
|
15 |
*
|
16 |
* @var array
|
17 |
*/
|
18 |
-
protected static $timezones =
|
19 |
|
20 |
public static function init() {
|
21 |
self::invalidate_caches();
|
@@ -27,8 +27,8 @@ class Tribe__Timezones {
|
|
27 |
* Currently we are concerned only with the site timezone abbreviation.
|
28 |
*/
|
29 |
protected static function invalidate_caches() {
|
30 |
-
add_filter( 'pre_update_option_gmt_offset',
|
31 |
-
add_filter( 'pre_update_option_timezone_string',
|
32 |
}
|
33 |
|
34 |
/**
|
@@ -462,11 +462,11 @@ class Tribe__Timezones {
|
|
462 |
}
|
463 |
|
464 |
// if the offset contains fractions like :15, :30 or :45 convert them
|
465 |
-
$supported_offsets =
|
466 |
'/:15$/' => '.25',
|
467 |
'/:30$/' => '.5',
|
468 |
'/:45$/' => '.75',
|
469 |
-
|
470 |
$offset = preg_replace( array_keys( $supported_offsets ), array_values( $supported_offsets ), $offset );
|
471 |
|
472 |
// Convert the offset to minutes for easier handling of fractional offsets
|
15 |
*
|
16 |
* @var array
|
17 |
*/
|
18 |
+
protected static $timezones = [];
|
19 |
|
20 |
public static function init() {
|
21 |
self::invalidate_caches();
|
27 |
* Currently we are concerned only with the site timezone abbreviation.
|
28 |
*/
|
29 |
protected static function invalidate_caches() {
|
30 |
+
add_filter( 'pre_update_option_gmt_offset', [ __CLASS__, 'clear_site_timezone_abbr' ] );
|
31 |
+
add_filter( 'pre_update_option_timezone_string', [ __CLASS__, 'clear_site_timezone_abbr' ] );
|
32 |
}
|
33 |
|
34 |
/**
|
462 |
}
|
463 |
|
464 |
// if the offset contains fractions like :15, :30 or :45 convert them
|
465 |
+
$supported_offsets = [
|
466 |
'/:15$/' => '.25',
|
467 |
'/:30$/' => '.5',
|
468 |
'/:45$/' => '.75',
|
469 |
+
];
|
470 |
$offset = preg_replace( array_keys( $supported_offsets ), array_values( $supported_offsets ), $offset );
|
471 |
|
472 |
// Convert the offset to minutes for easier handling of fractional offsets
|
common/src/Tribe/Tracker.php
CHANGED
@@ -19,34 +19,34 @@ class Tribe__Tracker {
|
|
19 |
/**
|
20 |
* @var array An array of the tracked post types.
|
21 |
*/
|
22 |
-
protected $tracked_post_types =
|
23 |
|
24 |
/**
|
25 |
* @var array An array of the tracked taxonomies.
|
26 |
*/
|
27 |
-
protected $tracked_taxonomies =
|
28 |
|
29 |
/**
|
30 |
* Hooks up the methods that will actually track the fields we are looking for.
|
31 |
*/
|
32 |
public function hook() {
|
33 |
// Track the Meta Updates for Meta That came from the correct Post Types
|
34 |
-
add_filter( 'update_post_metadata',
|
35 |
|
36 |
// After a meta is added we mark that is has been modified
|
37 |
-
add_action( 'added_post_meta',
|
38 |
|
39 |
// Before a meta is removed we mark that is has been modified
|
40 |
-
add_action( 'delete_post_meta',
|
41 |
|
42 |
// Track the Post Fields Updates for Meta in the correct Post Types
|
43 |
-
add_action( 'post_updated',
|
44 |
|
45 |
// Track the Post term updates
|
46 |
-
add_action( 'set_object_terms',
|
47 |
|
48 |
// Clean up modified fields if the post is removed.
|
49 |
-
add_action( 'delete_post',
|
50 |
}
|
51 |
|
52 |
/**
|
@@ -106,7 +106,7 @@ class Tribe__Tracker {
|
|
106 |
*/
|
107 |
public function get_post_types() {
|
108 |
// By default we are not tracking anything
|
109 |
-
$tracked_post_types =
|
110 |
|
111 |
/**
|
112 |
* Adds a way for Developers to add and remove which post types will be tracked
|
@@ -128,10 +128,10 @@ class Tribe__Tracker {
|
|
128 |
*/
|
129 |
public function get_excluded_meta_keys() {
|
130 |
// By default we are not tracking anything
|
131 |
-
$excluded_keys =
|
132 |
'_edit_lock',
|
133 |
self::$field_key,
|
134 |
-
|
135 |
|
136 |
/**
|
137 |
* Adds a way for Developers remove Meta Keys that shouldn't be tracked
|
@@ -197,7 +197,7 @@ class Tribe__Tracker {
|
|
197 |
// Fetch the current data from the modified fields
|
198 |
$modified = get_post_meta( $post->ID, self::$field_key, true );
|
199 |
if ( ! is_array( $modified ) ) {
|
200 |
-
$modified =
|
201 |
}
|
202 |
|
203 |
// If we got here we will update the Modified Meta
|
@@ -276,7 +276,7 @@ class Tribe__Tracker {
|
|
276 |
// Fetch the current data from the modified fields
|
277 |
$modified = get_post_meta( $post->ID, self::$field_key, true );
|
278 |
if ( ! is_array( $modified ) ) {
|
279 |
-
$modified =
|
280 |
}
|
281 |
|
282 |
// If we got here we will update the Modified Meta
|
@@ -320,17 +320,17 @@ class Tribe__Tracker {
|
|
320 |
$now = current_time( 'timestamp' );
|
321 |
|
322 |
if ( ! $modified = get_post_meta( $post_id, self::$field_key, true ) ) {
|
323 |
-
$modified =
|
324 |
}
|
325 |
|
326 |
-
$fields_to_check_for_changes =
|
327 |
'post_title',
|
328 |
'post_content',
|
329 |
'post_excerpt',
|
330 |
'post_status',
|
331 |
'post_type',
|
332 |
'post_parent',
|
333 |
-
|
334 |
|
335 |
foreach ( $fields_to_check_for_changes as $field ) {
|
336 |
if ( ! $this->has_field_changed( $field, $post_after, $post_before ) ) {
|
@@ -392,7 +392,7 @@ class Tribe__Tracker {
|
|
392 |
}
|
393 |
|
394 |
if ( ! $modified = get_post_meta( $post->ID, self::$field_key, true ) ) {
|
395 |
-
$modified =
|
396 |
}
|
397 |
|
398 |
if ( $tt_ids == $old_tt_ids ) {
|
19 |
/**
|
20 |
* @var array An array of the tracked post types.
|
21 |
*/
|
22 |
+
protected $tracked_post_types = [];
|
23 |
|
24 |
/**
|
25 |
* @var array An array of the tracked taxonomies.
|
26 |
*/
|
27 |
+
protected $tracked_taxonomies = [];
|
28 |
|
29 |
/**
|
30 |
* Hooks up the methods that will actually track the fields we are looking for.
|
31 |
*/
|
32 |
public function hook() {
|
33 |
// Track the Meta Updates for Meta That came from the correct Post Types
|
34 |
+
add_filter( 'update_post_metadata', [ $this, 'filter_watch_updated_meta' ], PHP_INT_MAX - 1, 5 );
|
35 |
|
36 |
// After a meta is added we mark that is has been modified
|
37 |
+
add_action( 'added_post_meta', [ $this, 'register_added_deleted_meta' ], PHP_INT_MAX - 1, 3 );
|
38 |
|
39 |
// Before a meta is removed we mark that is has been modified
|
40 |
+
add_action( 'delete_post_meta', [ $this, 'register_added_deleted_meta' ], PHP_INT_MAX - 1, 3 );
|
41 |
|
42 |
// Track the Post Fields Updates for Meta in the correct Post Types
|
43 |
+
add_action( 'post_updated', [ $this, 'filter_watch_post_fields' ], 10, 3 );
|
44 |
|
45 |
// Track the Post term updates
|
46 |
+
add_action( 'set_object_terms', [ $this, 'track_taxonomy_term_changes' ], 10, 6 );
|
47 |
|
48 |
// Clean up modified fields if the post is removed.
|
49 |
+
add_action( 'delete_post', [ $this, 'cleanup_meta_fields' ] );
|
50 |
}
|
51 |
|
52 |
/**
|
106 |
*/
|
107 |
public function get_post_types() {
|
108 |
// By default we are not tracking anything
|
109 |
+
$tracked_post_types = [];
|
110 |
|
111 |
/**
|
112 |
* Adds a way for Developers to add and remove which post types will be tracked
|
128 |
*/
|
129 |
public function get_excluded_meta_keys() {
|
130 |
// By default we are not tracking anything
|
131 |
+
$excluded_keys = [
|
132 |
'_edit_lock',
|
133 |
self::$field_key,
|
134 |
+
];
|
135 |
|
136 |
/**
|
137 |
* Adds a way for Developers remove Meta Keys that shouldn't be tracked
|
197 |
// Fetch the current data from the modified fields
|
198 |
$modified = get_post_meta( $post->ID, self::$field_key, true );
|
199 |
if ( ! is_array( $modified ) ) {
|
200 |
+
$modified = [];
|
201 |
}
|
202 |
|
203 |
// If we got here we will update the Modified Meta
|
276 |
// Fetch the current data from the modified fields
|
277 |
$modified = get_post_meta( $post->ID, self::$field_key, true );
|
278 |
if ( ! is_array( $modified ) ) {
|
279 |
+
$modified = [];
|
280 |
}
|
281 |
|
282 |
// If we got here we will update the Modified Meta
|
320 |
$now = current_time( 'timestamp' );
|
321 |
|
322 |
if ( ! $modified = get_post_meta( $post_id, self::$field_key, true ) ) {
|
323 |
+
$modified = [];
|
324 |
}
|
325 |
|
326 |
+
$fields_to_check_for_changes = [
|
327 |
'post_title',
|
328 |
'post_content',
|
329 |
'post_excerpt',
|
330 |
'post_status',
|
331 |
'post_type',
|
332 |
'post_parent',
|
333 |
+
];
|
334 |
|
335 |
foreach ( $fields_to_check_for_changes as $field ) {
|
336 |
if ( ! $this->has_field_changed( $field, $post_after, $post_before ) ) {
|
392 |
}
|
393 |
|
394 |
if ( ! $modified = get_post_meta( $post->ID, self::$field_key, true ) ) {
|
395 |
+
$modified = [];
|
396 |
}
|
397 |
|
398 |
if ( $tt_ids == $old_tt_ids ) {
|
common/src/Tribe/Updater.php
CHANGED
@@ -90,7 +90,7 @@ class Tribe__Updater {
|
|
90 |
* @return array
|
91 |
*/
|
92 |
public function get_update_callbacks() {
|
93 |
-
return
|
94 |
}
|
95 |
|
96 |
/**
|
@@ -102,9 +102,9 @@ class Tribe__Updater {
|
|
102 |
* @return array
|
103 |
*/
|
104 |
public function get_constant_update_callbacks() {
|
105 |
-
return
|
106 |
-
|
107 |
-
|
108 |
}
|
109 |
|
110 |
/**
|
90 |
* @return array
|
91 |
*/
|
92 |
public function get_update_callbacks() {
|
93 |
+
return [];
|
94 |
}
|
95 |
|
96 |
/**
|
102 |
* @return array
|
103 |
*/
|
104 |
public function get_constant_update_callbacks() {
|
105 |
+
return [
|
106 |
+
[ $this, 'flush_rewrites' ],
|
107 |
+
];
|
108 |
}
|
109 |
|
110 |
/**
|
common/src/Tribe/Utils/Array.php
CHANGED
@@ -521,5 +521,151 @@ if ( ! class_exists( 'Tribe__Utils__Array' ) ) {
|
|
521 |
|
522 |
return $result;
|
523 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
524 |
}
|
525 |
}
|
521 |
|
522 |
return $result;
|
523 |
}
|
524 |
+
|
525 |
+
/**
|
526 |
+
* Stringifies the numeric keys of an array.
|
527 |
+
*
|
528 |
+
* @since 4.12.14
|
529 |
+
*
|
530 |
+
* @param array<int|string,mixed> $input The input array whose keys should be stringified.
|
531 |
+
* @param string|null $prefix The prefix that should be use to stringify the keys, if not provided
|
532 |
+
* then it will be generated.
|
533 |
+
*
|
534 |
+
* @return array<string,mixed> The input array with each numeric key stringified.
|
535 |
+
*/
|
536 |
+
public static function stringify_keys( array $input, $prefix = null ) {
|
537 |
+
$prefix = null === $prefix ? uniqid( 'sk_', true ) : $prefix;
|
538 |
+
$visitor = static function ( $key, $value ) use ( $prefix ) {
|
539 |
+
$string_key = is_numeric( $key ) ? $prefix . $key : $key;
|
540 |
+
|
541 |
+
return [ $string_key, $value ];
|
542 |
+
};
|
543 |
+
|
544 |
+
return static::array_visit_recursive( $input, $visitor );
|
545 |
+
}
|
546 |
+
|
547 |
+
/**
|
548 |
+
* The inverse of the `stringify_keys` method, it will restore numeric keys for previously
|
549 |
+
* stringified keys.
|
550 |
+
*
|
551 |
+
* @since 4.12.14
|
552 |
+
*
|
553 |
+
* @param array<int|string,mixed> $input The input array whose stringified keys should be
|
554 |
+
* destringified.
|
555 |
+
* @param string $prefix The prefix that should be used to target only specific string keys.
|
556 |
+
*
|
557 |
+
* @return array<int|string,mixed> The input array, its stringified keys destringified.
|
558 |
+
*/
|
559 |
+
public static function destringify_keys( array $input, $prefix = 'sk_' ) {
|
560 |
+
$visitor = static function ( $key, $value ) use ( $prefix ) {
|
561 |
+
$destringified_key = 0 === self::strpos( $key, $prefix ) ? null : $key;
|
562 |
+
|
563 |
+
return [ $destringified_key, $value ];
|
564 |
+
};
|
565 |
+
|
566 |
+
return static::array_visit_recursive( $input, $visitor );
|
567 |
+
}
|
568 |
+
|
569 |
+
/**
|
570 |
+
* Recursively visits all elements of an array applying the specified callback to each element
|
571 |
+
* key and value.
|
572 |
+
*
|
573 |
+
* @since 4.12.14
|
574 |
+
*
|
575 |
+
* @param array $input The input array whose nodes should be visited.
|
576 |
+
* @param callable $visitor A callback function that will be called on each array item; the callback will
|
577 |
+
* receive the item key and value as input and should return an array that contains
|
578 |
+
* the update key and value in the shape `[ <key>, <value> ]`. Returning a `null`
|
579 |
+
* key will cause the element to be removed from the array.
|
580 |
+
*/
|
581 |
+
public static function array_visit_recursive( $input, callable $visitor ) {
|
582 |
+
if ( ! is_array( $input ) ) {
|
583 |
+
return $input;
|
584 |
+
}
|
585 |
+
|
586 |
+
$return = [];
|
587 |
+
|
588 |
+
foreach ( $input as $key => &$value ) {
|
589 |
+
if ( is_array( $value ) ) {
|
590 |
+
$value = static::array_visit_recursive( $value, $visitor );
|
591 |
+
}
|
592 |
+
// Ensure visitors can quickly return `null` to remove an element.
|
593 |
+
list( $updated_key, $update_value ) = array_replace( [ $key, $value ], (array) $visitor( $key, $value ) );
|
594 |
+
if ( false === $updated_key ) {
|
595 |
+
// Visitor will be able to remove an element by returning a `false` key for it.
|
596 |
+
continue;
|
597 |
+
}
|
598 |
+
if ( null === $updated_key ) {
|
599 |
+
// Automatically assign the first available numeric index to the element.
|
600 |
+
$return[] = $update_value;
|
601 |
+
} else {
|
602 |
+
$return[ $updated_key ] = $update_value;
|
603 |
+
}
|
604 |
+
}
|
605 |
+
|
606 |
+
return $return;
|
607 |
+
}
|
608 |
+
|
609 |
+
/**
|
610 |
+
* Recursively remove associative, non numeric, keys from an array.
|
611 |
+
*
|
612 |
+
* @since 4.12.14
|
613 |
+
*
|
614 |
+
* @param array<string|int,mixed> $input The input array.
|
615 |
+
*
|
616 |
+
* @return array<int|mixed> An array that only contains integer keys at any of its levels.
|
617 |
+
*/
|
618 |
+
public static function remove_numeric_keys_recursive( array $input ) {
|
619 |
+
return self::array_visit_recursive(
|
620 |
+
$input,
|
621 |
+
static function ( $key ) {
|
622 |
+
return is_numeric( $key ) ? false : $key;
|
623 |
+
}
|
624 |
+
);
|
625 |
+
}
|
626 |
+
|
627 |
+
/**
|
628 |
+
* Recursively remove numeric keys from an array.
|
629 |
+
*
|
630 |
+
* @since 4.12.14
|
631 |
+
*
|
632 |
+
* @param array<string|int,mixed> $input The input array.
|
633 |
+
*
|
634 |
+
* @return array<string,mixed> An array that only contains non numeric keys at any of its levels.
|
635 |
+
*/
|
636 |
+
public static function remove_string_keys_recursive( array $input ) {
|
637 |
+
return self::array_visit_recursive(
|
638 |
+
$input,
|
639 |
+
static function ( $key ) {
|
640 |
+
return !is_numeric( $key ) ? false : $key;
|
641 |
+
}
|
642 |
+
);
|
643 |
+
}
|
644 |
+
|
645 |
+
/**
|
646 |
+
* Merges two or more arrays in the nested format used by WP_Query arguments preserving and merging them correctly.
|
647 |
+
*
|
648 |
+
* The method will recursively replace named keys and merge numeric keys. The method takes its name from its intended
|
649 |
+
* primary use, but it's not limited to query arguments only.
|
650 |
+
*
|
651 |
+
* @since 4.12.14
|
652 |
+
*
|
653 |
+
* @param array<string|int,mixed> ...$arrays A set of arrays to merge.
|
654 |
+
*
|
655 |
+
* @return array<string|int,mixed> The recursively merged array.
|
656 |
+
*/
|
657 |
+
public static function merge_recursive_query_vars( array ...$arrays ) {
|
658 |
+
if ( ! count( $arrays ) ) {
|
659 |
+
return [];
|
660 |
+
}
|
661 |
+
|
662 |
+
// Temporarily transform numeric keys to string keys generated with time-related randomness.
|
663 |
+
$stringified = array_map( [ static::class, 'stringify_keys' ], $arrays );
|
664 |
+
// Replace recursive will recursively replace any entry that has the same string key, stringified keys will never match due to randomness.
|
665 |
+
$merged = array_replace_recursive( ...$stringified );
|
666 |
+
|
667 |
+
// Finally destringify the keys to return something that will resemble, in shape, the original arrays.
|
668 |
+
return static::destringify_keys( $merged );
|
669 |
+
}
|
670 |
}
|
671 |
}
|
common/src/Tribe/Utils/Callback.php
CHANGED
@@ -9,7 +9,7 @@ class Tribe__Utils__Callback {
|
|
9 |
*
|
10 |
* @var array
|
11 |
*/
|
12 |
-
public $items =
|
13 |
|
14 |
/**
|
15 |
* The Prefix we use for the Overloading replacement
|
@@ -58,12 +58,12 @@ class Tribe__Utils__Callback {
|
|
58 |
array_shift( $arguments );
|
59 |
array_shift( $arguments );
|
60 |
|
61 |
-
$item = (object)
|
62 |
-
'slug'
|
63 |
-
'method'
|
64 |
'arguments' => $arguments,
|
65 |
-
'is_empty'
|
66 |
-
|
67 |
|
68 |
$key = md5( json_encode( $item ) );
|
69 |
|
@@ -76,7 +76,7 @@ class Tribe__Utils__Callback {
|
|
76 |
|
77 |
$this->items[ $key ] = $item;
|
78 |
|
79 |
-
return
|
80 |
}
|
81 |
|
82 |
/**
|
@@ -145,7 +145,7 @@ class Tribe__Utils__Callback {
|
|
145 |
* @return array An array of properties that should be serialized.
|
146 |
*/
|
147 |
public function __sleep() {
|
148 |
-
return
|
149 |
}
|
150 |
|
151 |
/**
|
9 |
*
|
10 |
* @var array
|
11 |
*/
|
12 |
+
public $items = [];
|
13 |
|
14 |
/**
|
15 |
* The Prefix we use for the Overloading replacement
|
58 |
array_shift( $arguments );
|
59 |
array_shift( $arguments );
|
60 |
|
61 |
+
$item = (object) [
|
62 |
+
'slug' => $slug,
|
63 |
+
'method' => $method,
|
64 |
'arguments' => $arguments,
|
65 |
+
'is_empty' => $is_empty,
|
66 |
+
];
|
67 |
|
68 |
$key = md5( json_encode( $item ) );
|
69 |
|
76 |
|
77 |
$this->items[ $key ] = $item;
|
78 |
|
79 |
+
return [ $this, $this->prefix . $key ];
|
80 |
}
|
81 |
|
82 |
/**
|
145 |
* @return array An array of properties that should be serialized.
|
146 |
*/
|
147 |
public function __sleep() {
|
148 |
+
return [ 'slug', 'method' ];
|
149 |
}
|
150 |
|
151 |
/**
|
common/src/Tribe/Utils/Collection.php
CHANGED
@@ -17,7 +17,7 @@ class Tribe__Utils__Collection extends SplDoublyLinkedList {
|
|
17 |
*
|
18 |
* @var array
|
19 |
*/
|
20 |
-
protected $items =
|
21 |
|
22 |
/**
|
23 |
* The doubly-linked list that will hold the items handled by the collection.
|
17 |
*
|
18 |
* @var array
|
19 |
*/
|
20 |
+
protected $items = [];
|
21 |
|
22 |
/**
|
23 |
* The doubly-linked list that will hold the items handled by the collection.
|
common/src/Tribe/Utils/Color.php
CHANGED
@@ -72,7 +72,7 @@ class Tribe__Utils__Color {
|
|
72 |
$G = hexdec( $color[2] . $color[3] );
|
73 |
$B = hexdec( $color[4] . $color[5] );
|
74 |
|
75 |
-
$HSL =
|
76 |
|
77 |
$var_R = ( $R / 255 );
|
78 |
$var_G = ( $G / 255 );
|
@@ -127,13 +127,13 @@ class Tribe__Utils__Color {
|
|
127 |
* @return string HEX string
|
128 |
* @throws Exception "Bad HSL Array"
|
129 |
*/
|
130 |
-
public static function hslToHex( $hsl =
|
131 |
-
|
132 |
if ( empty( $hsl ) || ! isset( $hsl['H'] ) || ! isset( $hsl['S'] ) || ! isset( $hsl['L'] ) ) {
|
133 |
throw new Exception( 'Param was not an HSL array' );
|
134 |
}
|
135 |
|
136 |
-
list( $H, $S, $L ) =
|
137 |
|
138 |
if ( 0 == $S ) {
|
139 |
$r = $L * 255;
|
@@ -197,8 +197,8 @@ class Tribe__Utils__Color {
|
|
197 |
* @return string RGB string
|
198 |
* @throws Exception "Bad RGB Array"
|
199 |
*/
|
200 |
-
public static function rgbToHex( $rgb =
|
201 |
-
|
202 |
if ( empty( $rgb ) || ! isset( $rgb['R'] ) || ! isset( $rgb['G'] ) || ! isset( $rgb['B'] ) ) {
|
203 |
throw new Exception( 'Param was not an RGB array' );
|
204 |
}
|
@@ -269,7 +269,7 @@ class Tribe__Utils__Color {
|
|
269 |
}
|
270 |
|
271 |
// Return our gradient array
|
272 |
-
return
|
273 |
}
|
274 |
|
275 |
|
@@ -449,8 +449,8 @@ class Tribe__Utils__Color {
|
|
449 |
$gmix = ( ( $rgb1['G'] * $r1 ) + ( $rgb2['G'] * $r2 ) ) / 2;
|
450 |
$bmix = ( ( $rgb1['B'] * $r1 ) + ( $rgb2['B'] * $r2 ) ) / 2;
|
451 |
|
452 |
-
|
453 |
-
|
454 |
|
455 |
/**
|
456 |
* Given a Hue, returns corresponding RGB value
|
72 |
$G = hexdec( $color[2] . $color[3] );
|
73 |
$B = hexdec( $color[4] . $color[5] );
|
74 |
|
75 |
+
$HSL = [];
|
76 |
|
77 |
$var_R = ( $R / 255 );
|
78 |
$var_G = ( $G / 255 );
|
127 |
* @return string HEX string
|
128 |
* @throws Exception "Bad HSL Array"
|
129 |
*/
|
130 |
+
public static function hslToHex( $hsl = [] ) {
|
131 |
+
// Make sure it's HSL
|
132 |
if ( empty( $hsl ) || ! isset( $hsl['H'] ) || ! isset( $hsl['S'] ) || ! isset( $hsl['L'] ) ) {
|
133 |
throw new Exception( 'Param was not an HSL array' );
|
134 |
}
|
135 |
|
136 |
+
list( $H, $S, $L ) = [ $hsl['H'] / 360, $hsl['S'], $hsl['L'] ];
|
137 |
|
138 |
if ( 0 == $S ) {
|
139 |
$r = $L * 255;
|
197 |
* @return string RGB string
|
198 |
* @throws Exception "Bad RGB Array"
|
199 |
*/
|
200 |
+
public static function rgbToHex( $rgb = [] ) {
|
201 |
+
// Make sure it's RGB
|
202 |
if ( empty( $rgb ) || ! isset( $rgb['R'] ) || ! isset( $rgb['G'] ) || ! isset( $rgb['B'] ) ) {
|
203 |
throw new Exception( 'Param was not an RGB array' );
|
204 |
}
|
269 |
}
|
270 |
|
271 |
// Return our gradient array
|
272 |
+
return [ 'light' => $lightColor, 'dark' => $darkColor ];
|
273 |
}
|
274 |
|
275 |
|
449 |
$gmix = ( ( $rgb1['G'] * $r1 ) + ( $rgb2['G'] * $r2 ) ) / 2;
|
450 |
$bmix = ( ( $rgb1['B'] * $r1 ) + ( $rgb2['B'] * $r2 ) ) / 2;
|
451 |
|
452 |
+
return [ 'R' => $rmix, 'G' => $gmix, 'B' => $bmix ];
|
453 |
+
}
|
454 |
|
455 |
/**
|
456 |
* Given a Hue, returns corresponding RGB value
|
common/src/Tribe/Utils/Coordinates_Provider.php
CHANGED
@@ -76,7 +76,7 @@ class Tribe__Utils__Coordinates_Provider {
|
|
76 |
}
|
77 |
|
78 |
$base_request_url = trailingslashit( $this->get_google_api_base() ) . $this->get_google_api_json_format();
|
79 |
-
$url = esc_url( add_query_arg(
|
80 |
$response = $this->http->get( $url );
|
81 |
|
82 |
if ( is_wp_error( $response ) ) {
|
@@ -95,7 +95,7 @@ class Tribe__Utils__Coordinates_Provider {
|
|
95 |
|
96 |
$location = $decoded['results'][0]['geometry']['location'];
|
97 |
|
98 |
-
$updated_transient = array_merge( $this->get_transient(),
|
99 |
set_transient( self::$transient_name, $updated_transient );
|
100 |
$this->transient = $updated_transient;
|
101 |
|
@@ -120,7 +120,7 @@ class Tribe__Utils__Coordinates_Provider {
|
|
120 |
protected function get_transient() {
|
121 |
if ( ! is_array( $this->transient ) ) {
|
122 |
$transient = get_transient( self::$transient_name );
|
123 |
-
$this->transient = is_array( $transient ) ? $transient :
|
124 |
}
|
125 |
|
126 |
return $this->transient;
|
76 |
}
|
77 |
|
78 |
$base_request_url = trailingslashit( $this->get_google_api_base() ) . $this->get_google_api_json_format();
|
79 |
+
$url = esc_url( add_query_arg( [ 'address' => $address ], $base_request_url ) );
|
80 |
$response = $this->http->get( $url );
|
81 |
|
82 |
if ( is_wp_error( $response ) ) {
|
95 |
|
96 |
$location = $decoded['results'][0]['geometry']['location'];
|
97 |
|
98 |
+
$updated_transient = array_merge( $this->get_transient(), [ $address => $location ] );
|
99 |
set_transient( self::$transient_name, $updated_transient );
|
100 |
$this->transient = $updated_transient;
|
101 |
|
120 |
protected function get_transient() {
|
121 |
if ( ! is_array( $this->transient ) ) {
|
122 |
$transient = get_transient( self::$transient_name );
|
123 |
+
$this->transient = is_array( $transient ) ? $transient : [];
|
124 |
}
|
125 |
|
126 |
return $this->transient;
|
common/src/Tribe/Utils/Element_Attributes.php
CHANGED
@@ -188,7 +188,7 @@ class Element_Attributes {
|
|
188 |
protected function parse_string( $arguments ) {
|
189 |
$values = preg_split( '/\s+/', $arguments, -1, PREG_SPLIT_NO_EMPTY );
|
190 |
|
191 |
-
// When it
|
192 |
if ( ! $values ) {
|
193 |
return;
|
194 |
}
|
188 |
protected function parse_string( $arguments ) {
|
189 |
$values = preg_split( '/\s+/', $arguments, -1, PREG_SPLIT_NO_EMPTY );
|
190 |
|
191 |
+
// When it doesn't match, bail early.
|
192 |
if ( ! $values ) {
|
193 |
return;
|
194 |
}
|
common/src/Tribe/Utils/Global_ID.php
CHANGED
@@ -18,22 +18,22 @@ class Tribe__Utils__Global_ID {
|
|
18 |
* Dont allow creation of Global IDs for other types of source
|
19 |
* @var array
|
20 |
*/
|
21 |
-
protected $valid_types =
|
22 |
'url',
|
23 |
'meetup',
|
24 |
'facebook',
|
25 |
'eventbrite',
|
26 |
-
|
27 |
|
28 |
/**
|
29 |
* For some types of ID we have a predefined Origin
|
30 |
* @var array
|
31 |
*/
|
32 |
-
protected $type_origins =
|
33 |
-
'meetup'
|
34 |
-
'facebook'
|
35 |
'eventbrite' => 'eventbrite.com',
|
36 |
-
|
37 |
|
38 |
/**
|
39 |
* Tribe__Utils__Global_ID constructor.
|
@@ -123,7 +123,7 @@ class Tribe__Utils__Global_ID {
|
|
123 |
*
|
124 |
* @return string
|
125 |
*/
|
126 |
-
public function generate( array $args =
|
127 |
// We can't do this without type or origin
|
128 |
if ( ! $this->type() || ! $this->origin() ) {
|
129 |
return false;
|
@@ -150,7 +150,7 @@ class Tribe__Utils__Global_ID {
|
|
150 |
$parsed = wp_parse_url( 'http://' . $global_id );
|
151 |
|
152 |
if ( ! empty( $parsed['query'] ) ) {
|
153 |
-
$parsed_query =
|
154 |
|
155 |
wp_parse_str( $parsed['query'], $parsed_query );
|
156 |
|
18 |
* Dont allow creation of Global IDs for other types of source
|
19 |
* @var array
|
20 |
*/
|
21 |
+
protected $valid_types = [
|
22 |
'url',
|
23 |
'meetup',
|
24 |
'facebook',
|
25 |
'eventbrite',
|
26 |
+
];
|
27 |
|
28 |
/**
|
29 |
* For some types of ID we have a predefined Origin
|
30 |
* @var array
|
31 |
*/
|
32 |
+
protected $type_origins = [
|
33 |
+
'meetup' => 'meetup.com',
|
34 |
+
'facebook' => 'facebook.com',
|
35 |
'eventbrite' => 'eventbrite.com',
|
36 |
+
];
|
37 |
|
38 |
/**
|
39 |
* Tribe__Utils__Global_ID constructor.
|
123 |
*
|
124 |
* @return string
|
125 |
*/
|
126 |
+
public function generate( array $args = [] ) {
|
127 |
// We can't do this without type or origin
|
128 |
if ( ! $this->type() || ! $this->origin() ) {
|
129 |
return false;
|
150 |
$parsed = wp_parse_url( 'http://' . $global_id );
|
151 |
|
152 |
if ( ! empty( $parsed['query'] ) ) {
|
153 |
+
$parsed_query = [];
|
154 |
|
155 |
wp_parse_str( $parsed['query'], $parsed_query );
|
156 |
|
common/src/Tribe/Utils/JSON.php
CHANGED
@@ -22,7 +22,7 @@ class Tribe__Utils__JSON {
|
|
22 |
return $value;
|
23 |
}
|
24 |
if ( is_array( $value ) ) {
|
25 |
-
$escaped =
|
26 |
foreach ( $value as $key => $subvalue ) {
|
27 |
$escaped[ $key ] = self::escape_string( $subvalue );
|
28 |
}
|
@@ -30,8 +30,8 @@ class Tribe__Utils__JSON {
|
|
30 |
return $escaped;
|
31 |
}
|
32 |
|
33 |
-
$escapers =
|
34 |
-
$replacements =
|
35 |
|
36 |
return str_replace( $escapers, $replacements, $value );
|
37 |
}
|
22 |
return $value;
|
23 |
}
|
24 |
if ( is_array( $value ) ) {
|
25 |
+
$escaped = [];
|
26 |
foreach ( $value as $key => $subvalue ) {
|
27 |
$escaped[ $key ] = self::escape_string( $subvalue );
|
28 |
}
|
30 |
return $escaped;
|
31 |
}
|
32 |
|
33 |
+
$escapers = [ "\\", "/", "\"", "\n", "\r", "\t", "\x08", "\x0c" ];
|
34 |
+
$replacements = [ "\\\\", "\\/", "\\\"", "\\n", "\\r", "\\t", "\\f", "\\b" ];
|
35 |
|
36 |
return str_replace( $escapers, $replacements, $value );
|
37 |
}
|
common/src/Tribe/Utils/Paths.php
ADDED
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Utilities to manipulate file-system paths.
|
4 |
+
*
|
5 |
+
* @since 4.12.14
|
6 |
+
*
|
7 |
+
* @package Tribe\Utils
|
8 |
+
*/
|
9 |
+
|
10 |
+
namespace Tribe\Utils;
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Class Paths
|
14 |
+
*
|
15 |
+
* @since 4.12.14
|
16 |
+
*
|
17 |
+
* @package Tribe\Utils
|
18 |
+
*/
|
19 |
+
class Paths {
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Merge a set of paths into a single path.
|
23 |
+
*
|
24 |
+
* The function will take care of merging the paths intersecting their common fragments.
|
25 |
+
* E.g. `foo/bar/baz` and `bar/baz/test.php` will be merged int `foo/bar/baz/test.php`.
|
26 |
+
*
|
27 |
+
* @since 4.12.14
|
28 |
+
*
|
29 |
+
* @param array<string<array<string>> ...$paths A set of paths to merge, each one either a string or an array
|
30 |
+
* of path fragments.
|
31 |
+
*
|
32 |
+
* @return string The merged path, the path intersecting fragments removed.
|
33 |
+
*/
|
34 |
+
public static function merge( ...$paths ) {
|
35 |
+
$merged_paths = '';
|
36 |
+
|
37 |
+
if ( count( $paths ) > 2 ) {
|
38 |
+
$slice = array_splice( $paths, 0, 1 );
|
39 |
+
$paths = array_merge( $slice, [ static::merge( ...$paths ) ] );
|
40 |
+
}
|
41 |
+
|
42 |
+
$path_1 = isset( $paths[0] ) ? $paths[0] : '';
|
43 |
+
$lead_slash = is_string( $path_1 ) && $path_1 !== ltrim( $path_1, '\\/' ) ? DIRECTORY_SEPARATOR : '';
|
44 |
+
$path_2 = isset( $paths[1] ) ? $paths[1] : '';
|
45 |
+
$trail_slash = is_string( $path_2 ) && $path_2 !== rtrim( $path_2, '\\/' ) ? DIRECTORY_SEPARATOR : '';
|
46 |
+
$path_1_frags = is_array( $path_1 ) ? $path_1 : array_filter( (array) preg_split( '/[\\\\\\/]/', $path_1 ) );
|
47 |
+
$path_2_frags = is_array( $path_2 ) ? $path_2 : array_filter( (array) preg_split( '/[\\\\\\/]/', $path_2 ) );
|
48 |
+
$non_consecutive_common = array_intersect( $path_1_frags, $path_2_frags );
|
49 |
+
$trimmed_path_2 = trim(
|
50 |
+
preg_replace(
|
51 |
+
'#^' . preg_quote( implode( DIRECTORY_SEPARATOR, $non_consecutive_common ), '#' ) . '#', '',
|
52 |
+
implode( DIRECTORY_SEPARATOR, $path_2_frags )
|
53 |
+
),
|
54 |
+
'\\/'
|
55 |
+
);
|
56 |
+
$merged_paths .= $lead_slash . implode( DIRECTORY_SEPARATOR, $path_1_frags );
|
57 |
+
if ( $trimmed_path_2 ) {
|
58 |
+
$merged_paths .= DIRECTORY_SEPARATOR . $trimmed_path_2 . $trail_slash;
|
59 |
+
}
|
60 |
+
|
61 |
+
return $merged_paths;
|
62 |
+
}
|
63 |
+
}
|
common/src/Tribe/Utils/Plugins.php
CHANGED
@@ -16,7 +16,7 @@ class Tribe__Utils__Plugins {
|
|
16 |
* @return array Plugin data; keys match capitalized file header declarations.
|
17 |
*/
|
18 |
public static function get_plugin_data( $plugin_file ) {
|
19 |
-
$headers =
|
20 |
'Name' => 'Plugin Name',
|
21 |
'PluginURI' => 'Plugin URI',
|
22 |
'Version' => 'Version',
|
@@ -28,7 +28,7 @@ class Tribe__Utils__Plugins {
|
|
28 |
'TextDomain' => 'Text Domain',
|
29 |
'DomainPath' => 'Domain Path',
|
30 |
'Network' => 'Network',
|
31 |
-
|
32 |
|
33 |
/**
|
34 |
* Filter which header keys passed to get_file_data().
|
@@ -65,7 +65,7 @@ class Tribe__Utils__Plugins {
|
|
65 |
$full_list = array_merge( $full_list, wp_get_active_network_plugins() );
|
66 |
}
|
67 |
|
68 |
-
$filtered_list =
|
69 |
|
70 |
foreach ( $full_list as $plugin ) {
|
71 |
$base = plugin_basename( $plugin );
|
16 |
* @return array Plugin data; keys match capitalized file header declarations.
|
17 |
*/
|
18 |
public static function get_plugin_data( $plugin_file ) {
|
19 |
+
$headers = [
|
20 |
'Name' => 'Plugin Name',
|
21 |
'PluginURI' => 'Plugin URI',
|
22 |
'Version' => 'Version',
|
28 |
'TextDomain' => 'Text Domain',
|
29 |
'DomainPath' => 'Domain Path',
|
30 |
'Network' => 'Network',
|
31 |
+
];
|
32 |
|
33 |
/**
|
34 |
* Filter which header keys passed to get_file_data().
|
65 |
$full_list = array_merge( $full_list, wp_get_active_network_plugins() );
|
66 |
}
|
67 |
|
68 |
+
$filtered_list = [];
|
69 |
|
70 |
foreach ( $full_list as $plugin ) {
|
71 |
$base = plugin_basename( $plugin );
|
common/src/Tribe/Utils/Post_Root_Pool.php
CHANGED
@@ -132,8 +132,8 @@ class Tribe__Utils__Post_Root_Pool {
|
|
132 |
protected function maybe_init_pool() {
|
133 |
self::$prefix_pool = get_transient( $this->pool_transient_name );
|
134 |
if ( self::$prefix_pool === false ) {
|
135 |
-
self::$prefix_pool =
|
136 |
-
set_transient( $this->pool_transient_name,
|
137 |
}
|
138 |
}
|
139 |
|
132 |
protected function maybe_init_pool() {
|
133 |
self::$prefix_pool = get_transient( $this->pool_transient_name );
|
134 |
if ( self::$prefix_pool === false ) {
|
135 |
+
self::$prefix_pool = [];
|
136 |
+
set_transient( $this->pool_transient_name, [] );
|
137 |
}
|
138 |
}
|
139 |
|
common/src/Tribe/Validate.php
CHANGED
@@ -57,7 +57,7 @@ if ( ! class_exists( 'Tribe__Validate' ) ) {
|
|
57 |
* @param array $field The field object to validate
|
58 |
* @param mixed $value The value to validate
|
59 |
*/
|
60 |
-
public function __construct( $field_id, $field, $value, $additional_args =
|
61 |
|
62 |
// prepare object properties
|
63 |
$this->result = new stdClass;
|
@@ -96,7 +96,7 @@ if ( ! class_exists( 'Tribe__Validate' ) ) {
|
|
96 |
if ( ( ! isset( $_POST[ $field_id ] ) || ! $_POST[ $field_id ] || $_POST[ $field_id ] == '' ) && isset( $this->field['can_be_empty'] ) && $this->field['can_be_empty'] ) {
|
97 |
$this->result->valid = true;
|
98 |
} else {
|
99 |
-
call_user_func(
|
100 |
}
|
101 |
} else {
|
102 |
// invalid validation type set, validation fails
|
@@ -291,7 +291,7 @@ if ( ! class_exists( 'Tribe__Validate' ) ) {
|
|
291 |
return;
|
292 |
}
|
293 |
|
294 |
-
$this->value = is_array( $this->value ) ? $this->value :
|
295 |
|
296 |
foreach ( $this->value as $val ) {
|
297 |
if ( array_key_exists( $val, $this->field['options'] ) ) {
|
@@ -312,10 +312,10 @@ if ( ! class_exists( 'Tribe__Validate' ) ) {
|
|
312 |
*/
|
313 |
public function options_with_label() {
|
314 |
if ( array_key_exists( $this->value, $this->field['options'] ) ) {
|
315 |
-
$this->value = ( $this->value === 0 ) ? false :
|
316 |
$this->value,
|
317 |
$this->field['options'][ $this->value ],
|
318 |
-
|
319 |
$this->result->valid = true;
|
320 |
} else {
|
321 |
$this->result->valid = false;
|
@@ -465,7 +465,7 @@ if ( ! class_exists( 'Tribe__Validate' ) ) {
|
|
465 |
if ( ! isset( $country[0] ) || ! isset( $country[1] ) ) {
|
466 |
$this->result->valid = false;
|
467 |
$this->result->error = sprintf( esc_html__( 'Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom.', 'tribe-common' ), $this->label );
|
468 |
-
$this->value = wp_kses( $this->value,
|
469 |
|
470 |
return;
|
471 |
}
|
57 |
* @param array $field The field object to validate
|
58 |
* @param mixed $value The value to validate
|
59 |
*/
|
60 |
+
public function __construct( $field_id, $field, $value, $additional_args = [] ) {
|
61 |
|
62 |
// prepare object properties
|
63 |
$this->result = new stdClass;
|
96 |
if ( ( ! isset( $_POST[ $field_id ] ) || ! $_POST[ $field_id ] || $_POST[ $field_id ] == '' ) && isset( $this->field['can_be_empty'] ) && $this->field['can_be_empty'] ) {
|
97 |
$this->result->valid = true;
|
98 |
} else {
|
99 |
+
call_user_func( [ $this, $this->type ] ); // run the validation
|
100 |
}
|
101 |
} else {
|
102 |
// invalid validation type set, validation fails
|
291 |
return;
|
292 |
}
|
293 |
|
294 |
+
$this->value = is_array( $this->value ) ? $this->value : [ $this->value ];
|
295 |
|
296 |
foreach ( $this->value as $val ) {
|
297 |
if ( array_key_exists( $val, $this->field['options'] ) ) {
|
312 |
*/
|
313 |
public function options_with_label() {
|
314 |
if ( array_key_exists( $this->value, $this->field['options'] ) ) {
|
315 |
+
$this->value = ( $this->value === 0 ) ? false : [
|
316 |
$this->value,
|
317 |
$this->field['options'][ $this->value ],
|
318 |
+
];
|
319 |
$this->result->valid = true;
|
320 |
} else {
|
321 |
$this->result->valid = false;
|
465 |
if ( ! isset( $country[0] ) || ! isset( $country[1] ) ) {
|
466 |
$this->result->valid = false;
|
467 |
$this->result->error = sprintf( esc_html__( 'Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom.', 'tribe-common' ), $this->label );
|
468 |
+
$this->value = wp_kses( $this->value, [] );
|
469 |
|
470 |
return;
|
471 |
}
|
common/src/Tribe/Validator/Base.php
CHANGED
@@ -94,7 +94,7 @@ class Tribe__Validator__Base implements Tribe__Validator__Interface {
|
|
94 |
$sep = is_string( $sep ) ? $sep : ',';
|
95 |
$list = Tribe__Utils__Array::list_to_array( $list, $sep );
|
96 |
|
97 |
-
$valid = array_filter( $list,
|
98 |
|
99 |
return ! empty( $valid ) && count( $valid ) === count( $list );
|
100 |
}
|
94 |
$sep = is_string( $sep ) ? $sep : ',';
|
95 |
$list = Tribe__Utils__Array::list_to_array( $list, $sep );
|
96 |
|
97 |
+
$valid = array_filter( $list, [ $this, 'is_positive_int' ] );
|
98 |
|
99 |
return ! empty( $valid ) && count( $valid ) === count( $list );
|
100 |
}
|
common/src/Tribe/View_Helpers.php
CHANGED
@@ -56,21 +56,21 @@ if ( ! class_exists( 'Tribe__View_Helpers' ) ) {
|
|
56 |
natsort( $countries );
|
57 |
|
58 |
// Placeholder option ('Select a Country') first by default
|
59 |
-
$select_country =
|
60 |
$countries = $select_country + $countries;
|
61 |
|
62 |
if ( ( $postId || $useDefault ) ) {
|
63 |
$countryValue = get_post_meta( $postId, '_EventCountry', true );
|
64 |
if ( $countryValue ) {
|
65 |
-
$defaultCountry =
|
66 |
} else {
|
67 |
$defaultCountry = tribe_get_default_value( 'country' );
|
68 |
}
|
69 |
if ( $defaultCountry && $defaultCountry[0] != '' ) {
|
70 |
$selectCountry = array_shift( $countries );
|
71 |
asort( $countries );
|
72 |
-
$countries =
|
73 |
-
$countries =
|
74 |
array_unique( $countries );
|
75 |
}
|
76 |
}
|
@@ -182,7 +182,7 @@ if ( ! class_exists( 'Tribe__View_Helpers' ) ) {
|
|
182 |
* @return array The hours array.
|
183 |
*/
|
184 |
private static function hours() {
|
185 |
-
$hours =
|
186 |
$rangeMax = self::is_24hr_format() ? 23 : 12;
|
187 |
$rangeStart = $rangeMax > 12 ? 0 : 1;
|
188 |
foreach ( range( $rangeStart, $rangeMax ) as $hour ) {
|
@@ -237,7 +237,7 @@ if ( ! class_exists( 'Tribe__View_Helpers' ) ) {
|
|
237 |
* @return array The minutes array.
|
238 |
*/
|
239 |
private static function minutes( $exact_minute = 0 ) {
|
240 |
-
$minutes =
|
241 |
|
242 |
// The exact minute should be an absint between 0 and 59
|
243 |
$exact_minute = absint( $exact_minute );
|
@@ -282,10 +282,10 @@ if ( ! class_exists( 'Tribe__View_Helpers' ) ) {
|
|
282 |
public static function getMeridianOptions( $date = '', $isStart = false ) {
|
283 |
if ( strstr( get_option( 'time_format', Tribe__Date_Utils::TIMEFORMAT ), 'A' ) ) {
|
284 |
$a = 'A';
|
285 |
-
$meridians =
|
286 |
} else {
|
287 |
$a = 'a';
|
288 |
-
$meridians =
|
289 |
}
|
290 |
if ( empty( $date ) ) {
|
291 |
$meridian = ( $isStart ) ? $meridians[0] : $meridians[1];
|
@@ -317,7 +317,7 @@ if ( ! class_exists( 'Tribe__View_Helpers' ) ) {
|
|
317 |
$current_year = (int) date_i18n( 'Y' );
|
318 |
$years_back = (int) apply_filters( 'tribe_years_to_go_back', 5, $current_year );
|
319 |
$years_forward = (int) apply_filters( 'tribe_years_to_go_forward', 5, $current_year );
|
320 |
-
$years =
|
321 |
for ( $i = $years_back; $i > 0; $i -- ) {
|
322 |
$year = $current_year - $i;
|
323 |
$years[] = $year;
|
@@ -337,7 +337,7 @@ if ( ! class_exists( 'Tribe__View_Helpers' ) ) {
|
|
337 |
* @return array The days array.
|
338 |
*/
|
339 |
public static function days( $totalDays ) {
|
340 |
-
$days =
|
341 |
foreach ( range( 1, $totalDays ) as $day ) {
|
342 |
$days[ $day ] = $day;
|
343 |
}
|
56 |
natsort( $countries );
|
57 |
|
58 |
// Placeholder option ('Select a Country') first by default
|
59 |
+
$select_country = [ '' => esc_html__( 'Select a Country:', 'tribe-common' ) ];
|
60 |
$countries = $select_country + $countries;
|
61 |
|
62 |
if ( ( $postId || $useDefault ) ) {
|
63 |
$countryValue = get_post_meta( $postId, '_EventCountry', true );
|
64 |
if ( $countryValue ) {
|
65 |
+
$defaultCountry = [ array_search( $countryValue, $countries ), $countryValue ];
|
66 |
} else {
|
67 |
$defaultCountry = tribe_get_default_value( 'country' );
|
68 |
}
|
69 |
if ( $defaultCountry && $defaultCountry[0] != '' ) {
|
70 |
$selectCountry = array_shift( $countries );
|
71 |
asort( $countries );
|
72 |
+
$countries = [ $defaultCountry[0] => $defaultCountry[1] ] + $countries;
|
73 |
+
$countries = [ '' => $selectCountry ] + $countries;
|
74 |
array_unique( $countries );
|
75 |
}
|
76 |
}
|
182 |
* @return array The hours array.
|
183 |
*/
|
184 |
private static function hours() {
|
185 |
+
$hours = [];
|
186 |
$rangeMax = self::is_24hr_format() ? 23 : 12;
|
187 |
$rangeStart = $rangeMax > 12 ? 0 : 1;
|
188 |
foreach ( range( $rangeStart, $rangeMax ) as $hour ) {
|
237 |
* @return array The minutes array.
|
238 |
*/
|
239 |
private static function minutes( $exact_minute = 0 ) {
|
240 |
+
$minutes = [];
|
241 |
|
242 |
// The exact minute should be an absint between 0 and 59
|
243 |
$exact_minute = absint( $exact_minute );
|
282 |
public static function getMeridianOptions( $date = '', $isStart = false ) {
|
283 |
if ( strstr( get_option( 'time_format', Tribe__Date_Utils::TIMEFORMAT ), 'A' ) ) {
|
284 |
$a = 'A';
|
285 |
+
$meridians = [ 'AM', 'PM' ];
|
286 |
} else {
|
287 |
$a = 'a';
|
288 |
+
$meridians = [ 'am', 'pm' ];
|
289 |
}
|
290 |
if ( empty( $date ) ) {
|
291 |
$meridian = ( $isStart ) ? $meridians[0] : $meridians[1];
|
317 |
$current_year = (int) date_i18n( 'Y' );
|
318 |
$years_back = (int) apply_filters( 'tribe_years_to_go_back', 5, $current_year );
|
319 |
$years_forward = (int) apply_filters( 'tribe_years_to_go_forward', 5, $current_year );
|
320 |
+
$years = [];
|
321 |
for ( $i = $years_back; $i > 0; $i -- ) {
|
322 |
$year = $current_year - $i;
|
323 |
$years[] = $year;
|
337 |
* @return array The days array.
|
338 |
*/
|
339 |
public static function days( $totalDays ) {
|
340 |
+
$days = [];
|
341 |
foreach ( range( 1, $totalDays ) as $day ) {
|
342 |
$days[ $day ] = $day;
|
343 |
}
|
common/src/Tribe/Widget/Widget_Abstract.php
CHANGED
@@ -22,6 +22,24 @@ abstract class Widget_Abstract extends \WP_Widget implements Widget_Interface {
|
|
22 |
*/
|
23 |
protected $slug;
|
24 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
/**
|
26 |
* Default arguments to be merged into final arguments of the widget.
|
27 |
*
|
@@ -75,7 +93,7 @@ abstract class Widget_Abstract extends \WP_Widget implements Widget_Interface {
|
|
75 |
* {@inheritDoc}
|
76 |
*/
|
77 |
public function __construct( $id_base = '', $name = '', $widget_options = [], $control_options = [] ) {
|
78 |
-
$arguments = $this->
|
79 |
|
80 |
parent::__construct(
|
81 |
Arr::get( $arguments, 'id_base', '' ),
|
@@ -84,26 +102,38 @@ abstract class Widget_Abstract extends \WP_Widget implements Widget_Interface {
|
|
84 |
Arr::get( $arguments, 'control_options', [] )
|
85 |
);
|
86 |
|
87 |
-
// @todo add what this does in in TEC-3612 & TEC-3613.
|
88 |
$this->setup();
|
89 |
}
|
90 |
|
91 |
/**
|
92 |
* Setup the widget.
|
93 |
*
|
94 |
-
* @
|
95 |
-
*
|
96 |
-
* @since 5.12.12
|
97 |
*
|
98 |
* @return mixed
|
99 |
*/
|
100 |
public abstract function setup();
|
101 |
|
102 |
/**
|
103 |
-
*
|
104 |
*
|
105 |
-
* @
|
106 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
*
|
108 |
* @since 5.12.12
|
109 |
*
|
@@ -112,6 +142,11 @@ abstract class Widget_Abstract extends \WP_Widget implements Widget_Interface {
|
|
112 |
* @param array<string,mixed> $instance The settings for the particular instance of the widget.
|
113 |
*/
|
114 |
public function widget( $args, $instance ) {
|
|
|
|
|
|
|
|
|
|
|
115 |
echo $this->get_html();
|
116 |
}
|
117 |
|
@@ -195,12 +230,112 @@ abstract class Widget_Abstract extends \WP_Widget implements Widget_Interface {
|
|
195 |
return $validate_arguments_map;
|
196 |
}
|
197 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
198 |
/**
|
199 |
* {@inheritDoc}
|
200 |
*/
|
201 |
-
public function
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
202 |
|
203 |
-
|
|
|
|
|
|
|
|
|
204 |
}
|
205 |
|
206 |
/**
|
@@ -237,7 +372,7 @@ abstract class Widget_Abstract extends \WP_Widget implements Widget_Interface {
|
|
237 |
* {@inheritDoc}
|
238 |
*/
|
239 |
public function get_argument( $index, $default = null ) {
|
240 |
-
$arguments = $this->
|
241 |
$argument = Arr::get( $arguments, $index, $default );
|
242 |
|
243 |
return $this->filter_argument( $argument, $index, $default );
|
@@ -276,11 +411,30 @@ abstract class Widget_Abstract extends \WP_Widget implements Widget_Interface {
|
|
276 |
return $argument;
|
277 |
}
|
278 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
279 |
/**
|
280 |
* {@inheritDoc}
|
281 |
*/
|
282 |
public function get_default_arguments() {
|
283 |
-
return $this->filter_default_arguments( $this->
|
284 |
}
|
285 |
|
286 |
/**
|
@@ -307,8 +461,39 @@ abstract class Widget_Abstract extends \WP_Widget implements Widget_Interface {
|
|
307 |
* @param array<string,mixed> $default_arguments Current set of default arguments.
|
308 |
* @param static $instance The widget instance we are dealing with.
|
309 |
*/
|
310 |
-
|
|
|
311 |
|
312 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
313 |
}
|
314 |
}
|
22 |
*/
|
23 |
protected $slug;
|
24 |
|
25 |
+
/**
|
26 |
+
* An instance of template.
|
27 |
+
*
|
28 |
+
* @since 4.12.14
|
29 |
+
*
|
30 |
+
* @var \Tribe__Template
|
31 |
+
*/
|
32 |
+
protected $admin_template;
|
33 |
+
|
34 |
+
/**
|
35 |
+
* The slug of the admin widget view.
|
36 |
+
*
|
37 |
+
* @since 4.12.14
|
38 |
+
*
|
39 |
+
* @var string
|
40 |
+
*/
|
41 |
+
protected $view_admin_slug;
|
42 |
+
|
43 |
/**
|
44 |
* Default arguments to be merged into final arguments of the widget.
|
45 |
*
|
93 |
* {@inheritDoc}
|
94 |
*/
|
95 |
public function __construct( $id_base = '', $name = '', $widget_options = [], $control_options = [] ) {
|
96 |
+
$arguments = $this->setup_arguments();
|
97 |
|
98 |
parent::__construct(
|
99 |
Arr::get( $arguments, 'id_base', '' ),
|
102 |
Arr::get( $arguments, 'control_options', [] )
|
103 |
);
|
104 |
|
|
|
105 |
$this->setup();
|
106 |
}
|
107 |
|
108 |
/**
|
109 |
* Setup the widget.
|
110 |
*
|
111 |
+
* @since 5.2.1
|
|
|
|
|
112 |
*
|
113 |
* @return mixed
|
114 |
*/
|
115 |
public abstract function setup();
|
116 |
|
117 |
/**
|
118 |
+
* Setup the widget.
|
119 |
*
|
120 |
+
* @since 4.12.14
|
121 |
+
*
|
122 |
+
* @param array<string,mixed> $arguments The widget arguments, as set by the user in the widget string.
|
123 |
+
*/
|
124 |
+
public abstract function setup_view( $arguments );
|
125 |
+
|
126 |
+
/**
|
127 |
+
* {@inheritDoc}
|
128 |
+
*/
|
129 |
+
public function form( $instance ) {
|
130 |
+
$arguments = $this->setup_arguments( $instance );
|
131 |
+
|
132 |
+
$this->get_admin_html( $arguments );
|
133 |
+
}
|
134 |
+
|
135 |
+
/**
|
136 |
+
* Echoes the widget content.
|
137 |
*
|
138 |
* @since 5.12.12
|
139 |
*
|
142 |
* @param array<string,mixed> $instance The settings for the particular instance of the widget.
|
143 |
*/
|
144 |
public function widget( $args, $instance ) {
|
145 |
+
$arguments = $this->get_arguments( $instance );
|
146 |
+
|
147 |
+
// Setup the View for the frontend.
|
148 |
+
$this->setup_view( $arguments );
|
149 |
+
|
150 |
echo $this->get_html();
|
151 |
}
|
152 |
|
230 |
return $validate_arguments_map;
|
231 |
}
|
232 |
|
233 |
+
/**
|
234 |
+
* Sets up the widgets default admin fields.
|
235 |
+
*
|
236 |
+
* @since 4.12.14
|
237 |
+
*
|
238 |
+
* @return array<string,mixed> The array of widget admin fields.
|
239 |
+
*/
|
240 |
+
protected abstract function setup_admin_fields();
|
241 |
+
|
242 |
+
/**
|
243 |
+
* {@inheritDoc}
|
244 |
+
*/
|
245 |
+
public function get_admin_fields() {
|
246 |
+
return $this->filter_admin_fields( $this->setup_admin_fields() );
|
247 |
+
}
|
248 |
+
|
249 |
+
/**
|
250 |
+
* {@inheritDoc}
|
251 |
+
*/
|
252 |
+
public function filter_admin_fields( $admin_fields ) {
|
253 |
+
/**
|
254 |
+
* Applies a filter to a widget's admin fields.
|
255 |
+
*
|
256 |
+
* @since 4.12.14
|
257 |
+
*
|
258 |
+
* @param array<string,mixed> $admin_fields The array of widget admin fields.
|
259 |
+
* @param static $instance The widget instance we are dealing with.
|
260 |
+
*/
|
261 |
+
$admin_fields = apply_filters( 'tribe_widget_admin_fields', $admin_fields, $this );
|
262 |
+
|
263 |
+
$registration_slug = $this->get_registration_slug();
|
264 |
+
|
265 |
+
/**
|
266 |
+
* Applies a filter to a widget's admin fields based on the registration slug of the widget.
|
267 |
+
*
|
268 |
+
* @since TBE
|
269 |
+
*
|
270 |
+
* @param array<string,mixed> $admin_fields The array of widget admin fields.
|
271 |
+
* @param static $instance The widget instance we are dealing with.
|
272 |
+
*/
|
273 |
+
$admin_fields = apply_filters( "tribe_widget_{$registration_slug}_admin_fields", $admin_fields, $this );
|
274 |
+
|
275 |
+
return $admin_fields;
|
276 |
+
}
|
277 |
+
|
278 |
/**
|
279 |
* {@inheritDoc}
|
280 |
*/
|
281 |
+
public function filter_updated_instance( $updated_instance, $new_instance ) {
|
282 |
+
/**
|
283 |
+
* Applies a filter to updated instance of a widget.
|
284 |
+
*
|
285 |
+
* @since 4.12.14
|
286 |
+
*
|
287 |
+
* @param array<string,mixed> $updated_instance The updated instance of the widget.
|
288 |
+
* @param array<string,mixed> $new_instance The new values for the widget instance.
|
289 |
+
* @param static $instance The widget instance we are dealing with.
|
290 |
+
*/
|
291 |
+
$updated_instance = apply_filters( 'tribe_widget_updated_instance', $updated_instance, $new_instance, $this );
|
292 |
+
|
293 |
+
$registration_slug = $this->get_registration_slug();
|
294 |
+
|
295 |
+
/**
|
296 |
+
* Applies a filter to updated instance of a widget arguments based on the registration slug of the widget.
|
297 |
+
*
|
298 |
+
* @since 4.12.14
|
299 |
+
*
|
300 |
+
* @param array<string,mixed> $updated_instance The updated instance of the widget.
|
301 |
+
* @param array<string,mixed> $new_instance The new values for the widget instance.
|
302 |
+
* @param static $instance The widget instance we are dealing with.
|
303 |
+
*/
|
304 |
+
$updated_instance = apply_filters( "tribe_widget_{$registration_slug}_updated_instance", $updated_instance, $new_instance, $this );
|
305 |
+
|
306 |
+
return $updated_instance;
|
307 |
+
}
|
308 |
+
|
309 |
+
/**
|
310 |
+
* Sets up the widgets arguments, using saved values.
|
311 |
+
*
|
312 |
+
* @since 4.12.14
|
313 |
+
*
|
314 |
+
* @param array<string,mixed> $instance Saved values for the widget instance.
|
315 |
+
*
|
316 |
+
* @return array<string,mixed> The widget arguments, as set by the user in the widget string.
|
317 |
+
*/
|
318 |
+
protected function setup_arguments( array $instance = [] ) {
|
319 |
+
$arguments = $this->arguments;
|
320 |
+
|
321 |
+
$arguments = wp_parse_args(
|
322 |
+
$arguments,
|
323 |
+
$this->get_default_arguments()
|
324 |
+
);
|
325 |
+
|
326 |
+
$arguments = wp_parse_args(
|
327 |
+
$instance,
|
328 |
+
$arguments
|
329 |
+
);
|
330 |
+
|
331 |
+
return $arguments;
|
332 |
+
}
|
333 |
|
334 |
+
/**
|
335 |
+
* {@inheritDoc}
|
336 |
+
*/
|
337 |
+
public function get_arguments( array $instance = [] ) {
|
338 |
+
return $this->filter_arguments( $this->setup_arguments( $instance ) );
|
339 |
}
|
340 |
|
341 |
/**
|
372 |
* {@inheritDoc}
|
373 |
*/
|
374 |
public function get_argument( $index, $default = null ) {
|
375 |
+
$arguments = $this->setup_arguments();
|
376 |
$argument = Arr::get( $arguments, $index, $default );
|
377 |
|
378 |
return $this->filter_argument( $argument, $index, $default );
|
411 |
return $argument;
|
412 |
}
|
413 |
|
414 |
+
/**
|
415 |
+
* Sets up the widgets default arguments.
|
416 |
+
*
|
417 |
+
* @since 4.12.14
|
418 |
+
*
|
419 |
+
* @return array<string,mixed> The default widget arguments.
|
420 |
+
*/
|
421 |
+
protected function setup_default_arguments() {
|
422 |
+
$default_arguments = $this->default_arguments;
|
423 |
+
|
424 |
+
// Setup admin fields.
|
425 |
+
$default_arguments['admin_fields'] = $this->get_admin_fields();
|
426 |
+
|
427 |
+
// Add the Widget to the arguments to pass to the admin template.
|
428 |
+
$default_arguments['widget_obj'] = $this;
|
429 |
+
|
430 |
+
return $default_arguments;
|
431 |
+
}
|
432 |
+
|
433 |
/**
|
434 |
* {@inheritDoc}
|
435 |
*/
|
436 |
public function get_default_arguments() {
|
437 |
+
return $this->filter_default_arguments( $this->setup_default_arguments() );
|
438 |
}
|
439 |
|
440 |
/**
|
461 |
* @param array<string,mixed> $default_arguments Current set of default arguments.
|
462 |
* @param static $instance The widget instance we are dealing with.
|
463 |
*/
|
464 |
+
return apply_filters( "tribe_widget_{$registration_slug}_default_arguments", $default_arguments, $this );
|
465 |
+
}
|
466 |
|
467 |
+
/**
|
468 |
+
* Sets the admin template.
|
469 |
+
*
|
470 |
+
* @since 4.12.14
|
471 |
+
*
|
472 |
+
* @param \Tribe__Template $template The admin template to use.
|
473 |
+
*/
|
474 |
+
public function set_admin_template( \Tribe__Template $template ) {
|
475 |
+
$this->admin_template = $template;
|
476 |
+
}
|
477 |
+
|
478 |
+
/**
|
479 |
+
* Returns the current admin template.
|
480 |
+
*
|
481 |
+
* @since 4.12.14
|
482 |
+
*
|
483 |
+
* @return \Tribe__Template The current admin template.
|
484 |
+
*/
|
485 |
+
public function get_admin_template() {
|
486 |
+
return $this->admin_template;
|
487 |
+
}
|
488 |
+
|
489 |
+
/**
|
490 |
+
* Get the admin html for the widget form.
|
491 |
+
*
|
492 |
+
* @since 4.12.14
|
493 |
+
*
|
494 |
+
* @param array<string,mixed> $arguments Current set of arguments.
|
495 |
+
*/
|
496 |
+
public function get_admin_html( $arguments ) {
|
497 |
+
$this->get_admin_template()->template( $this->view_admin_slug, $arguments );
|
498 |
}
|
499 |
}
|
common/src/Tribe/Widget/Widget_Interface.php
CHANGED
@@ -127,17 +127,51 @@ interface Widget_Interface {
|
|
127 |
*/
|
128 |
public function get_validated_arguments_map();
|
129 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
130 |
/**
|
131 |
* Returns a widget arguments after been parsed.
|
132 |
*
|
133 |
* @since 5.12.12
|
134 |
*
|
|
|
|
|
135 |
* @return array<string,mixed> The widget arguments, as set by the user in the widget string.
|
136 |
*/
|
137 |
-
public function get_arguments();
|
138 |
|
139 |
/**
|
140 |
-
*
|
141 |
*
|
142 |
* @since 5.12.12
|
143 |
*
|
@@ -186,7 +220,7 @@ interface Widget_Interface {
|
|
186 |
public function get_default_arguments();
|
187 |
|
188 |
/**
|
189 |
-
*
|
190 |
*
|
191 |
* @since 5.12.12
|
192 |
*
|
127 |
*/
|
128 |
public function get_validated_arguments_map();
|
129 |
|
130 |
+
/**
|
131 |
+
* Returns an array of admin fields for the widget.
|
132 |
+
*
|
133 |
+
* @since 4.12.14
|
134 |
+
*
|
135 |
+
* @return array<string,mixed> The array of widget admin fields.
|
136 |
+
*/
|
137 |
+
public function get_admin_fields();
|
138 |
+
|
139 |
+
/**
|
140 |
+
* Filter a widget's admin fields.
|
141 |
+
*
|
142 |
+
* @since 4.12.14
|
143 |
+
*
|
144 |
+
* @param array<string,mixed> $admin_fields The array of widget admin fields.
|
145 |
+
*
|
146 |
+
* @return array<string,mixed> The array of widget admin fields.
|
147 |
+
*/
|
148 |
+
public function filter_admin_fields( $admin_fields );
|
149 |
+
|
150 |
+
/**
|
151 |
+
* Filters a widget's updated instance.
|
152 |
+
*
|
153 |
+
* @since 4.12.14
|
154 |
+
*
|
155 |
+
* @param array<string,mixed> $updated_instance The updated instance of the widget.
|
156 |
+
* @param array<string,mixed> $new_instance The new values for the widget instance.
|
157 |
+
*
|
158 |
+
* @return array<string,mixed> The updated instance to be saved for the widget.
|
159 |
+
*/
|
160 |
+
public function filter_updated_instance( $updated_instance, $new_instance );
|
161 |
+
|
162 |
/**
|
163 |
* Returns a widget arguments after been parsed.
|
164 |
*
|
165 |
* @since 5.12.12
|
166 |
*
|
167 |
+
* @param array<string,mixed> $instance Saved values for the widget instance.
|
168 |
+
*
|
169 |
* @return array<string,mixed> The widget arguments, as set by the user in the widget string.
|
170 |
*/
|
171 |
+
public function get_arguments( array $instance = [] );
|
172 |
|
173 |
/**
|
174 |
+
* Filter a widget's arguments after they have been been parsed.
|
175 |
*
|
176 |
* @since 5.12.12
|
177 |
*
|
220 |
public function get_default_arguments();
|
221 |
|
222 |
/**
|
223 |
+
* Filter a widget's default arguments.
|
224 |
*
|
225 |
* @since 5.12.12
|
226 |
*
|
common/src/admin-views/notices/tribe-bf-general.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* The Black Friday admin notice.
|
4 |
*
|
5 |
-
* @since
|
6 |
*
|
7 |
* @var string $icon_url The local URL for the notice's image.
|
8 |
* @var string $cta_url The short URL for black friday.
|
2 |
/**
|
3 |
* The Black Friday admin notice.
|
4 |
*
|
5 |
+
* @since 4.12.14
|
6 |
*
|
7 |
* @var string $icon_url The local URL for the notice's image.
|
8 |
* @var string $cta_url The short URL for black friday.
|
common/src/admin-views/tribe-options-display.php
CHANGED
@@ -2,60 +2,61 @@
|
|
2 |
|
3 |
$sample_date = strtotime( 'January 15 ' . date( 'Y' ) );
|
4 |
|
5 |
-
$displayTab =
|
6 |
'priority' => 20,
|
7 |
'fields' =>
|
8 |
/**
|
9 |
* Filter the fields available on the display settings tab
|
10 |
*
|
11 |
* @param array $fields a nested associative array of fields & field info passed to Tribe__Field
|
|
|
12 |
* @see Tribe__Field
|
13 |
*/
|
14 |
apply_filters(
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
],
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
'type' => 'html',
|
57 |
-
'html' => '</div>',
|
58 |
-
],
|
59 |
-
)
|
60 |
-
),
|
61 |
-
);
|
2 |
|
3 |
$sample_date = strtotime( 'January 15 ' . date( 'Y' ) );
|
4 |
|
5 |
+
$displayTab = [
|
6 |
'priority' => 20,
|
7 |
'fields' =>
|
8 |
/**
|
9 |
* Filter the fields available on the display settings tab
|
10 |
*
|
11 |
* @param array $fields a nested associative array of fields & field info passed to Tribe__Field
|
12 |
+
*
|
13 |
* @see Tribe__Field
|
14 |
*/
|
15 |
apply_filters(
|
16 |
+
'tribe_display_settings_tab_fields', [
|
17 |
+
'tribe-form-content-start' => [
|
18 |
+
'type' => 'html',
|
19 |
+
'html' => '<div class="tribe-settings-form-wrap">',
|
20 |
+
],
|
21 |
+
'tribeEventsDateFormatSettingsTitle' => [
|
22 |
+
'type' => 'html',
|
23 |
+
'html' => '<h3>' . esc_html__( 'Date Format Settings', 'tribe-common' ) . '</h3>',
|
24 |
+
],
|
25 |
+
'tribeEventsDateFormatExplanation' => [
|
26 |
+
'type' => 'html',
|
27 |
+
'html' => '<p>'
|
28 |
+
. sprintf(
|
29 |
+
__( 'The following three fields accept the date format options available to the PHP %1$s function. <a href="%2$s" target="_blank">Learn how to make your own date format here</a>.', 'tribe-common' ),
|
30 |
+
'<code>date()</code>',
|
31 |
+
'https://wordpress.org/support/article/formatting-date-and-time/'
|
32 |
+
)
|
33 |
+
. '</p>',
|
34 |
+
],
|
35 |
+
'datepickerFormat' => [
|
36 |
+
'type' => 'dropdown',
|
37 |
+
'label' => esc_html__( 'Compact Date Format', 'tribe-common' ),
|
38 |
+
'tooltip' => esc_html__( 'Select the date format used for elements with minimal space, such as in datepickers.', 'tribe-common' ),
|
39 |
+
'default' => 1,
|
40 |
+
'options' => [
|
41 |
+
'0' => date( 'Y-m-d', $sample_date ),
|
42 |
+
'1' => date( 'n/j/Y', $sample_date ),
|
43 |
+
'2' => date( 'm/d/Y', $sample_date ),
|
44 |
+
'3' => date( 'j/n/Y', $sample_date ),
|
45 |
+
'4' => date( 'd/m/Y', $sample_date ),
|
46 |
+
'5' => date( 'n-j-Y', $sample_date ),
|
47 |
+
'6' => date( 'm-d-Y', $sample_date ),
|
48 |
+
'7' => date( 'j-n-Y', $sample_date ),
|
49 |
+
'8' => date( 'd-m-Y', $sample_date ),
|
50 |
+
'9' => date( 'Y.m.d', $sample_date ),
|
51 |
+
'10' => date( 'm.d.Y', $sample_date ),
|
52 |
+
'11' => date( 'd.m.Y', $sample_date ),
|
53 |
+
],
|
54 |
+
'validation_type' => 'options',
|
55 |
+
],
|
56 |
+
'tribe-form-content-end' => [
|
57 |
+
'type' => 'html',
|
58 |
+
'html' => '</div>',
|
59 |
],
|
60 |
+
]
|
61 |
+
),
|
62 |
+
];
|
|
|
|
|
|
|
|
|
|
|
|
common/src/admin-views/tribe-options-help.php
CHANGED
@@ -25,13 +25,43 @@ $help->add_section_content( 'support', sprintf(
|
|
25 |
// Creates the Extra Help section
|
26 |
$help->add_section( 'extra-help', __( 'Getting More Help', 'tribe-common' ), 20 );
|
27 |
$help->add_section_content( 'extra-help', __( 'While the resources above help solve a majority of the issues we see, there are times you might be looking for extra support. If you need assistance using our plugins and would like us to take a look, please follow these steps:', 'tribe-common' ), 0 );
|
28 |
-
$help->add_section_content(
|
29 |
-
'
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
|
36 |
// By default these three will be gathered
|
37 |
$help->add_section_content( 'extra-help', __( 'Please note that all hands-on support is provided via the help desk. You can email or tweet at us… but we will probably point you back to the help desk 😄', 'tribe-common' ), 40 );
|
25 |
// Creates the Extra Help section
|
26 |
$help->add_section( 'extra-help', __( 'Getting More Help', 'tribe-common' ), 20 );
|
27 |
$help->add_section_content( 'extra-help', __( 'While the resources above help solve a majority of the issues we see, there are times you might be looking for extra support. If you need assistance using our plugins and would like us to take a look, please follow these steps:', 'tribe-common' ), 0 );
|
28 |
+
$help->add_section_content(
|
29 |
+
'extra-help',
|
30 |
+
[
|
31 |
+
'type' => 'ol',
|
32 |
+
sprintf(
|
33 |
+
__(
|
34 |
+
'%s. All of the common (and not-so-common) answers to questions we see are here. It’s often the fastest path to finding an answer!',
|
35 |
+
'tribe-common'
|
36 |
+
),
|
37 |
+
'<strong><a href="http://m.tri.be/18j9" target="_blank">' . __(
|
38 |
+
'Check our Knowledgebase',
|
39 |
+
'tribe-common'
|
40 |
+
) . '</a></strong>'
|
41 |
+
),
|
42 |
+
sprintf(
|
43 |
+
__(
|
44 |
+
'%s. Testing for an existing conflict is the best start for in-depth troubleshooting. We will often ask you to follow these steps when opening a new thread, so doing this ahead of time will be super helpful.',
|
45 |
+
'tribe-common'
|
46 |
+
),
|
47 |
+
'<strong><a href="http://m.tri.be/18jh" target="_blank">' . __(
|
48 |
+
'Test for a theme or plugin conflict',
|
49 |
+
'tribe-common'
|
50 |
+
) . '</a></strong>'
|
51 |
+
),
|
52 |
+
sprintf(
|
53 |
+
__(
|
54 |
+
'%s. There are very few issues we haven’t seen and it’s likely another user has already asked your question and gotten an answer from our support staff. While posting to the help desk is open only to paid customers, they are open for anyone to search and review.',
|
55 |
+
'tribe-common'
|
56 |
+
),
|
57 |
+
'<strong><a href="http://m.tri.be/4w/" target="_blank">' . __(
|
58 |
+
'Search our support help desk',
|
59 |
+
'tribe-common'
|
60 |
+
) . '</a></strong>'
|
61 |
+
),
|
62 |
+
],
|
63 |
+
10
|
64 |
+
);
|
65 |
|
66 |
// By default these three will be gathered
|
67 |
$help->add_section_content( 'extra-help', __( 'Please note that all hands-on support is provided via the help desk. You can email or tweet at us… but we will probably point you back to the help desk 😄', 'tribe-common' ), 40 );
|
common/src/admin-views/tribe-options-licenses.php
CHANGED
@@ -47,21 +47,21 @@ if ( is_multisite() ) {
|
|
47 |
$html .= '</ul>';
|
48 |
|
49 |
|
50 |
-
$licenses_tab =
|
51 |
-
'info-start'
|
52 |
'type' => 'html',
|
53 |
'html' => '<div id="modern-tribe-info">',
|
54 |
-
|
55 |
-
'info-box-title'
|
56 |
'type' => 'html',
|
57 |
'html' => '<h2>' . esc_html__( 'Licenses', 'tribe-common' ) . '</h2>',
|
58 |
-
|
59 |
-
'info-box-description' =>
|
60 |
'type' => 'html',
|
61 |
'html' => $html,
|
62 |
-
|
63 |
-
'info-end'
|
64 |
'type' => 'html',
|
65 |
'html' => '</div>',
|
66 |
-
|
67 |
-
|
47 |
$html .= '</ul>';
|
48 |
|
49 |
|
50 |
+
$licenses_tab = [
|
51 |
+
'info-start' => [
|
52 |
'type' => 'html',
|
53 |
'html' => '<div id="modern-tribe-info">',
|
54 |
+
],
|
55 |
+
'info-box-title' => [
|
56 |
'type' => 'html',
|
57 |
'html' => '<h2>' . esc_html__( 'Licenses', 'tribe-common' ) . '</h2>',
|
58 |
+
],
|
59 |
+
'info-box-description' => [
|
60 |
'type' => 'html',
|
61 |
'html' => $html,
|
62 |
+
],
|
63 |
+
'info-end' => [
|
64 |
'type' => 'html',
|
65 |
'html' => '</div>',
|
66 |
+
],
|
67 |
+
];
|
common/src/admin-views/tribe-options-network.php
CHANGED
@@ -1,35 +1,35 @@
|
|
1 |
<?php
|
2 |
-
$allTabs = apply_filters( 'tribe_settings_all_tabs',
|
3 |
|
4 |
-
$networkTab =
|
5 |
'priority' => 10,
|
6 |
'network_admin' => true,
|
7 |
'fields' => apply_filters(
|
8 |
-
'tribe_network_settings_tab_fields',
|
9 |
-
'info-start' =>
|
10 |
'type' => 'html',
|
11 |
'html' => '<div id="modern-tribe-info">',
|
12 |
-
|
13 |
-
'info-box-title' =>
|
14 |
'type' => 'html',
|
15 |
'html' => '<h1>' . esc_html__( 'Network Settings', 'tribe-common' ) . '</h1>',
|
16 |
-
|
17 |
-
'info-box-description' =>
|
18 |
'type' => 'html',
|
19 |
'html' => '<p>' . esc_html__( 'This is where all of the global network settings for Modern Tribe\'s The Events Calendar can be modified.', 'tribe-common' ) . '</p>',
|
20 |
-
|
21 |
-
'info-end' =>
|
22 |
'type' => 'html',
|
23 |
'html' => '</div>',
|
24 |
-
|
25 |
-
'hideSettingsTabs' =>
|
26 |
'type' => 'checkbox_list',
|
27 |
'label' => esc_html__( 'Hide the following settings tabs on every site:', 'tribe-common' ),
|
28 |
'default' => false,
|
29 |
'options' => $allTabs,
|
30 |
'validation_type' => 'options_multi',
|
31 |
'can_be_empty' => true,
|
32 |
-
|
33 |
-
|
34 |
),
|
35 |
-
|
1 |
<?php
|
2 |
+
$allTabs = apply_filters( 'tribe_settings_all_tabs', [] );
|
3 |
|
4 |
+
$networkTab = [
|
5 |
'priority' => 10,
|
6 |
'network_admin' => true,
|
7 |
'fields' => apply_filters(
|
8 |
+
'tribe_network_settings_tab_fields', [
|
9 |
+
'info-start' => [
|
10 |
'type' => 'html',
|
11 |
'html' => '<div id="modern-tribe-info">',
|
12 |
+
],
|
13 |
+
'info-box-title' => [
|
14 |
'type' => 'html',
|
15 |
'html' => '<h1>' . esc_html__( 'Network Settings', 'tribe-common' ) . '</h1>',
|
16 |
+
],
|
17 |
+
'info-box-description' => [
|
18 |
'type' => 'html',
|
19 |
'html' => '<p>' . esc_html__( 'This is where all of the global network settings for Modern Tribe\'s The Events Calendar can be modified.', 'tribe-common' ) . '</p>',
|
20 |
+
],
|
21 |
+
'info-end' => [
|
22 |
'type' => 'html',
|
23 |
'html' => '</div>',
|
24 |
+
],
|
25 |
+
'hideSettingsTabs' => [
|
26 |
'type' => 'checkbox_list',
|
27 |
'label' => esc_html__( 'Hide the following settings tabs on every site:', 'tribe-common' ),
|
28 |
'default' => false,
|
29 |
'options' => $allTabs,
|
30 |
'validation_type' => 'options_multi',
|
31 |
'can_be_empty' => true,
|
32 |
+
],
|
33 |
+
]
|
34 |
),
|
35 |
+
];
|
common/src/functions/query.php
CHANGED
@@ -28,7 +28,7 @@ if ( ! function_exists( 'tribe_filter_meta_query' ) ) {
|
|
28 |
* @return array The filtered meta query array.
|
29 |
*/
|
30 |
function tribe_filter_meta_query( array $meta_query, array $where ) {
|
31 |
-
$filtered =
|
32 |
|
33 |
foreach ( $meta_query as $key => $entry ) {
|
34 |
if ( ! is_array( $entry ) ) {
|
28 |
* @return array The filtered meta query array.
|
29 |
*/
|
30 |
function tribe_filter_meta_query( array $meta_query, array $where ) {
|
31 |
+
$filtered = [];
|
32 |
|
33 |
foreach ( $meta_query as $key => $entry ) {
|
34 |
if ( ! is_array( $entry ) ) {
|
common/src/functions/template-tags/date.php
CHANGED
@@ -189,7 +189,7 @@ if ( ! function_exists( 'tribe_get_start_time' ) ) {
|
|
189 |
return;
|
190 |
}
|
191 |
|
192 |
-
// @todo
|
193 |
if ( class_exists( 'Tribe__Events__Timezones' ) ) {
|
194 |
$start_date = Tribe__Events__Timezones::event_start_timestamp( $event->ID, $timezone );
|
195 |
}
|
@@ -240,7 +240,7 @@ if ( ! function_exists( 'tribe_get_end_time' ) ) {
|
|
240 |
return;
|
241 |
}
|
242 |
|
243 |
-
// @todo
|
244 |
if ( class_exists( 'Tribe__Events__Timezones' ) ) {
|
245 |
$end_date = Tribe__Events__Timezones::event_end_timestamp( $event->ID, $timezone );
|
246 |
}
|
@@ -300,7 +300,7 @@ if ( ! function_exists( 'tribe_get_start_date' ) ) {
|
|
300 |
$display_time = false;
|
301 |
}
|
302 |
|
303 |
-
// @todo
|
304 |
if ( class_exists( 'Tribe__Events__Timezones' ) ) {
|
305 |
$start_date = Tribe__Events__Timezones::event_start_timestamp( $event->ID, $timezone );
|
306 |
} else {
|
@@ -362,7 +362,7 @@ if ( ! function_exists( 'tribe_get_end_date' ) ) {
|
|
362 |
$display_time = false;
|
363 |
}
|
364 |
|
365 |
-
// @todo
|
366 |
if ( class_exists( 'Tribe__Events__Timezones' ) ) {
|
367 |
$end_date = Tribe__Events__Timezones::event_end_timestamp( $event->ID );
|
368 |
} else {
|
@@ -393,7 +393,7 @@ if ( ! function_exists( 'tribe_normalize_manual_utc_offset' ) ) {
|
|
393 |
* e.g. 'UTC+3', 'UTC-4.5', 'UTC+2.75'
|
394 |
*/
|
395 |
function tribe_normalize_manual_utc_offset( $utc_offset ) {
|
396 |
-
$matches =
|
397 |
if ( preg_match( '/^UTC\\s*((\\+|-)(\\d{1,2}))((:|.|,)(\\d{1,2})+)*/ui', $utc_offset, $matches ) ) {
|
398 |
if ( ! empty( $matches[6] ) ) {
|
399 |
$minutes = $matches[6] > 10 && $matches[6] <= 60 ? $minutes = $matches[6] / 60 : $matches[6];
|
@@ -448,4 +448,4 @@ if ( ! function_exists( 'tribe_is_site_using_24_hour_time' ) ) {
|
|
448 |
$time_format = get_option( 'time_format' );
|
449 |
return strpos( $time_format, 'H' ) !== false;
|
450 |
}
|
451 |
-
}
|
189 |
return;
|
190 |
}
|
191 |
|
192 |
+
// @todo [BTRIA-584]: Move timezones to Common.
|
193 |
if ( class_exists( 'Tribe__Events__Timezones' ) ) {
|
194 |
$start_date = Tribe__Events__Timezones::event_start_timestamp( $event->ID, $timezone );
|
195 |
}
|
240 |
return;
|
241 |
}
|
242 |
|
243 |
+
// @todo [BTRIA-584]: Move timezones to Common.
|
244 |
if ( class_exists( 'Tribe__Events__Timezones' ) ) {
|
245 |
$end_date = Tribe__Events__Timezones::event_end_timestamp( $event->ID, $timezone );
|
246 |
}
|
300 |
$display_time = false;
|
301 |
}
|
302 |
|
303 |
+
// @todo [BTRIA-584]: Move timezones to Common.
|
304 |
if ( class_exists( 'Tribe__Events__Timezones' ) ) {
|
305 |
$start_date = Tribe__Events__Timezones::event_start_timestamp( $event->ID, $timezone );
|
306 |
} else {
|
362 |
$display_time = false;
|
363 |
}
|
364 |
|
365 |
+
// @todo [BTRIA-584]: Move timezones to Common.
|
366 |
if ( class_exists( 'Tribe__Events__Timezones' ) ) {
|
367 |
$end_date = Tribe__Events__Timezones::event_end_timestamp( $event->ID );
|
368 |
} else {
|
393 |
* e.g. 'UTC+3', 'UTC-4.5', 'UTC+2.75'
|
394 |
*/
|
395 |
function tribe_normalize_manual_utc_offset( $utc_offset ) {
|
396 |
+
$matches = [];
|
397 |
if ( preg_match( '/^UTC\\s*((\\+|-)(\\d{1,2}))((:|.|,)(\\d{1,2})+)*/ui', $utc_offset, $matches ) ) {
|
398 |
if ( ! empty( $matches[6] ) ) {
|
399 |
$minutes = $matches[6] > 10 && $matches[6] <= 60 ? $minutes = $matches[6] / 60 : $matches[6];
|
448 |
$time_format = get_option( 'time_format' );
|
449 |
return strpos( $time_format, 'H' ) !== false;
|
450 |
}
|
451 |
+
}
|
common/src/functions/template-tags/general.php
CHANGED
@@ -264,7 +264,7 @@ if ( ! function_exists( 'tribe_get_days_between' ) ) {
|
|
264 |
if ( ! function_exists( 'tribe_prepare_for_json' ) ) {
|
265 |
/**
|
266 |
* Function to prepare content for use as a value in a json encoded string destined for storage on a html data attribute.
|
267 |
-
* Hence the double quote fun, especially in case they pass html encoded " along. Any of those getting through to the data att will break
|
268 |
* Themers can use this function to prepare data they may want to send to tribe_events_template_data() in the templates, and we use it in that function ourselves.
|
269 |
*
|
270 |
* @category Events
|
@@ -277,7 +277,7 @@ if ( ! function_exists( 'tribe_prepare_for_json' ) ) {
|
|
277 |
$value = trim( htmlspecialchars( $string, ENT_QUOTES, 'UTF-8' ) );
|
278 |
$value = str_replace( '"', '"', $value );
|
279 |
// &#013; is same as \r and JSON strings should be a single line not multiple lines.
|
280 |
-
$removable_values =
|
281 |
$value = str_replace( $removable_values, '', $value );
|
282 |
|
283 |
return $value;
|
@@ -362,13 +362,13 @@ if ( ! function_exists( 'tribe_is_bot' ) ) {
|
|
362 |
|
363 |
// declare known bot user agents (lowercase)
|
364 |
$user_agent_bots = (array) apply_filters(
|
365 |
-
'tribe_is_bot_list',
|
366 |
'bot',
|
367 |
'slurp',
|
368 |
'spider',
|
369 |
'crawler',
|
370 |
'yandex',
|
371 |
-
|
372 |
);
|
373 |
|
374 |
foreach ( $user_agent_bots as $bot ) {
|
@@ -525,14 +525,14 @@ if ( ! function_exists( 'tribe_get_date_option' ) ) {
|
|
525 |
* Shortcut for Tribe__Admin__Notices::register(), create a Admin Notice easily
|
526 |
*
|
527 |
* @param string $slug Slug to save the notice
|
528 |
-
* @param callable|string $callback A callable Method/
|
529 |
* @param array $arguments Arguments to Setup a notice
|
530 |
* @param callable|null $active_callback An optional callback that should return bool values
|
531 |
* to indicate whether the notice should display or not.
|
532 |
*
|
533 |
* @return stdClass Which notice was registered
|
534 |
*/
|
535 |
-
function tribe_notice( $slug, $callback, $arguments =
|
536 |
return Tribe__Admin__Notices::instance()->register( $slug, $callback, $arguments, $active_callback );
|
537 |
}
|
538 |
|
@@ -549,7 +549,7 @@ function tribe_notice( $slug, $callback, $arguments = array(), $active_callback
|
|
549 |
*
|
550 |
* @return stdClass Which notice was registered
|
551 |
*/
|
552 |
-
function tribe_transient_notice( $slug, $html, $arguments =
|
553 |
$expire = null !== $expire ? (int) $expire : WEEK_IN_SECONDS;
|
554 |
|
555 |
return Tribe__Admin__Notices::instance()->register_transient( $slug, $html, $arguments, $expire );
|
@@ -575,7 +575,7 @@ function tribe_transient_notice_remove( $slug ) {
|
|
575 |
*
|
576 |
* @return WP_Error
|
577 |
*/
|
578 |
-
function tribe_error( $indexes, $context =
|
579 |
return Tribe__Error::instance()->send( $indexes, $context, $sprintf );
|
580 |
}
|
581 |
|
@@ -650,7 +650,7 @@ function tribe_asset_enqueue_group( $group ) {
|
|
650 |
* @param object $origin The main Object for the plugin you are enqueueing the script/style for
|
651 |
* @param array $assets {
|
652 |
* Indexed array, don't use any associative key.
|
653 |
-
* E.g.:
|
654 |
*
|
655 |
* @type string $slug Slug to save the asset
|
656 |
* @type string $file Which file will be loaded, either CSS or JS
|
@@ -661,8 +661,8 @@ function tribe_asset_enqueue_group( $group ) {
|
|
661 |
*
|
662 |
* @return array Which Assets were registered
|
663 |
*/
|
664 |
-
function tribe_assets( $origin, $assets, $action = null, $arguments =
|
665 |
-
$registered =
|
666 |
|
667 |
foreach ( $assets as $asset ) {
|
668 |
if ( ! is_array( $asset ) ) {
|
@@ -675,7 +675,7 @@ function tribe_assets( $origin, $assets, $action = null, $arguments = array() )
|
|
675 |
}
|
676 |
|
677 |
$file = $asset[1];
|
678 |
-
$deps = ! empty( $asset[2] ) ? $asset[2] :
|
679 |
|
680 |
// Support the asset having a custom action.
|
681 |
$asset_action = ! empty( $asset[3] ) ? $asset[3] : $action;
|
264 |
if ( ! function_exists( 'tribe_prepare_for_json' ) ) {
|
265 |
/**
|
266 |
* Function to prepare content for use as a value in a json encoded string destined for storage on a html data attribute.
|
267 |
+
* Hence the double quote fun, especially in case they pass html encoded " along. Any of those getting through to the data att will break jQuery's parseJSON method.
|
268 |
* Themers can use this function to prepare data they may want to send to tribe_events_template_data() in the templates, and we use it in that function ourselves.
|
269 |
*
|
270 |
* @category Events
|
277 |
$value = trim( htmlspecialchars( $string, ENT_QUOTES, 'UTF-8' ) );
|
278 |
$value = str_replace( '"', '"', $value );
|
279 |
// &#013; is same as \r and JSON strings should be a single line not multiple lines.
|
280 |
+
$removable_values = [ '\r', '\n', '\t', '&#013;' ];
|
281 |
$value = str_replace( $removable_values, '', $value );
|
282 |
|
283 |
return $value;
|
362 |
|
363 |
// declare known bot user agents (lowercase)
|
364 |
$user_agent_bots = (array) apply_filters(
|
365 |
+
'tribe_is_bot_list', [
|
366 |
'bot',
|
367 |
'slurp',
|
368 |
'spider',
|
369 |
'crawler',
|
370 |
'yandex',
|
371 |
+
]
|
372 |
);
|
373 |
|
374 |
foreach ( $user_agent_bots as $bot ) {
|
525 |
* Shortcut for Tribe__Admin__Notices::register(), create a Admin Notice easily
|
526 |
*
|
527 |
* @param string $slug Slug to save the notice
|
528 |
+
* @param callable|string $callback A callable Method/Function to actually display the notice
|
529 |
* @param array $arguments Arguments to Setup a notice
|
530 |
* @param callable|null $active_callback An optional callback that should return bool values
|
531 |
* to indicate whether the notice should display or not.
|
532 |
*
|
533 |
* @return stdClass Which notice was registered
|
534 |
*/
|
535 |
+
function tribe_notice( $slug, $callback, $arguments = [], $active_callback = null ) {
|
536 |
return Tribe__Admin__Notices::instance()->register( $slug, $callback, $arguments, $active_callback );
|
537 |
}
|
538 |
|
549 |
*
|
550 |
* @return stdClass Which notice was registered
|
551 |
*/
|
552 |
+
function tribe_transient_notice( $slug, $html, $arguments = [], $expire = null ) {
|
553 |
$expire = null !== $expire ? (int) $expire : WEEK_IN_SECONDS;
|
554 |
|
555 |
return Tribe__Admin__Notices::instance()->register_transient( $slug, $html, $arguments, $expire );
|
575 |
*
|
576 |
* @return WP_Error
|
577 |
*/
|
578 |
+
function tribe_error( $indexes, $context = [], $sprintf = [] ) {
|
579 |
return Tribe__Error::instance()->send( $indexes, $context, $sprintf );
|
580 |
}
|
581 |
|
650 |
* @param object $origin The main Object for the plugin you are enqueueing the script/style for
|
651 |
* @param array $assets {
|
652 |
* Indexed array, don't use any associative key.
|
653 |
+
* E.g.: [ 'slug-my-script', 'my/own/path.js', [ 'jquery' ] ]
|
654 |
*
|
655 |
* @type string $slug Slug to save the asset
|
656 |
* @type string $file Which file will be loaded, either CSS or JS
|
661 |
*
|
662 |
* @return array Which Assets were registered
|
663 |
*/
|
664 |
+
function tribe_assets( $origin, $assets, $action = null, $arguments = [] ) {
|
665 |
+
$registered = [];
|
666 |
|
667 |
foreach ( $assets as $asset ) {
|
668 |
if ( ! is_array( $asset ) ) {
|
675 |
}
|
676 |
|
677 |
$file = $asset[1];
|
678 |
+
$deps = ! empty( $asset[2] ) ? $asset[2] : [];
|
679 |
|
680 |
// Support the asset having a custom action.
|
681 |
$asset_action = ! empty( $asset[3] ) ? $asset[3] : $action;
|
common/src/functions/template-tags/html.php
CHANGED
@@ -132,3 +132,83 @@ function tribe_disabled( $disabled, $echo = true ) {
|
|
132 |
}
|
133 |
}
|
134 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
132 |
}
|
133 |
}
|
134 |
}
|
135 |
+
|
136 |
+
/**
|
137 |
+
* Generates a string for the tribe-dependency attributes.
|
138 |
+
*
|
139 |
+
* @since 4.12.14
|
140 |
+
*
|
141 |
+
* @param array<string,mixed> $deps The passed array of dependencies.
|
142 |
+
*
|
143 |
+
* @return string $dependency The string of dependencies attributes to add to the input.
|
144 |
+
*/
|
145 |
+
function tribe_format_field_dependency( $deps ) {
|
146 |
+
// Sanity check.
|
147 |
+
if ( empty( $deps ) ) {
|
148 |
+
return '';
|
149 |
+
}
|
150 |
+
|
151 |
+
// Let's be case-insensitive!
|
152 |
+
$deps = array_combine( array_map( 'strtolower', array_keys( $deps ) ), $deps );
|
153 |
+
|
154 |
+
// No ID to hook to? Bail.
|
155 |
+
if ( empty( $deps['id'] ) ) {
|
156 |
+
return;
|
157 |
+
}
|
158 |
+
|
159 |
+
$dependency = '';
|
160 |
+
|
161 |
+
$accepted = [
|
162 |
+
'id',
|
163 |
+
'is',
|
164 |
+
'is-not',
|
165 |
+
'is-empty',
|
166 |
+
'is-not-empty',
|
167 |
+
'is-numeric',
|
168 |
+
'is-not-numeric',
|
169 |
+
'is-checked',
|
170 |
+
'is-not-checked',
|
171 |
+
];
|
172 |
+
|
173 |
+
$valid_deps = array_intersect_key( $deps, array_flip( $accepted ) );
|
174 |
+
|
175 |
+
foreach ( $valid_deps as $attr => $value ) {
|
176 |
+
// Attributes are always lower case.
|
177 |
+
$attr = strtolower( $attr );
|
178 |
+
|
179 |
+
// Handle the ID component.
|
180 |
+
if ( 'id' === $attr ) {
|
181 |
+
$dependency .= " data-depends=\"{$value}\"";
|
182 |
+
continue;
|
183 |
+
}
|
184 |
+
|
185 |
+
// Handle boolean values.
|
186 |
+
if ( is_bool( $value ) ) {
|
187 |
+
if ( $value ) {
|
188 |
+
$dependency .= " data-{$attr}";
|
189 |
+
} else {
|
190 |
+
if ( 0 === stripos( $attr, 'is-not-' ) ) {
|
191 |
+
$attr = str_replace( 'is-not-', 'is-', $attr );
|
192 |
+
} else {
|
193 |
+
$attr = str_replace( 'is-', 'is-not-', $attr );
|
194 |
+
}
|
195 |
+
|
196 |
+
$dependency .= " data-{$attr}";
|
197 |
+
continue;
|
198 |
+
}
|
199 |
+
|
200 |
+
continue;
|
201 |
+
}
|
202 |
+
|
203 |
+
// Handle string and "empty" values
|
204 |
+
if( 0 === strlen( $value ) ) {
|
205 |
+
$dependency .= " data-{$attr}";
|
206 |
+
} else if ( 'is' === $attr ) {
|
207 |
+
$dependency .= " data-condition=\"{$value}\"";
|
208 |
+
} else if ( 'is-not' === $attr ) {
|
209 |
+
$dependency .= " data-condition-not=\"{$value}\"";
|
210 |
+
}
|
211 |
+
}
|
212 |
+
|
213 |
+
return $dependency;
|
214 |
+
}
|
common/src/functions/utils.php
CHANGED
@@ -810,7 +810,7 @@ if ( ! function_exists( 'tribe_get_greatest_version_ever_installed' ) ) {
|
|
810 |
* use static mapping here, since generating a full instance will effectively
|
811 |
* activate parts of the plugin behind the scenes.
|
812 |
*
|
813 |
-
* @since
|
814 |
*
|
815 |
* @param string $class Which plugin main class we are looking for.
|
816 |
*
|
810 |
* use static mapping here, since generating a full instance will effectively
|
811 |
* activate parts of the plugin behind the scenes.
|
812 |
*
|
813 |
+
* @since 4.12.14
|
814 |
*
|
815 |
* @param string $class Which plugin main class we are looking for.
|
816 |
*
|
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;-moz-appearance:none;appearance:none}.tribe-common button,.tribe-common input,.tribe-common optgroup,.tribe-common select,.tribe-common textarea{color:inherit;font:inherit;line-height:normal;-webkit-font-smoothing:antialiased}.tribe-common button,.tribe-common input,.tribe-common select,.tribe-common textarea{outline:0;border-radius:0}.tribe-common select:-moz-focusring{color:transparent;text-shadow:0 0 0 #000}.tribe-common optgroup{font-weight:700}.tribe-common 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:#fff;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-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:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400}.tribe-common .tribe-common-form-control-checkbox__label:hover,.tribe-common .tribe-common-form-control-radio__label:hover{opacity:.8}.tribe-common .tribe-common-form-control-checkbox__input,.tribe-common .tribe-common-form-control-radio__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border:1px solid #141827;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:#141827;opacity:.8}.tribe-common .tribe-common-form-control-checkbox__input:checked,.tribe-common .tribe-common-form-control-radio__input:checked{background-color:#141827}.tribe-common .tribe-common-form-control-checkbox__input{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%;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:.8}.tribe-common .tribe-common-form-control-radio__input{border-radius:50%}.tribe-common .tribe-common-form-control-radio__input:checked:before{background-color:#fff;border-radius:50%;content:"";display:block;height:8px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:8px}.tribe-common .tribe-common-form-control-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:.8}.tribe-theme-twentytwenty .tribe-common .tribe-common-form-control-checkbox__input:checked:before{margin:0}#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-weight:400;font-size:14px}.tribe-common .tribe-common-form-control-slider{line-height:0}.tribe-common .tribe-common-form-control-slider__input{-webkit-appearance:none;-moz-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:background-color .2s ease;background-color:#334aff}.tribe-common .tribe-common-form-control-slider__input::-moz-range-track{border:none;border-radius:5px;height:10px;margin:5px 0;padding:0;position:relative;transition:background-color .2s ease;background-color:#334aff}.tribe-common .tribe-common-form-control-slider__input::-ms-track{background-color:transparent;border-color:transparent;border-width:5px 0;color:transparent;height:10px}.tribe-common .tribe-common-form-control-slider__input::-ms-fill-lower,.tribe-common .tribe-common-form-control-slider__input::-ms-fill-upper{background-color:#334aff;border-radius:10px}.tribe-common .tribe-common-form-control-slider__input::-webkit-slider-thumb{background-color:#fff;border:1px solid #7d7d7d;border-radius:50%;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);height:20px;width:20px;margin-top:-5px;-webkit-appearance:none;appearance:none}.tribe-common .tribe-common-form-control-slider__input::-moz-range-thumb{background-color:#fff;border:1px solid #7d7d7d;border-radius:50%;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);height:20px;width:20px;margin-top:-5px}.tribe-common .tribe-common-form-control-slider__input::-ms-thumb{background-color:#fff;border:1px solid #7d7d7d;border-radius:50%;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);height:20px;width:20px;margin-top:-5px;box-shadow:none;margin-top:-1px}.tribe-common .tribe-common-form-control-slider__label{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;line-height:1.38;font-weight:400;color:#5d5d5d}#top .main_color .tribe-common .tribe-common-form-control-slider__label,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-slider__label{font-weight:400;font-size:12px}.tribe-common .tribe-common-form-control-text__input{font-size:16px;border:0;border-bottom:1px solid #d5d5d5}.tribe-common--breakpoint-medium.tribe-common .tribe-common-form-control-text__input,.tribe-common .tribe-common-form-control-text__input{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;line-height:1.62;font-weight:400}.tribe-common--breakpoint-medium.tribe-common .tribe-common-form-control-text__input{font-size:14px;border:0}.tribe-common .tribe-common-form-control-text__input::-webkit-input-placeholder{color:#5d5d5d;font-style:normal;opacity:1}.tribe-common .tribe-common-form-control-text__input::-moz-placeholder{color:#5d5d5d;font-style:normal;opacity:1}.tribe-common .tribe-common-form-control-text__input:-ms-input-placeholder,.tribe-common .tribe-common-form-control-text__input::-ms-input-placeholder{color:#5d5d5d;font-style:normal;opacity:1}.tribe-common .tribe-common-form-control-text__input::placeholder{color:#5d5d5d;font-style:normal;opacity:1}.tribe-common .tribe-common-form-control-text__input:focus{border-bottom-color:#141827;outline:0}.tribe-theme-twentyseventeen .tribe-common .tribe-common-form-control-text__input{color:#141827}.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:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:16px;line-height:1.62;font-weight:400;background:#fff;border:0;border-bottom:1px solid #d5d5d5}#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:#141827;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:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;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:background-color .2s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#7d7d7d;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:#fff;border:1px solid #7d7d7d;border-radius:50%;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);height:20px;width:20px;content:"";left:0;position:absolute;transition:transform .2s ease}.tribe-common .tribe-common-form-control-toggle__input:checked{background-color:#334aff}.tribe-common .tribe-common-form-control-toggle__input:checked+label:before{transform:translateX(20px)}.tribe-common .tribe-common-form-control-toggle__label{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;line-height:1.38;font-weight:400;color:#5d5d5d}#top .main_color .tribe-common .tribe-common-form-control-toggle__label,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-toggle__label{font-weight:400;font-size:12px}.tribe-theme-twentytwenty .tribe-common .tribe-common-form-control-toggle__input:checked:before{content:none}.tribe-common a,.tribe-common a:active,.tribe-common a:focus,.tribe-common a:hover,.tribe-common a:visited{color:#141827;outline:0;text-decoration:none}.tribe-theme-twentyseventeen .tribe-common a{box-shadow:none}.tribe-theme-twentyseventeen .tribe-common a:focus,.tribe-theme-twentyseventeen .tribe-common a:hover{box-shadow:none;color:#141827}.tribe-theme-twentynineteen .entry .tribe-common a,.tribe-theme-twentynineteen .tribe-common a{text-decoration:none}.tribe-common .tribe-common-anchor{border-bottom:2px solid transparent;transition:border-color .2s ease}.tribe-common .tribe-common-anchor:active,.tribe-common .tribe-common-anchor:focus,.tribe-common .tribe-common-anchor:hover{border-bottom:2px solid #141827}.tribe-common .tribe-common-anchor-alt{border-bottom:2px solid #334aff;color:#141827;transition:color .2s ease}.tribe-common .tribe-common-anchor-alt:active,.tribe-common .tribe-common-anchor-alt:focus,.tribe-common .tribe-common-anchor-alt:hover{border-bottom:2px solid #334aff;color:#334aff}.tribe-common .tribe-common-anchor-thin{border-bottom:1px solid transparent;transition:border-color .2s ease}.tribe-common .tribe-common-anchor-thin:active,.tribe-common .tribe-common-anchor-thin:focus,.tribe-common .tribe-common-anchor-thin:hover{border-bottom:1px solid #141827}.tribe-common .tribe-common-anchor-thin-alt{border-bottom:1px solid #334aff;color:#141827;transition:color .2s ease}.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 #334aff;color:#334aff}.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:#334aff}.tribe-common .tribe-common-b1{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.62}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b1{font-size:16px;line-height:1.62}.tribe-common .tribe-common-b1--bold{font-weight:700}.tribe-common .tribe-common-b2{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1.38}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b2{font-size:14px;line-height:1.62}.tribe-common .tribe-common-b2--bold{font-weight:700}.tribe-common .tribe-common-b3{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:11px;font-weight:400;line-height:1.5}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b3{font-size:12px;line-height:1.38}.tribe-common .tribe-common-b3--bold{font-weight:700}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b1--min-medium{font-size:16px;line-height:1.62}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b2--min-medium{font-size:14px;line-height:1.62}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b3--min-medium{font-size:12px;line-height:1.38}.tribe-common .tribe-common-cta{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;line-height:1.38;font-weight:400;font-weight:700;border-bottom:2px solid transparent;transition:border-color .2s ease}.tribe-common .tribe-common-cta:active,.tribe-common .tribe-common-cta:focus,.tribe-common .tribe-common-cta:hover{border-bottom:2px solid #141827}.tribe-common .tribe-common-cta--alt{border-bottom:2px solid #334aff;color:#141827;transition:color .2s ease}.tribe-common .tribe-common-cta--alt:active,.tribe-common .tribe-common-cta--alt:focus,.tribe-common .tribe-common-cta--alt:hover{border-bottom:2px solid #334aff;color:#334aff}.tribe-common .tribe-common-cta--thin{border-bottom:1px solid transparent;transition:border-color .2s ease}.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 #141827}.tribe-common .tribe-common-cta--thin-alt{border-bottom:1px solid #334aff;color:#141827;transition:color .2s ease}.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 #334aff;color:#334aff}.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:#334aff}.tribe-common .tribe-common-h1{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:28px;line-height:1.42}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h1{font-size:42px;line-height:1.38}.tribe-common .tribe-common-h2{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:24px;line-height:1.42}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h2{font-size:32px;line-height:1.38}.tribe-common .tribe-common-h3{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:22px;line-height:1.5}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h3{font-size:28px;line-height:1.42}.tribe-common .tribe-common-h4{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:20px;line-height:1.42}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h4{font-size:24px;line-height:1.42}.tribe-common .tribe-common-h5{font-size:18px}.tribe-common .tribe-common-h5,.tribe-common .tribe-common-h6{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;line-height:1.5}.tribe-common .tribe-common-h6{font-size:16px}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h6{font-size:16px;line-height:1.62}.tribe-common .tribe-common-h7{font-size:14px;line-height:1.62}.tribe-common .tribe-common-h7,.tribe-common .tribe-common-h8{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700}.tribe-common .tribe-common-h8{font-size:12px;line-height:1.38}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h3--min-medium{font-size:28px;line-height:1.42}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h4--min-medium{font-size:24px;line-height:1.42}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h5--min-medium{font-size:18px;line-height:1.5}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h6--min-medium{font-size:16px;line-height:1.62}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h7--min-medium{font-size:14px;line-height:1.62}.tribe-common .tribe-common-h--alt{font-weight:400}.tribe-theme-avada #main .tribe-common .tribe-common-h1{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:28px;line-height:1.42}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h1{font-size:42px;line-height:1.38}.tribe-theme-avada #main .tribe-common .tribe-common-h2{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:24px;line-height:1.42}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h2{font-size:32px;line-height:1.38}.tribe-theme-avada #main .tribe-common .tribe-common-h3{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:22px;line-height:1.5}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h3{font-size:28px;line-height:1.42}.tribe-theme-avada #main .tribe-common .tribe-common-h4{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:20px;line-height:1.42}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h4{font-size:24px;line-height:1.42}.tribe-theme-avada #main .tribe-common .tribe-common-h5{font-size:18px}.tribe-theme-avada #main .tribe-common .tribe-common-h5,.tribe-theme-avada #main .tribe-common .tribe-common-h6{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;line-height:1.5}.tribe-theme-avada #main .tribe-common .tribe-common-h6{font-size:16px}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h6{font-size:16px;line-height:1.62}.tribe-theme-avada #main .tribe-common .tribe-common-h7{font-size:14px;line-height:1.62}.tribe-theme-avada #main .tribe-common .tribe-common-h7,.tribe-theme-avada #main .tribe-common .tribe-common-h8{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700}.tribe-theme-avada #main .tribe-common .tribe-common-h8{font-size:12px;line-height:1.38}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h3--min-medium{font-size:28px;line-height:1.42}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h4--min-medium{font-size:24px;line-height:1.42}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h5--min-medium{font-size:18px;line-height:1.5}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h6--min-medium{font-size:16px;line-height:1.62}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h7--min-medium{font-size:14px;line-height:1.62}.tribe-theme-avada #main .tribe-common .tribe-common-h--alt{font-weight:400}.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-common .tribe-common-svgicon--featured{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h16v20l-7.902-5.122L0 20z' fill='%23334aff'/%3E%3C/svg%3E")}.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:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;font-weight:700;border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto;background-color:#fff;border:1px solid #334aff;border-radius:4px;text-align:center;transition:all .2s ease;color:#334aff;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{color:#fff;background-color:#334aff}.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:#141827;color:#141827}.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:#141827}.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:#e4e4e4;color:#141827;font-weight:400}.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{border-color:#141827;background-color:#fff;color:#141827}.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:#334aff}.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:#141827}.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:#fff}.tribe-common .tribe-common-c-btn-border-small,.tribe-common a.tribe-common-c-btn-border-small{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;line-height:1.38;font-weight:400;border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto;background-color:#fff;border:1px solid #d5d5d5;border-radius:4px;text-align:center;transition:color .2s ease,border-color .2s ease}.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:#fff}.tribe-common .tribe-common-c-btn-border-small:active,.tribe-common a.tribe-common-c-btn-border-small:active{border-color:#141827}.tribe-common .tribe-common-c-btn-border-small,.tribe-common a.tribe-common-c-btn-border-small{color:#5d5d5d;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:#141827}.tribe-common .tribe-common-c-btn-border-small:disabled,.tribe-common a.tribe-common-c-btn-border-small:disabled{color:#d5d5d5}.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn-border-small:hover{background-color:#fff}.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--border{align-items:center;background-color:#fff;border:1px solid #d5d5d5;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:#fff}.tribe-common .tribe-common-c-btn-icon--border:active{border-color:#141827}.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn-icon--border:hover{background-color:#fff}.tribe-common .tribe-common-c-btn,.tribe-common a.tribe-common-c-btn{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;font-weight:700;border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto;border-radius:4px;color:#fff;text-align:center;transition:background-color .2s ease;background-color:#334aff;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:rgba(51,74,255,.8)}.tribe-common .tribe-common-c-btn:active,.tribe-common a.tribe-common-c-btn:active{background-color:rgba(51,74,255,.9)}.tribe-common .tribe-common-c-btn:disabled,.tribe-common a.tribe-common-c-btn:disabled{background-color:rgba(51,74,255,.07)}.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn:focus,.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn:hover{background-color:rgba(51,74,255,.8);color:#fff}.tribe-theme-twentytwenty .tribe-common .tribe-common-c-btn{background-color:#334aff}.tribe-theme-twentytwenty .tribe-common .tribe-common-c-btn:focus,.tribe-theme-twentytwenty .tribe-common .tribe-common-c-btn:hover{background-color:rgba(51,74,255,.8);color:#fff}.tribe-common .tribe-common-c-loader__dot{animation-name:a;animation-duration:2.24s;animation-iteration-count:infinite;animation-direction:normal}.tribe-common .tribe-common-c-loader__dot--first{animation-delay:.45s}.tribe-common .tribe-common-c-loader__dot--second{animation-delay:1.05s}.tribe-common .tribe-common-c-loader__dot--third{animation-delay:1.35s}@keyframes a{50%{background-color:#334aff}}
|
1 |
+
.tribe-common figure{line-height:0}.tribe-common figcaption{line-height:normal}.tribe-common a{background-color:transparent;-webkit-text-decoration-skip:objects}.tribe-common abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.tribe-common code,.tribe-common kbd,.tribe-common pre,.tribe-common samp{font-family:monospace;font-size:1em}.tribe-common b,.tribe-common strong{font-weight:inherit;font-weight:bolder}.tribe-common dfn{font-style:italic}.tribe-common mark{background-color:#ff0;color:#000}.tribe-common small{font-size:80%}.tribe-common sub,.tribe-common sup{font-size:75%;line-height:0}.tribe-common hr{border:0;height:0}.tribe-common button,.tribe-common input[type=button],.tribe-common input[type=email],.tribe-common input[type=password],.tribe-common input[type=reset],.tribe-common input[type=search],.tribe-common input[type=submit],.tribe-common input[type=text],.tribe-common input[type=url],.tribe-common textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none}.tribe-common button,.tribe-common input,.tribe-common optgroup,.tribe-common select,.tribe-common textarea{color:inherit;font:inherit;line-height:normal;-webkit-font-smoothing:antialiased}.tribe-common button,.tribe-common input,.tribe-common select,.tribe-common textarea{outline:0;border-radius:0}.tribe-common select:-moz-focusring{color:transparent;text-shadow:0 0 0 #000}.tribe-common optgroup{font-weight:700}.tribe-common 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:#fff;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-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:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400}.tribe-common .tribe-common-form-control-checkbox__label:hover,.tribe-common .tribe-common-form-control-radio__label:hover{opacity:.8}.tribe-common .tribe-common-form-control-checkbox__input,.tribe-common .tribe-common-form-control-radio__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border:1px solid #141827;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:#141827;opacity:.8}.tribe-common .tribe-common-form-control-checkbox__input:checked,.tribe-common .tribe-common-form-control-radio__input:checked{background-color:#141827}.tribe-common .tribe-common-form-control-checkbox__input{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%;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:.8}.tribe-common .tribe-common-form-control-radio__input{border-radius:50%}.tribe-common .tribe-common-form-control-radio__input:checked:before{background-color:#fff;border-radius:50%;content:"";display:block;height:8px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:8px}.tribe-common .tribe-common-form-control-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:.8}.tribe-theme-twentytwenty .tribe-common .tribe-common-form-control-checkbox__input:checked:before{margin:0}#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-weight:400;font-size:14px}.tribe-common .tribe-common-form-control-slider{line-height:0}.tribe-common .tribe-common-form-control-slider__input{-webkit-appearance:none;-moz-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:background-color .2s ease;background-color:#334aff}.tribe-common .tribe-common-form-control-slider__input::-moz-range-track{border:none;border-radius:5px;height:10px;margin:5px 0;padding:0;position:relative;transition:background-color .2s ease;background-color:#334aff}.tribe-common .tribe-common-form-control-slider__input::-ms-track{background-color:transparent;border-color:transparent;border-width:5px 0;color:transparent;height:10px}.tribe-common .tribe-common-form-control-slider__input::-ms-fill-lower,.tribe-common .tribe-common-form-control-slider__input::-ms-fill-upper{background-color:#334aff;border-radius:10px}.tribe-common .tribe-common-form-control-slider__input::-webkit-slider-thumb{background-color:#fff;border:1px solid #7d7d7d;border-radius:50%;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);height:20px;width:20px;margin-top:-5px;-webkit-appearance:none;appearance:none}.tribe-common .tribe-common-form-control-slider__input::-moz-range-thumb{background-color:#fff;border:1px solid #7d7d7d;border-radius:50%;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);height:20px;width:20px;margin-top:-5px}.tribe-common .tribe-common-form-control-slider__input::-ms-thumb{background-color:#fff;border:1px solid #7d7d7d;border-radius:50%;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);height:20px;width:20px;margin-top:-5px;box-shadow:none;margin-top:-1px}.tribe-common .tribe-common-form-control-slider__label{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;line-height:1.38;font-weight:400;color:#5d5d5d}#top .main_color .tribe-common .tribe-common-form-control-slider__label,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-slider__label{font-weight:400;font-size:12px}.tribe-common .tribe-common-form-control-text__input{font-size:16px;border:0;border-bottom:1px solid #d5d5d5}.tribe-common--breakpoint-medium.tribe-common .tribe-common-form-control-text__input,.tribe-common .tribe-common-form-control-text__input{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;line-height:1.62;font-weight:400}.tribe-common--breakpoint-medium.tribe-common .tribe-common-form-control-text__input{font-size:14px;border:0}.tribe-common .tribe-common-form-control-text__input::-webkit-input-placeholder{color:#5d5d5d;font-style:normal;opacity:1}.tribe-common .tribe-common-form-control-text__input::-moz-placeholder{color:#5d5d5d;font-style:normal;opacity:1}.tribe-common .tribe-common-form-control-text__input:-ms-input-placeholder,.tribe-common .tribe-common-form-control-text__input::-ms-input-placeholder{color:#5d5d5d;font-style:normal;opacity:1}.tribe-common .tribe-common-form-control-text__input::placeholder{color:#5d5d5d;font-style:normal;opacity:1}.tribe-common .tribe-common-form-control-text__input:focus{border-bottom-color:#141827;outline:0}.tribe-theme-twentyseventeen .tribe-common .tribe-common-form-control-text__input{color:#141827}.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:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:16px;line-height:1.62;font-weight:400;background:#fff;border:0;border-bottom:1px solid #d5d5d5}#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:#141827;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:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;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:background-color .2s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#7d7d7d;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:#fff;border:1px solid #7d7d7d;border-radius:50%;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);height:20px;width:20px;content:"";left:0;position:absolute;top:0;transition:transform .2s ease}.tribe-common .tribe-common-form-control-toggle__input:checked{background-color:#334aff}.tribe-common .tribe-common-form-control-toggle__input:checked+label:before{transform:translateX(20px)}.tribe-common .tribe-common-form-control-toggle__label{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;line-height:1.38;font-weight:400;color:#5d5d5d}#top .main_color .tribe-common .tribe-common-form-control-toggle__label,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-toggle__label{font-weight:400;font-size:12px}.tribe-theme-twentytwenty .tribe-common .tribe-common-form-control-toggle__input:checked:before{content:none}.tribe-common a,.tribe-common a:active,.tribe-common a:focus,.tribe-common a:hover,.tribe-common a:visited{color:#141827;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:#141827}.tribe-theme-twentynineteen .entry .tribe-common a,.tribe-theme-twentynineteen .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:#141827}.tribe-common .tribe-common-anchor{border-bottom:2px solid transparent;transition:border-color .2s ease}.tribe-common .tribe-common-anchor:active,.tribe-common .tribe-common-anchor:focus,.tribe-common .tribe-common-anchor:hover{border-bottom:2px solid #141827}.tribe-common .tribe-common-anchor-alt{border-bottom:2px solid #334aff;color:#141827;transition:color .2s ease}.tribe-common .tribe-common-anchor-alt:active,.tribe-common .tribe-common-anchor-alt:focus,.tribe-common .tribe-common-anchor-alt:hover{border-bottom:2px solid #334aff;color:#334aff}.tribe-common .tribe-common-anchor-thin{border-bottom:1px solid transparent;transition:border-color .2s ease}.tribe-common .tribe-common-anchor-thin:active,.tribe-common .tribe-common-anchor-thin:focus,.tribe-common .tribe-common-anchor-thin:hover{border-bottom:1px solid #141827}.tribe-common .tribe-common-anchor-thin-alt{border-bottom:1px solid #334aff;color:#141827;transition:color .2s ease}.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 #334aff;color:#334aff}.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:#334aff}.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:border-color .2s ease}.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:color .2s ease}.tribe-common .tribe-common-b1{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.62}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b1{font-size:16px;line-height:1.62}.tribe-common .tribe-common-b1--bold{font-weight:700}.tribe-common .tribe-common-b2{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1.38}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b2{font-size:14px;line-height:1.62}.tribe-common .tribe-common-b2--bold{font-weight:700}.tribe-common .tribe-common-b3{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:11px;font-weight:400;line-height:1.5}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b3{font-size:12px;line-height:1.38}.tribe-common .tribe-common-b3--bold{font-weight:700}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b1--min-medium{font-size:16px;line-height:1.62}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b2--min-medium{font-size:14px;line-height:1.62}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b3--min-medium{font-size:12px;line-height:1.38}.tribe-common .tribe-common-cta{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;line-height:1.38;font-weight:400;font-weight:700;border-bottom:2px solid transparent;transition:border-color .2s ease}.tribe-common .tribe-common-cta:active,.tribe-common .tribe-common-cta:focus,.tribe-common .tribe-common-cta:hover{border-bottom:2px solid #141827}.tribe-common .tribe-common-cta--alt{border-bottom:2px solid #334aff;color:#141827;transition:color .2s ease}.tribe-common .tribe-common-cta--alt:active,.tribe-common .tribe-common-cta--alt:focus,.tribe-common .tribe-common-cta--alt:hover{border-bottom:2px solid #334aff;color:#334aff}.tribe-common .tribe-common-cta--thin{border-bottom:1px solid transparent;transition:border-color .2s ease}.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 #141827}.tribe-common .tribe-common-cta--thin-alt{border-bottom:1px solid #334aff;color:#141827;transition:color .2s ease}.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 #334aff;color:#334aff}.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:#334aff}.tribe-common .tribe-common-h1{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:28px;line-height:1.42}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h1{font-size:42px;line-height:1.38}.tribe-common .tribe-common-h2{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:24px;line-height:1.42}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h2{font-size:32px;line-height:1.38}.tribe-common .tribe-common-h3{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:22px;line-height:1.5}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h3{font-size:28px;line-height:1.42}.tribe-common .tribe-common-h4{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:20px;line-height:1.42}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h4{font-size:24px;line-height:1.42}.tribe-common .tribe-common-h5{font-size:18px}.tribe-common .tribe-common-h5,.tribe-common .tribe-common-h6{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;line-height:1.5}.tribe-common .tribe-common-h6{font-size:16px}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h6{font-size:16px;line-height:1.62}.tribe-common .tribe-common-h7{font-size:14px;line-height:1.62}.tribe-common .tribe-common-h7,.tribe-common .tribe-common-h8{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700}.tribe-common .tribe-common-h8{font-size:12px;line-height:1.38}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h3--min-medium{font-size:28px;line-height:1.42}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h4--min-medium{font-size:24px;line-height:1.42}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h5--min-medium{font-size:18px;line-height:1.5}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h6--min-medium{font-size:16px;line-height:1.62}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h7--min-medium{font-size:14px;line-height:1.62}.tribe-common .tribe-common-h--alt{font-weight:400}.tribe-theme-avada #main .tribe-common .tribe-common-h1{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:28px;line-height:1.42}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h1{font-size:42px;line-height:1.38}.tribe-theme-avada #main .tribe-common .tribe-common-h2{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:24px;line-height:1.42}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h2{font-size:32px;line-height:1.38}.tribe-theme-avada #main .tribe-common .tribe-common-h3{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:22px;line-height:1.5}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h3{font-size:28px;line-height:1.42}.tribe-theme-avada #main .tribe-common .tribe-common-h4{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:20px;line-height:1.42}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h4{font-size:24px;line-height:1.42}.tribe-theme-avada #main .tribe-common .tribe-common-h5{font-size:18px}.tribe-theme-avada #main .tribe-common .tribe-common-h5,.tribe-theme-avada #main .tribe-common .tribe-common-h6{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;line-height:1.5}.tribe-theme-avada #main .tribe-common .tribe-common-h6{font-size:16px}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h6{font-size:16px;line-height:1.62}.tribe-theme-avada #main .tribe-common .tribe-common-h7{font-size:14px;line-height:1.62}.tribe-theme-avada #main .tribe-common .tribe-common-h7,.tribe-theme-avada #main .tribe-common .tribe-common-h8{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700}.tribe-theme-avada #main .tribe-common .tribe-common-h8{font-size:12px;line-height:1.38}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h3--min-medium{font-size:28px;line-height:1.42}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h4--min-medium{font-size:24px;line-height:1.42}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h5--min-medium{font-size:18px;line-height:1.5}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h6--min-medium{font-size:16px;line-height:1.62}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h7--min-medium{font-size:14px;line-height:1.62}.tribe-theme-avada #main .tribe-common .tribe-common-h--alt{font-weight:400}.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-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:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;font-weight:700;border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto;background-color:#fff;border:1px solid #334aff;border-radius:4px;text-align:center;transition:all .2s ease;color:#334aff;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{color:#fff;background-color:#334aff}.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:#141827;color:#141827}.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:#141827}.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:#e4e4e4;color:#141827;font-weight:400}.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{border-color:#141827;background-color:#fff;color:#141827}.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:#334aff}.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:#141827}.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:#fff}.tribe-common .tribe-common-c-btn-border-small,.tribe-common a.tribe-common-c-btn-border-small{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;line-height:1.38;font-weight:400;border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto;background-color:#fff;border:1px solid #d5d5d5;border-radius:4px;text-align:center;transition:color .2s ease,border-color .2s ease}.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:#fff}.tribe-common .tribe-common-c-btn-border-small:active,.tribe-common a.tribe-common-c-btn-border-small:active{border-color:#141827}.tribe-common .tribe-common-c-btn-border-small,.tribe-common a.tribe-common-c-btn-border-small{color:#5d5d5d;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:#141827}.tribe-common .tribe-common-c-btn-border-small:disabled,.tribe-common a.tribe-common-c-btn-border-small:disabled{color:#d5d5d5}.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn-border-small:hover{background-color:#fff}.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:#5d5d5d}.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:#d5d5d5}.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:#bababa}.tribe-common .tribe-common-c-btn-icon--border{align-items:center;background-color:#fff;border:1px solid #d5d5d5;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:#fff}.tribe-common .tribe-common-c-btn-icon--border:active{border-color:#141827}.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn-icon--border:hover{background-color:#fff}.tribe-common .tribe-common-c-btn,.tribe-common a.tribe-common-c-btn{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;font-weight:700;border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto;border-radius:4px;color:#fff;text-align:center;transition:background-color .2s ease;background-color:#334aff;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:rgba(51,74,255,.8)}.tribe-common .tribe-common-c-btn:active,.tribe-common a.tribe-common-c-btn:active{background-color:rgba(51,74,255,.9)}.tribe-common .tribe-common-c-btn:disabled,.tribe-common a.tribe-common-c-btn:disabled{background-color:rgba(51,74,255,.07)}.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn:focus,.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn:hover{background-color:rgba(51,74,255,.8);color:#fff}.tribe-theme-twentytwenty .tribe-common .tribe-common-c-btn{background-color:#334aff}.tribe-theme-twentytwenty .tribe-common .tribe-common-c-btn:focus,.tribe-theme-twentytwenty .tribe-common .tribe-common-c-btn:hover{background-color:rgba(51,74,255,.8);color:#fff}.tribe-common .tribe-common-c-loader__dot circle{animation-name:a;animation-duration:2.24s;animation-iteration-count:infinite;animation-direction:normal;fill:currentColor;opacity:.07}.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:1}}.tribe-common .tribe-common-c-svgicon{color:#334aff}.tribe-common .tribe-common-c-svgicon--featured path{fill:currentColor}.tribe-common .tribe-common-c-svgicon--recurring path{fill:#141827;stroke:#141827}.tribe-common .tribe-common-c-svgicon--close-alt path,.tribe-common .tribe-common-c-svgicon--close path{stroke:#bababa}.tribe-common .tribe-common-c-svgicon--messages-not-found path{stroke:#141827}.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:#141827}.tribe-common .tribe-common-c-svgicon__svg-stroke{stroke:#141827}
|
common/src/resources/css/common-skeleton.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.tribe-common{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-smoothing:antialiased}.tribe-common *{box-sizing:border-box}.tribe-common article,.tribe-common aside,.tribe-common details,.tribe-common figcaption,.tribe-common figure,.tribe-common footer,.tribe-common header,.tribe-common main,.tribe-common menu,.tribe-common nav,.tribe-common section,.tribe-common summary{display:block}.tribe-common svg:not(:root){overflow:hidden}.tribe-common audio,.tribe-common canvas,.tribe-common progress,.tribe-common video{display:inline-block}.tribe-common audio:not([controls]){display:none;height:0}.tribe-common progress{vertical-align:baseline}.tribe-common [hidden],.tribe-common template{display:none}.tribe-common pre{overflow:auto}.tribe-common sub,.tribe-common sup{position:relative;vertical-align:baseline}.tribe-common sup{top:-.5em}.tribe-common sub{bottom:-.25em}.tribe-common button,.tribe-common input,.tribe-common select,.tribe-common textarea{box-sizing:border-box;margin:0}.tribe-common input[type=number]::-webkit-inner-spin-button,.tribe-common input[type=number]::-webkit-outer-spin-button{height:auto}.tribe-common legend{color:inherit;display:table;max-width:100%;white-space:normal}.tribe-common textarea{resize:none;overflow:auto}.tribe-common button,.tribe-common input[type=button],.tribe-common input[type=reset],.tribe-common input[type=submit]{cursor:pointer;overflow:visible}.tribe-common button[disabled],.tribe-common input[disabled]{cursor:default}.tribe-common button::-moz-focus-inner,.tribe-common input::-moz-focus-inner{border:0;padding:0}.tribe-common a,.tribe-common abbr,.tribe-common acronym,.tribe-common address,.tribe-common applet,.tribe-common article,.tribe-common aside,.tribe-common audio,.tribe-common b,.tribe-common big,.tribe-common blockquote,.tribe-common canvas,.tribe-common caption,.tribe-common center,.tribe-common cite,.tribe-common code,.tribe-common dd,.tribe-common del,.tribe-common details,.tribe-common dfn,.tribe-common div,.tribe-common dl,.tribe-common dt,.tribe-common em,.tribe-common embed,.tribe-common fieldset,.tribe-common figcaption,.tribe-common figure,.tribe-common footer,.tribe-common form,.tribe-common h1,.tribe-common h2,.tribe-common h3,.tribe-common h4,.tribe-common h5,.tribe-common h6,.tribe-common header,.tribe-common i,.tribe-common iframe,.tribe-common img,.tribe-common ins,.tribe-common kbd,.tribe-common label,.tribe-common legend,.tribe-common li,.tribe-common main,.tribe-common mark,.tribe-common menu,.tribe-common nav,.tribe-common object,.tribe-common ol,.tribe-common output,.tribe-common p,.tribe-common pre,.tribe-common q,.tribe-common ruby,.tribe-common s,.tribe-common samp,.tribe-common section,.tribe-common small,.tribe-common span,.tribe-common strike,.tribe-common strong,.tribe-common sub,.tribe-common summary,.tribe-common sup,.tribe-common table,.tribe-common tbody,.tribe-common td,.tribe-common tfoot,.tribe-common th,.tribe-common thead,.tribe-common time,.tribe-common tr,.tribe-common tt,.tribe-common u,.tribe-common ul,.tribe-common var,.tribe-common video{margin:0;padding:0;border:0}.tribe-common ol,.tribe-common ul{list-style:none}.tribe-common img{-ms-interpolation-mode:bicubic;height:auto;max-width:100%;border-style:none}.tribe-common embed,.tribe-common iframe,.tribe-common video{max-width:100%;max-height:100%}.tribe-theme-avada input[type=text]{margin:0}.tribe-theme-divi .entry-content .tribe-common table,.tribe-theme-divibody.et-pb-preview #main-content .container .tribe-common table{border:0;margin:0}.tribe-theme-divi .entry-content .tribe-common td,.tribe-theme-divibody.et-pb-preview #main-content .container .tribe-common td{border:0}.tribe-theme-divi #content-area .tribe-common td,.tribe-theme-divi #content-area .tribe-common th,.tribe-theme-divi #content-area .tribe-common tr,.tribe-theme-divi #left-area .tribe-common ul{padding:0}#top .main_color .tribe-common button[disabled],#top.tribe-theme-enfold .tribe-common button[disabled]{cursor:default}#top .main_color .tribe-common form,#top .main_color .tribe-common input,#top.tribe-theme-enfold .tribe-common form,#top.tribe-theme-enfold .tribe-common input{margin:0}.entry-content-wrapper .tribe-common li,.entry-content .tribe-common ol,.entry-content .tribe-common ul,.tribe-theme-genesis .tribe-common ol,.tribe-theme-genesis .tribe-common ul{margin:0;padding:0}.tribe-theme-twentyseventeen .tribe-common div.tribe-dialog{z-index:5!important}.tribe-common .tribe-common-form-control-checkbox,.tribe-common .tribe-common-form-control-radio{display:flex;align-items:flex-start}.tribe-common .tribe-common-form-control-checkbox__label,.tribe-common .tribe-common-form-control-radio__label{cursor:pointer;margin-left:15px}.tribe-common .tribe-common-form-control-checkbox__input,.tribe-common .tribe-common-form-control-radio__input{cursor:pointer;flex:none;margin:1px 0 0}#top .main_color .tribe-common .tribe-common-form-control-checkbox__input,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-checkbox__input{margin:1px 0 0}.tribe-common .tribe-common-form-control-checkbox-radio-group>*{margin-bottom:15px}.tribe-common .tribe-common-form-control-checkbox-radio-group>:last-child{margin-bottom:0}.tribe-common .tribe-common-form-control-slider__input{cursor:pointer;display:inline-block;margin:0;padding:0;width:120px;vertical-align:middle}.tribe-common .tribe-common-form-control-slider__label{cursor:pointer;display:inline-block;margin-left:11px;vertical-align:middle}.tribe-common .tribe-common-form-control-slider--vertical .tribe-common-form-control-slider__label{display:block;margin:0 0 6px}.tribe-common .tribe-common-form-control-text__label{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tribe-common .tribe-common-form-control-text__input{height:auto;padding:12px 28px 12px 0;width:100%}.tribe-common--breakpoint-medium.tribe-common .tribe-common-form-control-text__input{padding:20px 20px 20px 40px}#top .main_color .tribe-common .tribe-common-form-control-text__input,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-text__input{padding:12px 28px 12px 0;width:100%}#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{padding:20px 20px 20px 40px}.tribe-common .tribe-common-form-control-toggle__input,.tribe-common .tribe-common-form-control-toggle__label{cursor:pointer;display:inline-block;vertical-align:middle}.tribe-common .tribe-common-form-control-toggle__label{margin-left:11px}.tribe-common .tribe-common-form-control-toggle--vertical .tribe-common-form-control-toggle__label{display:block;margin:0 0 6px}#top .main_color .tribe-common .tribe-common-form-control-toggle__input,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-toggle__input{display:inline-block;margin:5px 0}.tribe-common .tribe-common-g-col{min-width:0;width:100%}.tribe-common .tribe-common-g-row{display:flex;flex-wrap:wrap}.tribe-common .tribe-common-g-row--gutters{margin-left:-21px;margin-right:-21px}.tribe-common--breakpoint-medium.tribe-common .tribe-common-g-row--gutters{margin-left:-24px;margin-right:-24px}.tribe-common .tribe-common-g-row--gutters>.tribe-common-g-col{padding-left:21px;padding-right:21px}.tribe-common--breakpoint-medium.tribe-common .tribe-common-g-row--gutters>.tribe-common-g-col{padding-left:24px;padding-right:24px}.tribe-theme-twentynineteen .tribe-common .entry.tribe-common-g-row--gutters{margin-left:-21px;margin-right:-21px;padding:0}.tribe-theme-twentynineteen .tribe-common.tribe-common--breakpoint-medium .entry.tribe-common-g-row--gutters{margin-left:-24px;margin-right:-24px}.tribe-theme-twentynineteen .tribe-common .tribe-common-g-row--gutters>.entry.tribe-common-g-col{margin:0;padding-left:21px;padding-right:21px}.tribe-theme-twentynineteen .tribe-common.tribe-common--breakpoint-medium .tribe-common-g-row--gutters>.entry.tribe-common-g-col{padding-left:24px;padding-right:24px}.tribe-common a{cursor:pointer}.tribe-theme-divi #left-area .tribe-common ul,.tribe-theme-divi .entry-content .tribe-common ul,body.et-pb-preview.tribe-theme-divi #main-content .container .tribe-common ul{list-style-type:none;padding:0}.entry-content .tribe-common ol>li,.entry-content .tribe-common ul>li{list-style-type:none}.tribe-common button{padding:0}.tribe-common .tribe-common-l-container{max-width:1260px;margin-left:auto;margin-right:auto;padding-left:19.5px;padding-right:19.5px;width:100%}.tribe-common--breakpoint-medium.tribe-common .tribe-common-l-container{padding-left:42px;padding-right:42px}.tribe-common .tribe-common-svgicon{background-repeat:no-repeat;background-size:contain}.tribe-common .tribe-common-svgicon--close-secondary{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")}.tribe-common .tribe-common-svgicon--day{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='21' height='21' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 .503v19.994c0 .278.19.503.424.503h20.152c.234 0 .424-.225.424-.503V.503C21 .225 20.81 0 20.576 0H.424C.19 0 0 .225 0 .503zm1.156.943h18.66v2.7H1.157v-2.7zm0 4.023h18.66V19.55H1.157V5.469zM14.18 14.53v1.747c0 .482.39.874.873.874H16.8a.873.873 0 0 0 .873-.874V14.53a.873.873 0 0 0-.873-.873h-1.747a.873.873 0 0 0-.873.873z' fill='%23141827'/%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--list{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cg fill='%23141827' fill-rule='evenodd'%3E%3Cpath fill-rule='nonzero' d='M0 .504v20.03c0 .278.19.503.425.503h20.188c.235 0 .425-.225.425-.504V.503c0-.277-.19-.503-.425-.503H.425C.19 0 0 .226 0 .504zm1.158.944h18.695v2.705H1.158V1.448zm0 2.705h18.695v15.432H1.158V4.153z'/%3E%3Cpath d='M13.39 5.731v2.13a1.07 1.07 0 0 0 1.076 1.064h2.154a1.07 1.07 0 0 0 1.077-1.065V5.731a1.07 1.07 0 0 0-1.077-1.064h-2.154A1.07 1.07 0 0 0 13.39 5.73z'/%3E%3Cpath fill-rule='nonzero' d='M8.84 8.937c.286 0 .52-.236.52-.523v-.425a.523.523 0 0 0-.52-.522H4.02a.523.523 0 0 0-.52.522v.425c0 .287.234.523.52.523h4.82zm2.064-2.8c.287 0 .521-.236.521-.523v-.425a.523.523 0 0 0-.52-.522H4.02a.523.523 0 0 0-.521.522v.425c0 .287.234.523.52.523h6.884z'/%3E%3Cpath d='M13.39 12.731v2.13a1.07 1.07 0 0 0 1.076 1.064h2.154a1.07 1.07 0 0 0 1.077-1.065v-2.129a1.07 1.07 0 0 0-1.077-1.064h-2.154a1.07 1.07 0 0 0-1.077 1.064z'/%3E%3Cpath fill-rule='nonzero' d='M8.84 15.937c.286 0 .52-.236.52-.523v-.425a.523.523 0 0 0-.52-.522H4.02a.523.523 0 0 0-.52.522v.425c0 .287.234.523.52.523h4.82zm2.064-2.8c.287 0 .521-.236.521-.523v-.425a.523.523 0 0 0-.52-.522H4.02a.523.523 0 0 0-.521.522v.425c0 .287.234.523.52.523h6.884z'/%3E%3C/g%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--map{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cg fill='%23141827' fill-rule='nonzero'%3E%3Cg stroke-width='.7'%3E%3Cpath stroke='%23141827' d='M10.67 17.21c.182-.225 4.46-5.527 4.46-8.18 0-2.728-2.085-4.947-4.648-4.947-2.563 0-4.649 2.22-4.649 4.946 0 2.654 4.279 7.956 4.46 8.18a.243.243 0 0 0 .189.092c.072 0 .14-.034.188-.092zM6.33 9.03c0-2.436 1.863-4.418 4.152-4.418 2.29 0 4.152 1.982 4.152 4.417 0 2.16-3.318 6.533-4.152 7.597C9.648 15.562 6.33 11.19 6.33 9.03z'/%3E%3Cpath stroke='%23000' d='M12.055 9.04c0-.911-.706-1.652-1.573-1.652-.868 0-1.574.74-1.574 1.652 0 .91.706 1.652 1.574 1.652.867 0 1.573-.741 1.573-1.652zm-2.85 0c0-.74.573-1.34 1.277-1.34s1.277.6 1.277 1.34c0 .74-.573 1.34-1.277 1.34s-1.277-.6-1.277-1.34z'/%3E%3C/g%3E%3Cpath d='M0 .504v20.03c0 .278.19.503.425.503h20.188c.235 0 .425-.225.425-.504V.503c0-.277-.19-.503-.425-.503H.425C.19 0 0 .226 0 .504zm1.158.944h18.695v2.705H1.158V1.448zm0 2.705h18.695v15.432H1.158V4.153z'/%3E%3C/g%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--month{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='22' height='22' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.637 1.063v19.879c0 .276.189.5.422.5h20.037c.232 0 .421-.224.421-.5V1.062c0-.275-.189-.5-.421-.5H1.059c-.233 0-.422.225-.422.5zM1.787 2H20.34v2.685H1.787V2zm0 4H20.34v14H1.787V6zM8 8.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm4 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm4 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm-8 4v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm4 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm4 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm-12 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm0 4v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm4 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm4 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5z' fill='%23141827'/%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--no-map{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='92' height='92' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none'%3E%3Cg stroke='%23141827' stroke-width='2.5' transform='translate(2 2)'%3E%3Cpath d='M32.219 88S0 58.674 0 32.281C-.011 15.598 12.685 1.66 29.278.136c16.593-1.523 31.608 9.873 34.627 26.28M32.733 88s2.96-2.693 7.083-7.181' stroke-linecap='round'/%3E%3Ccircle cx='33' cy='33' r='8.905'/%3E%3Ccircle cx='65.127' cy='59.016' r='23.571'/%3E%3C/g%3E%3Cg transform='translate(64.857 47.048)'%3E%3Ccircle fill='%23111' cx='2.839' cy='26.495' r='2.839'/%3E%3Cpath d='M2.642 0v18.925' stroke='%23141827' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--photo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21 21'%3E%3Cg fill='%23141827'%3E%3Cpath d='M20.407 0H.577A.565.565 0 0 0 0 .564v19.872c0 .316.254.564.578.564h19.83a.565.565 0 0 0 .577-.564V.564A.565.565 0 0 0 20.407 0zm-.6 1.15v14.868l-2.226-3.427c-.646-.677-1.848-.677-2.495 0l-1.548 1.646-4.482-5.029a1.806 1.806 0 0 0-1.363-.586c-.508 0-1.016.225-1.34.609l-5.175 5.75V1.15h18.628zM1.177 19.85v-3.133l6.053-6.765a.588.588 0 0 1 .462-.203c.162 0 .37.068.485.203l4.921 5.525c.116.113.278.203.44.203.184.022.323-.068.438-.18l1.987-2.12c.185-.203.555-.203.763 0l3.103 4.352v2.14H1.178v-.022z'/%3E%3Cpath d='M14.955 9.041c1.16 0 2.122-.97 2.122-2.187 0-1.218-.94-2.187-2.122-2.187-1.181 0-2.122.97-2.122 2.187 0 1.218.963 2.187 2.122 2.187zm0-3.224c.547 0 1.006.473 1.006 1.037s-.459 1.037-1.006 1.037c-.547 0-1.006-.473-1.006-1.037s.46-1.037 1.006-1.037z'/%3E%3C/g%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--week{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='21' height='21' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 .503v19.994c0 .278.19.503.424.503h20.152c.234 0 .424-.225.424-.503V.503C21 .225 20.81 0 20.576 0H.424C.19 0 0 .225 0 .503zm1.156.943h18.66v2.7H1.157v-2.7zm0 4.023h18.66V19.55H1.157V5.469zm6.25 6.537v1.006c0 .278.224.503.502.503h1.006a.503.503 0 0 0 .503-.503v-1.006a.503.503 0 0 0-.503-.502H7.908a.503.503 0 0 0-.503.502zm4.022 0v1.006c0 .278.225.503.503.503h1.006a.503.503 0 0 0 .503-.503v-1.006a.503.503 0 0 0-.503-.502H11.93a.503.503 0 0 0-.503.502zm4.023 0v1.006c0 .278.225.503.503.503h1.006a.503.503 0 0 0 .503-.503v-1.006a.503.503 0 0 0-.503-.502h-1.006a.503.503 0 0 0-.503.502zm-12.069 0v1.006c0 .278.225.503.503.503h1.006a.503.503 0 0 0 .503-.503v-1.006a.503.503 0 0 0-.503-.502H3.885a.503.503 0 0 0-.503.502z' fill='%23141827'/%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--featured{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h16v20l-7.902-5.122L0 20z' fill='%23141827'/%3E%3C/svg%3E");height:10px;width:8px}.tribe-common .tribe-common-svgicon--recurring{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.333 3.826c0 .065 0 .13-.02.174 0 .022-.02.065-.02.087a.9.9 0 0 1-.197.37L10.45 7.37a.797.797 0 0 1-.592.26.797.797 0 0 1-.593-.26c-.316-.348-.316-.935 0-1.305l1.225-1.348H6.3c-2.547 0-4.64 2.283-4.64 5.11 0 1.369.474 2.651 1.363 3.608.316.348.316.935 0 1.304A.797.797 0 0 1 2.43 15a.797.797 0 0 1-.593-.26C.652 13.434 0 11.695 0 9.847c0-3.826 2.825-6.935 6.301-6.935h4.208L9.284 1.565c-.316-.348-.316-.935 0-1.304.316-.348.85-.348 1.185 0l2.647 2.913a.952.952 0 0 1 .198.37c0 .021.02.065.02.086v.196zM20 10.152c0 3.826-2.825 6.935-6.301 6.935H9.49l1.225 1.348c.336.348.336.935 0 1.304a.797.797 0 0 1-.593.261.83.83 0 0 1-.592-.26l-2.627-2.936a.948.948 0 0 1-.198-.37c0-.021-.02-.064-.02-.086-.02-.065-.02-.109-.02-.174 0-.065 0-.13.02-.174 0-.022.02-.065.02-.087a.9.9 0 0 1 .198-.37L9.55 12.63c.316-.347.849-.347 1.185 0 .336.348.336.935 0 1.305L9.51 15.283h4.208c2.548 0 4.641-2.283 4.641-5.11 0-1.369-.474-2.651-1.362-3.608a.97.97 0 0 1 0-1.304c.316-.348.849-.348 1.185 0C19.348 6.543 20 8.283 20 10.152z' fill='%23141827'/%3E%3C/svg%3E");height:10px;width:10px}.tribe-common .tribe-common-svgicon--search{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 18.711l-6.044-6.044a7.782 7.782 0 0 0 1.688-4.845c0-2.089-.822-4.044-2.288-5.533C11.866.822 9.91 0 7.822 0S3.778.822 2.29 2.289A7.801 7.801 0 0 0 0 7.822c0 2.09.822 4.045 2.289 5.534a7.801 7.801 0 0 0 5.533 2.288c1.778 0 3.467-.6 4.845-1.688L18.71 20 20 18.711zM3.578 12.067c-2.334-2.334-2.334-6.156 0-8.49a5.968 5.968 0 0 1 4.244-1.755c1.6 0 3.111.622 4.245 1.756 2.333 2.333 2.333 6.155 0 8.489a5.968 5.968 0 0 1-4.245 1.755c-1.6 0-3.11-.622-4.244-1.755z' fill='%235d5d5d'/%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--filters{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17'%3E%3Cg fill='none' fill-rule='evenodd' stroke='%235d5d5d' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' transform='translate(1 1)'%3E%3Cpath d='M3 3V0m0 15v-2'/%3E%3Ccircle cx='3' cy='9' r='3'/%3E%3Cpath d='M12 9v6'/%3E%3Ccircle cx='12' cy='3' r='3' transform='matrix(1 0 0 -1 0 6)'/%3E%3C/g%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--close{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")}.tribe-common .tribe-common-a11y-hidden{display:none!important;visibility:hidden}.tribe-common .tribe-common-a11y-visual-hide,.tribe-common .tribe-common-a11y-visual-show{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tribe-common .tribe-common-c-btn-border,.tribe-common a.tribe-common-c-btn-border{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-small,.tribe-common a.tribe-common-c-btn-border-small{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-icon:before{background-repeat:no-repeat;background-size:contain;content:"";display:block}.tribe-common .tribe-common-c-btn-icon--caret-left:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.916 17.841L10 19.757l-9.9-9.9L10-.041l1.916 1.916-7.983 7.984z' fill='%23bababa'/%3E%3C/svg%3E");height:20px;width:12px}.tribe-common .tribe-common-c-btn-icon--caret-left:active:before,.tribe-common .tribe-common-c-btn-icon--caret-left:focus:before,.tribe-common .tribe-common-c-btn-icon--caret-left:hover:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.916 17.841L10 19.757l-9.9-9.9L10-.041l1.916 1.916-7.983 7.984z' fill='%235d5d5d'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--caret-left:disabled:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.916 17.841L10 19.757l-9.9-9.9L10-.041l1.916 1.916-7.983 7.984z' fill='%23d5d5d5'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--caret-right:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.084 2.159L2 .243l9.9 9.9L2 20.041.084 18.126l7.983-7.984z' fill='%23bababa'/%3E%3C/svg%3E");height:20px;width:12px}.tribe-common .tribe-common-c-btn-icon--caret-right:active:before,.tribe-common .tribe-common-c-btn-icon--caret-right:focus:before,.tribe-common .tribe-common-c-btn-icon--caret-right:hover:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.084 2.159L2 .243l9.9 9.9L2 20.041.084 18.126l7.983-7.984z' fill='%235d5d5d'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--caret-right:disabled:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.084 2.159L2 .243l9.9 9.9L2 20.041.084 18.126l7.983-7.984z' fill='%23d5d5d5'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--filters:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17'%3E%3Cg fill='none' fill-rule='evenodd' stroke='%235d5d5d' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' transform='translate(1 1)'%3E%3Cpath d='M3 3V0m0 15v-2'/%3E%3Ccircle cx='3' cy='9' r='3'/%3E%3Cpath d='M12 9v6'/%3E%3Ccircle cx='12' cy='3' r='3' transform='matrix(1 0 0 -1 0 6)'/%3E%3C/g%3E%3C/svg%3E");height:20px;width:24px}.tribe-common .tribe-common-c-btn-icon--filters:active:before,.tribe-common .tribe-common-c-btn-icon--filters:focus:before,.tribe-common .tribe-common-c-btn-icon--filters:hover:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17'%3E%3Cg fill='none' fill-rule='evenodd' stroke='%23141827' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' transform='translate(1 1)'%3E%3Cpath d='M3 3V0m0 15v-2'/%3E%3Ccircle cx='3' cy='9' r='3'/%3E%3Cpath d='M12 9v6'/%3E%3Ccircle cx='12' cy='3' r='3' transform='matrix(1 0 0 -1 0 6)'/%3E%3C/g%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--filters:disabled:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17'%3E%3Cg fill='none' fill-rule='evenodd' stroke='%23d5d5d5' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' transform='translate(1 1)'%3E%3Cpath d='M3 3V0m0 15v-2'/%3E%3Ccircle cx='3' cy='9' r='3'/%3E%3Cpath d='M12 9v6'/%3E%3Ccircle cx='12' cy='3' r='3' transform='matrix(1 0 0 -1 0 6)'/%3E%3C/g%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--search:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 18.711l-6.044-6.044a7.782 7.782 0 0 0 1.688-4.845c0-2.089-.822-4.044-2.288-5.533C11.866.822 9.91 0 7.822 0S3.778.822 2.29 2.289A7.801 7.801 0 0 0 0 7.822c0 2.09.822 4.045 2.289 5.534a7.801 7.801 0 0 0 5.533 2.288c1.778 0 3.467-.6 4.845-1.688L18.71 20 20 18.711zM3.578 12.067c-2.334-2.334-2.334-6.156 0-8.49a5.968 5.968 0 0 1 4.244-1.755c1.6 0 3.111.622 4.245 1.756 2.333 2.333 2.333 6.155 0 8.489a5.968 5.968 0 0 1-4.245 1.755c-1.6 0-3.11-.622-4.244-1.755z' fill='%235d5d5d'/%3E%3C/svg%3E");height:20px;width:20px}.tribe-common .tribe-common-c-btn-icon--search:active:before,.tribe-common .tribe-common-c-btn-icon--search:focus:before,.tribe-common .tribe-common-c-btn-icon--search:hover:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 18.711l-6.044-6.044a7.782 7.782 0 0 0 1.688-4.845c0-2.089-.822-4.044-2.288-5.533C11.866.822 9.91 0 7.822 0S3.778.822 2.29 2.289A7.801 7.801 0 0 0 0 7.822c0 2.09.822 4.045 2.289 5.534a7.801 7.801 0 0 0 5.533 2.288c1.778 0 3.467-.6 4.845-1.688L18.71 20 20 18.711zM3.578 12.067c-2.334-2.334-2.334-6.156 0-8.49a5.968 5.968 0 0 1 4.244-1.755c1.6 0 3.111.622 4.245 1.756 2.333 2.333 2.333 6.155 0 8.489a5.968 5.968 0 0 1-4.245 1.755c-1.6 0-3.11-.622-4.244-1.755z' fill='%23141827'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--search:disabled:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 18.711l-6.044-6.044a7.782 7.782 0 0 0 1.688-4.845c0-2.089-.822-4.044-2.288-5.533C11.866.822 9.91 0 7.822 0S3.778.822 2.29 2.289A7.801 7.801 0 0 0 0 7.822c0 2.09.822 4.045 2.289 5.534a7.801 7.801 0 0 0 5.533 2.288c1.778 0 3.467-.6 4.845-1.688L18.71 20 20 18.711zM3.578 12.067c-2.334-2.334-2.334-6.156 0-8.49a5.968 5.968 0 0 1 4.244-1.755c1.6 0 3.111.622 4.245 1.756 2.333 2.333 2.333 6.155 0 8.489a5.968 5.968 0 0 1-4.245 1.755c-1.6 0-3.11-.622-4.244-1.755z' fill='%23d5d5d5'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn,.tribe-common a.tribe-common-c-btn{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-image{display:block;height:auto;margin-left:auto;margin-right:auto;width:100%}.tribe-common .tribe-common-c-image--bg{position:relative}.tribe-common .tribe-common-c-image__bg{background:50% no-repeat;background-size:cover;bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.tribe-common .tribe-common-c-loader{display:flex;padding-top:192px}.tribe-common--breakpoint-medium.tribe-common .tribe-common-c-loader{padding-top:288px}.tribe-common .tribe-common-c-loader__dot{background-color:rgba(51,74,255,.07);height:15px;width:15px;border-radius:50%}.tribe-common .tribe-common-c-loader__dot:not(:first-of-type){margin-left:8px}
|
1 |
+
.tribe-common{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-smoothing:antialiased}.tribe-common *{box-sizing:border-box}.tribe-common article,.tribe-common aside,.tribe-common details,.tribe-common figcaption,.tribe-common figure,.tribe-common footer,.tribe-common header,.tribe-common main,.tribe-common menu,.tribe-common nav,.tribe-common section,.tribe-common summary{display:block}.tribe-common svg:not(:root){overflow:hidden}.tribe-common audio,.tribe-common canvas,.tribe-common progress,.tribe-common video{display:inline-block}.tribe-common audio:not([controls]){display:none;height:0}.tribe-common progress{vertical-align:baseline}.tribe-common [hidden],.tribe-common template{display:none}.tribe-common pre{overflow:auto}.tribe-common sub,.tribe-common sup{position:relative;vertical-align:baseline}.tribe-common sup{top:-.5em}.tribe-common sub{bottom:-.25em}.tribe-common button,.tribe-common input,.tribe-common select,.tribe-common textarea{box-sizing:border-box;margin:0}.tribe-common input[type=number]::-webkit-inner-spin-button,.tribe-common input[type=number]::-webkit-outer-spin-button{height:auto}.tribe-common legend{color:inherit;display:table;max-width:100%;white-space:normal}.tribe-common textarea{resize:none;overflow:auto}.tribe-common button,.tribe-common input[type=button],.tribe-common input[type=reset],.tribe-common input[type=submit]{cursor:pointer;overflow:visible}.tribe-common button[disabled],.tribe-common input[disabled]{cursor:default}.tribe-common button::-moz-focus-inner,.tribe-common input::-moz-focus-inner{border:0;padding:0}.tribe-common a,.tribe-common abbr,.tribe-common acronym,.tribe-common address,.tribe-common applet,.tribe-common article,.tribe-common aside,.tribe-common audio,.tribe-common b,.tribe-common big,.tribe-common blockquote,.tribe-common canvas,.tribe-common caption,.tribe-common center,.tribe-common cite,.tribe-common code,.tribe-common dd,.tribe-common del,.tribe-common details,.tribe-common dfn,.tribe-common div,.tribe-common dl,.tribe-common dt,.tribe-common em,.tribe-common embed,.tribe-common fieldset,.tribe-common figcaption,.tribe-common figure,.tribe-common footer,.tribe-common form,.tribe-common h1,.tribe-common h2,.tribe-common h3,.tribe-common h4,.tribe-common h5,.tribe-common h6,.tribe-common header,.tribe-common i,.tribe-common iframe,.tribe-common img,.tribe-common ins,.tribe-common kbd,.tribe-common label,.tribe-common legend,.tribe-common li,.tribe-common main,.tribe-common mark,.tribe-common menu,.tribe-common nav,.tribe-common object,.tribe-common ol,.tribe-common output,.tribe-common p,.tribe-common pre,.tribe-common q,.tribe-common ruby,.tribe-common s,.tribe-common samp,.tribe-common section,.tribe-common small,.tribe-common span,.tribe-common strike,.tribe-common strong,.tribe-common sub,.tribe-common summary,.tribe-common sup,.tribe-common table,.tribe-common tbody,.tribe-common td,.tribe-common tfoot,.tribe-common th,.tribe-common thead,.tribe-common time,.tribe-common tr,.tribe-common tt,.tribe-common u,.tribe-common ul,.tribe-common var,.tribe-common video{margin:0;padding:0;border:0}.tribe-common ol,.tribe-common ul{list-style:none}.tribe-common img{-ms-interpolation-mode:bicubic;height:auto;max-width:100%;border-style:none}.tribe-common embed,.tribe-common iframe,.tribe-common video{max-width:100%;max-height:100%}.tribe-theme-avada input[type=text]{margin:0}.tribe-theme-divi .entry-content .tribe-common table,.tribe-theme-divibody.et-pb-preview #main-content .container .tribe-common table{border:0;margin:0}.tribe-theme-divi .entry-content .tribe-common td,.tribe-theme-divibody.et-pb-preview #main-content .container .tribe-common td{border:0}.tribe-theme-divi #content-area .tribe-common td,.tribe-theme-divi #content-area .tribe-common th,.tribe-theme-divi #content-area .tribe-common tr,.tribe-theme-divi #left-area .tribe-common ul{padding:0}#top .main_color .tribe-common button[disabled],#top.tribe-theme-enfold .tribe-common button[disabled]{cursor:default}#top .main_color .tribe-common form,#top .main_color .tribe-common input,#top.tribe-theme-enfold .tribe-common form,#top.tribe-theme-enfold .tribe-common input{margin:0}.entry-content-wrapper .tribe-common li,.entry-content .tribe-common ol,.entry-content .tribe-common ul,.tribe-theme-genesis .tribe-common ol,.tribe-theme-genesis .tribe-common ul{margin:0;padding:0}.tribe-theme-twentynineteen .tribe-common svg{fill:none}.tribe-theme-twentyseventeen .tribe-common div.tribe-dialog{z-index:5!important}.tribe-common .tribe-common-form-control-checkbox,.tribe-common .tribe-common-form-control-radio{display:flex;align-items:flex-start}.tribe-common .tribe-common-form-control-checkbox__label,.tribe-common .tribe-common-form-control-radio__label{cursor:pointer;margin-left:15px}.tribe-common .tribe-common-form-control-checkbox__input,.tribe-common .tribe-common-form-control-radio__input{cursor:pointer;flex:none;margin:1px 0 0}#top .main_color .tribe-common .tribe-common-form-control-checkbox__input,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-checkbox__input{margin:1px 0 0}.tribe-theme-twentytwenty .tribe-common .tribe-common-form-control-checkbox__input{top:0}.tribe-common .tribe-common-form-control-checkbox-radio-group>*{margin-bottom:15px}.tribe-common .tribe-common-form-control-checkbox-radio-group>:last-child{margin-bottom:0}.tribe-common .tribe-common-form-control-slider__input{cursor:pointer;display:inline-block;margin:0;padding:0;width:120px;vertical-align:middle}.tribe-common .tribe-common-form-control-slider__label{cursor:pointer;display:inline-block;margin-left:11px;vertical-align:middle}.tribe-common .tribe-common-form-control-slider--vertical .tribe-common-form-control-slider__label{display:block;margin:0 0 6px}.tribe-common .tribe-common-form-control-text__label{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tribe-common .tribe-common-form-control-text__input{height:auto;padding:12px 28px 12px 0;width:100%}.tribe-common--breakpoint-medium.tribe-common .tribe-common-form-control-text__input{padding:20px 20px 20px 40px}#top .main_color .tribe-common .tribe-common-form-control-text__input,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-text__input{padding:12px 28px 12px 0;width:100%}#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{padding:20px 20px 20px 40px}.tribe-common .tribe-common-form-control-toggle__input,.tribe-common .tribe-common-form-control-toggle__label{cursor:pointer;display:inline-block;vertical-align:middle}.tribe-common .tribe-common-form-control-toggle__label{margin-left:11px}.tribe-common .tribe-common-form-control-toggle--vertical .tribe-common-form-control-toggle__label{display:block;margin:0 0 6px}#top .main_color .tribe-common .tribe-common-form-control-toggle__input,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-toggle__input{display:inline-block;margin:5px 0}.tribe-common .tribe-common-g-col{min-width:0;width:100%}.tribe-common .tribe-common-g-row{display:flex;flex-wrap:wrap}.tribe-common .tribe-common-g-row--gutters{margin-left:-21px;margin-right:-21px}.tribe-common--breakpoint-medium.tribe-common .tribe-common-g-row--gutters{margin-left:-24px;margin-right:-24px}.tribe-common .tribe-common-g-row--gutters>.tribe-common-g-col{padding-left:21px;padding-right:21px}.tribe-common--breakpoint-medium.tribe-common .tribe-common-g-row--gutters>.tribe-common-g-col{padding-left:24px;padding-right:24px}.tribe-theme-twentynineteen .tribe-common .entry.tribe-common-g-row--gutters{margin-left:-21px;margin-right:-21px;padding:0}.tribe-theme-twentynineteen .tribe-common.tribe-common--breakpoint-medium .entry.tribe-common-g-row--gutters{margin-left:-24px;margin-right:-24px}.tribe-theme-twentynineteen .tribe-common .tribe-common-g-row--gutters>.entry.tribe-common-g-col{margin:0;padding-left:21px;padding-right:21px}.tribe-theme-twentynineteen .tribe-common.tribe-common--breakpoint-medium .tribe-common-g-row--gutters>.entry.tribe-common-g-col{padding-left:24px;padding-right:24px}.tribe-common a{cursor:pointer}.tribe-theme-divi #left-area .tribe-common ul,.tribe-theme-divi .entry-content .tribe-common ul,body.et-pb-preview.tribe-theme-divi #main-content .container .tribe-common ul{list-style-type:none;padding:0}.entry-content .tribe-common ol>li,.entry-content .tribe-common ul>li{list-style-type:none}.tribe-common button{padding:0}.tribe-common .tribe-common-l-container{max-width:1260px;margin-left:auto;margin-right:auto;padding-left:19.5px;padding-right:19.5px;width:100%}.tribe-common--breakpoint-medium.tribe-common .tribe-common-l-container{padding-left:42px;padding-right:42px}.tribe-common .tribe-common-a11y-hidden{display:none!important;visibility:hidden}.tribe-common .tribe-common-a11y-visual-hide{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tribe-common .tribe-common-a11y-visual-show{clip:auto;height:auto;margin:0;position:static;width:auto}.tribe-common .tribe-common-c-btn-border,.tribe-common a.tribe-common-c-btn-border{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-small,.tribe-common a.tribe-common-c-btn-border-small{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-icon:before{background-repeat:no-repeat;background-size:contain;content:"";display:block}.tribe-common .tribe-common-c-btn-icon--caret-left .tribe-common-c-btn-icon__icon-svg,.tribe-common .tribe-common-c-btn-icon--caret-right .tribe-common-c-btn-icon__icon-svg{width:11px}.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:currentColor}.tribe-common .tribe-common-c-btn,.tribe-common a.tribe-common-c-btn{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-image{display:block;height:auto;margin-left:auto;margin-right:auto;width:100%}.tribe-common .tribe-common-c-image--bg{position:relative}.tribe-common .tribe-common-c-image__bg{background:50% no-repeat;background-size:cover;bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.tribe-common .tribe-common-c-loader{display:flex;padding-top:192px}.tribe-common--breakpoint-medium.tribe-common .tribe-common-c-loader{padding-top:288px}.tribe-common .tribe-common-c-loader__dot{width:15px}.tribe-common .tribe-common-c-loader__dot:not(:first-of-type){margin-left:8px}.tribe-common .tribe-common-c-loader__dot circle{fill:currentColor}.tribe-common .tribe-common-c-svgicon--featured{width:8px}.tribe-common .tribe-common-c-svgicon--recurring{width:12px}.tribe-common .tribe-common-c-svgicon--search{width:16px}.tribe-common .tribe-common-c-svgicon--location{width:10px}.tribe-common .tribe-common-c-svgicon--day,.tribe-common .tribe-common-c-svgicon--map,.tribe-common .tribe-common-c-svgicon--month,.tribe-common .tribe-common-c-svgicon--photo,.tribe-common .tribe-common-c-svgicon--week{height:100%;width:100%}.tribe-common .tribe-common-c-svgicon--close-alt path,.tribe-common .tribe-common-c-svgicon--close path{stroke:currentColor}.tribe-common .tribe-common-c-svgicon--mail,.tribe-common .tribe-common-c-svgicon--map-pin,.tribe-common .tribe-common-c-svgicon--messages-not-found g,.tribe-common .tribe-common-c-svgicon--no-map,.tribe-common .tribe-common-c-svgicon--phone,.tribe-common .tribe-common-c-svgicon--virtual g,.tribe-common .tribe-common-c-svgicon--website{fill:none}.tribe-common .tribe-common-c-svgicon--messages-not-found{width:22px}.tribe-common .tribe-common-c-svgicon--messages-not-found path{stroke:currentColor}.tribe-common .tribe-common-c-svgicon--error{width:18px}.tribe-common .tribe-common-c-svgicon--error g,.tribe-common .tribe-common-c-svgicon--reset path{fill:none}.tribe-common .tribe-common-c-svgicon__svg-fill{fill:currentColor}.tribe-common .tribe-common-c-svgicon__svg-stroke{stroke:currentColor}
|
common/src/resources/css/tribe-common-admin.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.invalid input{border:2px solid red!important}.valid input{border:1px solid green}.clearfix{zoom:1}.placeholder{color:#999;cursor:text;padding:4px}input::-moz-placeholder,textarea::-moz-placeholder{color:#999}input:-ms-input-placeholder,input::-ms-input-placeholder,textarea:-ms-input-placeholder,textarea::-ms-input-placeholder{color:#999}input::placeholder,textarea::placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.bubble{background-color:#f9f9f9;border:1px solid #dfdfdf;border-radius:3px;border-spacing:0;padding:10px}.tribe-sticky-tooltip{color:#bbb}td.tribe_message{padding-bottom:10px!important}#tribe_thanks{float:left;margin:5px 0 0;width:200px}.tribe_brand{font-family:Georgia,serif!important;font-size:17px!important;font-weight:400;margin:8px 0}.tribe-rating{color:#3d54ff}.tribe-rating:hover{color:#1c39bb}#tribe-upgrade{background:#f6f6f6;border:1px solid #ccc;border-radius:5px;margin:20px 0 30px;padding:0 20px 20px}#tribe-upgrade .message{background-color:#ffffe0;border:1px solid #e6db55;border-radius:3px;padding:6px 12px}table.plugins .tribe-plugin-update-message{background:#d54e21;color:#fff;display:inline-table;margin:6px 0;padding:10px 12px}table.plugins .tribe-plugin-update-message h4{display:inline;font-weight:700;margin-right:8px}table.plugins .tribe-plugin-update-message h4:after{content:" \00BB "}table.plugins .tribe-plugin-update-message a{color:#fff;text-decoration:underline}.tribe-settings-form{max-width:1000px}.tribe-settings-form fieldset{clear:both;display:inline-block;padding:10px 0}.tribe-settings-form fieldset.tribe-field-license_key legend{width:auto}.tribe-settings-form legend{float:left;font-weight:700;margin-right:20px;width:220px}.tribe-settings-form .tribe-field-wrap{float:left;max-width:500px}.tribe-settings-form .tribe-field-wrap :first-child{margin-top:0}.tribe-settings-form .tribe-field-checkbox_list label,.tribe-settings-form .tribe-field-radio label{display:block;margin:5px 0 5px 20px;text-indent:-20px}.tribe-settings-form .tribe-field-checkbox_list label>p,.tribe-settings-form .tribe-field-radio label>p{text-indent:0;margin-left:1px}.tribe-settings-form .tribe-field-checkbox_list label input,.tribe-settings-form .tribe-field-radio label input{margin-right:5px}.tribe-settings-form .tribe-settings-form-wrap .description,.tribe-settings-form .tribe-settings-form-wrap fieldset,.tribe-settings-form fieldset[id^=tribe-field-geoloc_]{padding-left:12px}.tribe-settings-form .tribe-settings-form-wrap fieldset .description{margin-left:0;max-width:450px;padding-left:0}.tribe-settings-form .tribe-settings-form-wrap fieldset .tribe-style-selection{margin-bottom:18px}.tribe-settings-form .tribe-settings-form-wrap #tribe-field-stylesheetOption .description{color:#999;margin-left:1px}.tribe-settings-form .tribe-settings-form-wrap h3{background-color:#f9f9f9;margin-bottom:10px;padding:6px 0 6px 12px}.tribe-settings-form .tribe-settings-form-wrap .contained,.tribe-settings-form .tribe-settings-form-wrap .system-info,.tribe-settings-form .tribe-settings-form-wrap .tribe-sysinfo-optin-msg,.tribe-settings-form .tribe-settings-form-wrap h3+p{margin:0 0 10px;padding-left:12px}.tribe_settings .tribe-field-indent{margin-left:245px}.tribe_settings #pu_dashboard_message{display:none}.tribe_settings .tribe-errors-list{margin-left:15px}.tribe_settings .expiring-license{color:red}.tribe_settings .tribe-error{border:1px solid red}.tribe_settings .tribe-field-description{margin-bottom:0;position:relative;top:-12px}.tribe_settings #ical-link{top:-14px}#modern-tribe-info{background-color:#f9f9f9;border:1px solid #ccc;border-radius:4px;margin:20px 0;padding:8px 20px 12px}#modern-tribe-info img{margin:10px 0}#modern-tribe-info ul{list-style:disc;margin-left:20px}#modern-tribe-info ul ul{list-style:circle}.tribe-field-inline-dropdown{margin-left:0;margin-right:0}.tribe-field-inline-text{line-height:28px;margin:0 2px}.tribe-field-textarea.tribe-size-small textarea{height:60px;width:180px}.tribe-field-textarea.tribe-size-medium textarea{height:80px;width:300px}.tribe-field-textarea.tribe-size-large textarea{height:120px;width:450px}.tribe-field-email.tribe-size-small input,.tribe-field-license_key.tribe-size-small input,.tribe-field-text.tribe-size-small input{width:50px}.tribe-field-email.tribe-size-medium input,.tribe-field-license_key.tribe-size-medium input,.tribe-field-text.tribe-size-medium input{width:225px}.tribe-field-email.tribe-size-large input,.tribe-field-license_key.tribe-size-large input,.tribe-field-text.tribe-size-large input{width:450px}.tribe-field-dropdown.tribe-size-small select{width:100px}.tribe-field-dropdown.tribe-size-medium select{width:300px}.tribe-field-dropdown.tribe-size-large select{width:450px}.tribe-field-wrapped_html.tribe-size-large .tribe-field-wrap{max-width:600px}.tribe-field-wrapped_html.tribe-size-large .tribe-field-wrap .description{max-width:100%}.tribe-field-dropdown_chosen.tribe-size-small select{width:100px}.tribe-field-dropdown_chosen.tribe-size-medium select{width:200px}.tribe-field-dropdown_chosen.tribe-size-large select{width:300px}.tribe-field-wrap .tooltip:first-child{font-style:normal}.tribe-field.indent{margin-left:252px;width:75%}.tribe-field.indent legend{font-weight:400;width:auto}.tribe-field.indent .tribe-field-wrap{padding-right:12px}.tribe-field.indent.tribe-field-radio .tribe-field-wrap{clear:left;margin-top:12px}.tribe-field.light-bordered{background-color:#fff;border:1px solid #d3d3d3}.ajax-loading-license,.invalid-key,.valid-key{display:none;margin:0 5px}.ajax-loading-license{position:relative;top:5px}.key-validity{display:inline-block}.invalid-key,.optin-fail{color:red}.optin-success,.valid-key{color:green}.valid-key.service-msg{color:#b72}#additional-field-table{margin-bottom:20px}.tribe-admin-box-left{float:left;width:20%}.tribe-admin-box-left,.tribe-admin-box-right{background-color:#f9f9f9;border:1px solid #ccc;border-radius:4px;margin:20px 0;padding:0 20px 15px}.tribe-admin-box-right{float:right;width:68%}.ajax-loader{float:right;margin:10px}.tribe-arrangeable-item{border:1px solid #d3d3d3;border-radius:3px}.tribe-arrangeable-item .ui-state-default{border:none}.tribe-arrangeable-item-top{padding:6px}.tribe-arrangeable-item-top:hover{cursor:move}.tribe-arrangeable-action{float:right}.tribe-arrangeable-child{background-color:#f9f9f9;border-top:1px solid #d3d3d3;display:none;padding:25px}.tribe-arrangeable-child label{display:block;margin:0 0 7px}.tribe_events_active_filter_type_options{margin:10px 0}.tribe_events_active_filter_type_options label{margin:7px 0}#event_organizer td small,.OrganizerInfo td small{display:block;margin:0;max-width:250px}#event_organizer .organizer-email,.OrganizerInfo .organizer-email{vertical-align:top}.tribe-table-field-label{max-width:100%;width:200px}#tribe-help-general,#tribe-help-sidebar{float:left;margin-top:20px}#tribe-help-general p{margin-left:15px}#tribe-help-general ul{list-style-type:square}#tribe-help-general ol,#tribe-help-general ul{margin-bottom:20px;margin-left:35px}#tribe-help-general h3{background-color:#f9f9f9;margin-bottom:10px;padding:6px 0 6px 12px}#tribe-help-general h3~h3{margin-top:2.25em}#tribe-help-general h3+p{margin:0 0 20px;padding-left:12px}#tribe-help-general{width:65%}.tribe-help-section{padding-bottom:10px}.tribe-section-type-box{background-color:#f9f9f9;border:1px solid #ccc;border-radius:4px;padding:8px 20px 12px}.tribe-section-type-box img{height:auto;margin:10px 0;max-width:300px}.tribe-section-type-box ul{list-style:disc;margin-left:20px}.tribe-section-type-box ul ul{list-style:circle}#tribe-log-controls{padding-bottom:1rem;padding-left:12px}#tribe-log-controls>div{display:inline-block;padding-right:1rem}#tribe-log-controls .working{opacity:1;transition:opacity .2s}#tribe-log-controls .working.hidden{opacity:0;transition:opacity .2s}#tribe-log-viewer,#tribe-system-info dl.support-stats,.template-updates-wrapper{background:#000;border-radius:2px;color:#888;max-height:400px;overflow:scroll;padding:10px}#tribe-system-info dl.support-stats dt,.template-updates-wrapper dt{clear:both;float:left;font-weight:700;text-transform:uppercase;width:25%}#tribe-system-info dl.support-stats dd,.template-updates-wrapper dd{margin-left:25%;padding-left:10px}.system-info-copy .system-info-copy-btn{padding:6px}.system-info-copy .system-info-copy-btn .dashicons{padding-right:10px}.template-updates-wrapper p{margin-top:0}#tribe-help-sidebar{margin:20px 0 0 3%;max-width:225px;width:32%}.tribe-help-plugin-info{border:1px solid #ccc;padding:0 12px 12px}.tribe-help-plugin-info dd,.tribe-help-plugin-info dt{display:inline;margin:0}.tribe-help-plugin-info dt{font-weight:700}.tribe-help-plugin-info dd:after{content:"";display:block;height:.4em}.tribe-help-plugin-info dd:last-child:after{height:0}.tribe-help-plugin-info+.tribe-help-plugin-info{margin-top:20px}.tribe-help-plugin-info>div{line-height:2em}.tribe-help-plugin-info .star-rating{display:inline-block;margin-left:3px;position:relative;top:-2px}.tribe-help-plugin-info .tribe-list-addons{color:#21a6cb;font-size:24px;list-style:circle inside;margin-bottom:10px;margin-top:10px;padding-left:4px}.tribe-help-plugin-info .tribe-list-addons a{font-size:13px;left:-5px;position:relative;top:-5px}.tribe-help-plugin-info .tribe-list-addons .tribe-active-addon{list-style:disc inside}.ui-widget-overlay{background:#666;filter:Alpha(Opacity=50);opacity:.5}.ui-widget-shadow{background:#000;border-radius:5px;filter:Alpha(Opacity=20);margin:-5px 0 0 -5px;opacity:.2;padding:5px}.ui-resizable{position:relative}.ui-resizable-handle{display:block;font-size:.1px;position:absolute;z-index:99999}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;left:0;top:-5px;width:100%}.ui-resizable-s{bottom:-5px;cursor:s-resize;height:7px;left:0;width:100%}.ui-resizable-e{cursor:e-resize;height:100%;right:-5px;top:0;width:7px}.ui-resizable-w{cursor:w-resize;height:100%;left:-5px;top:0;width:7px}.ui-resizable-se{bottom:1px;cursor:se-resize;height:12px;right:1px;width:12px}.ui-resizable-sw{bottom:-5px;cursor:sw-resize;height:9px;left:-5px;width:9px}.ui-resizable-nw{cursor:nw-resize;height:9px;left:-5px;top:-5px;width:9px}.ui-resizable-ne{cursor:ne-resize;height:9px;right:-5px;top:-5px;width:9px}.ui-dialog{padding:.2em;position:relative;width:375px}.ui-dialog .ui-dialog-titlebar{padding:.5em .3em .3em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0 .2em}.ui-dialog .ui-dialog-titlebar-close{height:18px;margin:-10px 0 0;padding:1px;position:absolute;right:.3em;top:50%;width:19px}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin-left:-8px;margin-top:-8px}.ui-dialog .ui-dialog-titlebar-close:focus,.ui-dialog .ui-dialog-titlebar-close:hover{padding:0}.ui-dialog .ui-dialog-content{background:none;border:0;overflow:auto;padding:.5em 1em;zoom:1}.ui-dialog .ui-dialog-buttonpane{background-image:none;border-width:1px 0 0;margin:.5em 0 0;padding:.3em 1em .5em!important;text-align:right}.ui-dialog .ui-dialog-buttonpane button{cursor:pointer;line-height:1.4em;margin:.5em .4em!important;overflow:visible;padding:.2em .6em .3em;text-shadow:none;width:auto}.ui-dialog .ui-resizable-se{bottom:3px;height:14px;right:3px;width:14px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:none!important;text-align:center}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button .ui-button-text{display:block;line-height:1.4}#ui-datepicker-div{display:none}#tribe-loading{background:#fff;background:hsla(0,0%,100%,.8);display:none;height:100%;left:0;position:absolute;top:0;transition:all 1s linear;width:100%;z-index:4}#tribe-loading span{background:url(../images/tribe-loading.gif) 0 0 no-repeat;background-size:32px 32px;height:32px;left:50%;margin:-16px 0 0 -16px;position:absolute;top:50%;width:32px}.tribe_update_page{max-width:850px}.tribe-half-column{float:left;margin-bottom:30px;margin-right:5%;width:45%}.tribe-row:after,.tribe-row:before{content:"";display:table}.tribe-row,.tribe-row:after{clear:both}.tribe-row .tribe-half-column:last-child{margin-right:0;width:50%}.tribe_update_page h2{font-size:30px;line-height:1.2;margin-bottom:20px}.tribe_update_page h3{font-size:24px;font-weight:400;line-height:24px;margin-top:0}.tribe_update_page h4{font-size:18px;font-weight:600;line-height:18px;margin:0}.tribe_update_page p{font-size:15px}p.tribe-update-message{font-size:18px;font-weight:400}.tribe_update_page h4:before{content:"\f145";font-family:dashicons;font-size:34px;line-height:1;margin-right:5px;position:relative;top:5px}a.tribe-rating-link{text-decoration:none}.tribe-update-links{margin-top:30px}.tribe_update_page li:before{content:"\2022";padding-right:3px}.tribe_update_page .rss-widget{margin:1em 0}.tribe_update_page a.rsswidget{font-size:14px;font-weight:400;line-height:1}.tribe_update_page .rss-widget li:before{display:none}.tribe-update-bar{display:inline-block}.tribe-update-bar .progress{border:1px solid #ccc;float:left;margin-right:1rem;padding:1px;width:18rem}.tribe-update-bar .progress .bar{background:#ffba00;height:1rem;width:1%;background:#7ad03a}#tribe-dialog-wrapper>div{padding:1rem}#tribe-dialog-wrapper>div .stage{display:none}#tribe-dialog-wrapper #heading{background:#fff}#tribe-dialog-wrapper label{display:block}#tribe-dialog-wrapper .select-single-container{border:1px solid #888;overflow-y:scroll;height:300px}#tribe-dialog-wrapper .select-single-container label{opacity:1;padding:3px 5px;transition:opacity .2s}#tribe-dialog-wrapper .select-single-container label:nth-child(odd){background:#fff}#tribe-dialog-wrapper .select-single-container label.selected{background:#0073aa;color:#fff;font-weight:700}#tribe-dialog-wrapper .select-single-container label input{display:none}#tribe-dialog-wrapper .select-single-container.updating label{opacity:.35;transition:opacity .2s}.ui-front{z-index:1000000}.wp-list-table.plugins .column-description .update-message{color:#d54e21}.api-check{padding:1em;min-height:100px}.api-check+.notice-dismiss:hover:before{color:#fff}.api-check:after,.api-check:before{content:"";display:table}.api-check:after{clear:both}.api-check .tribe-mascot{bottom:0;display:none;padding:0 1rem 0 0;position:absolute;right:0;top:0}.api-check .tribe-mascot img{display:inline-block;max-height:150px;max-width:150px;height:100%;width:auto;vertical-align:middle}.api-check p{line-height:1.7;margin-bottom:1em}.api-check a{text-decoration:none}.api-check a:hover{text-decoration:underline}.api-check .plugin-list{display:inline;font-weight:600;margin:0;padding:0}.api-check .plugin-list span.plugin-invalid:after{content:", "}.api-check .plugin-list span.plugin-invalid:last-of-type:after{content:""}.tribe-marketing-notice{padding:1em}.tribe-marketing-notice+.notice-dismiss:hover:before{color:#fff}.tribe-marketing-notice:after,.tribe-marketing-notice:before{content:"";display:table}.tribe-marketing-notice:after{clear:both}.tribe-marketing-notice .tribe-marketing-notice__icon{display:none;flex-shrink:0;padding:0;position:static}.tribe-marketing-notice .tribe-marketing-notice__icon img{display:inline-block;max-height:100%;max-width:none;vertical-align:middle;width:100%}.tribe-marketing-notice h3{margin-bottom:.5em;margin-top:.5em}.tribe-marketing-notice p{line-height:1.7;margin-bottom:.5em}.tribe-marketing-notice a{text-decoration:none}.tribe-marketing-notice a:hover{text-decoration:underline}#wpcontent .notice-tribe-banner{align-items:center;background:#161b7d;border:0;box-shadow:none;display:flex;justify-content:flex-start;margin:0 0 16px;padding-right:0}.notice-tribe-banner .tribe-marketing-notice__icon{width:47px}.notice-tribe-banner .tribe-marketing-notice__content{margin-left:0;padding:1em 0}.notice-tribe-banner h3{color:#fff;display:block;font-size:.875rem;line-height:1.25;margin:0 0 .25rem}.notice-tribe-banner a{border-bottom:1px solid #fff;line-height:1.25;margin:0;text-decoration:none}.notice-tribe-banner a:hover{text-decoration:none}.notice-tribe-banner a,.notice-tribe-banner p{color:#fff;display:inline-block;font-size:.875rem;line-height:1.25}.notice-tribe-banner p{display:inline-block;margin:0;padding:0}.notice-tribe-banner .tribe-marketing-notice{align-items:center;display:flex;justify-content:flex-start;margin:0 auto;min-height:65px;padding:0 .75rem;width:100%}.events_page_tribe-app-shop .notice-tribe-banner .tribe-marketing-notice,.tribe-welcome .notice-tribe-banner .tribe-marketing-notice,.tribe_events_page_tribe-app-shop .notice-tribe-banner .tribe-marketing-notice{max-width:100%}.notice-tribe-banner .notice-dismiss{position:static}.notice-tribe-banner .notice-dismiss:before{color:#eaf1ff}.tribe-dropdown,.tribe-ea-dropdown{max-width:100%;width:auto}.tribe-dropdown.select2-container .selection,.tribe-ea-dropdown.select2-container .selection{margin-top:inherit}.tribe-dropdown .select2-selection--single,.tribe-ea-dropdown .select2-selection--single{height:32px}.tribe-dropdown .select2-selection--single .select2-selection__clear,.tribe-ea-dropdown .select2-selection--single .select2-selection__clear{line-height:28px}.tribe-dropdown .select2-selection--single .select2-selection__rendered,.tribe-ea-dropdown .select2-selection--single .select2-selection__rendered{line-height:32px;padding-right:28px}.tribe-dropdown.select2-container--focus .select2-selection--single,.tribe-ea-dropdown.select2-container--focus .select2-selection--single{border-color:#5897fb;box-shadow:0 0 5px rgba(0,0,0,.1)}.tribe-dropdown.select2-container--open .select2-search__field,.tribe-ea-dropdown.select2-container--open .select2-search__field{padding:0}.tribe-dropdown.select2-container--open .select2-dropdown--below,.tribe-ea-dropdown.select2-container--open .select2-dropdown--below{margin-top:-1px;border-top:1px solid #aaa}.tribe-dropdown.select2-container--open .select2-dropdown--above,.tribe-ea-dropdown.select2-container--open .select2-dropdown--above{margin-bottom:-16px;border-bottom:1px solid #aaa}.tribe-dropdown.select2-container--open .select2-selection--single,.tribe-ea-dropdown.select2-container--open .select2-selection--single{border-bottom-left-radius:0;border-bottom-right-radius:0;border-color:#aaa}.tribe-dropdown.select2-container--open .select2-selection__arrow b,.tribe-ea-dropdown.select2-container--open .select2-selection__arrow b{transform:rotate(180deg)}.tribe-dropdown.select2-selection--single,.tribe-ea-dropdown.select2-selection--single{background-image:none;border-radius:3px;border:1px solid #ccc;overflow:hidden}.tribe-dropdown.select2-selection--single>.select2-selection__rendered,.tribe-ea-dropdown.select2-selection--single>.select2-selection__rendered{white-space:normal}.tribe-dropdown.select2-selection--single .select2-selection__arrow,.tribe-ea-dropdown.select2-selection--single .select2-selection__arrow{background-image:none;background:transparent;border-left:0;top:2px;width:26px}.tribe-dropdown.select2-selection--single .select2-selection__arrow b,.tribe-ea-dropdown.select2-selection--single .select2-selection__arrow b{background:#fff url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E") no-repeat right 5px top 55%;background-size:auto;background-size:16px 16px;border:0;top:0;bottom:0;left:0;right:0;display:block;width:auto;height:auto;margin:0;padding:0}.tribe-dropdown .select2-selection--multiple .select2-selection__rendered,.tribe-ea-dropdown .select2-selection--multiple .select2-selection__rendered{background-image:none;border-radius:3px;border:1px solid #ccc;min-height:25px}.tribe-dropdown .select2-selection--multiple .select2-selection__rendered .select2-search--inline,.tribe-ea-dropdown .select2-selection--multiple .select2-selection__rendered .select2-search--inline{line-height:25px}.tribe-dropdown .select2-selection--multiple .select2-selection__rendered .select2-search--inline input,.tribe-ea-dropdown .select2-selection--multiple .select2-selection__rendered .select2-search--inline input{padding-top:0;padding-bottom:0}.tribe-dropdown .select2-selection--multiple .select2-selection__rendered .select2-selection__choice,.tribe-ea-dropdown .select2-selection--multiple .select2-selection__rendered .select2-selection__choice{margin-top:2px;padding-top:0;padding-bottom:0;line-height:19px}.tribe-dropdown .select2-selection--multiple .select2-selection__rendered .select2-selection__choice div,.tribe-ea-dropdown .select2-selection--multiple .select2-selection__rendered .select2-selection__choice div{line-height:inherit}.tribe-dropdown .select2-selection--multiple .select2-selection__rendered .select2-selection__choice__remove,.tribe-ea-dropdown .select2-selection--multiple .select2-selection__rendered .select2-selection__choice__remove{top:3px;left:4px;transition-property:border,color}.select2-results .select2-results__option{color:#939393;font-weight:400;margin-bottom:0}.select2-results .select2-results__option[aria-disabled=true]{background-color:#e0e0e0}.select2-results.select2-results__option--highlighted{background-color:#efefef;color:#a1a1a1;cursor:default;display:block}.wp-core-ui .button-red{background-color:#a00;border-bottom-color:#8d1f21;border-color:#9b2124;box-shadow:inset 0 1px 0 rgba(120,200,230,.5);color:#fff;text-decoration:none;text-shadow:0 1px 0 rgba(0,0,0,.1)}.wp-core-ui .button-red.focus,.wp-core-ui .button-red.hover,.wp-core-ui .button-red:focus,.wp-core-ui .button-red:hover{background-color:#a00;border-color:#7f1c1f;box-shadow:inset 0 1px 0 rgba(120,200,230,.6);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.3)}.wp-core-ui .button-red.focus,.wp-core-ui .button-red:focus{border-color:#500f0e;box-shadow:inset 0 1px 0 rgba(120,200,230,.6),1px 1px 2px rgba(0,0,0,.4)}.wp-core-ui .button-red.active,.wp-core-ui .button-red.active:focus,.wp-core-ui .button-red.active:hover,.wp-core-ui .button-red:active{background:#7f1c1f;border-color:#601312 #ae2426 #ae2426;box-shadow:inset 0 1px 0 rgba(0,0,0,.1);color:hsla(0,0%,100%,.95);text-shadow:0 1px 0 rgba(0,0,0,.1)}.wp-core-ui .button-red-disabled,.wp-core-ui .button-red:disabled,.wp-core-ui .button-red[disabled]{color:#e79496!important;background:#ba292b!important;border-color:#7f1c1f!important;box-shadow:none!important;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important;cursor:default}.ticket_form .select2-container .select2-selection--single .select2-selection__arrow{display:none}.clear{zoom:1}.clear:after,.clear:before{content:" ";display:table}.clear:after{clear:both}.checkmark:after{content:"";display:block;width:8px;height:15px;border:solid #0ab152;border-width:0 3px 3px 0;transform:rotate(45deg)}.checkmark.checkmark-right:after{float:right;margin-right:2em}.checkmark.checkmark-left:after{float:left;margin-left:2em}.checkmark.no-checkmark:after{display:none}.complete,.ok,.on,.yes,[data-status=complete],[data-status=ok],[data-status=on],[data-status=yes]{color:#0ab152}.incomplete,.ko,.no,.off,[data-status=incomplete],[data-status=ko],[data-status=no],[data-status=off]{color:#ff2500}.plugin-card-event-tickets-plus .column-downloaded,.plugin-card-event-tickets-plus .column-rating,.plugin-card-event-tickets-plus .column-updated,.plugin-card-event-tickets .column-downloaded,.plugin-card-event-tickets .column-rating,.plugin-card-event-tickets .column-updated,.plugin-card-events-calendar-pro .column-downloaded,.plugin-card-events-calendar-pro .column-rating,.plugin-card-events-calendar-pro .column-updated,.plugin-card-events-community-tickets .column-downloaded,.plugin-card-events-community-tickets .column-rating,.plugin-card-events-community-tickets .column-updated,.plugin-card-events-community .column-downloaded,.plugin-card-events-community .column-rating,.plugin-card-events-community .column-updated,.plugin-card-image-widget-plus .column-downloaded,.plugin-card-image-widget-plus .column-rating,.plugin-card-image-widget-plus .column-updated,.plugin-card-image-widget .column-downloaded,.plugin-card-image-widget .column-rating,.plugin-card-image-widget .column-updated,.plugin-card-the-events-calendar .column-downloaded,.plugin-card-the-events-calendar .column-rating,.plugin-card-the-events-calendar .column-updated,.plugin-card-tribe-eventbrite .column-downloaded,.plugin-card-tribe-eventbrite .column-rating,.plugin-card-tribe-eventbrite .column-updated,.plugin-card-tribe-filterbar .column-downloaded,.plugin-card-tribe-filterbar .column-rating,.plugin-card-tribe-filterbar .column-updated{display:none}body.tribe-welcome{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fff}body.tribe-welcome .update-nag{display:none}body.tribe-welcome #wpcontent{padding:0}body.tribe-welcome .tribe_settings{margin:0}body.tribe-welcome #wpfooter,body.tribe-welcome .tribe_settings>h1{display:none}body.tribe-welcome #wpbody-content{padding-bottom:25px}body.tribe-welcome .tribe-dependency-error{display:none}.tribe-events-admin-content-wrapper{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-style:normal;margin:0 auto;padding:20px;width:calc(100% - 40px)}.tribe-events-admin-card{background:#fff;border:1px solid #e1e1e4;box-sizing:border-box;border-radius:16px;display:block;margin:0 auto 36px;padding:27px;text-align:center}.tribe-events-admin-card--1up{width:100%}.tribe-events-admin-video{-webkit-mask-image:-webkit-radial-gradient(circle,#fff 100%,#000 0);-webkit-transform:rotate(.000001deg);border-radius:16px;height:200px;margin-bottom:72px;overflow:hidden}.tribe-events-admin-video iframe{width:100%}.tribe-events-admin-card--2up .tribe-events-admin-card__title{max-width:260px}.tribe-events-admin-card--3up .tribe-events-admin-card__description{height:71px}.tribe-events-admin-card--3up .tribe-events-admin-card__image{margin-bottom:28px}.tribe-events-admin-card--promo-blue{background-color:#3d54ff;background-image:url(../images/welcome/promo.jpg)}.tribe-events-admin-card--promo-blue .tribe-events-admin-card__description{color:#fff;font-size:16px;text-align:left;margin-bottom:16px}.tribe-events-admin-card--promo-blue .tribe-events-admin-card__title{text-align:left;color:#fff}.tribe-events-admin-graphic{position:absolute;top:106px;right:0;z-index:-1}.tribe-events-admin-graphic--desktop-only{display:none}.tribe-events-admin-graphic--mobile-only{display:block}.tribe-events-admin-card__form{position:relative}input[type=email].tribe-events-admin-card__input{background:#fff;border:1px solid #e1e1e4;box-sizing:border-box;border-radius:16px;font-size:14px;height:54px}input[type=email].tribe-events-admin-card__input::-webkit-input-placeholder{color:rgba(15,16,49,.72);letter-spacing:.5px;padding-left:10px}input[type=email].tribe-events-admin-card__input::-moz-placeholder{color:rgba(15,16,49,.72);letter-spacing:.5px;padding-left:10px}input[type=email].tribe-events-admin-card__input:-ms-input-placeholder,input[type=email].tribe-events-admin-card__input::-ms-input-placeholder{color:rgba(15,16,49,.72);letter-spacing:.5px;padding-left:10px}input[type=email].tribe-events-admin-card__input::placeholder{color:rgba(15,16,49,.72);letter-spacing:.5px;padding-left:10px}.tribe-events-admin-card__button{background-color:#fff;border:none;color:#3d54ff;font-size:14px;font-weight:700;letter-spacing:1px;line-height:16px;position:absolute;right:20px;text-transform:uppercase;top:17px}.tribe-events-admin-card__button:hover{color:#161b7d}.tribe-events-admin-card__description{color:#000;font-size:14px;font-style:normal;font-weight:400;line-height:22px;margin-top:16px}.tribe-events-admin-card__image{display:block;margin:0 auto;height:100px}.tribe-events-admin-card__link{color:#3d54ff;display:inline-block;font-size:16px;font-style:normal;font-weight:700;line-height:18px;margin-top:24px;position:relative;text-decoration:none}.tribe-events-admin-card__link:hover{color:#161b7d}.tribe-events-admin-card__link:after{border-style:solid;border-width:0 0 1px;bottom:-4px;content:"";left:0;position:absolute;width:100%}.tribe-events-admin-card__title{color:#0f1031;font-size:20px;font-weight:700;line-height:23px;margin:auto}.tribe-events-admin-card-grid{max-width:1048px}.tribe-events-admin-quick-nav{background:#fff;border-radius:16px;border:1px solid #e1e1e4;box-sizing:border-box;display:block;margin:40px 0 78px;padding:18px 23px 2px}.tribe-events-admin-quick-nav__link{color:#3d54ff;font-size:16px;font-weight:700;line-height:18px;text-align:center;text-decoration:none}.tribe-events-admin-quick-nav__link:hover{color:#161b7d}.tribe-events-admin-quick-nav__link-item{display:block;padding-bottom:19px}.tribe-events-admin-quick-nav__links{display:inline}.tribe-events-admin-quick-nav__title{color:rgba(15,16,49,.72);display:inline-block;font-size:14px;font-weight:400;line-height:16px;padding-bottom:14px;text-transform:uppercase}.tribe-events-admin-section-header{color:#000;font-size:24px;font-weight:700;line-height:28px;margin:21px 0 24px}.tribe-events-admin-title{padding-top:14px}.tribe-events-admin-title__description{color:#0f1031;font-size:16px;font-weight:400;line-height:24px;max-width:584px;padding-top:15px}.tribe-events-admin-title__heading{color:#0f1031;display:inline-block;font-size:24px;font-weight:700;line-height:28px;margin:5px 0 0}.tribe-events-admin-title__logo{margin-right:8px;vertical-align:top;width:34px}.tribe-events-admin-notice{background-color:#3d54ff;height:65px}.tribe-events-admin-notice .tribe-events-admin-content-wrapper{padding-top:8px;padding-bottom:0}.tribe-events-admin-notice p{color:#fff;display:inline-block;font-family:Helvetica;font-size:16px;line-height:18px;margin-top:0;padding-bottom:12px;padding-left:16px;vertical-align:middle;width:calc(100% - 60px)}.tribe-events-admin-notice__logo{display:inline-block}.tribe-events-admin-tickets .tribe-events-admin-section-header{font-size:28px;line-height:32px}.tribe-events-admin-tickets .tribe-events-admin-graphic--desktop-only{width:365px}.tribe-events-admin-tickets .tribe-events-admin-graphic--mobile-only{width:300px;top:230px}.tribe-events-admin-tickets .tribe-events-admin-title__heading{margin-top:0}.tribe-events-admin-tickets .tribe-events-admin-title__logo{margin-right:4px;width:32px}body.tribe-welcome #fs_connect{border:1px solid #e1e1e4;box-sizing:border-box;border-radius:16px;margin-left:22px;box-shadow:none}body.tribe-welcome #fs_connect .fs-actions{background-color:transparent}body.tribe-welcome #fs_connect .fs-permissions{border-top:1px solid #e1e1e4;margin:0 16px}body.tribe-welcome #fs_connect button{background-color:#3d54ff;border-color:#3d54ff}body.tribe-welcome #fs_connect .button-secondary{border-color:#3d54ff;color:#3d54ff;background:#fff}body.tribe-welcome #fs_connect a{color:#3d54ff}body.tribe-welcome #fs_connect a:focus{box-shadow:none;outline:none}body.tribe-welcome #fs_connect a:hover{color:#161b7d}@media only screen and (-o-min-device-pixel-ratio:2/1),only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (min-device-pixel-ratio:2){#tribe-loading span{background-image:url(../images/tribe-loading@2x.gif)}}@media screen and (max-width:782px){.tribe-half-column,.tribe-row .tribe-half-column:last-child{margin:0 0 20px;width:100%}input[type=email]{width:100%}}@media screen and (max-width:782px){.events-cal .subsubsub{float:none}.events-cal .search-box{width:98%}.events-cal #search-submit{width:100%}.events-cal .tablenav.top{display:none}}@media screen and (min-width:500px){.api-check .tribe-mascot{display:block}.api-check .notice-content{margin-right:180px}}@media screen and (min-width:320px){.tribe-marketing-notice .tribe-marketing-notice__icon{display:block}.notice-tribe-banner .tribe-marketing-notice__content{margin-left:22px}}@media screen and (min-width:600px) and (max-width:782px){.tribe-marketing-notice .tribe-marketing-notice__content{margin-left:145px}.notice-tribe-banner .tribe-marketing-notice__content{margin-left:22px;padding:0}}@media screen and (min-width:782px){.tribe-marketing-notice .tribe-marketing-notice__content{margin-left:130px}.notice-tribe-banner .tribe-marketing-notice__content{margin-left:22px;padding:0}.events_page_tribe-app-shop .notice-tribe-banner .tribe-marketing-notice,.tribe-welcome .notice-tribe-banner .tribe-marketing-notice,.tribe_events_page_tribe-app-shop .notice-tribe-banner .tribe-marketing-notice{max-width:642px}}@media screen and (min-width:400px){.notice-tribe-banner .tribe-marketing-notice__icon{width:67px}}@media screen and (min-width:800px){.notice-tribe-banner h3{display:inline-block;font-size:1rem;margin:0 .5rem 0 0}.notice-tribe-banner a{line-height:1.5}.notice-tribe-banner a,.notice-tribe-banner p{font-size:1rem}.notice-tribe-banner p{margin:0 .5rem 0 0}.notice-tribe-banner .tribe-marketing-notice__cta{display:inline-block;margin-left:.5rem}}@media screen and (min-width:1215px){.events_page_tribe-app-shop .notice-tribe-banner .tribe-marketing-notice,.tribe_events_page_tribe-app-shop .notice-tribe-banner .tribe-marketing-notice{max-width:992px}.tribe-welcome .notice-tribe-banner .tribe-marketing-notice{max-width:1036px}}@media screen and (min-width:710px){.tribe-events-admin-content-wrapper{width:670px}.tribe-events-admin-card--1up{display:inline-block;width:calc(50% - 18px);margin-left:32px}.tribe-events-admin-card--1up .tribe-events-admin-card__description{height:71px}.tribe-events-admin-card--1up .tribe-events-admin-card__image{margin-bottom:28px}.tribe-events-admin-card--2up{display:inline-block;width:calc(50% - 20px)}.tribe-events-admin-card--2up.tribe-events-admin-card--first{margin-right:36px}.tribe-events-admin-card--2up.tribe-events-admin-card--last{margin-right:0}.tribe-events-admin-card--2up .tribe-events-admin-card__image{height:100px;margin-bottom:12px}.tribe-events-admin-card--2up .tribe-events-admin-card__title{max-width:340px;margin-bottom:27px}.tribe-events-admin-card--3up{display:inline-block;margin-bottom:32px;width:calc(50% - 18px)}.tribe-events-admin-card--3up.tribe-events-admin-card--first{margin-right:32px}.tribe-events-admin-card--3up.tribe-events-admin-card--middle{margin-right:0}.tribe-events-admin-card--promo-blue{display:block;margin-left:0;min-height:170px;width:100%}.tribe-events-admin-card--promo-blue .tribe-events-admin-card__description{float:left;max-width:300px}.tribe-events-admin-graphic{top:0;max-width:250px}.tribe-events-admin-graphic--desktop-only{display:block}.tribe-events-admin-graphic--mobile-only{display:none}.tribe-events-admin-card__form{float:right;width:300px}input[type=email].tribe-events-admin-card__input{width:300px}.tribe-events-admin-card__title{font-size:20px;line-height:23px}.tribe-events-admin-section-header{font-size:28px;line-height:32px;margin-bottom:21px}.tribe-events-admin-title{padding-top:50px}.tribe-events-admin-title__description{padding-top:15px}.tribe-events-admin-title__heading{font-size:48px;line-height:55px;margin:0}.tribe-events-admin-title__logo{margin-right:14px;padding-top:5px;width:40px}.tribe-events-admin-tickets .tribe-events-admin-card__title{font-size:18px}.tribe-events-admin-tickets .tribe-events-admin-card--2up .tribe-events-admin-card__title{font-size:18px;height:66px}.tribe-events-admin-tickets .tribe-events-admin-title__logo{margin-right:8px;padding-top:4px;width:60px}}@media screen and (min-width:1217px){.tribe-events-admin-content-wrapper{width:100%;max-width:1060px}.tribe-events-admin-card--1up{margin:0 0 36px;padding:33px 44px 30px;text-align:left;width:1012px}.tribe-events-admin-card--1up .tribe-events-admin-card__description{height:auto}.tribe-events-admin-card--1up .tribe-events-admin-card__image{float:left;margin:0 48px 10px 0}.tribe-events-admin-card--2up{margin-right:36px;width:486px}.tribe-events-admin-card--3up{width:310px}.tribe-events-admin-card--3up.tribe-events-admin-card--first,.tribe-events-admin-card--3up.tribe-events-admin-card--middle{margin-right:36px}.tribe-events-admin-card--3up.tribe-events-admin-card--last{margin-right:0}.tribe-events-admin-card--promo-blue{min-height:150px}.tribe-events-admin-card--promo-blue .tribe-events-admin-card__description{max-width:450px}.tribe-events-admin-graphic{max-width:none}.tribe-events-admin-card__form,input[type=email].tribe-events-admin-card__input{width:365px}.tribe-events-admin-quick-nav{display:inline-block;border-radius:100px;margin:24px 0 94px;max-width:1010px;padding:0 36px 0 0;height:54px}.tribe-events-admin-quick-nav__link-item{display:inline-block;padding:18px 10px 0}.tribe-events-admin-quick-nav__title{padding:19px 6px 17px 32px}.tribe-events-admin-tickets .tribe-events-admin-card--2up .tribe-events-admin-card__title{height:auto}}
|
1 |
+
.invalid input{border:2px solid red!important}.valid input{border:1px solid green}.clearfix{zoom:1}.placeholder{color:#999;cursor:text;padding:4px}input::-moz-placeholder,textarea::-moz-placeholder{color:#999}input:-ms-input-placeholder,input::-ms-input-placeholder,textarea:-ms-input-placeholder,textarea::-ms-input-placeholder{color:#999}input::placeholder,textarea::placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.bubble{background-color:#f9f9f9;border:1px solid #dfdfdf;border-radius:3px;border-spacing:0;padding:10px}.tribe-sticky-tooltip{color:#bbb}td.tribe_message{padding-bottom:10px!important}#tribe_thanks{float:left;margin:5px 0 0;width:200px}.tribe_brand{font-family:Georgia,serif!important;font-size:17px!important;font-weight:400;margin:8px 0}.tribe-rating{color:#3d54ff}.tribe-rating:hover{color:#1c39bb}#tribe-upgrade{background:#f6f6f6;border:1px solid #ccc;border-radius:5px;margin:20px 0 30px;padding:0 20px 20px}#tribe-upgrade .message{background-color:#ffffe0;border:1px solid #e6db55;border-radius:3px;padding:6px 12px}table.plugins .tribe-plugin-update-message{background:#d54e21;color:#fff;display:inline-table;margin:6px 0;padding:10px 12px}table.plugins .tribe-plugin-update-message h4{display:inline;font-weight:700;margin-right:8px}table.plugins .tribe-plugin-update-message h4:after{content:" \00BB "}table.plugins .tribe-plugin-update-message a{color:#fff;text-decoration:underline}.tribe-settings-form{max-width:1000px}.tribe-settings-form fieldset{clear:both;display:inline-block;padding:10px 0}.tribe-settings-form fieldset.tribe-field-license_key legend{width:auto}.tribe-settings-form legend{float:left;font-weight:700;margin-right:20px;width:220px}.tribe-settings-form .tribe-field-wrap{float:left;max-width:500px}.tribe-settings-form .tribe-field-wrap :first-child{margin-top:0}.tribe-settings-form .tribe-field-checkbox_list label,.tribe-settings-form .tribe-field-radio label{display:block;margin:5px 0 5px 20px;text-indent:-20px}.tribe-settings-form .tribe-field-checkbox_list label>p,.tribe-settings-form .tribe-field-radio label>p{text-indent:0;margin-left:1px}.tribe-settings-form .tribe-field-checkbox_list label input,.tribe-settings-form .tribe-field-radio label input{margin-right:5px}.tribe-settings-form .tribe-settings-form-wrap .description,.tribe-settings-form .tribe-settings-form-wrap fieldset,.tribe-settings-form fieldset[id^=tribe-field-geoloc_]{padding-left:12px}.tribe-settings-form .tribe-settings-form-wrap fieldset .description{margin-left:0;max-width:450px;padding-left:0}.tribe-settings-form .tribe-settings-form-wrap fieldset .tribe-style-selection{margin-bottom:18px}.tribe-settings-form .tribe-settings-form-wrap #tribe-field-stylesheetOption .description{color:#999;margin-left:1px}.tribe-settings-form .tribe-settings-form-wrap h3{background-color:#f9f9f9;margin-bottom:10px;padding:6px 0 6px 12px}.tribe-settings-form .tribe-settings-form-wrap .contained,.tribe-settings-form .tribe-settings-form-wrap .system-info,.tribe-settings-form .tribe-settings-form-wrap .tribe-sysinfo-optin-msg,.tribe-settings-form .tribe-settings-form-wrap h3+p{margin:0 0 10px;padding-left:12px}.tribe_settings .tribe-field-indent{margin-left:245px}.tribe_settings #pu_dashboard_message{display:none}.tribe_settings .tribe-errors-list{margin-left:15px}.tribe_settings .expiring-license{color:red}.tribe_settings .tribe-error{border:1px solid red}.tribe_settings .tribe-field-description{margin-bottom:0;position:relative;top:-12px}.tribe_settings #ical-link{top:-14px}#modern-tribe-info{background-color:#f9f9f9;border:1px solid #ccc;border-radius:4px;margin:20px 0;padding:8px 20px 12px}#modern-tribe-info img{margin:10px 0}#modern-tribe-info ul{list-style:disc;margin-left:20px}#modern-tribe-info ul ul{list-style:circle}.tribe-field-inline-dropdown{margin-left:0;margin-right:0}.tribe-field-inline-text{line-height:28px;margin:0 2px}.tribe-field-textarea.tribe-size-small textarea{height:60px;width:180px}.tribe-field-textarea.tribe-size-medium textarea{height:80px;width:300px}.tribe-field-textarea.tribe-size-large textarea{height:120px;width:450px}.tribe-field-email.tribe-size-small input,.tribe-field-license_key.tribe-size-small input,.tribe-field-text.tribe-size-small input{width:50px}.tribe-field-email.tribe-size-medium input,.tribe-field-license_key.tribe-size-medium input,.tribe-field-text.tribe-size-medium input{width:225px}.tribe-field-email.tribe-size-large input,.tribe-field-license_key.tribe-size-large input,.tribe-field-text.tribe-size-large input{width:450px}.tribe-field-dropdown.tribe-size-small select{width:100px}.tribe-field-dropdown.tribe-size-medium select{width:300px}.tribe-field-dropdown.tribe-size-large select{width:450px}.tribe-field-wrapped_html.tribe-size-large .tribe-field-wrap{max-width:600px}.tribe-field-wrapped_html.tribe-size-large .tribe-field-wrap .description{max-width:100%}.tribe-field-dropdown_chosen.tribe-size-small select{width:100px}.tribe-field-dropdown_chosen.tribe-size-medium select{width:200px}.tribe-field-dropdown_chosen.tribe-size-large select{width:300px}.tribe-field-wrap .tooltip:first-child{font-style:normal}.tribe-field.indent{margin-left:252px;width:75%}.tribe-field.indent legend{font-weight:400;width:auto}.tribe-field.indent .tribe-field-wrap{padding-right:12px}.tribe-field.indent.tribe-field-radio .tribe-field-wrap{clear:left;margin-top:12px}.tribe-field.light-bordered{background-color:#fff;border:1px solid #d3d3d3}.ajax-loading-license,.invalid-key,.valid-key{display:none;margin:0 5px}.ajax-loading-license{position:relative;top:5px}.key-validity{display:inline-block}.invalid-key,.optin-fail{color:red}.optin-success,.valid-key{color:green}.valid-key.service-msg{color:#b72}#additional-field-table{margin-bottom:20px}.tribe-admin-box-left{float:left;width:20%}.tribe-admin-box-left,.tribe-admin-box-right{background-color:#f9f9f9;border:1px solid #ccc;border-radius:4px;margin:20px 0;padding:0 20px 15px}.tribe-admin-box-right{float:right;width:68%}.ajax-loader{float:right;margin:10px}.tribe-arrangeable-item{border:1px solid #d3d3d3;border-radius:3px}.tribe-arrangeable-item .ui-state-default{border:none}.tribe-arrangeable-item-top{padding:6px}.tribe-arrangeable-item-top:hover{cursor:move}.tribe-arrangeable-action{float:right}.tribe-arrangeable-child{background-color:#f9f9f9;border-top:1px solid #d3d3d3;display:none;padding:25px}.tribe-arrangeable-child label{display:block;margin:0 0 7px}.tribe_events_active_filter_type_options{margin:10px 0}.tribe_events_active_filter_type_options label{margin:7px 0}#event_organizer td small,.OrganizerInfo td small{display:block;margin:0;max-width:250px}#event_organizer .organizer-email,.OrganizerInfo .organizer-email{vertical-align:top}.tribe-table-field-label{max-width:100%;width:200px}#tribe-help-general,#tribe-help-sidebar{float:left;margin-top:20px}#tribe-help-general p{margin-left:15px}#tribe-help-general ul{list-style-type:square}#tribe-help-general ol,#tribe-help-general ul{margin-bottom:20px;margin-left:35px}#tribe-help-general h3{background-color:#f9f9f9;margin-bottom:10px;padding:6px 0 6px 12px}#tribe-help-general h3~h3{margin-top:2.25em}#tribe-help-general h3+p{margin:0 0 20px;padding-left:12px}#tribe-help-general{width:65%}.tribe-help-section{padding-bottom:10px}.tribe-section-type-box{background-color:#f9f9f9;border:1px solid #ccc;border-radius:4px;padding:8px 20px 12px}.tribe-section-type-box img{height:auto;margin:10px 0;max-width:300px}.tribe-section-type-box ul{list-style:disc;margin-left:20px}.tribe-section-type-box ul ul{list-style:circle}#tribe-log-controls{padding-bottom:1rem;padding-left:12px}#tribe-log-controls>div{display:inline-block;padding-right:1rem}#tribe-log-controls .working{opacity:1;transition:opacity .2s}#tribe-log-controls .working.hidden{opacity:0;transition:opacity .2s}#tribe-log-viewer,#tribe-system-info dl.support-stats,.template-updates-wrapper{background:#000;border-radius:2px;color:#888;max-height:400px;overflow:scroll;padding:10px}#tribe-system-info dl.support-stats dt,.template-updates-wrapper dt{clear:both;float:left;font-weight:700;text-transform:uppercase;width:25%}#tribe-system-info dl.support-stats dd,.template-updates-wrapper dd{margin-left:25%;padding-left:10px}.system-info-copy .system-info-copy-btn{padding:6px}.system-info-copy .system-info-copy-btn .dashicons{padding-right:10px}.template-updates-wrapper p{margin-top:0}#tribe-help-sidebar{margin:20px 0 0 3%;max-width:225px;width:32%}.tribe-help-plugin-info{border:1px solid #ccc;padding:0 12px 12px}.tribe-help-plugin-info dd,.tribe-help-plugin-info dt{display:inline;margin:0}.tribe-help-plugin-info dt{font-weight:700}.tribe-help-plugin-info dd:after{content:"";display:block;height:.4em}.tribe-help-plugin-info dd:last-child:after{height:0}.tribe-help-plugin-info+.tribe-help-plugin-info{margin-top:20px}.tribe-help-plugin-info>div{line-height:2em}.tribe-help-plugin-info .star-rating{display:inline-block;margin-left:3px;position:relative;top:-2px}.tribe-help-plugin-info .tribe-list-addons{color:#21a6cb;font-size:24px;list-style:circle inside;margin-bottom:10px;margin-top:10px;padding-left:4px}.tribe-help-plugin-info .tribe-list-addons a{font-size:13px;left:-5px;position:relative;top:-5px}.tribe-help-plugin-info .tribe-list-addons .tribe-active-addon{list-style:disc inside}.ui-widget-overlay{background:#666;filter:Alpha(Opacity=50);opacity:.5}.ui-widget-shadow{background:#000;border-radius:5px;filter:Alpha(Opacity=20);margin:-5px 0 0 -5px;opacity:.2;padding:5px}.ui-resizable{position:relative}.ui-resizable-handle{display:block;font-size:.1px;position:absolute;z-index:99999}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;left:0;top:-5px;width:100%}.ui-resizable-s{bottom:-5px;cursor:s-resize;height:7px;left:0;width:100%}.ui-resizable-e{cursor:e-resize;height:100%;right:-5px;top:0;width:7px}.ui-resizable-w{cursor:w-resize;height:100%;left:-5px;top:0;width:7px}.ui-resizable-se{bottom:1px;cursor:se-resize;height:12px;right:1px;width:12px}.ui-resizable-sw{bottom:-5px;cursor:sw-resize;height:9px;left:-5px;width:9px}.ui-resizable-nw{cursor:nw-resize;height:9px;left:-5px;top:-5px;width:9px}.ui-resizable-ne{cursor:ne-resize;height:9px;right:-5px;top:-5px;width:9px}.ui-dialog{padding:.2em;position:relative;width:375px}.ui-dialog .ui-dialog-titlebar{padding:.5em .3em .3em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0 .2em}.ui-dialog .ui-dialog-titlebar-close{height:18px;margin:-10px 0 0;padding:1px;position:absolute;right:.3em;top:50%;width:19px}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin-left:-8px;margin-top:-8px}.ui-dialog .ui-dialog-titlebar-close:focus,.ui-dialog .ui-dialog-titlebar-close:hover{padding:0}.ui-dialog .ui-dialog-content{background:none;border:0;overflow:auto;padding:.5em 1em;zoom:1}.ui-dialog .ui-dialog-buttonpane{background-image:none;border-width:1px 0 0;margin:.5em 0 0;padding:.3em 1em .5em!important;text-align:right}.ui-dialog .ui-dialog-buttonpane button{cursor:pointer;line-height:1.4em;margin:.5em .4em!important;overflow:visible;padding:.2em .6em .3em;text-shadow:none;width:auto}.ui-dialog .ui-resizable-se{bottom:3px;height:14px;right:3px;width:14px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:none!important;text-align:center}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button .ui-button-text{display:block;line-height:1.4}#ui-datepicker-div{display:none}#tribe-loading{background:#fff;background:hsla(0,0%,100%,.8);display:none;height:100%;left:0;position:absolute;top:0;transition:all 1s linear;width:100%;z-index:4}#tribe-loading span{background:url(../images/tribe-loading.gif) 0 0 no-repeat;background-size:32px 32px;height:32px;left:50%;margin:-16px 0 0 -16px;position:absolute;top:50%;width:32px}.tribe_update_page{max-width:850px}.tribe-half-column{float:left;margin-bottom:30px;margin-right:5%;width:45%}.tribe-row:after,.tribe-row:before{content:"";display:table}.tribe-row,.tribe-row:after{clear:both}.tribe-row .tribe-half-column:last-child{margin-right:0;width:50%}.tribe_update_page h2{font-size:30px;line-height:1.2;margin-bottom:20px}.tribe_update_page h3{font-size:24px;font-weight:400;line-height:24px;margin-top:0}.tribe_update_page h4{font-size:18px;font-weight:600;line-height:18px;margin:0}.tribe_update_page p{font-size:15px}p.tribe-update-message{font-size:18px;font-weight:400}.tribe_update_page h4:before{content:"\f145";font-family:dashicons;font-size:34px;line-height:1;margin-right:5px;position:relative;top:5px}a.tribe-rating-link{text-decoration:none}.tribe-update-links{margin-top:30px}.tribe_update_page li:before{content:"\2022";padding-right:3px}.tribe_update_page .rss-widget{margin:1em 0}.tribe_update_page a.rsswidget{font-size:14px;font-weight:400;line-height:1}.tribe_update_page .rss-widget li:before{display:none}.tribe-events-widget-admin-form__input-section p{margin:0}.tribe-events-widget-admin-form__input-section h4{margin:.5em 0}.tribe-update-bar{display:inline-block}.tribe-update-bar .progress{border:1px solid #ccc;float:left;margin-right:1rem;padding:1px;width:18rem}.tribe-update-bar .progress .bar{background:#ffba00;height:1rem;width:1%;background:#7ad03a}#tribe-dialog-wrapper>div{padding:1rem}#tribe-dialog-wrapper>div .stage{display:none}#tribe-dialog-wrapper #heading{background:#fff}#tribe-dialog-wrapper label{display:block}#tribe-dialog-wrapper .select-single-container{border:1px solid #888;overflow-y:scroll;height:300px}#tribe-dialog-wrapper .select-single-container label{opacity:1;padding:3px 5px;transition:opacity .2s}#tribe-dialog-wrapper .select-single-container label:nth-child(odd){background:#fff}#tribe-dialog-wrapper .select-single-container label.selected{background:#0073aa;color:#fff;font-weight:700}#tribe-dialog-wrapper .select-single-container label input{display:none}#tribe-dialog-wrapper .select-single-container.updating label{opacity:.35;transition:opacity .2s}.ui-front{z-index:1000000}.wp-list-table.plugins .column-description .update-message{color:#d54e21}.api-check{padding:1em;min-height:100px}.api-check+.notice-dismiss:hover:before{color:#fff}.api-check:after,.api-check:before{content:"";display:table}.api-check:after{clear:both}.api-check .tribe-mascot{bottom:0;display:none;padding:0 1rem 0 0;position:absolute;right:0;top:0}.api-check .tribe-mascot img{display:inline-block;max-height:150px;max-width:150px;height:100%;width:auto;vertical-align:middle}.api-check p{line-height:1.7;margin-bottom:1em}.api-check a{text-decoration:none}.api-check a:hover{text-decoration:underline}.api-check .plugin-list{display:inline;font-weight:600;margin:0;padding:0}.api-check .plugin-list span.plugin-invalid:after{content:", "}.api-check .plugin-list span.plugin-invalid:last-of-type:after{content:""}.tribe-marketing-notice{padding:1em}.tribe-marketing-notice+.notice-dismiss:hover:before{color:#fff}.tribe-marketing-notice:after,.tribe-marketing-notice:before{content:"";display:table}.tribe-marketing-notice:after{clear:both}.tribe-marketing-notice .tribe-marketing-notice__icon{display:none;flex-shrink:0;padding:0;position:static}.tribe-marketing-notice .tribe-marketing-notice__icon img{display:inline-block;max-height:100%;max-width:none;vertical-align:middle;width:100%}.tribe-marketing-notice h3{margin-bottom:.5em;margin-top:.5em}.tribe-marketing-notice p{line-height:1.7;margin-bottom:.5em}.tribe-marketing-notice a{text-decoration:none}.tribe-marketing-notice a:hover{text-decoration:underline}#wpcontent .notice-tribe-banner{align-items:center;background:#161b7d;border:0;box-shadow:none;display:flex;justify-content:flex-start;margin:0 0 16px;padding-right:0}.notice-tribe-banner .tribe-marketing-notice__icon{width:47px}.notice-tribe-banner .tribe-marketing-notice__content{margin-left:0;padding:1em 0}.notice-tribe-banner h3{color:#fff;display:block;font-size:.875rem;line-height:1.25;margin:0 0 .25rem}.notice-tribe-banner a{border-bottom:1px solid #fff;line-height:1.25;margin:0;text-decoration:none}.notice-tribe-banner a:hover{text-decoration:none}.notice-tribe-banner a,.notice-tribe-banner p{color:#fff;display:inline-block;font-size:.875rem;line-height:1.25}.notice-tribe-banner p{display:inline-block;margin:0;padding:0}.notice-tribe-banner .tribe-marketing-notice{align-items:center;display:flex;justify-content:flex-start;margin:0 auto;min-height:65px;padding:0 .75rem;width:100%}.events_page_tribe-app-shop .notice-tribe-banner .tribe-marketing-notice,.tribe-welcome .notice-tribe-banner .tribe-marketing-notice,.tribe_events_page_tribe-app-shop .notice-tribe-banner .tribe-marketing-notice{max-width:100%}.notice-tribe-banner .notice-dismiss{position:static}.notice-tribe-banner .notice-dismiss:before{color:#eaf1ff}.tribe-dropdown,.tribe-ea-dropdown{max-width:100%;width:auto}.tribe-dropdown.select2-container .selection,.tribe-ea-dropdown.select2-container .selection{margin-top:inherit}.tribe-dropdown .select2-selection--single,.tribe-ea-dropdown .select2-selection--single{height:32px}.tribe-dropdown .select2-selection--single .select2-selection__clear,.tribe-ea-dropdown .select2-selection--single .select2-selection__clear{line-height:28px}.tribe-dropdown .select2-selection--single .select2-selection__rendered,.tribe-ea-dropdown .select2-selection--single .select2-selection__rendered{line-height:32px;padding-right:28px}.tribe-dropdown.select2-container--focus .select2-selection--single,.tribe-ea-dropdown.select2-container--focus .select2-selection--single{border-color:#5897fb;box-shadow:0 0 5px rgba(0,0,0,.1)}.tribe-dropdown.select2-container--open .select2-search__field,.tribe-ea-dropdown.select2-container--open .select2-search__field{padding:0}.tribe-dropdown.select2-container--open .select2-dropdown--below,.tribe-ea-dropdown.select2-container--open .select2-dropdown--below{margin-top:-1px;border-top:1px solid #aaa}.tribe-dropdown.select2-container--open .select2-dropdown--above,.tribe-ea-dropdown.select2-container--open .select2-dropdown--above{margin-bottom:-16px;border-bottom:1px solid #aaa}.tribe-dropdown.select2-container--open .select2-selection--single,.tribe-ea-dropdown.select2-container--open .select2-selection--single{border-bottom-left-radius:0;border-bottom-right-radius:0;border-color:#aaa}.tribe-dropdown.select2-container--open .select2-selection__arrow b,.tribe-ea-dropdown.select2-container--open .select2-selection__arrow b{transform:rotate(180deg)}.tribe-dropdown.select2-selection--single,.tribe-ea-dropdown.select2-selection--single{background-image:none;border-radius:3px;border:1px solid #ccc;overflow:hidden}.tribe-dropdown.select2-selection--single>.select2-selection__rendered,.tribe-ea-dropdown.select2-selection--single>.select2-selection__rendered{white-space:normal}.tribe-dropdown.select2-selection--single .select2-selection__arrow,.tribe-ea-dropdown.select2-selection--single .select2-selection__arrow{background-image:none;background:transparent;border-left:0;top:2px;width:26px}.tribe-dropdown.select2-selection--single .select2-selection__arrow b,.tribe-ea-dropdown.select2-selection--single .select2-selection__arrow b{background:#fff url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E") no-repeat right 5px top 55%;background-size:auto;background-size:16px 16px;border:0;top:0;bottom:0;left:0;right:0;display:block;width:auto;height:auto;margin:0;padding:0}.tribe-dropdown .select2-selection--multiple .select2-selection__rendered,.tribe-ea-dropdown .select2-selection--multiple .select2-selection__rendered{background-image:none;border-radius:3px;border:1px solid #ccc;min-height:25px}.tribe-dropdown .select2-selection--multiple .select2-selection__rendered .select2-search--inline,.tribe-ea-dropdown .select2-selection--multiple .select2-selection__rendered .select2-search--inline{line-height:25px}.tribe-dropdown .select2-selection--multiple .select2-selection__rendered .select2-search--inline input,.tribe-ea-dropdown .select2-selection--multiple .select2-selection__rendered .select2-search--inline input{padding-top:0;padding-bottom:0}.tribe-dropdown .select2-selection--multiple .select2-selection__rendered .select2-selection__choice,.tribe-ea-dropdown .select2-selection--multiple .select2-selection__rendered .select2-selection__choice{margin-top:2px;padding-top:0;padding-bottom:0;line-height:19px}.tribe-dropdown .select2-selection--multiple .select2-selection__rendered .select2-selection__choice div,.tribe-ea-dropdown .select2-selection--multiple .select2-selection__rendered .select2-selection__choice div{line-height:inherit}.tribe-dropdown .select2-selection--multiple .select2-selection__rendered .select2-selection__choice__remove,.tribe-ea-dropdown .select2-selection--multiple .select2-selection__rendered .select2-selection__choice__remove{top:3px;left:4px;transition-property:border,color}.select2-results .select2-results__option{color:#939393;font-weight:400;margin-bottom:0}.select2-results .select2-results__option[aria-disabled=true]{background-color:#e0e0e0}.select2-results.select2-results__option--highlighted{background-color:#efefef;color:#a1a1a1;cursor:default;display:block}.wp-core-ui .button-red{background-color:#a00;border-bottom-color:#8d1f21;border-color:#9b2124;box-shadow:inset 0 1px 0 rgba(120,200,230,.5);color:#fff;text-decoration:none;text-shadow:0 1px 0 rgba(0,0,0,.1)}.wp-core-ui .button-red.focus,.wp-core-ui .button-red.hover,.wp-core-ui .button-red:focus,.wp-core-ui .button-red:hover{background-color:#a00;border-color:#7f1c1f;box-shadow:inset 0 1px 0 rgba(120,200,230,.6);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.3)}.wp-core-ui .button-red.focus,.wp-core-ui .button-red:focus{border-color:#500f0e;box-shadow:inset 0 1px 0 rgba(120,200,230,.6),1px 1px 2px rgba(0,0,0,.4)}.wp-core-ui .button-red.active,.wp-core-ui .button-red.active:focus,.wp-core-ui .button-red.active:hover,.wp-core-ui .button-red:active{background:#7f1c1f;border-color:#601312 #ae2426 #ae2426;box-shadow:inset 0 1px 0 rgba(0,0,0,.1);color:hsla(0,0%,100%,.95);text-shadow:0 1px 0 rgba(0,0,0,.1)}.wp-core-ui .button-red-disabled,.wp-core-ui .button-red:disabled,.wp-core-ui .button-red[disabled]{color:#e79496!important;background:#ba292b!important;border-color:#7f1c1f!important;box-shadow:none!important;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important;cursor:default}.ticket_form .select2-container .select2-selection--single .select2-selection__arrow{display:none}.clear{zoom:1}.clear:after,.clear:before{content:" ";display:table}.clear:after{clear:both}.checkmark:after{content:"";display:block;width:8px;height:15px;border:solid #0ab152;border-width:0 3px 3px 0;transform:rotate(45deg)}.checkmark.checkmark-right:after{float:right;margin-right:2em}.checkmark.checkmark-left:after{float:left;margin-left:2em}.checkmark.no-checkmark:after{display:none}.complete,.ok,.on,.yes,[data-status=complete],[data-status=ok],[data-status=on],[data-status=yes]{color:#0ab152}.incomplete,.ko,.no,.off,[data-status=incomplete],[data-status=ko],[data-status=no],[data-status=off]{color:#ff2500}.plugin-card-event-tickets-plus .column-downloaded,.plugin-card-event-tickets-plus .column-rating,.plugin-card-event-tickets-plus .column-updated,.plugin-card-event-tickets .column-downloaded,.plugin-card-event-tickets .column-rating,.plugin-card-event-tickets .column-updated,.plugin-card-events-calendar-pro .column-downloaded,.plugin-card-events-calendar-pro .column-rating,.plugin-card-events-calendar-pro .column-updated,.plugin-card-events-community-tickets .column-downloaded,.plugin-card-events-community-tickets .column-rating,.plugin-card-events-community-tickets .column-updated,.plugin-card-events-community .column-downloaded,.plugin-card-events-community .column-rating,.plugin-card-events-community .column-updated,.plugin-card-image-widget-plus .column-downloaded,.plugin-card-image-widget-plus .column-rating,.plugin-card-image-widget-plus .column-updated,.plugin-card-image-widget .column-downloaded,.plugin-card-image-widget .column-rating,.plugin-card-image-widget .column-updated,.plugin-card-the-events-calendar .column-downloaded,.plugin-card-the-events-calendar .column-rating,.plugin-card-the-events-calendar .column-updated,.plugin-card-tribe-eventbrite .column-downloaded,.plugin-card-tribe-eventbrite .column-rating,.plugin-card-tribe-eventbrite .column-updated,.plugin-card-tribe-filterbar .column-downloaded,.plugin-card-tribe-filterbar .column-rating,.plugin-card-tribe-filterbar .column-updated{display:none}body.tribe-welcome{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fff}body.tribe-welcome .update-nag{display:none}body.tribe-welcome #wpcontent{padding:0}body.tribe-welcome .tribe_settings{margin:0}body.tribe-welcome #wpfooter,body.tribe-welcome .tribe_settings>h1{display:none}body.tribe-welcome #wpbody-content{padding-bottom:25px}body.tribe-welcome .tribe-dependency-error{display:none}.tribe-events-admin-content-wrapper{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-style:normal;margin:0 auto;padding:20px;width:calc(100% - 40px)}.tribe-events-admin-card{background:#fff;border:1px solid #e1e1e4;box-sizing:border-box;border-radius:16px;display:block;margin:0 auto 36px;padding:27px;text-align:center}.tribe-events-admin-card--1up{width:100%}.tribe-events-admin-video{-webkit-mask-image:-webkit-radial-gradient(circle,#fff 100%,#000 0);-webkit-transform:rotate(.000001deg);border-radius:16px;height:200px;margin-bottom:72px;overflow:hidden}.tribe-events-admin-video iframe{width:100%}.tribe-events-admin-card--2up .tribe-events-admin-card__title{max-width:260px}.tribe-events-admin-card--3up .tribe-events-admin-card__description{height:71px}.tribe-events-admin-card--3up .tribe-events-admin-card__image{margin-bottom:28px}.tribe-events-admin-card--promo-blue{background-color:#3d54ff;background-image:url(../images/welcome/promo.jpg)}.tribe-events-admin-card--promo-blue .tribe-events-admin-card__description{color:#fff;font-size:16px;text-align:left;margin-bottom:16px}.tribe-events-admin-card--promo-blue .tribe-events-admin-card__title{text-align:left;color:#fff}.tribe-events-admin-graphic{position:absolute;top:106px;right:0;z-index:-1}.tribe-events-admin-graphic--desktop-only{display:none}.tribe-events-admin-graphic--mobile-only{display:block}.tribe-events-admin-card__form{position:relative}input[type=email].tribe-events-admin-card__input{background:#fff;border:1px solid #e1e1e4;box-sizing:border-box;border-radius:16px;font-size:14px;height:54px}input[type=email].tribe-events-admin-card__input::-webkit-input-placeholder{color:rgba(15,16,49,.72);letter-spacing:.5px;padding-left:10px}input[type=email].tribe-events-admin-card__input::-moz-placeholder{color:rgba(15,16,49,.72);letter-spacing:.5px;padding-left:10px}input[type=email].tribe-events-admin-card__input:-ms-input-placeholder,input[type=email].tribe-events-admin-card__input::-ms-input-placeholder{color:rgba(15,16,49,.72);letter-spacing:.5px;padding-left:10px}input[type=email].tribe-events-admin-card__input::placeholder{color:rgba(15,16,49,.72);letter-spacing:.5px;padding-left:10px}.tribe-events-admin-card__button{background-color:#fff;border:none;color:#3d54ff;font-size:14px;font-weight:700;letter-spacing:1px;line-height:16px;position:absolute;right:20px;text-transform:uppercase;top:17px}.tribe-events-admin-card__button:hover{color:#161b7d}.tribe-events-admin-card__description{color:#000;font-size:14px;font-style:normal;font-weight:400;line-height:22px;margin-top:16px}.tribe-events-admin-card__image{display:block;margin:0 auto;height:100px}.tribe-events-admin-card__link{color:#3d54ff;display:inline-block;font-size:16px;font-style:normal;font-weight:700;line-height:18px;margin-top:24px;position:relative;text-decoration:none}.tribe-events-admin-card__link:hover{color:#161b7d}.tribe-events-admin-card__link:after{border-style:solid;border-width:0 0 1px;bottom:-4px;content:"";left:0;position:absolute;width:100%}.tribe-events-admin-card__title{color:#0f1031;font-size:20px;font-weight:700;line-height:23px;margin:auto}.tribe-events-admin-card-grid{max-width:1048px}.tribe-events-admin-quick-nav{background:#fff;border-radius:16px;border:1px solid #e1e1e4;box-sizing:border-box;display:block;margin:40px 0 78px;padding:18px 23px 2px}.tribe-events-admin-quick-nav__link{color:#3d54ff;font-size:16px;font-weight:700;line-height:18px;text-align:center;text-decoration:none}.tribe-events-admin-quick-nav__link:hover{color:#161b7d}.tribe-events-admin-quick-nav__link-item{display:block;padding-bottom:19px}.tribe-events-admin-quick-nav__links{display:inline}.tribe-events-admin-quick-nav__title{color:rgba(15,16,49,.72);display:inline-block;font-size:14px;font-weight:400;line-height:16px;padding-bottom:14px;text-transform:uppercase}.tribe-events-admin-section-header{color:#000;font-size:24px;font-weight:700;line-height:28px;margin:21px 0 24px}.tribe-events-admin-title{padding-top:14px}.tribe-events-admin-title__description{color:#0f1031;font-size:16px;font-weight:400;line-height:24px;max-width:584px;padding-top:15px}.tribe-events-admin-title__heading{color:#0f1031;display:inline-block;font-size:24px;font-weight:700;line-height:28px;margin:5px 0 0}.tribe-events-admin-title__logo{margin-right:8px;vertical-align:top;width:34px}.tribe-events-admin-notice{background-color:#3d54ff;height:65px}.tribe-events-admin-notice .tribe-events-admin-content-wrapper{padding-top:8px;padding-bottom:0}.tribe-events-admin-notice p{color:#fff;display:inline-block;font-family:Helvetica;font-size:16px;line-height:18px;margin-top:0;padding-bottom:12px;padding-left:16px;vertical-align:middle;width:calc(100% - 60px)}.tribe-events-admin-notice__logo{display:inline-block}.tribe-events-admin-tickets .tribe-events-admin-section-header{font-size:28px;line-height:32px}.tribe-events-admin-tickets .tribe-events-admin-graphic--desktop-only{width:365px}.tribe-events-admin-tickets .tribe-events-admin-graphic--mobile-only{width:300px;top:230px}.tribe-events-admin-tickets .tribe-events-admin-title__heading{margin-top:0}.tribe-events-admin-tickets .tribe-events-admin-title__logo{margin-right:4px;width:32px}body.tribe-welcome #fs_connect{border:1px solid #e1e1e4;box-sizing:border-box;border-radius:16px;margin-left:22px;box-shadow:none}body.tribe-welcome #fs_connect .fs-actions{background-color:transparent}body.tribe-welcome #fs_connect .fs-permissions{border-top:1px solid #e1e1e4;margin:0 16px}body.tribe-welcome #fs_connect button{background-color:#3d54ff;border-color:#3d54ff}body.tribe-welcome #fs_connect .button-secondary{border-color:#3d54ff;color:#3d54ff;background:#fff}body.tribe-welcome #fs_connect a{color:#3d54ff}body.tribe-welcome #fs_connect a:focus{box-shadow:none;outline:none}body.tribe-welcome #fs_connect a:hover{color:#161b7d}@media only screen and (-o-min-device-pixel-ratio:2/1),only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (min-device-pixel-ratio:2){#tribe-loading span{background-image:url(../images/tribe-loading@2x.gif)}}@media screen and (max-width:782px){.tribe-half-column,.tribe-row .tribe-half-column:last-child{margin:0 0 20px;width:100%}input[type=email]{width:100%}}@media screen and (max-width:782px){.events-cal .subsubsub{float:none}.events-cal .search-box{width:98%}.events-cal #search-submit{width:100%}.events-cal .tablenav.top{display:none}}@media screen and (min-width:500px){.api-check .tribe-mascot{display:block}.api-check .notice-content{margin-right:180px}}@media screen and (min-width:320px){.tribe-marketing-notice .tribe-marketing-notice__icon{display:block}.notice-tribe-banner .tribe-marketing-notice__content{margin-left:22px}}@media screen and (min-width:600px) and (max-width:782px){.tribe-marketing-notice .tribe-marketing-notice__content{margin-left:145px}.notice-tribe-banner .tribe-marketing-notice__content{margin-left:22px;padding:0}}@media screen and (min-width:782px){.tribe-marketing-notice .tribe-marketing-notice__content{margin-left:130px}.notice-tribe-banner .tribe-marketing-notice__content{margin-left:22px;padding:0}.events_page_tribe-app-shop .notice-tribe-banner .tribe-marketing-notice,.tribe-welcome .notice-tribe-banner .tribe-marketing-notice,.tribe_events_page_tribe-app-shop .notice-tribe-banner .tribe-marketing-notice{max-width:642px}}@media screen and (min-width:400px){.notice-tribe-banner .tribe-marketing-notice__icon{width:67px}}@media screen and (min-width:800px){.notice-tribe-banner h3{display:inline-block;font-size:1rem;margin:0 .5rem 0 0}.notice-tribe-banner a{line-height:1.5}.notice-tribe-banner a,.notice-tribe-banner p{font-size:1rem}.notice-tribe-banner p{margin:0 .5rem 0 0}.notice-tribe-banner .tribe-marketing-notice__cta{display:inline-block;margin-left:.5rem}}@media screen and (min-width:1215px){.events_page_tribe-app-shop .notice-tribe-banner .tribe-marketing-notice,.tribe_events_page_tribe-app-shop .notice-tribe-banner .tribe-marketing-notice{max-width:992px}.tribe-welcome .notice-tribe-banner .tribe-marketing-notice{max-width:1036px}}@media screen and (min-width:710px){.tribe-events-admin-content-wrapper{width:670px}.tribe-events-admin-card--1up{display:inline-block;width:calc(50% - 18px);margin-left:32px}.tribe-events-admin-card--1up .tribe-events-admin-card__description{height:71px}.tribe-events-admin-card--1up .tribe-events-admin-card__image{margin-bottom:28px}.tribe-events-admin-card--2up{display:inline-block;width:calc(50% - 20px)}.tribe-events-admin-card--2up.tribe-events-admin-card--first{margin-right:36px}.tribe-events-admin-card--2up.tribe-events-admin-card--last{margin-right:0}.tribe-events-admin-card--2up .tribe-events-admin-card__image{height:100px;margin-bottom:12px}.tribe-events-admin-card--2up .tribe-events-admin-card__title{max-width:340px;margin-bottom:27px}.tribe-events-admin-card--3up{display:inline-block;margin-bottom:32px;width:calc(50% - 18px)}.tribe-events-admin-card--3up.tribe-events-admin-card--first{margin-right:32px}.tribe-events-admin-card--3up.tribe-events-admin-card--middle{margin-right:0}.tribe-events-admin-card--promo-blue{display:block;margin-left:0;min-height:170px;width:100%}.tribe-events-admin-card--promo-blue .tribe-events-admin-card__description{float:left;max-width:300px}.tribe-events-admin-graphic{top:0;max-width:250px}.tribe-events-admin-graphic--desktop-only{display:block}.tribe-events-admin-graphic--mobile-only{display:none}.tribe-events-admin-card__form{float:right;width:300px}input[type=email].tribe-events-admin-card__input{width:300px}.tribe-events-admin-card__title{font-size:20px;line-height:23px}.tribe-events-admin-section-header{font-size:28px;line-height:32px;margin-bottom:21px}.tribe-events-admin-title{padding-top:50px}.tribe-events-admin-title__description{padding-top:15px}.tribe-events-admin-title__heading{font-size:48px;line-height:55px;margin:0}.tribe-events-admin-title__logo{margin-right:14px;padding-top:5px;width:40px}.tribe-events-admin-tickets .tribe-events-admin-card__title{font-size:18px}.tribe-events-admin-tickets .tribe-events-admin-card--2up .tribe-events-admin-card__title{font-size:18px;height:66px}.tribe-events-admin-tickets .tribe-events-admin-title__logo{margin-right:8px;padding-top:4px;width:60px}}@media screen and (min-width:1217px){.tribe-events-admin-content-wrapper{width:100%;max-width:1060px}.tribe-events-admin-card--1up{margin:0 0 36px;padding:33px 44px 30px;text-align:left;width:1012px}.tribe-events-admin-card--1up .tribe-events-admin-card__description{height:auto}.tribe-events-admin-card--1up .tribe-events-admin-card__image{float:left;margin:0 48px 10px 0}.tribe-events-admin-card--2up{margin-right:36px;width:486px}.tribe-events-admin-card--3up{width:310px}.tribe-events-admin-card--3up.tribe-events-admin-card--first,.tribe-events-admin-card--3up.tribe-events-admin-card--middle{margin-right:36px}.tribe-events-admin-card--3up.tribe-events-admin-card--last{margin-right:0}.tribe-events-admin-card--promo-blue{min-height:150px}.tribe-events-admin-card--promo-blue .tribe-events-admin-card__description{max-width:450px}.tribe-events-admin-graphic{max-width:none}.tribe-events-admin-card__form,input[type=email].tribe-events-admin-card__input{width:365px}.tribe-events-admin-quick-nav{display:inline-block;border-radius:100px;margin:24px 0 94px;max-width:1010px;padding:0 36px 0 0;height:54px}.tribe-events-admin-quick-nav__link-item{display:inline-block;padding:18px 10px 0}.tribe-events-admin-quick-nav__title{padding:19px 6px 17px 32px}.tribe-events-admin-tickets .tribe-events-admin-card--2up .tribe-events-admin-card__title{height:auto}}
|
common/src/resources/images/mascot.png
CHANGED
Binary file
|
common/src/resources/js/admin-log-controls.js
CHANGED
@@ -59,7 +59,7 @@ var tribe_logger_data = tribe_logger_data || {};
|
|
59 |
function on_success( data ) {
|
60 |
unfreeze();
|
61 |
|
62 |
-
if (
|
63 |
$viewer.html( to_table( data.data.entries ) );
|
64 |
update_download_link();
|
65 |
}
|
@@ -100,7 +100,7 @@ var tribe_logger_data = tribe_logger_data || {};
|
|
100 |
var matches = url.match(/&log=([a-z0-9\-]+)/i);
|
101 |
|
102 |
// Update or add the log parameter
|
103 |
-
if (
|
104 |
url = url.replace( matches[0], '&log=' + log );
|
105 |
} else if ( url.indexOf( '?' ) ) {
|
106 |
url = url + '&log=' + log;
|
@@ -172,5 +172,5 @@ var tribe_logger_data = tribe_logger_data || {};
|
|
172 |
current_engine = get_current_engine();
|
173 |
|
174 |
update_download_link();
|
175 |
-
$options.
|
176 |
} )( jQuery, tribe_logger_admin );
|
59 |
function on_success( data ) {
|
60 |
unfreeze();
|
61 |
|
62 |
+
if ( Array.isArray( data.data.entries ) ) {
|
63 |
$viewer.html( to_table( data.data.entries ) );
|
64 |
update_download_link();
|
65 |
}
|
100 |
var matches = url.match(/&log=([a-z0-9\-]+)/i);
|
101 |
|
102 |
// Update or add the log parameter
|
103 |
+
if ( Array.isArray( matches ) && 2 === matches.length ) {
|
104 |
url = url.replace( matches[0], '&log=' + log );
|
105 |
} else if ( url.indexOf( '?' ) ) {
|
106 |
url = url + '&log=' + log;
|
172 |
current_engine = get_current_engine();
|
173 |
|
174 |
update_download_link();
|
175 |
+
$options.on( 'change', update );
|
176 |
} )( jQuery, tribe_logger_admin );
|
common/src/resources/js/admin-log-controls.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
var tribe_logger_admin=tribe_logger_admin||{},tribe_logger_data=tribe_logger_data||{};!function(e,
|
1 |
+
var tribe_logger_admin=tribe_logger_admin||{},tribe_logger_data=tribe_logger_data||{};!function(e,r){var t=!1,n="",a="",o=!1,i=e("#tribe-log-controls"),l=i.find("select"),d=i.find(".working"),g=e("#tribe-log-viewer"),c=e("a.download_log");function s(e){v(),Array.isArray(e.data.entries)&&(g.html(function(e){var r="<table>";for(var t in e){for(var n in r+="<tr>",e[t])r+="<td>"+e[t][n]+"</td>";r+="</tr>"}return r+"</table>"}(e.data.entries)),f())}function f(){if(!(1>c.length)){var e=c.attr("href"),r=encodeURI(_()),t=e.match(/&log=([a-z0-9\-]+)/i);e=Array.isArray(t)&&2===t.length?e.replace(t[0],"&log="+r):e.indexOf("?")?e+"&log="+r:e+"?log="+r,c.attr("href",e)}}function u(){v()}function v(){t=!1,l.prop("disabled",!1),d.addClass("hidden")}function _(){return e("#log-selector").find(":selected").attr("name")}function b(){return e("#log-engine").find(":selected").attr("name")}n=_(),a=b(),f(),l.on("change",function(){var r,i;t||(r=_(),i=b(),r!==n||i!==a?(o=!0,n=r,a=i):o=!1,t=!0,l.prop("disabled",!0),d.removeClass("hidden"),g={action:"tribe_logging_controls",check:tribe_logger_data.check,"log-level":e("#log-level").find(":selected").attr("name"),"log-engine":e("#log-engine").find(":selected").attr("name")},o&&(g["log-view"]=n),e.ajax(ajaxurl,{method:"POST",success:s,error:u,dataType:"json",data:g}));var g})}(jQuery);
|
common/src/resources/js/admin/help-page.js
CHANGED
@@ -27,9 +27,12 @@ tribe.helpPage = tribe.helpPage || {};
|
|
27 |
var button_text = tribe_system_info.clipboard_btn_text;
|
28 |
|
29 |
//Prevent Button From Doing Anything Else
|
30 |
-
$( '.system-info-copy-btn' ).
|
31 |
-
|
32 |
-
|
|
|
|
|
|
|
33 |
|
34 |
clipboard.on( 'success', function ( event ) {
|
35 |
event.clearSelection();
|
27 |
var button_text = tribe_system_info.clipboard_btn_text;
|
28 |
|
29 |
//Prevent Button From Doing Anything Else
|
30 |
+
$( '.system-info-copy-btn' ).on(
|
31 |
+
'click',
|
32 |
+
function ( e ) {
|
33 |
+
e.preventDefault();
|
34 |
+
}
|
35 |
+
);
|
36 |
|
37 |
clipboard.on( 'success', function ( event ) {
|
38 |
event.clearSelection();
|
common/src/resources/js/dependency.js
CHANGED
@@ -9,7 +9,7 @@
|
|
9 |
* active = the class we use to denote an "active" (not hidden & enabled) element
|
10 |
* selector = the css selector for the dependency, must be an ID, includes the hash "#"
|
11 |
* linked = data attribute for linked dependents mainly for radio buttons to
|
12 |
-
* ensure they all get triggered
|
13 |
*/
|
14 |
( function( $, _, obj ) {
|
15 |
'use strict';
|
9 |
* active = the class we use to denote an "active" (not hidden & enabled) element
|
10 |
* selector = the css selector for the dependency, must be an ID, includes the hash "#"
|
11 |
* linked = data attribute for linked dependents mainly for radio buttons to
|
12 |
+
* ensure they all get triggered together
|
13 |
*/
|
14 |
( function( $, _, obj ) {
|
15 |
'use strict';
|
common/src/resources/js/dropdowns.js
CHANGED
@@ -153,7 +153,7 @@ var tribe_dropdowns = window.tribe_dropdowns || {};
|
|
153 |
* @return {Object|boolean}
|
154 |
*/
|
155 |
function find_item( description, haystack ) {
|
156 |
-
if ( !
|
157 |
return false;
|
158 |
}
|
159 |
|
@@ -168,7 +168,7 @@ var tribe_dropdowns = window.tribe_dropdowns || {};
|
|
168 |
return possible_match;
|
169 |
}
|
170 |
|
171 |
-
if ( possible_match.hasOwnProperty( 'children' ) &&
|
172 |
var subsearch = find_item( description, possible_match.children );
|
173 |
|
174 |
if ( subsearch ) {
|
153 |
* @return {Object|boolean}
|
154 |
*/
|
155 |
function find_item( description, haystack ) {
|
156 |
+
if ( ! _.isArray( haystack ) ) {
|
157 |
return false;
|
158 |
}
|
159 |
|
168 |
return possible_match;
|
169 |
}
|
170 |
|
171 |
+
if ( possible_match.hasOwnProperty( 'children' ) && _.isArray( possible_match.children ) ) {
|
172 |
var subsearch = find_item( description, possible_match.children );
|
173 |
|
174 |
if ( subsearch ) {
|
common/src/resources/js/dropdowns.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
var tribe_dropdowns=window.tribe_dropdowns||{};!function(e,t,r){"use strict";t.selector={dropdown:".tribe-dropdown",created:".tribe-dropdown-created",searchField:".select2-search__field"},e.fn.tribe_dropdowns=function(){return t.dropdown(this,{}),this},t.freefrom_create_search_choice=function(t){var a=e.trim(t.term);if(""===a)return null;var o=this.options.options,s=o.$select;if(a.match(o.regexToken)&&(!s.is("[data-int]")||s.is("[data-int]")&&a.match(/\d+/))){var n={id:a,text:a,new:!0};return s.is("[data-create-choice-template]")&&(n.text=r.template(s.data("createChoiceTemplate"))({term:a})),n}return null},t.search_id=function(e){var t=void 0;return void 0!==e.id?t=e.id:void 0!==e.ID?t=e.ID:void 0!==e.value&&(t=e.value),void 0===e?void 0:t},t.matcher=function(a,o){if(""===e.trim(a.term))return o;if(void 0===o.text)return null;var s=e.trim(a.term),n=o.text,i=e(o.element).closest("select").data("dropdown"),d=-1!==n.toUpperCase().indexOf(s.toUpperCase());if(!d&&void 0!==i.tags){var c=r.where(i.tags,{text:n});if(i.tags.length>0&&r.isObject(c))d=-1!==t.search_id(c[0]).toUpperCase().indexOf(s.toUpperCase())}return d},t.init_selection=function(t,
|
1 |
+
var tribe_dropdowns=window.tribe_dropdowns||{};!function(e,t,r){"use strict";t.selector={dropdown:".tribe-dropdown",created:".tribe-dropdown-created",searchField:".select2-search__field"},e.fn.tribe_dropdowns=function(){return t.dropdown(this,{}),this},t.freefrom_create_search_choice=function(t){var a=e.trim(t.term);if(""===a)return null;var o=this.options.options,s=o.$select;if(a.match(o.regexToken)&&(!s.is("[data-int]")||s.is("[data-int]")&&a.match(/\d+/))){var n={id:a,text:a,new:!0};return s.is("[data-create-choice-template]")&&(n.text=r.template(s.data("createChoiceTemplate"))({term:a})),n}return null},t.search_id=function(e){var t=void 0;return void 0!==e.id?t=e.id:void 0!==e.ID?t=e.ID:void 0!==e.value&&(t=e.value),void 0===e?void 0:t},t.matcher=function(a,o){if(""===e.trim(a.term))return o;if(void 0===o.text)return null;var s=e.trim(a.term),n=o.text,i=e(o.element).closest("select").data("dropdown"),d=-1!==n.toUpperCase().indexOf(s.toUpperCase());if(!d&&void 0!==i.tags){var c=r.where(i.tags,{text:n});if(i.tags.length>0&&r.isObject(c))d=-1!==t.search_id(c[0]).toUpperCase().indexOf(s.toUpperCase())}return d},t.init_selection=function(t,a){var o=t.is("[multiple]"),s=t.data("dropdown"),n=(t.data("isEmpty"),t.val().split(s.regexSplit)),i=[];if(e(n).each(function(e,a){var o=function e(t,a){if(!r.isArray(a))return!1;for(var o in a){var s=a[o];if(s.hasOwnProperty("id")&&s.id==t.id)return s;if(s.hasOwnProperty("text")&&s.text==t.text)return s;if(s.hasOwnProperty("children")&&r.isArray(s.children)){var n=e(t,s.children);if(n)return n}}return!1}({id:this,text:this},s.ajax?t.data("options"):s.data);o&&o.selected&&i.push(o)}),i.length&&o)a(i);else{if(!i.length)return void a(!1);a(i[0])}},t.getSelectClasses=function(e){var t=e.attr("class").split(/\s+/);return r.difference(t,["select2-hidden-accessible","hide-before-select2-init"])},t.element=function(a,o){var s,n=e(a);o=e.extend({},o);if(n.addClass(t.selector.created.className()),o.$select=n,o.dropdownAutoWidth=!0,o.width="resolve",o.containerCss={},n.is(":visible")&&(o.containerCss.display="inline-block",o.containerCss.position="relative"),o.dropdownCss={},o.dropdownCss.width="auto",n.is("[data-dropdown-css-width]")&&(o.dropdownCss.width=n.data("dropdown-css-width"),o.dropdownCss.width&&"false"!==o.dropdownCss.width||(delete o.dropdownCss.width,delete o.containerCss)),o.allowClear=!0,n.is("[data-prevent-clear]")&&(o.allowClear=!1),n.is("[data-searching-placeholder]")&&(o.formatSearching=n.data("searching-placeholder")),!n.is("[data-placeholder]")&&n.is("[placeholder]")&&(o.placeholder=n.attr("placeholder")),n.is("[data-options]")&&(o.data=n.data("options")),o.minimumResultsForSearch=10,n.is("[data-hide-search]")&&(o.minimumResultsForSearch=1/0),n.is("[data-force-search]")&&delete o.minimumResultsForSearch,n.is("[data-freeform]")&&(o.createTag=t.freefrom_create_search_choice,o.tags=!0,n.data("tags",!0)),n.is("[multiple]")&&(o.multiple=!0,n.is("[data-maximum-selection-size]")&&(o.maximumSelectionSize=n.data("maximum-selection-size")),n.is("data-separator")||n.data("separator",","),r.isArray(n.data("separator"))?o.tokenSeparators=n.data("separator"):o.tokenSeparators=[n.data("separator")],o.separator=n.data("separator"),o.regexSeparatorElements=["^("],o.regexSplitElements=["(?:"],e.each(o.tokenSeparators,function(e,t){o.regexSeparatorElements.push("[^"+t+"]+"),o.regexSplitElements.push("["+t+"]")}),o.regexSeparatorElements.push(")$"),o.regexSplitElements.push(")"),o.regexSeparatorString=o.regexSeparatorElements.join(""),o.regexSplitString=o.regexSplitElements.join(""),o.regexToken=new RegExp(o.regexSeparatorString,"ig"),o.regexSplit=new RegExp(o.regexSplitString,"ig")),n.is("[data-tags]")&&(o.tags=n.data("tags"),o.createSearchChoice=function(e,t){if(e.match(o.regexToken))return{id:e,text:e}},0===o.tags.length&&(o.formatNoMatches=function(){return n.attr("placeholder")})),n.is("[data-source]")){var i=n.data("source");o.data={results:[]},o.formatResult=function(t,r,a){return void 0!==t.breadcrumbs?e.merge(t.breadcrumbs,[t.text]).join(" » "):t.text},o.ajax={dataType:"json",type:"POST",url:t.ajaxurl(),processResults:function(t,r,a){return e.isPlainObject(t)&&void 0!==t.success?e.isPlainObject(t.data)&&void 0!==t.data.results?t.success?t.data:("string"===e.type(t.data.message)?console.error(t.data.message):console.error("The Select2 search failed in some way... Verify the source."),{results:[]}):(console.error("We received a malformed results array, could not complete the Select2 Search."),{results:[]}):(console.error("We received a malformed Object, could not complete the Select2 Search."),{results:[]})}},o.ajax.data=function(e,t){return{action:"tribe_dropdown",source:i,search:e,page:t,args:n.data("source-args")}}}n.is("[data-attach-container]")&&(n.is("[multiple]")?(e.fn.select2.amd.define("AttachedDropdownAdapter",["select2/utils","select2/dropdown","select2/dropdown/attachContainer"],function(e,t,r){return e.Decorate(t,r)}),o.dropdownAdapter=e.fn.select2.amd.require("AttachedDropdownAdapter")):(e.fn.select2.amd.define("AttachedWithSearchDropdownAdapter",["select2/utils","select2/dropdown","select2/dropdown/search","select2/dropdown/minimumResultsForSearch","select2/dropdown/attachContainer"],function(e,t,r,a,o){var s=e.Decorate(t,o);return s=e.Decorate(s,r),s=e.Decorate(s,a)}),o.dropdownAdapter=e.fn.select2.amd.require("AttachedWithSearchDropdownAdapter"))),n.data("dropdown",o),(s=n.select2(o)).data("select2").$container.addClass(t.getSelectClasses(n).join(" ")),s.data("select2").$container.removeClass("hide-before-select2-init"),s.on("select2:open",t.action_select2_open)},t.ajaxurl=function(){return void 0!==window.ajaxurl?window.ajaxurl:"undefined"!=typeof TEC&&void 0!==TEC.ajaxurl?TEC.ajaxurl:void console.error("Dropdowns framework cannot properly do an AJAX request without the WordPress `ajaxurl` variable setup.")},t.action_select2_open=function(r){var a=e(this),o=(a.data("dropdown"),a.data("select2")),s=o.$dropdown.find(t.selector.searchField);o.$dropdown.addClass(t.selector.dropdown.className()),a.is("[data-search-placeholder]")&&s.attr("placeholder",a.data("searchPlaceholder"))},t.dropdown=function(e,r){var a=e.not(".select2-offscreen, .select2-container, "+t.selector.created.className());return 0===a.length?a:(r||(r={}),a.each(function(e,a){t.element(a,r)}),a)},e(function(){e(t.selector.dropdown).tribe_dropdowns()}),e(window).on("unload",function(){e(t.selector.dropdown).tribe_dropdowns()})}(jQuery,tribe_dropdowns,window.underscore||window._);
|
common/src/views/dialog/button.php
CHANGED
@@ -3,18 +3,28 @@
|
|
3 |
* Dialog Button Template
|
4 |
* The button template for Tribe Dialog trigger.
|
5 |
*
|
6 |
-
* Override this template in your own theme by creating a file at [your-theme]/tribe/dialogs/
|
7 |
*
|
8 |
* @since 4.10.0
|
|
|
|
|
9 |
*
|
10 |
* @package Tribe
|
11 |
-
* @version 4.
|
12 |
*/
|
13 |
-
|
14 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
?>
|
16 |
<button
|
17 |
class="<?php echo esc_attr( $classes ); ?>"
|
|
|
18 |
data-content="<?php echo esc_attr( 'dialog-content-' . $id ); ?>"
|
19 |
data-js="<?php echo esc_attr( 'trigger-dialog-' . $id ); ?>"
|
20 |
<?php if ( ! empty( $button_id ) ) : ?>
|
3 |
* Dialog Button Template
|
4 |
* The button template for Tribe Dialog trigger.
|
5 |
*
|
6 |
+
* Override this template in your own theme by creating a file at [your-theme]/tribe/dialogs/button.php
|
7 |
*
|
8 |
* @since 4.10.0
|
9 |
+
* @since 4.12.15 Add data attributes to the button.
|
10 |
+
* @since 4.12.15 Don't render template if `$button_display` is set to false.
|
11 |
*
|
12 |
* @package Tribe
|
13 |
+
* @version 4.12.15
|
14 |
*/
|
15 |
+
|
16 |
+
if ( empty( $button_display ) ) {
|
17 |
+
return;
|
18 |
+
}
|
19 |
+
|
20 |
+
$classes = $button_classes ?: 'tribe-button';
|
21 |
+
$classes = implode( ' ', (array) $classes );
|
22 |
+
$attributes = $button_attributes ?: [];
|
23 |
+
|
24 |
?>
|
25 |
<button
|
26 |
class="<?php echo esc_attr( $classes ); ?>"
|
27 |
+
<?php tribe_attributes( $attributes ); ?>
|
28 |
data-content="<?php echo esc_attr( 'dialog-content-' . $id ); ?>"
|
29 |
data-js="<?php echo esc_attr( 'trigger-dialog-' . $id ); ?>"
|
30 |
<?php if ( ! empty( $button_id ) ) : ?>
|
common/src/views/v2/components/icons/arrow-right.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* View: Arrow Right Icon
|
4 |
+
*
|
5 |
+
* Override this template in your own theme by creating a file at:
|
6 |
+
* [your-theme]/tribe/v2/components/icons/arrow-right.php
|
7 |
+
*
|
8 |
+
* See more documentation about our views templating system.
|
9 |
+
*
|
10 |
+
* @link http://m.tri.be/1aiy
|
11 |
+
*
|
12 |
+
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
+
*
|
14 |
+
* @version 4.12.14
|
15 |
+
*
|
16 |
+
*/
|
17 |
+
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--arrow-right' ];
|
18 |
+
|
19 |
+
if ( ! empty( $classes ) ) {
|
20 |
+
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 22 19" xmlns="http://www.w3.org/2000/svg"><path d="M11.648 0L9.62 1.956l6.23 6.005H0v2.793h15.85L9.62 16.76l2.028 1.956 9.705-9.358z" class="tribe-common-c-svgicon__svg-fill"/></svg>
|
common/src/views/v2/components/icons/caret-down.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* View: Caret Down Icon
|
4 |
+
*
|
5 |
+
* Override this template in your own theme by creating a file at:
|
6 |
+
* [your-theme]/tribe/v2/components/icons/caret-down.php
|
7 |
+
*
|
8 |
+
* See more documentation about our views templating system.
|
9 |
+
*
|
10 |
+
* @link http://m.tri.be/1aiy
|
11 |
+
*
|
12 |
+
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
+
*
|
14 |
+
* @version 4.12.14
|
15 |
+
*
|
16 |
+
*/
|
17 |
+
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--caret-down' ];
|
18 |
+
|
19 |
+
if ( ! empty( $classes ) ) {
|
20 |
+
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 10 7" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.008.609L5 4.6 8.992.61l.958.958L5 6.517.05 1.566l.958-.958z" class="tribe-common-c-svgicon__svg-fill"/></svg>
|
common/src/views/v2/components/icons/close-alt.php
CHANGED
@@ -11,7 +11,7 @@
|
|
11 |
*
|
12 |
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
*
|
14 |
-
* @version 4.12.
|
15 |
*
|
16 |
*/
|
17 |
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--close-alt' ];
|
@@ -20,4 +20,4 @@ if ( ! empty( $classes ) ) {
|
|
20 |
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
}
|
22 |
?>
|
23 |
-
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 8 8"
|
11 |
*
|
12 |
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
*
|
14 |
+
* @version 4.12.14
|
15 |
*
|
16 |
*/
|
17 |
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--close-alt' ];
|
20 |
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
}
|
22 |
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 8 8" xmlns="http://www.w3.org/2000/svg"><path d="M1 1l6 6M7 1L1 7" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>
|
common/src/views/v2/components/icons/close.php
CHANGED
@@ -11,7 +11,7 @@
|
|
11 |
*
|
12 |
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
*
|
14 |
-
* @version 4.12.
|
15 |
*
|
16 |
*/
|
17 |
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--close' ];
|
@@ -20,4 +20,4 @@ if ( ! empty( $classes ) ) {
|
|
20 |
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
}
|
22 |
?>
|
23 |
-
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 12 12"
|
11 |
*
|
12 |
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
*
|
14 |
+
* @version 4.12.14
|
15 |
*
|
16 |
*/
|
17 |
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--close' ];
|
20 |
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
}
|
22 |
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 12 12" xmlns="http://www.w3.org/2000/svg"><path d="M11 1L1 11M1 1l10 10" stroke-width="2" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/></svg>
|
common/src/views/v2/components/icons/day.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* View: Day Icon
|
4 |
+
*
|
5 |
+
* Override this template in your own theme by creating a file at:
|
6 |
+
* [your-theme]/tribe/v2/components/icons/day.php
|
7 |
+
*
|
8 |
+
* See more documentation about our views templating system.
|
9 |
+
*
|
10 |
+
* @link http://m.tri.be/1aiy
|
11 |
+
*
|
12 |
+
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
+
*
|
14 |
+
* @version 4.12.14
|
15 |
+
*
|
16 |
+
*/
|
17 |
+
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--day' ];
|
18 |
+
|
19 |
+
if ( ! empty( $classes ) ) {
|
20 |
+
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 19 18" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M.363 17.569V.43C.363.193.526 0 .726 0H18c.201 0 .364.193.364.431V17.57c0 .238-.163.431-.364.431H.726c-.2 0-.363-.193-.363-.431zm16.985-16.33H1.354v2.314h15.994V1.24zM1.354 4.688h15.994v12.07H1.354V4.687zm11.164 9.265v-1.498c0-.413.335-.748.748-.748h1.498c.413 0 .748.335.748.748v1.498a.749.749 0 01-.748.748h-1.498a.749.749 0 01-.748-.748z" class="tribe-common-c-svgicon__svg-fill"/></svg>
|
common/src/views/v2/components/icons/dot.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* View: Dot Icon
|
4 |
+
*
|
5 |
+
* Override this template in your own theme by creating a file at:
|
6 |
+
* [your-theme]/tribe/v2/components/icons/dot.php
|
7 |
+
*
|
8 |
+
* See more documentation about our views templating system.
|
9 |
+
*
|
10 |
+
* @link http://m.tri.be/1aiy
|
11 |
+
*
|
12 |
+
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
+
*
|
14 |
+
* @version 4.12.14
|
15 |
+
*
|
16 |
+
*/
|
17 |
+
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--dot' ];
|
18 |
+
|
19 |
+
if ( ! empty( $classes ) ) {
|
20 |
+
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 15 15" xmlns="http://www.w3.org/2000/svg"><circle cx="7.5" cy="7.5" r="7.5"/></svg>
|
common/src/views/v2/components/icons/error.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* View: Error Icon
|
4 |
+
*
|
5 |
+
* Override this template in your own theme by creating a file at:
|
6 |
+
* [your-theme]/tribe/v2/components/icons/error.php
|
7 |
+
*
|
8 |
+
* See more documentation about our views templating system.
|
9 |
+
*
|
10 |
+
* @link http://m.tri.be/1aiy
|
11 |
+
*
|
12 |
+
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
+
*
|
14 |
+
* @version 4.12.14
|
15 |
+
*
|
16 |
+
*/
|
17 |
+
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--error' ];
|
18 |
+
|
19 |
+
if ( ! empty( $classes ) ) {
|
20 |
+
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 18 18"><g fill-rule="evenodd" transform="translate(1 1)"><circle cx="8" cy="8" r="7.467" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" class="tribe-common-c-svgicon__svg-stroke"/><circle cx="8" cy="11.733" r="1.067" fill-rule="nonzero" class="tribe-common-c-svgicon__svg-fill"/><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M8 3.733v4.8" class="tribe-common-c-svgicon__svg-stroke"/></g></svg>
|
common/src/views/v2/components/icons/featured.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* View: Featured Icon
|
4 |
+
*
|
5 |
+
* Override this template in your own theme by creating a file at:
|
6 |
+
* [your-theme]/tribe/v2/components/icons/featured.php
|
7 |
+
*
|
8 |
+
* See more documentation about our views templating system.
|
9 |
+
*
|
10 |
+
* @link http://m.tri.be/1aiy
|
11 |
+
*
|
12 |
+
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
+
*
|
14 |
+
* @version 4.12.14
|
15 |
+
*
|
16 |
+
*/
|
17 |
+
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--featured' ];
|
18 |
+
|
19 |
+
if ( ! empty( $classes ) ) {
|
20 |
+
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 8 10" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M0 0h8v10L4.049 7.439 0 10V0z"/></svg>
|
common/src/views/v2/components/icons/filter.php
CHANGED
@@ -11,7 +11,7 @@
|
|
11 |
*
|
12 |
* @var array $classes Additional classes to add to the svg icon.
|
13 |
*
|
14 |
-
* @version 4.12.
|
15 |
*
|
16 |
*/
|
17 |
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--filter' ];
|
@@ -20,4 +20,4 @@ if ( ! empty( $classes ) ) {
|
|
20 |
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
}
|
22 |
?>
|
23 |
-
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 18 18"
|
11 |
*
|
12 |
* @var array $classes Additional classes to add to the svg icon.
|
13 |
*
|
14 |
+
* @version 4.12.14
|
15 |
*
|
16 |
*/
|
17 |
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--filter' ];
|
20 |
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
}
|
22 |
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M4.44 1a.775.775 0 10-1.55 0v1.89H1a.775.775 0 000 1.55h1.89v1.893a.775.775 0 001.55 0V4.44H17a.775.775 0 000-1.55H4.44V1zM.224 14.332c0-.428.347-.775.775-.775h12.56v-1.893a.775.775 0 011.55 0v1.893h1.89a.775.775 0 010 1.55h-1.89v1.89a.775.775 0 01-1.55 0v-1.89H.998a.775.775 0 01-.775-.775z"/></svg>
|
common/src/views/v2/components/icons/list.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* View: List Icon
|
4 |
+
*
|
5 |
+
* Override this template in your own theme by creating a file at:
|
6 |
+
* [your-theme]/tribe/v2/components/icons/list.php
|
7 |
+
*
|
8 |
+
* See more documentation about our views templating system.
|
9 |
+
*
|
10 |
+
* @link http://m.tri.be/1aiy
|
11 |
+
*
|
12 |
+
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
+
*
|
14 |
+
* @version 4.12.14
|
15 |
+
*
|
16 |
+
*/
|
17 |
+
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--list' ];
|
18 |
+
|
19 |
+
if ( ! empty( $classes ) ) {
|
20 |
+
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 19 19" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M.451.432V17.6c0 .238.163.432.364.432H18.12c.2 0 .364-.194.364-.432V.432c0-.239-.163-.432-.364-.432H.815c-.2 0-.364.193-.364.432zm.993.81h16.024V3.56H1.444V1.24zM17.468 3.56H1.444v13.227h16.024V3.56z" class="tribe-common-c-svgicon__svg-fill"/><g clip-path="url(#clip0)" class="tribe-common-c-svgicon__svg-fill"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.831 4.912v1.825c0 .504.409.913.913.913h1.825a.913.913 0 00.912-.913V4.912A.913.913 0 0014.57 4h-1.825a.912.912 0 00-.913.912z"/><path d="M8.028 7.66a.449.449 0 00.446-.448v-.364c0-.246-.2-.448-.446-.448h-4.13a.449.449 0 00-.447.448v.364c0 .246.201.448.447.448h4.13zM9.797 5.26a.449.449 0 00.447-.448v-.364c0-.246-.201-.448-.447-.448h-5.9a.449.449 0 00-.446.448v.364c0 .246.201.448.447.448h5.9z"/></g><g clip-path="url(#clip1)" class="tribe-common-c-svgicon__svg-fill"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.831 10.912v1.825c0 .505.409.913.913.913h1.825a.913.913 0 00.912-.912v-1.825A.913.913 0 0014.57 10h-1.825a.912.912 0 00-.913.912z"/><path d="M8.028 13.66a.449.449 0 00.446-.448v-.364c0-.246-.2-.448-.446-.448h-4.13a.449.449 0 00-.447.448v.364c0 .246.201.448.447.448h4.13zM9.797 11.26a.449.449 0 00.447-.448v-.364c0-.246-.201-.448-.447-.448h-5.9a.449.449 0 00-.446.448v.364c0 .246.201.448.447.448h5.9z"/></g><defs><clipPath id="clip0"><path transform="translate(3.451 4)" d="M0 0h13v4H0z"/></clipPath><clipPath id="clip1"><path transform="translate(3.451 10)" d="M0 0h13v4H0z"/></clipPath></defs></svg>
|
common/src/views/v2/components/icons/location.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* View: Location Icon
|
4 |
+
*
|
5 |
+
* Override this template in your own theme by creating a file at:
|
6 |
+
* [your-theme]/tribe/v2/components/icons/location.php
|
7 |
+
*
|
8 |
+
* See more documentation about our views templating system.
|
9 |
+
*
|
10 |
+
* @link http://m.tri.be/1aiy
|
11 |
+
*
|
12 |
+
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
+
*
|
14 |
+
* @version 4.12.14
|
15 |
+
*
|
16 |
+
*/
|
17 |
+
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--location' ];
|
18 |
+
|
19 |
+
if ( ! empty( $classes ) ) {
|
20 |
+
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 10 16" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.682 1.548a5.166 5.166 0 00-7.375 0C-3.073 5.984 4.959 15.36 4.994 15.36c.051-.001 8.092-9.35 3.688-13.812zM4.994 2.833c1.27 0 2.301 1.043 2.301 2.331 0 1.287-1.03 2.33-2.301 2.33-1.272 0-2.3-1.043-2.3-2.33 0-1.287 1.028-2.331 2.3-2.331z"/></svg>
|
common/src/views/v2/components/icons/mail.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* View: Mail Icon
|
4 |
+
*
|
5 |
+
* Override this template in your own theme by creating a file at:
|
6 |
+
* [your-theme]/tribe/v2/components/icons/mail.php
|
7 |
+
*
|
8 |
+
* See more documentation about our views templating system.
|
9 |
+
*
|
10 |
+
* @link http://m.tri.be/1aiy
|
11 |
+
*
|
12 |
+
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
+
*
|
14 |
+
* @version 4.12.14
|
15 |
+
*
|
16 |
+
*/
|
17 |
+
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--mail' ];
|
18 |
+
|
19 |
+
if ( ! empty( $classes ) ) {
|
20 |
+
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg"><path d="M1.405 1.405l7.87 7.043 7.313-7.051" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="tribe-common-c-svgicon__svg-stroke"/><path clip-rule="evenodd" d="M1 2.38v10.482c0 .762.618 1.38 1.38 1.38h13.24a1.38 1.38 0 001.38-1.38V2.38A1.38 1.38 0 0015.62 1H2.38A1.38 1.38 0 001 2.38z" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="tribe-common-c-svgicon__svg-stroke"/></svg>
|
common/src/views/v2/components/icons/map-pin.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* View: Map Pin Icon
|
4 |
+
*
|
5 |
+
* Override this template in your own theme by creating a file at:
|
6 |
+
* [your-theme]/tribe/v2/components/icons/map-pin.php
|
7 |
+
*
|
8 |
+
* See more documentation about our views templating system.
|
9 |
+
*
|
10 |
+
* @link http://m.tri.be/1aiy
|
11 |
+
*
|
12 |
+
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
+
*
|
14 |
+
* @version 4.12.14
|
15 |
+
*
|
16 |
+
*/
|
17 |
+
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--map-pin' ];
|
18 |
+
|
19 |
+
if ( ! empty( $classes ) ) {
|
20 |
+
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 14 18" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="M12.932 6.992C12.932 11.034 6.966 17 6.966 17S1 11.034 1 6.992C1 3.2 4.083 1 6.966 1s5.966 2.2 5.966 5.992z" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="tribe-common-c-svgicon__svg-stroke"/><path clip-rule="evenodd" d="M6.966 9.136a2.17 2.17 0 100-4.34 2.17 2.17 0 000 4.34z" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="tribe-common-c-svgicon__svg-stroke"/></svg>
|
common/src/views/v2/components/icons/map.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* View: Map Icon
|
4 |
+
*
|
5 |
+
* Override this template in your own theme by creating a file at:
|
6 |
+
* [your-theme]/tribe/v2/components/icons/map.php
|
7 |
+
*
|
8 |
+
* See more documentation about our views templating system.
|
9 |
+
*
|
10 |
+
* @link http://m.tri.be/1aiy
|
11 |
+
*
|
12 |
+
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
+
*
|
14 |
+
* @version 4.12.14
|
15 |
+
*
|
16 |
+
*/
|
17 |
+
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--map' ];
|
18 |
+
|
19 |
+
if ( ! empty( $classes ) ) {
|
20 |
+
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 19 18" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M13.308 7.726c0 2.27-3.66 6.807-3.816 6.999-.04.05-.1.078-.161.078a.208.208 0 01-.16-.078c-.157-.192-3.817-4.729-3.817-6.999 0-2.333 1.784-4.232 3.977-4.232 2.193 0 3.977 1.899 3.977 4.232zm-3.977-3.78c-1.959 0-3.552 1.696-3.552 3.78 0 1.849 2.839 5.59 3.552 6.5.713-.91 3.552-4.652 3.552-6.5 0-2.084-1.593-3.78-3.552-3.78z" class="tribe-common-c-svgicon__svg-fill"/><path d="M9.492 14.725l.271.22-.271-.22zm-.322 0l-.272.22.272-.22zm.16-.499l-.275.216.276.352.275-.352-.275-.216zm.434.72a35.15 35.15 0 001.988-2.75c.472-.729.944-1.53 1.3-2.299.35-.759.606-1.525.606-2.171h-.7c0 .49-.201 1.141-.542 1.878-.336.726-.789 1.497-1.251 2.21a34.437 34.437 0 01-1.945 2.69l.544.441zm-.433.207c.172 0 .329-.08.432-.207l-.543-.442a.143.143 0 01.11-.05v.7zm-.433-.207c.104.128.261.207.433.207v-.7c.048 0 .088.023.11.051l-.543.442zm-3.894-7.22c0 .646.256 1.412.606 2.171.356.769.828 1.57 1.3 2.298a35.153 35.153 0 001.988 2.75l.544-.44a34.442 34.442 0 01-1.945-2.69c-.462-.714-.915-1.485-1.251-2.211-.34-.737-.542-1.389-.542-1.878h-.7zM9.33 3.144c-2.407 0-4.327 2.076-4.327 4.582h.7c0-2.161 1.647-3.882 3.627-3.882v-.7zm4.327 4.582c0-2.506-1.92-4.582-4.327-4.582v.7c1.98 0 3.627 1.721 3.627 3.882h.7zm-7.53 0c0-1.912 1.458-3.43 3.203-3.43v-.7c-2.172 0-3.902 1.873-3.902 4.13h.7zm3.478 6.285a35.082 35.082 0 01-2.022-2.868 15.842 15.842 0 01-1.03-1.891c-.273-.613-.425-1.139-.425-1.526h-.7c0 .537.202 1.173.485 1.81.286.645.672 1.33 1.076 1.977a35.767 35.767 0 002.065 2.93l.551-.432zm2.927-6.285c0 .387-.153.912-.425 1.525a15.841 15.841 0 01-1.03 1.891 35.097 35.097 0 01-2.023 2.869l.551.431c.36-.46 1.257-1.633 2.065-2.93.405-.647.79-1.331 1.077-1.977.283-.636.485-1.272.485-1.809h-.7zm-3.202-3.43c1.745 0 3.202 1.518 3.202 3.43h.7c0-2.257-1.73-4.13-3.902-4.13v.7z" class="tribe-common-c-svgicon__svg-fill"/><path fill-rule="evenodd" clip-rule="evenodd" d="M9.331 6.321c.742 0 1.346.634 1.346 1.414 0 .78-.604 1.414-1.346 1.414-.742 0-1.346-.635-1.346-1.414 0-.78.604-1.414 1.346-1.414zm0 .267c-.602 0-1.092.514-1.092 1.147 0 .632.49 1.147 1.092 1.147.602 0 1.093-.515 1.093-1.147 0-.633-.49-1.147-1.093-1.147z" class="tribe-common-c-svgicon__svg-fill"/><path d="M11.027 7.735c0-.957-.744-1.764-1.696-1.764v.7c.533 0 .996.461.996 1.064h.7zM9.331 9.499c.952 0 1.696-.808 1.696-1.764h-.7c0 .602-.463 1.064-.996 1.064v.7zM7.635 7.735c0 .956.745 1.764 1.696 1.764v-.7c-.533 0-.996-.462-.996-1.064h-.7zM9.33 5.97c-.951 0-1.696.807-1.696 1.764h.7c0-.603.463-1.064.996-1.064v-.7zM8.59 7.735c0-.456.349-.797.742-.797v-.7c-.812 0-1.442.687-1.442 1.497h.7zm.742.797c-.393 0-.742-.341-.742-.797h-.7c0 .81.63 1.497 1.442 1.497v-.7zm.742-.797c0 .455-.349.797-.742.797v.7c.812 0 1.443-.688 1.443-1.497h-.7zm-.742-.797c.393 0 .742.341.742.797h.7c0-.81-.63-1.497-1.442-1.497v.7z" class="tribe-common-c-svgicon__svg-fill"/><path fill-rule="evenodd" clip-rule="evenodd" d="M.363.431V17.57c0 .238.163.431.363.431H18c.201 0 .364-.193.364-.431V.43c0-.238-.163-.431-.364-.431H.726c-.2 0-.363.193-.363.431zm.99.808h15.995v2.314H1.354V1.24zm0 2.314h15.995v13.204H1.354V3.553z" class="tribe-common-c-svgicon__svg-fill"/></svg>
|
common/src/views/v2/components/icons/messages-not-found.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* View: Messages Not Found Icon
|
4 |
+
*
|
5 |
+
* Override this template in your own theme by creating a file at:
|
6 |
+
* [your-theme]/tribe/v2/components/icons/messages-not-found.php
|
7 |
+
*
|
8 |
+
* See more documentation about our views templating system.
|
9 |
+
*
|
10 |
+
* @link http://m.tri.be/1aiy
|
11 |
+
*
|
12 |
+
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
+
*
|
14 |
+
* @version 4.12.14
|
15 |
+
*
|
16 |
+
*/
|
17 |
+
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--messages-not-found' ];
|
18 |
+
|
19 |
+
if ( ! empty( $classes ) ) {
|
20 |
+
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 21 23" xmlns="http://www.w3.org/2000/svg"><g fill-rule="evenodd"><path d="M.5 2.5h20v20H.5z"/><path stroke-linecap="round" d="M7.583 11.583l5.834 5.834m0-5.834l-5.834 5.834" class="tribe-common-c-svgicon__svg-stroke"/><path stroke-linecap="round" d="M4.5.5v4m12-4v4"/><path stroke-linecap="square" d="M.5 7.5h20"/></g></svg>
|
common/src/views/v2/components/icons/minus.php
CHANGED
@@ -11,7 +11,7 @@
|
|
11 |
*
|
12 |
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
*
|
14 |
-
* @version 4.12.
|
15 |
*
|
16 |
*/
|
17 |
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--minus' ];
|
@@ -20,4 +20,4 @@ if ( ! empty( $classes ) ) {
|
|
20 |
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
}
|
22 |
?>
|
23 |
-
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 12 3"
|
11 |
*
|
12 |
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
*
|
14 |
+
* @version 4.12.14
|
15 |
*
|
16 |
*/
|
17 |
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--minus' ];
|
20 |
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
}
|
22 |
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 12 3" xmlns="http://www.w3.org/2000/svg"><path d="M11 1.88H1" stroke-width="2" stroke-linecap="square"/></svg>
|
common/src/views/v2/components/icons/month.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* View: Month Icon
|
4 |
+
*
|
5 |
+
* Override this template in your own theme by creating a file at:
|
6 |
+
* [your-theme]/tribe/v2/components/icons/month.php
|
7 |
+
*
|
8 |
+
* See more documentation about our views templating system.
|
9 |
+
*
|
10 |
+
* @link http://m.tri.be/1aiy
|
11 |
+
*
|
12 |
+
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
+
*
|
14 |
+
* @version 4.12.14
|
15 |
+
*
|
16 |
+
*/
|
17 |
+
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--month' ];
|
18 |
+
|
19 |
+
if ( ! empty( $classes ) ) {
|
20 |
+
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 18 19" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M0 .991v17.04c0 .236.162.428.361.428h17.175c.2 0 .361-.192.361-.429V.991c0-.237-.162-.428-.361-.428H.36C.161.563 0 .754 0 .99zm.985.803H16.89v2.301H.985v-2.3zM16.89 5.223H.985v12H16.89v-12zM6.31 7.366v.857c0 .237.192.429.429.429h.857a.429.429 0 00.428-.429v-.857a.429.429 0 00-.428-.429H6.74a.429.429 0 00-.429.429zm3.429.857v-.857c0-.237.191-.429.428-.429h.857c.237 0 .429.192.429.429v.857a.429.429 0 01-.429.429h-.857a.429.429 0 01-.428-.429zm3.428-.857v.857c0 .237.192.429.429.429h.857a.429.429 0 00.428-.429v-.857a.429.429 0 00-.428-.429h-.857a.429.429 0 00-.429.429zm-6.857 4.286v-.858c0-.236.192-.428.429-.428h.857c.236 0 .428.192.428.428v.858a.429.429 0 01-.428.428H6.74a.429.429 0 01-.429-.428zm3.429-.858v.858c0 .236.191.428.428.428h.857a.429.429 0 00.429-.428v-.858a.429.429 0 00-.429-.428h-.857a.428.428 0 00-.428.428zm3.428.858v-.858c0-.236.192-.428.429-.428h.857c.236 0 .428.192.428.428v.858a.429.429 0 01-.428.428h-.857a.429.429 0 01-.429-.428zm-10.286-.858v.858c0 .236.192.428.429.428h.857a.429.429 0 00.429-.428v-.858a.429.429 0 00-.429-.428h-.857a.429.429 0 00-.429.428zm0 4.286v-.857c0-.237.192-.429.429-.429h.857c.237 0 .429.192.429.429v.857a.429.429 0 01-.429.429h-.857a.429.429 0 01-.429-.429zm3.429-.857v.857c0 .237.192.429.429.429h.857a.429.429 0 00.428-.429v-.857a.429.429 0 00-.428-.429H6.74a.429.429 0 00-.429.429zm3.429.857v-.857c0-.237.191-.429.428-.429h.857c.237 0 .429.192.429.429v.857a.429.429 0 01-.429.429h-.857a.429.429 0 01-.428-.429z" class="tribe-common-c-svgicon__svg-fill"/></svg>
|
common/src/views/v2/components/icons/no-map.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* View: No Map Icon
|
4 |
+
*
|
5 |
+
* Override this template in your own theme by creating a file at:
|
6 |
+
* [your-theme]/tribe/v2/components/icons/no-map.php
|
7 |
+
*
|
8 |
+
* See more documentation about our views templating system.
|
9 |
+
*
|
10 |
+
* @link http://m.tri.be/1aiy
|
11 |
+
*
|
12 |
+
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
+
*
|
14 |
+
* @version 4.12.14
|
15 |
+
*
|
16 |
+
*/
|
17 |
+
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--no-map' ];
|
18 |
+
|
19 |
+
if ( ! empty( $classes ) ) {
|
20 |
+
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 67 66" xmlns="http://www.w3.org/2000/svg"><path d="M24.432 65S1 43.672 1 24.477C.992 12.344 10.225 2.207 22.293 1.1 34.361-.008 45.281 8.28 47.476 20.212M24.806 65s2.152-1.959 5.151-5.223" stroke-width="2" stroke-linecap="round" class="tribe-common-c-svgicon__svg-stroke"/><path d="M25 31.476a6.476 6.476 0 100-12.952 6.476 6.476 0 000 12.952zM48.365 61.063c9.468 0 17.143-7.675 17.143-17.142 0-9.468-7.675-17.143-17.142-17.143-9.468 0-17.143 7.675-17.143 17.143 0 9.467 7.675 17.142 17.142 17.142z" stroke-width="2" class="tribe-common-c-svgicon__svg-stroke"/><path d="M48.78 55.095a2.065 2.065 0 100-4.13 2.065 2.065 0 000 4.13z" class="tribe-common-c-svgicon__svg-fill"/><path d="M48.636 33.762v13.763" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tribe-common-c-svgicon__svg-stroke"/></svg>
|
common/src/views/v2/components/icons/phone.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* View: Phone Icon
|
4 |
+
*
|
5 |
+
* Override this template in your own theme by creating a file at:
|
6 |
+
* [your-theme]/tribe/v2/components/icons/phone.php
|
7 |
+
*
|
8 |
+
* See more documentation about our views templating system.
|
9 |
+
*
|
10 |
+
* @link http://m.tri.be/1aiy
|
11 |
+
*
|
12 |
+
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
+
*
|
14 |
+
* @version 4.12.14
|
15 |
+
*
|
16 |
+
*/
|
17 |
+
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--phone' ];
|
18 |
+
|
19 |
+
if ( ! empty( $classes ) ) {
|
20 |
+
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="M11.682 10.882l-1.304 1.629a13.762 13.762 0 01-4.89-4.888l1.63-1.304c.393-.315.525-.855.32-1.315L5.953 1.66a1.108 1.108 0 00-1.292-.623l-2.828.733c-.547.143-.9.672-.822 1.231A16.435 16.435 0 0015 16.99a1.114 1.114 0 001.23-.822l.734-2.83a1.109 1.109 0 00-.622-1.29l-3.346-1.486c-.46-.205-1-.073-1.314.32z" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="tribe-common-c-svgicon__svg-stroke"/></svg>
|
common/src/views/v2/components/icons/photo.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* View: Photo Icon
|
4 |
+
*
|
5 |
+
* Override this template in your own theme by creating a file at:
|
6 |
+
* [your-theme]/tribe/v2/components/icons/photo.php
|
7 |
+
*
|
8 |
+
* See more documentation about our views templating system.
|
9 |
+
*
|
10 |
+
* @link http://m.tri.be/1aiy
|
11 |
+
*
|
12 |
+
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
+
*
|
14 |
+
* @version 4.12.14
|
15 |
+
*
|
16 |
+
*/
|
17 |
+
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--photo' ];
|
18 |
+
|
19 |
+
if ( ! empty( $classes ) ) {
|
20 |
+
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 19 18" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M17.536 0H.539a.484.484 0 00-.495.483v17.034c0 .27.218.483.495.483h16.997a.484.484 0 00.495-.483V.483A.484.484 0 0017.536 0zm-.515.986V13.73l-1.907-2.938c-.555-.58-1.584-.58-2.139 0l-1.327 1.41-3.841-4.31a1.548 1.548 0 00-1.169-.502c-.435 0-.871.193-1.148.522l-4.436 4.929V.986h15.967zM1.054 14.329v2.705h15.987v-1.835l-2.66-3.73c-.178-.175-.495-.175-.653 0l-1.703 1.816c-.1.097-.218.174-.377.155a.569.569 0 01-.376-.174L7.054 8.53a.577.577 0 00-.416-.174.504.504 0 00-.396.174l-5.188 5.798z" class="tribe-common-c-svgicon__svg-fill"/><path fill-rule="evenodd" clip-rule="evenodd" d="M14.682 5.875c0 1.043-.825 1.875-1.82 1.875-.993 0-1.818-.832-1.818-1.875C11.044 4.83 11.85 4 12.863 4c1.012 0 1.819.831 1.819 1.875zm-.957 0c0-.483-.393-.89-.862-.89s-.863.407-.863.89c0 .483.394.889.863.889s.862-.406.862-.89z" class="tribe-common-c-svgicon__svg-fill"/></svg>
|
common/src/views/v2/components/icons/play.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* View: Play Icon
|
4 |
+
*
|
5 |
+
* Override this template in your own theme by creating a file at:
|
6 |
+
* [your-theme]/tribe/v2/components/icons/play.php
|
7 |
+
*
|
8 |
+
* See more documentation about our views templating system.
|
9 |
+
*
|
10 |
+
* @link http://m.tri.be/1aiy
|
11 |
+
*
|
12 |
+
* @version 4.12.14
|
13 |
+
*
|
14 |
+
* @var array $classes Additional classes to add to the svg icon.
|
15 |
+
*/
|
16 |
+
|
17 |
+
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--play' ];
|
18 |
+
|
19 |
+
if ( ! empty( $classes ) ) {
|
20 |
+
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 12"><path d="M10 6a1 1 0 01-.47.848l-8 5a.996.996 0 01-1.237-.14A.999.999 0 010 11V1A1 1 0 011.53.153l8 5A1 1 0 0110 6z" fill-rule="nonzero"/></svg>
|
common/src/views/v2/components/icons/plus.php
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
* View:
|
4 |
*
|
5 |
* Override this template in your own theme by creating a file at:
|
6 |
-
* [your-theme]/tribe/v2/components/icons/
|
7 |
*
|
8 |
* See more documentation about our views templating system.
|
9 |
*
|
@@ -11,13 +11,13 @@
|
|
11 |
*
|
12 |
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
*
|
14 |
-
* @version 4.12.
|
15 |
*
|
16 |
*/
|
17 |
-
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--
|
18 |
|
19 |
if ( ! empty( $classes ) ) {
|
20 |
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
}
|
22 |
?>
|
23 |
-
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 12 12"
|
1 |
<?php
|
2 |
/**
|
3 |
+
* View: Plus Icon
|
4 |
*
|
5 |
* Override this template in your own theme by creating a file at:
|
6 |
+
* [your-theme]/tribe/v2/components/icons/plus.php
|
7 |
*
|
8 |
* See more documentation about our views templating system.
|
9 |
*
|
11 |
*
|
12 |
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
*
|
14 |
+
* @version 4.12.14
|
15 |
*
|
16 |
*/
|
17 |
+
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--plus' ];
|
18 |
|
19 |
if ( ! empty( $classes ) ) {
|
20 |
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
}
|
22 |
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 12 12" xmlns="http://www.w3.org/2000/svg"><path d="M11 5.881H1M5.88 1v10" stroke-width="2" stroke-linecap="square"/></svg>
|
common/src/views/v2/components/icons/recurring.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* View: Recurring Icon
|
4 |
+
*
|
5 |
+
* Override this template in your own theme by creating a file at:
|
6 |
+
* [your-theme]/tribe/v2/components/icons/recurring.php
|
7 |
+
*
|
8 |
+
* See more documentation about our views templating system.
|
9 |
+
*
|
10 |
+
* @link http://m.tri.be/1aiy
|
11 |
+
*
|
12 |
+
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
+
*
|
14 |
+
* @version 4.12.14
|
15 |
+
*
|
16 |
+
*/
|
17 |
+
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--recurring' ];
|
18 |
+
|
19 |
+
if ( ! empty( $classes ) ) {
|
20 |
+
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 14 14" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M9 3.296c0 .039 0 .078-.012.104 0 .013-.012.04-.012.052a.54.54 0 01-.118.222L7.27 5.422a.479.479 0 01-.711 0 .61.61 0 010-.783l.734-.809H4.781c-1.53 0-2.785 1.37-2.785 3.066 0 .821.284 1.591.817 2.165a.61.61 0 010 .782.478.478 0 01-.71 0C1.39 9.061 1 8.017 1 6.91c0-2.296 1.695-4.161 3.78-4.161h2.525l-.735-.809a.61.61 0 010-.782.482.482 0 01.711 0L8.87 2.904c.059.066.094.144.118.222 0 .013.012.04.012.052v.118zM13 7.091c0 2.296-1.695 4.161-3.78 4.161H6.694l.735.809a.582.582 0 010 .783.479.479 0 01-.711 0l-1.577-1.761a.569.569 0 01-.118-.222c0-.013-.012-.04-.012-.052C5 10.769 5 10.743 5 10.704c0-.039 0-.078.012-.104 0-.013.012-.04.012-.052a.54.54 0 01.118-.222L6.73 8.578a.482.482 0 01.711 0 .582.582 0 010 .783l-.734.809H9.23c1.529 0 2.785-1.37 2.785-3.066 0-.821-.284-1.591-.818-2.165a.582.582 0 010-.782.482.482 0 01.712 0C12.609 4.927 13 5.97 13 7.09z" stroke-width=".25"/></svg>
|
common/src/views/v2/components/icons/reset.php
CHANGED
@@ -11,7 +11,7 @@
|
|
11 |
*
|
12 |
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
*
|
14 |
-
* @version 4.12.
|
15 |
*
|
16 |
*/
|
17 |
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--reset' ];
|
@@ -20,4 +20,4 @@ if ( ! empty( $classes ) ) {
|
|
20 |
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
}
|
22 |
?>
|
23 |
-
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 14 14"
|
11 |
*
|
12 |
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
*
|
14 |
+
* @version 4.12.14
|
15 |
*
|
16 |
*/
|
17 |
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--reset' ];
|
20 |
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
}
|
22 |
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 14 14" xmlns="http://www.w3.org/2000/svg"><path d="M12.268 7.5a5.633 5.633 0 11-.886-3.033M11.4 1v3.467H7.934" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>
|
common/src/views/v2/components/icons/search.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* View: Search Icon
|
4 |
+
*
|
5 |
+
* Override this template in your own theme by creating a file at:
|
6 |
+
* [your-theme]/tribe/v2/components/icons/search.php
|
7 |
+
*
|
8 |
+
* See more documentation about our views templating system.
|
9 |
+
*
|
10 |
+
* @link http://m.tri.be/1aiy
|
11 |
+
*
|
12 |
+
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
+
*
|
14 |
+
* @version 4.12.14
|
15 |
+
*
|
16 |
+
*/
|
17 |
+
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--search' ];
|
18 |
+
|
19 |
+
if ( ! empty( $classes ) ) {
|
20 |
+
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.164 10.133L16 14.97 14.969 16l-4.836-4.836a6.225 6.225 0 01-3.875 1.352 6.24 6.24 0 01-4.427-1.832A6.272 6.272 0 010 6.258 6.24 6.24 0 011.831 1.83 6.272 6.272 0 016.258 0c1.67 0 3.235.658 4.426 1.831a6.272 6.272 0 011.832 4.427c0 1.422-.48 2.773-1.352 3.875zM6.258 1.458c-1.28 0-2.49.498-3.396 1.404-1.866 1.867-1.866 4.925 0 6.791a4.774 4.774 0 003.396 1.405c1.28 0 2.489-.498 3.395-1.405 1.867-1.866 1.867-4.924 0-6.79a4.774 4.774 0 00-3.395-1.405z"/></svg>
|
common/src/views/v2/components/icons/video.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* View: Video Icon
|
4 |
+
*
|
5 |
+
* Override this template in your own theme by creating a file at:
|
6 |
+
* [your-theme]/tribe/v2/components/icons/video.php
|
7 |
+
*
|
8 |
+
* See more documentation about our views templating system.
|
9 |
+
*
|
10 |
+
* @link http://m.tri.be/1aiy
|
11 |
+
*
|
12 |
+
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
+
*
|
14 |
+
* @version 4.12.14
|
15 |
+
*/
|
16 |
+
|
17 |
+
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--video' ];
|
18 |
+
|
19 |
+
if ( ! empty( $classes ) ) {
|
20 |
+
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 12"><path d="M11 4V1c0-.6-.4-1-1-1H1C.4 0 0 .4 0 1v10c0 .6.4 1 1 1h9c.6 0 1-.4 1-1V8l5 2V2l-5 2z" fill-rule="nonzero" class="tribe-common-c-svgicon__svg-fill"/></svg>
|
common/src/views/v2/components/icons/virtual.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* View: Virtual Icon
|
4 |
+
*
|
5 |
+
* Override this template in your own theme by creating a file at:
|
6 |
+
* [your-theme]/tribe/v2/components/icons/virtual.php
|
7 |
+
*
|
8 |
+
* See more documentation about our views templating system.
|
9 |
+
*
|
10 |
+
* @link http://m.tri.be/1aiy
|
11 |
+
*
|
12 |
+
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
+
*
|
14 |
+
* @version 4.12.14
|
15 |
+
*/
|
16 |
+
|
17 |
+
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--virtual' ];
|
18 |
+
|
19 |
+
if ( ! empty( $classes ) ) {
|
20 |
+
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> xmlns="http://www.w3.org/2000/svg" viewBox="0 0 26 16"><defs/><g fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" transform="translate(1 1)"><path d="M18 10.7333333c2.16-2.09999997 2.16-5.44444441 0-7.46666663M21.12 13.7666667c3.84-3.7333334 3.84-9.80000003 0-13.53333337M6 10.7333333C3.84 8.63333333 3.84 5.28888889 6 3.26666667M2.88 13.7666667C-.96 10.0333333-.96 3.96666667 2.88.23333333" class="tribe-common-c-svgicon__svg-stroke"/><ellipse cx="12" cy="7" rx="2.4" ry="2.33333333" class="tribe-common-c-svgicon__svg-stroke"/></g></svg>
|
common/src/views/v2/components/icons/website.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* View: Website Icon
|
4 |
+
*
|
5 |
+
* Override this template in your own theme by creating a file at:
|
6 |
+
* [your-theme]/tribe/v2/components/icons/website.php
|
7 |
+
*
|
8 |
+
* See more documentation about our views templating system.
|
9 |
+
*
|
10 |
+
* @link http://m.tri.be/1aiy
|
11 |
+
*
|
12 |
+
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
+
*
|
14 |
+
* @version 4.12.14
|
15 |
+
*
|
16 |
+
*/
|
17 |
+
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--website' ];
|
18 |
+
|
19 |
+
if ( ! empty( $classes ) ) {
|
20 |
+
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 16 18" xmlns="http://www.w3.org/2000/svg"><path d="M14.531 1.5l-7.5 8M7.969 1.5h6.562v7M4.219 1.5H1.406c-.517 0-.937.448-.937 1v13c0 .552.42 1 .937 1h12.188c.517 0 .937-.448.937-1v-3" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="tribe-common-c-svgicon__svg-stroke"/></svg>
|
common/src/views/v2/components/icons/week.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* View: Week Icon
|
4 |
+
*
|
5 |
+
* Override this template in your own theme by creating a file at:
|
6 |
+
* [your-theme]/tribe/v2/components/icons/week.php
|
7 |
+
*
|
8 |
+
* See more documentation about our views templating system.
|
9 |
+
*
|
10 |
+
* @link http://m.tri.be/1aiy
|
11 |
+
*
|
12 |
+
* @var array<string> $classes Additional classes to add to the svg icon.
|
13 |
+
*
|
14 |
+
* @version 4.12.14
|
15 |
+
*
|
16 |
+
*/
|
17 |
+
$svg_classes = [ 'tribe-common-c-svgicon', 'tribe-common-c-svgicon--week' ];
|
18 |
+
|
19 |
+
if ( ! empty( $classes ) ) {
|
20 |
+
$svg_classes = array_merge( $svg_classes, $classes );
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
<svg <?php tribe_classes( $svg_classes ); ?> viewBox="0 0 19 18" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M.363.431V17.57c0 .238.163.431.363.431H18c.201 0 .364-.193.364-.431V.43c0-.238-.163-.431-.364-.431H.726c-.2 0-.363.193-.363.431zm.99.808h15.995v2.314H1.354V1.24zm15.995 3.449H1.354v12.07h15.994V4.687zM6.71 10.29v.862c0 .239.193.431.431.431h.862a.431.431 0 00.431-.43v-.863a.431.431 0 00-.43-.43H7.14a.431.431 0 00-.43.43zm3.448.862v-.862c0-.238.193-.43.431-.43h.862c.238 0 .431.192.431.43v.862a.431.431 0 01-.43.431h-.863a.431.431 0 01-.43-.43zm3.449-.862v.862c0 .239.193.431.43.431h.863a.431.431 0 00.43-.43v-.863a.431.431 0 00-.43-.43h-.862a.431.431 0 00-.431.43zm-10.345.862v-.862c0-.238.193-.43.43-.43h.863c.238 0 .43.192.43.43v.862a.431.431 0 01-.43.431h-.862a.431.431 0 01-.431-.43z" class="tribe-common-c-svgicon__svg-fill"/></svg>
|
common/vendor/autoload.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit1c903fdb1f51711059c14962ddf56c98::getLoader();
|
common/vendor/autoload_52.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit0d696ede8f7794740a7ebee33d7641a3::getLoader();
|
common/vendor/composer/autoload_classmap.php
CHANGED
@@ -114,6 +114,8 @@ return array(
|
|
114 |
'Psr\\Log\\Test\\DummyTest' => $vendorDir . '/psr/log/Psr/Log/Test/DummyTest.php',
|
115 |
'Psr\\Log\\Test\\LoggerInterfaceTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
|
116 |
'Psr\\Log\\Test\\TestLogger' => $vendorDir . '/psr/log/Psr/Log/Test/TestLogger.php',
|
|
|
|
|
117 |
'Tribe\\DB_Lock' => $baseDir . '/src/Tribe/DB_Lock.php',
|
118 |
'Tribe\\Dialog\\View' => $baseDir . '/src/Tribe/Dialog/View.php',
|
119 |
'Tribe\\Log\\Action_Logger' => $baseDir . '/src/Tribe/Log/Action_Logger.php',
|
@@ -150,6 +152,7 @@ return array(
|
|
150 |
'Tribe\\Utils\\Lazy_Collection' => $baseDir . '/src/Tribe/Utils/Lazy_Collection.php',
|
151 |
'Tribe\\Utils\\Lazy_Events' => $baseDir . '/src/Tribe/Utils/Lazy_Events.php',
|
152 |
'Tribe\\Utils\\Lazy_String' => $baseDir . '/src/Tribe/Utils/Lazy_String.php',
|
|
|
153 |
'Tribe\\Utils\\Post_Thumbnail' => $baseDir . '/src/Tribe/Utils/Post_Thumbnail.php',
|
154 |
'Tribe\\Utils\\Query' => $baseDir . '/src/Tribe/Utils/Query.php',
|
155 |
'Tribe\\Utils\\Strings' => $baseDir . '/src/Tribe/Utils/Strings.php',
|
114 |
'Psr\\Log\\Test\\DummyTest' => $vendorDir . '/psr/log/Psr/Log/Test/DummyTest.php',
|
115 |
'Psr\\Log\\Test\\LoggerInterfaceTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
|
116 |
'Psr\\Log\\Test\\TestLogger' => $vendorDir . '/psr/log/Psr/Log/Test/TestLogger.php',
|
117 |
+
'Tribe\\Customizer\\Control' => $baseDir . '/src/Tribe/Customizer/Control.php',
|
118 |
+
'Tribe\\Customizer\\Controls\\Heading' => $baseDir . '/src/Tribe/Customizer/Controls/Heading.php',
|
119 |
'Tribe\\DB_Lock' => $baseDir . '/src/Tribe/DB_Lock.php',
|
120 |
'Tribe\\Dialog\\View' => $baseDir . '/src/Tribe/Dialog/View.php',
|
121 |
'Tribe\\Log\\Action_Logger' => $baseDir . '/src/Tribe/Log/Action_Logger.php',
|
152 |
'Tribe\\Utils\\Lazy_Collection' => $baseDir . '/src/Tribe/Utils/Lazy_Collection.php',
|
153 |
'Tribe\\Utils\\Lazy_Events' => $baseDir . '/src/Tribe/Utils/Lazy_Events.php',
|
154 |
'Tribe\\Utils\\Lazy_String' => $baseDir . '/src/Tribe/Utils/Lazy_String.php',
|
155 |
+
'Tribe\\Utils\\Paths' => $baseDir . '/src/Tribe/Utils/Paths.php',
|
156 |
'Tribe\\Utils\\Post_Thumbnail' => $baseDir . '/src/Tribe/Utils/Post_Thumbnail.php',
|
157 |
'Tribe\\Utils\\Query' => $baseDir . '/src/Tribe/Utils/Query.php',
|
158 |
'Tribe\\Utils\\Strings' => $baseDir . '/src/Tribe/Utils/Strings.php',
|
common/vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -19,15 +19,15 @@ class ComposerAutoloaderInita5209126f285bbb0b9ea28bf267ced21
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
25 |
|
26 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
27 |
if ($useStaticLoader) {
|
28 |
require_once __DIR__ . '/autoload_static.php';
|
29 |
|
30 |
-
call_user_func(\Composer\Autoload\
|
31 |
} else {
|
32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
33 |
foreach ($map as $namespace => $path) {
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInit1c903fdb1f51711059c14962ddf56c98
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInit1c903fdb1f51711059c14962ddf56c98', 'loadClassLoader'), true, true);
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit1c903fdb1f51711059c14962ddf56c98', '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\ComposerStaticInit1c903fdb1f51711059c14962ddf56c98::getInitializer($loader));
|
31 |
} else {
|
32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
33 |
foreach ($map as $namespace => $path) {
|
common/vendor/composer/autoload_real_52.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real_52.php generated by xrstf/composer-php52
|
4 |
|
5 |
-
class
|
6 |
private static $loader;
|
7 |
|
8 |
public static function loadClassLoader($class) {
|
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit78c6545cd43926a267b2abd8a75d4a61 {
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new xrstf_Composer52_ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
25 |
|
26 |
$vendorDir = dirname(dirname(__FILE__));
|
27 |
$baseDir = dirname($vendorDir);
|
2 |
|
3 |
// autoload_real_52.php generated by xrstf/composer-php52
|
4 |
|
5 |
+
class ComposerAutoloaderInit0d696ede8f7794740a7ebee33d7641a3 {
|
6 |
private static $loader;
|
7 |
|
8 |
public static function loadClassLoader($class) {
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInit0d696ede8f7794740a7ebee33d7641a3', 'loadClassLoader'), true /*, true */);
|
23 |
self::$loader = $loader = new xrstf_Composer52_ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit0d696ede8f7794740a7ebee33d7641a3', 'loadClassLoader'));
|
25 |
|
26 |
$vendorDir = dirname(dirname(__FILE__));
|
27 |
$baseDir = dirname($vendorDir);
|
common/vendor/composer/autoload_static.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
-
class
|
8 |
{
|
9 |
public static $prefixLengthsPsr4 = array (
|
10 |
'T' =>
|
@@ -170,6 +170,8 @@ class ComposerStaticInita5209126f285bbb0b9ea28bf267ced21
|
|
170 |
'Psr\\Log\\Test\\DummyTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/DummyTest.php',
|
171 |
'Psr\\Log\\Test\\LoggerInterfaceTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
|
172 |
'Psr\\Log\\Test\\TestLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/TestLogger.php',
|
|
|
|
|
173 |
'Tribe\\DB_Lock' => __DIR__ . '/../..' . '/src/Tribe/DB_Lock.php',
|
174 |
'Tribe\\Dialog\\View' => __DIR__ . '/../..' . '/src/Tribe/Dialog/View.php',
|
175 |
'Tribe\\Log\\Action_Logger' => __DIR__ . '/../..' . '/src/Tribe/Log/Action_Logger.php',
|
@@ -206,6 +208,7 @@ class ComposerStaticInita5209126f285bbb0b9ea28bf267ced21
|
|
206 |
'Tribe\\Utils\\Lazy_Collection' => __DIR__ . '/../..' . '/src/Tribe/Utils/Lazy_Collection.php',
|
207 |
'Tribe\\Utils\\Lazy_Events' => __DIR__ . '/../..' . '/src/Tribe/Utils/Lazy_Events.php',
|
208 |
'Tribe\\Utils\\Lazy_String' => __DIR__ . '/../..' . '/src/Tribe/Utils/Lazy_String.php',
|
|
|
209 |
'Tribe\\Utils\\Post_Thumbnail' => __DIR__ . '/../..' . '/src/Tribe/Utils/Post_Thumbnail.php',
|
210 |
'Tribe\\Utils\\Query' => __DIR__ . '/../..' . '/src/Tribe/Utils/Query.php',
|
211 |
'Tribe\\Utils\\Strings' => __DIR__ . '/../..' . '/src/Tribe/Utils/Strings.php',
|
@@ -224,10 +227,10 @@ class ComposerStaticInita5209126f285bbb0b9ea28bf267ced21
|
|
224 |
public static function getInitializer(ClassLoader $loader)
|
225 |
{
|
226 |
return \Closure::bind(function () use ($loader) {
|
227 |
-
$loader->prefixLengthsPsr4 =
|
228 |
-
$loader->prefixDirsPsr4 =
|
229 |
-
$loader->prefixesPsr0 =
|
230 |
-
$loader->classMap =
|
231 |
|
232 |
}, null, ClassLoader::class);
|
233 |
}
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
+
class ComposerStaticInit1c903fdb1f51711059c14962ddf56c98
|
8 |
{
|
9 |
public static $prefixLengthsPsr4 = array (
|
10 |
'T' =>
|
170 |
'Psr\\Log\\Test\\DummyTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/DummyTest.php',
|
171 |
'Psr\\Log\\Test\\LoggerInterfaceTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
|
172 |
'Psr\\Log\\Test\\TestLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/TestLogger.php',
|
173 |
+
'Tribe\\Customizer\\Control' => __DIR__ . '/../..' . '/src/Tribe/Customizer/Control.php',
|
174 |
+
'Tribe\\Customizer\\Controls\\Heading' => __DIR__ . '/../..' . '/src/Tribe/Customizer/Controls/Heading.php',
|
175 |
'Tribe\\DB_Lock' => __DIR__ . '/../..' . '/src/Tribe/DB_Lock.php',
|
176 |
'Tribe\\Dialog\\View' => __DIR__ . '/../..' . '/src/Tribe/Dialog/View.php',
|
177 |
'Tribe\\Log\\Action_Logger' => __DIR__ . '/../..' . '/src/Tribe/Log/Action_Logger.php',
|
208 |
'Tribe\\Utils\\Lazy_Collection' => __DIR__ . '/../..' . '/src/Tribe/Utils/Lazy_Collection.php',
|
209 |
'Tribe\\Utils\\Lazy_Events' => __DIR__ . '/../..' . '/src/Tribe/Utils/Lazy_Events.php',
|
210 |
'Tribe\\Utils\\Lazy_String' => __DIR__ . '/../..' . '/src/Tribe/Utils/Lazy_String.php',
|
211 |
+
'Tribe\\Utils\\Paths' => __DIR__ . '/../..' . '/src/Tribe/Utils/Paths.php',
|
212 |
'Tribe\\Utils\\Post_Thumbnail' => __DIR__ . '/../..' . '/src/Tribe/Utils/Post_Thumbnail.php',
|
213 |
'Tribe\\Utils\\Query' => __DIR__ . '/../..' . '/src/Tribe/Utils/Query.php',
|
214 |
'Tribe\\Utils\\Strings' => __DIR__ . '/../..' . '/src/Tribe/Utils/Strings.php',
|
227 |
public static function getInitializer(ClassLoader $loader)
|
228 |
{
|
229 |
return \Closure::bind(function () use ($loader) {
|
230 |
+
$loader->prefixLengthsPsr4 = ComposerStaticInit1c903fdb1f51711059c14962ddf56c98::$prefixLengthsPsr4;
|
231 |
+
$loader->prefixDirsPsr4 = ComposerStaticInit1c903fdb1f51711059c14962ddf56c98::$prefixDirsPsr4;
|
232 |
+
$loader->prefixesPsr0 = ComposerStaticInit1c903fdb1f51711059c14962ddf56c98::$prefixesPsr0;
|
233 |
+
$loader->classMap = ComposerStaticInit1c903fdb1f51711059c14962ddf56c98::$classMap;
|
234 |
|
235 |
}, null, ClassLoader::class);
|
236 |
}
|
common/vendor/composer/installed.json
CHANGED
@@ -61,17 +61,17 @@
|
|
61 |
},
|
62 |
{
|
63 |
"name": "lucatume/di52",
|
64 |
-
"version": "2.
|
65 |
-
"version_normalized": "2.
|
66 |
"source": {
|
67 |
"type": "git",
|
68 |
"url": "https://github.com/lucatume/di52.git",
|
69 |
-
"reference": "
|
70 |
},
|
71 |
"dist": {
|
72 |
"type": "zip",
|
73 |
-
"url": "https://api.github.com/repos/lucatume/di52/zipball/
|
74 |
-
"reference": "
|
75 |
"shasum": ""
|
76 |
},
|
77 |
"require": {
|
@@ -82,7 +82,7 @@
|
|
82 |
"phpunit/phpunit-mock-objects-php52": "dev-1.1.0-php52",
|
83 |
"phpunit/phpunit-php52": "dev-3.6.12-php52"
|
84 |
},
|
85 |
-
"time": "
|
86 |
"type": "library",
|
87 |
"installation-source": "dist",
|
88 |
"autoload": {
|
61 |
},
|
62 |
{
|
63 |
"name": "lucatume/di52",
|
64 |
+
"version": "2.1.3",
|
65 |
+
"version_normalized": "2.1.3.0",
|
66 |
"source": {
|
67 |
"type": "git",
|
68 |
"url": "https://github.com/lucatume/di52.git",
|
69 |
+
"reference": "d57c267abf32a1d0ffd97b401e755028a9e2bc78"
|
70 |
},
|
71 |
"dist": {
|
72 |
"type": "zip",
|
73 |
+
"url": "https://api.github.com/repos/lucatume/di52/zipball/d57c267abf32a1d0ffd97b401e755028a9e2bc78",
|
74 |
+
"reference": "d57c267abf32a1d0ffd97b401e755028a9e2bc78",
|
75 |
"shasum": ""
|
76 |
},
|
77 |
"require": {
|
82 |
"phpunit/phpunit-mock-objects-php52": "dev-1.1.0-php52",
|
83 |
"phpunit/phpunit-php52": "dev-3.6.12-php52"
|
84 |
},
|
85 |
+
"time": "2020-11-02T11:14:57+00:00",
|
86 |
"type": "library",
|
87 |
"installation-source": "dist",
|
88 |
"autoload": {
|
common/vendor/faction23/a11y-dialog/a11y-dialog.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(t){"use strict";function e(t){if(this.options=h({appendTarget:"",bodyLock:!0,closeButtonAriaLabel:"Close this dialog window",closeButtonClasses:"a11y-dialog__close-button",contentClasses:"a11y-dialog__content",effect:"none",effectSpeed:300,effectEasing:"ease-in-out",overlayClasses:"a11y-dialog__overlay",overlayClickCloses:!0,trigger:null,wrapperClasses:"a11y-dialog"},t),this._rendered=!1,this._show=this.show.bind(this),this._hide=this.hide.bind(this),this._maintainFocus=this._maintainFocus.bind(this),this._bindKeypress=this._bindKeypress.bind(this),this.trigger=a(this.options.trigger)?o(this.options.trigger,!
|
1 |
+
!function(t){"use strict";function e(t){if(this.options=h({appendTarget:"",bodyLock:!0,closeButtonAriaLabel:"Close this dialog window",closeButtonClasses:"a11y-dialog__close-button",contentClasses:"a11y-dialog__content",effect:"none",effectSpeed:300,effectEasing:"ease-in-out",overlayClasses:"a11y-dialog__overlay",overlayClickCloses:!0,trigger:null,wrapperClasses:"a11y-dialog"},t),this._rendered=!1,this._show=this.show.bind(this),this._hide=this.hide.bind(this),this._maintainFocus=this._maintainFocus.bind(this),this._bindKeypress=this._bindKeypress.bind(this),this.trigger=a(this.options.trigger)?o(this.options.trigger,!0,document,!0):this.options.trigger,this.node=null,!this.trigger)return void console.warn("Lookup for a11y target node failed.");this._listeners={},this.create()}function i(t){var e=[],i=t.length;for(i;i--;e.unshift(t[i]));return e}function o(t,e,o,n){o||(o=document);var s=n?t:'[data-js="'+t+'"]',r=o.querySelectorAll(s);return e&&(r=i(r)),r}function n(t,e){return i((e||document).querySelectorAll(t))}function s(t){var e=d(t);e.length&&e[0].focus()}function r(t,e){e.parentNode.insertBefore(t,e.nextElementSibling)}function d(t){return n(p.join(","),t).filter(function(t){return!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length)})}function a(t){return"[object String]"===Object.prototype.toString.call(t)}function h(t,e){return Object.keys(e).forEach(function(i){t[i]=e[i]}),t}function c(t,e){var i=d(t),o=i.indexOf(document.activeElement);e.shiftKey&&0===o?(i[i.length-1].focus(),e.preventDefault()):e.shiftKey||o!==i.length-1||(i[0].focus(),e.preventDefault())}function l(){g=b.scrollTop,document.body.classList.add("a11y-dialog__body-locked"),document.body.style.position="fixed",document.body.style.width="100%",document.body.style.marginTop="-"+g+"px"}function u(){document.body.style.marginTop="",document.body.style.position="",document.body.style.width="",b.scrollTop=g,document.body.classList.remove("a11y-dialog__body-locked")}var f,p=["a[href]","area[href]","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","button:not([disabled])","iframe","object","embed","[contenteditable]",'[tabindex]:not([tabindex^="-"])'],y=function(){var t=/(android)/i.test(navigator.userAgent),e=!!window.chrome,i="undefined"!=typeof InstallTrigger,o=document.documentMode,n=!o&&!!window.StyleMedia,s=!!navigator.userAgent.match(/(iPod|iPhone|iPad)/i),r=!!navigator.userAgent.match(/(iPod|iPhone)/i),d=!!window.opera||navigator.userAgent.indexOf(" OPR/")>=0;return{android:t,chrome:e,edge:n,firefox:i,ie:o,ios:s,iosMobile:r,opera:d,safari:Object.prototype.toString.call(window.HTMLElement).indexOf("Constructor")>0||!e&&!d&&"undefined"!==window.webkitAudioContext,os:navigator.platform}}(),g=0,b=y.ie||y.firefox||y.chrome&&!y.edge?document.documentElement:document.body;e.prototype.create=function(){return this.shown=!1,this.trigger.forEach(function(t){t.addEventListener("click",this._show)}.bind(this)),this._fire("create"),this},e.prototype.render=function(t){var e=o(this.trigger[0].dataset.content)[0];if(!e)return this;var i=document.createElement("div");i.setAttribute("aria-hidden","true"),i.classList.add(this.options.wrapperClasses),i.innerHTML='<div data-js="a11y-overlay" tabindex="-1" class="'+this.options.overlayClasses+'"></div>\n <div class="'+this.options.contentClasses+'" role="dialog">\n <div role="document">\n <button data-js="a11y-close-button" class="'+this.options.closeButtonClasses+'" type="button" aria-label="'+this.options.closeButtonAriaLabel+'" ></button>\n '+e.innerHTML+" </div>\n </div>";var n=this.trigger;return this.options.appendTarget.length&&(n=document.querySelectorAll(this.options.appendTarget)[0]||this.trigger),r(i,n),this.node=i,this.overlay=o("a11y-overlay",!1,this.node)[0],this.closeButton=o("a11y-close-button",!1,this.node)[0],this.options.overlayClickCloses&&this.overlay.addEventListener("click",this._hide),this.closeButton.addEventListener("click",this._hide),this._rendered=!0,this._fire("render",t),this},e.prototype.show=function(t){return this.shown?this:(this._rendered||this.render(t),this._rendered?(this.shown=!0,this._applyOpenEffect(),this.node.setAttribute("aria-hidden","false"),this.options.bodyLock&&l(),f=document.activeElement,s(this.node),document.body.addEventListener("focus",this._maintainFocus,!0),document.addEventListener("keydown",this._bindKeypress),this._fire("show",t),this):this)},e.prototype.hide=function(t){return this.shown?(this.shown=!1,"none"===this.options.effect&&this.node.setAttribute("aria-hidden","true"),this._applyCloseEffect(),this.options.bodyLock&&u(),f&&f.focus(),document.body.removeEventListener("focus",this._maintainFocus,!0),document.removeEventListener("keydown",this._bindKeypress),this._fire("hide",t),this):this},e.prototype.destroy=function(){return this.hide(),this.trigger.forEach(function(t){t.removeEventListener("click",this._show)}.bind(this)),this._rendered&&(this.options.overlayClickCloses&&this.overlay.removeEventListener("click",this._hide),this.closeButton.removeEventListener("click",this._hide)),this._fire("destroy"),this._listeners={},this},e.prototype.on=function(t,e){return void 0===this._listeners[t]&&(this._listeners[t]=[]),this._listeners[t].push(e),this},e.prototype.off=function(t,e){var i=this._listeners[t].indexOf(e);return i>-1&&this._listeners[t].splice(i,1),this},e.prototype._fire=function(t,e){(this._listeners[t]||[]).forEach(function(t){t(this.node,e)}.bind(this))},e.prototype._bindKeypress=function(t){this.shown&&27===t.which&&(t.preventDefault(),this.hide()),this.shown&&9===t.which&&c(this.node,t)},e.prototype._maintainFocus=function(t){this.shown&&!this.node.contains(t.target)&&s(this.node)},e.prototype._applyOpenEffect=function(){var t=this;setTimeout(function(){t.node.classList.add("a11y-dialog--open")},50),"fade"===this.options.effect&&(this.node.style.opacity="0",this.node.style.transition="opacity "+this.options.effectSpeed+"ms "+this.options.effectEasing,setTimeout(function(){t.node.style.opacity="1"},50))},e.prototype._applyCloseEffect=function(){var t=this;this.node.classList.remove("a11y-dialog--open"),"fade"===this.options.effect?(this.node.style.opacity="0",setTimeout(function(){t.node.style.transition="",t.node.setAttribute("aria-hidden","true")},this.options.effectSpeed)):"css"===this.options.effect&&setTimeout(function(){t.node.setAttribute("aria-hidden","true")},this.options.effectSpeed)},"undefined"!=typeof module&&void 0!==module.exports?module.exports=e:"function"==typeof define&&define.amd?define("A11yDialog",[],function(){return e}):"object"==typeof t&&(t.A11yDialog=e)}("undefined"!=typeof global?global:window);
|
common/vendor/lucatume/di52/src/tad/DI52/Container.php
CHANGED
@@ -296,6 +296,8 @@ class tad_DI52_Container implements ArrayAccess {
|
|
296 |
*
|
297 |
* @param string $classOrInterface
|
298 |
*
|
|
|
|
|
299 |
* @return array|mixed
|
300 |
*/
|
301 |
protected function resolve($classOrInterface) {
|
@@ -315,6 +317,8 @@ class tad_DI52_Container implements ArrayAccess {
|
|
315 |
} catch (Exception $e) {
|
316 |
if ( $e instanceof ReflectionException ) {
|
317 |
throw $e;
|
|
|
|
|
318 |
}
|
319 |
|
320 |
throw new RuntimeException("'{$classOrInterface}' is not a bound alias or an existing class.");
|
@@ -340,14 +344,14 @@ class tad_DI52_Container implements ArrayAccess {
|
|
340 |
preg_match('/Error while making/', $e->getMessage(), $matches);
|
341 |
if (count($matches)) {
|
342 |
// @codeCoverageIgnoreStart
|
343 |
-
$
|
344 |
-
$prefix
|
345 |
// @codeCoverageIgnoreEnd
|
346 |
} else {
|
347 |
-
$
|
348 |
-
$prefix
|
349 |
}
|
350 |
-
$message = "{$prefix}
|
351 |
|
352 |
throw new RuntimeException($message);
|
353 |
}
|
@@ -697,8 +701,19 @@ class tad_DI52_Container implements ArrayAccess {
|
|
697 |
* an object or a closure.
|
698 |
* @param array $afterBuildMethods An array of methods that should be called on the built implementation after
|
699 |
* resolving it.
|
|
|
|
|
|
|
700 |
*/
|
701 |
-
public function bind($classOrInterface, $implementation, array $afterBuildMethods = null) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
702 |
$this->offsetUnset($classOrInterface);
|
703 |
|
704 |
$this->bindings[$classOrInterface] = $classOrInterface;
|
@@ -729,7 +744,7 @@ class tad_DI52_Container implements ArrayAccess {
|
|
729 |
* @param array $afterBuildMethods An array of methods that should be called on the built implementation after
|
730 |
* resolving it.
|
731 |
*/
|
732 |
-
public function singleton($classOrInterface, $implementation, array $afterBuildMethods = null) {
|
733 |
$this->bind($classOrInterface, $implementation, $afterBuildMethods);
|
734 |
|
735 |
$this->singletons[$classOrInterface] = $classOrInterface;
|
@@ -739,9 +754,9 @@ class tad_DI52_Container implements ArrayAccess {
|
|
739 |
* Returns a lambda function suitable to use as a callback; when called the function will build the implementation
|
740 |
* bound to `$classOrInterface` and return the value of a call to `$method` method with the call arguments.
|
741 |
*
|
742 |
-
* @param string $classOrInterface A class or interface fully qualified name or a string slug.
|
743 |
-
* @param string
|
744 |
-
*
|
745 |
*
|
746 |
* @return mixed The called method return value.
|
747 |
*/
|
@@ -752,6 +767,14 @@ class tad_DI52_Container implements ArrayAccess {
|
|
752 |
throw new RuntimeException('Callback method must be a string');
|
753 |
}
|
754 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
755 |
if ($this->useClosures) {
|
756 |
$f = di52_callbackClosure($this, $classOrInterface, $method);
|
757 |
} else {
|
@@ -776,11 +799,7 @@ class tad_DI52_Container implements ArrayAccess {
|
|
776 |
// @codeCoverageIgnoreEnd
|
777 |
}
|
778 |
|
779 |
-
|
780 |
-
$classOrInterface = get_class($classOrInterface);
|
781 |
-
}
|
782 |
-
|
783 |
-
$this->callbacks[$classOrInterface . '::' . $method] = $f;
|
784 |
|
785 |
return $f;
|
786 |
}
|
296 |
*
|
297 |
* @param string $classOrInterface
|
298 |
*
|
299 |
+
* @throws RuntimeException|ReflectionException
|
300 |
+
*
|
301 |
* @return array|mixed
|
302 |
*/
|
303 |
protected function resolve($classOrInterface) {
|
317 |
} catch (Exception $e) {
|
318 |
if ( $e instanceof ReflectionException ) {
|
319 |
throw $e;
|
320 |
+
} elseif ( $e instanceof RuntimeException ) {
|
321 |
+
throw $e;
|
322 |
}
|
323 |
|
324 |
throw new RuntimeException("'{$classOrInterface}' is not a bound alias or an existing class.");
|
344 |
preg_match('/Error while making/', $e->getMessage(), $matches);
|
345 |
if (count($matches)) {
|
346 |
// @codeCoverageIgnoreStart
|
347 |
+
$separator = "\n\t =>";
|
348 |
+
$prefix = '';
|
349 |
// @codeCoverageIgnoreEnd
|
350 |
} else {
|
351 |
+
$separator = ':';
|
352 |
+
$prefix = 'Error while making ';
|
353 |
}
|
354 |
+
$message = "{$prefix}'{$classOrInterface}'{$separator} " . $e->getMessage();
|
355 |
|
356 |
throw new RuntimeException($message);
|
357 |
}
|
701 |
* an object or a closure.
|
702 |
* @param array $afterBuildMethods An array of methods that should be called on the built implementation after
|
703 |
* resolving it.
|
704 |
+
*
|
705 |
+
* @throws ReflectionException When binding a class that does not exist without defining an implementation.
|
706 |
+
* @throws InvalidArgumentException When binding a class that cannot be instantiated without defining an implementation.
|
707 |
*/
|
708 |
+
public function bind($classOrInterface, $implementation = null, array $afterBuildMethods = null) {
|
709 |
+
if (is_null($implementation)) {
|
710 |
+
$reflection = new ReflectionClass($classOrInterface);
|
711 |
+
if (!$reflection->isInstantiable()) {
|
712 |
+
throw new InvalidArgumentException( sprintf('To bind a class in the Container without defining an implementation, the class must be instantiable. %s is not instantiable.', $classOrInterface) );
|
713 |
+
}
|
714 |
+
$implementation = $classOrInterface;
|
715 |
+
}
|
716 |
+
|
717 |
$this->offsetUnset($classOrInterface);
|
718 |
|
719 |
$this->bindings[$classOrInterface] = $classOrInterface;
|
744 |
* @param array $afterBuildMethods An array of methods that should be called on the built implementation after
|
745 |
* resolving it.
|
746 |
*/
|
747 |
+
public function singleton($classOrInterface, $implementation = null, array $afterBuildMethods = null) {
|
748 |
$this->bind($classOrInterface, $implementation, $afterBuildMethods);
|
749 |
|
750 |
$this->singletons[$classOrInterface] = $classOrInterface;
|
754 |
* Returns a lambda function suitable to use as a callback; when called the function will build the implementation
|
755 |
* bound to `$classOrInterface` and return the value of a call to `$method` method with the call arguments.
|
756 |
*
|
757 |
+
* @param string|object $classOrInterface A class or interface fully qualified name or a string slug.
|
758 |
+
* @param string $method The method that should be called on the resolved implementation with the
|
759 |
+
* specified array arguments.
|
760 |
*
|
761 |
* @return mixed The called method return value.
|
762 |
*/
|
767 |
throw new RuntimeException('Callback method must be a string');
|
768 |
}
|
769 |
|
770 |
+
$classOrInterfaceName = is_object($classOrInterface) ? spl_object_hash($classOrInterface) : $classOrInterface;
|
771 |
+
$cacheKey = $classOrInterfaceName . '::' . $method;
|
772 |
+
|
773 |
+
if ( isset( $this->callbacks[ $cacheKey ] ) ) {
|
774 |
+
// Only return the existing callback if $classOrInterface was not an object (so it remains unique).
|
775 |
+
return $this->callbacks[ $cacheKey ];
|
776 |
+
}
|
777 |
+
|
778 |
if ($this->useClosures) {
|
779 |
$f = di52_callbackClosure($this, $classOrInterface, $method);
|
780 |
} else {
|
799 |
// @codeCoverageIgnoreEnd
|
800 |
}
|
801 |
|
802 |
+
$this->callbacks[ $cacheKey ] = $f;
|
|
|
|
|
|
|
|
|
803 |
|
804 |
return $f;
|
805 |
}
|
common/vendor/lucatume/di52/src/tad/DI52/closuresSupport.php
CHANGED
@@ -4,24 +4,31 @@
|
|
4 |
* method value.
|
5 |
*
|
6 |
* @param tad_DI52_Container $container
|
7 |
-
* @param string
|
8 |
-
* @param string
|
9 |
*
|
10 |
* @return Closure
|
11 |
*/
|
12 |
function di52_callbackClosure(tad_DI52_Container $container, $classOrInterface, $method) {
|
13 |
-
|
14 |
-
|
15 |
-
$objectId
|
16 |
-
$container->bind($objectId, $classOrInterface);
|
17 |
} else {
|
18 |
$objectId = $classOrInterface;
|
19 |
}
|
20 |
|
21 |
-
|
22 |
-
|
23 |
-
$
|
24 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
};
|
26 |
}
|
27 |
|
4 |
* method value.
|
5 |
*
|
6 |
* @param tad_DI52_Container $container
|
7 |
+
* @param string|object $classOrInterface
|
8 |
+
* @param string $method
|
9 |
*
|
10 |
* @return Closure
|
11 |
*/
|
12 |
function di52_callbackClosure(tad_DI52_Container $container, $classOrInterface, $method) {
|
13 |
+
if ( is_object( $classOrInterface ) ) {
|
14 |
+
$objectId = uniqid( spl_object_hash( $classOrInterface ), true );
|
15 |
+
$container->bind( $objectId, $classOrInterface );
|
|
|
16 |
} else {
|
17 |
$objectId = $classOrInterface;
|
18 |
}
|
19 |
|
20 |
+
$isStatic = false;
|
21 |
+
try {
|
22 |
+
$reflectionMethod = new ReflectionMethod($classOrInterface, $method);
|
23 |
+
$isStatic = $reflectionMethod->isStatic();
|
24 |
+
} catch ( ReflectionException $e ) {
|
25 |
+
// no-op
|
26 |
+
}
|
27 |
+
|
28 |
+
return function () use ( $isStatic, $container, $objectId, $method ) {
|
29 |
+
return $isStatic ?
|
30 |
+
call_user_func_array( array( $objectId, $method ), func_get_args() )
|
31 |
+
: call_user_func_array( array( $container->make( $objectId ), $method ), func_get_args() );
|
32 |
};
|
33 |
}
|
34 |
|
event-tickets.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Event Tickets
|
4 |
Plugin URI: http://m.tri.be/1acb
|
5 |
Description: Event Tickets allows you to sell basic tickets and collect RSVPs from any post, page, or event.
|
6 |
-
Version: 5.0.
|
7 |
Author: Modern Tribe, Inc.
|
8 |
Author URI: http://m.tri.be/28
|
9 |
License: GPLv2 or later
|
3 |
Plugin Name: Event Tickets
|
4 |
Plugin URI: http://m.tri.be/1acb
|
5 |
Description: Event Tickets allows you to sell basic tickets and collect RSVPs from any post, page, or event.
|
6 |
+
Version: 5.0.4
|
7 |
Author: Modern Tribe, Inc.
|
8 |
Author URI: http://m.tri.be/28
|
9 |
License: GPLv2 or later
|
lang/event-tickets-de_DE.mo
CHANGED
Binary file
|
lang/event-tickets-es_ES.mo
CHANGED
Binary file
|
lang/event-tickets-ro_RO.mo
CHANGED
Binary file
|
lang/event-tickets-sv_SE.mo
CHANGED
Binary file
|
lang/event-tickets.pot
CHANGED
@@ -2,19 +2,19 @@
|
|
2 |
# This file is distributed under the same license as the Event Tickets package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Event Tickets 5.0.
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/event-tickets\n"
|
7 |
-
"POT-Creation-Date: 2020-11
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"PO-Revision-Date: 2020-11
|
12 |
"Last-Translator: \n"
|
13 |
"Language-Team: \n"
|
14 |
|
15 |
-
#. #-#-#-#-# event-tickets.pot (Event Tickets 5.0.
|
16 |
#. Plugin Name of the plugin/theme
|
17 |
-
#: event-tickets.php:62 src/Tribe/Admin/Notices.php:
|
18 |
#: src/Tribe/Privacy.php:59 src/admin-views/admin-welcome-message.php:58
|
19 |
msgid "Event Tickets"
|
20 |
msgstr ""
|
@@ -146,13 +146,13 @@ msgstr ""
|
|
146 |
msgid "This ticket was moved to %1$s from %2$s"
|
147 |
msgstr ""
|
148 |
|
149 |
-
#: src/Tribe/Admin/Notices.php:
|
150 |
msgctxt "Admin notice link text"
|
151 |
msgid "RSVP Display Settings"
|
152 |
msgstr ""
|
153 |
|
154 |
#. translators: %1$s: RSVP singular text, %2$s: Link to settings page.
|
155 |
-
#: src/Tribe/Admin/Notices.php:
|
156 |
msgid ""
|
157 |
"With this new version, we've introduced newly redesigned %1$s frontend "
|
158 |
"views. If you have customized the %1$s section, this update will likely "
|
@@ -161,7 +161,42 @@ msgid ""
|
|
161 |
"\t\t\tTo upgrade to the new frontend views, please enable them in the %2$s."
|
162 |
msgstr ""
|
163 |
|
164 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
165 |
msgid ""
|
166 |
"Event Tickets does not support ticket sales via third party ecommerce "
|
167 |
"plugins. If you want to sell tickets with %1$s, please purchase a license "
|
@@ -212,7 +247,7 @@ msgstr ""
|
|
212 |
msgid "Please enter in without thousand separators and currency symbols."
|
213 |
msgstr ""
|
214 |
|
215 |
-
#: src/Tribe/Assets.php:
|
216 |
msgid ""
|
217 |
"There is unsaved attendee information. Are you sure you want to continue?"
|
218 |
msgstr ""
|
@@ -260,96 +295,100 @@ msgstr ""
|
|
260 |
msgid "See who purchased tickets to this event"
|
261 |
msgstr ""
|
262 |
|
263 |
-
#: src/Tribe/Attendees.php:
|
264 |
msgid "You need to select a user or type a valid email address"
|
265 |
msgstr ""
|
266 |
|
267 |
-
#: src/Tribe/Attendees.php:
|
268 |
msgid "Sending..."
|
269 |
msgstr ""
|
270 |
|
271 |
-
#: src/Tribe/Attendees.php:
|
272 |
msgid "You must first select one or more tickets before you can move them!"
|
273 |
msgstr ""
|
274 |
|
275 |
-
#: src/Tribe/Attendees.php:
|
|
|
|
|
|
|
|
|
276 |
msgid "Columns"
|
277 |
msgstr ""
|
278 |
|
279 |
-
#: src/Tribe/Attendees.php:
|
280 |
msgid ""
|
281 |
"You can use Screen Options to select which columns you want to see. The "
|
282 |
"selection works in the table below, in the email, for print and for the CSV "
|
283 |
"export."
|
284 |
msgstr ""
|
285 |
|
286 |
-
#: src/Tribe/Attendees.php:
|
287 |
msgid "%s - Attendee list"
|
288 |
msgstr ""
|
289 |
|
290 |
-
#: src/Tribe/Attendees.php:
|
291 |
msgctxt "attendee export"
|
292 |
msgid "Order ID"
|
293 |
msgstr ""
|
294 |
|
295 |
-
#: src/Tribe/Attendees.php:
|
296 |
msgctxt "attendee export"
|
297 |
msgid "Order Status"
|
298 |
msgstr ""
|
299 |
|
300 |
-
#: src/Tribe/Attendees.php:
|
301 |
msgctxt "attendee export"
|
302 |
msgid "%s ID"
|
303 |
msgstr ""
|
304 |
|
305 |
-
#: src/Tribe/Attendees.php:
|
306 |
msgctxt "attendee export"
|
307 |
msgid "Customer Name"
|
308 |
msgstr ""
|
309 |
|
310 |
-
#: src/Tribe/Attendees.php:
|
311 |
msgctxt "attendee export"
|
312 |
msgid "Customer Email Address"
|
313 |
msgstr ""
|
314 |
|
315 |
-
#: src/Tribe/Attendees.php:
|
316 |
-
#: src/admin-views/tribe-options-tickets.php:
|
317 |
msgid "Yes"
|
318 |
msgstr ""
|
319 |
|
320 |
-
#: src/Tribe/Attendees.php:
|
321 |
msgid "attendees"
|
322 |
msgstr ""
|
323 |
|
324 |
-
#: src/Tribe/Attendees.php:
|
325 |
msgid "Invalid Event ID"
|
326 |
msgstr ""
|
327 |
|
328 |
-
#: src/Tribe/Attendees.php:
|
329 |
msgid "Cheatin Huh?"
|
330 |
msgstr ""
|
331 |
|
332 |
-
#: src/Tribe/Attendees.php:
|
333 |
msgid "Empty user and email"
|
334 |
msgstr ""
|
335 |
|
336 |
-
#: src/Tribe/Attendees.php:
|
337 |
msgid "Invalid Email"
|
338 |
msgstr ""
|
339 |
|
340 |
-
#: src/Tribe/Attendees.php:
|
341 |
msgid "Invalid User ID"
|
342 |
msgstr ""
|
343 |
|
344 |
-
#: src/Tribe/Attendees.php:
|
345 |
msgid "Attendee List for: %s"
|
346 |
msgstr ""
|
347 |
|
348 |
-
#: src/Tribe/Attendees.php:
|
349 |
msgid "Error when sending the email"
|
350 |
msgstr ""
|
351 |
|
352 |
-
#: src/Tribe/Attendees.php:
|
353 |
msgid "Email sent successfully!"
|
354 |
msgstr ""
|
355 |
|
@@ -783,7 +822,7 @@ msgstr ""
|
|
783 |
msgid "Post draft updated."
|
784 |
msgstr ""
|
785 |
|
786 |
-
#: src/Tribe/Commerce/PayPal/Main.php:
|
787 |
msgid "(deleted)"
|
788 |
msgstr ""
|
789 |
|
@@ -918,23 +957,23 @@ msgstr ""
|
|
918 |
msgid "unavailable"
|
919 |
msgstr ""
|
920 |
|
921 |
-
#: src/Tribe/Editor/Attendee_Registration.php:
|
922 |
msgid "return to the content editor"
|
923 |
msgstr ""
|
924 |
|
925 |
-
#: src/Tribe/Editor/Attendee_Registration.php:
|
926 |
msgid "Attendee Registration fields saved. Make additional changes or %1$s"
|
927 |
msgstr ""
|
928 |
|
929 |
-
#: src/Tribe/Editor/Attendee_Registration.php:
|
930 |
msgid "Back to Editor"
|
931 |
msgstr ""
|
932 |
|
933 |
-
#: src/Tribe/Editor/Attendee_Registration.php:
|
934 |
msgid "Save Changes"
|
935 |
msgstr ""
|
936 |
|
937 |
-
#: src/Tribe/Editor/Attendee_Registration.php:
|
938 |
msgid "Are you sure you want to leave this page?"
|
939 |
msgstr ""
|
940 |
|
@@ -946,27 +985,27 @@ msgstr ""
|
|
946 |
msgid "Are you sure you want to cancel?"
|
947 |
msgstr ""
|
948 |
|
949 |
-
#: src/Tribe/Editor/Blocks/Tickets.php:297 src/Tribe/Tickets.php:
|
950 |
msgctxt "Error message title, will be followed by the error code."
|
951 |
msgid "API Error"
|
952 |
msgstr ""
|
953 |
|
954 |
-
#: src/Tribe/Editor/Blocks/Tickets.php:298 src/Tribe/Tickets.php:
|
955 |
msgid ""
|
956 |
"Refresh this page or wait a few minutes before trying again. If this happens "
|
957 |
"repeatedly, please contact the Site Admin."
|
958 |
msgstr ""
|
959 |
|
960 |
-
#: src/Tribe/Editor/Blocks/Tickets.php:299 src/Tribe/Tickets.php:
|
961 |
msgid ""
|
962 |
"The ticket for this event has sold out and has been removed from your cart."
|
963 |
msgstr ""
|
964 |
|
965 |
-
#: src/Tribe/Editor/Blocks/Tickets.php:300 src/Tribe/Tickets.php:
|
966 |
msgid "Whoops!"
|
967 |
msgstr ""
|
968 |
|
969 |
-
#: src/Tribe/Editor/Blocks/Tickets.php:301 src/Tribe/Tickets.php:
|
970 |
msgctxt "The %s will change based on the error produced."
|
971 |
msgid "You have %s ticket(s) with a field that requires information."
|
972 |
msgstr ""
|
@@ -994,6 +1033,26 @@ msgstr ""
|
|
994 |
msgid "%s was not able to be updated"
|
995 |
msgstr ""
|
996 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
997 |
#: src/Tribe/Editor.php:208
|
998 |
msgid "Tickets Blocks"
|
999 |
msgstr ""
|
@@ -1057,113 +1116,108 @@ msgctxt "provider_plugin_name"
|
|
1057 |
msgid "Tickets"
|
1058 |
msgstr ""
|
1059 |
|
1060 |
-
#: src/Tribe/Main.php:
|
1061 |
msgid ""
|
1062 |
"When The Events Calendar and Event Tickets are both activated, The Events "
|
1063 |
"Calendar must be running version %1$s or greater. Please %2$supdate now.%3$s"
|
1064 |
msgstr ""
|
1065 |
|
1066 |
-
#: src/Tribe/Main.php:
|
1067 |
msgid ""
|
1068 |
"Sorry, Event Tickets requires WordPress %s or higher. Please upgrade your "
|
1069 |
"WordPress install."
|
1070 |
msgstr ""
|
1071 |
|
1072 |
-
#: src/Tribe/Main.php:
|
1073 |
msgid ""
|
1074 |
"Sorry, Event Tickets requires PHP %s or higher. Talk to your Web host about "
|
1075 |
"moving you to a newer version of PHP."
|
1076 |
msgstr ""
|
1077 |
|
1078 |
-
#: src/Tribe/Main.php:
|
1079 |
msgid "Support for Event Tickets"
|
1080 |
msgstr ""
|
1081 |
|
1082 |
-
#: src/Tribe/Main.php:
|
1083 |
msgid "Settings overview"
|
1084 |
msgstr ""
|
1085 |
|
1086 |
-
#: src/Tribe/Main.php:
|
1087 |
msgid "Features overview"
|
1088 |
msgstr ""
|
1089 |
|
1090 |
-
#: src/Tribe/Main.php:
|
1091 |
msgid "Troubleshooting common problems"
|
1092 |
msgstr ""
|
1093 |
|
1094 |
-
#: src/Tribe/Main.php:
|
1095 |
msgid "Customizing Event Tickets"
|
1096 |
msgstr ""
|
1097 |
|
1098 |
-
#: src/Tribe/Main.php:
|
1099 |
msgid "New User Primer"
|
1100 |
msgstr ""
|
1101 |
|
1102 |
-
#: src/Tribe/Main.php:
|
1103 |
msgctxt "help feature box section"
|
1104 |
msgid ""
|
1105 |
"We are committed to helping you sell %1$s for your event. Check out our "
|
1106 |
"handy %2$s to get started."
|
1107 |
msgstr ""
|
1108 |
|
1109 |
-
#: src/Tribe/Main.php:
|
1110 |
msgid "open-source forum on WordPress.org"
|
1111 |
msgstr ""
|
1112 |
|
1113 |
-
#: src/Tribe/Main.php:
|
1114 |
msgid ""
|
1115 |
"If you have tried the above steps and are still having trouble, you can post "
|
1116 |
"a new thread to our %s. Our support staff monitors these forums once a week "
|
1117 |
"and would be happy to assist you there."
|
1118 |
msgstr ""
|
1119 |
|
1120 |
-
#: src/Tribe/Main.php:
|
1121 |
msgid "premium support on our website"
|
1122 |
msgstr ""
|
1123 |
|
1124 |
-
#: src/Tribe/Main.php:
|
1125 |
-
#: src/admin-views/tribe-options-tickets.php:146
|
1126 |
-
msgid "Event Tickets Plus"
|
1127 |
-
msgstr ""
|
1128 |
-
|
1129 |
-
#: src/Tribe/Main.php:653
|
1130 |
msgid ""
|
1131 |
"Looking for more immediate support? We offer %1$s with the purchase of any "
|
1132 |
"of our premium plugins (like %2$s). Pick up a license and you can post there "
|
1133 |
"directly and expect a response within 24-48 hours during weekdays."
|
1134 |
msgstr ""
|
1135 |
|
1136 |
-
#: src/Tribe/Main.php:
|
1137 |
msgid "post a thread"
|
1138 |
msgstr ""
|
1139 |
|
1140 |
-
#: src/Tribe/Main.php:
|
1141 |
msgid ""
|
1142 |
"Already have Event Tickets Plus? You can %s in our premium support forums. "
|
1143 |
"Our support team monitors the forums and will respond to your thread within "
|
1144 |
"24-48 hours (during the week)."
|
1145 |
msgstr ""
|
1146 |
|
1147 |
-
#: src/Tribe/Main.php:
|
1148 |
msgid ""
|
1149 |
"If you have a valid license for one of our paid plugins, you can %s in our "
|
1150 |
"premium support forums. Our support team monitors the forums and will "
|
1151 |
"respond to your thread within 24-48 hours (during the week)."
|
1152 |
msgstr ""
|
1153 |
|
1154 |
-
#: src/Tribe/Main.php:
|
1155 |
msgid "Event Tickets - Legacy"
|
1156 |
msgstr ""
|
1157 |
|
1158 |
-
#: src/Tribe/Main.php:
|
1159 |
msgid "Welcome to Event Tickets!"
|
1160 |
msgstr ""
|
1161 |
|
1162 |
-
#: src/Tribe/Main.php:
|
1163 |
msgid "Buy"
|
1164 |
msgstr ""
|
1165 |
|
1166 |
-
#: src/Tribe/Main.php:
|
1167 |
msgid ""
|
1168 |
"When Event Tickets and Event Tickets Plus are both activated, Event Tickets "
|
1169 |
"Plus must be running version %1$s or greater. Please %2$smanually update now"
|
@@ -2230,169 +2284,169 @@ msgstr ""
|
|
2230 |
msgid "Quick Links:"
|
2231 |
msgstr ""
|
2232 |
|
2233 |
-
#: src/admin-views/admin-welcome-message.php:
|
2234 |
-
#: src/admin-views/admin-welcome-message.php:
|
2235 |
-
#: src/admin-views/admin-welcome-message.php:
|
2236 |
-
#: src/admin-views/admin-welcome-message.php:
|
2237 |
msgid "Configure Settings"
|
2238 |
msgstr ""
|
2239 |
|
2240 |
-
#: src/admin-views/admin-welcome-message.php:
|
2241 |
-
#: src/admin-views/admin-welcome-message.php:
|
2242 |
msgid "Install WooCommerce"
|
2243 |
msgstr ""
|
2244 |
|
2245 |
-
#: src/admin-views/admin-welcome-message.php:
|
2246 |
msgid "Create Ticket"
|
2247 |
msgstr ""
|
2248 |
|
2249 |
-
#: src/admin-views/admin-welcome-message.php:
|
2250 |
-
#: src/admin-views/admin-welcome-message.php:
|
2251 |
msgid "Install The Events Calendar"
|
2252 |
msgstr ""
|
2253 |
|
2254 |
-
#: src/admin-views/admin-welcome-message.php:
|
2255 |
msgid "Create RSVP"
|
2256 |
msgstr ""
|
2257 |
|
2258 |
-
#: src/admin-views/admin-welcome-message.php:
|
2259 |
-
#: src/admin-views/admin-welcome-message.php:
|
2260 |
msgid "Setup PayPal"
|
2261 |
msgstr ""
|
2262 |
|
2263 |
-
#: src/admin-views/admin-welcome-message.php:
|
2264 |
msgid "Helpful Resources"
|
2265 |
msgstr ""
|
2266 |
|
2267 |
-
#: src/admin-views/admin-welcome-message.php:
|
2268 |
-
#: src/admin-views/admin-welcome-message.php:
|
2269 |
-
#: src/admin-views/admin-welcome-message.php:
|
2270 |
msgid "Illustration of a book with The Events Calendar logo"
|
2271 |
msgstr ""
|
2272 |
|
2273 |
-
#: src/admin-views/admin-welcome-message.php:
|
2274 |
msgid "Getting Started Guide"
|
2275 |
msgstr ""
|
2276 |
|
2277 |
-
#: src/admin-views/admin-welcome-message.php:
|
2278 |
msgid "New to Event Tickets? Here's everything you need to get started."
|
2279 |
msgstr ""
|
2280 |
|
2281 |
-
#: src/admin-views/admin-welcome-message.php:
|
2282 |
msgid "Check out the guide"
|
2283 |
msgstr ""
|
2284 |
|
2285 |
-
#: src/admin-views/admin-welcome-message.php:
|
2286 |
msgid "Illustration of a thought lightbulb coming from a book"
|
2287 |
msgstr ""
|
2288 |
|
2289 |
-
#: src/admin-views/admin-welcome-message.php:
|
2290 |
msgid "Knowledgebase"
|
2291 |
msgstr ""
|
2292 |
|
2293 |
-
#: src/admin-views/admin-welcome-message.php:
|
2294 |
msgid ""
|
2295 |
"Ready to dig deeper? Our Knowledgebase can help you get the most out of The "
|
2296 |
"Events Calendar suite."
|
2297 |
msgstr ""
|
2298 |
|
2299 |
-
#: src/admin-views/admin-welcome-message.php:
|
2300 |
msgid "Dig deeper"
|
2301 |
msgstr ""
|
2302 |
|
2303 |
-
#: src/admin-views/admin-welcome-message.php:
|
2304 |
msgid "Illustration of characters being translated"
|
2305 |
msgstr ""
|
2306 |
|
2307 |
-
#: src/admin-views/admin-welcome-message.php:
|
2308 |
msgid "Translations"
|
2309 |
msgstr ""
|
2310 |
|
2311 |
-
#: src/admin-views/admin-welcome-message.php:
|
2312 |
msgid "Need a language other than English? We've got you covered here."
|
2313 |
msgstr ""
|
2314 |
|
2315 |
-
#: src/admin-views/admin-welcome-message.php:
|
2316 |
-
#: src/admin-views/admin-welcome-message.php:
|
2317 |
-
#: src/admin-views/admin-welcome-message.php:
|
2318 |
msgid "Learn more"
|
2319 |
msgstr ""
|
2320 |
|
2321 |
-
#: src/admin-views/admin-welcome-message.php:
|
2322 |
msgid "Illustration of a phone screen with a person's face"
|
2323 |
msgstr ""
|
2324 |
|
2325 |
-
#: src/admin-views/admin-welcome-message.php:
|
2326 |
msgid "Virtual Event Resources"
|
2327 |
msgstr ""
|
2328 |
|
2329 |
-
#: src/admin-views/admin-welcome-message.php:
|
2330 |
msgid ""
|
2331 |
"Tips and tools to help with planning online events, webinars, and more on "
|
2332 |
"WordPress and beyond."
|
2333 |
msgstr ""
|
2334 |
|
2335 |
-
#: src/admin-views/admin-welcome-message.php:
|
2336 |
msgid "Get started with online events"
|
2337 |
msgstr ""
|
2338 |
|
2339 |
-
#: src/admin-views/admin-welcome-message.php:
|
2340 |
msgid "Illustration of a power plug and gears"
|
2341 |
msgstr ""
|
2342 |
|
2343 |
-
#: src/admin-views/admin-welcome-message.php:
|
2344 |
msgid "Browse our library of free extensions for Event Tickets."
|
2345 |
msgstr ""
|
2346 |
|
2347 |
-
#: src/admin-views/admin-welcome-message.php:
|
2348 |
-
#: src/admin-views/admin-welcome-message.php:
|
2349 |
msgid "Want to take your events to the next level?"
|
2350 |
msgstr ""
|
2351 |
|
2352 |
-
#: src/admin-views/admin-welcome-message.php:
|
2353 |
-
#: src/admin-views/admin-welcome-message.php:
|
2354 |
msgid "Check out our suite of add-ons"
|
2355 |
msgstr ""
|
2356 |
|
2357 |
-
#: src/admin-views/admin-welcome-message.php:
|
2358 |
msgid "Illustration of a calendar"
|
2359 |
msgstr ""
|
2360 |
|
2361 |
-
#: src/admin-views/admin-welcome-message.php:
|
2362 |
msgid "Add The Events Calendar (it's free!) to enhance Event Tickets."
|
2363 |
msgstr ""
|
2364 |
|
2365 |
-
#: src/admin-views/admin-welcome-message.php:
|
2366 |
msgid "Illustration of a hand holding a ticket and the WooCommerce logo"
|
2367 |
msgstr ""
|
2368 |
|
2369 |
-
#: src/admin-views/admin-welcome-message.php:
|
2370 |
msgid "Add WooCommerce integration, advanced registration, and more."
|
2371 |
msgstr ""
|
2372 |
|
2373 |
-
#: src/admin-views/admin-welcome-message.php:
|
2374 |
msgid "Check out Event Tickets Plus"
|
2375 |
msgstr ""
|
2376 |
|
2377 |
-
#: src/admin-views/admin-welcome-message.php:
|
2378 |
msgid "Want this emailed to you?"
|
2379 |
msgstr ""
|
2380 |
|
2381 |
-
#: src/admin-views/admin-welcome-message.php:
|
2382 |
msgid ""
|
2383 |
"Keep this list of links on hand and stay subscribed to receive tips and "
|
2384 |
"tricks about The Events Calendar products."
|
2385 |
msgstr ""
|
2386 |
|
2387 |
-
#: src/admin-views/admin-welcome-message.php:
|
2388 |
msgid "Your email"
|
2389 |
msgstr ""
|
2390 |
|
2391 |
-
#: src/admin-views/admin-welcome-message.php:
|
2392 |
msgid "Sign Up"
|
2393 |
msgstr ""
|
2394 |
|
2395 |
-
#: src/admin-views/admin-welcome-message.php:
|
2396 |
msgid "The Events Calendar brand logo"
|
2397 |
msgstr ""
|
2398 |
|
@@ -2451,77 +2505,14 @@ msgstr ""
|
|
2451 |
msgid "Price"
|
2452 |
msgstr ""
|
2453 |
|
2454 |
-
#: src/admin-views/editor/fieldset/advanced.php:
|
2455 |
-
msgid "Start sale date cannot be empty."
|
2456 |
-
msgstr ""
|
2457 |
-
|
2458 |
-
#: src/admin-views/editor/fieldset/advanced.php:41
|
2459 |
-
msgid "Start sale date cannot be greater than End Sale date"
|
2460 |
-
msgstr ""
|
2461 |
-
|
2462 |
-
#: src/admin-views/editor/fieldset/advanced.php:45
|
2463 |
msgid "Advanced"
|
2464 |
msgstr ""
|
2465 |
|
2466 |
-
#: src/admin-views/editor/fieldset/advanced.php:
|
2467 |
msgid "Advanced Settings"
|
2468 |
msgstr ""
|
2469 |
|
2470 |
-
#: src/admin-views/editor/fieldset/advanced.php:50
|
2471 |
-
msgid "Description:"
|
2472 |
-
msgstr ""
|
2473 |
-
|
2474 |
-
#: src/admin-views/editor/fieldset/advanced.php:70
|
2475 |
-
msgid "Show description on front end %s form."
|
2476 |
-
msgstr ""
|
2477 |
-
|
2478 |
-
#: src/admin-views/editor/fieldset/advanced.php:78
|
2479 |
-
#: src/admin-views/meta-box.php:225
|
2480 |
-
msgid "Start sale:"
|
2481 |
-
msgstr ""
|
2482 |
-
|
2483 |
-
#: src/admin-views/editor/fieldset/advanced.php:91
|
2484 |
-
#: src/admin-views/editor/fieldset/advanced.php:133
|
2485 |
-
msgid "YYYY-MM-DD"
|
2486 |
-
msgstr ""
|
2487 |
-
|
2488 |
-
#: src/admin-views/editor/fieldset/advanced.php:92
|
2489 |
-
#: src/admin-views/editor/fieldset/advanced.php:134
|
2490 |
-
msgid "at"
|
2491 |
-
msgstr ""
|
2492 |
-
|
2493 |
-
#: src/admin-views/editor/fieldset/advanced.php:106
|
2494 |
-
msgid "%s start date"
|
2495 |
-
msgstr ""
|
2496 |
-
|
2497 |
-
#: src/admin-views/editor/fieldset/advanced.php:111
|
2498 |
-
#: src/admin-views/editor/fieldset/advanced.php:153
|
2499 |
-
msgid "HH:MM"
|
2500 |
-
msgstr ""
|
2501 |
-
|
2502 |
-
#: src/admin-views/editor/fieldset/advanced.php:115
|
2503 |
-
msgid "If you do not set a start sale date, %s will be available immediately."
|
2504 |
-
msgstr ""
|
2505 |
-
|
2506 |
-
#: src/admin-views/editor/fieldset/advanced.php:123
|
2507 |
-
#: src/admin-views/meta-box.php:256
|
2508 |
-
msgid "End sale:"
|
2509 |
-
msgstr ""
|
2510 |
-
|
2511 |
-
#: src/admin-views/editor/fieldset/advanced.php:148
|
2512 |
-
msgid "%s end date"
|
2513 |
-
msgstr ""
|
2514 |
-
|
2515 |
-
#: src/admin-views/editor/fieldset/advanced.php:160
|
2516 |
-
msgid ""
|
2517 |
-
"If you do not set an end sale date, %s will be available until the event "
|
2518 |
-
"begins."
|
2519 |
-
msgstr ""
|
2520 |
-
|
2521 |
-
#: src/admin-views/editor/fieldset/advanced.php:168
|
2522 |
-
msgid "If you do not set an end sale date, %s will be available forever."
|
2523 |
-
msgstr ""
|
2524 |
-
|
2525 |
#: src/admin-views/editor/fieldset/history.php:30
|
2526 |
msgid "History"
|
2527 |
msgstr ""
|
@@ -2560,18 +2551,18 @@ msgid ""
|
|
2560 |
"Current sale or member price. This can be managed via the product editor."
|
2561 |
msgstr ""
|
2562 |
|
2563 |
-
#: src/admin-views/editor/fieldset/settings-provider.php:
|
2564 |
msgid "Sell %s using:"
|
2565 |
msgstr ""
|
2566 |
|
2567 |
-
#: src/admin-views/editor/fieldset/settings-provider.php:
|
2568 |
msgid ""
|
2569 |
"It looks like you have multiple ecommerce plugins active. We recommend "
|
2570 |
"running only one at a time. However, if you need to run multiple, please "
|
2571 |
"select which one to use to sell %s for this event."
|
2572 |
msgstr ""
|
2573 |
|
2574 |
-
#: src/admin-views/editor/fieldset/settings-provider.php:
|
2575 |
msgid ""
|
2576 |
"Note: adjusting this setting will only impact new %1$s. Existing %1$s will "
|
2577 |
"not change. We highly recommend that all %1$s for one event use the same "
|
@@ -2667,51 +2658,141 @@ msgid "Save settings"
|
|
2667 |
msgstr ""
|
2668 |
|
2669 |
#: src/admin-views/editor/panel/settings.php:112
|
2670 |
-
#: src/admin-views/editor/panel/ticket.php:
|
2671 |
#: src/views/v2/rsvp/ari/form/buttons.php:22
|
2672 |
#: src/views/v2/rsvp/form/fields/cancel.php:23
|
2673 |
msgid "Cancel"
|
2674 |
msgstr ""
|
2675 |
|
2676 |
-
#: src/admin-views/editor/panel/ticket.php:
|
2677 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2678 |
msgctxt "admin add new ticket panel heading"
|
2679 |
msgid "Add new %s"
|
2680 |
msgstr ""
|
2681 |
|
2682 |
-
|
2683 |
-
|
|
|
|
|
2684 |
msgctxt "admin edit ticket panel heading"
|
2685 |
msgid "Edit %s"
|
2686 |
msgstr ""
|
2687 |
|
2688 |
-
#: src/admin-views/editor/panel/ticket.php:
|
2689 |
msgid "Type:"
|
2690 |
msgstr ""
|
2691 |
|
2692 |
-
|
2693 |
-
|
2694 |
-
|
|
|
|
|
|
|
2695 |
msgstr ""
|
2696 |
|
2697 |
-
|
2698 |
-
#: src/admin-views/editor/panel/ticket.php:
|
2699 |
-
msgctxt "admin edit
|
2700 |
-
msgid "
|
|
|
|
|
2701 |
msgstr ""
|
2702 |
|
2703 |
-
#: src/admin-views/editor/panel/ticket.php:
|
2704 |
-
msgid "
|
2705 |
msgstr ""
|
2706 |
|
2707 |
-
|
2708 |
-
|
2709 |
-
|
|
|
2710 |
msgstr ""
|
2711 |
|
2712 |
-
#: src/admin-views/editor/panel/ticket.php:
|
2713 |
-
|
2714 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2715 |
msgstr ""
|
2716 |
|
2717 |
#: src/admin-views/legacy-ticket-fields.php:19
|
@@ -3149,44 +3230,45 @@ msgctxt "tickets fields settings title"
|
|
3149 |
msgid "%s Settings"
|
3150 |
msgstr ""
|
3151 |
|
3152 |
-
|
|
|
3153 |
msgctxt "tickets fields settings enabled post types"
|
3154 |
msgid "Post types that can have %s"
|
3155 |
msgstr ""
|
3156 |
|
3157 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3158 |
msgid "Below the event details [default]"
|
3159 |
msgstr ""
|
3160 |
|
3161 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3162 |
msgid "Above the event details"
|
3163 |
msgstr ""
|
3164 |
|
3165 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3166 |
msgid "Below the event description"
|
3167 |
msgstr ""
|
3168 |
|
3169 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3170 |
msgid "Above the event description"
|
3171 |
msgstr ""
|
3172 |
|
3173 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3174 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3175 |
msgctxt "form location setting"
|
3176 |
msgid "Location of %s form"
|
3177 |
msgstr ""
|
3178 |
|
3179 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3180 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3181 |
msgid "This setting only impacts events made with the classic editor."
|
3182 |
msgstr ""
|
3183 |
|
3184 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3185 |
msgctxt "tickets remaining threshold label"
|
3186 |
msgid "Display # %s left threshold"
|
3187 |
msgstr ""
|
3188 |
|
3189 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3190 |
msgctxt "tickets remaining threshold tooltip"
|
3191 |
msgid ""
|
3192 |
"If this number is less than the number of %1$s left for sale on your event, "
|
@@ -3194,11 +3276,11 @@ msgid ""
|
|
3194 |
"You can leave this blank if you would like to always show the text."
|
3195 |
msgstr ""
|
3196 |
|
3197 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3198 |
msgid "Login Requirements"
|
3199 |
msgstr ""
|
3200 |
|
3201 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3202 |
msgctxt "ticket authentication requirements"
|
3203 |
msgid ""
|
3204 |
"You can require that users log into your site before they are able to %1$s "
|
@@ -3206,11 +3288,11 @@ msgid ""
|
|
3206 |
"%3$sGeneral Settings admin screen%4$s) before adjusting this setting."
|
3207 |
msgstr ""
|
3208 |
|
3209 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3210 |
msgid "Check it out!"
|
3211 |
msgstr ""
|
3212 |
|
3213 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3214 |
msgctxt "about Tribe Commerce"
|
3215 |
msgid ""
|
3216 |
"Tribe Commerce is a light implementation of a commerce gateway using PayPal "
|
@@ -3221,11 +3303,11 @@ msgid ""
|
|
3221 |
"%3$s"
|
3222 |
msgstr ""
|
3223 |
|
3224 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3225 |
msgid "these instructions"
|
3226 |
msgstr ""
|
3227 |
|
3228 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3229 |
msgctxt "tickets fields settings PayPal setup"
|
3230 |
msgid ""
|
3231 |
"In order to use Tribe Commerce to sell %1$s, you must configure your PayPal "
|
@@ -3233,154 +3315,154 @@ msgid ""
|
|
3233 |
"set up, follow %2$s"
|
3234 |
msgstr ""
|
3235 |
|
3236 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3237 |
msgid ""
|
3238 |
"Have you entered this site's address in the Notification URL field in IPN "
|
3239 |
"Settings?"
|
3240 |
msgstr ""
|
3241 |
|
3242 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3243 |
msgid "Your site address is: %s"
|
3244 |
msgstr ""
|
3245 |
|
3246 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3247 |
msgid "Tribe Commerce"
|
3248 |
msgstr ""
|
3249 |
|
3250 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3251 |
msgid "Enable Tribe Commerce "
|
3252 |
msgstr ""
|
3253 |
|
3254 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3255 |
msgid "Check this box if you wish to turn on Tribe Commerce functionality."
|
3256 |
msgstr ""
|
3257 |
|
3258 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3259 |
msgid "Configure PayPal:"
|
3260 |
msgstr ""
|
3261 |
|
3262 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3263 |
msgid "PayPal email to receive payments:"
|
3264 |
msgstr ""
|
3265 |
|
3266 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3267 |
msgid ""
|
3268 |
"Have you enabled instant payment notifications (IPN) in your PayPal "
|
3269 |
"account's Selling Tools?"
|
3270 |
msgstr ""
|
3271 |
|
3272 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3273 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3274 |
msgid "No"
|
3275 |
msgstr ""
|
3276 |
|
3277 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3278 |
msgid "PayPal configuration status:"
|
3279 |
msgstr ""
|
3280 |
|
3281 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3282 |
msgid ""
|
3283 |
"For help creating and configuring your account, call PayPal at "
|
3284 |
"1-844-720-4038 (USA)"
|
3285 |
msgstr ""
|
3286 |
|
3287 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3288 |
msgid "PayPal Sandbox"
|
3289 |
msgstr ""
|
3290 |
|
3291 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3292 |
msgid "Enables PayPal Sandbox mode for testing."
|
3293 |
msgstr ""
|
3294 |
|
3295 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3296 |
msgid "Currency Code"
|
3297 |
msgstr ""
|
3298 |
|
3299 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3300 |
msgid "The currency that will be used for Tribe Commerce transactions."
|
3301 |
msgstr ""
|
3302 |
|
3303 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3304 |
msgid "Stock Handling"
|
3305 |
msgstr ""
|
3306 |
|
3307 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3308 |
msgctxt "tickets fields settings paypal stock handling"
|
3309 |
msgid ""
|
3310 |
"When a customer purchases a %s, PayPal might flag the order as Pending. The "
|
3311 |
"order will be Complete once payment is confirmed by PayPal."
|
3312 |
msgstr ""
|
3313 |
|
3314 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3315 |
msgid "Decrease available %s stock as soon as a Pending order is created."
|
3316 |
msgstr ""
|
3317 |
|
3318 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3319 |
msgid ""
|
3320 |
"Only decrease available %s stock if an order is confirmed as Completed by "
|
3321 |
"PayPal."
|
3322 |
msgstr ""
|
3323 |
|
3324 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3325 |
msgid "Success page"
|
3326 |
msgstr ""
|
3327 |
|
3328 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3329 |
msgid ""
|
3330 |
"After a successful PayPal order users will be redirected to this page; use "
|
3331 |
"the %s shortcode to display the order confirmation to the user in the page "
|
3332 |
"content."
|
3333 |
msgstr ""
|
3334 |
|
3335 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3336 |
msgid "Confirmation email sender address"
|
3337 |
msgstr ""
|
3338 |
|
3339 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3340 |
msgctxt "tickets fields settings paypal confirmation email"
|
3341 |
msgid ""
|
3342 |
"Email address PayPal %s customers will receive confirmation from. Leave "
|
3343 |
"empty to use the default WordPress site email address."
|
3344 |
msgstr ""
|
3345 |
|
3346 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3347 |
msgid "Confirmation email sender name"
|
3348 |
msgstr ""
|
3349 |
|
3350 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3351 |
msgctxt "tickets fields settings paypal email sender"
|
3352 |
msgid ""
|
3353 |
"Sender name of the confirmation email sent to customers when confirming a %s "
|
3354 |
"purchase."
|
3355 |
msgstr ""
|
3356 |
|
3357 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3358 |
msgid "Confirmation email subject"
|
3359 |
msgstr ""
|
3360 |
|
3361 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3362 |
msgctxt "tickets fields settings paypal email subject"
|
3363 |
msgid ""
|
3364 |
"Subject of the confirmation email sent to customers when confirming a %s "
|
3365 |
"purchase."
|
3366 |
msgstr ""
|
3367 |
|
3368 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3369 |
msgctxt "tickets fields settings paypal email subject"
|
3370 |
msgid "You have %s!"
|
3371 |
msgstr ""
|
3372 |
|
3373 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3374 |
msgid ""
|
3375 |
"You can see and manage your IPN Notifications history from the IPN "
|
3376 |
"Notifications settings area (%s)."
|
3377 |
msgstr ""
|
3378 |
|
3379 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3380 |
msgid "IPN Notify URL"
|
3381 |
msgstr ""
|
3382 |
|
3383 |
-
#: src/admin-views/tribe-options-tickets.php:
|
3384 |
msgid ""
|
3385 |
"Override the default IPN notify URL with this value. This value must be the "
|
3386 |
"same set in PayPal IPN Notifications settings area (%s)."
|
@@ -3788,7 +3870,7 @@ msgid ""
|
|
3788 |
"information as well as change ticket quantities."
|
3789 |
msgstr ""
|
3790 |
|
3791 |
-
#: src/views/components/loader.php:
|
3792 |
msgid "Loading..."
|
3793 |
msgstr ""
|
3794 |
|
@@ -3824,14 +3906,14 @@ msgid "Attendee Details"
|
|
3824 |
msgstr ""
|
3825 |
|
3826 |
#: src/views/modal/registration-js.php:50
|
3827 |
-
#: src/views/registration-js/content.php:
|
3828 |
msgctxt ""
|
3829 |
"Note about missing required fields, %s is the html-wrapped number of tickets."
|
3830 |
msgid "You have %s ticket(s) with a field that requires information."
|
3831 |
msgstr ""
|
3832 |
|
3833 |
#: src/views/modal/registration-js.php:97
|
3834 |
-
#: src/views/registration-js/content.php:
|
3835 |
msgctxt ""
|
3836 |
"Note that there are more tickets in the cart, %s is the html-wrapped number."
|
3837 |
msgid ""
|
@@ -3841,7 +3923,6 @@ msgstr ""
|
|
3841 |
|
3842 |
#: src/views/modal/registration-js.php:116 src/views/modal/registration.php:35
|
3843 |
#: src/views/registration/content.php:111
|
3844 |
-
#: src/views/registration-js/content.php:178
|
3845 |
msgid "Save and Checkout"
|
3846 |
msgstr ""
|
3847 |
|
2 |
# This file is distributed under the same license as the Event Tickets package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Event Tickets 5.0.4\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/event-tickets\n"
|
7 |
+
"POT-Creation-Date: 2020-12-11 06:25:33+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"PO-Revision-Date: 2020-12-11 06:25\n"
|
12 |
"Last-Translator: \n"
|
13 |
"Language-Team: \n"
|
14 |
|
15 |
+
#. #-#-#-#-# event-tickets.pot (Event Tickets 5.0.4) #-#-#-#-#
|
16 |
#. Plugin Name of the plugin/theme
|
17 |
+
#: event-tickets.php:62 src/Tribe/Admin/Notices.php:92 src/Tribe/Main.php:674
|
18 |
#: src/Tribe/Privacy.php:59 src/admin-views/admin-welcome-message.php:58
|
19 |
msgid "Event Tickets"
|
20 |
msgstr ""
|
146 |
msgid "This ticket was moved to %1$s from %2$s"
|
147 |
msgstr ""
|
148 |
|
149 |
+
#: src/Tribe/Admin/Notices.php:88
|
150 |
msgctxt "Admin notice link text"
|
151 |
msgid "RSVP Display Settings"
|
152 |
msgstr ""
|
153 |
|
154 |
#. translators: %1$s: RSVP singular text, %2$s: Link to settings page.
|
155 |
+
#: src/Tribe/Admin/Notices.php:97
|
156 |
msgid ""
|
157 |
"With this new version, we've introduced newly redesigned %1$s frontend "
|
158 |
"views. If you have customized the %1$s section, this update will likely "
|
161 |
"\t\t\tTo upgrade to the new frontend views, please enable them in the %2$s."
|
162 |
msgstr ""
|
163 |
|
164 |
+
#. Translators: %1$s: dynamic "Tickets" text, %2$s: dynamic "Event" text.
|
165 |
+
#: src/Tribe/Admin/Notices.php:152
|
166 |
+
msgctxt ""
|
167 |
+
"heading for classic editor notice if Events Calendar Pro event has tickets"
|
168 |
+
msgid "%1$s for Recurring %2$s"
|
169 |
+
msgstr ""
|
170 |
+
|
171 |
+
#. Translators: %1$s: dynamic "event" text, %2$s: dynamic "ticket" text, %3$s:
|
172 |
+
#. dynamic "tickets" text, %4$s: dynamic "RSVP" text, %5$s: dynamic "Ticket"
|
173 |
+
#. text.
|
174 |
+
#: src/Tribe/Admin/Notices.php:163
|
175 |
+
msgctxt ""
|
176 |
+
"text for classic editor notice if Events Calendar Pro event has tickets"
|
177 |
+
msgid ""
|
178 |
+
"Heads up! You saved a recurring %1$s with a %2$s. Please note that we do not "
|
179 |
+
"currently support recurring %3$s. Only the first instance of this recurring "
|
180 |
+
"series will have your %4$s or %5$s displayed."
|
181 |
+
msgstr ""
|
182 |
+
|
183 |
+
#: src/Tribe/Admin/Notices.php:214 src/Tribe/Main.php:649
|
184 |
+
#: src/admin-views/admin-welcome-message.php:56
|
185 |
+
#: src/admin-views/tribe-options-tickets.php:156
|
186 |
+
msgid "Event Tickets Plus"
|
187 |
+
msgstr ""
|
188 |
+
|
189 |
+
#: src/Tribe/Admin/Notices.php:218
|
190 |
+
msgid "WooCommerce"
|
191 |
+
msgstr ""
|
192 |
+
|
193 |
+
#: src/Tribe/Admin/Notices.php:219
|
194 |
+
msgid "Easy Digital Downloads"
|
195 |
+
msgstr ""
|
196 |
+
|
197 |
+
#. translators: %1$s: The ticket commerce provider (WooCommerce, etc); %2$s:
|
198 |
+
#. The Event Tickets Plus plugin name and link.
|
199 |
+
#: src/Tribe/Admin/Notices.php:229
|
200 |
msgid ""
|
201 |
"Event Tickets does not support ticket sales via third party ecommerce "
|
202 |
"plugins. If you want to sell tickets with %1$s, please purchase a license "
|
247 |
msgid "Please enter in without thousand separators and currency symbols."
|
248 |
msgstr ""
|
249 |
|
250 |
+
#: src/Tribe/Assets.php:359
|
251 |
msgid ""
|
252 |
"There is unsaved attendee information. Are you sure you want to continue?"
|
253 |
msgstr ""
|
295 |
msgid "See who purchased tickets to this event"
|
296 |
msgstr ""
|
297 |
|
298 |
+
#: src/Tribe/Attendees.php:318
|
299 |
msgid "You need to select a user or type a valid email address"
|
300 |
msgstr ""
|
301 |
|
302 |
+
#: src/Tribe/Attendees.php:319
|
303 |
msgid "Sending..."
|
304 |
msgstr ""
|
305 |
|
306 |
+
#: src/Tribe/Attendees.php:323
|
307 |
msgid "You must first select one or more tickets before you can move them!"
|
308 |
msgstr ""
|
309 |
|
310 |
+
#: src/Tribe/Attendees.php:325
|
311 |
+
msgid "Please confirm that you would like to delete this attendee."
|
312 |
+
msgstr ""
|
313 |
+
|
314 |
+
#: src/Tribe/Attendees.php:360
|
315 |
msgid "Columns"
|
316 |
msgstr ""
|
317 |
|
318 |
+
#: src/Tribe/Attendees.php:360
|
319 |
msgid ""
|
320 |
"You can use Screen Options to select which columns you want to see. The "
|
321 |
"selection works in the table below, in the email, for print and for the CSV "
|
322 |
"export."
|
323 |
msgstr ""
|
324 |
|
325 |
+
#: src/Tribe/Attendees.php:438
|
326 |
msgid "%s - Attendee list"
|
327 |
msgstr ""
|
328 |
|
329 |
+
#: src/Tribe/Attendees.php:511
|
330 |
msgctxt "attendee export"
|
331 |
msgid "Order ID"
|
332 |
msgstr ""
|
333 |
|
334 |
+
#: src/Tribe/Attendees.php:512
|
335 |
msgctxt "attendee export"
|
336 |
msgid "Order Status"
|
337 |
msgstr ""
|
338 |
|
339 |
+
#: src/Tribe/Attendees.php:513
|
340 |
msgctxt "attendee export"
|
341 |
msgid "%s ID"
|
342 |
msgstr ""
|
343 |
|
344 |
+
#: src/Tribe/Attendees.php:514
|
345 |
msgctxt "attendee export"
|
346 |
msgid "Customer Name"
|
347 |
msgstr ""
|
348 |
|
349 |
+
#: src/Tribe/Attendees.php:515
|
350 |
msgctxt "attendee export"
|
351 |
msgid "Customer Email Address"
|
352 |
msgstr ""
|
353 |
|
354 |
+
#: src/Tribe/Attendees.php:544 src/admin-views/tribe-options-tickets.php:244
|
355 |
+
#: src/admin-views/tribe-options-tickets.php:256
|
356 |
msgid "Yes"
|
357 |
msgstr ""
|
358 |
|
359 |
+
#: src/Tribe/Attendees.php:653
|
360 |
msgid "attendees"
|
361 |
msgstr ""
|
362 |
|
363 |
+
#: src/Tribe/Attendees.php:687
|
364 |
msgid "Invalid Event ID"
|
365 |
msgstr ""
|
366 |
|
367 |
+
#: src/Tribe/Attendees.php:704
|
368 |
msgid "Cheatin Huh?"
|
369 |
msgstr ""
|
370 |
|
371 |
+
#: src/Tribe/Attendees.php:710
|
372 |
msgid "Empty user and email"
|
373 |
msgstr ""
|
374 |
|
375 |
+
#: src/Tribe/Attendees.php:722
|
376 |
msgid "Invalid Email"
|
377 |
msgstr ""
|
378 |
|
379 |
+
#: src/Tribe/Attendees.php:728 src/Tribe/Attendees.php:744
|
380 |
msgid "Invalid User ID"
|
381 |
msgstr ""
|
382 |
|
383 |
+
#: src/Tribe/Attendees.php:764
|
384 |
msgid "Attendee List for: %s"
|
385 |
msgstr ""
|
386 |
|
387 |
+
#: src/Tribe/Attendees.php:765
|
388 |
msgid "Error when sending the email"
|
389 |
msgstr ""
|
390 |
|
391 |
+
#: src/Tribe/Attendees.php:772
|
392 |
msgid "Email sent successfully!"
|
393 |
msgstr ""
|
394 |
|
822 |
msgid "Post draft updated."
|
823 |
msgstr ""
|
824 |
|
825 |
+
#: src/Tribe/Commerce/PayPal/Main.php:2966 src/Tribe/RSVP.php:2062
|
826 |
msgid "(deleted)"
|
827 |
msgstr ""
|
828 |
|
957 |
msgid "unavailable"
|
958 |
msgstr ""
|
959 |
|
960 |
+
#: src/Tribe/Editor/Attendee_Registration.php:127
|
961 |
msgid "return to the content editor"
|
962 |
msgstr ""
|
963 |
|
964 |
+
#: src/Tribe/Editor/Attendee_Registration.php:129
|
965 |
msgid "Attendee Registration fields saved. Make additional changes or %1$s"
|
966 |
msgstr ""
|
967 |
|
968 |
+
#: src/Tribe/Editor/Attendee_Registration.php:156
|
969 |
msgid "Back to Editor"
|
970 |
msgstr ""
|
971 |
|
972 |
+
#: src/Tribe/Editor/Attendee_Registration.php:165
|
973 |
msgid "Save Changes"
|
974 |
msgstr ""
|
975 |
|
976 |
+
#: src/Tribe/Editor/Attendee_Registration.php:177
|
977 |
msgid "Are you sure you want to leave this page?"
|
978 |
msgstr ""
|
979 |
|
985 |
msgid "Are you sure you want to cancel?"
|
986 |
msgstr ""
|
987 |
|
988 |
+
#: src/Tribe/Editor/Blocks/Tickets.php:297 src/Tribe/Tickets.php:3755
|
989 |
msgctxt "Error message title, will be followed by the error code."
|
990 |
msgid "API Error"
|
991 |
msgstr ""
|
992 |
|
993 |
+
#: src/Tribe/Editor/Blocks/Tickets.php:298 src/Tribe/Tickets.php:3756
|
994 |
msgid ""
|
995 |
"Refresh this page or wait a few minutes before trying again. If this happens "
|
996 |
"repeatedly, please contact the Site Admin."
|
997 |
msgstr ""
|
998 |
|
999 |
+
#: src/Tribe/Editor/Blocks/Tickets.php:299 src/Tribe/Tickets.php:3757
|
1000 |
msgid ""
|
1001 |
"The ticket for this event has sold out and has been removed from your cart."
|
1002 |
msgstr ""
|
1003 |
|
1004 |
+
#: src/Tribe/Editor/Blocks/Tickets.php:300 src/Tribe/Tickets.php:3758
|
1005 |
msgid "Whoops!"
|
1006 |
msgstr ""
|
1007 |
|
1008 |
+
#: src/Tribe/Editor/Blocks/Tickets.php:301 src/Tribe/Tickets.php:3759
|
1009 |
msgctxt "The %s will change based on the error produced."
|
1010 |
msgid "You have %s ticket(s) with a field that requires information."
|
1011 |
msgstr ""
|
1033 |
msgid "%s was not able to be updated"
|
1034 |
msgstr ""
|
1035 |
|
1036 |
+
#. translators: %1$s: URL for help link, %2$s: Label for help link.
|
1037 |
+
#: src/Tribe/Editor/Warnings.php:77
|
1038 |
+
msgctxt "Helper link in Ticket Editor"
|
1039 |
+
msgid "Learn More"
|
1040 |
+
msgstr ""
|
1041 |
+
|
1042 |
+
#. translators: %1$s: link to help article.
|
1043 |
+
#: src/Tribe/Editor/Warnings.php:83
|
1044 |
+
msgid ""
|
1045 |
+
"There is no payment gateway configured. To create tickets, you'll need to "
|
1046 |
+
"enable and configure an ecommerce solution. %1$s"
|
1047 |
+
msgstr ""
|
1048 |
+
|
1049 |
+
#: src/Tribe/Editor/Warnings.php:97
|
1050 |
+
msgid ""
|
1051 |
+
"This is a recurring event. If you add tickets, they will only show up on "
|
1052 |
+
"first event in the recurrence series. Please carefully configure your "
|
1053 |
+
"recurring events."
|
1054 |
+
msgstr ""
|
1055 |
+
|
1056 |
#: src/Tribe/Editor.php:208
|
1057 |
msgid "Tickets Blocks"
|
1058 |
msgstr ""
|
1116 |
msgid "Tickets"
|
1117 |
msgstr ""
|
1118 |
|
1119 |
+
#: src/Tribe/Main.php:413
|
1120 |
msgid ""
|
1121 |
"When The Events Calendar and Event Tickets are both activated, The Events "
|
1122 |
"Calendar must be running version %1$s or greater. Please %2$supdate now.%3$s"
|
1123 |
msgstr ""
|
1124 |
|
1125 |
+
#: src/Tribe/Main.php:476
|
1126 |
msgid ""
|
1127 |
"Sorry, Event Tickets requires WordPress %s or higher. Please upgrade your "
|
1128 |
"WordPress install."
|
1129 |
msgstr ""
|
1130 |
|
1131 |
+
#: src/Tribe/Main.php:480
|
1132 |
msgid ""
|
1133 |
"Sorry, Event Tickets requires PHP %s or higher. Talk to your Web host about "
|
1134 |
"moving you to a newer version of PHP."
|
1135 |
msgstr ""
|
1136 |
|
1137 |
+
#: src/Tribe/Main.php:604
|
1138 |
msgid "Support for Event Tickets"
|
1139 |
msgstr ""
|
1140 |
|
1141 |
+
#: src/Tribe/Main.php:606
|
1142 |
msgid "Settings overview"
|
1143 |
msgstr ""
|
1144 |
|
1145 |
+
#: src/Tribe/Main.php:607
|
1146 |
msgid "Features overview"
|
1147 |
msgstr ""
|
1148 |
|
1149 |
+
#: src/Tribe/Main.php:608
|
1150 |
msgid "Troubleshooting common problems"
|
1151 |
msgstr ""
|
1152 |
|
1153 |
+
#: src/Tribe/Main.php:609
|
1154 |
msgid "Customizing Event Tickets"
|
1155 |
msgstr ""
|
1156 |
|
1157 |
+
#: src/Tribe/Main.php:626
|
1158 |
msgid "New User Primer"
|
1159 |
msgstr ""
|
1160 |
|
1161 |
+
#: src/Tribe/Main.php:628
|
1162 |
msgctxt "help feature box section"
|
1163 |
msgid ""
|
1164 |
"We are committed to helping you sell %1$s for your event. Check out our "
|
1165 |
"handy %2$s to get started."
|
1166 |
msgstr ""
|
1167 |
|
1168 |
+
#: src/Tribe/Main.php:645
|
1169 |
msgid "open-source forum on WordPress.org"
|
1170 |
msgstr ""
|
1171 |
|
1172 |
+
#: src/Tribe/Main.php:646
|
1173 |
msgid ""
|
1174 |
"If you have tried the above steps and are still having trouble, you can post "
|
1175 |
"a new thread to our %s. Our support staff monitors these forums once a week "
|
1176 |
"and would be happy to assist you there."
|
1177 |
msgstr ""
|
1178 |
|
1179 |
+
#: src/Tribe/Main.php:648
|
1180 |
msgid "premium support on our website"
|
1181 |
msgstr ""
|
1182 |
|
1183 |
+
#: src/Tribe/Main.php:650
|
|
|
|
|
|
|
|
|
|
|
1184 |
msgid ""
|
1185 |
"Looking for more immediate support? We offer %1$s with the purchase of any "
|
1186 |
"of our premium plugins (like %2$s). Pick up a license and you can post there "
|
1187 |
"directly and expect a response within 24-48 hours during weekdays."
|
1188 |
msgstr ""
|
1189 |
|
1190 |
+
#: src/Tribe/Main.php:652 src/Tribe/Main.php:657
|
1191 |
msgid "post a thread"
|
1192 |
msgstr ""
|
1193 |
|
1194 |
+
#: src/Tribe/Main.php:653
|
1195 |
msgid ""
|
1196 |
"Already have Event Tickets Plus? You can %s in our premium support forums. "
|
1197 |
"Our support team monitors the forums and will respond to your thread within "
|
1198 |
"24-48 hours (during the week)."
|
1199 |
msgstr ""
|
1200 |
|
1201 |
+
#: src/Tribe/Main.php:658
|
1202 |
msgid ""
|
1203 |
"If you have a valid license for one of our paid plugins, you can %s in our "
|
1204 |
"premium support forums. Our support team monitors the forums and will "
|
1205 |
"respond to your thread within 24-48 hours (during the week)."
|
1206 |
msgstr ""
|
1207 |
|
1208 |
+
#: src/Tribe/Main.php:680
|
1209 |
msgid "Event Tickets - Legacy"
|
1210 |
msgstr ""
|
1211 |
|
1212 |
+
#: src/Tribe/Main.php:816
|
1213 |
msgid "Welcome to Event Tickets!"
|
1214 |
msgstr ""
|
1215 |
|
1216 |
+
#: src/Tribe/Main.php:969
|
1217 |
msgid "Buy"
|
1218 |
msgstr ""
|
1219 |
|
1220 |
+
#: src/Tribe/Main.php:1048
|
1221 |
msgid ""
|
1222 |
"When Event Tickets and Event Tickets Plus are both activated, Event Tickets "
|
1223 |
"Plus must be running version %1$s or greater. Please %2$smanually update now"
|
2284 |
msgid "Quick Links:"
|
2285 |
msgstr ""
|
2286 |
|
2287 |
+
#: src/admin-views/admin-welcome-message.php:76
|
2288 |
+
#: src/admin-views/admin-welcome-message.php:86
|
2289 |
+
#: src/admin-views/admin-welcome-message.php:96
|
2290 |
+
#: src/admin-views/admin-welcome-message.php:106
|
2291 |
msgid "Configure Settings"
|
2292 |
msgstr ""
|
2293 |
|
2294 |
+
#: src/admin-views/admin-welcome-message.php:79
|
2295 |
+
#: src/admin-views/admin-welcome-message.php:89
|
2296 |
msgid "Install WooCommerce"
|
2297 |
msgstr ""
|
2298 |
|
2299 |
+
#: src/admin-views/admin-welcome-message.php:82
|
2300 |
msgid "Create Ticket"
|
2301 |
msgstr ""
|
2302 |
|
2303 |
+
#: src/admin-views/admin-welcome-message.php:92
|
2304 |
+
#: src/admin-views/admin-welcome-message.php:109
|
2305 |
msgid "Install The Events Calendar"
|
2306 |
msgstr ""
|
2307 |
|
2308 |
+
#: src/admin-views/admin-welcome-message.php:99
|
2309 |
msgid "Create RSVP"
|
2310 |
msgstr ""
|
2311 |
|
2312 |
+
#: src/admin-views/admin-welcome-message.php:102
|
2313 |
+
#: src/admin-views/admin-welcome-message.php:112
|
2314 |
msgid "Setup PayPal"
|
2315 |
msgstr ""
|
2316 |
|
2317 |
+
#: src/admin-views/admin-welcome-message.php:118
|
2318 |
msgid "Helpful Resources"
|
2319 |
msgstr ""
|
2320 |
|
2321 |
+
#: src/admin-views/admin-welcome-message.php:133
|
2322 |
+
#: src/admin-views/admin-welcome-message.php:186
|
2323 |
+
#: src/admin-views/admin-welcome-message.php:208
|
2324 |
msgid "Illustration of a book with The Events Calendar logo"
|
2325 |
msgstr ""
|
2326 |
|
2327 |
+
#: src/admin-views/admin-welcome-message.php:135
|
2328 |
msgid "Getting Started Guide"
|
2329 |
msgstr ""
|
2330 |
|
2331 |
+
#: src/admin-views/admin-welcome-message.php:136
|
2332 |
msgid "New to Event Tickets? Here's everything you need to get started."
|
2333 |
msgstr ""
|
2334 |
|
2335 |
+
#: src/admin-views/admin-welcome-message.php:137
|
2336 |
msgid "Check out the guide"
|
2337 |
msgstr ""
|
2338 |
|
2339 |
+
#: src/admin-views/admin-welcome-message.php:143
|
2340 |
msgid "Illustration of a thought lightbulb coming from a book"
|
2341 |
msgstr ""
|
2342 |
|
2343 |
+
#: src/admin-views/admin-welcome-message.php:145
|
2344 |
msgid "Knowledgebase"
|
2345 |
msgstr ""
|
2346 |
|
2347 |
+
#: src/admin-views/admin-welcome-message.php:146
|
2348 |
msgid ""
|
2349 |
"Ready to dig deeper? Our Knowledgebase can help you get the most out of The "
|
2350 |
"Events Calendar suite."
|
2351 |
msgstr ""
|
2352 |
|
2353 |
+
#: src/admin-views/admin-welcome-message.php:147
|
2354 |
msgid "Dig deeper"
|
2355 |
msgstr ""
|
2356 |
|
2357 |
+
#: src/admin-views/admin-welcome-message.php:153
|
2358 |
msgid "Illustration of characters being translated"
|
2359 |
msgstr ""
|
2360 |
|
2361 |
+
#: src/admin-views/admin-welcome-message.php:155
|
2362 |
msgid "Translations"
|
2363 |
msgstr ""
|
2364 |
|
2365 |
+
#: src/admin-views/admin-welcome-message.php:156
|
2366 |
msgid "Need a language other than English? We've got you covered here."
|
2367 |
msgstr ""
|
2368 |
|
2369 |
+
#: src/admin-views/admin-welcome-message.php:157
|
2370 |
+
#: src/admin-views/admin-welcome-message.php:179
|
2371 |
+
#: src/admin-views/admin-welcome-message.php:199
|
2372 |
msgid "Learn more"
|
2373 |
msgstr ""
|
2374 |
|
2375 |
+
#: src/admin-views/admin-welcome-message.php:164
|
2376 |
msgid "Illustration of a phone screen with a person's face"
|
2377 |
msgstr ""
|
2378 |
|
2379 |
+
#: src/admin-views/admin-welcome-message.php:166
|
2380 |
msgid "Virtual Event Resources"
|
2381 |
msgstr ""
|
2382 |
|
2383 |
+
#: src/admin-views/admin-welcome-message.php:167
|
2384 |
msgid ""
|
2385 |
"Tips and tools to help with planning online events, webinars, and more on "
|
2386 |
"WordPress and beyond."
|
2387 |
msgstr ""
|
2388 |
|
2389 |
+
#: src/admin-views/admin-welcome-message.php:168
|
2390 |
msgid "Get started with online events"
|
2391 |
msgstr ""
|
2392 |
|
2393 |
+
#: src/admin-views/admin-welcome-message.php:176
|
2394 |
msgid "Illustration of a power plug and gears"
|
2395 |
msgstr ""
|
2396 |
|
2397 |
+
#: src/admin-views/admin-welcome-message.php:178
|
2398 |
msgid "Browse our library of free extensions for Event Tickets."
|
2399 |
msgstr ""
|
2400 |
|
2401 |
+
#: src/admin-views/admin-welcome-message.php:188
|
2402 |
+
#: src/admin-views/admin-welcome-message.php:210
|
2403 |
msgid "Want to take your events to the next level?"
|
2404 |
msgstr ""
|
2405 |
|
2406 |
+
#: src/admin-views/admin-welcome-message.php:189
|
2407 |
+
#: src/admin-views/admin-welcome-message.php:211
|
2408 |
msgid "Check out our suite of add-ons"
|
2409 |
msgstr ""
|
2410 |
|
2411 |
+
#: src/admin-views/admin-welcome-message.php:196
|
2412 |
msgid "Illustration of a calendar"
|
2413 |
msgstr ""
|
2414 |
|
2415 |
+
#: src/admin-views/admin-welcome-message.php:198
|
2416 |
msgid "Add The Events Calendar (it's free!) to enhance Event Tickets."
|
2417 |
msgstr ""
|
2418 |
|
2419 |
+
#: src/admin-views/admin-welcome-message.php:218
|
2420 |
msgid "Illustration of a hand holding a ticket and the WooCommerce logo"
|
2421 |
msgstr ""
|
2422 |
|
2423 |
+
#: src/admin-views/admin-welcome-message.php:220
|
2424 |
msgid "Add WooCommerce integration, advanced registration, and more."
|
2425 |
msgstr ""
|
2426 |
|
2427 |
+
#: src/admin-views/admin-welcome-message.php:221
|
2428 |
msgid "Check out Event Tickets Plus"
|
2429 |
msgstr ""
|
2430 |
|
2431 |
+
#: src/admin-views/admin-welcome-message.php:226
|
2432 |
msgid "Want this emailed to you?"
|
2433 |
msgstr ""
|
2434 |
|
2435 |
+
#: src/admin-views/admin-welcome-message.php:227
|
2436 |
msgid ""
|
2437 |
"Keep this list of links on hand and stay subscribed to receive tips and "
|
2438 |
"tricks about The Events Calendar products."
|
2439 |
msgstr ""
|
2440 |
|
2441 |
+
#: src/admin-views/admin-welcome-message.php:230
|
2442 |
msgid "Your email"
|
2443 |
msgstr ""
|
2444 |
|
2445 |
+
#: src/admin-views/admin-welcome-message.php:232
|
2446 |
msgid "Sign Up"
|
2447 |
msgstr ""
|
2448 |
|
2449 |
+
#: src/admin-views/admin-welcome-message.php:245
|
2450 |
msgid "The Events Calendar brand logo"
|
2451 |
msgstr ""
|
2452 |
|
2505 |
msgid "Price"
|
2506 |
msgstr ""
|
2507 |
|
2508 |
+
#: src/admin-views/editor/fieldset/advanced.php:22
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2509 |
msgid "Advanced"
|
2510 |
msgstr ""
|
2511 |
|
2512 |
+
#: src/admin-views/editor/fieldset/advanced.php:25
|
2513 |
msgid "Advanced Settings"
|
2514 |
msgstr ""
|
2515 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2516 |
#: src/admin-views/editor/fieldset/history.php:30
|
2517 |
msgid "History"
|
2518 |
msgstr ""
|
2551 |
"Current sale or member price. This can be managed via the product editor."
|
2552 |
msgstr ""
|
2553 |
|
2554 |
+
#: src/admin-views/editor/fieldset/settings-provider.php:36
|
2555 |
msgid "Sell %s using:"
|
2556 |
msgstr ""
|
2557 |
|
2558 |
+
#: src/admin-views/editor/fieldset/settings-provider.php:43
|
2559 |
msgid ""
|
2560 |
"It looks like you have multiple ecommerce plugins active. We recommend "
|
2561 |
"running only one at a time. However, if you need to run multiple, please "
|
2562 |
"select which one to use to sell %s for this event."
|
2563 |
msgstr ""
|
2564 |
|
2565 |
+
#: src/admin-views/editor/fieldset/settings-provider.php:49
|
2566 |
msgid ""
|
2567 |
"Note: adjusting this setting will only impact new %1$s. Existing %1$s will "
|
2568 |
"not change. We highly recommend that all %1$s for one event use the same "
|
2658 |
msgstr ""
|
2659 |
|
2660 |
#: src/admin-views/editor/panel/settings.php:112
|
2661 |
+
#: src/admin-views/editor/panel/ticket.php:514 src/admin-views/meta-box.php:304
|
2662 |
#: src/views/v2/rsvp/ari/form/buttons.php:22
|
2663 |
#: src/views/v2/rsvp/form/fields/cancel.php:23
|
2664 |
msgid "Cancel"
|
2665 |
msgstr ""
|
2666 |
|
2667 |
+
#: src/admin-views/editor/panel/ticket.php:55
|
2668 |
+
msgid "Start sale date cannot be empty."
|
2669 |
+
msgstr ""
|
2670 |
+
|
2671 |
+
#: src/admin-views/editor/panel/ticket.php:56
|
2672 |
+
msgid "Start sale date cannot be greater than End Sale date"
|
2673 |
+
msgstr ""
|
2674 |
+
|
2675 |
+
#. Translators: %s: dynamic 'RSVP' text.
|
2676 |
+
#: src/admin-views/editor/panel/ticket.php:66
|
2677 |
+
msgctxt "admin edit ticket panel error"
|
2678 |
+
msgid "%s type is a required field"
|
2679 |
+
msgstr ""
|
2680 |
+
|
2681 |
+
#. Translators: %s: dynamic 'Ticket' text.
|
2682 |
+
#: src/admin-views/editor/panel/ticket.php:76
|
2683 |
+
msgctxt "input start time ARIA label"
|
2684 |
+
msgid "%s start date"
|
2685 |
+
msgstr ""
|
2686 |
+
|
2687 |
+
#. Translators: %s: dynamic 'tickets' text.
|
2688 |
+
#: src/admin-views/editor/panel/ticket.php:86
|
2689 |
+
msgctxt "input start time help text title"
|
2690 |
+
msgid "If you do not set a start sale date, %s will be available immediately."
|
2691 |
+
msgstr ""
|
2692 |
+
|
2693 |
+
#. Translators: %s: dynamic 'Ticket' text.
|
2694 |
+
#: src/admin-views/editor/panel/ticket.php:96
|
2695 |
+
msgctxt "input end time ARIA label"
|
2696 |
+
msgid "%s end date"
|
2697 |
+
msgstr ""
|
2698 |
+
|
2699 |
+
#. Translators: %s: dynamic 'tickets' text.
|
2700 |
+
#: src/admin-views/editor/panel/ticket.php:106
|
2701 |
+
msgctxt "input end time help text title"
|
2702 |
+
msgid ""
|
2703 |
+
"If you do not set an end sale date, %s will be available until the event "
|
2704 |
+
"begins."
|
2705 |
+
msgstr ""
|
2706 |
+
|
2707 |
+
#. Translators: %s: dynamic 'tickets' text.
|
2708 |
+
#: src/admin-views/editor/panel/ticket.php:116
|
2709 |
+
msgctxt "input end time help text title"
|
2710 |
+
msgid "If you do not set an end sale date, %s will be available forever."
|
2711 |
+
msgstr ""
|
2712 |
+
|
2713 |
+
#. Translators: %s: dynamic 'tickets' text.
|
2714 |
+
#: src/admin-views/editor/panel/ticket.php:126
|
2715 |
+
msgctxt "meta box ticket form button text"
|
2716 |
+
msgid "Save %s"
|
2717 |
+
msgstr ""
|
2718 |
+
|
2719 |
+
#. Translators: %s: dynamic 'RSVP' text.
|
2720 |
+
#: src/admin-views/editor/panel/ticket.php:136
|
2721 |
+
msgctxt "RSVP form save value"
|
2722 |
+
msgid "Save %s"
|
2723 |
+
msgstr ""
|
2724 |
+
|
2725 |
+
#. Translators: %s: dynamic 'ticket' text.
|
2726 |
+
#. Translators: %s: dynamic 'RSVP' text.
|
2727 |
+
#: src/admin-views/editor/panel/ticket.php:175
|
2728 |
+
#: src/admin-views/editor/panel/ticket.php:220
|
2729 |
msgctxt "admin add new ticket panel heading"
|
2730 |
msgid "Add new %s"
|
2731 |
msgstr ""
|
2732 |
|
2733 |
+
#. Translators: %s: dynamic 'ticket' text.
|
2734 |
+
#. Translators: %s: dynamic 'RSVP' text.
|
2735 |
+
#: src/admin-views/editor/panel/ticket.php:195
|
2736 |
+
#: src/admin-views/editor/panel/ticket.php:240
|
2737 |
msgctxt "admin edit ticket panel heading"
|
2738 |
msgid "Edit %s"
|
2739 |
msgstr ""
|
2740 |
|
2741 |
+
#: src/admin-views/editor/panel/ticket.php:253
|
2742 |
msgid "Type:"
|
2743 |
msgstr ""
|
2744 |
|
2745 |
+
#. Translators: %1$s: dynamic 'ticket' text.
|
2746 |
+
#: src/admin-views/editor/panel/ticket.php:272
|
2747 |
+
msgctxt "admin edit ticket panel note"
|
2748 |
+
msgid ""
|
2749 |
+
"This is the name of your %1$s. It is displayed on the frontend of your "
|
2750 |
+
"website and within %1$s emails."
|
2751 |
msgstr ""
|
2752 |
|
2753 |
+
#. Translators: %1$s: dynamic 'RSVP' text.
|
2754 |
+
#: src/admin-views/editor/panel/ticket.php:290
|
2755 |
+
msgctxt "admin edit RSVP panel note"
|
2756 |
+
msgid ""
|
2757 |
+
"This is the name of your %1$s. It is displayed on the frontend of your "
|
2758 |
+
"website and within %1$s emails."
|
2759 |
msgstr ""
|
2760 |
|
2761 |
+
#: src/admin-views/editor/panel/ticket.php:302
|
2762 |
+
msgid "Description:"
|
2763 |
msgstr ""
|
2764 |
|
2765 |
+
#. Translators: %s: dynamic 'tickets' text.
|
2766 |
+
#: src/admin-views/editor/panel/ticket.php:324
|
2767 |
+
msgctxt "default ticket provider"
|
2768 |
+
msgid "Show description on frontend %s form."
|
2769 |
msgstr ""
|
2770 |
|
2771 |
+
#: src/admin-views/editor/panel/ticket.php:337 src/admin-views/meta-box.php:225
|
2772 |
+
msgid "Start sale:"
|
2773 |
+
msgstr ""
|
2774 |
+
|
2775 |
+
#: src/admin-views/editor/panel/ticket.php:350
|
2776 |
+
#: src/admin-views/editor/panel/ticket.php:380
|
2777 |
+
msgid "YYYY-MM-DD"
|
2778 |
+
msgstr ""
|
2779 |
+
|
2780 |
+
#: src/admin-views/editor/panel/ticket.php:351
|
2781 |
+
#: src/admin-views/editor/panel/ticket.php:381
|
2782 |
+
msgid "at"
|
2783 |
+
msgstr ""
|
2784 |
+
|
2785 |
+
#: src/admin-views/editor/panel/ticket.php:364
|
2786 |
+
#: src/admin-views/editor/panel/ticket.php:394
|
2787 |
+
msgid "HH:MM"
|
2788 |
+
msgstr ""
|
2789 |
+
|
2790 |
+
#: src/admin-views/editor/panel/ticket.php:370 src/admin-views/meta-box.php:256
|
2791 |
+
msgid "End sale:"
|
2792 |
+
msgstr ""
|
2793 |
+
|
2794 |
+
#: src/admin-views/editor/panel/ticket.php:410 src/admin-views/meta-box.php:167
|
2795 |
+
msgid "Sell using:"
|
2796 |
msgstr ""
|
2797 |
|
2798 |
#: src/admin-views/legacy-ticket-fields.php:19
|
3230 |
msgid "%s Settings"
|
3231 |
msgstr ""
|
3232 |
|
3233 |
+
#. Translators: %s: dynamic "tickets" text.
|
3234 |
+
#: src/admin-views/tribe-options-tickets.php:66
|
3235 |
msgctxt "tickets fields settings enabled post types"
|
3236 |
msgid "Post types that can have %s"
|
3237 |
msgstr ""
|
3238 |
|
3239 |
+
#: src/admin-views/tribe-options-tickets.php:90
|
3240 |
msgid "Below the event details [default]"
|
3241 |
msgstr ""
|
3242 |
|
3243 |
+
#: src/admin-views/tribe-options-tickets.php:91
|
3244 |
msgid "Above the event details"
|
3245 |
msgstr ""
|
3246 |
|
3247 |
+
#: src/admin-views/tribe-options-tickets.php:92
|
3248 |
msgid "Below the event description"
|
3249 |
msgstr ""
|
3250 |
|
3251 |
+
#: src/admin-views/tribe-options-tickets.php:93
|
3252 |
msgid "Above the event description"
|
3253 |
msgstr ""
|
3254 |
|
3255 |
+
#: src/admin-views/tribe-options-tickets.php:99
|
3256 |
+
#: src/admin-views/tribe-options-tickets.php:108
|
3257 |
msgctxt "form location setting"
|
3258 |
msgid "Location of %s form"
|
3259 |
msgstr ""
|
3260 |
|
3261 |
+
#: src/admin-views/tribe-options-tickets.php:100
|
3262 |
+
#: src/admin-views/tribe-options-tickets.php:109
|
3263 |
msgid "This setting only impacts events made with the classic editor."
|
3264 |
msgstr ""
|
3265 |
|
3266 |
+
#: src/admin-views/tribe-options-tickets.php:117
|
3267 |
msgctxt "tickets remaining threshold label"
|
3268 |
msgid "Display # %s left threshold"
|
3269 |
msgstr ""
|
3270 |
|
3271 |
+
#: src/admin-views/tribe-options-tickets.php:118
|
3272 |
msgctxt "tickets remaining threshold tooltip"
|
3273 |
msgid ""
|
3274 |
"If this number is less than the number of %1$s left for sale on your event, "
|
3276 |
"You can leave this blank if you would like to always show the text."
|
3277 |
msgstr ""
|
3278 |
|
3279 |
+
#: src/admin-views/tribe-options-tickets.php:130
|
3280 |
msgid "Login Requirements"
|
3281 |
msgstr ""
|
3282 |
|
3283 |
+
#: src/admin-views/tribe-options-tickets.php:135
|
3284 |
msgctxt "ticket authentication requirements"
|
3285 |
msgid ""
|
3286 |
"You can require that users log into your site before they are able to %1$s "
|
3288 |
"%3$sGeneral Settings admin screen%4$s) before adjusting this setting."
|
3289 |
msgstr ""
|
3290 |
|
3291 |
+
#: src/admin-views/tribe-options-tickets.php:161
|
3292 |
msgid "Check it out!"
|
3293 |
msgstr ""
|
3294 |
|
3295 |
+
#: src/admin-views/tribe-options-tickets.php:165
|
3296 |
msgctxt "about Tribe Commerce"
|
3297 |
msgid ""
|
3298 |
"Tribe Commerce is a light implementation of a commerce gateway using PayPal "
|
3303 |
"%3$s"
|
3304 |
msgstr ""
|
3305 |
|
3306 |
+
#: src/admin-views/tribe-options-tickets.php:191
|
3307 |
msgid "these instructions"
|
3308 |
msgstr ""
|
3309 |
|
3310 |
+
#: src/admin-views/tribe-options-tickets.php:192
|
3311 |
msgctxt "tickets fields settings PayPal setup"
|
3312 |
msgid ""
|
3313 |
"In order to use Tribe Commerce to sell %1$s, you must configure your PayPal "
|
3315 |
"set up, follow %2$s"
|
3316 |
msgstr ""
|
3317 |
|
3318 |
+
#: src/admin-views/tribe-options-tickets.php:196
|
3319 |
msgid ""
|
3320 |
"Have you entered this site's address in the Notification URL field in IPN "
|
3321 |
"Settings?"
|
3322 |
msgstr ""
|
3323 |
|
3324 |
+
#: src/admin-views/tribe-options-tickets.php:198
|
3325 |
msgid "Your site address is: %s"
|
3326 |
msgstr ""
|
3327 |
|
3328 |
+
#: src/admin-views/tribe-options-tickets.php:206
|
3329 |
msgid "Tribe Commerce"
|
3330 |
msgstr ""
|
3331 |
|
3332 |
+
#: src/admin-views/tribe-options-tickets.php:214
|
3333 |
msgid "Enable Tribe Commerce "
|
3334 |
msgstr ""
|
3335 |
|
3336 |
+
#: src/admin-views/tribe-options-tickets.php:215
|
3337 |
msgid "Check this box if you wish to turn on Tribe Commerce functionality."
|
3338 |
msgstr ""
|
3339 |
|
3340 |
+
#: src/admin-views/tribe-options-tickets.php:228
|
3341 |
msgid "Configure PayPal:"
|
3342 |
msgstr ""
|
3343 |
|
3344 |
+
#: src/admin-views/tribe-options-tickets.php:234
|
3345 |
msgid "PayPal email to receive payments:"
|
3346 |
msgstr ""
|
3347 |
|
3348 |
+
#: src/admin-views/tribe-options-tickets.php:242
|
3349 |
msgid ""
|
3350 |
"Have you enabled instant payment notifications (IPN) in your PayPal "
|
3351 |
"account's Selling Tools?"
|
3352 |
msgstr ""
|
3353 |
|
3354 |
+
#: src/admin-views/tribe-options-tickets.php:245
|
3355 |
+
#: src/admin-views/tribe-options-tickets.php:257
|
3356 |
msgid "No"
|
3357 |
msgstr ""
|
3358 |
|
3359 |
+
#: src/admin-views/tribe-options-tickets.php:268
|
3360 |
msgid "PayPal configuration status:"
|
3361 |
msgstr ""
|
3362 |
|
3363 |
+
#: src/admin-views/tribe-options-tickets.php:271
|
3364 |
msgid ""
|
3365 |
"For help creating and configuring your account, call PayPal at "
|
3366 |
"1-844-720-4038 (USA)"
|
3367 |
msgstr ""
|
3368 |
|
3369 |
+
#: src/admin-views/tribe-options-tickets.php:280
|
3370 |
msgid "PayPal Sandbox"
|
3371 |
msgstr ""
|
3372 |
|
3373 |
+
#: src/admin-views/tribe-options-tickets.php:281
|
3374 |
msgid "Enables PayPal Sandbox mode for testing."
|
3375 |
msgstr ""
|
3376 |
|
3377 |
+
#: src/admin-views/tribe-options-tickets.php:287
|
3378 |
msgid "Currency Code"
|
3379 |
msgstr ""
|
3380 |
|
3381 |
+
#: src/admin-views/tribe-options-tickets.php:288
|
3382 |
msgid "The currency that will be used for Tribe Commerce transactions."
|
3383 |
msgstr ""
|
3384 |
|
3385 |
+
#: src/admin-views/tribe-options-tickets.php:295
|
3386 |
msgid "Stock Handling"
|
3387 |
msgstr ""
|
3388 |
|
3389 |
+
#: src/admin-views/tribe-options-tickets.php:296
|
3390 |
msgctxt "tickets fields settings paypal stock handling"
|
3391 |
msgid ""
|
3392 |
"When a customer purchases a %s, PayPal might flag the order as Pending. The "
|
3393 |
"order will be Complete once payment is confirmed by PayPal."
|
3394 |
msgstr ""
|
3395 |
|
3396 |
+
#: src/admin-views/tribe-options-tickets.php:301
|
3397 |
msgid "Decrease available %s stock as soon as a Pending order is created."
|
3398 |
msgstr ""
|
3399 |
|
3400 |
+
#: src/admin-views/tribe-options-tickets.php:305
|
3401 |
msgid ""
|
3402 |
"Only decrease available %s stock if an order is confirmed as Completed by "
|
3403 |
"PayPal."
|
3404 |
msgstr ""
|
3405 |
|
3406 |
+
#: src/admin-views/tribe-options-tickets.php:313
|
3407 |
msgid "Success page"
|
3408 |
msgstr ""
|
3409 |
|
3410 |
+
#: src/admin-views/tribe-options-tickets.php:316
|
3411 |
msgid ""
|
3412 |
"After a successful PayPal order users will be redirected to this page; use "
|
3413 |
"the %s shortcode to display the order confirmation to the user in the page "
|
3414 |
"content."
|
3415 |
msgstr ""
|
3416 |
|
3417 |
+
#: src/admin-views/tribe-options-tickets.php:327
|
3418 |
msgid "Confirmation email sender address"
|
3419 |
msgstr ""
|
3420 |
|
3421 |
+
#: src/admin-views/tribe-options-tickets.php:328
|
3422 |
msgctxt "tickets fields settings paypal confirmation email"
|
3423 |
msgid ""
|
3424 |
"Email address PayPal %s customers will receive confirmation from. Leave "
|
3425 |
"empty to use the default WordPress site email address."
|
3426 |
msgstr ""
|
3427 |
|
3428 |
+
#: src/admin-views/tribe-options-tickets.php:336
|
3429 |
msgid "Confirmation email sender name"
|
3430 |
msgstr ""
|
3431 |
|
3432 |
+
#: src/admin-views/tribe-options-tickets.php:337
|
3433 |
msgctxt "tickets fields settings paypal email sender"
|
3434 |
msgid ""
|
3435 |
"Sender name of the confirmation email sent to customers when confirming a %s "
|
3436 |
"purchase."
|
3437 |
msgstr ""
|
3438 |
|
3439 |
+
#: src/admin-views/tribe-options-tickets.php:345
|
3440 |
msgid "Confirmation email subject"
|
3441 |
msgstr ""
|
3442 |
|
3443 |
+
#: src/admin-views/tribe-options-tickets.php:346
|
3444 |
msgctxt "tickets fields settings paypal email subject"
|
3445 |
msgid ""
|
3446 |
"Subject of the confirmation email sent to customers when confirming a %s "
|
3447 |
"purchase."
|
3448 |
msgstr ""
|
3449 |
|
3450 |
+
#: src/admin-views/tribe-options-tickets.php:348
|
3451 |
msgctxt "tickets fields settings paypal email subject"
|
3452 |
msgid "You have %s!"
|
3453 |
msgstr ""
|
3454 |
|
3455 |
+
#: src/admin-views/tribe-options-tickets.php:360
|
3456 |
msgid ""
|
3457 |
"You can see and manage your IPN Notifications history from the IPN "
|
3458 |
"Notifications settings area (%s)."
|
3459 |
msgstr ""
|
3460 |
|
3461 |
+
#: src/admin-views/tribe-options-tickets.php:370
|
3462 |
msgid "IPN Notify URL"
|
3463 |
msgstr ""
|
3464 |
|
3465 |
+
#: src/admin-views/tribe-options-tickets.php:372
|
3466 |
msgid ""
|
3467 |
"Override the default IPN notify URL with this value. This value must be the "
|
3468 |
"same set in PayPal IPN Notifications settings area (%s)."
|
3870 |
"information as well as change ticket quantities."
|
3871 |
msgstr ""
|
3872 |
|
3873 |
+
#: src/views/components/loader.php:18
|
3874 |
msgid "Loading..."
|
3875 |
msgstr ""
|
3876 |
|
3906 |
msgstr ""
|
3907 |
|
3908 |
#: src/views/modal/registration-js.php:50
|
3909 |
+
#: src/views/registration-js/content.php:100
|
3910 |
msgctxt ""
|
3911 |
"Note about missing required fields, %s is the html-wrapped number of tickets."
|
3912 |
msgid "You have %s ticket(s) with a field that requires information."
|
3913 |
msgstr ""
|
3914 |
|
3915 |
#: src/views/modal/registration-js.php:97
|
3916 |
+
#: src/views/registration-js/content.php:196
|
3917 |
msgctxt ""
|
3918 |
"Note that there are more tickets in the cart, %s is the html-wrapped number."
|
3919 |
msgid ""
|
3923 |
|
3924 |
#: src/views/modal/registration-js.php:116 src/views/modal/registration.php:35
|
3925 |
#: src/views/registration/content.php:111
|
|
|
3926 |
msgid "Save and Checkout"
|
3927 |
msgstr ""
|
3928 |
|
readme.txt
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
=== Event Tickets ===
|
2 |
|
3 |
-
Contributors: ModernTribe, brianjessee, camwynsp, paulkim, sc0ttkclark, aguseo, bordoni, borkweb,
|
4 |
Tags: tickets, registration, The Events Calendar, RSVP, ticket sales, attendee management
|
5 |
Requires at least: 4.9.14
|
6 |
-
Tested up to: 5.
|
7 |
-
Stable tag: 5.0.
|
8 |
Requires PHP: 5.6
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
@@ -17,7 +17,7 @@ Manage tickets and RSVPs for free with [Event Tickets](https://m.tri.be/1ao8), f
|
|
17 |
|
18 |
This plugin makes it easy to sell tickets and collect registration for in-person or virtual events. Plus, it comes with features backed by our world-class team of developers and designers. Integrate Event Tickets with your PayPal business account and manage attendees from your WordPress dashboard.
|
19 |
|
20 |
-
https://vimeo.com/480516958
|
21 |
|
22 |
= 🎟️ Ticketing and Registration for WordPress =
|
23 |
|
@@ -176,6 +176,26 @@ Check out our extensive [knowledgebase](https://m.tri.be/18wm) for articles on u
|
|
176 |
|
177 |
== Changelog ==
|
178 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
179 |
= [5.0.3.1] 2020-11-19 =
|
180 |
|
181 |
* Fix - Require Event Tickets Plus 5.1+ for compatibility purposes on certain areas in Event Tickets that have direct calls to Event Tickets Plus functionality. [ET-964]
|
1 |
=== Event Tickets ===
|
2 |
|
3 |
+
Contributors: ModernTribe, brianjessee, camwynsp, paulkim, sc0ttkclark, aguseo, bordoni, borkweb, GeoffBel, geoffgraham, jentheo, leahkoerper, lucatume, neillmcshea, patriciahillebrandt, peterchester, reid.peifer, shane.pearlman, vicskf, zbtirrell, juanfra
|
4 |
Tags: tickets, registration, The Events Calendar, RSVP, ticket sales, attendee management
|
5 |
Requires at least: 4.9.14
|
6 |
+
Tested up to: 5.6.0
|
7 |
+
Stable tag: 5.0.4
|
8 |
Requires PHP: 5.6
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
17 |
|
18 |
This plugin makes it easy to sell tickets and collect registration for in-person or virtual events. Plus, it comes with features backed by our world-class team of developers and designers. Integrate Event Tickets with your PayPal business account and manage attendees from your WordPress dashboard.
|
19 |
|
20 |
+
https://vimeo.com/480516958/dda22d4e01
|
21 |
|
22 |
= 🎟️ Ticketing and Registration for WordPress =
|
23 |
|
176 |
|
177 |
== Changelog ==
|
178 |
|
179 |
+
= [5.0.4] 2020-12-15 =
|
180 |
+
|
181 |
+
* Fix - Exclude the "RSVP" ticket provider from the providers list in the editor for tickets. [ET-953]
|
182 |
+
* Fix - Post type settings label typo changed to plural "tickets". [ET-954]
|
183 |
+
* Fix - RSVP/Ticket's end sale date for non-event post types now defaults to 1 year and 2 hrs from current date instead of 100 years. [ET-954]
|
184 |
+
* Fix - Remove the Custom Class Name from the block interface for the Event Tickets blocks to prevent extra interface options that are unused. [ET-960]
|
185 |
+
* Fix - Remove extraneous "Save and checkout" heading from the `registration-js/content.php` view. [ET-955]
|
186 |
+
* Fix - Prevent PHP notices by setting up the `must_login` argument within the `registration-js/mini-cart.php` view. [ET-955]
|
187 |
+
* Fix - Make the "Configure Settings" link on the Welcome screen for Event Tickets open up in a new tab. [ET-958]
|
188 |
+
* Fix - Update loader templates to use new icons from Tribe Common. [ET-588]
|
189 |
+
* Fix - Resolve PHP notices on the Attendee Registration Page from Tribe Commerce ticket details when multiple Commerce Providers may be available. [ET-599]
|
190 |
+
* Fix - Prevent potential conflicts with themes like Avada that manually trigger a jQuery ready event during the normal jQuery ready event. [ETP-601]
|
191 |
+
* Tweak - Add opaque backgrounds for selected bordered elements. [ET-944]
|
192 |
+
* Tweak - Added admin notice when editing an Events Calendar Pro recurring event that has tickets in classic editor to warn about how tickets will act on recurring events. [ET-949]
|
193 |
+
* Tweak - Show warning message within the classic ticket editor if no commerce provider is active. [ET-957]
|
194 |
+
* Tweak - Show warning message within the classic ticket editor for recurring events about the limitations of tickets on recurring events. [ET-947]
|
195 |
+
* Tweak - Show confirmation dialog before deleting an attendee on the attendee list. [ET-648]
|
196 |
+
* Tweak - Rearrange Classic Editor's ticket settings so all "Advanced" fields are into the main section, other than the non-RSVP fields for "SKU" and "Ecommerce". [ET-950]
|
197 |
+
* Language - 16 new strings added, 167 updated, 0 fuzzied, and 7 obsoleted
|
198 |
+
|
199 |
= [5.0.3.1] 2020-11-19 =
|
200 |
|
201 |
* Fix - Require Event Tickets Plus 5.1+ for compatibility purposes on certain areas in Event Tickets that have direct calls to Event Tickets Plus functionality. [ET-964]
|
src/Tribe/Admin/Notices.php
CHANGED
@@ -13,7 +13,7 @@ class Tribe__Tickets__Admin__Notices {
|
|
13 |
* @since 4.7
|
14 |
*/
|
15 |
public function hook() {
|
16 |
-
add_action( 'admin_init',
|
17 |
}
|
18 |
|
19 |
/**
|
@@ -30,9 +30,11 @@ class Tribe__Tickets__Admin__Notices {
|
|
30 |
return;
|
31 |
}
|
32 |
|
33 |
-
|
34 |
|
35 |
$this->maybe_display_rsvp_new_views_options_notice();
|
|
|
|
|
36 |
}
|
37 |
|
38 |
/**
|
@@ -112,6 +114,80 @@ class Tribe__Tickets__Admin__Notices {
|
|
112 |
);
|
113 |
}
|
114 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
115 |
/**
|
116 |
* Display a notice for the user about missing support if ET+ supported commerce providers are active
|
117 |
* but ET+ is not.
|
@@ -119,8 +195,6 @@ class Tribe__Tickets__Admin__Notices {
|
|
119 |
* @since 4.7
|
120 |
*/
|
121 |
public function maybe_display_plus_commerce_notice() {
|
122 |
-
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
|
123 |
-
|
124 |
if ( class_exists( 'Tribe__Tickets_Plus__Main' ) ) {
|
125 |
return;
|
126 |
}
|
@@ -137,26 +211,30 @@ class Tribe__Tickets__Admin__Notices {
|
|
137 |
$plus = sprintf(
|
138 |
'<a target="_blank" rel="noopener nofollow" href="%s">%s</a>',
|
139 |
esc_attr( $plus_link ),
|
140 |
-
|
141 |
);
|
142 |
|
143 |
-
$plus_commerce_providers =
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
|
148 |
-
foreach ( $plus_commerce_providers as $
|
149 |
if ( ! is_plugin_active( $path ) ) {
|
150 |
continue;
|
151 |
}
|
152 |
|
153 |
$message = sprintf(
|
154 |
-
|
155 |
-
$
|
|
|
156 |
$plus
|
157 |
);
|
158 |
|
159 |
-
|
|
|
|
|
|
|
160 |
}
|
161 |
}
|
162 |
}
|
13 |
* @since 4.7
|
14 |
*/
|
15 |
public function hook() {
|
16 |
+
add_action( 'admin_init', [ $this, 'maybe_display_notices' ] );
|
17 |
}
|
18 |
|
19 |
/**
|
30 |
return;
|
31 |
}
|
32 |
|
33 |
+
include_once ABSPATH . 'wp-admin/includes/plugin.php';
|
34 |
|
35 |
$this->maybe_display_rsvp_new_views_options_notice();
|
36 |
+
$this->maybe_display_classic_editor_ecp_recurring_tickets_notice();
|
37 |
+
$this->maybe_display_plus_commerce_notice();
|
38 |
}
|
39 |
|
40 |
/**
|
114 |
);
|
115 |
}
|
116 |
|
117 |
+
/**
|
118 |
+
* Display dismissible notice about recurring events tickets, per event.
|
119 |
+
*
|
120 |
+
* @since 5.0.4
|
121 |
+
*/
|
122 |
+
public function maybe_display_classic_editor_ecp_recurring_tickets_notice() {
|
123 |
+
$post_id = absint( tribe_get_request_var( 'post' ) );
|
124 |
+
|
125 |
+
if ( empty( $post_id ) ) {
|
126 |
+
return;
|
127 |
+
}
|
128 |
+
|
129 |
+
// Warning: Changing this would invalidate all past dismissals.
|
130 |
+
$slug_prefix = 'tribe_notice_classic_editor_ecp_recurring_tickets';
|
131 |
+
$notice_slug = sprintf( '%s-%d', $slug_prefix, $post_id );
|
132 |
+
|
133 |
+
// Bail if this notice was previously dismissed for this TEC event.
|
134 |
+
if ( Tribe__Admin__Notices::instance()->has_user_dimissed( $notice_slug ) ) {
|
135 |
+
return;
|
136 |
+
}
|
137 |
+
|
138 |
+
/** @var Tribe__Tickets__Editor__Template__Overwrite $template_overwrite */
|
139 |
+
$template_overwrite = tribe( 'tickets.editor.template.overwrite' );
|
140 |
+
|
141 |
+
if (
|
142 |
+
! function_exists( 'tribe_is_recurring_event' )
|
143 |
+
|| ! tribe_is_recurring_event( $post_id )
|
144 |
+
|| ! tribe_events_has_tickets( $post_id )
|
145 |
+
|| ! $template_overwrite->has_classic_editor( $post_id )
|
146 |
+
) {
|
147 |
+
return;
|
148 |
+
}
|
149 |
+
|
150 |
+
$heading = sprintf(
|
151 |
+
// Translators: %1$s: dynamic "Tickets" text, %2$s: dynamic "Event" text.
|
152 |
+
_x(
|
153 |
+
'%1$s for Recurring %2$s',
|
154 |
+
'heading for classic editor notice if Events Calendar Pro event has tickets',
|
155 |
+
'event-tickets'
|
156 |
+
),
|
157 |
+
tribe_get_ticket_label_plural( $slug_prefix ),
|
158 |
+
tribe_get_event_label_singular()
|
159 |
+
);
|
160 |
+
|
161 |
+
$text = sprintf(
|
162 |
+
// Translators: %1$s: dynamic "event" text, %2$s: dynamic "ticket" text, %3$s: dynamic "tickets" text, %4$s: dynamic "RSVP" text, %5$s: dynamic "Ticket" text.
|
163 |
+
_x(
|
164 |
+
'Heads up! You saved a recurring %1$s with a %2$s. Please note that we do not currently support recurring %3$s. Only the first instance of this recurring series will have your %4$s or %5$s displayed.',
|
165 |
+
'text for classic editor notice if Events Calendar Pro event has tickets',
|
166 |
+
'event-tickets'
|
167 |
+
),
|
168 |
+
tribe_get_event_label_singular_lowercase(),
|
169 |
+
tribe_get_ticket_label_singular_lowercase( $slug_prefix ),
|
170 |
+
tribe_get_ticket_label_plural_lowercase( $slug_prefix ),
|
171 |
+
tribe_get_rsvp_label_singular( $slug_prefix ),
|
172 |
+
tribe_get_ticket_label_singular( $slug_prefix )
|
173 |
+
);
|
174 |
+
|
175 |
+
$message = sprintf(
|
176 |
+
'<h3>%1$s</h3>%2$s',
|
177 |
+
esc_html( $heading ),
|
178 |
+
wpautop( esc_html( $text ) )
|
179 |
+
);
|
180 |
+
|
181 |
+
tribe_notice(
|
182 |
+
$notice_slug,
|
183 |
+
$message,
|
184 |
+
[
|
185 |
+
'dismiss' => true,
|
186 |
+
'type' => 'warning',
|
187 |
+
]
|
188 |
+
);
|
189 |
+
}
|
190 |
+
|
191 |
/**
|
192 |
* Display a notice for the user about missing support if ET+ supported commerce providers are active
|
193 |
* but ET+ is not.
|
195 |
* @since 4.7
|
196 |
*/
|
197 |
public function maybe_display_plus_commerce_notice() {
|
|
|
|
|
198 |
if ( class_exists( 'Tribe__Tickets_Plus__Main' ) ) {
|
199 |
return;
|
200 |
}
|
211 |
$plus = sprintf(
|
212 |
'<a target="_blank" rel="noopener nofollow" href="%s">%s</a>',
|
213 |
esc_attr( $plus_link ),
|
214 |
+
esc_html__( 'Event Tickets Plus', 'event-tickets' )
|
215 |
);
|
216 |
|
217 |
+
$plus_commerce_providers = [
|
218 |
+
'woocommerce/woocommerce.php' => __( 'WooCommerce', 'event-tickets' ),
|
219 |
+
'easy-digital-downloads/easy-digital-downloads.php' => __( 'Easy Digital Downloads', 'event-tickets' ),
|
220 |
+
];
|
221 |
|
222 |
+
foreach ( $plus_commerce_providers as $path => $provider ) {
|
223 |
if ( ! is_plugin_active( $path ) ) {
|
224 |
continue;
|
225 |
}
|
226 |
|
227 |
$message = sprintf(
|
228 |
+
// translators: %1$s: The ticket commerce provider (WooCommerce, etc); %2$s: The Event Tickets Plus plugin name and link.
|
229 |
+
esc_html__( 'Event Tickets does not support ticket sales via third party ecommerce plugins. If you want to sell tickets with %1$s, please purchase a license for %2$s.', 'event-tickets' ),
|
230 |
+
esc_html( $provider ),
|
231 |
$plus
|
232 |
);
|
233 |
|
234 |
+
// Wrap in <p> tag.
|
235 |
+
$message = sprintf( '<p>%s</p>', $message );
|
236 |
+
|
237 |
+
tribe_notice( "event-tickets-plus-missing-{$provider}-support", $message, 'dismiss=1&type=warning' );
|
238 |
}
|
239 |
}
|
240 |
}
|
src/Tribe/Attendees.php
CHANGED
@@ -307,7 +307,13 @@ class Tribe__Tickets__Attendees {
|
|
307 |
|
308 |
add_thickbox();
|
309 |
|
310 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
311 |
'nonce' => wp_create_nonce( 'email-attendee-list' ),
|
312 |
'required' => esc_html__( 'You need to select a user or type a valid email address', 'event-tickets' ),
|
313 |
'sending' => esc_html__( 'Sending...', 'event-tickets' ),
|
@@ -315,14 +321,20 @@ class Tribe__Tickets__Attendees {
|
|
315 |
'checkin_nonce' => wp_create_nonce( 'checkin' ),
|
316 |
'uncheckin_nonce' => wp_create_nonce( 'uncheckin' ),
|
317 |
'cannot_move' => esc_html__( 'You must first select one or more tickets before you can move them!', 'event-tickets' ),
|
318 |
-
'move_url' => add_query_arg(
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
324 |
|
325 |
-
wp_localize_script( $this->slug() . '-js', 'Attendees', $
|
326 |
}
|
327 |
|
328 |
/**
|
307 |
|
308 |
add_thickbox();
|
309 |
|
310 |
+
$move_url_args = [
|
311 |
+
'dialog' => Tribe__Tickets__Main::instance()->move_tickets()->dialog_name(),
|
312 |
+
'check' => wp_create_nonce( 'move_tickets' ),
|
313 |
+
'TB_iframe' => 'true',
|
314 |
+
];
|
315 |
+
|
316 |
+
$config_data = [
|
317 |
'nonce' => wp_create_nonce( 'email-attendee-list' ),
|
318 |
'required' => esc_html__( 'You need to select a user or type a valid email address', 'event-tickets' ),
|
319 |
'sending' => esc_html__( 'Sending...', 'event-tickets' ),
|
321 |
'checkin_nonce' => wp_create_nonce( 'checkin' ),
|
322 |
'uncheckin_nonce' => wp_create_nonce( 'uncheckin' ),
|
323 |
'cannot_move' => esc_html__( 'You must first select one or more tickets before you can move them!', 'event-tickets' ),
|
324 |
+
'move_url' => add_query_arg( $move_url_args ),
|
325 |
+
'confirmation' => esc_html__( 'Please confirm that you would like to delete this attendee.', 'event-tickets' ),
|
326 |
+
];
|
327 |
+
|
328 |
+
/**
|
329 |
+
* Allow filtering the configuration data for the Attendee objects on Attendees report page.
|
330 |
+
*
|
331 |
+
* @since 5.0.4
|
332 |
+
*
|
333 |
+
* @param array $config_data List of configuration data to be localized.
|
334 |
+
*/
|
335 |
+
$config_data = apply_filters( 'tribe_tickets_attendees_report_js_config', $config_data );
|
336 |
|
337 |
+
wp_localize_script( $this->slug() . '-js', 'Attendees', $config_data );
|
338 |
}
|
339 |
|
340 |
/**
|
src/Tribe/Commerce/PayPal/Main.php
CHANGED
@@ -2401,6 +2401,10 @@ class Tribe__Tickets__Commerce__PayPal__Main extends Tribe__Tickets__Tickets {
|
|
2401 |
$commerce_tickets = $this->commerce_get_tickets_in_cart( $tickets );
|
2402 |
|
2403 |
foreach ( $commerce_tickets as $ticket ) {
|
|
|
|
|
|
|
|
|
2404 |
$tickets[ $ticket['ticket_id'] ] = $ticket['quantity'];
|
2405 |
}
|
2406 |
|
2401 |
$commerce_tickets = $this->commerce_get_tickets_in_cart( $tickets );
|
2402 |
|
2403 |
foreach ( $commerce_tickets as $ticket ) {
|
2404 |
+
if ( ! is_array( $ticket ) ) {
|
2405 |
+
continue;
|
2406 |
+
}
|
2407 |
+
|
2408 |
$tickets[ $ticket['ticket_id'] ] = $ticket['quantity'];
|
2409 |
}
|
2410 |
|
src/Tribe/Editor.php
CHANGED
@@ -241,12 +241,15 @@ class Tribe__Tickets__Editor extends Tribe__Editor {
|
|
241 |
* @return string
|
242 |
*/
|
243 |
public function add_column_content_price( $ticket, $provider_obj ) {
|
244 |
-
$
|
|
|
|
|
|
|
245 |
'ticket' => $ticket,
|
246 |
'provider_obj' => $provider_obj,
|
247 |
-
|
248 |
|
249 |
-
return
|
250 |
}
|
251 |
|
252 |
/**
|
@@ -260,8 +263,11 @@ class Tribe__Tickets__Editor extends Tribe__Editor {
|
|
260 |
* @return bool
|
261 |
*/
|
262 |
public function flush_blocks() {
|
263 |
-
|
264 |
-
|
|
|
|
|
|
|
265 |
return false;
|
266 |
}
|
267 |
|
@@ -278,14 +284,8 @@ class Tribe__Tickets__Editor extends Tribe__Editor {
|
|
278 |
/** @var Tribe__Tickets__Editor__Template__Overwrite $template_overwrite */
|
279 |
$template_overwrite = tribe( 'tickets.editor.template.overwrite' );
|
280 |
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
/** @var Tribe__Editor $editor */
|
285 |
-
$editor = tribe( 'editor' );
|
286 |
-
|
287 |
-
// Set meta key only if is classic editor and bail
|
288 |
-
if ( $editor->is_classic_editor() || $has_event_classic_editor ) {
|
289 |
update_post_meta( $post_id, $this->meta_key_flush_flag, 1 );
|
290 |
|
291 |
return false;
|
241 |
* @return string
|
242 |
*/
|
243 |
public function add_column_content_price( $ticket, $provider_obj ) {
|
244 |
+
/** @var Tribe__Tickets__Admin__Views $admin_views */
|
245 |
+
$admin_views = tribe( 'tickets.admin.views' );
|
246 |
+
|
247 |
+
$context = [
|
248 |
'ticket' => $ticket,
|
249 |
'provider_obj' => $provider_obj,
|
250 |
+
];
|
251 |
|
252 |
+
return $admin_views->template( 'editor/column-body-price', $context );
|
253 |
}
|
254 |
|
255 |
/**
|
263 |
* @return bool
|
264 |
*/
|
265 |
public function flush_blocks() {
|
266 |
+
/** @var Tribe__Editor $editor */
|
267 |
+
$editor = tribe( 'editor' );
|
268 |
+
|
269 |
+
// Bail because we dont have access to any of the classes we need for Blocks Editor.
|
270 |
+
if ( ! $editor->should_load_blocks() ) {
|
271 |
return false;
|
272 |
}
|
273 |
|
284 |
/** @var Tribe__Tickets__Editor__Template__Overwrite $template_overwrite */
|
285 |
$template_overwrite = tribe( 'tickets.editor.template.overwrite' );
|
286 |
|
287 |
+
// Set meta key only if is classic editor and bail.
|
288 |
+
if ( $template_overwrite->has_classic_editor( $post_id ) ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
289 |
update_post_meta( $post_id, $this->meta_key_flush_flag, 1 );
|
290 |
|
291 |
return false;
|
src/Tribe/Editor/Configuration.php
CHANGED
@@ -28,17 +28,18 @@ class Tribe__Tickets__Editor__Configuration implements Tribe__Editor__Configurat
|
|
28 |
* @return array
|
29 |
*/
|
30 |
public function editor_config( $editor_config ) {
|
31 |
-
$tickets
|
|
|
32 |
$editor_config = $this->set_defaults( $editor_config );
|
33 |
|
34 |
$editor_config['common']['rest']['nonce'] = array_merge(
|
35 |
$editor_config['common']['rest']['nonce'],
|
36 |
-
|
37 |
'add_ticket_nonce' => wp_create_nonce( 'add_ticket_nonce' ),
|
38 |
'edit_ticket_nonce' => wp_create_nonce( 'edit_ticket_nonce' ),
|
39 |
'remove_ticket_nonce' => wp_create_nonce( 'remove_ticket_nonce' ),
|
40 |
'move_tickets' => wp_create_nonce( 'move_tickets' ),
|
41 |
-
|
42 |
);
|
43 |
|
44 |
$editor_config['tickets'] = array_merge(
|
@@ -46,6 +47,24 @@ class Tribe__Tickets__Editor__Configuration implements Tribe__Editor__Configurat
|
|
46 |
$this->localize()
|
47 |
);
|
48 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
return $editor_config;
|
50 |
}
|
51 |
|
@@ -86,7 +105,7 @@ class Tribe__Tickets__Editor__Configuration implements Tribe__Editor__Configurat
|
|
86 |
}
|
87 |
|
88 |
/**
|
89 |
-
* Return an array with all the providers
|
90 |
*
|
91 |
* @since 4.9
|
92 |
*
|
@@ -94,36 +113,35 @@ class Tribe__Tickets__Editor__Configuration implements Tribe__Editor__Configurat
|
|
94 |
*/
|
95 |
public function get_providers() {
|
96 |
$modules = Tribe__Tickets__Tickets::modules();
|
97 |
-
$
|
98 |
-
$providers = array();
|
99 |
$default_currency_symbol = tribe_get_option( 'defaultCurrencySymbol', '$' );
|
100 |
|
101 |
-
foreach ( $
|
102 |
-
if (
|
103 |
continue;
|
104 |
}
|
105 |
|
106 |
$currency = tribe( 'tickets.commerce.currency' );
|
107 |
|
108 |
-
// Backwards to avoid fatals
|
109 |
$currency_symbol = $default_currency_symbol;
|
110 |
-
if ( is_callable(
|
111 |
-
$currency_symbol = $currency->get_provider_symbol( $
|
112 |
}
|
113 |
|
114 |
$currency_position = 'prefix';
|
115 |
-
if ( is_callable(
|
116 |
-
$currency_position = $currency->get_provider_symbol_position( $
|
117 |
}
|
118 |
|
119 |
-
$providers[] =
|
120 |
-
'name' => $modules[ $
|
121 |
-
'class' => $
|
122 |
'currency' => html_entity_decode( $currency_symbol ),
|
123 |
'currency_position' => $currency_position,
|
124 |
-
|
125 |
}
|
126 |
|
127 |
return $providers;
|
128 |
}
|
129 |
-
}
|
28 |
* @return array
|
29 |
*/
|
30 |
public function editor_config( $editor_config ) {
|
31 |
+
$tickets = empty( $editor_config['tickets'] ) ? [] : $editor_config['tickets'];
|
32 |
+
|
33 |
$editor_config = $this->set_defaults( $editor_config );
|
34 |
|
35 |
$editor_config['common']['rest']['nonce'] = array_merge(
|
36 |
$editor_config['common']['rest']['nonce'],
|
37 |
+
[
|
38 |
'add_ticket_nonce' => wp_create_nonce( 'add_ticket_nonce' ),
|
39 |
'edit_ticket_nonce' => wp_create_nonce( 'edit_ticket_nonce' ),
|
40 |
'remove_ticket_nonce' => wp_create_nonce( 'remove_ticket_nonce' ),
|
41 |
'move_tickets' => wp_create_nonce( 'move_tickets' ),
|
42 |
+
]
|
43 |
);
|
44 |
|
45 |
$editor_config['tickets'] = array_merge(
|
47 |
$this->localize()
|
48 |
);
|
49 |
|
50 |
+
/**
|
51 |
+
* Filter the default buffer duration between ticket sale start time and end time.
|
52 |
+
*
|
53 |
+
* @since 5.0.4
|
54 |
+
*
|
55 |
+
* @param int $buffer Number in hours to be used.
|
56 |
+
*/
|
57 |
+
$editor_config['tickets']['end_sale_buffer_duration'] = apply_filters( 'tribe_tickets_editor_end_sale_buffer_duration_hours', 2 );
|
58 |
+
|
59 |
+
/**
|
60 |
+
* Filter the default buffer years between ticket sale start date and end date.
|
61 |
+
*
|
62 |
+
* @since 5.0.4
|
63 |
+
*
|
64 |
+
* @param int $buffer Number in years to be used.
|
65 |
+
*/
|
66 |
+
$editor_config['tickets']['end_sale_buffer_years'] = apply_filters( 'tribe_tickets_editor_end_sale_buffer_years', 1 );
|
67 |
+
|
68 |
return $editor_config;
|
69 |
}
|
70 |
|
105 |
}
|
106 |
|
107 |
/**
|
108 |
+
* Return an array with all the currently-active ticket providers (not RSVP).
|
109 |
*
|
110 |
* @since 4.9
|
111 |
*
|
113 |
*/
|
114 |
public function get_providers() {
|
115 |
$modules = Tribe__Tickets__Tickets::modules();
|
116 |
+
$providers = [];
|
|
|
117 |
$default_currency_symbol = tribe_get_option( 'defaultCurrencySymbol', '$' );
|
118 |
|
119 |
+
foreach ( $modules as $class_name => $display_name ) {
|
120 |
+
if ( Tribe__Tickets__RSVP::class === $class_name ) {
|
121 |
continue;
|
122 |
}
|
123 |
|
124 |
$currency = tribe( 'tickets.commerce.currency' );
|
125 |
|
126 |
+
// Backwards to avoid fatals.
|
127 |
$currency_symbol = $default_currency_symbol;
|
128 |
+
if ( is_callable( [ $currency, 'get_provider_symbol' ] ) ) {
|
129 |
+
$currency_symbol = $currency->get_provider_symbol( $class_name, null );
|
130 |
}
|
131 |
|
132 |
$currency_position = 'prefix';
|
133 |
+
if ( is_callable( [ $currency, 'get_provider_symbol_position' ] ) ) {
|
134 |
+
$currency_position = $currency->get_provider_symbol_position( $class_name, null );
|
135 |
}
|
136 |
|
137 |
+
$providers[] = [
|
138 |
+
'name' => $modules[ $class_name ],
|
139 |
+
'class' => $class_name,
|
140 |
'currency' => html_entity_decode( $currency_symbol ),
|
141 |
'currency_position' => $currency_position,
|
142 |
+
];
|
143 |
}
|
144 |
|
145 |
return $providers;
|
146 |
}
|
147 |
+
}
|
src/Tribe/Editor/Provider.php
CHANGED
@@ -1,4 +1,10 @@
|
|
1 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
/**
|
3 |
* Register Event Tickets provider
|
4 |
*
|
@@ -9,37 +15,51 @@ class Tribe__Tickets__Editor__Provider extends tad_DI52_ServiceProvider {
|
|
9 |
* Binds and sets up implementations.
|
10 |
*
|
11 |
* @since 4.9
|
12 |
-
*
|
13 |
*/
|
14 |
public function register() {
|
|
|
|
|
|
|
15 |
// Register these all the time - as we now use them in most of the templates, blocks or otherwise.
|
|
|
16 |
$this->container->singleton( 'tickets.editor.template', 'Tribe__Tickets__Editor__Template' );
|
17 |
$this->container->singleton( 'tickets.editor.blocks.tickets', 'Tribe__Tickets__Editor__Blocks__Tickets' );
|
18 |
$this->container->singleton( 'tickets.editor.blocks.rsvp', 'Tribe__Tickets__Editor__Blocks__Rsvp' );
|
19 |
-
$this->container->singleton( 'tickets.editor.configuration', 'Tribe__Tickets__Editor__Configuration',
|
|
|
|
|
20 |
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
return;
|
26 |
}
|
27 |
|
28 |
-
$this->container->singleton( 'tickets.editor.template.overwrite', 'Tribe__Tickets__Editor__Template__Overwrite', array( 'hook' ) );
|
29 |
-
|
30 |
$this->container->singleton(
|
31 |
'tickets.editor.compatibility.tickets',
|
32 |
'Tribe__Tickets__Editor__Compatibility__Tickets',
|
33 |
-
|
34 |
);
|
35 |
|
36 |
-
$this->container->singleton( 'tickets.editor.assets', 'Tribe__Tickets__Editor__Assets',
|
37 |
|
38 |
$this->container->singleton( 'tickets.editor.blocks.tickets-item', 'Tribe__Tickets__Editor__Blocks__Tickets_Item' );
|
39 |
$this->container->singleton( 'tickets.editor.blocks.attendees', 'Tribe__Tickets__Editor__Blocks__Attendees' );
|
40 |
|
41 |
$this->container->singleton( 'tickets.editor.meta', 'Tribe__Tickets__Editor__Meta' );
|
42 |
-
$this->container->singleton( 'tickets.editor.rest.compatibility', 'Tribe__Tickets__Editor__REST__Compatibility',
|
43 |
$this->container->singleton( 'tickets.editor.attendees_table', 'Tribe__Tickets__Attendees_Table' );
|
44 |
|
45 |
$this->hook();
|
@@ -54,7 +74,7 @@ class Tribe__Tickets__Editor__Provider extends tad_DI52_ServiceProvider {
|
|
54 |
// Initialize the correct Singleton
|
55 |
tribe( 'tickets.editor.assets' );
|
56 |
tribe( 'tickets.editor.configuration' );
|
57 |
-
tribe( 'tickets.editor.template.overwrite' );
|
58 |
}
|
59 |
|
60 |
/**
|
1 |
<?php
|
2 |
+
/**
|
3 |
+
* Handle the provider for the Event Tickets Editor functionality.
|
4 |
+
*/
|
5 |
+
|
6 |
+
use Tribe\Tickets\Editor\Warnings;
|
7 |
+
|
8 |
/**
|
9 |
* Register Event Tickets provider
|
10 |
*
|
15 |
* Binds and sets up implementations.
|
16 |
*
|
17 |
* @since 4.9
|
|
|
18 |
*/
|
19 |
public function register() {
|
20 |
+
// The general warnings class.
|
21 |
+
$this->container->singleton( 'tickets.editor.warnings', Warnings::class, [ 'hook' ] );
|
22 |
+
|
23 |
// Register these all the time - as we now use them in most of the templates, blocks or otherwise.
|
24 |
+
$this->container->singleton( 'tickets.editor.template.overwrite', 'Tribe__Tickets__Editor__Template__Overwrite' );
|
25 |
$this->container->singleton( 'tickets.editor.template', 'Tribe__Tickets__Editor__Template' );
|
26 |
$this->container->singleton( 'tickets.editor.blocks.tickets', 'Tribe__Tickets__Editor__Blocks__Tickets' );
|
27 |
$this->container->singleton( 'tickets.editor.blocks.rsvp', 'Tribe__Tickets__Editor__Blocks__Rsvp' );
|
28 |
+
$this->container->singleton( 'tickets.editor.configuration', 'Tribe__Tickets__Editor__Configuration', [ 'hook' ] );
|
29 |
+
|
30 |
+
$this->register_for_blocks();
|
31 |
|
32 |
+
// Handle general non-block-specific instances.
|
33 |
+
tribe( 'tickets.editor.warnings' );
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Handle registration for blocks-functionality separately.
|
38 |
+
*
|
39 |
+
* @since 5.0.4
|
40 |
+
*/
|
41 |
+
public function register_for_blocks() {
|
42 |
+
/** @var \Tribe__Editor $editor */
|
43 |
+
$editor = tribe( 'editor' );
|
44 |
+
|
45 |
+
// Only register for blocks if we are using them.
|
46 |
+
if ( ! $editor->should_load_blocks() ) {
|
47 |
return;
|
48 |
}
|
49 |
|
|
|
|
|
50 |
$this->container->singleton(
|
51 |
'tickets.editor.compatibility.tickets',
|
52 |
'Tribe__Tickets__Editor__Compatibility__Tickets',
|
53 |
+
[ 'hook' ]
|
54 |
);
|
55 |
|
56 |
+
$this->container->singleton( 'tickets.editor.assets', 'Tribe__Tickets__Editor__Assets', [ 'register' ] );
|
57 |
|
58 |
$this->container->singleton( 'tickets.editor.blocks.tickets-item', 'Tribe__Tickets__Editor__Blocks__Tickets_Item' );
|
59 |
$this->container->singleton( 'tickets.editor.blocks.attendees', 'Tribe__Tickets__Editor__Blocks__Attendees' );
|
60 |
|
61 |
$this->container->singleton( 'tickets.editor.meta', 'Tribe__Tickets__Editor__Meta' );
|
62 |
+
$this->container->singleton( 'tickets.editor.rest.compatibility', 'Tribe__Tickets__Editor__REST__Compatibility', [ 'hook' ] );
|
63 |
$this->container->singleton( 'tickets.editor.attendees_table', 'Tribe__Tickets__Attendees_Table' );
|
64 |
|
65 |
$this->hook();
|
74 |
// Initialize the correct Singleton
|
75 |
tribe( 'tickets.editor.assets' );
|
76 |
tribe( 'tickets.editor.configuration' );
|
77 |
+
tribe( 'tickets.editor.template.overwrite' )->hook();
|
78 |
}
|
79 |
|
80 |
/**
|
src/Tribe/Editor/Template/Overwrite.php
CHANGED
@@ -83,7 +83,7 @@ class Tribe__Tickets__Editor__Template__Overwrite {
|
|
83 |
}
|
84 |
|
85 |
/**
|
86 |
-
* Return if the classic editor is active on the post
|
87 |
*
|
88 |
* @since 4.9.2
|
89 |
*
|
@@ -93,6 +93,7 @@ class Tribe__Tickets__Editor__Template__Overwrite {
|
|
93 |
*/
|
94 |
public function has_classic_editor( $post_id ) {
|
95 |
$is_event = function_exists( 'tribe_is_event' ) && tribe_is_event( $post_id );
|
|
|
96 |
if ( $is_event && $this->has_early_access_to_blocks() ) {
|
97 |
return false;
|
98 |
}
|
83 |
}
|
84 |
|
85 |
/**
|
86 |
+
* Return if the classic editor is active on the post.
|
87 |
*
|
88 |
* @since 4.9.2
|
89 |
*
|
93 |
*/
|
94 |
public function has_classic_editor( $post_id ) {
|
95 |
$is_event = function_exists( 'tribe_is_event' ) && tribe_is_event( $post_id );
|
96 |
+
|
97 |
if ( $is_event && $this->has_early_access_to_blocks() ) {
|
98 |
return false;
|
99 |
}
|
src/Tribe/Editor/Warnings.php
ADDED
@@ -0,0 +1,127 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Conditional Warnings for the Editor.
|
4 |
+
*/
|
5 |
+
|
6 |
+
namespace Tribe\Tickets\Editor;
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Warnings handling class.
|
10 |
+
*
|
11 |
+
* @since 5.0.4
|
12 |
+
*/
|
13 |
+
class Warnings {
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Hooks actions for showing warnings
|
17 |
+
*
|
18 |
+
* @since 5.0.4
|
19 |
+
*/
|
20 |
+
public function hook() {
|
21 |
+
add_action( 'tribe_events_tickets_new_ticket_buttons', [ $this, 'show_recurring_event_warning_message' ] );
|
22 |
+
add_action( 'tribe_events_tickets_new_ticket_buttons', [ $this, 'add_commerce_provider_warning' ] );
|
23 |
+
}
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Show the Recurring Event warning message.
|
27 |
+
*
|
28 |
+
* @since 5.0.4
|
29 |
+
*
|
30 |
+
* @param int $post_id Post ID.
|
31 |
+
*/
|
32 |
+
public function show_recurring_event_warning_message( $post_id ) {
|
33 |
+
if ( ! class_exists( 'Tribe__Events__Pro__Main' ) || ! class_exists( 'Tribe__Events__Main' ) ) {
|
34 |
+
return;
|
35 |
+
}
|
36 |
+
|
37 |
+
if ( ! function_exists( 'tribe_is_recurring_event' ) ) {
|
38 |
+
return;
|
39 |
+
}
|
40 |
+
|
41 |
+
if ( \Tribe__Events__Main::POSTTYPE != get_post_type( $post_id ) ) {
|
42 |
+
return;
|
43 |
+
}
|
44 |
+
|
45 |
+
$this->render_notice( $this->get_recurring_event_warning_message(), 'info', '#tribe-recurrence-active', 'checked' );
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Add Provider missing warning for tickets.
|
50 |
+
*
|
51 |
+
* @since 5.0.4
|
52 |
+
*/
|
53 |
+
public function add_commerce_provider_warning() {
|
54 |
+
$available_modules = array_diff_key( \Tribe__Tickets__Tickets::modules(), [ 'Tribe__Tickets__RSVP' => true ] );
|
55 |
+
|
56 |
+
if ( count( $available_modules ) > 0 ) {
|
57 |
+
return;
|
58 |
+
}
|
59 |
+
|
60 |
+
$this->render_notice( $this->get_commerce_provider_missing_warning_message() );
|
61 |
+
}
|
62 |
+
|
63 |
+
/**
|
64 |
+
* Get the Commerce Provider missing warning message.
|
65 |
+
*
|
66 |
+
* @since 5.0.4
|
67 |
+
*
|
68 |
+
* @return string The Commerce Provider missing message.
|
69 |
+
*/
|
70 |
+
public function get_commerce_provider_missing_warning_message() {
|
71 |
+
$kb_url = 'https://evnt.is/1ao5';
|
72 |
+
|
73 |
+
/* translators: %1$s: URL for help link, %2$s: Label for help link. */
|
74 |
+
$link = sprintf(
|
75 |
+
'<a href="%1$s" target="_blank" rel="noopener noreferrer">%2$s</a>',
|
76 |
+
esc_url( $kb_url ),
|
77 |
+
esc_html_x( 'Learn More', 'Helper link in Ticket Editor', 'event-tickets' )
|
78 |
+
);
|
79 |
+
|
80 |
+
return wp_kses_post(
|
81 |
+
sprintf(
|
82 |
+
/* translators: %1$s: link to help article. */
|
83 |
+
__( 'There is no payment gateway configured. To create tickets, you\'ll need to enable and configure an ecommerce solution. %1$s', 'event-tickets' ),
|
84 |
+
$link
|
85 |
+
)
|
86 |
+
);
|
87 |
+
}
|
88 |
+
|
89 |
+
/**
|
90 |
+
* Get the Recurring Event warning message.
|
91 |
+
*
|
92 |
+
* @since 5.0.4
|
93 |
+
*
|
94 |
+
* @return string The Recurring Event warning message.
|
95 |
+
*/
|
96 |
+
public function get_recurring_event_warning_message() {
|
97 |
+
return __( 'This is a recurring event. If you add tickets, they will only show up on first event in the recurrence series. Please carefully configure your recurring events.', 'event-tickets' );
|
98 |
+
}
|
99 |
+
|
100 |
+
/**
|
101 |
+
* Render the notice block.
|
102 |
+
*
|
103 |
+
* @since 5.0.4
|
104 |
+
*
|
105 |
+
* @param string $message Tee message to show.
|
106 |
+
* @param string $type Type of message.
|
107 |
+
* @param string $depends_on Dependency selector.
|
108 |
+
* @param string $condition Dependency condition like 'checked' | 'not-checked' | 'numeric'.
|
109 |
+
*/
|
110 |
+
public function render_notice( $message, $type = 'info', $depends_on = '', $condition = '' ) {
|
111 |
+
$icon = 'dashicons-' . $type;
|
112 |
+
$has_dependency = empty( $depends_on ) ? '' : 'tribe-dependent';
|
113 |
+
$classes = $type . ' ' . $has_dependency;
|
114 |
+
$condition_attr = empty( $condition ) ? '' : 'data-condition-is-' . $condition;
|
115 |
+
?>
|
116 |
+
<div class="ticket-editor-notice <?php echo esc_attr( $classes ); ?>"
|
117 |
+
<?php if ( $depends_on ) { ?>
|
118 |
+
data-depends="<?php echo esc_attr( $depends_on ); ?>"
|
119 |
+
<?php } ?>
|
120 |
+
<?php echo esc_attr( $condition_attr ); ?>
|
121 |
+
>
|
122 |
+
<span class="dashicons <?php echo esc_attr( $icon ); ?>"></span>
|
123 |
+
<span class="message"><?php echo wp_kses_post( $message ); ?></span>
|
124 |
+
</div>
|
125 |
+
<?php
|
126 |
+
}
|
127 |
+
}
|
src/Tribe/Main.php
CHANGED
@@ -8,7 +8,7 @@ class Tribe__Tickets__Main {
|
|
8 |
/**
|
9 |
* Current version of this plugin
|
10 |
*/
|
11 |
-
const VERSION = '5.0.
|
12 |
|
13 |
/**
|
14 |
* Used to store the version history.
|
8 |
/**
|
9 |
* Current version of this plugin
|
10 |
*/
|
11 |
+
const VERSION = '5.0.4';
|
12 |
|
13 |
/**
|
14 |
* Used to store the version history.
|
src/Tribe/Metabox.php
CHANGED
@@ -148,7 +148,7 @@ class Tribe__Tickets__Metabox {
|
|
148 |
}
|
149 |
|
150 |
/**
|
151 |
-
* Get the Panels for a given
|
152 |
*
|
153 |
* @since 4.6.2
|
154 |
*
|
@@ -162,7 +162,7 @@ class Tribe__Tickets__Metabox {
|
|
162 |
$post = get_post( $post );
|
163 |
}
|
164 |
|
165 |
-
// Bail on
|
166 |
if ( ! $post instanceof WP_Post ) {
|
167 |
return [];
|
168 |
}
|
148 |
}
|
149 |
|
150 |
/**
|
151 |
+
* Get the Panels for a given post.
|
152 |
*
|
153 |
* @since 4.6.2
|
154 |
*
|
162 |
$post = get_post( $post );
|
163 |
}
|
164 |
|
165 |
+
// Bail on invalid post.
|
166 |
if ( ! $post instanceof WP_Post ) {
|
167 |
return [];
|
168 |
}
|
src/Tribe/Tickets.php
CHANGED
@@ -694,7 +694,7 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
|
|
694 |
$cache = tribe( 'cache' );
|
695 |
$key = __METHOD__ . '-' . $this->orm_provider . '-' . $post_id;
|
696 |
|
697 |
-
if ( isset( $cache[ $key ] ) ) {
|
698 |
return $cache[ $key ];
|
699 |
}
|
700 |
|
694 |
$cache = tribe( 'cache' );
|
695 |
$key = __METHOD__ . '-' . $this->orm_provider . '-' . $post_id;
|
696 |
|
697 |
+
if ( isset( $cache[ $key ] ) && is_array( $cache[ $key ] ) ) {
|
698 |
return $cache[ $key ];
|
699 |
}
|
700 |
|
src/admin-views/admin-welcome-message.php
CHANGED
@@ -72,21 +72,45 @@ if ( $has_plus ) {
|
|
72 |
<div class="tribe-events-admin-quick-nav__title"><?php esc_html_e( 'Quick Links:', 'event-tickets' ); ?></div>
|
73 |
<ul class="tribe-events-admin-quick-nav__links">
|
74 |
<?php if ( $has_plus && $has_tec ) : // ET+ with TEC. ?>
|
75 |
-
<li class="tribe-events-admin-quick-nav__link-item"
|
76 |
-
|
77 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
<?php elseif ( $has_plus ) : // ET+ without TEC. ?>
|
79 |
-
<li class="tribe-events-admin-quick-nav__link-item"
|
80 |
-
|
81 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
<?php elseif ( $has_tec ) : // ET with TEC. ?>
|
83 |
-
<li class="tribe-events-admin-quick-nav__link-item"
|
84 |
-
|
85 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
<?php else : // ET without TEC. ?>
|
87 |
-
<li class="tribe-events-admin-quick-nav__link-item"
|
88 |
-
|
89 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
90 |
<?php endif; ?>
|
91 |
</ul>
|
92 |
</div>
|
72 |
<div class="tribe-events-admin-quick-nav__title"><?php esc_html_e( 'Quick Links:', 'event-tickets' ); ?></div>
|
73 |
<ul class="tribe-events-admin-quick-nav__links">
|
74 |
<?php if ( $has_plus && $has_tec ) : // ET+ with TEC. ?>
|
75 |
+
<li class="tribe-events-admin-quick-nav__link-item">
|
76 |
+
<a href="edit.php?page=tribe-common&tab=event-tickets&post_type=tribe_events" target="_blank" rel="noopener noreferrer" class="tribe-events-admin-quick-nav__link"><?php esc_html_e( 'Configure Settings', 'event-tickets' ); ?></a>
|
77 |
+
</li>
|
78 |
+
<li class="tribe-events-admin-quick-nav__link-item">
|
79 |
+
<a href="plugin-install.php?tab=plugin-information&plugin=woocommerce&TB_iframe=true" class="tribe-events-admin-quick-nav__link thickbox open-plugin-details-modal"><?php esc_html_e( 'Install WooCommerce', 'event-tickets' ); ?></a>
|
80 |
+
</li>
|
81 |
+
<li class="tribe-events-admin-quick-nav__link-item">
|
82 |
+
<a href="post-new.php?post_type=tribe_events" class="tribe-events-admin-quick-nav__link"><?php esc_html_e( 'Create Ticket', 'event-tickets' ); ?></a>
|
83 |
+
</li>
|
84 |
<?php elseif ( $has_plus ) : // ET+ without TEC. ?>
|
85 |
+
<li class="tribe-events-admin-quick-nav__link-item">
|
86 |
+
<a href="edit.php?page=tribe-common&tab=event-tickets" target="_blank" rel="noopener noreferrer" class="tribe-events-admin-quick-nav__link"><?php esc_html_e( 'Configure Settings', 'event-tickets' ); ?></a>
|
87 |
+
</li>
|
88 |
+
<li class="tribe-events-admin-quick-nav__link-item">
|
89 |
+
<a href="plugin-install.php?tab=plugin-information&plugin=woocommerce&TB_iframe=true" class="tribe-events-admin-quick-nav__link thickbox open-plugin-details-modal"><?php esc_html_e( 'Install WooCommerce', 'event-tickets' ); ?></a>
|
90 |
+
</li>
|
91 |
+
<li class="tribe-events-admin-quick-nav__link-item">
|
92 |
+
<a href="plugin-install.php?tab=plugin-information&plugin=the-events-calendar&TB_iframe=true" class="tribe-events-admin-quick-nav__link thickbox open-plugin-details-modal"><?php esc_html_e( 'Install The Events Calendar', 'event-tickets' ); ?></a>
|
93 |
+
</li>
|
94 |
<?php elseif ( $has_tec ) : // ET with TEC. ?>
|
95 |
+
<li class="tribe-events-admin-quick-nav__link-item">
|
96 |
+
<a href="edit.php?page=tribe-common&tab=event-tickets&post_type=tribe_events" target="_blank" rel="noopener noreferrer" class="tribe-events-admin-quick-nav__link"><?php esc_html_e( 'Configure Settings', 'event-tickets' ); ?></a>
|
97 |
+
</li>
|
98 |
+
<li class="tribe-events-admin-quick-nav__link-item">
|
99 |
+
<a href="post-new.php?post_type=tribe_events" class="tribe-events-admin-quick-nav__link"><?php esc_html_e( 'Create RSVP', 'event-tickets' ); ?></a>
|
100 |
+
</li>
|
101 |
+
<li class="tribe-events-admin-quick-nav__link-item">
|
102 |
+
<a href="https://m.tri.be/1an7" target="_blank" rel="noopener noreferrer" class="tribe-events-admin-quick-nav__link"><?php esc_html_e( 'Setup PayPal', 'event-tickets' ); ?></a>
|
103 |
+
</li>
|
104 |
<?php else : // ET without TEC. ?>
|
105 |
+
<li class="tribe-events-admin-quick-nav__link-item">
|
106 |
+
<a href="edit.php?page=tribe-common&tab=event-tickets" target="_blank" rel="noopener noreferrer" class="tribe-events-admin-quick-nav__link"><?php esc_html_e( 'Configure Settings', 'event-tickets' ); ?></a>
|
107 |
+
</li>
|
108 |
+
<li class="tribe-events-admin-quick-nav__link-item">
|
109 |
+
<a href="plugin-install.php?tab=plugin-information&plugin=the-events-calendar&TB_iframe=true" class="tribe-events-admin-quick-nav__link thickbox open-plugin-details-modal"><?php esc_html_e( 'Install The Events Calendar', 'event-tickets' ); ?></a>
|
110 |
+
</li>
|
111 |
+
<li class="tribe-events-admin-quick-nav__link-item">
|
112 |
+
<a href="https://m.tri.be/1an8" target="_blank" rel="noopener noreferrer" class="tribe-events-admin-quick-nav__link"><?php esc_html_e( 'Setup PayPal', 'event-tickets' ); ?></a>
|
113 |
+
</li>
|
114 |
<?php endif; ?>
|
115 |
</ul>
|
116 |
</div>
|
src/admin-views/editor/fieldset/advanced.php
CHANGED
@@ -15,175 +15,26 @@ if ( ! isset( $ticket_id ) ) {
|
|
15 |
if ( ! empty( $provider ) ) {
|
16 |
$ticket = $provider->get_ticket( $post_id, $ticket_id );
|
17 |
}
|
18 |
-
|
19 |
-
if ( ! empty( $ticket->start_date ) ) {
|
20 |
-
$start_date = Tribe__Date_Utils::date_only( $ticket->start_date, false, $datepicker_format );
|
21 |
-
} else {
|
22 |
-
$start_date = null;
|
23 |
-
}
|
24 |
-
|
25 |
-
if ( ! empty( $ticket->end_date ) ) {
|
26 |
-
$end_date = Tribe__Date_Utils::date_only( $ticket->end_date, false, $datepicker_format );
|
27 |
-
} else {
|
28 |
-
$end_date = null;
|
29 |
-
}
|
30 |
-
}
|
31 |
-
|
32 |
-
$timepicker_step = 30;
|
33 |
-
if ( class_exists( 'Tribe__Events__Main' ) ) {
|
34 |
-
$timepicker_step = (int) tribe( 'tec.admin.event-meta-box' )->get_timepicker_step( 'start' );
|
35 |
}
|
36 |
-
|
37 |
-
$timepicker_round = '00:00:00';
|
38 |
-
|
39 |
-
$start_date_errors = [
|
40 |
-
'is-required' => __( 'Start sale date cannot be empty.', 'event-tickets' ),
|
41 |
-
'is-less-or-equal-to' => __( 'Start sale date cannot be greater than End Sale date', 'event-tickets' ),
|
42 |
-
];
|
43 |
?>
|
44 |
-
<
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
<
|
49 |
-
|
50 |
-
<
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
id="tribe_tickets_show_description"
|
63 |
-
name="ticket_show_description"
|
64 |
-
value="1"
|
65 |
-
class="ticket_field ticket_form_left"
|
66 |
-
<?php checked( true, $ticket ? $ticket->show_description : true ); ?>
|
67 |
-
>
|
68 |
-
<?php
|
69 |
-
echo esc_html( sprintf(
|
70 |
-
__( 'Show description on front end %s form.', 'event-tickets' ),
|
71 |
-
tribe_get_ticket_label_singular_lowercase( 'default_ticket_provider' )
|
72 |
-
) );
|
73 |
-
?>
|
74 |
-
</label>
|
75 |
-
</div>
|
76 |
-
</div>
|
77 |
-
<div class="input_block">
|
78 |
-
<label class="ticket_form_label ticket_form_left" for="ticket_start_date"><?php esc_html_e( 'Start sale:', 'event-tickets' ); ?></label>
|
79 |
-
<div class="ticket_form_right">
|
80 |
-
<input
|
81 |
-
autocomplete="off"
|
82 |
-
type="text"
|
83 |
-
class="tribe-datepicker tribe-field-start_date ticket_field"
|
84 |
-
name="ticket_start_date"
|
85 |
-
id="ticket_start_date"
|
86 |
-
value="<?php echo esc_attr( $ticket ? $start_date : null ); ?>"
|
87 |
-
data-validation-type="datepicker"
|
88 |
-
data-validation-is-less-or-equal-to="#ticket_end_date"
|
89 |
-
data-validation-error="<?php echo esc_attr( json_encode( $start_date_errors ) ) ?>"
|
90 |
-
/>
|
91 |
-
<span class="helper-text hide-if-js"><?php esc_html_e( 'YYYY-MM-DD', 'event-tickets' ) ?></span>
|
92 |
-
<span class="datetime_seperator"> <?php esc_html_e( 'at', 'event-tickets' ); ?> </span>
|
93 |
-
<input
|
94 |
-
autocomplete="off"
|
95 |
-
type="text"
|
96 |
-
class="tribe-timepicker tribe-field-start_time ticket_field"
|
97 |
-
name="ticket_start_time"
|
98 |
-
id="ticket_start_time"
|
99 |
-
<?php echo Tribe__View_Helpers::is_24hr_format() ? 'data-format="H:i"' : '' ?>
|
100 |
-
data-step="<?php echo esc_attr( $timepicker_step ); ?>"
|
101 |
-
data-round="<?php echo esc_attr( $timepicker_round ); ?>"
|
102 |
-
value="<?php echo esc_attr( $ticket ? $ticket->start_time : null ); ?>"
|
103 |
-
aria-label="<?php
|
104 |
-
echo esc_html(
|
105 |
-
sprintf(
|
106 |
-
__( '%s start date', 'event-tickets' ),
|
107 |
-
tribe_get_ticket_label_singular( 'input_start_time_aria_label' )
|
108 |
-
)
|
109 |
-
); ?>"
|
110 |
-
/>
|
111 |
-
<span class="helper-text hide-if-js"><?php esc_html_e( 'HH:MM', 'event-tickets' ) ?></span>
|
112 |
-
<span class="dashicons dashicons-editor-help" title="<?php
|
113 |
-
echo esc_html(
|
114 |
-
sprintf(
|
115 |
-
__( 'If you do not set a start sale date, %s will be available immediately.', 'event-tickets' ),
|
116 |
-
tribe_get_ticket_label_plural_lowercase( 'input_start_time_help_text_title' )
|
117 |
-
)
|
118 |
-
); ?>">
|
119 |
-
</span>
|
120 |
-
</div>
|
121 |
-
</div>
|
122 |
-
<div class="input_block">
|
123 |
-
<label class="ticket_form_label ticket_form_left" for="ticket_end_date"><?php esc_html_e( 'End sale:', 'event-tickets' ); ?></label>
|
124 |
-
<div class="ticket_form_right">
|
125 |
-
<input
|
126 |
-
autocomplete="off"
|
127 |
-
type="text"
|
128 |
-
class="tribe-datepicker tribe-field-end_date ticket_field"
|
129 |
-
name="ticket_end_date"
|
130 |
-
id="ticket_end_date"
|
131 |
-
value="<?php echo esc_attr( $ticket ? $end_date : null ); ?>"
|
132 |
-
/>
|
133 |
-
<span class="helper-text hide-if-js"><?php esc_html_e( 'YYYY-MM-DD', 'event-tickets' ) ?></span>
|
134 |
-
<span class="datetime_seperator"> <?php esc_html_e( 'at', 'event-tickets' ); ?> </span>
|
135 |
-
<input
|
136 |
-
autocomplete="off"
|
137 |
-
type="text"
|
138 |
-
class="tribe-timepicker tribe-field-end_time ticket_field"
|
139 |
-
name="ticket_end_time"
|
140 |
-
id="ticket_end_time"
|
141 |
-
<?php echo Tribe__View_Helpers::is_24hr_format() ? 'data-format="H:i"' : '' ?>
|
142 |
-
data-step="<?php echo esc_attr( $timepicker_step ); ?>"
|
143 |
-
data-round="<?php echo esc_attr( $timepicker_round ); ?>"
|
144 |
-
value="<?php echo esc_attr( $ticket ? $ticket->end_time : null ); ?>"
|
145 |
-
aria-label="<?php
|
146 |
-
echo esc_html(
|
147 |
-
sprintf(
|
148 |
-
__( '%s end date', 'event-tickets' ),
|
149 |
-
tribe_get_ticket_label_singular( 'input_end_time_aria_label' )
|
150 |
-
)
|
151 |
-
); ?>"
|
152 |
-
/>
|
153 |
-
<span class="helper-text hide-if-js"><?php esc_html_e( 'HH:MM', 'event-tickets' ) ?></span>
|
154 |
-
<span
|
155 |
-
class="dashicons dashicons-editor-help"
|
156 |
-
<?php if ( class_exists( 'Tribe__Events__Main' ) && Tribe__Events__Main::POSTTYPE === get_post_type( $post_id ) ) : ?>
|
157 |
-
title="<?php
|
158 |
-
echo esc_html(
|
159 |
-
sprintf(
|
160 |
-
__( 'If you do not set an end sale date, %s will be available until the event begins.', 'event-tickets' ),
|
161 |
-
tribe_get_ticket_label_plural_lowercase( 'input_end_time_help_text_title' )
|
162 |
-
)
|
163 |
-
); ?>"
|
164 |
-
<?php else : ?>
|
165 |
-
title="<?php
|
166 |
-
echo esc_html(
|
167 |
-
sprintf(
|
168 |
-
__( 'If you do not set an end sale date, %s will be available forever.', 'event-tickets' ),
|
169 |
-
tribe_get_ticket_label_plural_lowercase( 'input_end_time_help_text_title' )
|
170 |
-
)
|
171 |
-
); ?>"
|
172 |
-
<?php endif; ?>
|
173 |
-
></span>
|
174 |
</div>
|
175 |
-
</
|
176 |
-
|
177 |
-
<?php
|
178 |
-
/**
|
179 |
-
* Allows for the insertion of additional content into the ticket edit form - advanced section
|
180 |
-
*
|
181 |
-
* @since 4.6
|
182 |
-
*
|
183 |
-
* @param int $post_id Post ID
|
184 |
-
* @param int|null $ticket_id Ticket ID
|
185 |
-
*/
|
186 |
-
do_action( 'tribe_events_tickets_metabox_edit_advanced', $post_id, $ticket_id );
|
187 |
-
?>
|
188 |
-
</div>
|
189 |
-
</section><!-- #ticket_form_advanced -->
|
15 |
if ( ! empty( $provider ) ) {
|
16 |
$ticket = $provider->get_ticket( $post_id, $ticket_id );
|
17 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
?>
|
20 |
+
<div class="tribe-dependent" data-depends="#Tribe__Tickets__RSVP_radio" data-condition-is-not-checked>
|
21 |
+
<button class="accordion-header tribe_advanced_meta">
|
22 |
+
<?php esc_html_e( 'Advanced', 'event-tickets' ); ?>
|
23 |
+
</button>
|
24 |
+
<section id="ticket_form_advanced" class="advanced accordion-content" data-datepicker_format="<?php echo esc_attr( Tribe__Date_Utils::get_datepicker_format_index() ); ?>">
|
25 |
+
<h4 class="accordion-label screen_reader_text"><?php esc_html_e( 'Advanced Settings', 'event-tickets' ); ?></h4>
|
26 |
+
<div id="advanced_fields">
|
27 |
+
<?php
|
28 |
+
/**
|
29 |
+
* Allows for the insertion of additional content into the ticket edit form - advanced section
|
30 |
+
*
|
31 |
+
* @since 4.6
|
32 |
+
*
|
33 |
+
* @param int $post_id Post ID
|
34 |
+
* @param int|null $ticket_id Ticket ID
|
35 |
+
*/
|
36 |
+
do_action( 'tribe_events_tickets_metabox_edit_advanced', $post_id, $ticket_id );
|
37 |
+
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
</div>
|
39 |
+
</section><!-- #ticket_form_advanced -->
|
40 |
+
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/admin-views/editor/fieldset/settings-provider.php
CHANGED
@@ -1,32 +1,30 @@
|
|
1 |
<?php
|
2 |
$post_id = get_the_ID();
|
3 |
|
4 |
-
|
5 |
-
|
6 |
-
$modules = Tribe__Tickets__Tickets::modules();
|
7 |
|
8 |
-
|
|
|
9 |
|
10 |
-
$
|
11 |
|
12 |
-
// We don't need this one here - RSVP and tickets are different now.
|
13 |
-
unset( $modules['Tribe__Tickets__RSVP'] );
|
14 |
-
|
15 |
-
$multiple_modules = 1 < count( $modules );
|
16 |
// We use 'screen-reader-text' to hide it if there really aren't any choices.
|
17 |
-
$fieldset_class = $
|
|
|
|
|
18 |
?>
|
19 |
|
20 |
<?php if ( tribe_is_truthy( tribe_get_request_var( 'is_admin', true ) ) ) : ?>
|
21 |
<fieldset class="<?php echo esc_attr( $fieldset_class ); ?>">
|
22 |
-
<?php if ( ! $
|
23 |
-
<?php foreach ( $
|
24 |
<input
|
25 |
type="radio"
|
26 |
class="tribe-ticket-editor-field-default_provider settings_field"
|
27 |
name="tribe-tickets[settings][default_provider]"
|
28 |
-
id="provider_<?php echo esc_attr( $class . '_radio' ); ?>"
|
29 |
-
value="<?php echo esc_attr( $class ); ?>"
|
30 |
checked
|
31 |
>
|
32 |
<?php endforeach; ?>
|
@@ -53,14 +51,14 @@ $fieldset_class = $multiple_modules ? 'input_block' : 'screen-reader-text';
|
|
53 |
) );
|
54 |
?></em>
|
55 |
</p>
|
56 |
-
<?php foreach ( $
|
57 |
-
<label class="ticket_form_right" for="provider_<?php echo esc_attr( $class . '_radio' ); ?>">
|
58 |
<input
|
59 |
-
<?php checked( $default_module_class, $class ); ?>
|
60 |
type="radio"
|
61 |
name="tribe-tickets[settings][default_provider]"
|
62 |
-
id="provider_<?php echo esc_attr( $class . '_radio' ); ?>"
|
63 |
-
value="<?php echo esc_attr( $class ); ?>"
|
64 |
class="tribe-ticket-editor-field-default_provider settings_field ticket_field"
|
65 |
aria-labelledby="default_ticket_provider_legend"
|
66 |
>
|
@@ -72,7 +70,7 @@ $fieldset_class = $multiple_modules ? 'input_block' : 'screen-reader-text';
|
|
72 |
*
|
73 |
* @param string $module - the name of the module
|
74 |
*/
|
75 |
-
echo apply_filters( 'tribe_events_tickets_module_name',
|
76 |
?>
|
77 |
</label>
|
78 |
<?php endforeach; ?>
|
1 |
<?php
|
2 |
$post_id = get_the_ID();
|
3 |
|
4 |
+
/** @var Tribe__Tickets__Editor__Configuration $editor_config */
|
5 |
+
$editor_config = tribe( 'tickets.editor.configuration' );
|
|
|
6 |
|
7 |
+
// Get list of providers (excluding RSVP).
|
8 |
+
$active_providers = $editor_config->get_providers();
|
9 |
|
10 |
+
$multiple_providers = 1 < count( $active_providers );
|
11 |
|
|
|
|
|
|
|
|
|
12 |
// We use 'screen-reader-text' to hide it if there really aren't any choices.
|
13 |
+
$fieldset_class = $multiple_providers ? 'input_block' : 'screen-reader-text';
|
14 |
+
|
15 |
+
$default_module_class = (string) Tribe__Tickets__Tickets::get_event_ticket_provider( $post_id );
|
16 |
?>
|
17 |
|
18 |
<?php if ( tribe_is_truthy( tribe_get_request_var( 'is_admin', true ) ) ) : ?>
|
19 |
<fieldset class="<?php echo esc_attr( $fieldset_class ); ?>">
|
20 |
+
<?php if ( ! $multiple_providers ) : ?>
|
21 |
+
<?php foreach ( $active_providers as $active_provider ) : ?>
|
22 |
<input
|
23 |
type="radio"
|
24 |
class="tribe-ticket-editor-field-default_provider settings_field"
|
25 |
name="tribe-tickets[settings][default_provider]"
|
26 |
+
id="provider_<?php echo esc_attr( $active_provider['class'] . '_radio' ); ?>"
|
27 |
+
value="<?php echo esc_attr( $active_provider['class'] ); ?>"
|
28 |
checked
|
29 |
>
|
30 |
<?php endforeach; ?>
|
51 |
) );
|
52 |
?></em>
|
53 |
</p>
|
54 |
+
<?php foreach ( $active_providers as $active_provider ) : ?>
|
55 |
+
<label class="ticket_form_right" for="provider_<?php echo esc_attr( $active_provider['class'] . '_radio' ); ?>">
|
56 |
<input
|
57 |
+
<?php checked( $default_module_class, $active_provider['class'] ); ?>
|
58 |
type="radio"
|
59 |
name="tribe-tickets[settings][default_provider]"
|
60 |
+
id="provider_<?php echo esc_attr( $active_provider['class'] . '_radio' ); ?>"
|
61 |
+
value="<?php echo esc_attr( $active_provider['class'] ); ?>"
|
62 |
class="tribe-ticket-editor-field-default_provider settings_field ticket_field"
|
63 |
aria-labelledby="default_ticket_provider_legend"
|
64 |
>
|
70 |
*
|
71 |
* @param string $module - the name of the module
|
72 |
*/
|
73 |
+
echo esc_html( apply_filters( 'tribe_events_tickets_module_name', $active_provider['name'] ) );
|
74 |
?>
|
75 |
</label>
|
76 |
<?php endforeach; ?>
|
src/admin-views/editor/panel/ticket.php
CHANGED
@@ -9,6 +9,8 @@ $provider = null;
|
|
9 |
$provider_class = null;
|
10 |
$ticket = null;
|
11 |
|
|
|
|
|
12 |
if ( ! isset( $ticket_id ) ) {
|
13 |
$ticket_id = null;
|
14 |
|
@@ -23,11 +25,121 @@ if ( ! isset( $ticket_id ) ) {
|
|
23 |
|
24 |
$ticket = $provider->get_ticket( $post_id, $ticket_id );
|
25 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
}
|
27 |
|
28 |
$modules = Tribe__Tickets__Tickets::modules();
|
29 |
|
30 |
$default_module_class = empty( $default_module ) ? '' : $default_module->class_name;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
?>
|
32 |
|
33 |
<div id="tribe_panel_edit" class="ticket_panel panel_edit tribe-validation" aria-hidden="true" data-default-provider="<?php echo esc_attr( $default_module_class ); ?>">
|
@@ -59,9 +171,16 @@ $default_module_class = empty( $default_module ) ? '' : $default_module->class_n
|
|
59 |
<?php
|
60 |
echo esc_html(
|
61 |
sprintf(
|
62 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
)
|
64 |
-
);
|
|
|
65 |
</h4>
|
66 |
<h4
|
67 |
id="ticket_title_edit"
|
@@ -72,7 +191,12 @@ $default_module_class = empty( $default_module ) ? '' : $default_module->class_n
|
|
72 |
<?php
|
73 |
echo esc_html(
|
74 |
sprintf(
|
75 |
-
|
|
|
|
|
|
|
|
|
|
|
76 |
tribe_get_ticket_label_singular_lowercase( 'admin_edit_ticket_panel_heading' )
|
77 |
)
|
78 |
); ?>
|
@@ -92,10 +216,16 @@ $default_module_class = empty( $default_module ) ? '' : $default_module->class_n
|
|
92 |
<?php
|
93 |
echo esc_html(
|
94 |
sprintf(
|
95 |
-
|
|
|
|
|
|
|
|
|
|
|
96 |
tribe_get_rsvp_label_singular( 'admin_add_new_ticket_panel_heading' )
|
97 |
)
|
98 |
-
);
|
|
|
99 |
</h4>
|
100 |
<h4
|
101 |
id="rsvp_title_edit"
|
@@ -106,10 +236,16 @@ $default_module_class = empty( $default_module ) ? '' : $default_module->class_n
|
|
106 |
<?php
|
107 |
echo esc_html(
|
108 |
sprintf(
|
109 |
-
|
|
|
|
|
|
|
|
|
|
|
110 |
tribe_get_rsvp_label_singular( 'admin_edit_ticket_panel_heading' )
|
111 |
)
|
112 |
-
);
|
|
|
113 |
</h4>
|
114 |
</div>
|
115 |
<section id="ticket_form_main" class="main">
|
@@ -121,9 +257,9 @@ $default_module_class = empty( $default_module ) ? '' : $default_module->class_n
|
|
121 |
name='ticket_name'
|
122 |
class="ticket_field ticket_form_right"
|
123 |
size='25'
|
124 |
-
value="<?php echo esc_attr( $
|
125 |
data-validation-is-required
|
126 |
-
data-validation-error="<?php echo esc_attr(
|
127 |
/>
|
128 |
<span
|
129 |
class="tribe_soft_note ticket_form_right"
|
@@ -132,11 +268,16 @@ $default_module_class = empty( $default_module ) ? '' : $default_module->class_n
|
|
132 |
><?php
|
133 |
echo esc_html(
|
134 |
sprintf(
|
135 |
-
|
136 |
-
|
137 |
-
|
|
|
|
|
|
|
|
|
138 |
)
|
139 |
-
);
|
|
|
140 |
</span>
|
141 |
<span
|
142 |
class="tribe_soft_note ticket_form_right"
|
@@ -145,14 +286,127 @@ $default_module_class = empty( $default_module ) ? '' : $default_module->class_n
|
|
145 |
><?php
|
146 |
echo esc_html(
|
147 |
sprintf(
|
148 |
-
|
149 |
-
|
150 |
-
|
|
|
|
|
|
|
|
|
151 |
)
|
152 |
-
);
|
|
|
153 |
</span>
|
154 |
</div>
|
155 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
156 |
<legend class="ticket_form_label"><?php esc_html_e( 'Sell using:', 'event-tickets' ); ?></legend>
|
157 |
<?php foreach ( $modules as $class => $module ) : ?>
|
158 |
<input
|
@@ -189,7 +443,6 @@ $default_module_class = empty( $default_module ) ? '' : $default_module->class_n
|
|
189 |
*/
|
190 |
do_action( 'tribe_events_tickets_metabox_edit_main', $post_id, $ticket_id ); ?>
|
191 |
</section>
|
192 |
-
|
193 |
<div class="accordion">
|
194 |
<?php
|
195 |
/** @var Tribe__Tickets__Admin__Views $admin_views */
|
@@ -240,7 +493,7 @@ $default_module_class = empty( $default_module ) ? '' : $default_module->class_n
|
|
240 |
id="ticket_form_save"
|
241 |
class="button-primary tribe-dependent tribe-validation-submit"
|
242 |
name="ticket_form_save"
|
243 |
-
value="<?php echo esc_attr(
|
244 |
data-depends="#Tribe__Tickets__RSVP_radio"
|
245 |
data-condition-is-not-checked
|
246 |
/>
|
@@ -249,7 +502,7 @@ $default_module_class = empty( $default_module ) ? '' : $default_module->class_n
|
|
249 |
id="rsvp_form_save"
|
250 |
class="button-primary tribe-dependent tribe-validation-submit"
|
251 |
name="ticket_form_save"
|
252 |
-
value="<?php echo esc_attr(
|
253 |
data-depends="#Tribe__Tickets__RSVP_radio"
|
254 |
data-condition-is-checked
|
255 |
/>
|
9 |
$provider_class = null;
|
10 |
$ticket = null;
|
11 |
|
12 |
+
$datepicker_format = Tribe__Date_Utils::datepicker_formats( Tribe__Date_Utils::get_datepicker_format_index() );
|
13 |
+
|
14 |
if ( ! isset( $ticket_id ) ) {
|
15 |
$ticket_id = null;
|
16 |
|
25 |
|
26 |
$ticket = $provider->get_ticket( $post_id, $ticket_id );
|
27 |
}
|
28 |
+
|
29 |
+
if ( ! empty( $ticket->start_date ) ) {
|
30 |
+
$start_date = Tribe__Date_Utils::date_only( $ticket->start_date, false, $datepicker_format );
|
31 |
+
} else {
|
32 |
+
$start_date = null;
|
33 |
+
}
|
34 |
+
|
35 |
+
if ( ! empty( $ticket->end_date ) ) {
|
36 |
+
$end_date = Tribe__Date_Utils::date_only( $ticket->end_date, false, $datepicker_format );
|
37 |
+
} else {
|
38 |
+
$end_date = null;
|
39 |
+
}
|
40 |
}
|
41 |
|
42 |
$modules = Tribe__Tickets__Tickets::modules();
|
43 |
|
44 |
$default_module_class = empty( $default_module ) ? '' : $default_module->class_name;
|
45 |
+
|
46 |
+
$timepicker_step = 30;
|
47 |
+
|
48 |
+
if ( class_exists( 'Tribe__Events__Main' ) ) {
|
49 |
+
$timepicker_step = (int) tribe( 'tec.admin.event-meta-box' )->get_timepicker_step( 'start' );
|
50 |
+
}
|
51 |
+
|
52 |
+
$timepicker_round = '00:00:00';
|
53 |
+
|
54 |
+
$start_date_errors = [
|
55 |
+
'is-required' => __( 'Start sale date cannot be empty.', 'event-tickets' ),
|
56 |
+
'is-less-or-equal-to' => __( 'Start sale date cannot be greater than End Sale date', 'event-tickets' ),
|
57 |
+
];
|
58 |
+
|
59 |
+
$ticket_name = $ticket ? $ticket->name : '';
|
60 |
+
$ticket_description = $ticket ? $ticket->description : '';
|
61 |
+
$ticket_start_time = $ticket ? $ticket->start_time : '';
|
62 |
+
$ticket_end_time = $ticket ? $ticket->end_time : '';
|
63 |
+
|
64 |
+
$msg_rsvp_type_required = sprintf(
|
65 |
+
// Translators: %s: dynamic 'RSVP' text.
|
66 |
+
_x(
|
67 |
+
'%s type is a required field',
|
68 |
+
'admin edit ticket panel error',
|
69 |
+
'event-tickets'
|
70 |
+
),
|
71 |
+
tribe_get_rsvp_label_singular( 'admin_edit_ticket_panel_error' )
|
72 |
+
);
|
73 |
+
|
74 |
+
$msg_ticket_start_time_aria = sprintf(
|
75 |
+
// Translators: %s: dynamic 'Ticket' text.
|
76 |
+
_x(
|
77 |
+
'%s start date',
|
78 |
+
'input start time ARIA label',
|
79 |
+
'event-tickets'
|
80 |
+
),
|
81 |
+
tribe_get_ticket_label_singular( 'input_start_time_aria_label' )
|
82 |
+
);
|
83 |
+
|
84 |
+
$msg_ticket_start_date = sprintf(
|
85 |
+
// Translators: %s: dynamic 'tickets' text.
|
86 |
+
_x(
|
87 |
+
'If you do not set a start sale date, %s will be available immediately.',
|
88 |
+
'input start time help text title',
|
89 |
+
'event-tickets'
|
90 |
+
),
|
91 |
+
tribe_get_ticket_label_plural_lowercase( 'input_start_time_help_text_title' )
|
92 |
+
);
|
93 |
+
|
94 |
+
$msg_ticket_end_date_aria = sprintf(
|
95 |
+
// Translators: %s: dynamic 'Ticket' text.
|
96 |
+
_x(
|
97 |
+
'%s end date',
|
98 |
+
'input end time ARIA label',
|
99 |
+
'event-tickets'
|
100 |
+
),
|
101 |
+
tribe_get_ticket_label_singular( 'input_end_time_aria_label' )
|
102 |
+
);
|
103 |
+
|
104 |
+
$msg_ticket_end_date_title_if_tec = sprintf(
|
105 |
+
// Translators: %s: dynamic 'tickets' text.
|
106 |
+
_x(
|
107 |
+
'If you do not set an end sale date, %s will be available until the event begins.',
|
108 |
+
'input end time help text title',
|
109 |
+
'event-tickets'
|
110 |
+
),
|
111 |
+
tribe_get_ticket_label_plural_lowercase( 'input_end_time_help_text_title' )
|
112 |
+
);
|
113 |
+
|
114 |
+
$msg_ticket_end_date_title_if_not_tec = sprintf(
|
115 |
+
// Translators: %s: dynamic 'tickets' text.
|
116 |
+
_x(
|
117 |
+
'If you do not set an end sale date, %s will be available forever.',
|
118 |
+
'input end time help text title',
|
119 |
+
'event-tickets'
|
120 |
+
),
|
121 |
+
tribe_get_ticket_label_plural_lowercase( 'input_end_time_help_text_title' )
|
122 |
+
);
|
123 |
+
|
124 |
+
$msg_ticket_form_save = sprintf(
|
125 |
+
// Translators: %s: dynamic 'tickets' text.
|
126 |
+
_x(
|
127 |
+
'Save %s',
|
128 |
+
'meta box ticket form button text',
|
129 |
+
'event-tickets'
|
130 |
+
),
|
131 |
+
tribe_get_ticket_label_singular_lowercase( 'meta_box_ticket_form_button_text' )
|
132 |
+
);
|
133 |
+
|
134 |
+
$msg_rsvp_form_save = sprintf(
|
135 |
+
// Translators: %s: dynamic 'RSVP' text.
|
136 |
+
_x(
|
137 |
+
'Save %s',
|
138 |
+
'RSVP form save value',
|
139 |
+
'event-tickets'
|
140 |
+
),
|
141 |
+
tribe_get_rsvp_label_singular( 'form_save_value' )
|
142 |
+
);
|
143 |
?>
|
144 |
|
145 |
<div id="tribe_panel_edit" class="ticket_panel panel_edit tribe-validation" aria-hidden="true" data-default-provider="<?php echo esc_attr( $default_module_class ); ?>">
|
171 |
<?php
|
172 |
echo esc_html(
|
173 |
sprintf(
|
174 |
+
// Translators: %s: dynamic 'ticket' text.
|
175 |
+
_x(
|
176 |
+
'Add new %s',
|
177 |
+
'admin add new ticket panel heading',
|
178 |
+
'event-tickets'
|
179 |
+
),
|
180 |
+
tribe_get_ticket_label_singular_lowercase( 'admin_add_new_ticket_panel_heading' )
|
181 |
)
|
182 |
+
);
|
183 |
+
?>
|
184 |
</h4>
|
185 |
<h4
|
186 |
id="ticket_title_edit"
|
191 |
<?php
|
192 |
echo esc_html(
|
193 |
sprintf(
|
194 |
+
// Translators: %s: dynamic 'ticket' text.
|
195 |
+
_x(
|
196 |
+
'Edit %s',
|
197 |
+
'admin edit ticket panel heading',
|
198 |
+
'event-tickets'
|
199 |
+
),
|
200 |
tribe_get_ticket_label_singular_lowercase( 'admin_edit_ticket_panel_heading' )
|
201 |
)
|
202 |
); ?>
|
216 |
<?php
|
217 |
echo esc_html(
|
218 |
sprintf(
|
219 |
+
// Translators: %s: dynamic 'RSVP' text.
|
220 |
+
_x(
|
221 |
+
'Add new %s',
|
222 |
+
'admin add new ticket panel heading',
|
223 |
+
'event-tickets'
|
224 |
+
),
|
225 |
tribe_get_rsvp_label_singular( 'admin_add_new_ticket_panel_heading' )
|
226 |
)
|
227 |
+
);
|
228 |
+
?>
|
229 |
</h4>
|
230 |
<h4
|
231 |
id="rsvp_title_edit"
|
236 |
<?php
|
237 |
echo esc_html(
|
238 |
sprintf(
|
239 |
+
// Translators: %s: dynamic 'RSVP' text.
|
240 |
+
_x(
|
241 |
+
'Edit %s',
|
242 |
+
'admin edit ticket panel heading',
|
243 |
+
'event-tickets'
|
244 |
+
),
|
245 |
tribe_get_rsvp_label_singular( 'admin_edit_ticket_panel_heading' )
|
246 |
)
|
247 |
+
);
|
248 |
+
?>
|
249 |
</h4>
|
250 |
</div>
|
251 |
<section id="ticket_form_main" class="main">
|
257 |
name='ticket_name'
|
258 |
class="ticket_field ticket_form_right"
|
259 |
size='25'
|
260 |
+
value="<?php echo esc_attr( $ticket_name ); ?>"
|
261 |
data-validation-is-required
|
262 |
+
data-validation-error="<?php echo esc_attr( $msg_rsvp_type_required ); ?>"
|
263 |
/>
|
264 |
<span
|
265 |
class="tribe_soft_note ticket_form_right"
|
268 |
><?php
|
269 |
echo esc_html(
|
270 |
sprintf(
|
271 |
+
// Translators: %1$s: dynamic 'ticket' text.
|
272 |
+
_x(
|
273 |
+
'This is the name of your %1$s. It is displayed on the frontend of your website and within %1$s emails.',
|
274 |
+
'admin edit ticket panel note',
|
275 |
+
'event-tickets'
|
276 |
+
),
|
277 |
+
tribe_get_ticket_label_singular_lowercase( 'admin_edit_ticket_panel_note' )
|
278 |
)
|
279 |
+
);
|
280 |
+
?>
|
281 |
</span>
|
282 |
<span
|
283 |
class="tribe_soft_note ticket_form_right"
|
286 |
><?php
|
287 |
echo esc_html(
|
288 |
sprintf(
|
289 |
+
// Translators: %1$s: dynamic 'RSVP' text.
|
290 |
+
_x(
|
291 |
+
'This is the name of your %1$s. It is displayed on the frontend of your website and within %1$s emails.',
|
292 |
+
'admin edit RSVP panel note',
|
293 |
+
'event-tickets'
|
294 |
+
),
|
295 |
+
tribe_get_rsvp_label_singular( 'admin_edit_rsvp_panel_note' )
|
296 |
)
|
297 |
+
);
|
298 |
+
?>
|
299 |
</span>
|
300 |
</div>
|
301 |
+
<div class="input_block">
|
302 |
+
<label class="ticket_form_label ticket_form_left" for="ticket_description"><?php esc_html_e( 'Description:', 'event-tickets' ); ?></label>
|
303 |
+
<textarea
|
304 |
+
rows="5"
|
305 |
+
cols="40"
|
306 |
+
name="ticket_description"
|
307 |
+
class="ticket_field ticket_form_right"
|
308 |
+
id="ticket_description"
|
309 |
+
><?php echo esc_textarea( $ticket_description ); ?></textarea>
|
310 |
+
<div class="input_block">
|
311 |
+
<label class="tribe_soft_note">
|
312 |
+
<input
|
313 |
+
type="checkbox"
|
314 |
+
id="tribe_tickets_show_description"
|
315 |
+
name="ticket_show_description"
|
316 |
+
value="1"
|
317 |
+
class="ticket_field ticket_form_left"
|
318 |
+
<?php checked( true, $ticket ? $ticket->show_description : true ); ?>
|
319 |
+
>
|
320 |
+
<?php
|
321 |
+
echo esc_html(
|
322 |
+
sprintf(
|
323 |
+
// Translators: %s: dynamic 'tickets' text.
|
324 |
+
_x(
|
325 |
+
'Show description on frontend %s form.',
|
326 |
+
'default ticket provider',
|
327 |
+
'event-tickets'
|
328 |
+
),
|
329 |
+
tribe_get_ticket_label_singular_lowercase( 'default_ticket_provider' )
|
330 |
+
)
|
331 |
+
);
|
332 |
+
?>
|
333 |
+
</label>
|
334 |
+
</div>
|
335 |
+
</div>
|
336 |
+
<div class="input_block">
|
337 |
+
<label class="ticket_form_label ticket_form_left" for="ticket_start_date"><?php esc_html_e( 'Start sale:', 'event-tickets' ); ?></label>
|
338 |
+
<div class="ticket_form_right">
|
339 |
+
<input
|
340 |
+
autocomplete="off"
|
341 |
+
type="text"
|
342 |
+
class="tribe-datepicker tribe-field-start_date ticket_field"
|
343 |
+
name="ticket_start_date"
|
344 |
+
id="ticket_start_date"
|
345 |
+
value="<?php echo esc_attr( $ticket ? $start_date : null ); ?>"
|
346 |
+
data-validation-type="datepicker"
|
347 |
+
data-validation-is-less-or-equal-to="#ticket_end_date"
|
348 |
+
data-validation-error="<?php echo esc_attr( wp_json_encode( $start_date_errors ) ); ?>"
|
349 |
+
/>
|
350 |
+
<span class="helper-text hide-if-js"><?php esc_html_e( 'YYYY-MM-DD', 'event-tickets' ); ?></span>
|
351 |
+
<span class="datetime_seperator"> <?php esc_html_e( 'at', 'event-tickets' ); ?> </span>
|
352 |
+
<input
|
353 |
+
autocomplete="off"
|
354 |
+
type="text"
|
355 |
+
class="tribe-timepicker tribe-field-start_time ticket_field"
|
356 |
+
name="ticket_start_time"
|
357 |
+
id="ticket_start_time"
|
358 |
+
<?php echo Tribe__View_Helpers::is_24hr_format() ? 'data-format="H:i"' : ''; ?>
|
359 |
+
data-step="<?php echo esc_attr( $timepicker_step ); ?>"
|
360 |
+
data-round="<?php echo esc_attr( $timepicker_round ); ?>"
|
361 |
+
value="<?php echo esc_attr( $ticket_start_time ); ?>"
|
362 |
+
aria-label="<?php echo esc_attr( $msg_ticket_start_time_aria ); ?>"
|
363 |
+
/>
|
364 |
+
<span class="helper-text hide-if-js"><?php esc_html_e( 'HH:MM', 'event-tickets' ); ?></span>
|
365 |
+
<span class="dashicons dashicons-editor-help" title="<?php echo esc_attr( $msg_ticket_start_date ); ?>">
|
366 |
+
</span>
|
367 |
+
</div>
|
368 |
+
</div>
|
369 |
+
<div class="input_block">
|
370 |
+
<label class="ticket_form_label ticket_form_left" for="ticket_end_date"><?php esc_html_e( 'End sale:', 'event-tickets' ); ?></label>
|
371 |
+
<div class="ticket_form_right">
|
372 |
+
<input
|
373 |
+
autocomplete="off"
|
374 |
+
type="text"
|
375 |
+
class="tribe-datepicker tribe-field-end_date ticket_field"
|
376 |
+
name="ticket_end_date"
|
377 |
+
id="ticket_end_date"
|
378 |
+
value="<?php echo esc_attr( $ticket ? $end_date : null ); ?>"
|
379 |
+
/>
|
380 |
+
<span class="helper-text hide-if-js"><?php esc_html_e( 'YYYY-MM-DD', 'event-tickets' ); ?></span>
|
381 |
+
<span class="datetime_seperator"> <?php esc_html_e( 'at', 'event-tickets' ); ?> </span>
|
382 |
+
<input
|
383 |
+
autocomplete="off"
|
384 |
+
type="text"
|
385 |
+
class="tribe-timepicker tribe-field-end_time ticket_field"
|
386 |
+
name="ticket_end_time"
|
387 |
+
id="ticket_end_time"
|
388 |
+
<?php echo Tribe__View_Helpers::is_24hr_format() ? 'data-format="H:i"' : ''; ?>
|
389 |
+
data-step="<?php echo esc_attr( $timepicker_step ); ?>"
|
390 |
+
data-round="<?php echo esc_attr( $timepicker_round ); ?>"
|
391 |
+
value="<?php echo esc_attr( $ticket_end_time ); ?>"
|
392 |
+
aria-label="<?php echo esc_attr( $msg_ticket_end_date_aria ); ?>"
|
393 |
+
/>
|
394 |
+
<span class="helper-text hide-if-js"><?php esc_html_e( 'HH:MM', 'event-tickets' ); ?></span>
|
395 |
+
<span class="dashicons dashicons-editor-help"
|
396 |
+
<?php
|
397 |
+
if (
|
398 |
+
class_exists( 'Tribe__Events__Main' )
|
399 |
+
&& Tribe__Events__Main::POSTTYPE === get_post_type( $post_id )
|
400 |
+
) :
|
401 |
+
?>
|
402 |
+
title="<?php echo esc_attr( $msg_ticket_end_date_title_if_tec ); ?>"
|
403 |
+
<?php else : ?>
|
404 |
+
title="<?php echo esc_attr( $msg_ticket_end_date_title_if_not_tec ); ?>"
|
405 |
+
<?php endif; ?>
|
406 |
+
></span>
|
407 |
+
</div>
|
408 |
+
</div>
|
409 |
+
<fieldset id="tribe_ticket_provider_wrapper" class="input_block" aria-hidden="true">
|
410 |
<legend class="ticket_form_label"><?php esc_html_e( 'Sell using:', 'event-tickets' ); ?></legend>
|
411 |
<?php foreach ( $modules as $class => $module ) : ?>
|
412 |
<input
|
443 |
*/
|
444 |
do_action( 'tribe_events_tickets_metabox_edit_main', $post_id, $ticket_id ); ?>
|
445 |
</section>
|
|
|
446 |
<div class="accordion">
|
447 |
<?php
|
448 |
/** @var Tribe__Tickets__Admin__Views $admin_views */
|
493 |
id="ticket_form_save"
|
494 |
class="button-primary tribe-dependent tribe-validation-submit"
|
495 |
name="ticket_form_save"
|
496 |
+
value="<?php echo esc_attr( $msg_ticket_form_save ); ?>"
|
497 |
data-depends="#Tribe__Tickets__RSVP_radio"
|
498 |
data-condition-is-not-checked
|
499 |
/>
|
502 |
id="rsvp_form_save"
|
503 |
class="button-primary tribe-dependent tribe-validation-submit"
|
504 |
name="ticket_form_save"
|
505 |
+
value="<?php echo esc_attr( $msg_rsvp_form_save ); ?>"
|
506 |
data-depends="#Tribe__Tickets__RSVP_radio"
|
507 |
data-condition-is-checked
|
508 |
/>
|
src/admin-views/tribe-options-tickets.php
CHANGED
@@ -60,7 +60,17 @@ $tickets_fields = [
|
|
60 |
],
|
61 |
'ticket-enabled-post-types' => [
|
62 |
'type' => 'checkbox_list',
|
63 |
-
'label' => esc_html(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
// only set the default to tribe_events if the ticket-enabled-post-types index has never been saved
|
65 |
'default' => array_key_exists( 'ticket-enabled-post-types', $options ) ? false : 'tribe_events',
|
66 |
'options' => $all_post_types,
|
60 |
],
|
61 |
'ticket-enabled-post-types' => [
|
62 |
'type' => 'checkbox_list',
|
63 |
+
'label' => esc_html(
|
64 |
+
sprintf(
|
65 |
+
// Translators: %s: dynamic "tickets" text.
|
66 |
+
_x(
|
67 |
+
'Post types that can have %s',
|
68 |
+
'tickets fields settings enabled post types',
|
69 |
+
'event-tickets'
|
70 |
+
),
|
71 |
+
tribe_get_ticket_label_plural_lowercase( 'tickets_fields_settings_enabled_post_types' )
|
72 |
+
)
|
73 |
+
),
|
74 |
// only set the default to tribe_events if the ticket-enabled-post-types index has never been saved
|
75 |
'default' => array_key_exists( 'ticket-enabled-post-types', $options ) ? false : 'tribe_events',
|
76 |
'options' => $all_post_types,
|
src/modules/blocks/attendees/index.js
CHANGED
@@ -29,6 +29,7 @@ export default {
|
|
29 |
|
30 |
supports: {
|
31 |
html: false,
|
|
|
32 |
},
|
33 |
|
34 |
attributes: {
|
29 |
|
30 |
supports: {
|
31 |
html: false,
|
32 |
+
customClassName: false,
|
33 |
},
|
34 |
|
35 |
attributes: {
|
src/modules/blocks/rsvp/index.js
CHANGED
@@ -31,6 +31,7 @@ export default {
|
|
31 |
supports: {
|
32 |
html: false,
|
33 |
multiple: false,
|
|
|
34 |
},
|
35 |
|
36 |
attributes: {
|
31 |
supports: {
|
32 |
html: false,
|
33 |
multiple: false,
|
34 |
+
customClassName: false,
|
35 |
},
|
36 |
|
37 |
attributes: {
|
src/modules/blocks/ticket/index.js
CHANGED
@@ -22,6 +22,7 @@ export default {
|
|
22 |
|
23 |
supports: {
|
24 |
html: false,
|
|
|
25 |
},
|
26 |
|
27 |
attributes: {
|
22 |
|
23 |
supports: {
|
24 |
html: false,
|
25 |
+
customClassName: false,
|
26 |
},
|
27 |
|
28 |
attributes: {
|
src/modules/blocks/tickets/controls/template.js
CHANGED
@@ -23,7 +23,7 @@ const message = __(
|
|
23 |
);
|
24 |
|
25 |
const note = __(
|
26 |
-
'Note: adjusting this setting will only impact new tickets. Existing tickets will not change. We highly recommend that all tickets for one event use the same ecommerce plugin',
|
27 |
'event-tickets',
|
28 |
);
|
29 |
|
23 |
);
|
24 |
|
25 |
const note = __(
|
26 |
+
'Note: adjusting this setting will only impact new tickets. Existing tickets will not change. We highly recommend that all tickets for one event use the same ecommerce plugin.',
|
27 |
'event-tickets',
|
28 |
);
|
29 |
|
src/modules/blocks/tickets/index.js
CHANGED
@@ -31,6 +31,7 @@ export default {
|
|
31 |
supports: {
|
32 |
html: false,
|
33 |
multiple: false,
|
|
|
34 |
},
|
35 |
|
36 |
attributes: {
|
31 |
supports: {
|
32 |
html: false,
|
33 |
multiple: false,
|
34 |
+
customClassName: false,
|
35 |
},
|
36 |
|
37 |
attributes: {
|
src/modules/data/blocks/rsvp/reducers/details.js
CHANGED
@@ -11,7 +11,9 @@ import { globals, moment as momentUtil } from '@moderntribe/common/utils';
|
|
11 |
|
12 |
const datePickerFormat = globals.tecDateSettings().datepickerFormat;
|
13 |
const currentMoment = moment();
|
14 |
-
const
|
|
|
|
|
15 |
|
16 |
const startDateInput = datePickerFormat
|
17 |
? currentMoment.format( momentUtil.toFormat( datePickerFormat ) )
|
11 |
|
12 |
const datePickerFormat = globals.tecDateSettings().datepickerFormat;
|
13 |
const currentMoment = moment();
|
14 |
+
const bufferDuration = globals.tickets().end_sale_buffer_duration ? globals.tickets().end_sale_buffer_duration : 2;
|
15 |
+
const bufferYears = globals.tickets().end_sale_buffer_years ? globals.tickets().end_sale_buffer_years : 1;
|
16 |
+
const endMoment = currentMoment.clone().add( bufferDuration, 'hours' ).add( bufferYears, 'years' );
|
17 |
|
18 |
const startDateInput = datePickerFormat
|
19 |
? currentMoment.format( momentUtil.toFormat( datePickerFormat ) )
|
src/modules/data/blocks/rsvp/sagas.js
CHANGED
@@ -626,7 +626,6 @@ export function* setNonEventPostTypeEndDate() {
|
|
626 |
|
627 |
const tempEndMoment = yield select( selectors.getRSVPTempEndDateMoment );
|
628 |
const endMoment = yield call( [ tempEndMoment, 'clone' ] );
|
629 |
-
yield call( [ endMoment, 'add' ], 100, 'years' );
|
630 |
const { date, dateInput, moment, time } = yield call( createDates, endMoment.toDate() );
|
631 |
|
632 |
yield all( [
|
626 |
|
627 |
const tempEndMoment = yield select( selectors.getRSVPTempEndDateMoment );
|
628 |
const endMoment = yield call( [ tempEndMoment, 'clone' ] );
|
|
|
629 |
const { date, dateInput, moment, time } = yield call( createDates, endMoment.toDate() );
|
630 |
|
631 |
yield all( [
|
src/modules/data/blocks/ticket/reducers/tickets/ticket/details.js
CHANGED
@@ -12,7 +12,9 @@ import { globals, moment as momentUtil } from '@moderntribe/common/utils';
|
|
12 |
|
13 |
const datePickerFormat = globals.tecDateSettings().datepickerFormat;
|
14 |
const currentMoment = moment();
|
15 |
-
const
|
|
|
|
|
16 |
|
17 |
const startDateInput = datePickerFormat
|
18 |
? currentMoment.format( momentUtil.toFormat( datePickerFormat ) )
|
12 |
|
13 |
const datePickerFormat = globals.tecDateSettings().datepickerFormat;
|
14 |
const currentMoment = moment();
|
15 |
+
const bufferDuration = globals.tickets().end_sale_buffer_duration ? globals.tickets().end_sale_buffer_duration : 2;
|
16 |
+
const bufferYears = globals.tickets().end_sale_buffer_years ? globals.tickets().end_sale_buffer_years : 1;
|
17 |
+
const endMoment = currentMoment.clone().add( bufferDuration, 'hours' ).add( bufferYears, 'years' );
|
18 |
|
19 |
const startDateInput = datePickerFormat
|
20 |
? currentMoment.format( momentUtil.toFormat( datePickerFormat ) )
|
src/modules/data/blocks/ticket/reducers/tickets/ticket/temp-details.js
CHANGED
@@ -12,7 +12,9 @@ import { globals, moment as momentUtil } from '@moderntribe/common/utils';
|
|
12 |
|
13 |
const datePickerFormat = globals.tecDateSettings().datepickerFormat;
|
14 |
const currentMoment = moment();
|
15 |
-
const
|
|
|
|
|
16 |
|
17 |
const startDateInput = datePickerFormat
|
18 |
? currentMoment.format( momentUtil.toFormat( datePickerFormat ) )
|
12 |
|
13 |
const datePickerFormat = globals.tecDateSettings().datepickerFormat;
|
14 |
const currentMoment = moment();
|
15 |
+
const bufferDuration = globals.tickets().end_sale_buffer_duration ? globals.tickets().end_sale_buffer_duration : 2;
|
16 |
+
const bufferYears = globals.tickets().end_sale_buffer_years ? globals.tickets().end_sale_buffer_years : 1;
|
17 |
+
const endMoment = currentMoment.clone().add( bufferDuration, 'hours' ).add( bufferYears, 'years' );
|
18 |
|
19 |
const startDateInput = datePickerFormat
|
20 |
? currentMoment.format( momentUtil.toFormat( datePickerFormat ) )
|
src/resources/css/tickets-admin.css
CHANGED
@@ -725,10 +725,6 @@
|
|
725 |
margin-right: 5px;
|
726 |
}
|
727 |
|
728 |
-
#ticket_form span.datetime_seperator {
|
729 |
-
margin-left: 10px;
|
730 |
-
}
|
731 |
-
|
732 |
.ticket_list h4 {
|
733 |
border-bottom: 1px solid #e5e5e5;
|
734 |
padding-bottom: 6px;
|
@@ -1253,6 +1249,37 @@ p.description {
|
|
1253 |
margin-right: 0;
|
1254 |
}
|
1255 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1256 |
@media (min-width: 768px) {
|
1257 |
|
1258 |
.tribe-common-c-loader.tribe-tickets-loader__tickets-block,
|
725 |
margin-right: 5px;
|
726 |
}
|
727 |
|
|
|
|
|
|
|
|
|
728 |
.ticket_list h4 {
|
729 |
border-bottom: 1px solid #e5e5e5;
|
730 |
padding-bottom: 6px;
|
1249 |
margin-right: 0;
|
1250 |
}
|
1251 |
|
1252 |
+
.ticket-editor-notice {
|
1253 |
+
padding: 10px;
|
1254 |
+
margin-bottom: 10px;
|
1255 |
+
font-size: 13px;
|
1256 |
+
border-radius: 4px;
|
1257 |
+
display: flex;
|
1258 |
+
}
|
1259 |
+
|
1260 |
+
.ticket-editor-notice.info {
|
1261 |
+
background-color: #EDF6FC;
|
1262 |
+
}
|
1263 |
+
|
1264 |
+
.ticket-editor-notice.info .dashicons {
|
1265 |
+
color: #2A709D;
|
1266 |
+
}
|
1267 |
+
|
1268 |
+
.ticket-editor-notice.tribe-dependent {
|
1269 |
+
display: none;
|
1270 |
+
}
|
1271 |
+
|
1272 |
+
.ticket-editor-notice.tribe-dependent.tribe-active {
|
1273 |
+
display: flex;
|
1274 |
+
}
|
1275 |
+
|
1276 |
+
.ticket-editor-notice .dashicons {
|
1277 |
+
font-size: 20px;
|
1278 |
+
width: 20px;
|
1279 |
+
height: 20px;
|
1280 |
+
margin-right: 2px;
|
1281 |
+
}
|
1282 |
+
|
1283 |
@media (min-width: 768px) {
|
1284 |
|
1285 |
.tribe-common-c-loader.tribe-tickets-loader__tickets-block,
|
src/resources/css/tickets-admin.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.accordion-header{background:none;border:0;color:inherit;cursor:pointer;font-size:12px;font-weight:700;padding:10px 20px;box-sizing:border-box;position:relative;text-align:left;width:100%}.accordion-header:before{background-color:#000;border-radius:100%;box-sizing:border-box;color:#fff;content:"\f132";font-family:dashicons;font-size:10px;line-height:17px;font-weight:400;height:14px;left:0;padding:0;position:absolute;top:12px;width:15px;text-align:center;padding-right:1px}.accordion-header:after{content:"";border-bottom:1px solid #ddd;position:absolute;right:0;width:80%;top:50%;transform:translateY(-50%)}.accordion-header.is-active:before{content:"\f460";line-height:15px}.accordion-header:focus{outline:1px solid #5b9dd9}.accordion-header:hover{background:none}.tribe-tickets-editor-history:after{width:calc(100% - 80px)}.tribe_attendee_meta:after{width:calc(100% - 170px)}.tribe_advanced_meta:after{width:calc(100% - 105px)}.accordion-label:focus{outline:none}.accordion-content{display:none}.ticket_panel .accordion-content{margin:1em 0 2em}.accordion-content.is-active{display:block}.tribe-common-c-loader.tribe-tickets-loader__modal,.tribe-common-c-loader.tribe-tickets-loader__tickets-block{align-items:center;background:hsla(0,0%,100%,.6);display:flex;height:100%;justify-content:center;left:0;padding:0;position:absolute;top:0;width:100%;z-index:100}.tribe-common-c-loader.tribe-tickets-loader__modal{height:100vh;position:fixed;width:100vw}.event-tickets .tribe-common-c-loader{align-items:center;background:hsla(0,0%,100%,.6);display:flex;height:100%;justify-content:center;left:0;padding:0;position:absolute;top:0;width:100%;z-index:100}.tribe-common .tribe-tickets__notice{padding:16px;background-color:#f7f6f6;border-radius:4px;margin:20px 0}.tribe-common .tribe-tickets__notice>:last-child{padding-bottom:0;margin-bottom:0}.tribe-common .tribe-tickets-notice__title{margin:0;position:relative}.tribe-common .tribe-tickets-notice__title:empty{display:none}.tribe-common .tribe-tickets__notice--error{background-color:rgba(218,57,77,.08);display:none;padding-left:50px}.tribe-common .tribe-tickets__notice--error .tribe-tickets-notice__title{position:relative}.tribe-common .tribe-tickets__notice--error .tribe-tickets-notice__title:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18'%3E%3Cg fill='none' fill-rule='evenodd' transform='translate(1 1)'%3E%3Ccircle cx='8' cy='8' r='7.467' stroke='%23141827' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'/%3E%3Ccircle cx='8' cy='11.733' r='1.067' fill='%23141827' fill-rule='nonzero'/%3E%3Cpath stroke='%23141827' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M8 3.733v4.8' fill='%23141827'/%3E%3C/g%3E%3C/svg%3E");background-size:contain;content:"";height:16px;left:-32px;position:absolute;top:2px;width:16px}.tribe-common .tribe-tickets__notice--barred{background-color:#fff;border:4px solid #e4e4e4;border-bottom:0;border-radius:0;border-top:0;padding:0 12px}.tribe-common .tribe-tickets__notice--barred-left{border-right:0;padding:0 0 0 12px}.tribe-common .tribe-tickets__notice--barred-right{border-left:0;padding:0 12px 0 0}.event-tickets .tribe-tickets-svgicon{background-repeat:no-repeat;background-size:contain}.tooltipster-base.tribe-tickets-tooltip-theme{background-color:#fff;border:1px solid #d5d5d5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.14);height:auto!important;padding:24px;max-width:254px}.tooltipster-base.tribe-tickets-tooltip-theme .tooltipster-box{background-color:transparent;border:0;border-radius:0;box-shadow:none;margin:0}.tooltipster-base.tribe-tickets-tooltip-theme .tooltipster-box .tooltipster-content{color:#141827;overflow:inherit;padding:0;word-break:break-word}.tooltipster-base.tribe-tickets-tooltip-theme .tooltipster-arrow{display:none}.tribe-common a.tribe-common-c-btn--small,.tribe-common button.tribe-common-c-btn--small,.tribe-common input[type=button].tribe-common-c-btn--small,.tribe-common input[type=submit].tribe-common-c-btn--small{background-color:#334aff;padding:11px 14px;width:auto}.tribe-common a.tribe-common-c-btn-link,.tribe-common button.tribe-common-c-btn-link,.tribe-common input[type=button].tribe-common-c-btn-link,.tribe-common input[type=submit].tribe-common-c-btn-link{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto;text-align:center;text-decoration:underline;transition:color .2s ease}.tribe-common a.tribe-common-c-btn-link:focus,.tribe-common a.tribe-common-c-btn-link:hover,.tribe-common button.tribe-common-c-btn-link:focus,.tribe-common button.tribe-common-c-btn-link:hover,.tribe-common input[type=button].tribe-common-c-btn-link:focus,.tribe-common input[type=button].tribe-common-c-btn-link:hover,.tribe-common input[type=submit].tribe-common-c-btn-link:focus,.tribe-common input[type=submit].tribe-common-c-btn-link:hover{background-color:transparent}.tribe-common a.tribe-common-c-btn-link,.tribe-common button.tribe-common-c-btn-link,.tribe-common input[type=button].tribe-common-c-btn-link,.tribe-common input[type=submit].tribe-common-c-btn-link{background-color:transparent;color:#334aff;padding:11px 20px;width:100%}.tribe-common a.tribe-common-c-btn-link:focus,.tribe-common a.tribe-common-c-btn-link:hover,.tribe-common button.tribe-common-c-btn-link:focus,.tribe-common button.tribe-common-c-btn-link:hover,.tribe-common input[type=button].tribe-common-c-btn-link:focus,.tribe-common input[type=button].tribe-common-c-btn-link:hover,.tribe-common input[type=submit].tribe-common-c-btn-link:focus,.tribe-common input[type=submit].tribe-common-c-btn-link:hover{color:rgba(51,74,255,.8)}.tribe-common a.tribe-common-c-btn-link:active,.tribe-common button.tribe-common-c-btn-link:active,.tribe-common input[type=button].tribe-common-c-btn-link:active,.tribe-common input[type=submit].tribe-common-c-btn-link:active{color:rgba(51,74,255,.9)}.tribe-common a.tribe-common-c-btn-link:disabled,.tribe-common button.tribe-common-c-btn-link:disabled,.tribe-common input[type=button].tribe-common-c-btn-link:disabled,.tribe-common input[type=submit].tribe-common-c-btn-link:disabled{color:rgba(51,74,255,.07)}.tribe-tickets-column-attendees-link{display:inline-block}#ticket_form input[type=radio]{margin-right:5px}#ticket_form span.datetime_seperator{margin-left:10px}.ticket_list h4{border-bottom:1px solid #e5e5e5;padding-bottom:6px;text-transform:uppercase}.ticket_list h4 a{font-size:11px;font-weight:400;text-transform:none}.ticket_list tr:hover td div.ticket_controls{visibility:visible}.ticket_list tr td{padding:10px;vertical-align:middle}.ticket_list tr td div.ticket_controls{visibility:hidden}.ticket_name p:first-child{font-weight:700}#tribe_ticket_header_preview img{height:auto!important;max-width:95%!important}#tribe_ticket_header_remove,.ticket_time{display:none}.tribe-tickets-remaining{font-size:10px}.eventtable{margin:0;padding-top:0;width:100%}#event_tickets,.eventtable.ticket_list.eventForm{table-layout:fixed}.tribe-strong-label{font-weight:700}.tribe-theme-twentyfifteen .tribe-events-tickets input[type=number]{padding:.375em;width:100%}.screen_reader_text{clip:rect(0 0 0 0);clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}#poststuff .inside{margin-top:12px}.tribe-tickets-editor-blocker{background:hsla(0,0%,100%,.7);bottom:0;display:none;left:0;position:absolute;right:0;top:0;z-index:100000}.tribe-tickets-editor-blocker .spinner{left:50%;margin-left:-10px;margin-top:-10px;position:absolute;top:50%;z-index:100404}.tribe-tickets-editor-history-list{margin-left:20px}#event_tickets{position:relative}#event_tickets fieldset{border:0;padding:0;margin:0 0 1em}#event_tickets .ticket_form_left{font-weight:700}#event_tickets label{font-weight:400}#event_tickets input[type=color].ticket_form_right,#event_tickets input[type=date].ticket_form_right,#event_tickets input[type=datetime-local].ticket_form_right,#event_tickets input[type=datetime].ticket_form_right,#event_tickets input[type=email].ticket_form_right,#event_tickets input[type=month].ticket_form_right,#event_tickets input[type=number].ticket_form_right,#event_tickets input[type=password].ticket_form_right,#event_tickets input[type=range].ticket_form_right,#event_tickets input[type=search].ticket_form_right,#event_tickets input[type=tel].ticket_form_right,#event_tickets input[type=text].ticket_form_right,#event_tickets input[type=time].ticket_form_right,#event_tickets input[type=url].ticket_form_right,#event_tickets input[type=week].ticket_form_right,#event_tickets label.ticket_form_right,#event_tickets textarea.ticket_form_right{display:block}#event_tickets .tribe-description-small{font-size:.95em;margin-top:5px;color:#888}.ticket_panel{border:1px solid #a3a3a3;border-radius:5px;box-sizing:border-box;opacity:1;position:relative;padding:8px;visibility:visible;width:100%;will-change:transform}.ticket_panel[aria-hidden=true]{opacity:0;position:absolute;visibility:hidden}.ticket_panel section{margin:2em 0}.ticket_panel #tribe-tickets-image{margin-top:.5em}.ticket_panel.panel_base{border:0;padding:.5em 0 0}.ticket_panel.panel_edit{border:0}.ticket_panel.panel_settings h4{margin:0}.ticket_panel.panel_settings .settings_main{margin-bottom:0;margin-top:0}.ticket_panel.panel_settings .settings_main p{font-size:inherit}.ticket_panel h4,.ticket_title{text-transform:uppercase}.ticket_title{margin-top:0}.ticket_list_container{margin-bottom:20px}.tribe_no_capacity{margin:0}.ticket_delete{color:#a00}.ticket_delete:hover{color:#dc3232}#settings_form_toggle{margin-top:1em}.global_capacity-wrapper{margin-bottom:1em}.global_capacity_edit_button{background:none;border:0;color:#ccc;cursor:pointer;padding:0}.tribe-button-icon:before{font-family:dashicons;font-size:1.25em;left:-.25em;position:relative;vertical-align:middle}.tribe-button-icon .tribe-hidden{display:none}.tribe-button-icon.tribe-button-icon-plus:before{content:"\f132"}.tribe-button-icon.tribe-button-icon-edit:before{content:"\f464"}.tribe-button-icon.tribe-button-icon-settings:before{content:"\f111";top:-2px}.tribe-tickets-image-preview{margin-top:2em;max-width:200px}#tribe_ticket_header_image{margin-right:2em;vertical-align:baseline}#tribe_tickets_image_preview_filename{display:none;font-weight:700}#tribe_tickets_image_preview_filename.-active{display:inline}#tribe_tickets_image_preview_filename .dashicons{vertical-align:text-bottom}#tribe_tickets_image_preview_filename .filename{margin-left:.5em}.ticket_table_intro .button-secondary{float:right;margin-bottom:15px;margin-left:5px}.ticket_table_intro #ticket_form_total_capacity{display:inline-block;line-height:28px;position:relative}.ticket_table_intro #ticket_form_total_capacity .tooltip{background-color:#efefef;border-radius:3px;border:1px solid #a3a3a3;display:none;margin-left:.5em;padding:.5em;position:absolute;top:50%;transform:translateY(-50%);z-index:1}.ticket_table_intro #ticket_form_total_capacity:hover .tooltip{display:block}.ticket_table_intro #ticket_form_total_capacity .tooltip{left:100%;top:53%;white-space:nowrap}.input_block{margin-bottom:1em;position:relative}.input_block .ticket_form_left{display:block;box-sizing:border-box;float:left;margin:0;padding-left:0;padding-right:1em}.input_block input,.input_block textarea{max-width:calc(100% - 132px)}.input_block .ticket_field.hasDatepicker{border-radius:3px;font-size:13px;margin-bottom:0}.input_block .input_block,.input_block .ticket_form_right{display:block;margin-top:0}.input_block .input_block:last-child,.input_block .ticket_form_right:last-child{margin-bottom:0}.input_block .input_block{margin-top:1em}.input_block legend+.input_block{margin-top:0}.input_block .tribe_stock_block{padding-left:calc(20px + .4em)}.input_block .tribe_stock_block.tribe-active{padding-top:1em}.input_block label.ticket_form_right{margin-bottom:1em}.input_block .tribe_block_label{display:block}.input_block .ticket_stock_total{color:#666;font-style:italic;margin-left:1em}#ticket_form .input_block .ticket_stock_total_value{margin-right:0}.input_block .tribe-timepicker{width:6em}#tribe_ticket_provider_wrapper{clip:rect(0 0 0 0);clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}#event_tickets{font-size:12px}h4.ticket_form_title{font-size:1.2em;margin-top:0}#ticket_form input[type=checkbox],#ticket_form input[type=radio]{margin-right:.4em}.tribe_soft_note,p.description{color:#a3a3a3;font-size:inherit;font-style:normal}#ticket_form .ticket_advanced.history._show span:first-child,#ticket_form .ticket_advanced.history .toggle-history span:nth-child(2),#ticket_form .ticket_advanced.history ul{display:none}#ticket_form .ticket_advanced.history._show span:nth-child(2){display:inline}#ticket_form .ticket_advanced.history._show ul{display:block}.ticket_bottom{margin-top:1em}.tribe_preview{cursor:pointer}#ticket_form .tooltip_container{position:relative}#ticket_form .tooltip_container .tooltip{border-radius:3px;border:1px solid #a3a3a3;display:none;margin-left:.5em;padding:.5em;position:absolute;top:50%;transform:translateY(-50%);z-index:1}#ticket_form .tooltip_container:hover .tooltip{display:block}#ticket_form .tooltip_container{display:inline;vertical-align:middle}#ticket_form .tooltip_container .tooltip{background-color:#efefef;left:100%;margin:0;width:200px}#settings_global_capacity_edit{background-color:#fff;border:1px solid #b4b9be;float:left;font-size:inherit;margin-right:10px}#settings_global_capacity_edit:disabled{background-color:transparent;border:0;box-shadow:none;color:#555}#settings_global_capacity_edit:enabled{margin-right:7px}#ticket_form .original_stock_cap span{margin-right:0}@media (min-width:768px){.event-tickets .tribe-common-c-loader,.tribe-common-c-loader.tribe-tickets-loader__modal,.tribe-common-c-loader.tribe-tickets-loader__tickets-block{padding:0}.tribe-common a.tribe-common-c-btn-link,.tribe-common button.tribe-common-c-btn-link,.tribe-common input[type=button].tribe-common-c-btn-link,.tribe-common input[type=submit].tribe-common-c-btn-link{background-color:transparent;width:auto}}@media (min-width:782px){.ticket_panel{padding:16px}.input_block .input_block,.input_block .ticket_form_right{margin-left:132px}#ticket_bottom_right{float:right}}@media (min-width:400px){#settings_form_toggle{float:right;margin-top:0}}@media screen and (max-width:520px){.ticket_table_intro #ticket_form_total_capacity{width:100%}}@media screen and (max-width:782px){.ticket_table_intro #ticket_form_total_capacity .tooltip{left:auto;margin-top:5px;position:relative;top:auto;transform:none;width:100%}.input_block .ticket_form_left{float:none;display:inline-block;padding:0 0 6px}.input_block .tribe_stock_block{padding-left:36px}.input_block .tribe_stock_block.tribe-active{padding-top:5px}#ticket_form .tooltip_container .tooltip{left:auto;margin-top:5px;position:relative;top:auto;transform:none;width:100%}}@media (max-width:782px){#ticket_bottom_right{margin-top:1em}}@media screen and (max-width:390px){#ticket_form .tooltip_container{display:none}}
|
1 |
+
.accordion-header{background:none;border:0;color:inherit;cursor:pointer;font-size:12px;font-weight:700;padding:10px 20px;box-sizing:border-box;position:relative;text-align:left;width:100%}.accordion-header:before{background-color:#000;border-radius:100%;box-sizing:border-box;color:#fff;content:"\f132";font-family:dashicons;font-size:10px;line-height:17px;font-weight:400;height:14px;left:0;padding:0;position:absolute;top:12px;width:15px;text-align:center;padding-right:1px}.accordion-header:after{content:"";border-bottom:1px solid #ddd;position:absolute;right:0;width:80%;top:50%;transform:translateY(-50%)}.accordion-header.is-active:before{content:"\f460";line-height:15px}.accordion-header:focus{outline:1px solid #5b9dd9}.accordion-header:hover{background:none}.tribe-tickets-editor-history:after{width:calc(100% - 80px)}.tribe_attendee_meta:after{width:calc(100% - 170px)}.tribe_advanced_meta:after{width:calc(100% - 105px)}.accordion-label:focus{outline:none}.accordion-content{display:none}.ticket_panel .accordion-content{margin:1em 0 2em}.accordion-content.is-active{display:block}.tribe-common-c-loader.tribe-tickets-loader__modal,.tribe-common-c-loader.tribe-tickets-loader__tickets-block{align-items:center;background:hsla(0,0%,100%,.6);display:flex;height:100%;justify-content:center;left:0;padding:0;position:absolute;top:0;width:100%;z-index:100}.tribe-common-c-loader.tribe-tickets-loader__modal{height:100vh;position:fixed;width:100vw}.event-tickets .tribe-common-c-loader{align-items:center;background:hsla(0,0%,100%,.6);display:flex;height:100%;justify-content:center;left:0;padding:0;position:absolute;top:0;width:100%;z-index:100}.tribe-common .tribe-tickets__notice{padding:16px;background-color:#f7f6f6;border-radius:4px;margin:20px 0}.tribe-common .tribe-tickets__notice>:last-child{padding-bottom:0;margin-bottom:0}.tribe-common .tribe-tickets-notice__title{margin:0;position:relative}.tribe-common .tribe-tickets-notice__title:empty{display:none}.tribe-common .tribe-tickets__notice--error{background-color:rgba(218,57,77,.08);display:none;padding-left:50px}.tribe-common .tribe-tickets__notice--error .tribe-tickets-notice__title{position:relative}.tribe-common .tribe-tickets__notice--error .tribe-tickets-notice__title:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18'%3E%3Cg fill='none' fill-rule='evenodd' transform='translate(1 1)'%3E%3Ccircle cx='8' cy='8' r='7.467' stroke='%23141827' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'/%3E%3Ccircle cx='8' cy='11.733' r='1.067' fill='%23141827' fill-rule='nonzero'/%3E%3Cpath stroke='%23141827' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M8 3.733v4.8' fill='%23141827'/%3E%3C/g%3E%3C/svg%3E");background-size:contain;content:"";height:16px;left:-32px;position:absolute;top:2px;width:16px}.tribe-common .tribe-tickets__notice--barred{background-color:#fff;border:4px solid #e4e4e4;border-bottom:0;border-radius:0;border-top:0;padding:0 12px}.tribe-common .tribe-tickets__notice--barred-left{border-right:0;padding:0 0 0 12px}.tribe-common .tribe-tickets__notice--barred-right{border-left:0;padding:0 12px 0 0}.event-tickets .tribe-tickets-svgicon{background-repeat:no-repeat;background-size:contain}.tooltipster-base.tribe-tickets-tooltip-theme{background-color:#fff;border:1px solid #d5d5d5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.14);height:auto!important;padding:24px;max-width:254px}.tooltipster-base.tribe-tickets-tooltip-theme .tooltipster-box{background-color:transparent;border:0;border-radius:0;box-shadow:none;margin:0}.tooltipster-base.tribe-tickets-tooltip-theme .tooltipster-box .tooltipster-content{color:#141827;overflow:inherit;padding:0;word-break:break-word}.tooltipster-base.tribe-tickets-tooltip-theme .tooltipster-arrow{display:none}.tribe-common a.tribe-common-c-btn--small,.tribe-common button.tribe-common-c-btn--small,.tribe-common input[type=button].tribe-common-c-btn--small,.tribe-common input[type=submit].tribe-common-c-btn--small{background-color:#334aff;padding:11px 14px;width:auto}.tribe-common a.tribe-common-c-btn-link,.tribe-common button.tribe-common-c-btn-link,.tribe-common input[type=button].tribe-common-c-btn-link,.tribe-common input[type=submit].tribe-common-c-btn-link{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto;text-align:center;text-decoration:underline;transition:color .2s ease}.tribe-common a.tribe-common-c-btn-link:focus,.tribe-common a.tribe-common-c-btn-link:hover,.tribe-common button.tribe-common-c-btn-link:focus,.tribe-common button.tribe-common-c-btn-link:hover,.tribe-common input[type=button].tribe-common-c-btn-link:focus,.tribe-common input[type=button].tribe-common-c-btn-link:hover,.tribe-common input[type=submit].tribe-common-c-btn-link:focus,.tribe-common input[type=submit].tribe-common-c-btn-link:hover{background-color:transparent}.tribe-common a.tribe-common-c-btn-link,.tribe-common button.tribe-common-c-btn-link,.tribe-common input[type=button].tribe-common-c-btn-link,.tribe-common input[type=submit].tribe-common-c-btn-link{background-color:transparent;color:#334aff;padding:11px 20px;width:100%}.tribe-common a.tribe-common-c-btn-link:focus,.tribe-common a.tribe-common-c-btn-link:hover,.tribe-common button.tribe-common-c-btn-link:focus,.tribe-common button.tribe-common-c-btn-link:hover,.tribe-common input[type=button].tribe-common-c-btn-link:focus,.tribe-common input[type=button].tribe-common-c-btn-link:hover,.tribe-common input[type=submit].tribe-common-c-btn-link:focus,.tribe-common input[type=submit].tribe-common-c-btn-link:hover{color:rgba(51,74,255,.8)}.tribe-common a.tribe-common-c-btn-link:active,.tribe-common button.tribe-common-c-btn-link:active,.tribe-common input[type=button].tribe-common-c-btn-link:active,.tribe-common input[type=submit].tribe-common-c-btn-link:active{color:rgba(51,74,255,.9)}.tribe-common a.tribe-common-c-btn-link:disabled,.tribe-common button.tribe-common-c-btn-link:disabled,.tribe-common input[type=button].tribe-common-c-btn-link:disabled,.tribe-common input[type=submit].tribe-common-c-btn-link:disabled{color:rgba(51,74,255,.07)}.tribe-tickets-column-attendees-link{display:inline-block}#ticket_form input[type=radio]{margin-right:5px}.ticket_list h4{border-bottom:1px solid #e5e5e5;padding-bottom:6px;text-transform:uppercase}.ticket_list h4 a{font-size:11px;font-weight:400;text-transform:none}.ticket_list tr:hover td div.ticket_controls{visibility:visible}.ticket_list tr td{padding:10px;vertical-align:middle}.ticket_list tr td div.ticket_controls{visibility:hidden}.ticket_name p:first-child{font-weight:700}#tribe_ticket_header_preview img{height:auto!important;max-width:95%!important}#tribe_ticket_header_remove,.ticket_time{display:none}.tribe-tickets-remaining{font-size:10px}.eventtable{margin:0;padding-top:0;width:100%}#event_tickets,.eventtable.ticket_list.eventForm{table-layout:fixed}.tribe-strong-label{font-weight:700}.tribe-theme-twentyfifteen .tribe-events-tickets input[type=number]{padding:.375em;width:100%}.screen_reader_text{clip:rect(0 0 0 0);clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}#poststuff .inside{margin-top:12px}.tribe-tickets-editor-blocker{background:hsla(0,0%,100%,.7);bottom:0;display:none;left:0;position:absolute;right:0;top:0;z-index:100000}.tribe-tickets-editor-blocker .spinner{left:50%;margin-left:-10px;margin-top:-10px;position:absolute;top:50%;z-index:100404}.tribe-tickets-editor-history-list{margin-left:20px}#event_tickets{position:relative}#event_tickets fieldset{border:0;padding:0;margin:0 0 1em}#event_tickets .ticket_form_left{font-weight:700}#event_tickets label{font-weight:400}#event_tickets input[type=color].ticket_form_right,#event_tickets input[type=date].ticket_form_right,#event_tickets input[type=datetime-local].ticket_form_right,#event_tickets input[type=datetime].ticket_form_right,#event_tickets input[type=email].ticket_form_right,#event_tickets input[type=month].ticket_form_right,#event_tickets input[type=number].ticket_form_right,#event_tickets input[type=password].ticket_form_right,#event_tickets input[type=range].ticket_form_right,#event_tickets input[type=search].ticket_form_right,#event_tickets input[type=tel].ticket_form_right,#event_tickets input[type=text].ticket_form_right,#event_tickets input[type=time].ticket_form_right,#event_tickets input[type=url].ticket_form_right,#event_tickets input[type=week].ticket_form_right,#event_tickets label.ticket_form_right,#event_tickets textarea.ticket_form_right{display:block}#event_tickets .tribe-description-small{font-size:.95em;margin-top:5px;color:#888}.ticket_panel{border:1px solid #a3a3a3;border-radius:5px;box-sizing:border-box;opacity:1;position:relative;padding:8px;visibility:visible;width:100%;will-change:transform}.ticket_panel[aria-hidden=true]{opacity:0;position:absolute;visibility:hidden}.ticket_panel section{margin:2em 0}.ticket_panel #tribe-tickets-image{margin-top:.5em}.ticket_panel.panel_base{border:0;padding:.5em 0 0}.ticket_panel.panel_edit{border:0}.ticket_panel.panel_settings h4{margin:0}.ticket_panel.panel_settings .settings_main{margin-bottom:0;margin-top:0}.ticket_panel.panel_settings .settings_main p{font-size:inherit}.ticket_panel h4,.ticket_title{text-transform:uppercase}.ticket_title{margin-top:0}.ticket_list_container{margin-bottom:20px}.tribe_no_capacity{margin:0}.ticket_delete{color:#a00}.ticket_delete:hover{color:#dc3232}#settings_form_toggle{margin-top:1em}.global_capacity-wrapper{margin-bottom:1em}.global_capacity_edit_button{background:none;border:0;color:#ccc;cursor:pointer;padding:0}.tribe-button-icon:before{font-family:dashicons;font-size:1.25em;left:-.25em;position:relative;vertical-align:middle}.tribe-button-icon .tribe-hidden{display:none}.tribe-button-icon.tribe-button-icon-plus:before{content:"\f132"}.tribe-button-icon.tribe-button-icon-edit:before{content:"\f464"}.tribe-button-icon.tribe-button-icon-settings:before{content:"\f111";top:-2px}.tribe-tickets-image-preview{margin-top:2em;max-width:200px}#tribe_ticket_header_image{margin-right:2em;vertical-align:baseline}#tribe_tickets_image_preview_filename{display:none;font-weight:700}#tribe_tickets_image_preview_filename.-active{display:inline}#tribe_tickets_image_preview_filename .dashicons{vertical-align:text-bottom}#tribe_tickets_image_preview_filename .filename{margin-left:.5em}.ticket_table_intro .button-secondary{float:right;margin-bottom:15px;margin-left:5px}.ticket_table_intro #ticket_form_total_capacity{display:inline-block;line-height:28px;position:relative}.ticket_table_intro #ticket_form_total_capacity .tooltip{background-color:#efefef;border-radius:3px;border:1px solid #a3a3a3;display:none;margin-left:.5em;padding:.5em;position:absolute;top:50%;transform:translateY(-50%);z-index:1}.ticket_table_intro #ticket_form_total_capacity:hover .tooltip{display:block}.ticket_table_intro #ticket_form_total_capacity .tooltip{left:100%;top:53%;white-space:nowrap}.input_block{margin-bottom:1em;position:relative}.input_block .ticket_form_left{display:block;box-sizing:border-box;float:left;margin:0;padding-left:0;padding-right:1em}.input_block input,.input_block textarea{max-width:calc(100% - 132px)}.input_block .ticket_field.hasDatepicker{border-radius:3px;font-size:13px;margin-bottom:0}.input_block .input_block,.input_block .ticket_form_right{display:block;margin-top:0}.input_block .input_block:last-child,.input_block .ticket_form_right:last-child{margin-bottom:0}.input_block .input_block{margin-top:1em}.input_block legend+.input_block{margin-top:0}.input_block .tribe_stock_block{padding-left:calc(20px + .4em)}.input_block .tribe_stock_block.tribe-active{padding-top:1em}.input_block label.ticket_form_right{margin-bottom:1em}.input_block .tribe_block_label{display:block}.input_block .ticket_stock_total{color:#666;font-style:italic;margin-left:1em}#ticket_form .input_block .ticket_stock_total_value{margin-right:0}.input_block .tribe-timepicker{width:6em}#tribe_ticket_provider_wrapper{clip:rect(0 0 0 0);clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}#event_tickets{font-size:12px}h4.ticket_form_title{font-size:1.2em;margin-top:0}#ticket_form input[type=checkbox],#ticket_form input[type=radio]{margin-right:.4em}.tribe_soft_note,p.description{color:#a3a3a3;font-size:inherit;font-style:normal}#ticket_form .ticket_advanced.history._show span:first-child,#ticket_form .ticket_advanced.history .toggle-history span:nth-child(2),#ticket_form .ticket_advanced.history ul{display:none}#ticket_form .ticket_advanced.history._show span:nth-child(2){display:inline}#ticket_form .ticket_advanced.history._show ul{display:block}.ticket_bottom{margin-top:1em}.tribe_preview{cursor:pointer}#ticket_form .tooltip_container{position:relative}#ticket_form .tooltip_container .tooltip{border-radius:3px;border:1px solid #a3a3a3;display:none;margin-left:.5em;padding:.5em;position:absolute;top:50%;transform:translateY(-50%);z-index:1}#ticket_form .tooltip_container:hover .tooltip{display:block}#ticket_form .tooltip_container{display:inline;vertical-align:middle}#ticket_form .tooltip_container .tooltip{background-color:#efefef;left:100%;margin:0;width:200px}#settings_global_capacity_edit{background-color:#fff;border:1px solid #b4b9be;float:left;font-size:inherit;margin-right:10px}#settings_global_capacity_edit:disabled{background-color:transparent;border:0;box-shadow:none;color:#555}#settings_global_capacity_edit:enabled{margin-right:7px}#ticket_form .original_stock_cap span{margin-right:0}.ticket-editor-notice{padding:10px;margin-bottom:10px;font-size:13px;border-radius:4px;display:flex}.ticket-editor-notice.info{background-color:#edf6fc}.ticket-editor-notice.info .dashicons{color:#2a709d}.ticket-editor-notice.tribe-dependent{display:none}.ticket-editor-notice.tribe-dependent.tribe-active{display:flex}.ticket-editor-notice .dashicons{font-size:20px;width:20px;height:20px;margin-right:2px}@media (min-width:768px){.event-tickets .tribe-common-c-loader,.tribe-common-c-loader.tribe-tickets-loader__modal,.tribe-common-c-loader.tribe-tickets-loader__tickets-block{padding:0}.tribe-common a.tribe-common-c-btn-link,.tribe-common button.tribe-common-c-btn-link,.tribe-common input[type=button].tribe-common-c-btn-link,.tribe-common input[type=submit].tribe-common-c-btn-link{background-color:transparent;width:auto}}@media (min-width:782px){.ticket_panel{padding:16px}.input_block .input_block,.input_block .ticket_form_right{margin-left:132px}#ticket_bottom_right{float:right}}@media (min-width:400px){#settings_form_toggle{float:right;margin-top:0}}@media screen and (max-width:520px){.ticket_table_intro #ticket_form_total_capacity{width:100%}}@media screen and (max-width:782px){.ticket_table_intro #ticket_form_total_capacity .tooltip{left:auto;margin-top:5px;position:relative;top:auto;transform:none;width:100%}.input_block .ticket_form_left{float:none;display:inline-block;padding:0 0 6px}.input_block .tribe_stock_block{padding-left:36px}.input_block .tribe_stock_block.tribe-active{padding-top:5px}#ticket_form .tooltip_container .tooltip{left:auto;margin-top:5px;position:relative;top:auto;transform:none;width:100%}}@media (max-width:782px){#ticket_bottom_right{margin-top:1em}}@media screen and (max-width:390px){#ticket_form .tooltip_container{display:none}}
|
src/resources/js/app/blocks.js
CHANGED
@@ -1197,7 +1197,9 @@ var utils_getDefaultCurrencyPosition = function getDefaultCurrencyPosition() {
|
|
1197 |
|
1198 |
var details_datePickerFormat = external_tribe_common_utils_["globals"].tecDateSettings().datepickerFormat;
|
1199 |
var currentMoment = moment_default()();
|
1200 |
-
var
|
|
|
|
|
1201 |
|
1202 |
var details_startDateInput = details_datePickerFormat ? currentMoment.format(external_tribe_common_utils_["moment"].toFormat(details_datePickerFormat)) : external_tribe_common_utils_["moment"].toDate(currentMoment);
|
1203 |
var details_endDateInput = details_datePickerFormat ? details_endMoment.format(external_tribe_common_utils_["moment"].toFormat(details_datePickerFormat)) : external_tribe_common_utils_["moment"].toDate(details_endMoment);
|
@@ -1316,7 +1318,9 @@ var DEFAULT_STATE = {
|
|
1316 |
|
1317 |
var temp_details_datePickerFormat = external_tribe_common_utils_["globals"].tecDateSettings().datepickerFormat;
|
1318 |
var temp_details_currentMoment = moment_default()();
|
1319 |
-
var
|
|
|
|
|
1320 |
|
1321 |
var temp_details_startDateInput = temp_details_datePickerFormat ? temp_details_currentMoment.format(external_tribe_common_utils_["moment"].toFormat(temp_details_datePickerFormat)) : external_tribe_common_utils_["moment"].toDate(temp_details_currentMoment);
|
1322 |
var temp_details_endDateInput = temp_details_datePickerFormat ? temp_details_endMoment.format(external_tribe_common_utils_["moment"].toFormat(temp_details_datePickerFormat)) : external_tribe_common_utils_["moment"].toDate(temp_details_endMoment);
|
@@ -10671,7 +10675,9 @@ var moment_default = /*#__PURE__*/__webpack_require__.n(moment_moment);
|
|
10671 |
|
10672 |
var details_datePickerFormat = external_tribe_common_utils_["globals"].tecDateSettings().datepickerFormat;
|
10673 |
var currentMoment = moment_default()();
|
10674 |
-
var
|
|
|
|
|
10675 |
|
10676 |
var details_startDateInput = details_datePickerFormat ? currentMoment.format(external_tribe_common_utils_["moment"].toFormat(details_datePickerFormat)) : external_tribe_common_utils_["moment"].toDate(currentMoment);
|
10677 |
var details_endDateInput = details_datePickerFormat ? details_endMoment.format(external_tribe_common_utils_["moment"].toFormat(details_datePickerFormat)) : external_tribe_common_utils_["moment"].toDate(details_endMoment);
|
@@ -12167,22 +12173,18 @@ function setNonEventPostTypeEndDate() {
|
|
12167 |
case 11:
|
12168 |
endMoment = _context19.sent;
|
12169 |
_context19.next = 14;
|
12170 |
-
return Object(effects["b" /* call */])([endMoment, 'add'], 100, 'years');
|
12171 |
-
|
12172 |
-
case 14:
|
12173 |
-
_context19.next = 16;
|
12174 |
return Object(effects["b" /* call */])(sagas["a" /* createDates */], endMoment.toDate());
|
12175 |
|
12176 |
-
case
|
12177 |
_ref8 = _context19.sent;
|
12178 |
date = _ref8.date;
|
12179 |
dateInput = _ref8.dateInput;
|
12180 |
moment = _ref8.moment;
|
12181 |
time = _ref8.time;
|
12182 |
-
_context19.next =
|
12183 |
return Object(effects["a" /* all */])([Object(effects["e" /* put */])(actions["setRSVPTempEndDate"](date)), Object(effects["e" /* put */])(actions["setRSVPTempEndDateInput"](dateInput)), Object(effects["e" /* put */])(actions["setRSVPTempEndDateMoment"](moment)), Object(effects["e" /* put */])(actions["setRSVPTempEndTime"](time)), Object(effects["e" /* put */])(actions["setRSVPEndDate"](date)), Object(effects["e" /* put */])(actions["setRSVPEndDateInput"](dateInput)), Object(effects["e" /* put */])(actions["setRSVPEndDateMoment"](moment)), Object(effects["e" /* put */])(actions["setRSVPEndTime"](time))]);
|
12184 |
|
12185 |
-
case
|
12186 |
case 'end':
|
12187 |
return _context19.stop();
|
12188 |
}
|
@@ -44194,7 +44196,8 @@ var utils = __webpack_require__(8);
|
|
44194 |
|
44195 |
supports: {
|
44196 |
html: false,
|
44197 |
-
multiple: false
|
|
|
44198 |
},
|
44199 |
|
44200 |
attributes: {
|
@@ -45257,7 +45260,7 @@ var controls_style = __webpack_require__(519);
|
|
45257 |
|
45258 |
var message = Object(external_var_wp_i18n_root_wp_i18n_["__"])('It looks like you have multiple ecommerce plugins active. We recommend running only one at a time. However, if you need to run multiple, please select which one to use to sell tickets for this event. ', 'event-tickets');
|
45259 |
|
45260 |
-
var note = Object(external_var_wp_i18n_root_wp_i18n_["__"])('Note: adjusting this setting will only impact new tickets. Existing tickets will not change. We highly recommend that all tickets for one event use the same ecommerce plugin', 'event-tickets');
|
45261 |
|
45262 |
/**
|
45263 |
* @todo: create radio input element, move this over to element
|
@@ -45527,7 +45530,8 @@ var tickets_container_mapDispatchToProps = function mapDispatchToProps(dispatch)
|
|
45527 |
|
45528 |
supports: {
|
45529 |
html: false,
|
45530 |
-
multiple: false
|
|
|
45531 |
},
|
45532 |
|
45533 |
attributes: {
|
@@ -48095,7 +48099,8 @@ var ticket_container_mergeProps = function mergeProps(stateProps, dispatchProps,
|
|
48095 |
parent: ['tribe/tickets'],
|
48096 |
|
48097 |
supports: {
|
48098 |
-
html: false
|
|
|
48099 |
},
|
48100 |
|
48101 |
attributes: {
|
@@ -48360,7 +48365,8 @@ var attendees_container_mapDispatchToProps = function mapDispatchToProps(dispatc
|
|
48360 |
keywords: ['event', 'events-gutenberg', 'tribe'],
|
48361 |
|
48362 |
supports: {
|
48363 |
-
html: false
|
|
|
48364 |
},
|
48365 |
|
48366 |
attributes: {
|
1197 |
|
1198 |
var details_datePickerFormat = external_tribe_common_utils_["globals"].tecDateSettings().datepickerFormat;
|
1199 |
var currentMoment = moment_default()();
|
1200 |
+
var bufferDuration = external_tribe_common_utils_["globals"].tickets().end_sale_buffer_duration ? external_tribe_common_utils_["globals"].tickets().end_sale_buffer_duration : 2;
|
1201 |
+
var bufferYears = external_tribe_common_utils_["globals"].tickets().end_sale_buffer_years ? external_tribe_common_utils_["globals"].tickets().end_sale_buffer_years : 1;
|
1202 |
+
var details_endMoment = currentMoment.clone().add(bufferDuration, 'hours').add(bufferYears, 'years');
|
1203 |
|
1204 |
var details_startDateInput = details_datePickerFormat ? currentMoment.format(external_tribe_common_utils_["moment"].toFormat(details_datePickerFormat)) : external_tribe_common_utils_["moment"].toDate(currentMoment);
|
1205 |
var details_endDateInput = details_datePickerFormat ? details_endMoment.format(external_tribe_common_utils_["moment"].toFormat(details_datePickerFormat)) : external_tribe_common_utils_["moment"].toDate(details_endMoment);
|
1318 |
|
1319 |
var temp_details_datePickerFormat = external_tribe_common_utils_["globals"].tecDateSettings().datepickerFormat;
|
1320 |
var temp_details_currentMoment = moment_default()();
|
1321 |
+
var temp_details_bufferDuration = external_tribe_common_utils_["globals"].tickets().end_sale_buffer_duration ? external_tribe_common_utils_["globals"].tickets().end_sale_buffer_duration : 2;
|
1322 |
+
var temp_details_bufferYears = external_tribe_common_utils_["globals"].tickets().end_sale_buffer_years ? external_tribe_common_utils_["globals"].tickets().end_sale_buffer_years : 1;
|
1323 |
+
var temp_details_endMoment = temp_details_currentMoment.clone().add(temp_details_bufferDuration, 'hours').add(temp_details_bufferYears, 'years');
|
1324 |
|
1325 |
var temp_details_startDateInput = temp_details_datePickerFormat ? temp_details_currentMoment.format(external_tribe_common_utils_["moment"].toFormat(temp_details_datePickerFormat)) : external_tribe_common_utils_["moment"].toDate(temp_details_currentMoment);
|
1326 |
var temp_details_endDateInput = temp_details_datePickerFormat ? temp_details_endMoment.format(external_tribe_common_utils_["moment"].toFormat(temp_details_datePickerFormat)) : external_tribe_common_utils_["moment"].toDate(temp_details_endMoment);
|
10675 |
|
10676 |
var details_datePickerFormat = external_tribe_common_utils_["globals"].tecDateSettings().datepickerFormat;
|
10677 |
var currentMoment = moment_default()();
|
10678 |
+
var bufferDuration = external_tribe_common_utils_["globals"].tickets().end_sale_buffer_duration ? external_tribe_common_utils_["globals"].tickets().end_sale_buffer_duration : 2;
|
10679 |
+
var bufferYears = external_tribe_common_utils_["globals"].tickets().end_sale_buffer_years ? external_tribe_common_utils_["globals"].tickets().end_sale_buffer_years : 1;
|
10680 |
+
var details_endMoment = currentMoment.clone().add(bufferDuration, 'hours').add(bufferYears, 'years');
|
10681 |
|
10682 |
var details_startDateInput = details_datePickerFormat ? currentMoment.format(external_tribe_common_utils_["moment"].toFormat(details_datePickerFormat)) : external_tribe_common_utils_["moment"].toDate(currentMoment);
|
10683 |
var details_endDateInput = details_datePickerFormat ? details_endMoment.format(external_tribe_common_utils_["moment"].toFormat(details_datePickerFormat)) : external_tribe_common_utils_["moment"].toDate(details_endMoment);
|
12173 |
case 11:
|
12174 |
endMoment = _context19.sent;
|
12175 |
_context19.next = 14;
|
|
|
|
|
|
|
|
|
12176 |
return Object(effects["b" /* call */])(sagas["a" /* createDates */], endMoment.toDate());
|
12177 |
|
12178 |
+
case 14:
|
12179 |
_ref8 = _context19.sent;
|
12180 |
date = _ref8.date;
|
12181 |
dateInput = _ref8.dateInput;
|
12182 |
moment = _ref8.moment;
|
12183 |
time = _ref8.time;
|
12184 |
+
_context19.next = 21;
|
12185 |
return Object(effects["a" /* all */])([Object(effects["e" /* put */])(actions["setRSVPTempEndDate"](date)), Object(effects["e" /* put */])(actions["setRSVPTempEndDateInput"](dateInput)), Object(effects["e" /* put */])(actions["setRSVPTempEndDateMoment"](moment)), Object(effects["e" /* put */])(actions["setRSVPTempEndTime"](time)), Object(effects["e" /* put */])(actions["setRSVPEndDate"](date)), Object(effects["e" /* put */])(actions["setRSVPEndDateInput"](dateInput)), Object(effects["e" /* put */])(actions["setRSVPEndDateMoment"](moment)), Object(effects["e" /* put */])(actions["setRSVPEndTime"](time))]);
|
12186 |
|
12187 |
+
case 21:
|
12188 |
case 'end':
|
12189 |
return _context19.stop();
|
12190 |
}
|
44196 |
|
44197 |
supports: {
|
44198 |
html: false,
|
44199 |
+
multiple: false,
|
44200 |
+
customClassName: false
|
44201 |
},
|
44202 |
|
44203 |
attributes: {
|
45260 |
|
45261 |
var message = Object(external_var_wp_i18n_root_wp_i18n_["__"])('It looks like you have multiple ecommerce plugins active. We recommend running only one at a time. However, if you need to run multiple, please select which one to use to sell tickets for this event. ', 'event-tickets');
|
45262 |
|
45263 |
+
var note = Object(external_var_wp_i18n_root_wp_i18n_["__"])('Note: adjusting this setting will only impact new tickets. Existing tickets will not change. We highly recommend that all tickets for one event use the same ecommerce plugin.', 'event-tickets');
|
45264 |
|
45265 |
/**
|
45266 |
* @todo: create radio input element, move this over to element
|
45530 |
|
45531 |
supports: {
|
45532 |
html: false,
|
45533 |
+
multiple: false,
|
45534 |
+
customClassName: false
|
45535 |
},
|
45536 |
|
45537 |
attributes: {
|
48099 |
parent: ['tribe/tickets'],
|
48100 |
|
48101 |
supports: {
|
48102 |
+
html: false,
|
48103 |
+
customClassName: false
|
48104 |
},
|
48105 |
|
48106 |
attributes: {
|
48365 |
keywords: ['event', 'events-gutenberg', 'tribe'],
|
48366 |
|
48367 |
supports: {
|
48368 |
+
html: false,
|
48369 |
+
customClassName: false
|
48370 |
},
|
48371 |
|
48372 |
attributes: {
|
src/resources/js/app/blocks.min.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
var tribe="object"==typeof tribe?tribe:{};tribe.tickets=tribe.tickets||{},tribe.tickets.blocks=function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=538)}([function(e,t,n){"use strict";n.d(t,"g",(function(){return r.i})),n.d(t,"e",(function(){return r.g})),n.d(t,"a",(function(){return r.b})),n.d(t,"b",(function(){return r.d})),n.d(t,"d",(function(){return r.f})),n.d(t,"c",(function(){return r.e})),n.d(t,"f",(function(){return r.h})),n.d(t,"h",(function(){return i})),n.d(t,"i",(function(){return o}));var r=n(17),a=n(59);function i(e,t){for(var n=arguments.length,i=Array(n>2?n-2:0),o=2;o<n;o++)i[o-2]=arguments[o];return r.f.apply(void 0,[a.a,e,t].concat(i))}function o(e,t){for(var n=arguments.length,i=Array(n>2?n-2:0),o=2;o<n;o++)i[o-2]=arguments[o];return r.f.apply(void 0,[a.b,e,t].concat(i))}},function(e,t,n){e.exports=n(458)()},function(e,t,n){"use strict";n.r(t),n.d(t,"SET_TICKETS_INITIAL_STATE",(function(){return a})),n.d(t,"RESET_TICKETS_BLOCK",(function(){return i})),n.d(t,"SET_TICKETS_HEADER_IMAGE",(function(){return o})),n.d(t,"SET_TICKETS_IS_SELECTED",(function(){return s})),n.d(t,"SET_TICKETS_IS_SETTINGS_OPEN",(function(){return c})),n.d(t,"SET_TICKETS_IS_SETTINGS_LOADING",(function(){return u})),n.d(t,"SET_TICKETS_PROVIDER",(function(){return d})),n.d(t,"SET_TICKETS_SHARED_CAPACITY",(function(){return l})),n.d(t,"SET_TICKETS_TEMP_SHARED_CAPACITY",(function(){return _})),n.d(t,"FETCH_TICKETS_HEADER_IMAGE",(function(){return m})),n.d(t,"UPDATE_TICKETS_HEADER_IMAGE",(function(){return p})),n.d(t,"DELETE_TICKETS_HEADER_IMAGE",(function(){return f})),n.d(t,"REGISTER_TICKET_BLOCK",(function(){return T})),n.d(t,"REMOVE_TICKET_BLOCK",(function(){return h})),n.d(t,"REMOVE_TICKET_BLOCKS",(function(){return y})),n.d(t,"SET_TICKET_TITLE",(function(){return b})),n.d(t,"SET_TICKET_DESCRIPTION",(function(){return M})),n.d(t,"SET_TICKET_PRICE",(function(){return S})),n.d(t,"SET_TICKET_SKU",(function(){return E})),n.d(t,"SET_TICKET_IAC_SETTING",(function(){return g})),n.d(t,"SET_TICKET_START_DATE",(function(){return k})),n.d(t,"SET_TICKET_START_DATE_INPUT",(function(){return v})),n.d(t,"SET_TICKET_START_DATE_MOMENT",(function(){return D})),n.d(t,"SET_TICKET_END_DATE",(function(){return L})),n.d(t,"SET_TICKET_END_DATE_INPUT",(function(){return O})),n.d(t,"SET_TICKET_END_DATE_MOMENT",(function(){return Y})),n.d(t,"SET_TICKET_START_TIME",(function(){return w})),n.d(t,"SET_TICKET_END_TIME",(function(){return j})),n.d(t,"SET_TICKET_START_TIME_INPUT",(function(){return I})),n.d(t,"SET_TICKET_END_TIME_INPUT",(function(){return P})),n.d(t,"SET_TICKET_CAPACITY_TYPE",(function(){return C})),n.d(t,"SET_TICKET_CAPACITY",(function(){return x})),n.d(t,"SET_TICKET_TEMP_TITLE",(function(){return R})),n.d(t,"SET_TICKET_TEMP_DESCRIPTION",(function(){return A})),n.d(t,"SET_TICKET_TEMP_PRICE",(function(){return H})),n.d(t,"SET_TICKET_TEMP_SKU",(function(){return N})),n.d(t,"SET_TICKET_TEMP_IAC_SETTING",(function(){return V})),n.d(t,"SET_TICKET_TEMP_START_DATE",(function(){return F})),n.d(t,"SET_TICKET_TEMP_START_DATE_INPUT",(function(){return K})),n.d(t,"SET_TICKET_TEMP_START_DATE_MOMENT",(function(){return W})),n.d(t,"SET_TICKET_TEMP_END_DATE",(function(){return U})),n.d(t,"SET_TICKET_TEMP_END_DATE_INPUT",(function(){return z})),n.d(t,"SET_TICKET_TEMP_END_DATE_MOMENT",(function(){return G})),n.d(t,"SET_TICKET_TEMP_START_TIME",(function(){return B})),n.d(t,"SET_TICKET_TEMP_END_TIME",(function(){return q})),n.d(t,"SET_TICKET_TEMP_START_TIME_INPUT",(function(){return J})),n.d(t,"SET_TICKET_TEMP_END_TIME_INPUT",(function(){return $})),n.d(t,"SET_TICKET_TEMP_CAPACITY_TYPE",(function(){return Z})),n.d(t,"SET_TICKET_TEMP_CAPACITY",(function(){return Q})),n.d(t,"SET_TICKET_SOLD",(function(){return X})),n.d(t,"SET_TICKET_AVAILABLE",(function(){return ee})),n.d(t,"SET_TICKET_ID",(function(){return te})),n.d(t,"SET_TICKET_CURRENCY_SYMBOL",(function(){return ne})),n.d(t,"SET_TICKET_CURRENCY_POSITION",(function(){return re})),n.d(t,"SET_TICKET_PROVIDER",(function(){return ae})),n.d(t,"SET_TICKET_HAS_ATTENDEE_INFO_FIELDS",(function(){return ie})),n.d(t,"SET_TICKET_IS_LOADING",(function(){return oe})),n.d(t,"SET_TICKET_IS_MODAL_OPEN",(function(){return se})),n.d(t,"SET_TICKET_HAS_BEEN_CREATED",(function(){return ce})),n.d(t,"SET_TICKET_HAS_CHANGES",(function(){return ue})),n.d(t,"SET_TICKET_HAS_DURATION_ERROR",(function(){return de})),n.d(t,"SET_TICKET_IS_SELECTED",(function(){return le})),n.d(t,"SET_TICKET_DETAILS",(function(){return _e})),n.d(t,"SET_TICKET_TEMP_DETAILS",(function(){return me})),n.d(t,"HANDLE_TICKET_START_DATE",(function(){return pe})),n.d(t,"HANDLE_TICKET_END_DATE",(function(){return fe})),n.d(t,"HANDLE_TICKET_START_TIME",(function(){return Te})),n.d(t,"HANDLE_TICKET_END_TIME",(function(){return he})),n.d(t,"FETCH_TICKET",(function(){return ye})),n.d(t,"CREATE_NEW_TICKET",(function(){return be})),n.d(t,"UPDATE_TICKET",(function(){return Me})),n.d(t,"DELETE_TICKET",(function(){return Se})),n.d(t,"SET_TICKET_INITIAL_STATE",(function(){return Ee}));var r=n(8),a=r.n+"/SET_TICKETS_INITIAL_STATE",i=r.n+"/RESET_TICKETS_BLOCK",o=r.n+"/SET_TICKETS_HEADER_IMAGE",s=r.n+"/SET_TICKETS_IS_SELECTED",c=r.n+"/SET_TICKETS_IS_SETTINGS_OPEN",u=r.n+"/SET_TICKETS_IS_SETTINGS_LOADING",d=r.n+"/SET_TICKETS_PROVIDER",l=r.n+"/SET_TICKETS_SHARED_CAPACITY",_=r.n+"/SET_TICKETS_TEMP_SHARED_CAPACITY",m=r.n+"/FETCH_TICKETS_HEADER_IMAGE",p=r.n+"/UPDATE_TICKETS_HEADER_IMAGE",f=r.n+"/DELETE_TICKETS_HEADER_IMAGE",T=r.n+"/REGISTER_TICKET_BLOCK",h=r.n+"/REMOVE_TICKET_BLOCK",y=r.n+"/REMOVE_TICKET_BLOCKS",b=r.n+"/SET_TICKET_TITLE",M=r.n+"/SET_TICKET_DESCRIPTION",S=r.n+"/SET_TICKET_PRICE",E=r.n+"/SET_TICKET_SKU",g=r.n+"/SET_TICKET_IAC_SETTING",k=r.n+"/SET_TICKET_START_DATE",v=r.n+"/SET_TICKET_START_DATE_INPUT",D=r.n+"/SET_TICKET_START_DATE_MOMENT",L=r.n+"/SET_TICKET_END_DATE",O=r.n+"/SET_TICKET_END_DATE_INPUT",Y=r.n+"/SET_TICKET_END_DATE_MOMENT",w=r.n+"/SET_TICKET_START_TIME",j=r.n+"/SET_TICKET_END_TIME",I=r.n+"/SET_TICKET_START_TIME_INPUT",P=r.n+"/SET_TICKET_END_TIME_INPUT",C=r.n+"/SET_TICKET_CAPACITY_TYPE",x=r.n+"/SET_TICKET_CAPACITY",R=r.n+"/SET_TICKET_TEMP_TITLE",A=r.n+"/SET_TICKET_TEMP_DESCRIPTION",H=r.n+"/SET_TICKET_TEMP_PRICE",N=r.n+"/SET_TICKET_TEMP_SKU",V=r.n+"/SET_TICKET_TEMP_IAC_SETTING",F=r.n+"/SET_TICKET_TEMP_START_DATE",K=r.n+"/SET_TICKET_TEMP_START_DATE_INPUT",W=r.n+"/SET_TICKET_TEMP_START_DATE_MOMENT",U=r.n+"/SET_TICKET_TEMP_END_DATE",z=r.n+"/SET_TICKET_TEMP_END_DATE_INPUT",G=r.n+"/SET_TICKET_TEMP_END_DATE_MOMENT",B=r.n+"/SET_TICKET_TEMP_START_TIME",q=r.n+"/SET_TICKET_TEMP_END_TIME",J=r.n+"/SET_TICKET_TEMP_START_TIME_INPUT",$=r.n+"/SET_TICKET_TEMP_END_TIME_INPUT",Z=r.n+"/SET_TICKET_TEMP_CAPACITY_TYPE",Q=r.n+"/SET_TICKET_TEMP_CAPACITY",X=r.n+"/SET_TICKET_SOLD",ee=r.n+"/SET_TICKET_AVAILABLE",te=r.n+"/SET_TICKET_ID",ne=r.n+"/SET_TICKET_CURRENCY_SYMBOL",re=r.n+"/SET_TICKET_CURRENCY_POSITION",ae=r.n+"/SET_TICKET_PROVIDER",ie=r.n+"/SET_TICKET_HAS_ATTENDEE_INFO_FIELDS",oe=r.n+"/SET_TICKET_IS_LOADING",se=r.n+"/SET_TICKET_IS_MODAL_OPEN",ce=r.n+"/SET_TICKET_HAS_BEEN_CREATED",ue=r.n+"/SET_TICKET_HAS_CHANGES",de=r.n+"/SET_TICKET_HAS_DURATION_ERROR",le=r.n+"/SET_TICKET_IS_SELECTED",_e=r.n+"/SET_TICKET_DETAILS",me=r.n+"/SET_TICKET_TEMP_DETAILS",pe=r.n+"/HANDLE_TICKET_START_DATE",fe=r.n+"/HANDLE_TICKET_END_DATE",Te=r.n+"/HANDLE_TICKET_START_TIME",he=r.n+"/HANDLE_TICKET_END_TIME",ye=r.n+"/FETCH_TICKET",be=r.n+"/CREATE_NEW_TICKET",Me=r.n+"/UPDATE_TICKET",Se=r.n+"/DELETE_TICKET",Ee=r.n+"/SET_TICKET_INITIAL_STATE"},function(e,t){e.exports=tribe.common.utils},function(e,t,n){"use strict";n.d(t,"b",(function(){return D})),n.d(t,"d",(function(){return r})),n.d(t,"g",(function(){return f})),n.d(t,"a",(function(){return fn})),n.d(t,"f",(function(){return a})),n.d(t,"e",(function(){return Vr}));var r={};n.r(r),n.d(r,"CAPACITY_TYPE_OPTIONS",(function(){return O}));var a={};n.r(a),n.d(a,"getState",(function(){return C})),n.d(a,"getBlock",(function(){return x})),n.d(a,"getTicketsIsSelected",(function(){return R})),n.d(a,"getTicketsIsSettingsOpen",(function(){return A})),n.d(a,"getTicketsIsSettingsLoading",(function(){return H})),n.d(a,"getTicketsProvider",(function(){return N})),n.d(a,"getTicketsSharedCapacity",(function(){return V})),n.d(a,"getTicketsSharedCapacityInt",(function(){return F})),n.d(a,"getTicketsTempSharedCapacity",(function(){return K})),n.d(a,"getTicketsTempSharedCapacityInt",(function(){return W})),n.d(a,"getTicketsHeaderImage",(function(){return U})),n.d(a,"getTicketsHeaderImageId",(function(){return z})),n.d(a,"getTicketsHeaderImageSrc",(function(){return G})),n.d(a,"getTicketsHeaderImageAlt",(function(){return B})),n.d(a,"getTickets",(function(){return q})),n.d(a,"getTicketsAllClientIds",(function(){return J})),n.d(a,"getTicketsByClientId",(function(){return $})),n.d(a,"getTicketsArray",(function(){return Z})),n.d(a,"getTicketsCount",(function(){return Q})),n.d(a,"hasTickets",(function(){return X})),n.d(a,"hasCreatedTickets",(function(){return ee})),n.d(a,"getIndependentTickets",(function(){return te})),n.d(a,"getSharedTickets",(function(){return ne})),n.d(a,"getSharedTicketsCount",(function(){return re})),n.d(a,"getUnlimitedTickets",(function(){return ae})),n.d(a,"hasATicketSelected",(function(){return ie})),n.d(a,"getTicketsIdsInBlocks",(function(){return oe})),n.d(a,"getTicketClientId",(function(){return se})),n.d(a,"getTicket",(function(){return ce})),n.d(a,"getTicketSold",(function(){return ue})),n.d(a,"getTicketAvailable",(function(){return de})),n.d(a,"getTicketId",(function(){return le})),n.d(a,"getTicketCurrencySymbol",(function(){return _e})),n.d(a,"getTicketCurrencyPosition",(function(){return me})),n.d(a,"getTicketProvider",(function(){return pe})),n.d(a,"getTicketHasAttendeeInfoFields",(function(){return fe})),n.d(a,"getTicketIsLoading",(function(){return Te})),n.d(a,"getTicketIsModalOpen",(function(){return he})),n.d(a,"getTicketHasBeenCreated",(function(){return ye})),n.d(a,"getTicketHasChanges",(function(){return be})),n.d(a,"getTicketHasDurationError",(function(){return Me})),n.d(a,"getTicketIsSelected",(function(){return Se})),n.d(a,"isTicketDisabled",(function(){return Ee})),n.d(a,"getTicketDetails",(function(){return ge})),n.d(a,"getTicketTitle",(function(){return ke})),n.d(a,"getTicketDescription",(function(){return ve})),n.d(a,"getTicketPrice",(function(){return De})),n.d(a,"getTicketSku",(function(){return Le})),n.d(a,"getTicketIACSetting",(function(){return Oe})),n.d(a,"getTicketStartDate",(function(){return Ye})),n.d(a,"getTicketStartDateInput",(function(){return we})),n.d(a,"getTicketStartDateMoment",(function(){return je})),n.d(a,"getTicketEndDate",(function(){return Ie})),n.d(a,"getTicketEndDateInput",(function(){return Pe})),n.d(a,"getTicketEndDateMoment",(function(){return Ce})),n.d(a,"getTicketStartTime",(function(){return xe})),n.d(a,"getTicketStartTimeNoSeconds",(function(){return Re})),n.d(a,"getTicketEndTime",(function(){return Ae})),n.d(a,"getTicketEndTimeNoSeconds",(function(){return He})),n.d(a,"getTicketStartTimeInput",(function(){return Ne})),n.d(a,"getTicketEndTimeInput",(function(){return Ve})),n.d(a,"getTicketCapacityType",(function(){return Fe})),n.d(a,"getTicketCapacity",(function(){return Ke})),n.d(a,"getTicketCapacityInt",(function(){return We})),n.d(a,"isUnlimitedTicket",(function(){return Ue})),n.d(a,"isSharedTicket",(function(){return ze})),n.d(a,"isIndependentTicket",(function(){return Ge})),n.d(a,"isTicketPast",(function(){return Be})),n.d(a,"isTicketFuture",(function(){return qe})),n.d(a,"isTicketOnSale",(function(){return Je})),n.d(a,"hasTicketOnSale",(function(){return $e})),n.d(a,"allTicketsPast",(function(){return Ze})),n.d(a,"allTicketsFuture",(function(){return Qe})),n.d(a,"getTicketTempDetails",(function(){return Xe})),n.d(a,"getTicketTempTitle",(function(){return et})),n.d(a,"getTicketTempDescription",(function(){return tt})),n.d(a,"getTicketTempPrice",(function(){return nt})),n.d(a,"getTicketTempSku",(function(){return rt})),n.d(a,"getTicketTempIACSetting",(function(){return at})),n.d(a,"getTicketTempStartDate",(function(){return it})),n.d(a,"getTicketTempStartDateInput",(function(){return ot})),n.d(a,"getTicketTempStartDateMoment",(function(){return st})),n.d(a,"getTicketTempEndDate",(function(){return ct})),n.d(a,"getTicketTempEndDateInput",(function(){return ut})),n.d(a,"getTicketTempEndDateMoment",(function(){return dt})),n.d(a,"getTicketTempStartTime",(function(){return lt})),n.d(a,"getTicketTempStartTimeNoSeconds",(function(){return _t})),n.d(a,"getTicketTempEndTime",(function(){return mt})),n.d(a,"getTicketTempEndTimeNoSeconds",(function(){return pt})),n.d(a,"getTicketTempStartTimeInput",(function(){return ft})),n.d(a,"getTicketTempEndTimeInput",(function(){return Tt})),n.d(a,"getTicketTempCapacityType",(function(){return ht})),n.d(a,"getTicketTempCapacity",(function(){return yt})),n.d(a,"getTicketTempCapacityInt",(function(){return bt})),n.d(a,"getTicketTempCapacityTypeOption",(function(){return Mt})),n.d(a,"isTempTitleValid",(function(){return St})),n.d(a,"isTempCapacityValid",(function(){return Et})),n.d(a,"isTempSharedCapacityValid",(function(){return gt})),n.d(a,"isZeroPriceValid",(function(){return kt})),n.d(a,"isTicketValid",(function(){return vt})),n.d(a,"_getTotalCapacity",(function(){return Dt})),n.d(a,"_getTotalTempCapacity",(function(){return Lt})),n.d(a,"_getTotalSold",(function(){return Ot})),n.d(a,"_getTotalAvailable",(function(){return Yt})),n.d(a,"getIndependentTicketsCapacity",(function(){return wt})),n.d(a,"getIndependentTicketsTempCapacity",(function(){return jt})),n.d(a,"getIndependentTicketsSold",(function(){return It})),n.d(a,"getIndependentTicketsAvailable",(function(){return Pt})),n.d(a,"getSharedTicketsSold",(function(){return Ct})),n.d(a,"getSharedTicketsAvailable",(function(){return xt})),n.d(a,"getIndependentAndSharedTicketsCapacity",(function(){return Rt})),n.d(a,"getIndependentAndSharedTicketsTempCapacity",(function(){return At})),n.d(a,"getIndependentAndSharedTicketsSold",(function(){return Ht})),n.d(a,"getIndependentAndSharedTicketsAvailable",(function(){return Nt})),n.d(a,"getTicketProviders",(function(){return Vt})),n.d(a,"getDefaultTicketProvider",(function(){return Ft})),n.d(a,"hasValidTicketProvider",(function(){return Kt})),n.d(a,"hasMultipleTicketProviders",(function(){return Wt})),n.d(a,"hasTicketProviders",(function(){return Ut})),n.d(a,"canCreateTickets",(function(){return zt}));var i,o=n(9),s=n.n(o),c=n(262),u=n.n(c),d=n(25),l=n.n(d),_=n(16),m=n(321),p=n.n(m),f=n(2),T=n(44),h=n.n(T),y=n(3),b=n(87),M=n.n(b),S=n(85),E=n.n(S),g=n(6),k=n(5),v=n.n(k),D=n(23),L=n(15),O=[{label:Object(L.__)("Share capacity with other tickets","event-tickets"),value:D.TICKET_TYPES[D.SHARED]},{label:Object(L.__)("Set capacity for this ticket only","event-tickets"),value:D.TICKET_TYPES[D.INDEPENDENT]},{label:Object(L.__)("Unlimited","event-tickets"),value:D.TICKET_TYPES[D.UNLIMITED]}],Y=D.UNLIMITED,w=D.INDEPENDENT,j=D.SHARED,I=D.TICKET_TYPES,P=y.globals.tickets,C=function(e){return e},x=function(e){return e.tickets.blocks.ticket},R=Object(g.createSelector)([x],(function(e){return e.isSelected})),A=Object(g.createSelector)([x],(function(e){return e.isSettingsOpen})),H=Object(g.createSelector)([x],(function(e){return e.isSettingsLoading})),N=Object(g.createSelector)([x],(function(e){return e.provider})),V=Object(g.createSelector)([x],(function(e){return e.sharedCapacity})),F=Object(g.createSelector)([V],(function(e){return parseInt(e,10)||0})),K=Object(g.createSelector)([x],(function(e){return e.tempSharedCapacity})),W=Object(g.createSelector)([K],(function(e){return parseInt(e,10)||0})),U=Object(g.createSelector)([x],(function(e){return e.headerImage})),z=Object(g.createSelector)([U],(function(e){return e.id})),G=Object(g.createSelector)([U],(function(e){return e.src})),B=Object(g.createSelector)([U],(function(e){return e.alt})),q=Object(g.createSelector)([x],(function(e){return e.tickets})),J=Object(g.createSelector)([q],(function(e){return e.allClientIds})),$=Object(g.createSelector)([q],(function(e){return e.byClientId})),Z=Object(g.createSelector)([J,$],(function(e,t){return e.map((function(e){return t[e]}))})),Q=Object(g.createSelector)([J],(function(e){return e.length})),X=Object(g.createSelector)([Q],(function(e){return e>0})),ee=Object(g.createSelector)([Z],(function(e){return e.reduce((function(e,t){return e||t.hasBeenCreated}),!1)})),te=Object(g.createSelector)([Z],(function(e){return e.filter((function(e){return e.details.capacityType===I[w]}))})),ne=Object(g.createSelector)([Z],(function(e){return e.filter((function(e){return e.details.capacityType===I[j]}))})),re=Object(g.createSelector)([ne],(function(e){return e.length})),ae=Object(g.createSelector)([Z],(function(e){return e.filter((function(e){return e.details.capacityType===I[Y]}))})),ie=Object(g.createSelector)([Z],(function(e){return e.reduce((function(e,t){return e||t.isSelected}),!1)})),oe=Object(g.createSelector)([Z],(function(e){return e.reduce((function(e,t){return 0!==t.ticketId&&e.push(t.ticketId),e}),[])})),se=function(e,t){return t.clientId},ce=Object(g.createSelector)([$,se],(function(e,t){return e[t]||{}})),ue=Object(g.createSelector)([ce],(function(e){return e.sold})),de=Object(g.createSelector)([ce],(function(e){return e.available})),le=Object(g.createSelector)([ce],(function(e){return e.ticketId})),_e=Object(g.createSelector)([ce],(function(e){return e.currencySymbol})),me=Object(g.createSelector)([ce],(function(e){return e.currencyPosition})),pe=Object(g.createSelector)([ce],(function(e){return e.provider})),fe=Object(g.createSelector)([ce],(function(e){return e.hasAttendeeInfoFields})),Te=Object(g.createSelector)([ce],(function(e){return e.isLoading})),he=Object(g.createSelector)([ce],(function(e){return e.isModalOpen})),ye=Object(g.createSelector)([ce],(function(e){return e.hasBeenCreated})),be=Object(g.createSelector)([ce],(function(e){return e.hasChanges})),Me=Object(g.createSelector)([ce],(function(e){return e.hasDurationError})),Se=Object(g.createSelector)([ce],(function(e){return e.isSelected})),Ee=Object(g.createSelector)([ie,Se,Te,A],(function(e,t,n,r){return e&&!t||n||r})),ge=Object(g.createSelector)([ce],(function(e){return e.details||{}})),ke=Object(g.createSelector)([ge],(function(e){return e.title})),ve=Object(g.createSelector)([ge],(function(e){return e.description})),De=Object(g.createSelector)([ge],(function(e){return e.price})),Le=Object(g.createSelector)([ge],(function(e){return e.sku})),Oe=Object(g.createSelector)([ge],(function(e){return e.iac})),Ye=Object(g.createSelector)([ge],(function(e){return e.startDate})),we=Object(g.createSelector)([ge],(function(e){return e.startDateInput})),je=Object(g.createSelector)([ge],(function(e){return e.startDateMoment})),Ie=Object(g.createSelector)([ge],(function(e){return e.endDate})),Pe=Object(g.createSelector)([ge],(function(e){return e.endDateInput})),Ce=Object(g.createSelector)([ge],(function(e){return e.endDateMoment})),xe=Object(g.createSelector)([ge],(function(e){return e.startTime||""})),Re=Object(g.createSelector)([xe],(function(e){return e.slice(0,-3)})),Ae=Object(g.createSelector)([ge],(function(e){return e.endTime||""})),He=Object(g.createSelector)([Ae],(function(e){return e.slice(0,-3)})),Ne=Object(g.createSelector)([ge],(function(e){return e.startTimeInput})),Ve=Object(g.createSelector)([ge],(function(e){return e.endTimeInput})),Fe=Object(g.createSelector)([ge],(function(e){return e.capacityType})),Ke=Object(g.createSelector)([ge],(function(e){return e.capacity})),We=Object(g.createSelector)([Ke],(function(e){return parseInt(e,10)||0})),Ue=Object(g.createSelector)([ge],(function(e){return e.capacityType===I[Y]})),ze=Object(g.createSelector)([ge],(function(e){return e.capacityType===I[j]})),Ge=Object(g.createSelector)([ge],(function(e){return e.capacityType===I[w]})),Be=Object(g.createSelector)([Ce],(function(e){return v()().isAfter(e)})),qe=Object(g.createSelector)([je],(function(e){return v()().isBefore(e)})),Je=Object(g.createSelector)([ye,Be,qe],(function(e,t,n){return e&&!t&&!n})),$e=Object(g.createSelector)([J,C],(function(e,t){return e.reduce((function(e,n){return e||Je(t,{clientId:n})}),!1)})),Ze=Object(g.createSelector)([J,C],(function(e,t){return e.reduce((function(e,n){var r={clientId:n};return ye(t,r)?e&&Be(t,r):e}),!0)})),Qe=Object(g.createSelector)([J,C],(function(e,t){return e.reduce((function(e,n){var r={clientId:n};return ye(t,r)?e&&qe(t,r):e}),!0)})),Xe=Object(g.createSelector)([ce],(function(e){return e.tempDetails||{}})),et=Object(g.createSelector)([Xe],(function(e){return e.title})),tt=Object(g.createSelector)([Xe],(function(e){return e.description})),nt=Object(g.createSelector)([Xe],(function(e){return e.price})),rt=Object(g.createSelector)([Xe],(function(e){return e.sku})),at=Object(g.createSelector)([Xe],(function(e){return e.iac})),it=Object(g.createSelector)([Xe],(function(e){return e.startDate})),ot=Object(g.createSelector)([Xe],(function(e){return e.startDateInput})),st=Object(g.createSelector)([Xe],(function(e){return e.startDateMoment})),ct=Object(g.createSelector)([Xe],(function(e){return e.endDate})),ut=Object(g.createSelector)([Xe],(function(e){return e.endDateInput})),dt=Object(g.createSelector)([Xe],(function(e){return e.endDateMoment})),lt=Object(g.createSelector)([Xe],(function(e){return e.startTime||""})),_t=Object(g.createSelector)([lt],(function(e){return e.slice(0,-3)})),mt=Object(g.createSelector)([Xe],(function(e){return e.endTime||""})),pt=Object(g.createSelector)([mt],(function(e){return e.slice(0,-3)})),ft=Object(g.createSelector)([Xe],(function(e){return e.startTimeInput})),Tt=Object(g.createSelector)([Xe],(function(e){return e.endTimeInput})),ht=Object(g.createSelector)([Xe],(function(e){return e.capacityType})),yt=Object(g.createSelector)([Xe],(function(e){return e.capacity})),bt=Object(g.createSelector)([yt],(function(e){return parseInt(e,10)||0})),Mt=Object(g.createSelector)([ht],(function(e){return E()(O,{value:e})||{}})),St=Object(g.createSelector)([et],(function(e){return""!==M()(e)})),Et=Object(g.createSelector)([yt],(function(e){return""!==M()(e)&&!isNaN(e)})),gt=Object(g.createSelector)([K],(function(e){return""!==M()(e)&&!isNaN(e)})),kt=Object(g.createSelector)([nt,N],(function(e,t){return 0<parseInt(e,10)||t!==D.TC_CLASS})),vt=Object(g.createSelector)([ht,St,Et,gt,kt],(function(e,t,n,r,a){return e===I[Y]?t&&a:e===I[j]?t&&r&&a:t&&n&&a})),Dt=function(e){return e.reduce((function(e,t){return e+(parseInt(t.details.capacity,10)||0)}),0)},Lt=function(e){return e.reduce((function(e,t){return e+(parseInt(t.tempDetails.capacity,10)||0)}),0)},Ot=function(e){return e.reduce((function(e,t){return e+(parseInt(t.sold,10)||0)}),0)},Yt=function(e){return e.reduce((function(e,t){return e+(parseInt(t.available,10)||0)}),0)},wt=Object(g.createSelector)(te,Dt),jt=Object(g.createSelector)(te,Lt),It=Object(g.createSelector)(te,Ot),Pt=Object(g.createSelector)(te,Yt),Ct=Object(g.createSelector)(ne,Ot),xt=Object(g.createSelector)([F,Ct],(function(e,t){return Math.max(e-t,0)})),Rt=Object(g.createSelector)([wt,F],(function(e,t){return e+t})),At=Object(g.createSelector)([jt,W],(function(e,t){return e+t})),Ht=Object(g.createSelector)([It,Ct],(function(e,t){return e+t})),Nt=Object(g.createSelector)([Pt,xt],(function(e,t){return e+t})),Vt=function(){return P().providers||[]},Ft=function(){return P().default_provider||""},Kt=function(){var e=Ft();return""!==e&&e!==D.RSVP_CLASS},Wt=Object(g.createSelector)([Vt],(function(e){return e.length>1})),Ut=Object(g.createSelector)([Vt],(function(e){return e.length>0})),zt=Object(g.createSelector)([Ut,Kt],(function(e,t){return e&&t})),Gt=y.globals.settings,Bt=y.globals.priceSettings,qt=y.globals.tickets,Jt=y.globals.tecDateSettings().datepickerFormat,$t=v()(),Zt=$t.clone().add(100,"years"),Qt=Jt?$t.format(y.moment.toFormat(Jt)):y.moment.toDate($t),Xt=Jt?Zt.format(y.moment.toFormat(Jt)):y.moment.toDate(Zt),en={title:"",description:"",price:"",sku:"",iac:y.globals.iacVars().iacDefault?y.globals.iacVars().iacDefault:"none",startDate:y.moment.toDatabaseDate($t),startDateInput:Qt,startDateMoment:$t,endDate:y.moment.toDatabaseDate(Zt),endDateInput:Xt,endDateMoment:Zt,startTime:y.moment.toDatabaseTime($t),endTime:y.moment.toDatabaseTime(Zt),startTimeInput:y.moment.toTime($t),endTimeInput:y.moment.toTime(Zt),capacityType:D.TICKET_TYPES[D.UNLIMITED],capacity:""},tn=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:en,t=arguments[1];switch(t.type){case f.SET_TICKET_TITLE:return s()({},e,{title:t.payload.title});case f.SET_TICKET_DESCRIPTION:return s()({},e,{description:t.payload.description});case f.SET_TICKET_PRICE:return s()({},e,{price:t.payload.price});case f.SET_TICKET_SKU:return s()({},e,{sku:t.payload.sku});case f.SET_TICKET_IAC_SETTING:return s()({},e,{iac:t.payload.iac});case f.SET_TICKET_START_DATE:return s()({},e,{startDate:t.payload.startDate});case f.SET_TICKET_START_DATE_INPUT:return s()({},e,{startDateInput:t.payload.startDateInput});case f.SET_TICKET_START_DATE_MOMENT:return s()({},e,{startDateMoment:t.payload.startDateMoment});case f.SET_TICKET_END_DATE:return s()({},e,{endDate:t.payload.endDate});case f.SET_TICKET_END_DATE_INPUT:return s()({},e,{endDateInput:t.payload.endDateInput});case f.SET_TICKET_END_DATE_MOMENT:return s()({},e,{endDateMoment:t.payload.endDateMoment});case f.SET_TICKET_START_TIME:return s()({},e,{startTime:t.payload.startTime});case f.SET_TICKET_END_TIME:return s()({},e,{endTime:t.payload.endTime});case f.SET_TICKET_START_TIME_INPUT:return s()({},e,{startTimeInput:t.payload.startTimeInput});case f.SET_TICKET_END_TIME_INPUT:return s()({},e,{endTimeInput:t.payload.endTimeInput});case f.SET_TICKET_CAPACITY_TYPE:return s()({},e,{capacityType:t.payload.capacityType});case f.SET_TICKET_CAPACITY:return s()({},e,{capacity:t.payload.capacity});default:return e}},nn=y.globals.tecDateSettings().datepickerFormat,rn=v()(),an=rn.clone().add(100,"years"),on=nn?rn.format(y.moment.toFormat(nn)):y.moment.toDate(rn),sn=nn?an.format(y.moment.toFormat(nn)):y.moment.toDate(an),cn={title:"",description:"",price:"",sku:"",iac:y.globals.iacVars().iacDefault?y.globals.iacVars().iacDefault:"none",startDate:y.moment.toDatabaseDate(rn),startDateInput:on,startDateMoment:rn,endDate:y.moment.toDatabaseDate(an),endDateInput:sn,endDateMoment:an,startTime:y.moment.toDatabaseTime(rn),endTime:y.moment.toDatabaseTime(an),startTimeInput:y.moment.toTime(rn),endTimeInput:y.moment.toTime(an),capacityType:D.TICKET_TYPES[D.UNLIMITED],capacity:""},un=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:cn,t=arguments[1];switch(t.type){case f.SET_TICKET_TEMP_TITLE:return s()({},e,{title:t.payload.title});case f.SET_TICKET_TEMP_DESCRIPTION:return s()({},e,{description:t.payload.description});case f.SET_TICKET_TEMP_PRICE:return s()({},e,{price:t.payload.price});case f.SET_TICKET_TEMP_SKU:return s()({},e,{sku:t.payload.sku});case f.SET_TICKET_TEMP_IAC_SETTING:return s()({},e,{iac:t.payload.iac});case f.SET_TICKET_TEMP_START_DATE:return s()({},e,{startDate:t.payload.startDate});case f.SET_TICKET_TEMP_START_DATE_INPUT:return s()({},e,{startDateInput:t.payload.startDateInput});case f.SET_TICKET_TEMP_START_DATE_MOMENT:return s()({},e,{startDateMoment:t.payload.startDateMoment});case f.SET_TICKET_TEMP_END_DATE:return s()({},e,{endDate:t.payload.endDate});case f.SET_TICKET_TEMP_END_DATE_INPUT:return s()({},e,{endDateInput:t.payload.endDateInput});case f.SET_TICKET_TEMP_END_DATE_MOMENT:return s()({},e,{endDateMoment:t.payload.endDateMoment});case f.SET_TICKET_TEMP_START_TIME:return s()({},e,{startTime:t.payload.startTime});case f.SET_TICKET_TEMP_END_TIME:return s()({},e,{endTime:t.payload.endTime});case f.SET_TICKET_TEMP_START_TIME_INPUT:return s()({},e,{startTimeInput:t.payload.startTimeInput});case f.SET_TICKET_TEMP_END_TIME_INPUT:return s()({},e,{endTimeInput:t.payload.endTimeInput});case f.SET_TICKET_TEMP_CAPACITY_TYPE:return s()({},e,{capacityType:t.payload.capacityType});case f.SET_TICKET_TEMP_CAPACITY:return s()({},e,{capacity:t.payload.capacity});default:return e}},dn={details:en,tempDetails:cn,sold:0,available:0,ticketId:0,currencySymbol:function(e){var t=qt(),n=Vt();if(""===e)return t.default_currency;var r=n.filter((function(t){return t.class===e})),a=h()(r,1)[0];return a?a.currency:t.default_currency}(Ft()),currencyPosition:(i=y.string.isTruthy(Gt()&&Gt().reverseCurrencyPosition)?"suffix":"prefix",Bt()&&Bt().defaultCurrencyPosition?Bt().defaultCurrencyPosition:i),provider:"",hasAttendeeInfoFields:!1,isLoading:!1,isModalOpen:!1,hasBeenCreated:!1,hasChanges:!1,hasDurationError:!1,isSelected:!1},ln=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:dn,t=arguments[1];switch(t.type){case f.SET_TICKET_TITLE:case f.SET_TICKET_DESCRIPTION:case f.SET_TICKET_PRICE:case f.SET_TICKET_SKU:case f.SET_TICKET_IAC_SETTING:case f.SET_TICKET_START_DATE:case f.SET_TICKET_START_DATE_INPUT:case f.SET_TICKET_START_DATE_MOMENT:case f.SET_TICKET_END_DATE:case f.SET_TICKET_END_DATE_INPUT:case f.SET_TICKET_END_DATE_MOMENT:case f.SET_TICKET_START_TIME:case f.SET_TICKET_END_TIME:case f.SET_TICKET_START_TIME_INPUT:case f.SET_TICKET_END_TIME_INPUT:case f.SET_TICKET_CAPACITY_TYPE:case f.SET_TICKET_CAPACITY:return s()({},e,{details:tn(e.details,t)});case f.SET_TICKET_TEMP_TITLE:case f.SET_TICKET_TEMP_DESCRIPTION:case f.SET_TICKET_TEMP_PRICE:case f.SET_TICKET_TEMP_SKU:case f.SET_TICKET_TEMP_IAC_SETTING:case f.SET_TICKET_TEMP_START_DATE:case f.SET_TICKET_TEMP_START_DATE_INPUT:case f.SET_TICKET_TEMP_START_DATE_MOMENT:case f.SET_TICKET_TEMP_END_DATE:case f.SET_TICKET_TEMP_END_DATE_INPUT:case f.SET_TICKET_TEMP_END_DATE_MOMENT:case f.SET_TICKET_TEMP_START_TIME:case f.SET_TICKET_TEMP_END_TIME:case f.SET_TICKET_TEMP_START_TIME_INPUT:case f.SET_TICKET_TEMP_END_TIME_INPUT:case f.SET_TICKET_TEMP_CAPACITY_TYPE:case f.SET_TICKET_TEMP_CAPACITY:return s()({},e,{tempDetails:un(e.tempDetails,t)});case f.SET_TICKET_SOLD:return s()({},e,{sold:t.payload.sold});case f.SET_TICKET_AVAILABLE:return s()({},e,{available:t.payload.available});case f.SET_TICKET_ID:return s()({},e,{ticketId:t.payload.ticketId});case f.SET_TICKET_CURRENCY_SYMBOL:return s()({},e,{currencySymbol:t.payload.currencySymbol});case f.SET_TICKET_CURRENCY_POSITION:return s()({},e,{currencyPosition:t.payload.currencyPosition});case f.SET_TICKET_PROVIDER:return s()({},e,{provider:t.payload.provider});case f.SET_TICKET_HAS_ATTENDEE_INFO_FIELDS:return s()({},e,{hasAttendeeInfoFields:t.payload.hasAttendeeInfoFields});case f.SET_TICKET_IS_LOADING:return s()({},e,{isLoading:t.payload.isLoading});case f.SET_TICKET_IS_MODAL_OPEN:return s()({},e,{isModalOpen:t.payload.isModalOpen});case f.SET_TICKET_HAS_BEEN_CREATED:return s()({},e,{hasBeenCreated:t.payload.hasBeenCreated});case f.SET_TICKET_HAS_CHANGES:return s()({},e,{hasChanges:t.payload.hasChanges});case f.SET_TICKET_HAS_DURATION_ERROR:return s()({},e,{hasDurationError:t.payload.hasDurationError});case f.SET_TICKET_IS_SELECTED:return s()({},e,{isSelected:t.payload.isSelected});default:return e}},_n=Object(_.b)({byClientId:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1];switch(t.type){case f.SET_TICKET_TITLE:case f.SET_TICKET_DESCRIPTION:case f.SET_TICKET_PRICE:case f.SET_TICKET_SKU:case f.SET_TICKET_IAC_SETTING:case f.SET_TICKET_START_DATE:case f.SET_TICKET_START_DATE_INPUT:case f.SET_TICKET_START_DATE_MOMENT:case f.SET_TICKET_END_DATE:case f.SET_TICKET_END_DATE_INPUT:case f.SET_TICKET_END_DATE_MOMENT:case f.SET_TICKET_START_TIME:case f.SET_TICKET_END_TIME:case f.SET_TICKET_START_TIME_INPUT:case f.SET_TICKET_END_TIME_INPUT:case f.SET_TICKET_CAPACITY_TYPE:case f.SET_TICKET_CAPACITY:case f.SET_TICKET_TEMP_TITLE:case f.SET_TICKET_TEMP_DESCRIPTION:case f.SET_TICKET_TEMP_PRICE:case f.SET_TICKET_TEMP_SKU:case f.SET_TICKET_TEMP_IAC_SETTING:case f.SET_TICKET_TEMP_START_DATE:case f.SET_TICKET_TEMP_START_DATE_INPUT:case f.SET_TICKET_TEMP_START_DATE_MOMENT:case f.SET_TICKET_TEMP_END_DATE:case f.SET_TICKET_TEMP_END_DATE_INPUT:case f.SET_TICKET_TEMP_END_DATE_MOMENT:case f.SET_TICKET_TEMP_START_TIME:case f.SET_TICKET_TEMP_END_TIME:case f.SET_TICKET_TEMP_START_TIME_INPUT:case f.SET_TICKET_TEMP_END_TIME_INPUT:case f.SET_TICKET_TEMP_CAPACITY_TYPE:case f.SET_TICKET_TEMP_CAPACITY:case f.SET_TICKET_SOLD:case f.SET_TICKET_AVAILABLE:case f.SET_TICKET_ID:case f.SET_TICKET_CURRENCY_SYMBOL:case f.SET_TICKET_CURRENCY_POSITION:case f.SET_TICKET_PROVIDER:case f.SET_TICKET_HAS_ATTENDEE_INFO_FIELDS:case f.SET_TICKET_IS_LOADING:case f.SET_TICKET_IS_MODAL_OPEN:case f.SET_TICKET_HAS_BEEN_CREATED:case f.SET_TICKET_HAS_CHANGES:case f.SET_TICKET_HAS_DURATION_ERROR:case f.SET_TICKET_IS_SELECTED:case f.REGISTER_TICKET_BLOCK:return s()({},e,l()({},t.payload.clientId,ln(e[t.payload.clientId],t)));case f.REMOVE_TICKET_BLOCK:return p()(e,[t.payload.clientId]);case f.REMOVE_TICKET_BLOCKS:return{};default:return e}},allClientIds:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1];switch(t.type){case f.REGISTER_TICKET_BLOCK:return[].concat(u()(e),[t.payload.clientId]);case f.REMOVE_TICKET_BLOCK:return e.filter((function(e){return t.payload.clientId!==e}));case f.REMOVE_TICKET_BLOCKS:return[];default:return e}}}),mn=n(62),pn={headerImage:mn.a,isSelected:!1,isSettingsOpen:!1,isSettingsLoading:!1,provider:"",sharedCapacity:"",tempSharedCapacity:"",tickets:_n(void 0,{})},fn=n(10),Tn=n(12),hn=n.n(Tn),yn=n(112),bn=n.n(yn),Mn=n(0),Sn=n(18),En=n(111),gn=n(14),kn=n(60),vn=n(8),Dn=n(35),Ln=n(20),On=n(33),Yn=n(27),wn=hn.a.mark(_r),jn=hn.a.mark(mr),In=hn.a.mark(pr),Pn=hn.a.mark(fr),Cn=hn.a.mark(Tr),xn=hn.a.mark(hr),Rn=hn.a.mark(yr),An=hn.a.mark(br),Hn=hn.a.mark(Mr),Nn=hn.a.mark(Sr),Vn=hn.a.mark(Er),Fn=hn.a.mark(gr),Kn=hn.a.mark(kr),Wn=hn.a.mark(vr),Un=hn.a.mark(Dr),zn=hn.a.mark(Lr),Gn=hn.a.mark(Or),Bn=hn.a.mark(Yr),qn=hn.a.mark(wr),Jn=hn.a.mark(jr),$n=hn.a.mark(Ir),Zn=hn.a.mark(Pr),Qn=hn.a.mark(Cr),Xn=hn.a.mark(xr),er=hn.a.mark(Rr),tr=hn.a.mark(Ar),nr=hn.a.mark(Hr),rr=hn.a.mark(Nr),ar=hn.a.mark(Vr),ir=D.UNLIMITED,or=D.SHARED,sr=D.TICKET_TYPES,cr=D.PROVIDER_CLASS_TO_PROVIDER_MAPPING,ur=(y.globals.tickets,y.globals.restNonce),dr=y.globals.tecDateSettings,lr=y.api.wpREST;function _r(e){var t,n,r,a,i;return hn.a.wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return o.next=2,Object(Mn.b)(Sn.dispatch,"core/editor");case 2:return t=o.sent,n=t.insertBlock,o.next=6,Object(Mn.b)(Sn.select,"core/editor");case 6:return r=o.sent,a=r.getBlockCount,i=r.getBlocks,o.next=11,Object(Mn.b)([i(),"filter"],(function(e){return"tribe/tickets"===e.name}));case 11:o.sent.forEach((function(t){var r=t.clientId;e.forEach((function(e){var t={hasBeenCreated:!0,ticketId:e},i=a(r),o=Object(En.createBlock)("tribe/tickets-item",t);n(o,i,r,!1)}))}));case 13:case"end":return o.stop()}}),wn,this)}function mr(e){var t,n,r,a,i,o,s,c;return hn.a.wrap((function(u){for(;;)switch(u.prev=u.next){case 0:return t=e.payload.get,n=parseInt(t("header",mn.a.id),10),r=t("sharedCapacity"),a=t("tickets",[]),u.next=6,Object(Mn.f)(oe);case 6:if(i=u.sent,!((o=a.filter((function(e){return!bn()(i,e)}))).length>=1)){u.next=11;break}return u.next=11,Object(Mn.b)(_r,o);case 11:if("0"===r){u.next=14;break}return u.next=14,Object(Mn.a)([Object(Mn.e)(fn.setTicketsSharedCapacity(r)),Object(Mn.e)(fn.setTicketsTempSharedCapacity(r))]);case 14:if(isNaN(n)||0===n){u.next=17;break}return u.next=17,Object(Mn.e)(fn.fetchTicketsHeaderImage(n));case 17:if((s=t("provider",pn.provider))!==D.RSVP_CLASS&&s){u.next=23;break}return u.next=21,Object(Mn.f)(Ft);case 21:c=u.sent,s=c===D.RSVP_CLASS?"":c;case 23:return u.next=25,Object(Mn.e)(fn.setTicketsProvider(s));case 25:case"end":return u.stop()}}),jn,this)}function pr(){var e,t,n;return hn.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,Object(Mn.f)(ee);case 2:return e=r.sent,r.next=5,Object(Mn.a)([Object(Mn.e)(fn.removeTicketBlocks()),Object(Mn.e)(fn.setTicketsIsSettingsOpen(!1))]);case 5:if(e){r.next=14;break}return r.next=8,Object(Mn.b)([Object(Sn.select)("core/editor"),"getCurrentPostAttribute"],"meta");case 8:return t=r.sent,n=s()({},t,l()({},vn.d,"")),r.next=12,Object(Mn.b)([Object(Sn.dispatch)("core/editor"),"editPost"],{meta:n});case 12:return r.next=14,Object(Mn.a)([Object(Mn.e)(fn.setTicketsSharedCapacity("")),Object(Mn.e)(fn.setTicketsTempSharedCapacity(""))]);case 14:case"end":return r.stop()}}),In,this)}function fr(e){var t,n,r,a,i,o,s,c,u,d,l,_,m,p,f,T,h,b,M;return hn.a.wrap((function(S){for(;;)switch(S.prev=S.next){case 0:return t=e.payload,n=t.clientId,r=t.get,a=r("ticketId",dn.ticketId),i=r("hasBeenCreated",dn.hasBeenCreated),o=dr().datepickerFormat,S.next=6,Object(Mn.b)([Object(Sn.select)("core/editor"),"getEditedPostAttribute"],"date");case 6:return s=S.sent,S.next=9,Object(Mn.b)(y.moment.toMoment,s);case 9:return c=S.sent,S.next=12,Object(Mn.b)(y.moment.toDatabaseDate,c);case 12:return u=S.sent,S.next=15,o?Object(Mn.b)(y.moment.toDate,c,o):Object(Mn.b)(y.moment.toDate,c);case 15:return d=S.sent,S.next=18,Object(Mn.b)(y.moment.toDatabaseTime,c);case 18:return l=S.sent,S.next=21,Object(Mn.b)(y.moment.toTime,c);case 21:return _=S.sent,S.next=24,Object(Mn.a)([Object(Mn.e)(fn.setTicketStartDate(n,u)),Object(Mn.e)(fn.setTicketStartDateInput(n,d)),Object(Mn.e)(fn.setTicketStartDateMoment(n,c)),Object(Mn.e)(fn.setTicketStartTime(n,l)),Object(Mn.e)(fn.setTicketStartTimeInput(n,_)),Object(Mn.e)(fn.setTicketTempStartDate(n,u)),Object(Mn.e)(fn.setTicketTempStartDateInput(n,d)),Object(Mn.e)(fn.setTicketTempStartDateMoment(n,c)),Object(Mn.e)(fn.setTicketTempStartTime(n,l)),Object(Mn.e)(fn.setTicketTempStartTimeInput(n,_)),Object(Mn.e)(fn.setTicketHasBeenCreated(n,i))]);case 24:return S.next=26,Object(Mn.b)(Yn.e);case 26:if(!S.sent||!window.tribe.events){S.next=54;break}return S.prev=28,S.next=31,Object(Mn.f)(tribe.events.data.blocks.datetime.selectors.getStart);case 31:return m=S.sent,S.next=34,Object(Mn.b)(y.moment.toMoment,m);case 34:return p=S.sent,S.next=37,Object(Mn.b)(y.moment.toDatabaseDate,p);case 37:return f=S.sent,S.next=40,o?Object(Mn.b)(y.moment.toDate,p,o):Object(Mn.b)(y.moment.toDate,p);case 40:return T=S.sent,S.next=43,Object(Mn.b)(y.moment.toDatabaseTime,p);case 43:return h=S.sent,S.next=46,Object(Mn.b)(y.moment.toTime,p);case 46:return b=S.sent,S.next=49,Object(Mn.a)([Object(Mn.e)(fn.setTicketEndDate(n,f)),Object(Mn.e)(fn.setTicketEndDateInput(n,T)),Object(Mn.e)(fn.setTicketEndDateMoment(n,p)),Object(Mn.e)(fn.setTicketEndTime(n,h)),Object(Mn.e)(fn.setTicketEndTimeInput(n,b)),Object(Mn.e)(fn.setTicketTempEndDate(n,f)),Object(Mn.e)(fn.setTicketTempEndDateInput(n,T)),Object(Mn.e)(fn.setTicketTempEndDateMoment(n,p)),Object(Mn.e)(fn.setTicketTempEndTime(n,h)),Object(Mn.e)(fn.setTicketTempEndTimeInput(n,b))]);case 49:S.next=54;break;case 51:S.prev=51,S.t0=S.catch(28),console.error(S.t0);case 54:return S.next=56,Object(Mn.f)(Dn.plugins.selectors.hasPlugin,Dn.plugins.constants.TICKETS_PLUS);case 56:if(!S.sent){S.next=60;break}return S.next=60,Object(Mn.a)([Object(Mn.e)(fn.setTicketCapacityType(n,D.TICKET_TYPES[D.SHARED])),Object(Mn.e)(fn.setTicketTempCapacityType(n,D.TICKET_TYPES[D.SHARED]))]);case 60:return S.next=62,Object(Mn.f)(V);case 62:if(!(M=S.sent)){S.next=66;break}return S.next=66,Object(Mn.a)([Object(Mn.e)(fn.setTicketCapacity(n,M)),Object(Mn.e)(fn.setTicketTempCapacity(n,M))]);case 66:if(0===a){S.next=69;break}return S.next=69,Object(Mn.a)([Object(Mn.e)(fn.setTicketId(n,a)),Object(Mn.b)(yr,{payload:{clientId:n,ticketId:a}})]);case 69:return S.next=71,Object(Mn.b)(jr,n);case 71:return S.next=73,Object(Mn.d)(Lr,n);case 73:case"end":return S.stop()}}),Pn,this,[[28,51]])}function Tr(e){var t,n,r,a,i,o,s,c;return hn.a.wrap((function(u){for(;;)switch(u.prev=u.next){case 0:return t=new FormData,n={clientId:e},u.next=4,Object(Mn.b)([Object(Sn.select)("core/editor"),"getBlockRootClientId"],e);case 4:return r=u.sent,u.next=7,Object(Mn.f)(pe,n);case 7:return a=u.sent,u.next=10,Object(Mn.f)(N);case 10:return i=u.sent,u.t0=t,u.next=14,Object(Mn.b)([Object(Sn.select)("core/editor"),"getCurrentPostId"]);case 14:return u.t1=u.sent,u.t0.append.call(u.t0,"post_id",u.t1),t.append("provider",a||i),u.t2=t,u.next=20,Object(Mn.f)(et,n);case 20:return u.t3=u.sent,u.t2.append.call(u.t2,"name",u.t3),u.t4=t,u.next=25,Object(Mn.f)(tt,n);case 25:return u.t5=u.sent,u.t4.append.call(u.t4,"description",u.t5),u.t6=t,u.next=30,Object(Mn.f)(nt,n);case 30:return u.t7=u.sent,u.t6.append.call(u.t6,"price",u.t7),u.t8=t,u.next=35,Object(Mn.f)(it,n);case 35:return u.t9=u.sent,u.t8.append.call(u.t8,"start_date",u.t9),u.t10=t,u.next=40,Object(Mn.f)(lt,n);case 40:return u.t11=u.sent,u.t10.append.call(u.t10,"start_time",u.t11),u.t12=t,u.next=45,Object(Mn.f)(ct,n);case 45:return u.t13=u.sent,u.t12.append.call(u.t12,"end_date",u.t13),u.t14=t,u.next=50,Object(Mn.f)(mt,n);case 50:return u.t15=u.sent,u.t14.append.call(u.t14,"end_time",u.t15),u.t16=t,u.next=55,Object(Mn.f)(rt,n);case 55:return u.t17=u.sent,u.t16.append.call(u.t16,"sku",u.t17),u.t18=t,u.next=60,Object(Mn.f)(at,n);case 60:return u.t19=u.sent,u.t18.append.call(u.t18,"iac",u.t19),u.t20=t,u.next=65,Object(Mn.b)([Object(Sn.select)("core/editor"),"getBlockIndex"],e,r);case 65:return u.t21=u.sent,u.t20.append.call(u.t20,"menu_order",u.t21),u.next=69,Object(Mn.f)(ht,n);case 69:return o=u.sent,u.next=72,Object(Mn.f)(yt,n);case 72:if(s=u.sent,c=o===sr[ir],t.append("ticket[mode]",c?"":o),t.append("ticket[capacity]",c?"":s),o!==sr[or]){u.next=82;break}return u.t22=t,u.next=80,Object(Mn.f)(K);case 80:u.t23=u.sent,u.t22.append.call(u.t22,"ticket[event_capacity]",u.t23);case 82:return u.abrupt("return",t);case 83:case"end":return u.stop()}}),Cn,this)}function hr(e){var t,n;return hn.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return t=Object(Sn.dispatch)("core/editor"),n=t.removeBlock,r.next=3,Object(Mn.a)([Object(Mn.e)(fn.removeTicketBlock(e)),Object(Mn.b)(n,e)]);case 3:case"end":return r.stop()}}),xn,this)}function yr(e){var t,n,r,a,i,o,s,c,u,d,l,_,m,p,f,T,h,b,M,S,E,g,k,v,L,O,Y,w,j,I,P,C,x;return hn.a.wrap((function(R){for(;;)switch(R.prev=R.next){case 0:if(t=e.payload,n=t.ticketId,r=t.clientId,0!==n){R.next=3;break}return R.abrupt("return");case 3:return R.next=5,Object(Mn.e)(fn.setTicketIsLoading(r,!0));case 5:return R.prev=5,R.next=8,Object(Mn.b)(lr,{path:"tickets/"+n,namespace:"tribe/tickets/v1"});case 8:if(a=R.sent,i=a.response,o=a.data,s=o.status,c=void 0===s?"":s,u=o.provider,404!==i.status&&"trash"!==c&&u!==D.RSVP){R.next=16;break}return R.next=15,Object(Mn.b)(hr,r);case 15:return R.abrupt("return");case 16:if(!i.ok){R.next=60;break}return d=o.totals,l=void 0===d?{}:d,_=o.available_from,m=o.available_until,p=o.cost_details,f=o.title,T=o.description,h=o.sku,b=o.iac,M=o.capacity_type,S=o.capacity,E=o.supports_attendee_information,g=dr().datepickerFormat,R.next=21,Object(Mn.b)(y.moment.toMoment,_);case 21:return k=R.sent,R.next=24,Object(Mn.b)(y.moment.toDatabaseDate,k);case 24:return v=R.sent,R.next=27,g?Object(Mn.b)(y.moment.toDate,k,g):Object(Mn.b)(y.moment.toDate,k);case 27:return L=R.sent,R.next=30,Object(Mn.b)(y.moment.toDatabaseTime,k);case 30:return O=R.sent,R.next=33,Object(Mn.b)(y.moment.toTime,k);case 33:return Y=R.sent,R.next=36,Object(Mn.b)(y.moment.toMoment,"");case 36:if(w=R.sent,j="",I="",P="",C="",!m){R.next=57;break}return R.next=44,Object(Mn.b)(y.moment.toMoment,m);case 44:return w=R.sent,R.next=47,Object(Mn.b)(y.moment.toDatabaseDate,w);case 47:return j=R.sent,R.next=50,g?Object(Mn.b)(y.moment.toDate,w,g):Object(Mn.b)(y.moment.toDate,w);case 50:return I=R.sent,R.next=53,Object(Mn.b)(y.moment.toDatabaseTime,w);case 53:return P=R.sent,R.next=56,Object(Mn.b)(y.moment.toTime,w);case 56:C=R.sent;case 57:return x={title:f,description:T,price:p.values[0],sku:h,iac:b,startDate:v,startDateInput:L,startDateMoment:k,endDate:j,endDateInput:I,endDateMoment:w,startTime:O,endTime:P,startTimeInput:Y,endTimeInput:C,capacityType:M,capacity:S},R.next=60,Object(Mn.a)([Object(Mn.e)(fn.setTicketDetails(r,x)),Object(Mn.e)(fn.setTicketTempDetails(r,x)),Object(Mn.e)(fn.setTicketSold(r,l.sold)),Object(Mn.e)(fn.setTicketAvailable(r,l.stock)),Object(Mn.e)(fn.setTicketCurrencySymbol(r,p.currency_symbol)),Object(Mn.e)(fn.setTicketCurrencyPosition(r,p.currency_position)),Object(Mn.e)(fn.setTicketProvider(r,u)),Object(Mn.e)(fn.setTicketHasAttendeeInfoFields(r,E)),Object(Mn.e)(fn.setTicketHasBeenCreated(r,!0))]);case 60:R.next=65;break;case 62:R.prev=62,R.t0=R.catch(5),console.error(R.t0);case 65:return R.next=67,Object(Mn.e)(fn.setTicketIsLoading(r,!1));case 67:case"end":return R.stop()}}),Rn,this,[[5,62]])}function br(e){var t,n,r,a,i,o,s,c,u,d,l,_,m,p,f,T,y,b,M,S,E,g,k,v,D,L,O,Y,w,j,I;return hn.a.wrap((function(P){for(;;)switch(P.prev=P.next){case 0:return t=e.payload.clientId,n={clientId:t},r=ur(),a=r.add_ticket_nonce,i=void 0===a?"":a,P.next=5,Object(Mn.b)(Tr,t);case 5:return(o=P.sent).append("add_ticket_nonce",i),P.prev=7,P.next=10,Object(Mn.e)(fn.setTicketIsLoading(t,!0));case 10:return P.next=12,Object(Mn.b)(lr,{path:"tickets/",namespace:"tribe/tickets/v1",initParams:{method:"POST",body:o}});case 12:if(s=P.sent,c=s.response,u=s.data,!c.ok){P.next=51;break}return P.next=18,Object(Mn.f)(V);case 18:return d=P.sent,P.next=21,Object(Mn.f)(K);case 21:if(l=P.sent,""!==d||isNaN(l)||!(l>0)){P.next=25;break}return P.next=25,Object(Mn.e)(fn.setTicketsSharedCapacity(l));case 25:return _=-1===u.capacity_details.available?0:u.capacity_details.available,P.next=28,Object(Mn.a)([Object(Mn.f)(et,n),Object(Mn.f)(tt,n),Object(Mn.f)(nt,n),Object(Mn.f)(rt,n),Object(Mn.f)(at,n),Object(Mn.f)(it,n),Object(Mn.f)(ot,n),Object(Mn.f)(st,n),Object(Mn.f)(ct,n),Object(Mn.f)(ut,n),Object(Mn.f)(dt,n),Object(Mn.f)(lt,n),Object(Mn.f)(mt,n),Object(Mn.f)(ft,n),Object(Mn.f)(Tt,n),Object(Mn.f)(ht,n),Object(Mn.f)(yt,n)]);case 28:return m=P.sent,p=h()(m,17),f=p[0],T=p[1],y=p[2],b=p[3],M=p[4],S=p[5],E=p[6],g=p[7],k=p[8],v=p[9],D=p[10],L=p[11],O=p[12],Y=p[13],w=p[14],j=p[15],I=p[16],P.next=49,Object(Mn.a)([Object(Mn.e)(fn.setTicketDetails(t,{title:f,description:T,price:y,sku:b,iac:M,startDate:S,startDateInput:E,startDateMoment:g,endDate:k,endDateInput:v,endDateMoment:D,startTime:L,endTime:O,startTimeInput:Y,endTimeInput:w,capacityType:j,capacity:I})),Object(Mn.e)(fn.setTicketId(t,u.id)),Object(Mn.e)(fn.setTicketHasBeenCreated(t,!0)),Object(Mn.e)(fn.setTicketAvailable(t,_)),Object(Mn.e)(fn.setTicketProvider(t,cr[u.provider_class])),Object(Mn.e)(fn.setTicketHasChanges(t,!1))]);case 49:return P.next=51,Object(Mn.d)(Lr,t);case 51:P.next=56;break;case 53:P.prev=53,P.t0=P.catch(7),console.error(P.t0);case 56:return P.prev=56,P.next=59,Object(Mn.e)(fn.setTicketIsLoading(t,!1));case 59:return P.finish(56);case 60:case"end":return P.stop()}}),An,this,[[7,53,56,60]])}function Mr(e){var t,n,r,a,i,o,s,c,u,d,l,_,m,p,f,T,y,b,M,S,E,g,k,v,D,L,O,Y,w,j,I,P,C,x,R,A,H,N,V,F,K;return hn.a.wrap((function(W){for(;;)switch(W.prev=W.next){case 0:return t=e.payload.clientId,n={clientId:t},r=ur(),a=r.edit_ticket_nonce,i=void 0===a?"":a,W.next=5,Object(Mn.b)(Tr,t);case 5:return(o=W.sent).append("edit_ticket_nonce",i),W.next=9,Object(Mn.f)(le,n);case 9:for(s=W.sent,W.prev=10,c=[],u=!0,d=!1,l=void 0,W.prev=15,_=o.entries()[Symbol.iterator]();!(u=(m=_.next()).done);u=!0)p=m.value,f=h()(p,2),T=f[0],y=f[1],c.push(encodeURIComponent(T)+"="+encodeURIComponent(y));W.next=23;break;case 19:W.prev=19,W.t0=W.catch(15),d=!0,l=W.t0;case 23:W.prev=23,W.prev=24,!u&&_.return&&_.return();case 26:if(W.prev=26,!d){W.next=29;break}throw l;case 29:return W.finish(26);case 30:return W.finish(23);case 31:return W.next=33,Object(Mn.e)(fn.setTicketIsLoading(t,!0));case 33:return W.next=35,Object(Mn.b)(lr,{path:"tickets/"+s,namespace:"tribe/tickets/v1",headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"},initParams:{method:"PUT",body:c.join("&")}});case 35:if(b=W.sent,M=b.response,S=b.data,!M.ok){W.next=64;break}return E=S.capacity_details,g=-1===E.available?0:E.available,W.next=43,Object(Mn.a)([Object(Mn.f)(et,n),Object(Mn.f)(tt,n),Object(Mn.f)(nt,n),Object(Mn.f)(rt,n),Object(Mn.f)(at,n),Object(Mn.f)(it,n),Object(Mn.f)(ot,n),Object(Mn.f)(st,n),Object(Mn.f)(ct,n),Object(Mn.f)(ut,n),Object(Mn.f)(dt,n),Object(Mn.f)(lt,n),Object(Mn.f)(mt,n),Object(Mn.f)(ft,n),Object(Mn.f)(Tt,n),Object(Mn.f)(ht,n),Object(Mn.f)(yt,n)]);case 43:return k=W.sent,v=h()(k,17),D=v[0],L=v[1],O=v[2],Y=v[3],w=v[4],j=v[5],I=v[6],P=v[7],C=v[8],x=v[9],R=v[10],A=v[11],H=v[12],N=v[13],V=v[14],F=v[15],K=v[16],W.next=64,Object(Mn.a)([Object(Mn.e)(fn.setTicketDetails(t,{title:D,description:L,price:O,sku:Y,iac:w,startDate:j,startDateInput:I,startDateMoment:P,endDate:C,endDateInput:x,endDateMoment:R,startTime:A,endTime:H,startTimeInput:N,endTimeInput:V,capacityType:F,capacity:K})),Object(Mn.e)(fn.setTicketSold(t,E.sold)),Object(Mn.e)(fn.setTicketAvailable(t,g)),Object(Mn.e)(fn.setTicketHasChanges(t,!1))]);case 64:W.next=69;break;case 66:W.prev=66,W.t1=W.catch(10),console.error(W.t1);case 69:return W.prev=69,W.next=72,Object(Mn.e)(fn.setTicketIsLoading(t,!1));case 72:return W.finish(69);case 73:case"end":return W.stop()}}),Hn,this,[[10,66,69,73],[15,19,23,31],[24,,26,30]])}function Sr(e){var t,n,r,a,i,o,s,c,u;return hn.a.wrap((function(d){for(;;)switch(d.prev=d.next){case 0:return t=e.payload.clientId,n={clientId:t},d.next=4,Object(Mn.b)([window,"confirm"],Object(L.__)("Are you sure you want to delete this ticket? It cannot be undone."));case 4:if(!d.sent){d.next=33;break}return d.next=8,Object(Mn.f)(le,n);case 8:return r=d.sent,d.next=11,Object(Mn.f)(ye,n);case 11:return a=d.sent,d.next=14,Object(Mn.e)(fn.setTicketIsSelected(t,!1));case 14:return d.next=16,Object(Mn.e)(fn.removeTicketBlock(t));case 16:return d.next=18,Object(Mn.b)([Object(Sn.dispatch)("core/editor"),"clearSelectedBlock"]);case 18:return d.next=20,Object(Mn.b)([Object(Sn.dispatch)("core/editor"),"removeBlocks"],[t]);case 20:if(!a){d.next=33;break}return i=ur(),o=i.remove_ticket_nonce,s=void 0===o?"":o,d.next=24,Object(Mn.b)([Object(Sn.select)("core/editor"),"getCurrentPostId"]);case 24:return c=d.sent,u=[encodeURIComponent("post_id")+"="+encodeURIComponent(c),encodeURIComponent("remove_ticket_nonce")+"="+encodeURIComponent(s)],d.prev=26,d.next=29,Object(Mn.b)(lr,{path:"tickets/"+r,namespace:"tribe/tickets/v1",headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"},initParams:{method:"DELETE",body:u.join("&")}});case 29:d.next=33;break;case 31:d.prev=31,d.t0=d.catch(26);case 33:case"end":return d.stop()}}),Nn,this,[[26,31]])}function Er(e){var t,n,r,a,i;return hn.a.wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return t=e.payload.id,o.next=3,Object(Mn.e)(fn.setTicketsIsSettingsLoading(!0));case 3:return o.prev=3,o.next=6,Object(Mn.b)(lr,{path:"media/"+t});case 6:if(n=o.sent,r=n.response,a=n.data,!r.ok){o.next=13;break}return i={id:a.id,alt:a.alt_text,src:a.media_details.sizes.medium.source_url},o.next=13,Object(Mn.e)(fn.setTicketsHeaderImage(i));case 13:o.next=18;break;case 15:o.prev=15,o.t0=o.catch(3),console.error(o.t0);case 18:return o.prev=18,o.next=21,Object(Mn.e)(fn.setTicketsIsSettingsLoading(!1));case 21:return o.finish(18);case 22:case"end":return o.stop()}}),Vn,this,[[3,15,18,22]])}function gr(e){var t,n,r,a,i,o,s,c;return hn.a.wrap((function(u){for(;;)switch(u.prev=u.next){case 0:return t=e.payload.image,u.next=3,Object(Mn.b)([Object(Sn.select)("core/editor"),"getCurrentPostId"]);case 3:return n=u.sent,r={meta:l()({},vn.i,""+t.id)},u.prev=5,u.next=8,Object(Mn.e)(fn.setTicketsIsSettingsLoading(!0));case 8:return u.next=10,Object(Mn.e)(gn.setRSVPIsSettingsLoading(!0));case 10:return a=Object(Sn.select)("core/editor").getCurrentPostType(),i=Object(Sn.select)("core").getPostType(a),o=i.rest_base,u.next=15,Object(Mn.b)(lr,{path:o+"/"+n,headers:{"Content-Type":"application/json"},initParams:{method:"PUT",body:JSON.stringify(r)}});case 15:if(s=u.sent,!s.response.ok){u.next=23;break}return c={id:t.id,alt:t.alt,src:t.sizes.medium.url},u.next=21,Object(Mn.e)(fn.setTicketsHeaderImage(c));case 21:return u.next=23,Object(Mn.e)(gn.setRSVPHeaderImage(c));case 23:u.next=27;break;case 25:u.prev=25,u.t0=u.catch(5);case 27:return u.prev=27,u.next=30,Object(Mn.e)(fn.setTicketsIsSettingsLoading(!1));case 30:return u.next=32,Object(Mn.e)(gn.setRSVPIsSettingsLoading(!1));case 32:return u.finish(27);case 33:case"end":return u.stop()}}),Fn,this,[[5,25,27,33]])}function kr(){var e,t,n,r,a,i;return hn.a.wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return o.next=2,Object(Mn.b)([Object(Sn.select)("core/editor"),"getCurrentPostId"]);case 2:return e=o.sent,t={meta:l()({},vn.i,null)},o.prev=4,o.next=7,Object(Mn.e)(fn.setTicketsIsSettingsLoading(!0));case 7:return o.next=9,Object(Mn.e)(gn.setRSVPIsSettingsLoading(!0));case 9:return n=Object(Sn.select)("core/editor").getCurrentPostType(),r=Object(Sn.select)("core").getPostType(n),a=r.rest_base,o.next=14,Object(Mn.b)(y.api.wpREST,{path:a+"/"+e,headers:{"Content-Type":"application/json"},initParams:{method:"PUT",body:JSON.stringify(t)}});case 14:if(i=o.sent,!i.response.ok){o.next=21;break}return o.next=19,Object(Mn.e)(fn.setTicketsHeaderImage(mn.a));case 19:return o.next=21,Object(Mn.e)(gn.setRSVPHeaderImage(kn.a));case 21:o.next=25;break;case 23:o.prev=23,o.t0=o.catch(4);case 25:return o.prev=25,o.next=28,Object(Mn.e)(fn.setTicketsIsSettingsLoading(!1));case 28:return o.next=30,Object(Mn.e)(gn.setRSVPIsSettingsLoading(!1));case 30:return o.finish(25);case 31:case"end":return o.stop()}}),Kn,this,[[4,23,25,31]])}function vr(e){var t,n,r,a,i,o,s,c,u,d,l,_,m,p,f,T,h,y,b,M;return hn.a.wrap((function(S){for(;;)switch(S.prev=S.next){case 0:return t=e.payload,n=t.clientId,r=t.details,a=r.title,i=r.description,o=r.price,s=r.sku,c=r.iac,u=r.startDate,d=r.startDateInput,l=r.startDateMoment,_=r.endDate,m=r.endDateInput,p=r.endDateMoment,f=r.startTime,T=r.endTime,h=r.startTimeInput,y=r.endTimeInput,b=r.capacityType,M=r.capacity,S.next=4,Object(Mn.a)([Object(Mn.e)(fn.setTicketTitle(n,a)),Object(Mn.e)(fn.setTicketDescription(n,i)),Object(Mn.e)(fn.setTicketPrice(n,o)),Object(Mn.e)(fn.setTicketSku(n,s)),Object(Mn.e)(fn.setTicketIACSetting(n,c)),Object(Mn.e)(fn.setTicketStartDate(n,u)),Object(Mn.e)(fn.setTicketStartDateInput(n,d)),Object(Mn.e)(fn.setTicketStartDateMoment(n,l)),Object(Mn.e)(fn.setTicketEndDate(n,_)),Object(Mn.e)(fn.setTicketEndDateInput(n,m)),Object(Mn.e)(fn.setTicketEndDateMoment(n,p)),Object(Mn.e)(fn.setTicketStartTime(n,f)),Object(Mn.e)(fn.setTicketEndTime(n,T)),Object(Mn.e)(fn.setTicketStartTimeInput(n,h)),Object(Mn.e)(fn.setTicketEndTimeInput(n,y)),Object(Mn.e)(fn.setTicketCapacityType(n,b)),Object(Mn.e)(fn.setTicketCapacity(n,M))]);case 4:case"end":return S.stop()}}),Wn,this)}function Dr(e){var t,n,r,a,i,o,s,c,u,d,l,_,m,p,f,T,h,y,b,M;return hn.a.wrap((function(S){for(;;)switch(S.prev=S.next){case 0:return t=e.payload,n=t.clientId,r=t.tempDetails,a=r.title,i=r.description,o=r.price,s=r.sku,c=r.iac,u=r.startDate,d=r.startDateInput,l=r.startDateMoment,_=r.endDate,m=r.endDateInput,p=r.endDateMoment,f=r.startTime,T=r.endTime,h=r.startTimeInput,y=r.endTimeInput,b=r.capacityType,M=r.capacity,S.next=4,Object(Mn.a)([Object(Mn.e)(fn.setTicketTempTitle(n,a)),Object(Mn.e)(fn.setTicketTempDescription(n,i)),Object(Mn.e)(fn.setTicketTempPrice(n,o)),Object(Mn.e)(fn.setTicketTempSku(n,s)),Object(Mn.e)(fn.setTicketTempIACSetting(n,c)),Object(Mn.e)(fn.setTicketTempStartDate(n,u)),Object(Mn.e)(fn.setTicketTempStartDateInput(n,d)),Object(Mn.e)(fn.setTicketTempStartDateMoment(n,l)),Object(Mn.e)(fn.setTicketTempEndDate(n,_)),Object(Mn.e)(fn.setTicketTempEndDateInput(n,m)),Object(Mn.e)(fn.setTicketTempEndDateMoment(n,p)),Object(Mn.e)(fn.setTicketTempStartTime(n,f)),Object(Mn.e)(fn.setTicketTempEndTime(n,T)),Object(Mn.e)(fn.setTicketTempStartTimeInput(n,h)),Object(Mn.e)(fn.setTicketTempEndTimeInput(n,y)),Object(Mn.e)(fn.setTicketTempCapacityType(n,b)),Object(Mn.e)(fn.setTicketTempCapacity(n,M))]);case 4:case"end":return S.stop()}}),Un,this)}function Lr(e){var t,n;return hn.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return t=void 0,n=void 0,r.prev=1,r.next=4,Object(Mn.f)(ye,{clientId:e});case 4:if(!r.sent){r.next=20;break}return r.next=7,Object(Mn.b)(Yn.c);case 7:return t=r.sent,r.next=10,Object(Mn.b)(Yn.b);case 10:n=r.sent;case 11:return r.next=14,Object(Mn.g)(t);case 14:return r.next=16,Object(Mn.b)(Mr,{payload:{clientId:e}});case 16:return r.next=18,Object(Mn.g)(n);case 18:r.next=11;break;case 20:r.next=25;break;case 22:r.prev=22,r.t0=r.catch(1),console.error(r.t0);case 25:if(r.prev=25,!t){r.next=29;break}return r.next=29,Object(Mn.b)([t,"close"]);case 29:if(!n){r.next=32;break}return r.next=32,Object(Mn.b)([n,"close"]);case 32:return r.finish(25);case 33:case"end":return r.stop()}}),zn,this,[[1,22,25,33]])}function Or(e){var t,n,r;return hn.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return a.next=2,Object(Mn.f)(J);case 2:t=a.sent,n=0;case 4:if(!(n<t.length)){a.next=11;break}return r=t[n],a.next=8,Object(Mn.b)(Yr,e,r);case 8:n++,a.next=4;break;case 11:case"end":return a.stop()}}),Gn,this)}function Yr(e,t){var n,r,a,i,o,s,c,u,d,l,_,m,p;return hn.a.wrap((function(f){for(;;)switch(f.prev=f.next){case 0:return f.prev=0,f.next=3,Object(Mn.f)(dt,{clientId:t});case 3:return n=f.sent,f.next=6,Object(Mn.f)(Ce,{clientId:t});case 6:return r=f.sent,f.next=9,Object(Mn.b)(Yn.a,e);case 9:return a=f.sent,i=a.moment,f.next=13,Object(Mn.a)([Object(Mn.b)([n,"local"]),Object(Mn.b)([r,"local"]),Object(Mn.b)([i,"local"])]);case 13:return f.next=15,Object(Mn.b)([n,"isSame"],r,"minute");case 15:return o=f.sent,f.next=18,Object(Mn.b)([n,"isSame"],i,"minute");case 18:return s=f.sent,f.next=21,Object(Mn.b)(Yn.e);case 21:if(!(f.sent&&window.tribe.events&&o&&s)){f.next=36;break}return f.next=25,Object(Mn.f)(window.tribe.events.data.blocks.datetime.selectors.getStart);case 25:return c=f.sent,f.next=28,Object(Mn.b)(Yn.a,c);case 28:return u=f.sent,d=u.moment,l=u.date,_=u.dateInput,m=u.time,p=u.timeInput,f.next=36,Object(Mn.a)([Object(Mn.e)(fn.setTicketTempEndDate(t,l)),Object(Mn.e)(fn.setTicketTempEndDateInput(t,_)),Object(Mn.e)(fn.setTicketTempEndDateMoment(t,d)),Object(Mn.e)(fn.setTicketTempEndTime(t,m)),Object(Mn.e)(fn.setTicketTempEndTimeInput(t,p)),Object(Mn.e)(fn.setTicketEndDate(t,l)),Object(Mn.e)(fn.setTicketEndDateInput(t,_)),Object(Mn.e)(fn.setTicketEndDateMoment(t,d)),Object(Mn.e)(fn.setTicketEndTime(t,m)),Object(Mn.e)(fn.setTicketEndTimeInput(t,p)),Object(Mn.e)(fn.setTicketHasChanges(t,!0)),Object(Mn.b)(jr,t)]);case 36:f.next=41;break;case 38:f.prev=38,f.t0=f.catch(0),console.error(f.t0);case 41:case"end":return f.stop()}}),Bn,this,[[0,38]])}function wr(){var e,t,n,r,a,i;return hn.a.wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return o.prev=0,o.next=3,Object(Mn.b)(Yn.d);case 3:return e=o.sent,o.next=6,Object(Mn.g)(e);case 6:return o.next=8,Object(Mn.b)([e,"close"]);case 8:return o.next=10,Object(Mn.b)(Yn.e);case 10:if(!o.sent||!window.tribe.events){o.next=28;break}t=window.tribe.events.data.blocks.datetime.types,n=t.SET_START_DATE_TIME,r=t.SET_START_TIME,a=void 0;case 14:return o.next=17,Object(Mn.f)(window.tribe.events.data.blocks.datetime.selectors.getStart);case 17:return i=o.sent,o.next=20,Object(Mn.g)([n,r]);case 20:if(!a){o.next=23;break}return o.next=23,Object(Mn.c)(a);case 23:return o.next=25,Object(Mn.d)(Or,i);case 25:a=o.sent,o.next=14;break;case 28:o.next=33;break;case 30:o.prev=30,o.t0=o.catch(0),console.error(o.t0);case 33:case"end":return o.stop()}}),qn,this,[[0,30]])}function jr(e){var t,n,r,a,i,o,s,c,u;return hn.a.wrap((function(d){for(;;)switch(d.prev=d.next){case 0:return t=!1,d.next=3,Object(Mn.f)(st,{clientId:e});case 3:return n=d.sent,d.next=6,Object(Mn.f)(dt,{clientId:e});case 6:if(r=d.sent,n&&r){d.next=11;break}t=!0,d.next=33;break;case 11:return d.next=13,Object(Mn.f)(lt,{clientId:e});case 13:return a=d.sent,d.next=16,Object(Mn.f)(mt,{clientId:e});case 16:return i=d.sent,d.next=19,Object(Mn.b)(y.time.toSeconds,a,y.time.TIME_FORMAT_HH_MM_SS);case 19:return o=d.sent,d.next=22,Object(Mn.b)(y.time.toSeconds,i,y.time.TIME_FORMAT_HH_MM_SS);case 22:return s=d.sent,d.next=25,Object(Mn.b)(y.moment.setTimeInSeconds,n.clone(),o);case 25:return c=d.sent,d.next=28,Object(Mn.b)(y.moment.setTimeInSeconds,r.clone(),s);case 28:return u=d.sent,d.next=31,Object(Mn.b)([c,"isSameOrAfter"],u);case 31:d.sent&&(t=!0);case 33:return d.next=35,Object(Mn.e)(fn.setTicketHasDurationError(e,t));case 35:case"end":return d.stop()}}),Jn,this)}function Ir(e){var t,n,r,a,i,o;return hn.a.wrap((function(s){for(;;)switch(s.prev=s.next){case 0:return t=e.payload,n=t.clientId,r=t.date,a=t.dayPickerInput,s.next=3,r?Object(Mn.b)(y.moment.toMoment,r):void 0;case 3:return i=s.sent,s.next=6,r?Object(Mn.b)(y.moment.toDatabaseDate,i):"";case 6:return o=s.sent,s.next=9,Object(Mn.e)(fn.setTicketTempStartDate(n,o));case 9:return s.next=11,Object(Mn.e)(fn.setTicketTempStartDateInput(n,a.state.value));case 11:return s.next=13,Object(Mn.e)(fn.setTicketTempStartDateMoment(n,i));case 13:case"end":return s.stop()}}),$n,this)}function Pr(e){var t,n,r,a,i,o;return hn.a.wrap((function(s){for(;;)switch(s.prev=s.next){case 0:return t=e.payload,n=t.clientId,r=t.date,a=t.dayPickerInput,s.next=3,r?Object(Mn.b)(y.moment.toMoment,r):void 0;case 3:return i=s.sent,s.next=6,r?Object(Mn.b)(y.moment.toDatabaseDate,i):"";case 6:return o=s.sent,s.next=9,Object(Mn.e)(fn.setTicketTempEndDate(n,o));case 9:return s.next=11,Object(Mn.e)(fn.setTicketTempEndDateInput(n,a.state.value));case 11:return s.next=13,Object(Mn.e)(fn.setTicketTempEndDateMoment(n,i));case 13:case"end":return s.stop()}}),Zn,this)}function Cr(e){var t,n,r,a;return hn.a.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return t=e.payload,n=t.clientId,r=t.seconds,i.next=3,Object(Mn.b)(y.time.fromSeconds,r,y.time.TIME_FORMAT_HH_MM);case 3:return a=i.sent,i.next=6,Object(Mn.e)(fn.setTicketTempStartTime(n,a+":00"));case 6:case"end":return i.stop()}}),Qn,this)}function xr(e){var t,n,r,a,i,o;return hn.a.wrap((function(s){for(;;)switch(s.prev=s.next){case 0:return t=e.payload,n=t.clientId,r=t.seconds,s.next=3,Object(Mn.b)(y.time.fromSeconds,r,y.time.TIME_FORMAT_HH_MM);case 3:return a=s.sent,s.next=6,Object(Mn.b)(y.moment.toMoment,a,y.moment.TIME_FORMAT,!1);case 6:return i=s.sent,s.next=9,Object(Mn.b)(y.moment.toTime,i);case 9:return o=s.sent,s.next=12,Object(Mn.e)(fn.setTicketTempStartTimeInput(n,o));case 12:case"end":return s.stop()}}),Xn,this)}function Rr(e){var t,n,r,a;return hn.a.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return t=e.payload,n=t.clientId,r=t.seconds,i.next=3,Object(Mn.b)(y.time.fromSeconds,r,y.time.TIME_FORMAT_HH_MM);case 3:return a=i.sent,i.next=6,Object(Mn.e)(fn.setTicketTempEndTime(n,a+":00"));case 6:case"end":return i.stop()}}),er,this)}function Ar(e){var t,n,r,a,i,o;return hn.a.wrap((function(s){for(;;)switch(s.prev=s.next){case 0:return t=e.payload,n=t.clientId,r=t.seconds,s.next=3,Object(Mn.b)(y.time.fromSeconds,r,y.time.TIME_FORMAT_HH_MM);case 3:return a=s.sent,s.next=6,Object(Mn.b)(y.moment.toMoment,a,y.moment.TIME_FORMAT,!1);case 6:return i=s.sent,s.next=9,Object(Mn.b)(y.moment.toTime,i);case 9:return o=s.sent,s.next=12,Object(Mn.e)(fn.setTicketTempEndTimeInput(n,o));case 12:case"end":return s.stop()}}),tr,this)}function Hr(){var e,t;return hn.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,Object(Mn.f)(J);case 2:return e=n.sent,n.next=5,Object(Mn.f)(On.a);case 5:if(t=n.sent,!e.includes(t)){n.next=13;break}return n.next=9,Object(Mn.e)(fn.setTicketIsSelected(t,!1));case 9:return n.next=11,Object(Mn.e)(fn.removeTicketBlock(t));case 11:return n.next=13,Object(Mn.b)([Object(Sn.dispatch)("core/editor"),"removeBlocks"],[t]);case 13:case"end":return n.stop()}}),nr,this)}function Nr(e){return hn.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:t.t0=e.type,t.next=t.t0===f.SET_TICKETS_INITIAL_STATE?3:t.t0===f.RESET_TICKETS_BLOCK?6:t.t0===f.SET_TICKET_INITIAL_STATE?9:t.t0===f.FETCH_TICKET?12:t.t0===f.CREATE_NEW_TICKET?15:t.t0===f.UPDATE_TICKET?18:t.t0===f.DELETE_TICKET?21:t.t0===f.FETCH_TICKETS_HEADER_IMAGE?24:t.t0===f.UPDATE_TICKETS_HEADER_IMAGE?27:t.t0===f.DELETE_TICKETS_HEADER_IMAGE?30:t.t0===f.SET_TICKET_DETAILS?33:t.t0===f.SET_TICKET_TEMP_DETAILS?36:t.t0===f.HANDLE_TICKET_START_DATE?39:t.t0===f.HANDLE_TICKET_END_DATE?46:t.t0===f.HANDLE_TICKET_START_TIME?53:t.t0===f.HANDLE_TICKET_END_TIME?62:t.t0===Ln.k?71:74;break;case 3:return t.next=5,Object(Mn.b)(mr,e);case 5:return t.abrupt("break",75);case 6:return t.next=8,Object(Mn.b)(pr);case 8:return t.abrupt("break",75);case 9:return t.next=11,Object(Mn.b)(fr,e);case 11:return t.abrupt("break",75);case 12:return t.next=14,Object(Mn.b)(yr,e);case 14:return t.abrupt("break",75);case 15:return t.next=17,Object(Mn.b)(br,e);case 17:return t.abrupt("break",75);case 18:return t.next=20,Object(Mn.b)(Mr,e);case 20:return t.abrupt("break",75);case 21:return t.next=23,Object(Mn.b)(Sr,e);case 23:return t.abrupt("break",75);case 24:return t.next=26,Object(Mn.b)(Er,e);case 26:return t.abrupt("break",75);case 27:return t.next=29,Object(Mn.b)(gr,e);case 29:return t.abrupt("break",75);case 30:return t.next=32,Object(Mn.b)(kr);case 32:return t.abrupt("break",75);case 33:return t.next=35,Object(Mn.b)(vr,e);case 35:return t.abrupt("break",75);case 36:return t.next=38,Object(Mn.b)(Dr,e);case 38:return t.abrupt("break",75);case 39:return t.next=41,Object(Mn.b)(Ir,e);case 41:return t.next=43,Object(Mn.b)(jr,e.payload.clientId);case 43:return t.next=45,Object(Mn.e)(fn.setTicketHasChanges(e.payload.clientId,!0));case 45:return t.abrupt("break",75);case 46:return t.next=48,Object(Mn.b)(Pr,e);case 48:return t.next=50,Object(Mn.b)(jr,e.payload.clientId);case 50:return t.next=52,Object(Mn.e)(fn.setTicketHasChanges(e.payload.clientId,!0));case 52:return t.abrupt("break",75);case 53:return t.next=55,Object(Mn.b)(Cr,e);case 55:return t.next=57,Object(Mn.b)(xr,e);case 57:return t.next=59,Object(Mn.b)(jr,e.payload.clientId);case 59:return t.next=61,Object(Mn.e)(fn.setTicketHasChanges(e.payload.clientId,!0));case 61:return t.abrupt("break",75);case 62:return t.next=64,Object(Mn.b)(Rr,e);case 64:return t.next=66,Object(Mn.b)(Ar,e);case 66:return t.next=68,Object(Mn.b)(jr,e.payload.clientId);case 68:return t.next=70,Object(Mn.e)(fn.setTicketHasChanges(e.payload.clientId,!0));case 70:return t.abrupt("break",75);case 71:return t.next=73,Object(Mn.b)(Hr);case 73:case 74:return t.abrupt("break",75);case 75:case"end":return t.stop()}}),rr,this)}function Vr(){return hn.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(Mn.h)([f.SET_TICKETS_INITIAL_STATE,f.RESET_TICKETS_BLOCK,f.SET_TICKET_INITIAL_STATE,f.FETCH_TICKET,f.CREATE_NEW_TICKET,f.UPDATE_TICKET,f.DELETE_TICKET,f.FETCH_TICKETS_HEADER_IMAGE,f.UPDATE_TICKETS_HEADER_IMAGE,f.DELETE_TICKETS_HEADER_IMAGE,f.SET_TICKET_DETAILS,f.SET_TICKET_TEMP_DETAILS,f.HANDLE_TICKET_START_DATE,f.HANDLE_TICKET_END_DATE,f.HANDLE_TICKET_START_TIME,f.HANDLE_TICKET_END_TIME,Ln.k],Nr);case 2:return e.next=4,Object(Mn.d)(wr);case 4:case"end":return e.stop()}}),ar,this)}t.c=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:pn,t=arguments[1];switch(t.type){case f.SET_TICKETS_HEADER_IMAGE:return s()({},e,{headerImage:Object(mn.b)(e.headerImage,t)});case f.SET_TICKETS_IS_SELECTED:return s()({},e,{isSelected:t.payload.isSelected});case f.SET_TICKETS_IS_SETTINGS_OPEN:return s()({},e,{isSettingsOpen:t.payload.isSettingsOpen});case f.SET_TICKETS_IS_SETTINGS_LOADING:return s()({},e,{isSettingsLoading:t.payload.isSettingsLoading});case f.SET_TICKETS_PROVIDER:return s()({},e,{provider:t.payload.provider});case f.SET_TICKETS_SHARED_CAPACITY:return s()({},e,{sharedCapacity:t.payload.sharedCapacity});case f.SET_TICKETS_TEMP_SHARED_CAPACITY:return s()({},e,{tempSharedCapacity:t.payload.tempSharedCapacity});case f.SET_TICKET_TITLE:case f.SET_TICKET_DESCRIPTION:case f.SET_TICKET_PRICE:case f.SET_TICKET_SKU:case f.SET_TICKET_IAC_SETTING:case f.SET_TICKET_START_DATE:case f.SET_TICKET_START_DATE_INPUT:case f.SET_TICKET_START_DATE_MOMENT:case f.SET_TICKET_END_DATE:case f.SET_TICKET_END_DATE_INPUT:case f.SET_TICKET_END_DATE_MOMENT:case f.SET_TICKET_START_TIME:case f.SET_TICKET_END_TIME:case f.SET_TICKET_START_TIME_INPUT:case f.SET_TICKET_END_TIME_INPUT:case f.SET_TICKET_CAPACITY_TYPE:case f.SET_TICKET_CAPACITY:case f.SET_TICKET_TEMP_TITLE:case f.SET_TICKET_TEMP_DESCRIPTION:case f.SET_TICKET_TEMP_PRICE:case f.SET_TICKET_TEMP_SKU:case f.SET_TICKET_TEMP_IAC_SETTING:case f.SET_TICKET_TEMP_START_DATE:case f.SET_TICKET_TEMP_START_DATE_INPUT:case f.SET_TICKET_TEMP_START_DATE_MOMENT:case f.SET_TICKET_TEMP_END_DATE:case f.SET_TICKET_TEMP_END_DATE_INPUT:case f.SET_TICKET_TEMP_END_DATE_MOMENT:case f.SET_TICKET_TEMP_START_TIME:case f.SET_TICKET_TEMP_END_TIME:case f.SET_TICKET_TEMP_START_TIME_INPUT:case f.SET_TICKET_TEMP_END_TIME_INPUT:case f.SET_TICKET_TEMP_CAPACITY_TYPE:case f.SET_TICKET_TEMP_CAPACITY:case f.SET_TICKET_SOLD:case f.SET_TICKET_AVAILABLE:case f.SET_TICKET_ID:case f.SET_TICKET_CURRENCY_SYMBOL:case f.SET_TICKET_CURRENCY_POSITION:case f.SET_TICKET_PROVIDER:case f.SET_TICKET_HAS_ATTENDEE_INFO_FIELDS:case f.SET_TICKET_IS_LOADING:case f.SET_TICKET_IS_MODAL_OPEN:case f.SET_TICKET_HAS_BEEN_CREATED:case f.SET_TICKET_HAS_CHANGES:case f.SET_TICKET_HAS_DURATION_ERROR:case f.SET_TICKET_IS_SELECTED:case f.REGISTER_TICKET_BLOCK:case f.REMOVE_TICKET_BLOCK:case f.REMOVE_TICKET_BLOCKS:return s()({},e,{tickets:_n(e.tickets,t)});default:return e}}},function(e,t,n){(function(e){e.exports=function(){"use strict";var t,r;function a(){return t.apply(null,arguments)}function i(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function o(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function s(e){return void 0===e}function c(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function u(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function d(e,t){var n,r=[];for(n=0;n<e.length;++n)r.push(t(e[n],n));return r}function l(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function _(e,t){for(var n in t)l(t,n)&&(e[n]=t[n]);return l(t,"toString")&&(e.toString=t.toString),l(t,"valueOf")&&(e.valueOf=t.valueOf),e}function m(e,t,n,r){return gt(e,t,n,r,!0).utc()}function p(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function f(e){if(null==e._isValid){var t=p(e),n=r.call(t.parsedDateParts,(function(e){return null!=e})),a=!isNaN(e._d.getTime())&&t.overflow<0&&!t.empty&&!t.invalidMonth&&!t.invalidWeekday&&!t.weekdayMismatch&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&n);if(e._strict&&(a=a&&0===t.charsLeftOver&&0===t.unusedTokens.length&&void 0===t.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return a;e._isValid=a}return e._isValid}function T(e){var t=m(NaN);return null!=e?_(p(t),e):p(t).userInvalidated=!0,t}r=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),n=t.length>>>0,r=0;r<n;r++)if(r in t&&e.call(this,t[r],r,t))return!0;return!1};var h=a.momentProperties=[];function y(e,t){var n,r,a;if(s(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),s(t._i)||(e._i=t._i),s(t._f)||(e._f=t._f),s(t._l)||(e._l=t._l),s(t._strict)||(e._strict=t._strict),s(t._tzm)||(e._tzm=t._tzm),s(t._isUTC)||(e._isUTC=t._isUTC),s(t._offset)||(e._offset=t._offset),s(t._pf)||(e._pf=p(t)),s(t._locale)||(e._locale=t._locale),h.length>0)for(n=0;n<h.length;n++)s(a=t[r=h[n]])||(e[r]=a);return e}var b=!1;function M(e){y(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===b&&(b=!0,a.updateOffset(this),b=!1)}function S(e){return e instanceof M||null!=e&&null!=e._isAMomentObject}function E(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function g(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=E(t)),n}function k(e,t,n){var r,a=Math.min(e.length,t.length),i=Math.abs(e.length-t.length),o=0;for(r=0;r<a;r++)(n&&e[r]!==t[r]||!n&&g(e[r])!==g(t[r]))&&o++;return o+i}function v(e){!1===a.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function D(e,t){var n=!0;return _((function(){if(null!=a.deprecationHandler&&a.deprecationHandler(null,e),n){for(var r,i=[],o=0;o<arguments.length;o++){if(r="","object"==typeof arguments[o]){for(var s in r+="\n["+o+"] ",arguments[0])r+=s+": "+arguments[0][s]+", ";r=r.slice(0,-2)}else r=arguments[o];i.push(r)}v(e+"\nArguments: "+Array.prototype.slice.call(i).join("")+"\n"+(new Error).stack),n=!1}return t.apply(this,arguments)}),t)}var L,O={};function Y(e,t){null!=a.deprecationHandler&&a.deprecationHandler(e,t),O[e]||(v(t),O[e]=!0)}function w(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function j(e,t){var n,r=_({},e);for(n in t)l(t,n)&&(o(e[n])&&o(t[n])?(r[n]={},_(r[n],e[n]),_(r[n],t[n])):null!=t[n]?r[n]=t[n]:delete r[n]);for(n in e)l(e,n)&&!l(t,n)&&o(e[n])&&(r[n]=_({},r[n]));return r}function I(e){null!=e&&this.set(e)}a.suppressDeprecationWarnings=!1,a.deprecationHandler=null,L=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)l(e,t)&&n.push(t);return n};var P={};function C(e,t){var n=e.toLowerCase();P[n]=P[n+"s"]=P[t]=e}function x(e){return"string"==typeof e?P[e]||P[e.toLowerCase()]:void 0}function R(e){var t,n,r={};for(n in e)l(e,n)&&(t=x(n))&&(r[t]=e[n]);return r}var A={};function H(e,t){A[e]=t}function N(e,t,n){var r=""+Math.abs(e),a=t-r.length;return(e>=0?n?"+":"":"-")+Math.pow(10,Math.max(0,a)).toString().substr(1)+r}var V=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,F=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,K={},W={};function U(e,t,n,r){var a=r;"string"==typeof r&&(a=function(){return this[r]()}),e&&(W[e]=a),t&&(W[t[0]]=function(){return N(a.apply(this,arguments),t[1],t[2])}),n&&(W[n]=function(){return this.localeData().ordinal(a.apply(this,arguments),e)})}function z(e,t){return e.isValid()?(t=G(t,e.localeData()),K[t]=K[t]||function(e){var t,n,r,a=e.match(V);for(t=0,n=a.length;t<n;t++)W[a[t]]?a[t]=W[a[t]]:a[t]=(r=a[t]).match(/\[[\s\S]/)?r.replace(/^\[|\]$/g,""):r.replace(/\\/g,"");return function(t){var r,i="";for(r=0;r<n;r++)i+=w(a[r])?a[r].call(t,e):a[r];return i}}(t),K[t](e)):e.localeData().invalidDate()}function G(e,t){var n=5;function r(e){return t.longDateFormat(e)||e}for(F.lastIndex=0;n>=0&&F.test(e);)e=e.replace(F,r),F.lastIndex=0,n-=1;return e}var B=/\d/,q=/\d\d/,J=/\d{3}/,$=/\d{4}/,Z=/[+-]?\d{6}/,Q=/\d\d?/,X=/\d\d\d\d?/,ee=/\d\d\d\d\d\d?/,te=/\d{1,3}/,ne=/\d{1,4}/,re=/[+-]?\d{1,6}/,ae=/\d+/,ie=/[+-]?\d+/,oe=/Z|[+-]\d\d:?\d\d/gi,se=/Z|[+-]\d\d(?::?\d\d)?/gi,ce=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,ue={};function de(e,t,n){ue[e]=w(t)?t:function(e,r){return e&&n?n:t}}function le(e,t){return l(ue,e)?ue[e](t._strict,t._locale):new RegExp(_e(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(e,t,n,r,a){return t||n||r||a}))))}function _e(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var me={};function pe(e,t){var n,r=t;for("string"==typeof e&&(e=[e]),c(t)&&(r=function(e,n){n[t]=g(e)}),n=0;n<e.length;n++)me[e[n]]=r}function fe(e,t){pe(e,(function(e,n,r,a){r._w=r._w||{},t(e,r._w,r,a)}))}function Te(e,t,n){null!=t&&l(me,e)&&me[e](t,n._a,n,e)}function he(e){return ye(e)?366:365}function ye(e){return e%4==0&&e%100!=0||e%400==0}U("Y",0,0,(function(){var e=this.year();return e<=9999?""+e:"+"+e})),U(0,["YY",2],0,(function(){return this.year()%100})),U(0,["YYYY",4],0,"year"),U(0,["YYYYY",5],0,"year"),U(0,["YYYYYY",6,!0],0,"year"),C("year","y"),H("year",1),de("Y",ie),de("YY",Q,q),de("YYYY",ne,$),de("YYYYY",re,Z),de("YYYYYY",re,Z),pe(["YYYYY","YYYYYY"],0),pe("YYYY",(function(e,t){t[0]=2===e.length?a.parseTwoDigitYear(e):g(e)})),pe("YY",(function(e,t){t[0]=a.parseTwoDigitYear(e)})),pe("Y",(function(e,t){t[0]=parseInt(e,10)})),a.parseTwoDigitYear=function(e){return g(e)+(g(e)>68?1900:2e3)};var be,Me=Se("FullYear",!0);function Se(e,t){return function(n){return null!=n?(ge(this,e,n),a.updateOffset(this,t),this):Ee(this,e)}}function Ee(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function ge(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&ye(e.year())&&1===e.month()&&29===e.date()?e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),ke(n,e.month())):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function ke(e,t){if(isNaN(e)||isNaN(t))return NaN;var n,r=(t%(n=12)+n)%n;return e+=(t-r)/12,1===r?ye(e)?29:28:31-r%7%2}be=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1},U("M",["MM",2],"Mo",(function(){return this.month()+1})),U("MMM",0,0,(function(e){return this.localeData().monthsShort(this,e)})),U("MMMM",0,0,(function(e){return this.localeData().months(this,e)})),C("month","M"),H("month",8),de("M",Q),de("MM",Q,q),de("MMM",(function(e,t){return t.monthsShortRegex(e)})),de("MMMM",(function(e,t){return t.monthsRegex(e)})),pe(["M","MM"],(function(e,t){t[1]=g(e)-1})),pe(["MMM","MMMM"],(function(e,t,n,r){var a=n._locale.monthsParse(e,r,n._strict);null!=a?t[1]=a:p(n).invalidMonth=e}));var ve=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,De="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Le="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function Oe(e,t,n){var r,a,i,o=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],r=0;r<12;++r)i=m([2e3,r]),this._shortMonthsParse[r]=this.monthsShort(i,"").toLocaleLowerCase(),this._longMonthsParse[r]=this.months(i,"").toLocaleLowerCase();return n?"MMM"===t?-1!==(a=be.call(this._shortMonthsParse,o))?a:null:-1!==(a=be.call(this._longMonthsParse,o))?a:null:"MMM"===t?-1!==(a=be.call(this._shortMonthsParse,o))||-1!==(a=be.call(this._longMonthsParse,o))?a:null:-1!==(a=be.call(this._longMonthsParse,o))||-1!==(a=be.call(this._shortMonthsParse,o))?a:null}function Ye(e,t){var n;if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=g(t);else if(!c(t=e.localeData().monthsParse(t)))return e;return n=Math.min(e.date(),ke(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,n),e}function we(e){return null!=e?(Ye(this,e),a.updateOffset(this,!0),this):Ee(this,"Month")}var je=ce,Ie=ce;function Pe(){function e(e,t){return t.length-e.length}var t,n,r=[],a=[],i=[];for(t=0;t<12;t++)n=m([2e3,t]),r.push(this.monthsShort(n,"")),a.push(this.months(n,"")),i.push(this.months(n,"")),i.push(this.monthsShort(n,""));for(r.sort(e),a.sort(e),i.sort(e),t=0;t<12;t++)r[t]=_e(r[t]),a[t]=_e(a[t]);for(t=0;t<24;t++)i[t]=_e(i[t]);this._monthsRegex=new RegExp("^("+i.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Ce(e,t,n,r,a,i,o){var s=new Date(e,t,n,r,a,i,o);return e<100&&e>=0&&isFinite(s.getFullYear())&&s.setFullYear(e),s}function xe(e){var t=new Date(Date.UTC.apply(null,arguments));return e<100&&e>=0&&isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e),t}function Re(e,t,n){var r=7+t-n;return-(7+xe(e,0,r).getUTCDay()-t)%7+r-1}function Ae(e,t,n,r,a){var i,o,s=1+7*(t-1)+(7+n-r)%7+Re(e,r,a);return s<=0?o=he(i=e-1)+s:s>he(e)?(i=e+1,o=s-he(e)):(i=e,o=s),{year:i,dayOfYear:o}}function He(e,t,n){var r,a,i=Re(e.year(),t,n),o=Math.floor((e.dayOfYear()-i-1)/7)+1;return o<1?r=o+Ne(a=e.year()-1,t,n):o>Ne(e.year(),t,n)?(r=o-Ne(e.year(),t,n),a=e.year()+1):(a=e.year(),r=o),{week:r,year:a}}function Ne(e,t,n){var r=Re(e,t,n),a=Re(e+1,t,n);return(he(e)-r+a)/7}U("w",["ww",2],"wo","week"),U("W",["WW",2],"Wo","isoWeek"),C("week","w"),C("isoWeek","W"),H("week",5),H("isoWeek",5),de("w",Q),de("ww",Q,q),de("W",Q),de("WW",Q,q),fe(["w","ww","W","WW"],(function(e,t,n,r){t[r.substr(0,1)]=g(e)})),U("d",0,"do","day"),U("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),U("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),U("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)})),U("e",0,0,"weekday"),U("E",0,0,"isoWeekday"),C("day","d"),C("weekday","e"),C("isoWeekday","E"),H("day",11),H("weekday",11),H("isoWeekday",11),de("d",Q),de("e",Q),de("E",Q),de("dd",(function(e,t){return t.weekdaysMinRegex(e)})),de("ddd",(function(e,t){return t.weekdaysShortRegex(e)})),de("dddd",(function(e,t){return t.weekdaysRegex(e)})),fe(["dd","ddd","dddd"],(function(e,t,n,r){var a=n._locale.weekdaysParse(e,r,n._strict);null!=a?t.d=a:p(n).invalidWeekday=e})),fe(["d","e","E"],(function(e,t,n,r){t[r]=g(e)}));var Ve="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Fe="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Ke="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function We(e,t,n){var r,a,i,o=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)i=m([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(i,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(i,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(i,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(a=be.call(this._weekdaysParse,o))?a:null:"ddd"===t?-1!==(a=be.call(this._shortWeekdaysParse,o))?a:null:-1!==(a=be.call(this._minWeekdaysParse,o))?a:null:"dddd"===t?-1!==(a=be.call(this._weekdaysParse,o))||-1!==(a=be.call(this._shortWeekdaysParse,o))||-1!==(a=be.call(this._minWeekdaysParse,o))?a:null:"ddd"===t?-1!==(a=be.call(this._shortWeekdaysParse,o))||-1!==(a=be.call(this._weekdaysParse,o))||-1!==(a=be.call(this._minWeekdaysParse,o))?a:null:-1!==(a=be.call(this._minWeekdaysParse,o))||-1!==(a=be.call(this._weekdaysParse,o))||-1!==(a=be.call(this._shortWeekdaysParse,o))?a:null}var Ue=ce,ze=ce,Ge=ce;function Be(){function e(e,t){return t.length-e.length}var t,n,r,a,i,o=[],s=[],c=[],u=[];for(t=0;t<7;t++)n=m([2e3,1]).day(t),r=this.weekdaysMin(n,""),a=this.weekdaysShort(n,""),i=this.weekdays(n,""),o.push(r),s.push(a),c.push(i),u.push(r),u.push(a),u.push(i);for(o.sort(e),s.sort(e),c.sort(e),u.sort(e),t=0;t<7;t++)s[t]=_e(s[t]),c[t]=_e(c[t]),u[t]=_e(u[t]);this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+c.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}function qe(){return this.hours()%12||12}function Je(e,t){U(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function $e(e,t){return t._meridiemParse}U("H",["HH",2],0,"hour"),U("h",["hh",2],0,qe),U("k",["kk",2],0,(function(){return this.hours()||24})),U("hmm",0,0,(function(){return""+qe.apply(this)+N(this.minutes(),2)})),U("hmmss",0,0,(function(){return""+qe.apply(this)+N(this.minutes(),2)+N(this.seconds(),2)})),U("Hmm",0,0,(function(){return""+this.hours()+N(this.minutes(),2)})),U("Hmmss",0,0,(function(){return""+this.hours()+N(this.minutes(),2)+N(this.seconds(),2)})),Je("a",!0),Je("A",!1),C("hour","h"),H("hour",13),de("a",$e),de("A",$e),de("H",Q),de("h",Q),de("k",Q),de("HH",Q,q),de("hh",Q,q),de("kk",Q,q),de("hmm",X),de("hmmss",ee),de("Hmm",X),de("Hmmss",ee),pe(["H","HH"],3),pe(["k","kk"],(function(e,t,n){var r=g(e);t[3]=24===r?0:r})),pe(["a","A"],(function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e})),pe(["h","hh"],(function(e,t,n){t[3]=g(e),p(n).bigHour=!0})),pe("hmm",(function(e,t,n){var r=e.length-2;t[3]=g(e.substr(0,r)),t[4]=g(e.substr(r)),p(n).bigHour=!0})),pe("hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[3]=g(e.substr(0,r)),t[4]=g(e.substr(r,2)),t[5]=g(e.substr(a)),p(n).bigHour=!0})),pe("Hmm",(function(e,t,n){var r=e.length-2;t[3]=g(e.substr(0,r)),t[4]=g(e.substr(r))})),pe("Hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[3]=g(e.substr(0,r)),t[4]=g(e.substr(r,2)),t[5]=g(e.substr(a))}));var Ze,Qe=Se("Hours",!0),Xe={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:De,monthsShort:Le,week:{dow:0,doy:6},weekdays:Ve,weekdaysMin:Ke,weekdaysShort:Fe,meridiemParse:/[ap]\.?m?\.?/i},et={},tt={};function nt(e){return e?e.toLowerCase().replace("_","-"):e}function rt(t){var r=null;if(!et[t]&&void 0!==e&&e&&e.exports)try{r=Ze._abbr,n(276)("./"+t),at(r)}catch(e){}return et[t]}function at(e,t){var n;return e&&(n=s(t)?ot(e):it(e,t))&&(Ze=n),Ze._abbr}function it(e,t){if(null!==t){var n=Xe;if(t.abbr=e,null!=et[e])Y("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=et[e]._config;else if(null!=t.parentLocale){if(null==et[t.parentLocale])return tt[t.parentLocale]||(tt[t.parentLocale]=[]),tt[t.parentLocale].push({name:e,config:t}),null;n=et[t.parentLocale]._config}return et[e]=new I(j(n,t)),tt[e]&&tt[e].forEach((function(e){it(e.name,e.config)})),at(e),et[e]}return delete et[e],null}function ot(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Ze;if(!i(e)){if(t=rt(e))return t;e=[e]}return function(e){for(var t,n,r,a,i=0;i<e.length;){for(t=(a=nt(e[i]).split("-")).length,n=(n=nt(e[i+1]))?n.split("-"):null;t>0;){if(r=rt(a.slice(0,t).join("-")))return r;if(n&&n.length>=t&&k(a,n,!0)>=t-1)break;t--}i++}return null}(e)}function st(e){var t,n=e._a;return n&&-2===p(e).overflow&&(t=n[1]<0||n[1]>11?1:n[2]<1||n[2]>ke(n[0],n[1])?2:n[3]<0||n[3]>24||24===n[3]&&(0!==n[4]||0!==n[5]||0!==n[6])?3:n[4]<0||n[4]>59?4:n[5]<0||n[5]>59?5:n[6]<0||n[6]>999?6:-1,p(e)._overflowDayOfYear&&(t<0||t>2)&&(t=2),p(e)._overflowWeeks&&-1===t&&(t=7),p(e)._overflowWeekday&&-1===t&&(t=8),p(e).overflow=t),e}function ct(e,t,n){return null!=e?e:null!=t?t:n}function ut(e){var t,n,r,i,o=[];if(!e._d){for(r=function(e){var t=new Date(a.now());return e._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}(e),e._w&&null==e._a[2]&&null==e._a[1]&&function(e){var t,n,r,a,i,o,s,c;if(null!=(t=e._w).GG||null!=t.W||null!=t.E)i=1,o=4,n=ct(t.GG,e._a[0],He(kt(),1,4).year),r=ct(t.W,1),((a=ct(t.E,1))<1||a>7)&&(c=!0);else{i=e._locale._week.dow,o=e._locale._week.doy;var u=He(kt(),i,o);n=ct(t.gg,e._a[0],u.year),r=ct(t.w,u.week),null!=t.d?((a=t.d)<0||a>6)&&(c=!0):null!=t.e?(a=t.e+i,(t.e<0||t.e>6)&&(c=!0)):a=i}r<1||r>Ne(n,i,o)?p(e)._overflowWeeks=!0:null!=c?p(e)._overflowWeekday=!0:(s=Ae(n,r,a,i,o),e._a[0]=s.year,e._dayOfYear=s.dayOfYear)}(e),null!=e._dayOfYear&&(i=ct(e._a[0],r[0]),(e._dayOfYear>he(i)||0===e._dayOfYear)&&(p(e)._overflowDayOfYear=!0),n=xe(i,0,e._dayOfYear),e._a[1]=n.getUTCMonth(),e._a[2]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=o[t]=r[t];for(;t<7;t++)e._a[t]=o[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[3]&&0===e._a[4]&&0===e._a[5]&&0===e._a[6]&&(e._nextDay=!0,e._a[3]=0),e._d=(e._useUTC?xe:Ce).apply(null,o),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[3]=24),e._w&&void 0!==e._w.d&&e._w.d!==e._d.getDay()&&(p(e).weekdayMismatch=!0)}}var dt=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,lt=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,_t=/Z|[+-]\d\d(?::?\d\d)?/,mt=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],pt=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],ft=/^\/?Date\((\-?\d+)/i;function Tt(e){var t,n,r,a,i,o,s=e._i,c=dt.exec(s)||lt.exec(s);if(c){for(p(e).iso=!0,t=0,n=mt.length;t<n;t++)if(mt[t][1].exec(c[1])){a=mt[t][0],r=!1!==mt[t][2];break}if(null==a)return void(e._isValid=!1);if(c[3]){for(t=0,n=pt.length;t<n;t++)if(pt[t][1].exec(c[3])){i=(c[2]||" ")+pt[t][0];break}if(null==i)return void(e._isValid=!1)}if(!r&&null!=i)return void(e._isValid=!1);if(c[4]){if(!_t.exec(c[4]))return void(e._isValid=!1);o="Z"}e._f=a+(i||"")+(o||""),St(e)}else e._isValid=!1}var ht=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;function yt(e){var t=parseInt(e,10);return t<=49?2e3+t:t<=999?1900+t:t}var bt={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Mt(e){var t,n,r,a,i,o,s,c=ht.exec(e._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim());if(c){var u=(t=c[4],n=c[3],r=c[2],a=c[5],i=c[6],o=c[7],s=[yt(t),Le.indexOf(n),parseInt(r,10),parseInt(a,10),parseInt(i,10)],o&&s.push(parseInt(o,10)),s);if(!function(e,t,n){return!e||Fe.indexOf(e)===new Date(t[0],t[1],t[2]).getDay()||(p(n).weekdayMismatch=!0,n._isValid=!1,!1)}(c[1],u,e))return;e._a=u,e._tzm=function(e,t,n){if(e)return bt[e];if(t)return 0;var r=parseInt(n,10),a=r%100;return(r-a)/100*60+a}(c[8],c[9],c[10]),e._d=xe.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),p(e).rfc2822=!0}else e._isValid=!1}function St(e){if(e._f!==a.ISO_8601)if(e._f!==a.RFC_2822){e._a=[],p(e).empty=!0;var t,n,r,i,o,s=""+e._i,c=s.length,u=0;for(r=G(e._f,e._locale).match(V)||[],t=0;t<r.length;t++)i=r[t],(n=(s.match(le(i,e))||[])[0])&&((o=s.substr(0,s.indexOf(n))).length>0&&p(e).unusedInput.push(o),s=s.slice(s.indexOf(n)+n.length),u+=n.length),W[i]?(n?p(e).empty=!1:p(e).unusedTokens.push(i),Te(i,n,e)):e._strict&&!n&&p(e).unusedTokens.push(i);p(e).charsLeftOver=c-u,s.length>0&&p(e).unusedInput.push(s),e._a[3]<=12&&!0===p(e).bigHour&&e._a[3]>0&&(p(e).bigHour=void 0),p(e).parsedDateParts=e._a.slice(0),p(e).meridiem=e._meridiem,e._a[3]=function(e,t,n){var r;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((r=e.isPM(n))&&t<12&&(t+=12),r||12!==t||(t=0),t):t}(e._locale,e._a[3],e._meridiem),ut(e),st(e)}else Mt(e);else Tt(e)}function Et(e){var t=e._i,n=e._f;return e._locale=e._locale||ot(e._l),null===t||void 0===n&&""===t?T({nullInput:!0}):("string"==typeof t&&(e._i=t=e._locale.preparse(t)),S(t)?new M(st(t)):(u(t)?e._d=t:i(n)?function(e){var t,n,r,a,i;if(0===e._f.length)return p(e).invalidFormat=!0,void(e._d=new Date(NaN));for(a=0;a<e._f.length;a++)i=0,t=y({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[a],St(t),f(t)&&(i+=p(t).charsLeftOver,i+=10*p(t).unusedTokens.length,p(t).score=i,(null==r||i<r)&&(r=i,n=t));_(e,n||t)}(e):n?St(e):function(e){var t=e._i;s(t)?e._d=new Date(a.now()):u(t)?e._d=new Date(t.valueOf()):"string"==typeof t?function(e){var t=ft.exec(e._i);null===t?(Tt(e),!1===e._isValid&&(delete e._isValid,Mt(e),!1===e._isValid&&(delete e._isValid,a.createFromInputFallback(e)))):e._d=new Date(+t[1])}(e):i(t)?(e._a=d(t.slice(0),(function(e){return parseInt(e,10)})),ut(e)):o(t)?function(e){if(!e._d){var t=R(e._i);e._a=d([t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],(function(e){return e&&parseInt(e,10)})),ut(e)}}(e):c(t)?e._d=new Date(t):a.createFromInputFallback(e)}(e),f(e)||(e._d=null),e))}function gt(e,t,n,r,a){var s,c={};return!0!==n&&!1!==n||(r=n,n=void 0),(o(e)&&function(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(e.hasOwnProperty(t))return!1;return!0}(e)||i(e)&&0===e.length)&&(e=void 0),c._isAMomentObject=!0,c._useUTC=c._isUTC=a,c._l=n,c._i=e,c._f=t,c._strict=r,(s=new M(st(Et(c))))._nextDay&&(s.add(1,"d"),s._nextDay=void 0),s}function kt(e,t,n,r){return gt(e,t,n,r,!1)}a.createFromInputFallback=D("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",(function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))})),a.ISO_8601=function(){},a.RFC_2822=function(){};var vt=D("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var e=kt.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:T()})),Dt=D("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var e=kt.apply(null,arguments);return this.isValid()&&e.isValid()?e>this?this:e:T()}));function Lt(e,t){var n,r;if(1===t.length&&i(t[0])&&(t=t[0]),!t.length)return kt();for(n=t[0],r=1;r<t.length;++r)t[r].isValid()&&!t[r][e](n)||(n=t[r]);return n}var Ot=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Yt(e){var t=R(e),n=t.year||0,r=t.quarter||0,a=t.month||0,i=t.week||0,o=t.day||0,s=t.hour||0,c=t.minute||0,u=t.second||0,d=t.millisecond||0;this._isValid=function(e){for(var t in e)if(-1===be.call(Ot,t)||null!=e[t]&&isNaN(e[t]))return!1;for(var n=!1,r=0;r<Ot.length;++r)if(e[Ot[r]]){if(n)return!1;parseFloat(e[Ot[r]])!==g(e[Ot[r]])&&(n=!0)}return!0}(t),this._milliseconds=+d+1e3*u+6e4*c+1e3*s*60*60,this._days=+o+7*i,this._months=+a+3*r+12*n,this._data={},this._locale=ot(),this._bubble()}function wt(e){return e instanceof Yt}function jt(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function It(e,t){U(e,0,0,(function(){var e=this.utcOffset(),n="+";return e<0&&(e=-e,n="-"),n+N(~~(e/60),2)+t+N(~~e%60,2)}))}It("Z",":"),It("ZZ",""),de("Z",se),de("ZZ",se),pe(["Z","ZZ"],(function(e,t,n){n._useUTC=!0,n._tzm=Ct(se,e)}));var Pt=/([\+\-]|\d\d)/gi;function Ct(e,t){var n=(t||"").match(e);if(null===n)return null;var r=((n[n.length-1]||[])+"").match(Pt)||["-",0,0],a=60*r[1]+g(r[2]);return 0===a?0:"+"===r[0]?a:-a}function xt(e,t){var n,r;return t._isUTC?(n=t.clone(),r=(S(e)||u(e)?e.valueOf():kt(e).valueOf())-n.valueOf(),n._d.setTime(n._d.valueOf()+r),a.updateOffset(n,!1),n):kt(e).local()}function Rt(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function At(){return!!this.isValid()&&this._isUTC&&0===this._offset}a.updateOffset=function(){};var Ht=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Nt=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Vt(e,t){var n,r,a,i,o,s,u=e,d=null;return wt(e)?u={ms:e._milliseconds,d:e._days,M:e._months}:c(e)?(u={},t?u[t]=e:u.milliseconds=e):(d=Ht.exec(e))?(n="-"===d[1]?-1:1,u={y:0,d:g(d[2])*n,h:g(d[3])*n,m:g(d[4])*n,s:g(d[5])*n,ms:g(jt(1e3*d[6]))*n}):(d=Nt.exec(e))?(n="-"===d[1]?-1:(d[1],1),u={y:Ft(d[2],n),M:Ft(d[3],n),w:Ft(d[4],n),d:Ft(d[5],n),h:Ft(d[6],n),m:Ft(d[7],n),s:Ft(d[8],n)}):null==u?u={}:"object"==typeof u&&("from"in u||"to"in u)&&(i=kt(u.from),o=kt(u.to),a=i.isValid()&&o.isValid()?(o=xt(o,i),i.isBefore(o)?s=Kt(i,o):((s=Kt(o,i)).milliseconds=-s.milliseconds,s.months=-s.months),s):{milliseconds:0,months:0},(u={}).ms=a.milliseconds,u.M=a.months),r=new Yt(u),wt(e)&&l(e,"_locale")&&(r._locale=e._locale),r}function Ft(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Kt(e,t){var n={milliseconds:0,months:0};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function Wt(e,t){return function(n,r){var a;return null===r||isNaN(+r)||(Y(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),a=n,n=r,r=a),Ut(this,Vt(n="string"==typeof n?+n:n,r),e),this}}function Ut(e,t,n,r){var i=t._milliseconds,o=jt(t._days),s=jt(t._months);e.isValid()&&(r=null==r||r,s&&Ye(e,Ee(e,"Month")+s*n),o&&ge(e,"Date",Ee(e,"Date")+o*n),i&&e._d.setTime(e._d.valueOf()+i*n),r&&a.updateOffset(e,o||s))}Vt.fn=Yt.prototype,Vt.invalid=function(){return Vt(NaN)};var zt=Wt(1,"add"),Gt=Wt(-1,"subtract");function Bt(e,t){var n=12*(t.year()-e.year())+(t.month()-e.month()),r=e.clone().add(n,"months");return-(n+(t-r<0?(t-r)/(r-e.clone().add(n-1,"months")):(t-r)/(e.clone().add(n+1,"months")-r)))||0}function qt(e){var t;return void 0===e?this._locale._abbr:(null!=(t=ot(e))&&(this._locale=t),this)}a.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",a.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Jt=D("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(e){return void 0===e?this.localeData():this.locale(e)}));function $t(){return this._locale}function Zt(e,t){U(0,[e,e.length],0,t)}function Qt(e,t,n,r,a){var i;return null==e?He(this,r,a).year:(t>(i=Ne(e,r,a))&&(t=i),Xt.call(this,e,t,n,r,a))}function Xt(e,t,n,r,a){var i=Ae(e,t,n,r,a),o=xe(i.year,0,i.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}U(0,["gg",2],0,(function(){return this.weekYear()%100})),U(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),Zt("gggg","weekYear"),Zt("ggggg","weekYear"),Zt("GGGG","isoWeekYear"),Zt("GGGGG","isoWeekYear"),C("weekYear","gg"),C("isoWeekYear","GG"),H("weekYear",1),H("isoWeekYear",1),de("G",ie),de("g",ie),de("GG",Q,q),de("gg",Q,q),de("GGGG",ne,$),de("gggg",ne,$),de("GGGGG",re,Z),de("ggggg",re,Z),fe(["gggg","ggggg","GGGG","GGGGG"],(function(e,t,n,r){t[r.substr(0,2)]=g(e)})),fe(["gg","GG"],(function(e,t,n,r){t[r]=a.parseTwoDigitYear(e)})),U("Q",0,"Qo","quarter"),C("quarter","Q"),H("quarter",7),de("Q",B),pe("Q",(function(e,t){t[1]=3*(g(e)-1)})),U("D",["DD",2],"Do","date"),C("date","D"),H("date",9),de("D",Q),de("DD",Q,q),de("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),pe(["D","DD"],2),pe("Do",(function(e,t){t[2]=g(e.match(Q)[0])}));var en=Se("Date",!0);U("DDD",["DDDD",3],"DDDo","dayOfYear"),C("dayOfYear","DDD"),H("dayOfYear",4),de("DDD",te),de("DDDD",J),pe(["DDD","DDDD"],(function(e,t,n){n._dayOfYear=g(e)})),U("m",["mm",2],0,"minute"),C("minute","m"),H("minute",14),de("m",Q),de("mm",Q,q),pe(["m","mm"],4);var tn=Se("Minutes",!1);U("s",["ss",2],0,"second"),C("second","s"),H("second",15),de("s",Q),de("ss",Q,q),pe(["s","ss"],5);var nn,rn=Se("Seconds",!1);for(U("S",0,0,(function(){return~~(this.millisecond()/100)})),U(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),U(0,["SSS",3],0,"millisecond"),U(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),U(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),U(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),U(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),U(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),U(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),C("millisecond","ms"),H("millisecond",16),de("S",te,B),de("SS",te,q),de("SSS",te,J),nn="SSSS";nn.length<=9;nn+="S")de(nn,ae);function an(e,t){t[6]=g(1e3*("0."+e))}for(nn="S";nn.length<=9;nn+="S")pe(nn,an);var on=Se("Milliseconds",!1);U("z",0,0,"zoneAbbr"),U("zz",0,0,"zoneName");var sn=M.prototype;function cn(e){return e}sn.add=zt,sn.calendar=function(e,t){var n=e||kt(),r=xt(n,this).startOf("day"),i=a.calendarFormat(this,r)||"sameElse",o=t&&(w(t[i])?t[i].call(this,n):t[i]);return this.format(o||this.localeData().calendar(i,this,kt(n)))},sn.clone=function(){return new M(this)},sn.diff=function(e,t,n){var r,a,i;if(!this.isValid())return NaN;if(!(r=xt(e,this)).isValid())return NaN;switch(a=6e4*(r.utcOffset()-this.utcOffset()),t=x(t)){case"year":i=Bt(this,r)/12;break;case"month":i=Bt(this,r);break;case"quarter":i=Bt(this,r)/3;break;case"second":i=(this-r)/1e3;break;case"minute":i=(this-r)/6e4;break;case"hour":i=(this-r)/36e5;break;case"day":i=(this-r-a)/864e5;break;case"week":i=(this-r-a)/6048e5;break;default:i=this-r}return n?i:E(i)},sn.endOf=function(e){return void 0===(e=x(e))||"millisecond"===e?this:("date"===e&&(e="day"),this.startOf(e).add(1,"isoWeek"===e?"week":e).subtract(1,"ms"))},sn.format=function(e){e||(e=this.isUtc()?a.defaultFormatUtc:a.defaultFormat);var t=z(this,e);return this.localeData().postformat(t)},sn.from=function(e,t){return this.isValid()&&(S(e)&&e.isValid()||kt(e).isValid())?Vt({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},sn.fromNow=function(e){return this.from(kt(),e)},sn.to=function(e,t){return this.isValid()&&(S(e)&&e.isValid()||kt(e).isValid())?Vt({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},sn.toNow=function(e){return this.to(kt(),e)},sn.get=function(e){return w(this[e=x(e)])?this[e]():this},sn.invalidAt=function(){return p(this).overflow},sn.isAfter=function(e,t){var n=S(e)?e:kt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=x(s(t)?"millisecond":t))?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(t).valueOf())},sn.isBefore=function(e,t){var n=S(e)?e:kt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=x(s(t)?"millisecond":t))?this.valueOf()<n.valueOf():this.clone().endOf(t).valueOf()<n.valueOf())},sn.isBetween=function(e,t,n,r){return("("===(r=r||"()")[0]?this.isAfter(e,n):!this.isBefore(e,n))&&(")"===r[1]?this.isBefore(t,n):!this.isAfter(t,n))},sn.isSame=function(e,t){var n,r=S(e)?e:kt(e);return!(!this.isValid()||!r.isValid())&&("millisecond"===(t=x(t||"millisecond"))?this.valueOf()===r.valueOf():(n=r.valueOf(),this.clone().startOf(t).valueOf()<=n&&n<=this.clone().endOf(t).valueOf()))},sn.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},sn.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},sn.isValid=function(){return f(this)},sn.lang=Jt,sn.locale=qt,sn.localeData=$t,sn.max=Dt,sn.min=vt,sn.parsingFlags=function(){return _({},p(this))},sn.set=function(e,t){if("object"==typeof e)for(var n=function(e){var t=[];for(var n in e)t.push({unit:n,priority:A[n]});return t.sort((function(e,t){return e.priority-t.priority})),t}(e=R(e)),r=0;r<n.length;r++)this[n[r].unit](e[n[r].unit]);else if(w(this[e=x(e)]))return this[e](t);return this},sn.startOf=function(e){switch(e=x(e)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===e&&this.weekday(0),"isoWeek"===e&&this.isoWeekday(1),"quarter"===e&&this.month(3*Math.floor(this.month()/3)),this},sn.subtract=Gt,sn.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},sn.toObject=function(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}},sn.toDate=function(){return new Date(this.valueOf())},sn.toISOString=function(){if(!this.isValid())return null;var e=this.clone().utc();return e.year()<0||e.year()>9999?z(e,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):w(Date.prototype.toISOString)?this.toDate().toISOString():z(e,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")},sn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var n="["+e+'("]',r=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",a=t+'[")]';return this.format(n+r+"-MM-DD[T]HH:mm:ss.SSS"+a)},sn.toJSON=function(){return this.isValid()?this.toISOString():null},sn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},sn.unix=function(){return Math.floor(this.valueOf()/1e3)},sn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},sn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},sn.year=Me,sn.isLeapYear=function(){return ye(this.year())},sn.weekYear=function(e){return Qt.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},sn.isoWeekYear=function(e){return Qt.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},sn.quarter=sn.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},sn.month=we,sn.daysInMonth=function(){return ke(this.year(),this.month())},sn.week=sn.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},sn.isoWeek=sn.isoWeeks=function(e){var t=He(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},sn.weeksInYear=function(){var e=this.localeData()._week;return Ne(this.year(),e.dow,e.doy)},sn.isoWeeksInYear=function(){return Ne(this.year(),1,4)},sn.date=en,sn.day=sn.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=function(e,t){return"string"!=typeof e?e:isNaN(e)?"number"==typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}(e,this.localeData()),this.add(e-t,"d")):t},sn.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},sn.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=function(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7},sn.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},sn.hour=sn.hours=Qe,sn.minute=sn.minutes=tn,sn.second=sn.seconds=rn,sn.millisecond=sn.milliseconds=on,sn.utcOffset=function(e,t,n){var r,i=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null!=e){if("string"==typeof e){if(null===(e=Ct(se,e)))return this}else Math.abs(e)<16&&!n&&(e*=60);return!this._isUTC&&t&&(r=Rt(this)),this._offset=e,this._isUTC=!0,null!=r&&this.add(r,"m"),i!==e&&(!t||this._changeInProgress?Ut(this,Vt(e-i,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,a.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?i:Rt(this)},sn.utc=function(e){return this.utcOffset(0,e)},sn.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Rt(this),"m")),this},sn.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=Ct(oe,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},sn.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?kt(e).utcOffset():0,(this.utcOffset()-e)%60==0)},sn.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},sn.isLocal=function(){return!!this.isValid()&&!this._isUTC},sn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},sn.isUtc=At,sn.isUTC=At,sn.zoneAbbr=function(){return this._isUTC?"UTC":""},sn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},sn.dates=D("dates accessor is deprecated. Use date instead.",en),sn.months=D("months accessor is deprecated. Use month instead",we),sn.years=D("years accessor is deprecated. Use year instead",Me),sn.zone=D("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()})),sn.isDSTShifted=D("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!s(this._isDSTShifted))return this._isDSTShifted;var e={};if(y(e,this),(e=Et(e))._a){var t=e._isUTC?m(e._a):kt(e._a);this._isDSTShifted=this.isValid()&&k(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}));var un=I.prototype;function dn(e,t,n,r){var a=ot(),i=m().set(r,t);return a[n](i,e)}function ln(e,t,n){if(c(e)&&(t=e,e=void 0),e=e||"",null!=t)return dn(e,t,n,"month");var r,a=[];for(r=0;r<12;r++)a[r]=dn(e,r,n,"month");return a}function _n(e,t,n,r){"boolean"==typeof e?(c(t)&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,c(t)&&(n=t,t=void 0),t=t||"");var a,i=ot(),o=e?i._week.dow:0;if(null!=n)return dn(t,(n+o)%7,r,"day");var s=[];for(a=0;a<7;a++)s[a]=dn(t,(a+o)%7,r,"day");return s}un.calendar=function(e,t,n){var r=this._calendar[e]||this._calendar.sameElse;return w(r)?r.call(t,n):r},un.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.replace(/MMMM|MM|DD|dddd/g,(function(e){return e.slice(1)})),this._longDateFormat[e])},un.invalidDate=function(){return this._invalidDate},un.ordinal=function(e){return this._ordinal.replace("%d",e)},un.preparse=cn,un.postformat=cn,un.relativeTime=function(e,t,n,r){var a=this._relativeTime[n];return w(a)?a(e,t,n,r):a.replace(/%d/i,e)},un.pastFuture=function(e,t){var n=this._relativeTime[e>0?"future":"past"];return w(n)?n(t):n.replace(/%s/i,t)},un.set=function(e){var t,n;for(n in e)w(t=e[n])?this[n]=t:this["_"+n]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},un.months=function(e,t){return e?i(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||ve).test(t)?"format":"standalone"][e.month()]:i(this._months)?this._months:this._months.standalone},un.monthsShort=function(e,t){return e?i(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[ve.test(t)?"format":"standalone"][e.month()]:i(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},un.monthsParse=function(e,t,n){var r,a,i;if(this._monthsParseExact)return Oe.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),r=0;r<12;r++){if(a=m([2e3,r]),n&&!this._longMonthsParse[r]&&(this._longMonthsParse[r]=new RegExp("^"+this.months(a,"").replace(".","")+"$","i"),this._shortMonthsParse[r]=new RegExp("^"+this.monthsShort(a,"").replace(".","")+"$","i")),n||this._monthsParse[r]||(i="^"+this.months(a,"")+"|^"+this.monthsShort(a,""),this._monthsParse[r]=new RegExp(i.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[r].test(e))return r;if(n&&"MMM"===t&&this._shortMonthsParse[r].test(e))return r;if(!n&&this._monthsParse[r].test(e))return r}},un.monthsRegex=function(e){return this._monthsParseExact?(l(this,"_monthsRegex")||Pe.call(this),e?this._monthsStrictRegex:this._monthsRegex):(l(this,"_monthsRegex")||(this._monthsRegex=Ie),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},un.monthsShortRegex=function(e){return this._monthsParseExact?(l(this,"_monthsRegex")||Pe.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(l(this,"_monthsShortRegex")||(this._monthsShortRegex=je),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},un.week=function(e){return He(e,this._week.dow,this._week.doy).week},un.firstDayOfYear=function(){return this._week.doy},un.firstDayOfWeek=function(){return this._week.dow},un.weekdays=function(e,t){return e?i(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(t)?"format":"standalone"][e.day()]:i(this._weekdays)?this._weekdays:this._weekdays.standalone},un.weekdaysMin=function(e){return e?this._weekdaysMin[e.day()]:this._weekdaysMin},un.weekdaysShort=function(e){return e?this._weekdaysShort[e.day()]:this._weekdaysShort},un.weekdaysParse=function(e,t,n){var r,a,i;if(this._weekdaysParseExact)return We.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(a=m([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(a,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(a,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(a,"").replace(".",".?")+"$","i")),this._weekdaysParse[r]||(i="^"+this.weekdays(a,"")+"|^"+this.weekdaysShort(a,"")+"|^"+this.weekdaysMin(a,""),this._weekdaysParse[r]=new RegExp(i.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[r].test(e))return r;if(n&&"ddd"===t&&this._shortWeekdaysParse[r].test(e))return r;if(n&&"dd"===t&&this._minWeekdaysParse[r].test(e))return r;if(!n&&this._weekdaysParse[r].test(e))return r}},un.weekdaysRegex=function(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Be.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(l(this,"_weekdaysRegex")||(this._weekdaysRegex=Ue),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},un.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Be.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(l(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=ze),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},un.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Be.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(l(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Ge),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},un.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},un.meridiem=function(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"},at("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===g(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),a.lang=D("moment.lang is deprecated. Use moment.locale instead.",at),a.langData=D("moment.langData is deprecated. Use moment.localeData instead.",ot);var mn=Math.abs;function pn(e,t,n,r){var a=Vt(t,n);return e._milliseconds+=r*a._milliseconds,e._days+=r*a._days,e._months+=r*a._months,e._bubble()}function fn(e){return e<0?Math.floor(e):Math.ceil(e)}function Tn(e){return 4800*e/146097}function hn(e){return 146097*e/4800}function yn(e){return function(){return this.as(e)}}var bn=yn("ms"),Mn=yn("s"),Sn=yn("m"),En=yn("h"),gn=yn("d"),kn=yn("w"),vn=yn("M"),Dn=yn("y");function Ln(e){return function(){return this.isValid()?this._data[e]:NaN}}var On=Ln("milliseconds"),Yn=Ln("seconds"),wn=Ln("minutes"),jn=Ln("hours"),In=Ln("days"),Pn=Ln("months"),Cn=Ln("years"),xn=Math.round,Rn={ss:44,s:45,m:45,h:22,d:26,M:11};function An(e,t,n,r,a){return a.relativeTime(t||1,!!n,e,r)}var Hn=Math.abs;function Nn(e){return(e>0)-(e<0)||+e}function Vn(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n=Hn(this._milliseconds)/1e3,r=Hn(this._days),a=Hn(this._months);e=E(n/60),t=E(e/60),n%=60,e%=60;var i=E(a/12),o=a%=12,s=r,c=t,u=e,d=n?n.toFixed(3).replace(/\.?0+$/,""):"",l=this.asSeconds();if(!l)return"P0D";var _=l<0?"-":"",m=Nn(this._months)!==Nn(l)?"-":"",p=Nn(this._days)!==Nn(l)?"-":"",f=Nn(this._milliseconds)!==Nn(l)?"-":"";return _+"P"+(i?m+i+"Y":"")+(o?m+o+"M":"")+(s?p+s+"D":"")+(c||u||d?"T":"")+(c?f+c+"H":"")+(u?f+u+"M":"")+(d?f+d+"S":"")}var Fn=Yt.prototype;return Fn.isValid=function(){return this._isValid},Fn.abs=function(){var e=this._data;return this._milliseconds=mn(this._milliseconds),this._days=mn(this._days),this._months=mn(this._months),e.milliseconds=mn(e.milliseconds),e.seconds=mn(e.seconds),e.minutes=mn(e.minutes),e.hours=mn(e.hours),e.months=mn(e.months),e.years=mn(e.years),this},Fn.add=function(e,t){return pn(this,e,t,1)},Fn.subtract=function(e,t){return pn(this,e,t,-1)},Fn.as=function(e){if(!this.isValid())return NaN;var t,n,r=this._milliseconds;if("month"===(e=x(e))||"year"===e)return t=this._days+r/864e5,n=this._months+Tn(t),"month"===e?n:n/12;switch(t=this._days+Math.round(hn(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return 24*t+r/36e5;case"minute":return 1440*t+r/6e4;case"second":return 86400*t+r/1e3;case"millisecond":return Math.floor(864e5*t)+r;default:throw new Error("Unknown unit "+e)}},Fn.asMilliseconds=bn,Fn.asSeconds=Mn,Fn.asMinutes=Sn,Fn.asHours=En,Fn.asDays=gn,Fn.asWeeks=kn,Fn.asMonths=vn,Fn.asYears=Dn,Fn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*g(this._months/12):NaN},Fn._bubble=function(){var e,t,n,r,a,i=this._milliseconds,o=this._days,s=this._months,c=this._data;return i>=0&&o>=0&&s>=0||i<=0&&o<=0&&s<=0||(i+=864e5*fn(hn(s)+o),o=0,s=0),c.milliseconds=i%1e3,e=E(i/1e3),c.seconds=e%60,t=E(e/60),c.minutes=t%60,n=E(t/60),c.hours=n%24,o+=E(n/24),a=E(Tn(o)),s+=a,o-=fn(hn(a)),r=E(s/12),s%=12,c.days=o,c.months=s,c.years=r,this},Fn.clone=function(){return Vt(this)},Fn.get=function(e){return e=x(e),this.isValid()?this[e+"s"]():NaN},Fn.milliseconds=On,Fn.seconds=Yn,Fn.minutes=wn,Fn.hours=jn,Fn.days=In,Fn.weeks=function(){return E(this.days()/7)},Fn.months=Pn,Fn.years=Cn,Fn.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),n=function(e,t,n){var r=Vt(e).abs(),a=xn(r.as("s")),i=xn(r.as("m")),o=xn(r.as("h")),s=xn(r.as("d")),c=xn(r.as("M")),u=xn(r.as("y")),d=a<=Rn.ss&&["s",a]||a<Rn.s&&["ss",a]||i<=1&&["m"]||i<Rn.m&&["mm",i]||o<=1&&["h"]||o<Rn.h&&["hh",o]||s<=1&&["d"]||s<Rn.d&&["dd",s]||c<=1&&["M"]||c<Rn.M&&["MM",c]||u<=1&&["y"]||["yy",u];return d[2]=t,d[3]=+e>0,d[4]=n,An.apply(null,d)}(this,!e,t);return e&&(n=t.pastFuture(+this,n)),t.postformat(n)},Fn.toISOString=Vn,Fn.toString=Vn,Fn.toJSON=Vn,Fn.locale=qt,Fn.localeData=$t,Fn.toIsoString=D("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Vn),Fn.lang=Jt,U("X",0,0,"unix"),U("x",0,0,"valueOf"),de("x",ie),de("X",/[+-]?\d+(\.\d{1,3})?/),pe("X",(function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))})),pe("x",(function(e,t,n){n._d=new Date(g(e))})),a.version="2.19.3",t=kt,a.fn=sn,a.min=function(){var e=[].slice.call(arguments,0);return Lt("isBefore",e)},a.max=function(){var e=[].slice.call(arguments,0);return Lt("isAfter",e)},a.now=function(){return Date.now?Date.now():+new Date},a.utc=m,a.unix=function(e){return kt(1e3*e)},a.months=function(e,t){return ln(e,t,"months")},a.isDate=u,a.locale=at,a.invalid=T,a.duration=Vt,a.isMoment=S,a.weekdays=function(e,t,n){return _n(e,t,n,"weekdays")},a.parseZone=function(){return kt.apply(null,arguments).parseZone()},a.localeData=ot,a.isDuration=wt,a.monthsShort=function(e,t){return ln(e,t,"monthsShort")},a.weekdaysMin=function(e,t,n){return _n(e,t,n,"weekdaysMin")},a.defineLocale=it,a.updateLocale=function(e,t){if(null!=t){var n,r,a=Xe;null!=(r=rt(e))&&(a=r._config),t=j(a,t),(n=new I(t)).parentLocale=et[e],et[e]=n,at(e)}else null!=et[e]&&(null!=et[e].parentLocale?et[e]=et[e].parentLocale:null!=et[e]&&delete et[e]);return et[e]},a.locales=function(){return L(et)},a.weekdaysShort=function(e,t,n){return _n(e,t,n,"weekdaysShort")},a.normalizeUnits=x,a.relativeTimeRounding=function(e){return void 0===e?xn:"function"==typeof e&&(xn=e,!0)},a.relativeTimeThreshold=function(e,t){return void 0!==Rn[e]&&(void 0===t?Rn[e]:(Rn[e]=t,"s"===e&&(Rn.ss=t-1),!0))},a.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},a.prototype=sn,a}()}).call(this,n(82)(e))},function(e,t,n){"use strict";function r(e,t){return e===t}function a(e,t,n){if(null===t||null===n||t.length!==n.length)return!1;for(var r=t.length,a=0;a<r;a++)if(!e(t[a],n[a]))return!1;return!0}function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r,n=null,i=null;return function(){return a(t,n,arguments)||(i=e.apply(null,arguments)),n=arguments,i}}function o(e){var t=Array.isArray(e[0])?e[0]:e;if(!t.every((function(e){return"function"==typeof e}))){var n=t.map((function(e){return typeof e})).join(", ");throw new Error("Selector creators expect all input-selectors to be functions, instead received the following types: ["+n+"]")}return t}function s(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return function(){for(var t=arguments.length,r=Array(t),a=0;a<t;a++)r[a]=arguments[a];var s=0,c=r.pop(),u=o(r),d=e.apply(void 0,[function(){return s++,c.apply(null,arguments)}].concat(n)),l=i((function(){for(var e=[],t=u.length,n=0;n<t;n++)e.push(u[n].apply(null,arguments));return d.apply(null,e)}));return l.resultFunc=c,l.recomputations=function(){return s},l.resetRecomputations=function(){return s=0},l}}t.__esModule=!0,t.defaultMemoize=i,t.createSelectorCreator=s,t.createStructuredSelector=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c;if("object"!=typeof e)throw new Error("createStructuredSelector expects first argument to be an object where each property is a selector, instead received a "+typeof e);var n=Object.keys(e);return t(n.map((function(t){return e[t]})),(function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return t.reduce((function(e,t,r){return e[n[r]]=t,e}),{})}))};var c=t.createSelector=s(i)},function(e,t,n){"use strict";n.d(t,"u",(function(){return i})),n.d(t,"e",(function(){return o})),n.d(t,"b",(function(){return c})),n.d(t,"a",(function(){return u})),n.d(t,"c",(function(){return d})),n.d(t,"d",(function(){return l})),n.d(t,"o",(function(){return m})),n.d(t,"r",(function(){return p})),n.d(t,"l",(function(){return f})),n.d(t,"g",(function(){return T})),n.d(t,"n",(function(){return b})),n.d(t,"s",(function(){return M})),n.d(t,"t",(function(){return S})),n.d(t,"f",(function(){return E})),n.d(t,"i",(function(){return g})),n.d(t,"j",(function(){return k})),n.d(t,"v",(function(){return D})),n.d(t,"q",(function(){return Y})),n.d(t,"p",(function(){return w})),n.d(t,"k",(function(){return j})),n.d(t,"w",(function(){return I})),n.d(t,"m",(function(){return P})),n.d(t,"h",(function(){return C})),n.d(t,"x",(function(){return x}));var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=function(e){return"@@redux-saga/"+e},o=i("TASK"),s=i("HELPER"),c=i("MATCH"),u=i("CANCEL_PROMISE"),d=i("SAGA_ACTION"),l=i("SELF_CANCELLATION"),_=function(e){return function(){return e}},m=_(!0),p=function(){},f=function(e){return e};function T(e,t,n){if(!t(e))throw w("error","uncaught at check",n),new Error(n)}var h=Object.prototype.hasOwnProperty;function y(e,t){return b.notUndef(e)&&h.call(e,t)}var b={undef:function(e){return null==e},notUndef:function(e){return null!=e},func:function(e){return"function"==typeof e},number:function(e){return"number"==typeof e},string:function(e){return"string"==typeof e},array:Array.isArray,object:function(e){return e&&!b.array(e)&&"object"===(void 0===e?"undefined":a(e))},promise:function(e){return e&&b.func(e.then)},iterator:function(e){return e&&b.func(e.next)&&b.func(e.throw)},iterable:function(e){return e&&b.func(Symbol)?b.func(e[Symbol.iterator]):b.array(e)},task:function(e){return e&&e[o]},observable:function(e){return e&&b.func(e.subscribe)},buffer:function(e){return e&&b.func(e.isEmpty)&&b.func(e.take)&&b.func(e.put)},pattern:function(e){return e&&(b.string(e)||"symbol"===(void 0===e?"undefined":a(e))||b.func(e)||b.array(e))},channel:function(e){return e&&b.func(e.take)&&b.func(e.close)},helper:function(e){return e&&e[s]},stringableFunc:function(e){return b.func(e)&&y(e,"toString")}},M={assign:function(e,t){for(var n in t)y(t,n)&&(e[n]=t[n])}};function S(e,t){var n=e.indexOf(t);n>=0&&e.splice(n,1)}var E={from:function(e){var t=Array(e.length);for(var n in e)y(e,n)&&(t[n]=e[n]);return t}};function g(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=r({},e),n=new Promise((function(e,n){t.resolve=e,t.reject=n}));return t.promise=n,t}function k(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=void 0,r=new Promise((function(r){n=setTimeout((function(){return r(t)}),e)}));return r[u]=function(){return clearTimeout(n)},r}function v(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return function(){return++e}}var D=v(),L=function(e){throw e},O=function(e){return{value:e,done:!0}};function Y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:L,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",r=arguments[3],a={name:n,next:e,throw:t,return:O};return r&&(a[s]=!0),"undefined"!=typeof Symbol&&(a[Symbol.iterator]=function(){return a}),a}function w(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";"undefined"==typeof window?console.log("redux-saga "+e+": "+t+"\n"+(n&&n.stack||n)):console[e](t,n)}function j(e,t){return function(){return e.apply(void 0,arguments)}}var I=function(e,t){return e+" has been deprecated in favor of "+t+", please update your code"},P=function(e){return new Error("\n redux-saga: Error checking hooks detected an inconsistent state. This is likely a bug\n in redux-saga code and not yours. Thanks for reporting this in the project's github repo.\n Error: "+e+"\n")},C=function(e,t){return(e?e+".":"")+"setContext(props): argument "+t+" is not a plain object"},x=function(e){return function(t){return e(Object.defineProperty(t,d,{value:!0}))}}},function(e,t,n){"use strict";n.d(t,"n",(function(){return r})),n.d(t,"o",(function(){return a})),n.d(t,"b",(function(){return i})),n.d(t,"k",(function(){return o})),n.d(t,"a",(function(){return s})),n.d(t,"d",(function(){return c})),n.d(t,"m",(function(){return u})),n.d(t,"f",(function(){return d})),n.d(t,"l",(function(){return l})),n.d(t,"i",(function(){return _})),n.d(t,"e",(function(){return m})),n.d(t,"c",(function(){return p})),n.d(t,"g",(function(){return f})),n.d(t,"j",(function(){return T})),n.d(t,"h",(function(){return h}));var r="@@MT/TICKETS",a="tribe_rsvp_tickets",i="_tribe_rsvp_for_event",o="_tribe_ticket_show_description",s="_price",c="_tribe_ticket_capacity",u="_ticket_start_date",d="_ticket_end_date",l="_tribe_ticket_show_not_going",_="_tribe_ticket_header",m="_tribe_default_ticket_provider",p="_tribe_tickets_list",f="_tribe_ticket_going_count",T="_tribe_ticket_not_going_count",h="_tribe_ticket_has_attendee_info_fields"},function(e,t,n){"use strict";t.__esModule=!0;var r,a=n(270),i=(r=a)&&r.__esModule?r:{default:r};t.default=i.default||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}},function(e,t,n){"use strict";n.r(t),n.d(t,"setTicketsInitialState",(function(){return a})),n.d(t,"resetTicketsBlock",(function(){return i})),n.d(t,"setTicketsHeaderImage",(function(){return o})),n.d(t,"setTicketsIsSelected",(function(){return s})),n.d(t,"setTicketsIsSettingsOpen",(function(){return c})),n.d(t,"setTicketsIsSettingsLoading",(function(){return u})),n.d(t,"openSettings",(function(){return d})),n.d(t,"closeSettings",(function(){return l})),n.d(t,"setTicketsProvider",(function(){return _})),n.d(t,"setTicketsSharedCapacity",(function(){return m})),n.d(t,"setTicketsTempSharedCapacity",(function(){return p})),n.d(t,"fetchTicketsHeaderImage",(function(){return f})),n.d(t,"updateTicketsHeaderImage",(function(){return T})),n.d(t,"deleteTicketsHeaderImage",(function(){return h})),n.d(t,"setTicketTitle",(function(){return y})),n.d(t,"setTicketDescription",(function(){return b})),n.d(t,"setTicketPrice",(function(){return M})),n.d(t,"setTicketSku",(function(){return S})),n.d(t,"setTicketIACSetting",(function(){return E})),n.d(t,"setTicketStartDate",(function(){return g})),n.d(t,"setTicketStartDateInput",(function(){return k})),n.d(t,"setTicketStartDateMoment",(function(){return v})),n.d(t,"setTicketEndDate",(function(){return D})),n.d(t,"setTicketEndDateInput",(function(){return L})),n.d(t,"setTicketEndDateMoment",(function(){return O})),n.d(t,"setTicketStartTime",(function(){return Y})),n.d(t,"setTicketEndTime",(function(){return w})),n.d(t,"setTicketStartTimeInput",(function(){return j})),n.d(t,"setTicketEndTimeInput",(function(){return I})),n.d(t,"setTicketCapacityType",(function(){return P})),n.d(t,"setTicketCapacity",(function(){return C})),n.d(t,"setTicketTempTitle",(function(){return x})),n.d(t,"setTicketTempDescription",(function(){return R})),n.d(t,"setTicketTempPrice",(function(){return A})),n.d(t,"setTicketTempSku",(function(){return H})),n.d(t,"setTicketTempIACSetting",(function(){return N})),n.d(t,"setTicketTempStartDate",(function(){return V})),n.d(t,"setTicketTempStartDateInput",(function(){return F})),n.d(t,"setTicketTempStartDateMoment",(function(){return K})),n.d(t,"setTicketTempEndDate",(function(){return W})),n.d(t,"setTicketTempEndDateInput",(function(){return U})),n.d(t,"setTicketTempEndDateMoment",(function(){return z})),n.d(t,"setTicketTempStartTime",(function(){return G})),n.d(t,"setTicketTempEndTime",(function(){return B})),n.d(t,"setTicketTempStartTimeInput",(function(){return q})),n.d(t,"setTicketTempEndTimeInput",(function(){return J})),n.d(t,"setTicketTempCapacityType",(function(){return $})),n.d(t,"setTicketTempCapacity",(function(){return Z})),n.d(t,"registerTicketBlock",(function(){return Q})),n.d(t,"removeTicketBlock",(function(){return X})),n.d(t,"removeTicketBlocks",(function(){return ee})),n.d(t,"setTicketSold",(function(){return te})),n.d(t,"setTicketAvailable",(function(){return ne})),n.d(t,"setTicketId",(function(){return re})),n.d(t,"setTicketCurrencySymbol",(function(){return ae})),n.d(t,"setTicketCurrencyPosition",(function(){return ie})),n.d(t,"setTicketProvider",(function(){return oe})),n.d(t,"setTicketHasAttendeeInfoFields",(function(){return se})),n.d(t,"setTicketIsLoading",(function(){return ce})),n.d(t,"setTicketIsModalOpen",(function(){return ue})),n.d(t,"setTicketHasBeenCreated",(function(){return de})),n.d(t,"setTicketHasChanges",(function(){return le})),n.d(t,"setTicketHasDurationError",(function(){return _e})),n.d(t,"setTicketIsSelected",(function(){return me})),n.d(t,"setTicketDetails",(function(){return pe})),n.d(t,"setTicketTempDetails",(function(){return fe})),n.d(t,"handleTicketStartDate",(function(){return Te})),n.d(t,"handleTicketEndDate",(function(){return he})),n.d(t,"handleTicketStartTime",(function(){return ye})),n.d(t,"handleTicketEndTime",(function(){return be})),n.d(t,"fetchTicket",(function(){return Me})),n.d(t,"createNewTicket",(function(){return Se})),n.d(t,"updateTicket",(function(){return Ee})),n.d(t,"deleteTicket",(function(){return ge})),n.d(t,"setTicketInitialState",(function(){return ke}));var r=n(4),a=function(e){return{type:r.g.SET_TICKETS_INITIAL_STATE,payload:e}},i=function(){return{type:r.g.RESET_TICKETS_BLOCK}},o=function(e){return{type:r.g.SET_TICKETS_HEADER_IMAGE,payload:e}},s=function(e){return{type:r.g.SET_TICKETS_IS_SELECTED,payload:{isSelected:e}}},c=function(e){return{type:r.g.SET_TICKETS_IS_SETTINGS_OPEN,payload:{isSettingsOpen:e}}},u=function(e){return{type:r.g.SET_TICKETS_IS_SETTINGS_LOADING,payload:{isSettingsLoading:e}}},d=function(){return c(!0)},l=function(){return c(!1)},_=function(e){return{type:r.g.SET_TICKETS_PROVIDER,payload:{provider:e}}},m=function(e){return{type:r.g.SET_TICKETS_SHARED_CAPACITY,payload:{sharedCapacity:e}}},p=function(e){return{type:r.g.SET_TICKETS_TEMP_SHARED_CAPACITY,payload:{tempSharedCapacity:e}}},f=function(e){return{type:r.g.FETCH_TICKETS_HEADER_IMAGE,payload:{id:e}}},T=function(e){return{type:r.g.UPDATE_TICKETS_HEADER_IMAGE,payload:{image:e}}},h=function(){return{type:r.g.DELETE_TICKETS_HEADER_IMAGE}},y=function(e,t){return{type:r.g.SET_TICKET_TITLE,payload:{clientId:e,title:t}}},b=function(e,t){return{type:r.g.SET_TICKET_DESCRIPTION,payload:{clientId:e,description:t}}},M=function(e,t){return{type:r.g.SET_TICKET_PRICE,payload:{clientId:e,price:t}}},S=function(e,t){return{type:r.g.SET_TICKET_SKU,payload:{clientId:e,sku:t}}},E=function(e,t){return{type:r.g.SET_TICKET_IAC_SETTING,payload:{clientId:e,iac:t}}},g=function(e,t){return{type:r.g.SET_TICKET_START_DATE,payload:{clientId:e,startDate:t}}},k=function(e,t){return{type:r.g.SET_TICKET_START_DATE_INPUT,payload:{clientId:e,startDateInput:t}}},v=function(e,t){return{type:r.g.SET_TICKET_START_DATE_MOMENT,payload:{clientId:e,startDateMoment:t}}},D=function(e,t){return{type:r.g.SET_TICKET_END_DATE,payload:{clientId:e,endDate:t}}},L=function(e,t){return{type:r.g.SET_TICKET_END_DATE_INPUT,payload:{clientId:e,endDateInput:t}}},O=function(e,t){return{type:r.g.SET_TICKET_END_DATE_MOMENT,payload:{clientId:e,endDateMoment:t}}},Y=function(e,t){return{type:r.g.SET_TICKET_START_TIME,payload:{clientId:e,startTime:t}}},w=function(e,t){return{type:r.g.SET_TICKET_END_TIME,payload:{clientId:e,endTime:t}}},j=function(e,t){return{type:r.g.SET_TICKET_START_TIME_INPUT,payload:{clientId:e,startTimeInput:t}}},I=function(e,t){return{type:r.g.SET_TICKET_END_TIME_INPUT,payload:{clientId:e,endTimeInput:t}}},P=function(e,t){return{type:r.g.SET_TICKET_CAPACITY_TYPE,payload:{clientId:e,capacityType:t}}},C=function(e,t){return{type:r.g.SET_TICKET_CAPACITY,payload:{clientId:e,capacity:t}}},x=function(e,t){return{type:r.g.SET_TICKET_TEMP_TITLE,payload:{clientId:e,title:t}}},R=function(e,t){return{type:r.g.SET_TICKET_TEMP_DESCRIPTION,payload:{clientId:e,description:t}}},A=function(e,t){return{type:r.g.SET_TICKET_TEMP_PRICE,payload:{clientId:e,price:t}}},H=function(e,t){return{type:r.g.SET_TICKET_TEMP_SKU,payload:{clientId:e,sku:t}}},N=function(e,t){return{type:r.g.SET_TICKET_TEMP_IAC_SETTING,payload:{clientId:e,iac:t}}},V=function(e,t){return{type:r.g.SET_TICKET_TEMP_START_DATE,payload:{clientId:e,startDate:t}}},F=function(e,t){return{type:r.g.SET_TICKET_TEMP_START_DATE_INPUT,payload:{clientId:e,startDateInput:t}}},K=function(e,t){return{type:r.g.SET_TICKET_TEMP_START_DATE_MOMENT,payload:{clientId:e,startDateMoment:t}}},W=function(e,t){return{type:r.g.SET_TICKET_TEMP_END_DATE,payload:{clientId:e,endDate:t}}},U=function(e,t){return{type:r.g.SET_TICKET_TEMP_END_DATE_INPUT,payload:{clientId:e,endDateInput:t}}},z=function(e,t){return{type:r.g.SET_TICKET_TEMP_END_DATE_MOMENT,payload:{clientId:e,endDateMoment:t}}},G=function(e,t){return{type:r.g.SET_TICKET_TEMP_START_TIME,payload:{clientId:e,startTime:t}}},B=function(e,t){return{type:r.g.SET_TICKET_TEMP_END_TIME,payload:{clientId:e,endTime:t}}},q=function(e,t){return{type:r.g.SET_TICKET_TEMP_START_TIME_INPUT,payload:{clientId:e,startTimeInput:t}}},J=function(e,t){return{type:r.g.SET_TICKET_TEMP_END_TIME_INPUT,payload:{clientId:e,endTimeInput:t}}},$=function(e,t){return{type:r.g.SET_TICKET_TEMP_CAPACITY_TYPE,payload:{clientId:e,capacityType:t}}},Z=function(e,t){return{type:r.g.SET_TICKET_TEMP_CAPACITY,payload:{clientId:e,capacity:t}}},Q=function(e){return{type:r.g.REGISTER_TICKET_BLOCK,payload:{clientId:e}}},X=function(e){return{type:r.g.REMOVE_TICKET_BLOCK,payload:{clientId:e}}},ee=function(){return{type:r.g.REMOVE_TICKET_BLOCKS}},te=function(e,t){return{type:r.g.SET_TICKET_SOLD,payload:{clientId:e,sold:t}}},ne=function(e,t){return{type:r.g.SET_TICKET_AVAILABLE,payload:{clientId:e,available:t}}},re=function(e,t){return{type:r.g.SET_TICKET_ID,payload:{clientId:e,ticketId:t}}},ae=function(e,t){return{type:r.g.SET_TICKET_CURRENCY_SYMBOL,payload:{clientId:e,currencySymbol:t}}},ie=function(e,t){return{type:r.g.SET_TICKET_CURRENCY_POSITION,payload:{clientId:e,currencyPosition:t}}},oe=function(e,t){return{type:r.g.SET_TICKET_PROVIDER,payload:{clientId:e,provider:t}}},se=function(e,t){return{type:r.g.SET_TICKET_HAS_ATTENDEE_INFO_FIELDS,payload:{clientId:e,hasAttendeeInfoFields:t}}},ce=function(e,t){return{type:r.g.SET_TICKET_IS_LOADING,payload:{clientId:e,isLoading:t}}},ue=function(e,t){return{type:r.g.SET_TICKET_IS_MODAL_OPEN,payload:{clientId:e,isModalOpen:t}}},de=function(e,t){return{type:r.g.SET_TICKET_HAS_BEEN_CREATED,payload:{clientId:e,hasBeenCreated:t}}},le=function(e,t){return{type:r.g.SET_TICKET_HAS_CHANGES,payload:{clientId:e,hasChanges:t}}},_e=function(e,t){return{type:r.g.SET_TICKET_HAS_DURATION_ERROR,payload:{clientId:e,hasDurationError:t}}},me=function(e,t){return{type:r.g.SET_TICKET_IS_SELECTED,payload:{clientId:e,isSelected:t}}},pe=function(e,t){return{type:r.g.SET_TICKET_DETAILS,payload:{clientId:e,details:t}}},fe=function(e,t){return{type:r.g.SET_TICKET_TEMP_DETAILS,payload:{clientId:e,tempDetails:t}}},Te=function(e,t,n){return{type:r.g.HANDLE_TICKET_START_DATE,payload:{clientId:e,date:t,dayPickerInput:n}}},he=function(e,t,n){return{type:r.g.HANDLE_TICKET_END_DATE,payload:{clientId:e,date:t,dayPickerInput:n}}},ye=function(e,t){return{type:r.g.HANDLE_TICKET_START_TIME,payload:{clientId:e,seconds:t}}},be=function(e,t){return{type:r.g.HANDLE_TICKET_END_TIME,payload:{clientId:e,seconds:t}}},Me=function(e,t){return{type:r.g.FETCH_TICKET,payload:{clientId:e,ticketId:t}}},Se=function(e){return{type:r.g.CREATE_NEW_TICKET,payload:{clientId:e}}},Ee=function(e){return{type:r.g.UPDATE_TICKET,payload:{clientId:e}}},ge=function(e){return{type:r.g.DELETE_TICKET,payload:{clientId:e}}},ke=function(e){return{type:r.g.SET_TICKET_INITIAL_STATE,payload:e}}},function(e,t){e.exports=React},function(e,t,n){e.exports=n(327)},function(e,t,n){"use strict";n.d(t,"f",(function(){return r})),n.d(t,"a",(function(){return ae})),n.d(t,"c",(function(){return Dn})),n.d(t,"d",(function(){return a})),n.d(t,"e",(function(){return i}));var r={};n.r(r),n.d(r,"SET_RSVP_ID",(function(){return s})),n.d(r,"SET_RSVP_SETTINGS_OPEN",(function(){return c})),n.d(r,"SET_RSVP_HAS_CHANGES",(function(){return u})),n.d(r,"SET_RSVP_IS_LOADING",(function(){return d})),n.d(r,"SET_RSVP_IS_SETTINGS_LOADING",(function(){return l})),n.d(r,"SET_RSVP_IS_MODAL_OPEN",(function(){return _})),n.d(r,"SET_RSVP_GOING_COUNT",(function(){return m})),n.d(r,"SET_RSVP_NOT_GOING_COUNT",(function(){return p})),n.d(r,"SET_RSVP_HAS_ATTENDEE_INFO_FIELDS",(function(){return f})),n.d(r,"SET_RSVP_HAS_DURATION_ERROR",(function(){return T})),n.d(r,"SET_RSVP_DETAILS",(function(){return h})),n.d(r,"SET_RSVP_TEMP_DETAILS",(function(){return y})),n.d(r,"SET_RSVP_HEADER_IMAGE",(function(){return b})),n.d(r,"SET_RSVP_TITLE",(function(){return M})),n.d(r,"SET_RSVP_DESCRIPTION",(function(){return S})),n.d(r,"SET_RSVP_CAPACITY",(function(){return E})),n.d(r,"SET_RSVP_NOT_GOING_RESPONSES",(function(){return g})),n.d(r,"SET_RSVP_START_DATE",(function(){return k})),n.d(r,"SET_RSVP_START_DATE_INPUT",(function(){return v})),n.d(r,"SET_RSVP_START_DATE_MOMENT",(function(){return D})),n.d(r,"SET_RSVP_END_DATE",(function(){return L})),n.d(r,"SET_RSVP_END_DATE_INPUT",(function(){return O})),n.d(r,"SET_RSVP_END_DATE_MOMENT",(function(){return Y})),n.d(r,"SET_RSVP_START_TIME",(function(){return w})),n.d(r,"SET_RSVP_END_TIME",(function(){return j})),n.d(r,"SET_RSVP_START_TIME_INPUT",(function(){return I})),n.d(r,"SET_RSVP_END_TIME_INPUT",(function(){return P})),n.d(r,"SET_RSVP_TEMP_TITLE",(function(){return C})),n.d(r,"SET_RSVP_TEMP_DESCRIPTION",(function(){return x})),n.d(r,"SET_RSVP_TEMP_CAPACITY",(function(){return R})),n.d(r,"SET_RSVP_TEMP_NOT_GOING_RESPONSES",(function(){return A})),n.d(r,"SET_RSVP_TEMP_START_DATE",(function(){return H})),n.d(r,"SET_RSVP_TEMP_START_DATE_INPUT",(function(){return N})),n.d(r,"SET_RSVP_TEMP_START_DATE_MOMENT",(function(){return V})),n.d(r,"SET_RSVP_TEMP_END_DATE",(function(){return F})),n.d(r,"SET_RSVP_TEMP_END_DATE_INPUT",(function(){return K})),n.d(r,"SET_RSVP_TEMP_END_DATE_MOMENT",(function(){return W})),n.d(r,"SET_RSVP_TEMP_START_TIME",(function(){return U})),n.d(r,"SET_RSVP_TEMP_END_TIME",(function(){return z})),n.d(r,"SET_RSVP_TEMP_START_TIME_INPUT",(function(){return G})),n.d(r,"SET_RSVP_TEMP_END_TIME_INPUT",(function(){return B})),n.d(r,"CREATE_RSVP",(function(){return q})),n.d(r,"INITIALIZE_RSVP",(function(){return J})),n.d(r,"DELETE_RSVP",(function(){return $})),n.d(r,"HANDLE_RSVP_START_DATE",(function(){return Z})),n.d(r,"HANDLE_RSVP_END_DATE",(function(){return Q})),n.d(r,"HANDLE_RSVP_START_TIME",(function(){return X})),n.d(r,"HANDLE_RSVP_END_TIME",(function(){return ee})),n.d(r,"FETCH_RSVP_HEADER_IMAGE",(function(){return te})),n.d(r,"UPDATE_RSVP_HEADER_IMAGE",(function(){return ne})),n.d(r,"DELETE_RSVP_HEADER_IMAGE",(function(){return re}));var a={};n.r(a),n.d(a,"getRSVPBlock",(function(){return oe})),n.d(a,"getRSVPId",(function(){return se})),n.d(a,"getRSVPCreated",(function(){return ce})),n.d(a,"getRSVPSettingsOpen",(function(){return ue})),n.d(a,"getRSVPHasChanges",(function(){return de})),n.d(a,"getRSVPIsLoading",(function(){return le})),n.d(a,"getRSVPIsSettingsLoading",(function(){return _e})),n.d(a,"getRSVPIsModalOpen",(function(){return me})),n.d(a,"getRSVPGoingCount",(function(){return pe})),n.d(a,"getRSVPNotGoingCount",(function(){return fe})),n.d(a,"getRSVPHasAttendeeInfoFields",(function(){return Te})),n.d(a,"getRSVPHasDurationError",(function(){return he})),n.d(a,"getRSVPDetails",(function(){return ye})),n.d(a,"getRSVPTitle",(function(){return be})),n.d(a,"getRSVPDescription",(function(){return Me})),n.d(a,"getRSVPCapacity",(function(){return Se})),n.d(a,"getRSVPAvailable",(function(){return Ee})),n.d(a,"getRSVPNotGoingResponses",(function(){return ge})),n.d(a,"getRSVPStartDate",(function(){return ke})),n.d(a,"getRSVPStartDateInput",(function(){return ve})),n.d(a,"getRSVPStartDateMoment",(function(){return De})),n.d(a,"getRSVPStartTime",(function(){return Le})),n.d(a,"getRSVPStartTimeNoSeconds",(function(){return Oe})),n.d(a,"getRSVPEndDate",(function(){return Ye})),n.d(a,"getRSVPEndDateInput",(function(){return we})),n.d(a,"getRSVPEndDateMoment",(function(){return je})),n.d(a,"getRSVPEndTime",(function(){return Ie})),n.d(a,"getRSVPEndTimeNoSeconds",(function(){return Pe})),n.d(a,"getRSVPStartTimeInput",(function(){return Ce})),n.d(a,"getRSVPEndTimeInput",(function(){return xe})),n.d(a,"getRSVPTempDetails",(function(){return Re})),n.d(a,"getRSVPTempTitle",(function(){return Ae})),n.d(a,"getRSVPTempDescription",(function(){return He})),n.d(a,"getRSVPTempCapacity",(function(){return Ne})),n.d(a,"getRSVPTempNotGoingResponses",(function(){return Ve})),n.d(a,"getRSVPTempStartDate",(function(){return Fe})),n.d(a,"getRSVPTempStartDateInput",(function(){return Ke})),n.d(a,"getRSVPTempStartDateMoment",(function(){return We})),n.d(a,"getRSVPTempStartTime",(function(){return Ue})),n.d(a,"getRSVPTempStartTimeNoSeconds",(function(){return ze})),n.d(a,"getRSVPTempEndDate",(function(){return Ge})),n.d(a,"getRSVPTempEndDateInput",(function(){return Be})),n.d(a,"getRSVPTempEndDateMoment",(function(){return qe})),n.d(a,"getRSVPTempEndTime",(function(){return Je})),n.d(a,"getRSVPTempEndTimeNoSeconds",(function(){return $e})),n.d(a,"getRSVPTempStartTimeInput",(function(){return Ze})),n.d(a,"getRSVPTempEndTimeInput",(function(){return Qe})),n.d(a,"getRSVPHeaderImage",(function(){return Xe})),n.d(a,"getRSVPHeaderImageId",(function(){return et})),n.d(a,"getRSVPHeaderImageSrc",(function(){return tt})),n.d(a,"getRSVPHeaderImageAlt",(function(){return nt}));var i={};n.r(i),n.d(i,"createRSVP",(function(){return pt})),n.d(i,"updateRSVP",(function(){return ft})),n.d(i,"deleteRSVP",(function(){return Tt})),n.d(i,"getRSVP",(function(){return ht}));var o=n(8),s=o.n+"/SET_RSVP_ID",c=o.n+"/SET_RSVP_SETTINGS_OPEN",u=o.n+"/SET_RSVP_HAS_CHANGES",d=o.n+"/SET_RSVP_IS_LOADING",l=o.n+"/SET_RSVP_IS_SETTINGS_LOADING",_=o.n+"/SET_RSVP_IS_MODAL_OPEN",m=o.n+"/SET_RSVP_GOING_COUNT",p=o.n+"/SET_RSVP_NOT_GOING_COUNT",f=o.n+"/SET_RSVP_HAS_ATTENDEE_INFO_FIELDS",T=o.n+"/SET_RSVP_HAS_DURATION_ERROR",h=o.n+"/SET_RSVP_DETAILS",y=o.n+"/SET_RSVP_TEMP_DETAILS",b=o.n+"/SET_RSVP_HEADER_IMAGE",M=o.n+"/SET_RSVP_TITLE",S=o.n+"/SET_RSVP_DESCRIPTION",E=o.n+"/SET_RSVP_CAPACITY",g=o.n+"/SET_RSVP_NOT_GOING_RESPONSES",k=o.n+"/SET_RSVP_START_DATE",v=o.n+"/SET_RSVP_START_DATE_INPUT",D=o.n+"/SET_RSVP_START_DATE_MOMENT",L=o.n+"/SET_RSVP_END_DATE",O=o.n+"/SET_RSVP_END_DATE_INPUT",Y=o.n+"/SET_RSVP_END_DATE_MOMENT",w=o.n+"/SET_RSVP_START_TIME",j=o.n+"/SET_RSVP_END_TIME",I=o.n+"/SET_RSVP_START_TIME_INPUT",P=o.n+"/SET_RSVP_END_TIME_INPUT",C=o.n+"/SET_RSVP_TEMP_TITLE",x=o.n+"/SET_RSVP_TEMP_DESCRIPTION",R=o.n+"/SET_RSVP_TEMP_CAPACITY",A=o.n+"/SET_RSVP_TEMP_NOT_GOING_RESPONSES",H=o.n+"/SET_RSVP_TEMP_START_DATE",N=o.n+"/SET_RSVP_TEMP_START_DATE_INPUT",V=o.n+"/SET_RSVP_TEMP_START_DATE_MOMENT",F=o.n+"/SET_RSVP_TEMP_END_DATE",K=o.n+"/SET_RSVP_TEMP_END_DATE_INPUT",W=o.n+"/SET_RSVP_TEMP_END_DATE_MOMENT",U=o.n+"/SET_RSVP_TEMP_START_TIME",z=o.n+"/SET_RSVP_TEMP_END_TIME",G=o.n+"/SET_RSVP_TEMP_START_TIME_INPUT",B=o.n+"/SET_RSVP_TEMP_END_TIME_INPUT",q=o.n+"/CREATE_RSVP",J=o.n+"/INITIALIZE_RSVP",$=o.n+"/DELETE_RSVP",Z=o.n+"/HANDLE_RSVP_START_DATE",Q=o.n+"/HANDLE_RSVP_END_DATE",X=o.n+"/HANDLE_RSVP_START_TIME",ee=o.n+"/HANDLE_RSVP_END_TIME",te=o.n+"/FETCH_RSVP_HEADER_IMAGE",ne=o.n+"/UPDATE_RSVP_HEADER_IMAGE",re=o.n+"/DELETE_RSVP_HEADER_IMAGE",ae=n(14),ie=n(6),oe=function(e){return e.tickets.blocks.rsvp},se=Object(ie.createSelector)([oe],(function(e){return e.id})),ce=Object(ie.createSelector)([oe],(function(e){return e.created})),ue=Object(ie.createSelector)([oe],(function(e){return e.settingsOpen})),de=Object(ie.createSelector)([oe],(function(e){return e.hasChanges})),le=Object(ie.createSelector)([oe],(function(e){return e.isLoading})),_e=Object(ie.createSelector)([oe],(function(e){return e.isSettingsLoading})),me=Object(ie.createSelector)([oe],(function(e){return e.isModalOpen})),pe=Object(ie.createSelector)([oe],(function(e){return e.goingCount})),fe=Object(ie.createSelector)([oe],(function(e){return e.notGoingCount})),Te=Object(ie.createSelector)([oe],(function(e){return e.hasAttendeeInfoFields})),he=Object(ie.createSelector)([oe],(function(e){return e.hasDurationError})),ye=Object(ie.createSelector)([oe],(function(e){return e.details})),be=Object(ie.createSelector)([ye],(function(e){return e.title})),Me=Object(ie.createSelector)([ye],(function(e){return e.description})),Se=Object(ie.createSelector)([ye],(function(e){return e.capacity})),Ee=Object(ie.createSelector)([Se,pe],(function(e,t){if(""===e)return-1;var n=parseInt(e,10)||0,r=parseInt(t,10)||0;return Math.max(n-r,0)})),ge=Object(ie.createSelector)([ye],(function(e){return e.notGoingResponses})),ke=Object(ie.createSelector)([ye],(function(e){return e.startDate})),ve=Object(ie.createSelector)([ye],(function(e){return e.startDateInput})),De=Object(ie.createSelector)([ye],(function(e){return e.startDateMoment})),Le=Object(ie.createSelector)([ye],(function(e){return e.startTime})),Oe=Object(ie.createSelector)([Le],(function(e){return e.slice(0,-3)})),Ye=Object(ie.createSelector)([ye],(function(e){return e.endDate})),we=Object(ie.createSelector)([ye],(function(e){return e.endDateInput})),je=Object(ie.createSelector)([ye],(function(e){return e.endDateMoment})),Ie=Object(ie.createSelector)([ye],(function(e){return e.endTime})),Pe=Object(ie.createSelector)([Ie],(function(e){return e.slice(0,-3)})),Ce=Object(ie.createSelector)([ye],(function(e){return e.startTimeInput})),xe=Object(ie.createSelector)([ye],(function(e){return e.endTimeInput})),Re=Object(ie.createSelector)([oe],(function(e){return e.tempDetails})),Ae=Object(ie.createSelector)([Re],(function(e){return e.title})),He=Object(ie.createSelector)([Re],(function(e){return e.description})),Ne=Object(ie.createSelector)([Re],(function(e){return e.capacity})),Ve=Object(ie.createSelector)([Re],(function(e){return e.notGoingResponses})),Fe=Object(ie.createSelector)([Re],(function(e){return e.startDate})),Ke=Object(ie.createSelector)([Re],(function(e){return e.startDateInput})),We=Object(ie.createSelector)([Re],(function(e){return e.startDateMoment})),Ue=Object(ie.createSelector)([Re],(function(e){return e.startTime})),ze=Object(ie.createSelector)([Ue],(function(e){return e.slice(0,-3)})),Ge=Object(ie.createSelector)([Re],(function(e){return e.endDate})),Be=Object(ie.createSelector)([Re],(function(e){return e.endDateInput})),qe=Object(ie.createSelector)([Re],(function(e){return e.endDateMoment})),Je=Object(ie.createSelector)([Re],(function(e){return e.endTime})),$e=Object(ie.createSelector)([Je],(function(e){return e.slice(0,-3)})),Ze=Object(ie.createSelector)([Re],(function(e){return e.startTimeInput})),Qe=Object(ie.createSelector)([Re],(function(e){return e.endTimeInput})),Xe=Object(ie.createSelector)([oe],(function(e){return e.headerImage})),et=Object(ie.createSelector)([Xe],(function(e){return e.id})),tt=Object(ie.createSelector)([Xe],(function(e){return e.src})),nt=Object(ie.createSelector)([Xe],(function(e){return e.alt})),rt=n(25),at=n.n(rt),it=n(60),ot=n(61),st=n(3),ct=ot.middlewares.request.actions,ut="DELETE",dt="GET",lt="POST",_t="PUT",mt=function(e){return function(t){return function(n){var r,a=t.title,i=t.description,s=t.capacity,c=t.notGoingResponses,u=t.startDateMoment,d=t.startTime,l=t.endDateMoment,_=t.endTime,m=u.clone().startOf("day").seconds(st.time.toSeconds(d,st.time.TIME_FORMAT_HH_MM_SS)),p=l.clone().startOf("day").seconds(st.time.toSeconds(_,st.time.TIME_FORMAT_HH_MM_SS)),f=""+o.o,T={title:a,excerpt:i,meta:(r={},at()(r,o.d,s),at()(r,o.m,st.moment.toDateTime(m)),at()(r,o.f,st.moment.toDateTime(p)),at()(r,o.l,c),r)};e===lt?(T.status="publish",T.meta[o.b]=""+t.postId,T.meta[o.k]="yes",T.meta[o.a]="0"):e===_t&&(f+="/"+t.id);var h={path:f,params:{method:e,body:JSON.stringify(T)},actions:{start:function(){return n(ae.setRSVPIsLoading(!0))},success:function(r){var a=r.body;e===lt&&(n(ae.createRSVP()),n(ae.setRSVPId(a.id))),n(ae.setRSVPDetails(t)),n(ae.setRSVPHasChanges(!1)),n(ae.setRSVPIsLoading(!1))},error:function(){return n(ae.setRSVPIsLoading(!1))}}};n(ct.wpRequest(h))}}},pt=mt(lt),ft=mt(_t),Tt=function(e){return function(t){var n={path:o.o+"/"+e,params:{method:ut}};t(ct.wpRequest(n))}},ht=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return function(r){var a={path:o.o+"?per_page=100&page="+n+"&context=edit",params:{method:dt},actions:{start:function(){return r(ae.setRSVPIsLoading(!0))},success:function(a){var i=a.body,s=a.headers,c=i.filter((function(e){return e.meta[o.b]==t})),u=s.get("x-wp-totalpages");if(c.length){var d=st.globals.tecDateSettings().datepickerFormat,l=c[0],_=l.meta,m=void 0===_?{}:_,p=st.moment.toMoment(m[o.m]),f=st.moment.toMoment(m[o.f]),T=d?p.format(st.moment.toFormat(d)):st.moment.toDate(p),h=d?f.format(st.moment.toFormat(d)):st.moment.toDate(f),y=m[o.d]>=0?m[o.d]:"",b=m[o.l];r(ae.createRSVP()),r(ae.setRSVPId(l.id)),r(ae.setRSVPGoingCount(parseInt(m[o.g],10)||0)),r(ae.setRSVPNotGoingCount(parseInt(m[o.j],10)||0)),r(ae.setRSVPHasAttendeeInfoFields(m[o.h])),r(ae.setRSVPDetails({title:l.title.rendered,description:l.excerpt.raw,capacity:y,notGoingResponses:b,startDate:st.moment.toDate(p),startDateInput:T,startDateMoment:p.clone().startOf("day"),endDate:st.moment.toDate(f),endDateInput:h,endDateMoment:f.clone().seconds(0),startTime:st.moment.toDatabaseTime(p),endTime:st.moment.toDatabaseTime(f),startTimeInput:st.moment.toTime(p),endTimeInput:st.moment.toTime(f)})),r(ae.setRSVPTempDetails({tempTitle:l.title.rendered,tempDescription:l.excerpt.raw,tempCapacity:y,tempNotGoingResponses:b,tempStartDate:st.moment.toDate(p),tempStartDateInput:T,tempStartDateMoment:p.clone().startOf("day"),tempEndDate:st.moment.toDate(f),tempEndDateInput:h,tempEndDateMoment:f.clone().seconds(0),tempStartTime:st.moment.toDatabaseTime(p),tempEndTime:st.moment.toDatabaseTime(f),tempStartTimeInput:st.moment.toTime(p),tempEndTimeInput:st.moment.toTime(f)})),r(ae.setRSVPIsLoading(!1))}else r(n<u?e(t,n+1):ae.setRSVPIsLoading(!1))},error:function(){return r(ae.setRSVPIsLoading(!1))}}};r(ct.wpRequest(a))}},yt=n(9),bt=n.n(yt),Mt=n(5),St=n.n(Mt),Et=st.globals.tecDateSettings().datepickerFormat,gt=St()(),kt=gt.clone(),vt=Et?gt.format(st.moment.toFormat(Et)):st.moment.toDate(gt),Dt=Et?kt.format(st.moment.toFormat(Et)):st.moment.toDate(kt),Lt={title:"",description:"",capacity:"",notGoingResponses:!1,startDate:st.moment.toDatabaseDate(gt),startDateInput:vt,startDateMoment:gt,endDate:st.moment.toDatabaseDate(kt),endDateInput:Dt,endDateMoment:kt,startTime:st.moment.toDatabaseTime(gt),endTime:st.moment.toDatabaseTime(kt),startTimeInput:st.moment.toTime(gt),endTimeInput:st.moment.toTime(kt)},Ot=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Lt,t=arguments[1];switch(t.type){case r.SET_RSVP_TITLE:return bt()({},e,{title:t.payload.title});case r.SET_RSVP_DESCRIPTION:return bt()({},e,{description:t.payload.description});case r.SET_RSVP_CAPACITY:return bt()({},e,{capacity:t.payload.capacity});case r.SET_RSVP_NOT_GOING_RESPONSES:return bt()({},e,{notGoingResponses:t.payload.notGoingResponses});case r.SET_RSVP_START_DATE:return bt()({},e,{startDate:t.payload.startDate});case r.SET_RSVP_START_DATE_INPUT:return bt()({},e,{startDateInput:t.payload.startDateInput});case r.SET_RSVP_START_DATE_MOMENT:return bt()({},e,{startDateMoment:t.payload.startDateMoment});case r.SET_RSVP_END_DATE:return bt()({},e,{endDate:t.payload.endDate});case r.SET_RSVP_END_DATE_INPUT:return bt()({},e,{endDateInput:t.payload.endDateInput});case r.SET_RSVP_END_DATE_MOMENT:return bt()({},e,{endDateMoment:t.payload.endDateMoment});case r.SET_RSVP_START_TIME:return bt()({},e,{startTime:t.payload.startTime});case r.SET_RSVP_END_TIME:return bt()({},e,{endTime:t.payload.endTime});case r.SET_RSVP_START_TIME_INPUT:return bt()({},e,{startTimeInput:t.payload.startTimeInput});case r.SET_RSVP_END_TIME_INPUT:return bt()({},e,{endTimeInput:t.payload.endTimeInput});default:return e}},Yt=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Lt,t=arguments[1];switch(t.type){case r.SET_RSVP_TEMP_TITLE:return bt()({},e,{title:t.payload.title});case r.SET_RSVP_TEMP_DESCRIPTION:return bt()({},e,{description:t.payload.description});case r.SET_RSVP_TEMP_CAPACITY:return bt()({},e,{capacity:t.payload.capacity});case r.SET_RSVP_TEMP_NOT_GOING_RESPONSES:return bt()({},e,{notGoingResponses:t.payload.notGoingResponses});case r.SET_RSVP_TEMP_START_DATE:return bt()({},e,{startDate:t.payload.startDate});case r.SET_RSVP_TEMP_START_DATE_INPUT:return bt()({},e,{startDateInput:t.payload.startDateInput});case r.SET_RSVP_TEMP_START_DATE_MOMENT:return bt()({},e,{startDateMoment:t.payload.startDateMoment});case r.SET_RSVP_TEMP_END_DATE:return bt()({},e,{endDate:t.payload.endDate});case r.SET_RSVP_TEMP_END_DATE_INPUT:return bt()({},e,{endDateInput:t.payload.endDateInput});case r.SET_RSVP_TEMP_END_DATE_MOMENT:return bt()({},e,{endDateMoment:t.payload.endDateMoment});case r.SET_RSVP_TEMP_START_TIME:return bt()({},e,{startTime:t.payload.startTime});case r.SET_RSVP_TEMP_END_TIME:return bt()({},e,{endTime:t.payload.endTime});case r.SET_RSVP_TEMP_START_TIME_INPUT:return bt()({},e,{startTimeInput:t.payload.startTimeInput});case r.SET_RSVP_TEMP_END_TIME_INPUT:return bt()({},e,{endTimeInput:t.payload.endTimeInput});default:return e}},wt={id:0,created:!1,settingsOpen:!1,hasChanges:!1,isLoading:!1,isSettingsLoading:!1,isModalOpen:!1,goingCount:0,notGoingCount:0,hasAttendeeInfoFields:!1,details:Lt,tempDetails:Lt,headerImage:it.a},jt=n(12),It=n.n(jt),Pt=n(18),Ct=n(0),xt=n(10),Rt=n(62),At=n(20),Ht=n(33),Nt=n(27),Vt=It.a.mark(sn),Ft=It.a.mark(cn),Kt=It.a.mark(un),Wt=It.a.mark(dn),Ut=It.a.mark(ln),zt=It.a.mark(_n),Gt=It.a.mark(mn),Bt=It.a.mark(pn),qt=It.a.mark(fn),Jt=It.a.mark(Tn),$t=It.a.mark(hn),Zt=It.a.mark(yn),Qt=It.a.mark(bn),Xt=It.a.mark(Mn),en=It.a.mark(Sn),tn=It.a.mark(En),nn=It.a.mark(gn),rn=It.a.mark(kn),an=It.a.mark(vn),on=It.a.mark(Dn);function sn(e){var t,n,r,a,i,o,s,c,u,d,l,_,m,p,f;return It.a.wrap((function(T){for(;;)switch(T.prev=T.next){case 0:return t=e.payload,n=t.title,r=t.description,a=t.capacity,i=t.notGoingResponses,o=t.startDate,s=t.startDateInput,c=t.startDateMoment,u=t.startTime,d=t.endDate,l=t.endDateInput,_=t.endDateMoment,m=t.endTime,p=t.startTimeInput,f=t.endTimeInput,T.next=3,Object(Ct.a)([Object(Ct.e)(ae.setRSVPTitle(n)),Object(Ct.e)(ae.setRSVPDescription(r)),Object(Ct.e)(ae.setRSVPCapacity(a)),Object(Ct.e)(ae.setRSVPNotGoingResponses(i)),Object(Ct.e)(ae.setRSVPStartDate(o)),Object(Ct.e)(ae.setRSVPStartDateInput(s)),Object(Ct.e)(ae.setRSVPStartDateMoment(c)),Object(Ct.e)(ae.setRSVPStartTime(u)),Object(Ct.e)(ae.setRSVPEndDate(d)),Object(Ct.e)(ae.setRSVPEndDateInput(l)),Object(Ct.e)(ae.setRSVPEndDateMoment(_)),Object(Ct.e)(ae.setRSVPEndTime(m)),Object(Ct.e)(ae.setRSVPStartTimeInput(p)),Object(Ct.e)(ae.setRSVPEndTimeInput(f))]);case 3:case"end":return T.stop()}}),Vt,this)}function cn(e){var t,n,r,a,i,o,s,c,u,d,l,_,m,p,f;return It.a.wrap((function(T){for(;;)switch(T.prev=T.next){case 0:return t=e.payload,n=t.tempTitle,r=t.tempDescription,a=t.tempCapacity,i=t.tempNotGoingResponses,o=t.tempStartDate,s=t.tempStartDateInput,c=t.tempStartDateMoment,u=t.tempStartTime,d=t.tempEndDate,l=t.tempEndDateInput,_=t.tempEndDateMoment,m=t.tempEndTime,p=t.tempStartTimeInput,f=t.tempEndTimeInput,T.next=3,Object(Ct.a)([Object(Ct.e)(ae.setRSVPTempTitle(n)),Object(Ct.e)(ae.setRSVPTempDescription(r)),Object(Ct.e)(ae.setRSVPTempCapacity(a)),Object(Ct.e)(ae.setRSVPTempNotGoingResponses(i)),Object(Ct.e)(ae.setRSVPTempStartDate(o)),Object(Ct.e)(ae.setRSVPTempStartDateInput(s)),Object(Ct.e)(ae.setRSVPTempStartDateMoment(c)),Object(Ct.e)(ae.setRSVPTempStartTime(u)),Object(Ct.e)(ae.setRSVPTempEndDate(d)),Object(Ct.e)(ae.setRSVPTempEndDateInput(l)),Object(Ct.e)(ae.setRSVPTempEndDateMoment(_)),Object(Ct.e)(ae.setRSVPTempEndTime(m)),Object(Ct.e)(ae.setRSVPTempStartTimeInput(p)),Object(Ct.e)(ae.setRSVPTempEndTimeInput(f))]);case 3:case"end":return T.stop()}}),Ft,this)}function un(){var e,t,n,r,a,i,o,s,c,u,d,l,_,m;return It.a.wrap((function(p){for(;;)switch(p.prev=p.next){case 0:return p.next=2,Object(Ct.b)([Object(Pt.select)("core/editor"),"getEditedPostAttribute"],"date");case 2:return e=p.sent,p.next=5,Object(Ct.b)(Nt.a,e);case 5:return t=p.sent,n=t.moment,r=t.date,a=t.dateInput,i=t.time,o=t.timeInput,p.next=13,Object(Ct.a)([Object(Ct.e)(ae.setRSVPStartDate(r)),Object(Ct.e)(ae.setRSVPStartDateInput(a)),Object(Ct.e)(ae.setRSVPStartDateMoment(n)),Object(Ct.e)(ae.setRSVPStartTime(i)),Object(Ct.e)(ae.setRSVPStartTimeInput(o)),Object(Ct.e)(ae.setRSVPTempStartDate(r)),Object(Ct.e)(ae.setRSVPTempStartDateInput(a)),Object(Ct.e)(ae.setRSVPTempStartDateMoment(n)),Object(Ct.e)(ae.setRSVPTempStartTime(i)),Object(Ct.e)(ae.setRSVPTempStartTimeInput(o))]);case 13:return p.prev=13,p.next=16,Object(Ct.b)(Nt.e);case 16:if(!p.sent){p.next=30;break}return p.next=19,Object(Ct.f)(window.tribe.events.data.blocks.datetime.selectors.getStart);case 19:return s=p.sent,p.next=22,Object(Ct.b)(Nt.a,s);case 22:return c=p.sent,u=c.moment,d=c.date,l=c.dateInput,_=c.time,m=c.timeInput,p.next=30,Object(Ct.a)([Object(Ct.e)(ae.setRSVPEndDate(d)),Object(Ct.e)(ae.setRSVPEndDateInput(l)),Object(Ct.e)(ae.setRSVPEndDateMoment(u)),Object(Ct.e)(ae.setRSVPEndTime(_)),Object(Ct.e)(ae.setRSVPEndTimeInput(m)),Object(Ct.e)(ae.setRSVPTempEndDate(d)),Object(Ct.e)(ae.setRSVPTempEndDateInput(l)),Object(Ct.e)(ae.setRSVPTempEndDateMoment(u)),Object(Ct.e)(ae.setRSVPTempEndTime(_)),Object(Ct.e)(ae.setRSVPTempEndTimeInput(m))]);case 30:p.next=35;break;case 32:p.prev=32,p.t0=p.catch(13),console.error(p.t0);case 35:return p.next=37,Object(Ct.b)(mn);case 37:case"end":return p.stop()}}),Kt,this,[[13,32]])}function dn(e){var t,n,r,a,i,o,s,c,u,d,l,_,m;return It.a.wrap((function(p){for(;;)switch(p.prev=p.next){case 0:return p.prev=0,p.next=3,Object(Ct.f)(qe);case 3:return t=p.sent,p.next=6,Object(Ct.f)(je);case 6:return n=p.sent,p.next=9,Object(Ct.b)(Nt.a,e);case 9:return r=p.sent,a=r.moment,p.next=13,Object(Ct.a)([Object(Ct.b)([t,"local"]),Object(Ct.b)([n,"local"]),Object(Ct.b)([a,"local"])]);case 13:return p.next=15,Object(Ct.b)([t,"isSame"],n,"minute");case 15:return i=p.sent,p.next=18,Object(Ct.b)([t,"isSame"],a,"minute");case 18:if(o=p.sent,!i||!o){p.next=35;break}return p.next=22,Object(Ct.f)(window.tribe.events.data.blocks.datetime.selectors.getStart);case 22:return s=p.sent,p.next=25,Object(Ct.b)(Nt.a,s);case 25:return c=p.sent,u=c.moment,d=c.date,l=c.dateInput,_=c.time,m=c.timeInput,p.next=33,Object(Ct.a)([Object(Ct.e)(ae.setRSVPTempEndDate(d)),Object(Ct.e)(ae.setRSVPTempEndDateInput(l)),Object(Ct.e)(ae.setRSVPTempEndDateMoment(u)),Object(Ct.e)(ae.setRSVPTempEndTime(_)),Object(Ct.e)(ae.setRSVPTempEndTimeInput(m)),Object(Ct.e)(ae.setRSVPEndDate(d)),Object(Ct.e)(ae.setRSVPEndDateInput(l)),Object(Ct.e)(ae.setRSVPEndDateMoment(u)),Object(Ct.e)(ae.setRSVPEndTime(_)),Object(Ct.e)(ae.setRSVPEndTimeInput(m)),Object(Ct.e)(ae.setRSVPHasChanges(!0)),Object(Ct.b)(mn)]);case 33:return p.next=35,Object(Ct.d)(ln);case 35:p.next=40;break;case 37:p.prev=37,p.t0=p.catch(0),console.error(p.t0);case 40:case"end":return p.stop()}}),Wt,this,[[0,37]])}function ln(){var e,t;return It.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return e=void 0,n.prev=1,n.next=4,Object(Ct.f)(ce);case 4:if(!n.sent){n.next=15;break}return n.next=7,Object(Ct.b)(Nt.c);case 7:return e=n.sent,n.next=10,Object(Ct.g)(e);case 10:return n.next=12,Object(Ct.a)({id:Object(Ct.f)(se),title:Object(Ct.f)(Ae),description:Object(Ct.f)(He),capacity:Object(Ct.f)(Ne),notGoingResponses:Object(Ct.f)(Ve),startDate:Object(Ct.f)(Fe),startDateInput:Object(Ct.f)(Ke),startDateMoment:Object(Ct.f)(We),endDate:Object(Ct.f)(Ge),endDateInput:Object(Ct.f)(Be),endDateMoment:Object(Ct.f)(qe),startTime:Object(Ct.f)(Ue),endTime:Object(Ct.f)(Je)});case 12:return t=n.sent,n.next=15,Object(Ct.e)(ft(t));case 15:n.next=20;break;case 17:n.prev=17,n.t0=n.catch(1),console.error(n.t0);case 20:if(n.prev=20,!e){n.next=24;break}return n.next=24,Object(Ct.b)([e,"close"]);case 24:return n.finish(20);case 25:case"end":return n.stop()}}),Ut,this,[[1,17,20,25]])}function _n(){var e,t,n,r,a;return It.a.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.prev=0,i.next=3,Object(Ct.g)([J,h]);case 3:return i.next=5,Object(Ct.b)(Nt.e);case 5:if(!i.sent||!window.tribe.events){i.next=23;break}e=window.tribe.events.data.blocks.datetime.types,t=e.SET_START_DATE_TIME,n=e.SET_START_TIME,r=void 0;case 9:return i.next=12,Object(Ct.f)(window.tribe.events.data.blocks.datetime.selectors.getStart);case 12:return a=i.sent,i.next=15,Object(Ct.g)([t,n]);case 15:if(!r){i.next=18;break}return i.next=18,Object(Ct.c)(r);case 18:return i.next=20,Object(Ct.d)(dn,a);case 20:r=i.sent,i.next=9;break;case 23:i.next=28;break;case 25:i.prev=25,i.t0=i.catch(0),console.error(i.t0);case 28:case"end":return i.stop()}}),zt,this,[[0,25]])}function mn(){var e,t,n,r,a,i,o,s,c;return It.a.wrap((function(u){for(;;)switch(u.prev=u.next){case 0:return e=!1,u.next=3,Object(Ct.f)(We);case 3:return t=u.sent,u.next=6,Object(Ct.f)(qe);case 6:if(n=u.sent,t&&n){u.next=11;break}e=!0,u.next=33;break;case 11:return u.next=13,Object(Ct.f)(Ue);case 13:return r=u.sent,u.next=16,Object(Ct.f)(Je);case 16:return a=u.sent,u.next=19,Object(Ct.b)(st.time.toSeconds,r,st.time.TIME_FORMAT_HH_MM_SS);case 19:return i=u.sent,u.next=22,Object(Ct.b)(st.time.toSeconds,a,st.time.TIME_FORMAT_HH_MM_SS);case 22:return o=u.sent,u.next=25,Object(Ct.b)(st.moment.setTimeInSeconds,t.clone(),i);case 25:return s=u.sent,u.next=28,Object(Ct.b)(st.moment.setTimeInSeconds,n.clone(),o);case 28:return c=u.sent,u.next=31,Object(Ct.b)([s,"isSameOrAfter"],c);case 31:u.sent&&(e=!0);case 33:return u.next=35,Object(Ct.e)(ae.setRSVPHasDurationError(e));case 35:case"end":return u.stop()}}),Gt,this)}function pn(e){var t,n,r,a,i;return It.a.wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return t=e.payload,n=t.date,r=t.dayPickerInput,o.next=3,n?Object(Ct.b)(st.moment.toMoment,n):void 0;case 3:return a=o.sent,o.next=6,n?Object(Ct.b)(st.moment.toDatabaseDate,a):"";case 6:return i=o.sent,o.next=9,Object(Ct.e)(ae.setRSVPTempStartDate(i));case 9:return o.next=11,Object(Ct.e)(ae.setRSVPTempStartDateInput(r.state.value));case 11:return o.next=13,Object(Ct.e)(ae.setRSVPTempStartDateMoment(a));case 13:case"end":return o.stop()}}),Bt,this)}function fn(e){var t,n,r,a,i;return It.a.wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return t=e.payload,n=t.date,r=t.dayPickerInput,o.next=3,n?Object(Ct.b)(st.moment.toMoment,n):void 0;case 3:return a=o.sent,o.next=6,n?Object(Ct.b)(st.moment.toDatabaseDate,a):"";case 6:return i=o.sent,o.next=9,Object(Ct.e)(ae.setRSVPTempEndDate(i));case 9:return o.next=11,Object(Ct.e)(ae.setRSVPTempEndDateInput(r.state.value));case 11:return o.next=13,Object(Ct.e)(ae.setRSVPTempEndDateMoment(a));case 13:case"end":return o.stop()}}),qt,this)}function Tn(e){var t;return It.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,Object(Ct.b)(st.time.fromSeconds,e.payload.seconds,st.time.TIME_FORMAT_HH_MM);case 2:return t=n.sent,n.next=5,Object(Ct.e)(ae.setRSVPTempStartTime(t+":00"));case 5:case"end":return n.stop()}}),Jt,this)}function hn(e){var t,n,r;return It.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return a.next=2,Object(Ct.b)(st.time.fromSeconds,e.payload.seconds,st.time.TIME_FORMAT_HH_MM);case 2:return t=a.sent,a.next=5,Object(Ct.b)(st.moment.toMoment,t,st.moment.TIME_FORMAT,!1);case 5:return n=a.sent,a.next=8,Object(Ct.b)(st.moment.toTime,n);case 8:return r=a.sent,a.next=11,Object(Ct.e)(ae.setRSVPTempStartTimeInput(r));case 11:case"end":return a.stop()}}),$t,this)}function yn(e){var t;return It.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,Object(Ct.b)(st.time.fromSeconds,e.payload.seconds,st.time.TIME_FORMAT_HH_MM);case 2:return t=n.sent,n.next=5,Object(Ct.e)(ae.setRSVPTempEndTime(t+":00"));case 5:case"end":return n.stop()}}),Zt,this)}function bn(e){var t,n,r;return It.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return a.next=2,Object(Ct.b)(st.time.fromSeconds,e.payload.seconds,st.time.TIME_FORMAT_HH_MM);case 2:return t=a.sent,a.next=5,Object(Ct.b)(st.moment.toMoment,t,st.moment.TIME_FORMAT,!1);case 5:return n=a.sent,a.next=8,Object(Ct.b)(st.moment.toTime,n);case 8:return r=a.sent,a.next=11,Object(Ct.e)(ae.setRSVPTempEndTimeInput(r));case 11:case"end":return a.stop()}}),Qt,this)}function Mn(){var e,t,n;return It.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,Object(Ct.f)(se);case 2:return e=r.sent,r.next=5,Object(Ct.f)(Ht.e);case 5:if(t=r.sent,e!==t){r.next=14;break}return r.next=9,Object(Ct.f)(Ht.a);case 9:return n=r.sent,r.next=12,Object(Ct.e)(ae.deleteRSVP());case 12:return r.next=14,Object(Ct.b)([Object(Pt.dispatch)("core/editor"),"removeBlocks"],[n]);case 14:case"end":return r.stop()}}),Xt,this)}function Sn(e){var t,n,r,a,i;return It.a.wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return t=e.payload.id,o.next=3,Object(Ct.e)(ae.setRSVPIsSettingsLoading(!0));case 3:return o.prev=3,o.next=6,Object(Ct.b)(st.api.wpREST,{path:"media/"+t});case 6:if(n=o.sent,r=n.response,a=n.data,!r.ok){o.next=13;break}return i={id:a.id,alt:a.alt_text,src:a.media_details.sizes.medium.source_url},o.next=13,Object(Ct.e)(ae.setRSVPHeaderImage(i));case 13:o.next=18;break;case 15:o.prev=15,o.t0=o.catch(3),console.error(o.t0);case 18:return o.prev=18,o.next=21,Object(Ct.e)(ae.setRSVPIsSettingsLoading(!1));case 21:return o.finish(18);case 22:case"end":return o.stop()}}),en,this,[[3,15,18,22]])}function En(e){var t,n,r,a,i,s,c,u;return It.a.wrap((function(d){for(;;)switch(d.prev=d.next){case 0:return t=e.payload.image,d.next=3,Object(Ct.b)([Object(Pt.select)("core/editor"),"getCurrentPostId"]);case 3:return n=d.sent,r={meta:at()({},o.i,""+t.id)},d.prev=5,d.next=8,Object(Ct.e)(ae.setRSVPIsSettingsLoading(!0));case 8:return d.next=10,Object(Ct.e)(xt.setTicketsIsSettingsLoading(!0));case 10:return a=Object(Pt.select)("core/editor").getCurrentPostType(),i=Object(Pt.select)("core").getPostType(a),s=i.rest_base,d.next=15,Object(Ct.b)(st.api.wpREST,{path:s+"/"+n,headers:{"Content-Type":"application/json"},initParams:{method:"PUT",body:JSON.stringify(r)}});case 15:if(c=d.sent,!c.response.ok){d.next=23;break}return u={id:t.id,alt:t.alt,src:t.sizes.medium.url},d.next=21,Object(Ct.e)(ae.setRSVPHeaderImage(u));case 21:return d.next=23,Object(Ct.e)(xt.setTicketsHeaderImage(u));case 23:d.next=27;break;case 25:d.prev=25,d.t0=d.catch(5);case 27:return d.prev=27,d.next=30,Object(Ct.e)(ae.setRSVPIsSettingsLoading(!1));case 30:return d.next=32,Object(Ct.e)(xt.setTicketsIsSettingsLoading(!1));case 32:return d.finish(27);case 33:case"end":return d.stop()}}),tn,this,[[5,25,27,33]])}function gn(){var e,t,n,r,a,i;return It.a.wrap((function(s){for(;;)switch(s.prev=s.next){case 0:return s.next=2,Object(Ct.b)([Object(Pt.select)("core/editor"),"getCurrentPostId"]);case 2:return e=s.sent,t={meta:at()({},o.i,null)},s.prev=4,s.next=7,Object(Ct.e)(ae.setRSVPIsSettingsLoading(!0));case 7:return s.next=9,Object(Ct.e)(xt.setTicketsIsSettingsLoading(!0));case 9:return n=Object(Pt.select)("core/editor").getCurrentPostType(),r=Object(Pt.select)("core").getPostType(n),a=r.rest_base,s.next=14,Object(Ct.b)(st.api.wpREST,{path:a+"/"+e,headers:{"Content-Type":"application/json"},initParams:{method:"PUT",body:JSON.stringify(t)}});case 14:if(i=s.sent,!i.response.ok){s.next=21;break}return s.next=19,Object(Ct.e)(ae.setRSVPHeaderImage(it.a));case 19:return s.next=21,Object(Ct.e)(xt.setTicketsHeaderImage(Rt.a));case 21:s.next=25;break;case 23:s.prev=23,s.t0=s.catch(4);case 25:return s.prev=25,s.next=28,Object(Ct.e)(ae.setRSVPIsSettingsLoading(!1));case 28:return s.next=30,Object(Ct.e)(xt.setTicketsIsSettingsLoading(!1));case 30:return s.finish(25);case 31:case"end":return s.stop()}}),nn,this,[[4,23,25,31]])}function kn(e){return It.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:t.t0=e.type,t.next=t.t0===h?3:t.t0===y?6:t.t0===J?9:t.t0===Z?12:t.t0===Q?19:t.t0===X?26:t.t0===ee?35:t.t0===te?44:t.t0===ne?47:t.t0===re?50:t.t0===At.k?53:56;break;case 3:return t.next=5,Object(Ct.b)(sn,e);case 5:return t.abrupt("break",57);case 6:return t.next=8,Object(Ct.b)(cn,e);case 8:return t.abrupt("break",57);case 9:return t.next=11,Object(Ct.b)(un);case 11:return t.abrupt("break",57);case 12:return t.next=14,Object(Ct.b)(pn,e);case 14:return t.next=16,Object(Ct.b)(mn);case 16:return t.next=18,Object(Ct.e)(ae.setRSVPHasChanges(!0));case 18:return t.abrupt("break",57);case 19:return t.next=21,Object(Ct.b)(fn,e);case 21:return t.next=23,Object(Ct.b)(mn);case 23:return t.next=25,Object(Ct.e)(ae.setRSVPHasChanges(!0));case 25:return t.abrupt("break",57);case 26:return t.next=28,Object(Ct.b)(Tn,e);case 28:return t.next=30,Object(Ct.b)(hn,e);case 30:return t.next=32,Object(Ct.b)(mn);case 32:return t.next=34,Object(Ct.e)(ae.setRSVPHasChanges(!0));case 34:return t.abrupt("break",57);case 35:return t.next=37,Object(Ct.b)(yn,e);case 37:return t.next=39,Object(Ct.b)(bn,e);case 39:return t.next=41,Object(Ct.b)(mn);case 41:return t.next=43,Object(Ct.e)(ae.setRSVPHasChanges(!0));case 43:return t.abrupt("break",57);case 44:return t.next=46,Object(Ct.b)(Sn,e);case 46:return t.abrupt("break",57);case 47:return t.next=49,Object(Ct.b)(En,e);case 49:return t.abrupt("break",57);case 50:return t.next=52,Object(Ct.b)(gn);case 52:return t.abrupt("break",57);case 53:return t.next=55,Object(Ct.b)(Mn);case 55:case 56:return t.abrupt("break",57);case 57:case"end":return t.stop()}}),rn,this)}function vn(){var e,t,n,r,a,i,o;return It.a.wrap((function(s){for(;;)switch(s.prev=s.next){case 0:return s.next=2,Object(Ct.g)([J]);case 2:return s.next=4,Object(Ct.b)(Nt.e);case 4:if(!s.sent){s.next=6;break}return s.abrupt("return");case 6:return s.next=8,Object(Ct.f)(qe);case 8:return e=s.sent,s.next=11,Object(Ct.b)([e,"clone"]);case 11:return t=s.sent,s.next=14,Object(Ct.b)([t,"add"],100,"years");case 14:return s.next=16,Object(Ct.b)(Nt.a,t.toDate());case 16:return n=s.sent,r=n.date,a=n.dateInput,i=n.moment,o=n.time,s.next=23,Object(Ct.a)([Object(Ct.e)(ae.setRSVPTempEndDate(r)),Object(Ct.e)(ae.setRSVPTempEndDateInput(a)),Object(Ct.e)(ae.setRSVPTempEndDateMoment(i)),Object(Ct.e)(ae.setRSVPTempEndTime(o)),Object(Ct.e)(ae.setRSVPEndDate(r)),Object(Ct.e)(ae.setRSVPEndDateInput(a)),Object(Ct.e)(ae.setRSVPEndDateMoment(i)),Object(Ct.e)(ae.setRSVPEndTime(o))]);case 23:case"end":return s.stop()}}),an,this)}function Dn(){return It.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(Ct.h)([h,y,J,Z,Q,X,ee,te,ne,re,At.k],kn);case 2:return e.next=4,Object(Ct.d)(_n);case 4:return e.next=6,Object(Ct.d)(vn);case 6:case"end":return e.stop()}}),on,this)}t.b=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:wt,t=arguments[1];switch(t.type){case r.CREATE_RSVP:return bt()({},e,{created:!0});case r.DELETE_RSVP:return wt;case r.SET_RSVP_ID:return bt()({},e,{id:t.payload.id});case r.SET_RSVP_SETTINGS_OPEN:return bt()({},e,{settingsOpen:t.payload.settingsOpen});case r.SET_RSVP_HAS_CHANGES:return bt()({},e,{hasChanges:t.payload.hasChanges});case r.SET_RSVP_IS_LOADING:return bt()({},e,{isLoading:t.payload.isLoading});case r.SET_RSVP_IS_SETTINGS_LOADING:return bt()({},e,{isSettingsLoading:t.payload.isSettingsLoading});case r.SET_RSVP_IS_MODAL_OPEN:return bt()({},e,{isModalOpen:t.payload.isModalOpen});case r.SET_RSVP_GOING_COUNT:return bt()({},e,{goingCount:t.payload.goingCount});case r.SET_RSVP_NOT_GOING_COUNT:return bt()({},e,{notGoingCount:t.payload.notGoingCount});case r.SET_RSVP_HAS_ATTENDEE_INFO_FIELDS:return bt()({},e,{hasAttendeeInfoFields:t.payload.hasAttendeeInfoFields});case r.SET_RSVP_HAS_DURATION_ERROR:return bt()({},e,{hasDurationError:t.payload.hasDurationError});case r.SET_RSVP_TITLE:case r.SET_RSVP_DESCRIPTION:case r.SET_RSVP_CAPACITY:case r.SET_RSVP_NOT_GOING_RESPONSES:case r.SET_RSVP_START_DATE:case r.SET_RSVP_START_DATE_INPUT:case r.SET_RSVP_START_DATE_MOMENT:case r.SET_RSVP_END_DATE:case r.SET_RSVP_END_DATE_INPUT:case r.SET_RSVP_END_DATE_MOMENT:case r.SET_RSVP_START_TIME:case r.SET_RSVP_END_TIME:case r.SET_RSVP_START_TIME_INPUT:case r.SET_RSVP_END_TIME_INPUT:return bt()({},e,{details:Ot(e.details,t)});case r.SET_RSVP_TEMP_TITLE:case r.SET_RSVP_TEMP_DESCRIPTION:case r.SET_RSVP_TEMP_CAPACITY:case r.SET_RSVP_TEMP_NOT_GOING_RESPONSES:case r.SET_RSVP_TEMP_START_DATE:case r.SET_RSVP_TEMP_START_DATE_INPUT:case r.SET_RSVP_TEMP_START_DATE_MOMENT:case r.SET_RSVP_TEMP_END_DATE:case r.SET_RSVP_TEMP_END_DATE_INPUT:case r.SET_RSVP_TEMP_END_DATE_MOMENT:case r.SET_RSVP_TEMP_START_TIME:case r.SET_RSVP_TEMP_END_TIME:case r.SET_RSVP_TEMP_START_TIME_INPUT:case r.SET_RSVP_TEMP_END_TIME_INPUT:return bt()({},e,{tempDetails:Yt(e.tempDetails,t)});case r.SET_RSVP_HEADER_IMAGE:return bt()({},e,{headerImage:Object(it.b)(e.headerImage,t)});default:return e}}},function(e,t,n){"use strict";n.r(t),n.d(t,"setRSVPId",(function(){return a})),n.d(t,"setRSVPSettingsOpen",(function(){return i})),n.d(t,"setRSVPHasChanges",(function(){return o})),n.d(t,"setRSVPIsLoading",(function(){return s})),n.d(t,"setRSVPIsSettingsLoading",(function(){return c})),n.d(t,"setRSVPIsModalOpen",(function(){return u})),n.d(t,"setRSVPGoingCount",(function(){return d})),n.d(t,"setRSVPNotGoingCount",(function(){return l})),n.d(t,"setRSVPHasAttendeeInfoFields",(function(){return _})),n.d(t,"setRSVPHasDurationError",(function(){return m})),n.d(t,"setRSVPDetails",(function(){return p})),n.d(t,"setRSVPTempDetails",(function(){return f})),n.d(t,"setRSVPHeaderImage",(function(){return T})),n.d(t,"setRSVPTitle",(function(){return h})),n.d(t,"setRSVPDescription",(function(){return y})),n.d(t,"setRSVPCapacity",(function(){return b})),n.d(t,"setRSVPNotGoingResponses",(function(){return M})),n.d(t,"setRSVPStartDate",(function(){return S})),n.d(t,"setRSVPStartDateInput",(function(){return E})),n.d(t,"setRSVPStartDateMoment",(function(){return g})),n.d(t,"setRSVPEndDate",(function(){return k})),n.d(t,"setRSVPEndDateInput",(function(){return v})),n.d(t,"setRSVPEndDateMoment",(function(){return D})),n.d(t,"setRSVPStartTime",(function(){return L})),n.d(t,"setRSVPEndTime",(function(){return O})),n.d(t,"setRSVPStartTimeInput",(function(){return Y})),n.d(t,"setRSVPEndTimeInput",(function(){return w})),n.d(t,"setRSVPTempTitle",(function(){return j})),n.d(t,"setRSVPTempDescription",(function(){return I})),n.d(t,"setRSVPTempCapacity",(function(){return P})),n.d(t,"setRSVPTempNotGoingResponses",(function(){return C})),n.d(t,"setRSVPTempStartDate",(function(){return x})),n.d(t,"setRSVPTempStartDateInput",(function(){return R})),n.d(t,"setRSVPTempStartDateMoment",(function(){return A})),n.d(t,"setRSVPTempEndDate",(function(){return H})),n.d(t,"setRSVPTempEndDateInput",(function(){return N})),n.d(t,"setRSVPTempEndDateMoment",(function(){return V})),n.d(t,"setRSVPTempStartTime",(function(){return F})),n.d(t,"setRSVPTempEndTime",(function(){return K})),n.d(t,"setRSVPTempStartTimeInput",(function(){return W})),n.d(t,"setRSVPTempEndTimeInput",(function(){return U})),n.d(t,"createRSVP",(function(){return z})),n.d(t,"initializeRSVP",(function(){return G})),n.d(t,"deleteRSVP",(function(){return B})),n.d(t,"handleRSVPStartDate",(function(){return q})),n.d(t,"handleRSVPEndDate",(function(){return J})),n.d(t,"handleRSVPStartTime",(function(){return $})),n.d(t,"handleRSVPEndTime",(function(){return Z})),n.d(t,"fetchRSVPHeaderImage",(function(){return Q})),n.d(t,"updateRSVPHeaderImage",(function(){return X})),n.d(t,"deleteRSVPHeaderImage",(function(){return ee}));var r=n(13),a=function(e){return{type:r.f.SET_RSVP_ID,payload:{id:e}}},i=function(e){return{type:r.f.SET_RSVP_SETTINGS_OPEN,payload:{settingsOpen:e}}},o=function(e){return{type:r.f.SET_RSVP_HAS_CHANGES,payload:{hasChanges:e}}},s=function(e){return{type:r.f.SET_RSVP_IS_LOADING,payload:{isLoading:e}}},c=function(e){return{type:r.f.SET_RSVP_IS_SETTINGS_LOADING,payload:{isSettingsLoading:e}}},u=function(e){return{type:r.f.SET_RSVP_IS_MODAL_OPEN,payload:{isModalOpen:e}}},d=function(e){return{type:r.f.SET_RSVP_GOING_COUNT,payload:{goingCount:e}}},l=function(e){return{type:r.f.SET_RSVP_NOT_GOING_COUNT,payload:{notGoingCount:e}}},_=function(e){return{type:r.f.SET_RSVP_HAS_ATTENDEE_INFO_FIELDS,payload:{hasAttendeeInfoFields:e}}},m=function(e){return{type:r.f.SET_RSVP_HAS_DURATION_ERROR,payload:{hasDurationError:e}}},p=function(e){return{type:r.f.SET_RSVP_DETAILS,payload:e}},f=function(e){return{type:r.f.SET_RSVP_TEMP_DETAILS,payload:e}},T=function(e){return{type:r.f.SET_RSVP_HEADER_IMAGE,payload:e}},h=function(e){return{type:r.f.SET_RSVP_TITLE,payload:{title:e}}},y=function(e){return{type:r.f.SET_RSVP_DESCRIPTION,payload:{description:e}}},b=function(e){return{type:r.f.SET_RSVP_CAPACITY,payload:{capacity:e}}},M=function(e){return{type:r.f.SET_RSVP_NOT_GOING_RESPONSES,payload:{notGoingResponses:e}}},S=function(e){return{type:r.f.SET_RSVP_START_DATE,payload:{startDate:e}}},E=function(e){return{type:r.f.SET_RSVP_START_DATE_INPUT,payload:{startDateInput:e}}},g=function(e){return{type:r.f.SET_RSVP_START_DATE_MOMENT,payload:{startDateMoment:e}}},k=function(e){return{type:r.f.SET_RSVP_END_DATE,payload:{endDate:e}}},v=function(e){return{type:r.f.SET_RSVP_END_DATE_INPUT,payload:{endDateInput:e}}},D=function(e){return{type:r.f.SET_RSVP_END_DATE_MOMENT,payload:{endDateMoment:e}}},L=function(e){return{type:r.f.SET_RSVP_START_TIME,payload:{startTime:e}}},O=function(e){return{type:r.f.SET_RSVP_END_TIME,payload:{endTime:e}}},Y=function(e){return{type:r.f.SET_RSVP_START_TIME_INPUT,payload:{startTimeInput:e}}},w=function(e){return{type:r.f.SET_RSVP_END_TIME_INPUT,payload:{endTimeInput:e}}},j=function(e){return{type:r.f.SET_RSVP_TEMP_TITLE,payload:{title:e}}},I=function(e){return{type:r.f.SET_RSVP_TEMP_DESCRIPTION,payload:{description:e}}},P=function(e){return{type:r.f.SET_RSVP_TEMP_CAPACITY,payload:{capacity:e}}},C=function(e){return{type:r.f.SET_RSVP_TEMP_NOT_GOING_RESPONSES,payload:{notGoingResponses:e}}},x=function(e){return{type:r.f.SET_RSVP_TEMP_START_DATE,payload:{startDate:e}}},R=function(e){return{type:r.f.SET_RSVP_TEMP_START_DATE_INPUT,payload:{startDateInput:e}}},A=function(e){return{type:r.f.SET_RSVP_TEMP_START_DATE_MOMENT,payload:{startDateMoment:e}}},H=function(e){return{type:r.f.SET_RSVP_TEMP_END_DATE,payload:{endDate:e}}},N=function(e){return{type:r.f.SET_RSVP_TEMP_END_DATE_INPUT,payload:{endDateInput:e}}},V=function(e){return{type:r.f.SET_RSVP_TEMP_END_DATE_MOMENT,payload:{endDateMoment:e}}},F=function(e){return{type:r.f.SET_RSVP_TEMP_START_TIME,payload:{startTime:e}}},K=function(e){return{type:r.f.SET_RSVP_TEMP_END_TIME,payload:{endTime:e}}},W=function(e){return{type:r.f.SET_RSVP_TEMP_START_TIME_INPUT,payload:{startTimeInput:e}}},U=function(e){return{type:r.f.SET_RSVP_TEMP_END_TIME_INPUT,payload:{endTimeInput:e}}},z=function(){return{type:r.f.CREATE_RSVP}},G=function(){return{type:r.f.INITIALIZE_RSVP}},B=function(){return{type:r.f.DELETE_RSVP}},q=function(e){return{type:r.f.HANDLE_RSVP_START_DATE,payload:e}},J=function(e){return{type:r.f.HANDLE_RSVP_END_DATE,payload:e}},$=function(e){return{type:r.f.HANDLE_RSVP_START_TIME,payload:{seconds:e}}},Z=function(e){return{type:r.f.HANDLE_RSVP_END_TIME,payload:{seconds:e}}},Q=function(e){return{type:r.f.FETCH_RSVP_HEADER_IMAGE,payload:{id:e}}},X=function(e){return{type:r.f.UPDATE_RSVP_HEADER_IMAGE,payload:{image:e}}},ee=function(){return{type:r.f.DELETE_RSVP_HEADER_IMAGE}}},function(e,t){e.exports=wp.i18n},function(e,t,n){"use strict";n.d(t,"a",(function(){return c})),n.d(t,"b",(function(){return o})),n.d(t,"c",(function(){return u}));n(263);var r=function(){return Math.random().toString(36).substring(7).split("").join(".")},a={INIT:"@@redux/INIT"+r(),REPLACE:"@@redux/REPLACE"+r(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+r()}};function i(e,t){var n=t&&t.type;return"Given "+(n&&'action "'+String(n)+'"'||"an action")+', reducer "'+e+'" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.'}function o(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++){var o=t[r];0,"function"==typeof e[o]&&(n[o]=e[o])}var s,c=Object.keys(n);try{!function(e){Object.keys(e).forEach((function(t){var n=e[t];if(void 0===n(void 0,{type:a.INIT}))throw new Error('Reducer "'+t+"\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.");if(void 0===n(void 0,{type:a.PROBE_UNKNOWN_ACTION()}))throw new Error('Reducer "'+t+"\" returned undefined when probed with a random type. Don't try to handle "+a.INIT+' or other actions in "redux/*" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.')}))}(n)}catch(e){s=e}return function(e,t){if(void 0===e&&(e={}),s)throw s;for(var r=!1,a={},o=0;o<c.length;o++){var u=c[o],d=n[u],l=e[u],_=d(l,t);if(void 0===_){var m=i(u,t);throw new Error(m)}a[u]=_,r=r||_!==l}return(r=r||c.length!==Object.keys(e).length)?a:e}}function s(e,t){return function(){return t(e.apply(this,arguments))}}function c(e,t){if("function"==typeof e)return s(e,t);if("object"!=typeof e||null===e)throw new Error("bindActionCreators expected an object or a function, instead received "+(null===e?"null":typeof e)+'. Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?');var n={};for(var r in e){var a=e[r];"function"==typeof a&&(n[r]=s(a,t))}return n}function u(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce((function(e,t){return function(){return e(t.apply(void 0,arguments))}}))}},function(e,t,n){"use strict";n.d(t,"i",(function(){return c})),n.d(t,"g",(function(){return u})),n.d(t,"b",(function(){return d})),n.d(t,"d",(function(){return _})),n.d(t,"f",(function(){return m})),n.d(t,"e",(function(){return p})),n.d(t,"h",(function(){return f})),n.d(t,"a",(function(){return T})),n.d(t,"c",(function(){return y}));var r=n(7),a=Object(r.u)("IO"),i="TAKE",o="\n(HINT: if you are getting this errors in tests, consider using createMockTask from redux-saga/utils)",s=function(e,t){var n;return(n={})[a]=!0,n[e]=t,n};function c(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"*";if(arguments.length&&Object(r.g)(arguments[0],r.n.notUndef,"take(patternOrChannel): patternOrChannel is undefined"),r.n.pattern(e))return s(i,{pattern:e});if(r.n.channel(e))return s(i,{channel:e});throw new Error("take(patternOrChannel): argument "+String(e)+" is not valid channel or a valid pattern")}c.maybe=function(){var e=c.apply(void 0,arguments);return e[i].maybe=!0,e};c.maybe;function u(e,t){return arguments.length>1?(Object(r.g)(e,r.n.notUndef,"put(channel, action): argument channel is undefined"),Object(r.g)(e,r.n.channel,"put(channel, action): argument "+e+" is not a valid channel"),Object(r.g)(t,r.n.notUndef,"put(channel, action): argument action is undefined")):(Object(r.g)(e,r.n.notUndef,"put(action): argument action is undefined"),t=e,e=null),s("PUT",{channel:e,action:t})}function d(e){return s("ALL",e)}function l(e,t,n){Object(r.g)(t,r.n.notUndef,e+": argument fn is undefined");var a=null;if(r.n.array(t)){var i=t;a=i[0],t=i[1]}else if(t.fn){var o=t;a=o.context,t=o.fn}return a&&r.n.string(t)&&r.n.func(a[t])&&(t=a[t]),Object(r.g)(t,r.n.func,e+": argument "+t+" is not a function"),{context:a,fn:t,args:n}}function _(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return s("CALL",l("call",e,n))}function m(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return s("FORK",l("fork",e,n))}function p(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];if(t.length>1)return d(t.map((function(e){return p(e)})));var a=t[0];return 1===t.length&&(Object(r.g)(a,r.n.notUndef,"cancel(task): argument task is undefined"),Object(r.g)(a,r.n.task,"cancel(task): argument "+a+" is not a valid Task object "+o)),s("CANCEL",a||r.d)}function f(e){for(var t=arguments.length,n=Array(t>1?t-1:0),a=1;a<t;a++)n[a-1]=arguments[a];return 0===arguments.length?e=r.l:(Object(r.g)(e,r.n.notUndef,"select(selector,[...]): argument selector is undefined"),Object(r.g)(e,r.n.func,"select(selector,[...]): argument "+e+" is not a function")),s("SELECT",{selector:e,args:n})}function T(e,t){return Object(r.g)(e,r.n.notUndef,"actionChannel(pattern,...): argument pattern is undefined"),arguments.length>1&&(Object(r.g)(t,r.n.notUndef,"actionChannel(pattern, buffer): argument buffer is undefined"),Object(r.g)(t,r.n.buffer,"actionChannel(pattern, buffer): argument "+t+" is not a valid buffer")),s("ACTION_CHANNEL",{pattern:e,buffer:t})}u.resolve=function(){var e=u.apply(void 0,arguments);return e.PUT.resolve=!0,e},u.sync=Object(r.k)(u.resolve,Object(r.w)("put.sync","put.resolve"));var h=function(e){return function(t){return t&&t[a]&&t[e]}},y={take:h(i),put:h("PUT"),all:h("ALL"),race:h("RACE"),call:h("CALL"),cps:h("CPS"),fork:h("FORK"),join:h("JOIN"),cancel:h("CANCEL"),select:h("SELECT"),actionChannel:h("ACTION_CHANNEL"),cancelled:h("CANCELLED"),flush:h("FLUSH"),getContext:h("GET_CONTEXT"),setContext:h("SET_CONTEXT")}},function(e,t){e.exports=wp.data},function(e,t){e.exports=tribe.common.hoc},function(e,t,n){"use strict";n.d(t,"m",(function(){return a})),n.d(t,"l",(function(){return i})),n.d(t,"o",(function(){return o})),n.d(t,"h",(function(){return s})),n.d(t,"n",(function(){return c})),n.d(t,"g",(function(){return u})),n.d(t,"d",(function(){return d})),n.d(t,"f",(function(){return l})),n.d(t,"e",(function(){return _})),n.d(t,"a",(function(){return m})),n.d(t,"c",(function(){return p})),n.d(t,"b",(function(){return f})),n.d(t,"i",(function(){return T})),n.d(t,"k",(function(){return h})),n.d(t,"j",(function(){return y}));var r=n(8),a=r.n+"/SET_MODAL_DATA",i=r.n+"/RESET_MODAL_DATA",o=r.n+"/SUBMIT_MODAL",s=r.n+"/INITIALIZE_MODAL",c=r.n+"/SHOW_MODAL",u=r.n+"/HIDE_MODAL",d=r.n+"/FETCH_POST_TYPES",l=r.n+"/FETCH_POST_TYPES_SUCCESS",_=r.n+"/FETCH_POST_TYPES_ERROR",m=r.n+"/FETCH_POST_CHOICES",p=r.n+"/FETCH_POST_CHOICES_SUCCESS",f=r.n+"/FETCH_POST_CHOICES_ERROR",T=r.n+"/MOVE_TICKET",h=r.n+"/MOVE_TICKET_SUCCESS",y=r.n+"/MOVE_TICKET_ERROR"},function(e,t){e.exports=tribe.common.elements},function(e,t,n){var r;
|
1 |
+
var tribe="object"==typeof tribe?tribe:{};tribe.tickets=tribe.tickets||{},tribe.tickets.blocks=function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=538)}([function(e,t,n){"use strict";n.d(t,"g",(function(){return r.i})),n.d(t,"e",(function(){return r.g})),n.d(t,"a",(function(){return r.b})),n.d(t,"b",(function(){return r.d})),n.d(t,"d",(function(){return r.f})),n.d(t,"c",(function(){return r.e})),n.d(t,"f",(function(){return r.h})),n.d(t,"h",(function(){return i})),n.d(t,"i",(function(){return o}));var r=n(17),a=n(59);function i(e,t){for(var n=arguments.length,i=Array(n>2?n-2:0),o=2;o<n;o++)i[o-2]=arguments[o];return r.f.apply(void 0,[a.a,e,t].concat(i))}function o(e,t){for(var n=arguments.length,i=Array(n>2?n-2:0),o=2;o<n;o++)i[o-2]=arguments[o];return r.f.apply(void 0,[a.b,e,t].concat(i))}},function(e,t,n){e.exports=n(458)()},function(e,t,n){"use strict";n.r(t),n.d(t,"SET_TICKETS_INITIAL_STATE",(function(){return a})),n.d(t,"RESET_TICKETS_BLOCK",(function(){return i})),n.d(t,"SET_TICKETS_HEADER_IMAGE",(function(){return o})),n.d(t,"SET_TICKETS_IS_SELECTED",(function(){return s})),n.d(t,"SET_TICKETS_IS_SETTINGS_OPEN",(function(){return c})),n.d(t,"SET_TICKETS_IS_SETTINGS_LOADING",(function(){return u})),n.d(t,"SET_TICKETS_PROVIDER",(function(){return d})),n.d(t,"SET_TICKETS_SHARED_CAPACITY",(function(){return l})),n.d(t,"SET_TICKETS_TEMP_SHARED_CAPACITY",(function(){return _})),n.d(t,"FETCH_TICKETS_HEADER_IMAGE",(function(){return m})),n.d(t,"UPDATE_TICKETS_HEADER_IMAGE",(function(){return p})),n.d(t,"DELETE_TICKETS_HEADER_IMAGE",(function(){return f})),n.d(t,"REGISTER_TICKET_BLOCK",(function(){return T})),n.d(t,"REMOVE_TICKET_BLOCK",(function(){return h})),n.d(t,"REMOVE_TICKET_BLOCKS",(function(){return y})),n.d(t,"SET_TICKET_TITLE",(function(){return b})),n.d(t,"SET_TICKET_DESCRIPTION",(function(){return M})),n.d(t,"SET_TICKET_PRICE",(function(){return S})),n.d(t,"SET_TICKET_SKU",(function(){return E})),n.d(t,"SET_TICKET_IAC_SETTING",(function(){return g})),n.d(t,"SET_TICKET_START_DATE",(function(){return k})),n.d(t,"SET_TICKET_START_DATE_INPUT",(function(){return v})),n.d(t,"SET_TICKET_START_DATE_MOMENT",(function(){return D})),n.d(t,"SET_TICKET_END_DATE",(function(){return L})),n.d(t,"SET_TICKET_END_DATE_INPUT",(function(){return O})),n.d(t,"SET_TICKET_END_DATE_MOMENT",(function(){return Y})),n.d(t,"SET_TICKET_START_TIME",(function(){return w})),n.d(t,"SET_TICKET_END_TIME",(function(){return j})),n.d(t,"SET_TICKET_START_TIME_INPUT",(function(){return I})),n.d(t,"SET_TICKET_END_TIME_INPUT",(function(){return P})),n.d(t,"SET_TICKET_CAPACITY_TYPE",(function(){return C})),n.d(t,"SET_TICKET_CAPACITY",(function(){return x})),n.d(t,"SET_TICKET_TEMP_TITLE",(function(){return R})),n.d(t,"SET_TICKET_TEMP_DESCRIPTION",(function(){return A})),n.d(t,"SET_TICKET_TEMP_PRICE",(function(){return H})),n.d(t,"SET_TICKET_TEMP_SKU",(function(){return N})),n.d(t,"SET_TICKET_TEMP_IAC_SETTING",(function(){return V})),n.d(t,"SET_TICKET_TEMP_START_DATE",(function(){return F})),n.d(t,"SET_TICKET_TEMP_START_DATE_INPUT",(function(){return K})),n.d(t,"SET_TICKET_TEMP_START_DATE_MOMENT",(function(){return W})),n.d(t,"SET_TICKET_TEMP_END_DATE",(function(){return U})),n.d(t,"SET_TICKET_TEMP_END_DATE_INPUT",(function(){return z})),n.d(t,"SET_TICKET_TEMP_END_DATE_MOMENT",(function(){return G})),n.d(t,"SET_TICKET_TEMP_START_TIME",(function(){return B})),n.d(t,"SET_TICKET_TEMP_END_TIME",(function(){return q})),n.d(t,"SET_TICKET_TEMP_START_TIME_INPUT",(function(){return J})),n.d(t,"SET_TICKET_TEMP_END_TIME_INPUT",(function(){return $})),n.d(t,"SET_TICKET_TEMP_CAPACITY_TYPE",(function(){return Z})),n.d(t,"SET_TICKET_TEMP_CAPACITY",(function(){return Q})),n.d(t,"SET_TICKET_SOLD",(function(){return X})),n.d(t,"SET_TICKET_AVAILABLE",(function(){return ee})),n.d(t,"SET_TICKET_ID",(function(){return te})),n.d(t,"SET_TICKET_CURRENCY_SYMBOL",(function(){return ne})),n.d(t,"SET_TICKET_CURRENCY_POSITION",(function(){return re})),n.d(t,"SET_TICKET_PROVIDER",(function(){return ae})),n.d(t,"SET_TICKET_HAS_ATTENDEE_INFO_FIELDS",(function(){return ie})),n.d(t,"SET_TICKET_IS_LOADING",(function(){return oe})),n.d(t,"SET_TICKET_IS_MODAL_OPEN",(function(){return se})),n.d(t,"SET_TICKET_HAS_BEEN_CREATED",(function(){return ce})),n.d(t,"SET_TICKET_HAS_CHANGES",(function(){return ue})),n.d(t,"SET_TICKET_HAS_DURATION_ERROR",(function(){return de})),n.d(t,"SET_TICKET_IS_SELECTED",(function(){return le})),n.d(t,"SET_TICKET_DETAILS",(function(){return _e})),n.d(t,"SET_TICKET_TEMP_DETAILS",(function(){return me})),n.d(t,"HANDLE_TICKET_START_DATE",(function(){return pe})),n.d(t,"HANDLE_TICKET_END_DATE",(function(){return fe})),n.d(t,"HANDLE_TICKET_START_TIME",(function(){return Te})),n.d(t,"HANDLE_TICKET_END_TIME",(function(){return he})),n.d(t,"FETCH_TICKET",(function(){return ye})),n.d(t,"CREATE_NEW_TICKET",(function(){return be})),n.d(t,"UPDATE_TICKET",(function(){return Me})),n.d(t,"DELETE_TICKET",(function(){return Se})),n.d(t,"SET_TICKET_INITIAL_STATE",(function(){return Ee}));var r=n(8),a=r.n+"/SET_TICKETS_INITIAL_STATE",i=r.n+"/RESET_TICKETS_BLOCK",o=r.n+"/SET_TICKETS_HEADER_IMAGE",s=r.n+"/SET_TICKETS_IS_SELECTED",c=r.n+"/SET_TICKETS_IS_SETTINGS_OPEN",u=r.n+"/SET_TICKETS_IS_SETTINGS_LOADING",d=r.n+"/SET_TICKETS_PROVIDER",l=r.n+"/SET_TICKETS_SHARED_CAPACITY",_=r.n+"/SET_TICKETS_TEMP_SHARED_CAPACITY",m=r.n+"/FETCH_TICKETS_HEADER_IMAGE",p=r.n+"/UPDATE_TICKETS_HEADER_IMAGE",f=r.n+"/DELETE_TICKETS_HEADER_IMAGE",T=r.n+"/REGISTER_TICKET_BLOCK",h=r.n+"/REMOVE_TICKET_BLOCK",y=r.n+"/REMOVE_TICKET_BLOCKS",b=r.n+"/SET_TICKET_TITLE",M=r.n+"/SET_TICKET_DESCRIPTION",S=r.n+"/SET_TICKET_PRICE",E=r.n+"/SET_TICKET_SKU",g=r.n+"/SET_TICKET_IAC_SETTING",k=r.n+"/SET_TICKET_START_DATE",v=r.n+"/SET_TICKET_START_DATE_INPUT",D=r.n+"/SET_TICKET_START_DATE_MOMENT",L=r.n+"/SET_TICKET_END_DATE",O=r.n+"/SET_TICKET_END_DATE_INPUT",Y=r.n+"/SET_TICKET_END_DATE_MOMENT",w=r.n+"/SET_TICKET_START_TIME",j=r.n+"/SET_TICKET_END_TIME",I=r.n+"/SET_TICKET_START_TIME_INPUT",P=r.n+"/SET_TICKET_END_TIME_INPUT",C=r.n+"/SET_TICKET_CAPACITY_TYPE",x=r.n+"/SET_TICKET_CAPACITY",R=r.n+"/SET_TICKET_TEMP_TITLE",A=r.n+"/SET_TICKET_TEMP_DESCRIPTION",H=r.n+"/SET_TICKET_TEMP_PRICE",N=r.n+"/SET_TICKET_TEMP_SKU",V=r.n+"/SET_TICKET_TEMP_IAC_SETTING",F=r.n+"/SET_TICKET_TEMP_START_DATE",K=r.n+"/SET_TICKET_TEMP_START_DATE_INPUT",W=r.n+"/SET_TICKET_TEMP_START_DATE_MOMENT",U=r.n+"/SET_TICKET_TEMP_END_DATE",z=r.n+"/SET_TICKET_TEMP_END_DATE_INPUT",G=r.n+"/SET_TICKET_TEMP_END_DATE_MOMENT",B=r.n+"/SET_TICKET_TEMP_START_TIME",q=r.n+"/SET_TICKET_TEMP_END_TIME",J=r.n+"/SET_TICKET_TEMP_START_TIME_INPUT",$=r.n+"/SET_TICKET_TEMP_END_TIME_INPUT",Z=r.n+"/SET_TICKET_TEMP_CAPACITY_TYPE",Q=r.n+"/SET_TICKET_TEMP_CAPACITY",X=r.n+"/SET_TICKET_SOLD",ee=r.n+"/SET_TICKET_AVAILABLE",te=r.n+"/SET_TICKET_ID",ne=r.n+"/SET_TICKET_CURRENCY_SYMBOL",re=r.n+"/SET_TICKET_CURRENCY_POSITION",ae=r.n+"/SET_TICKET_PROVIDER",ie=r.n+"/SET_TICKET_HAS_ATTENDEE_INFO_FIELDS",oe=r.n+"/SET_TICKET_IS_LOADING",se=r.n+"/SET_TICKET_IS_MODAL_OPEN",ce=r.n+"/SET_TICKET_HAS_BEEN_CREATED",ue=r.n+"/SET_TICKET_HAS_CHANGES",de=r.n+"/SET_TICKET_HAS_DURATION_ERROR",le=r.n+"/SET_TICKET_IS_SELECTED",_e=r.n+"/SET_TICKET_DETAILS",me=r.n+"/SET_TICKET_TEMP_DETAILS",pe=r.n+"/HANDLE_TICKET_START_DATE",fe=r.n+"/HANDLE_TICKET_END_DATE",Te=r.n+"/HANDLE_TICKET_START_TIME",he=r.n+"/HANDLE_TICKET_END_TIME",ye=r.n+"/FETCH_TICKET",be=r.n+"/CREATE_NEW_TICKET",Me=r.n+"/UPDATE_TICKET",Se=r.n+"/DELETE_TICKET",Ee=r.n+"/SET_TICKET_INITIAL_STATE"},function(e,t){e.exports=tribe.common.utils},function(e,t,n){"use strict";n.d(t,"b",(function(){return D})),n.d(t,"d",(function(){return r})),n.d(t,"g",(function(){return f})),n.d(t,"a",(function(){return bn})),n.d(t,"f",(function(){return a})),n.d(t,"e",(function(){return Ur}));var r={};n.r(r),n.d(r,"CAPACITY_TYPE_OPTIONS",(function(){return O}));var a={};n.r(a),n.d(a,"getState",(function(){return C})),n.d(a,"getBlock",(function(){return x})),n.d(a,"getTicketsIsSelected",(function(){return R})),n.d(a,"getTicketsIsSettingsOpen",(function(){return A})),n.d(a,"getTicketsIsSettingsLoading",(function(){return H})),n.d(a,"getTicketsProvider",(function(){return N})),n.d(a,"getTicketsSharedCapacity",(function(){return V})),n.d(a,"getTicketsSharedCapacityInt",(function(){return F})),n.d(a,"getTicketsTempSharedCapacity",(function(){return K})),n.d(a,"getTicketsTempSharedCapacityInt",(function(){return W})),n.d(a,"getTicketsHeaderImage",(function(){return U})),n.d(a,"getTicketsHeaderImageId",(function(){return z})),n.d(a,"getTicketsHeaderImageSrc",(function(){return G})),n.d(a,"getTicketsHeaderImageAlt",(function(){return B})),n.d(a,"getTickets",(function(){return q})),n.d(a,"getTicketsAllClientIds",(function(){return J})),n.d(a,"getTicketsByClientId",(function(){return $})),n.d(a,"getTicketsArray",(function(){return Z})),n.d(a,"getTicketsCount",(function(){return Q})),n.d(a,"hasTickets",(function(){return X})),n.d(a,"hasCreatedTickets",(function(){return ee})),n.d(a,"getIndependentTickets",(function(){return te})),n.d(a,"getSharedTickets",(function(){return ne})),n.d(a,"getSharedTicketsCount",(function(){return re})),n.d(a,"getUnlimitedTickets",(function(){return ae})),n.d(a,"hasATicketSelected",(function(){return ie})),n.d(a,"getTicketsIdsInBlocks",(function(){return oe})),n.d(a,"getTicketClientId",(function(){return se})),n.d(a,"getTicket",(function(){return ce})),n.d(a,"getTicketSold",(function(){return ue})),n.d(a,"getTicketAvailable",(function(){return de})),n.d(a,"getTicketId",(function(){return le})),n.d(a,"getTicketCurrencySymbol",(function(){return _e})),n.d(a,"getTicketCurrencyPosition",(function(){return me})),n.d(a,"getTicketProvider",(function(){return pe})),n.d(a,"getTicketHasAttendeeInfoFields",(function(){return fe})),n.d(a,"getTicketIsLoading",(function(){return Te})),n.d(a,"getTicketIsModalOpen",(function(){return he})),n.d(a,"getTicketHasBeenCreated",(function(){return ye})),n.d(a,"getTicketHasChanges",(function(){return be})),n.d(a,"getTicketHasDurationError",(function(){return Me})),n.d(a,"getTicketIsSelected",(function(){return Se})),n.d(a,"isTicketDisabled",(function(){return Ee})),n.d(a,"getTicketDetails",(function(){return ge})),n.d(a,"getTicketTitle",(function(){return ke})),n.d(a,"getTicketDescription",(function(){return ve})),n.d(a,"getTicketPrice",(function(){return De})),n.d(a,"getTicketSku",(function(){return Le})),n.d(a,"getTicketIACSetting",(function(){return Oe})),n.d(a,"getTicketStartDate",(function(){return Ye})),n.d(a,"getTicketStartDateInput",(function(){return we})),n.d(a,"getTicketStartDateMoment",(function(){return je})),n.d(a,"getTicketEndDate",(function(){return Ie})),n.d(a,"getTicketEndDateInput",(function(){return Pe})),n.d(a,"getTicketEndDateMoment",(function(){return Ce})),n.d(a,"getTicketStartTime",(function(){return xe})),n.d(a,"getTicketStartTimeNoSeconds",(function(){return Re})),n.d(a,"getTicketEndTime",(function(){return Ae})),n.d(a,"getTicketEndTimeNoSeconds",(function(){return He})),n.d(a,"getTicketStartTimeInput",(function(){return Ne})),n.d(a,"getTicketEndTimeInput",(function(){return Ve})),n.d(a,"getTicketCapacityType",(function(){return Fe})),n.d(a,"getTicketCapacity",(function(){return Ke})),n.d(a,"getTicketCapacityInt",(function(){return We})),n.d(a,"isUnlimitedTicket",(function(){return Ue})),n.d(a,"isSharedTicket",(function(){return ze})),n.d(a,"isIndependentTicket",(function(){return Ge})),n.d(a,"isTicketPast",(function(){return Be})),n.d(a,"isTicketFuture",(function(){return qe})),n.d(a,"isTicketOnSale",(function(){return Je})),n.d(a,"hasTicketOnSale",(function(){return $e})),n.d(a,"allTicketsPast",(function(){return Ze})),n.d(a,"allTicketsFuture",(function(){return Qe})),n.d(a,"getTicketTempDetails",(function(){return Xe})),n.d(a,"getTicketTempTitle",(function(){return et})),n.d(a,"getTicketTempDescription",(function(){return tt})),n.d(a,"getTicketTempPrice",(function(){return nt})),n.d(a,"getTicketTempSku",(function(){return rt})),n.d(a,"getTicketTempIACSetting",(function(){return at})),n.d(a,"getTicketTempStartDate",(function(){return it})),n.d(a,"getTicketTempStartDateInput",(function(){return ot})),n.d(a,"getTicketTempStartDateMoment",(function(){return st})),n.d(a,"getTicketTempEndDate",(function(){return ct})),n.d(a,"getTicketTempEndDateInput",(function(){return ut})),n.d(a,"getTicketTempEndDateMoment",(function(){return dt})),n.d(a,"getTicketTempStartTime",(function(){return lt})),n.d(a,"getTicketTempStartTimeNoSeconds",(function(){return _t})),n.d(a,"getTicketTempEndTime",(function(){return mt})),n.d(a,"getTicketTempEndTimeNoSeconds",(function(){return pt})),n.d(a,"getTicketTempStartTimeInput",(function(){return ft})),n.d(a,"getTicketTempEndTimeInput",(function(){return Tt})),n.d(a,"getTicketTempCapacityType",(function(){return ht})),n.d(a,"getTicketTempCapacity",(function(){return yt})),n.d(a,"getTicketTempCapacityInt",(function(){return bt})),n.d(a,"getTicketTempCapacityTypeOption",(function(){return Mt})),n.d(a,"isTempTitleValid",(function(){return St})),n.d(a,"isTempCapacityValid",(function(){return Et})),n.d(a,"isTempSharedCapacityValid",(function(){return gt})),n.d(a,"isZeroPriceValid",(function(){return kt})),n.d(a,"isTicketValid",(function(){return vt})),n.d(a,"_getTotalCapacity",(function(){return Dt})),n.d(a,"_getTotalTempCapacity",(function(){return Lt})),n.d(a,"_getTotalSold",(function(){return Ot})),n.d(a,"_getTotalAvailable",(function(){return Yt})),n.d(a,"getIndependentTicketsCapacity",(function(){return wt})),n.d(a,"getIndependentTicketsTempCapacity",(function(){return jt})),n.d(a,"getIndependentTicketsSold",(function(){return It})),n.d(a,"getIndependentTicketsAvailable",(function(){return Pt})),n.d(a,"getSharedTicketsSold",(function(){return Ct})),n.d(a,"getSharedTicketsAvailable",(function(){return xt})),n.d(a,"getIndependentAndSharedTicketsCapacity",(function(){return Rt})),n.d(a,"getIndependentAndSharedTicketsTempCapacity",(function(){return At})),n.d(a,"getIndependentAndSharedTicketsSold",(function(){return Ht})),n.d(a,"getIndependentAndSharedTicketsAvailable",(function(){return Nt})),n.d(a,"getTicketProviders",(function(){return Vt})),n.d(a,"getDefaultTicketProvider",(function(){return Ft})),n.d(a,"hasValidTicketProvider",(function(){return Kt})),n.d(a,"hasMultipleTicketProviders",(function(){return Wt})),n.d(a,"hasTicketProviders",(function(){return Ut})),n.d(a,"canCreateTickets",(function(){return zt}));var i,o=n(9),s=n.n(o),c=n(262),u=n.n(c),d=n(25),l=n.n(d),_=n(16),m=n(321),p=n.n(m),f=n(2),T=n(44),h=n.n(T),y=n(3),b=n(87),M=n.n(b),S=n(85),E=n.n(S),g=n(6),k=n(5),v=n.n(k),D=n(23),L=n(15),O=[{label:Object(L.__)("Share capacity with other tickets","event-tickets"),value:D.TICKET_TYPES[D.SHARED]},{label:Object(L.__)("Set capacity for this ticket only","event-tickets"),value:D.TICKET_TYPES[D.INDEPENDENT]},{label:Object(L.__)("Unlimited","event-tickets"),value:D.TICKET_TYPES[D.UNLIMITED]}],Y=D.UNLIMITED,w=D.INDEPENDENT,j=D.SHARED,I=D.TICKET_TYPES,P=y.globals.tickets,C=function(e){return e},x=function(e){return e.tickets.blocks.ticket},R=Object(g.createSelector)([x],(function(e){return e.isSelected})),A=Object(g.createSelector)([x],(function(e){return e.isSettingsOpen})),H=Object(g.createSelector)([x],(function(e){return e.isSettingsLoading})),N=Object(g.createSelector)([x],(function(e){return e.provider})),V=Object(g.createSelector)([x],(function(e){return e.sharedCapacity})),F=Object(g.createSelector)([V],(function(e){return parseInt(e,10)||0})),K=Object(g.createSelector)([x],(function(e){return e.tempSharedCapacity})),W=Object(g.createSelector)([K],(function(e){return parseInt(e,10)||0})),U=Object(g.createSelector)([x],(function(e){return e.headerImage})),z=Object(g.createSelector)([U],(function(e){return e.id})),G=Object(g.createSelector)([U],(function(e){return e.src})),B=Object(g.createSelector)([U],(function(e){return e.alt})),q=Object(g.createSelector)([x],(function(e){return e.tickets})),J=Object(g.createSelector)([q],(function(e){return e.allClientIds})),$=Object(g.createSelector)([q],(function(e){return e.byClientId})),Z=Object(g.createSelector)([J,$],(function(e,t){return e.map((function(e){return t[e]}))})),Q=Object(g.createSelector)([J],(function(e){return e.length})),X=Object(g.createSelector)([Q],(function(e){return e>0})),ee=Object(g.createSelector)([Z],(function(e){return e.reduce((function(e,t){return e||t.hasBeenCreated}),!1)})),te=Object(g.createSelector)([Z],(function(e){return e.filter((function(e){return e.details.capacityType===I[w]}))})),ne=Object(g.createSelector)([Z],(function(e){return e.filter((function(e){return e.details.capacityType===I[j]}))})),re=Object(g.createSelector)([ne],(function(e){return e.length})),ae=Object(g.createSelector)([Z],(function(e){return e.filter((function(e){return e.details.capacityType===I[Y]}))})),ie=Object(g.createSelector)([Z],(function(e){return e.reduce((function(e,t){return e||t.isSelected}),!1)})),oe=Object(g.createSelector)([Z],(function(e){return e.reduce((function(e,t){return 0!==t.ticketId&&e.push(t.ticketId),e}),[])})),se=function(e,t){return t.clientId},ce=Object(g.createSelector)([$,se],(function(e,t){return e[t]||{}})),ue=Object(g.createSelector)([ce],(function(e){return e.sold})),de=Object(g.createSelector)([ce],(function(e){return e.available})),le=Object(g.createSelector)([ce],(function(e){return e.ticketId})),_e=Object(g.createSelector)([ce],(function(e){return e.currencySymbol})),me=Object(g.createSelector)([ce],(function(e){return e.currencyPosition})),pe=Object(g.createSelector)([ce],(function(e){return e.provider})),fe=Object(g.createSelector)([ce],(function(e){return e.hasAttendeeInfoFields})),Te=Object(g.createSelector)([ce],(function(e){return e.isLoading})),he=Object(g.createSelector)([ce],(function(e){return e.isModalOpen})),ye=Object(g.createSelector)([ce],(function(e){return e.hasBeenCreated})),be=Object(g.createSelector)([ce],(function(e){return e.hasChanges})),Me=Object(g.createSelector)([ce],(function(e){return e.hasDurationError})),Se=Object(g.createSelector)([ce],(function(e){return e.isSelected})),Ee=Object(g.createSelector)([ie,Se,Te,A],(function(e,t,n,r){return e&&!t||n||r})),ge=Object(g.createSelector)([ce],(function(e){return e.details||{}})),ke=Object(g.createSelector)([ge],(function(e){return e.title})),ve=Object(g.createSelector)([ge],(function(e){return e.description})),De=Object(g.createSelector)([ge],(function(e){return e.price})),Le=Object(g.createSelector)([ge],(function(e){return e.sku})),Oe=Object(g.createSelector)([ge],(function(e){return e.iac})),Ye=Object(g.createSelector)([ge],(function(e){return e.startDate})),we=Object(g.createSelector)([ge],(function(e){return e.startDateInput})),je=Object(g.createSelector)([ge],(function(e){return e.startDateMoment})),Ie=Object(g.createSelector)([ge],(function(e){return e.endDate})),Pe=Object(g.createSelector)([ge],(function(e){return e.endDateInput})),Ce=Object(g.createSelector)([ge],(function(e){return e.endDateMoment})),xe=Object(g.createSelector)([ge],(function(e){return e.startTime||""})),Re=Object(g.createSelector)([xe],(function(e){return e.slice(0,-3)})),Ae=Object(g.createSelector)([ge],(function(e){return e.endTime||""})),He=Object(g.createSelector)([Ae],(function(e){return e.slice(0,-3)})),Ne=Object(g.createSelector)([ge],(function(e){return e.startTimeInput})),Ve=Object(g.createSelector)([ge],(function(e){return e.endTimeInput})),Fe=Object(g.createSelector)([ge],(function(e){return e.capacityType})),Ke=Object(g.createSelector)([ge],(function(e){return e.capacity})),We=Object(g.createSelector)([Ke],(function(e){return parseInt(e,10)||0})),Ue=Object(g.createSelector)([ge],(function(e){return e.capacityType===I[Y]})),ze=Object(g.createSelector)([ge],(function(e){return e.capacityType===I[j]})),Ge=Object(g.createSelector)([ge],(function(e){return e.capacityType===I[w]})),Be=Object(g.createSelector)([Ce],(function(e){return v()().isAfter(e)})),qe=Object(g.createSelector)([je],(function(e){return v()().isBefore(e)})),Je=Object(g.createSelector)([ye,Be,qe],(function(e,t,n){return e&&!t&&!n})),$e=Object(g.createSelector)([J,C],(function(e,t){return e.reduce((function(e,n){return e||Je(t,{clientId:n})}),!1)})),Ze=Object(g.createSelector)([J,C],(function(e,t){return e.reduce((function(e,n){var r={clientId:n};return ye(t,r)?e&&Be(t,r):e}),!0)})),Qe=Object(g.createSelector)([J,C],(function(e,t){return e.reduce((function(e,n){var r={clientId:n};return ye(t,r)?e&&qe(t,r):e}),!0)})),Xe=Object(g.createSelector)([ce],(function(e){return e.tempDetails||{}})),et=Object(g.createSelector)([Xe],(function(e){return e.title})),tt=Object(g.createSelector)([Xe],(function(e){return e.description})),nt=Object(g.createSelector)([Xe],(function(e){return e.price})),rt=Object(g.createSelector)([Xe],(function(e){return e.sku})),at=Object(g.createSelector)([Xe],(function(e){return e.iac})),it=Object(g.createSelector)([Xe],(function(e){return e.startDate})),ot=Object(g.createSelector)([Xe],(function(e){return e.startDateInput})),st=Object(g.createSelector)([Xe],(function(e){return e.startDateMoment})),ct=Object(g.createSelector)([Xe],(function(e){return e.endDate})),ut=Object(g.createSelector)([Xe],(function(e){return e.endDateInput})),dt=Object(g.createSelector)([Xe],(function(e){return e.endDateMoment})),lt=Object(g.createSelector)([Xe],(function(e){return e.startTime||""})),_t=Object(g.createSelector)([lt],(function(e){return e.slice(0,-3)})),mt=Object(g.createSelector)([Xe],(function(e){return e.endTime||""})),pt=Object(g.createSelector)([mt],(function(e){return e.slice(0,-3)})),ft=Object(g.createSelector)([Xe],(function(e){return e.startTimeInput})),Tt=Object(g.createSelector)([Xe],(function(e){return e.endTimeInput})),ht=Object(g.createSelector)([Xe],(function(e){return e.capacityType})),yt=Object(g.createSelector)([Xe],(function(e){return e.capacity})),bt=Object(g.createSelector)([yt],(function(e){return parseInt(e,10)||0})),Mt=Object(g.createSelector)([ht],(function(e){return E()(O,{value:e})||{}})),St=Object(g.createSelector)([et],(function(e){return""!==M()(e)})),Et=Object(g.createSelector)([yt],(function(e){return""!==M()(e)&&!isNaN(e)})),gt=Object(g.createSelector)([K],(function(e){return""!==M()(e)&&!isNaN(e)})),kt=Object(g.createSelector)([nt,N],(function(e,t){return 0<parseInt(e,10)||t!==D.TC_CLASS})),vt=Object(g.createSelector)([ht,St,Et,gt,kt],(function(e,t,n,r,a){return e===I[Y]?t&&a:e===I[j]?t&&r&&a:t&&n&&a})),Dt=function(e){return e.reduce((function(e,t){return e+(parseInt(t.details.capacity,10)||0)}),0)},Lt=function(e){return e.reduce((function(e,t){return e+(parseInt(t.tempDetails.capacity,10)||0)}),0)},Ot=function(e){return e.reduce((function(e,t){return e+(parseInt(t.sold,10)||0)}),0)},Yt=function(e){return e.reduce((function(e,t){return e+(parseInt(t.available,10)||0)}),0)},wt=Object(g.createSelector)(te,Dt),jt=Object(g.createSelector)(te,Lt),It=Object(g.createSelector)(te,Ot),Pt=Object(g.createSelector)(te,Yt),Ct=Object(g.createSelector)(ne,Ot),xt=Object(g.createSelector)([F,Ct],(function(e,t){return Math.max(e-t,0)})),Rt=Object(g.createSelector)([wt,F],(function(e,t){return e+t})),At=Object(g.createSelector)([jt,W],(function(e,t){return e+t})),Ht=Object(g.createSelector)([It,Ct],(function(e,t){return e+t})),Nt=Object(g.createSelector)([Pt,xt],(function(e,t){return e+t})),Vt=function(){return P().providers||[]},Ft=function(){return P().default_provider||""},Kt=function(){var e=Ft();return""!==e&&e!==D.RSVP_CLASS},Wt=Object(g.createSelector)([Vt],(function(e){return e.length>1})),Ut=Object(g.createSelector)([Vt],(function(e){return e.length>0})),zt=Object(g.createSelector)([Ut,Kt],(function(e,t){return e&&t})),Gt=y.globals.settings,Bt=y.globals.priceSettings,qt=y.globals.tickets,Jt=y.globals.tecDateSettings().datepickerFormat,$t=v()(),Zt=y.globals.tickets().end_sale_buffer_duration?y.globals.tickets().end_sale_buffer_duration:2,Qt=y.globals.tickets().end_sale_buffer_years?y.globals.tickets().end_sale_buffer_years:1,Xt=$t.clone().add(Zt,"hours").add(Qt,"years"),en=Jt?$t.format(y.moment.toFormat(Jt)):y.moment.toDate($t),tn=Jt?Xt.format(y.moment.toFormat(Jt)):y.moment.toDate(Xt),nn={title:"",description:"",price:"",sku:"",iac:y.globals.iacVars().iacDefault?y.globals.iacVars().iacDefault:"none",startDate:y.moment.toDatabaseDate($t),startDateInput:en,startDateMoment:$t,endDate:y.moment.toDatabaseDate(Xt),endDateInput:tn,endDateMoment:Xt,startTime:y.moment.toDatabaseTime($t),endTime:y.moment.toDatabaseTime(Xt),startTimeInput:y.moment.toTime($t),endTimeInput:y.moment.toTime(Xt),capacityType:D.TICKET_TYPES[D.UNLIMITED],capacity:""},rn=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:nn,t=arguments[1];switch(t.type){case f.SET_TICKET_TITLE:return s()({},e,{title:t.payload.title});case f.SET_TICKET_DESCRIPTION:return s()({},e,{description:t.payload.description});case f.SET_TICKET_PRICE:return s()({},e,{price:t.payload.price});case f.SET_TICKET_SKU:return s()({},e,{sku:t.payload.sku});case f.SET_TICKET_IAC_SETTING:return s()({},e,{iac:t.payload.iac});case f.SET_TICKET_START_DATE:return s()({},e,{startDate:t.payload.startDate});case f.SET_TICKET_START_DATE_INPUT:return s()({},e,{startDateInput:t.payload.startDateInput});case f.SET_TICKET_START_DATE_MOMENT:return s()({},e,{startDateMoment:t.payload.startDateMoment});case f.SET_TICKET_END_DATE:return s()({},e,{endDate:t.payload.endDate});case f.SET_TICKET_END_DATE_INPUT:return s()({},e,{endDateInput:t.payload.endDateInput});case f.SET_TICKET_END_DATE_MOMENT:return s()({},e,{endDateMoment:t.payload.endDateMoment});case f.SET_TICKET_START_TIME:return s()({},e,{startTime:t.payload.startTime});case f.SET_TICKET_END_TIME:return s()({},e,{endTime:t.payload.endTime});case f.SET_TICKET_START_TIME_INPUT:return s()({},e,{startTimeInput:t.payload.startTimeInput});case f.SET_TICKET_END_TIME_INPUT:return s()({},e,{endTimeInput:t.payload.endTimeInput});case f.SET_TICKET_CAPACITY_TYPE:return s()({},e,{capacityType:t.payload.capacityType});case f.SET_TICKET_CAPACITY:return s()({},e,{capacity:t.payload.capacity});default:return e}},an=y.globals.tecDateSettings().datepickerFormat,on=v()(),sn=y.globals.tickets().end_sale_buffer_duration?y.globals.tickets().end_sale_buffer_duration:2,cn=y.globals.tickets().end_sale_buffer_years?y.globals.tickets().end_sale_buffer_years:1,un=on.clone().add(sn,"hours").add(cn,"years"),dn=an?on.format(y.moment.toFormat(an)):y.moment.toDate(on),ln=an?un.format(y.moment.toFormat(an)):y.moment.toDate(un),_n={title:"",description:"",price:"",sku:"",iac:y.globals.iacVars().iacDefault?y.globals.iacVars().iacDefault:"none",startDate:y.moment.toDatabaseDate(on),startDateInput:dn,startDateMoment:on,endDate:y.moment.toDatabaseDate(un),endDateInput:ln,endDateMoment:un,startTime:y.moment.toDatabaseTime(on),endTime:y.moment.toDatabaseTime(un),startTimeInput:y.moment.toTime(on),endTimeInput:y.moment.toTime(un),capacityType:D.TICKET_TYPES[D.UNLIMITED],capacity:""},mn=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_n,t=arguments[1];switch(t.type){case f.SET_TICKET_TEMP_TITLE:return s()({},e,{title:t.payload.title});case f.SET_TICKET_TEMP_DESCRIPTION:return s()({},e,{description:t.payload.description});case f.SET_TICKET_TEMP_PRICE:return s()({},e,{price:t.payload.price});case f.SET_TICKET_TEMP_SKU:return s()({},e,{sku:t.payload.sku});case f.SET_TICKET_TEMP_IAC_SETTING:return s()({},e,{iac:t.payload.iac});case f.SET_TICKET_TEMP_START_DATE:return s()({},e,{startDate:t.payload.startDate});case f.SET_TICKET_TEMP_START_DATE_INPUT:return s()({},e,{startDateInput:t.payload.startDateInput});case f.SET_TICKET_TEMP_START_DATE_MOMENT:return s()({},e,{startDateMoment:t.payload.startDateMoment});case f.SET_TICKET_TEMP_END_DATE:return s()({},e,{endDate:t.payload.endDate});case f.SET_TICKET_TEMP_END_DATE_INPUT:return s()({},e,{endDateInput:t.payload.endDateInput});case f.SET_TICKET_TEMP_END_DATE_MOMENT:return s()({},e,{endDateMoment:t.payload.endDateMoment});case f.SET_TICKET_TEMP_START_TIME:return s()({},e,{startTime:t.payload.startTime});case f.SET_TICKET_TEMP_END_TIME:return s()({},e,{endTime:t.payload.endTime});case f.SET_TICKET_TEMP_START_TIME_INPUT:return s()({},e,{startTimeInput:t.payload.startTimeInput});case f.SET_TICKET_TEMP_END_TIME_INPUT:return s()({},e,{endTimeInput:t.payload.endTimeInput});case f.SET_TICKET_TEMP_CAPACITY_TYPE:return s()({},e,{capacityType:t.payload.capacityType});case f.SET_TICKET_TEMP_CAPACITY:return s()({},e,{capacity:t.payload.capacity});default:return e}},pn={details:nn,tempDetails:_n,sold:0,available:0,ticketId:0,currencySymbol:function(e){var t=qt(),n=Vt();if(""===e)return t.default_currency;var r=n.filter((function(t){return t.class===e})),a=h()(r,1)[0];return a?a.currency:t.default_currency}(Ft()),currencyPosition:(i=y.string.isTruthy(Gt()&&Gt().reverseCurrencyPosition)?"suffix":"prefix",Bt()&&Bt().defaultCurrencyPosition?Bt().defaultCurrencyPosition:i),provider:"",hasAttendeeInfoFields:!1,isLoading:!1,isModalOpen:!1,hasBeenCreated:!1,hasChanges:!1,hasDurationError:!1,isSelected:!1},fn=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:pn,t=arguments[1];switch(t.type){case f.SET_TICKET_TITLE:case f.SET_TICKET_DESCRIPTION:case f.SET_TICKET_PRICE:case f.SET_TICKET_SKU:case f.SET_TICKET_IAC_SETTING:case f.SET_TICKET_START_DATE:case f.SET_TICKET_START_DATE_INPUT:case f.SET_TICKET_START_DATE_MOMENT:case f.SET_TICKET_END_DATE:case f.SET_TICKET_END_DATE_INPUT:case f.SET_TICKET_END_DATE_MOMENT:case f.SET_TICKET_START_TIME:case f.SET_TICKET_END_TIME:case f.SET_TICKET_START_TIME_INPUT:case f.SET_TICKET_END_TIME_INPUT:case f.SET_TICKET_CAPACITY_TYPE:case f.SET_TICKET_CAPACITY:return s()({},e,{details:rn(e.details,t)});case f.SET_TICKET_TEMP_TITLE:case f.SET_TICKET_TEMP_DESCRIPTION:case f.SET_TICKET_TEMP_PRICE:case f.SET_TICKET_TEMP_SKU:case f.SET_TICKET_TEMP_IAC_SETTING:case f.SET_TICKET_TEMP_START_DATE:case f.SET_TICKET_TEMP_START_DATE_INPUT:case f.SET_TICKET_TEMP_START_DATE_MOMENT:case f.SET_TICKET_TEMP_END_DATE:case f.SET_TICKET_TEMP_END_DATE_INPUT:case f.SET_TICKET_TEMP_END_DATE_MOMENT:case f.SET_TICKET_TEMP_START_TIME:case f.SET_TICKET_TEMP_END_TIME:case f.SET_TICKET_TEMP_START_TIME_INPUT:case f.SET_TICKET_TEMP_END_TIME_INPUT:case f.SET_TICKET_TEMP_CAPACITY_TYPE:case f.SET_TICKET_TEMP_CAPACITY:return s()({},e,{tempDetails:mn(e.tempDetails,t)});case f.SET_TICKET_SOLD:return s()({},e,{sold:t.payload.sold});case f.SET_TICKET_AVAILABLE:return s()({},e,{available:t.payload.available});case f.SET_TICKET_ID:return s()({},e,{ticketId:t.payload.ticketId});case f.SET_TICKET_CURRENCY_SYMBOL:return s()({},e,{currencySymbol:t.payload.currencySymbol});case f.SET_TICKET_CURRENCY_POSITION:return s()({},e,{currencyPosition:t.payload.currencyPosition});case f.SET_TICKET_PROVIDER:return s()({},e,{provider:t.payload.provider});case f.SET_TICKET_HAS_ATTENDEE_INFO_FIELDS:return s()({},e,{hasAttendeeInfoFields:t.payload.hasAttendeeInfoFields});case f.SET_TICKET_IS_LOADING:return s()({},e,{isLoading:t.payload.isLoading});case f.SET_TICKET_IS_MODAL_OPEN:return s()({},e,{isModalOpen:t.payload.isModalOpen});case f.SET_TICKET_HAS_BEEN_CREATED:return s()({},e,{hasBeenCreated:t.payload.hasBeenCreated});case f.SET_TICKET_HAS_CHANGES:return s()({},e,{hasChanges:t.payload.hasChanges});case f.SET_TICKET_HAS_DURATION_ERROR:return s()({},e,{hasDurationError:t.payload.hasDurationError});case f.SET_TICKET_IS_SELECTED:return s()({},e,{isSelected:t.payload.isSelected});default:return e}},Tn=Object(_.b)({byClientId:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1];switch(t.type){case f.SET_TICKET_TITLE:case f.SET_TICKET_DESCRIPTION:case f.SET_TICKET_PRICE:case f.SET_TICKET_SKU:case f.SET_TICKET_IAC_SETTING:case f.SET_TICKET_START_DATE:case f.SET_TICKET_START_DATE_INPUT:case f.SET_TICKET_START_DATE_MOMENT:case f.SET_TICKET_END_DATE:case f.SET_TICKET_END_DATE_INPUT:case f.SET_TICKET_END_DATE_MOMENT:case f.SET_TICKET_START_TIME:case f.SET_TICKET_END_TIME:case f.SET_TICKET_START_TIME_INPUT:case f.SET_TICKET_END_TIME_INPUT:case f.SET_TICKET_CAPACITY_TYPE:case f.SET_TICKET_CAPACITY:case f.SET_TICKET_TEMP_TITLE:case f.SET_TICKET_TEMP_DESCRIPTION:case f.SET_TICKET_TEMP_PRICE:case f.SET_TICKET_TEMP_SKU:case f.SET_TICKET_TEMP_IAC_SETTING:case f.SET_TICKET_TEMP_START_DATE:case f.SET_TICKET_TEMP_START_DATE_INPUT:case f.SET_TICKET_TEMP_START_DATE_MOMENT:case f.SET_TICKET_TEMP_END_DATE:case f.SET_TICKET_TEMP_END_DATE_INPUT:case f.SET_TICKET_TEMP_END_DATE_MOMENT:case f.SET_TICKET_TEMP_START_TIME:case f.SET_TICKET_TEMP_END_TIME:case f.SET_TICKET_TEMP_START_TIME_INPUT:case f.SET_TICKET_TEMP_END_TIME_INPUT:case f.SET_TICKET_TEMP_CAPACITY_TYPE:case f.SET_TICKET_TEMP_CAPACITY:case f.SET_TICKET_SOLD:case f.SET_TICKET_AVAILABLE:case f.SET_TICKET_ID:case f.SET_TICKET_CURRENCY_SYMBOL:case f.SET_TICKET_CURRENCY_POSITION:case f.SET_TICKET_PROVIDER:case f.SET_TICKET_HAS_ATTENDEE_INFO_FIELDS:case f.SET_TICKET_IS_LOADING:case f.SET_TICKET_IS_MODAL_OPEN:case f.SET_TICKET_HAS_BEEN_CREATED:case f.SET_TICKET_HAS_CHANGES:case f.SET_TICKET_HAS_DURATION_ERROR:case f.SET_TICKET_IS_SELECTED:case f.REGISTER_TICKET_BLOCK:return s()({},e,l()({},t.payload.clientId,fn(e[t.payload.clientId],t)));case f.REMOVE_TICKET_BLOCK:return p()(e,[t.payload.clientId]);case f.REMOVE_TICKET_BLOCKS:return{};default:return e}},allClientIds:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1];switch(t.type){case f.REGISTER_TICKET_BLOCK:return[].concat(u()(e),[t.payload.clientId]);case f.REMOVE_TICKET_BLOCK:return e.filter((function(e){return t.payload.clientId!==e}));case f.REMOVE_TICKET_BLOCKS:return[];default:return e}}}),hn=n(62),yn={headerImage:hn.a,isSelected:!1,isSettingsOpen:!1,isSettingsLoading:!1,provider:"",sharedCapacity:"",tempSharedCapacity:"",tickets:Tn(void 0,{})},bn=n(10),Mn=n(12),Sn=n.n(Mn),En=n(112),gn=n.n(En),kn=n(0),vn=n(18),Dn=n(111),Ln=n(14),On=n(60),Yn=n(8),wn=n(35),jn=n(20),In=n(33),Pn=n(27),Cn=Sn.a.mark(Tr),xn=Sn.a.mark(hr),Rn=Sn.a.mark(yr),An=Sn.a.mark(br),Hn=Sn.a.mark(Mr),Nn=Sn.a.mark(Sr),Vn=Sn.a.mark(Er),Fn=Sn.a.mark(gr),Kn=Sn.a.mark(kr),Wn=Sn.a.mark(vr),Un=Sn.a.mark(Dr),zn=Sn.a.mark(Lr),Gn=Sn.a.mark(Or),Bn=Sn.a.mark(Yr),qn=Sn.a.mark(wr),Jn=Sn.a.mark(jr),$n=Sn.a.mark(Ir),Zn=Sn.a.mark(Pr),Qn=Sn.a.mark(Cr),Xn=Sn.a.mark(xr),er=Sn.a.mark(Rr),tr=Sn.a.mark(Ar),nr=Sn.a.mark(Hr),rr=Sn.a.mark(Nr),ar=Sn.a.mark(Vr),ir=Sn.a.mark(Fr),or=Sn.a.mark(Kr),sr=Sn.a.mark(Wr),cr=Sn.a.mark(Ur),ur=D.UNLIMITED,dr=D.SHARED,lr=D.TICKET_TYPES,_r=D.PROVIDER_CLASS_TO_PROVIDER_MAPPING,mr=(y.globals.tickets,y.globals.restNonce),pr=y.globals.tecDateSettings,fr=y.api.wpREST;function Tr(e){var t,n,r,a,i;return Sn.a.wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return o.next=2,Object(kn.b)(vn.dispatch,"core/editor");case 2:return t=o.sent,n=t.insertBlock,o.next=6,Object(kn.b)(vn.select,"core/editor");case 6:return r=o.sent,a=r.getBlockCount,i=r.getBlocks,o.next=11,Object(kn.b)([i(),"filter"],(function(e){return"tribe/tickets"===e.name}));case 11:o.sent.forEach((function(t){var r=t.clientId;e.forEach((function(e){var t={hasBeenCreated:!0,ticketId:e},i=a(r),o=Object(Dn.createBlock)("tribe/tickets-item",t);n(o,i,r,!1)}))}));case 13:case"end":return o.stop()}}),Cn,this)}function hr(e){var t,n,r,a,i,o,s,c;return Sn.a.wrap((function(u){for(;;)switch(u.prev=u.next){case 0:return t=e.payload.get,n=parseInt(t("header",hn.a.id),10),r=t("sharedCapacity"),a=t("tickets",[]),u.next=6,Object(kn.f)(oe);case 6:if(i=u.sent,!((o=a.filter((function(e){return!gn()(i,e)}))).length>=1)){u.next=11;break}return u.next=11,Object(kn.b)(Tr,o);case 11:if("0"===r){u.next=14;break}return u.next=14,Object(kn.a)([Object(kn.e)(bn.setTicketsSharedCapacity(r)),Object(kn.e)(bn.setTicketsTempSharedCapacity(r))]);case 14:if(isNaN(n)||0===n){u.next=17;break}return u.next=17,Object(kn.e)(bn.fetchTicketsHeaderImage(n));case 17:if((s=t("provider",yn.provider))!==D.RSVP_CLASS&&s){u.next=23;break}return u.next=21,Object(kn.f)(Ft);case 21:c=u.sent,s=c===D.RSVP_CLASS?"":c;case 23:return u.next=25,Object(kn.e)(bn.setTicketsProvider(s));case 25:case"end":return u.stop()}}),xn,this)}function yr(){var e,t,n;return Sn.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,Object(kn.f)(ee);case 2:return e=r.sent,r.next=5,Object(kn.a)([Object(kn.e)(bn.removeTicketBlocks()),Object(kn.e)(bn.setTicketsIsSettingsOpen(!1))]);case 5:if(e){r.next=14;break}return r.next=8,Object(kn.b)([Object(vn.select)("core/editor"),"getCurrentPostAttribute"],"meta");case 8:return t=r.sent,n=s()({},t,l()({},Yn.d,"")),r.next=12,Object(kn.b)([Object(vn.dispatch)("core/editor"),"editPost"],{meta:n});case 12:return r.next=14,Object(kn.a)([Object(kn.e)(bn.setTicketsSharedCapacity("")),Object(kn.e)(bn.setTicketsTempSharedCapacity(""))]);case 14:case"end":return r.stop()}}),Rn,this)}function br(e){var t,n,r,a,i,o,s,c,u,d,l,_,m,p,f,T,h,b,M;return Sn.a.wrap((function(S){for(;;)switch(S.prev=S.next){case 0:return t=e.payload,n=t.clientId,r=t.get,a=r("ticketId",pn.ticketId),i=r("hasBeenCreated",pn.hasBeenCreated),o=pr().datepickerFormat,S.next=6,Object(kn.b)([Object(vn.select)("core/editor"),"getEditedPostAttribute"],"date");case 6:return s=S.sent,S.next=9,Object(kn.b)(y.moment.toMoment,s);case 9:return c=S.sent,S.next=12,Object(kn.b)(y.moment.toDatabaseDate,c);case 12:return u=S.sent,S.next=15,o?Object(kn.b)(y.moment.toDate,c,o):Object(kn.b)(y.moment.toDate,c);case 15:return d=S.sent,S.next=18,Object(kn.b)(y.moment.toDatabaseTime,c);case 18:return l=S.sent,S.next=21,Object(kn.b)(y.moment.toTime,c);case 21:return _=S.sent,S.next=24,Object(kn.a)([Object(kn.e)(bn.setTicketStartDate(n,u)),Object(kn.e)(bn.setTicketStartDateInput(n,d)),Object(kn.e)(bn.setTicketStartDateMoment(n,c)),Object(kn.e)(bn.setTicketStartTime(n,l)),Object(kn.e)(bn.setTicketStartTimeInput(n,_)),Object(kn.e)(bn.setTicketTempStartDate(n,u)),Object(kn.e)(bn.setTicketTempStartDateInput(n,d)),Object(kn.e)(bn.setTicketTempStartDateMoment(n,c)),Object(kn.e)(bn.setTicketTempStartTime(n,l)),Object(kn.e)(bn.setTicketTempStartTimeInput(n,_)),Object(kn.e)(bn.setTicketHasBeenCreated(n,i))]);case 24:return S.next=26,Object(kn.b)(Pn.e);case 26:if(!S.sent||!window.tribe.events){S.next=54;break}return S.prev=28,S.next=31,Object(kn.f)(tribe.events.data.blocks.datetime.selectors.getStart);case 31:return m=S.sent,S.next=34,Object(kn.b)(y.moment.toMoment,m);case 34:return p=S.sent,S.next=37,Object(kn.b)(y.moment.toDatabaseDate,p);case 37:return f=S.sent,S.next=40,o?Object(kn.b)(y.moment.toDate,p,o):Object(kn.b)(y.moment.toDate,p);case 40:return T=S.sent,S.next=43,Object(kn.b)(y.moment.toDatabaseTime,p);case 43:return h=S.sent,S.next=46,Object(kn.b)(y.moment.toTime,p);case 46:return b=S.sent,S.next=49,Object(kn.a)([Object(kn.e)(bn.setTicketEndDate(n,f)),Object(kn.e)(bn.setTicketEndDateInput(n,T)),Object(kn.e)(bn.setTicketEndDateMoment(n,p)),Object(kn.e)(bn.setTicketEndTime(n,h)),Object(kn.e)(bn.setTicketEndTimeInput(n,b)),Object(kn.e)(bn.setTicketTempEndDate(n,f)),Object(kn.e)(bn.setTicketTempEndDateInput(n,T)),Object(kn.e)(bn.setTicketTempEndDateMoment(n,p)),Object(kn.e)(bn.setTicketTempEndTime(n,h)),Object(kn.e)(bn.setTicketTempEndTimeInput(n,b))]);case 49:S.next=54;break;case 51:S.prev=51,S.t0=S.catch(28),console.error(S.t0);case 54:return S.next=56,Object(kn.f)(wn.plugins.selectors.hasPlugin,wn.plugins.constants.TICKETS_PLUS);case 56:if(!S.sent){S.next=60;break}return S.next=60,Object(kn.a)([Object(kn.e)(bn.setTicketCapacityType(n,D.TICKET_TYPES[D.SHARED])),Object(kn.e)(bn.setTicketTempCapacityType(n,D.TICKET_TYPES[D.SHARED]))]);case 60:return S.next=62,Object(kn.f)(V);case 62:if(!(M=S.sent)){S.next=66;break}return S.next=66,Object(kn.a)([Object(kn.e)(bn.setTicketCapacity(n,M)),Object(kn.e)(bn.setTicketTempCapacity(n,M))]);case 66:if(0===a){S.next=69;break}return S.next=69,Object(kn.a)([Object(kn.e)(bn.setTicketId(n,a)),Object(kn.b)(Er,{payload:{clientId:n,ticketId:a}})]);case 69:return S.next=71,Object(kn.b)(xr,n);case 71:return S.next=73,Object(kn.d)(jr,n);case 73:case"end":return S.stop()}}),An,this,[[28,51]])}function Mr(e){var t,n,r,a,i,o,s,c;return Sn.a.wrap((function(u){for(;;)switch(u.prev=u.next){case 0:return t=new FormData,n={clientId:e},u.next=4,Object(kn.b)([Object(vn.select)("core/editor"),"getBlockRootClientId"],e);case 4:return r=u.sent,u.next=7,Object(kn.f)(pe,n);case 7:return a=u.sent,u.next=10,Object(kn.f)(N);case 10:return i=u.sent,u.t0=t,u.next=14,Object(kn.b)([Object(vn.select)("core/editor"),"getCurrentPostId"]);case 14:return u.t1=u.sent,u.t0.append.call(u.t0,"post_id",u.t1),t.append("provider",a||i),u.t2=t,u.next=20,Object(kn.f)(et,n);case 20:return u.t3=u.sent,u.t2.append.call(u.t2,"name",u.t3),u.t4=t,u.next=25,Object(kn.f)(tt,n);case 25:return u.t5=u.sent,u.t4.append.call(u.t4,"description",u.t5),u.t6=t,u.next=30,Object(kn.f)(nt,n);case 30:return u.t7=u.sent,u.t6.append.call(u.t6,"price",u.t7),u.t8=t,u.next=35,Object(kn.f)(it,n);case 35:return u.t9=u.sent,u.t8.append.call(u.t8,"start_date",u.t9),u.t10=t,u.next=40,Object(kn.f)(lt,n);case 40:return u.t11=u.sent,u.t10.append.call(u.t10,"start_time",u.t11),u.t12=t,u.next=45,Object(kn.f)(ct,n);case 45:return u.t13=u.sent,u.t12.append.call(u.t12,"end_date",u.t13),u.t14=t,u.next=50,Object(kn.f)(mt,n);case 50:return u.t15=u.sent,u.t14.append.call(u.t14,"end_time",u.t15),u.t16=t,u.next=55,Object(kn.f)(rt,n);case 55:return u.t17=u.sent,u.t16.append.call(u.t16,"sku",u.t17),u.t18=t,u.next=60,Object(kn.f)(at,n);case 60:return u.t19=u.sent,u.t18.append.call(u.t18,"iac",u.t19),u.t20=t,u.next=65,Object(kn.b)([Object(vn.select)("core/editor"),"getBlockIndex"],e,r);case 65:return u.t21=u.sent,u.t20.append.call(u.t20,"menu_order",u.t21),u.next=69,Object(kn.f)(ht,n);case 69:return o=u.sent,u.next=72,Object(kn.f)(yt,n);case 72:if(s=u.sent,c=o===lr[ur],t.append("ticket[mode]",c?"":o),t.append("ticket[capacity]",c?"":s),o!==lr[dr]){u.next=82;break}return u.t22=t,u.next=80,Object(kn.f)(K);case 80:u.t23=u.sent,u.t22.append.call(u.t22,"ticket[event_capacity]",u.t23);case 82:return u.abrupt("return",t);case 83:case"end":return u.stop()}}),Hn,this)}function Sr(e){var t,n;return Sn.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return t=Object(vn.dispatch)("core/editor"),n=t.removeBlock,r.next=3,Object(kn.a)([Object(kn.e)(bn.removeTicketBlock(e)),Object(kn.b)(n,e)]);case 3:case"end":return r.stop()}}),Nn,this)}function Er(e){var t,n,r,a,i,o,s,c,u,d,l,_,m,p,f,T,h,b,M,S,E,g,k,v,L,O,Y,w,j,I,P,C,x;return Sn.a.wrap((function(R){for(;;)switch(R.prev=R.next){case 0:if(t=e.payload,n=t.ticketId,r=t.clientId,0!==n){R.next=3;break}return R.abrupt("return");case 3:return R.next=5,Object(kn.e)(bn.setTicketIsLoading(r,!0));case 5:return R.prev=5,R.next=8,Object(kn.b)(fr,{path:"tickets/"+n,namespace:"tribe/tickets/v1"});case 8:if(a=R.sent,i=a.response,o=a.data,s=o.status,c=void 0===s?"":s,u=o.provider,404!==i.status&&"trash"!==c&&u!==D.RSVP){R.next=16;break}return R.next=15,Object(kn.b)(Sr,r);case 15:return R.abrupt("return");case 16:if(!i.ok){R.next=60;break}return d=o.totals,l=void 0===d?{}:d,_=o.available_from,m=o.available_until,p=o.cost_details,f=o.title,T=o.description,h=o.sku,b=o.iac,M=o.capacity_type,S=o.capacity,E=o.supports_attendee_information,g=pr().datepickerFormat,R.next=21,Object(kn.b)(y.moment.toMoment,_);case 21:return k=R.sent,R.next=24,Object(kn.b)(y.moment.toDatabaseDate,k);case 24:return v=R.sent,R.next=27,g?Object(kn.b)(y.moment.toDate,k,g):Object(kn.b)(y.moment.toDate,k);case 27:return L=R.sent,R.next=30,Object(kn.b)(y.moment.toDatabaseTime,k);case 30:return O=R.sent,R.next=33,Object(kn.b)(y.moment.toTime,k);case 33:return Y=R.sent,R.next=36,Object(kn.b)(y.moment.toMoment,"");case 36:if(w=R.sent,j="",I="",P="",C="",!m){R.next=57;break}return R.next=44,Object(kn.b)(y.moment.toMoment,m);case 44:return w=R.sent,R.next=47,Object(kn.b)(y.moment.toDatabaseDate,w);case 47:return j=R.sent,R.next=50,g?Object(kn.b)(y.moment.toDate,w,g):Object(kn.b)(y.moment.toDate,w);case 50:return I=R.sent,R.next=53,Object(kn.b)(y.moment.toDatabaseTime,w);case 53:return P=R.sent,R.next=56,Object(kn.b)(y.moment.toTime,w);case 56:C=R.sent;case 57:return x={title:f,description:T,price:p.values[0],sku:h,iac:b,startDate:v,startDateInput:L,startDateMoment:k,endDate:j,endDateInput:I,endDateMoment:w,startTime:O,endTime:P,startTimeInput:Y,endTimeInput:C,capacityType:M,capacity:S},R.next=60,Object(kn.a)([Object(kn.e)(bn.setTicketDetails(r,x)),Object(kn.e)(bn.setTicketTempDetails(r,x)),Object(kn.e)(bn.setTicketSold(r,l.sold)),Object(kn.e)(bn.setTicketAvailable(r,l.stock)),Object(kn.e)(bn.setTicketCurrencySymbol(r,p.currency_symbol)),Object(kn.e)(bn.setTicketCurrencyPosition(r,p.currency_position)),Object(kn.e)(bn.setTicketProvider(r,u)),Object(kn.e)(bn.setTicketHasAttendeeInfoFields(r,E)),Object(kn.e)(bn.setTicketHasBeenCreated(r,!0))]);case 60:R.next=65;break;case 62:R.prev=62,R.t0=R.catch(5),console.error(R.t0);case 65:return R.next=67,Object(kn.e)(bn.setTicketIsLoading(r,!1));case 67:case"end":return R.stop()}}),Vn,this,[[5,62]])}function gr(e){var t,n,r,a,i,o,s,c,u,d,l,_,m,p,f,T,y,b,M,S,E,g,k,v,D,L,O,Y,w,j,I;return Sn.a.wrap((function(P){for(;;)switch(P.prev=P.next){case 0:return t=e.payload.clientId,n={clientId:t},r=mr(),a=r.add_ticket_nonce,i=void 0===a?"":a,P.next=5,Object(kn.b)(Mr,t);case 5:return(o=P.sent).append("add_ticket_nonce",i),P.prev=7,P.next=10,Object(kn.e)(bn.setTicketIsLoading(t,!0));case 10:return P.next=12,Object(kn.b)(fr,{path:"tickets/",namespace:"tribe/tickets/v1",initParams:{method:"POST",body:o}});case 12:if(s=P.sent,c=s.response,u=s.data,!c.ok){P.next=51;break}return P.next=18,Object(kn.f)(V);case 18:return d=P.sent,P.next=21,Object(kn.f)(K);case 21:if(l=P.sent,""!==d||isNaN(l)||!(l>0)){P.next=25;break}return P.next=25,Object(kn.e)(bn.setTicketsSharedCapacity(l));case 25:return _=-1===u.capacity_details.available?0:u.capacity_details.available,P.next=28,Object(kn.a)([Object(kn.f)(et,n),Object(kn.f)(tt,n),Object(kn.f)(nt,n),Object(kn.f)(rt,n),Object(kn.f)(at,n),Object(kn.f)(it,n),Object(kn.f)(ot,n),Object(kn.f)(st,n),Object(kn.f)(ct,n),Object(kn.f)(ut,n),Object(kn.f)(dt,n),Object(kn.f)(lt,n),Object(kn.f)(mt,n),Object(kn.f)(ft,n),Object(kn.f)(Tt,n),Object(kn.f)(ht,n),Object(kn.f)(yt,n)]);case 28:return m=P.sent,p=h()(m,17),f=p[0],T=p[1],y=p[2],b=p[3],M=p[4],S=p[5],E=p[6],g=p[7],k=p[8],v=p[9],D=p[10],L=p[11],O=p[12],Y=p[13],w=p[14],j=p[15],I=p[16],P.next=49,Object(kn.a)([Object(kn.e)(bn.setTicketDetails(t,{title:f,description:T,price:y,sku:b,iac:M,startDate:S,startDateInput:E,startDateMoment:g,endDate:k,endDateInput:v,endDateMoment:D,startTime:L,endTime:O,startTimeInput:Y,endTimeInput:w,capacityType:j,capacity:I})),Object(kn.e)(bn.setTicketId(t,u.id)),Object(kn.e)(bn.setTicketHasBeenCreated(t,!0)),Object(kn.e)(bn.setTicketAvailable(t,_)),Object(kn.e)(bn.setTicketProvider(t,_r[u.provider_class])),Object(kn.e)(bn.setTicketHasChanges(t,!1))]);case 49:return P.next=51,Object(kn.d)(jr,t);case 51:P.next=56;break;case 53:P.prev=53,P.t0=P.catch(7),console.error(P.t0);case 56:return P.prev=56,P.next=59,Object(kn.e)(bn.setTicketIsLoading(t,!1));case 59:return P.finish(56);case 60:case"end":return P.stop()}}),Fn,this,[[7,53,56,60]])}function kr(e){var t,n,r,a,i,o,s,c,u,d,l,_,m,p,f,T,y,b,M,S,E,g,k,v,D,L,O,Y,w,j,I,P,C,x,R,A,H,N,V,F,K;return Sn.a.wrap((function(W){for(;;)switch(W.prev=W.next){case 0:return t=e.payload.clientId,n={clientId:t},r=mr(),a=r.edit_ticket_nonce,i=void 0===a?"":a,W.next=5,Object(kn.b)(Mr,t);case 5:return(o=W.sent).append("edit_ticket_nonce",i),W.next=9,Object(kn.f)(le,n);case 9:for(s=W.sent,W.prev=10,c=[],u=!0,d=!1,l=void 0,W.prev=15,_=o.entries()[Symbol.iterator]();!(u=(m=_.next()).done);u=!0)p=m.value,f=h()(p,2),T=f[0],y=f[1],c.push(encodeURIComponent(T)+"="+encodeURIComponent(y));W.next=23;break;case 19:W.prev=19,W.t0=W.catch(15),d=!0,l=W.t0;case 23:W.prev=23,W.prev=24,!u&&_.return&&_.return();case 26:if(W.prev=26,!d){W.next=29;break}throw l;case 29:return W.finish(26);case 30:return W.finish(23);case 31:return W.next=33,Object(kn.e)(bn.setTicketIsLoading(t,!0));case 33:return W.next=35,Object(kn.b)(fr,{path:"tickets/"+s,namespace:"tribe/tickets/v1",headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"},initParams:{method:"PUT",body:c.join("&")}});case 35:if(b=W.sent,M=b.response,S=b.data,!M.ok){W.next=64;break}return E=S.capacity_details,g=-1===E.available?0:E.available,W.next=43,Object(kn.a)([Object(kn.f)(et,n),Object(kn.f)(tt,n),Object(kn.f)(nt,n),Object(kn.f)(rt,n),Object(kn.f)(at,n),Object(kn.f)(it,n),Object(kn.f)(ot,n),Object(kn.f)(st,n),Object(kn.f)(ct,n),Object(kn.f)(ut,n),Object(kn.f)(dt,n),Object(kn.f)(lt,n),Object(kn.f)(mt,n),Object(kn.f)(ft,n),Object(kn.f)(Tt,n),Object(kn.f)(ht,n),Object(kn.f)(yt,n)]);case 43:return k=W.sent,v=h()(k,17),D=v[0],L=v[1],O=v[2],Y=v[3],w=v[4],j=v[5],I=v[6],P=v[7],C=v[8],x=v[9],R=v[10],A=v[11],H=v[12],N=v[13],V=v[14],F=v[15],K=v[16],W.next=64,Object(kn.a)([Object(kn.e)(bn.setTicketDetails(t,{title:D,description:L,price:O,sku:Y,iac:w,startDate:j,startDateInput:I,startDateMoment:P,endDate:C,endDateInput:x,endDateMoment:R,startTime:A,endTime:H,startTimeInput:N,endTimeInput:V,capacityType:F,capacity:K})),Object(kn.e)(bn.setTicketSold(t,E.sold)),Object(kn.e)(bn.setTicketAvailable(t,g)),Object(kn.e)(bn.setTicketHasChanges(t,!1))]);case 64:W.next=69;break;case 66:W.prev=66,W.t1=W.catch(10),console.error(W.t1);case 69:return W.prev=69,W.next=72,Object(kn.e)(bn.setTicketIsLoading(t,!1));case 72:return W.finish(69);case 73:case"end":return W.stop()}}),Kn,this,[[10,66,69,73],[15,19,23,31],[24,,26,30]])}function vr(e){var t,n,r,a,i,o,s,c,u;return Sn.a.wrap((function(d){for(;;)switch(d.prev=d.next){case 0:return t=e.payload.clientId,n={clientId:t},d.next=4,Object(kn.b)([window,"confirm"],Object(L.__)("Are you sure you want to delete this ticket? It cannot be undone."));case 4:if(!d.sent){d.next=33;break}return d.next=8,Object(kn.f)(le,n);case 8:return r=d.sent,d.next=11,Object(kn.f)(ye,n);case 11:return a=d.sent,d.next=14,Object(kn.e)(bn.setTicketIsSelected(t,!1));case 14:return d.next=16,Object(kn.e)(bn.removeTicketBlock(t));case 16:return d.next=18,Object(kn.b)([Object(vn.dispatch)("core/editor"),"clearSelectedBlock"]);case 18:return d.next=20,Object(kn.b)([Object(vn.dispatch)("core/editor"),"removeBlocks"],[t]);case 20:if(!a){d.next=33;break}return i=mr(),o=i.remove_ticket_nonce,s=void 0===o?"":o,d.next=24,Object(kn.b)([Object(vn.select)("core/editor"),"getCurrentPostId"]);case 24:return c=d.sent,u=[encodeURIComponent("post_id")+"="+encodeURIComponent(c),encodeURIComponent("remove_ticket_nonce")+"="+encodeURIComponent(s)],d.prev=26,d.next=29,Object(kn.b)(fr,{path:"tickets/"+r,namespace:"tribe/tickets/v1",headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"},initParams:{method:"DELETE",body:u.join("&")}});case 29:d.next=33;break;case 31:d.prev=31,d.t0=d.catch(26);case 33:case"end":return d.stop()}}),Wn,this,[[26,31]])}function Dr(e){var t,n,r,a,i;return Sn.a.wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return t=e.payload.id,o.next=3,Object(kn.e)(bn.setTicketsIsSettingsLoading(!0));case 3:return o.prev=3,o.next=6,Object(kn.b)(fr,{path:"media/"+t});case 6:if(n=o.sent,r=n.response,a=n.data,!r.ok){o.next=13;break}return i={id:a.id,alt:a.alt_text,src:a.media_details.sizes.medium.source_url},o.next=13,Object(kn.e)(bn.setTicketsHeaderImage(i));case 13:o.next=18;break;case 15:o.prev=15,o.t0=o.catch(3),console.error(o.t0);case 18:return o.prev=18,o.next=21,Object(kn.e)(bn.setTicketsIsSettingsLoading(!1));case 21:return o.finish(18);case 22:case"end":return o.stop()}}),Un,this,[[3,15,18,22]])}function Lr(e){var t,n,r,a,i,o,s,c;return Sn.a.wrap((function(u){for(;;)switch(u.prev=u.next){case 0:return t=e.payload.image,u.next=3,Object(kn.b)([Object(vn.select)("core/editor"),"getCurrentPostId"]);case 3:return n=u.sent,r={meta:l()({},Yn.i,""+t.id)},u.prev=5,u.next=8,Object(kn.e)(bn.setTicketsIsSettingsLoading(!0));case 8:return u.next=10,Object(kn.e)(Ln.setRSVPIsSettingsLoading(!0));case 10:return a=Object(vn.select)("core/editor").getCurrentPostType(),i=Object(vn.select)("core").getPostType(a),o=i.rest_base,u.next=15,Object(kn.b)(fr,{path:o+"/"+n,headers:{"Content-Type":"application/json"},initParams:{method:"PUT",body:JSON.stringify(r)}});case 15:if(s=u.sent,!s.response.ok){u.next=23;break}return c={id:t.id,alt:t.alt,src:t.sizes.medium.url},u.next=21,Object(kn.e)(bn.setTicketsHeaderImage(c));case 21:return u.next=23,Object(kn.e)(Ln.setRSVPHeaderImage(c));case 23:u.next=27;break;case 25:u.prev=25,u.t0=u.catch(5);case 27:return u.prev=27,u.next=30,Object(kn.e)(bn.setTicketsIsSettingsLoading(!1));case 30:return u.next=32,Object(kn.e)(Ln.setRSVPIsSettingsLoading(!1));case 32:return u.finish(27);case 33:case"end":return u.stop()}}),zn,this,[[5,25,27,33]])}function Or(){var e,t,n,r,a,i;return Sn.a.wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return o.next=2,Object(kn.b)([Object(vn.select)("core/editor"),"getCurrentPostId"]);case 2:return e=o.sent,t={meta:l()({},Yn.i,null)},o.prev=4,o.next=7,Object(kn.e)(bn.setTicketsIsSettingsLoading(!0));case 7:return o.next=9,Object(kn.e)(Ln.setRSVPIsSettingsLoading(!0));case 9:return n=Object(vn.select)("core/editor").getCurrentPostType(),r=Object(vn.select)("core").getPostType(n),a=r.rest_base,o.next=14,Object(kn.b)(y.api.wpREST,{path:a+"/"+e,headers:{"Content-Type":"application/json"},initParams:{method:"PUT",body:JSON.stringify(t)}});case 14:if(i=o.sent,!i.response.ok){o.next=21;break}return o.next=19,Object(kn.e)(bn.setTicketsHeaderImage(hn.a));case 19:return o.next=21,Object(kn.e)(Ln.setRSVPHeaderImage(On.a));case 21:o.next=25;break;case 23:o.prev=23,o.t0=o.catch(4);case 25:return o.prev=25,o.next=28,Object(kn.e)(bn.setTicketsIsSettingsLoading(!1));case 28:return o.next=30,Object(kn.e)(Ln.setRSVPIsSettingsLoading(!1));case 30:return o.finish(25);case 31:case"end":return o.stop()}}),Gn,this,[[4,23,25,31]])}function Yr(e){var t,n,r,a,i,o,s,c,u,d,l,_,m,p,f,T,h,y,b,M;return Sn.a.wrap((function(S){for(;;)switch(S.prev=S.next){case 0:return t=e.payload,n=t.clientId,r=t.details,a=r.title,i=r.description,o=r.price,s=r.sku,c=r.iac,u=r.startDate,d=r.startDateInput,l=r.startDateMoment,_=r.endDate,m=r.endDateInput,p=r.endDateMoment,f=r.startTime,T=r.endTime,h=r.startTimeInput,y=r.endTimeInput,b=r.capacityType,M=r.capacity,S.next=4,Object(kn.a)([Object(kn.e)(bn.setTicketTitle(n,a)),Object(kn.e)(bn.setTicketDescription(n,i)),Object(kn.e)(bn.setTicketPrice(n,o)),Object(kn.e)(bn.setTicketSku(n,s)),Object(kn.e)(bn.setTicketIACSetting(n,c)),Object(kn.e)(bn.setTicketStartDate(n,u)),Object(kn.e)(bn.setTicketStartDateInput(n,d)),Object(kn.e)(bn.setTicketStartDateMoment(n,l)),Object(kn.e)(bn.setTicketEndDate(n,_)),Object(kn.e)(bn.setTicketEndDateInput(n,m)),Object(kn.e)(bn.setTicketEndDateMoment(n,p)),Object(kn.e)(bn.setTicketStartTime(n,f)),Object(kn.e)(bn.setTicketEndTime(n,T)),Object(kn.e)(bn.setTicketStartTimeInput(n,h)),Object(kn.e)(bn.setTicketEndTimeInput(n,y)),Object(kn.e)(bn.setTicketCapacityType(n,b)),Object(kn.e)(bn.setTicketCapacity(n,M))]);case 4:case"end":return S.stop()}}),Bn,this)}function wr(e){var t,n,r,a,i,o,s,c,u,d,l,_,m,p,f,T,h,y,b,M;return Sn.a.wrap((function(S){for(;;)switch(S.prev=S.next){case 0:return t=e.payload,n=t.clientId,r=t.tempDetails,a=r.title,i=r.description,o=r.price,s=r.sku,c=r.iac,u=r.startDate,d=r.startDateInput,l=r.startDateMoment,_=r.endDate,m=r.endDateInput,p=r.endDateMoment,f=r.startTime,T=r.endTime,h=r.startTimeInput,y=r.endTimeInput,b=r.capacityType,M=r.capacity,S.next=4,Object(kn.a)([Object(kn.e)(bn.setTicketTempTitle(n,a)),Object(kn.e)(bn.setTicketTempDescription(n,i)),Object(kn.e)(bn.setTicketTempPrice(n,o)),Object(kn.e)(bn.setTicketTempSku(n,s)),Object(kn.e)(bn.setTicketTempIACSetting(n,c)),Object(kn.e)(bn.setTicketTempStartDate(n,u)),Object(kn.e)(bn.setTicketTempStartDateInput(n,d)),Object(kn.e)(bn.setTicketTempStartDateMoment(n,l)),Object(kn.e)(bn.setTicketTempEndDate(n,_)),Object(kn.e)(bn.setTicketTempEndDateInput(n,m)),Object(kn.e)(bn.setTicketTempEndDateMoment(n,p)),Object(kn.e)(bn.setTicketTempStartTime(n,f)),Object(kn.e)(bn.setTicketTempEndTime(n,T)),Object(kn.e)(bn.setTicketTempStartTimeInput(n,h)),Object(kn.e)(bn.setTicketTempEndTimeInput(n,y)),Object(kn.e)(bn.setTicketTempCapacityType(n,b)),Object(kn.e)(bn.setTicketTempCapacity(n,M))]);case 4:case"end":return S.stop()}}),qn,this)}function jr(e){var t,n;return Sn.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return t=void 0,n=void 0,r.prev=1,r.next=4,Object(kn.f)(ye,{clientId:e});case 4:if(!r.sent){r.next=20;break}return r.next=7,Object(kn.b)(Pn.c);case 7:return t=r.sent,r.next=10,Object(kn.b)(Pn.b);case 10:n=r.sent;case 11:return r.next=14,Object(kn.g)(t);case 14:return r.next=16,Object(kn.b)(kr,{payload:{clientId:e}});case 16:return r.next=18,Object(kn.g)(n);case 18:r.next=11;break;case 20:r.next=25;break;case 22:r.prev=22,r.t0=r.catch(1),console.error(r.t0);case 25:if(r.prev=25,!t){r.next=29;break}return r.next=29,Object(kn.b)([t,"close"]);case 29:if(!n){r.next=32;break}return r.next=32,Object(kn.b)([n,"close"]);case 32:return r.finish(25);case 33:case"end":return r.stop()}}),Jn,this,[[1,22,25,33]])}function Ir(e){var t,n,r;return Sn.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return a.next=2,Object(kn.f)(J);case 2:t=a.sent,n=0;case 4:if(!(n<t.length)){a.next=11;break}return r=t[n],a.next=8,Object(kn.b)(Pr,e,r);case 8:n++,a.next=4;break;case 11:case"end":return a.stop()}}),$n,this)}function Pr(e,t){var n,r,a,i,o,s,c,u,d,l,_,m,p;return Sn.a.wrap((function(f){for(;;)switch(f.prev=f.next){case 0:return f.prev=0,f.next=3,Object(kn.f)(dt,{clientId:t});case 3:return n=f.sent,f.next=6,Object(kn.f)(Ce,{clientId:t});case 6:return r=f.sent,f.next=9,Object(kn.b)(Pn.a,e);case 9:return a=f.sent,i=a.moment,f.next=13,Object(kn.a)([Object(kn.b)([n,"local"]),Object(kn.b)([r,"local"]),Object(kn.b)([i,"local"])]);case 13:return f.next=15,Object(kn.b)([n,"isSame"],r,"minute");case 15:return o=f.sent,f.next=18,Object(kn.b)([n,"isSame"],i,"minute");case 18:return s=f.sent,f.next=21,Object(kn.b)(Pn.e);case 21:if(!(f.sent&&window.tribe.events&&o&&s)){f.next=36;break}return f.next=25,Object(kn.f)(window.tribe.events.data.blocks.datetime.selectors.getStart);case 25:return c=f.sent,f.next=28,Object(kn.b)(Pn.a,c);case 28:return u=f.sent,d=u.moment,l=u.date,_=u.dateInput,m=u.time,p=u.timeInput,f.next=36,Object(kn.a)([Object(kn.e)(bn.setTicketTempEndDate(t,l)),Object(kn.e)(bn.setTicketTempEndDateInput(t,_)),Object(kn.e)(bn.setTicketTempEndDateMoment(t,d)),Object(kn.e)(bn.setTicketTempEndTime(t,m)),Object(kn.e)(bn.setTicketTempEndTimeInput(t,p)),Object(kn.e)(bn.setTicketEndDate(t,l)),Object(kn.e)(bn.setTicketEndDateInput(t,_)),Object(kn.e)(bn.setTicketEndDateMoment(t,d)),Object(kn.e)(bn.setTicketEndTime(t,m)),Object(kn.e)(bn.setTicketEndTimeInput(t,p)),Object(kn.e)(bn.setTicketHasChanges(t,!0)),Object(kn.b)(xr,t)]);case 36:f.next=41;break;case 38:f.prev=38,f.t0=f.catch(0),console.error(f.t0);case 41:case"end":return f.stop()}}),Zn,this,[[0,38]])}function Cr(){var e,t,n,r,a,i;return Sn.a.wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return o.prev=0,o.next=3,Object(kn.b)(Pn.d);case 3:return e=o.sent,o.next=6,Object(kn.g)(e);case 6:return o.next=8,Object(kn.b)([e,"close"]);case 8:return o.next=10,Object(kn.b)(Pn.e);case 10:if(!o.sent||!window.tribe.events){o.next=28;break}t=window.tribe.events.data.blocks.datetime.types,n=t.SET_START_DATE_TIME,r=t.SET_START_TIME,a=void 0;case 14:return o.next=17,Object(kn.f)(window.tribe.events.data.blocks.datetime.selectors.getStart);case 17:return i=o.sent,o.next=20,Object(kn.g)([n,r]);case 20:if(!a){o.next=23;break}return o.next=23,Object(kn.c)(a);case 23:return o.next=25,Object(kn.d)(Ir,i);case 25:a=o.sent,o.next=14;break;case 28:o.next=33;break;case 30:o.prev=30,o.t0=o.catch(0),console.error(o.t0);case 33:case"end":return o.stop()}}),Qn,this,[[0,30]])}function xr(e){var t,n,r,a,i,o,s,c,u;return Sn.a.wrap((function(d){for(;;)switch(d.prev=d.next){case 0:return t=!1,d.next=3,Object(kn.f)(st,{clientId:e});case 3:return n=d.sent,d.next=6,Object(kn.f)(dt,{clientId:e});case 6:if(r=d.sent,n&&r){d.next=11;break}t=!0,d.next=33;break;case 11:return d.next=13,Object(kn.f)(lt,{clientId:e});case 13:return a=d.sent,d.next=16,Object(kn.f)(mt,{clientId:e});case 16:return i=d.sent,d.next=19,Object(kn.b)(y.time.toSeconds,a,y.time.TIME_FORMAT_HH_MM_SS);case 19:return o=d.sent,d.next=22,Object(kn.b)(y.time.toSeconds,i,y.time.TIME_FORMAT_HH_MM_SS);case 22:return s=d.sent,d.next=25,Object(kn.b)(y.moment.setTimeInSeconds,n.clone(),o);case 25:return c=d.sent,d.next=28,Object(kn.b)(y.moment.setTimeInSeconds,r.clone(),s);case 28:return u=d.sent,d.next=31,Object(kn.b)([c,"isSameOrAfter"],u);case 31:d.sent&&(t=!0);case 33:return d.next=35,Object(kn.e)(bn.setTicketHasDurationError(e,t));case 35:case"end":return d.stop()}}),Xn,this)}function Rr(e){var t,n,r,a,i,o;return Sn.a.wrap((function(s){for(;;)switch(s.prev=s.next){case 0:return t=e.payload,n=t.clientId,r=t.date,a=t.dayPickerInput,s.next=3,r?Object(kn.b)(y.moment.toMoment,r):void 0;case 3:return i=s.sent,s.next=6,r?Object(kn.b)(y.moment.toDatabaseDate,i):"";case 6:return o=s.sent,s.next=9,Object(kn.e)(bn.setTicketTempStartDate(n,o));case 9:return s.next=11,Object(kn.e)(bn.setTicketTempStartDateInput(n,a.state.value));case 11:return s.next=13,Object(kn.e)(bn.setTicketTempStartDateMoment(n,i));case 13:case"end":return s.stop()}}),er,this)}function Ar(e){var t,n,r,a,i,o;return Sn.a.wrap((function(s){for(;;)switch(s.prev=s.next){case 0:return t=e.payload,n=t.clientId,r=t.date,a=t.dayPickerInput,s.next=3,r?Object(kn.b)(y.moment.toMoment,r):void 0;case 3:return i=s.sent,s.next=6,r?Object(kn.b)(y.moment.toDatabaseDate,i):"";case 6:return o=s.sent,s.next=9,Object(kn.e)(bn.setTicketTempEndDate(n,o));case 9:return s.next=11,Object(kn.e)(bn.setTicketTempEndDateInput(n,a.state.value));case 11:return s.next=13,Object(kn.e)(bn.setTicketTempEndDateMoment(n,i));case 13:case"end":return s.stop()}}),tr,this)}function Hr(e){var t,n,r,a;return Sn.a.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return t=e.payload,n=t.clientId,r=t.seconds,i.next=3,Object(kn.b)(y.time.fromSeconds,r,y.time.TIME_FORMAT_HH_MM);case 3:return a=i.sent,i.next=6,Object(kn.e)(bn.setTicketTempStartTime(n,a+":00"));case 6:case"end":return i.stop()}}),nr,this)}function Nr(e){var t,n,r,a,i,o;return Sn.a.wrap((function(s){for(;;)switch(s.prev=s.next){case 0:return t=e.payload,n=t.clientId,r=t.seconds,s.next=3,Object(kn.b)(y.time.fromSeconds,r,y.time.TIME_FORMAT_HH_MM);case 3:return a=s.sent,s.next=6,Object(kn.b)(y.moment.toMoment,a,y.moment.TIME_FORMAT,!1);case 6:return i=s.sent,s.next=9,Object(kn.b)(y.moment.toTime,i);case 9:return o=s.sent,s.next=12,Object(kn.e)(bn.setTicketTempStartTimeInput(n,o));case 12:case"end":return s.stop()}}),rr,this)}function Vr(e){var t,n,r,a;return Sn.a.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return t=e.payload,n=t.clientId,r=t.seconds,i.next=3,Object(kn.b)(y.time.fromSeconds,r,y.time.TIME_FORMAT_HH_MM);case 3:return a=i.sent,i.next=6,Object(kn.e)(bn.setTicketTempEndTime(n,a+":00"));case 6:case"end":return i.stop()}}),ar,this)}function Fr(e){var t,n,r,a,i,o;return Sn.a.wrap((function(s){for(;;)switch(s.prev=s.next){case 0:return t=e.payload,n=t.clientId,r=t.seconds,s.next=3,Object(kn.b)(y.time.fromSeconds,r,y.time.TIME_FORMAT_HH_MM);case 3:return a=s.sent,s.next=6,Object(kn.b)(y.moment.toMoment,a,y.moment.TIME_FORMAT,!1);case 6:return i=s.sent,s.next=9,Object(kn.b)(y.moment.toTime,i);case 9:return o=s.sent,s.next=12,Object(kn.e)(bn.setTicketTempEndTimeInput(n,o));case 12:case"end":return s.stop()}}),ir,this)}function Kr(){var e,t;return Sn.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,Object(kn.f)(J);case 2:return e=n.sent,n.next=5,Object(kn.f)(In.a);case 5:if(t=n.sent,!e.includes(t)){n.next=13;break}return n.next=9,Object(kn.e)(bn.setTicketIsSelected(t,!1));case 9:return n.next=11,Object(kn.e)(bn.removeTicketBlock(t));case 11:return n.next=13,Object(kn.b)([Object(vn.dispatch)("core/editor"),"removeBlocks"],[t]);case 13:case"end":return n.stop()}}),or,this)}function Wr(e){return Sn.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:t.t0=e.type,t.next=t.t0===f.SET_TICKETS_INITIAL_STATE?3:t.t0===f.RESET_TICKETS_BLOCK?6:t.t0===f.SET_TICKET_INITIAL_STATE?9:t.t0===f.FETCH_TICKET?12:t.t0===f.CREATE_NEW_TICKET?15:t.t0===f.UPDATE_TICKET?18:t.t0===f.DELETE_TICKET?21:t.t0===f.FETCH_TICKETS_HEADER_IMAGE?24:t.t0===f.UPDATE_TICKETS_HEADER_IMAGE?27:t.t0===f.DELETE_TICKETS_HEADER_IMAGE?30:t.t0===f.SET_TICKET_DETAILS?33:t.t0===f.SET_TICKET_TEMP_DETAILS?36:t.t0===f.HANDLE_TICKET_START_DATE?39:t.t0===f.HANDLE_TICKET_END_DATE?46:t.t0===f.HANDLE_TICKET_START_TIME?53:t.t0===f.HANDLE_TICKET_END_TIME?62:t.t0===jn.k?71:74;break;case 3:return t.next=5,Object(kn.b)(hr,e);case 5:return t.abrupt("break",75);case 6:return t.next=8,Object(kn.b)(yr);case 8:return t.abrupt("break",75);case 9:return t.next=11,Object(kn.b)(br,e);case 11:return t.abrupt("break",75);case 12:return t.next=14,Object(kn.b)(Er,e);case 14:return t.abrupt("break",75);case 15:return t.next=17,Object(kn.b)(gr,e);case 17:return t.abrupt("break",75);case 18:return t.next=20,Object(kn.b)(kr,e);case 20:return t.abrupt("break",75);case 21:return t.next=23,Object(kn.b)(vr,e);case 23:return t.abrupt("break",75);case 24:return t.next=26,Object(kn.b)(Dr,e);case 26:return t.abrupt("break",75);case 27:return t.next=29,Object(kn.b)(Lr,e);case 29:return t.abrupt("break",75);case 30:return t.next=32,Object(kn.b)(Or);case 32:return t.abrupt("break",75);case 33:return t.next=35,Object(kn.b)(Yr,e);case 35:return t.abrupt("break",75);case 36:return t.next=38,Object(kn.b)(wr,e);case 38:return t.abrupt("break",75);case 39:return t.next=41,Object(kn.b)(Rr,e);case 41:return t.next=43,Object(kn.b)(xr,e.payload.clientId);case 43:return t.next=45,Object(kn.e)(bn.setTicketHasChanges(e.payload.clientId,!0));case 45:return t.abrupt("break",75);case 46:return t.next=48,Object(kn.b)(Ar,e);case 48:return t.next=50,Object(kn.b)(xr,e.payload.clientId);case 50:return t.next=52,Object(kn.e)(bn.setTicketHasChanges(e.payload.clientId,!0));case 52:return t.abrupt("break",75);case 53:return t.next=55,Object(kn.b)(Hr,e);case 55:return t.next=57,Object(kn.b)(Nr,e);case 57:return t.next=59,Object(kn.b)(xr,e.payload.clientId);case 59:return t.next=61,Object(kn.e)(bn.setTicketHasChanges(e.payload.clientId,!0));case 61:return t.abrupt("break",75);case 62:return t.next=64,Object(kn.b)(Vr,e);case 64:return t.next=66,Object(kn.b)(Fr,e);case 66:return t.next=68,Object(kn.b)(xr,e.payload.clientId);case 68:return t.next=70,Object(kn.e)(bn.setTicketHasChanges(e.payload.clientId,!0));case 70:return t.abrupt("break",75);case 71:return t.next=73,Object(kn.b)(Kr);case 73:case 74:return t.abrupt("break",75);case 75:case"end":return t.stop()}}),sr,this)}function Ur(){return Sn.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(kn.h)([f.SET_TICKETS_INITIAL_STATE,f.RESET_TICKETS_BLOCK,f.SET_TICKET_INITIAL_STATE,f.FETCH_TICKET,f.CREATE_NEW_TICKET,f.UPDATE_TICKET,f.DELETE_TICKET,f.FETCH_TICKETS_HEADER_IMAGE,f.UPDATE_TICKETS_HEADER_IMAGE,f.DELETE_TICKETS_HEADER_IMAGE,f.SET_TICKET_DETAILS,f.SET_TICKET_TEMP_DETAILS,f.HANDLE_TICKET_START_DATE,f.HANDLE_TICKET_END_DATE,f.HANDLE_TICKET_START_TIME,f.HANDLE_TICKET_END_TIME,jn.k],Wr);case 2:return e.next=4,Object(kn.d)(Cr);case 4:case"end":return e.stop()}}),cr,this)}t.c=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:yn,t=arguments[1];switch(t.type){case f.SET_TICKETS_HEADER_IMAGE:return s()({},e,{headerImage:Object(hn.b)(e.headerImage,t)});case f.SET_TICKETS_IS_SELECTED:return s()({},e,{isSelected:t.payload.isSelected});case f.SET_TICKETS_IS_SETTINGS_OPEN:return s()({},e,{isSettingsOpen:t.payload.isSettingsOpen});case f.SET_TICKETS_IS_SETTINGS_LOADING:return s()({},e,{isSettingsLoading:t.payload.isSettingsLoading});case f.SET_TICKETS_PROVIDER:return s()({},e,{provider:t.payload.provider});case f.SET_TICKETS_SHARED_CAPACITY:return s()({},e,{sharedCapacity:t.payload.sharedCapacity});case f.SET_TICKETS_TEMP_SHARED_CAPACITY:return s()({},e,{tempSharedCapacity:t.payload.tempSharedCapacity});case f.SET_TICKET_TITLE:case f.SET_TICKET_DESCRIPTION:case f.SET_TICKET_PRICE:case f.SET_TICKET_SKU:case f.SET_TICKET_IAC_SETTING:case f.SET_TICKET_START_DATE:case f.SET_TICKET_START_DATE_INPUT:case f.SET_TICKET_START_DATE_MOMENT:case f.SET_TICKET_END_DATE:case f.SET_TICKET_END_DATE_INPUT:case f.SET_TICKET_END_DATE_MOMENT:case f.SET_TICKET_START_TIME:case f.SET_TICKET_END_TIME:case f.SET_TICKET_START_TIME_INPUT:case f.SET_TICKET_END_TIME_INPUT:case f.SET_TICKET_CAPACITY_TYPE:case f.SET_TICKET_CAPACITY:case f.SET_TICKET_TEMP_TITLE:case f.SET_TICKET_TEMP_DESCRIPTION:case f.SET_TICKET_TEMP_PRICE:case f.SET_TICKET_TEMP_SKU:case f.SET_TICKET_TEMP_IAC_SETTING:case f.SET_TICKET_TEMP_START_DATE:case f.SET_TICKET_TEMP_START_DATE_INPUT:case f.SET_TICKET_TEMP_START_DATE_MOMENT:case f.SET_TICKET_TEMP_END_DATE:case f.SET_TICKET_TEMP_END_DATE_INPUT:case f.SET_TICKET_TEMP_END_DATE_MOMENT:case f.SET_TICKET_TEMP_START_TIME:case f.SET_TICKET_TEMP_END_TIME:case f.SET_TICKET_TEMP_START_TIME_INPUT:case f.SET_TICKET_TEMP_END_TIME_INPUT:case f.SET_TICKET_TEMP_CAPACITY_TYPE:case f.SET_TICKET_TEMP_CAPACITY:case f.SET_TICKET_SOLD:case f.SET_TICKET_AVAILABLE:case f.SET_TICKET_ID:case f.SET_TICKET_CURRENCY_SYMBOL:case f.SET_TICKET_CURRENCY_POSITION:case f.SET_TICKET_PROVIDER:case f.SET_TICKET_HAS_ATTENDEE_INFO_FIELDS:case f.SET_TICKET_IS_LOADING:case f.SET_TICKET_IS_MODAL_OPEN:case f.SET_TICKET_HAS_BEEN_CREATED:case f.SET_TICKET_HAS_CHANGES:case f.SET_TICKET_HAS_DURATION_ERROR:case f.SET_TICKET_IS_SELECTED:case f.REGISTER_TICKET_BLOCK:case f.REMOVE_TICKET_BLOCK:case f.REMOVE_TICKET_BLOCKS:return s()({},e,{tickets:Tn(e.tickets,t)});default:return e}}},function(e,t,n){(function(e){e.exports=function(){"use strict";var t,r;function a(){return t.apply(null,arguments)}function i(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function o(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function s(e){return void 0===e}function c(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function u(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function d(e,t){var n,r=[];for(n=0;n<e.length;++n)r.push(t(e[n],n));return r}function l(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function _(e,t){for(var n in t)l(t,n)&&(e[n]=t[n]);return l(t,"toString")&&(e.toString=t.toString),l(t,"valueOf")&&(e.valueOf=t.valueOf),e}function m(e,t,n,r){return gt(e,t,n,r,!0).utc()}function p(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function f(e){if(null==e._isValid){var t=p(e),n=r.call(t.parsedDateParts,(function(e){return null!=e})),a=!isNaN(e._d.getTime())&&t.overflow<0&&!t.empty&&!t.invalidMonth&&!t.invalidWeekday&&!t.weekdayMismatch&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&n);if(e._strict&&(a=a&&0===t.charsLeftOver&&0===t.unusedTokens.length&&void 0===t.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return a;e._isValid=a}return e._isValid}function T(e){var t=m(NaN);return null!=e?_(p(t),e):p(t).userInvalidated=!0,t}r=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),n=t.length>>>0,r=0;r<n;r++)if(r in t&&e.call(this,t[r],r,t))return!0;return!1};var h=a.momentProperties=[];function y(e,t){var n,r,a;if(s(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),s(t._i)||(e._i=t._i),s(t._f)||(e._f=t._f),s(t._l)||(e._l=t._l),s(t._strict)||(e._strict=t._strict),s(t._tzm)||(e._tzm=t._tzm),s(t._isUTC)||(e._isUTC=t._isUTC),s(t._offset)||(e._offset=t._offset),s(t._pf)||(e._pf=p(t)),s(t._locale)||(e._locale=t._locale),h.length>0)for(n=0;n<h.length;n++)s(a=t[r=h[n]])||(e[r]=a);return e}var b=!1;function M(e){y(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===b&&(b=!0,a.updateOffset(this),b=!1)}function S(e){return e instanceof M||null!=e&&null!=e._isAMomentObject}function E(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function g(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=E(t)),n}function k(e,t,n){var r,a=Math.min(e.length,t.length),i=Math.abs(e.length-t.length),o=0;for(r=0;r<a;r++)(n&&e[r]!==t[r]||!n&&g(e[r])!==g(t[r]))&&o++;return o+i}function v(e){!1===a.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function D(e,t){var n=!0;return _((function(){if(null!=a.deprecationHandler&&a.deprecationHandler(null,e),n){for(var r,i=[],o=0;o<arguments.length;o++){if(r="","object"==typeof arguments[o]){for(var s in r+="\n["+o+"] ",arguments[0])r+=s+": "+arguments[0][s]+", ";r=r.slice(0,-2)}else r=arguments[o];i.push(r)}v(e+"\nArguments: "+Array.prototype.slice.call(i).join("")+"\n"+(new Error).stack),n=!1}return t.apply(this,arguments)}),t)}var L,O={};function Y(e,t){null!=a.deprecationHandler&&a.deprecationHandler(e,t),O[e]||(v(t),O[e]=!0)}function w(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function j(e,t){var n,r=_({},e);for(n in t)l(t,n)&&(o(e[n])&&o(t[n])?(r[n]={},_(r[n],e[n]),_(r[n],t[n])):null!=t[n]?r[n]=t[n]:delete r[n]);for(n in e)l(e,n)&&!l(t,n)&&o(e[n])&&(r[n]=_({},r[n]));return r}function I(e){null!=e&&this.set(e)}a.suppressDeprecationWarnings=!1,a.deprecationHandler=null,L=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)l(e,t)&&n.push(t);return n};var P={};function C(e,t){var n=e.toLowerCase();P[n]=P[n+"s"]=P[t]=e}function x(e){return"string"==typeof e?P[e]||P[e.toLowerCase()]:void 0}function R(e){var t,n,r={};for(n in e)l(e,n)&&(t=x(n))&&(r[t]=e[n]);return r}var A={};function H(e,t){A[e]=t}function N(e,t,n){var r=""+Math.abs(e),a=t-r.length;return(e>=0?n?"+":"":"-")+Math.pow(10,Math.max(0,a)).toString().substr(1)+r}var V=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,F=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,K={},W={};function U(e,t,n,r){var a=r;"string"==typeof r&&(a=function(){return this[r]()}),e&&(W[e]=a),t&&(W[t[0]]=function(){return N(a.apply(this,arguments),t[1],t[2])}),n&&(W[n]=function(){return this.localeData().ordinal(a.apply(this,arguments),e)})}function z(e,t){return e.isValid()?(t=G(t,e.localeData()),K[t]=K[t]||function(e){var t,n,r,a=e.match(V);for(t=0,n=a.length;t<n;t++)W[a[t]]?a[t]=W[a[t]]:a[t]=(r=a[t]).match(/\[[\s\S]/)?r.replace(/^\[|\]$/g,""):r.replace(/\\/g,"");return function(t){var r,i="";for(r=0;r<n;r++)i+=w(a[r])?a[r].call(t,e):a[r];return i}}(t),K[t](e)):e.localeData().invalidDate()}function G(e,t){var n=5;function r(e){return t.longDateFormat(e)||e}for(F.lastIndex=0;n>=0&&F.test(e);)e=e.replace(F,r),F.lastIndex=0,n-=1;return e}var B=/\d/,q=/\d\d/,J=/\d{3}/,$=/\d{4}/,Z=/[+-]?\d{6}/,Q=/\d\d?/,X=/\d\d\d\d?/,ee=/\d\d\d\d\d\d?/,te=/\d{1,3}/,ne=/\d{1,4}/,re=/[+-]?\d{1,6}/,ae=/\d+/,ie=/[+-]?\d+/,oe=/Z|[+-]\d\d:?\d\d/gi,se=/Z|[+-]\d\d(?::?\d\d)?/gi,ce=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,ue={};function de(e,t,n){ue[e]=w(t)?t:function(e,r){return e&&n?n:t}}function le(e,t){return l(ue,e)?ue[e](t._strict,t._locale):new RegExp(_e(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(e,t,n,r,a){return t||n||r||a}))))}function _e(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var me={};function pe(e,t){var n,r=t;for("string"==typeof e&&(e=[e]),c(t)&&(r=function(e,n){n[t]=g(e)}),n=0;n<e.length;n++)me[e[n]]=r}function fe(e,t){pe(e,(function(e,n,r,a){r._w=r._w||{},t(e,r._w,r,a)}))}function Te(e,t,n){null!=t&&l(me,e)&&me[e](t,n._a,n,e)}function he(e){return ye(e)?366:365}function ye(e){return e%4==0&&e%100!=0||e%400==0}U("Y",0,0,(function(){var e=this.year();return e<=9999?""+e:"+"+e})),U(0,["YY",2],0,(function(){return this.year()%100})),U(0,["YYYY",4],0,"year"),U(0,["YYYYY",5],0,"year"),U(0,["YYYYYY",6,!0],0,"year"),C("year","y"),H("year",1),de("Y",ie),de("YY",Q,q),de("YYYY",ne,$),de("YYYYY",re,Z),de("YYYYYY",re,Z),pe(["YYYYY","YYYYYY"],0),pe("YYYY",(function(e,t){t[0]=2===e.length?a.parseTwoDigitYear(e):g(e)})),pe("YY",(function(e,t){t[0]=a.parseTwoDigitYear(e)})),pe("Y",(function(e,t){t[0]=parseInt(e,10)})),a.parseTwoDigitYear=function(e){return g(e)+(g(e)>68?1900:2e3)};var be,Me=Se("FullYear",!0);function Se(e,t){return function(n){return null!=n?(ge(this,e,n),a.updateOffset(this,t),this):Ee(this,e)}}function Ee(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function ge(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&ye(e.year())&&1===e.month()&&29===e.date()?e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),ke(n,e.month())):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function ke(e,t){if(isNaN(e)||isNaN(t))return NaN;var n,r=(t%(n=12)+n)%n;return e+=(t-r)/12,1===r?ye(e)?29:28:31-r%7%2}be=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1},U("M",["MM",2],"Mo",(function(){return this.month()+1})),U("MMM",0,0,(function(e){return this.localeData().monthsShort(this,e)})),U("MMMM",0,0,(function(e){return this.localeData().months(this,e)})),C("month","M"),H("month",8),de("M",Q),de("MM",Q,q),de("MMM",(function(e,t){return t.monthsShortRegex(e)})),de("MMMM",(function(e,t){return t.monthsRegex(e)})),pe(["M","MM"],(function(e,t){t[1]=g(e)-1})),pe(["MMM","MMMM"],(function(e,t,n,r){var a=n._locale.monthsParse(e,r,n._strict);null!=a?t[1]=a:p(n).invalidMonth=e}));var ve=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,De="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Le="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function Oe(e,t,n){var r,a,i,o=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],r=0;r<12;++r)i=m([2e3,r]),this._shortMonthsParse[r]=this.monthsShort(i,"").toLocaleLowerCase(),this._longMonthsParse[r]=this.months(i,"").toLocaleLowerCase();return n?"MMM"===t?-1!==(a=be.call(this._shortMonthsParse,o))?a:null:-1!==(a=be.call(this._longMonthsParse,o))?a:null:"MMM"===t?-1!==(a=be.call(this._shortMonthsParse,o))||-1!==(a=be.call(this._longMonthsParse,o))?a:null:-1!==(a=be.call(this._longMonthsParse,o))||-1!==(a=be.call(this._shortMonthsParse,o))?a:null}function Ye(e,t){var n;if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=g(t);else if(!c(t=e.localeData().monthsParse(t)))return e;return n=Math.min(e.date(),ke(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,n),e}function we(e){return null!=e?(Ye(this,e),a.updateOffset(this,!0),this):Ee(this,"Month")}var je=ce,Ie=ce;function Pe(){function e(e,t){return t.length-e.length}var t,n,r=[],a=[],i=[];for(t=0;t<12;t++)n=m([2e3,t]),r.push(this.monthsShort(n,"")),a.push(this.months(n,"")),i.push(this.months(n,"")),i.push(this.monthsShort(n,""));for(r.sort(e),a.sort(e),i.sort(e),t=0;t<12;t++)r[t]=_e(r[t]),a[t]=_e(a[t]);for(t=0;t<24;t++)i[t]=_e(i[t]);this._monthsRegex=new RegExp("^("+i.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Ce(e,t,n,r,a,i,o){var s=new Date(e,t,n,r,a,i,o);return e<100&&e>=0&&isFinite(s.getFullYear())&&s.setFullYear(e),s}function xe(e){var t=new Date(Date.UTC.apply(null,arguments));return e<100&&e>=0&&isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e),t}function Re(e,t,n){var r=7+t-n;return-(7+xe(e,0,r).getUTCDay()-t)%7+r-1}function Ae(e,t,n,r,a){var i,o,s=1+7*(t-1)+(7+n-r)%7+Re(e,r,a);return s<=0?o=he(i=e-1)+s:s>he(e)?(i=e+1,o=s-he(e)):(i=e,o=s),{year:i,dayOfYear:o}}function He(e,t,n){var r,a,i=Re(e.year(),t,n),o=Math.floor((e.dayOfYear()-i-1)/7)+1;return o<1?r=o+Ne(a=e.year()-1,t,n):o>Ne(e.year(),t,n)?(r=o-Ne(e.year(),t,n),a=e.year()+1):(a=e.year(),r=o),{week:r,year:a}}function Ne(e,t,n){var r=Re(e,t,n),a=Re(e+1,t,n);return(he(e)-r+a)/7}U("w",["ww",2],"wo","week"),U("W",["WW",2],"Wo","isoWeek"),C("week","w"),C("isoWeek","W"),H("week",5),H("isoWeek",5),de("w",Q),de("ww",Q,q),de("W",Q),de("WW",Q,q),fe(["w","ww","W","WW"],(function(e,t,n,r){t[r.substr(0,1)]=g(e)})),U("d",0,"do","day"),U("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),U("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),U("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)})),U("e",0,0,"weekday"),U("E",0,0,"isoWeekday"),C("day","d"),C("weekday","e"),C("isoWeekday","E"),H("day",11),H("weekday",11),H("isoWeekday",11),de("d",Q),de("e",Q),de("E",Q),de("dd",(function(e,t){return t.weekdaysMinRegex(e)})),de("ddd",(function(e,t){return t.weekdaysShortRegex(e)})),de("dddd",(function(e,t){return t.weekdaysRegex(e)})),fe(["dd","ddd","dddd"],(function(e,t,n,r){var a=n._locale.weekdaysParse(e,r,n._strict);null!=a?t.d=a:p(n).invalidWeekday=e})),fe(["d","e","E"],(function(e,t,n,r){t[r]=g(e)}));var Ve="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Fe="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Ke="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function We(e,t,n){var r,a,i,o=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)i=m([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(i,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(i,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(i,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(a=be.call(this._weekdaysParse,o))?a:null:"ddd"===t?-1!==(a=be.call(this._shortWeekdaysParse,o))?a:null:-1!==(a=be.call(this._minWeekdaysParse,o))?a:null:"dddd"===t?-1!==(a=be.call(this._weekdaysParse,o))||-1!==(a=be.call(this._shortWeekdaysParse,o))||-1!==(a=be.call(this._minWeekdaysParse,o))?a:null:"ddd"===t?-1!==(a=be.call(this._shortWeekdaysParse,o))||-1!==(a=be.call(this._weekdaysParse,o))||-1!==(a=be.call(this._minWeekdaysParse,o))?a:null:-1!==(a=be.call(this._minWeekdaysParse,o))||-1!==(a=be.call(this._weekdaysParse,o))||-1!==(a=be.call(this._shortWeekdaysParse,o))?a:null}var Ue=ce,ze=ce,Ge=ce;function Be(){function e(e,t){return t.length-e.length}var t,n,r,a,i,o=[],s=[],c=[],u=[];for(t=0;t<7;t++)n=m([2e3,1]).day(t),r=this.weekdaysMin(n,""),a=this.weekdaysShort(n,""),i=this.weekdays(n,""),o.push(r),s.push(a),c.push(i),u.push(r),u.push(a),u.push(i);for(o.sort(e),s.sort(e),c.sort(e),u.sort(e),t=0;t<7;t++)s[t]=_e(s[t]),c[t]=_e(c[t]),u[t]=_e(u[t]);this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+c.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}function qe(){return this.hours()%12||12}function Je(e,t){U(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function $e(e,t){return t._meridiemParse}U("H",["HH",2],0,"hour"),U("h",["hh",2],0,qe),U("k",["kk",2],0,(function(){return this.hours()||24})),U("hmm",0,0,(function(){return""+qe.apply(this)+N(this.minutes(),2)})),U("hmmss",0,0,(function(){return""+qe.apply(this)+N(this.minutes(),2)+N(this.seconds(),2)})),U("Hmm",0,0,(function(){return""+this.hours()+N(this.minutes(),2)})),U("Hmmss",0,0,(function(){return""+this.hours()+N(this.minutes(),2)+N(this.seconds(),2)})),Je("a",!0),Je("A",!1),C("hour","h"),H("hour",13),de("a",$e),de("A",$e),de("H",Q),de("h",Q),de("k",Q),de("HH",Q,q),de("hh",Q,q),de("kk",Q,q),de("hmm",X),de("hmmss",ee),de("Hmm",X),de("Hmmss",ee),pe(["H","HH"],3),pe(["k","kk"],(function(e,t,n){var r=g(e);t[3]=24===r?0:r})),pe(["a","A"],(function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e})),pe(["h","hh"],(function(e,t,n){t[3]=g(e),p(n).bigHour=!0})),pe("hmm",(function(e,t,n){var r=e.length-2;t[3]=g(e.substr(0,r)),t[4]=g(e.substr(r)),p(n).bigHour=!0})),pe("hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[3]=g(e.substr(0,r)),t[4]=g(e.substr(r,2)),t[5]=g(e.substr(a)),p(n).bigHour=!0})),pe("Hmm",(function(e,t,n){var r=e.length-2;t[3]=g(e.substr(0,r)),t[4]=g(e.substr(r))})),pe("Hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[3]=g(e.substr(0,r)),t[4]=g(e.substr(r,2)),t[5]=g(e.substr(a))}));var Ze,Qe=Se("Hours",!0),Xe={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:De,monthsShort:Le,week:{dow:0,doy:6},weekdays:Ve,weekdaysMin:Ke,weekdaysShort:Fe,meridiemParse:/[ap]\.?m?\.?/i},et={},tt={};function nt(e){return e?e.toLowerCase().replace("_","-"):e}function rt(t){var r=null;if(!et[t]&&void 0!==e&&e&&e.exports)try{r=Ze._abbr,n(276)("./"+t),at(r)}catch(e){}return et[t]}function at(e,t){var n;return e&&(n=s(t)?ot(e):it(e,t))&&(Ze=n),Ze._abbr}function it(e,t){if(null!==t){var n=Xe;if(t.abbr=e,null!=et[e])Y("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=et[e]._config;else if(null!=t.parentLocale){if(null==et[t.parentLocale])return tt[t.parentLocale]||(tt[t.parentLocale]=[]),tt[t.parentLocale].push({name:e,config:t}),null;n=et[t.parentLocale]._config}return et[e]=new I(j(n,t)),tt[e]&&tt[e].forEach((function(e){it(e.name,e.config)})),at(e),et[e]}return delete et[e],null}function ot(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Ze;if(!i(e)){if(t=rt(e))return t;e=[e]}return function(e){for(var t,n,r,a,i=0;i<e.length;){for(t=(a=nt(e[i]).split("-")).length,n=(n=nt(e[i+1]))?n.split("-"):null;t>0;){if(r=rt(a.slice(0,t).join("-")))return r;if(n&&n.length>=t&&k(a,n,!0)>=t-1)break;t--}i++}return null}(e)}function st(e){var t,n=e._a;return n&&-2===p(e).overflow&&(t=n[1]<0||n[1]>11?1:n[2]<1||n[2]>ke(n[0],n[1])?2:n[3]<0||n[3]>24||24===n[3]&&(0!==n[4]||0!==n[5]||0!==n[6])?3:n[4]<0||n[4]>59?4:n[5]<0||n[5]>59?5:n[6]<0||n[6]>999?6:-1,p(e)._overflowDayOfYear&&(t<0||t>2)&&(t=2),p(e)._overflowWeeks&&-1===t&&(t=7),p(e)._overflowWeekday&&-1===t&&(t=8),p(e).overflow=t),e}function ct(e,t,n){return null!=e?e:null!=t?t:n}function ut(e){var t,n,r,i,o=[];if(!e._d){for(r=function(e){var t=new Date(a.now());return e._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}(e),e._w&&null==e._a[2]&&null==e._a[1]&&function(e){var t,n,r,a,i,o,s,c;if(null!=(t=e._w).GG||null!=t.W||null!=t.E)i=1,o=4,n=ct(t.GG,e._a[0],He(kt(),1,4).year),r=ct(t.W,1),((a=ct(t.E,1))<1||a>7)&&(c=!0);else{i=e._locale._week.dow,o=e._locale._week.doy;var u=He(kt(),i,o);n=ct(t.gg,e._a[0],u.year),r=ct(t.w,u.week),null!=t.d?((a=t.d)<0||a>6)&&(c=!0):null!=t.e?(a=t.e+i,(t.e<0||t.e>6)&&(c=!0)):a=i}r<1||r>Ne(n,i,o)?p(e)._overflowWeeks=!0:null!=c?p(e)._overflowWeekday=!0:(s=Ae(n,r,a,i,o),e._a[0]=s.year,e._dayOfYear=s.dayOfYear)}(e),null!=e._dayOfYear&&(i=ct(e._a[0],r[0]),(e._dayOfYear>he(i)||0===e._dayOfYear)&&(p(e)._overflowDayOfYear=!0),n=xe(i,0,e._dayOfYear),e._a[1]=n.getUTCMonth(),e._a[2]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=o[t]=r[t];for(;t<7;t++)e._a[t]=o[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[3]&&0===e._a[4]&&0===e._a[5]&&0===e._a[6]&&(e._nextDay=!0,e._a[3]=0),e._d=(e._useUTC?xe:Ce).apply(null,o),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[3]=24),e._w&&void 0!==e._w.d&&e._w.d!==e._d.getDay()&&(p(e).weekdayMismatch=!0)}}var dt=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,lt=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,_t=/Z|[+-]\d\d(?::?\d\d)?/,mt=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],pt=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],ft=/^\/?Date\((\-?\d+)/i;function Tt(e){var t,n,r,a,i,o,s=e._i,c=dt.exec(s)||lt.exec(s);if(c){for(p(e).iso=!0,t=0,n=mt.length;t<n;t++)if(mt[t][1].exec(c[1])){a=mt[t][0],r=!1!==mt[t][2];break}if(null==a)return void(e._isValid=!1);if(c[3]){for(t=0,n=pt.length;t<n;t++)if(pt[t][1].exec(c[3])){i=(c[2]||" ")+pt[t][0];break}if(null==i)return void(e._isValid=!1)}if(!r&&null!=i)return void(e._isValid=!1);if(c[4]){if(!_t.exec(c[4]))return void(e._isValid=!1);o="Z"}e._f=a+(i||"")+(o||""),St(e)}else e._isValid=!1}var ht=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;function yt(e){var t=parseInt(e,10);return t<=49?2e3+t:t<=999?1900+t:t}var bt={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Mt(e){var t,n,r,a,i,o,s,c=ht.exec(e._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim());if(c){var u=(t=c[4],n=c[3],r=c[2],a=c[5],i=c[6],o=c[7],s=[yt(t),Le.indexOf(n),parseInt(r,10),parseInt(a,10),parseInt(i,10)],o&&s.push(parseInt(o,10)),s);if(!function(e,t,n){return!e||Fe.indexOf(e)===new Date(t[0],t[1],t[2]).getDay()||(p(n).weekdayMismatch=!0,n._isValid=!1,!1)}(c[1],u,e))return;e._a=u,e._tzm=function(e,t,n){if(e)return bt[e];if(t)return 0;var r=parseInt(n,10),a=r%100;return(r-a)/100*60+a}(c[8],c[9],c[10]),e._d=xe.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),p(e).rfc2822=!0}else e._isValid=!1}function St(e){if(e._f!==a.ISO_8601)if(e._f!==a.RFC_2822){e._a=[],p(e).empty=!0;var t,n,r,i,o,s=""+e._i,c=s.length,u=0;for(r=G(e._f,e._locale).match(V)||[],t=0;t<r.length;t++)i=r[t],(n=(s.match(le(i,e))||[])[0])&&((o=s.substr(0,s.indexOf(n))).length>0&&p(e).unusedInput.push(o),s=s.slice(s.indexOf(n)+n.length),u+=n.length),W[i]?(n?p(e).empty=!1:p(e).unusedTokens.push(i),Te(i,n,e)):e._strict&&!n&&p(e).unusedTokens.push(i);p(e).charsLeftOver=c-u,s.length>0&&p(e).unusedInput.push(s),e._a[3]<=12&&!0===p(e).bigHour&&e._a[3]>0&&(p(e).bigHour=void 0),p(e).parsedDateParts=e._a.slice(0),p(e).meridiem=e._meridiem,e._a[3]=function(e,t,n){var r;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((r=e.isPM(n))&&t<12&&(t+=12),r||12!==t||(t=0),t):t}(e._locale,e._a[3],e._meridiem),ut(e),st(e)}else Mt(e);else Tt(e)}function Et(e){var t=e._i,n=e._f;return e._locale=e._locale||ot(e._l),null===t||void 0===n&&""===t?T({nullInput:!0}):("string"==typeof t&&(e._i=t=e._locale.preparse(t)),S(t)?new M(st(t)):(u(t)?e._d=t:i(n)?function(e){var t,n,r,a,i;if(0===e._f.length)return p(e).invalidFormat=!0,void(e._d=new Date(NaN));for(a=0;a<e._f.length;a++)i=0,t=y({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[a],St(t),f(t)&&(i+=p(t).charsLeftOver,i+=10*p(t).unusedTokens.length,p(t).score=i,(null==r||i<r)&&(r=i,n=t));_(e,n||t)}(e):n?St(e):function(e){var t=e._i;s(t)?e._d=new Date(a.now()):u(t)?e._d=new Date(t.valueOf()):"string"==typeof t?function(e){var t=ft.exec(e._i);null===t?(Tt(e),!1===e._isValid&&(delete e._isValid,Mt(e),!1===e._isValid&&(delete e._isValid,a.createFromInputFallback(e)))):e._d=new Date(+t[1])}(e):i(t)?(e._a=d(t.slice(0),(function(e){return parseInt(e,10)})),ut(e)):o(t)?function(e){if(!e._d){var t=R(e._i);e._a=d([t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],(function(e){return e&&parseInt(e,10)})),ut(e)}}(e):c(t)?e._d=new Date(t):a.createFromInputFallback(e)}(e),f(e)||(e._d=null),e))}function gt(e,t,n,r,a){var s,c={};return!0!==n&&!1!==n||(r=n,n=void 0),(o(e)&&function(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(e.hasOwnProperty(t))return!1;return!0}(e)||i(e)&&0===e.length)&&(e=void 0),c._isAMomentObject=!0,c._useUTC=c._isUTC=a,c._l=n,c._i=e,c._f=t,c._strict=r,(s=new M(st(Et(c))))._nextDay&&(s.add(1,"d"),s._nextDay=void 0),s}function kt(e,t,n,r){return gt(e,t,n,r,!1)}a.createFromInputFallback=D("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",(function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))})),a.ISO_8601=function(){},a.RFC_2822=function(){};var vt=D("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var e=kt.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:T()})),Dt=D("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var e=kt.apply(null,arguments);return this.isValid()&&e.isValid()?e>this?this:e:T()}));function Lt(e,t){var n,r;if(1===t.length&&i(t[0])&&(t=t[0]),!t.length)return kt();for(n=t[0],r=1;r<t.length;++r)t[r].isValid()&&!t[r][e](n)||(n=t[r]);return n}var Ot=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Yt(e){var t=R(e),n=t.year||0,r=t.quarter||0,a=t.month||0,i=t.week||0,o=t.day||0,s=t.hour||0,c=t.minute||0,u=t.second||0,d=t.millisecond||0;this._isValid=function(e){for(var t in e)if(-1===be.call(Ot,t)||null!=e[t]&&isNaN(e[t]))return!1;for(var n=!1,r=0;r<Ot.length;++r)if(e[Ot[r]]){if(n)return!1;parseFloat(e[Ot[r]])!==g(e[Ot[r]])&&(n=!0)}return!0}(t),this._milliseconds=+d+1e3*u+6e4*c+1e3*s*60*60,this._days=+o+7*i,this._months=+a+3*r+12*n,this._data={},this._locale=ot(),this._bubble()}function wt(e){return e instanceof Yt}function jt(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function It(e,t){U(e,0,0,(function(){var e=this.utcOffset(),n="+";return e<0&&(e=-e,n="-"),n+N(~~(e/60),2)+t+N(~~e%60,2)}))}It("Z",":"),It("ZZ",""),de("Z",se),de("ZZ",se),pe(["Z","ZZ"],(function(e,t,n){n._useUTC=!0,n._tzm=Ct(se,e)}));var Pt=/([\+\-]|\d\d)/gi;function Ct(e,t){var n=(t||"").match(e);if(null===n)return null;var r=((n[n.length-1]||[])+"").match(Pt)||["-",0,0],a=60*r[1]+g(r[2]);return 0===a?0:"+"===r[0]?a:-a}function xt(e,t){var n,r;return t._isUTC?(n=t.clone(),r=(S(e)||u(e)?e.valueOf():kt(e).valueOf())-n.valueOf(),n._d.setTime(n._d.valueOf()+r),a.updateOffset(n,!1),n):kt(e).local()}function Rt(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function At(){return!!this.isValid()&&this._isUTC&&0===this._offset}a.updateOffset=function(){};var Ht=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Nt=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Vt(e,t){var n,r,a,i,o,s,u=e,d=null;return wt(e)?u={ms:e._milliseconds,d:e._days,M:e._months}:c(e)?(u={},t?u[t]=e:u.milliseconds=e):(d=Ht.exec(e))?(n="-"===d[1]?-1:1,u={y:0,d:g(d[2])*n,h:g(d[3])*n,m:g(d[4])*n,s:g(d[5])*n,ms:g(jt(1e3*d[6]))*n}):(d=Nt.exec(e))?(n="-"===d[1]?-1:(d[1],1),u={y:Ft(d[2],n),M:Ft(d[3],n),w:Ft(d[4],n),d:Ft(d[5],n),h:Ft(d[6],n),m:Ft(d[7],n),s:Ft(d[8],n)}):null==u?u={}:"object"==typeof u&&("from"in u||"to"in u)&&(i=kt(u.from),o=kt(u.to),a=i.isValid()&&o.isValid()?(o=xt(o,i),i.isBefore(o)?s=Kt(i,o):((s=Kt(o,i)).milliseconds=-s.milliseconds,s.months=-s.months),s):{milliseconds:0,months:0},(u={}).ms=a.milliseconds,u.M=a.months),r=new Yt(u),wt(e)&&l(e,"_locale")&&(r._locale=e._locale),r}function Ft(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Kt(e,t){var n={milliseconds:0,months:0};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function Wt(e,t){return function(n,r){var a;return null===r||isNaN(+r)||(Y(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),a=n,n=r,r=a),Ut(this,Vt(n="string"==typeof n?+n:n,r),e),this}}function Ut(e,t,n,r){var i=t._milliseconds,o=jt(t._days),s=jt(t._months);e.isValid()&&(r=null==r||r,s&&Ye(e,Ee(e,"Month")+s*n),o&&ge(e,"Date",Ee(e,"Date")+o*n),i&&e._d.setTime(e._d.valueOf()+i*n),r&&a.updateOffset(e,o||s))}Vt.fn=Yt.prototype,Vt.invalid=function(){return Vt(NaN)};var zt=Wt(1,"add"),Gt=Wt(-1,"subtract");function Bt(e,t){var n=12*(t.year()-e.year())+(t.month()-e.month()),r=e.clone().add(n,"months");return-(n+(t-r<0?(t-r)/(r-e.clone().add(n-1,"months")):(t-r)/(e.clone().add(n+1,"months")-r)))||0}function qt(e){var t;return void 0===e?this._locale._abbr:(null!=(t=ot(e))&&(this._locale=t),this)}a.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",a.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Jt=D("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(e){return void 0===e?this.localeData():this.locale(e)}));function $t(){return this._locale}function Zt(e,t){U(0,[e,e.length],0,t)}function Qt(e,t,n,r,a){var i;return null==e?He(this,r,a).year:(t>(i=Ne(e,r,a))&&(t=i),Xt.call(this,e,t,n,r,a))}function Xt(e,t,n,r,a){var i=Ae(e,t,n,r,a),o=xe(i.year,0,i.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}U(0,["gg",2],0,(function(){return this.weekYear()%100})),U(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),Zt("gggg","weekYear"),Zt("ggggg","weekYear"),Zt("GGGG","isoWeekYear"),Zt("GGGGG","isoWeekYear"),C("weekYear","gg"),C("isoWeekYear","GG"),H("weekYear",1),H("isoWeekYear",1),de("G",ie),de("g",ie),de("GG",Q,q),de("gg",Q,q),de("GGGG",ne,$),de("gggg",ne,$),de("GGGGG",re,Z),de("ggggg",re,Z),fe(["gggg","ggggg","GGGG","GGGGG"],(function(e,t,n,r){t[r.substr(0,2)]=g(e)})),fe(["gg","GG"],(function(e,t,n,r){t[r]=a.parseTwoDigitYear(e)})),U("Q",0,"Qo","quarter"),C("quarter","Q"),H("quarter",7),de("Q",B),pe("Q",(function(e,t){t[1]=3*(g(e)-1)})),U("D",["DD",2],"Do","date"),C("date","D"),H("date",9),de("D",Q),de("DD",Q,q),de("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),pe(["D","DD"],2),pe("Do",(function(e,t){t[2]=g(e.match(Q)[0])}));var en=Se("Date",!0);U("DDD",["DDDD",3],"DDDo","dayOfYear"),C("dayOfYear","DDD"),H("dayOfYear",4),de("DDD",te),de("DDDD",J),pe(["DDD","DDDD"],(function(e,t,n){n._dayOfYear=g(e)})),U("m",["mm",2],0,"minute"),C("minute","m"),H("minute",14),de("m",Q),de("mm",Q,q),pe(["m","mm"],4);var tn=Se("Minutes",!1);U("s",["ss",2],0,"second"),C("second","s"),H("second",15),de("s",Q),de("ss",Q,q),pe(["s","ss"],5);var nn,rn=Se("Seconds",!1);for(U("S",0,0,(function(){return~~(this.millisecond()/100)})),U(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),U(0,["SSS",3],0,"millisecond"),U(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),U(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),U(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),U(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),U(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),U(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),C("millisecond","ms"),H("millisecond",16),de("S",te,B),de("SS",te,q),de("SSS",te,J),nn="SSSS";nn.length<=9;nn+="S")de(nn,ae);function an(e,t){t[6]=g(1e3*("0."+e))}for(nn="S";nn.length<=9;nn+="S")pe(nn,an);var on=Se("Milliseconds",!1);U("z",0,0,"zoneAbbr"),U("zz",0,0,"zoneName");var sn=M.prototype;function cn(e){return e}sn.add=zt,sn.calendar=function(e,t){var n=e||kt(),r=xt(n,this).startOf("day"),i=a.calendarFormat(this,r)||"sameElse",o=t&&(w(t[i])?t[i].call(this,n):t[i]);return this.format(o||this.localeData().calendar(i,this,kt(n)))},sn.clone=function(){return new M(this)},sn.diff=function(e,t,n){var r,a,i;if(!this.isValid())return NaN;if(!(r=xt(e,this)).isValid())return NaN;switch(a=6e4*(r.utcOffset()-this.utcOffset()),t=x(t)){case"year":i=Bt(this,r)/12;break;case"month":i=Bt(this,r);break;case"quarter":i=Bt(this,r)/3;break;case"second":i=(this-r)/1e3;break;case"minute":i=(this-r)/6e4;break;case"hour":i=(this-r)/36e5;break;case"day":i=(this-r-a)/864e5;break;case"week":i=(this-r-a)/6048e5;break;default:i=this-r}return n?i:E(i)},sn.endOf=function(e){return void 0===(e=x(e))||"millisecond"===e?this:("date"===e&&(e="day"),this.startOf(e).add(1,"isoWeek"===e?"week":e).subtract(1,"ms"))},sn.format=function(e){e||(e=this.isUtc()?a.defaultFormatUtc:a.defaultFormat);var t=z(this,e);return this.localeData().postformat(t)},sn.from=function(e,t){return this.isValid()&&(S(e)&&e.isValid()||kt(e).isValid())?Vt({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},sn.fromNow=function(e){return this.from(kt(),e)},sn.to=function(e,t){return this.isValid()&&(S(e)&&e.isValid()||kt(e).isValid())?Vt({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},sn.toNow=function(e){return this.to(kt(),e)},sn.get=function(e){return w(this[e=x(e)])?this[e]():this},sn.invalidAt=function(){return p(this).overflow},sn.isAfter=function(e,t){var n=S(e)?e:kt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=x(s(t)?"millisecond":t))?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(t).valueOf())},sn.isBefore=function(e,t){var n=S(e)?e:kt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=x(s(t)?"millisecond":t))?this.valueOf()<n.valueOf():this.clone().endOf(t).valueOf()<n.valueOf())},sn.isBetween=function(e,t,n,r){return("("===(r=r||"()")[0]?this.isAfter(e,n):!this.isBefore(e,n))&&(")"===r[1]?this.isBefore(t,n):!this.isAfter(t,n))},sn.isSame=function(e,t){var n,r=S(e)?e:kt(e);return!(!this.isValid()||!r.isValid())&&("millisecond"===(t=x(t||"millisecond"))?this.valueOf()===r.valueOf():(n=r.valueOf(),this.clone().startOf(t).valueOf()<=n&&n<=this.clone().endOf(t).valueOf()))},sn.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},sn.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},sn.isValid=function(){return f(this)},sn.lang=Jt,sn.locale=qt,sn.localeData=$t,sn.max=Dt,sn.min=vt,sn.parsingFlags=function(){return _({},p(this))},sn.set=function(e,t){if("object"==typeof e)for(var n=function(e){var t=[];for(var n in e)t.push({unit:n,priority:A[n]});return t.sort((function(e,t){return e.priority-t.priority})),t}(e=R(e)),r=0;r<n.length;r++)this[n[r].unit](e[n[r].unit]);else if(w(this[e=x(e)]))return this[e](t);return this},sn.startOf=function(e){switch(e=x(e)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===e&&this.weekday(0),"isoWeek"===e&&this.isoWeekday(1),"quarter"===e&&this.month(3*Math.floor(this.month()/3)),this},sn.subtract=Gt,sn.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},sn.toObject=function(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}},sn.toDate=function(){return new Date(this.valueOf())},sn.toISOString=function(){if(!this.isValid())return null;var e=this.clone().utc();return e.year()<0||e.year()>9999?z(e,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):w(Date.prototype.toISOString)?this.toDate().toISOString():z(e,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")},sn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var n="["+e+'("]',r=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",a=t+'[")]';return this.format(n+r+"-MM-DD[T]HH:mm:ss.SSS"+a)},sn.toJSON=function(){return this.isValid()?this.toISOString():null},sn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},sn.unix=function(){return Math.floor(this.valueOf()/1e3)},sn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},sn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},sn.year=Me,sn.isLeapYear=function(){return ye(this.year())},sn.weekYear=function(e){return Qt.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},sn.isoWeekYear=function(e){return Qt.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},sn.quarter=sn.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},sn.month=we,sn.daysInMonth=function(){return ke(this.year(),this.month())},sn.week=sn.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},sn.isoWeek=sn.isoWeeks=function(e){var t=He(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},sn.weeksInYear=function(){var e=this.localeData()._week;return Ne(this.year(),e.dow,e.doy)},sn.isoWeeksInYear=function(){return Ne(this.year(),1,4)},sn.date=en,sn.day=sn.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=function(e,t){return"string"!=typeof e?e:isNaN(e)?"number"==typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}(e,this.localeData()),this.add(e-t,"d")):t},sn.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},sn.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=function(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7},sn.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},sn.hour=sn.hours=Qe,sn.minute=sn.minutes=tn,sn.second=sn.seconds=rn,sn.millisecond=sn.milliseconds=on,sn.utcOffset=function(e,t,n){var r,i=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null!=e){if("string"==typeof e){if(null===(e=Ct(se,e)))return this}else Math.abs(e)<16&&!n&&(e*=60);return!this._isUTC&&t&&(r=Rt(this)),this._offset=e,this._isUTC=!0,null!=r&&this.add(r,"m"),i!==e&&(!t||this._changeInProgress?Ut(this,Vt(e-i,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,a.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?i:Rt(this)},sn.utc=function(e){return this.utcOffset(0,e)},sn.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Rt(this),"m")),this},sn.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=Ct(oe,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},sn.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?kt(e).utcOffset():0,(this.utcOffset()-e)%60==0)},sn.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},sn.isLocal=function(){return!!this.isValid()&&!this._isUTC},sn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},sn.isUtc=At,sn.isUTC=At,sn.zoneAbbr=function(){return this._isUTC?"UTC":""},sn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},sn.dates=D("dates accessor is deprecated. Use date instead.",en),sn.months=D("months accessor is deprecated. Use month instead",we),sn.years=D("years accessor is deprecated. Use year instead",Me),sn.zone=D("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()})),sn.isDSTShifted=D("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!s(this._isDSTShifted))return this._isDSTShifted;var e={};if(y(e,this),(e=Et(e))._a){var t=e._isUTC?m(e._a):kt(e._a);this._isDSTShifted=this.isValid()&&k(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}));var un=I.prototype;function dn(e,t,n,r){var a=ot(),i=m().set(r,t);return a[n](i,e)}function ln(e,t,n){if(c(e)&&(t=e,e=void 0),e=e||"",null!=t)return dn(e,t,n,"month");var r,a=[];for(r=0;r<12;r++)a[r]=dn(e,r,n,"month");return a}function _n(e,t,n,r){"boolean"==typeof e?(c(t)&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,c(t)&&(n=t,t=void 0),t=t||"");var a,i=ot(),o=e?i._week.dow:0;if(null!=n)return dn(t,(n+o)%7,r,"day");var s=[];for(a=0;a<7;a++)s[a]=dn(t,(a+o)%7,r,"day");return s}un.calendar=function(e,t,n){var r=this._calendar[e]||this._calendar.sameElse;return w(r)?r.call(t,n):r},un.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.replace(/MMMM|MM|DD|dddd/g,(function(e){return e.slice(1)})),this._longDateFormat[e])},un.invalidDate=function(){return this._invalidDate},un.ordinal=function(e){return this._ordinal.replace("%d",e)},un.preparse=cn,un.postformat=cn,un.relativeTime=function(e,t,n,r){var a=this._relativeTime[n];return w(a)?a(e,t,n,r):a.replace(/%d/i,e)},un.pastFuture=function(e,t){var n=this._relativeTime[e>0?"future":"past"];return w(n)?n(t):n.replace(/%s/i,t)},un.set=function(e){var t,n;for(n in e)w(t=e[n])?this[n]=t:this["_"+n]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},un.months=function(e,t){return e?i(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||ve).test(t)?"format":"standalone"][e.month()]:i(this._months)?this._months:this._months.standalone},un.monthsShort=function(e,t){return e?i(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[ve.test(t)?"format":"standalone"][e.month()]:i(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},un.monthsParse=function(e,t,n){var r,a,i;if(this._monthsParseExact)return Oe.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),r=0;r<12;r++){if(a=m([2e3,r]),n&&!this._longMonthsParse[r]&&(this._longMonthsParse[r]=new RegExp("^"+this.months(a,"").replace(".","")+"$","i"),this._shortMonthsParse[r]=new RegExp("^"+this.monthsShort(a,"").replace(".","")+"$","i")),n||this._monthsParse[r]||(i="^"+this.months(a,"")+"|^"+this.monthsShort(a,""),this._monthsParse[r]=new RegExp(i.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[r].test(e))return r;if(n&&"MMM"===t&&this._shortMonthsParse[r].test(e))return r;if(!n&&this._monthsParse[r].test(e))return r}},un.monthsRegex=function(e){return this._monthsParseExact?(l(this,"_monthsRegex")||Pe.call(this),e?this._monthsStrictRegex:this._monthsRegex):(l(this,"_monthsRegex")||(this._monthsRegex=Ie),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},un.monthsShortRegex=function(e){return this._monthsParseExact?(l(this,"_monthsRegex")||Pe.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(l(this,"_monthsShortRegex")||(this._monthsShortRegex=je),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},un.week=function(e){return He(e,this._week.dow,this._week.doy).week},un.firstDayOfYear=function(){return this._week.doy},un.firstDayOfWeek=function(){return this._week.dow},un.weekdays=function(e,t){return e?i(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(t)?"format":"standalone"][e.day()]:i(this._weekdays)?this._weekdays:this._weekdays.standalone},un.weekdaysMin=function(e){return e?this._weekdaysMin[e.day()]:this._weekdaysMin},un.weekdaysShort=function(e){return e?this._weekdaysShort[e.day()]:this._weekdaysShort},un.weekdaysParse=function(e,t,n){var r,a,i;if(this._weekdaysParseExact)return We.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(a=m([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(a,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(a,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(a,"").replace(".",".?")+"$","i")),this._weekdaysParse[r]||(i="^"+this.weekdays(a,"")+"|^"+this.weekdaysShort(a,"")+"|^"+this.weekdaysMin(a,""),this._weekdaysParse[r]=new RegExp(i.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[r].test(e))return r;if(n&&"ddd"===t&&this._shortWeekdaysParse[r].test(e))return r;if(n&&"dd"===t&&this._minWeekdaysParse[r].test(e))return r;if(!n&&this._weekdaysParse[r].test(e))return r}},un.weekdaysRegex=function(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Be.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(l(this,"_weekdaysRegex")||(this._weekdaysRegex=Ue),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},un.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Be.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(l(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=ze),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},un.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Be.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(l(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Ge),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},un.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},un.meridiem=function(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"},at("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===g(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),a.lang=D("moment.lang is deprecated. Use moment.locale instead.",at),a.langData=D("moment.langData is deprecated. Use moment.localeData instead.",ot);var mn=Math.abs;function pn(e,t,n,r){var a=Vt(t,n);return e._milliseconds+=r*a._milliseconds,e._days+=r*a._days,e._months+=r*a._months,e._bubble()}function fn(e){return e<0?Math.floor(e):Math.ceil(e)}function Tn(e){return 4800*e/146097}function hn(e){return 146097*e/4800}function yn(e){return function(){return this.as(e)}}var bn=yn("ms"),Mn=yn("s"),Sn=yn("m"),En=yn("h"),gn=yn("d"),kn=yn("w"),vn=yn("M"),Dn=yn("y");function Ln(e){return function(){return this.isValid()?this._data[e]:NaN}}var On=Ln("milliseconds"),Yn=Ln("seconds"),wn=Ln("minutes"),jn=Ln("hours"),In=Ln("days"),Pn=Ln("months"),Cn=Ln("years"),xn=Math.round,Rn={ss:44,s:45,m:45,h:22,d:26,M:11};function An(e,t,n,r,a){return a.relativeTime(t||1,!!n,e,r)}var Hn=Math.abs;function Nn(e){return(e>0)-(e<0)||+e}function Vn(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n=Hn(this._milliseconds)/1e3,r=Hn(this._days),a=Hn(this._months);e=E(n/60),t=E(e/60),n%=60,e%=60;var i=E(a/12),o=a%=12,s=r,c=t,u=e,d=n?n.toFixed(3).replace(/\.?0+$/,""):"",l=this.asSeconds();if(!l)return"P0D";var _=l<0?"-":"",m=Nn(this._months)!==Nn(l)?"-":"",p=Nn(this._days)!==Nn(l)?"-":"",f=Nn(this._milliseconds)!==Nn(l)?"-":"";return _+"P"+(i?m+i+"Y":"")+(o?m+o+"M":"")+(s?p+s+"D":"")+(c||u||d?"T":"")+(c?f+c+"H":"")+(u?f+u+"M":"")+(d?f+d+"S":"")}var Fn=Yt.prototype;return Fn.isValid=function(){return this._isValid},Fn.abs=function(){var e=this._data;return this._milliseconds=mn(this._milliseconds),this._days=mn(this._days),this._months=mn(this._months),e.milliseconds=mn(e.milliseconds),e.seconds=mn(e.seconds),e.minutes=mn(e.minutes),e.hours=mn(e.hours),e.months=mn(e.months),e.years=mn(e.years),this},Fn.add=function(e,t){return pn(this,e,t,1)},Fn.subtract=function(e,t){return pn(this,e,t,-1)},Fn.as=function(e){if(!this.isValid())return NaN;var t,n,r=this._milliseconds;if("month"===(e=x(e))||"year"===e)return t=this._days+r/864e5,n=this._months+Tn(t),"month"===e?n:n/12;switch(t=this._days+Math.round(hn(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return 24*t+r/36e5;case"minute":return 1440*t+r/6e4;case"second":return 86400*t+r/1e3;case"millisecond":return Math.floor(864e5*t)+r;default:throw new Error("Unknown unit "+e)}},Fn.asMilliseconds=bn,Fn.asSeconds=Mn,Fn.asMinutes=Sn,Fn.asHours=En,Fn.asDays=gn,Fn.asWeeks=kn,Fn.asMonths=vn,Fn.asYears=Dn,Fn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*g(this._months/12):NaN},Fn._bubble=function(){var e,t,n,r,a,i=this._milliseconds,o=this._days,s=this._months,c=this._data;return i>=0&&o>=0&&s>=0||i<=0&&o<=0&&s<=0||(i+=864e5*fn(hn(s)+o),o=0,s=0),c.milliseconds=i%1e3,e=E(i/1e3),c.seconds=e%60,t=E(e/60),c.minutes=t%60,n=E(t/60),c.hours=n%24,o+=E(n/24),a=E(Tn(o)),s+=a,o-=fn(hn(a)),r=E(s/12),s%=12,c.days=o,c.months=s,c.years=r,this},Fn.clone=function(){return Vt(this)},Fn.get=function(e){return e=x(e),this.isValid()?this[e+"s"]():NaN},Fn.milliseconds=On,Fn.seconds=Yn,Fn.minutes=wn,Fn.hours=jn,Fn.days=In,Fn.weeks=function(){return E(this.days()/7)},Fn.months=Pn,Fn.years=Cn,Fn.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),n=function(e,t,n){var r=Vt(e).abs(),a=xn(r.as("s")),i=xn(r.as("m")),o=xn(r.as("h")),s=xn(r.as("d")),c=xn(r.as("M")),u=xn(r.as("y")),d=a<=Rn.ss&&["s",a]||a<Rn.s&&["ss",a]||i<=1&&["m"]||i<Rn.m&&["mm",i]||o<=1&&["h"]||o<Rn.h&&["hh",o]||s<=1&&["d"]||s<Rn.d&&["dd",s]||c<=1&&["M"]||c<Rn.M&&["MM",c]||u<=1&&["y"]||["yy",u];return d[2]=t,d[3]=+e>0,d[4]=n,An.apply(null,d)}(this,!e,t);return e&&(n=t.pastFuture(+this,n)),t.postformat(n)},Fn.toISOString=Vn,Fn.toString=Vn,Fn.toJSON=Vn,Fn.locale=qt,Fn.localeData=$t,Fn.toIsoString=D("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Vn),Fn.lang=Jt,U("X",0,0,"unix"),U("x",0,0,"valueOf"),de("x",ie),de("X",/[+-]?\d+(\.\d{1,3})?/),pe("X",(function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))})),pe("x",(function(e,t,n){n._d=new Date(g(e))})),a.version="2.19.3",t=kt,a.fn=sn,a.min=function(){var e=[].slice.call(arguments,0);return Lt("isBefore",e)},a.max=function(){var e=[].slice.call(arguments,0);return Lt("isAfter",e)},a.now=function(){return Date.now?Date.now():+new Date},a.utc=m,a.unix=function(e){return kt(1e3*e)},a.months=function(e,t){return ln(e,t,"months")},a.isDate=u,a.locale=at,a.invalid=T,a.duration=Vt,a.isMoment=S,a.weekdays=function(e,t,n){return _n(e,t,n,"weekdays")},a.parseZone=function(){return kt.apply(null,arguments).parseZone()},a.localeData=ot,a.isDuration=wt,a.monthsShort=function(e,t){return ln(e,t,"monthsShort")},a.weekdaysMin=function(e,t,n){return _n(e,t,n,"weekdaysMin")},a.defineLocale=it,a.updateLocale=function(e,t){if(null!=t){var n,r,a=Xe;null!=(r=rt(e))&&(a=r._config),t=j(a,t),(n=new I(t)).parentLocale=et[e],et[e]=n,at(e)}else null!=et[e]&&(null!=et[e].parentLocale?et[e]=et[e].parentLocale:null!=et[e]&&delete et[e]);return et[e]},a.locales=function(){return L(et)},a.weekdaysShort=function(e,t,n){return _n(e,t,n,"weekdaysShort")},a.normalizeUnits=x,a.relativeTimeRounding=function(e){return void 0===e?xn:"function"==typeof e&&(xn=e,!0)},a.relativeTimeThreshold=function(e,t){return void 0!==Rn[e]&&(void 0===t?Rn[e]:(Rn[e]=t,"s"===e&&(Rn.ss=t-1),!0))},a.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},a.prototype=sn,a}()}).call(this,n(82)(e))},function(e,t,n){"use strict";function r(e,t){return e===t}function a(e,t,n){if(null===t||null===n||t.length!==n.length)return!1;for(var r=t.length,a=0;a<r;a++)if(!e(t[a],n[a]))return!1;return!0}function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r,n=null,i=null;return function(){return a(t,n,arguments)||(i=e.apply(null,arguments)),n=arguments,i}}function o(e){var t=Array.isArray(e[0])?e[0]:e;if(!t.every((function(e){return"function"==typeof e}))){var n=t.map((function(e){return typeof e})).join(", ");throw new Error("Selector creators expect all input-selectors to be functions, instead received the following types: ["+n+"]")}return t}function s(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return function(){for(var t=arguments.length,r=Array(t),a=0;a<t;a++)r[a]=arguments[a];var s=0,c=r.pop(),u=o(r),d=e.apply(void 0,[function(){return s++,c.apply(null,arguments)}].concat(n)),l=i((function(){for(var e=[],t=u.length,n=0;n<t;n++)e.push(u[n].apply(null,arguments));return d.apply(null,e)}));return l.resultFunc=c,l.recomputations=function(){return s},l.resetRecomputations=function(){return s=0},l}}t.__esModule=!0,t.defaultMemoize=i,t.createSelectorCreator=s,t.createStructuredSelector=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c;if("object"!=typeof e)throw new Error("createStructuredSelector expects first argument to be an object where each property is a selector, instead received a "+typeof e);var n=Object.keys(e);return t(n.map((function(t){return e[t]})),(function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return t.reduce((function(e,t,r){return e[n[r]]=t,e}),{})}))};var c=t.createSelector=s(i)},function(e,t,n){"use strict";n.d(t,"u",(function(){return i})),n.d(t,"e",(function(){return o})),n.d(t,"b",(function(){return c})),n.d(t,"a",(function(){return u})),n.d(t,"c",(function(){return d})),n.d(t,"d",(function(){return l})),n.d(t,"o",(function(){return m})),n.d(t,"r",(function(){return p})),n.d(t,"l",(function(){return f})),n.d(t,"g",(function(){return T})),n.d(t,"n",(function(){return b})),n.d(t,"s",(function(){return M})),n.d(t,"t",(function(){return S})),n.d(t,"f",(function(){return E})),n.d(t,"i",(function(){return g})),n.d(t,"j",(function(){return k})),n.d(t,"v",(function(){return D})),n.d(t,"q",(function(){return Y})),n.d(t,"p",(function(){return w})),n.d(t,"k",(function(){return j})),n.d(t,"w",(function(){return I})),n.d(t,"m",(function(){return P})),n.d(t,"h",(function(){return C})),n.d(t,"x",(function(){return x}));var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=function(e){return"@@redux-saga/"+e},o=i("TASK"),s=i("HELPER"),c=i("MATCH"),u=i("CANCEL_PROMISE"),d=i("SAGA_ACTION"),l=i("SELF_CANCELLATION"),_=function(e){return function(){return e}},m=_(!0),p=function(){},f=function(e){return e};function T(e,t,n){if(!t(e))throw w("error","uncaught at check",n),new Error(n)}var h=Object.prototype.hasOwnProperty;function y(e,t){return b.notUndef(e)&&h.call(e,t)}var b={undef:function(e){return null==e},notUndef:function(e){return null!=e},func:function(e){return"function"==typeof e},number:function(e){return"number"==typeof e},string:function(e){return"string"==typeof e},array:Array.isArray,object:function(e){return e&&!b.array(e)&&"object"===(void 0===e?"undefined":a(e))},promise:function(e){return e&&b.func(e.then)},iterator:function(e){return e&&b.func(e.next)&&b.func(e.throw)},iterable:function(e){return e&&b.func(Symbol)?b.func(e[Symbol.iterator]):b.array(e)},task:function(e){return e&&e[o]},observable:function(e){return e&&b.func(e.subscribe)},buffer:function(e){return e&&b.func(e.isEmpty)&&b.func(e.take)&&b.func(e.put)},pattern:function(e){return e&&(b.string(e)||"symbol"===(void 0===e?"undefined":a(e))||b.func(e)||b.array(e))},channel:function(e){return e&&b.func(e.take)&&b.func(e.close)},helper:function(e){return e&&e[s]},stringableFunc:function(e){return b.func(e)&&y(e,"toString")}},M={assign:function(e,t){for(var n in t)y(t,n)&&(e[n]=t[n])}};function S(e,t){var n=e.indexOf(t);n>=0&&e.splice(n,1)}var E={from:function(e){var t=Array(e.length);for(var n in e)y(e,n)&&(t[n]=e[n]);return t}};function g(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=r({},e),n=new Promise((function(e,n){t.resolve=e,t.reject=n}));return t.promise=n,t}function k(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=void 0,r=new Promise((function(r){n=setTimeout((function(){return r(t)}),e)}));return r[u]=function(){return clearTimeout(n)},r}function v(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return function(){return++e}}var D=v(),L=function(e){throw e},O=function(e){return{value:e,done:!0}};function Y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:L,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",r=arguments[3],a={name:n,next:e,throw:t,return:O};return r&&(a[s]=!0),"undefined"!=typeof Symbol&&(a[Symbol.iterator]=function(){return a}),a}function w(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";"undefined"==typeof window?console.log("redux-saga "+e+": "+t+"\n"+(n&&n.stack||n)):console[e](t,n)}function j(e,t){return function(){return e.apply(void 0,arguments)}}var I=function(e,t){return e+" has been deprecated in favor of "+t+", please update your code"},P=function(e){return new Error("\n redux-saga: Error checking hooks detected an inconsistent state. This is likely a bug\n in redux-saga code and not yours. Thanks for reporting this in the project's github repo.\n Error: "+e+"\n")},C=function(e,t){return(e?e+".":"")+"setContext(props): argument "+t+" is not a plain object"},x=function(e){return function(t){return e(Object.defineProperty(t,d,{value:!0}))}}},function(e,t,n){"use strict";n.d(t,"n",(function(){return r})),n.d(t,"o",(function(){return a})),n.d(t,"b",(function(){return i})),n.d(t,"k",(function(){return o})),n.d(t,"a",(function(){return s})),n.d(t,"d",(function(){return c})),n.d(t,"m",(function(){return u})),n.d(t,"f",(function(){return d})),n.d(t,"l",(function(){return l})),n.d(t,"i",(function(){return _})),n.d(t,"e",(function(){return m})),n.d(t,"c",(function(){return p})),n.d(t,"g",(function(){return f})),n.d(t,"j",(function(){return T})),n.d(t,"h",(function(){return h}));var r="@@MT/TICKETS",a="tribe_rsvp_tickets",i="_tribe_rsvp_for_event",o="_tribe_ticket_show_description",s="_price",c="_tribe_ticket_capacity",u="_ticket_start_date",d="_ticket_end_date",l="_tribe_ticket_show_not_going",_="_tribe_ticket_header",m="_tribe_default_ticket_provider",p="_tribe_tickets_list",f="_tribe_ticket_going_count",T="_tribe_ticket_not_going_count",h="_tribe_ticket_has_attendee_info_fields"},function(e,t,n){"use strict";t.__esModule=!0;var r,a=n(270),i=(r=a)&&r.__esModule?r:{default:r};t.default=i.default||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}},function(e,t,n){"use strict";n.r(t),n.d(t,"setTicketsInitialState",(function(){return a})),n.d(t,"resetTicketsBlock",(function(){return i})),n.d(t,"setTicketsHeaderImage",(function(){return o})),n.d(t,"setTicketsIsSelected",(function(){return s})),n.d(t,"setTicketsIsSettingsOpen",(function(){return c})),n.d(t,"setTicketsIsSettingsLoading",(function(){return u})),n.d(t,"openSettings",(function(){return d})),n.d(t,"closeSettings",(function(){return l})),n.d(t,"setTicketsProvider",(function(){return _})),n.d(t,"setTicketsSharedCapacity",(function(){return m})),n.d(t,"setTicketsTempSharedCapacity",(function(){return p})),n.d(t,"fetchTicketsHeaderImage",(function(){return f})),n.d(t,"updateTicketsHeaderImage",(function(){return T})),n.d(t,"deleteTicketsHeaderImage",(function(){return h})),n.d(t,"setTicketTitle",(function(){return y})),n.d(t,"setTicketDescription",(function(){return b})),n.d(t,"setTicketPrice",(function(){return M})),n.d(t,"setTicketSku",(function(){return S})),n.d(t,"setTicketIACSetting",(function(){return E})),n.d(t,"setTicketStartDate",(function(){return g})),n.d(t,"setTicketStartDateInput",(function(){return k})),n.d(t,"setTicketStartDateMoment",(function(){return v})),n.d(t,"setTicketEndDate",(function(){return D})),n.d(t,"setTicketEndDateInput",(function(){return L})),n.d(t,"setTicketEndDateMoment",(function(){return O})),n.d(t,"setTicketStartTime",(function(){return Y})),n.d(t,"setTicketEndTime",(function(){return w})),n.d(t,"setTicketStartTimeInput",(function(){return j})),n.d(t,"setTicketEndTimeInput",(function(){return I})),n.d(t,"setTicketCapacityType",(function(){return P})),n.d(t,"setTicketCapacity",(function(){return C})),n.d(t,"setTicketTempTitle",(function(){return x})),n.d(t,"setTicketTempDescription",(function(){return R})),n.d(t,"setTicketTempPrice",(function(){return A})),n.d(t,"setTicketTempSku",(function(){return H})),n.d(t,"setTicketTempIACSetting",(function(){return N})),n.d(t,"setTicketTempStartDate",(function(){return V})),n.d(t,"setTicketTempStartDateInput",(function(){return F})),n.d(t,"setTicketTempStartDateMoment",(function(){return K})),n.d(t,"setTicketTempEndDate",(function(){return W})),n.d(t,"setTicketTempEndDateInput",(function(){return U})),n.d(t,"setTicketTempEndDateMoment",(function(){return z})),n.d(t,"setTicketTempStartTime",(function(){return G})),n.d(t,"setTicketTempEndTime",(function(){return B})),n.d(t,"setTicketTempStartTimeInput",(function(){return q})),n.d(t,"setTicketTempEndTimeInput",(function(){return J})),n.d(t,"setTicketTempCapacityType",(function(){return $})),n.d(t,"setTicketTempCapacity",(function(){return Z})),n.d(t,"registerTicketBlock",(function(){return Q})),n.d(t,"removeTicketBlock",(function(){return X})),n.d(t,"removeTicketBlocks",(function(){return ee})),n.d(t,"setTicketSold",(function(){return te})),n.d(t,"setTicketAvailable",(function(){return ne})),n.d(t,"setTicketId",(function(){return re})),n.d(t,"setTicketCurrencySymbol",(function(){return ae})),n.d(t,"setTicketCurrencyPosition",(function(){return ie})),n.d(t,"setTicketProvider",(function(){return oe})),n.d(t,"setTicketHasAttendeeInfoFields",(function(){return se})),n.d(t,"setTicketIsLoading",(function(){return ce})),n.d(t,"setTicketIsModalOpen",(function(){return ue})),n.d(t,"setTicketHasBeenCreated",(function(){return de})),n.d(t,"setTicketHasChanges",(function(){return le})),n.d(t,"setTicketHasDurationError",(function(){return _e})),n.d(t,"setTicketIsSelected",(function(){return me})),n.d(t,"setTicketDetails",(function(){return pe})),n.d(t,"setTicketTempDetails",(function(){return fe})),n.d(t,"handleTicketStartDate",(function(){return Te})),n.d(t,"handleTicketEndDate",(function(){return he})),n.d(t,"handleTicketStartTime",(function(){return ye})),n.d(t,"handleTicketEndTime",(function(){return be})),n.d(t,"fetchTicket",(function(){return Me})),n.d(t,"createNewTicket",(function(){return Se})),n.d(t,"updateTicket",(function(){return Ee})),n.d(t,"deleteTicket",(function(){return ge})),n.d(t,"setTicketInitialState",(function(){return ke}));var r=n(4),a=function(e){return{type:r.g.SET_TICKETS_INITIAL_STATE,payload:e}},i=function(){return{type:r.g.RESET_TICKETS_BLOCK}},o=function(e){return{type:r.g.SET_TICKETS_HEADER_IMAGE,payload:e}},s=function(e){return{type:r.g.SET_TICKETS_IS_SELECTED,payload:{isSelected:e}}},c=function(e){return{type:r.g.SET_TICKETS_IS_SETTINGS_OPEN,payload:{isSettingsOpen:e}}},u=function(e){return{type:r.g.SET_TICKETS_IS_SETTINGS_LOADING,payload:{isSettingsLoading:e}}},d=function(){return c(!0)},l=function(){return c(!1)},_=function(e){return{type:r.g.SET_TICKETS_PROVIDER,payload:{provider:e}}},m=function(e){return{type:r.g.SET_TICKETS_SHARED_CAPACITY,payload:{sharedCapacity:e}}},p=function(e){return{type:r.g.SET_TICKETS_TEMP_SHARED_CAPACITY,payload:{tempSharedCapacity:e}}},f=function(e){return{type:r.g.FETCH_TICKETS_HEADER_IMAGE,payload:{id:e}}},T=function(e){return{type:r.g.UPDATE_TICKETS_HEADER_IMAGE,payload:{image:e}}},h=function(){return{type:r.g.DELETE_TICKETS_HEADER_IMAGE}},y=function(e,t){return{type:r.g.SET_TICKET_TITLE,payload:{clientId:e,title:t}}},b=function(e,t){return{type:r.g.SET_TICKET_DESCRIPTION,payload:{clientId:e,description:t}}},M=function(e,t){return{type:r.g.SET_TICKET_PRICE,payload:{clientId:e,price:t}}},S=function(e,t){return{type:r.g.SET_TICKET_SKU,payload:{clientId:e,sku:t}}},E=function(e,t){return{type:r.g.SET_TICKET_IAC_SETTING,payload:{clientId:e,iac:t}}},g=function(e,t){return{type:r.g.SET_TICKET_START_DATE,payload:{clientId:e,startDate:t}}},k=function(e,t){return{type:r.g.SET_TICKET_START_DATE_INPUT,payload:{clientId:e,startDateInput:t}}},v=function(e,t){return{type:r.g.SET_TICKET_START_DATE_MOMENT,payload:{clientId:e,startDateMoment:t}}},D=function(e,t){return{type:r.g.SET_TICKET_END_DATE,payload:{clientId:e,endDate:t}}},L=function(e,t){return{type:r.g.SET_TICKET_END_DATE_INPUT,payload:{clientId:e,endDateInput:t}}},O=function(e,t){return{type:r.g.SET_TICKET_END_DATE_MOMENT,payload:{clientId:e,endDateMoment:t}}},Y=function(e,t){return{type:r.g.SET_TICKET_START_TIME,payload:{clientId:e,startTime:t}}},w=function(e,t){return{type:r.g.SET_TICKET_END_TIME,payload:{clientId:e,endTime:t}}},j=function(e,t){return{type:r.g.SET_TICKET_START_TIME_INPUT,payload:{clientId:e,startTimeInput:t}}},I=function(e,t){return{type:r.g.SET_TICKET_END_TIME_INPUT,payload:{clientId:e,endTimeInput:t}}},P=function(e,t){return{type:r.g.SET_TICKET_CAPACITY_TYPE,payload:{clientId:e,capacityType:t}}},C=function(e,t){return{type:r.g.SET_TICKET_CAPACITY,payload:{clientId:e,capacity:t}}},x=function(e,t){return{type:r.g.SET_TICKET_TEMP_TITLE,payload:{clientId:e,title:t}}},R=function(e,t){return{type:r.g.SET_TICKET_TEMP_DESCRIPTION,payload:{clientId:e,description:t}}},A=function(e,t){return{type:r.g.SET_TICKET_TEMP_PRICE,payload:{clientId:e,price:t}}},H=function(e,t){return{type:r.g.SET_TICKET_TEMP_SKU,payload:{clientId:e,sku:t}}},N=function(e,t){return{type:r.g.SET_TICKET_TEMP_IAC_SETTING,payload:{clientId:e,iac:t}}},V=function(e,t){return{type:r.g.SET_TICKET_TEMP_START_DATE,payload:{clientId:e,startDate:t}}},F=function(e,t){return{type:r.g.SET_TICKET_TEMP_START_DATE_INPUT,payload:{clientId:e,startDateInput:t}}},K=function(e,t){return{type:r.g.SET_TICKET_TEMP_START_DATE_MOMENT,payload:{clientId:e,startDateMoment:t}}},W=function(e,t){return{type:r.g.SET_TICKET_TEMP_END_DATE,payload:{clientId:e,endDate:t}}},U=function(e,t){return{type:r.g.SET_TICKET_TEMP_END_DATE_INPUT,payload:{clientId:e,endDateInput:t}}},z=function(e,t){return{type:r.g.SET_TICKET_TEMP_END_DATE_MOMENT,payload:{clientId:e,endDateMoment:t}}},G=function(e,t){return{type:r.g.SET_TICKET_TEMP_START_TIME,payload:{clientId:e,startTime:t}}},B=function(e,t){return{type:r.g.SET_TICKET_TEMP_END_TIME,payload:{clientId:e,endTime:t}}},q=function(e,t){return{type:r.g.SET_TICKET_TEMP_START_TIME_INPUT,payload:{clientId:e,startTimeInput:t}}},J=function(e,t){return{type:r.g.SET_TICKET_TEMP_END_TIME_INPUT,payload:{clientId:e,endTimeInput:t}}},$=function(e,t){return{type:r.g.SET_TICKET_TEMP_CAPACITY_TYPE,payload:{clientId:e,capacityType:t}}},Z=function(e,t){return{type:r.g.SET_TICKET_TEMP_CAPACITY,payload:{clientId:e,capacity:t}}},Q=function(e){return{type:r.g.REGISTER_TICKET_BLOCK,payload:{clientId:e}}},X=function(e){return{type:r.g.REMOVE_TICKET_BLOCK,payload:{clientId:e}}},ee=function(){return{type:r.g.REMOVE_TICKET_BLOCKS}},te=function(e,t){return{type:r.g.SET_TICKET_SOLD,payload:{clientId:e,sold:t}}},ne=function(e,t){return{type:r.g.SET_TICKET_AVAILABLE,payload:{clientId:e,available:t}}},re=function(e,t){return{type:r.g.SET_TICKET_ID,payload:{clientId:e,ticketId:t}}},ae=function(e,t){return{type:r.g.SET_TICKET_CURRENCY_SYMBOL,payload:{clientId:e,currencySymbol:t}}},ie=function(e,t){return{type:r.g.SET_TICKET_CURRENCY_POSITION,payload:{clientId:e,currencyPosition:t}}},oe=function(e,t){return{type:r.g.SET_TICKET_PROVIDER,payload:{clientId:e,provider:t}}},se=function(e,t){return{type:r.g.SET_TICKET_HAS_ATTENDEE_INFO_FIELDS,payload:{clientId:e,hasAttendeeInfoFields:t}}},ce=function(e,t){return{type:r.g.SET_TICKET_IS_LOADING,payload:{clientId:e,isLoading:t}}},ue=function(e,t){return{type:r.g.SET_TICKET_IS_MODAL_OPEN,payload:{clientId:e,isModalOpen:t}}},de=function(e,t){return{type:r.g.SET_TICKET_HAS_BEEN_CREATED,payload:{clientId:e,hasBeenCreated:t}}},le=function(e,t){return{type:r.g.SET_TICKET_HAS_CHANGES,payload:{clientId:e,hasChanges:t}}},_e=function(e,t){return{type:r.g.SET_TICKET_HAS_DURATION_ERROR,payload:{clientId:e,hasDurationError:t}}},me=function(e,t){return{type:r.g.SET_TICKET_IS_SELECTED,payload:{clientId:e,isSelected:t}}},pe=function(e,t){return{type:r.g.SET_TICKET_DETAILS,payload:{clientId:e,details:t}}},fe=function(e,t){return{type:r.g.SET_TICKET_TEMP_DETAILS,payload:{clientId:e,tempDetails:t}}},Te=function(e,t,n){return{type:r.g.HANDLE_TICKET_START_DATE,payload:{clientId:e,date:t,dayPickerInput:n}}},he=function(e,t,n){return{type:r.g.HANDLE_TICKET_END_DATE,payload:{clientId:e,date:t,dayPickerInput:n}}},ye=function(e,t){return{type:r.g.HANDLE_TICKET_START_TIME,payload:{clientId:e,seconds:t}}},be=function(e,t){return{type:r.g.HANDLE_TICKET_END_TIME,payload:{clientId:e,seconds:t}}},Me=function(e,t){return{type:r.g.FETCH_TICKET,payload:{clientId:e,ticketId:t}}},Se=function(e){return{type:r.g.CREATE_NEW_TICKET,payload:{clientId:e}}},Ee=function(e){return{type:r.g.UPDATE_TICKET,payload:{clientId:e}}},ge=function(e){return{type:r.g.DELETE_TICKET,payload:{clientId:e}}},ke=function(e){return{type:r.g.SET_TICKET_INITIAL_STATE,payload:e}}},function(e,t){e.exports=React},function(e,t,n){e.exports=n(327)},function(e,t,n){"use strict";n.d(t,"f",(function(){return r})),n.d(t,"a",(function(){return ae})),n.d(t,"c",(function(){return On})),n.d(t,"d",(function(){return a})),n.d(t,"e",(function(){return i}));var r={};n.r(r),n.d(r,"SET_RSVP_ID",(function(){return s})),n.d(r,"SET_RSVP_SETTINGS_OPEN",(function(){return c})),n.d(r,"SET_RSVP_HAS_CHANGES",(function(){return u})),n.d(r,"SET_RSVP_IS_LOADING",(function(){return d})),n.d(r,"SET_RSVP_IS_SETTINGS_LOADING",(function(){return l})),n.d(r,"SET_RSVP_IS_MODAL_OPEN",(function(){return _})),n.d(r,"SET_RSVP_GOING_COUNT",(function(){return m})),n.d(r,"SET_RSVP_NOT_GOING_COUNT",(function(){return p})),n.d(r,"SET_RSVP_HAS_ATTENDEE_INFO_FIELDS",(function(){return f})),n.d(r,"SET_RSVP_HAS_DURATION_ERROR",(function(){return T})),n.d(r,"SET_RSVP_DETAILS",(function(){return h})),n.d(r,"SET_RSVP_TEMP_DETAILS",(function(){return y})),n.d(r,"SET_RSVP_HEADER_IMAGE",(function(){return b})),n.d(r,"SET_RSVP_TITLE",(function(){return M})),n.d(r,"SET_RSVP_DESCRIPTION",(function(){return S})),n.d(r,"SET_RSVP_CAPACITY",(function(){return E})),n.d(r,"SET_RSVP_NOT_GOING_RESPONSES",(function(){return g})),n.d(r,"SET_RSVP_START_DATE",(function(){return k})),n.d(r,"SET_RSVP_START_DATE_INPUT",(function(){return v})),n.d(r,"SET_RSVP_START_DATE_MOMENT",(function(){return D})),n.d(r,"SET_RSVP_END_DATE",(function(){return L})),n.d(r,"SET_RSVP_END_DATE_INPUT",(function(){return O})),n.d(r,"SET_RSVP_END_DATE_MOMENT",(function(){return Y})),n.d(r,"SET_RSVP_START_TIME",(function(){return w})),n.d(r,"SET_RSVP_END_TIME",(function(){return j})),n.d(r,"SET_RSVP_START_TIME_INPUT",(function(){return I})),n.d(r,"SET_RSVP_END_TIME_INPUT",(function(){return P})),n.d(r,"SET_RSVP_TEMP_TITLE",(function(){return C})),n.d(r,"SET_RSVP_TEMP_DESCRIPTION",(function(){return x})),n.d(r,"SET_RSVP_TEMP_CAPACITY",(function(){return R})),n.d(r,"SET_RSVP_TEMP_NOT_GOING_RESPONSES",(function(){return A})),n.d(r,"SET_RSVP_TEMP_START_DATE",(function(){return H})),n.d(r,"SET_RSVP_TEMP_START_DATE_INPUT",(function(){return N})),n.d(r,"SET_RSVP_TEMP_START_DATE_MOMENT",(function(){return V})),n.d(r,"SET_RSVP_TEMP_END_DATE",(function(){return F})),n.d(r,"SET_RSVP_TEMP_END_DATE_INPUT",(function(){return K})),n.d(r,"SET_RSVP_TEMP_END_DATE_MOMENT",(function(){return W})),n.d(r,"SET_RSVP_TEMP_START_TIME",(function(){return U})),n.d(r,"SET_RSVP_TEMP_END_TIME",(function(){return z})),n.d(r,"SET_RSVP_TEMP_START_TIME_INPUT",(function(){return G})),n.d(r,"SET_RSVP_TEMP_END_TIME_INPUT",(function(){return B})),n.d(r,"CREATE_RSVP",(function(){return q})),n.d(r,"INITIALIZE_RSVP",(function(){return J})),n.d(r,"DELETE_RSVP",(function(){return $})),n.d(r,"HANDLE_RSVP_START_DATE",(function(){return Z})),n.d(r,"HANDLE_RSVP_END_DATE",(function(){return Q})),n.d(r,"HANDLE_RSVP_START_TIME",(function(){return X})),n.d(r,"HANDLE_RSVP_END_TIME",(function(){return ee})),n.d(r,"FETCH_RSVP_HEADER_IMAGE",(function(){return te})),n.d(r,"UPDATE_RSVP_HEADER_IMAGE",(function(){return ne})),n.d(r,"DELETE_RSVP_HEADER_IMAGE",(function(){return re}));var a={};n.r(a),n.d(a,"getRSVPBlock",(function(){return oe})),n.d(a,"getRSVPId",(function(){return se})),n.d(a,"getRSVPCreated",(function(){return ce})),n.d(a,"getRSVPSettingsOpen",(function(){return ue})),n.d(a,"getRSVPHasChanges",(function(){return de})),n.d(a,"getRSVPIsLoading",(function(){return le})),n.d(a,"getRSVPIsSettingsLoading",(function(){return _e})),n.d(a,"getRSVPIsModalOpen",(function(){return me})),n.d(a,"getRSVPGoingCount",(function(){return pe})),n.d(a,"getRSVPNotGoingCount",(function(){return fe})),n.d(a,"getRSVPHasAttendeeInfoFields",(function(){return Te})),n.d(a,"getRSVPHasDurationError",(function(){return he})),n.d(a,"getRSVPDetails",(function(){return ye})),n.d(a,"getRSVPTitle",(function(){return be})),n.d(a,"getRSVPDescription",(function(){return Me})),n.d(a,"getRSVPCapacity",(function(){return Se})),n.d(a,"getRSVPAvailable",(function(){return Ee})),n.d(a,"getRSVPNotGoingResponses",(function(){return ge})),n.d(a,"getRSVPStartDate",(function(){return ke})),n.d(a,"getRSVPStartDateInput",(function(){return ve})),n.d(a,"getRSVPStartDateMoment",(function(){return De})),n.d(a,"getRSVPStartTime",(function(){return Le})),n.d(a,"getRSVPStartTimeNoSeconds",(function(){return Oe})),n.d(a,"getRSVPEndDate",(function(){return Ye})),n.d(a,"getRSVPEndDateInput",(function(){return we})),n.d(a,"getRSVPEndDateMoment",(function(){return je})),n.d(a,"getRSVPEndTime",(function(){return Ie})),n.d(a,"getRSVPEndTimeNoSeconds",(function(){return Pe})),n.d(a,"getRSVPStartTimeInput",(function(){return Ce})),n.d(a,"getRSVPEndTimeInput",(function(){return xe})),n.d(a,"getRSVPTempDetails",(function(){return Re})),n.d(a,"getRSVPTempTitle",(function(){return Ae})),n.d(a,"getRSVPTempDescription",(function(){return He})),n.d(a,"getRSVPTempCapacity",(function(){return Ne})),n.d(a,"getRSVPTempNotGoingResponses",(function(){return Ve})),n.d(a,"getRSVPTempStartDate",(function(){return Fe})),n.d(a,"getRSVPTempStartDateInput",(function(){return Ke})),n.d(a,"getRSVPTempStartDateMoment",(function(){return We})),n.d(a,"getRSVPTempStartTime",(function(){return Ue})),n.d(a,"getRSVPTempStartTimeNoSeconds",(function(){return ze})),n.d(a,"getRSVPTempEndDate",(function(){return Ge})),n.d(a,"getRSVPTempEndDateInput",(function(){return Be})),n.d(a,"getRSVPTempEndDateMoment",(function(){return qe})),n.d(a,"getRSVPTempEndTime",(function(){return Je})),n.d(a,"getRSVPTempEndTimeNoSeconds",(function(){return $e})),n.d(a,"getRSVPTempStartTimeInput",(function(){return Ze})),n.d(a,"getRSVPTempEndTimeInput",(function(){return Qe})),n.d(a,"getRSVPHeaderImage",(function(){return Xe})),n.d(a,"getRSVPHeaderImageId",(function(){return et})),n.d(a,"getRSVPHeaderImageSrc",(function(){return tt})),n.d(a,"getRSVPHeaderImageAlt",(function(){return nt}));var i={};n.r(i),n.d(i,"createRSVP",(function(){return pt})),n.d(i,"updateRSVP",(function(){return ft})),n.d(i,"deleteRSVP",(function(){return Tt})),n.d(i,"getRSVP",(function(){return ht}));var o=n(8),s=o.n+"/SET_RSVP_ID",c=o.n+"/SET_RSVP_SETTINGS_OPEN",u=o.n+"/SET_RSVP_HAS_CHANGES",d=o.n+"/SET_RSVP_IS_LOADING",l=o.n+"/SET_RSVP_IS_SETTINGS_LOADING",_=o.n+"/SET_RSVP_IS_MODAL_OPEN",m=o.n+"/SET_RSVP_GOING_COUNT",p=o.n+"/SET_RSVP_NOT_GOING_COUNT",f=o.n+"/SET_RSVP_HAS_ATTENDEE_INFO_FIELDS",T=o.n+"/SET_RSVP_HAS_DURATION_ERROR",h=o.n+"/SET_RSVP_DETAILS",y=o.n+"/SET_RSVP_TEMP_DETAILS",b=o.n+"/SET_RSVP_HEADER_IMAGE",M=o.n+"/SET_RSVP_TITLE",S=o.n+"/SET_RSVP_DESCRIPTION",E=o.n+"/SET_RSVP_CAPACITY",g=o.n+"/SET_RSVP_NOT_GOING_RESPONSES",k=o.n+"/SET_RSVP_START_DATE",v=o.n+"/SET_RSVP_START_DATE_INPUT",D=o.n+"/SET_RSVP_START_DATE_MOMENT",L=o.n+"/SET_RSVP_END_DATE",O=o.n+"/SET_RSVP_END_DATE_INPUT",Y=o.n+"/SET_RSVP_END_DATE_MOMENT",w=o.n+"/SET_RSVP_START_TIME",j=o.n+"/SET_RSVP_END_TIME",I=o.n+"/SET_RSVP_START_TIME_INPUT",P=o.n+"/SET_RSVP_END_TIME_INPUT",C=o.n+"/SET_RSVP_TEMP_TITLE",x=o.n+"/SET_RSVP_TEMP_DESCRIPTION",R=o.n+"/SET_RSVP_TEMP_CAPACITY",A=o.n+"/SET_RSVP_TEMP_NOT_GOING_RESPONSES",H=o.n+"/SET_RSVP_TEMP_START_DATE",N=o.n+"/SET_RSVP_TEMP_START_DATE_INPUT",V=o.n+"/SET_RSVP_TEMP_START_DATE_MOMENT",F=o.n+"/SET_RSVP_TEMP_END_DATE",K=o.n+"/SET_RSVP_TEMP_END_DATE_INPUT",W=o.n+"/SET_RSVP_TEMP_END_DATE_MOMENT",U=o.n+"/SET_RSVP_TEMP_START_TIME",z=o.n+"/SET_RSVP_TEMP_END_TIME",G=o.n+"/SET_RSVP_TEMP_START_TIME_INPUT",B=o.n+"/SET_RSVP_TEMP_END_TIME_INPUT",q=o.n+"/CREATE_RSVP",J=o.n+"/INITIALIZE_RSVP",$=o.n+"/DELETE_RSVP",Z=o.n+"/HANDLE_RSVP_START_DATE",Q=o.n+"/HANDLE_RSVP_END_DATE",X=o.n+"/HANDLE_RSVP_START_TIME",ee=o.n+"/HANDLE_RSVP_END_TIME",te=o.n+"/FETCH_RSVP_HEADER_IMAGE",ne=o.n+"/UPDATE_RSVP_HEADER_IMAGE",re=o.n+"/DELETE_RSVP_HEADER_IMAGE",ae=n(14),ie=n(6),oe=function(e){return e.tickets.blocks.rsvp},se=Object(ie.createSelector)([oe],(function(e){return e.id})),ce=Object(ie.createSelector)([oe],(function(e){return e.created})),ue=Object(ie.createSelector)([oe],(function(e){return e.settingsOpen})),de=Object(ie.createSelector)([oe],(function(e){return e.hasChanges})),le=Object(ie.createSelector)([oe],(function(e){return e.isLoading})),_e=Object(ie.createSelector)([oe],(function(e){return e.isSettingsLoading})),me=Object(ie.createSelector)([oe],(function(e){return e.isModalOpen})),pe=Object(ie.createSelector)([oe],(function(e){return e.goingCount})),fe=Object(ie.createSelector)([oe],(function(e){return e.notGoingCount})),Te=Object(ie.createSelector)([oe],(function(e){return e.hasAttendeeInfoFields})),he=Object(ie.createSelector)([oe],(function(e){return e.hasDurationError})),ye=Object(ie.createSelector)([oe],(function(e){return e.details})),be=Object(ie.createSelector)([ye],(function(e){return e.title})),Me=Object(ie.createSelector)([ye],(function(e){return e.description})),Se=Object(ie.createSelector)([ye],(function(e){return e.capacity})),Ee=Object(ie.createSelector)([Se,pe],(function(e,t){if(""===e)return-1;var n=parseInt(e,10)||0,r=parseInt(t,10)||0;return Math.max(n-r,0)})),ge=Object(ie.createSelector)([ye],(function(e){return e.notGoingResponses})),ke=Object(ie.createSelector)([ye],(function(e){return e.startDate})),ve=Object(ie.createSelector)([ye],(function(e){return e.startDateInput})),De=Object(ie.createSelector)([ye],(function(e){return e.startDateMoment})),Le=Object(ie.createSelector)([ye],(function(e){return e.startTime})),Oe=Object(ie.createSelector)([Le],(function(e){return e.slice(0,-3)})),Ye=Object(ie.createSelector)([ye],(function(e){return e.endDate})),we=Object(ie.createSelector)([ye],(function(e){return e.endDateInput})),je=Object(ie.createSelector)([ye],(function(e){return e.endDateMoment})),Ie=Object(ie.createSelector)([ye],(function(e){return e.endTime})),Pe=Object(ie.createSelector)([Ie],(function(e){return e.slice(0,-3)})),Ce=Object(ie.createSelector)([ye],(function(e){return e.startTimeInput})),xe=Object(ie.createSelector)([ye],(function(e){return e.endTimeInput})),Re=Object(ie.createSelector)([oe],(function(e){return e.tempDetails})),Ae=Object(ie.createSelector)([Re],(function(e){return e.title})),He=Object(ie.createSelector)([Re],(function(e){return e.description})),Ne=Object(ie.createSelector)([Re],(function(e){return e.capacity})),Ve=Object(ie.createSelector)([Re],(function(e){return e.notGoingResponses})),Fe=Object(ie.createSelector)([Re],(function(e){return e.startDate})),Ke=Object(ie.createSelector)([Re],(function(e){return e.startDateInput})),We=Object(ie.createSelector)([Re],(function(e){return e.startDateMoment})),Ue=Object(ie.createSelector)([Re],(function(e){return e.startTime})),ze=Object(ie.createSelector)([Ue],(function(e){return e.slice(0,-3)})),Ge=Object(ie.createSelector)([Re],(function(e){return e.endDate})),Be=Object(ie.createSelector)([Re],(function(e){return e.endDateInput})),qe=Object(ie.createSelector)([Re],(function(e){return e.endDateMoment})),Je=Object(ie.createSelector)([Re],(function(e){return e.endTime})),$e=Object(ie.createSelector)([Je],(function(e){return e.slice(0,-3)})),Ze=Object(ie.createSelector)([Re],(function(e){return e.startTimeInput})),Qe=Object(ie.createSelector)([Re],(function(e){return e.endTimeInput})),Xe=Object(ie.createSelector)([oe],(function(e){return e.headerImage})),et=Object(ie.createSelector)([Xe],(function(e){return e.id})),tt=Object(ie.createSelector)([Xe],(function(e){return e.src})),nt=Object(ie.createSelecto
|