Version Description
15 March 2022 = - Added: Dynamic content shortcode - Added: View bookings link to the classic event list in WordPress backend (pro) - Updated: Some language files - Updated: Charts library - Improved: The Frontend Submission form - Improved: The code security - Removed: An encrypted code - Fixed: An issue in booking form (pro) - Fixed: An issue in full calendar when loaded as category archive - Fixed: Some issues regarding search module
Download this release
Release Info
Developer | webnus |
Plugin | Modern Events Calendar Lite |
Version | 6.4.5 |
Comparing to | |
See all releases |
Code changes from version 6.4.2 to 6.4.5
- app/addons/divi/includes/MECShortcodesForDivi.php +1 -1
- app/addons/learndash.php +2 -2
- app/api/TFPDF/tfpdf.php +2373 -2294
- app/core/src/Books/BookingForm.php +5 -2
- app/core/src/Events/Event.php +6 -2
- app/core/src/Forms/DisplayFields.php +7 -7
- app/core/src/Forms/FormFields.php +160 -160
- app/core/src/Forms/SettingsForm.php +8 -8
- app/core/src/Notifications/SendEmail.php +1 -1
- app/core/src/Notifications/template-notification-settings.php +13 -13
- app/core/src/SingleBuilder/SingleBuilder.php +5 -0
- app/core/src/SingleBuilder/Widgets/Content/Content.php +15 -1
- app/core/src/SingleBuilder/Widgets/EventCategories/EventCategories.php +2 -2
- app/core/src/SingleBuilder/Widgets/EventCountdown/EventCountdown.php +1 -1
- app/core/src/SingleBuilder/Widgets/EventLabels/EventLabels.php +1 -1
- app/core/src/SingleBuilder/Widgets/EventLocations/EventLocations.php +2 -2
- app/core/src/SingleBuilder/Widgets/EventMoreInfo/EventMoreInfo.php +1 -1
- app/core/src/SingleBuilder/Widgets/EventOrganizers/EventOrganizers.php +3 -3
- app/core/src/SingleBuilder/Widgets/EventPublicDownload/EventPublicDownload.php +37 -0
- app/core/src/SingleBuilder/Widgets/EventRegisterButton/EventRegisterButton.php +2 -2
- app/core/src/SingleBuilder/Widgets/EventTags/EventTags.php +1 -1
- app/core/src/SingleBuilder/Widgets/FeaturedImage/FeaturedImage.php +1 -1
- app/features/admincalendar.php +87 -0
- app/features/booking/calendar_novel.php +2 -2
- app/features/cart/cart.php +2 -2
- app/features/cart/checkout.php +2 -2
- app/features/dc.php +221 -0
- app/features/emails/details.php +1 -1
- app/features/events.php +20 -16
- app/features/feed.php +1 -1
- app/features/fes.php +1 -1
- app/features/fes/form.php +22 -23
- app/features/fes/list.php +3 -3
- app/features/ix.php +8 -8
- app/features/ix/export.php +15 -15
- app/features/ix/export_g_calendar.php +10 -10
- app/features/ix/import.php +11 -11
- app/features/ix/import_f_calendar.php +11 -11
- app/features/ix/import_g_calendar.php +11 -11
- app/features/ix/import_meetup.php +11 -11
- app/features/ix/sync.php +9 -9
- app/features/ix/thirdparty.php +12 -12
- app/features/login.php +2 -2
- app/features/mec.php +9 -9
- app/features/mec/addons.php +11 -23
- app/features/mec/booking.php +3 -3
- app/features/mec/dashboard.php +40 -1
- app/features/mec/meta_boxes/display_options.php +3 -3
- app/features/mec/settings.php +15 -0
- app/features/mec/support-page.php +40 -1
- app/features/popup/event.php +3 -2
- app/features/popup/shortcode.php +3 -3
- app/features/search.php +11 -11
- app/libraries/base.php +1 -1
- app/libraries/book.php +3 -3
- app/libraries/cart.php +1 -1
- app/libraries/factory.php +3 -2
- app/libraries/hourlyschedule.php +1 -1
- app/libraries/main.php +35 -108
- app/modules/booking/steps/checkout.php +5 -5
- app/modules/booking/steps/form.php +18 -15
- app/modules/booking/steps/tickets.php +12 -8
- app/modules/qrcode/details.php +1 -1
- app/modules/speakers/details.php +2 -2
- app/skins/agenda/render.php +1 -1
- app/skins/agenda/tpl.php +4 -4
- app/skins/available_spot/tpl.php +2 -2
- app/skins/carousel/render.php +1 -2
- app/skins/carousel/tpl.php +3 -3
- app/skins/countdown/tpl.php +4 -4
- app/skins/custom/render.php +1 -1
- app/skins/custom/tpl.php +6 -6
- app/skins/daily_view/render.php +1 -1
- app/skins/daily_view/tpl.php +4 -4
- app/skins/default_full_calendar/tpl.php +4 -4
- app/skins/full_calendar/tpl.php +6 -6
- app/skins/general_calendar/tpl.php +2 -2
- app/skins/grid/render.php +1 -1
- app/skins/grid/tpl.php +6 -6
- app/skins/list/render.php +3 -3
- app/skins/list/tpl.php +6 -6
- app/skins/map/tpl.php +5 -5
- app/skins/masonry/tpl.php +4 -4
- app/skins/monthly_view/calendar_admin.php +120 -0
- app/skins/monthly_view/render.php +1 -0
- app/skins/monthly_view/tpl.php +4 -4
- app/skins/single.php +8 -8
- app/skins/single/default.php +4 -4
- app/skins/single/m1.php +4 -4
- app/skins/single/m2.php +4 -4
- app/skins/single/tpl.php +3 -0
- app/skins/slider/tpl.php +3 -3
- app/skins/tile/render.php +1 -1
- app/skins/tile/tpl.php +4 -4
- app/skins/timeline/tpl.php +4 -4
- app/skins/timetable/classic.php +2 -2
- app/skins/timetable/clean.php +2 -2
- app/skins/timetable/modern.php +4 -4
- app/skins/timetable/render.php +3 -3
- app/skins/weekly_view/render.php +2 -2
- app/skins/weekly_view/tpl.php +4 -4
- app/skins/yearly_view/render.php +1 -1
- app/skins/yearly_view/tpl.php +4 -4
- app/widgets/single.php +38 -38
- app/widgets/single/default.php +4 -4
- app/widgets/single/modern.php +4 -4
- assets/css/admin-calendar.min.css +0 -0
- assets/js/admin-calendar.js +123 -0
- assets/js/chartjs.min.js +11 -8
- assets/js/frontend.js +6 -3
- changelog.txt +13 -1
- languages/modern-events-calendar-lite-cs_CZ.mo +0 -0
- languages/modern-events-calendar-lite-cs_CZ.po +792 -780
- languages/modern-events-calendar-lite-de_DE.mo +0 -0
- languages/modern-events-calendar-lite-de_DE.po +43 -48
app/addons/divi/includes/MECShortcodesForDivi.php
CHANGED
@@ -12,7 +12,7 @@ add_filter( 'et_builder_load_actions', 'MECDIVI_et_builder_load_actions' );
|
|
12 |
if(! function_exists( 'MECDIVI_load_mec_shortcode' )) {
|
13 |
function MECDIVI_load_mec_shortcode() {
|
14 |
if(!current_user_can('manage_options')) return;
|
15 |
-
$post_id = $_POST['shortcode_id'];
|
16 |
echo do_shortcode( '[MEC id="'.$post_id.'"]' );
|
17 |
wp_die();
|
18 |
}
|
12 |
if(! function_exists( 'MECDIVI_load_mec_shortcode' )) {
|
13 |
function MECDIVI_load_mec_shortcode() {
|
14 |
if(!current_user_can('manage_options')) return;
|
15 |
+
$post_id = sanitize_text_field($_POST['shortcode_id']);
|
16 |
echo do_shortcode( '[MEC id="'.$post_id.'"]' );
|
17 |
wp_die();
|
18 |
}
|
app/addons/learndash.php
CHANGED
@@ -64,8 +64,8 @@ class MEC_addon_learndash extends MEC_base
|
|
64 |
if(!count($courses)) return;
|
65 |
?>
|
66 |
<div class="mec-form-row">
|
67 |
-
<label for="mec_tickets_<?php echo $key; ?>_ld_course"><?php _e('LearnDash Course', 'modern-events-calendar-lite'); ?></label>
|
68 |
-
<select name="mec[tickets][<?php echo $key; ?>][ld_course]" id="mec_tickets_<?php echo $key; ?>_ld_course">
|
69 |
<option>-----</option>
|
70 |
<?php foreach($courses as $course_id => $course_name): ?>
|
71 |
<option value="<?php echo esc_attr($course_id); ?>"<?php echo ((isset($ticket['ld_course']) and $course_id == $ticket['ld_course']) ? 'selected="selected"' : ''); ?>><?php echo esc_html($course_name); ?></option>
|
64 |
if(!count($courses)) return;
|
65 |
?>
|
66 |
<div class="mec-form-row">
|
67 |
+
<label for="mec_tickets_<?php echo esc_attr($key); ?>_ld_course"><?php _e('LearnDash Course', 'modern-events-calendar-lite'); ?></label>
|
68 |
+
<select name="mec[tickets][<?php echo esc_attr($key); ?>][ld_course]" id="mec_tickets_<?php echo esc_attr($key); ?>_ld_course">
|
69 |
<option>-----</option>
|
70 |
<?php foreach($courses as $course_id => $course_name): ?>
|
71 |
<option value="<?php echo esc_attr($course_id); ?>"<?php echo ((isset($ticket['ld_course']) and $course_id == $ticket['ld_course']) ? 'selected="selected"' : ''); ?>><?php echo esc_html($course_name); ?></option>
|
app/api/TFPDF/tfpdf.php
CHANGED
@@ -1,2299 +1,2378 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
|
14 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
$this->bMargin = $margin;
|
210 |
-
$this->PageBreakTrigger = $this->h-$margin;
|
211 |
-
}
|
212 |
-
|
213 |
-
function SetDisplayMode($zoom, $layout='default')
|
214 |
-
{
|
215 |
-
// Set display mode in viewer
|
216 |
-
if($zoom=='fullpage' || $zoom=='fullwidth' || $zoom=='real' || $zoom=='default' || !is_string($zoom))
|
217 |
-
$this->ZoomMode = $zoom;
|
218 |
-
else
|
219 |
-
$this->Error('Incorrect zoom display mode: '.$zoom);
|
220 |
-
if($layout=='single' || $layout=='continuous' || $layout=='two' || $layout=='default')
|
221 |
-
$this->LayoutMode = $layout;
|
222 |
-
else
|
223 |
-
$this->Error('Incorrect layout display mode: '.$layout);
|
224 |
-
}
|
225 |
-
|
226 |
-
function SetCompression($compress)
|
227 |
-
{
|
228 |
-
// Set page compression
|
229 |
-
if(function_exists('gzcompress'))
|
230 |
-
$this->compress = $compress;
|
231 |
-
else
|
232 |
-
$this->compress = false;
|
233 |
-
}
|
234 |
-
|
235 |
-
function SetTitle($title, $isUTF8=false)
|
236 |
-
{
|
237 |
-
// Title of document
|
238 |
-
if($isUTF8)
|
239 |
-
$title = $this->_UTF8toUTF16($title);
|
240 |
-
$this->title = $title;
|
241 |
-
}
|
242 |
-
|
243 |
-
function SetSubject($subject, $isUTF8=false)
|
244 |
-
{
|
245 |
-
// Subject of document
|
246 |
-
if($isUTF8)
|
247 |
-
$subject = $this->_UTF8toUTF16($subject);
|
248 |
-
$this->subject = $subject;
|
249 |
-
}
|
250 |
-
|
251 |
-
function SetAuthor($author, $isUTF8=false)
|
252 |
-
{
|
253 |
-
// Author of document
|
254 |
-
if($isUTF8)
|
255 |
-
$author = $this->_UTF8toUTF16($author);
|
256 |
-
$this->author = $author;
|
257 |
-
}
|
258 |
-
|
259 |
-
function SetKeywords($keywords, $isUTF8=false)
|
260 |
-
{
|
261 |
-
// Keywords of document
|
262 |
-
if($isUTF8)
|
263 |
-
$keywords = $this->_UTF8toUTF16($keywords);
|
264 |
-
$this->keywords = $keywords;
|
265 |
-
}
|
266 |
-
|
267 |
-
function SetCreator($creator, $isUTF8=false)
|
268 |
-
{
|
269 |
-
// Creator of document
|
270 |
-
if($isUTF8)
|
271 |
-
$creator = $this->_UTF8toUTF16($creator);
|
272 |
-
$this->creator = $creator;
|
273 |
-
}
|
274 |
-
|
275 |
-
function AliasNbPages($alias='{nb}')
|
276 |
-
{
|
277 |
-
// Define an alias for total number of pages
|
278 |
-
$this->AliasNbPages = $alias;
|
279 |
-
}
|
280 |
-
|
281 |
-
function Error($msg)
|
282 |
-
{
|
283 |
-
// Fatal error
|
284 |
-
die('<b>FPDF error:</b> '.$msg);
|
285 |
-
}
|
286 |
-
|
287 |
-
function Open()
|
288 |
-
{
|
289 |
-
// Begin document
|
290 |
-
$this->state = 1;
|
291 |
-
}
|
292 |
-
|
293 |
-
function Close()
|
294 |
-
{
|
295 |
-
// Terminate document
|
296 |
-
if($this->state==3)
|
297 |
-
return;
|
298 |
-
if($this->page==0)
|
299 |
-
$this->AddPage();
|
300 |
-
// Page footer
|
301 |
-
$this->InFooter = true;
|
302 |
-
$this->Footer();
|
303 |
-
$this->InFooter = false;
|
304 |
-
// Close page
|
305 |
-
$this->_endpage();
|
306 |
-
// Close document
|
307 |
-
$this->_enddoc();
|
308 |
-
}
|
309 |
-
|
310 |
-
function AddPage($orientation='', $size='')
|
311 |
-
{
|
312 |
-
// Start a new page
|
313 |
-
if($this->state==0)
|
314 |
-
$this->Open();
|
315 |
-
$family = $this->FontFamily;
|
316 |
-
$style = $this->FontStyle.($this->underline ? 'U' : '');
|
317 |
-
$fontsize = $this->FontSizePt;
|
318 |
-
$lw = $this->LineWidth;
|
319 |
-
$dc = $this->DrawColor;
|
320 |
-
$fc = $this->FillColor;
|
321 |
-
$tc = $this->TextColor;
|
322 |
-
$cf = $this->ColorFlag;
|
323 |
-
if($this->page>0)
|
324 |
-
{
|
325 |
-
// Page footer
|
326 |
-
$this->InFooter = true;
|
327 |
-
$this->Footer();
|
328 |
-
$this->InFooter = false;
|
329 |
-
// Close page
|
330 |
-
$this->_endpage();
|
331 |
-
}
|
332 |
-
// Start new page
|
333 |
-
$this->_beginpage($orientation,$size);
|
334 |
-
// Set line cap style to square
|
335 |
-
$this->_out('2 J');
|
336 |
-
// Set line width
|
337 |
-
$this->LineWidth = $lw;
|
338 |
-
$this->_out(sprintf('%.2F w',$lw*$this->k));
|
339 |
-
// Set font
|
340 |
-
if($family)
|
341 |
-
$this->SetFont($family,$style,$fontsize);
|
342 |
-
// Set colors
|
343 |
-
$this->DrawColor = $dc;
|
344 |
-
if($dc!='0 G')
|
345 |
-
$this->_out($dc);
|
346 |
-
$this->FillColor = $fc;
|
347 |
-
if($fc!='0 g')
|
348 |
-
$this->_out($fc);
|
349 |
-
$this->TextColor = $tc;
|
350 |
-
$this->ColorFlag = $cf;
|
351 |
-
// Page header
|
352 |
-
$this->InHeader = true;
|
353 |
-
$this->Header();
|
354 |
-
$this->InHeader = false;
|
355 |
-
// Restore line width
|
356 |
-
if($this->LineWidth!=$lw)
|
357 |
-
{
|
358 |
-
$this->LineWidth = $lw;
|
359 |
-
$this->_out(sprintf('%.2F w',$lw*$this->k));
|
360 |
-
}
|
361 |
-
// Restore font
|
362 |
-
if($family)
|
363 |
-
$this->SetFont($family,$style,$fontsize);
|
364 |
-
// Restore colors
|
365 |
-
if($this->DrawColor!=$dc)
|
366 |
-
{
|
367 |
-
$this->DrawColor = $dc;
|
368 |
-
$this->_out($dc);
|
369 |
-
}
|
370 |
-
if($this->FillColor!=$fc)
|
371 |
-
{
|
372 |
-
$this->FillColor = $fc;
|
373 |
-
$this->_out($fc);
|
374 |
-
}
|
375 |
-
$this->TextColor = $tc;
|
376 |
-
$this->ColorFlag = $cf;
|
377 |
-
}
|
378 |
-
|
379 |
-
function Header()
|
380 |
-
{
|
381 |
-
// To be implemented in your own inherited class
|
382 |
-
}
|
383 |
-
|
384 |
-
function Footer()
|
385 |
-
{
|
386 |
-
// To be implemented in your own inherited class
|
387 |
-
}
|
388 |
-
|
389 |
-
function PageNo()
|
390 |
-
{
|
391 |
-
// Get current page number
|
392 |
-
return $this->page;
|
393 |
-
}
|
394 |
-
|
395 |
-
function SetDrawColor($r, $g=null, $b=null)
|
396 |
-
{
|
397 |
-
// Set color for all stroking operations
|
398 |
-
if(($r==0 && $g==0 && $b==0) || $g===null)
|
399 |
-
$this->DrawColor = sprintf('%.3F G',$r/255);
|
400 |
-
else
|
401 |
-
$this->DrawColor = sprintf('%.3F %.3F %.3F RG',$r/255,$g/255,$b/255);
|
402 |
-
if($this->page>0)
|
403 |
-
$this->_out($this->DrawColor);
|
404 |
-
}
|
405 |
-
|
406 |
-
function SetFillColor($r, $g=null, $b=null)
|
407 |
-
{
|
408 |
-
// Set color for all filling operations
|
409 |
-
if(($r==0 && $g==0 && $b==0) || $g===null)
|
410 |
-
$this->FillColor = sprintf('%.3F g',$r/255);
|
411 |
-
else
|
412 |
-
$this->FillColor = sprintf('%.3F %.3F %.3F rg',$r/255,$g/255,$b/255);
|
413 |
-
$this->ColorFlag = ($this->FillColor!=$this->TextColor);
|
414 |
-
if($this->page>0)
|
415 |
-
$this->_out($this->FillColor);
|
416 |
-
}
|
417 |
-
|
418 |
-
function SetTextColor($r, $g=null, $b=null)
|
419 |
-
{
|
420 |
-
// Set color for text
|
421 |
-
if(($r==0 && $g==0 && $b==0) || $g===null)
|
422 |
-
$this->TextColor = sprintf('%.3F g',$r/255);
|
423 |
-
else
|
424 |
-
$this->TextColor = sprintf('%.3F %.3F %.3F rg',$r/255,$g/255,$b/255);
|
425 |
-
$this->ColorFlag = ($this->FillColor!=$this->TextColor);
|
426 |
-
}
|
427 |
-
|
428 |
-
function GetStringWidth($s)
|
429 |
-
{
|
430 |
-
// Get width of a string in the current font
|
431 |
-
$s = (string)$s;
|
432 |
-
$cw = &$this->CurrentFont['cw'];
|
433 |
-
$w=0;
|
434 |
-
if ($this->unifontSubset) {
|
435 |
-
$unicode = $this->UTF8StringToArray($s);
|
436 |
-
foreach($unicode as $char) {
|
437 |
-
if (isset($cw[$char])) { $w += (ord($cw[2*$char])<<8) + ord($cw[2*$char+1]); }
|
438 |
-
else if($char>0 && $char<128 && isset($cw[chr($char)])) { $w += $cw[chr($char)]; }
|
439 |
-
else if(isset($this->CurrentFont['desc']['MissingWidth'])) { $w += $this->CurrentFont['desc']['MissingWidth']; }
|
440 |
-
else if(isset($this->CurrentFont['MissingWidth'])) { $w += $this->CurrentFont['MissingWidth']; }
|
441 |
-
else { $w += 500; }
|
442 |
-
}
|
443 |
-
}
|
444 |
-
else {
|
445 |
-
$l = strlen($s);
|
446 |
-
for($i=0;$i<$l;$i++)
|
447 |
-
$w += $cw[$s[$i]];
|
448 |
-
}
|
449 |
-
return $w*$this->FontSize/1000;
|
450 |
-
}
|
451 |
-
|
452 |
-
function SetLineWidth($width)
|
453 |
-
{
|
454 |
-
// Set line width
|
455 |
-
$this->LineWidth = $width;
|
456 |
-
if($this->page>0)
|
457 |
-
$this->_out(sprintf('%.2F w',$width*$this->k));
|
458 |
-
}
|
459 |
-
|
460 |
-
function Line($x1, $y1, $x2, $y2)
|
461 |
-
{
|
462 |
-
// Draw a line
|
463 |
-
$this->_out(sprintf('%.2F %.2F m %.2F %.2F l S',$x1*$this->k,($this->h-$y1)*$this->k,$x2*$this->k,($this->h-$y2)*$this->k));
|
464 |
-
}
|
465 |
-
|
466 |
-
function Rect($x, $y, $w, $h, $style='')
|
467 |
-
{
|
468 |
-
// Draw a rectangle
|
469 |
-
if($style=='F')
|
470 |
-
$op = 'f';
|
471 |
-
elseif($style=='FD' || $style=='DF')
|
472 |
-
$op = 'B';
|
473 |
-
else
|
474 |
-
$op = 'S';
|
475 |
-
$this->_out(sprintf('%.2F %.2F %.2F %.2F re %s',$x*$this->k,($this->h-$y)*$this->k,$w*$this->k,-$h*$this->k,$op));
|
476 |
-
}
|
477 |
-
|
478 |
-
function AddFont($family, $style='', $file='', $uni=false)
|
479 |
-
{
|
480 |
-
// Add a TrueType, OpenType or Type1 font
|
481 |
-
$family = strtolower($family);
|
482 |
-
$style = strtoupper($style);
|
483 |
-
if($style=='IB')
|
484 |
-
$style='BI';
|
485 |
-
if($file=='') {
|
486 |
-
if ($uni) {
|
487 |
-
$file = str_replace(' ','',$family).strtolower($style).'.ttf';
|
488 |
-
}
|
489 |
-
else {
|
490 |
-
$file = str_replace(' ','',$family).strtolower($style).'.php';
|
491 |
-
}
|
492 |
-
}
|
493 |
-
$fontkey = $family.$style;
|
494 |
-
if(isset($this->fonts[$fontkey]))
|
495 |
-
return;
|
496 |
-
|
497 |
-
if ($uni) {
|
498 |
-
if (defined("_SYSTEM_TTFONTS") && file_exists(_SYSTEM_TTFONTS.$file )) { $ttffilename = _SYSTEM_TTFONTS.$file ; }
|
499 |
-
else { $ttffilename = $this->_getfontpath().'unifont/'.$file ; }
|
500 |
-
$unifilename = $this->_getfontpath().'unifont/'.strtolower(substr($file ,0,(strpos($file ,'.'))));
|
501 |
-
$name = '';
|
502 |
-
$originalsize = 0;
|
503 |
-
$ttfstat = stat($ttffilename);
|
504 |
-
if (file_exists($unifilename.'.mtx.php')) {
|
505 |
-
include($unifilename.'.mtx.php');
|
506 |
-
}
|
507 |
-
if (!isset($type) || !isset($name) || $originalsize != $ttfstat['size']) {
|
508 |
-
$ttffile = $ttffilename;
|
509 |
-
require_once($this->_getfontpath().'unifont/ttfonts.php');
|
510 |
-
$ttf = new TTFontFile();
|
511 |
-
$ttf->getMetrics($ttffile);
|
512 |
-
$cw = $ttf->charWidths;
|
513 |
-
$name = preg_replace('/[ ()]/','',$ttf->fullName);
|
514 |
-
|
515 |
-
$desc= array('Ascent'=>round($ttf->ascent),
|
516 |
-
'Descent'=>round($ttf->descent),
|
517 |
-
'CapHeight'=>round($ttf->capHeight),
|
518 |
-
'Flags'=>$ttf->flags,
|
519 |
-
'FontBBox'=>'['.round($ttf->bbox[0])." ".round($ttf->bbox[1])." ".round($ttf->bbox[2])." ".round($ttf->bbox[3]).']',
|
520 |
-
'ItalicAngle'=>$ttf->italicAngle,
|
521 |
-
'StemV'=>round($ttf->stemV),
|
522 |
-
'MissingWidth'=>round($ttf->defaultWidth));
|
523 |
-
$up = round($ttf->underlinePosition);
|
524 |
-
$ut = round($ttf->underlineThickness);
|
525 |
-
$originalsize = $ttfstat['size']+0;
|
526 |
-
$type = 'TTF';
|
527 |
-
// Generate metrics .php file
|
528 |
-
$s='<?php'."\n";
|
529 |
-
$s.='$name=\''.$name."';\n";
|
530 |
-
$s.='$type=\''.$type."';\n";
|
531 |
-
$s.='$desc='.var_export($desc,true).";\n";
|
532 |
-
$s.='$up='.$up.";\n";
|
533 |
-
$s.='$ut='.$ut.";\n";
|
534 |
-
$s.='$ttffile=\''.$ttffile."';\n";
|
535 |
-
$s.='$originalsize='.$originalsize.";\n";
|
536 |
-
$s.='$fontkey=\''.$fontkey."';\n";
|
537 |
-
$s.="?>";
|
538 |
-
if (is_writable(dirname($this->_getfontpath().'unifont/'.'x'))) {
|
539 |
-
$fh = fopen($unifilename.'.mtx.php',"w");
|
540 |
-
fwrite($fh,$s,strlen($s));
|
541 |
-
fclose($fh);
|
542 |
-
$fh = fopen($unifilename.'.cw.dat',"wb");
|
543 |
-
fwrite($fh,$cw,strlen($cw));
|
544 |
-
fclose($fh);
|
545 |
-
@unlink($unifilename.'.cw127.php');
|
546 |
-
}
|
547 |
-
unset($ttf);
|
548 |
-
}
|
549 |
-
else {
|
550 |
-
$cw = @file_get_contents($unifilename.'.cw.dat');
|
551 |
-
}
|
552 |
-
$i = count($this->fonts)+1;
|
553 |
-
if(!empty($this->AliasNbPages))
|
554 |
-
$sbarr = range(0,57);
|
555 |
-
else
|
556 |
-
$sbarr = range(0,32);
|
557 |
-
$this->fonts[$fontkey] = array('i'=>$i, 'type'=>$type, 'name'=>$name, 'desc'=>$desc, 'up'=>$up, 'ut'=>$ut, 'cw'=>$cw, 'ttffile'=>$ttffile, 'fontkey'=>$fontkey, 'subset'=>$sbarr, 'unifilename'=>$unifilename);
|
558 |
-
|
559 |
-
$this->FontFiles[$fontkey]=array('length1'=>$originalsize, 'type'=>"TTF", 'ttffile'=>$ttffile);
|
560 |
-
$this->FontFiles[$file]=array('type'=>"TTF");
|
561 |
-
unset($cw);
|
562 |
-
}
|
563 |
-
else {
|
564 |
-
$info = $this->_loadfont($file);
|
565 |
-
$info['i'] = count($this->fonts)+1;
|
566 |
-
if(!empty($info['diff']))
|
567 |
-
{
|
568 |
-
// Search existing encodings
|
569 |
-
$n = array_search($info['diff'],$this->diffs);
|
570 |
-
if(!$n)
|
571 |
-
{
|
572 |
-
$n = count($this->diffs)+1;
|
573 |
-
$this->diffs[$n] = $info['diff'];
|
574 |
-
}
|
575 |
-
$info['diffn'] = $n;
|
576 |
-
}
|
577 |
-
if(!empty($info['file']))
|
578 |
-
{
|
579 |
-
// Embedded font
|
580 |
-
if($info['type']=='TrueType')
|
581 |
-
$this->FontFiles[$info['file']] = array('length1'=>$info['originalsize']);
|
582 |
-
else
|
583 |
-
$this->FontFiles[$info['file']] = array('length1'=>$info['size1'], 'length2'=>$info['size2']);
|
584 |
-
}
|
585 |
-
$this->fonts[$fontkey] = $info;
|
586 |
-
}
|
587 |
-
}
|
588 |
-
|
589 |
-
function SetFont($family, $style='', $size=0)
|
590 |
-
{
|
591 |
-
// Select a font; size given in points
|
592 |
-
if($family=='')
|
593 |
-
$family = $this->FontFamily;
|
594 |
-
else
|
595 |
-
$family = strtolower($family);
|
596 |
-
$style = strtoupper($style);
|
597 |
-
if(strpos($style,'U')!==false)
|
598 |
-
{
|
599 |
-
$this->underline = true;
|
600 |
-
$style = str_replace('U','',$style);
|
601 |
-
}
|
602 |
-
else
|
603 |
-
$this->underline = false;
|
604 |
-
if($style=='IB')
|
605 |
-
$style = 'BI';
|
606 |
-
if($size==0)
|
607 |
-
$size = $this->FontSizePt;
|
608 |
-
// Test if font is already selected
|
609 |
-
if($this->FontFamily==$family && $this->FontStyle==$style && $this->FontSizePt==$size)
|
610 |
-
return;
|
611 |
-
// Test if font is already loaded
|
612 |
-
$fontkey = $family.$style;
|
613 |
-
if(!isset($this->fonts[$fontkey]))
|
614 |
-
{
|
615 |
-
// Test if one of the core fonts
|
616 |
-
if($family=='arial')
|
617 |
-
$family = 'helvetica';
|
618 |
-
if(in_array($family,$this->CoreFonts))
|
619 |
-
{
|
620 |
-
if($family=='symbol' || $family=='zapfdingbats')
|
621 |
-
$style = '';
|
622 |
-
$fontkey = $family.$style;
|
623 |
-
if(!isset($this->fonts[$fontkey]))
|
624 |
-
$this->AddFont($family,$style);
|
625 |
-
}
|
626 |
-
else
|
627 |
-
$this->Error('Undefined font: '.$family.' '.$style);
|
628 |
-
}
|
629 |
-
// Select it
|
630 |
-
$this->FontFamily = $family;
|
631 |
-
$this->FontStyle = $style;
|
632 |
-
$this->FontSizePt = $size;
|
633 |
-
$this->FontSize = $size/$this->k;
|
634 |
-
$this->CurrentFont = &$this->fonts[$fontkey];
|
635 |
-
if ($this->fonts[$fontkey]['type']=='TTF') { $this->unifontSubset = true; }
|
636 |
-
else { $this->unifontSubset = false; }
|
637 |
-
if($this->page>0)
|
638 |
-
$this->_out(sprintf('BT /F%d %.2F Tf ET',$this->CurrentFont['i'],$this->FontSizePt));
|
639 |
-
}
|
640 |
-
|
641 |
-
function SetFontSize($size)
|
642 |
-
{
|
643 |
-
// Set font size in points
|
644 |
-
if($this->FontSizePt==$size)
|
645 |
-
return;
|
646 |
-
$this->FontSizePt = $size;
|
647 |
-
$this->FontSize = $size/$this->k;
|
648 |
-
if($this->page>0)
|
649 |
-
$this->_out(sprintf('BT /F%d %.2F Tf ET',$this->CurrentFont['i'],$this->FontSizePt));
|
650 |
-
}
|
651 |
-
|
652 |
-
function AddLink()
|
653 |
-
{
|
654 |
-
// Create a new internal link
|
655 |
-
$n = count($this->links)+1;
|
656 |
-
$this->links[$n] = array(0, 0);
|
657 |
-
return $n;
|
658 |
-
}
|
659 |
-
|
660 |
-
function SetLink($link, $y=0, $page=-1)
|
661 |
-
{
|
662 |
-
// Set destination of internal link
|
663 |
-
if($y==-1)
|
664 |
-
$y = $this->y;
|
665 |
-
if($page==-1)
|
666 |
-
$page = $this->page;
|
667 |
-
$this->links[$link] = array($page, $y);
|
668 |
-
}
|
669 |
-
|
670 |
-
function Link($x, $y, $w, $h, $link)
|
671 |
-
{
|
672 |
-
// Put a link on the page
|
673 |
-
$this->PageLinks[$this->page][] = array($x*$this->k, $this->hPt-$y*$this->k, $w*$this->k, $h*$this->k, $link);
|
674 |
-
}
|
675 |
-
|
676 |
-
function Text($x, $y, $txt)
|
677 |
-
{
|
678 |
-
// Output a string
|
679 |
-
if ($this->unifontSubset)
|
680 |
-
{
|
681 |
-
$txt2 = '('.$this->_escape($this->UTF8ToUTF16BE($txt, false)).')';
|
682 |
-
foreach($this->UTF8StringToArray($txt) as $uni)
|
683 |
-
$this->CurrentFont['subset'][$uni] = $uni;
|
684 |
-
}
|
685 |
-
else
|
686 |
-
$txt2 = '('.$this->_escape($txt).')';
|
687 |
-
$s = sprintf('BT %.2F %.2F Td %s Tj ET',$x*$this->k,($this->h-$y)*$this->k,$txt2);
|
688 |
-
if($this->underline && $txt!='')
|
689 |
-
$s .= ' '.$this->_dounderline($x,$y,$txt);
|
690 |
-
if($this->ColorFlag)
|
691 |
-
$s = 'q '.$this->TextColor.' '.$s.' Q';
|
692 |
-
$this->_out($s);
|
693 |
-
}
|
694 |
-
|
695 |
-
function AcceptPageBreak()
|
696 |
-
{
|
697 |
-
// Accept automatic page break or not
|
698 |
-
return $this->AutoPageBreak;
|
699 |
-
}
|
700 |
-
|
701 |
-
function Cell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=false, $link='')
|
702 |
-
{
|
703 |
-
// Output a cell
|
704 |
-
$k = $this->k;
|
705 |
-
if($this->y+$h>$this->PageBreakTrigger && !$this->InHeader && !$this->InFooter && $this->AcceptPageBreak())
|
706 |
-
{
|
707 |
-
// Automatic page break
|
708 |
-
$x = $this->x;
|
709 |
-
$ws = $this->ws;
|
710 |
-
if($ws>0)
|
711 |
-
{
|
712 |
-
$this->ws = 0;
|
713 |
-
$this->_out('0 Tw');
|
714 |
-
}
|
715 |
-
$this->AddPage($this->CurOrientation,$this->CurPageSize);
|
716 |
-
$this->x = $x;
|
717 |
-
if($ws>0)
|
718 |
-
{
|
719 |
-
$this->ws = $ws;
|
720 |
-
$this->_out(sprintf('%.3F Tw',$ws*$k));
|
721 |
-
}
|
722 |
-
}
|
723 |
-
if($w==0)
|
724 |
-
$w = $this->w-$this->rMargin-$this->x;
|
725 |
-
$s = '';
|
726 |
-
if($fill || $border==1)
|
727 |
-
{
|
728 |
-
if($fill)
|
729 |
-
$op = ($border==1) ? 'B' : 'f';
|
730 |
-
else
|
731 |
-
$op = 'S';
|
732 |
-
$s = sprintf('%.2F %.2F %.2F %.2F re %s ',$this->x*$k,($this->h-$this->y)*$k,$w*$k,-$h*$k,$op);
|
733 |
-
}
|
734 |
-
if(is_string($border))
|
735 |
-
{
|
736 |
-
$x = $this->x;
|
737 |
-
$y = $this->y;
|
738 |
-
if(strpos($border,'L')!==false)
|
739 |
-
$s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-$y)*$k,$x*$k,($this->h-($y+$h))*$k);
|
740 |
-
if(strpos($border,'T')!==false)
|
741 |
-
$s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-$y)*$k,($x+$w)*$k,($this->h-$y)*$k);
|
742 |
-
if(strpos($border,'R')!==false)
|
743 |
-
$s .= sprintf('%.2F %.2F m %.2F %.2F l S ',($x+$w)*$k,($this->h-$y)*$k,($x+$w)*$k,($this->h-($y+$h))*$k);
|
744 |
-
if(strpos($border,'B')!==false)
|
745 |
-
$s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-($y+$h))*$k,($x+$w)*$k,($this->h-($y+$h))*$k);
|
746 |
-
}
|
747 |
-
if($txt!=='')
|
748 |
-
{
|
749 |
-
if($align=='R')
|
750 |
-
$dx = $w-$this->cMargin-$this->GetStringWidth($txt);
|
751 |
-
elseif($align=='C')
|
752 |
-
$dx = ($w-$this->GetStringWidth($txt))/2;
|
753 |
-
else
|
754 |
-
$dx = $this->cMargin;
|
755 |
-
if($this->ColorFlag)
|
756 |
-
$s .= 'q '.$this->TextColor.' ';
|
757 |
-
|
758 |
-
// If multibyte, Tw has no effect - do word spacing using an adjustment before each space
|
759 |
-
if ($this->ws && $this->unifontSubset) {
|
760 |
-
foreach($this->UTF8StringToArray($txt) as $uni)
|
761 |
-
$this->CurrentFont['subset'][$uni] = $uni;
|
762 |
-
$space = $this->_escape($this->UTF8ToUTF16BE(' ', false));
|
763 |
-
$s .= sprintf('BT 0 Tw %.2F %.2F Td [',($this->x+$dx)*$k,($this->h-($this->y+.5*$h+.3*$this->FontSize))*$k);
|
764 |
-
$t = explode(' ',$txt);
|
765 |
-
$numt = count($t);
|
766 |
-
for($i=0;$i<$numt;$i++) {
|
767 |
-
$tx = $t[$i];
|
768 |
-
$tx = '('.$this->_escape($this->UTF8ToUTF16BE($tx, false)).')';
|
769 |
-
$s .= sprintf('%s ',$tx);
|
770 |
-
if (($i+1)<$numt) {
|
771 |
-
$adj = -($this->ws*$this->k)*1000/$this->FontSizePt;
|
772 |
-
$s .= sprintf('%d(%s) ',$adj,$space);
|
773 |
-
}
|
774 |
-
}
|
775 |
-
$s .= '] TJ';
|
776 |
-
$s .= ' ET';
|
777 |
-
}
|
778 |
-
else {
|
779 |
-
if ($this->unifontSubset)
|
780 |
-
{
|
781 |
-
$txt2 = '('.$this->_escape($this->UTF8ToUTF16BE($txt, false)).')';
|
782 |
-
foreach($this->UTF8StringToArray($txt) as $uni)
|
783 |
-
$this->CurrentFont['subset'][$uni] = $uni;
|
784 |
-
}
|
785 |
-
else
|
786 |
-
$txt2='('.str_replace(')','\\)',str_replace('(','\\(',str_replace('\\','\\\\',$txt))).')';
|
787 |
-
$s .= sprintf('BT %.2F %.2F Td %s Tj ET',($this->x+$dx)*$k,($this->h-($this->y+.5*$h+.3*$this->FontSize))*$k,$txt2);
|
788 |
-
}
|
789 |
-
if($this->underline)
|
790 |
-
$s .= ' '.$this->_dounderline($this->x+$dx,$this->y+.5*$h+.3*$this->FontSize,$txt);
|
791 |
-
if($this->ColorFlag)
|
792 |
-
$s .= ' Q';
|
793 |
-
if($link)
|
794 |
-
$this->Link($this->x+$dx,$this->y+.5*$h-.5*$this->FontSize,$this->GetStringWidth($txt),$this->FontSize,$link);
|
795 |
-
}
|
796 |
-
if($s)
|
797 |
-
$this->_out($s);
|
798 |
-
$this->lasth = $h;
|
799 |
-
if($ln>0)
|
800 |
-
{
|
801 |
-
// Go to next line
|
802 |
-
$this->y += $h;
|
803 |
-
if($ln==1)
|
804 |
-
$this->x = $this->lMargin;
|
805 |
-
}
|
806 |
-
else
|
807 |
-
$this->x += $w;
|
808 |
-
}
|
809 |
-
|
810 |
-
function MultiCell($w, $h, $txt, $border=0, $align='J', $fill=false)
|
811 |
-
{
|
812 |
-
// Output text with automatic or explicit line breaks
|
813 |
-
$cw = &$this->CurrentFont['cw'];
|
814 |
-
if($w==0)
|
815 |
-
$w = $this->w-$this->rMargin-$this->x;
|
816 |
-
$wmax = ($w-2*$this->cMargin);
|
817 |
-
$s = str_replace("\r",'',$txt);
|
818 |
-
if ($this->unifontSubset) {
|
819 |
-
$nb=mb_strlen($s, 'utf-8');
|
820 |
-
while($nb>0 && mb_substr($s,$nb-1,1,'utf-8')=="\n") $nb--;
|
821 |
-
}
|
822 |
-
else {
|
823 |
-
$nb = strlen($s);
|
824 |
-
if($nb>0 && $s[$nb-1]=="\n")
|
825 |
-
$nb--;
|
826 |
-
}
|
827 |
-
$b = 0;
|
828 |
-
if($border)
|
829 |
-
{
|
830 |
-
if($border==1)
|
831 |
-
{
|
832 |
-
$border = 'LTRB';
|
833 |
-
$b = 'LRT';
|
834 |
-
$b2 = 'LR';
|
835 |
-
}
|
836 |
-
else
|
837 |
-
{
|
838 |
-
$b2 = '';
|
839 |
-
if(strpos($border,'L')!==false)
|
840 |
-
$b2 .= 'L';
|
841 |
-
if(strpos($border,'R')!==false)
|
842 |
-
$b2 .= 'R';
|
843 |
-
$b = (strpos($border,'T')!==false) ? $b2.'T' : $b2;
|
844 |
-
}
|
845 |
-
}
|
846 |
-
$sep = -1;
|
847 |
-
$i = 0;
|
848 |
-
$j = 0;
|
849 |
-
$l = 0;
|
850 |
-
$ns = 0;
|
851 |
-
$nl = 1;
|
852 |
-
while($i<$nb)
|
853 |
-
{
|
854 |
-
// Get next character
|
855 |
-
if ($this->unifontSubset) {
|
856 |
-
$c = mb_substr($s,$i,1,'UTF-8');
|
857 |
-
}
|
858 |
-
else {
|
859 |
-
$c=$s[$i];
|
860 |
-
}
|
861 |
-
if($c=="\n")
|
862 |
-
{
|
863 |
-
// Explicit line break
|
864 |
-
if($this->ws>0)
|
865 |
-
{
|
866 |
-
$this->ws = 0;
|
867 |
-
$this->_out('0 Tw');
|
868 |
-
}
|
869 |
-
if ($this->unifontSubset) {
|
870 |
-
$this->Cell($w,$h,mb_substr($s,$j,$i-$j,'UTF-8'),$b,2,$align,$fill);
|
871 |
-
}
|
872 |
-
else {
|
873 |
-
$this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill);
|
874 |
-
}
|
875 |
-
$i++;
|
876 |
-
$sep = -1;
|
877 |
-
$j = $i;
|
878 |
-
$l = 0;
|
879 |
-
$ns = 0;
|
880 |
-
$nl++;
|
881 |
-
if($border && $nl==2)
|
882 |
-
$b = $b2;
|
883 |
-
continue;
|
884 |
-
}
|
885 |
-
if($c==' ')
|
886 |
-
{
|
887 |
-
$sep = $i;
|
888 |
-
$ls = $l;
|
889 |
-
$ns++;
|
890 |
-
}
|
891 |
-
|
892 |
-
if ($this->unifontSubset) { $l += $this->GetStringWidth($c); }
|
893 |
-
else { $l += $cw[$c]*$this->FontSize/1000; }
|
894 |
-
|
895 |
-
if($l>$wmax)
|
896 |
-
{
|
897 |
-
// Automatic line break
|
898 |
-
if($sep==-1)
|
899 |
-
{
|
900 |
-
if($i==$j)
|
901 |
-
$i++;
|
902 |
-
if($this->ws>0)
|
903 |
-
{
|
904 |
-
$this->ws = 0;
|
905 |
-
$this->_out('0 Tw');
|
906 |
-
}
|
907 |
-
if ($this->unifontSubset) {
|
908 |
-
$this->Cell($w,$h,mb_substr($s,$j,$i-$j,'UTF-8'),$b,2,$align,$fill);
|
909 |
-
}
|
910 |
-
else {
|
911 |
-
$this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill);
|
912 |
-
}
|
913 |
-
}
|
914 |
-
else
|
915 |
-
{
|
916 |
-
if($align=='J')
|
917 |
-
{
|
918 |
-
$this->ws = ($ns>1) ? ($wmax-$ls)/($ns-1) : 0;
|
919 |
-
$this->_out(sprintf('%.3F Tw',$this->ws*$this->k));
|
920 |
-
}
|
921 |
-
if ($this->unifontSubset) {
|
922 |
-
$this->Cell($w,$h,mb_substr($s,$j,$sep-$j,'UTF-8'),$b,2,$align,$fill);
|
923 |
-
}
|
924 |
-
else {
|
925 |
-
$this->Cell($w,$h,substr($s,$j,$sep-$j),$b,2,$align,$fill);
|
926 |
-
}
|
927 |
-
$i = $sep+1;
|
928 |
-
}
|
929 |
-
$sep = -1;
|
930 |
-
$j = $i;
|
931 |
-
$l = 0;
|
932 |
-
$ns = 0;
|
933 |
-
$nl++;
|
934 |
-
if($border && $nl==2)
|
935 |
-
$b = $b2;
|
936 |
-
}
|
937 |
-
else
|
938 |
-
$i++;
|
939 |
-
}
|
940 |
-
// Last chunk
|
941 |
-
if($this->ws>0)
|
942 |
-
{
|
943 |
-
$this->ws = 0;
|
944 |
-
$this->_out('0 Tw');
|
945 |
-
}
|
946 |
-
if($border && strpos($border,'B')!==false)
|
947 |
-
$b .= 'B';
|
948 |
-
if ($this->unifontSubset) {
|
949 |
-
$this->Cell($w,$h,mb_substr($s,$j,$i-$j,'UTF-8'),$b,2,$align,$fill);
|
950 |
-
}
|
951 |
-
else {
|
952 |
-
$this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill);
|
953 |
-
}
|
954 |
-
$this->x = $this->lMargin;
|
955 |
-
}
|
956 |
-
|
957 |
-
function Write($h, $txt, $link='')
|
958 |
-
{
|
959 |
-
// Output text in flowing mode
|
960 |
-
$cw = &$this->CurrentFont['cw'];
|
961 |
-
$w = $this->w-$this->rMargin-$this->x;
|
962 |
-
|
963 |
-
$wmax = ($w-2*$this->cMargin);
|
964 |
-
$s = str_replace("\r",'',$txt);
|
965 |
-
if ($this->unifontSubset) {
|
966 |
-
$nb = mb_strlen($s, 'UTF-8');
|
967 |
-
if($nb==1 && $s==" ") {
|
968 |
-
$this->x += $this->GetStringWidth($s);
|
969 |
-
return;
|
970 |
-
}
|
971 |
-
}
|
972 |
-
else {
|
973 |
-
$nb = strlen($s);
|
974 |
-
}
|
975 |
-
$sep = -1;
|
976 |
-
$i = 0;
|
977 |
-
$j = 0;
|
978 |
-
$l = 0;
|
979 |
-
$nl = 1;
|
980 |
-
while($i<$nb)
|
981 |
-
{
|
982 |
-
// Get next character
|
983 |
-
if ($this->unifontSubset) {
|
984 |
-
$c = mb_substr($s,$i,1,'UTF-8');
|
985 |
-
}
|
986 |
-
else {
|
987 |
-
$c = $s[$i];
|
988 |
-
}
|
989 |
-
if($c=="\n")
|
990 |
-
{
|
991 |
-
// Explicit line break
|
992 |
-
if ($this->unifontSubset) {
|
993 |
-
$this->Cell($w,$h,mb_substr($s,$j,$i-$j,'UTF-8'),0,2,'',0,$link);
|
994 |
-
}
|
995 |
-
else {
|
996 |
-
$this->Cell($w,$h,substr($s,$j,$i-$j),0,2,'',0,$link);
|
997 |
-
}
|
998 |
-
$i++;
|
999 |
-
$sep = -1;
|
1000 |
-
$j = $i;
|
1001 |
-
$l = 0;
|
1002 |
-
if($nl==1)
|
1003 |
-
{
|
1004 |
-
$this->x = $this->lMargin;
|
1005 |
-
$w = $this->w-$this->rMargin-$this->x;
|
1006 |
-
$wmax = ($w-2*$this->cMargin);
|
1007 |
-
}
|
1008 |
-
$nl++;
|
1009 |
-
continue;
|
1010 |
-
}
|
1011 |
-
if($c==' ')
|
1012 |
-
$sep = $i;
|
1013 |
-
|
1014 |
-
if ($this->unifontSubset) { $l += $this->GetStringWidth($c); }
|
1015 |
-
else { $l += $cw[$c]*$this->FontSize/1000; }
|
1016 |
-
|
1017 |
-
if($l>$wmax)
|
1018 |
-
{
|
1019 |
-
// Automatic line break
|
1020 |
-
if($sep==-1)
|
1021 |
-
{
|
1022 |
-
if($this->x>$this->lMargin)
|
1023 |
-
{
|
1024 |
-
// Move to next line
|
1025 |
-
$this->x = $this->lMargin;
|
1026 |
-
$this->y += $h;
|
1027 |
-
$w = $this->w-$this->rMargin-$this->x;
|
1028 |
-
$wmax = ($w-2*$this->cMargin);
|
1029 |
-
$i++;
|
1030 |
-
$nl++;
|
1031 |
-
continue;
|
1032 |
-
}
|
1033 |
-
if($i==$j)
|
1034 |
-
$i++;
|
1035 |
-
if ($this->unifontSubset) {
|
1036 |
-
$this->Cell($w,$h,mb_substr($s,$j,$i-$j,'UTF-8'),0,2,'',0,$link);
|
1037 |
-
}
|
1038 |
-
else {
|
1039 |
-
$this->Cell($w,$h,substr($s,$j,$i-$j),0,2,'',0,$link);
|
1040 |
-
}
|
1041 |
-
}
|
1042 |
-
else
|
1043 |
-
{
|
1044 |
-
if ($this->unifontSubset) {
|
1045 |
-
$this->Cell($w,$h,mb_substr($s,$j,$sep-$j,'UTF-8'),0,2,'',0,$link);
|
1046 |
-
}
|
1047 |
-
else {
|
1048 |
-
$this->Cell($w,$h,substr($s,$j,$sep-$j),0,2,'',0,$link);
|
1049 |
-
}
|
1050 |
-
$i = $sep+1;
|
1051 |
-
}
|
1052 |
-
$sep = -1;
|
1053 |
-
$j = $i;
|
1054 |
-
$l = 0;
|
1055 |
-
if($nl==1)
|
1056 |
-
{
|
1057 |
-
$this->x = $this->lMargin;
|
1058 |
-
$w = $this->w-$this->rMargin-$this->x;
|
1059 |
-
$wmax = ($w-2*$this->cMargin);
|
1060 |
-
}
|
1061 |
-
$nl++;
|
1062 |
-
}
|
1063 |
-
else
|
1064 |
-
$i++;
|
1065 |
-
}
|
1066 |
-
// Last chunk
|
1067 |
-
if($i!=$j) {
|
1068 |
-
if ($this->unifontSubset) {
|
1069 |
-
$this->Cell($l,$h,mb_substr($s,$j,$i-$j,'UTF-8'),0,0,'',0,$link);
|
1070 |
-
}
|
1071 |
-
else {
|
1072 |
-
$this->Cell($l,$h,substr($s,$j),0,0,'',0,$link);
|
1073 |
-
}
|
1074 |
-
}
|
1075 |
-
}
|
1076 |
-
|
1077 |
-
function Ln($h=null)
|
1078 |
-
{
|
1079 |
-
// Line feed; default value is last cell height
|
1080 |
-
$this->x = $this->lMargin;
|
1081 |
-
if($h===null)
|
1082 |
-
$this->y += $this->lasth;
|
1083 |
-
else
|
1084 |
-
$this->y += $h;
|
1085 |
-
}
|
1086 |
-
|
1087 |
-
function Image($file, $x=null, $y=null, $w=0, $h=0, $type='', $link='')
|
1088 |
-
{
|
1089 |
-
// Put an image on the page
|
1090 |
-
if(!isset($this->images[$file]))
|
1091 |
-
{
|
1092 |
-
// First use of this image, get info
|
1093 |
-
if($type=='')
|
1094 |
-
{
|
1095 |
-
$pos = strrpos($file,'.');
|
1096 |
-
if(!$pos)
|
1097 |
-
$this->Error('Image file has no extension and no type was specified: '.$file);
|
1098 |
-
$type = substr($file,$pos+1);
|
1099 |
-
}
|
1100 |
-
$type = strtolower($type);
|
1101 |
-
if($type=='jpeg')
|
1102 |
-
$type = 'jpg';
|
1103 |
-
$mtd = '_parse'.$type;
|
1104 |
-
if(!method_exists($this,$mtd))
|
1105 |
-
$this->Error('Unsupported image type: '.$type);
|
1106 |
-
$info = $this->$mtd($file);
|
1107 |
-
$info['i'] = count($this->images)+1;
|
1108 |
-
$this->images[$file] = $info;
|
1109 |
-
}
|
1110 |
-
else
|
1111 |
-
$info = $this->images[$file];
|
1112 |
-
|
1113 |
-
// Automatic width and height calculation if needed
|
1114 |
-
if($w==0 && $h==0)
|
1115 |
-
{
|
1116 |
-
// Put image at 96 dpi
|
1117 |
-
$w = -96;
|
1118 |
-
$h = -96;
|
1119 |
-
}
|
1120 |
-
if($w<0)
|
1121 |
-
$w = -$info['w']*72/$w/$this->k;
|
1122 |
-
if($h<0)
|
1123 |
-
$h = -$info['h']*72/$h/$this->k;
|
1124 |
-
if($w==0)
|
1125 |
-
$w = $h*$info['w']/$info['h'];
|
1126 |
-
if($h==0)
|
1127 |
-
$h = $w*$info['h']/$info['w'];
|
1128 |
-
|
1129 |
-
// Flowing mode
|
1130 |
-
if($y===null)
|
1131 |
-
{
|
1132 |
-
if($this->y+$h>$this->PageBreakTrigger && !$this->InHeader && !$this->InFooter && $this->AcceptPageBreak())
|
1133 |
-
{
|
1134 |
-
// Automatic page break
|
1135 |
-
$x2 = $this->x;
|
1136 |
-
$this->AddPage($this->CurOrientation,$this->CurPageSize);
|
1137 |
-
$this->x = $x2;
|
1138 |
-
}
|
1139 |
-
$y = $this->y;
|
1140 |
-
$this->y += $h;
|
1141 |
-
}
|
1142 |
-
|
1143 |
-
if($x===null)
|
1144 |
-
$x = $this->x;
|
1145 |
-
$this->_out(sprintf('q %.2F 0 0 %.2F %.2F %.2F cm /I%d Do Q',$w*$this->k,$h*$this->k,$x*$this->k,($this->h-($y+$h))*$this->k,$info['i']));
|
1146 |
-
if($link)
|
1147 |
-
$this->Link($x,$y,$w,$h,$link);
|
1148 |
-
}
|
1149 |
-
|
1150 |
-
function GetX()
|
1151 |
-
{
|
1152 |
-
// Get x position
|
1153 |
-
return $this->x;
|
1154 |
-
}
|
1155 |
-
|
1156 |
-
function SetX($x)
|
1157 |
-
{
|
1158 |
-
// Set x position
|
1159 |
-
if($x>=0)
|
1160 |
-
$this->x = $x;
|
1161 |
-
else
|
1162 |
-
$this->x = $this->w+$x;
|
1163 |
-
}
|
1164 |
-
|
1165 |
-
function GetY()
|
1166 |
-
{
|
1167 |
-
// Get y position
|
1168 |
-
return $this->y;
|
1169 |
-
}
|
1170 |
-
|
1171 |
-
function SetY($y)
|
1172 |
-
{
|
1173 |
-
// Set y position and reset x
|
1174 |
-
$this->x = $this->lMargin;
|
1175 |
-
if($y>=0)
|
1176 |
-
$this->y = $y;
|
1177 |
-
else
|
1178 |
-
$this->y = $this->h+$y;
|
1179 |
-
}
|
1180 |
-
|
1181 |
-
function SetXY($x, $y)
|
1182 |
-
{
|
1183 |
-
// Set x and y positions
|
1184 |
-
$this->SetY($y);
|
1185 |
-
$this->SetX($x);
|
1186 |
-
}
|
1187 |
-
|
1188 |
-
function Output($name='', $dest='')
|
1189 |
-
{
|
1190 |
-
// Output PDF to some destination
|
1191 |
-
if($this->state<3)
|
1192 |
-
$this->Close();
|
1193 |
-
$dest = strtoupper($dest);
|
1194 |
-
if($dest=='')
|
1195 |
-
{
|
1196 |
-
if($name=='')
|
1197 |
-
{
|
1198 |
-
$name = 'doc.pdf';
|
1199 |
-
$dest = 'I';
|
1200 |
-
}
|
1201 |
-
else
|
1202 |
-
$dest = 'F';
|
1203 |
-
}
|
1204 |
-
switch($dest)
|
1205 |
-
{
|
1206 |
-
case 'I':
|
1207 |
-
// Send to standard output
|
1208 |
-
$this->_checkoutput();
|
1209 |
-
if(PHP_SAPI!='cli')
|
1210 |
-
{
|
1211 |
-
// We send to a browser
|
1212 |
-
header('Content-Type: application/pdf');
|
1213 |
-
header('Content-Disposition: inline; filename="'.$name.'"');
|
1214 |
-
header('Cache-Control: private, max-age=0, must-revalidate');
|
1215 |
-
header('Pragma: public');
|
1216 |
-
}
|
1217 |
-
echo $this->buffer;
|
1218 |
-
break;
|
1219 |
-
case 'D':
|
1220 |
-
// Download file
|
1221 |
-
$this->_checkoutput();
|
1222 |
-
header('Content-Type: application/x-download');
|
1223 |
-
header('Content-Disposition: attachment; filename="'.$name.'"');
|
1224 |
-
header('Cache-Control: private, max-age=0, must-revalidate');
|
1225 |
-
header('Pragma: public');
|
1226 |
-
echo $this->buffer;
|
1227 |
-
break;
|
1228 |
-
case 'F':
|
1229 |
-
// Save to local file
|
1230 |
-
$f = fopen($name,'wb');
|
1231 |
-
if(!$f)
|
1232 |
-
$this->Error('Unable to create output file: '.$name);
|
1233 |
-
fwrite($f,$this->buffer,strlen($this->buffer));
|
1234 |
-
fclose($f);
|
1235 |
-
break;
|
1236 |
-
case 'S':
|
1237 |
-
// Return as a string
|
1238 |
-
return $this->buffer;
|
1239 |
-
default:
|
1240 |
-
$this->Error('Incorrect output destination: '.$dest);
|
1241 |
-
}
|
1242 |
-
return '';
|
1243 |
-
}
|
1244 |
-
|
1245 |
-
/*******************************************************************************
|
1246 |
-
* *
|
1247 |
-
* Protected methods *
|
1248 |
-
* *
|
1249 |
-
*******************************************************************************/
|
1250 |
-
function _dochecks()
|
1251 |
-
{
|
1252 |
-
// Check availability of %F
|
1253 |
-
if(sprintf('%.1F',1.0)!='1.0')
|
1254 |
-
$this->Error('This version of PHP is not supported');
|
1255 |
-
// Check availability of mbstring
|
1256 |
-
if(!function_exists('mb_strlen'))
|
1257 |
-
$this->Error('mbstring extension is not available');
|
1258 |
-
// Check mbstring overloading
|
1259 |
-
if(ini_get('mbstring.func_overload') & 2)
|
1260 |
-
$this->Error('mbstring overloading must be disabled');
|
1261 |
-
// Ensure runtime magic quotes are disabled
|
1262 |
-
if(version_compare(PHP_VERSION, '5.3.0', '<') and get_magic_quotes_runtime())
|
1263 |
-
@set_magic_quotes_runtime(0);
|
1264 |
-
}
|
1265 |
-
|
1266 |
-
function _getfontpath()
|
1267 |
-
{
|
1268 |
-
return $this->fontpath;
|
1269 |
-
}
|
1270 |
-
|
1271 |
-
function _checkoutput()
|
1272 |
-
{
|
1273 |
-
if(PHP_SAPI!='cli')
|
1274 |
-
{
|
1275 |
-
if(headers_sent($file,$line))
|
1276 |
-
$this->Error("Some data has already been output, can't send PDF file (output started at $file:$line)");
|
1277 |
-
}
|
1278 |
-
if(ob_get_length())
|
1279 |
-
{
|
1280 |
-
// The output buffer is not empty
|
1281 |
-
if(preg_match('/^(\xEF\xBB\xBF)?\s*$/',ob_get_contents()))
|
1282 |
-
{
|
1283 |
-
// It contains only a UTF-8 BOM and/or whitespace, let's clean it
|
1284 |
-
ob_clean();
|
1285 |
-
}
|
1286 |
-
else
|
1287 |
-
$this->Error("Some data has already been output, can't send PDF file");
|
1288 |
-
}
|
1289 |
-
}
|
1290 |
-
|
1291 |
-
function _getpagesize($size)
|
1292 |
-
{
|
1293 |
-
if(is_string($size))
|
1294 |
-
{
|
1295 |
-
$size = strtolower($size);
|
1296 |
-
if(!isset($this->StdPageSizes[$size]))
|
1297 |
-
$this->Error('Unknown page size: '.$size);
|
1298 |
-
$a = $this->StdPageSizes[$size];
|
1299 |
-
return array($a[0]/$this->k, $a[1]/$this->k);
|
1300 |
-
}
|
1301 |
-
else
|
1302 |
-
{
|
1303 |
-
if($size[0]>$size[1])
|
1304 |
-
return array($size[1], $size[0]);
|
1305 |
-
else
|
1306 |
-
return $size;
|
1307 |
-
}
|
1308 |
-
}
|
1309 |
-
|
1310 |
-
function _beginpage($orientation, $size)
|
1311 |
-
{
|
1312 |
-
$this->page++;
|
1313 |
-
$this->pages[$this->page] = '';
|
1314 |
-
$this->state = 2;
|
1315 |
-
$this->x = $this->lMargin;
|
1316 |
-
$this->y = $this->tMargin;
|
1317 |
-
$this->FontFamily = '';
|
1318 |
-
// Check page size and orientation
|
1319 |
-
if($orientation=='')
|
1320 |
-
$orientation = $this->DefOrientation;
|
1321 |
-
else
|
1322 |
-
$orientation = strtoupper($orientation[0]);
|
1323 |
-
if($size=='')
|
1324 |
-
$size = $this->DefPageSize;
|
1325 |
-
else
|
1326 |
-
$size = $this->_getpagesize($size);
|
1327 |
-
if($orientation!=$this->CurOrientation || $size[0]!=$this->CurPageSize[0] || $size[1]!=$this->CurPageSize[1])
|
1328 |
-
{
|
1329 |
-
// New size or orientation
|
1330 |
-
if($orientation=='P')
|
1331 |
-
{
|
1332 |
-
$this->w = $size[0];
|
1333 |
-
$this->h = $size[1];
|
1334 |
-
}
|
1335 |
-
else
|
1336 |
-
{
|
1337 |
-
$this->w = $size[1];
|
1338 |
-
$this->h = $size[0];
|
1339 |
-
}
|
1340 |
-
$this->wPt = $this->w*$this->k;
|
1341 |
-
$this->hPt = $this->h*$this->k;
|
1342 |
-
$this->PageBreakTrigger = $this->h-$this->bMargin;
|
1343 |
-
$this->CurOrientation = $orientation;
|
1344 |
-
$this->CurPageSize = $size;
|
1345 |
-
}
|
1346 |
-
if($orientation!=$this->DefOrientation || $size[0]!=$this->DefPageSize[0] || $size[1]!=$this->DefPageSize[1])
|
1347 |
-
$this->PageSizes[$this->page] = array($this->wPt, $this->hPt);
|
1348 |
-
}
|
1349 |
-
|
1350 |
-
function _endpage()
|
1351 |
-
{
|
1352 |
-
$this->state = 1;
|
1353 |
-
}
|
1354 |
-
|
1355 |
-
function _loadfont($font)
|
1356 |
-
{
|
1357 |
-
// Load a font definition file from the font directory
|
1358 |
-
include($this->fontpath.$font);
|
1359 |
-
$a = get_defined_vars();
|
1360 |
-
if(!isset($a['name']))
|
1361 |
-
$this->Error('Could not include font definition file');
|
1362 |
-
return $a;
|
1363 |
-
}
|
1364 |
-
|
1365 |
-
function _escape($s)
|
1366 |
-
{
|
1367 |
-
// Escape special characters in strings
|
1368 |
-
$s = str_replace('\\','\\\\',$s);
|
1369 |
-
$s = str_replace('(','\\(',$s);
|
1370 |
-
$s = str_replace(')','\\)',$s);
|
1371 |
-
$s = str_replace("\r",'\\r',$s);
|
1372 |
-
return $s;
|
1373 |
-
}
|
1374 |
-
|
1375 |
-
function _textstring($s)
|
1376 |
-
{
|
1377 |
-
// Format a text string
|
1378 |
-
return '('.$this->_escape($s).')';
|
1379 |
-
}
|
1380 |
-
|
1381 |
-
function _UTF8toUTF16($s)
|
1382 |
-
{
|
1383 |
-
// Convert UTF-8 to UTF-16BE with BOM
|
1384 |
-
$res = "\xFE\xFF";
|
1385 |
-
$nb = strlen($s);
|
1386 |
-
$i = 0;
|
1387 |
-
while($i<$nb)
|
1388 |
-
{
|
1389 |
-
$c1 = ord($s[$i++]);
|
1390 |
-
if($c1>=224)
|
1391 |
-
{
|
1392 |
-
// 3-byte character
|
1393 |
-
$c2 = ord($s[$i++]);
|
1394 |
-
$c3 = ord($s[$i++]);
|
1395 |
-
$res .= chr((($c1 & 0x0F)<<4) + (($c2 & 0x3C)>>2));
|
1396 |
-
$res .= chr((($c2 & 0x03)<<6) + ($c3 & 0x3F));
|
1397 |
-
}
|
1398 |
-
elseif($c1>=192)
|
1399 |
-
{
|
1400 |
-
// 2-byte character
|
1401 |
-
$c2 = ord($s[$i++]);
|
1402 |
-
$res .= chr(($c1 & 0x1C)>>2);
|
1403 |
-
$res .= chr((($c1 & 0x03)<<6) + ($c2 & 0x3F));
|
1404 |
-
}
|
1405 |
-
else
|
1406 |
-
{
|
1407 |
-
// Single-byte character
|
1408 |
-
$res .= "\0".chr($c1);
|
1409 |
-
}
|
1410 |
-
}
|
1411 |
-
return $res;
|
1412 |
-
}
|
1413 |
-
|
1414 |
-
function _dounderline($x, $y, $txt)
|
1415 |
-
{
|
1416 |
-
// Underline text
|
1417 |
-
$up = $this->CurrentFont['up'];
|
1418 |
-
$ut = $this->CurrentFont['ut'];
|
1419 |
-
$w = $this->GetStringWidth($txt)+$this->ws*substr_count($txt,' ');
|
1420 |
-
return sprintf('%.2F %.2F %.2F %.2F re f',$x*$this->k,($this->h-($y-$up/1000*$this->FontSize))*$this->k,$w*$this->k,-$ut/1000*$this->FontSizePt);
|
1421 |
-
}
|
1422 |
-
|
1423 |
-
function _parsejpg($file)
|
1424 |
-
{
|
1425 |
-
// Extract info from a JPEG file
|
1426 |
-
$a = getimagesize($file);
|
1427 |
-
if(!$a)
|
1428 |
-
$this->Error('Missing or incorrect image file: '.$file);
|
1429 |
-
if($a[2]!=2)
|
1430 |
-
$this->Error('Not a JPEG file: '.$file);
|
1431 |
-
if(!isset($a['channels']) || $a['channels']==3)
|
1432 |
-
$colspace = 'DeviceRGB';
|
1433 |
-
elseif($a['channels']==4)
|
1434 |
-
$colspace = 'DeviceCMYK';
|
1435 |
-
else
|
1436 |
-
$colspace = 'DeviceGray';
|
1437 |
-
$bpc = isset($a['bits']) ? $a['bits'] : 8;
|
1438 |
-
$data = file_get_contents($file);
|
1439 |
-
return array('w'=>$a[0], 'h'=>$a[1], 'cs'=>$colspace, 'bpc'=>$bpc, 'f'=>'DCTDecode', 'data'=>$data);
|
1440 |
-
}
|
1441 |
-
|
1442 |
-
function _parsepng($file)
|
1443 |
-
{
|
1444 |
-
// Extract info from a PNG file
|
1445 |
-
$f = fopen($file,'rb');
|
1446 |
-
if(!$f)
|
1447 |
-
$this->Error('Can\'t open image file: '.$file);
|
1448 |
-
$info = $this->_parsepngstream($f,$file);
|
1449 |
-
fclose($f);
|
1450 |
-
return $info;
|
1451 |
-
}
|
1452 |
-
|
1453 |
-
function _parsepngstream($f, $file)
|
1454 |
-
{
|
1455 |
-
// Check signature
|
1456 |
-
if($this->_readstream($f,8)!=chr(137).'PNG'.chr(13).chr(10).chr(26).chr(10))
|
1457 |
-
$this->Error('Not a PNG file: '.$file);
|
1458 |
-
|
1459 |
-
// Read header chunk
|
1460 |
-
$this->_readstream($f,4);
|
1461 |
-
if($this->_readstream($f,4)!='IHDR')
|
1462 |
-
$this->Error('Incorrect PNG file: '.$file);
|
1463 |
-
$w = $this->_readint($f);
|
1464 |
-
$h = $this->_readint($f);
|
1465 |
-
$bpc = ord($this->_readstream($f,1));
|
1466 |
-
if($bpc>8)
|
1467 |
-
$this->Error('16-bit depth not supported: '.$file);
|
1468 |
-
$ct = ord($this->_readstream($f,1));
|
1469 |
-
if($ct==0 || $ct==4)
|
1470 |
-
$colspace = 'DeviceGray';
|
1471 |
-
elseif($ct==2 || $ct==6)
|
1472 |
-
$colspace = 'DeviceRGB';
|
1473 |
-
elseif($ct==3)
|
1474 |
-
$colspace = 'Indexed';
|
1475 |
-
else
|
1476 |
-
$this->Error('Unknown color type: '.$file);
|
1477 |
-
if(ord($this->_readstream($f,1))!=0)
|
1478 |
-
$this->Error('Unknown compression method: '.$file);
|
1479 |
-
if(ord($this->_readstream($f,1))!=0)
|
1480 |
-
$this->Error('Unknown filter method: '.$file);
|
1481 |
-
if(ord($this->_readstream($f,1))!=0)
|
1482 |
-
$this->Error('Interlacing not supported: '.$file);
|
1483 |
-
$this->_readstream($f,4);
|
1484 |
-
$dp = '/Predictor 15 /Colors '.($colspace=='DeviceRGB' ? 3 : 1).' /BitsPerComponent '.$bpc.' /Columns '.$w;
|
1485 |
-
|
1486 |
-
// Scan chunks looking for palette, transparency and image data
|
1487 |
-
$pal = '';
|
1488 |
-
$trns = '';
|
1489 |
-
$data = '';
|
1490 |
-
do
|
1491 |
-
{
|
1492 |
-
$n = $this->_readint($f);
|
1493 |
-
$type = $this->_readstream($f,4);
|
1494 |
-
if($type=='PLTE')
|
1495 |
-
{
|
1496 |
-
// Read palette
|
1497 |
-
$pal = $this->_readstream($f,$n);
|
1498 |
-
$this->_readstream($f,4);
|
1499 |
-
}
|
1500 |
-
elseif($type=='tRNS')
|
1501 |
-
{
|
1502 |
-
// Read transparency info
|
1503 |
-
$t = $this->_readstream($f,$n);
|
1504 |
-
if($ct==0)
|
1505 |
-
$trns = array(ord(substr($t,1,1)));
|
1506 |
-
elseif($ct==2)
|
1507 |
-
$trns = array(ord(substr($t,1,1)), ord(substr($t,3,1)), ord(substr($t,5,1)));
|
1508 |
-
else
|
1509 |
-
{
|
1510 |
-
$pos = strpos($t,chr(0));
|
1511 |
-
if($pos!==false)
|
1512 |
-
$trns = array($pos);
|
1513 |
-
}
|
1514 |
-
$this->_readstream($f,4);
|
1515 |
-
}
|
1516 |
-
elseif($type=='IDAT')
|
1517 |
-
{
|
1518 |
-
// Read image data block
|
1519 |
-
$data .= $this->_readstream($f,$n);
|
1520 |
-
$this->_readstream($f,4);
|
1521 |
-
}
|
1522 |
-
elseif($type=='IEND')
|
1523 |
-
break;
|
1524 |
-
else
|
1525 |
-
$this->_readstream($f,$n+4);
|
1526 |
-
}
|
1527 |
-
while($n);
|
1528 |
-
|
1529 |
-
if($colspace=='Indexed' && empty($pal))
|
1530 |
-
$this->Error('Missing palette in '.$file);
|
1531 |
-
$info = array('w'=>$w, 'h'=>$h, 'cs'=>$colspace, 'bpc'=>$bpc, 'f'=>'FlateDecode', 'dp'=>$dp, 'pal'=>$pal, 'trns'=>$trns);
|
1532 |
-
if($ct>=4)
|
1533 |
-
{
|
1534 |
-
// Extract alpha channel
|
1535 |
-
if(!function_exists('gzuncompress'))
|
1536 |
-
$this->Error('Zlib not available, can\'t handle alpha channel: '.$file);
|
1537 |
-
$data = gzuncompress($data);
|
1538 |
-
$color = '';
|
1539 |
-
$alpha = '';
|
1540 |
-
if($ct==4)
|
1541 |
-
{
|
1542 |
-
// Gray image
|
1543 |
-
$len = 2*$w;
|
1544 |
-
for($i=0;$i<$h;$i++)
|
1545 |
-
{
|
1546 |
-
$pos = (1+$len)*$i;
|
1547 |
-
$color .= $data[$pos];
|
1548 |
-
$alpha .= $data[$pos];
|
1549 |
-
$line = substr($data,$pos+1,$len);
|
1550 |
-
$color .= preg_replace('/(.)./s','$1',$line);
|
1551 |
-
$alpha .= preg_replace('/.(.)/s','$1',$line);
|
1552 |
-
}
|
1553 |
-
}
|
1554 |
-
else
|
1555 |
-
{
|
1556 |
-
// RGB image
|
1557 |
-
$len = 4*$w;
|
1558 |
-
for($i=0;$i<$h;$i++)
|
1559 |
-
{
|
1560 |
-
$pos = (1+$len)*$i;
|
1561 |
-
$color .= $data[$pos];
|
1562 |
-
$alpha .= $data[$pos];
|
1563 |
-
$line = substr($data,$pos+1,$len);
|
1564 |
-
$color .= preg_replace('/(.{3})./s','$1',$line);
|
1565 |
-
$alpha .= preg_replace('/.{3}(.)/s','$1',$line);
|
1566 |
-
}
|
1567 |
-
}
|
1568 |
-
unset($data);
|
1569 |
-
$data = gzcompress($color);
|
1570 |
-
$info['smask'] = gzcompress($alpha);
|
1571 |
-
if($this->PDFVersion<'1.4')
|
1572 |
-
$this->PDFVersion = '1.4';
|
1573 |
-
}
|
1574 |
-
$info['data'] = $data;
|
1575 |
-
return $info;
|
1576 |
-
}
|
1577 |
-
|
1578 |
-
function _readstream($f, $n)
|
1579 |
-
{
|
1580 |
-
// Read n bytes from stream
|
1581 |
-
$res = '';
|
1582 |
-
while($n>0 && !feof($f))
|
1583 |
-
{
|
1584 |
-
$s = fread($f,$n);
|
1585 |
-
if($s===false)
|
1586 |
-
$this->Error('Error while reading stream');
|
1587 |
-
$n -= strlen($s);
|
1588 |
-
$res .= $s;
|
1589 |
-
}
|
1590 |
-
if($n>0)
|
1591 |
-
$this->Error('Unexpected end of stream');
|
1592 |
-
return $res;
|
1593 |
-
}
|
1594 |
-
|
1595 |
-
function _readint($f)
|
1596 |
-
{
|
1597 |
-
// Read a 4-byte integer from stream
|
1598 |
-
$a = unpack('Ni',$this->_readstream($f,4));
|
1599 |
-
return $a['i'];
|
1600 |
-
}
|
1601 |
-
|
1602 |
-
function _parsegif($file)
|
1603 |
-
{
|
1604 |
-
// Extract info from a GIF file (via PNG conversion)
|
1605 |
-
if(!function_exists('imagepng'))
|
1606 |
-
$this->Error('GD extension is required for GIF support');
|
1607 |
-
if(!function_exists('imagecreatefromgif'))
|
1608 |
-
$this->Error('GD has no GIF read support');
|
1609 |
-
$im = imagecreatefromgif($file);
|
1610 |
-
if(!$im)
|
1611 |
-
$this->Error('Missing or incorrect image file: '.$file);
|
1612 |
-
imageinterlace($im,0);
|
1613 |
-
$f = @fopen('php://temp','rb+');
|
1614 |
-
if($f)
|
1615 |
-
{
|
1616 |
-
// Perform conversion in memory
|
1617 |
-
ob_start();
|
1618 |
-
imagepng($im);
|
1619 |
-
$data = ob_get_clean();
|
1620 |
-
imagedestroy($im);
|
1621 |
-
fwrite($f,$data);
|
1622 |
-
rewind($f);
|
1623 |
-
$info = $this->_parsepngstream($f,$file);
|
1624 |
-
fclose($f);
|
1625 |
-
}
|
1626 |
-
else
|
1627 |
-
{
|
1628 |
-
// Use temporary file
|
1629 |
-
$tmp = tempnam('.','gif');
|
1630 |
-
if(!$tmp)
|
1631 |
-
$this->Error('Unable to create a temporary file');
|
1632 |
-
if(!imagepng($im,$tmp))
|
1633 |
-
$this->Error('Error while saving to temporary file');
|
1634 |
-
imagedestroy($im);
|
1635 |
-
$info = $this->_parsepng($tmp);
|
1636 |
-
unlink($tmp);
|
1637 |
-
}
|
1638 |
-
return $info;
|
1639 |
-
}
|
1640 |
-
|
1641 |
-
function _newobj()
|
1642 |
-
{
|
1643 |
-
// Begin a new object
|
1644 |
-
$this->n++;
|
1645 |
-
$this->offsets[$this->n] = strlen($this->buffer);
|
1646 |
-
$this->_out($this->n.' 0 obj');
|
1647 |
-
}
|
1648 |
-
|
1649 |
-
function _putstream($s)
|
1650 |
-
{
|
1651 |
-
$this->_out('stream');
|
1652 |
-
$this->_out($s);
|
1653 |
-
$this->_out('endstream');
|
1654 |
-
}
|
1655 |
-
|
1656 |
-
function _out($s)
|
1657 |
-
{
|
1658 |
-
// Add a line to the document
|
1659 |
-
if($this->state==2)
|
1660 |
-
$this->pages[$this->page] .= $s."\n";
|
1661 |
-
else
|
1662 |
-
$this->buffer .= $s."\n";
|
1663 |
-
}
|
1664 |
-
|
1665 |
-
function _putpages()
|
1666 |
-
{
|
1667 |
-
$nb = $this->page;
|
1668 |
-
if(!empty($this->AliasNbPages))
|
1669 |
-
{
|
1670 |
-
// Replace number of pages in fonts using subsets
|
1671 |
-
$alias = $this->UTF8ToUTF16BE($this->AliasNbPages, false);
|
1672 |
-
$r = $this->UTF8ToUTF16BE("$nb", false);
|
1673 |
-
for($n=1;$n<=$nb;$n++)
|
1674 |
-
$this->pages[$n] = str_replace($alias,$r,$this->pages[$n]);
|
1675 |
-
// Now repeat for no pages in non-subset fonts
|
1676 |
-
for($n=1;$n<=$nb;$n++)
|
1677 |
-
$this->pages[$n] = str_replace($this->AliasNbPages,$nb,$this->pages[$n]);
|
1678 |
-
}
|
1679 |
-
if($this->DefOrientation=='P')
|
1680 |
-
{
|
1681 |
-
$wPt = $this->DefPageSize[0]*$this->k;
|
1682 |
-
$hPt = $this->DefPageSize[1]*$this->k;
|
1683 |
-
}
|
1684 |
-
else
|
1685 |
-
{
|
1686 |
-
$wPt = $this->DefPageSize[1]*$this->k;
|
1687 |
-
$hPt = $this->DefPageSize[0]*$this->k;
|
1688 |
-
}
|
1689 |
-
$filter = ($this->compress) ? '/Filter /FlateDecode ' : '';
|
1690 |
-
for($n=1;$n<=$nb;$n++)
|
1691 |
-
{
|
1692 |
-
// Page
|
1693 |
-
$this->_newobj();
|
1694 |
-
$this->_out('<</Type /Page');
|
1695 |
-
$this->_out('/Parent 1 0 R');
|
1696 |
-
if(isset($this->PageSizes[$n]))
|
1697 |
-
$this->_out(sprintf('/MediaBox [0 0 %.2F %.2F]',$this->PageSizes[$n][0],$this->PageSizes[$n][1]));
|
1698 |
-
$this->_out('/Resources 2 0 R');
|
1699 |
-
if(isset($this->PageLinks[$n]))
|
1700 |
-
{
|
1701 |
-
// Links
|
1702 |
-
$annots = '/Annots [';
|
1703 |
-
foreach($this->PageLinks[$n] as $pl)
|
1704 |
-
{
|
1705 |
-
$rect = sprintf('%.2F %.2F %.2F %.2F',$pl[0],$pl[1],$pl[0]+$pl[2],$pl[1]-$pl[3]);
|
1706 |
-
$annots .= '<</Type /Annot /Subtype /Link /Rect ['.$rect.'] /Border [0 0 0] ';
|
1707 |
-
if(is_string($pl[4]))
|
1708 |
-
$annots .= '/A <</S /URI /URI '.$this->_textstring($pl[4]).'>>>>';
|
1709 |
-
else
|
1710 |
-
{
|
1711 |
-
$l = $this->links[$pl[4]];
|
1712 |
-
$h = isset($this->PageSizes[$l[0]]) ? $this->PageSizes[$l[0]][1] : $hPt;
|
1713 |
-
$annots .= sprintf('/Dest [%d 0 R /XYZ 0 %.2F null]>>',1+2*$l[0],$h-$l[1]*$this->k);
|
1714 |
-
}
|
1715 |
-
}
|
1716 |
-
$this->_out($annots.']');
|
1717 |
-
}
|
1718 |
-
if($this->PDFVersion>'1.3')
|
1719 |
-
$this->_out('/Group <</Type /Group /S /Transparency /CS /DeviceRGB>>');
|
1720 |
-
$this->_out('/Contents '.($this->n+1).' 0 R>>');
|
1721 |
-
$this->_out('endobj');
|
1722 |
-
// Page content
|
1723 |
-
$p = ($this->compress) ? gzcompress($this->pages[$n]) : $this->pages[$n];
|
1724 |
-
$this->_newobj();
|
1725 |
-
$this->_out('<<'.$filter.'/Length '.strlen($p).'>>');
|
1726 |
-
$this->_putstream($p);
|
1727 |
-
$this->_out('endobj');
|
1728 |
-
}
|
1729 |
-
// Pages root
|
1730 |
-
$this->offsets[1] = strlen($this->buffer);
|
1731 |
-
$this->_out('1 0 obj');
|
1732 |
-
$this->_out('<</Type /Pages');
|
1733 |
-
$kids = '/Kids [';
|
1734 |
-
for($i=0;$i<$nb;$i++)
|
1735 |
-
$kids .= (3+2*$i).' 0 R ';
|
1736 |
-
$this->_out($kids.']');
|
1737 |
-
$this->_out('/Count '.$nb);
|
1738 |
-
$this->_out(sprintf('/MediaBox [0 0 %.2F %.2F]',$wPt,$hPt));
|
1739 |
-
$this->_out('>>');
|
1740 |
-
$this->_out('endobj');
|
1741 |
-
}
|
1742 |
-
|
1743 |
-
function _putfonts()
|
1744 |
-
{
|
1745 |
-
$nf=$this->n;
|
1746 |
-
foreach($this->diffs as $diff)
|
1747 |
-
{
|
1748 |
-
// Encodings
|
1749 |
-
$this->_newobj();
|
1750 |
-
$this->_out('<</Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences ['.$diff.']>>');
|
1751 |
-
$this->_out('endobj');
|
1752 |
-
}
|
1753 |
-
foreach($this->FontFiles as $file=>$info)
|
1754 |
-
{
|
1755 |
-
if (!isset($info['type']) || $info['type']!='TTF') {
|
1756 |
-
// Font file embedding
|
1757 |
-
$this->_newobj();
|
1758 |
-
$this->FontFiles[$file]['n']=$this->n;
|
1759 |
-
$font='';
|
1760 |
-
$f=fopen($this->_getfontpath().$file,'rb',1);
|
1761 |
-
if(!$f)
|
1762 |
-
$this->Error('Font file not found');
|
1763 |
-
while(!feof($f))
|
1764 |
-
$font.=fread($f,8192);
|
1765 |
-
fclose($f);
|
1766 |
-
$compressed=(substr($file,-2)=='.z');
|
1767 |
-
if(!$compressed && isset($info['length2']))
|
1768 |
-
{
|
1769 |
-
$header=(ord($font[0])==128);
|
1770 |
-
if($header)
|
1771 |
-
{
|
1772 |
-
// Strip first binary header
|
1773 |
-
$font=substr($font,6);
|
1774 |
-
}
|
1775 |
-
if($header && ord($font[$info['length1']])==128)
|
1776 |
-
{
|
1777 |
-
// Strip second binary header
|
1778 |
-
$font=substr($font,0,$info['length1']).substr($font,$info['length1']+6);
|
1779 |
-
}
|
1780 |
-
}
|
1781 |
-
$this->_out('<</Length '.strlen($font));
|
1782 |
-
if($compressed)
|
1783 |
-
$this->_out('/Filter /FlateDecode');
|
1784 |
-
$this->_out('/Length1 '.$info['length1']);
|
1785 |
-
if(isset($info['length2']))
|
1786 |
-
$this->_out('/Length2 '.$info['length2'].' /Length3 0');
|
1787 |
-
$this->_out('>>');
|
1788 |
-
$this->_putstream($font);
|
1789 |
-
$this->_out('endobj');
|
1790 |
-
}
|
1791 |
-
}
|
1792 |
-
foreach($this->fonts as $k=>$font)
|
1793 |
-
{
|
1794 |
-
// Font objects
|
1795 |
-
//$this->fonts[$k]['n']=$this->n+1;
|
1796 |
-
$type = $font['type'];
|
1797 |
-
$name = $font['name'];
|
1798 |
-
if($type=='Core')
|
1799 |
-
{
|
1800 |
-
// Standard font
|
1801 |
-
$this->fonts[$k]['n']=$this->n+1;
|
1802 |
-
$this->_newobj();
|
1803 |
-
$this->_out('<</Type /Font');
|
1804 |
-
$this->_out('/BaseFont /'.$name);
|
1805 |
-
$this->_out('/Subtype /Type1');
|
1806 |
-
if($name!='Symbol' && $name!='ZapfDingbats')
|
1807 |
-
$this->_out('/Encoding /WinAnsiEncoding');
|
1808 |
-
$this->_out('>>');
|
1809 |
-
$this->_out('endobj');
|
1810 |
-
}
|
1811 |
-
elseif($type=='Type1' || $type=='TrueType')
|
1812 |
-
{
|
1813 |
-
// Additional Type1 or TrueType font
|
1814 |
-
$this->fonts[$k]['n']=$this->n+1;
|
1815 |
-
$this->_newobj();
|
1816 |
-
$this->_out('<</Type /Font');
|
1817 |
-
$this->_out('/BaseFont /'.$name);
|
1818 |
-
$this->_out('/Subtype /'.$type);
|
1819 |
-
$this->_out('/FirstChar 32 /LastChar 255');
|
1820 |
-
$this->_out('/Widths '.($this->n+1).' 0 R');
|
1821 |
-
$this->_out('/FontDescriptor '.($this->n+2).' 0 R');
|
1822 |
-
if($font['enc'])
|
1823 |
-
{
|
1824 |
-
if(isset($font['diff']))
|
1825 |
-
$this->_out('/Encoding '.($nf+$font['diff']).' 0 R');
|
1826 |
-
else
|
1827 |
-
$this->_out('/Encoding /WinAnsiEncoding');
|
1828 |
-
}
|
1829 |
-
$this->_out('>>');
|
1830 |
-
$this->_out('endobj');
|
1831 |
-
// Widths
|
1832 |
-
$this->_newobj();
|
1833 |
-
$cw=&$font['cw'];
|
1834 |
-
$s='[';
|
1835 |
-
for($i=32;$i<=255;$i++)
|
1836 |
-
$s.=$cw[chr($i)].' ';
|
1837 |
-
$this->_out($s.']');
|
1838 |
-
$this->_out('endobj');
|
1839 |
-
// Descriptor
|
1840 |
-
$this->_newobj();
|
1841 |
-
$s='<</Type /FontDescriptor /FontName /'.$name;
|
1842 |
-
foreach($font['desc'] as $k=>$v)
|
1843 |
-
$s.=' /'.$k.' '.$v;
|
1844 |
-
$file=$font['file'];
|
1845 |
-
if($file)
|
1846 |
-
$s.=' /FontFile'.($type=='Type1' ? '' : '2').' '.$this->FontFiles[$file]['n'].' 0 R';
|
1847 |
-
$this->_out($s.'>>');
|
1848 |
-
$this->_out('endobj');
|
1849 |
-
}
|
1850 |
-
// TrueType embedded SUBSETS or FULL
|
1851 |
-
else if ($type=='TTF') {
|
1852 |
-
$this->fonts[$k]['n']=$this->n+1;
|
1853 |
-
require_once($this->_getfontpath().'unifont/ttfonts.php');
|
1854 |
-
$ttf = new TTFontFile();
|
1855 |
-
$fontname = 'MPDFAA'.'+'.$font['name'];
|
1856 |
-
$subset = $font['subset'];
|
1857 |
-
unset($subset[0]);
|
1858 |
-
$ttfontstream = $ttf->makeSubset($font['ttffile'], $subset);
|
1859 |
-
$ttfontsize = strlen($ttfontstream);
|
1860 |
-
$fontstream = gzcompress($ttfontstream);
|
1861 |
-
$codeToGlyph = $ttf->codeToGlyph;
|
1862 |
-
unset($codeToGlyph[0]);
|
1863 |
-
|
1864 |
-
// Type0 Font
|
1865 |
-
// A composite font - a font composed of other fonts, organized hierarchically
|
1866 |
-
$this->_newobj();
|
1867 |
-
$this->_out('<</Type /Font');
|
1868 |
-
$this->_out('/Subtype /Type0');
|
1869 |
-
$this->_out('/BaseFont /'.$fontname.'');
|
1870 |
-
$this->_out('/Encoding /Identity-H');
|
1871 |
-
$this->_out('/DescendantFonts ['.($this->n + 1).' 0 R]');
|
1872 |
-
$this->_out('/ToUnicode '.($this->n + 2).' 0 R');
|
1873 |
-
$this->_out('>>');
|
1874 |
-
$this->_out('endobj');
|
1875 |
-
|
1876 |
-
// CIDFontType2
|
1877 |
-
// A CIDFont whose glyph descriptions are based on TrueType font technology
|
1878 |
-
$this->_newobj();
|
1879 |
-
$this->_out('<</Type /Font');
|
1880 |
-
$this->_out('/Subtype /CIDFontType2');
|
1881 |
-
$this->_out('/BaseFont /'.$fontname.'');
|
1882 |
-
$this->_out('/CIDSystemInfo '.($this->n + 2).' 0 R');
|
1883 |
-
$this->_out('/FontDescriptor '.($this->n + 3).' 0 R');
|
1884 |
-
if (isset($font['desc']['MissingWidth'])){
|
1885 |
-
$this->_out('/DW '.$font['desc']['MissingWidth'].'');
|
1886 |
-
}
|
1887 |
-
|
1888 |
-
$this->_putTTfontwidths($font, $ttf->maxUni);
|
1889 |
-
|
1890 |
-
$this->_out('/CIDToGIDMap '.($this->n + 4).' 0 R');
|
1891 |
-
$this->_out('>>');
|
1892 |
-
$this->_out('endobj');
|
1893 |
-
|
1894 |
-
// ToUnicode
|
1895 |
-
$this->_newobj();
|
1896 |
-
$toUni = "/CIDInit /ProcSet findresource begin\n";
|
1897 |
-
$toUni .= "12 dict begin\n";
|
1898 |
-
$toUni .= "begincmap\n";
|
1899 |
-
$toUni .= "/CIDSystemInfo\n";
|
1900 |
-
$toUni .= "<</Registry (Adobe)\n";
|
1901 |
-
$toUni .= "/Ordering (UCS)\n";
|
1902 |
-
$toUni .= "/Supplement 0\n";
|
1903 |
-
$toUni .= ">> def\n";
|
1904 |
-
$toUni .= "/CMapName /Adobe-Identity-UCS def\n";
|
1905 |
-
$toUni .= "/CMapType 2 def\n";
|
1906 |
-
$toUni .= "1 begincodespacerange\n";
|
1907 |
-
$toUni .= "<0000> <FFFF>\n";
|
1908 |
-
$toUni .= "endcodespacerange\n";
|
1909 |
-
$toUni .= "1 beginbfrange\n";
|
1910 |
-
$toUni .= "<0000> <FFFF> <0000>\n";
|
1911 |
-
$toUni .= "endbfrange\n";
|
1912 |
-
$toUni .= "endcmap\n";
|
1913 |
-
$toUni .= "CMapName currentdict /CMap defineresource pop\n";
|
1914 |
-
$toUni .= "end\n";
|
1915 |
-
$toUni .= "end";
|
1916 |
-
$this->_out('<</Length '.(strlen($toUni)).'>>');
|
1917 |
-
$this->_putstream($toUni);
|
1918 |
-
$this->_out('endobj');
|
1919 |
-
|
1920 |
-
// CIDSystemInfo dictionary
|
1921 |
-
$this->_newobj();
|
1922 |
-
$this->_out('<</Registry (Adobe)');
|
1923 |
-
$this->_out('/Ordering (UCS)');
|
1924 |
-
$this->_out('/Supplement 0');
|
1925 |
-
$this->_out('>>');
|
1926 |
-
$this->_out('endobj');
|
1927 |
-
|
1928 |
-
// Font descriptor
|
1929 |
-
$this->_newobj();
|
1930 |
-
$this->_out('<</Type /FontDescriptor');
|
1931 |
-
$this->_out('/FontName /'.$fontname);
|
1932 |
-
foreach($font['desc'] as $kd=>$v) {
|
1933 |
-
if ($kd == 'Flags') { $v = $v | 4; $v = $v & ~32; } // SYMBOLIC font flag
|
1934 |
-
$this->_out(' /'.$kd.' '.$v);
|
1935 |
-
}
|
1936 |
-
$this->_out('/FontFile2 '.($this->n + 2).' 0 R');
|
1937 |
-
$this->_out('>>');
|
1938 |
-
$this->_out('endobj');
|
1939 |
-
|
1940 |
-
// Embed CIDToGIDMap
|
1941 |
-
// A specification of the mapping from CIDs to glyph indices
|
1942 |
-
$cidtogidmap = '';
|
1943 |
-
$cidtogidmap = str_pad('', 256*256*2, "\x00");
|
1944 |
-
foreach($codeToGlyph as $cc=>$glyph) {
|
1945 |
-
$cidtogidmap[$cc*2] = chr($glyph >> 8);
|
1946 |
-
$cidtogidmap[$cc*2 + 1] = chr($glyph & 0xFF);
|
1947 |
-
}
|
1948 |
-
$cidtogidmap = gzcompress($cidtogidmap);
|
1949 |
-
$this->_newobj();
|
1950 |
-
$this->_out('<</Length '.strlen($cidtogidmap).'');
|
1951 |
-
$this->_out('/Filter /FlateDecode');
|
1952 |
-
$this->_out('>>');
|
1953 |
-
$this->_putstream($cidtogidmap);
|
1954 |
-
$this->_out('endobj');
|
1955 |
-
|
1956 |
-
//Font file
|
1957 |
-
$this->_newobj();
|
1958 |
-
$this->_out('<</Length '.strlen($fontstream));
|
1959 |
-
$this->_out('/Filter /FlateDecode');
|
1960 |
-
$this->_out('/Length1 '.$ttfontsize);
|
1961 |
-
$this->_out('>>');
|
1962 |
-
$this->_putstream($fontstream);
|
1963 |
-
$this->_out('endobj');
|
1964 |
-
unset($ttf);
|
1965 |
-
}
|
1966 |
-
else
|
1967 |
-
{
|
1968 |
-
// Allow for additional types
|
1969 |
-
$this->fonts[$k]['n'] = $this->n+1;
|
1970 |
-
$mtd='_put'.strtolower($type);
|
1971 |
-
if(!method_exists($this,$mtd))
|
1972 |
-
$this->Error('Unsupported font type: '.$type);
|
1973 |
-
$this->$mtd($font);
|
1974 |
-
}
|
1975 |
-
}
|
1976 |
-
}
|
1977 |
-
|
1978 |
-
function _putTTfontwidths(&$font, $maxUni) {
|
1979 |
-
if (file_exists($font['unifilename'].'.cw127.php')) {
|
1980 |
-
include($font['unifilename'].'.cw127.php') ;
|
1981 |
-
$startcid = 128;
|
1982 |
-
}
|
1983 |
-
else {
|
1984 |
-
$rangeid = 0;
|
1985 |
-
$range = array();
|
1986 |
-
$prevcid = -2;
|
1987 |
-
$prevwidth = -1;
|
1988 |
-
$interval = false;
|
1989 |
-
$startcid = 1;
|
1990 |
-
}
|
1991 |
-
$cwlen = $maxUni + 1;
|
1992 |
-
|
1993 |
-
// for each character
|
1994 |
-
for ($cid=$startcid; $cid<$cwlen; $cid++) {
|
1995 |
-
if ($cid==128 && (!file_exists($font['unifilename'].'.cw127.php'))) {
|
1996 |
-
if (is_writable(dirname($this->_getfontpath().'unifont/x'))) {
|
1997 |
-
$fh = fopen($font['unifilename'].'.cw127.php',"wb");
|
1998 |
-
$cw127='<?php'."\n";
|
1999 |
-
$cw127.='$rangeid='.$rangeid.";\n";
|
2000 |
-
$cw127.='$prevcid='.$prevcid.";\n";
|
2001 |
-
$cw127.='$prevwidth='.$prevwidth.";\n";
|
2002 |
-
if ($interval) { $cw127.='$interval=true'.";\n"; }
|
2003 |
-
else { $cw127.='$interval=false'.";\n"; }
|
2004 |
-
$cw127.='$range='.var_export($range,true).";\n";
|
2005 |
-
$cw127.="?>";
|
2006 |
-
fwrite($fh,$cw127,strlen($cw127));
|
2007 |
-
fclose($fh);
|
2008 |
-
}
|
2009 |
-
}
|
2010 |
-
if ($font['cw'][$cid*2] == "\00" && $font['cw'][$cid*2+1] == "\00") { continue; }
|
2011 |
-
$width = (ord($font['cw'][$cid*2]) << 8) + ord($font['cw'][$cid*2+1]);
|
2012 |
-
if ($width == 65535) { $width = 0; }
|
2013 |
-
if ($cid > 255 && (!isset($font['subset'][$cid]) || !$font['subset'][$cid])) { continue; }
|
2014 |
-
if (!isset($font['dw']) || (isset($font['dw']) && $width != $font['dw'])) {
|
2015 |
-
if ($cid == ($prevcid + 1)) {
|
2016 |
-
if ($width == $prevwidth) {
|
2017 |
-
if ($width == $range[$rangeid][0]) {
|
2018 |
-
$range[$rangeid][] = $width;
|
2019 |
-
}
|
2020 |
-
else {
|
2021 |
-
array_pop($range[$rangeid]);
|
2022 |
-
// new range
|
2023 |
-
$rangeid = $prevcid;
|
2024 |
-
$range[$rangeid] = array();
|
2025 |
-
$range[$rangeid][] = $prevwidth;
|
2026 |
-
$range[$rangeid][] = $width;
|
2027 |
-
}
|
2028 |
-
$interval = true;
|
2029 |
-
$range[$rangeid]['interval'] = true;
|
2030 |
-
} else {
|
2031 |
-
if ($interval) {
|
2032 |
-
// new range
|
2033 |
-
$rangeid = $cid;
|
2034 |
-
$range[$rangeid] = array();
|
2035 |
-
$range[$rangeid][] = $width;
|
2036 |
-
}
|
2037 |
-
else { $range[$rangeid][] = $width; }
|
2038 |
-
$interval = false;
|
2039 |
-
}
|
2040 |
-
} else {
|
2041 |
-
$rangeid = $cid;
|
2042 |
-
$range[$rangeid] = array();
|
2043 |
-
$range[$rangeid][] = $width;
|
2044 |
-
$interval = false;
|
2045 |
-
}
|
2046 |
-
$prevcid = $cid;
|
2047 |
-
$prevwidth = $width;
|
2048 |
-
}
|
2049 |
-
}
|
2050 |
-
$prevk = -1;
|
2051 |
-
$nextk = -1;
|
2052 |
-
$prevint = false;
|
2053 |
-
foreach ($range as $k => $ws) {
|
2054 |
-
$cws = count($ws);
|
2055 |
-
if (($k == $nextk) AND (!$prevint) AND ((!isset($ws['interval'])) OR ($cws < 4))) {
|
2056 |
-
if (isset($range[$k]['interval'])) { unset($range[$k]['interval']); }
|
2057 |
-
$range[$prevk] = array_merge($range[$prevk], $range[$k]);
|
2058 |
-
unset($range[$k]);
|
2059 |
-
}
|
2060 |
-
else { $prevk = $k; }
|
2061 |
-
$nextk = $k + $cws;
|
2062 |
-
if (isset($ws['interval'])) {
|
2063 |
-
if ($cws > 3) { $prevint = true; }
|
2064 |
-
else { $prevint = false; }
|
2065 |
-
unset($range[$k]['interval']);
|
2066 |
-
--$nextk;
|
2067 |
-
}
|
2068 |
-
else { $prevint = false; }
|
2069 |
-
}
|
2070 |
-
$w = '';
|
2071 |
-
foreach ($range as $k => $ws) {
|
2072 |
-
if (count(array_count_values($ws)) == 1) { $w .= ' '.$k.' '.($k + count($ws) - 1).' '.$ws[0]; }
|
2073 |
-
else { $w .= ' '.$k.' [ '.implode(' ', $ws).' ]' . "\n"; }
|
2074 |
-
}
|
2075 |
-
$this->_out('/W ['.$w.' ]');
|
2076 |
-
}
|
2077 |
-
|
2078 |
-
function _putimages()
|
2079 |
-
{
|
2080 |
-
foreach(array_keys($this->images) as $file)
|
2081 |
-
{
|
2082 |
-
$this->_putimage($this->images[$file]);
|
2083 |
-
unset($this->images[$file]['data']);
|
2084 |
-
unset($this->images[$file]['smask']);
|
2085 |
-
}
|
2086 |
-
}
|
2087 |
-
|
2088 |
-
function _putimage(&$info)
|
2089 |
-
{
|
2090 |
-
$this->_newobj();
|
2091 |
-
$info['n'] = $this->n;
|
2092 |
-
$this->_out('<</Type /XObject');
|
2093 |
-
$this->_out('/Subtype /Image');
|
2094 |
-
$this->_out('/Width '.$info['w']);
|
2095 |
-
$this->_out('/Height '.$info['h']);
|
2096 |
-
if($info['cs']=='Indexed')
|
2097 |
-
$this->_out('/ColorSpace [/Indexed /DeviceRGB '.(strlen($info['pal'])/3-1).' '.($this->n+1).' 0 R]');
|
2098 |
-
else
|
2099 |
-
{
|
2100 |
-
$this->_out('/ColorSpace /'.$info['cs']);
|
2101 |
-
if($info['cs']=='DeviceCMYK')
|
2102 |
-
$this->_out('/Decode [1 0 1 0 1 0 1 0]');
|
2103 |
-
}
|
2104 |
-
$this->_out('/BitsPerComponent '.$info['bpc']);
|
2105 |
-
if(isset($info['f']))
|
2106 |
-
$this->_out('/Filter /'.$info['f']);
|
2107 |
-
if(isset($info['dp']))
|
2108 |
-
$this->_out('/DecodeParms <<'.$info['dp'].'>>');
|
2109 |
-
if(isset($info['trns']) && is_array($info['trns']))
|
2110 |
-
{
|
2111 |
-
$trns = '';
|
2112 |
-
for($i=0;$i<count($info['trns']);$i++)
|
2113 |
-
$trns .= $info['trns'][$i].' '.$info['trns'][$i].' ';
|
2114 |
-
$this->_out('/Mask ['.$trns.']');
|
2115 |
-
}
|
2116 |
-
if(isset($info['smask']))
|
2117 |
-
$this->_out('/SMask '.($this->n+1).' 0 R');
|
2118 |
-
$this->_out('/Length '.strlen($info['data']).'>>');
|
2119 |
-
$this->_putstream($info['data']);
|
2120 |
-
$this->_out('endobj');
|
2121 |
-
// Soft mask
|
2122 |
-
if(isset($info['smask']))
|
2123 |
-
{
|
2124 |
-
$dp = '/Predictor 15 /Colors 1 /BitsPerComponent 8 /Columns '.$info['w'];
|
2125 |
-
$smask = array('w'=>$info['w'], 'h'=>$info['h'], 'cs'=>'DeviceGray', 'bpc'=>8, 'f'=>$info['f'], 'dp'=>$dp, 'data'=>$info['smask']);
|
2126 |
-
$this->_putimage($smask);
|
2127 |
-
}
|
2128 |
-
// Palette
|
2129 |
-
if($info['cs']=='Indexed')
|
2130 |
-
{
|
2131 |
-
$filter = ($this->compress) ? '/Filter /FlateDecode ' : '';
|
2132 |
-
$pal = ($this->compress) ? gzcompress($info['pal']) : $info['pal'];
|
2133 |
-
$this->_newobj();
|
2134 |
-
$this->_out('<<'.$filter.'/Length '.strlen($pal).'>>');
|
2135 |
-
$this->_putstream($pal);
|
2136 |
-
$this->_out('endobj');
|
2137 |
-
}
|
2138 |
-
}
|
2139 |
-
|
2140 |
-
function _putxobjectdict()
|
2141 |
-
{
|
2142 |
-
foreach($this->images as $image)
|
2143 |
-
$this->_out('/I'.$image['i'].' '.$image['n'].' 0 R');
|
2144 |
-
}
|
2145 |
-
|
2146 |
-
function _putresourcedict()
|
2147 |
-
{
|
2148 |
-
$this->_out('/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]');
|
2149 |
-
$this->_out('/Font <<');
|
2150 |
-
foreach($this->fonts as $font) {
|
2151 |
-
$this->_out('/F'.$font['i'].' '.$font['n'].' 0 R');
|
2152 |
-
}
|
2153 |
-
$this->_out('>>');
|
2154 |
-
$this->_out('/XObject <<');
|
2155 |
-
$this->_putxobjectdict();
|
2156 |
-
$this->_out('>>');
|
2157 |
-
}
|
2158 |
-
|
2159 |
-
function _putresources()
|
2160 |
-
{
|
2161 |
-
$this->_putfonts();
|
2162 |
-
$this->_putimages();
|
2163 |
-
// Resource dictionary
|
2164 |
-
$this->offsets[2] = strlen($this->buffer);
|
2165 |
-
$this->_out('2 0 obj');
|
2166 |
-
$this->_out('<<');
|
2167 |
-
$this->_putresourcedict();
|
2168 |
-
$this->_out('>>');
|
2169 |
-
$this->_out('endobj');
|
2170 |
-
}
|
2171 |
-
|
2172 |
-
function _putinfo()
|
2173 |
-
{
|
2174 |
-
$this->_out('/Producer '.$this->_textstring('tFPDF '.tFPDF_VERSION));
|
2175 |
-
if(!empty($this->title))
|
2176 |
-
$this->_out('/Title '.$this->_textstring($this->title));
|
2177 |
-
if(!empty($this->subject))
|
2178 |
-
$this->_out('/Subject '.$this->_textstring($this->subject));
|
2179 |
-
if(!empty($this->author))
|
2180 |
-
$this->_out('/Author '.$this->_textstring($this->author));
|
2181 |
-
if(!empty($this->keywords))
|
2182 |
-
$this->_out('/Keywords '.$this->_textstring($this->keywords));
|
2183 |
-
if(!empty($this->creator))
|
2184 |
-
$this->_out('/Creator '.$this->_textstring($this->creator));
|
2185 |
-
$this->_out('/CreationDate '.$this->_textstring('D:'.@date('YmdHis')));
|
2186 |
-
}
|
2187 |
-
|
2188 |
-
function _putcatalog()
|
2189 |
-
{
|
2190 |
-
$this->_out('/Type /Catalog');
|
2191 |
-
$this->_out('/Pages 1 0 R');
|
2192 |
-
if($this->ZoomMode=='fullpage')
|
2193 |
-
$this->_out('/OpenAction [3 0 R /Fit]');
|
2194 |
-
elseif($this->ZoomMode=='fullwidth')
|
2195 |
-
$this->_out('/OpenAction [3 0 R /FitH null]');
|
2196 |
-
elseif($this->ZoomMode=='real')
|
2197 |
-
$this->_out('/OpenAction [3 0 R /XYZ null null 1]');
|
2198 |
-
elseif(!is_string($this->ZoomMode))
|
2199 |
-
$this->_out('/OpenAction [3 0 R /XYZ null null '.sprintf('%.2F',$this->ZoomMode/100).']');
|
2200 |
-
if($this->LayoutMode=='single')
|
2201 |
-
$this->_out('/PageLayout /SinglePage');
|
2202 |
-
elseif($this->LayoutMode=='continuous')
|
2203 |
-
$this->_out('/PageLayout /OneColumn');
|
2204 |
-
elseif($this->LayoutMode=='two')
|
2205 |
-
$this->_out('/PageLayout /TwoColumnLeft');
|
2206 |
-
}
|
2207 |
-
|
2208 |
-
function _putheader()
|
2209 |
-
{
|
2210 |
-
$this->_out('%PDF-'.$this->PDFVersion);
|
2211 |
-
}
|
2212 |
-
|
2213 |
-
function _puttrailer()
|
2214 |
-
{
|
2215 |
-
$this->_out('/Size '.($this->n+1));
|
2216 |
-
$this->_out('/Root '.$this->n.' 0 R');
|
2217 |
-
$this->_out('/Info '.($this->n-1).' 0 R');
|
2218 |
-
}
|
2219 |
-
|
2220 |
-
function _enddoc()
|
2221 |
-
{
|
2222 |
-
$this->_putheader();
|
2223 |
-
$this->_putpages();
|
2224 |
-
$this->_putresources();
|
2225 |
-
// Info
|
2226 |
-
$this->_newobj();
|
2227 |
-
$this->_out('<<');
|
2228 |
-
$this->_putinfo();
|
2229 |
-
$this->_out('>>');
|
2230 |
-
$this->_out('endobj');
|
2231 |
-
// Catalog
|
2232 |
-
$this->_newobj();
|
2233 |
-
$this->_out('<<');
|
2234 |
-
$this->_putcatalog();
|
2235 |
-
$this->_out('>>');
|
2236 |
-
$this->_out('endobj');
|
2237 |
-
// Cross-ref
|
2238 |
-
$o = strlen($this->buffer);
|
2239 |
-
$this->_out('xref');
|
2240 |
-
$this->_out('0 '.($this->n+1));
|
2241 |
-
$this->_out('0000000000 65535 f ');
|
2242 |
-
for($i=1;$i<=$this->n;$i++)
|
2243 |
-
$this->_out(sprintf('%010d 00000 n ',$this->offsets[$i]));
|
2244 |
-
// Trailer
|
2245 |
-
$this->_out('trailer');
|
2246 |
-
$this->_out('<<');
|
2247 |
-
$this->_puttrailer();
|
2248 |
-
$this->_out('>>');
|
2249 |
-
$this->_out('startxref');
|
2250 |
-
$this->_out($o);
|
2251 |
-
$this->_out('%%EOF');
|
2252 |
-
$this->state = 3;
|
2253 |
-
}
|
2254 |
-
|
2255 |
-
// ********* NEW FUNCTIONS *********
|
2256 |
-
// Converts UTF-8 strings to UTF16-BE.
|
2257 |
-
function UTF8ToUTF16BE($str, $setbom=true) {
|
2258 |
-
$outstr = "";
|
2259 |
-
if ($setbom) {
|
2260 |
-
$outstr .= "\xFE\xFF"; // Byte Order Mark (BOM)
|
2261 |
-
}
|
2262 |
-
$outstr .= mb_convert_encoding($str, 'UTF-16BE', 'UTF-8');
|
2263 |
-
return $outstr;
|
2264 |
-
}
|
2265 |
-
|
2266 |
-
// Converts UTF-8 strings to codepoints array
|
2267 |
-
function UTF8StringToArray($str) {
|
2268 |
-
$out = array();
|
2269 |
-
$len = strlen($str);
|
2270 |
-
for ($i = 0; $i < $len; $i++) {
|
2271 |
-
$uni = -1;
|
2272 |
-
$h = ord($str[$i]);
|
2273 |
-
if ( $h <= 0x7F )
|
2274 |
-
$uni = $h;
|
2275 |
-
elseif ( $h >= 0xC2 ) {
|
2276 |
-
if ( ($h <= 0xDF) && ($i < $len -1) )
|
2277 |
-
$uni = ($h & 0x1F) << 6 | (ord($str[++$i]) & 0x3F);
|
2278 |
-
elseif ( ($h <= 0xEF) && ($i < $len -2) )
|
2279 |
-
$uni = ($h & 0x0F) << 12 | (ord($str[++$i]) & 0x3F) << 6
|
2280 |
-
| (ord($str[++$i]) & 0x3F);
|
2281 |
-
elseif ( ($h <= 0xF4) && ($i < $len -3) )
|
2282 |
-
$uni = ($h & 0x0F) << 18 | (ord($str[++$i]) & 0x3F) << 12
|
2283 |
-
| (ord($str[++$i]) & 0x3F) << 6
|
2284 |
-
| (ord($str[++$i]) & 0x3F);
|
2285 |
-
}
|
2286 |
-
if ($uni >= 0) {
|
2287 |
-
$out[] = $uni;
|
2288 |
-
}
|
2289 |
-
}
|
2290 |
-
return $out;
|
2291 |
-
}
|
2292 |
-
}
|
2293 |
-
|
2294 |
-
// Handle special IE contype request
|
2295 |
-
if(isset($_SERVER['HTTP_USER_AGENT']) && $_SERVER['HTTP_USER_AGENT'] == 'contype')
|
2296 |
-
{
|
2297 |
-
header('Content-Type: application/pdf');
|
2298 |
-
exit;
|
2299 |
-
}
|
1 |
<?php
|
2 |
+
/*******************************************************************************
|
3 |
+
* tFPDF (based on FPDF 1.82) *
|
4 |
+
* *
|
5 |
+
* Version: 1.32 *
|
6 |
+
* Date: 2020-08-29 *
|
7 |
+
* Authors: Ian Back <ianb@bpm1.com> *
|
8 |
+
* Tycho Veltmeijer <tfpdf@tychoveltmeijer.nl> (versions 1.30+) *
|
9 |
+
* License: LGPL *
|
10 |
+
*******************************************************************************/
|
11 |
+
|
12 |
+
define('tFPDF_VERSION','1.32');
|
13 |
|
14 |
+
class tFPDF
|
15 |
+
{
|
16 |
+
protected $unifontSubset;
|
17 |
+
protected $page; // current page number
|
18 |
+
protected $n; // current object number
|
19 |
+
protected $offsets; // array of object offsets
|
20 |
+
protected $buffer; // buffer holding in-memory PDF
|
21 |
+
protected $pages; // array containing pages
|
22 |
+
protected $state; // current document state
|
23 |
+
protected $compress; // compression flag
|
24 |
+
protected $k; // scale factor (number of points in user unit)
|
25 |
+
protected $DefOrientation; // default orientation
|
26 |
+
protected $CurOrientation; // current orientation
|
27 |
+
protected $StdPageSizes; // standard page sizes
|
28 |
+
protected $DefPageSize; // default page size
|
29 |
+
protected $CurPageSize; // current page size
|
30 |
+
protected $CurRotation; // current page rotation
|
31 |
+
protected $PageInfo; // page-related data
|
32 |
+
protected $wPt, $hPt; // dimensions of current page in points
|
33 |
+
protected $w, $h; // dimensions of current page in user unit
|
34 |
+
protected $lMargin; // left margin
|
35 |
+
protected $tMargin; // top margin
|
36 |
+
protected $rMargin; // right margin
|
37 |
+
protected $bMargin; // page break margin
|
38 |
+
protected $cMargin; // cell margin
|
39 |
+
protected $x, $y; // current position in user unit
|
40 |
+
protected $lasth; // height of last printed cell
|
41 |
+
protected $LineWidth; // line width in user unit
|
42 |
+
protected $fontpath; // path containing fonts
|
43 |
+
protected $CoreFonts; // array of core font names
|
44 |
+
protected $fonts; // array of used fonts
|
45 |
+
protected $FontFiles; // array of font files
|
46 |
+
protected $encodings; // array of encodings
|
47 |
+
protected $cmaps; // array of ToUnicode CMaps
|
48 |
+
protected $FontFamily; // current font family
|
49 |
+
protected $FontStyle; // current font style
|
50 |
+
protected $underline; // underlining flag
|
51 |
+
protected $CurrentFont; // current font info
|
52 |
+
protected $FontSizePt; // current font size in points
|
53 |
+
protected $FontSize; // current font size in user unit
|
54 |
+
protected $DrawColor; // commands for drawing color
|
55 |
+
protected $FillColor; // commands for filling color
|
56 |
+
protected $TextColor; // commands for text color
|
57 |
+
protected $ColorFlag; // indicates whether fill and text colors are different
|
58 |
+
protected $WithAlpha; // indicates whether alpha channel is used
|
59 |
+
protected $ws; // word spacing
|
60 |
+
protected $images; // array of used images
|
61 |
+
protected $PageLinks; // array of links in pages
|
62 |
+
protected $links; // array of internal links
|
63 |
+
protected $AutoPageBreak; // automatic page breaking
|
64 |
+
protected $PageBreakTrigger; // threshold used to trigger page breaks
|
65 |
+
protected $InHeader; // flag set when processing header
|
66 |
+
protected $InFooter; // flag set when processing footer
|
67 |
+
protected $AliasNbPages; // alias for total number of pages
|
68 |
+
protected $ZoomMode; // zoom display mode
|
69 |
+
protected $LayoutMode; // layout display mode
|
70 |
+
protected $metadata; // document properties
|
71 |
+
protected $PDFVersion; // PDF version number
|
72 |
+
|
73 |
+
/*******************************************************************************
|
74 |
+
* Public methods *
|
75 |
+
*******************************************************************************/
|
76 |
+
|
77 |
+
function __construct($orientation='P', $unit='mm', $size='A4')
|
78 |
+
{
|
79 |
+
// Some checks
|
80 |
+
$this->_dochecks();
|
81 |
+
// Initialization of properties
|
82 |
+
$this->state = 0;
|
83 |
+
$this->page = 0;
|
84 |
+
$this->n = 2;
|
85 |
+
$this->buffer = '';
|
86 |
+
$this->pages = array();
|
87 |
+
$this->PageInfo = array();
|
88 |
+
$this->fonts = array();
|
89 |
+
$this->FontFiles = array();
|
90 |
+
$this->encodings = array();
|
91 |
+
$this->cmaps = array();
|
92 |
+
$this->images = array();
|
93 |
+
$this->links = array();
|
94 |
+
$this->InHeader = false;
|
95 |
+
$this->InFooter = false;
|
96 |
+
$this->lasth = 0;
|
97 |
+
$this->FontFamily = '';
|
98 |
+
$this->FontStyle = '';
|
99 |
+
$this->FontSizePt = 12;
|
100 |
+
$this->underline = false;
|
101 |
+
$this->DrawColor = '0 G';
|
102 |
+
$this->FillColor = '0 g';
|
103 |
+
$this->TextColor = '0 g';
|
104 |
+
$this->ColorFlag = false;
|
105 |
+
$this->WithAlpha = false;
|
106 |
+
$this->ws = 0;
|
107 |
+
// Font path
|
108 |
+
if(defined('FPDF_FONTPATH'))
|
109 |
+
{
|
110 |
+
$this->fontpath = FPDF_FONTPATH;
|
111 |
+
if(substr($this->fontpath,-1)!='/' && substr($this->fontpath,-1)!='\\')
|
112 |
+
$this->fontpath .= '/';
|
113 |
+
}
|
114 |
+
elseif(is_dir(dirname(__FILE__).'/font'))
|
115 |
+
$this->fontpath = dirname(__FILE__).'/font/';
|
116 |
+
else
|
117 |
+
$this->fontpath = '';
|
118 |
+
// Core fonts
|
119 |
+
$this->CoreFonts = array('courier', 'helvetica', 'times', 'symbol', 'zapfdingbats');
|
120 |
+
// Scale factor
|
121 |
+
if($unit=='pt')
|
122 |
+
$this->k = 1;
|
123 |
+
elseif($unit=='mm')
|
124 |
+
$this->k = 72/25.4;
|
125 |
+
elseif($unit=='cm')
|
126 |
+
$this->k = 72/2.54;
|
127 |
+
elseif($unit=='in')
|
128 |
+
$this->k = 72;
|
129 |
+
else
|
130 |
+
$this->Error('Incorrect unit: '.$unit);
|
131 |
+
// Page sizes
|
132 |
+
$this->StdPageSizes = array('a3'=>array(841.89,1190.55), 'a4'=>array(595.28,841.89), 'a5'=>array(420.94,595.28),
|
133 |
+
'letter'=>array(612,792), 'legal'=>array(612,1008));
|
134 |
+
$size = $this->_getpagesize($size);
|
135 |
+
$this->DefPageSize = $size;
|
136 |
+
$this->CurPageSize = $size;
|
137 |
+
// Page orientation
|
138 |
+
$orientation = strtolower($orientation);
|
139 |
+
if($orientation=='p' || $orientation=='portrait')
|
140 |
+
{
|
141 |
+
$this->DefOrientation = 'P';
|
142 |
+
$this->w = $size[0];
|
143 |
+
$this->h = $size[1];
|
144 |
+
}
|
145 |
+
elseif($orientation=='l' || $orientation=='landscape')
|
146 |
+
{
|
147 |
+
$this->DefOrientation = 'L';
|
148 |
+
$this->w = $size[1];
|
149 |
+
$this->h = $size[0];
|
150 |
+
}
|
151 |
+
else
|
152 |
+
$this->Error('Incorrect orientation: '.$orientation);
|
153 |
+
$this->CurOrientation = $this->DefOrientation;
|
154 |
+
$this->wPt = $this->w*$this->k;
|
155 |
+
$this->hPt = $this->h*$this->k;
|
156 |
+
// Page rotation
|
157 |
+
$this->CurRotation = 0;
|
158 |
+
// Page margins (1 cm)
|
159 |
+
$margin = 28.35/$this->k;
|
160 |
+
$this->SetMargins($margin,$margin);
|
161 |
+
// Interior cell margin (1 mm)
|
162 |
+
$this->cMargin = $margin/10;
|
163 |
+
// Line width (0.2 mm)
|
164 |
+
$this->LineWidth = .567/$this->k;
|
165 |
+
// Automatic page break
|
166 |
+
$this->SetAutoPageBreak(true,2*$margin);
|
167 |
+
// Default display mode
|
168 |
+
$this->SetDisplayMode('default');
|
169 |
+
// Enable compression
|
170 |
+
$this->SetCompression(true);
|
171 |
+
// Set default PDF version number
|
172 |
+
$this->PDFVersion = '1.3';
|
173 |
+
}
|
174 |
|
175 |
+
function SetMargins($left, $top, $right=null)
|
176 |
+
{
|
177 |
+
// Set left, top and right margins
|
178 |
+
$this->lMargin = $left;
|
179 |
+
$this->tMargin = $top;
|
180 |
+
if($right===null)
|
181 |
+
$right = $left;
|
182 |
+
$this->rMargin = $right;
|
183 |
+
}
|
184 |
|
185 |
+
function SetLeftMargin($margin)
|
186 |
+
{
|
187 |
+
// Set left margin
|
188 |
+
$this->lMargin = $margin;
|
189 |
+
if($this->page>0 && $this->x<$margin)
|
190 |
+
$this->x = $margin;
|
191 |
+
}
|
192 |
+
|
193 |
+
function SetTopMargin($margin)
|
194 |
+
{
|
195 |
+
// Set top margin
|
196 |
+
$this->tMargin = $margin;
|
197 |
+
}
|
198 |
+
|
199 |
+
function SetRightMargin($margin)
|
200 |
+
{
|
201 |
+
// Set right margin
|
202 |
+
$this->rMargin = $margin;
|
203 |
+
}
|
204 |
+
|
205 |
+
function SetAutoPageBreak($auto, $margin=0)
|
206 |
+
{
|
207 |
+
// Set auto page break mode and triggering margin
|
208 |
+
$this->AutoPageBreak = $auto;
|
209 |
+
$this->bMargin = $margin;
|
210 |
+
$this->PageBreakTrigger = $this->h-$margin;
|
211 |
+
}
|
212 |
+
|
213 |
+
function SetDisplayMode($zoom, $layout='default')
|
214 |
+
{
|
215 |
+
// Set display mode in viewer
|
216 |
+
if($zoom=='fullpage' || $zoom=='fullwidth' || $zoom=='real' || $zoom=='default' || !is_string($zoom))
|
217 |
+
$this->ZoomMode = $zoom;
|
218 |
+
else
|
219 |
+
$this->Error('Incorrect zoom display mode: '.$zoom);
|
220 |
+
if($layout=='single' || $layout=='continuous' || $layout=='two' || $layout=='default')
|
221 |
+
$this->LayoutMode = $layout;
|
222 |
+
else
|
223 |
+
$this->Error('Incorrect layout display mode: '.$layout);
|
224 |
+
}
|
225 |
+
|
226 |
+
function SetCompression($compress)
|
227 |
+
{
|
228 |
+
// Set page compression
|
229 |
+
if(function_exists('gzcompress'))
|
230 |
+
$this->compress = $compress;
|
231 |
+
else
|
232 |
+
$this->compress = false;
|
233 |
+
}
|
234 |
+
|
235 |
+
function SetTitle($title, $isUTF8=false)
|
236 |
+
{
|
237 |
+
// Title of document
|
238 |
+
$this->metadata['Title'] = $isUTF8 ? $title : utf8_encode($title);
|
239 |
+
}
|
240 |
+
|
241 |
+
function SetAuthor($author, $isUTF8=false)
|
242 |
+
{
|
243 |
+
// Author of document
|
244 |
+
$this->metadata['Author'] = $isUTF8 ? $author : utf8_encode($author);
|
245 |
+
}
|
246 |
+
|
247 |
+
function SetSubject($subject, $isUTF8=false)
|
248 |
+
{
|
249 |
+
// Subject of document
|
250 |
+
$this->metadata['Subject'] = $isUTF8 ? $subject : utf8_encode($subject);
|
251 |
+
}
|
252 |
+
|
253 |
+
function SetKeywords($keywords, $isUTF8=false)
|
254 |
+
{
|
255 |
+
// Keywords of document
|
256 |
+
$this->metadata['Keywords'] = $isUTF8 ? $keywords : utf8_encode($keywords);
|
257 |
+
}
|
258 |
+
|
259 |
+
function SetCreator($creator, $isUTF8=false)
|
260 |
+
{
|
261 |
+
// Creator of document
|
262 |
+
$this->metadata['Creator'] = $isUTF8 ? $creator : utf8_encode($creator);
|
263 |
+
}
|
264 |
+
|
265 |
+
function AliasNbPages($alias='{nb}')
|
266 |
+
{
|
267 |
+
// Define an alias for total number of pages
|
268 |
+
$this->AliasNbPages = $alias;
|
269 |
+
}
|
270 |
+
|
271 |
+
function Error($msg)
|
272 |
+
{
|
273 |
+
// Fatal error
|
274 |
+
throw new Exception('FPDF error: '.$msg);
|
275 |
+
}
|
276 |
+
|
277 |
+
function Close()
|
278 |
+
{
|
279 |
+
// Terminate document
|
280 |
+
if($this->state==3)
|
281 |
+
return;
|
282 |
+
if($this->page==0)
|
283 |
+
$this->AddPage();
|
284 |
+
// Page footer
|
285 |
+
$this->InFooter = true;
|
286 |
+
$this->Footer();
|
287 |
+
$this->InFooter = false;
|
288 |
+
// Close page
|
289 |
+
$this->_endpage();
|
290 |
+
// Close document
|
291 |
+
$this->_enddoc();
|
292 |
+
}
|
293 |
+
|
294 |
+
function AddPage($orientation='', $size='', $rotation=0)
|
295 |
+
{
|
296 |
+
// Start a new page
|
297 |
+
if($this->state==3)
|
298 |
+
$this->Error('The document is closed');
|
299 |
+
$family = $this->FontFamily;
|
300 |
+
$style = $this->FontStyle.($this->underline ? 'U' : '');
|
301 |
+
$fontsize = $this->FontSizePt;
|
302 |
+
$lw = $this->LineWidth;
|
303 |
+
$dc = $this->DrawColor;
|
304 |
+
$fc = $this->FillColor;
|
305 |
+
$tc = $this->TextColor;
|
306 |
+
$cf = $this->ColorFlag;
|
307 |
+
if($this->page>0)
|
308 |
+
{
|
309 |
+
// Page footer
|
310 |
+
$this->InFooter = true;
|
311 |
+
$this->Footer();
|
312 |
+
$this->InFooter = false;
|
313 |
+
// Close page
|
314 |
+
$this->_endpage();
|
315 |
+
}
|
316 |
+
// Start new page
|
317 |
+
$this->_beginpage($orientation,$size,$rotation);
|
318 |
+
// Set line cap style to square
|
319 |
+
$this->_out('2 J');
|
320 |
+
// Set line width
|
321 |
+
$this->LineWidth = $lw;
|
322 |
+
$this->_out(sprintf('%.2F w',$lw*$this->k));
|
323 |
+
// Set font
|
324 |
+
if($family)
|
325 |
+
$this->SetFont($family,$style,$fontsize);
|
326 |
+
// Set colors
|
327 |
+
$this->DrawColor = $dc;
|
328 |
+
if($dc!='0 G')
|
329 |
+
$this->_out($dc);
|
330 |
+
$this->FillColor = $fc;
|
331 |
+
if($fc!='0 g')
|
332 |
+
$this->_out($fc);
|
333 |
+
$this->TextColor = $tc;
|
334 |
+
$this->ColorFlag = $cf;
|
335 |
+
// Page header
|
336 |
+
$this->InHeader = true;
|
337 |
+
$this->Header();
|
338 |
+
$this->InHeader = false;
|
339 |
+
// Restore line width
|
340 |
+
if($this->LineWidth!=$lw)
|
341 |
+
{
|
342 |
+
$this->LineWidth = $lw;
|
343 |
+
$this->_out(sprintf('%.2F w',$lw*$this->k));
|
344 |
+
}
|
345 |
+
// Restore font
|
346 |
+
if($family)
|
347 |
+
$this->SetFont($family,$style,$fontsize);
|
348 |
+
// Restore colors
|
349 |
+
if($this->DrawColor!=$dc)
|
350 |
+
{
|
351 |
+
$this->DrawColor = $dc;
|
352 |
+
$this->_out($dc);
|
353 |
+
}
|
354 |
+
if($this->FillColor!=$fc)
|
355 |
+
{
|
356 |
+
$this->FillColor = $fc;
|
357 |
+
$this->_out($fc);
|
358 |
+
}
|
359 |
+
$this->TextColor = $tc;
|
360 |
+
$this->ColorFlag = $cf;
|
361 |
+
}
|
362 |
+
|
363 |
+
function Header()
|
364 |
+
{
|
365 |
+
// To be implemented in your own inherited class
|
366 |
+
}
|
367 |
+
|
368 |
+
function Footer()
|
369 |
+
{
|
370 |
+
// To be implemented in your own inherited class
|
371 |
+
}
|
372 |
+
|
373 |
+
function PageNo()
|
374 |
+
{
|
375 |
+
// Get current page number
|
376 |
+
return $this->page;
|
377 |
+
}
|
378 |
+
|
379 |
+
function SetDrawColor($r, $g=null, $b=null)
|
380 |
+
{
|
381 |
+
// Set color for all stroking operations
|
382 |
+
if(($r==0 && $g==0 && $b==0) || $g===null)
|
383 |
+
$this->DrawColor = sprintf('%.3F G',$r/255);
|
384 |
+
else
|
385 |
+
$this->DrawColor = sprintf('%.3F %.3F %.3F RG',$r/255,$g/255,$b/255);
|
386 |
+
if($this->page>0)
|
387 |
+
$this->_out($this->DrawColor);
|
388 |
+
}
|
389 |
+
|
390 |
+
function SetFillColor($r, $g=null, $b=null)
|
391 |
+
{
|
392 |
+
// Set color for all filling operations
|
393 |
+
if(($r==0 && $g==0 && $b==0) || $g===null)
|
394 |
+
$this->FillColor = sprintf('%.3F g',$r/255);
|
395 |
+
else
|
396 |
+
$this->FillColor = sprintf('%.3F %.3F %.3F rg',$r/255,$g/255,$b/255);
|
397 |
+
$this->ColorFlag = ($this->FillColor!=$this->TextColor);
|
398 |
+
if($this->page>0)
|
399 |
+
$this->_out($this->FillColor);
|
400 |
+
}
|
401 |
+
|
402 |
+
function SetTextColor($r, $g=null, $b=null)
|
403 |
+
{
|
404 |
+
// Set color for text
|
405 |
+
if(($r==0 && $g==0 && $b==0) || $g===null)
|
406 |
+
$this->TextColor = sprintf('%.3F g',$r/255);
|
407 |
+
else
|
408 |
+
$this->TextColor = sprintf('%.3F %.3F %.3F rg',$r/255,$g/255,$b/255);
|
409 |
+
$this->ColorFlag = ($this->FillColor!=$this->TextColor);
|
410 |
+
}
|
411 |
+
|
412 |
+
function GetStringWidth($s)
|
413 |
+
{
|
414 |
+
// Get width of a string in the current font
|
415 |
+
$s = (string)$s;
|
416 |
+
$cw = &$this->CurrentFont['cw'];
|
417 |
+
$w=0;
|
418 |
+
if ($this->unifontSubset) {
|
419 |
+
$unicode = $this->UTF8StringToArray($s);
|
420 |
+
foreach($unicode as $char) {
|
421 |
+
if (isset($cw[2*$char])) { $w += (ord($cw[2*$char])<<8) + ord($cw[2*$char+1]); }
|
422 |
+
else if($char>0 && $char<128 && isset($cw[chr($char)])) { $w += $cw[chr($char)]; }
|
423 |
+
else if(isset($this->CurrentFont['desc']['MissingWidth'])) { $w += $this->CurrentFont['desc']['MissingWidth']; }
|
424 |
+
else if(isset($this->CurrentFont['MissingWidth'])) { $w += $this->CurrentFont['MissingWidth']; }
|
425 |
+
else { $w += 500; }
|
426 |
+
}
|
427 |
+
}
|
428 |
+
else {
|
429 |
+
$l = strlen($s);
|
430 |
+
for($i=0;$i<$l;$i++)
|
431 |
+
$w += $cw[$s[$i]];
|
432 |
+
}
|
433 |
+
return $w*$this->FontSize/1000;
|
434 |
+
}
|
435 |
+
|
436 |
+
function SetLineWidth($width)
|
437 |
+
{
|
438 |
+
// Set line width
|
439 |
+
$this->LineWidth = $width;
|
440 |
+
if($this->page>0)
|
441 |
+
$this->_out(sprintf('%.2F w',$width*$this->k));
|
442 |
+
}
|
443 |
+
|
444 |
+
function Line($x1, $y1, $x2, $y2)
|
445 |
+
{
|
446 |
+
// Draw a line
|
447 |
+
$this->_out(sprintf('%.2F %.2F m %.2F %.2F l S',$x1*$this->k,($this->h-$y1)*$this->k,$x2*$this->k,($this->h-$y2)*$this->k));
|
448 |
+
}
|
449 |
+
|
450 |
+
function Rect($x, $y, $w, $h, $style='')
|
451 |
+
{
|
452 |
+
// Draw a rectangle
|
453 |
+
if($style=='F')
|
454 |
+
$op = 'f';
|
455 |
+
elseif($style=='FD' || $style=='DF')
|
456 |
+
$op = 'B';
|
457 |
+
else
|
458 |
+
$op = 'S';
|
459 |
+
$this->_out(sprintf('%.2F %.2F %.2F %.2F re %s',$x*$this->k,($this->h-$y)*$this->k,$w*$this->k,-$h*$this->k,$op));
|
460 |
+
}
|
461 |
+
|
462 |
+
function AddFont($family, $style='', $file='', $uni=false)
|
463 |
+
{
|
464 |
+
// Add a TrueType, OpenType or Type1 font
|
465 |
+
$family = strtolower($family);
|
466 |
+
$style = strtoupper($style);
|
467 |
+
if($style=='IB')
|
468 |
+
$style = 'BI';
|
469 |
+
if($file=='') {
|
470 |
+
if ($uni) {
|
471 |
+
$file = str_replace(' ','',$family).strtolower($style).'.ttf';
|
472 |
+
}
|
473 |
+
else {
|
474 |
+
$file = str_replace(' ','',$family).strtolower($style).'.php';
|
475 |
+
}
|
476 |
+
}
|
477 |
+
$fontkey = $family.$style;
|
478 |
+
if(isset($this->fonts[$fontkey]))
|
479 |
+
return;
|
480 |
+
if ($uni) {
|
481 |
+
if (defined("_SYSTEM_TTFONTS") && file_exists(_SYSTEM_TTFONTS.$file )) { $ttffilename = _SYSTEM_TTFONTS.$file ; }
|
482 |
+
else { $ttffilename = $this->fontpath.'unifont/'.$file ; }
|
483 |
+
$unifilename = $this->fontpath.'unifont/'.strtolower(substr($file ,0,(strpos($file ,'.'))));
|
484 |
+
$name = '';
|
485 |
+
$originalsize = 0;
|
486 |
+
$ttfstat = stat($ttffilename);
|
487 |
+
if (file_exists($unifilename.'.mtx.php')) {
|
488 |
+
include($unifilename.'.mtx.php');
|
489 |
+
}
|
490 |
+
if (!isset($type) || !isset($name) || $originalsize != $ttfstat['size']) {
|
491 |
+
$ttffile = $ttffilename;
|
492 |
+
require_once($this->fontpath.'unifont/ttfonts.php');
|
493 |
+
$ttf = new TTFontFile();
|
494 |
+
$ttf->getMetrics($ttffile);
|
495 |
+
$cw = $ttf->charWidths;
|
496 |
+
$name = preg_replace('/[ ()]/','',$ttf->fullName);
|
497 |
+
|
498 |
+
$desc= array('Ascent'=>round($ttf->ascent),
|
499 |
+
'Descent'=>round($ttf->descent),
|
500 |
+
'CapHeight'=>round($ttf->capHeight),
|
501 |
+
'Flags'=>$ttf->flags,
|
502 |
+
'FontBBox'=>'['.round($ttf->bbox[0])." ".round($ttf->bbox[1])." ".round($ttf->bbox[2])." ".round($ttf->bbox[3]).']',
|
503 |
+
'ItalicAngle'=>$ttf->italicAngle,
|
504 |
+
'StemV'=>round($ttf->stemV),
|
505 |
+
'MissingWidth'=>round($ttf->defaultWidth));
|
506 |
+
$up = round($ttf->underlinePosition);
|
507 |
+
$ut = round($ttf->underlineThickness);
|
508 |
+
$originalsize = $ttfstat['size']+0;
|
509 |
+
$type = 'TTF';
|
510 |
+
// Generate metrics .php file
|
511 |
+
$s='<?php'."\n";
|
512 |
+
$s.='$name=\''.$name."';\n";
|
513 |
+
$s.='$type=\''.$type."';\n";
|
514 |
+
$s.='$desc='.var_export($desc,true).";\n";
|
515 |
+
$s.='$up='.$up.";\n";
|
516 |
+
$s.='$ut='.$ut.";\n";
|
517 |
+
$s.='$ttffile=\''.$ttffile."';\n";
|
518 |
+
$s.='$originalsize='.$originalsize.";\n";
|
519 |
+
$s.='$fontkey=\''.$fontkey."';\n";
|
520 |
+
$s.="?>";
|
521 |
+
if (is_writable(dirname($this->fontpath.'unifont/'.'x'))) {
|
522 |
+
$fh = fopen($unifilename.'.mtx.php',"w");
|
523 |
+
fwrite($fh,$s,strlen($s));
|
524 |
+
fclose($fh);
|
525 |
+
$fh = fopen($unifilename.'.cw.dat',"wb");
|
526 |
+
fwrite($fh,$cw,strlen($cw));
|
527 |
+
fclose($fh);
|
528 |
+
@unlink($unifilename.'.cw127.php');
|
529 |
+
}
|
530 |
+
unset($ttf);
|
531 |
+
}
|
532 |
+
else {
|
533 |
+
$cw = @file_get_contents($unifilename.'.cw.dat');
|
534 |
+
}
|
535 |
+
$i = count($this->fonts)+1;
|
536 |
+
if(!empty($this->AliasNbPages))
|
537 |
+
$sbarr = range(0,57);
|
538 |
+
else
|
539 |
+
$sbarr = range(0,32);
|
540 |
+
$this->fonts[$fontkey] = array('i'=>$i, 'type'=>$type, 'name'=>$name, 'desc'=>$desc, 'up'=>$up, 'ut'=>$ut, 'cw'=>$cw, 'ttffile'=>$ttffile, 'fontkey'=>$fontkey, 'subset'=>$sbarr, 'unifilename'=>$unifilename);
|
541 |
+
|
542 |
+
$this->FontFiles[$fontkey]=array('length1'=>$originalsize, 'type'=>"TTF", 'ttffile'=>$ttffile);
|
543 |
+
$this->FontFiles[$file]=array('type'=>"TTF");
|
544 |
+
unset($cw);
|
545 |
+
}
|
546 |
+
else {
|
547 |
+
$info = $this->_loadfont($file);
|
548 |
+
$info['i'] = count($this->fonts)+1;
|
549 |
+
if(!empty($info['file']))
|
550 |
+
{
|
551 |
+
// Embedded font
|
552 |
+
if($info['type']=='TrueType')
|
553 |
+
$this->FontFiles[$info['file']] = array('length1'=>$info['originalsize']);
|
554 |
+
else
|
555 |
+
$this->FontFiles[$info['file']] = array('length1'=>$info['size1'], 'length2'=>$info['size2']);
|
556 |
+
}
|
557 |
+
$this->fonts[$fontkey] = $info;
|
558 |
+
}
|
559 |
+
}
|
560 |
+
|
561 |
+
function SetFont($family, $style='', $size=0)
|
562 |
+
{
|
563 |
+
// Select a font; size given in points
|
564 |
+
if($family=='')
|
565 |
+
$family = $this->FontFamily;
|
566 |
+
else
|
567 |
+
$family = strtolower($family);
|
568 |
+
$style = strtoupper($style);
|
569 |
+
if(strpos($style,'U')!==false)
|
570 |
+
{
|
571 |
+
$this->underline = true;
|
572 |
+
$style = str_replace('U','',$style);
|
573 |
+
}
|
574 |
+
else
|
575 |
+
$this->underline = false;
|
576 |
+
if($style=='IB')
|
577 |
+
$style = 'BI';
|
578 |
+
if($size==0)
|
579 |
+
$size = $this->FontSizePt;
|
580 |
+
// Test if font is already selected
|
581 |
+
if($this->FontFamily==$family && $this->FontStyle==$style && $this->FontSizePt==$size)
|
582 |
+
return;
|
583 |
+
|
584 |
+
// Test if font is already loaded
|
585 |
+
$fontkey = $family.$style;
|
586 |
+
if(!isset($this->fonts[$fontkey]))
|
587 |
+
{
|
588 |
+
// Test if one of the core fonts
|
589 |
+
if($family=='arial')
|
590 |
+
$family = 'helvetica';
|
591 |
+
if(in_array($family,$this->CoreFonts))
|
592 |
+
{
|
593 |
+
if($family=='symbol' || $family=='zapfdingbats')
|
594 |
+
$style = '';
|
595 |
+
$fontkey = $family.$style;
|
596 |
+
if(!isset($this->fonts[$fontkey]))
|
597 |
+
$this->AddFont($family,$style);
|
598 |
+
}
|
599 |
+
else
|
600 |
+
$this->Error('Undefined font: '.$family.' '.$style);
|
601 |
+
}
|
602 |
+
// Select it
|
603 |
+
$this->FontFamily = $family;
|
604 |
+
$this->FontStyle = $style;
|
605 |
+
$this->FontSizePt = $size;
|
606 |
+
$this->FontSize = $size/$this->k;
|
607 |
+
$this->CurrentFont = &$this->fonts[$fontkey];
|
608 |
+
if ($this->fonts[$fontkey]['type']=='TTF') { $this->unifontSubset = true; }
|
609 |
+
else { $this->unifontSubset = false; }
|
610 |
+
if($this->page>0)
|
611 |
+
$this->_out(sprintf('BT /F%d %.2F Tf ET',$this->CurrentFont['i'],$this->FontSizePt));
|
612 |
+
}
|
613 |
+
|
614 |
+
function SetFontSize($size)
|
615 |
+
{
|
616 |
+
// Set font size in points
|
617 |
+
if($this->FontSizePt==$size)
|
618 |
+
return;
|
619 |
+
$this->FontSizePt = $size;
|
620 |
+
$this->FontSize = $size/$this->k;
|
621 |
+
if($this->page>0)
|
622 |
+
$this->_out(sprintf('BT /F%d %.2F Tf ET',$this->CurrentFont['i'],$this->FontSizePt));
|
623 |
+
}
|
624 |
+
|
625 |
+
function AddLink()
|
626 |
+
{
|
627 |
+
// Create a new internal link
|
628 |
+
$n = count($this->links)+1;
|
629 |
+
$this->links[$n] = array(0, 0);
|
630 |
+
return $n;
|
631 |
+
}
|
632 |
+
|
633 |
+
function SetLink($link, $y=0, $page=-1)
|
634 |
+
{
|
635 |
+
// Set destination of internal link
|
636 |
+
if($y==-1)
|
637 |
+
$y = $this->y;
|
638 |
+
if($page==-1)
|
639 |
+
$page = $this->page;
|
640 |
+
$this->links[$link] = array($page, $y);
|
641 |
+
}
|
642 |
+
|
643 |
+
function Link($x, $y, $w, $h, $link)
|
644 |
+
{
|
645 |
+
// Put a link on the page
|
646 |
+
$this->PageLinks[$this->page][] = array($x*$this->k, $this->hPt-$y*$this->k, $w*$this->k, $h*$this->k, $link);
|
647 |
+
}
|
648 |
+
|
649 |
+
function Text($x, $y, $txt)
|
650 |
+
{
|
651 |
+
// Output a string
|
652 |
+
$txt = (string)$txt;
|
653 |
+
if(!isset($this->CurrentFont))
|
654 |
+
$this->Error('No font has been set');
|
655 |
+
if ($this->unifontSubset)
|
656 |
+
{
|
657 |
+
$txt2 = '('.$this->_escape($this->UTF8ToUTF16BE($txt, false)).')';
|
658 |
+
foreach($this->UTF8StringToArray($txt) as $uni)
|
659 |
+
$this->CurrentFont['subset'][$uni] = $uni;
|
660 |
+
}
|
661 |
+
else
|
662 |
+
$txt2 = '('.$this->_escape($txt).')';
|
663 |
+
$s = sprintf('BT %.2F %.2F Td %s Tj ET',$x*$this->k,($this->h-$y)*$this->k,$txt2);
|
664 |
+
if($this->underline && $txt!='')
|
665 |
+
$s .= ' '.$this->_dounderline($x,$y,$txt);
|
666 |
+
if($this->ColorFlag)
|
667 |
+
$s = 'q '.$this->TextColor.' '.$s.' Q';
|
668 |
+
$this->_out($s);
|
669 |
+
}
|
670 |
+
|
671 |
+
function AcceptPageBreak()
|
672 |
+
{
|
673 |
+
// Accept automatic page break or not
|
674 |
+
return $this->AutoPageBreak;
|
675 |
+
}
|
676 |
+
|
677 |
+
function Cell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=false, $link='')
|
678 |
+
{
|
679 |
+
// Output a cell
|
680 |
+
$txt = (string)$txt;
|
681 |
+
$k = $this->k;
|
682 |
+
if($this->y+$h>$this->PageBreakTrigger && !$this->InHeader && !$this->InFooter && $this->AcceptPageBreak())
|
683 |
+
{
|
684 |
+
// Automatic page break
|
685 |
+
$x = $this->x;
|
686 |
+
$ws = $this->ws;
|
687 |
+
if($ws>0)
|
688 |
+
{
|
689 |
+
$this->ws = 0;
|
690 |
+
$this->_out('0 Tw');
|
691 |
+
}
|
692 |
+
$this->AddPage($this->CurOrientation,$this->CurPageSize,$this->CurRotation);
|
693 |
+
$this->x = $x;
|
694 |
+
if($ws>0)
|
695 |
+
{
|
696 |
+
$this->ws = $ws;
|
697 |
+
$this->_out(sprintf('%.3F Tw',$ws*$k));
|
698 |
+
}
|
699 |
+
}
|
700 |
+
if($w==0)
|
701 |
+
$w = $this->w-$this->rMargin-$this->x;
|
702 |
+
$s = '';
|
703 |
+
if($fill || $border==1)
|
704 |
+
{
|
705 |
+
if($fill)
|
706 |
+
$op = ($border==1) ? 'B' : 'f';
|
707 |
+
else
|
708 |
+
$op = 'S';
|
709 |
+
$s = sprintf('%.2F %.2F %.2F %.2F re %s ',$this->x*$k,($this->h-$this->y)*$k,$w*$k,-$h*$k,$op);
|
710 |
+
}
|
711 |
+
if(is_string($border))
|
712 |
+
{
|
713 |
+
$x = $this->x;
|
714 |
+
$y = $this->y;
|
715 |
+
if(strpos($border,'L')!==false)
|
716 |
+
$s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-$y)*$k,$x*$k,($this->h-($y+$h))*$k);
|
717 |
+
if(strpos($border,'T')!==false)
|
718 |
+
$s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-$y)*$k,($x+$w)*$k,($this->h-$y)*$k);
|
719 |
+
if(strpos($border,'R')!==false)
|
720 |
+
$s .= sprintf('%.2F %.2F m %.2F %.2F l S ',($x+$w)*$k,($this->h-$y)*$k,($x+$w)*$k,($this->h-($y+$h))*$k);
|
721 |
+
if(strpos($border,'B')!==false)
|
722 |
+
$s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-($y+$h))*$k,($x+$w)*$k,($this->h-($y+$h))*$k);
|
723 |
+
}
|
724 |
+
if($txt!=='')
|
725 |
+
{
|
726 |
+
if(!isset($this->CurrentFont))
|
727 |
+
$this->Error('No font has been set');
|
728 |
+
if($align=='R')
|
729 |
+
$dx = $w-$this->cMargin-$this->GetStringWidth($txt);
|
730 |
+
elseif($align=='C')
|
731 |
+
$dx = ($w-$this->GetStringWidth($txt))/2;
|
732 |
+
else
|
733 |
+
$dx = $this->cMargin;
|
734 |
+
if($this->ColorFlag)
|
735 |
+
$s .= 'q '.$this->TextColor.' ';
|
736 |
+
// If multibyte, Tw has no effect - do word spacing using an adjustment before each space
|
737 |
+
if ($this->ws && $this->unifontSubset) {
|
738 |
+
foreach($this->UTF8StringToArray($txt) as $uni)
|
739 |
+
$this->CurrentFont['subset'][$uni] = $uni;
|
740 |
+
$space = $this->_escape($this->UTF8ToUTF16BE(' ', false));
|
741 |
+
$s .= sprintf('BT 0 Tw %.2F %.2F Td [',($this->x+$dx)*$k,($this->h-($this->y+.5*$h+.3*$this->FontSize))*$k);
|
742 |
+
$t = explode(' ',$txt);
|
743 |
+
$numt = count($t);
|
744 |
+
for($i=0;$i<$numt;$i++) {
|
745 |
+
$tx = $t[$i];
|
746 |
+
$tx = '('.$this->_escape($this->UTF8ToUTF16BE($tx, false)).')';
|
747 |
+
$s .= sprintf('%s ',$tx);
|
748 |
+
if (($i+1)<$numt) {
|
749 |
+
$adj = -($this->ws*$this->k)*1000/$this->FontSizePt;
|
750 |
+
$s .= sprintf('%d(%s) ',$adj,$space);
|
751 |
+
}
|
752 |
+
}
|
753 |
+
$s .= '] TJ';
|
754 |
+
$s .= ' ET';
|
755 |
+
}
|
756 |
+
else {
|
757 |
+
if ($this->unifontSubset)
|
758 |
+
{
|
759 |
+
$txt2 = '('.$this->_escape($this->UTF8ToUTF16BE($txt, false)).')';
|
760 |
+
foreach($this->UTF8StringToArray($txt) as $uni)
|
761 |
+
$this->CurrentFont['subset'][$uni] = $uni;
|
762 |
+
}
|
763 |
+
else
|
764 |
+
$txt2='('.$this->_escape($txt).')';
|
765 |
+
$s .= sprintf('BT %.2F %.2F Td %s Tj ET',($this->x+$dx)*$k,($this->h-($this->y+.5*$h+.3*$this->FontSize))*$k,$txt2);
|
766 |
+
}
|
767 |
+
if($this->underline)
|
768 |
+
$s .= ' '.$this->_dounderline($this->x+$dx,$this->y+.5*$h+.3*$this->FontSize,$txt);
|
769 |
+
if($this->ColorFlag)
|
770 |
+
$s .= ' Q';
|
771 |
+
if($link)
|
772 |
+
$this->Link($this->x+$dx,$this->y+.5*$h-.5*$this->FontSize,$this->GetStringWidth($txt),$this->FontSize,$link);
|
773 |
+
}
|
774 |
+
if($s)
|
775 |
+
$this->_out($s);
|
776 |
+
$this->lasth = $h;
|
777 |
+
if($ln>0)
|
778 |
+
{
|
779 |
+
// Go to next line
|
780 |
+
$this->y += $h;
|
781 |
+
if($ln==1)
|
782 |
+
$this->x = $this->lMargin;
|
783 |
+
}
|
784 |
+
else
|
785 |
+
$this->x += $w;
|
786 |
+
}
|
787 |
+
|
788 |
+
function MultiCell($w, $h, $txt, $border=0, $align='J', $fill=false)
|
789 |
+
{
|
790 |
+
// Output text with automatic or explicit line breaks
|
791 |
+
if(!isset($this->CurrentFont))
|
792 |
+
$this->Error('No font has been set');
|
793 |
+
$cw = &$this->CurrentFont['cw'];
|
794 |
+
if($w==0)
|
795 |
+
$w = $this->w-$this->rMargin-$this->x;
|
796 |
+
$wmax = ($w-2*$this->cMargin);
|
797 |
+
//$wmax = ($w-2*$this->cMargin)*1000/$this->FontSize;
|
798 |
+
$s = str_replace("\r",'',(string)$txt);
|
799 |
+
if ($this->unifontSubset) {
|
800 |
+
$nb=mb_strlen($s, 'utf-8');
|
801 |
+
while($nb>0 && mb_substr($s,$nb-1,1,'utf-8')=="\n") $nb--;
|
802 |
+
}
|
803 |
+
else {
|
804 |
+
$nb = strlen($s);
|
805 |
+
if($nb>0 && $s[$nb-1]=="\n")
|
806 |
+
$nb--;
|
807 |
+
}
|
808 |
+
$b = 0;
|
809 |
+
if($border)
|
810 |
+
{
|
811 |
+
if($border==1)
|
812 |
+
{
|
813 |
+
$border = 'LTRB';
|
814 |
+
$b = 'LRT';
|
815 |
+
$b2 = 'LR';
|
816 |
+
}
|
817 |
+
else
|
818 |
+
{
|
819 |
+
$b2 = '';
|
820 |
+
if(strpos($border,'L')!==false)
|
821 |
+
$b2 .= 'L';
|
822 |
+
if(strpos($border,'R')!==false)
|
823 |
+
$b2 .= 'R';
|
824 |
+
$b = (strpos($border,'T')!==false) ? $b2.'T' : $b2;
|
825 |
+
}
|
826 |
+
}
|
827 |
+
$sep = -1;
|
828 |
+
$i = 0;
|
829 |
+
$j = 0;
|
830 |
+
$l = 0;
|
831 |
+
$ns = 0;
|
832 |
+
$nl = 1;
|
833 |
+
while($i<$nb)
|
834 |
+
{
|
835 |
+
// Get next character
|
836 |
+
if ($this->unifontSubset) {
|
837 |
+
$c = mb_substr($s,$i,1,'UTF-8');
|
838 |
+
}
|
839 |
+
else {
|
840 |
+
$c=$s[$i];
|
841 |
+
}
|
842 |
+
if($c=="\n")
|
843 |
+
{
|
844 |
+
// Explicit line break
|
845 |
+
if($this->ws>0)
|
846 |
+
{
|
847 |
+
$this->ws = 0;
|
848 |
+
$this->_out('0 Tw');
|
849 |
+
}
|
850 |
+
if ($this->unifontSubset) {
|
851 |
+
$this->Cell($w,$h,mb_substr($s,$j,$i-$j,'UTF-8'),$b,2,$align,$fill);
|
852 |
+
}
|
853 |
+
else {
|
854 |
+
$this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill);
|
855 |
+
}
|
856 |
+
$i++;
|
857 |
+
$sep = -1;
|
858 |
+
$j = $i;
|
859 |
+
$l = 0;
|
860 |
+
$ns = 0;
|
861 |
+
$nl++;
|
862 |
+
if($border && $nl==2)
|
863 |
+
$b = $b2;
|
864 |
+
continue;
|
865 |
+
}
|
866 |
+
if($c==' ')
|
867 |
+
{
|
868 |
+
$sep = $i;
|
869 |
+
$ls = $l;
|
870 |
+
$ns++;
|
871 |
+
}
|
872 |
+
|
873 |
+
if ($this->unifontSubset) { $l += $this->GetStringWidth($c); }
|
874 |
+
else { $l += $cw[$c]*$this->FontSize/1000; }
|
875 |
+
|
876 |
+
if($l>$wmax)
|
877 |
+
{
|
878 |
+
// Automatic line break
|
879 |
+
if($sep==-1)
|
880 |
+
{
|
881 |
+
if($i==$j)
|
882 |
+
$i++;
|
883 |
+
if($this->ws>0)
|
884 |
+
{
|
885 |
+
$this->ws = 0;
|
886 |
+
$this->_out('0 Tw');
|
887 |
+
}
|
888 |
+
if ($this->unifontSubset) {
|
889 |
+
$this->Cell($w,$h,mb_substr($s,$j,$i-$j,'UTF-8'),$b,2,$align,$fill);
|
890 |
+
}
|
891 |
+
else {
|
892 |
+
$this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill);
|
893 |
+
}
|
894 |
+
}
|
895 |
+
else
|
896 |
+
{
|
897 |
+
if($align=='J')
|
898 |
+
{
|
899 |
+
$this->ws = ($ns>1) ? ($wmax-$ls)/($ns-1) : 0;
|
900 |
+
$this->_out(sprintf('%.3F Tw',$this->ws*$this->k));
|
901 |
+
}
|
902 |
+
if ($this->unifontSubset) {
|
903 |
+
$this->Cell($w,$h,mb_substr($s,$j,$sep-$j,'UTF-8'),$b,2,$align,$fill);
|
904 |
+
}
|
905 |
+
else {
|
906 |
+
$this->Cell($w,$h,substr($s,$j,$sep-$j),$b,2,$align,$fill);
|
907 |
+
}
|
908 |
+
$i = $sep+1;
|
909 |
+
}
|
910 |
+
$sep = -1;
|
911 |
+
$j = $i;
|
912 |
+
$l = 0;
|
913 |
+
$ns = 0;
|
914 |
+
$nl++;
|
915 |
+
if($border && $nl==2)
|
916 |
+
$b = $b2;
|
917 |
+
}
|
918 |
+
else
|
919 |
+
$i++;
|
920 |
+
}
|
921 |
+
// Last chunk
|
922 |
+
if($this->ws>0)
|
923 |
+
{
|
924 |
+
$this->ws = 0;
|
925 |
+
$this->_out('0 Tw');
|
926 |
+
}
|
927 |
+
if($border && strpos($border,'B')!==false)
|
928 |
+
$b .= 'B';
|
929 |
+
if ($this->unifontSubset) {
|
930 |
+
$this->Cell($w,$h,mb_substr($s,$j,$i-$j,'UTF-8'),$b,2,$align,$fill);
|
931 |
+
}
|
932 |
+
else {
|
933 |
+
$this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill);
|
934 |
+
}
|
935 |
+
$this->x = $this->lMargin;
|
936 |
+
}
|
937 |
+
|
938 |
+
function Write($h, $txt, $link='')
|
939 |
+
{
|
940 |
+
// Output text in flowing mode
|
941 |
+
if(!isset($this->CurrentFont))
|
942 |
+
$this->Error('No font has been set');
|
943 |
+
$cw = &$this->CurrentFont['cw'];
|
944 |
+
$w = $this->w-$this->rMargin-$this->x;
|
945 |
+
$wmax = ($w-2*$this->cMargin);
|
946 |
+
$s = str_replace("\r",'',(string)$txt);
|
947 |
+
if ($this->unifontSubset) {
|
948 |
+
$nb = mb_strlen($s, 'UTF-8');
|
949 |
+
if($nb==1 && $s==" ") {
|
950 |
+
$this->x += $this->GetStringWidth($s);
|
951 |
+
return;
|
952 |
+
}
|
953 |
+
}
|
954 |
+
else {
|
955 |
+
$nb = strlen($s);
|
956 |
+
}
|
957 |
+
$sep = -1;
|
958 |
+
$i = 0;
|
959 |
+
$j = 0;
|
960 |
+
$l = 0;
|
961 |
+
$nl = 1;
|
962 |
+
while($i<$nb)
|
963 |
+
{
|
964 |
+
// Get next character
|
965 |
+
if ($this->unifontSubset) {
|
966 |
+
$c = mb_substr($s,$i,1,'UTF-8');
|
967 |
+
}
|
968 |
+
else {
|
969 |
+
$c = $s[$i];
|
970 |
+
}
|
971 |
+
if($c=="\n")
|
972 |
+
{
|
973 |
+
// Explicit line break
|
974 |
+
if ($this->unifontSubset) {
|
975 |
+
$this->Cell($w,$h,mb_substr($s,$j,$i-$j,'UTF-8'),0,2,'',false,$link);
|
976 |
+
}
|
977 |
+
else {
|
978 |
+
$this->Cell($w,$h,substr($s,$j,$i-$j),0,2,'',false,$link);
|
979 |
+
}
|
980 |
+
$i++;
|
981 |
+
$sep = -1;
|
982 |
+
$j = $i;
|
983 |
+
$l = 0;
|
984 |
+
if($nl==1)
|
985 |
+
{
|
986 |
+
$this->x = $this->lMargin;
|
987 |
+
$w = $this->w-$this->rMargin-$this->x;
|
988 |
+
$wmax = ($w-2*$this->cMargin);
|
989 |
+
}
|
990 |
+
$nl++;
|
991 |
+
continue;
|
992 |
+
}
|
993 |
+
if($c==' ')
|
994 |
+
$sep = $i;
|
995 |
+
|
996 |
+
if ($this->unifontSubset) { $l += $this->GetStringWidth($c); }
|
997 |
+
else { $l += $cw[$c]*$this->FontSize/1000; }
|
998 |
+
|
999 |
+
if($l>$wmax)
|
1000 |
+
{
|
1001 |
+
// Automatic line break
|
1002 |
+
if($sep==-1)
|
1003 |
+
{
|
1004 |
+
if($this->x>$this->lMargin)
|
1005 |
+
{
|
1006 |
+
// Move to next line
|
1007 |
+
$this->x = $this->lMargin;
|
1008 |
+
$this->y += $h;
|
1009 |
+
$w = $this->w-$this->rMargin-$this->x;
|
1010 |
+
$wmax = ($w-2*$this->cMargin);
|
1011 |
+
$i++;
|
1012 |
+
$nl++;
|
1013 |
+
continue;
|
1014 |
+
}
|
1015 |
+
if($i==$j)
|
1016 |
+
$i++;
|
1017 |
+
if ($this->unifontSubset) {
|
1018 |
+
$this->Cell($w,$h,mb_substr($s,$j,$i-$j,'UTF-8'),0,2,'',false,$link);
|
1019 |
+
}
|
1020 |
+
else {
|
1021 |
+
$this->Cell($w,$h,substr($s,$j,$i-$j),0,2,'',false,$link);
|
1022 |
+
}
|
1023 |
+
}
|
1024 |
+
else
|
1025 |
+
{
|
1026 |
+
if ($this->unifontSubset) {
|
1027 |
+
$this->Cell($w,$h,mb_substr($s,$j,$sep-$j,'UTF-8'),0,2,'',false,$link);
|
1028 |
+
}
|
1029 |
+
else {
|
1030 |
+
$this->Cell($w,$h,substr($s,$j,$sep-$j),0,2,'',false,$link);
|
1031 |
+
}
|
1032 |
+
$i = $sep+1;
|
1033 |
+
}
|
1034 |
+
$sep = -1;
|
1035 |
+
$j = $i;
|
1036 |
+
$l = 0;
|
1037 |
+
if($nl==1)
|
1038 |
+
{
|
1039 |
+
$this->x = $this->lMargin;
|
1040 |
+
$w = $this->w-$this->rMargin-$this->x;
|
1041 |
+
$wmax = ($w-2*$this->cMargin);
|
1042 |
+
}
|
1043 |
+
$nl++;
|
1044 |
+
}
|
1045 |
+
else
|
1046 |
+
$i++;
|
1047 |
+
}
|
1048 |
+
// Last chunk
|
1049 |
+
if($i!=$j) {
|
1050 |
+
if ($this->unifontSubset) {
|
1051 |
+
$this->Cell($l,$h,mb_substr($s,$j,$i-$j,'UTF-8'),0,0,'',false,$link);
|
1052 |
+
}
|
1053 |
+
else {
|
1054 |
+
$this->Cell($l,$h,substr($s,$j),0,0,'',false,$link);
|
1055 |
+
}
|
1056 |
+
}
|
1057 |
+
}
|
1058 |
+
|
1059 |
+
function Ln($h=null)
|
1060 |
+
{
|
1061 |
+
// Line feed; default value is the last cell height
|
1062 |
+
$this->x = $this->lMargin;
|
1063 |
+
if($h===null)
|
1064 |
+
$this->y += $this->lasth;
|
1065 |
+
else
|
1066 |
+
$this->y += $h;
|
1067 |
+
}
|
1068 |
+
|
1069 |
+
function Image($file, $x=null, $y=null, $w=0, $h=0, $type='', $link='')
|
1070 |
+
{
|
1071 |
+
// Put an image on the page
|
1072 |
+
if($file=='')
|
1073 |
+
$this->Error('Image file name is empty');
|
1074 |
+
if(!isset($this->images[$file]))
|
1075 |
+
{
|
1076 |
+
// First use of this image, get info
|
1077 |
+
if($type=='')
|
1078 |
+
{
|
1079 |
+
$pos = strrpos($file,'.');
|
1080 |
+
if(!$pos)
|
1081 |
+
$this->Error('Image file has no extension and no type was specified: '.$file);
|
1082 |
+
$type = substr($file,$pos+1);
|
1083 |
+
}
|
1084 |
+
$type = strtolower($type);
|
1085 |
+
if($type=='jpeg')
|
1086 |
+
$type = 'jpg';
|
1087 |
+
$mtd = '_parse'.$type;
|
1088 |
+
if(!method_exists($this,$mtd))
|
1089 |
+
$this->Error('Unsupported image type: '.$type);
|
1090 |
+
$info = $this->$mtd($file);
|
1091 |
+
$info['i'] = count($this->images)+1;
|
1092 |
+
$this->images[$file] = $info;
|
1093 |
+
}
|
1094 |
+
else
|
1095 |
+
$info = $this->images[$file];
|
1096 |
+
|
1097 |
+
// Automatic width and height calculation if needed
|
1098 |
+
if($w==0 && $h==0)
|
1099 |
+
{
|
1100 |
+
// Put image at 96 dpi
|
1101 |
+
$w = -96;
|
1102 |
+
$h = -96;
|
1103 |
+
}
|
1104 |
+
if($w<0)
|
1105 |
+
$w = -$info['w']*72/$w/$this->k;
|
1106 |
+
if($h<0)
|
1107 |
+
$h = -$info['h']*72/$h/$this->k;
|
1108 |
+
if($w==0)
|
1109 |
+
$w = $h*$info['w']/$info['h'];
|
1110 |
+
if($h==0)
|
1111 |
+
$h = $w*$info['h']/$info['w'];
|
1112 |
+
|
1113 |
+
// Flowing mode
|
1114 |
+
if($y===null)
|
1115 |
+
{
|
1116 |
+
if($this->y+$h>$this->PageBreakTrigger && !$this->InHeader && !$this->InFooter && $this->AcceptPageBreak())
|
1117 |
+
{
|
1118 |
+
// Automatic page break
|
1119 |
+
$x2 = $this->x;
|
1120 |
+
$this->AddPage($this->CurOrientation,$this->CurPageSize,$this->CurRotation);
|
1121 |
+
$this->x = $x2;
|
1122 |
+
}
|
1123 |
+
$y = $this->y;
|
1124 |
+
$this->y += $h;
|
1125 |
+
}
|
1126 |
+
|
1127 |
+
if($x===null)
|
1128 |
+
$x = $this->x;
|
1129 |
+
$this->_out(sprintf('q %.2F 0 0 %.2F %.2F %.2F cm /I%d Do Q',$w*$this->k,$h*$this->k,$x*$this->k,($this->h-($y+$h))*$this->k,$info['i']));
|
1130 |
+
if($link)
|
1131 |
+
$this->Link($x,$y,$w,$h,$link);
|
1132 |
+
}
|
1133 |
+
|
1134 |
+
function GetPageWidth()
|
1135 |
+
{
|
1136 |
+
// Get current page width
|
1137 |
+
return $this->w;
|
1138 |
+
}
|
1139 |
+
|
1140 |
+
function GetPageHeight()
|
1141 |
+
{
|
1142 |
+
// Get current page height
|
1143 |
+
return $this->h;
|
1144 |
+
}
|
1145 |
+
|
1146 |
+
function GetX()
|
1147 |
+
{
|
1148 |
+
// Get x position
|
1149 |
+
return $this->x;
|
1150 |
+
}
|
1151 |
+
|
1152 |
+
function SetX($x)
|
1153 |
+
{
|
1154 |
+
// Set x position
|
1155 |
+
if($x>=0)
|
1156 |
+
$this->x = $x;
|
1157 |
+
else
|
1158 |
+
$this->x = $this->w+$x;
|
1159 |
+
}
|
1160 |
+
|
1161 |
+
function GetY()
|
1162 |
+
{
|
1163 |
+
// Get y position
|
1164 |
+
return $this->y;
|
1165 |
+
}
|
1166 |
+
|
1167 |
+
function SetY($y, $resetX=true)
|
1168 |
+
{
|
1169 |
+
// Set y position and optionally reset x
|
1170 |
+
if($y>=0)
|
1171 |
+
$this->y = $y;
|
1172 |
+
else
|
1173 |
+
$this->y = $this->h+$y;
|
1174 |
+
if($resetX)
|
1175 |
+
$this->x = $this->lMargin;
|
1176 |
+
}
|
1177 |
+
|
1178 |
+
function SetXY($x, $y)
|
1179 |
+
{
|
1180 |
+
// Set x and y positions
|
1181 |
+
$this->SetX($x);
|
1182 |
+
$this->SetY($y,false);
|
1183 |
+
}
|
1184 |
+
|
1185 |
+
function Output($dest='', $name='', $isUTF8=false)
|
1186 |
+
{
|
1187 |
+
// Output PDF to some destination
|
1188 |
+
$this->Close();
|
1189 |
+
if(strlen($name)==1 && strlen($dest)!=1)
|
1190 |
+
{
|
1191 |
+
// Fix parameter order
|
1192 |
+
$tmp = $dest;
|
1193 |
+
$dest = $name;
|
1194 |
+
$name = $tmp;
|
1195 |
+
}
|
1196 |
+
if($dest=='')
|
1197 |
+
$dest = 'I';
|
1198 |
+
if($name=='')
|
1199 |
+
$name = 'doc.pdf';
|
1200 |
+
switch(strtoupper($dest))
|
1201 |
+
{
|
1202 |
+
case 'I':
|
1203 |
+
// Send to standard output
|
1204 |
+
$this->_checkoutput();
|
1205 |
+
if(PHP_SAPI!='cli')
|
1206 |
+
{
|
1207 |
+
// We send to a browser
|
1208 |
+
header('Content-Type: application/pdf');
|
1209 |
+
header('Content-Disposition: inline; '.$this->_httpencode('filename',$name,$isUTF8));
|
1210 |
+
header('Cache-Control: private, max-age=0, must-revalidate');
|
1211 |
+
header('Pragma: public');
|
1212 |
+
}
|
1213 |
+
echo $this->buffer;
|
1214 |
+
break;
|
1215 |
+
case 'D':
|
1216 |
+
// Download file
|
1217 |
+
$this->_checkoutput();
|
1218 |
+
header('Content-Type: application/x-download');
|
1219 |
+
header('Content-Disposition: attachment; '.$this->_httpencode('filename',$name,$isUTF8));
|
1220 |
+
header('Cache-Control: private, max-age=0, must-revalidate');
|
1221 |
+
header('Pragma: public');
|
1222 |
+
echo $this->buffer;
|
1223 |
+
break;
|
1224 |
+
case 'F':
|
1225 |
+
// Save to local file
|
1226 |
+
if(!file_put_contents($name,$this->buffer))
|
1227 |
+
$this->Error('Unable to create output file: '.$name);
|
1228 |
+
break;
|
1229 |
+
case 'S':
|
1230 |
+
// Return as a string
|
1231 |
+
return $this->buffer;
|
1232 |
+
default:
|
1233 |
+
$this->Error('Incorrect output destination: '.$dest);
|
1234 |
+
}
|
1235 |
+
return '';
|
1236 |
+
}
|
1237 |
+
|
1238 |
+
/*******************************************************************************
|
1239 |
+
* Protected methods *
|
1240 |
+
*******************************************************************************/
|
1241 |
+
|
1242 |
+
protected function _dochecks()
|
1243 |
+
{
|
1244 |
+
// Check availability of mbstring
|
1245 |
+
if(!function_exists('mb_strlen'))
|
1246 |
+
$this->Error('mbstring extension is not available');
|
1247 |
+
// Check mbstring overloading
|
1248 |
+
if(ini_get('mbstring.func_overload') & 2)
|
1249 |
+
$this->Error('mbstring overloading must be disabled');
|
1250 |
+
}
|
1251 |
+
|
1252 |
+
protected function _checkoutput()
|
1253 |
+
{
|
1254 |
+
if(PHP_SAPI!='cli')
|
1255 |
+
{
|
1256 |
+
if(headers_sent($file,$line))
|
1257 |
+
$this->Error("Some data has already been output, can't send PDF file (output started at $file:$line)");
|
1258 |
+
}
|
1259 |
+
if(ob_get_length())
|
1260 |
+
{
|
1261 |
+
// The output buffer is not empty
|
1262 |
+
if(preg_match('/^(\xEF\xBB\xBF)?\s*$/',ob_get_contents()))
|
1263 |
+
{
|
1264 |
+
// It contains only a UTF-8 BOM and/or whitespace, let's clean it
|
1265 |
+
ob_clean();
|
1266 |
+
}
|
1267 |
+
else
|
1268 |
+
$this->Error("Some data has already been output, can't send PDF file");
|
1269 |
+
}
|
1270 |
+
}
|
1271 |
+
|
1272 |
+
protected function _getpagesize($size)
|
1273 |
+
{
|
1274 |
+
if(is_string($size))
|
1275 |
+
{
|
1276 |
+
$size = strtolower($size);
|
1277 |
+
if(!isset($this->StdPageSizes[$size]))
|
1278 |
+
$this->Error('Unknown page size: '.$size);
|
1279 |
+
$a = $this->StdPageSizes[$size];
|
1280 |
+
return array($a[0]/$this->k, $a[1]/$this->k);
|
1281 |
+
}
|
1282 |
+
else
|
1283 |
+
{
|
1284 |
+
if($size[0]>$size[1])
|
1285 |
+
return array($size[1], $size[0]);
|
1286 |
+
else
|
1287 |
+
return $size;
|
1288 |
+
}
|
1289 |
+
}
|
1290 |
+
|
1291 |
+
protected function _beginpage($orientation, $size, $rotation)
|
1292 |
+
{
|
1293 |
+
$this->page++;
|
1294 |
+
$this->pages[$this->page] = '';
|
1295 |
+
$this->state = 2;
|
1296 |
+
$this->x = $this->lMargin;
|
1297 |
+
$this->y = $this->tMargin;
|
1298 |
+
$this->FontFamily = '';
|
1299 |
+
// Check page size and orientation
|
1300 |
+
if($orientation=='')
|
1301 |
+
$orientation = $this->DefOrientation;
|
1302 |
+
else
|
1303 |
+
$orientation = strtoupper($orientation[0]);
|
1304 |
+
if($size=='')
|
1305 |
+
$size = $this->DefPageSize;
|
1306 |
+
else
|
1307 |
+
$size = $this->_getpagesize($size);
|
1308 |
+
if($orientation!=$this->CurOrientation || $size[0]!=$this->CurPageSize[0] || $size[1]!=$this->CurPageSize[1])
|
1309 |
+
{
|
1310 |
+
// New size or orientation
|
1311 |
+
if($orientation=='P')
|
1312 |
+
{
|
1313 |
+
$this->w = $size[0];
|
1314 |
+
$this->h = $size[1];
|
1315 |
+
}
|
1316 |
+
else
|
1317 |
+
{
|
1318 |
+
$this->w = $size[1];
|
1319 |
+
$this->h = $size[0];
|
1320 |
+
}
|
1321 |
+
$this->wPt = $this->w*$this->k;
|
1322 |
+
$this->hPt = $this->h*$this->k;
|
1323 |
+
$this->PageBreakTrigger = $this->h-$this->bMargin;
|
1324 |
+
$this->CurOrientation = $orientation;
|
1325 |
+
$this->CurPageSize = $size;
|
1326 |
+
}
|
1327 |
+
if($orientation!=$this->DefOrientation || $size[0]!=$this->DefPageSize[0] || $size[1]!=$this->DefPageSize[1])
|
1328 |
+
$this->PageInfo[$this->page]['size'] = array($this->wPt, $this->hPt);
|
1329 |
+
if($rotation!=0)
|
1330 |
+
{
|
1331 |
+
if($rotation%90!=0)
|
1332 |
+
$this->Error('Incorrect rotation value: '.$rotation);
|
1333 |
+
$this->CurRotation = $rotation;
|
1334 |
+
$this->PageInfo[$this->page]['rotation'] = $rotation;
|
1335 |
+
}
|
1336 |
+
}
|
1337 |
+
|
1338 |
+
protected function _endpage()
|
1339 |
+
{
|
1340 |
+
$this->state = 1;
|
1341 |
+
}
|
1342 |
+
|
1343 |
+
protected function _loadfont($font)
|
1344 |
+
{
|
1345 |
+
// Load a font definition file from the font directory
|
1346 |
+
if(strpos($font,'/')!==false || strpos($font,"\\")!==false)
|
1347 |
+
$this->Error('Incorrect font definition file name: '.$font);
|
1348 |
+
include($this->fontpath.$font);
|
1349 |
+
if(!isset($name))
|
1350 |
+
$this->Error('Could not include font definition file');
|
1351 |
+
if(isset($enc))
|
1352 |
+
$enc = strtolower($enc);
|
1353 |
+
if(!isset($subsetted))
|
1354 |
+
$subsetted = false;
|
1355 |
+
return get_defined_vars();
|
1356 |
+
}
|
1357 |
+
|
1358 |
+
protected function _isascii($s)
|
1359 |
+
{
|
1360 |
+
// Test if string is ASCII
|
1361 |
+
$nb = strlen($s);
|
1362 |
+
for($i=0;$i<$nb;$i++)
|
1363 |
+
{
|
1364 |
+
if(ord($s[$i])>127)
|
1365 |
+
return false;
|
1366 |
+
}
|
1367 |
+
return true;
|
1368 |
+
}
|
1369 |
+
|
1370 |
+
protected function _httpencode($param, $value, $isUTF8)
|
1371 |
+
{
|
1372 |
+
// Encode HTTP header field parameter
|
1373 |
+
if($this->_isascii($value))
|
1374 |
+
return $param.'="'.$value.'"';
|
1375 |
+
if(!$isUTF8)
|
1376 |
+
$value = utf8_encode($value);
|
1377 |
+
if(strpos($_SERVER['HTTP_USER_AGENT'],'MSIE')!==false)
|
1378 |
+
return $param.'="'.rawurlencode($value).'"';
|
1379 |
+
else
|
1380 |
+
return $param."*=UTF-8''".rawurlencode($value);
|
1381 |
+
}
|
1382 |
+
|
1383 |
+
protected function _UTF8toUTF16($s)
|
1384 |
+
{
|
1385 |
+
// Convert UTF-8 to UTF-16BE with BOM
|
1386 |
+
$res = "\xFE\xFF";
|
1387 |
+
$nb = strlen($s);
|
1388 |
+
$i = 0;
|
1389 |
+
while($i<$nb)
|
1390 |
+
{
|
1391 |
+
$c1 = ord($s[$i++]);
|
1392 |
+
if($c1>=224)
|
1393 |
+
{
|
1394 |
+
// 3-byte character
|
1395 |
+
$c2 = ord($s[$i++]);
|
1396 |
+
$c3 = ord($s[$i++]);
|
1397 |
+
$res .= chr((($c1 & 0x0F)<<4) + (($c2 & 0x3C)>>2));
|
1398 |
+
$res .= chr((($c2 & 0x03)<<6) + ($c3 & 0x3F));
|
1399 |
+
}
|
1400 |
+
elseif($c1>=192)
|
1401 |
+
{
|
1402 |
+
// 2-byte character
|
1403 |
+
$c2 = ord($s[$i++]);
|
1404 |
+
$res .= chr(($c1 & 0x1C)>>2);
|
1405 |
+
$res .= chr((($c1 & 0x03)<<6) + ($c2 & 0x3F));
|
1406 |
+
}
|
1407 |
+
else
|
1408 |
+
{
|
1409 |
+
// Single-byte character
|
1410 |
+
$res .= "\0".chr($c1);
|
1411 |
+
}
|
1412 |
+
}
|
1413 |
+
return $res;
|
1414 |
+
}
|
1415 |
+
|
1416 |
+
protected function _escape($s)
|
1417 |
+
{
|
1418 |
+
// Escape special characters
|
1419 |
+
if(strpos($s,'(')!==false || strpos($s,')')!==false || strpos($s,'\\')!==false || strpos($s,"\r")!==false)
|
1420 |
+
return str_replace(array('\\','(',')',"\r"), array('\\\\','\\(','\\)','\\r'), $s);
|
1421 |
+
else
|
1422 |
+
return $s;
|
1423 |
+
}
|
1424 |
+
|
1425 |
+
protected function _textstring($s)
|
1426 |
+
{
|
1427 |
+
// Format a text string
|
1428 |
+
if(!$this->_isascii($s))
|
1429 |
+
$s = $this->_UTF8toUTF16($s);
|
1430 |
+
return '('.$this->_escape($s).')';
|
1431 |
+
}
|
1432 |
+
|
1433 |
+
protected function _dounderline($x, $y, $txt)
|
1434 |
+
{
|
1435 |
+
// Underline text
|
1436 |
+
$up = $this->CurrentFont['up'];
|
1437 |
+
$ut = $this->CurrentFont['ut'];
|
1438 |
+
$w = $this->GetStringWidth($txt)+$this->ws*substr_count($txt,' ');
|
1439 |
+
return sprintf('%.2F %.2F %.2F %.2F re f',$x*$this->k,($this->h-($y-$up/1000*$this->FontSize))*$this->k,$w*$this->k,-$ut/1000*$this->FontSizePt);
|
1440 |
+
}
|
1441 |
+
|
1442 |
+
protected function _parsejpg($file)
|
1443 |
+
{
|
1444 |
+
// Extract info from a JPEG file
|
1445 |
+
$a = getimagesize($file);
|
1446 |
+
if(!$a)
|
1447 |
+
$this->Error('Missing or incorrect image file: '.$file);
|
1448 |
+
if($a[2]!=2)
|
1449 |
+
$this->Error('Not a JPEG file: '.$file);
|
1450 |
+
if(!isset($a['channels']) || $a['channels']==3)
|
1451 |
+
$colspace = 'DeviceRGB';
|
1452 |
+
elseif($a['channels']==4)
|
1453 |
+
$colspace = 'DeviceCMYK';
|
1454 |
+
else
|
1455 |
+
$colspace = 'DeviceGray';
|
1456 |
+
$bpc = isset($a['bits']) ? $a['bits'] : 8;
|
1457 |
+
$data = file_get_contents($file);
|
1458 |
+
return array('w'=>$a[0], 'h'=>$a[1], 'cs'=>$colspace, 'bpc'=>$bpc, 'f'=>'DCTDecode', 'data'=>$data);
|
1459 |
+
}
|
1460 |
+
|
1461 |
+
protected function _parsepng($file)
|
1462 |
+
{
|
1463 |
+
// Extract info from a PNG file
|
1464 |
+
$f = fopen($file,'rb');
|
1465 |
+
if(!$f)
|
1466 |
+
$this->Error('Can\'t open image file: '.$file);
|
1467 |
+
$info = $this->_parsepngstream($f,$file);
|
1468 |
+
fclose($f);
|
1469 |
+
return $info;
|
1470 |
+
}
|
1471 |
+
|
1472 |
+
protected function _parsepngstream($f, $file)
|
1473 |
+
{
|
1474 |
+
// Check signature
|
1475 |
+
if($this->_readstream($f,8)!=chr(137).'PNG'.chr(13).chr(10).chr(26).chr(10))
|
1476 |
+
$this->Error('Not a PNG file: '.$file);
|
1477 |
+
|
1478 |
+
// Read header chunk
|
1479 |
+
$this->_readstream($f,4);
|
1480 |
+
if($this->_readstream($f,4)!='IHDR')
|
1481 |
+
$this->Error('Incorrect PNG file: '.$file);
|
1482 |
+
$w = $this->_readint($f);
|
1483 |
+
$h = $this->_readint($f);
|
1484 |
+
$bpc = ord($this->_readstream($f,1));
|
1485 |
+
if($bpc>8)
|
1486 |
+
$this->Error('16-bit depth not supported: '.$file);
|
1487 |
+
$ct = ord($this->_readstream($f,1));
|
1488 |
+
if($ct==0 || $ct==4)
|
1489 |
+
$colspace = 'DeviceGray';
|
1490 |
+
elseif($ct==2 || $ct==6)
|
1491 |
+
$colspace = 'DeviceRGB';
|
1492 |
+
elseif($ct==3)
|
1493 |
+
$colspace = 'Indexed';
|
1494 |
+
else
|
1495 |
+
$this->Error('Unknown color type: '.$file);
|
1496 |
+
if(ord($this->_readstream($f,1))!=0)
|
1497 |
+
$this->Error('Unknown compression method: '.$file);
|
1498 |
+
if(ord($this->_readstream($f,1))!=0)
|
1499 |
+
$this->Error('Unknown filter method: '.$file);
|
1500 |
+
if(ord($this->_readstream($f,1))!=0)
|
1501 |
+
$this->Error('Interlacing not supported: '.$file);
|
1502 |
+
$this->_readstream($f,4);
|
1503 |
+
$dp = '/Predictor 15 /Colors '.($colspace=='DeviceRGB' ? 3 : 1).' /BitsPerComponent '.$bpc.' /Columns '.$w;
|
1504 |
+
|
1505 |
+
// Scan chunks looking for palette, transparency and image data
|
1506 |
+
$pal = '';
|
1507 |
+
$trns = '';
|
1508 |
+
$data = '';
|
1509 |
+
do
|
1510 |
+
{
|
1511 |
+
$n = $this->_readint($f);
|
1512 |
+
$type = $this->_readstream($f,4);
|
1513 |
+
if($type=='PLTE')
|
1514 |
+
{
|
1515 |
+
// Read palette
|
1516 |
+
$pal = $this->_readstream($f,$n);
|
1517 |
+
$this->_readstream($f,4);
|
1518 |
+
}
|
1519 |
+
elseif($type=='tRNS')
|
1520 |
+
{
|
1521 |
+
// Read transparency info
|
1522 |
+
$t = $this->_readstream($f,$n);
|
1523 |
+
if($ct==0)
|
1524 |
+
$trns = array(ord(substr($t,1,1)));
|
1525 |
+
elseif($ct==2)
|
1526 |
+
$trns = array(ord(substr($t,1,1)), ord(substr($t,3,1)), ord(substr($t,5,1)));
|
1527 |
+
else
|
1528 |
+
{
|
1529 |
+
$pos = strpos($t,chr(0));
|
1530 |
+
if($pos!==false)
|
1531 |
+
$trns = array($pos);
|
1532 |
+
}
|
1533 |
+
$this->_readstream($f,4);
|
1534 |
+
}
|
1535 |
+
elseif($type=='IDAT')
|
1536 |
+
{
|
1537 |
+
// Read image data block
|
1538 |
+
$data .= $this->_readstream($f,$n);
|
1539 |
+
$this->_readstream($f,4);
|
1540 |
+
}
|
1541 |
+
elseif($type=='IEND')
|
1542 |
+
break;
|
1543 |
+
else
|
1544 |
+
$this->_readstream($f,$n+4);
|
1545 |
+
}
|
1546 |
+
while($n);
|
1547 |
+
|
1548 |
+
if($colspace=='Indexed' && empty($pal))
|
1549 |
+
$this->Error('Missing palette in '.$file);
|
1550 |
+
$info = array('w'=>$w, 'h'=>$h, 'cs'=>$colspace, 'bpc'=>$bpc, 'f'=>'FlateDecode', 'dp'=>$dp, 'pal'=>$pal, 'trns'=>$trns);
|
1551 |
+
if($ct>=4)
|
1552 |
+
{
|
1553 |
+
// Extract alpha channel
|
1554 |
+
if(!function_exists('gzuncompress'))
|
1555 |
+
$this->Error('Zlib not available, can\'t handle alpha channel: '.$file);
|
1556 |
+
$data = gzuncompress($data);
|
1557 |
+
$color = '';
|
1558 |
+
$alpha = '';
|
1559 |
+
if($ct==4)
|
1560 |
+
{
|
1561 |
+
// Gray image
|
1562 |
+
$len = 2*$w;
|
1563 |
+
for($i=0;$i<$h;$i++)
|
1564 |
+
{
|
1565 |
+
$pos = (1+$len)*$i;
|
1566 |
+
$color .= $data[$pos];
|
1567 |
+
$alpha .= $data[$pos];
|
1568 |
+
$line = substr($data,$pos+1,$len);
|
1569 |
+
$color .= preg_replace('/(.)./s','$1',$line);
|
1570 |
+
$alpha .= preg_replace('/.(.)/s','$1',$line);
|
1571 |
+
}
|
1572 |
+
}
|
1573 |
+
else
|
1574 |
+
{
|
1575 |
+
// RGB image
|
1576 |
+
$len = 4*$w;
|
1577 |
+
for($i=0;$i<$h;$i++)
|
1578 |
+
{
|
1579 |
+
$pos = (1+$len)*$i;
|
1580 |
+
$color .= $data[$pos];
|
1581 |
+
$alpha .= $data[$pos];
|
1582 |
+
$line = substr($data,$pos+1,$len);
|
1583 |
+
$color .= preg_replace('/(.{3})./s','$1',$line);
|
1584 |
+
$alpha .= preg_replace('/.{3}(.)/s','$1',$line);
|
1585 |
+
}
|
1586 |
+
}
|
1587 |
+
unset($data);
|
1588 |
+
$data = gzcompress($color);
|
1589 |
+
$info['smask'] = gzcompress($alpha);
|
1590 |
+
$this->WithAlpha = true;
|
1591 |
+
if($this->PDFVersion<'1.4')
|
1592 |
+
$this->PDFVersion = '1.4';
|
1593 |
+
}
|
1594 |
+
$info['data'] = $data;
|
1595 |
+
return $info;
|
1596 |
+
}
|
1597 |
+
|
1598 |
+
protected function _readstream($f, $n)
|
1599 |
+
{
|
1600 |
+
// Read n bytes from stream
|
1601 |
+
$res = '';
|
1602 |
+
while($n>0 && !feof($f))
|
1603 |
+
{
|
1604 |
+
$s = fread($f,$n);
|
1605 |
+
if($s===false)
|
1606 |
+
$this->Error('Error while reading stream');
|
1607 |
+
$n -= strlen($s);
|
1608 |
+
$res .= $s;
|
1609 |
+
}
|
1610 |
+
if($n>0)
|
1611 |
+
$this->Error('Unexpected end of stream');
|
1612 |
+
return $res;
|
1613 |
+
}
|
1614 |
+
|
1615 |
+
protected function _readint($f)
|
1616 |
+
{
|
1617 |
+
// Read a 4-byte integer from stream
|
1618 |
+
$a = unpack('Ni',$this->_readstream($f,4));
|
1619 |
+
return $a['i'];
|
1620 |
+
}
|
1621 |
+
|
1622 |
+
protected function _parsegif($file)
|
1623 |
+
{
|
1624 |
+
// Extract info from a GIF file (via PNG conversion)
|
1625 |
+
if(!function_exists('imagepng'))
|
1626 |
+
$this->Error('GD extension is required for GIF support');
|
1627 |
+
if(!function_exists('imagecreatefromgif'))
|
1628 |
+
$this->Error('GD has no GIF read support');
|
1629 |
+
$im = imagecreatefromgif($file);
|
1630 |
+
if(!$im)
|
1631 |
+
$this->Error('Missing or incorrect image file: '.$file);
|
1632 |
+
imageinterlace($im,0);
|
1633 |
+
ob_start();
|
1634 |
+
imagepng($im);
|
1635 |
+
$data = ob_get_clean();
|
1636 |
+
imagedestroy($im);
|
1637 |
+
$f = fopen('php://temp','rb+');
|
1638 |
+
if(!$f)
|
1639 |
+
$this->Error('Unable to create memory stream');
|
1640 |
+
fwrite($f,$data);
|
1641 |
+
rewind($f);
|
1642 |
+
$info = $this->_parsepngstream($f,$file);
|
1643 |
+
fclose($f);
|
1644 |
+
return $info;
|
1645 |
+
}
|
1646 |
+
|
1647 |
+
protected function _out($s)
|
1648 |
+
{
|
1649 |
+
// Add a line to the document
|
1650 |
+
if($this->state==2)
|
1651 |
+
$this->pages[$this->page] .= $s."\n";
|
1652 |
+
elseif($this->state==1)
|
1653 |
+
$this->_put($s);
|
1654 |
+
elseif($this->state==0)
|
1655 |
+
$this->Error('No page has been added yet');
|
1656 |
+
elseif($this->state==3)
|
1657 |
+
$this->Error('The document is closed');
|
1658 |
+
}
|
1659 |
+
|
1660 |
+
protected function _put($s)
|
1661 |
+
{
|
1662 |
+
$this->buffer .= $s."\n";
|
1663 |
+
}
|
1664 |
+
|
1665 |
+
protected function _getoffset()
|
1666 |
+
{
|
1667 |
+
return strlen($this->buffer);
|
1668 |
+
}
|
1669 |
+
|
1670 |
+
protected function _newobj($n=null)
|
1671 |
+
{
|
1672 |
+
// Begin a new object
|
1673 |
+
if($n===null)
|
1674 |
+
$n = ++$this->n;
|
1675 |
+
$this->offsets[$n] = $this->_getoffset();
|
1676 |
+
$this->_put($n.' 0 obj');
|
1677 |
+
}
|
1678 |
+
|
1679 |
+
protected function _putstream($data)
|
1680 |
+
{
|
1681 |
+
$this->_put('stream');
|
1682 |
+
$this->_put($data);
|
1683 |
+
$this->_put('endstream');
|
1684 |
+
}
|
1685 |
+
|
1686 |
+
protected function _putstreamobject($data)
|
1687 |
+
{
|
1688 |
+
if($this->compress)
|
1689 |
+
{
|
1690 |
+
$entries = '/Filter /FlateDecode ';
|
1691 |
+
$data = gzcompress($data);
|
1692 |
+
}
|
1693 |
+
else
|
1694 |
+
$entries = '';
|
1695 |
+
$entries .= '/Length '.strlen($data);
|
1696 |
+
$this->_newobj();
|
1697 |
+
$this->_put('<<'.$entries.'>>');
|
1698 |
+
$this->_putstream($data);
|
1699 |
+
$this->_put('endobj');
|
1700 |
+
}
|
1701 |
+
|
1702 |
+
protected function _putpage($n)
|
1703 |
+
{
|
1704 |
+
$this->_newobj();
|
1705 |
+
$this->_put('<</Type /Page');
|
1706 |
+
$this->_put('/Parent 1 0 R');
|
1707 |
+
if(isset($this->PageInfo[$n]['size']))
|
1708 |
+
$this->_put(sprintf('/MediaBox [0 0 %.2F %.2F]',$this->PageInfo[$n]['size'][0],$this->PageInfo[$n]['size'][1]));
|
1709 |
+
if(isset($this->PageInfo[$n]['rotation']))
|
1710 |
+
$this->_put('/Rotate '.$this->PageInfo[$n]['rotation']);
|
1711 |
+
$this->_put('/Resources 2 0 R');
|
1712 |
+
if(isset($this->PageLinks[$n]))
|
1713 |
+
{
|
1714 |
+
// Links
|
1715 |
+
$annots = '/Annots [';
|
1716 |
+
foreach($this->PageLinks[$n] as $pl)
|
1717 |
+
{
|
1718 |
+
$rect = sprintf('%.2F %.2F %.2F %.2F',$pl[0],$pl[1],$pl[0]+$pl[2],$pl[1]-$pl[3]);
|
1719 |
+
$annots .= '<</Type /Annot /Subtype /Link /Rect ['.$rect.'] /Border [0 0 0] ';
|
1720 |
+
if(is_string($pl[4]))
|
1721 |
+
$annots .= '/A <</S /URI /URI '.$this->_textstring($pl[4]).'>>>>';
|
1722 |
+
else
|
1723 |
+
{
|
1724 |
+
$l = $this->links[$pl[4]];
|
1725 |
+
if(isset($this->PageInfo[$l[0]]['size']))
|
1726 |
+
$h = $this->PageInfo[$l[0]]['size'][1];
|
1727 |
+
else
|
1728 |
+
$h = ($this->DefOrientation=='P') ? $this->DefPageSize[1]*$this->k : $this->DefPageSize[0]*$this->k;
|
1729 |
+
$annots .= sprintf('/Dest [%d 0 R /XYZ 0 %.2F null]>>',$this->PageInfo[$l[0]]['n'],$h-$l[1]*$this->k);
|
1730 |
+
}
|
1731 |
+
}
|
1732 |
+
$this->_put($annots.']');
|
1733 |
+
}
|
1734 |
+
if($this->WithAlpha)
|
1735 |
+
$this->_put('/Group <</Type /Group /S /Transparency /CS /DeviceRGB>>');
|
1736 |
+
$this->_put('/Contents '.($this->n+1).' 0 R>>');
|
1737 |
+
$this->_put('endobj');
|
1738 |
+
// Page content
|
1739 |
+
if(!empty($this->AliasNbPages)) {
|
1740 |
+
$alias = $this->UTF8ToUTF16BE($this->AliasNbPages, false);
|
1741 |
+
$r = $this->UTF8ToUTF16BE($this->page, false);
|
1742 |
+
$this->pages[$n] = str_replace($alias,$r,$this->pages[$n]);
|
1743 |
+
// Now repeat for no pages in non-subset fonts
|
1744 |
+
|
1745 |
+
$this->pages[$n] = str_replace($this->AliasNbPages,$this->page,$this->pages[$n]);
|
1746 |
+
}
|
1747 |
+
$this->_putstreamobject($this->pages[$n]);
|
1748 |
+
}
|
1749 |
+
|
1750 |
+
protected function _putpages()
|
1751 |
+
{
|
1752 |
+
$nb = $this->page;
|
1753 |
+
for($n=1;$n<=$nb;$n++)
|
1754 |
+
$this->PageInfo[$n]['n'] = $this->n+1+2*($n-1);
|
1755 |
+
for($n=1;$n<=$nb;$n++)
|
1756 |
+
$this->_putpage($n);
|
1757 |
+
// Pages root
|
1758 |
+
$this->_newobj(1);
|
1759 |
+
$this->_put('<</Type /Pages');
|
1760 |
+
$kids = '/Kids [';
|
1761 |
+
for($n=1;$n<=$nb;$n++)
|
1762 |
+
$kids .= $this->PageInfo[$n]['n'].' 0 R ';
|
1763 |
+
$this->_put($kids.']');
|
1764 |
+
$this->_put('/Count '.$nb);
|
1765 |
+
if($this->DefOrientation=='P')
|
1766 |
+
{
|
1767 |
+
$w = $this->DefPageSize[0];
|
1768 |
+
$h = $this->DefPageSize[1];
|
1769 |
+
}
|
1770 |
+
else
|
1771 |
+
{
|
1772 |
+
$w = $this->DefPageSize[1];
|
1773 |
+
$h = $this->DefPageSize[0];
|
1774 |
+
}
|
1775 |
+
$this->_put(sprintf('/MediaBox [0 0 %.2F %.2F]',$w*$this->k,$h*$this->k));
|
1776 |
+
$this->_put('>>');
|
1777 |
+
$this->_put('endobj');
|
1778 |
+
}
|
1779 |
+
|
1780 |
+
protected function _putfonts()
|
1781 |
+
{
|
1782 |
+
foreach($this->FontFiles as $file=>$info)
|
1783 |
+
{
|
1784 |
+
if (!isset($info['type']) || $info['type']!='TTF') {
|
1785 |
+
// Font file embedding
|
1786 |
+
$this->_newobj();
|
1787 |
+
$this->FontFiles[$file]['n'] = $this->n;
|
1788 |
+
$font = file_get_contents($this->fontpath.$file,true);
|
1789 |
+
if(!$font)
|
1790 |
+
$this->Error('Font file not found: '.$file);
|
1791 |
+
$compressed = (substr($file,-2)=='.z');
|
1792 |
+
if(!$compressed && isset($info['length2']))
|
1793 |
+
$font = substr($font,6,$info['length1']).substr($font,6+$info['length1']+6,$info['length2']);
|
1794 |
+
$this->_put('<</Length '.strlen($font));
|
1795 |
+
if($compressed)
|
1796 |
+
$this->_put('/Filter /FlateDecode');
|
1797 |
+
$this->_put('/Length1 '.$info['length1']);
|
1798 |
+
if(isset($info['length2']))
|
1799 |
+
$this->_put('/Length2 '.$info['length2'].' /Length3 0');
|
1800 |
+
$this->_put('>>');
|
1801 |
+
$this->_putstream($font);
|
1802 |
+
$this->_put('endobj');
|
1803 |
+
}
|
1804 |
+
}
|
1805 |
+
foreach($this->fonts as $k=>$font)
|
1806 |
+
{
|
1807 |
+
// Encoding
|
1808 |
+
if(isset($font['diff']))
|
1809 |
+
{
|
1810 |
+
if(!isset($this->encodings[$font['enc']]))
|
1811 |
+
{
|
1812 |
+
$this->_newobj();
|
1813 |
+
$this->_put('<</Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences ['.$font['diff'].']>>');
|
1814 |
+
$this->_put('endobj');
|
1815 |
+
$this->encodings[$font['enc']] = $this->n;
|
1816 |
+
}
|
1817 |
+
}
|
1818 |
+
// ToUnicode CMap
|
1819 |
+
if(isset($font['uv']))
|
1820 |
+
{
|
1821 |
+
if(isset($font['enc']))
|
1822 |
+
$cmapkey = $font['enc'];
|
1823 |
+
else
|
1824 |
+
$cmapkey = $font['name'];
|
1825 |
+
if(!isset($this->cmaps[$cmapkey]))
|
1826 |
+
{
|
1827 |
+
$cmap = $this->_tounicodecmap($font['uv']);
|
1828 |
+
$this->_putstreamobject($cmap);
|
1829 |
+
$this->cmaps[$cmapkey] = $this->n;
|
1830 |
+
}
|
1831 |
+
}
|
1832 |
+
// Font object
|
1833 |
+
$type = $font['type'];
|
1834 |
+
$name = $font['name'];
|
1835 |
+
if($type=='Core')
|
1836 |
+
{
|
1837 |
+
// Core font
|
1838 |
+
$this->fonts[$k]['n'] = $this->n+1;
|
1839 |
+
$this->_newobj();
|
1840 |
+
$this->_put('<</Type /Font');
|
1841 |
+
$this->_put('/BaseFont /'.$name);
|
1842 |
+
$this->_put('/Subtype /Type1');
|
1843 |
+
if($name!='Symbol' && $name!='ZapfDingbats')
|
1844 |
+
$this->_put('/Encoding /WinAnsiEncoding');
|
1845 |
+
if(isset($font['uv']))
|
1846 |
+
$this->_put('/ToUnicode '.$this->cmaps[$cmapkey].' 0 R');
|
1847 |
+
$this->_put('>>');
|
1848 |
+
$this->_put('endobj');
|
1849 |
+
}
|
1850 |
+
elseif($type=='Type1' || $type=='TrueType')
|
1851 |
+
{
|
1852 |
+
// Additional Type1 or TrueType/OpenType font
|
1853 |
+
if(isset($font['subsetted']) && $font['subsetted'])
|
1854 |
+
$name = 'AAAAAA+'.$name;
|
1855 |
+
$this->fonts[$k]['n'] = $this->n+1;
|
1856 |
+
$this->_newobj();
|
1857 |
+
$this->_put('<</Type /Font');
|
1858 |
+
$this->_put('/BaseFont /'.$name);
|
1859 |
+
$this->_put('/Subtype /'.$type);
|
1860 |
+
$this->_put('/FirstChar 32 /LastChar 255');
|
1861 |
+
$this->_put('/Widths '.($this->n+1).' 0 R');
|
1862 |
+
$this->_put('/FontDescriptor '.($this->n+2).' 0 R');
|
1863 |
+
|
1864 |
+
if($font['enc'])
|
1865 |
+
{
|
1866 |
+
if(isset($font['diff']))
|
1867 |
+
$this->_put('/Encoding '.$this->encodings[$font['enc']].' 0 R');
|
1868 |
+
else
|
1869 |
+
$this->_put('/Encoding /WinAnsiEncoding');
|
1870 |
+
}
|
1871 |
+
|
1872 |
+
if(isset($font['uv']))
|
1873 |
+
$this->_put('/ToUnicode '.$this->cmaps[$cmapkey].' 0 R');
|
1874 |
+
$this->_put('>>');
|
1875 |
+
$this->_put('endobj');
|
1876 |
+
// Widths
|
1877 |
+
$this->_newobj();
|
1878 |
+
$cw = &$font['cw'];
|
1879 |
+
$s = '[';
|
1880 |
+
for($i=32;$i<=255;$i++)
|
1881 |
+
$s .= $cw[chr($i)].' ';
|
1882 |
+
$this->_put($s.']');
|
1883 |
+
$this->_put('endobj');
|
1884 |
+
// Descriptor
|
1885 |
+
$this->_newobj();
|
1886 |
+
$s = '<</Type /FontDescriptor /FontName /'.$name;
|
1887 |
+
foreach($font['desc'] as $k=>$v)
|
1888 |
+
$s .= ' /'.$k.' '.$v;
|
1889 |
+
|
1890 |
+
if(!empty($font['file']))
|
1891 |
+
$s .= ' /FontFile'.($type=='Type1' ? '' : '2').' '.$this->FontFiles[$font['file']]['n'].' 0 R';
|
1892 |
+
$this->_put($s.'>>');
|
1893 |
+
$this->_put('endobj');
|
1894 |
+
}
|
1895 |
+
// TrueType embedded SUBSETS or FULL
|
1896 |
+
else if ($type=='TTF') {
|
1897 |
+
$this->fonts[$k]['n']=$this->n+1;
|
1898 |
+
require_once($this->fontpath.'unifont/ttfonts.php');
|
1899 |
+
$ttf = new TTFontFile();
|
1900 |
+
$fontname = 'MPDFAA'.'+'.$font['name'];
|
1901 |
+
$subset = $font['subset'];
|
1902 |
+
unset($subset[0]);
|
1903 |
+
$ttfontstream = $ttf->makeSubset($font['ttffile'], $subset);
|
1904 |
+
$ttfontsize = strlen($ttfontstream);
|
1905 |
+
$fontstream = gzcompress($ttfontstream);
|
1906 |
+
$codeToGlyph = $ttf->codeToGlyph;
|
1907 |
+
unset($codeToGlyph[0]);
|
1908 |
+
|
1909 |
+
// Type0 Font
|
1910 |
+
// A composite font - a font composed of other fonts, organized hierarchically
|
1911 |
+
$this->_newobj();
|
1912 |
+
$this->_put('<</Type /Font');
|
1913 |
+
$this->_put('/Subtype /Type0');
|
1914 |
+
$this->_put('/BaseFont /'.$fontname.'');
|
1915 |
+
$this->_put('/Encoding /Identity-H');
|
1916 |
+
$this->_put('/DescendantFonts ['.($this->n + 1).' 0 R]');
|
1917 |
+
$this->_put('/ToUnicode '.($this->n + 2).' 0 R');
|
1918 |
+
$this->_put('>>');
|
1919 |
+
$this->_put('endobj');
|
1920 |
+
|
1921 |
+
// CIDFontType2
|
1922 |
+
// A CIDFont whose glyph descriptions are based on TrueType font technology
|
1923 |
+
$this->_newobj();
|
1924 |
+
$this->_put('<</Type /Font');
|
1925 |
+
$this->_put('/Subtype /CIDFontType2');
|
1926 |
+
$this->_put('/BaseFont /'.$fontname.'');
|
1927 |
+
$this->_put('/CIDSystemInfo '.($this->n + 2).' 0 R');
|
1928 |
+
$this->_put('/FontDescriptor '.($this->n + 3).' 0 R');
|
1929 |
+
if (isset($font['desc']['MissingWidth'])){
|
1930 |
+
$this->_out('/DW '.$font['desc']['MissingWidth'].'');
|
1931 |
+
}
|
1932 |
+
|
1933 |
+
$this->_putTTfontwidths($font, $ttf->maxUni);
|
1934 |
+
|
1935 |
+
$this->_put('/CIDToGIDMap '.($this->n + 4).' 0 R');
|
1936 |
+
$this->_put('>>');
|
1937 |
+
$this->_put('endobj');
|
1938 |
+
|
1939 |
+
// ToUnicode
|
1940 |
+
$this->_newobj();
|
1941 |
+
$toUni = "/CIDInit /ProcSet findresource begin\n";
|
1942 |
+
$toUni .= "12 dict begin\n";
|
1943 |
+
$toUni .= "begincmap\n";
|
1944 |
+
$toUni .= "/CIDSystemInfo\n";
|
1945 |
+
$toUni .= "<</Registry (Adobe)\n";
|
1946 |
+
$toUni .= "/Ordering (UCS)\n";
|
1947 |
+
$toUni .= "/Supplement 0\n";
|
1948 |
+
$toUni .= ">> def\n";
|
1949 |
+
$toUni .= "/CMapName /Adobe-Identity-UCS def\n";
|
1950 |
+
$toUni .= "/CMapType 2 def\n";
|
1951 |
+
$toUni .= "1 begincodespacerange\n";
|
1952 |
+
$toUni .= "<0000> <FFFF>\n";
|
1953 |
+
$toUni .= "endcodespacerange\n";
|
1954 |
+
$toUni .= "1 beginbfrange\n";
|
1955 |
+
$toUni .= "<0000> <FFFF> <0000>\n";
|
1956 |
+
$toUni .= "endbfrange\n";
|
1957 |
+
$toUni .= "endcmap\n";
|
1958 |
+
$toUni .= "CMapName currentdict /CMap defineresource pop\n";
|
1959 |
+
$toUni .= "end\n";
|
1960 |
+
$toUni .= "end";
|
1961 |
+
$this->_put('<</Length '.(strlen($toUni)).'>>');
|
1962 |
+
$this->_putstream($toUni);
|
1963 |
+
$this->_put('endobj');
|
1964 |
+
|
1965 |
+
// CIDSystemInfo dictionary
|
1966 |
+
$this->_newobj();
|
1967 |
+
$this->_put('<</Registry (Adobe)');
|
1968 |
+
$this->_put('/Ordering (UCS)');
|
1969 |
+
$this->_put('/Supplement 0');
|
1970 |
+
$this->_put('>>');
|
1971 |
+
$this->_put('endobj');
|
1972 |
+
|
1973 |
+
// Font descriptor
|
1974 |
+
$this->_newobj();
|
1975 |
+
$this->_put('<</Type /FontDescriptor');
|
1976 |
+
$this->_put('/FontName /'.$fontname);
|
1977 |
+
foreach($font['desc'] as $kd=>$v) {
|
1978 |
+
if ($kd == 'Flags') { $v = $v | 4; $v = $v & ~32; } // SYMBOLIC font flag
|
1979 |
+
$this->_out(' /'.$kd.' '.$v);
|
1980 |
+
}
|
1981 |
+
$this->_put('/FontFile2 '.($this->n + 2).' 0 R');
|
1982 |
+
$this->_put('>>');
|
1983 |
+
$this->_put('endobj');
|
1984 |
+
|
1985 |
+
// Embed CIDToGIDMap
|
1986 |
+
// A specification of the mapping from CIDs to glyph indices
|
1987 |
+
$cidtogidmap = '';
|
1988 |
+
$cidtogidmap = str_pad('', 256*256*2, "\x00");
|
1989 |
+
foreach($codeToGlyph as $cc=>$glyph) {
|
1990 |
+
$cidtogidmap[$cc*2] = chr($glyph >> 8);
|
1991 |
+
$cidtogidmap[$cc*2 + 1] = chr($glyph & 0xFF);
|
1992 |
+
}
|
1993 |
+
$cidtogidmap = gzcompress($cidtogidmap);
|
1994 |
+
$this->_newobj();
|
1995 |
+
$this->_put('<</Length '.strlen($cidtogidmap).'');
|
1996 |
+
$this->_put('/Filter /FlateDecode');
|
1997 |
+
$this->_put('>>');
|
1998 |
+
$this->_putstream($cidtogidmap);
|
1999 |
+
$this->_put('endobj');
|
2000 |
+
|
2001 |
+
//Font file
|
2002 |
+
$this->_newobj();
|
2003 |
+
$this->_put('<</Length '.strlen($fontstream));
|
2004 |
+
$this->_put('/Filter /FlateDecode');
|
2005 |
+
$this->_put('/Length1 '.$ttfontsize);
|
2006 |
+
$this->_put('>>');
|
2007 |
+
$this->_putstream($fontstream);
|
2008 |
+
$this->_put('endobj');
|
2009 |
+
unset($ttf);
|
2010 |
+
}
|
2011 |
+
else
|
2012 |
+
{
|
2013 |
+
// Allow for additional types
|
2014 |
+
$this->fonts[$k]['n'] = $this->n+1;
|
2015 |
+
$mtd = '_put'.strtolower($type);
|
2016 |
+
if(!method_exists($this,$mtd))
|
2017 |
+
$this->Error('Unsupported font type: '.$type);
|
2018 |
+
$this->$mtd($font);
|
2019 |
+
}
|
2020 |
+
}
|
2021 |
+
}
|
2022 |
+
|
2023 |
+
protected function _putTTfontwidths(&$font, $maxUni) {
|
2024 |
+
if (file_exists($font['unifilename'].'.cw127.php')) {
|
2025 |
+
include($font['unifilename'].'.cw127.php') ;
|
2026 |
+
$startcid = 128;
|
2027 |
+
}
|
2028 |
+
else {
|
2029 |
+
$rangeid = 0;
|
2030 |
+
$range = array();
|
2031 |
+
$prevcid = -2;
|
2032 |
+
$prevwidth = -1;
|
2033 |
+
$interval = false;
|
2034 |
+
$startcid = 1;
|
2035 |
+
}
|
2036 |
+
$cwlen = $maxUni + 1;
|
2037 |
+
|
2038 |
+
// for each character
|
2039 |
+
for ($cid=$startcid; $cid<$cwlen; $cid++) {
|
2040 |
+
if ($cid==128 && (!file_exists($font['unifilename'].'.cw127.php'))) {
|
2041 |
+
if (is_writable(dirname($this->fontpath.'unifont/x'))) {
|
2042 |
+
$fh = fopen($font['unifilename'].'.cw127.php',"wb");
|
2043 |
+
$cw127='<?php'."\n";
|
2044 |
+
$cw127.='$rangeid='.$rangeid.";\n";
|
2045 |
+
$cw127.='$prevcid='.$prevcid.";\n";
|
2046 |
+
$cw127.='$prevwidth='.$prevwidth.";\n";
|
2047 |
+
if ($interval) { $cw127.='$interval=true'.";\n"; }
|
2048 |
+
else { $cw127.='$interval=false'.";\n"; }
|
2049 |
+
$cw127.='$range='.var_export($range,true).";\n";
|
2050 |
+
$cw127.="?>";
|
2051 |
+
fwrite($fh,$cw127,strlen($cw127));
|
2052 |
+
fclose($fh);
|
2053 |
+
}
|
2054 |
+
}
|
2055 |
+
if ((!isset($font['cw'][$cid*2]) || !isset($font['cw'][$cid*2+1])) ||
|
2056 |
+
($font['cw'][$cid*2] == "\00" && $font['cw'][$cid*2+1] == "\00")) { continue; }
|
2057 |
+
|
2058 |
+
$width = (ord($font['cw'][$cid*2]) << 8) + ord($font['cw'][$cid*2+1]);
|
2059 |
+
if ($width == 65535) { $width = 0; }
|
2060 |
+
if ($cid > 255 && (!isset($font['subset'][$cid]) || !$font['subset'][$cid])) { continue; }
|
2061 |
+
if (!isset($font['dw']) || (isset($font['dw']) && $width != $font['dw'])) {
|
2062 |
+
if ($cid == ($prevcid + 1)) {
|
2063 |
+
if ($width == $prevwidth) {
|
2064 |
+
if ($width == $range[$rangeid][0]) {
|
2065 |
+
$range[$rangeid][] = $width;
|
2066 |
+
}
|
2067 |
+
else {
|
2068 |
+
array_pop($range[$rangeid]);
|
2069 |
+
// new range
|
2070 |
+
$rangeid = $prevcid;
|
2071 |
+
$range[$rangeid] = array();
|
2072 |
+
$range[$rangeid][] = $prevwidth;
|
2073 |
+
$range[$rangeid][] = $width;
|
2074 |
+
}
|
2075 |
+
$interval = true;
|
2076 |
+
$range[$rangeid]['interval'] = true;
|
2077 |
+
} else {
|
2078 |
+
if ($interval) {
|
2079 |
+
// new range
|
2080 |
+
$rangeid = $cid;
|
2081 |
+
$range[$rangeid] = array();
|
2082 |
+
$range[$rangeid][] = $width;
|
2083 |
+
}
|
2084 |
+
else { $range[$rangeid][] = $width; }
|
2085 |
+
$interval = false;
|
2086 |
+
}
|
2087 |
+
} else {
|
2088 |
+
$rangeid = $cid;
|
2089 |
+
$range[$rangeid] = array();
|
2090 |
+
$range[$rangeid][] = $width;
|
2091 |
+
$interval = false;
|
2092 |
+
}
|
2093 |
+
$prevcid = $cid;
|
2094 |
+
$prevwidth = $width;
|
2095 |
+
}
|
2096 |
+
}
|
2097 |
+
$prevk = -1;
|
2098 |
+
$nextk = -1;
|
2099 |
+
$prevint = false;
|
2100 |
+
foreach ($range as $k => $ws) {
|
2101 |
+
$cws = count($ws);
|
2102 |
+
if (($k == $nextk) AND (!$prevint) AND ((!isset($ws['interval'])) OR ($cws < 4))) {
|
2103 |
+
if (isset($range[$k]['interval'])) { unset($range[$k]['interval']); }
|
2104 |
+
$range[$prevk] = array_merge($range[$prevk], $range[$k]);
|
2105 |
+
unset($range[$k]);
|
2106 |
+
}
|
2107 |
+
else { $prevk = $k; }
|
2108 |
+
$nextk = $k + $cws;
|
2109 |
+
if (isset($ws['interval'])) {
|
2110 |
+
if ($cws > 3) { $prevint = true; }
|
2111 |
+
else { $prevint = false; }
|
2112 |
+
unset($range[$k]['interval']);
|
2113 |
+
--$nextk;
|
2114 |
+
}
|
2115 |
+
else { $prevint = false; }
|
2116 |
+
}
|
2117 |
+
$w = '';
|
2118 |
+
foreach ($range as $k => $ws) {
|
2119 |
+
if (count(array_count_values($ws)) == 1) { $w .= ' '.$k.' '.($k + count($ws) - 1).' '.$ws[0]; }
|
2120 |
+
else { $w .= ' '.$k.' [ '.implode(' ', $ws).' ]' . "\n"; }
|
2121 |
+
}
|
2122 |
+
$this->_out('/W ['.$w.' ]');
|
2123 |
+
}
|
2124 |
+
|
2125 |
+
protected function _tounicodecmap($uv)
|
2126 |
+
{
|
2127 |
+
$ranges = '';
|
2128 |
+
$nbr = 0;
|
2129 |
+
$chars = '';
|
2130 |
+
$nbc = 0;
|
2131 |
+
foreach($uv as $c=>$v)
|
2132 |
+
{
|
2133 |
+
if(is_array($v))
|
2134 |
+
{
|
2135 |
+
$ranges .= sprintf("<%02X> <%02X> <%04X>\n",$c,$c+$v[1]-1,$v[0]);
|
2136 |
+
$nbr++;
|
2137 |
+
}
|
2138 |
+
else
|
2139 |
+
{
|
2140 |
+
$chars .= sprintf("<%02X> <%04X>\n",$c,$v);
|
2141 |
+
$nbc++;
|
2142 |
+
}
|
2143 |
+
}
|
2144 |
+
$s = "/CIDInit /ProcSet findresource begin\n";
|
2145 |
+
$s .= "12 dict begin\n";
|
2146 |
+
$s .= "begincmap\n";
|
2147 |
+
$s .= "/CIDSystemInfo\n";
|
2148 |
+
$s .= "<</Registry (Adobe)\n";
|
2149 |
+
$s .= "/Ordering (UCS)\n";
|
2150 |
+
$s .= "/Supplement 0\n";
|
2151 |
+
$s .= ">> def\n";
|
2152 |
+
$s .= "/CMapName /Adobe-Identity-UCS def\n";
|
2153 |
+
$s .= "/CMapType 2 def\n";
|
2154 |
+
$s .= "1 begincodespacerange\n";
|
2155 |
+
$s .= "<00> <FF>\n";
|
2156 |
+
$s .= "endcodespacerange\n";
|
2157 |
+
if($nbr>0)
|
2158 |
+
{
|
2159 |
+
$s .= "$nbr beginbfrange\n";
|
2160 |
+
$s .= $ranges;
|
2161 |
+
$s .= "endbfrange\n";
|
2162 |
+
}
|
2163 |
+
if($nbc>0)
|
2164 |
+
{
|
2165 |
+
$s .= "$nbc beginbfchar\n";
|
2166 |
+
$s .= $chars;
|
2167 |
+
$s .= "endbfchar\n";
|
2168 |
+
}
|
2169 |
+
$s .= "endcmap\n";
|
2170 |
+
$s .= "CMapName currentdict /CMap defineresource pop\n";
|
2171 |
+
$s .= "end\n";
|
2172 |
+
$s .= "end";
|
2173 |
+
return $s;
|
2174 |
+
}
|
2175 |
+
|
2176 |
+
protected function _putimages()
|
2177 |
+
{
|
2178 |
+
foreach(array_keys($this->images) as $file)
|
2179 |
+
{
|
2180 |
+
$this->_putimage($this->images[$file]);
|
2181 |
+
unset($this->images[$file]['data']);
|
2182 |
+
unset($this->images[$file]['smask']);
|
2183 |
+
}
|
2184 |
+
}
|
2185 |
+
|
2186 |
+
protected function _putimage(&$info)
|
2187 |
{
|
2188 |
+
$this->_newobj();
|
2189 |
+
$info['n'] = $this->n;
|
2190 |
+
$this->_put('<</Type /XObject');
|
2191 |
+
$this->_put('/Subtype /Image');
|
2192 |
+
$this->_put('/Width '.$info['w']);
|
2193 |
+
$this->_put('/Height '.$info['h']);
|
2194 |
+
if($info['cs']=='Indexed')
|
2195 |
+
$this->_put('/ColorSpace [/Indexed /DeviceRGB '.(strlen($info['pal'])/3-1).' '.($this->n+1).' 0 R]');
|
2196 |
+
else
|
2197 |
+
{
|
2198 |
+
$this->_put('/ColorSpace /'.$info['cs']);
|
2199 |
+
if($info['cs']=='DeviceCMYK')
|
2200 |
+
$this->_put('/Decode [1 0 1 0 1 0 1 0]');
|
2201 |
+
}
|
2202 |
+
$this->_put('/BitsPerComponent '.$info['bpc']);
|
2203 |
+
if(isset($info['f']))
|
2204 |
+
$this->_put('/Filter /'.$info['f']);
|
2205 |
+
if(isset($info['dp']))
|
2206 |
+
$this->_put('/DecodeParms <<'.$info['dp'].'>>');
|
2207 |
+
if(isset($info['trns']) && is_array($info['trns']))
|
2208 |
+
{
|
2209 |
+
$trns = '';
|
2210 |
+
for($i=0;$i<count($info['trns']);$i++)
|
2211 |
+
$trns .= $info['trns'][$i].' '.$info['trns'][$i].' ';
|
2212 |
+
$this->_put('/Mask ['.$trns.']');
|
2213 |
+
}
|
2214 |
+
if(isset($info['smask']))
|
2215 |
+
$this->_put('/SMask '.($this->n+1).' 0 R');
|
2216 |
+
$this->_put('/Length '.strlen($info['data']).'>>');
|
2217 |
+
$this->_putstream($info['data']);
|
2218 |
+
$this->_put('endobj');
|
2219 |
+
// Soft mask
|
2220 |
+
if(isset($info['smask']))
|
2221 |
+
{
|
2222 |
+
$dp = '/Predictor 15 /Colors 1 /BitsPerComponent 8 /Columns '.$info['w'];
|
2223 |
+
$smask = array('w'=>$info['w'], 'h'=>$info['h'], 'cs'=>'DeviceGray', 'bpc'=>8, 'f'=>$info['f'], 'dp'=>$dp, 'data'=>$info['smask']);
|
2224 |
+
$this->_putimage($smask);
|
2225 |
+
}
|
2226 |
+
// Palette
|
2227 |
+
if($info['cs']=='Indexed')
|
2228 |
+
$this->_putstreamobject($info['pal']);
|
2229 |
+
}
|
2230 |
+
|
2231 |
+
protected function _putxobjectdict()
|
2232 |
+
{
|
2233 |
+
foreach($this->images as $image)
|
2234 |
+
$this->_put('/I'.$image['i'].' '.$image['n'].' 0 R');
|
2235 |
+
}
|
2236 |
+
|
2237 |
+
protected function _putresourcedict()
|
2238 |
+
{
|
2239 |
+
$this->_put('/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]');
|
2240 |
+
$this->_put('/Font <<');
|
2241 |
+
foreach($this->fonts as $font)
|
2242 |
+
$this->_put('/F'.$font['i'].' '.$font['n'].' 0 R');
|
2243 |
+
$this->_put('>>');
|
2244 |
+
$this->_put('/XObject <<');
|
2245 |
+
$this->_putxobjectdict();
|
2246 |
+
$this->_put('>>');
|
2247 |
+
}
|
2248 |
+
|
2249 |
+
protected function _putresources()
|
2250 |
+
{
|
2251 |
+
$this->_putfonts();
|
2252 |
+
$this->_putimages();
|
2253 |
+
// Resource dictionary
|
2254 |
+
$this->_newobj(2);
|
2255 |
+
$this->_put('<<');
|
2256 |
+
$this->_putresourcedict();
|
2257 |
+
$this->_put('>>');
|
2258 |
+
$this->_put('endobj');
|
2259 |
+
}
|
2260 |
+
|
2261 |
+
protected function _putinfo()
|
2262 |
+
{
|
2263 |
+
$this->metadata['Producer'] = 'tFPDF '.tFPDF_VERSION;
|
2264 |
+
$this->metadata['CreationDate'] = 'D:'.@date('YmdHis');
|
2265 |
+
foreach($this->metadata as $key=>$value)
|
2266 |
+
$this->_put('/'.$key.' '.$this->_textstring($value));
|
2267 |
+
}
|
2268 |
+
|
2269 |
+
protected function _putcatalog()
|
2270 |
+
{
|
2271 |
+
$n = $this->PageInfo[1]['n'];
|
2272 |
+
$this->_put('/Type /Catalog');
|
2273 |
+
$this->_put('/Pages 1 0 R');
|
2274 |
+
if($this->ZoomMode=='fullpage')
|
2275 |
+
$this->_put('/OpenAction ['.$n.' 0 R /Fit]');
|
2276 |
+
elseif($this->ZoomMode=='fullwidth')
|
2277 |
+
$this->_put('/OpenAction ['.$n.' 0 R /FitH null]');
|
2278 |
+
elseif($this->ZoomMode=='real')
|
2279 |
+
$this->_put('/OpenAction ['.$n.' 0 R /XYZ null null 1]');
|
2280 |
+
elseif(!is_string($this->ZoomMode))
|
2281 |
+
$this->_put('/OpenAction ['.$n.' 0 R /XYZ null null '.sprintf('%.2F',$this->ZoomMode/100).']');
|
2282 |
+
if($this->LayoutMode=='single')
|
2283 |
+
$this->_put('/PageLayout /SinglePage');
|
2284 |
+
elseif($this->LayoutMode=='continuous')
|
2285 |
+
$this->_put('/PageLayout /OneColumn');
|
2286 |
+
elseif($this->LayoutMode=='two')
|
2287 |
+
$this->_put('/PageLayout /TwoColumnLeft');
|
2288 |
+
}
|
2289 |
+
|
2290 |
+
protected function _putheader()
|
2291 |
+
{
|
2292 |
+
$this->_put('%PDF-'.$this->PDFVersion);
|
2293 |
+
}
|
2294 |
+
|
2295 |
+
protected function _puttrailer()
|
2296 |
+
{
|
2297 |
+
$this->_put('/Size '.($this->n+1));
|
2298 |
+
$this->_put('/Root '.$this->n.' 0 R');
|
2299 |
+
$this->_put('/Info '.($this->n-1).' 0 R');
|
2300 |
+
}
|
2301 |
+
|
2302 |
+
protected function _enddoc()
|
2303 |
+
{
|
2304 |
+
$this->_putheader();
|
2305 |
+
$this->_putpages();
|
2306 |
+
$this->_putresources();
|
2307 |
+
// Info
|
2308 |
+
$this->_newobj();
|
2309 |
+
$this->_put('<<');
|
2310 |
+
$this->_putinfo();
|
2311 |
+
$this->_put('>>');
|
2312 |
+
$this->_put('endobj');
|
2313 |
+
// Catalog
|
2314 |
+
$this->_newobj();
|
2315 |
+
$this->_put('<<');
|
2316 |
+
$this->_putcatalog();
|
2317 |
+
$this->_put('>>');
|
2318 |
+
$this->_put('endobj');
|
2319 |
+
// Cross-ref
|
2320 |
+
$offset = $this->_getoffset();
|
2321 |
+
$this->_put('xref');
|
2322 |
+
$this->_put('0 '.($this->n+1));
|
2323 |
+
$this->_put('0000000000 65535 f ');
|
2324 |
+
for($i=1;$i<=$this->n;$i++)
|
2325 |
+
$this->_put(sprintf('%010d 00000 n ',$this->offsets[$i]));
|
2326 |
+
// Trailer
|
2327 |
+
$this->_put('trailer');
|
2328 |
+
$this->_put('<<');
|
2329 |
+
$this->_puttrailer();
|
2330 |
+
$this->_put('>>');
|
2331 |
+
$this->_put('startxref');
|
2332 |
+
$this->_put($offset);
|
2333 |
+
$this->_put('%%EOF');
|
2334 |
+
$this->state = 3;
|
2335 |
+
}
|
2336 |
+
|
2337 |
+
// ********* NEW FUNCTIONS *********
|
2338 |
+
// Converts UTF-8 strings to UTF16-BE.
|
2339 |
+
protected function UTF8ToUTF16BE($str, $setbom=true) {
|
2340 |
+
$outstr = "";
|
2341 |
+
if ($setbom) {
|
2342 |
+
$outstr .= "\xFE\xFF"; // Byte Order Mark (BOM)
|
2343 |
+
}
|
2344 |
+
$outstr .= mb_convert_encoding($str, 'UTF-16BE', 'UTF-8');
|
2345 |
+
return $outstr;
|
2346 |
+
}
|
2347 |
+
|
2348 |
+
// Converts UTF-8 strings to codepoints array
|
2349 |
+
protected function UTF8StringToArray($str) {
|
2350 |
+
$out = array();
|
2351 |
+
$len = strlen($str);
|
2352 |
+
for ($i = 0; $i < $len; $i++) {
|
2353 |
+
$uni = -1;
|
2354 |
+
$h = ord($str[$i]);
|
2355 |
+
if ( $h <= 0x7F )
|
2356 |
+
$uni = $h;
|
2357 |
+
elseif ( $h >= 0xC2 ) {
|
2358 |
+
if ( ($h <= 0xDF) && ($i < $len -1) )
|
2359 |
+
$uni = ($h & 0x1F) << 6 | (ord($str[++$i]) & 0x3F);
|
2360 |
+
elseif ( ($h <= 0xEF) && ($i < $len -2) )
|
2361 |
+
$uni = ($h & 0x0F) << 12 | (ord($str[++$i]) & 0x3F) << 6
|
2362 |
+
| (ord($str[++$i]) & 0x3F);
|
2363 |
+
elseif ( ($h <= 0xF4) && ($i < $len -3) )
|
2364 |
+
$uni = ($h & 0x0F) << 18 | (ord($str[++$i]) & 0x3F) << 12
|
2365 |
+
| (ord($str[++$i]) & 0x3F) << 6
|
2366 |
+
| (ord($str[++$i]) & 0x3F);
|
2367 |
+
}
|
2368 |
+
if ($uni >= 0) {
|
2369 |
+
$out[] = $uni;
|
2370 |
+
}
|
2371 |
+
}
|
2372 |
+
return $out;
|
2373 |
+
}
|
2374 |
+
|
2375 |
+
|
2376 |
+
|
2377 |
+
}
|
2378 |
+
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/core/src/Books/BookingForm.php
CHANGED
@@ -36,7 +36,10 @@ class BookingForm extends Singleton {
|
|
36 |
$occurrence_end_date = trim($occurrence) ? $mainClass->get_end_date_by_occurrence($single_event->data->ID, (isset($single_event->date['start']['date']) ? $single_event->date['start']['date'] : $occurrence)) : '';
|
37 |
|
38 |
if ($mainClass->is_sold($single_event, (trim($occurrence) ? $occurrence : $single_event->date['start']['date'])) && count($single_event->dates) <= 1) : ?>
|
39 |
-
<div class="mec-sold-tickets warning-msg"
|
|
|
|
|
|
|
40 |
<?php
|
41 |
elseif ($mainClass->can_show_booking_module($single_event)) :
|
42 |
$data_lity_class = '';
|
@@ -44,7 +47,7 @@ class BookingForm extends Singleton {
|
|
44 |
$data_lity_class = 'lity-hide ';
|
45 |
}
|
46 |
?>
|
47 |
-
<div id="mec-events-meta-group-booking-<?php echo $single->uniqueid; ?>" class="<?php echo $data_lity_class; ?>mec-events-meta-group mec-events-meta-group-booking mec-custom-form-box">
|
48 |
<?php
|
49 |
if( isset($settings['booking_user_login']) && $settings['booking_user_login'] == '1' && !is_user_logged_in() ) {
|
50 |
echo do_shortcode('[MEC_login]');
|
36 |
$occurrence_end_date = trim($occurrence) ? $mainClass->get_end_date_by_occurrence($single_event->data->ID, (isset($single_event->date['start']['date']) ? $single_event->date['start']['date'] : $occurrence)) : '';
|
37 |
|
38 |
if ($mainClass->is_sold($single_event, (trim($occurrence) ? $occurrence : $single_event->date['start']['date'])) && count($single_event->dates) <= 1) : ?>
|
39 |
+
<div class="mec-sold-tickets warning-msg">
|
40 |
+
<?php esc_html_e('Sold out!', 'modern-events-calendar-lite'); ?>
|
41 |
+
<?php do_action('mec_booking_sold_out',$single_event, NULL, NULL, array($single_event->date)); ?>
|
42 |
+
</div>
|
43 |
<?php
|
44 |
elseif ($mainClass->can_show_booking_module($single_event)) :
|
45 |
$data_lity_class = '';
|
47 |
$data_lity_class = 'lity-hide ';
|
48 |
}
|
49 |
?>
|
50 |
+
<div id="mec-events-meta-group-booking-<?php echo esc_attr( $single->uniqueid ); ?>" class="<?php echo esc_attr( $data_lity_class ); ?>mec-events-meta-group mec-events-meta-group-booking mec-custom-form-box">
|
51 |
<?php
|
52 |
if( isset($settings['booking_user_login']) && $settings['booking_user_login'] == '1' && !is_user_logged_in() ) {
|
53 |
echo do_shortcode('[MEC_login]');
|
app/core/src/Events/Event.php
CHANGED
@@ -182,7 +182,7 @@ class Event extends PostBase {
|
|
182 |
*
|
183 |
* @return string
|
184 |
*/
|
185 |
-
public function get_permalink( $start_timestamp = '', $replace_read_more_link = true ){
|
186 |
|
187 |
if( $replace_read_more_link ){
|
188 |
|
@@ -193,7 +193,11 @@ class Event extends PostBase {
|
|
193 |
}
|
194 |
}
|
195 |
|
196 |
-
|
|
|
|
|
|
|
|
|
197 |
$url = isset( $this->data['data']->permalink ) ? $this->data['data']->permalink : get_the_permalink( $this->get_id() );
|
198 |
|
199 |
if( !( empty( $single_date_method ) || 'next' === $single_date_method ) ) {
|
182 |
*
|
183 |
* @return string
|
184 |
*/
|
185 |
+
public function get_permalink( $start_timestamp = '', $replace_read_more_link = true, $single_date_method = '' ){
|
186 |
|
187 |
if( $replace_read_more_link ){
|
188 |
|
193 |
}
|
194 |
}
|
195 |
|
196 |
+
if( is_null( $single_date_method ) ){
|
197 |
+
|
198 |
+
$single_date_method = \MEC\Settings\Settings::getInstance()->get_settings( 'single_date_method' );
|
199 |
+
}
|
200 |
+
|
201 |
$url = isset( $this->data['data']->permalink ) ? $this->data['data']->permalink : get_the_permalink( $this->get_id() );
|
202 |
|
203 |
if( !( empty( $single_date_method ) || 'next' === $single_date_method ) ) {
|
app/core/src/Forms/DisplayFields.php
CHANGED
@@ -71,7 +71,7 @@ class DisplayFields {
|
|
71 |
$class .= ' mec-form-row';
|
72 |
}
|
73 |
?>
|
74 |
-
<div class="mec-field-<?php echo $field['type']; ?> <?php $required ? 'mec-reg-mandatory' : ''; ?> <?php echo $class; ?>" data-field-id="<?php echo $j; ?>">
|
75 |
<?php
|
76 |
global $current_user;
|
77 |
$attributes = '';
|
@@ -164,7 +164,7 @@ class DisplayFields {
|
|
164 |
// Display Label
|
165 |
if ( isset( $field['label'] ) && !empty( $field['label'] ) ) {
|
166 |
|
167 |
-
$label_field = '<label for="' . $html_id . '" style="display:block" class="' . ( $required ? 'required' : '' ) . '">'
|
168 |
. __( $field['label'], 'modern-events-calendar-lite' )
|
169 |
. ( $required ? '<span class="wbmec-mandatory">*</span>' : '' )
|
170 |
. '</label>';
|
@@ -180,7 +180,7 @@ class DisplayFields {
|
|
180 |
case 'mec_email':
|
181 |
|
182 |
$placeholder = ( isset( $field['placeholder'] ) && $field['placeholder'] ) ? __( $field['placeholder'], 'modern-events-calendar-lite' ) : __( $field['label'], 'modern-events-calendar-lite' );
|
183 |
-
$input_html = '<input id="' . $html_id . '" class="' . $class . '" type="' . $field_type . '" name="rsvp[attendees][' . $j . '][' . $type . ']" value="' . trim( $value ) . '" placeholder="' . $placeholder . '" ' . $required . ' ' . $lock_field . ' ' . $attributes . ' />';
|
184 |
|
185 |
break;
|
186 |
case 'text':
|
@@ -190,19 +190,19 @@ class DisplayFields {
|
|
190 |
case 'tel':
|
191 |
|
192 |
$placeholder = ( isset( $field['placeholder'] ) && $field['placeholder'] ) ? __( $field['placeholder'], 'modern-events-calendar-lite' ) : __( $field['label'], 'modern-events-calendar-lite' );
|
193 |
-
$input_html = '<input id="' . $html_id . '" class="' . $class . '" type="' . $field_type . '" name="' . $field_name . '" value="' . trim( $value ) . '" placeholder="' . $placeholder . '" ' . $required . ' ' . $lock_field . ' ' . $attributes . ' />';
|
194 |
|
195 |
break;
|
196 |
case 'textarea':
|
197 |
|
198 |
$placeholder = ( isset( $field['placeholder'] ) && $field['placeholder'] ) ? __( $field['placeholder'], 'modern-events-calendar-lite' ) : __( $field['label'], 'modern-events-calendar-lite' );
|
199 |
-
$input_html = '<textarea id="' . $html_id . '" class="' . $class . '" name="' . $field_name . '" value="' . trim( $value ) . '" placeholder="' . $placeholder . '" ' . $required . ' ' . $lock_field . ' ' . $attributes . ' ></textarea>';
|
200 |
|
201 |
break;
|
202 |
case 'select':
|
203 |
|
204 |
$placeholder = '';
|
205 |
-
$input_html = '<select id="' . $html_id . '" class="' . $class . '" name="'.$field_name.'" placeholder="' . $placeholder . '" ' . $required . ' ' . $lock_field . ' ' . $attributes . ' >';
|
206 |
$rd = 0;
|
207 |
$selected = $value;
|
208 |
$options = isset($field['options']) ? $field['options'] : [];
|
@@ -223,7 +223,7 @@ class DisplayFields {
|
|
223 |
$current_value = __( $field_option['label'], 'modern-events-calendar-lite' );
|
224 |
$checked = in_array($current_value,(array)$value);
|
225 |
$input_html .= '<label for="' . $html_id . $j . '_' . strtolower( str_replace( ' ', '_', $field_option['label'] ) ) . '">'
|
226 |
-
. '<input type="' . $field_type . '" id="mec_' . $form_type . '_field_' . $type . $j . '_' . $field_id . '_' . strtolower( str_replace( ' ', '_', $field_option['label'] ) ) . '" name="' . $field_name . '[]" value="' . $current_value . '" '.checked($checked,true,false).'/>'
|
227 |
. __( $field_option['label'], 'modern-events-calendar-lite' )
|
228 |
. '</label>';
|
229 |
}
|
71 |
$class .= ' mec-form-row';
|
72 |
}
|
73 |
?>
|
74 |
+
<div class="mec-field-<?php echo esc_attr( $field['type'] ); ?> <?php $required ? 'mec-reg-mandatory' : ''; ?> <?php echo esc_attr( $class ); ?>" data-field-id="<?php echo esc_attr( $j ); ?>">
|
75 |
<?php
|
76 |
global $current_user;
|
77 |
$attributes = '';
|
164 |
// Display Label
|
165 |
if ( isset( $field['label'] ) && !empty( $field['label'] ) ) {
|
166 |
|
167 |
+
$label_field = '<label for="' . esc_attr( $html_id ) . '" style="display:block" class="' . ( $required ? 'required' : '' ) . '">'
|
168 |
. __( $field['label'], 'modern-events-calendar-lite' )
|
169 |
. ( $required ? '<span class="wbmec-mandatory">*</span>' : '' )
|
170 |
. '</label>';
|
180 |
case 'mec_email':
|
181 |
|
182 |
$placeholder = ( isset( $field['placeholder'] ) && $field['placeholder'] ) ? __( $field['placeholder'], 'modern-events-calendar-lite' ) : __( $field['label'], 'modern-events-calendar-lite' );
|
183 |
+
$input_html = '<input id="' . esc_attr( $html_id ) . '" class="' . esc_attr( $class ) . '" type="' . esc_attr( $field_type ) . '" name="rsvp[attendees][' . $j . '][' . $type . ']" value="' . trim( $value ) . '" placeholder="' . esc_attr( $placeholder ) . '" ' . $required . ' ' . $lock_field . ' ' . $attributes . ' />';
|
184 |
|
185 |
break;
|
186 |
case 'text':
|
190 |
case 'tel':
|
191 |
|
192 |
$placeholder = ( isset( $field['placeholder'] ) && $field['placeholder'] ) ? __( $field['placeholder'], 'modern-events-calendar-lite' ) : __( $field['label'], 'modern-events-calendar-lite' );
|
193 |
+
$input_html = '<input id="' . esc_attr( $html_id ) . '" class="' . esc_attr( $class ) . '" type="' . esc_attr( $field_type ) . '" name="' . $field_name . '" value="' . trim( $value ) . '" placeholder="' . esc_attr( $placeholder ) . '" ' . $required . ' ' . $lock_field . ' ' . $attributes . ' />';
|
194 |
|
195 |
break;
|
196 |
case 'textarea':
|
197 |
|
198 |
$placeholder = ( isset( $field['placeholder'] ) && $field['placeholder'] ) ? __( $field['placeholder'], 'modern-events-calendar-lite' ) : __( $field['label'], 'modern-events-calendar-lite' );
|
199 |
+
$input_html = '<textarea id="' . esc_attr( $html_id ) . '" class="' . esc_attr( $class ) . '" name="' . $field_name . '" value="' . trim( $value ) . '" placeholder="' . esc_attr( $placeholder ) . '" ' . $required . ' ' . $lock_field . ' ' . $attributes . ' ></textarea>';
|
200 |
|
201 |
break;
|
202 |
case 'select':
|
203 |
|
204 |
$placeholder = '';
|
205 |
+
$input_html = '<select id="' . esc_attr( $html_id ) . '" class="' . esc_attr( $class ) . '" name="'.$field_name.'" placeholder="' . esc_attr( $placeholder ) . '" ' . $required . ' ' . $lock_field . ' ' . $attributes . ' >';
|
206 |
$rd = 0;
|
207 |
$selected = $value;
|
208 |
$options = isset($field['options']) ? $field['options'] : [];
|
223 |
$current_value = __( $field_option['label'], 'modern-events-calendar-lite' );
|
224 |
$checked = in_array($current_value,(array)$value);
|
225 |
$input_html .= '<label for="' . $html_id . $j . '_' . strtolower( str_replace( ' ', '_', $field_option['label'] ) ) . '">'
|
226 |
+
. '<input type="' . esc_attr( $field_type ) . '" id="mec_' . $form_type . '_field_' . $type . $j . '_' . $field_id . '_' . strtolower( str_replace( ' ', '_', $field_option['label'] ) ) . '" name="' . $field_name . '[]" value="' . $current_value . '" '.checked($checked,true,false).'/>'
|
227 |
. __( $field_option['label'], 'modern-events-calendar-lite' )
|
228 |
. '</label>';
|
229 |
}
|
app/core/src/Forms/FormFields.php
CHANGED
@@ -23,13 +23,13 @@ class FormFields extends Singleton {
|
|
23 |
|
24 |
$v = isset( $values['mapping'] ) ? $values['mapping'] : '';
|
25 |
$html = $this->get_wp_user_fields_dropdown(
|
26 |
-
'mec[' . $prefix . '_fields][' . $key . '][mapping]',
|
27 |
$v
|
28 |
);
|
29 |
}
|
30 |
|
31 |
$html .= '<div>
|
32 |
-
<input type="text" name="mec[' . $prefix . '_fields][' . $key . '][key]" placeholder="' . esc_attr__( 'Insert a key for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['key'] ) ? stripslashes( $values['key'] ) : '' ) . '" />
|
33 |
</div>';
|
34 |
|
35 |
|
@@ -47,21 +47,21 @@ class FormFields extends Singleton {
|
|
47 |
*/
|
48 |
public function field_text( $key, $values = array(), $prefix = 'reg' ) {
|
49 |
|
50 |
-
return '<li id="mec_' . $prefix . '_fields_' . $key . '" class="mec_form_field_item">
|
51 |
-
<span class="mec_' . $prefix . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
52 |
-
<span class="mec_' . $prefix . '_field_type mec_field_type">' . __( 'Text', 'modern-events-calendar-lite' ) . '</span>
|
53 |
-
' . ( $prefix === 'event' ? '<span class="mec_' . $prefix . '_notification_placeholder">%%event_field_' . $key . '%%</span>' : ( $prefix === 'bfixed' ? '<span class="mec_' . $prefix . '_notification_placeholder">%%booking_field_' . $key . '%%</span>' : '' ) ) . '
|
54 |
-
<p class="mec_' . $prefix . '_field_options">
|
55 |
<label>
|
56 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][mandatory]" value="0" />
|
57 |
-
<input type="checkbox" name="mec[' . $prefix . '_fields][' . $key . '][mandatory]" value="1" ' . ( ( isset( $values['mandatory'] ) and $values['mandatory'] ) ? 'checked="checked"' : '' ) . ' />
|
58 |
' . __( 'Required Field', 'modern-events-calendar-lite' ) . '
|
59 |
</label>
|
60 |
</p>
|
61 |
-
<span class="mec_' . $prefix . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
62 |
<div>
|
63 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][type]" value="text" />
|
64 |
-
<input type="text" name="mec[' . $prefix . '_fields][' . $key . '][label]" placeholder="' . esc_attr__( 'Insert a label for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['label'] ) ? stripslashes( $values['label'] ) : '' ) . '" />
|
65 |
' . $this->input_key( $key, 'text', $values, $prefix ) . '
|
66 |
</div>
|
67 |
</li>';
|
@@ -95,21 +95,21 @@ class FormFields extends Singleton {
|
|
95 |
|
96 |
}
|
97 |
|
98 |
-
return '<li id="mec_' . $prefix . '_fields_' . $key . '">
|
99 |
-
<span class="mec_' . $prefix . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
100 |
-
<span class="mec_' . $prefix . '_field_type mec_field_type">' . $label . '</span>
|
101 |
-
' . ( $prefix === 'event' ? '<span class="mec_' . $prefix . '_notification_placeholder">%%event_field_' . $key . '%%</span>' : ( $prefix === 'bfixed' ? '<span class="mec_' . $prefix . '_notification_placeholder">%%booking_field_' . $key . '%%</span>' : '' ) ) . '
|
102 |
-
<p class="mec_' . $prefix . '_field_options" style="display:none">
|
103 |
<label>
|
104 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][mandatory]" value="1" />
|
105 |
-
<input type="checkbox" name="mec[' . $prefix . '_fields][' . $key . '][mandatory]" value="1" checked="checked" disabled />
|
106 |
' . __( 'Required Field', 'modern-events-calendar-lite' ) . '
|
107 |
</label>
|
108 |
</p>
|
109 |
-
<span class="mec_' . $prefix . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
110 |
<div>
|
111 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][type]" value="'.$type.'" />
|
112 |
-
<input type="text" name="mec[' . $prefix . '_fields][' . $key . '][label]" placeholder="' . esc_attr__( 'Insert a label for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['label'] ) ? stripslashes( $values['label'] ) : '' ) . '" />
|
113 |
</div>
|
114 |
</li>';
|
115 |
}
|
@@ -153,21 +153,21 @@ class FormFields extends Singleton {
|
|
153 |
*/
|
154 |
public function field_mec_email( $key, $values = array(), $prefix = 'reg' ) {
|
155 |
|
156 |
-
return '<li id="mec_' . $prefix . '_fields_' . $key . '">
|
157 |
-
<span class="mec_' . $prefix . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
158 |
-
<span class="mec_' . $prefix . '_field_type mec_field_type">' . __( 'MEC Email', 'modern-events-calendar-lite' ) . '</span>
|
159 |
-
' . ( $prefix === 'event' ? '<span class="mec_' . $prefix . '_notification_placeholder">%%event_field_' . $key . '%%</span>' : ( $prefix === 'bfixed' ? '<span class="mec_' . $prefix . '_notification_placeholder">%%booking_field_' . $key . '%%</span>' : '' ) ) . '
|
160 |
-
<p class="mec_' . $prefix . '_field_options" style="display:none">
|
161 |
<label>
|
162 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][mandatory]" value="1" />
|
163 |
-
<input type="checkbox" name="mec[' . $prefix . '_fields][' . $key . '][mandatory]" value="1" checked="checked" disabled />
|
164 |
' . __( 'Required Field', 'modern-events-calendar-lite' ) . '
|
165 |
</label>
|
166 |
</p>
|
167 |
-
<span class="mec_' . $prefix . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
168 |
<div>
|
169 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][type]" value="mec_email" />
|
170 |
-
<input type="text" name="mec[' . $prefix . '_fields][' . $key . '][label]" placeholder="' . esc_attr__( 'Insert a label for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['label'] ) ? stripslashes( $values['label'] ) : '' ) . '" />
|
171 |
</div>
|
172 |
</li>';
|
173 |
}
|
@@ -183,21 +183,21 @@ class FormFields extends Singleton {
|
|
183 |
*/
|
184 |
public function field_email( $key, $values = array(), $prefix = 'reg' ) {
|
185 |
|
186 |
-
return '<li id="mec_' . $prefix . '_fields_' . $key . '">
|
187 |
-
<span class="mec_' . $prefix . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
188 |
-
<span class="mec_' . $prefix . '_field_type mec_field_type">' . __( 'Email', 'modern-events-calendar-lite' ) . '</span>
|
189 |
-
' . ( $prefix === 'event' ? '<span class="mec_' . $prefix . '_notification_placeholder">%%event_field_' . $key . '%%</span>' : ( $prefix === 'bfixed' ? '<span class="mec_' . $prefix . '_notification_placeholder">%%booking_field_' . $key . '%%</span>' : '' ) ) . '
|
190 |
-
<p class="mec_' . $prefix . '_field_options">
|
191 |
<label>
|
192 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][mandatory]" value="0" />
|
193 |
-
<input type="checkbox" name="mec[' . $prefix . '_fields][' . $key . '][mandatory]" value="1" ' . ( ( isset( $values['mandatory'] ) and $values['mandatory'] ) ? 'checked="checked"' : '' ) . ' />
|
194 |
' . __( 'Required Field', 'modern-events-calendar-lite' ) . '
|
195 |
</label>
|
196 |
</p>
|
197 |
-
<span class="mec_' . $prefix . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
198 |
<div>
|
199 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][type]" value="email" />
|
200 |
-
<input type="text" name="mec[' . $prefix . '_fields][' . $key . '][label]" placeholder="' . esc_attr__( 'Insert a label for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['label'] ) ? stripslashes( $values['label'] ) : '' ) . '" />
|
201 |
' . $this->input_key( $key, 'email', $values, $prefix ) . '
|
202 |
</div>
|
203 |
</li>';
|
@@ -214,21 +214,21 @@ class FormFields extends Singleton {
|
|
214 |
*/
|
215 |
public function field_url( $key, $values = array(), $prefix = 'reg' ) {
|
216 |
|
217 |
-
return '<li id="mec_' . $prefix . '_fields_' . $key . '">
|
218 |
-
<span class="mec_' . $prefix . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
219 |
-
<span class="mec_' . $prefix . '_field_type mec_field_type">' . __( 'URL', 'modern-events-calendar-lite' ) . '</span>
|
220 |
-
' . ( $prefix === 'event' ? '<span class="mec_' . $prefix . '_notification_placeholder">%%event_field_' . $key . '%%</span>' : ( $prefix === 'bfixed' ? '<span class="mec_' . $prefix . '_notification_placeholder">%%booking_field_' . $key . '%%</span>' : '' ) ) . '
|
221 |
-
<p class="mec_' . $prefix . '_field_options">
|
222 |
<label>
|
223 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][mandatory]" value="0" />
|
224 |
-
<input type="checkbox" name="mec[' . $prefix . '_fields][' . $key . '][mandatory]" value="1" ' . ( ( isset( $values['mandatory'] ) and $values['mandatory'] ) ? 'checked="checked"' : '' ) . ' />
|
225 |
' . __( 'Required Field', 'modern-events-calendar-lite' ) . '
|
226 |
</label>
|
227 |
</p>
|
228 |
-
<span class="mec_' . $prefix . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
229 |
<div>
|
230 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][type]" value="url" />
|
231 |
-
<input type="text" name="mec[' . $prefix . '_fields][' . $key . '][label]" placeholder="' . esc_attr__( 'Insert a label for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['label'] ) ? stripslashes( $values['label'] ) : '' ) . '" />
|
232 |
' . $this->input_key( $key, 'url', $values, $prefix ) . '
|
233 |
</div>
|
234 |
</li>';
|
@@ -245,21 +245,21 @@ class FormFields extends Singleton {
|
|
245 |
*/
|
246 |
public function field_file( $key, $values = array(), $prefix = 'reg' ) {
|
247 |
|
248 |
-
return '<li id="mec_' . $prefix . '_fields_' . $key . '">
|
249 |
-
<span class="mec_' . $prefix . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
250 |
-
<span class="mec_' . $prefix . '_field_type mec_field_type">' . __( 'File', 'modern-events-calendar-lite' ) . '</span>
|
251 |
-
' . ( $prefix === 'event' ? '<span class="mec_' . $prefix . '_notification_placeholder">%%event_field_' . $key . '%%</span>' : ( $prefix === 'bfixed' ? '<span class="mec_' . $prefix . '_notification_placeholder">%%booking_field_' . $key . '%%</span>' : '' ) ) . '
|
252 |
-
<p class="mec_' . $prefix . '_field_options">
|
253 |
<label>
|
254 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][mandatory]" value="0" />
|
255 |
-
<input type="checkbox" name="mec[' . $prefix . '_fields][' . $key . '][mandatory]" value="1" ' . ( ( isset( $values['mandatory'] ) and $values['mandatory'] ) ? 'checked="checked"' : '' ) . ' />
|
256 |
' . __( 'Required Field', 'modern-events-calendar-lite' ) . '
|
257 |
</label>
|
258 |
</p>
|
259 |
-
<span class="mec_' . $prefix . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
260 |
<div>
|
261 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][type]" value="file" />
|
262 |
-
<input type="text" name="mec[' . $prefix . '_fields][' . $key . '][label]" placeholder="' . esc_attr__( 'Insert a label for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['label'] ) ? stripslashes( $values['label'] ) : '' ) . '" />
|
263 |
</div>
|
264 |
</li>';
|
265 |
}
|
@@ -275,21 +275,21 @@ class FormFields extends Singleton {
|
|
275 |
*/
|
276 |
public function field_date( $key, $values = array(), $prefix = 'reg' ) {
|
277 |
|
278 |
-
return '<li id="mec_' . $prefix . '_fields_' . $key . '">
|
279 |
-
<span class="mec_' . $prefix . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
280 |
-
<span class="mec_' . $prefix . '_field_type mec_field_type">' . __( 'Date', 'modern-events-calendar-lite' ) . '</span>
|
281 |
-
' . ( $prefix === 'event' ? '<span class="mec_' . $prefix . '_notification_placeholder">%%event_field_' . $key . '%%</span>' : ( $prefix === 'bfixed' ? '<span class="mec_' . $prefix . '_notification_placeholder">%%booking_field_' . $key . '%%</span>' : '' ) ) . '
|
282 |
-
<p class="mec_' . $prefix . '_field_options">
|
283 |
<label>
|
284 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][mandatory]" value="0" />
|
285 |
-
<input type="checkbox" name="mec[' . $prefix . '_fields][' . $key . '][mandatory]" value="1" ' . ( ( isset( $values['mandatory'] ) and $values['mandatory'] ) ? 'checked="checked"' : '' ) . ' />
|
286 |
' . __( 'Required Field', 'modern-events-calendar-lite' ) . '
|
287 |
</label>
|
288 |
</p>
|
289 |
-
<span class="mec_' . $prefix . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
290 |
<div>
|
291 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][type]" value="date" />
|
292 |
-
<input type="text" name="mec[' . $prefix . '_fields][' . $key . '][label]" placeholder="' . esc_attr__( 'Insert a label for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['label'] ) ? stripslashes( $values['label'] ) : '' ) . '" />
|
293 |
' . $this->input_key( $key, 'date', $values, $prefix ) . '
|
294 |
</div>
|
295 |
</li>';
|
@@ -306,21 +306,21 @@ class FormFields extends Singleton {
|
|
306 |
*/
|
307 |
public function field_tel( $key, $values = array(), $prefix = 'reg' ) {
|
308 |
|
309 |
-
return '<li id="mec_' . $prefix . '_fields_' . $key . '">
|
310 |
-
<span class="mec_' . $prefix . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
311 |
-
<span class="mec_' . $prefix . '_field_type mec_field_type">' . __( 'Tel', 'modern-events-calendar-lite' ) . '</span>
|
312 |
-
' . ( $prefix === 'event' ? '<span class="mec_' . $prefix . '_notification_placeholder">%%event_field_' . $key . '%%</span>' : ( $prefix === 'bfixed' ? '<span class="mec_' . $prefix . '_notification_placeholder">%%booking_field_' . $key . '%%</span>' : '' ) ) . '
|
313 |
-
<p class="mec_' . $prefix . '_field_options">
|
314 |
<label>
|
315 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][mandatory]" value="0" />
|
316 |
-
<input type="checkbox" name="mec[' . $prefix . '_fields][' . $key . '][mandatory]" value="1" ' . ( ( isset( $values['mandatory'] ) and $values['mandatory'] ) ? 'checked="checked"' : '' ) . ' />
|
317 |
' . __( 'Required Field', 'modern-events-calendar-lite' ) . '
|
318 |
</label>
|
319 |
</p>
|
320 |
-
<span class="mec_' . $prefix . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
321 |
<div>
|
322 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][type]" value="tel" />
|
323 |
-
<input type="text" name="mec[' . $prefix . '_fields][' . $key . '][label]" placeholder="' . esc_attr__( 'Insert a label for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['label'] ) ? stripslashes( $values['label'] ) : '' ) . '" />
|
324 |
' . $this->input_key( $key, 'tel', $values, $prefix ) . '
|
325 |
</div>
|
326 |
</li>';
|
@@ -337,21 +337,21 @@ class FormFields extends Singleton {
|
|
337 |
*/
|
338 |
public function field_textarea( $key, $values = array(), $prefix = 'reg' ) {
|
339 |
|
340 |
-
return '<li id="mec_' . $prefix . '_fields_' . $key . '">
|
341 |
-
<span class="mec_' . $prefix . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
342 |
-
<span class="mec_' . $prefix . '_field_type mec_field_type">' . __( 'Textarea', 'modern-events-calendar-lite' ) . '</span>
|
343 |
-
' . ( $prefix === 'event' ? '<span class="mec_' . $prefix . '_notification_placeholder">%%event_field_' . $key . '%%</span>' : ( $prefix === 'bfixed' ? '<span class="mec_' . $prefix . '_notification_placeholder">%%booking_field_' . $key . '%%</span>' : '' ) ) . '
|
344 |
-
<p class="mec_' . $prefix . '_field_options">
|
345 |
<label>
|
346 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][mandatory]" value="0" />
|
347 |
-
<input type="checkbox" name="mec[' . $prefix . '_fields][' . $key . '][mandatory]" value="1" ' . ( ( isset( $values['mandatory'] ) and $values['mandatory'] ) ? 'checked="checked"' : '' ) . ' />
|
348 |
' . __( 'Required Field', 'modern-events-calendar-lite' ) . '
|
349 |
</label>
|
350 |
</p>
|
351 |
-
<span class="mec_' . $prefix . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
352 |
<div>
|
353 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][type]" value="textarea" />
|
354 |
-
<input type="text" name="mec[' . $prefix . '_fields][' . $key . '][label]" placeholder="' . esc_attr__( 'Insert a label for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['label'] ) ? stripslashes( $values['label'] ) : '' ) . '" />
|
355 |
' . $this->input_key( $key, 'textarea', $values, $prefix ) . '
|
356 |
</div>
|
357 |
</li>';
|
@@ -368,13 +368,13 @@ class FormFields extends Singleton {
|
|
368 |
*/
|
369 |
public function field_p( $key, $values = array(), $prefix = 'reg' ) {
|
370 |
|
371 |
-
return '<li id="mec_' . $prefix . '_fields_' . $key . '">
|
372 |
-
<span class="mec_' . $prefix . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
373 |
-
<span class="mec_' . $prefix . '_field_type mec_field_type">' . __( 'Paragraph', 'modern-events-calendar-lite' ) . '</span>
|
374 |
-
<span class="mec_' . $prefix . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
375 |
<div>
|
376 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][type]" value="p" />
|
377 |
-
<textarea name="mec[' . $prefix . '_fields][' . $key . '][content]">' . ( isset( $values['content'] ) ? htmlentities( stripslashes( $values['content'] ) ) : '' ) . '</textarea>
|
378 |
<p class="description">' . __( 'HTML and shortcode are allowed.' ) . '</p>
|
379 |
</div>
|
380 |
</li>';
|
@@ -392,23 +392,23 @@ class FormFields extends Singleton {
|
|
392 |
public function field_checkbox( $key, $values = array(), $prefix = 'reg' ) {
|
393 |
|
394 |
$i = 0;
|
395 |
-
$field = '<li id="mec_' . $prefix . '_fields_' . $key . '">
|
396 |
-
<span class="mec_' . $prefix . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
397 |
-
<span class="mec_' . $prefix . '_field_type mec_field_type">' . __( 'Checkboxes', 'modern-events-calendar-lite' ) . '</span>
|
398 |
-
' . ( $prefix === 'event' ? '<span class="mec_' . $prefix . '_notification_placeholder">%%event_field_' . $key . '%%</span>' : ( $prefix === 'bfixed' ? '<span class="mec_' . $prefix . '_notification_placeholder">%%booking_field_' . $key . '%%</span>' : '' ) ) . '
|
399 |
-
<p class="mec_' . $prefix . '_field_options">
|
400 |
<label>
|
401 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][mandatory]" value="0" />
|
402 |
-
<input type="checkbox" name="mec[' . $prefix . '_fields][' . $key . '][mandatory]" value="1" ' . ( ( isset( $values['mandatory'] ) and $values['mandatory'] ) ? 'checked="checked"' : '' ) . ' />
|
403 |
' . __( 'Required Field', 'modern-events-calendar-lite' ) . '
|
404 |
</label>
|
405 |
</p>
|
406 |
-
<span class="mec_' . $prefix . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
407 |
<div>
|
408 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][type]" value="checkbox" />
|
409 |
-
<input type="text" name="mec[' . $prefix . '_fields][' . $key . '][label]" placeholder="' . esc_attr__( 'Insert a label for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['label'] ) ? stripslashes( $values['label'] ) : '' ) . '" />
|
410 |
' . $this->input_key( $key, 'checkbox', $values, $prefix ) . '
|
411 |
-
<ul id="mec_' . $prefix . '_fields_' . $key . '_options_container" class="mec_' . $prefix . '_fields_options_container mec_fields_options_container">';
|
412 |
|
413 |
if ( isset( $values['options'] ) and is_array( $values['options'] ) and count( $values['options'] ) ) {
|
414 |
foreach ( $values['options'] as $option_key => $option ) {
|
@@ -418,8 +418,8 @@ class FormFields extends Singleton {
|
|
418 |
}
|
419 |
|
420 |
$field .= '</ul>
|
421 |
-
<button type="button" class="mec-' . $prefix . '-field-add-option mec-field-add-option" data-field-id="' . $key . '">' . __( 'Option', 'modern-events-calendar-lite' ) . '</button>
|
422 |
-
<input type="hidden" id="mec_new_' . $prefix . '_field_option_key_' . $key . '" value="' . ( $i + 1 ) . '" />
|
423 |
</div>
|
424 |
</li>';
|
425 |
|
@@ -438,23 +438,23 @@ class FormFields extends Singleton {
|
|
438 |
public function field_radio( $key, $values = array(), $prefix = 'reg' ) {
|
439 |
|
440 |
$i = 0;
|
441 |
-
$field = '<li id="mec_' . $prefix . '_fields_' . $key . '">
|
442 |
-
<span class="mec_' . $prefix . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
443 |
-
<span class="mec_' . $prefix . '_field_type mec_field_type">' . __( 'Radio Buttons', 'modern-events-calendar-lite' ) . '</span>
|
444 |
-
' . ( $prefix === 'event' ? '<span class="mec_' . $prefix . '_notification_placeholder">%%event_field_' . $key . '%%</span>' : ( $prefix === 'bfixed' ? '<span class="mec_' . $prefix . '_notification_placeholder">%%booking_field_' . $key . '%%</span>' : '' ) ) . '
|
445 |
-
<p class="mec_' . $prefix . '_field_options">
|
446 |
<label>
|
447 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][mandatory]" value="0" />
|
448 |
-
<input type="checkbox" name="mec[' . $prefix . '_fields][' . $key . '][mandatory]" value="1" ' . ( ( isset( $values['mandatory'] ) and $values['mandatory'] ) ? 'checked="checked"' : '' ) . ' />
|
449 |
' . __( 'Required Field', 'modern-events-calendar-lite' ) . '
|
450 |
</label>
|
451 |
</p>
|
452 |
-
<span class="mec_' . $prefix . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
453 |
<div>
|
454 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][type]" value="radio" />
|
455 |
-
<input type="text" name="mec[' . $prefix . '_fields][' . $key . '][label]" placeholder="' . esc_attr__( 'Insert a label for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['label'] ) ? stripslashes( $values['label'] ) : '' ) . '" />
|
456 |
' . $this->input_key( $key, 'radio', $values, $prefix ) . '
|
457 |
-
<ul id="mec_' . $prefix . '_fields_' . $key . '_options_container" class="mec_' . $prefix . '_fields_options_container mec_fields_options_container">';
|
458 |
|
459 |
if ( isset( $values['options'] ) and is_array( $values['options'] ) and count( $values['options'] ) ) {
|
460 |
foreach ( $values['options'] as $option_key => $option ) {
|
@@ -464,8 +464,8 @@ class FormFields extends Singleton {
|
|
464 |
}
|
465 |
|
466 |
$field .= '</ul>
|
467 |
-
<button type="button" class="mec-' . $prefix . '-field-add-option mec-field-add-option" data-field-id="' . $key . '">' . __( 'Option', 'modern-events-calendar-lite' ) . '</button>
|
468 |
-
<input type="hidden" id="mec_new_' . $prefix . '_field_option_key_' . $key . '" value="' . ( $i + 1 ) . '" />
|
469 |
</div>
|
470 |
</li>';
|
471 |
|
@@ -484,30 +484,30 @@ class FormFields extends Singleton {
|
|
484 |
public function field_select( $key, $values = array(), $prefix = 'reg' ) {
|
485 |
|
486 |
$i = 0;
|
487 |
-
$field = '<li id="mec_' . $prefix . '_fields_' . $key . '">
|
488 |
-
<span class="mec_' . $prefix . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
489 |
-
<span class="mec_' . $prefix . '_field_type mec_field_type">' . __( 'Dropdown', 'modern-events-calendar-lite' ) . '</span>
|
490 |
-
' . ( $prefix === 'event' ? '<span class="mec_' . $prefix . '_notification_placeholder">%%event_field_' . $key . '%%</span>' : ( $prefix === 'bfixed' ? '<span class="mec_' . $prefix . '_notification_placeholder">%%booking_field_' . $key . '%%</span>' : '' ) ) . '
|
491 |
-
<p class="mec_' . $prefix . '_field_options">
|
492 |
<label>
|
493 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][mandatory]" value="0" />
|
494 |
-
<input type="checkbox" name="mec[' . $prefix . '_fields][' . $key . '][mandatory]" value="1" ' . ( ( isset( $values['mandatory'] ) and $values['mandatory'] ) ? 'checked="checked"' : '' ) . ' />
|
495 |
' . __( 'Required Field', 'modern-events-calendar-lite' ) . '
|
496 |
</label>
|
497 |
</p>
|
498 |
-
<p class="mec_' . $prefix . '_field_options">
|
499 |
<label>
|
500 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][ignore]" value="0" />
|
501 |
-
<input type="checkbox" name="mec[' . $prefix . '_fields][' . $key . '][ignore]" value="1" ' . ( ( isset( $values['ignore'] ) and $values['ignore'] ) ? 'checked="checked"' : '' ) . ' />
|
502 |
' . __( 'Consider first item as placeholder', 'modern-events-calendar-lite' ) . '
|
503 |
</label>
|
504 |
</p>
|
505 |
-
<span class="mec_' . $prefix . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
506 |
<div>
|
507 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][type]" value="select" />
|
508 |
-
<input type="text" name="mec[' . $prefix . '_fields][' . $key . '][label]" placeholder="' . esc_attr__( 'Insert a label for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['label'] ) ? stripslashes( $values['label'] ) : '' ) . '" />
|
509 |
' . $this->input_key( $key, 'select', $values, $prefix ) . '
|
510 |
-
<ul id="mec_' . $prefix . '_fields_' . $key . '_options_container" class="mec_' . $prefix . '_fields_options_container mec_fields_options_container">';
|
511 |
|
512 |
if ( isset( $values['options'] ) and is_array( $values['options'] ) and count( $values['options'] ) ) {
|
513 |
foreach ( $values['options'] as $option_key => $option ) {
|
@@ -517,8 +517,8 @@ class FormFields extends Singleton {
|
|
517 |
}
|
518 |
|
519 |
$field .= '</ul>
|
520 |
-
<button type="button" class="mec-' . $prefix . '-field-add-option mec-field-add-option" data-field-id="' . $key . '">' . __( 'Option', 'modern-events-calendar-lite' ) . '</button>
|
521 |
-
<input type="hidden" id="mec_new_' . $prefix . '_field_option_key_' . $key . '" value="' . ( $i + 1 ) . '" />
|
522 |
</div>
|
523 |
</li>';
|
524 |
|
@@ -540,40 +540,40 @@ class FormFields extends Singleton {
|
|
540 |
$pages = get_pages();
|
541 |
|
542 |
$i = 0;
|
543 |
-
$field = '<li id="mec_' . $prefix . '_fields_' . $key . '">
|
544 |
-
<span class="mec_' . $prefix . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
545 |
-
<span class="mec_' . $prefix . '_field_type mec_field_type">' . __( 'Agreement', 'modern-events-calendar-lite' ) . '</span>
|
546 |
-
' . ( $prefix === 'event' ? '<span class="mec_' . $prefix . '_notification_placeholder">%%event_field_' . $key . '%%</span>' : ( $prefix === 'bfixed' ? '<span class="mec_' . $prefix . '_notification_placeholder">%%booking_field_' . $key . '%%</span>' : '' ) ) . '
|
547 |
-
<p class="mec_' . $prefix . '_field_options">
|
548 |
<label>
|
549 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][mandatory]" value="0" />
|
550 |
-
<input type="checkbox" name="mec[' . $prefix . '_fields][' . $key . '][mandatory]" value="1" ' . ( ( !isset( $values['mandatory'] ) or ( isset( $values['mandatory'] ) and $values['mandatory'] ) ) ? 'checked="checked"' : '' ) . ' />
|
551 |
' . __( 'Required Field', 'modern-events-calendar-lite' ) . '
|
552 |
</label>
|
553 |
</p>
|
554 |
-
<span class="mec_' . $prefix . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
555 |
<div>
|
556 |
-
<input type="hidden" name="mec[' . $prefix . '_fields][' . $key . '][type]" value="agreement" />
|
557 |
-
<input type="text" name="mec[' . $prefix . '_fields][' . $key . '][label]" placeholder="' . esc_attr__( 'Insert a label for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['label'] ) ? stripslashes( $values['label'] ) : esc_attr__('I agree with %s', 'modern-events-calendar-lite') ) . '" /><p class="description">' . __( 'Instead of %s, the page title with a link will be show.', 'modern-events-calendar-lite' ) . '</p>
|
558 |
<div>
|
559 |
-
<label for="mec_' . $prefix . '_fields_' . $key . '_page">' . __( 'Agreement Page', 'modern-events-calendar-lite' ) . '</label>
|
560 |
-
<select id="mec_' . $prefix . '_fields_' . $key . '_page" name="mec[' . $prefix . '_fields][' . $key . '][page]">';
|
561 |
|
562 |
$page_options = '';
|
563 |
foreach ( $pages as $page ) {
|
564 |
-
$page_options .= '<option ' . ( ( isset( $values['page'] ) and $values['page'] === $page->ID ) ? 'selected="selected"' : '' ) . ' value="' . $page->ID . '">' . $page->post_title . '</option>';
|
565 |
}
|
566 |
|
567 |
$field .= $page_options . '</select>
|
568 |
</div>
|
569 |
<div>
|
570 |
-
<label for="mec_' . $prefix . '_fields_' . $key . '_status">' . __( 'Status', 'modern-events-calendar-lite' ) . '</label>
|
571 |
-
<select id="mec_' . $prefix . '_fields_' . $key . '_status" name="mec[' . $prefix . '_fields][' . $key . '][status]">
|
572 |
<option value="checked" ' . ( ( isset( $values['status'] ) and $values['status'] === 'checked' ) ? 'selected="selected"' : '' ) . '>' . __( 'Checked by default', 'modern-events-calendar-lite' ) . '</option>
|
573 |
<option value="unchecked" ' . ( ( isset( $values['status'] ) and $values['status'] === 'unchecked' ) ? 'selected="selected"' : '' ) . '>' . __( 'Unchecked by default', 'modern-events-calendar-lite' ) . '</option>
|
574 |
</select>
|
575 |
</div>
|
576 |
-
<input type="hidden" id="mec_new_' . $prefix . '_field_option_key_' . $key . '" value="' . ( $i + 1 ) . '" />
|
577 |
</div>
|
578 |
</li>';
|
579 |
|
@@ -592,10 +592,10 @@ class FormFields extends Singleton {
|
|
592 |
*/
|
593 |
public function field_option( $field_key, $key, $values = array(), $prefix = 'reg' ) {
|
594 |
|
595 |
-
return '<li id="mec_' . $prefix . '_fields_option_' . $field_key . '_' . $key . '" class="mec_fields_option">
|
596 |
-
<span class="mec_' . $prefix . '_field_option_sort mec_field_option_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
597 |
-
<span class="mec_' . $prefix . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
598 |
-
<input type="text" name="mec[' . $prefix . '_fields][' . $field_key . '][options][' . $key . '][label]" placeholder="' . esc_attr__( 'Insert a label for this option', 'modern-events-calendar-lite' ) . '" value="' . ( ( isset( $values['options'] ) and isset( $values['options'][ $key ] ) ) ? esc_attr( stripslashes( $values['options'][ $key ]['label'] ) ) : '' ) . '" />
|
599 |
</li>';
|
600 |
}
|
601 |
|
23 |
|
24 |
$v = isset( $values['mapping'] ) ? $values['mapping'] : '';
|
25 |
$html = $this->get_wp_user_fields_dropdown(
|
26 |
+
'mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][mapping]',
|
27 |
$v
|
28 |
);
|
29 |
}
|
30 |
|
31 |
$html .= '<div>
|
32 |
+
<input type="text" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][key]" placeholder="' . esc_attr__( 'Insert a key for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['key'] ) ? stripslashes( $values['key'] ) : '' ) . '" />
|
33 |
</div>';
|
34 |
|
35 |
|
47 |
*/
|
48 |
public function field_text( $key, $values = array(), $prefix = 'reg' ) {
|
49 |
|
50 |
+
return '<li id="mec_' . esc_attr( $prefix ) . '_fields_' . esc_attr( $key ) . '" class="mec_form_field_item">
|
51 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
52 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_type mec_field_type">' . __( 'Text', 'modern-events-calendar-lite' ) . '</span>
|
53 |
+
' . ( $prefix === 'event' ? '<span class="mec_' . esc_attr( $prefix ) . '_notification_placeholder">%%event_field_' . esc_attr( $key ) . '%%</span>' : ( $prefix === 'bfixed' ? '<span class="mec_' . esc_attr( $prefix ) . '_notification_placeholder">%%booking_field_' . esc_attr( $key ) . '%%</span>' : '' ) ) . '
|
54 |
+
<p class="mec_' . esc_attr( $prefix ) . '_field_options">
|
55 |
<label>
|
56 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][mandatory]" value="0" />
|
57 |
+
<input type="checkbox" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][mandatory]" value="1" ' . ( ( isset( $values['mandatory'] ) and $values['mandatory'] ) ? 'checked="checked"' : '' ) . ' />
|
58 |
' . __( 'Required Field', 'modern-events-calendar-lite' ) . '
|
59 |
</label>
|
60 |
</p>
|
61 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
62 |
<div>
|
63 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][type]" value="text" />
|
64 |
+
<input type="text" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][label]" placeholder="' . esc_attr__( 'Insert a label for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['label'] ) ? stripslashes( $values['label'] ) : '' ) . '" />
|
65 |
' . $this->input_key( $key, 'text', $values, $prefix ) . '
|
66 |
</div>
|
67 |
</li>';
|
95 |
|
96 |
}
|
97 |
|
98 |
+
return '<li id="mec_' . esc_attr( $prefix ) . '_fields_' . esc_attr( $key ) . '">
|
99 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
100 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_type mec_field_type">' . esc_html( $label ) . '</span>
|
101 |
+
' . ( $prefix === 'event' ? '<span class="mec_' . esc_attr( $prefix ) . '_notification_placeholder">%%event_field_' . esc_attr( $key ) . '%%</span>' : ( $prefix === 'bfixed' ? '<span class="mec_' . esc_attr( $prefix ) . '_notification_placeholder">%%booking_field_' . esc_attr( $key ) . '%%</span>' : '' ) ) . '
|
102 |
+
<p class="mec_' . esc_attr( $prefix ) . '_field_options" style="display:none">
|
103 |
<label>
|
104 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][mandatory]" value="1" />
|
105 |
+
<input type="checkbox" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][mandatory]" value="1" checked="checked" disabled />
|
106 |
' . __( 'Required Field', 'modern-events-calendar-lite' ) . '
|
107 |
</label>
|
108 |
</p>
|
109 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
110 |
<div>
|
111 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][type]" value="'.$type.'" />
|
112 |
+
<input type="text" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][label]" placeholder="' . esc_attr__( 'Insert a label for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['label'] ) ? stripslashes( $values['label'] ) : '' ) . '" />
|
113 |
</div>
|
114 |
</li>';
|
115 |
}
|
153 |
*/
|
154 |
public function field_mec_email( $key, $values = array(), $prefix = 'reg' ) {
|
155 |
|
156 |
+
return '<li id="mec_' . esc_attr( $prefix ) . '_fields_' . esc_attr( $key ) . '">
|
157 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
158 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_type mec_field_type">' . __( 'MEC Email', 'modern-events-calendar-lite' ) . '</span>
|
159 |
+
' . ( $prefix === 'event' ? '<span class="mec_' . esc_attr( $prefix ) . '_notification_placeholder">%%event_field_' . esc_attr( $key ) . '%%</span>' : ( $prefix === 'bfixed' ? '<span class="mec_' . esc_attr( $prefix ) . '_notification_placeholder">%%booking_field_' . esc_attr( $key ) . '%%</span>' : '' ) ) . '
|
160 |
+
<p class="mec_' . esc_attr( $prefix ) . '_field_options" style="display:none">
|
161 |
<label>
|
162 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][mandatory]" value="1" />
|
163 |
+
<input type="checkbox" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][mandatory]" value="1" checked="checked" disabled />
|
164 |
' . __( 'Required Field', 'modern-events-calendar-lite' ) . '
|
165 |
</label>
|
166 |
</p>
|
167 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
168 |
<div>
|
169 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][type]" value="mec_email" />
|
170 |
+
<input type="text" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][label]" placeholder="' . esc_attr__( 'Insert a label for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['label'] ) ? stripslashes( $values['label'] ) : '' ) . '" />
|
171 |
</div>
|
172 |
</li>';
|
173 |
}
|
183 |
*/
|
184 |
public function field_email( $key, $values = array(), $prefix = 'reg' ) {
|
185 |
|
186 |
+
return '<li id="mec_' . esc_attr( $prefix ) . '_fields_' . esc_attr( $key ) . '">
|
187 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
188 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_type mec_field_type">' . __( 'Email', 'modern-events-calendar-lite' ) . '</span>
|
189 |
+
' . ( $prefix === 'event' ? '<span class="mec_' . esc_attr( $prefix ) . '_notification_placeholder">%%event_field_' . esc_attr( $key ) . '%%</span>' : ( $prefix === 'bfixed' ? '<span class="mec_' . esc_attr( $prefix ) . '_notification_placeholder">%%booking_field_' . esc_attr( $key ) . '%%</span>' : '' ) ) . '
|
190 |
+
<p class="mec_' . esc_attr( $prefix ) . '_field_options">
|
191 |
<label>
|
192 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][mandatory]" value="0" />
|
193 |
+
<input type="checkbox" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][mandatory]" value="1" ' . ( ( isset( $values['mandatory'] ) and $values['mandatory'] ) ? 'checked="checked"' : '' ) . ' />
|
194 |
' . __( 'Required Field', 'modern-events-calendar-lite' ) . '
|
195 |
</label>
|
196 |
</p>
|
197 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
198 |
<div>
|
199 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][type]" value="email" />
|
200 |
+
<input type="text" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][label]" placeholder="' . esc_attr__( 'Insert a label for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['label'] ) ? stripslashes( $values['label'] ) : '' ) . '" />
|
201 |
' . $this->input_key( $key, 'email', $values, $prefix ) . '
|
202 |
</div>
|
203 |
</li>';
|
214 |
*/
|
215 |
public function field_url( $key, $values = array(), $prefix = 'reg' ) {
|
216 |
|
217 |
+
return '<li id="mec_' . esc_attr( $prefix ) . '_fields_' . esc_attr( $key ) . '">
|
218 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
219 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_type mec_field_type">' . __( 'URL', 'modern-events-calendar-lite' ) . '</span>
|
220 |
+
' . ( $prefix === 'event' ? '<span class="mec_' . esc_attr( $prefix ) . '_notification_placeholder">%%event_field_' . esc_attr( $key ) . '%%</span>' : ( $prefix === 'bfixed' ? '<span class="mec_' . esc_attr( $prefix ) . '_notification_placeholder">%%booking_field_' . esc_attr( $key ) . '%%</span>' : '' ) ) . '
|
221 |
+
<p class="mec_' . esc_attr( $prefix ) . '_field_options">
|
222 |
<label>
|
223 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][mandatory]" value="0" />
|
224 |
+
<input type="checkbox" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][mandatory]" value="1" ' . ( ( isset( $values['mandatory'] ) and $values['mandatory'] ) ? 'checked="checked"' : '' ) . ' />
|
225 |
' . __( 'Required Field', 'modern-events-calendar-lite' ) . '
|
226 |
</label>
|
227 |
</p>
|
228 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
229 |
<div>
|
230 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][type]" value="url" />
|
231 |
+
<input type="text" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][label]" placeholder="' . esc_attr__( 'Insert a label for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['label'] ) ? stripslashes( $values['label'] ) : '' ) . '" />
|
232 |
' . $this->input_key( $key, 'url', $values, $prefix ) . '
|
233 |
</div>
|
234 |
</li>';
|
245 |
*/
|
246 |
public function field_file( $key, $values = array(), $prefix = 'reg' ) {
|
247 |
|
248 |
+
return '<li id="mec_' . esc_attr( $prefix ) . '_fields_' . esc_attr( $key ) . '">
|
249 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
250 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_type mec_field_type">' . __( 'File', 'modern-events-calendar-lite' ) . '</span>
|
251 |
+
' . ( $prefix === 'event' ? '<span class="mec_' . esc_attr( $prefix ) . '_notification_placeholder">%%event_field_' . esc_attr( $key ) . '%%</span>' : ( $prefix === 'bfixed' ? '<span class="mec_' . esc_attr( $prefix ) . '_notification_placeholder">%%booking_field_' . esc_attr( $key ) . '%%</span>' : '' ) ) . '
|
252 |
+
<p class="mec_' . esc_attr( $prefix ) . '_field_options">
|
253 |
<label>
|
254 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][mandatory]" value="0" />
|
255 |
+
<input type="checkbox" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][mandatory]" value="1" ' . ( ( isset( $values['mandatory'] ) and $values['mandatory'] ) ? 'checked="checked"' : '' ) . ' />
|
256 |
' . __( 'Required Field', 'modern-events-calendar-lite' ) . '
|
257 |
</label>
|
258 |
</p>
|
259 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
260 |
<div>
|
261 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][type]" value="file" />
|
262 |
+
<input type="text" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][label]" placeholder="' . esc_attr__( 'Insert a label for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['label'] ) ? stripslashes( $values['label'] ) : '' ) . '" />
|
263 |
</div>
|
264 |
</li>';
|
265 |
}
|
275 |
*/
|
276 |
public function field_date( $key, $values = array(), $prefix = 'reg' ) {
|
277 |
|
278 |
+
return '<li id="mec_' . esc_attr( $prefix ) . '_fields_' . esc_attr( $key ) . '">
|
279 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
280 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_type mec_field_type">' . __( 'Date', 'modern-events-calendar-lite' ) . '</span>
|
281 |
+
' . ( $prefix === 'event' ? '<span class="mec_' . esc_attr( $prefix ) . '_notification_placeholder">%%event_field_' . esc_attr( $key ) . '%%</span>' : ( $prefix === 'bfixed' ? '<span class="mec_' . esc_attr( $prefix ) . '_notification_placeholder">%%booking_field_' . esc_attr( $key ) . '%%</span>' : '' ) ) . '
|
282 |
+
<p class="mec_' . esc_attr( $prefix ) . '_field_options">
|
283 |
<label>
|
284 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][mandatory]" value="0" />
|
285 |
+
<input type="checkbox" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][mandatory]" value="1" ' . ( ( isset( $values['mandatory'] ) and $values['mandatory'] ) ? 'checked="checked"' : '' ) . ' />
|
286 |
' . __( 'Required Field', 'modern-events-calendar-lite' ) . '
|
287 |
</label>
|
288 |
</p>
|
289 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
290 |
<div>
|
291 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][type]" value="date" />
|
292 |
+
<input type="text" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][label]" placeholder="' . esc_attr__( 'Insert a label for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['label'] ) ? stripslashes( $values['label'] ) : '' ) . '" />
|
293 |
' . $this->input_key( $key, 'date', $values, $prefix ) . '
|
294 |
</div>
|
295 |
</li>';
|
306 |
*/
|
307 |
public function field_tel( $key, $values = array(), $prefix = 'reg' ) {
|
308 |
|
309 |
+
return '<li id="mec_' . esc_attr( $prefix ) . '_fields_' . esc_attr( $key ) . '">
|
310 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
311 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_type mec_field_type">' . __( 'Tel', 'modern-events-calendar-lite' ) . '</span>
|
312 |
+
' . ( $prefix === 'event' ? '<span class="mec_' . esc_attr( $prefix ) . '_notification_placeholder">%%event_field_' . esc_attr( $key ) . '%%</span>' : ( $prefix === 'bfixed' ? '<span class="mec_' . esc_attr( $prefix ) . '_notification_placeholder">%%booking_field_' . esc_attr( $key ) . '%%</span>' : '' ) ) . '
|
313 |
+
<p class="mec_' . esc_attr( $prefix ) . '_field_options">
|
314 |
<label>
|
315 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][mandatory]" value="0" />
|
316 |
+
<input type="checkbox" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][mandatory]" value="1" ' . ( ( isset( $values['mandatory'] ) and $values['mandatory'] ) ? 'checked="checked"' : '' ) . ' />
|
317 |
' . __( 'Required Field', 'modern-events-calendar-lite' ) . '
|
318 |
</label>
|
319 |
</p>
|
320 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
321 |
<div>
|
322 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][type]" value="tel" />
|
323 |
+
<input type="text" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][label]" placeholder="' . esc_attr__( 'Insert a label for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['label'] ) ? stripslashes( $values['label'] ) : '' ) . '" />
|
324 |
' . $this->input_key( $key, 'tel', $values, $prefix ) . '
|
325 |
</div>
|
326 |
</li>';
|
337 |
*/
|
338 |
public function field_textarea( $key, $values = array(), $prefix = 'reg' ) {
|
339 |
|
340 |
+
return '<li id="mec_' . esc_attr( $prefix ) . '_fields_' . esc_attr( $key ) . '">
|
341 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
342 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_type mec_field_type">' . __( 'Textarea', 'modern-events-calendar-lite' ) . '</span>
|
343 |
+
' . ( $prefix === 'event' ? '<span class="mec_' . esc_attr( $prefix ) . '_notification_placeholder">%%event_field_' . esc_attr( $key ) . '%%</span>' : ( $prefix === 'bfixed' ? '<span class="mec_' . esc_attr( $prefix ) . '_notification_placeholder">%%booking_field_' . esc_attr( $key ) . '%%</span>' : '' ) ) . '
|
344 |
+
<p class="mec_' . esc_attr( $prefix ) . '_field_options">
|
345 |
<label>
|
346 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][mandatory]" value="0" />
|
347 |
+
<input type="checkbox" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][mandatory]" value="1" ' . ( ( isset( $values['mandatory'] ) and $values['mandatory'] ) ? 'checked="checked"' : '' ) . ' />
|
348 |
' . __( 'Required Field', 'modern-events-calendar-lite' ) . '
|
349 |
</label>
|
350 |
</p>
|
351 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
352 |
<div>
|
353 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][type]" value="textarea" />
|
354 |
+
<input type="text" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][label]" placeholder="' . esc_attr__( 'Insert a label for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['label'] ) ? stripslashes( $values['label'] ) : '' ) . '" />
|
355 |
' . $this->input_key( $key, 'textarea', $values, $prefix ) . '
|
356 |
</div>
|
357 |
</li>';
|
368 |
*/
|
369 |
public function field_p( $key, $values = array(), $prefix = 'reg' ) {
|
370 |
|
371 |
+
return '<li id="mec_' . esc_attr( $prefix ) . '_fields_' . esc_attr( $key ) . '">
|
372 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
373 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_type mec_field_type">' . __( 'Paragraph', 'modern-events-calendar-lite' ) . '</span>
|
374 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
375 |
<div>
|
376 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][type]" value="p" />
|
377 |
+
<textarea name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][content]">' . ( isset( $values['content'] ) ? htmlentities( stripslashes( $values['content'] ) ) : '' ) . '</textarea>
|
378 |
<p class="description">' . __( 'HTML and shortcode are allowed.' ) . '</p>
|
379 |
</div>
|
380 |
</li>';
|
392 |
public function field_checkbox( $key, $values = array(), $prefix = 'reg' ) {
|
393 |
|
394 |
$i = 0;
|
395 |
+
$field = '<li id="mec_' . esc_attr( $prefix ) . '_fields_' . esc_attr( $key ) . '">
|
396 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
397 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_type mec_field_type">' . __( 'Checkboxes', 'modern-events-calendar-lite' ) . '</span>
|
398 |
+
' . ( $prefix === 'event' ? '<span class="mec_' . esc_attr( $prefix ) . '_notification_placeholder">%%event_field_' . esc_attr( $key ) . '%%</span>' : ( $prefix === 'bfixed' ? '<span class="mec_' . esc_attr( $prefix ) . '_notification_placeholder">%%booking_field_' . esc_attr( $key ) . '%%</span>' : '' ) ) . '
|
399 |
+
<p class="mec_' . esc_attr( $prefix ) . '_field_options">
|
400 |
<label>
|
401 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][mandatory]" value="0" />
|
402 |
+
<input type="checkbox" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][mandatory]" value="1" ' . ( ( isset( $values['mandatory'] ) and $values['mandatory'] ) ? 'checked="checked"' : '' ) . ' />
|
403 |
' . __( 'Required Field', 'modern-events-calendar-lite' ) . '
|
404 |
</label>
|
405 |
</p>
|
406 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
407 |
<div>
|
408 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][type]" value="checkbox" />
|
409 |
+
<input type="text" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][label]" placeholder="' . esc_attr__( 'Insert a label for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['label'] ) ? stripslashes( $values['label'] ) : '' ) . '" />
|
410 |
' . $this->input_key( $key, 'checkbox', $values, $prefix ) . '
|
411 |
+
<ul id="mec_' . esc_attr( $prefix ) . '_fields_' . esc_attr( $key ) . '_options_container" class="mec_' . esc_attr( $prefix ) . '_fields_options_container mec_fields_options_container">';
|
412 |
|
413 |
if ( isset( $values['options'] ) and is_array( $values['options'] ) and count( $values['options'] ) ) {
|
414 |
foreach ( $values['options'] as $option_key => $option ) {
|
418 |
}
|
419 |
|
420 |
$field .= '</ul>
|
421 |
+
<button type="button" class="mec-' . esc_attr( $prefix ) . '-field-add-option mec-field-add-option" data-field-id="' . esc_attr( $key ) . '">' . __( 'Option', 'modern-events-calendar-lite' ) . '</button>
|
422 |
+
<input type="hidden" id="mec_new_' . esc_attr( $prefix ) . '_field_option_key_' . esc_attr( $key ) . '" value="' . ( $i + 1 ) . '" />
|
423 |
</div>
|
424 |
</li>';
|
425 |
|
438 |
public function field_radio( $key, $values = array(), $prefix = 'reg' ) {
|
439 |
|
440 |
$i = 0;
|
441 |
+
$field = '<li id="mec_' . esc_attr( $prefix ) . '_fields_' . esc_attr( $key ) . '">
|
442 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
443 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_type mec_field_type">' . __( 'Radio Buttons', 'modern-events-calendar-lite' ) . '</span>
|
444 |
+
' . ( $prefix === 'event' ? '<span class="mec_' . esc_attr( $prefix ) . '_notification_placeholder">%%event_field_' . esc_attr( $key ) . '%%</span>' : ( $prefix === 'bfixed' ? '<span class="mec_' . esc_attr( $prefix ) . '_notification_placeholder">%%booking_field_' . esc_attr( $key ) . '%%</span>' : '' ) ) . '
|
445 |
+
<p class="mec_' . esc_attr( $prefix ) . '_field_options">
|
446 |
<label>
|
447 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][mandatory]" value="0" />
|
448 |
+
<input type="checkbox" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][mandatory]" value="1" ' . ( ( isset( $values['mandatory'] ) and $values['mandatory'] ) ? 'checked="checked"' : '' ) . ' />
|
449 |
' . __( 'Required Field', 'modern-events-calendar-lite' ) . '
|
450 |
</label>
|
451 |
</p>
|
452 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
453 |
<div>
|
454 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][type]" value="radio" />
|
455 |
+
<input type="text" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][label]" placeholder="' . esc_attr__( 'Insert a label for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['label'] ) ? stripslashes( $values['label'] ) : '' ) . '" />
|
456 |
' . $this->input_key( $key, 'radio', $values, $prefix ) . '
|
457 |
+
<ul id="mec_' . esc_attr( $prefix ) . '_fields_' . esc_attr( $key ) . '_options_container" class="mec_' . esc_attr( $prefix ) . '_fields_options_container mec_fields_options_container">';
|
458 |
|
459 |
if ( isset( $values['options'] ) and is_array( $values['options'] ) and count( $values['options'] ) ) {
|
460 |
foreach ( $values['options'] as $option_key => $option ) {
|
464 |
}
|
465 |
|
466 |
$field .= '</ul>
|
467 |
+
<button type="button" class="mec-' . esc_attr( $prefix ) . '-field-add-option mec-field-add-option" data-field-id="' . esc_attr( $key ) . '">' . __( 'Option', 'modern-events-calendar-lite' ) . '</button>
|
468 |
+
<input type="hidden" id="mec_new_' . esc_attr( $prefix ) . '_field_option_key_' . esc_attr( $key ) . '" value="' . ( $i + 1 ) . '" />
|
469 |
</div>
|
470 |
</li>';
|
471 |
|
484 |
public function field_select( $key, $values = array(), $prefix = 'reg' ) {
|
485 |
|
486 |
$i = 0;
|
487 |
+
$field = '<li id="mec_' . esc_attr( $prefix ) . '_fields_' . esc_attr( $key ) . '">
|
488 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
489 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_type mec_field_type">' . __( 'Dropdown', 'modern-events-calendar-lite' ) . '</span>
|
490 |
+
' . ( $prefix === 'event' ? '<span class="mec_' . esc_attr( $prefix ) . '_notification_placeholder">%%event_field_' . esc_attr( $key ) . '%%</span>' : ( $prefix === 'bfixed' ? '<span class="mec_' . esc_attr( $prefix ) . '_notification_placeholder">%%booking_field_' . esc_attr( $key ) . '%%</span>' : '' ) ) . '
|
491 |
+
<p class="mec_' . esc_attr( $prefix ) . '_field_options">
|
492 |
<label>
|
493 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][mandatory]" value="0" />
|
494 |
+
<input type="checkbox" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][mandatory]" value="1" ' . ( ( isset( $values['mandatory'] ) and $values['mandatory'] ) ? 'checked="checked"' : '' ) . ' />
|
495 |
' . __( 'Required Field', 'modern-events-calendar-lite' ) . '
|
496 |
</label>
|
497 |
</p>
|
498 |
+
<p class="mec_' . esc_attr( $prefix ) . '_field_options">
|
499 |
<label>
|
500 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][ignore]" value="0" />
|
501 |
+
<input type="checkbox" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][ignore]" value="1" ' . ( ( isset( $values['ignore'] ) and $values['ignore'] ) ? 'checked="checked"' : '' ) . ' />
|
502 |
' . __( 'Consider first item as placeholder', 'modern-events-calendar-lite' ) . '
|
503 |
</label>
|
504 |
</p>
|
505 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
506 |
<div>
|
507 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][type]" value="select" />
|
508 |
+
<input type="text" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][label]" placeholder="' . esc_attr__( 'Insert a label for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['label'] ) ? stripslashes( $values['label'] ) : '' ) . '" />
|
509 |
' . $this->input_key( $key, 'select', $values, $prefix ) . '
|
510 |
+
<ul id="mec_' . esc_attr( $prefix ) . '_fields_' . esc_attr( $key ) . '_options_container" class="mec_' . esc_attr( $prefix ) . '_fields_options_container mec_fields_options_container">';
|
511 |
|
512 |
if ( isset( $values['options'] ) and is_array( $values['options'] ) and count( $values['options'] ) ) {
|
513 |
foreach ( $values['options'] as $option_key => $option ) {
|
517 |
}
|
518 |
|
519 |
$field .= '</ul>
|
520 |
+
<button type="button" class="mec-' . esc_attr( $prefix ) . '-field-add-option mec-field-add-option" data-field-id="' . esc_attr( $key ) . '">' . __( 'Option', 'modern-events-calendar-lite' ) . '</button>
|
521 |
+
<input type="hidden" id="mec_new_' . esc_attr( $prefix ) . '_field_option_key_' . esc_attr( $key ) . '" value="' . ( $i + 1 ) . '" />
|
522 |
</div>
|
523 |
</li>';
|
524 |
|
540 |
$pages = get_pages();
|
541 |
|
542 |
$i = 0;
|
543 |
+
$field = '<li id="mec_' . esc_attr( $prefix ) . '_fields_' . esc_attr( $key ) . '">
|
544 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_sort mec_field_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
545 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_type mec_field_type">' . __( 'Agreement', 'modern-events-calendar-lite' ) . '</span>
|
546 |
+
' . ( $prefix === 'event' ? '<span class="mec_' . esc_attr( $prefix ) . '_notification_placeholder">%%event_field_' . esc_attr( $key ) . '%%</span>' : ( $prefix === 'bfixed' ? '<span class="mec_' . esc_attr( $prefix ) . '_notification_placeholder">%%booking_field_' . esc_attr( $key ) . '%%</span>' : '' ) ) . '
|
547 |
+
<p class="mec_' . esc_attr( $prefix ) . '_field_options">
|
548 |
<label>
|
549 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][mandatory]" value="0" />
|
550 |
+
<input type="checkbox" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][mandatory]" value="1" ' . ( ( !isset( $values['mandatory'] ) or ( isset( $values['mandatory'] ) and $values['mandatory'] ) ) ? 'checked="checked"' : '' ) . ' />
|
551 |
' . __( 'Required Field', 'modern-events-calendar-lite' ) . '
|
552 |
</label>
|
553 |
</p>
|
554 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
555 |
<div>
|
556 |
+
<input type="hidden" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][type]" value="agreement" />
|
557 |
+
<input type="text" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][label]" placeholder="' . esc_attr__( 'Insert a label for this field', 'modern-events-calendar-lite' ) . '" value="' . ( isset( $values['label'] ) ? stripslashes( $values['label'] ) : esc_attr__('I agree with %s', 'modern-events-calendar-lite') ) . '" /><p class="description">' . __( 'Instead of %s, the page title with a link will be show.', 'modern-events-calendar-lite' ) . '</p>
|
558 |
<div>
|
559 |
+
<label for="mec_' . esc_attr( $prefix ) . '_fields_' . esc_attr( $key ) . '_page">' . __( 'Agreement Page', 'modern-events-calendar-lite' ) . '</label>
|
560 |
+
<select id="mec_' . esc_attr( $prefix ) . '_fields_' . esc_attr( $key ) . '_page" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][page]">';
|
561 |
|
562 |
$page_options = '';
|
563 |
foreach ( $pages as $page ) {
|
564 |
+
$page_options .= '<option ' . ( ( isset( $values['page'] ) and $values['page'] === $page->ID ) ? 'selected="selected"' : '' ) . ' value="' . esc_attr( $page->ID ) . '">' . esc_html( $page->post_title ) . '</option>';
|
565 |
}
|
566 |
|
567 |
$field .= $page_options . '</select>
|
568 |
</div>
|
569 |
<div>
|
570 |
+
<label for="mec_' . esc_attr( $prefix ) . '_fields_' . esc_attr( $key ) . '_status">' . __( 'Status', 'modern-events-calendar-lite' ) . '</label>
|
571 |
+
<select id="mec_' . esc_attr( $prefix ) . '_fields_' . esc_attr( $key ) . '_status" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $key ) . '][status]">
|
572 |
<option value="checked" ' . ( ( isset( $values['status'] ) and $values['status'] === 'checked' ) ? 'selected="selected"' : '' ) . '>' . __( 'Checked by default', 'modern-events-calendar-lite' ) . '</option>
|
573 |
<option value="unchecked" ' . ( ( isset( $values['status'] ) and $values['status'] === 'unchecked' ) ? 'selected="selected"' : '' ) . '>' . __( 'Unchecked by default', 'modern-events-calendar-lite' ) . '</option>
|
574 |
</select>
|
575 |
</div>
|
576 |
+
<input type="hidden" id="mec_new_' . esc_attr( $prefix ) . '_field_option_key_' . esc_attr( $key ) . '" value="' . ( $i + 1 ) . '" />
|
577 |
</div>
|
578 |
</li>';
|
579 |
|
592 |
*/
|
593 |
public function field_option( $field_key, $key, $values = array(), $prefix = 'reg' ) {
|
594 |
|
595 |
+
return '<li id="mec_' . esc_attr( $prefix ) . '_fields_option_' . esc_attr( $field_key ) . '_' . esc_attr( $key ) . '" class="mec_fields_option">
|
596 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_option_sort mec_field_option_sort">' . __( 'Sort', 'modern-events-calendar-lite' ) . '</span>
|
597 |
+
<span class="mec_' . esc_attr( $prefix ) . '_field_remove mec_field_remove">' . __( 'Remove', 'modern-events-calendar-lite' ) . '</span>
|
598 |
+
<input type="text" name="mec[' . esc_attr( $prefix ) . '_fields][' . esc_attr( $field_key ) . '][options][' . esc_attr( $key ) . '][label]" placeholder="' . esc_attr__( 'Insert a label for this option', 'modern-events-calendar-lite' ) . '" value="' . ( ( isset( $values['options'] ) and isset( $values['options'][ $key ] ) ) ? esc_attr( stripslashes( $values['options'][ $key ]['label'] ) ) : '' ) . '" />
|
599 |
</li>';
|
600 |
}
|
601 |
|
app/core/src/Forms/SettingsForm.php
CHANGED
@@ -163,12 +163,12 @@ class SettingsForm extends Singleton {
|
|
163 |
?>
|
164 |
<div class="mec-container">
|
165 |
<?php do_action( 'before_mec_' . $type . '_fields_form' ); ?>
|
166 |
-
<div class="mec-form-row" id="mec_<?php echo $type ?>_form_container" data-form-type="<?php echo $type; ?>">
|
167 |
<?php do_action( 'mec_' . $type . '_fields_form_start' ); ?>
|
168 |
<?php /** Don't remove this hidden field **/ ?>
|
169 |
-
<input type="hidden" name="mec[<?php echo $type ?>_fields]" value=""/>
|
170 |
|
171 |
-
<ul id="mec_<?php echo $type ?>_form_fields" class="mec_form_fields">
|
172 |
<?php
|
173 |
|
174 |
$i = 0;
|
@@ -185,14 +185,14 @@ class SettingsForm extends Singleton {
|
|
185 |
|
186 |
?>
|
187 |
</ul>
|
188 |
-
<div id="mec_<?php echo $type ?>_form_field_types" class="mec_form_field_types">
|
189 |
<?php
|
190 |
$elements = $this->get_element_fields( $type_fields );
|
191 |
foreach ( $elements as $element_id => $element ) {
|
192 |
|
193 |
$text = isset( $element['text'] ) ? $element['text'] : '';
|
194 |
$class = isset( $element['class'] ) ? $element['class'] : '';
|
195 |
-
echo '<button type="button" class="button ' . $class . '" data-type="' . $element_id . '">' . $text . '</button>';
|
196 |
}
|
197 |
|
198 |
?>
|
@@ -201,21 +201,21 @@ class SettingsForm extends Singleton {
|
|
201 |
</div>
|
202 |
<?php do_action( 'after_mec_' . $type . '_fields_form' ); ?>
|
203 |
|
204 |
-
<input type="hidden" id="mec_new_<?php echo $type ?>_field_key" value="<?php echo $i + 1; ?>"/>
|
205 |
<div class="mec-util-hidden">
|
206 |
<?php
|
207 |
foreach ( $elements as $element_id => $element ) {
|
208 |
$method = 'field_' . $element_id;
|
209 |
if ( method_exists( FormFields::class, $method ) ) {
|
210 |
|
211 |
-
echo '<div id="mec_' . $type . '_field_' . $element_id . '" class="mec_field_' . $element_id . '">' .
|
212 |
$this->display_field( ':i:', [ 'type' => $element_id ], $type )
|
213 |
. '</div>';
|
214 |
}
|
215 |
}
|
216 |
|
217 |
?>
|
218 |
-
<div id="mec_<?php echo $type ?>_option" class="mec_field_option">
|
219 |
<?php echo FormFields::getInstance()->field_option( ':fi:', ':i:', array(), $type ); ?>
|
220 |
</div>
|
221 |
</div>
|
163 |
?>
|
164 |
<div class="mec-container">
|
165 |
<?php do_action( 'before_mec_' . $type . '_fields_form' ); ?>
|
166 |
+
<div class="mec-form-row" id="mec_<?php echo esc_attr( $type ) ?>_form_container" data-form-type="<?php echo esc_attr( $type ); ?>">
|
167 |
<?php do_action( 'mec_' . $type . '_fields_form_start' ); ?>
|
168 |
<?php /** Don't remove this hidden field **/ ?>
|
169 |
+
<input type="hidden" name="mec[<?php echo esc_attr( $type ) ?>_fields]" value=""/>
|
170 |
|
171 |
+
<ul id="mec_<?php echo esc_attr( $type ) ?>_form_fields" class="mec_form_fields">
|
172 |
<?php
|
173 |
|
174 |
$i = 0;
|
185 |
|
186 |
?>
|
187 |
</ul>
|
188 |
+
<div id="mec_<?php echo esc_attr( $type ) ?>_form_field_types" class="mec_form_field_types">
|
189 |
<?php
|
190 |
$elements = $this->get_element_fields( $type_fields );
|
191 |
foreach ( $elements as $element_id => $element ) {
|
192 |
|
193 |
$text = isset( $element['text'] ) ? $element['text'] : '';
|
194 |
$class = isset( $element['class'] ) ? $element['class'] : '';
|
195 |
+
echo '<button type="button" class="button ' . esc_attr( $class ) . '" data-type="' . esc_attr( $element_id ) . '">' . $text . '</button>';
|
196 |
}
|
197 |
|
198 |
?>
|
201 |
</div>
|
202 |
<?php do_action( 'after_mec_' . $type . '_fields_form' ); ?>
|
203 |
|
204 |
+
<input type="hidden" id="mec_new_<?php echo esc_attr( $type ) ?>_field_key" value="<?php echo esc_attr( $i + 1 ); ?>"/>
|
205 |
<div class="mec-util-hidden">
|
206 |
<?php
|
207 |
foreach ( $elements as $element_id => $element ) {
|
208 |
$method = 'field_' . $element_id;
|
209 |
if ( method_exists( FormFields::class, $method ) ) {
|
210 |
|
211 |
+
echo '<div id="mec_' . esc_attr( $type ) . '_field_' . esc_attr( $element_id ) . '" class="mec_field_' . esc_attr( $element_id ) . '">' .
|
212 |
$this->display_field( ':i:', [ 'type' => $element_id ], $type )
|
213 |
. '</div>';
|
214 |
}
|
215 |
}
|
216 |
|
217 |
?>
|
218 |
+
<div id="mec_<?php echo esc_attr( $type ) ?>_option" class="mec_field_option">
|
219 |
<?php echo FormFields::getInstance()->field_option( ':fi:', ':i:', array(), $type ); ?>
|
220 |
</div>
|
221 |
</div>
|
app/core/src/Notifications/SendEmail.php
CHANGED
@@ -346,7 +346,7 @@ class SendEmail{
|
|
346 |
|
347 |
$featured_image = '';
|
348 |
$thumbnail_url = \MEC\Base::get_main()->get_post_thumbnail_url($this->event_id, 'medium');
|
349 |
-
if(trim($thumbnail_url)) $featured_image = '<img src="'
|
350 |
|
351 |
$content = str_replace('%%event_featured_image%%', $featured_image, $content);
|
352 |
|
346 |
|
347 |
$featured_image = '';
|
348 |
$thumbnail_url = \MEC\Base::get_main()->get_post_thumbnail_url($this->event_id, 'medium');
|
349 |
+
if(trim($thumbnail_url)) $featured_image = '<img src="'. esc_attr( $thumbnail_url ) .'">';
|
350 |
|
351 |
$content = str_replace('%%event_featured_image%%', $featured_image, $content);
|
352 |
|
app/core/src/Notifications/template-notification-settings.php
CHANGED
@@ -15,35 +15,35 @@ $options = $atts['options'];
|
|
15 |
|
16 |
?>
|
17 |
|
18 |
-
<div id="<?php echo $group_id ?>_notification_section" class="mec-options-fields <?php echo $class ?>">
|
19 |
|
20 |
-
<h4 class="mec-form-subtitle"><?php echo $section_title; ?></h4>
|
21 |
<div class="mec-form-row">
|
22 |
<div class="mec-col-12">
|
23 |
<label>
|
24 |
-
<input type="hidden" name="<?php echo $base_field_name; ?>[<?php echo $group_id; ?>_notification][status]" value="0" />
|
25 |
-
<input onchange="jQuery('#mec_notification_<?php echo $group_id; ?>_notification_container_toggle').toggle();" value="1" type="checkbox" name="<?php echo $base_field_name; ?>[<?php echo $group_id; ?>_notification][status]" <?php if(!isset($options['status']) or (isset($options['status']) and $options['status'])) echo 'checked="checked"'; ?> /> <?php $enable_options_text; ?>
|
26 |
</label>
|
27 |
</div>
|
28 |
<p class="mec-col-12 description"><?php echo $enable_options_description ?></p>
|
29 |
</div>
|
30 |
-
<div id="mec_notification_<?php echo $group_id; ?>_notification_container_toggle" class="<?php if(isset($options) and isset($options['status']) and !$options['status']) echo 'mec-util-hidden'; ?>">
|
31 |
|
32 |
<?php do_action( 'mec_notifications_settings_start', $group_id, $options ); ?>
|
33 |
|
34 |
<div class="mec-form-row">
|
35 |
<div class="mec-col-3">
|
36 |
-
<label for="mec_notifications_<?php echo $group_id; ?>_notification_subject"><?php _e('Email Subject', 'modern-events-calendar-lite'); ?></label>
|
37 |
</div>
|
38 |
<div class="mec-col-9">
|
39 |
-
<input type="text" name="<?php echo $base_field_name; ?>[<?php echo $group_id; ?>_notification][subject]" id="mec_notifications_<?php echo $group_id; ?>_notification_subject" value="<?php echo (isset($options['subject']) ? stripslashes($options['subject']) : ''); ?>" />
|
40 |
</div>
|
41 |
</div>
|
42 |
|
43 |
<!-- Start Receiver Users -->
|
44 |
<div class="mec-form-row">
|
45 |
<div class="mec-col-3">
|
46 |
-
<label for="mec_notifications_<?php echo $group_id; ?>_notification_receiver_users"><?php _e('Receiver Users', 'modern-events-calendar-lite'); ?></label>
|
47 |
</div>
|
48 |
<div class="mec-col-9">
|
49 |
<?php
|
@@ -64,7 +64,7 @@ $options = $atts['options'];
|
|
64 |
<!-- Start Receiver Roles -->
|
65 |
<div class="mec-form-row">
|
66 |
<div class="mec-col-3">
|
67 |
-
<label for="mec_notifications_<?php echo $group_id; ?>_notification_receiver_roles"><?php _e('Receiver Roles', 'modern-events-calendar-lite'); ?></label>
|
68 |
</div>
|
69 |
<div class="mec-col-9">
|
70 |
<?php
|
@@ -84,10 +84,10 @@ $options = $atts['options'];
|
|
84 |
|
85 |
<div class="mec-form-row">
|
86 |
<div class="mec-col-3">
|
87 |
-
<label for="mec_notifications_<?php echo $group_id; ?>_notification_recipients"><?php _e('Custom Recipients', 'modern-events-calendar-lite'); ?></label>
|
88 |
</div>
|
89 |
<div class="mec-col-9">
|
90 |
-
<input type="text" name="<?php echo $base_field_name; ?>[<?php echo $group_id; ?>_notification][recipients]" id="mec_notifications_<?php echo $group_id; ?>_notification_recipients" value="<?php echo (isset($options['recipients']) ? $options['recipients'] : ''); ?>" />
|
91 |
<span class="mec-tooltip">
|
92 |
<div class="box left">
|
93 |
<h5 class="title"><?php _e('Custom Recipients', 'modern-events-calendar-lite'); ?></h5>
|
@@ -101,7 +101,7 @@ $options = $atts['options'];
|
|
101 |
<?php do_action( 'mec_notifications_settings_before_editor', $group_id, $options ); ?>
|
102 |
|
103 |
<div class="mec-form-row">
|
104 |
-
<label for="mec_notifications_<?php echo $group_id; ?>_notification_content"><?php _e('Email Content', 'modern-events-calendar-lite'); ?></label>
|
105 |
<?php
|
106 |
$content = isset($options['content']) ? stripslashes($options['content']) : '';
|
107 |
wp_editor(
|
@@ -121,7 +121,7 @@ $options = $atts['options'];
|
|
121 |
<p class="description"><?php _e('You can use the following placeholders', 'modern-events-calendar-lite'); ?></p>
|
122 |
<ul>
|
123 |
<?php foreach($placeholders as $p_key => $p_text): ?>
|
124 |
-
<li><span><?php echo $p_key ?></span>: <?php echo $p_text; ?></li>
|
125 |
<?php endforeach; ?>
|
126 |
<?php do_action( 'mec_extra_field_notifications', $group_id ); ?>
|
127 |
</ul>
|
15 |
|
16 |
?>
|
17 |
|
18 |
+
<div id="<?php echo esc_attr( $group_id ) ?>_notification_section" class="mec-options-fields <?php echo esc_attr( $class ) ?>">
|
19 |
|
20 |
+
<h4 class="mec-form-subtitle"><?php echo esc_attr( $section_title ); ?></h4>
|
21 |
<div class="mec-form-row">
|
22 |
<div class="mec-col-12">
|
23 |
<label>
|
24 |
+
<input type="hidden" name="<?php echo esc_attr( $base_field_name ); ?>[<?php echo esc_attr( $group_id ); ?>_notification][status]" value="0" />
|
25 |
+
<input onchange="jQuery('#mec_notification_<?php echo esc_attr( $group_id ); ?>_notification_container_toggle').toggle();" value="1" type="checkbox" name="<?php echo esc_attr( $base_field_name ); ?>[<?php echo esc_attr( $group_id ); ?>_notification][status]" <?php if(!isset($options['status']) or (isset($options['status']) and $options['status'])) echo 'checked="checked"'; ?> /> <?php $enable_options_text; ?>
|
26 |
</label>
|
27 |
</div>
|
28 |
<p class="mec-col-12 description"><?php echo $enable_options_description ?></p>
|
29 |
</div>
|
30 |
+
<div id="mec_notification_<?php echo esc_attr( $group_id ); ?>_notification_container_toggle" class="<?php if(isset($options) and isset($options['status']) and !$options['status']) echo 'mec-util-hidden'; ?>">
|
31 |
|
32 |
<?php do_action( 'mec_notifications_settings_start', $group_id, $options ); ?>
|
33 |
|
34 |
<div class="mec-form-row">
|
35 |
<div class="mec-col-3">
|
36 |
+
<label for="mec_notifications_<?php echo esc_attr( $group_id ); ?>_notification_subject"><?php _e('Email Subject', 'modern-events-calendar-lite'); ?></label>
|
37 |
</div>
|
38 |
<div class="mec-col-9">
|
39 |
+
<input type="text" name="<?php echo esc_attr( $base_field_name ); ?>[<?php echo esc_attr( $group_id ); ?>_notification][subject]" id="mec_notifications_<?php echo esc_attr( $group_id ); ?>_notification_subject" value="<?php echo (isset($options['subject']) ? stripslashes($options['subject']) : ''); ?>" />
|
40 |
</div>
|
41 |
</div>
|
42 |
|
43 |
<!-- Start Receiver Users -->
|
44 |
<div class="mec-form-row">
|
45 |
<div class="mec-col-3">
|
46 |
+
<label for="mec_notifications_<?php echo esc_attr( $group_id ); ?>_notification_receiver_users"><?php _e('Receiver Users', 'modern-events-calendar-lite'); ?></label>
|
47 |
</div>
|
48 |
<div class="mec-col-9">
|
49 |
<?php
|
64 |
<!-- Start Receiver Roles -->
|
65 |
<div class="mec-form-row">
|
66 |
<div class="mec-col-3">
|
67 |
+
<label for="mec_notifications_<?php echo esc_attr( $group_id ); ?>_notification_receiver_roles"><?php _e('Receiver Roles', 'modern-events-calendar-lite'); ?></label>
|
68 |
</div>
|
69 |
<div class="mec-col-9">
|
70 |
<?php
|
84 |
|
85 |
<div class="mec-form-row">
|
86 |
<div class="mec-col-3">
|
87 |
+
<label for="mec_notifications_<?php echo esc_attr( $group_id ); ?>_notification_recipients"><?php _e('Custom Recipients', 'modern-events-calendar-lite'); ?></label>
|
88 |
</div>
|
89 |
<div class="mec-col-9">
|
90 |
+
<input type="text" name="<?php echo esc_attr( $base_field_name ); ?>[<?php echo esc_attr( $group_id ); ?>_notification][recipients]" id="mec_notifications_<?php echo esc_attr( $group_id ); ?>_notification_recipients" value="<?php echo (isset($options['recipients']) ? $options['recipients'] : ''); ?>" />
|
91 |
<span class="mec-tooltip">
|
92 |
<div class="box left">
|
93 |
<h5 class="title"><?php _e('Custom Recipients', 'modern-events-calendar-lite'); ?></h5>
|
101 |
<?php do_action( 'mec_notifications_settings_before_editor', $group_id, $options ); ?>
|
102 |
|
103 |
<div class="mec-form-row">
|
104 |
+
<label for="mec_notifications_<?php echo esc_attr( $group_id ); ?>_notification_content"><?php _e('Email Content', 'modern-events-calendar-lite'); ?></label>
|
105 |
<?php
|
106 |
$content = isset($options['content']) ? stripslashes($options['content']) : '';
|
107 |
wp_editor(
|
121 |
<p class="description"><?php _e('You can use the following placeholders', 'modern-events-calendar-lite'); ?></p>
|
122 |
<ul>
|
123 |
<?php foreach($placeholders as $p_key => $p_text): ?>
|
124 |
+
<li><span><?php echo esc_attr( $p_key ) ?></span>: <?php echo esc_html( $p_text ); ?></li>
|
125 |
<?php endforeach; ?>
|
126 |
<?php do_action( 'mec_extra_field_notifications', $group_id ); ?>
|
127 |
</ul>
|
app/core/src/SingleBuilder/SingleBuilder.php
CHANGED
@@ -193,6 +193,11 @@ class SingleBuilder extends Singleton {
|
|
193 |
|
194 |
$html = Widgets\EventWeather\EventWeather::getInstance()->output( $event_id, $atts );
|
195 |
|
|
|
|
|
|
|
|
|
|
|
196 |
break;
|
197 |
}
|
198 |
|
193 |
|
194 |
$html = Widgets\EventWeather\EventWeather::getInstance()->output( $event_id, $atts );
|
195 |
|
196 |
+
break;
|
197 |
+
case 'event-public-download':
|
198 |
+
|
199 |
+
$html = Widgets\EventPublicDownload\EventPublicDownload::getInstance()->output( $event_id, $atts );
|
200 |
+
|
201 |
break;
|
202 |
}
|
203 |
|
app/core/src/SingleBuilder/Widgets/Content/Content.php
CHANGED
@@ -26,7 +26,21 @@ class Content extends WidgetBase {
|
|
26 |
return '';
|
27 |
}
|
28 |
|
29 |
-
$content =
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
|
31 |
$html = '<div class="mec-single-event-description mec-events-content">'
|
32 |
. $content .
|
26 |
return '';
|
27 |
}
|
28 |
|
29 |
+
$content = get_the_content( '', false, $event_id );
|
30 |
+
$content = wpautop( $content );
|
31 |
+
$content = do_shortcode( $content );
|
32 |
+
|
33 |
+
if( !$this->is_editor_mode() ){
|
34 |
+
|
35 |
+
$content = apply_filters( 'the_content', $content );
|
36 |
+
$content = str_replace( ']]>', ']]>', $content );
|
37 |
+
}else{
|
38 |
+
|
39 |
+
if( 'yes' !== get_post_meta( $event_id, '_elementor_edit_mode', true ) ){
|
40 |
+
|
41 |
+
$content = \Elementor\Plugin::instance()->frontend->get_builder_content_for_display( $event_id );
|
42 |
+
}
|
43 |
+
}
|
44 |
|
45 |
$html = '<div class="mec-single-event-description mec-events-content">'
|
46 |
. $content .
|
app/core/src/SingleBuilder/Widgets/EventCategories/EventCategories.php
CHANGED
@@ -48,9 +48,9 @@ class EventCategories extends WidgetBase {
|
|
48 |
<?php
|
49 |
foreach ($categories as $category) {
|
50 |
$icon = get_metadata('term', $category['id'], 'mec_cat_icon', true);
|
51 |
-
$icon = isset($icon) && $icon != '' ? '<i class="' . $icon . ' mec-color"></i>' : '<i class="mec-fa-angle-right"></i>';
|
52 |
echo '<dd class="mec-events-event-categories">
|
53 |
-
<a href="' . get_term_link($category['id'], 'mec_category') . '" class="mec-color-hover" rel="tag">' . $icon . $category['name'] . '</a></dd>';
|
54 |
}
|
55 |
echo '</div>';
|
56 |
$html = ob_get_clean();
|
48 |
<?php
|
49 |
foreach ($categories as $category) {
|
50 |
$icon = get_metadata('term', $category['id'], 'mec_cat_icon', true);
|
51 |
+
$icon = isset($icon) && $icon != '' ? '<i class="' . esc_attr( $icon ) . ' mec-color"></i>' : '<i class="mec-fa-angle-right"></i>';
|
52 |
echo '<dd class="mec-events-event-categories">
|
53 |
+
<a href="' . esc_attr( get_term_link($category['id'], 'mec_category') ) . '" class="mec-color-hover" rel="tag">' . $icon . $category['name'] . '</a></dd>';
|
54 |
}
|
55 |
echo '</div>';
|
56 |
$html = ob_get_clean();
|
app/core/src/SingleBuilder/Widgets/EventCountdown/EventCountdown.php
CHANGED
@@ -40,7 +40,7 @@ class EventCountdown extends WidgetBase {
|
|
40 |
|
41 |
$wrap_class = (true === $this->is_editor_mode) ? 'mec-wrap' : '';
|
42 |
|
43 |
-
$html = '<div class="'. $wrap_class .' mec-events-meta-group mec-events-meta-group-countdown">'
|
44 |
. Base::get_main()->module('countdown.details', array('event'=>array($events_detail))) .
|
45 |
'</div>';
|
46 |
}
|
40 |
|
41 |
$wrap_class = (true === $this->is_editor_mode) ? 'mec-wrap' : '';
|
42 |
|
43 |
+
$html = '<div class="'. esc_attr( $wrap_class ) .' mec-events-meta-group mec-events-meta-group-countdown">'
|
44 |
. Base::get_main()->module('countdown.details', array('event'=>array($events_detail))) .
|
45 |
'</div>';
|
46 |
}
|
app/core/src/SingleBuilder/Widgets/EventLabels/EventLabels.php
CHANGED
@@ -48,7 +48,7 @@ class EventLabels extends WidgetBase {
|
|
48 |
<h3 class="mec-cost"><?php echo Base::get_main()->m('taxonomy_labels', __('Labels', 'modern-events-calendar-lite')); ?></h3>
|
49 |
<?php foreach ($labels as $k => $label) :
|
50 |
$seperator = (++$mec_i === $mec_items) ? '' : ',';
|
51 |
-
echo '<dd style="color:' . $label['color'] . '">' . $label["name"] . $seperator . '</dd>';
|
52 |
endforeach; ?>
|
53 |
</div>
|
54 |
<?php
|
48 |
<h3 class="mec-cost"><?php echo Base::get_main()->m('taxonomy_labels', __('Labels', 'modern-events-calendar-lite')); ?></h3>
|
49 |
<?php foreach ($labels as $k => $label) :
|
50 |
$seperator = (++$mec_i === $mec_items) ? '' : ',';
|
51 |
+
echo '<dd style="color:' . esc_attr( $label['color'] ) . '">' . $label["name"] . $seperator . '</dd>';
|
52 |
endforeach; ?>
|
53 |
</div>
|
54 |
<?php
|
app/core/src/SingleBuilder/Widgets/EventLocations/EventLocations.php
CHANGED
@@ -61,12 +61,12 @@ class EventLocations extends WidgetBase {
|
|
61 |
<dd class="mec-location-url">
|
62 |
<i class="mec-sl-sitemap"></i>
|
63 |
<h6><?php _e('Website', 'modern-events-calendar-lite'); ?></h6>
|
64 |
-
<span><a href="<?php echo (strpos($location['url'], 'http') === false ? 'http://'.$location['url'] : $location['url']); ?>" class="mec-color-hover" target="_blank"><?php echo $location['url']; ?></a></span>
|
65 |
</dd>
|
66 |
<?php endif;
|
67 |
$location_description_setting = isset( $set['location_description'] ) ? $set['location_description'] : ''; $location_terms = get_the_terms($event_detail->data, 'mec_location'); if($location_description_setting == '1'): foreach($location_terms as $location_term) { if ($location_term->term_id == $location['id'] ) { if(isset($location_term->description) && !empty($location_term->description)): ?>
|
68 |
<dd class="mec-location-description">
|
69 |
-
<p><?php echo $location_term->description
|
70 |
</dd>
|
71 |
<?php endif; } } endif; ?>
|
72 |
|
61 |
<dd class="mec-location-url">
|
62 |
<i class="mec-sl-sitemap"></i>
|
63 |
<h6><?php _e('Website', 'modern-events-calendar-lite'); ?></h6>
|
64 |
+
<span><a href="<?php echo (strpos($location['url'], 'http') === false ? 'http://'.$location['url'] : $location['url']); ?>" class="mec-color-hover" target="_blank"><?php echo esc_url( $location['url'] ); ?></a></span>
|
65 |
</dd>
|
66 |
<?php endif;
|
67 |
$location_description_setting = isset( $set['location_description'] ) ? $set['location_description'] : ''; $location_terms = get_the_terms($event_detail->data, 'mec_location'); if($location_description_setting == '1'): foreach($location_terms as $location_term) { if ($location_term->term_id == $location['id'] ) { if(isset($location_term->description) && !empty($location_term->description)): ?>
|
68 |
<dd class="mec-location-description">
|
69 |
+
<p><?php echo esc_html( $location_term->description ); ?></p>
|
70 |
</dd>
|
71 |
<?php endif; } } endif; ?>
|
72 |
|
app/core/src/SingleBuilder/Widgets/EventMoreInfo/EventMoreInfo.php
CHANGED
@@ -46,7 +46,7 @@ class EventMoreInfo extends WidgetBase {
|
|
46 |
<div class="mec-event-more-info">
|
47 |
<i class="mec-sl-info"></i>
|
48 |
<h3 class="mec-more-info-label"><?php echo Base::get_main()->m('more_info_link', __('More Info', 'modern-events-calendar-lite')); ?></h3>
|
49 |
-
<dd class="mec-events-event-more-info"><a class="mec-more-info-button a mec-color-hover" target="<?php echo (isset($event_detail->data->meta['mec_more_info_target']) ? $event_detail->data->meta['mec_more_info_target'] : '_self'); ?>" href="<?php echo $event_detail->data->meta['mec_more_info']; ?>"><?php echo ((isset($event_detail->data->meta['mec_more_info_title']) && trim($event_detail->data->meta['mec_more_info_title'])) ? $event_detail->data->meta['mec_more_info_title'] : __('Read More', 'modern-events-calendar-lite')); ?></a></dd>
|
50 |
</div>
|
51 |
</div>
|
52 |
<?php
|
46 |
<div class="mec-event-more-info">
|
47 |
<i class="mec-sl-info"></i>
|
48 |
<h3 class="mec-more-info-label"><?php echo Base::get_main()->m('more_info_link', __('More Info', 'modern-events-calendar-lite')); ?></h3>
|
49 |
+
<dd class="mec-events-event-more-info"><a class="mec-more-info-button a mec-color-hover" target="<?php echo (isset($event_detail->data->meta['mec_more_info_target']) ? $event_detail->data->meta['mec_more_info_target'] : '_self'); ?>" href="<?php echo esc_attr( $event_detail->data->meta['mec_more_info'] ); ?>"><?php echo ((isset($event_detail->data->meta['mec_more_info_title']) && trim($event_detail->data->meta['mec_more_info_title'])) ? $event_detail->data->meta['mec_more_info_title'] : __('Read More', 'modern-events-calendar-lite')); ?></a></dd>
|
50 |
</div>
|
51 |
</div>
|
52 |
<?php
|
app/core/src/SingleBuilder/Widgets/EventOrganizers/EventOrganizers.php
CHANGED
@@ -61,21 +61,21 @@ class EventOrganizers extends WidgetBase {
|
|
61 |
<dd class="mec-organizer-tel">
|
62 |
<i class="mec-sl-phone"></i>
|
63 |
<h6><?php _e('Phone', 'modern-events-calendar-lite'); ?></h6>
|
64 |
-
<a href="tel:<?php echo $organizer['tel']; ?>"><?php echo $organizer['tel']; ?></a>
|
65 |
</dd>
|
66 |
<?php endif;
|
67 |
if(isset($organizer['email']) && !empty($organizer['email'])): ?>
|
68 |
<dd class="mec-organizer-email">
|
69 |
<i class="mec-sl-envelope"></i>
|
70 |
<h6><?php _e('Email', 'modern-events-calendar-lite'); ?></h6>
|
71 |
-
<a href="mailto:<?php echo $organizer['email']; ?>"><?php echo $organizer['email']; ?></a>
|
72 |
</dd>
|
73 |
<?php endif;
|
74 |
if(isset($organizer['url']) && !empty($organizer['url']) and $organizer['url'] != 'http://'): ?>
|
75 |
<dd class="mec-organizer-url">
|
76 |
<i class="mec-sl-sitemap"></i>
|
77 |
<h6><?php _e('Website', 'modern-events-calendar-lite'); ?></h6>
|
78 |
-
<span><a href="<?php echo (strpos($organizer['url'], 'http') === false ? 'http://'.$organizer['url'] : $organizer['url']); ?>" class="mec-color-hover" target="_blank"><?php echo $organizer['url']; ?></a></span>
|
79 |
</dd>
|
80 |
<?php endif;
|
81 |
$organizer_description_setting = isset( $set['organizer_description'] ) ? $set['organizer_description'] : ''; $organizer_terms = get_the_terms($event_detail->data, 'mec_organizer'); if($organizer_description_setting == '1'): foreach($organizer_terms as $organizer_term) { if ($organizer_term->term_id == $organizer['id'] ) { if(isset($organizer_term->description) && !empty($organizer_term->description)): ?>
|
61 |
<dd class="mec-organizer-tel">
|
62 |
<i class="mec-sl-phone"></i>
|
63 |
<h6><?php _e('Phone', 'modern-events-calendar-lite'); ?></h6>
|
64 |
+
<a href="tel:<?php echo esc_attr($organizer['tel']); ?>"><?php echo esc_html( $organizer['tel'] ); ?></a>
|
65 |
</dd>
|
66 |
<?php endif;
|
67 |
if(isset($organizer['email']) && !empty($organizer['email'])): ?>
|
68 |
<dd class="mec-organizer-email">
|
69 |
<i class="mec-sl-envelope"></i>
|
70 |
<h6><?php _e('Email', 'modern-events-calendar-lite'); ?></h6>
|
71 |
+
<a href="mailto:<?php echo esc_attr( $organizer['email'] ); ?>"><?php echo esc_html( $organizer['email'] ); ?></a>
|
72 |
</dd>
|
73 |
<?php endif;
|
74 |
if(isset($organizer['url']) && !empty($organizer['url']) and $organizer['url'] != 'http://'): ?>
|
75 |
<dd class="mec-organizer-url">
|
76 |
<i class="mec-sl-sitemap"></i>
|
77 |
<h6><?php _e('Website', 'modern-events-calendar-lite'); ?></h6>
|
78 |
+
<span><a href="<?php echo (strpos($organizer['url'], 'http') === false ? 'http://'.$organizer['url'] : $organizer['url']); ?>" class="mec-color-hover" target="_blank"><?php echo esc_url( $organizer['url'] ); ?></a></span>
|
79 |
</dd>
|
80 |
<?php endif;
|
81 |
$organizer_description_setting = isset( $set['organizer_description'] ) ? $set['organizer_description'] : ''; $organizer_terms = get_the_terms($event_detail->data, 'mec_organizer'); if($organizer_description_setting == '1'): foreach($organizer_terms as $organizer_term) { if ($organizer_term->term_id == $organizer['id'] ) { if(isset($organizer_term->description) && !empty($organizer_term->description)): ?>
|
app/core/src/SingleBuilder/Widgets/EventPublicDownload/EventPublicDownload.php
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace MEC\SingleBuilder\Widgets\EventPublicDownload;
|
4 |
+
|
5 |
+
use MEC\Base;
|
6 |
+
use MEC\SingleBuilder\Widgets\WidgetBase;
|
7 |
+
|
8 |
+
class EventPublicDownload extends WidgetBase {
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Get HTML Output
|
12 |
+
*
|
13 |
+
* @param int $event_id
|
14 |
+
* @param array $atts
|
15 |
+
*
|
16 |
+
* @return string
|
17 |
+
*/
|
18 |
+
public function output( $event_id = 0, $atts = array() ){
|
19 |
+
|
20 |
+
if( !$event_id ){
|
21 |
+
|
22 |
+
$event_id = $this->get_event_id();
|
23 |
+
}
|
24 |
+
|
25 |
+
if(!$event_id){
|
26 |
+
return '';
|
27 |
+
}
|
28 |
+
|
29 |
+
$settings = $this->settings;
|
30 |
+
$events_detail = $this->get_event_detail($event_id);
|
31 |
+
|
32 |
+
$single = new \MEC_skin_single();
|
33 |
+
$html = $single->display_public_download_module( $events_detail );
|
34 |
+
|
35 |
+
return $html;
|
36 |
+
}
|
37 |
+
}
|
app/core/src/SingleBuilder/Widgets/EventRegisterButton/EventRegisterButton.php
CHANGED
@@ -65,7 +65,7 @@ class EventRegisterButton extends WidgetBase {
|
|
65 |
$classes .= ' mec-booking-data-lity';
|
66 |
}
|
67 |
?>
|
68 |
-
<a class="mec-booking-button mec-bg-color <?php echo $classes; ?>" href="#mec-events-meta-group-booking-<?php echo $single->uniqueid; ?>" <?php echo $data_lity; ?>><?php echo $button_text; ?></a>
|
69 |
<script>
|
70 |
// Fix modal booking in some themes
|
71 |
if( 'undefined' === typeof mec_booking_lity_init){
|
@@ -82,7 +82,7 @@ class EventRegisterButton extends WidgetBase {
|
|
82 |
}
|
83 |
</script>
|
84 |
<?php elseif ( $mec_more_info ) : ?>
|
85 |
-
<a target="<?php echo $mec_more_info_target; ?>" class="mec-booking-button mec-bg-color" href="<?php echo $event_detail->data->meta['mec_more_info']; ?>">
|
86 |
<?php echo $button_text; ?>
|
87 |
</a>
|
88 |
<?php endif; ?>
|
65 |
$classes .= ' mec-booking-data-lity';
|
66 |
}
|
67 |
?>
|
68 |
+
<a class="mec-booking-button mec-bg-color <?php echo esc_attr( $classes ); ?>" href="#mec-events-meta-group-booking-<?php echo esc_attr( $single->uniqueid ); ?>" <?php echo esc_attr( $data_lity ); ?>><?php echo $button_text; ?></a>
|
69 |
<script>
|
70 |
// Fix modal booking in some themes
|
71 |
if( 'undefined' === typeof mec_booking_lity_init){
|
82 |
}
|
83 |
</script>
|
84 |
<?php elseif ( $mec_more_info ) : ?>
|
85 |
+
<a target="<?php echo esc_attr( $mec_more_info_target ); ?>" class="mec-booking-button mec-bg-color" href="<?php echo esc_url( $event_detail->data->meta['mec_more_info'] ); ?>">
|
86 |
<?php echo $button_text; ?>
|
87 |
</a>
|
88 |
<?php endif; ?>
|
app/core/src/SingleBuilder/Widgets/EventTags/EventTags.php
CHANGED
@@ -49,7 +49,7 @@ class EventTags extends WidgetBase {
|
|
49 |
', ',
|
50 |
array_map(
|
51 |
function($tag) {
|
52 |
-
return '<a href="' . get_tag_link($tag->term_id) . '">' . $tag->name . ' </a>';
|
53 |
}, $tags
|
54 |
)
|
55 |
);
|
49 |
', ',
|
50 |
array_map(
|
51 |
function($tag) {
|
52 |
+
return '<a href="' . esc_attr( get_tag_link($tag->term_id) ) . '">' . $tag->name . ' </a>';
|
53 |
}, $tags
|
54 |
)
|
55 |
);
|
app/core/src/SingleBuilder/Widgets/FeaturedImage/FeaturedImage.php
CHANGED
@@ -48,7 +48,7 @@ class FeaturedImage extends WidgetBase {
|
|
48 |
|
49 |
if ( true === $this->is_editor_mode && empty($html) ) {
|
50 |
|
51 |
-
$html = '<img src="' . plugins_url('empty-pic.jpg' , __FILE__ ) . '" width="'
|
52 |
}
|
53 |
|
54 |
return $html;
|
48 |
|
49 |
if ( true === $this->is_editor_mode && empty($html) ) {
|
50 |
|
51 |
+
$html = '<img src="' . esc_attr( plugins_url('empty-pic.jpg' , __FILE__ ) ) . '" width="'. esc_attr( $atts['image_width'] ) .'" height="'. esc_attr( $atts['image_height'] ).'"> ';
|
52 |
}
|
53 |
|
54 |
return $html;
|
app/features/admincalendar.php
ADDED
@@ -0,0 +1,87 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/** no direct access **/
|
3 |
+
defined('MECEXEC') or die();
|
4 |
+
|
5 |
+
/**
|
6 |
+
* @author Webnus <info@webnus.biz>
|
7 |
+
*/
|
8 |
+
class MEC_feature_admincalendar extends MEC_base
|
9 |
+
{
|
10 |
+
public $factory;
|
11 |
+
public $main;
|
12 |
+
public $settings;
|
13 |
+
public $status;
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Constructor method
|
17 |
+
* @author Webnus <info@webnus.biz>
|
18 |
+
*/
|
19 |
+
public function __construct()
|
20 |
+
{
|
21 |
+
// Import MEC Factory
|
22 |
+
$this->factory = $this->getFactory();
|
23 |
+
|
24 |
+
// Import MEC Main
|
25 |
+
$this->main = $this->getMain();
|
26 |
+
|
27 |
+
// MEC Settings
|
28 |
+
$this->settings = $this->main->get_settings();
|
29 |
+
|
30 |
+
// Admin Calendar Status
|
31 |
+
$this->status = (isset($_GET['admincalendar']) and (boolean) sanitize_text_field($_GET['admincalendar']));
|
32 |
+
}
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Initialize admin calendar feature
|
36 |
+
* @author Webnus <info@webnus.biz>
|
37 |
+
*/
|
38 |
+
public function init()
|
39 |
+
{
|
40 |
+
// Temporary
|
41 |
+
return;
|
42 |
+
|
43 |
+
// Disabled?
|
44 |
+
if(!isset($this->settings['admin_calendar']) or (isset($this->settings['admin_calendar']) and !$this->settings['admin_calendar'])) return;
|
45 |
+
|
46 |
+
// Admin Calendar
|
47 |
+
$this->factory->action('admin_head-edit.php', array($this, 'output'));
|
48 |
+
|
49 |
+
// Assets
|
50 |
+
if($this->status) $this->factory->action('admin_enqueue_scripts', array($this, 'assets'), 0);
|
51 |
+
}
|
52 |
+
|
53 |
+
public function output()
|
54 |
+
{
|
55 |
+
global $current_screen;
|
56 |
+
|
57 |
+
// Add it only on Event Page
|
58 |
+
if('mec-events' != $current_screen->post_type) return;
|
59 |
+
?>
|
60 |
+
<?php if($this->status): $HTML = $this->getRender()->vmonth(array('sk-options' => array('monthly_view' => array('style' => 'admin')))); ?>
|
61 |
+
<style>#posts-filter, ul.subsubsub{display: none;}</style>
|
62 |
+
<script type="text/javascript">
|
63 |
+
jQuery(document).ready(function($)
|
64 |
+
{
|
65 |
+
$('hr.wp-header-end').before('<a href="<?php echo esc_url($this->main->remove_qs_var('admincalendar')); ?>" class="add-new-h2"><?php esc_html_e('Classic View', 'modern-events-calendar-lite'); ?></a>');
|
66 |
+
$('#posts-filter').before(`<div><?php echo $HTML; ?></div>`);
|
67 |
+
});
|
68 |
+
</script>
|
69 |
+
<?php else: ?>
|
70 |
+
<script type="text/javascript">
|
71 |
+
jQuery(document).ready(function($)
|
72 |
+
{
|
73 |
+
$('hr.wp-header-end').before('<a href="<?php echo esc_url($this->main->add_qs_vars(array('admincalendar'=>1))); ?>" class="add-new-h2"><?php esc_html_e('Calendar View', 'modern-events-calendar-lite'); ?></a>');
|
74 |
+
});
|
75 |
+
</script>
|
76 |
+
<?php endif;
|
77 |
+
}
|
78 |
+
|
79 |
+
public function assets()
|
80 |
+
{
|
81 |
+
// JavaScript
|
82 |
+
wp_enqueue_script('mec-admin-calendar-script', $this->main->asset('js/admin-calendar.js'), array('jquery'), $this->main->get_version());
|
83 |
+
|
84 |
+
// Styles
|
85 |
+
wp_enqueue_style('mec-admin-calendar-style', $this->main->asset('css/admin-calendar.min.css'), array('mec-backend-style'), $this->main->get_version());
|
86 |
+
}
|
87 |
+
}
|
app/features/booking/calendar_novel.php
CHANGED
@@ -99,9 +99,9 @@ jQuery(document).ready(function()
|
|
99 |
// Include javascript code into the page
|
100 |
echo $javascript;
|
101 |
?>
|
102 |
-
<div class="mec-booking-calendar mec-wrap" id="mec_booking_calendar_<?php echo $uniqueid; ?>">
|
103 |
<div class="mec-booking-calendar-month-navigation"><?php echo $navigator_html; ?></div>
|
104 |
-
<div class="mec-calendar mec-box-calendar mec-event-calendar-classic mec-event-container-novel <?php echo $multiple_date; ?>">
|
105 |
<?php
|
106 |
// Table Headings
|
107 |
$headings = $this->main->get_weekday_abbr_labels();
|
99 |
// Include javascript code into the page
|
100 |
echo $javascript;
|
101 |
?>
|
102 |
+
<div class="mec-booking-calendar mec-wrap" id="mec_booking_calendar_<?php echo esc_attr($uniqueid); ?>">
|
103 |
<div class="mec-booking-calendar-month-navigation"><?php echo $navigator_html; ?></div>
|
104 |
+
<div class="mec-calendar mec-box-calendar mec-event-calendar-classic mec-event-container-novel <?php echo sanitize_html_class($multiple_date); ?>">
|
105 |
<?php
|
106 |
// Table Headings
|
107 |
$headings = $this->main->get_weekday_abbr_labels();
|
app/features/cart/cart.php
CHANGED
@@ -49,8 +49,8 @@ $archive_url = $this->main->get_archive_url();
|
|
49 |
</thead>
|
50 |
<tbody>
|
51 |
<?php foreach($cart as $transaction_id): $TO = $this->book->get_TO($transaction_id); ?>
|
52 |
-
<tr id="mec_cart_transactions_<?php echo $transaction_id; ?>">
|
53 |
-
<td><span class="mec-cart-remove-transactions" data-transaction-id="<?php echo $transaction_id; ?>"><svg xmlns="http://www.w3.org/2000/svg" width="9" height="8.999" viewBox="0 0 9 8.999"><path id="close" d="M6.079,5.647l4.067,4.067-.433.433L5.646,6.079,1.579,10.146l-.433-.433L5.214,5.647,1.146,1.58l.433-.433L5.646,5.214,9.713,1.147l.433.433Z" transform="translate(-1.146 -1.147)" fill="#949596"></path></svg></span></td>
|
54 |
<td>
|
55 |
<?php echo $transaction_id; ?>
|
56 |
<?php echo ($TO->get_coupon() ? '<br><code class="mec-cart-coupon-code" title="'.esc_attr__('Applied Coupon', 'modern-events-calendar-lite').'">'.$TO->get_coupon().'</code>' : ''); ?>
|
49 |
</thead>
|
50 |
<tbody>
|
51 |
<?php foreach($cart as $transaction_id): $TO = $this->book->get_TO($transaction_id); ?>
|
52 |
+
<tr id="mec_cart_transactions_<?php echo esc_attr($transaction_id); ?>">
|
53 |
+
<td><span class="mec-cart-remove-transactions" data-transaction-id="<?php echo esc_attr($transaction_id); ?>"><svg xmlns="http://www.w3.org/2000/svg" width="9" height="8.999" viewBox="0 0 9 8.999"><path id="close" d="M6.079,5.647l4.067,4.067-.433.433L5.646,6.079,1.579,10.146l-.433-.433L5.214,5.647,1.146,1.58l.433-.433L5.646,5.214,9.713,1.147l.433.433Z" transform="translate(-1.146 -1.147)" fill="#949596"></path></svg></span></td>
|
54 |
<td>
|
55 |
<?php echo $transaction_id; ?>
|
56 |
<?php echo ($TO->get_coupon() ? '<br><code class="mec-cart-coupon-code" title="'.esc_attr__('Applied Coupon', 'modern-events-calendar-lite').'">'.$TO->get_coupon().'</code>' : ''); ?>
|
app/features/cart/checkout.php
CHANGED
@@ -71,7 +71,7 @@ $this->factory->params('footer', $javascript);
|
|
71 |
<div class="mec-checkout-form-gateway-label">
|
72 |
<label>
|
73 |
<?php if(count($active_gateways) > 1): ?>
|
74 |
-
<input type="radio" name="book[gateway]" class="mec-checkout-gateways-radio" value="<?php echo $gateway->id(); ?>" />
|
75 |
<?php endif; ?>
|
76 |
<?php echo $gateway->title(); ?>
|
77 |
</label>
|
@@ -79,7 +79,7 @@ $this->factory->params('footer', $javascript);
|
|
79 |
<?php endforeach; ?>
|
80 |
|
81 |
<?php foreach($active_gateways as $gateway): ?>
|
82 |
-
<div class="mec-checkout-form-gateway-checkout <?php echo (count($active_gateways) == 1 ? '' : 'mec-util-hidden'); ?>" id="mec_checkout_form_gateway_checkout<?php echo $gateway->id(); ?>">
|
83 |
<?php echo $gateway->comment(); ?>
|
84 |
<?php $gateway->cart_checkout_form($cart_id); ?>
|
85 |
</div>
|
71 |
<div class="mec-checkout-form-gateway-label">
|
72 |
<label>
|
73 |
<?php if(count($active_gateways) > 1): ?>
|
74 |
+
<input type="radio" name="book[gateway]" class="mec-checkout-gateways-radio" value="<?php echo esc_attr($gateway->id()); ?>" />
|
75 |
<?php endif; ?>
|
76 |
<?php echo $gateway->title(); ?>
|
77 |
</label>
|
79 |
<?php endforeach; ?>
|
80 |
|
81 |
<?php foreach($active_gateways as $gateway): ?>
|
82 |
+
<div class="mec-checkout-form-gateway-checkout <?php echo (count($active_gateways) == 1 ? '' : 'mec-util-hidden'); ?>" id="mec_checkout_form_gateway_checkout<?php echo esc_attr($gateway->id()); ?>">
|
83 |
<?php echo $gateway->comment(); ?>
|
84 |
<?php $gateway->cart_checkout_form($cart_id); ?>
|
85 |
</div>
|
app/features/dc.php
ADDED
@@ -0,0 +1,221 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/** no direct access **/
|
3 |
+
defined('MECEXEC') or die();
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Dynamic Content
|
7 |
+
* @author Webnus <info@webnus.biz>
|
8 |
+
*/
|
9 |
+
class MEC_feature_dc extends MEC_base
|
10 |
+
{
|
11 |
+
public $factory;
|
12 |
+
public $main;
|
13 |
+
public $settings;
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Constructor method
|
17 |
+
* @author Webnus <info@webnus.biz>
|
18 |
+
*/
|
19 |
+
public function __construct()
|
20 |
+
{
|
21 |
+
// Import MEC Factory
|
22 |
+
$this->factory = $this->getFactory();
|
23 |
+
|
24 |
+
// Import MEC Main
|
25 |
+
$this->main = $this->getMain();
|
26 |
+
|
27 |
+
// MEC Settings
|
28 |
+
$this->settings = $this->main->get_settings();
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Initialize admin calendar feature
|
33 |
+
* @author Webnus <info@webnus.biz>
|
34 |
+
*/
|
35 |
+
public function init()
|
36 |
+
{
|
37 |
+
// Dynamic Content Shortcode
|
38 |
+
$this->factory->shortcode('MEC_dc', array($this, 'output'));
|
39 |
+
}
|
40 |
+
|
41 |
+
public function output($atts = array())
|
42 |
+
{
|
43 |
+
$event_id = (isset($atts['event']) ? $atts['event'] : NULL);
|
44 |
+
|
45 |
+
if(!$event_id) $event_id = (isset($atts['id']) ? $atts['id'] : NULL);
|
46 |
+
if(!$event_id)
|
47 |
+
{
|
48 |
+
global $post;
|
49 |
+
if($post->post_type === $this->main->get_main_post_type()) $event_id = $post->ID;
|
50 |
+
}
|
51 |
+
|
52 |
+
// Key
|
53 |
+
$key = (isset($atts['key']) ? $atts['key'] : NULL);
|
54 |
+
|
55 |
+
// Invalid Data
|
56 |
+
if(!$event_id or !$key) return '';
|
57 |
+
|
58 |
+
$post = get_post($event_id);
|
59 |
+
|
60 |
+
// Invalid Post
|
61 |
+
if($post->post_type !== $this->main->get_main_post_type()) return '';
|
62 |
+
|
63 |
+
// Event
|
64 |
+
if(isset($GLOBALS['mec-event'])) $event = $GLOBALS['mec-event'];
|
65 |
+
else
|
66 |
+
{
|
67 |
+
$events = (new MEC_skin_single())->get_event_mec($event_id);
|
68 |
+
$event = current($events);
|
69 |
+
}
|
70 |
+
|
71 |
+
return $this->render($event, $key);
|
72 |
+
}
|
73 |
+
|
74 |
+
public function render($event, $key)
|
75 |
+
{
|
76 |
+
$meta = $event->data->meta;
|
77 |
+
$date = $event->date;
|
78 |
+
|
79 |
+
if($key === 'start_date')
|
80 |
+
{
|
81 |
+
$date_format = get_option('date_format');
|
82 |
+
return $this->main->date_i18n($date_format, strtotime($meta['mec_start_datetime']), $event);
|
83 |
+
}
|
84 |
+
elseif($key === 'start_time')
|
85 |
+
{
|
86 |
+
$time_format = get_option('time_format');
|
87 |
+
return $this->main->date_i18n($time_format, strtotime($meta['mec_start_datetime']), $event);
|
88 |
+
}
|
89 |
+
elseif($key === 'start_datetime')
|
90 |
+
{
|
91 |
+
$date_format = get_option('date_format');
|
92 |
+
$time_format = get_option('time_format');
|
93 |
+
$datetime_format = $date_format.' '.$time_format;
|
94 |
+
|
95 |
+
return $this->main->date_i18n($datetime_format, strtotime($meta['mec_start_datetime']), $event);
|
96 |
+
}
|
97 |
+
elseif($key === 'end_date')
|
98 |
+
{
|
99 |
+
$date_format = get_option('date_format');
|
100 |
+
return $this->main->date_i18n($date_format, strtotime($meta['mec_end_datetime']), $event);
|
101 |
+
}
|
102 |
+
elseif($key === 'end_time')
|
103 |
+
{
|
104 |
+
$time_format = get_option('time_format');
|
105 |
+
return $this->main->date_i18n($time_format, strtotime($meta['mec_end_datetime']), $event);
|
106 |
+
}
|
107 |
+
elseif($key === 'end_datetime')
|
108 |
+
{
|
109 |
+
$date_format = get_option('date_format');
|
110 |
+
$time_format = get_option('time_format');
|
111 |
+
$datetime_format = $date_format.' '.$time_format;
|
112 |
+
|
113 |
+
return $this->main->date_i18n($datetime_format, strtotime($meta['mec_end_datetime']), $event);
|
114 |
+
}
|
115 |
+
elseif($key === 'occurrence')
|
116 |
+
{
|
117 |
+
$date_format = get_option('date_format');
|
118 |
+
$midnight_event = $this->main->is_midnight_event($event);
|
119 |
+
|
120 |
+
if($midnight_event) return $this->main->dateify($event, $date_format);
|
121 |
+
else return $this->main->date_label($date['start'], $date['end'], $date_format, ' - ', true, 0, $event);
|
122 |
+
}
|
123 |
+
elseif($key === 'occurrence_start_date')
|
124 |
+
{
|
125 |
+
$date_format = get_option('date_format');
|
126 |
+
return $this->main->date_i18n($date_format, $date['start']['timestamp'], $event);
|
127 |
+
}
|
128 |
+
elseif($key === 'occurrence_start_time')
|
129 |
+
{
|
130 |
+
$time_format = get_option('time_format');
|
131 |
+
return $this->main->date_i18n($time_format, $date['start']['timestamp'], $event);
|
132 |
+
}
|
133 |
+
elseif($key === 'occurrence_start_datetime')
|
134 |
+
{
|
135 |
+
$date_format = get_option('date_format');
|
136 |
+
$time_format = get_option('time_format');
|
137 |
+
$datetime_format = $date_format.' '.$time_format;
|
138 |
+
|
139 |
+
return $this->main->date_i18n($datetime_format, $date['start']['timestamp'], $event);
|
140 |
+
}
|
141 |
+
elseif($key === 'occurrence_end_date')
|
142 |
+
{
|
143 |
+
$date_format = get_option('date_format');
|
144 |
+
return $this->main->date_i18n($date_format, $date['end']['timestamp'], $event);
|
145 |
+
}
|
146 |
+
elseif($key === 'occurrence_end_time')
|
147 |
+
{
|
148 |
+
$time_format = get_option('time_format');
|
149 |
+
return $this->main->date_i18n($time_format, $date['end']['timestamp'], $event);
|
150 |
+
}
|
151 |
+
elseif($key === 'occurrence_end_datetime')
|
152 |
+
{
|
153 |
+
$date_format = get_option('date_format');
|
154 |
+
$time_format = get_option('time_format');
|
155 |
+
$datetime_format = $date_format.' '.$time_format;
|
156 |
+
|
157 |
+
return $this->main->date_i18n($datetime_format, $date['end']['timestamp'], $event);
|
158 |
+
}
|
159 |
+
elseif($key === 'location_name')
|
160 |
+
{
|
161 |
+
$location_id = $this->main->get_master_location_id($event);
|
162 |
+
$location = get_term($location_id);
|
163 |
+
|
164 |
+
return ($location and isset($location->name)) ? $location->name : '';
|
165 |
+
}
|
166 |
+
elseif($key === 'location_address')
|
167 |
+
{
|
168 |
+
$location_id = $this->main->get_master_location_id($event);
|
169 |
+
return get_term_meta($location_id, 'address', true);
|
170 |
+
}
|
171 |
+
elseif($key === 'location_url')
|
172 |
+
{
|
173 |
+
$location_id = $this->main->get_master_location_id($event);
|
174 |
+
return get_term_meta($location_id, 'url', true);
|
175 |
+
}
|
176 |
+
elseif($key === 'organizer_name')
|
177 |
+
{
|
178 |
+
$organizer_id = $this->main->get_master_organizer_id($event);
|
179 |
+
$organizer = get_term($organizer_id);
|
180 |
+
|
181 |
+
return ($organizer and isset($organizer->name)) ? $organizer->name : '';
|
182 |
+
}
|
183 |
+
elseif($key === 'organizer_tel')
|
184 |
+
{
|
185 |
+
$organizer_id = $this->main->get_master_organizer_id($event);
|
186 |
+
return get_term_meta($organizer_id, 'tel', true);
|
187 |
+
}
|
188 |
+
elseif($key === 'organizer_email')
|
189 |
+
{
|
190 |
+
$organizer_id = $this->main->get_master_organizer_id($event);
|
191 |
+
return get_term_meta($organizer_id, 'email', true);
|
192 |
+
}
|
193 |
+
elseif($key === 'organizer_url')
|
194 |
+
{
|
195 |
+
$organizer_id = $this->main->get_master_organizer_id($event);
|
196 |
+
return get_term_meta($organizer_id, 'url', true);
|
197 |
+
}
|
198 |
+
elseif($key === 'cost')
|
199 |
+
{
|
200 |
+
return $this->main->get_event_cost($event);
|
201 |
+
}
|
202 |
+
elseif($key === 'more_info_url')
|
203 |
+
{
|
204 |
+
$more_info_url = (isset($event->data->meta['mec_more_info']) and trim($event->data->meta['mec_more_info']) and $event->data->meta['mec_more_info'] != 'http://') ? $event->data->meta['mec_more_info'] : '';
|
205 |
+
if(isset($event->date) and isset($event->date['start']) and isset($event->date['start']['timestamp'])) $more_info_url = MEC_feature_occurrences::param($event->ID, $event->date['start']['timestamp'], 'more_info', $more_info_url);
|
206 |
+
|
207 |
+
return $more_info_url;
|
208 |
+
}
|
209 |
+
elseif($key === 'more_info_tag')
|
210 |
+
{
|
211 |
+
$more_info_url = (isset($event->data->meta['mec_more_info']) and trim($event->data->meta['mec_more_info']) and $event->data->meta['mec_more_info'] != 'http://') ? $event->data->meta['mec_more_info'] : '';
|
212 |
+
if(isset($event->date) and isset($event->date['start']) and isset($event->date['start']['timestamp'])) $more_info_url = MEC_feature_occurrences::param($event->ID, $event->date['start']['timestamp'], 'more_info', $more_info_url);
|
213 |
+
|
214 |
+
$more_info_target = MEC_feature_occurrences::param($event->ID, $event->date['start']['timestamp'], 'more_info_target', (isset($event->data->meta['mec_more_info_target']) ? $event->data->meta['mec_more_info_target'] : '_self'));
|
215 |
+
$more_info_title = MEC_feature_occurrences::param($event->ID, $event->date['start']['timestamp'], 'more_info_title', ((isset($event->data->meta['mec_more_info_title']) and trim($event->data->meta['mec_more_info_title'])) ? $event->data->meta['mec_more_info_title'] : __('Read More', 'modern-events-calendar-lite')));
|
216 |
+
|
217 |
+
return '<a target="'.$more_info_target.'" href="'.esc_url($more_info_url).'">'.$more_info_title.'</a>';
|
218 |
+
}
|
219 |
+
else return '';
|
220 |
+
}
|
221 |
+
}
|
app/features/emails/details.php
CHANGED
@@ -48,7 +48,7 @@ $upcoming_event_ids = $this->main->get_upcoming_event_ids();
|
|
48 |
<?php foreach($upcoming_event_ids as $upcoming_event_id): $event = get_post($upcoming_event_id); ?>
|
49 |
<li>
|
50 |
<label>
|
51 |
-
<input type="checkbox" name="mec[events][]" value="<?php echo $event->ID; ?>" <?php echo (in_array($event->ID, $events) ? 'checked' : ''); ?>> <?php esc_html_e($event->post_title); ?>
|
52 |
</label>
|
53 |
</li>
|
54 |
<?php endforeach; ?>
|
48 |
<?php foreach($upcoming_event_ids as $upcoming_event_id): $event = get_post($upcoming_event_id); ?>
|
49 |
<li>
|
50 |
<label>
|
51 |
+
<input type="checkbox" name="mec[events][]" value="<?php echo esc_attr($event->ID); ?>" <?php echo (in_array($event->ID, $events) ? 'checked' : ''); ?>> <?php esc_html_e($event->post_title); ?>
|
52 |
</label>
|
53 |
</li>
|
54 |
<?php endforeach; ?>
|
app/features/events.php
CHANGED
@@ -1361,7 +1361,7 @@ class MEC_feature_events extends MEC_base
|
|
1361 |
$fields = $this->getEventFields();
|
1362 |
$fields->form(array(
|
1363 |
'id' => 'mec-event-data',
|
1364 |
-
'class' => 'mec-meta-box-fields mec-event-tab-content',
|
1365 |
'post' => $post,
|
1366 |
'data' => get_post_meta($post->ID, 'mec_fields', true),
|
1367 |
'name_prefix' => 'mec',
|
@@ -1381,7 +1381,7 @@ class MEC_feature_events extends MEC_base
|
|
1381 |
$not_in_days_str = get_post_meta($post->ID, 'mec_not_in_days', true);
|
1382 |
$not_in_days = trim($not_in_days_str) ? explode(',', $not_in_days_str) : array();
|
1383 |
?>
|
1384 |
-
<div class="mec-meta-box-fields mec-event-tab-content" id="mec-exceptional-days">
|
1385 |
<h4><?php _e('Exceptional Days (Exclude Dates)', 'modern-events-calendar-lite'); ?></h4>
|
1386 |
<div id="mec_meta_box_exceptions_form">
|
1387 |
|
@@ -1494,7 +1494,7 @@ class MEC_feature_events extends MEC_base
|
|
1494 |
$more_info_title = get_post_meta($post->ID, 'mec_more_info_title', true);
|
1495 |
$more_info_target = get_post_meta($post->ID, 'mec_more_info_target', true);
|
1496 |
?>
|
1497 |
-
<div class="mec-meta-box-fields mec-event-tab-content" id="mec-read-more">
|
1498 |
<h4><?php _e('Event Links', 'modern-events-calendar-lite'); ?></h4>
|
1499 |
<div class="mec-form-row">
|
1500 |
<label class="mec-col-2"
|
@@ -1636,7 +1636,7 @@ class MEC_feature_events extends MEC_base
|
|
1636 |
$pages = get_pages();
|
1637 |
?>
|
1638 |
<div id="mec-booking">
|
1639 |
-
<div class="mec-meta-box-fields mec-booking-tab-content mec-tab-active" id="mec_meta_box_booking_options_form_1">
|
1640 |
|
1641 |
<?php if(!$FES or ($FES and (!isset($this->settings['fes_section_booking_tbl']) or (isset($this->settings['fes_section_booking_tbl']) and $this->settings['fes_section_booking_tbl'])))): ?>
|
1642 |
<h4 class="mec-title"><label for="mec_bookings_limit"><?php _e('Total booking limit', 'modern-events-calendar-lite'); ?></label></h4>
|
@@ -1920,7 +1920,7 @@ class MEC_feature_events extends MEC_base
|
|
1920 |
|
1921 |
if(!is_array($tickets)) $tickets = array();
|
1922 |
?>
|
1923 |
-
<div class="mec-meta-box-fields mec-booking-tab-content" id="mec-tickets">
|
1924 |
<h4 class="mec-meta-box-header"><?php echo $this->main->m('tickets', __('Tickets', 'modern-events-calendar-lite')); ?></h4>
|
1925 |
|
1926 |
<?php if($post->ID != $this->main->get_original_event($post->ID)): ?>
|
@@ -1948,7 +1948,7 @@ class MEC_feature_events extends MEC_base
|
|
1948 |
value="<?php echo(isset($ticket['name']) ? esc_attr($ticket['name']) : ''); ?>"/>
|
1949 |
</div>
|
1950 |
|
1951 |
-
<?php do_action(
|
1952 |
|
1953 |
<?php if($ticket_times_status): ?>
|
1954 |
<div class="mec-form-row wn-ticket-time">
|
@@ -2422,7 +2422,7 @@ class MEC_feature_events extends MEC_base
|
|
2422 |
$fees = array();
|
2423 |
}
|
2424 |
?>
|
2425 |
-
<div class="mec-meta-box-fields mec-booking-tab-content" id="mec-fees">
|
2426 |
<h4 class="mec-meta-box-header"><?php _e('Fees', 'modern-events-calendar-lite'); ?></h4>
|
2427 |
<div id="mec_meta_box_fees_form">
|
2428 |
<div class="mec-form-row">
|
@@ -2552,7 +2552,7 @@ class MEC_feature_events extends MEC_base
|
|
2552 |
// Ticket Variations Object
|
2553 |
$TicketVariations = $this->getTicketVariations();
|
2554 |
?>
|
2555 |
-
<div class="mec-meta-box-fields mec-booking-tab-content" id="mec-ticket-variations">
|
2556 |
<h4 class="mec-meta-box-header"><?php _e('Ticket Variations / Options', 'modern-events-calendar-lite'); ?></h4>
|
2557 |
<div id="mec_meta_box_ticket_variations_form">
|
2558 |
<div class="mec-form-row">
|
@@ -2651,7 +2651,7 @@ class MEC_feature_events extends MEC_base
|
|
2651 |
));
|
2652 |
}
|
2653 |
?>
|
2654 |
-
<div class="mec-meta-box-fields mec-booking-tab-content" id="mec-reg-fields">
|
2655 |
<h4 class="mec-meta-box-header"><?php _e('Booking Form', 'modern-events-calendar-lite'); ?></h4>
|
2656 |
|
2657 |
<?php if($post->ID != $this->main->get_original_event($post->ID)) : ?>
|
@@ -2883,7 +2883,7 @@ class MEC_feature_events extends MEC_base
|
|
2883 |
|
2884 |
do_action('mec_events_meta_box_attendees_start', $post);
|
2885 |
?>
|
2886 |
-
<div class="mec-meta-box-fields mec-booking-tab-content" id="mec_meta_box_booking_options_form_attendees">
|
2887 |
<h4 class="mec-meta-box-header"><?php _e('Attendees', 'modern-events-calendar-lite'); ?></h4>
|
2888 |
<div class="mec-attendees-wrapper mec-booking-attendees-wrapper">
|
2889 |
<div>
|
@@ -3972,7 +3972,7 @@ class MEC_feature_events extends MEC_base
|
|
3972 |
$orderby = $query->get('orderby');
|
3973 |
$order = $query->get('order');
|
3974 |
|
3975 |
-
$expired = (isset($_REQUEST['mec-expired']) ? $_REQUEST['mec-expired'] : 0);
|
3976 |
if($expired)
|
3977 |
{
|
3978 |
$meta_query[] = array(
|
@@ -3991,7 +3991,7 @@ class MEC_feature_events extends MEC_base
|
|
3991 |
if(!trim($order)) $order = 'asc';
|
3992 |
}
|
3993 |
|
3994 |
-
$upcoming = (isset($_REQUEST['mec-upcoming']) ? $_REQUEST['mec-upcoming'] : 0);
|
3995 |
if($upcoming)
|
3996 |
{
|
3997 |
$now = current_time('Y-m-d H:i:s');
|
@@ -4145,7 +4145,7 @@ class MEC_feature_events extends MEC_base
|
|
4145 |
$post_ids = $_GET['post'];
|
4146 |
|
4147 |
$events = array();
|
4148 |
-
foreach
|
4149 |
|
4150 |
header('Content-type: application/force-download; charset=utf-8');
|
4151 |
header('Content-Disposition: attachment; filename="mec-events-' . date('YmdTHi') . '.json"');
|
@@ -4292,18 +4292,22 @@ class MEC_feature_events extends MEC_base
|
|
4292 |
{
|
4293 |
if($post->post_type != $this->PT) return $actions;
|
4294 |
|
|
|
4295 |
$actions['mec-duplicate'] = '<a href="'.$this->main->add_qs_vars(array('mec-action'=>'duplicate-event', 'id'=>$post->ID)).'">'.__('Duplicate', 'modern-events-calendar-lite').'</a>';
|
4296 |
|
|
|
|
|
|
|
4297 |
return $actions;
|
4298 |
}
|
4299 |
|
4300 |
public function duplicate_event()
|
4301 |
{
|
4302 |
// It's not a duplicate request
|
4303 |
-
if(!isset($_GET['mec-action']) or (isset($_GET['mec-action']) and $_GET['mec-action'] != 'duplicate-event')) return false;
|
4304 |
|
4305 |
// Event ID to duplicate
|
4306 |
-
$id = isset($_GET['id']) ? $_GET['id'] : 0;
|
4307 |
if(!$id) return false;
|
4308 |
|
4309 |
// Duplicate
|
@@ -4770,7 +4774,7 @@ class MEC_feature_events extends MEC_base
|
|
4770 |
{
|
4771 |
$attendees_html .= '<li>';
|
4772 |
$attendees_html .= '<div class="mec-booking-attendees-tooltip-name">'.$unique_attendee['name'].((isset($unique_attendee['count']) and $unique_attendee['count'] > 1) ? ' ('.$unique_attendee['count'].')' : '').'</div>';
|
4773 |
-
$attendees_html .= '<div class="mec-booking-attendees-tooltip-email"><a href="mailto:'
|
4774 |
$attendees_html .= '</li>';
|
4775 |
}
|
4776 |
|
1361 |
$fields = $this->getEventFields();
|
1362 |
$fields->form(array(
|
1363 |
'id' => 'mec-event-data',
|
1364 |
+
'class' => 'mec-meta-box-fields mec-event-tab-content mec-fes-event-fields',
|
1365 |
'post' => $post,
|
1366 |
'data' => get_post_meta($post->ID, 'mec_fields', true),
|
1367 |
'name_prefix' => 'mec',
|
1381 |
$not_in_days_str = get_post_meta($post->ID, 'mec_not_in_days', true);
|
1382 |
$not_in_days = trim($not_in_days_str) ? explode(',', $not_in_days_str) : array();
|
1383 |
?>
|
1384 |
+
<div class="mec-meta-box-fields mec-event-tab-content mec-fes-exceptional-days" id="mec-exceptional-days">
|
1385 |
<h4><?php _e('Exceptional Days (Exclude Dates)', 'modern-events-calendar-lite'); ?></h4>
|
1386 |
<div id="mec_meta_box_exceptions_form">
|
1387 |
|
1494 |
$more_info_title = get_post_meta($post->ID, 'mec_more_info_title', true);
|
1495 |
$more_info_target = get_post_meta($post->ID, 'mec_more_info_target', true);
|
1496 |
?>
|
1497 |
+
<div class="mec-meta-box-fields mec-event-tab-content mec-fes-event-links" id="mec-read-more">
|
1498 |
<h4><?php _e('Event Links', 'modern-events-calendar-lite'); ?></h4>
|
1499 |
<div class="mec-form-row">
|
1500 |
<label class="mec-col-2"
|
1636 |
$pages = get_pages();
|
1637 |
?>
|
1638 |
<div id="mec-booking">
|
1639 |
+
<div class="mec-meta-box-fields mec-booking-tab-content mec-tab-active mec-fes-booking-options" id="mec_meta_box_booking_options_form_1">
|
1640 |
|
1641 |
<?php if(!$FES or ($FES and (!isset($this->settings['fes_section_booking_tbl']) or (isset($this->settings['fes_section_booking_tbl']) and $this->settings['fes_section_booking_tbl'])))): ?>
|
1642 |
<h4 class="mec-title"><label for="mec_bookings_limit"><?php _e('Total booking limit', 'modern-events-calendar-lite'); ?></label></h4>
|
1920 |
|
1921 |
if(!is_array($tickets)) $tickets = array();
|
1922 |
?>
|
1923 |
+
<div class="mec-meta-box-fields mec-booking-tab-content mec-fes-tickets" id="mec-tickets">
|
1924 |
<h4 class="mec-meta-box-header"><?php echo $this->main->m('tickets', __('Tickets', 'modern-events-calendar-lite')); ?></h4>
|
1925 |
|
1926 |
<?php if($post->ID != $this->main->get_original_event($post->ID)): ?>
|
1948 |
value="<?php echo(isset($ticket['name']) ? esc_attr($ticket['name']) : ''); ?>"/>
|
1949 |
</div>
|
1950 |
|
1951 |
+
<?php do_action('mec_ticket_properties', $key, $ticket, $post->ID); ?>
|
1952 |
|
1953 |
<?php if($ticket_times_status): ?>
|
1954 |
<div class="mec-form-row wn-ticket-time">
|
2422 |
$fees = array();
|
2423 |
}
|
2424 |
?>
|
2425 |
+
<div class="mec-meta-box-fields mec-booking-tab-content mec-fes-fees" id="mec-fees">
|
2426 |
<h4 class="mec-meta-box-header"><?php _e('Fees', 'modern-events-calendar-lite'); ?></h4>
|
2427 |
<div id="mec_meta_box_fees_form">
|
2428 |
<div class="mec-form-row">
|
2552 |
// Ticket Variations Object
|
2553 |
$TicketVariations = $this->getTicketVariations();
|
2554 |
?>
|
2555 |
+
<div class="mec-meta-box-fields mec-booking-tab-content mec-fes-ticket-variations" id="mec-ticket-variations">
|
2556 |
<h4 class="mec-meta-box-header"><?php _e('Ticket Variations / Options', 'modern-events-calendar-lite'); ?></h4>
|
2557 |
<div id="mec_meta_box_ticket_variations_form">
|
2558 |
<div class="mec-form-row">
|
2651 |
));
|
2652 |
}
|
2653 |
?>
|
2654 |
+
<div class="mec-meta-box-fields mec-booking-tab-content mec-fes-reg-form" id="mec-reg-fields">
|
2655 |
<h4 class="mec-meta-box-header"><?php _e('Booking Form', 'modern-events-calendar-lite'); ?></h4>
|
2656 |
|
2657 |
<?php if($post->ID != $this->main->get_original_event($post->ID)) : ?>
|
2883 |
|
2884 |
do_action('mec_events_meta_box_attendees_start', $post);
|
2885 |
?>
|
2886 |
+
<div class="mec-meta-box-fields mec-booking-tab-content mec-fes-attendees" id="mec_meta_box_booking_options_form_attendees">
|
2887 |
<h4 class="mec-meta-box-header"><?php _e('Attendees', 'modern-events-calendar-lite'); ?></h4>
|
2888 |
<div class="mec-attendees-wrapper mec-booking-attendees-wrapper">
|
2889 |
<div>
|
3972 |
$orderby = $query->get('orderby');
|
3973 |
$order = $query->get('order');
|
3974 |
|
3975 |
+
$expired = (isset($_REQUEST['mec-expired']) ? sanitize_text_field($_REQUEST['mec-expired']) : 0);
|
3976 |
if($expired)
|
3977 |
{
|
3978 |
$meta_query[] = array(
|
3991 |
if(!trim($order)) $order = 'asc';
|
3992 |
}
|
3993 |
|
3994 |
+
$upcoming = (isset($_REQUEST['mec-upcoming']) ? sanitize_text_field($_REQUEST['mec-upcoming']) : 0);
|
3995 |
if($upcoming)
|
3996 |
{
|
3997 |
$now = current_time('Y-m-d H:i:s');
|
4145 |
$post_ids = $_GET['post'];
|
4146 |
|
4147 |
$events = array();
|
4148 |
+
foreach($post_ids as $post_id) $events[] = $this->main->export_single((int) $post_id);
|
4149 |
|
4150 |
header('Content-type: application/force-download; charset=utf-8');
|
4151 |
header('Content-Disposition: attachment; filename="mec-events-' . date('YmdTHi') . '.json"');
|
4292 |
{
|
4293 |
if($post->post_type != $this->PT) return $actions;
|
4294 |
|
4295 |
+
// Duplicate Button
|
4296 |
$actions['mec-duplicate'] = '<a href="'.$this->main->add_qs_vars(array('mec-action'=>'duplicate-event', 'id'=>$post->ID)).'">'.__('Duplicate', 'modern-events-calendar-lite').'</a>';
|
4297 |
|
4298 |
+
// Booking Button
|
4299 |
+
if($this->getPRO() and isset($this->settings['booking_status']) and $this->settings['booking_status']) $actions['mec-bookings'] = '<a href="'.$this->main->add_qs_vars(array('post_type'=>$this->main->get_book_post_type(), 'mec_event_id'=>$post->ID), trim($this->main->URL('admin'), '/ ').'/edit.php').'">'.__('Bookings', 'modern-events-calendar-lite').'</a>';
|
4300 |
+
|
4301 |
return $actions;
|
4302 |
}
|
4303 |
|
4304 |
public function duplicate_event()
|
4305 |
{
|
4306 |
// It's not a duplicate request
|
4307 |
+
if(!isset($_GET['mec-action']) or (isset($_GET['mec-action']) and sanitize_text_field($_GET['mec-action']) != 'duplicate-event')) return false;
|
4308 |
|
4309 |
// Event ID to duplicate
|
4310 |
+
$id = isset($_GET['id']) ? sanitize_text_field($_GET['id']) : 0;
|
4311 |
if(!$id) return false;
|
4312 |
|
4313 |
// Duplicate
|
4774 |
{
|
4775 |
$attendees_html .= '<li>';
|
4776 |
$attendees_html .= '<div class="mec-booking-attendees-tooltip-name">'.$unique_attendee['name'].((isset($unique_attendee['count']) and $unique_attendee['count'] > 1) ? ' ('.$unique_attendee['count'].')' : '').'</div>';
|
4777 |
+
$attendees_html .= '<div class="mec-booking-attendees-tooltip-email"><a href="mailto:'.esc_attr($unique_attendee['email']).'">'.$unique_attendee['email'].'</a></div>';
|
4778 |
$attendees_html .= '</li>';
|
4779 |
}
|
4780 |
|
app/features/feed.php
CHANGED
@@ -146,7 +146,7 @@ class MEC_feature_feed extends MEC_base
|
|
146 |
|
147 |
public function ical()
|
148 |
{
|
149 |
-
$ical_feed = (isset($_GET['mec-ical-feed']) and $_GET['mec-ical-feed']);
|
150 |
if(!$ical_feed) return false;
|
151 |
|
152 |
// Feed is not enabled
|
146 |
|
147 |
public function ical()
|
148 |
{
|
149 |
+
$ical_feed = (isset($_GET['mec-ical-feed']) and sanitize_text_field($_GET['mec-ical-feed']));
|
150 |
if(!$ical_feed) return false;
|
151 |
|
152 |
// Feed is not enabled
|
app/features/fes.php
CHANGED
@@ -87,7 +87,7 @@ class MEC_feature_fes extends MEC_base
|
|
87 |
// Force to array
|
88 |
if(!is_array($atts)) $atts = array();
|
89 |
|
90 |
-
if(isset($_GET['vlist']) and $_GET['vlist'] == 1)
|
91 |
{
|
92 |
return $this->vlist($atts);
|
93 |
}
|
87 |
// Force to array
|
88 |
if(!is_array($atts)) $atts = array();
|
89 |
|
90 |
+
if(isset($_GET['vlist']) and sanitize_text_field($_GET['vlist']) == 1)
|
91 |
{
|
92 |
return $this->vlist($atts);
|
93 |
}
|
app/features/fes/form.php
CHANGED
@@ -177,10 +177,10 @@ $this->factory->params('footer', $javascript);
|
|
177 |
<?php if(is_user_logged_in()): ?>
|
178 |
<div class="mec-fes-form-top-actions">
|
179 |
<?php do_action('mec_fes_form_top_actions'); ?>
|
180 |
-
<a class="mec-fes-form-back-to" href="<?php echo $this->link_list_events(); ?>"><?php echo __('Go back to events list', 'modern-events-calendar-lite'); ?></a>
|
181 |
<?php $status = $this->main->get_event_label_status(get_post_status($post_id)); ?>
|
182 |
<?php if(trim($status['label']) != "Empty"): ?>
|
183 |
-
<span class="post-status <?php echo $status['status_class'];
|
184 |
<?php endif; ?>
|
185 |
</div>
|
186 |
<?php endif; ?>
|
@@ -258,15 +258,15 @@ $this->factory->params('footer', $javascript);
|
|
258 |
?>
|
259 |
|
260 |
<div class="mec-fes-form-cntt">
|
261 |
-
<div class="mec-form-row">
|
262 |
<label for="mec_fes_title"><?php _e('Title', 'modern-events-calendar-lite'); ?> <span class="mec-required">*</span></label>
|
263 |
<input type="text" name="mec[title]" id="mec_fes_title" value="<?php echo (isset($post->post_title) ? $post->post_title : ''); ?>" required="required" />
|
264 |
</div>
|
265 |
-
<div class="mec-form-row">
|
266 |
<?php wp_editor((isset($post->post_content) ? $post->post_content : ''), 'mec_fes_content', array('textarea_name'=>'mec[content]')); ?>
|
267 |
</div>
|
268 |
<?php if(isset($this->settings['fes_section_excerpt']) && $this->settings['fes_section_excerpt']): ?>
|
269 |
-
<div class="mec-meta-box-fields" id="mec-excerpt">
|
270 |
<h4><?php _e('Excerpt', 'modern-events-calendar-lite'); ?> <?php echo ((isset($this->settings['fes_required_excerpt']) and $this->settings['fes_required_excerpt']) ? '<span class="mec-required">*</span>' : ''); ?></h4>
|
271 |
<div class="mec-form-row">
|
272 |
<div class="mec-col-12">
|
@@ -280,7 +280,7 @@ $this->factory->params('footer', $javascript);
|
|
280 |
<p class="info-msg"><?php esc_html_e("This event is imported from Google calendar so if you modify it would overwrite in the next import from Google.", 'modern-events-calendar-lite'); ?></p>
|
281 |
<?php endif; ?>
|
282 |
|
283 |
-
<div class="mec-meta-box-fields" id="mec-date-time">
|
284 |
<h4><?php _e('Date and Time', 'modern-events-calendar-lite'); ?></h4>
|
285 |
<div id="mec_meta_box_date_form">
|
286 |
<div class="mec-title">
|
@@ -788,7 +788,7 @@ $this->factory->params('footer', $javascript);
|
|
788 |
<?php do_action('mec_fes_metabox_details', $post); ?>
|
789 |
|
790 |
<?php /* Note feature is enabled */ if($this->main->is_note_visible(get_post_status($post_id))): $note = get_post_meta($post_id, 'mec_note', true); ?>
|
791 |
-
<div class="mec-meta-box-fields" id="mec-event-note">
|
792 |
<h4><?php _e('Note to reviewer', 'modern-events-calendar-lite'); ?></h4>
|
793 |
<div id="mec_meta_box_event_note">
|
794 |
<textarea name="mec[note]"><?php echo $note; ?></textarea>
|
@@ -806,7 +806,7 @@ $this->factory->params('footer', $javascript);
|
|
806 |
$guest_email = get_post_meta($post_id, 'fes_guest_email', true);
|
807 |
$guest_name = get_post_meta($post_id, 'fes_guest_name', true);
|
808 |
?>
|
809 |
-
<div class="mec-meta-box-fields" id="mec-guest-email-link">
|
810 |
<h4><?php _e('User Data', 'modern-events-calendar-lite'); ?></h4>
|
811 |
<div class="mec-form-row">
|
812 |
<label class="mec-col-2" for="mec_guest_email"><?php _e('Email', 'modern-events-calendar-lite'); ?><span>*</span></label>
|
@@ -827,7 +827,7 @@ $this->factory->params('footer', $javascript);
|
|
827 |
$more_info_title = get_post_meta($post_id, 'mec_more_info_title', true);
|
828 |
$more_info_target = get_post_meta($post_id, 'mec_more_info_target', true);
|
829 |
?>
|
830 |
-
<div class="mec-meta-box-fields" id="mec-event-links">
|
831 |
<h4><?php _e('Event Links', 'modern-events-calendar-lite'); ?></h4>
|
832 |
<div class="mec-form-row">
|
833 |
<label class="mec-col-2" for="mec_read_more_link"><?php echo $this->main->m('read_more_link', __('Event Link', 'modern-events-calendar-lite')); ?> <?php echo ((isset($this->settings['fes_required_event_link']) and $this->settings['fes_required_event_link']) ? '<span class="mec-required">*</span>' : ''); ?></label>
|
@@ -863,7 +863,7 @@ $this->factory->params('footer', $javascript);
|
|
863 |
$currencies = $this->main->get_currencies();
|
864 |
$current_currency = (isset($currency['currency']) ? $currency['currency'] : (isset($this->settings['currency']) ? $this->settings['currency'] : NULL));
|
865 |
?>
|
866 |
-
<div class="mec-meta-box-fields" id="mec-event-cost">
|
867 |
<h4><?php echo $this->main->m('event_cost', __('Event Cost', 'modern-events-calendar-lite')); ?> <?php echo ((isset($this->settings['fes_required_cost']) and $this->settings['fes_required_cost']) ? '<span class="mec-required">*</span>' : ''); ?></h4>
|
868 |
<div id="mec_meta_box_cost_form" class="<?php echo ($cost_auto_calculate ? 'mec-util-hidden' : ''); ?>">
|
869 |
<div class="mec-form-row">
|
@@ -949,7 +949,7 @@ $this->factory->params('footer', $javascript);
|
|
949 |
$featured_image = wp_get_attachment_image_src($attachment_id, 'large');
|
950 |
if(isset($featured_image[0])) $featured_image = $featured_image[0];
|
951 |
?>
|
952 |
-
<div class="mec-meta-box-fields" id="mec-featured-image">
|
953 |
<h4><?php _e('Featured Image', 'modern-events-calendar-lite'); ?></h4>
|
954 |
<div class="mec-form-row">
|
955 |
<span id="mec_fes_thumbnail_img"><?php echo (trim($featured_image) ? '<img src="'.$featured_image.'" />' : ''); ?></span>
|
@@ -970,7 +970,7 @@ $this->factory->params('footer', $javascript);
|
|
970 |
|
971 |
<!-- Event Category Section -->
|
972 |
<?php if(!isset($this->settings['fes_section_categories']) or (isset($this->settings['fes_section_categories']) and $this->settings['fes_section_categories'])): ?>
|
973 |
-
<div class="mec-meta-box-fields" id="mec-categories">
|
974 |
<h4><?php echo $this->main->m('taxonomy_categories', __('Categories', 'modern-events-calendar-lite')); ?> <?php echo ((isset($this->settings['fes_required_category']) and $this->settings['fes_required_category']) ? '<span class="mec-required">*</span>' : ''); ?></h4>
|
975 |
<div class="mec-form-row">
|
976 |
<?php
|
@@ -996,7 +996,7 @@ $this->factory->params('footer', $javascript);
|
|
996 |
$label_terms = get_terms(array('taxonomy'=>'mec_label', 'hide_empty'=>false));
|
997 |
?>
|
998 |
<?php if(count($label_terms)): ?>
|
999 |
-
<div class="mec-meta-box-fields" id="mec-labels">
|
1000 |
<h4><?php echo $this->main->m('taxonomy_labels', __('Labels', 'modern-events-calendar-lite')); ?> <?php echo ((isset($this->settings['fes_required_label']) and $this->settings['fes_required_label']) ? '<span class="mec-required">*</span>' : ''); ?></h4>
|
1001 |
<div class="mec-form-row">
|
1002 |
<?php foreach($label_terms as $label_term): ?>
|
@@ -1020,7 +1020,7 @@ $this->factory->params('footer', $javascript);
|
|
1020 |
if(!trim($color)) $color = $available_colors[0];
|
1021 |
?>
|
1022 |
<?php if(count($available_colors)): ?>
|
1023 |
-
<div class="mec-meta-box-fields" id="mec-event-color">
|
1024 |
<h4><?php _e('Event Color', 'modern-events-calendar-lite'); ?></h4>
|
1025 |
<div class="mec-form-row">
|
1026 |
<div class="mec-form-row mec-available-color-row">
|
@@ -1042,7 +1042,7 @@ $this->factory->params('footer', $javascript);
|
|
1042 |
$tags = '';
|
1043 |
foreach($post_tags as $post_tag) $tags .= $post_tag->name.',';
|
1044 |
?>
|
1045 |
-
<div class="mec-meta-box-fields" id="mec-tags">
|
1046 |
<h4><?php _e('Tags', 'modern-events-calendar-lite'); ?></h4>
|
1047 |
<div class="mec-form-row">
|
1048 |
<textarea name="mec[tags]" id="mec_fes_tags" placeholder="<?php esc_attr_e('Insert your desired tags, comma separated.', 'modern-events-calendar-lite'); ?>"><?php echo (trim($tags) ? trim($tags, ', ') : ''); ?></textarea>
|
@@ -1064,7 +1064,7 @@ $this->factory->params('footer', $javascript);
|
|
1064 |
|
1065 |
$speaker_terms = get_terms(array('taxonomy'=>'mec_speaker', 'hide_empty'=>false));
|
1066 |
?>
|
1067 |
-
<div class="mec-meta-box-fields" id="mec-speakers">
|
1068 |
<h4><?php echo $this->main->m('taxonomy_speakers', __('Speakers', 'modern-events-calendar-lite')); ?></h4>
|
1069 |
<div class="mec-form-row">
|
1070 |
<input type="text" name="mec[speakers][datas][names]" id="mec_speaker_input_names" placeholder="<?php _e('Speakers Names', 'modern-events-calendar-lite'); ?>" class="" />
|
@@ -1085,15 +1085,14 @@ $this->factory->params('footer', $javascript);
|
|
1085 |
<?php endif; ?>
|
1086 |
|
1087 |
<!-- Virtual Section -->
|
1088 |
-
<?php
|
1089 |
-
|
1090 |
-
|
1091 |
-
|
1092 |
-
}
|
1093 |
|
1094 |
do_action('mec_virtual_event_form', $post);
|
1095 |
-
|
1096 |
-
|
1097 |
|
1098 |
<!-- Zoom Event Section -->
|
1099 |
<?php
|
177 |
<?php if(is_user_logged_in()): ?>
|
178 |
<div class="mec-fes-form-top-actions">
|
179 |
<?php do_action('mec_fes_form_top_actions'); ?>
|
180 |
+
<a class="mec-fes-form-back-to" href="<?php echo esc_url($this->link_list_events()); ?>"><?php echo __('Go back to events list', 'modern-events-calendar-lite'); ?></a>
|
181 |
<?php $status = $this->main->get_event_label_status(get_post_status($post_id)); ?>
|
182 |
<?php if(trim($status['label']) != "Empty"): ?>
|
183 |
+
<span class="post-status <?php echo sanitize_html_class($status['status_class']); ?>"><?php echo $status['label']; ?></span>
|
184 |
<?php endif; ?>
|
185 |
</div>
|
186 |
<?php endif; ?>
|
258 |
?>
|
259 |
|
260 |
<div class="mec-fes-form-cntt">
|
261 |
+
<div class="mec-form-row mec-fes-title">
|
262 |
<label for="mec_fes_title"><?php _e('Title', 'modern-events-calendar-lite'); ?> <span class="mec-required">*</span></label>
|
263 |
<input type="text" name="mec[title]" id="mec_fes_title" value="<?php echo (isset($post->post_title) ? $post->post_title : ''); ?>" required="required" />
|
264 |
</div>
|
265 |
+
<div class="mec-form-row mec-fes-editor">
|
266 |
<?php wp_editor((isset($post->post_content) ? $post->post_content : ''), 'mec_fes_content', array('textarea_name'=>'mec[content]')); ?>
|
267 |
</div>
|
268 |
<?php if(isset($this->settings['fes_section_excerpt']) && $this->settings['fes_section_excerpt']): ?>
|
269 |
+
<div class="mec-meta-box-fields mec-fes-excerpt" id="mec-excerpt">
|
270 |
<h4><?php _e('Excerpt', 'modern-events-calendar-lite'); ?> <?php echo ((isset($this->settings['fes_required_excerpt']) and $this->settings['fes_required_excerpt']) ? '<span class="mec-required">*</span>' : ''); ?></h4>
|
271 |
<div class="mec-form-row">
|
272 |
<div class="mec-col-12">
|
280 |
<p class="info-msg"><?php esc_html_e("This event is imported from Google calendar so if you modify it would overwrite in the next import from Google.", 'modern-events-calendar-lite'); ?></p>
|
281 |
<?php endif; ?>
|
282 |
|
283 |
+
<div class="mec-meta-box-fields mec-fes-datetime" id="mec-date-time">
|
284 |
<h4><?php _e('Date and Time', 'modern-events-calendar-lite'); ?></h4>
|
285 |
<div id="mec_meta_box_date_form">
|
286 |
<div class="mec-title">
|
788 |
<?php do_action('mec_fes_metabox_details', $post); ?>
|
789 |
|
790 |
<?php /* Note feature is enabled */ if($this->main->is_note_visible(get_post_status($post_id))): $note = get_post_meta($post_id, 'mec_note', true); ?>
|
791 |
+
<div class="mec-meta-box-fields mec-fes-note" id="mec-event-note">
|
792 |
<h4><?php _e('Note to reviewer', 'modern-events-calendar-lite'); ?></h4>
|
793 |
<div id="mec_meta_box_event_note">
|
794 |
<textarea name="mec[note]"><?php echo $note; ?></textarea>
|
806 |
$guest_email = get_post_meta($post_id, 'fes_guest_email', true);
|
807 |
$guest_name = get_post_meta($post_id, 'fes_guest_name', true);
|
808 |
?>
|
809 |
+
<div class="mec-meta-box-fields mec-fes-user-data" id="mec-guest-email-link">
|
810 |
<h4><?php _e('User Data', 'modern-events-calendar-lite'); ?></h4>
|
811 |
<div class="mec-form-row">
|
812 |
<label class="mec-col-2" for="mec_guest_email"><?php _e('Email', 'modern-events-calendar-lite'); ?><span>*</span></label>
|
827 |
$more_info_title = get_post_meta($post_id, 'mec_more_info_title', true);
|
828 |
$more_info_target = get_post_meta($post_id, 'mec_more_info_target', true);
|
829 |
?>
|
830 |
+
<div class="mec-meta-box-fields mec-fes-event-links" id="mec-event-links">
|
831 |
<h4><?php _e('Event Links', 'modern-events-calendar-lite'); ?></h4>
|
832 |
<div class="mec-form-row">
|
833 |
<label class="mec-col-2" for="mec_read_more_link"><?php echo $this->main->m('read_more_link', __('Event Link', 'modern-events-calendar-lite')); ?> <?php echo ((isset($this->settings['fes_required_event_link']) and $this->settings['fes_required_event_link']) ? '<span class="mec-required">*</span>' : ''); ?></label>
|
863 |
$currencies = $this->main->get_currencies();
|
864 |
$current_currency = (isset($currency['currency']) ? $currency['currency'] : (isset($this->settings['currency']) ? $this->settings['currency'] : NULL));
|
865 |
?>
|
866 |
+
<div class="mec-meta-box-fields mec-fes-cost" id="mec-event-cost">
|
867 |
<h4><?php echo $this->main->m('event_cost', __('Event Cost', 'modern-events-calendar-lite')); ?> <?php echo ((isset($this->settings['fes_required_cost']) and $this->settings['fes_required_cost']) ? '<span class="mec-required">*</span>' : ''); ?></h4>
|
868 |
<div id="mec_meta_box_cost_form" class="<?php echo ($cost_auto_calculate ? 'mec-util-hidden' : ''); ?>">
|
869 |
<div class="mec-form-row">
|
949 |
$featured_image = wp_get_attachment_image_src($attachment_id, 'large');
|
950 |
if(isset($featured_image[0])) $featured_image = $featured_image[0];
|
951 |
?>
|
952 |
+
<div class="mec-meta-box-fields mec-fes-featured-image" id="mec-featured-image">
|
953 |
<h4><?php _e('Featured Image', 'modern-events-calendar-lite'); ?></h4>
|
954 |
<div class="mec-form-row">
|
955 |
<span id="mec_fes_thumbnail_img"><?php echo (trim($featured_image) ? '<img src="'.$featured_image.'" />' : ''); ?></span>
|
970 |
|
971 |
<!-- Event Category Section -->
|
972 |
<?php if(!isset($this->settings['fes_section_categories']) or (isset($this->settings['fes_section_categories']) and $this->settings['fes_section_categories'])): ?>
|
973 |
+
<div class="mec-meta-box-fields mec-fes-category" id="mec-categories">
|
974 |
<h4><?php echo $this->main->m('taxonomy_categories', __('Categories', 'modern-events-calendar-lite')); ?> <?php echo ((isset($this->settings['fes_required_category']) and $this->settings['fes_required_category']) ? '<span class="mec-required">*</span>' : ''); ?></h4>
|
975 |
<div class="mec-form-row">
|
976 |
<?php
|
996 |
$label_terms = get_terms(array('taxonomy'=>'mec_label', 'hide_empty'=>false));
|
997 |
?>
|
998 |
<?php if(count($label_terms)): ?>
|
999 |
+
<div class="mec-meta-box-fields mec-fes-labels" id="mec-labels">
|
1000 |
<h4><?php echo $this->main->m('taxonomy_labels', __('Labels', 'modern-events-calendar-lite')); ?> <?php echo ((isset($this->settings['fes_required_label']) and $this->settings['fes_required_label']) ? '<span class="mec-required">*</span>' : ''); ?></h4>
|
1001 |
<div class="mec-form-row">
|
1002 |
<?php foreach($label_terms as $label_term): ?>
|
1020 |
if(!trim($color)) $color = $available_colors[0];
|
1021 |
?>
|
1022 |
<?php if(count($available_colors)): ?>
|
1023 |
+
<div class="mec-meta-box-fields mec-fes-color" id="mec-event-color">
|
1024 |
<h4><?php _e('Event Color', 'modern-events-calendar-lite'); ?></h4>
|
1025 |
<div class="mec-form-row">
|
1026 |
<div class="mec-form-row mec-available-color-row">
|
1042 |
$tags = '';
|
1043 |
foreach($post_tags as $post_tag) $tags .= $post_tag->name.',';
|
1044 |
?>
|
1045 |
+
<div class="mec-meta-box-fields mec-fes-tags" id="mec-tags">
|
1046 |
<h4><?php _e('Tags', 'modern-events-calendar-lite'); ?></h4>
|
1047 |
<div class="mec-form-row">
|
1048 |
<textarea name="mec[tags]" id="mec_fes_tags" placeholder="<?php esc_attr_e('Insert your desired tags, comma separated.', 'modern-events-calendar-lite'); ?>"><?php echo (trim($tags) ? trim($tags, ', ') : ''); ?></textarea>
|
1064 |
|
1065 |
$speaker_terms = get_terms(array('taxonomy'=>'mec_speaker', 'hide_empty'=>false));
|
1066 |
?>
|
1067 |
+
<div class="mec-meta-box-fields mec-fes-speakers" id="mec-speakers">
|
1068 |
<h4><?php echo $this->main->m('taxonomy_speakers', __('Speakers', 'modern-events-calendar-lite')); ?></h4>
|
1069 |
<div class="mec-form-row">
|
1070 |
<input type="text" name="mec[speakers][datas][names]" id="mec_speaker_input_names" placeholder="<?php _e('Speakers Names', 'modern-events-calendar-lite'); ?>" class="" />
|
1085 |
<?php endif; ?>
|
1086 |
|
1087 |
<!-- Virtual Section -->
|
1088 |
+
<?php
|
1089 |
+
if(isset($this->settings['fes_section_virtual_events']) && $this->settings['fes_section_virtual_events'])
|
1090 |
+
{
|
1091 |
+
if($post->ID != -1 && $post == "") $post = get_post_meta($post->ID, 'meta_box_virtual', true);
|
|
|
1092 |
|
1093 |
do_action('mec_virtual_event_form', $post);
|
1094 |
+
}
|
1095 |
+
?>
|
1096 |
|
1097 |
<!-- Zoom Event Section -->
|
1098 |
<?php
|
app/features/fes/list.php
CHANGED
@@ -69,7 +69,7 @@ $this->factory->params('footer', $javascript);
|
|
69 |
<div class="mec-fes-list">
|
70 |
<?php if($query->have_posts()): ?>
|
71 |
<div class="mec-fes-list-top-actions">
|
72 |
-
<a href="<?php echo $this->link_add_event(); ?>"><?php echo __('Add new', 'modern-events-calendar-lite'); ?></a>
|
73 |
</div>
|
74 |
<?php do_action('mec_fes_list'); ?>
|
75 |
<ul>
|
@@ -81,7 +81,7 @@ $this->factory->params('footer', $javascript);
|
|
81 |
?>
|
82 |
<li id="mec_fes_event_<?php echo get_the_ID(); ?>">
|
83 |
<span class="mec-event-title">
|
84 |
-
<a href="<?php echo $this->link_edit_event(get_the_ID()); ?>"><?php the_title(); ?></a>
|
85 |
<?php if($display_date): ?>
|
86 |
<span>(<?php echo $this->main->date_label(array(
|
87 |
'date' => get_post_meta(get_the_ID(), 'mec_start_date', true)
|
@@ -101,7 +101,7 @@ $this->factory->params('footer', $javascript);
|
|
101 |
<?php if(current_user_can('delete_post', get_the_ID())): ?>
|
102 |
<span class="mec-fes-event-remove" data-confirmed="0" data-id="<?php echo get_the_ID(); ?>"><div class="wn-p-t-right"><div class="wn-p-t-text-content"><?php echo esc_html__('Remove Event', 'modern-events-calendar-lite'); ?></div><i></i></div></span>
|
103 |
<?php endif; ?>
|
104 |
-
<span class="mec-fes-event-view mec-event-status <?php echo $status['status_class']; ?>"><?php echo $status['label']; ?></span>
|
105 |
<div class="mec-fes-export-wrapper mec-modal-wrap lity-hide" id="mec-fes-export-wrapper-<?php echo get_the_ID(); ?>" data-event-id="<?php echo get_the_ID(); ?>">
|
106 |
<div class="mec-fes-btn-date">
|
107 |
<?php $mec_repeat_info = get_post_meta(get_the_ID(), 'mec_repeat', true); if(isset($mec_repeat_info['status']) and $mec_repeat_info['status']): ?>
|
69 |
<div class="mec-fes-list">
|
70 |
<?php if($query->have_posts()): ?>
|
71 |
<div class="mec-fes-list-top-actions">
|
72 |
+
<a href="<?php echo esc_url($this->link_add_event()); ?>"><?php echo __('Add new', 'modern-events-calendar-lite'); ?></a>
|
73 |
</div>
|
74 |
<?php do_action('mec_fes_list'); ?>
|
75 |
<ul>
|
81 |
?>
|
82 |
<li id="mec_fes_event_<?php echo get_the_ID(); ?>">
|
83 |
<span class="mec-event-title">
|
84 |
+
<a href="<?php echo esc_url($this->link_edit_event(get_the_ID())); ?>"><?php the_title(); ?></a>
|
85 |
<?php if($display_date): ?>
|
86 |
<span>(<?php echo $this->main->date_label(array(
|
87 |
'date' => get_post_meta(get_the_ID(), 'mec_start_date', true)
|
101 |
<?php if(current_user_can('delete_post', get_the_ID())): ?>
|
102 |
<span class="mec-fes-event-remove" data-confirmed="0" data-id="<?php echo get_the_ID(); ?>"><div class="wn-p-t-right"><div class="wn-p-t-text-content"><?php echo esc_html__('Remove Event', 'modern-events-calendar-lite'); ?></div><i></i></div></span>
|
103 |
<?php endif; ?>
|
104 |
+
<span class="mec-fes-event-view mec-event-status <?php echo sanitize_html_class($status['status_class']); ?>"><?php echo $status['label']; ?></span>
|
105 |
<div class="mec-fes-export-wrapper mec-modal-wrap lity-hide" id="mec-fes-export-wrapper-<?php echo get_the_ID(); ?>" data-event-id="<?php echo get_the_ID(); ?>">
|
106 |
<div class="mec-fes-btn-date">
|
107 |
<?php $mec_repeat_info = get_post_meta(get_the_ID(), 'mec_repeat', true); if(isset($mec_repeat_info['status']) and $mec_repeat_info['status']): ?>
|
app/features/ix.php
CHANGED
@@ -1368,7 +1368,7 @@ class MEC_feature_ix extends MEC_base
|
|
1368 |
|
1369 |
public function thirdparty_eventon_import_do()
|
1370 |
{
|
1371 |
-
$IDs = isset($_POST['tp-events']) ? $_POST['tp-events'] : array();
|
1372 |
$count = 0;
|
1373 |
|
1374 |
foreach($IDs as $ID)
|
@@ -1699,7 +1699,7 @@ class MEC_feature_ix extends MEC_base
|
|
1699 |
|
1700 |
public function thirdparty_tec_import_do()
|
1701 |
{
|
1702 |
-
$IDs = isset($_POST['tp-events']) ? $_POST['tp-events'] : array();
|
1703 |
|
1704 |
$count = 0;
|
1705 |
foreach($IDs as $ID)
|
@@ -1889,7 +1889,7 @@ class MEC_feature_ix extends MEC_base
|
|
1889 |
|
1890 |
public function thirdparty_weekly_class_import_do()
|
1891 |
{
|
1892 |
-
$IDs = isset($_POST['tp-events']) ? $_POST['tp-events'] : array();
|
1893 |
$count = 0;
|
1894 |
|
1895 |
foreach($IDs as $ID)
|
@@ -2166,7 +2166,7 @@ class MEC_feature_ix extends MEC_base
|
|
2166 |
|
2167 |
public function thirdparty_calendarize_it_import_do()
|
2168 |
{
|
2169 |
-
$IDs = isset($_POST['tp-events']) ? $_POST['tp-events'] : array();
|
2170 |
$count = 0;
|
2171 |
|
2172 |
foreach($IDs as $ID)
|
@@ -2466,7 +2466,7 @@ class MEC_feature_ix extends MEC_base
|
|
2466 |
|
2467 |
public function thirdparty_es_import_do()
|
2468 |
{
|
2469 |
-
$IDs = isset($_POST['tp-events']) ? $_POST['tp-events'] : array();
|
2470 |
$count = 0;
|
2471 |
|
2472 |
// Timezone
|
@@ -2677,7 +2677,7 @@ class MEC_feature_ix extends MEC_base
|
|
2677 |
|
2678 |
public function thirdparty_emr_import_do()
|
2679 |
{
|
2680 |
-
$IDs = isset($_POST['tp-events']) ? $_POST['tp-events'] : array();
|
2681 |
$count = 0;
|
2682 |
|
2683 |
foreach($IDs as $ID)
|
@@ -2902,7 +2902,7 @@ class MEC_feature_ix extends MEC_base
|
|
2902 |
|
2903 |
public function thirdparty_ems_import_do()
|
2904 |
{
|
2905 |
-
$IDs = isset($_POST['tp-events']) ? $_POST['tp-events'] : array();
|
2906 |
$count = 0;
|
2907 |
|
2908 |
foreach($IDs as $ID)
|
@@ -3070,7 +3070,7 @@ class MEC_feature_ix extends MEC_base
|
|
3070 |
|
3071 |
public function thirdparty_wpem_import_do()
|
3072 |
{
|
3073 |
-
$IDs = isset($_POST['tp-events']) ? $_POST['tp-events'] : array();
|
3074 |
|
3075 |
$count = 0;
|
3076 |
foreach($IDs as $ID)
|
1368 |
|
1369 |
public function thirdparty_eventon_import_do()
|
1370 |
{
|
1371 |
+
$IDs = ((isset($_POST['tp-events']) and is_array($_POST['tp-events'])) ? array_map('sanitize_text_field', $_POST['tp-events']) : array());
|
1372 |
$count = 0;
|
1373 |
|
1374 |
foreach($IDs as $ID)
|
1699 |
|
1700 |
public function thirdparty_tec_import_do()
|
1701 |
{
|
1702 |
+
$IDs = ((isset($_POST['tp-events']) and is_array($_POST['tp-events'])) ? array_map('sanitize_text_field', $_POST['tp-events']) : array());
|
1703 |
|
1704 |
$count = 0;
|
1705 |
foreach($IDs as $ID)
|
1889 |
|
1890 |
public function thirdparty_weekly_class_import_do()
|
1891 |
{
|
1892 |
+
$IDs = ((isset($_POST['tp-events']) and is_array($_POST['tp-events'])) ? array_map('sanitize_text_field', $_POST['tp-events']) : array());
|
1893 |
$count = 0;
|
1894 |
|
1895 |
foreach($IDs as $ID)
|
2166 |
|
2167 |
public function thirdparty_calendarize_it_import_do()
|
2168 |
{
|
2169 |
+
$IDs = ((isset($_POST['tp-events']) and is_array($_POST['tp-events'])) ? array_map('sanitize_text_field', $_POST['tp-events']) : array());
|
2170 |
$count = 0;
|
2171 |
|
2172 |
foreach($IDs as $ID)
|
2466 |
|
2467 |
public function thirdparty_es_import_do()
|
2468 |
{
|
2469 |
+
$IDs = ((isset($_POST['tp-events']) and is_array($_POST['tp-events'])) ? array_map('sanitize_text_field', $_POST['tp-events']) : array());
|
2470 |
$count = 0;
|
2471 |
|
2472 |
// Timezone
|
2677 |
|
2678 |
public function thirdparty_emr_import_do()
|
2679 |
{
|
2680 |
+
$IDs = ((isset($_POST['tp-events']) and is_array($_POST['tp-events'])) ? array_map('sanitize_text_field', $_POST['tp-events']) : array());
|
2681 |
$count = 0;
|
2682 |
|
2683 |
foreach($IDs as $ID)
|
2902 |
|
2903 |
public function thirdparty_ems_import_do()
|
2904 |
{
|
2905 |
+
$IDs = ((isset($_POST['tp-events']) and is_array($_POST['tp-events'])) ? array_map('sanitize_text_field', $_POST['tp-events']) : array());
|
2906 |
$count = 0;
|
2907 |
|
2908 |
foreach($IDs as $ID)
|
3070 |
|
3071 |
public function thirdparty_wpem_import_do()
|
3072 |
{
|
3073 |
+
$IDs = ((isset($_POST['tp-events']) and is_array($_POST['tp-events'])) ? array_map('sanitize_text_field', $_POST['tp-events']) : array());
|
3074 |
|
3075 |
$count = 0;
|
3076 |
foreach($IDs as $ID)
|
app/features/ix/export.php
CHANGED
@@ -10,14 +10,14 @@ $settings = $this->main->get_settings();
|
|
10 |
<div class="wrap" id="mec-wrap">
|
11 |
<h1><?php _e('MEC Import / Export', 'modern-events-calendar-lite'); ?></h1>
|
12 |
<h2 class="nav-tab-wrapper">
|
13 |
-
<a href="<?php echo $this->main->remove_qs_var('tab'); ?>" class="nav-tab"><?php echo __('Google Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
14 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-g-calendar-export'); ?>" class="nav-tab"><?php echo __('Google Cal. Export', 'modern-events-calendar-lite'); ?></a>
|
15 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-f-calendar-import'); ?>" class="nav-tab"><?php echo __('Facebook Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
16 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-meetup-import'); ?>" class="nav-tab"><?php echo __('Meetup Import', 'modern-events-calendar-lite'); ?></a>
|
17 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-sync'); ?>" class="nav-tab"><?php echo __('Synchronization', 'modern-events-calendar-lite'); ?></a>
|
18 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-export'); ?>" class="nav-tab nav-tab-active"><?php echo __('Export', 'modern-events-calendar-lite'); ?></a>
|
19 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-import'); ?>" class="nav-tab"><?php echo __('Import', 'modern-events-calendar-lite'); ?></a>
|
20 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-thirdparty'); ?>" class="nav-tab"><?php echo __('Third Party Plugins', 'modern-events-calendar-lite'); ?></a>
|
21 |
</h2>
|
22 |
<div class="mec-container">
|
23 |
<div class="export-content w-clearfix extra">
|
@@ -25,11 +25,11 @@ $settings = $this->main->get_settings();
|
|
25 |
<h3><?php _e('Export all events to file', 'modern-events-calendar-lite'); ?></h3>
|
26 |
<p class="description"><?php _e("This will export all of your website events' data into your desired format.", 'modern-events-calendar-lite'); ?></p>
|
27 |
<ul>
|
28 |
-
<li><a href="<?php echo $this->main->add_qs_vars(array('mec-ix-action'=>'export-events', 'format'=>'ical')); ?>"><?php _e('iCal', 'modern-events-calendar-lite'); ?></a></li>
|
29 |
-
<li><a href="<?php echo $this->main->add_qs_vars(array('mec-ix-action'=>'export-events', 'format'=>'csv')); ?>"><?php _e('CSV', 'modern-events-calendar-lite'); ?></a></li>
|
30 |
-
<li><a href="<?php echo $this->main->add_qs_vars(array('mec-ix-action'=>'export-events', 'format'=>'ms-excel')); ?>"><?php _e('MS Excel', 'modern-events-calendar-lite'); ?></a></li>
|
31 |
-
<li><a href="<?php echo $this->main->add_qs_vars(array('mec-ix-action'=>'export-events', 'format'=>'xml')); ?>"><?php _e('XML', 'modern-events-calendar-lite'); ?></a></li>
|
32 |
-
<li><a href="<?php echo $this->main->add_qs_vars(array('mec-ix-action'=>'export-events', 'format'=>'json')); ?>"><?php _e('JSON', 'modern-events-calendar-lite'); ?></a></li>
|
33 |
</ul>
|
34 |
</div>
|
35 |
<div class="mec-export-certain-events">
|
@@ -49,8 +49,8 @@ $settings = $this->main->get_settings();
|
|
49 |
<h3><?php _e('Export all bookings to file', 'modern-events-calendar-lite'); ?></h3>
|
50 |
<p class="description"><?php _e("This will export all of your website bookings' data into your desired format.", 'modern-events-calendar-lite'); ?></p>
|
51 |
<ul>
|
52 |
-
<li><a href="<?php echo $this->main->add_qs_vars(array('mec-ix-action'=>'export-bookings', 'format'=>'csv')); ?>"><?php _e('CSV', 'modern-events-calendar-lite'); ?></a></li>
|
53 |
-
<li><a href="<?php echo $this->main->add_qs_vars(array('mec-ix-action'=>'export-bookings', 'format'=>'ms-excel')); ?>"><?php _e('MS Excel', 'modern-events-calendar-lite'); ?></a></li>
|
54 |
</ul>
|
55 |
</div>
|
56 |
<div class="mec-export-certain-bookings">
|
10 |
<div class="wrap" id="mec-wrap">
|
11 |
<h1><?php _e('MEC Import / Export', 'modern-events-calendar-lite'); ?></h1>
|
12 |
<h2 class="nav-tab-wrapper">
|
13 |
+
<a href="<?php echo esc_url($this->main->remove_qs_var('tab')); ?>" class="nav-tab"><?php echo __('Google Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
14 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-g-calendar-export')); ?>" class="nav-tab"><?php echo __('Google Cal. Export', 'modern-events-calendar-lite'); ?></a>
|
15 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-f-calendar-import')); ?>" class="nav-tab"><?php echo __('Facebook Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
16 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-meetup-import')); ?>" class="nav-tab"><?php echo __('Meetup Import', 'modern-events-calendar-lite'); ?></a>
|
17 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-sync')); ?>" class="nav-tab"><?php echo __('Synchronization', 'modern-events-calendar-lite'); ?></a>
|
18 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-export')); ?>" class="nav-tab nav-tab-active"><?php echo __('Export', 'modern-events-calendar-lite'); ?></a>
|
19 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-import')); ?>" class="nav-tab"><?php echo __('Import', 'modern-events-calendar-lite'); ?></a>
|
20 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-thirdparty')); ?>" class="nav-tab"><?php echo __('Third Party Plugins', 'modern-events-calendar-lite'); ?></a>
|
21 |
</h2>
|
22 |
<div class="mec-container">
|
23 |
<div class="export-content w-clearfix extra">
|
25 |
<h3><?php _e('Export all events to file', 'modern-events-calendar-lite'); ?></h3>
|
26 |
<p class="description"><?php _e("This will export all of your website events' data into your desired format.", 'modern-events-calendar-lite'); ?></p>
|
27 |
<ul>
|
28 |
+
<li><a href="<?php echo esc_url($this->main->add_qs_vars(array('mec-ix-action'=>'export-events', 'format'=>'ical'))); ?>"><?php _e('iCal', 'modern-events-calendar-lite'); ?></a></li>
|
29 |
+
<li><a href="<?php echo esc_url($this->main->add_qs_vars(array('mec-ix-action'=>'export-events', 'format'=>'csv'))); ?>"><?php _e('CSV', 'modern-events-calendar-lite'); ?></a></li>
|
30 |
+
<li><a href="<?php echo esc_url($this->main->add_qs_vars(array('mec-ix-action'=>'export-events', 'format'=>'ms-excel'))); ?>"><?php _e('MS Excel', 'modern-events-calendar-lite'); ?></a></li>
|
31 |
+
<li><a href="<?php echo esc_url($this->main->add_qs_vars(array('mec-ix-action'=>'export-events', 'format'=>'xml'))); ?>"><?php _e('XML', 'modern-events-calendar-lite'); ?></a></li>
|
32 |
+
<li><a href="<?php echo esc_url($this->main->add_qs_vars(array('mec-ix-action'=>'export-events', 'format'=>'json'))); ?>"><?php _e('JSON', 'modern-events-calendar-lite'); ?></a></li>
|
33 |
</ul>
|
34 |
</div>
|
35 |
<div class="mec-export-certain-events">
|
49 |
<h3><?php _e('Export all bookings to file', 'modern-events-calendar-lite'); ?></h3>
|
50 |
<p class="description"><?php _e("This will export all of your website bookings' data into your desired format.", 'modern-events-calendar-lite'); ?></p>
|
51 |
<ul>
|
52 |
+
<li><a href="<?php echo esc_url($this->main->add_qs_vars(array('mec-ix-action'=>'export-bookings', 'format'=>'csv'))); ?>"><?php _e('CSV', 'modern-events-calendar-lite'); ?></a></li>
|
53 |
+
<li><a href="<?php echo esc_url($this->main->add_qs_vars(array('mec-ix-action'=>'export-bookings', 'format'=>'ms-excel'))); ?>"><?php _e('MS Excel', 'modern-events-calendar-lite'); ?></a></li>
|
54 |
</ul>
|
55 |
</div>
|
56 |
<div class="mec-export-certain-bookings">
|
app/features/ix/export_g_calendar.php
CHANGED
@@ -11,21 +11,21 @@ if(isset($ix_options['google_export_token']) && $ix_options['google_export_token
|
|
11 |
<div class="wrap" id="mec-wrap">
|
12 |
<h1><?php _e('MEC Import / Export', 'modern-events-calendar-lite'); ?></h1>
|
13 |
<h2 class="nav-tab-wrapper">
|
14 |
-
<a href="<?php echo $this->main->remove_qs_var('tab'); ?>" class="nav-tab"><?php echo __('Google Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
15 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-g-calendar-export'); ?>" class="nav-tab nav-tab-active"><?php echo __('Google Cal. Export', 'modern-events-calendar-lite'); ?></a>
|
16 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-f-calendar-import'); ?>" class="nav-tab"><?php echo __('Facebook Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
17 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-meetup-import'); ?>" class="nav-tab"><?php echo __('Meetup Import', 'modern-events-calendar-lite'); ?></a>
|
18 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-sync'); ?>" class="nav-tab"><?php echo __('Synchronization', 'modern-events-calendar-lite'); ?></a>
|
19 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-export'); ?>" class="nav-tab"><?php echo __('Export', 'modern-events-calendar-lite'); ?></a>
|
20 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-import'); ?>" class="nav-tab"><?php echo __('Import', 'modern-events-calendar-lite'); ?></a>
|
21 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-thirdparty'); ?>" class="nav-tab"><?php echo __('Third Party Plugins', 'modern-events-calendar-lite'); ?></a>
|
22 |
</h2>
|
23 |
<div class="mec-container">
|
24 |
<div class="export-content w-clearfix extra">
|
25 |
<div class="mec-export-events-g-calendar">
|
26 |
<h3><?php _e('Add events to Google Calendar', 'modern-events-calendar-lite'); ?></h3>
|
27 |
<p class="description"><?php _e("Add your desired website events to your Google Calendar.", 'modern-events-calendar-lite'); ?> <?php echo sprintf(__('You should set %s as redirect page in Google App Console.', 'modern-events-calendar-lite'), '<code>'.$this->main->add_qs_vars(array('mec-ix-action'=>'google-calendar-export-get-token'), $this->main->URL('backend').'admin.php?page=MEC-ix&tab=MEC-g-calendar-export').'</code>'); ?></p>
|
28 |
-
<form id="mec_g_calendar_export_form_authenticate" action="<?php echo $this->main->get_full_url(); ?>" method="POST">
|
29 |
<div class="mec-form-row">
|
30 |
<label class="mec-col-3" for="mec_ix_google_export_client_id"><?php _e('App Client ID', 'modern-events-calendar-lite'); ?></label>
|
31 |
<div class="mec-col-4">
|
@@ -62,7 +62,7 @@ if(isset($ix_options['google_export_token']) && $ix_options['google_export_token
|
|
62 |
<?php foreach($events as $event): ?>
|
63 |
<li>
|
64 |
<label>
|
65 |
-
<input type="checkbox" name="mec-events[]" value="<?php echo $event->ID; ?>" checked="checked" />
|
66 |
<strong><?php echo $event->post_title; ?></strong>
|
67 |
</label>
|
68 |
</li>
|
11 |
<div class="wrap" id="mec-wrap">
|
12 |
<h1><?php _e('MEC Import / Export', 'modern-events-calendar-lite'); ?></h1>
|
13 |
<h2 class="nav-tab-wrapper">
|
14 |
+
<a href="<?php echo esc_url($this->main->remove_qs_var('tab')); ?>" class="nav-tab"><?php echo __('Google Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
15 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-g-calendar-export')); ?>" class="nav-tab nav-tab-active"><?php echo __('Google Cal. Export', 'modern-events-calendar-lite'); ?></a>
|
16 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-f-calendar-import')); ?>" class="nav-tab"><?php echo __('Facebook Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
17 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-meetup-import')); ?>" class="nav-tab"><?php echo __('Meetup Import', 'modern-events-calendar-lite'); ?></a>
|
18 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-sync')); ?>" class="nav-tab"><?php echo __('Synchronization', 'modern-events-calendar-lite'); ?></a>
|
19 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-export')); ?>" class="nav-tab"><?php echo __('Export', 'modern-events-calendar-lite'); ?></a>
|
20 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-import')); ?>" class="nav-tab"><?php echo __('Import', 'modern-events-calendar-lite'); ?></a>
|
21 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-thirdparty')); ?>" class="nav-tab"><?php echo __('Third Party Plugins', 'modern-events-calendar-lite'); ?></a>
|
22 |
</h2>
|
23 |
<div class="mec-container">
|
24 |
<div class="export-content w-clearfix extra">
|
25 |
<div class="mec-export-events-g-calendar">
|
26 |
<h3><?php _e('Add events to Google Calendar', 'modern-events-calendar-lite'); ?></h3>
|
27 |
<p class="description"><?php _e("Add your desired website events to your Google Calendar.", 'modern-events-calendar-lite'); ?> <?php echo sprintf(__('You should set %s as redirect page in Google App Console.', 'modern-events-calendar-lite'), '<code>'.$this->main->add_qs_vars(array('mec-ix-action'=>'google-calendar-export-get-token'), $this->main->URL('backend').'admin.php?page=MEC-ix&tab=MEC-g-calendar-export').'</code>'); ?></p>
|
28 |
+
<form id="mec_g_calendar_export_form_authenticate" action="<?php echo esc_url($this->main->get_full_url()); ?>" method="POST">
|
29 |
<div class="mec-form-row">
|
30 |
<label class="mec-col-3" for="mec_ix_google_export_client_id"><?php _e('App Client ID', 'modern-events-calendar-lite'); ?></label>
|
31 |
<div class="mec-col-4">
|
62 |
<?php foreach($events as $event): ?>
|
63 |
<li>
|
64 |
<label>
|
65 |
+
<input type="checkbox" name="mec-events[]" value="<?php echo esc_attr($event->ID); ?>" checked="checked" />
|
66 |
<strong><?php echo $event->post_title; ?></strong>
|
67 |
</label>
|
68 |
</li>
|
app/features/ix/import.php
CHANGED
@@ -7,19 +7,19 @@ $third_parties = $this->main->get_integrated_plugins_for_import();
|
|
7 |
<div class="wrap" id="mec-wrap">
|
8 |
<h1><?php _e('MEC Import / Export', 'modern-events-calendar-lite'); ?></h1>
|
9 |
<h2 class="nav-tab-wrapper">
|
10 |
-
<a href="<?php echo $this->main->remove_qs_var('tab'); ?>" class="nav-tab"><?php echo __('Google Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
11 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-g-calendar-export'); ?>" class="nav-tab"><?php echo __('Google Cal. Export', 'modern-events-calendar-lite'); ?></a>
|
12 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-f-calendar-import'); ?>" class="nav-tab"><?php echo __('Facebook Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
13 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-meetup-import'); ?>" class="nav-tab"><?php echo __('Meetup Import', 'modern-events-calendar-lite'); ?></a>
|
14 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-sync'); ?>" class="nav-tab"><?php echo __('Synchronization', 'modern-events-calendar-lite'); ?></a>
|
15 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-export'); ?>" class="nav-tab"><?php echo __('Export', 'modern-events-calendar-lite'); ?></a>
|
16 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-import'); ?>" class="nav-tab nav-tab-active"><?php echo __('Import', 'modern-events-calendar-lite'); ?></a>
|
17 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-thirdparty'); ?>" class="nav-tab"><?php echo __('Third Party Plugins', 'modern-events-calendar-lite'); ?></a>
|
18 |
</h2>
|
19 |
<div class="mec-container">
|
20 |
<div class="import-content w-clearfix extra">
|
21 |
<h3><?php _e('Import MEC XML Feed', 'modern-events-calendar-lite'); ?></h3>
|
22 |
-
<form id="mec_import_xml_form" action="<?php echo $this->main->get_full_url(); ?>" method="POST" enctype="multipart/form-data">
|
23 |
<div class="mec-form-row">
|
24 |
<p><?php echo sprintf(__("You can import %s events from another website to this website. You just need an XML feed of the events that can be exported from source website!", 'modern-events-calendar-lite'), '<strong>'.__('Modern Events Calendar', 'modern-events-calendar-lite').'</strong>'); ?></p>
|
25 |
</div>
|
@@ -43,7 +43,7 @@ $third_parties = $this->main->get_integrated_plugins_for_import();
|
|
43 |
|
44 |
<br><h3><?php _e('Import .ics File', 'modern-events-calendar-lite'); ?></h3>
|
45 |
<?php if($this->getPRO()): ?>
|
46 |
-
<form id="mec_import_ics_form" action="<?php echo $this->main->get_full_url(); ?>" method="POST" enctype="multipart/form-data">
|
47 |
<div class="mec-form-row">
|
48 |
<p><?php echo sprintf(__("ICS format supports by many different service providers like Facebook. Apple Calendar etc. You can import your ics file into the %s using this form.", 'modern-events-calendar-lite'), '<strong>'.__('Modern Events Calendar', 'modern-events-calendar-lite').'</strong>'); ?></p>
|
49 |
</div>
|
@@ -72,7 +72,7 @@ $third_parties = $this->main->get_integrated_plugins_for_import();
|
|
72 |
|
73 |
<br><h3><?php _e('Import Booking CSV File', 'modern-events-calendar-lite'); ?></h3>
|
74 |
<?php if($this->getPRO()): ?>
|
75 |
-
<form id="mec_import_csv_booking_form" action="<?php echo $this->main->get_full_url(); ?>" method="POST" enctype="multipart/form-data">
|
76 |
<div class="mec-form-row">
|
77 |
<p><?php echo sprintf(__("You can export bookings from %s using the booking menu in source website. You need a CSV export and then you're able to simply import it using this form in to your target website.", 'modern-events-calendar-lite'), '<strong>'.__('Modern Events Calendar', 'modern-events-calendar-lite').'</strong>'); ?></p>
|
78 |
<p style="color: red;"><?php echo __("Please note that you should create (or imports) events and tickets before importing the bookings otherwise booking won't import due to lack of data.", 'modern-events-calendar-lite'); ?></p>
|
7 |
<div class="wrap" id="mec-wrap">
|
8 |
<h1><?php _e('MEC Import / Export', 'modern-events-calendar-lite'); ?></h1>
|
9 |
<h2 class="nav-tab-wrapper">
|
10 |
+
<a href="<?php echo esc_url($this->main->remove_qs_var('tab')); ?>" class="nav-tab"><?php echo __('Google Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
11 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-g-calendar-export')); ?>" class="nav-tab"><?php echo __('Google Cal. Export', 'modern-events-calendar-lite'); ?></a>
|
12 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-f-calendar-import')); ?>" class="nav-tab"><?php echo __('Facebook Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
13 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-meetup-import')); ?>" class="nav-tab"><?php echo __('Meetup Import', 'modern-events-calendar-lite'); ?></a>
|
14 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-sync')); ?>" class="nav-tab"><?php echo __('Synchronization', 'modern-events-calendar-lite'); ?></a>
|
15 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-export')); ?>" class="nav-tab"><?php echo __('Export', 'modern-events-calendar-lite'); ?></a>
|
16 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-import')); ?>" class="nav-tab nav-tab-active"><?php echo __('Import', 'modern-events-calendar-lite'); ?></a>
|
17 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-thirdparty')); ?>" class="nav-tab"><?php echo __('Third Party Plugins', 'modern-events-calendar-lite'); ?></a>
|
18 |
</h2>
|
19 |
<div class="mec-container">
|
20 |
<div class="import-content w-clearfix extra">
|
21 |
<h3><?php _e('Import MEC XML Feed', 'modern-events-calendar-lite'); ?></h3>
|
22 |
+
<form id="mec_import_xml_form" action="<?php echo esc_url($this->main->get_full_url()); ?>" method="POST" enctype="multipart/form-data">
|
23 |
<div class="mec-form-row">
|
24 |
<p><?php echo sprintf(__("You can import %s events from another website to this website. You just need an XML feed of the events that can be exported from source website!", 'modern-events-calendar-lite'), '<strong>'.__('Modern Events Calendar', 'modern-events-calendar-lite').'</strong>'); ?></p>
|
25 |
</div>
|
43 |
|
44 |
<br><h3><?php _e('Import .ics File', 'modern-events-calendar-lite'); ?></h3>
|
45 |
<?php if($this->getPRO()): ?>
|
46 |
+
<form id="mec_import_ics_form" action="<?php echo esc_url($this->main->get_full_url()); ?>" method="POST" enctype="multipart/form-data">
|
47 |
<div class="mec-form-row">
|
48 |
<p><?php echo sprintf(__("ICS format supports by many different service providers like Facebook. Apple Calendar etc. You can import your ics file into the %s using this form.", 'modern-events-calendar-lite'), '<strong>'.__('Modern Events Calendar', 'modern-events-calendar-lite').'</strong>'); ?></p>
|
49 |
</div>
|
72 |
|
73 |
<br><h3><?php _e('Import Booking CSV File', 'modern-events-calendar-lite'); ?></h3>
|
74 |
<?php if($this->getPRO()): ?>
|
75 |
+
<form id="mec_import_csv_booking_form" action="<?php echo esc_url($this->main->get_full_url()); ?>" method="POST" enctype="multipart/form-data">
|
76 |
<div class="mec-form-row">
|
77 |
<p><?php echo sprintf(__("You can export bookings from %s using the booking menu in source website. You need a CSV export and then you're able to simply import it using this form in to your target website.", 'modern-events-calendar-lite'), '<strong>'.__('Modern Events Calendar', 'modern-events-calendar-lite').'</strong>'); ?></p>
|
78 |
<p style="color: red;"><?php echo __("Please note that you should create (or imports) events and tickets before importing the bookings otherwise booking won't import due to lack of data.", 'modern-events-calendar-lite'); ?></p>
|
app/features/ix/import_f_calendar.php
CHANGED
@@ -7,14 +7,14 @@ $ix_options = $this->main->get_ix_options();
|
|
7 |
<div class="wrap" id="mec-wrap">
|
8 |
<h1><?php _e('MEC Import / Export', 'modern-events-calendar-lite'); ?></h1>
|
9 |
<h2 class="nav-tab-wrapper">
|
10 |
-
<a href="<?php echo $this->main->remove_qs_var('tab'); ?>" class="nav-tab"><?php echo __('Google Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
11 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-g-calendar-export'); ?>" class="nav-tab"><?php echo __('Google Cal. Export', 'modern-events-calendar-lite'); ?></a>
|
12 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-f-calendar-import'); ?>" class="nav-tab nav-tab-active"><?php echo __('Facebook Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
13 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-meetup-import'); ?>" class="nav-tab"><?php echo __('Meetup Import', 'modern-events-calendar-lite'); ?></a>
|
14 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-sync'); ?>" class="nav-tab"><?php echo __('Synchronization', 'modern-events-calendar-lite'); ?></a>
|
15 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-export'); ?>" class="nav-tab"><?php echo __('Export', 'modern-events-calendar-lite'); ?></a>
|
16 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-import'); ?>" class="nav-tab"><?php echo __('Import', 'modern-events-calendar-lite'); ?></a>
|
17 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-thirdparty'); ?>" class="nav-tab"><?php echo __('Third Party Plugins', 'modern-events-calendar-lite'); ?></a>
|
18 |
</h2>
|
19 |
<div class="mec-container">
|
20 |
<div class="import-content w-clearfix extra">
|
@@ -22,7 +22,7 @@ $ix_options = $this->main->get_ix_options();
|
|
22 |
<p class="mec-error"><?php _e('The Facebook SDK requires PHP version 5.4 or higher.', 'modern-events-calendar-lite'); ?></p>
|
23 |
<?php else: ?>
|
24 |
<div class="mec-facebook-import">
|
25 |
-
<form id="mec_facebook_import_form" action="<?php echo $this->main->get_full_url(); ?>" method="POST">
|
26 |
<h3><?php _e('Import from Facebook Calendar', 'modern-events-calendar-lite'); ?></h3>
|
27 |
<p class="description"><?php _e('Import all of your Facebook events into MEC.', 'modern-events-calendar-lite'); ?> <a href="https://webnus.net/dox/modern-events-calendar/import-facebook-events/" target="_blank"><?php _e('Documentation', 'modern-events-calendar-lite'); ?></a></p>
|
28 |
<div class="mec-form-row">
|
@@ -48,7 +48,7 @@ $ix_options = $this->main->get_ix_options();
|
|
48 |
<?php if($this->response['success'] == 0): ?>
|
49 |
<div class="mec-error"><?php echo $this->response['message']; ?></div>
|
50 |
<?php else: ?>
|
51 |
-
<form id="mec_facebook_import_do_form" action="<?php echo $this->main->get_full_url(); ?>" method="POST">
|
52 |
<div class="mec-xi-facebook-import-events mec-options-fields">
|
53 |
<h4><?php _e('Facebook Events', 'modern-events-calendar-lite'); ?></h4>
|
54 |
<div class="mec-success"><?php echo sprintf(__('We found %s events for %s page. Please select your desired events to import.', 'modern-events-calendar-lite'), '<strong>'.$this->response['data']['count'].'</strong>', '<strong>'.$this->response['data']['name'].'</strong>'); ?></div>
|
@@ -61,7 +61,7 @@ $ix_options = $this->main->get_ix_options();
|
|
61 |
<?php foreach($this->response['data']['events'] as $event): if(trim($event['name']) == '') continue; ?>
|
62 |
<li>
|
63 |
<label>
|
64 |
-
<input type="checkbox" name="f-events[]" value="<?php echo $event['id']; ?>" checked="checked" />
|
65 |
<span><?php echo sprintf(__('Event Title: %s', 'modern-events-calendar-lite'), '<strong>'.$event['name'].'</strong>'); ?></span>
|
66 |
</label>
|
67 |
</li>
|
7 |
<div class="wrap" id="mec-wrap">
|
8 |
<h1><?php _e('MEC Import / Export', 'modern-events-calendar-lite'); ?></h1>
|
9 |
<h2 class="nav-tab-wrapper">
|
10 |
+
<a href="<?php echo esc_url($this->main->remove_qs_var('tab')); ?>" class="nav-tab"><?php echo __('Google Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
11 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-g-calendar-export')); ?>" class="nav-tab"><?php echo __('Google Cal. Export', 'modern-events-calendar-lite'); ?></a>
|
12 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-f-calendar-import')); ?>" class="nav-tab nav-tab-active"><?php echo __('Facebook Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
13 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-meetup-import')); ?>" class="nav-tab"><?php echo __('Meetup Import', 'modern-events-calendar-lite'); ?></a>
|
14 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-sync')); ?>" class="nav-tab"><?php echo __('Synchronization', 'modern-events-calendar-lite'); ?></a>
|
15 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-export')); ?>" class="nav-tab"><?php echo __('Export', 'modern-events-calendar-lite'); ?></a>
|
16 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-import')); ?>" class="nav-tab"><?php echo __('Import', 'modern-events-calendar-lite'); ?></a>
|
17 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-thirdparty')); ?>" class="nav-tab"><?php echo __('Third Party Plugins', 'modern-events-calendar-lite'); ?></a>
|
18 |
</h2>
|
19 |
<div class="mec-container">
|
20 |
<div class="import-content w-clearfix extra">
|
22 |
<p class="mec-error"><?php _e('The Facebook SDK requires PHP version 5.4 or higher.', 'modern-events-calendar-lite'); ?></p>
|
23 |
<?php else: ?>
|
24 |
<div class="mec-facebook-import">
|
25 |
+
<form id="mec_facebook_import_form" action="<?php echo esc_url($this->main->get_full_url()); ?>" method="POST">
|
26 |
<h3><?php _e('Import from Facebook Calendar', 'modern-events-calendar-lite'); ?></h3>
|
27 |
<p class="description"><?php _e('Import all of your Facebook events into MEC.', 'modern-events-calendar-lite'); ?> <a href="https://webnus.net/dox/modern-events-calendar/import-facebook-events/" target="_blank"><?php _e('Documentation', 'modern-events-calendar-lite'); ?></a></p>
|
28 |
<div class="mec-form-row">
|
48 |
<?php if($this->response['success'] == 0): ?>
|
49 |
<div class="mec-error"><?php echo $this->response['message']; ?></div>
|
50 |
<?php else: ?>
|
51 |
+
<form id="mec_facebook_import_do_form" action="<?php echo esc_url($this->main->get_full_url()); ?>" method="POST">
|
52 |
<div class="mec-xi-facebook-import-events mec-options-fields">
|
53 |
<h4><?php _e('Facebook Events', 'modern-events-calendar-lite'); ?></h4>
|
54 |
<div class="mec-success"><?php echo sprintf(__('We found %s events for %s page. Please select your desired events to import.', 'modern-events-calendar-lite'), '<strong>'.$this->response['data']['count'].'</strong>', '<strong>'.$this->response['data']['name'].'</strong>'); ?></div>
|
61 |
<?php foreach($this->response['data']['events'] as $event): if(trim($event['name']) == '') continue; ?>
|
62 |
<li>
|
63 |
<label>
|
64 |
+
<input type="checkbox" name="f-events[]" value="<?php echo esc_attr($event['id']); ?>" checked="checked" />
|
65 |
<span><?php echo sprintf(__('Event Title: %s', 'modern-events-calendar-lite'), '<strong>'.$event['name'].'</strong>'); ?></span>
|
66 |
</label>
|
67 |
</li>
|
app/features/ix/import_g_calendar.php
CHANGED
@@ -7,19 +7,19 @@ $ix_options = $this->main->get_ix_options();
|
|
7 |
<div class="wrap" id="mec-wrap">
|
8 |
<h1><?php _e('MEC Import / Export', 'modern-events-calendar-lite'); ?></h1>
|
9 |
<h2 class="nav-tab-wrapper">
|
10 |
-
<a href="<?php echo $this->main->remove_qs_var('tab'); ?>" class="nav-tab nav-tab-active"><?php echo __('Google Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
11 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-g-calendar-export'); ?>" class="nav-tab"><?php echo __('Google Cal. Export', 'modern-events-calendar-lite'); ?></a>
|
12 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-f-calendar-import'); ?>" class="nav-tab"><?php echo __('Facebook Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
13 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-meetup-import'); ?>" class="nav-tab"><?php echo __('Meetup Import', 'modern-events-calendar-lite'); ?></a>
|
14 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-sync'); ?>" class="nav-tab"><?php echo __('Synchronization', 'modern-events-calendar-lite'); ?></a>
|
15 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-export'); ?>" class="nav-tab"><?php echo __('Export', 'modern-events-calendar-lite'); ?></a>
|
16 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-import'); ?>" class="nav-tab"><?php echo __('Import', 'modern-events-calendar-lite'); ?></a>
|
17 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-thirdparty'); ?>" class="nav-tab"><?php echo __('Third Party Plugins', 'modern-events-calendar-lite'); ?></a>
|
18 |
</h2>
|
19 |
<div class="mec-container">
|
20 |
<div class="import-content w-clearfix extra">
|
21 |
<div class="mec-google-import">
|
22 |
-
<form id="mec_google_import_form" action="<?php echo $this->main->get_full_url(); ?>" method="POST">
|
23 |
<h3><?php _e('Import from Google Calendar', 'modern-events-calendar-lite'); ?></h3>
|
24 |
<p class="description"><?php _e('This will import all of your Google calendar events into MEC.', 'modern-events-calendar-lite'); ?></p>
|
25 |
<div class="mec-form-row">
|
@@ -56,7 +56,7 @@ $ix_options = $this->main->get_ix_options();
|
|
56 |
<?php if($this->response['success'] == 0): ?>
|
57 |
<div class="mec-error"><?php echo $this->response['error']; ?></div>
|
58 |
<?php else: ?>
|
59 |
-
<form id="mec_google_import_do_form" action="<?php echo $this->main->get_full_url(); ?>" method="POST">
|
60 |
<div class="mec-xi-google-import-events mec-options-fields">
|
61 |
<h4><?php _e('Google Calendar Events', 'modern-events-calendar-lite'); ?></h4>
|
62 |
<div class="mec-success"><?php echo sprintf(__('We found %s events for %s calendar. Please select your desired events to import.', 'modern-events-calendar-lite'), '<strong>'.$this->response['data']['count'].'</strong>', '<strong>'.$this->response['data']['title'].'</strong>'); ?></div>
|
@@ -76,7 +76,7 @@ $ix_options = $this->main->get_ix_options();
|
|
76 |
?>
|
77 |
<li>
|
78 |
<label>
|
79 |
-
<input type="checkbox" name="g-events[]" value="<?php echo $event['id']; ?>" checked="checked" />
|
80 |
<span><?php echo sprintf(__('Event Title: %s Event Date: %s - %s', 'modern-events-calendar-lite'), '<strong>'.$event['title'].'</strong>', '<strong title="'.esc_attr('First Date of Event', 'modern-events-calendar-lite').'">'.($date_start->format('Y-m-d H:i:s')).'</strong>', '<strong title="'.esc_attr('First Date of Event', 'modern-events-calendar-lite').'">'.($date_end->format('Y-m-d H:i:s')).'</strong>'); ?></span>
|
81 |
</label>
|
82 |
</li>
|
7 |
<div class="wrap" id="mec-wrap">
|
8 |
<h1><?php _e('MEC Import / Export', 'modern-events-calendar-lite'); ?></h1>
|
9 |
<h2 class="nav-tab-wrapper">
|
10 |
+
<a href="<?php echo esc_url($this->main->remove_qs_var('tab')); ?>" class="nav-tab nav-tab-active"><?php echo __('Google Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
11 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-g-calendar-export')); ?>" class="nav-tab"><?php echo __('Google Cal. Export', 'modern-events-calendar-lite'); ?></a>
|
12 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-f-calendar-import')); ?>" class="nav-tab"><?php echo __('Facebook Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
13 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-meetup-import')); ?>" class="nav-tab"><?php echo __('Meetup Import', 'modern-events-calendar-lite'); ?></a>
|
14 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-sync')); ?>" class="nav-tab"><?php echo __('Synchronization', 'modern-events-calendar-lite'); ?></a>
|
15 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-export')); ?>" class="nav-tab"><?php echo __('Export', 'modern-events-calendar-lite'); ?></a>
|
16 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-import')); ?>" class="nav-tab"><?php echo __('Import', 'modern-events-calendar-lite'); ?></a>
|
17 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-thirdparty')); ?>" class="nav-tab"><?php echo __('Third Party Plugins', 'modern-events-calendar-lite'); ?></a>
|
18 |
</h2>
|
19 |
<div class="mec-container">
|
20 |
<div class="import-content w-clearfix extra">
|
21 |
<div class="mec-google-import">
|
22 |
+
<form id="mec_google_import_form" action="<?php echo esc_url($this->main->get_full_url()); ?>" method="POST">
|
23 |
<h3><?php _e('Import from Google Calendar', 'modern-events-calendar-lite'); ?></h3>
|
24 |
<p class="description"><?php _e('This will import all of your Google calendar events into MEC.', 'modern-events-calendar-lite'); ?></p>
|
25 |
<div class="mec-form-row">
|
56 |
<?php if($this->response['success'] == 0): ?>
|
57 |
<div class="mec-error"><?php echo $this->response['error']; ?></div>
|
58 |
<?php else: ?>
|
59 |
+
<form id="mec_google_import_do_form" action="<?php echo esc_url($this->main->get_full_url()); ?>" method="POST">
|
60 |
<div class="mec-xi-google-import-events mec-options-fields">
|
61 |
<h4><?php _e('Google Calendar Events', 'modern-events-calendar-lite'); ?></h4>
|
62 |
<div class="mec-success"><?php echo sprintf(__('We found %s events for %s calendar. Please select your desired events to import.', 'modern-events-calendar-lite'), '<strong>'.$this->response['data']['count'].'</strong>', '<strong>'.$this->response['data']['title'].'</strong>'); ?></div>
|
76 |
?>
|
77 |
<li>
|
78 |
<label>
|
79 |
+
<input type="checkbox" name="g-events[]" value="<?php echo esc_attr($event['id']); ?>" checked="checked" />
|
80 |
<span><?php echo sprintf(__('Event Title: %s Event Date: %s - %s', 'modern-events-calendar-lite'), '<strong>'.$event['title'].'</strong>', '<strong title="'.esc_attr('First Date of Event', 'modern-events-calendar-lite').'">'.($date_start->format('Y-m-d H:i:s')).'</strong>', '<strong title="'.esc_attr('First Date of Event', 'modern-events-calendar-lite').'">'.($date_end->format('Y-m-d H:i:s')).'</strong>'); ?></span>
|
81 |
</label>
|
82 |
</li>
|
app/features/ix/import_meetup.php
CHANGED
@@ -7,19 +7,19 @@ $ix_options = $this->main->get_ix_options();
|
|
7 |
<div class="wrap" id="mec-wrap">
|
8 |
<h1><?php _e('MEC Import / Export', 'modern-events-calendar-lite'); ?></h1>
|
9 |
<h2 class="nav-tab-wrapper">
|
10 |
-
<a href="<?php echo $this->main->remove_qs_var('tab'); ?>" class="nav-tab"><?php echo __('Google Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
11 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-g-calendar-export'); ?>" class="nav-tab"><?php echo __('Google Cal. Export', 'modern-events-calendar-lite'); ?></a>
|
12 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-f-calendar-import'); ?>" class="nav-tab"><?php echo __('Facebook Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
13 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-meetup-import'); ?>" class="nav-tab nav-tab-active"><?php echo __('Meetup Import', 'modern-events-calendar-lite'); ?></a>
|
14 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-sync'); ?>" class="nav-tab"><?php echo __('Synchronization', 'modern-events-calendar-lite'); ?></a>
|
15 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-export'); ?>" class="nav-tab"><?php echo __('Export', 'modern-events-calendar-lite'); ?></a>
|
16 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-import'); ?>" class="nav-tab"><?php echo __('Import', 'modern-events-calendar-lite'); ?></a>
|
17 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-thirdparty'); ?>" class="nav-tab"><?php echo __('Third Party Plugins', 'modern-events-calendar-lite'); ?></a>
|
18 |
</h2>
|
19 |
<div class="mec-container">
|
20 |
<div class="import-content w-clearfix extra">
|
21 |
<div class="mec-meetup-import">
|
22 |
-
<form id="mec_meetup_import_form" action="<?php echo $this->main->get_full_url(); ?>" method="POST">
|
23 |
<h3><?php _e('Import from Meetup', 'modern-events-calendar-lite'); ?></h3>
|
24 |
<p class="description"><?php _e('This will import all your meetup events into MEC.', 'modern-events-calendar-lite'); ?></p>
|
25 |
<div class="mec-form-row">
|
@@ -45,7 +45,7 @@ $ix_options = $this->main->get_ix_options();
|
|
45 |
<?php if($this->response['success'] == 0): ?>
|
46 |
<div class="mec-error"><?php echo $this->response['error']; ?></div>
|
47 |
<?php else: ?>
|
48 |
-
<form id="mec_meetup_do_form" action="<?php echo $this->main->get_full_url(); ?>" method="POST">
|
49 |
<div class="mec-xi-meetup-events mec-options-fields">
|
50 |
<h4><?php _e('Meetup Events', 'modern-events-calendar-lite'); ?></h4>
|
51 |
<div class="mec-success"><?php echo sprintf(__('We found %s events for %s group. Please select your desired events to import.', 'modern-events-calendar-lite'), '<strong>'.$this->response['data']['count'].'</strong>', '<strong>'.$this->response['data']['title'].'</strong>'); ?></div>
|
@@ -58,7 +58,7 @@ $ix_options = $this->main->get_ix_options();
|
|
58 |
<?php foreach($this->response['data']['events'] as $event): ?>
|
59 |
<li>
|
60 |
<label>
|
61 |
-
<input type="checkbox" name="m-events[]" value="<?php echo $event['id']; ?>" checked="checked" />
|
62 |
<span><?php echo sprintf(__('Event Title: %s Event Date: %s - %s', 'modern-events-calendar-lite'), '<strong>'.$event['title'].'</strong>', '<strong>'.$event['start'].'</strong>', '<strong>'.$event['end'].'</strong>'); ?></span>
|
63 |
</label>
|
64 |
</li>
|
7 |
<div class="wrap" id="mec-wrap">
|
8 |
<h1><?php _e('MEC Import / Export', 'modern-events-calendar-lite'); ?></h1>
|
9 |
<h2 class="nav-tab-wrapper">
|
10 |
+
<a href="<?php echo esc_url($this->main->remove_qs_var('tab')); ?>" class="nav-tab"><?php echo __('Google Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
11 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-g-calendar-export')); ?>" class="nav-tab"><?php echo __('Google Cal. Export', 'modern-events-calendar-lite'); ?></a>
|
12 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-f-calendar-import')); ?>" class="nav-tab"><?php echo __('Facebook Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
13 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-meetup-import')); ?>" class="nav-tab nav-tab-active"><?php echo __('Meetup Import', 'modern-events-calendar-lite'); ?></a>
|
14 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-sync')); ?>" class="nav-tab"><?php echo __('Synchronization', 'modern-events-calendar-lite'); ?></a>
|
15 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-export')); ?>" class="nav-tab"><?php echo __('Export', 'modern-events-calendar-lite'); ?></a>
|
16 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-import')); ?>" class="nav-tab"><?php echo __('Import', 'modern-events-calendar-lite'); ?></a>
|
17 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-thirdparty')); ?>" class="nav-tab"><?php echo __('Third Party Plugins', 'modern-events-calendar-lite'); ?></a>
|
18 |
</h2>
|
19 |
<div class="mec-container">
|
20 |
<div class="import-content w-clearfix extra">
|
21 |
<div class="mec-meetup-import">
|
22 |
+
<form id="mec_meetup_import_form" action="<?php echo esc_url($this->main->get_full_url()); ?>" method="POST">
|
23 |
<h3><?php _e('Import from Meetup', 'modern-events-calendar-lite'); ?></h3>
|
24 |
<p class="description"><?php _e('This will import all your meetup events into MEC.', 'modern-events-calendar-lite'); ?></p>
|
25 |
<div class="mec-form-row">
|
45 |
<?php if($this->response['success'] == 0): ?>
|
46 |
<div class="mec-error"><?php echo $this->response['error']; ?></div>
|
47 |
<?php else: ?>
|
48 |
+
<form id="mec_meetup_do_form" action="<?php echo esc_url($this->main->get_full_url()); ?>" method="POST">
|
49 |
<div class="mec-xi-meetup-events mec-options-fields">
|
50 |
<h4><?php _e('Meetup Events', 'modern-events-calendar-lite'); ?></h4>
|
51 |
<div class="mec-success"><?php echo sprintf(__('We found %s events for %s group. Please select your desired events to import.', 'modern-events-calendar-lite'), '<strong>'.$this->response['data']['count'].'</strong>', '<strong>'.$this->response['data']['title'].'</strong>'); ?></div>
|
58 |
<?php foreach($this->response['data']['events'] as $event): ?>
|
59 |
<li>
|
60 |
<label>
|
61 |
+
<input type="checkbox" name="m-events[]" value="<?php echo esc_attr($event['id']); ?>" checked="checked" />
|
62 |
<span><?php echo sprintf(__('Event Title: %s Event Date: %s - %s', 'modern-events-calendar-lite'), '<strong>'.$event['title'].'</strong>', '<strong>'.$event['start'].'</strong>', '<strong>'.$event['end'].'</strong>'); ?></span>
|
63 |
</label>
|
64 |
</li>
|
app/features/ix/sync.php
CHANGED
@@ -7,21 +7,21 @@ $ix = $this->main->get_ix_options();
|
|
7 |
<div class="wrap" id="mec-wrap">
|
8 |
<h1><?php _e('Auto Synchronization', 'modern-events-calendar-lite'); ?></h1>
|
9 |
<h2 class="nav-tab-wrapper">
|
10 |
-
<a href="<?php echo $this->main->remove_qs_var('tab'); ?>" class="nav-tab"><?php echo __('Google Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
11 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-g-calendar-export'); ?>" class="nav-tab"><?php echo __('Google Cal. Export', 'modern-events-calendar-lite'); ?></a>
|
12 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-f-calendar-import'); ?>" class="nav-tab"><?php echo __('Facebook Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
13 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-meetup-import'); ?>" class="nav-tab"><?php echo __('Meetup Import', 'modern-events-calendar-lite'); ?></a>
|
14 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-sync'); ?>" class="nav-tab nav-tab-active"><?php echo __('Synchronization', 'modern-events-calendar-lite'); ?></a>
|
15 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-export'); ?>" class="nav-tab"><?php echo __('Export', 'modern-events-calendar-lite'); ?></a>
|
16 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-import'); ?>" class="nav-tab"><?php echo __('Import', 'modern-events-calendar-lite'); ?></a>
|
17 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-thirdparty'); ?>" class="nav-tab"><?php echo __('Third Party Plugins', 'modern-events-calendar-lite'); ?></a>
|
18 |
</h2>
|
19 |
<div class="mec-container">
|
20 |
<div class="sync-content w-clearfix extra">
|
21 |
<?php if(!$this->main->getPRO()): ?>
|
22 |
<div class="info-msg"><?php echo sprintf(__("%s is required to use synchronization feature.", 'modern-events-calendar-lite'), '<a href="'.$this->main->get_pro_link().'" target="_blank">'.__('Pro version of Modern Events Calendar', 'modern-events-calendar-lite').'</a>'); ?></div>
|
23 |
<?php else: ?>
|
24 |
-
<form id="mec_ix_sync_form" action="<?php echo $this->main->get_full_url(); ?>" method="POST">
|
25 |
<div class="mec-form-row mec-syn-schedule">
|
26 |
<input type="hidden" name="ix[sync_g_import]" value="0" />
|
27 |
<label class="mec-col-3" for="mec_ix_sync_g_import">
|
7 |
<div class="wrap" id="mec-wrap">
|
8 |
<h1><?php _e('Auto Synchronization', 'modern-events-calendar-lite'); ?></h1>
|
9 |
<h2 class="nav-tab-wrapper">
|
10 |
+
<a href="<?php echo esc_url($this->main->remove_qs_var('tab')); ?>" class="nav-tab"><?php echo __('Google Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
11 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-g-calendar-export')); ?>" class="nav-tab"><?php echo __('Google Cal. Export', 'modern-events-calendar-lite'); ?></a>
|
12 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-f-calendar-import')); ?>" class="nav-tab"><?php echo __('Facebook Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
13 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-meetup-import')); ?>" class="nav-tab"><?php echo __('Meetup Import', 'modern-events-calendar-lite'); ?></a>
|
14 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-sync')); ?>" class="nav-tab nav-tab-active"><?php echo __('Synchronization', 'modern-events-calendar-lite'); ?></a>
|
15 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-export')); ?>" class="nav-tab"><?php echo __('Export', 'modern-events-calendar-lite'); ?></a>
|
16 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-import')); ?>" class="nav-tab"><?php echo __('Import', 'modern-events-calendar-lite'); ?></a>
|
17 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-thirdparty')); ?>" class="nav-tab"><?php echo __('Third Party Plugins', 'modern-events-calendar-lite'); ?></a>
|
18 |
</h2>
|
19 |
<div class="mec-container">
|
20 |
<div class="sync-content w-clearfix extra">
|
21 |
<?php if(!$this->main->getPRO()): ?>
|
22 |
<div class="info-msg"><?php echo sprintf(__("%s is required to use synchronization feature.", 'modern-events-calendar-lite'), '<a href="'.$this->main->get_pro_link().'" target="_blank">'.__('Pro version of Modern Events Calendar', 'modern-events-calendar-lite').'</a>'); ?></div>
|
23 |
<?php else: ?>
|
24 |
+
<form id="mec_ix_sync_form" action="<?php echo esc_url($this->main->get_full_url()); ?>" method="POST">
|
25 |
<div class="mec-form-row mec-syn-schedule">
|
26 |
<input type="hidden" name="ix[sync_g_import]" value="0" />
|
27 |
<label class="mec-col-3" for="mec_ix_sync_g_import">
|
app/features/ix/thirdparty.php
CHANGED
@@ -9,19 +9,19 @@ $third_parties = $this->main->get_integrated_plugins_for_import();
|
|
9 |
<div class="wrap" id="mec-wrap">
|
10 |
<h1><?php _e('MEC Import / Export', 'modern-events-calendar-lite'); ?></h1>
|
11 |
<h2 class="nav-tab-wrapper">
|
12 |
-
<a href="<?php echo $this->main->remove_qs_var('tab'); ?>" class="nav-tab"><?php echo __('Google Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
13 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-g-calendar-export'); ?>" class="nav-tab"><?php echo __('Google Cal. Export', 'modern-events-calendar-lite'); ?></a>
|
14 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-f-calendar-import'); ?>" class="nav-tab"><?php echo __('Facebook Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
15 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-meetup-import'); ?>" class="nav-tab"><?php echo __('Meetup Import', 'modern-events-calendar-lite'); ?></a>
|
16 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-sync'); ?>" class="nav-tab"><?php echo __('Synchronization', 'modern-events-calendar-lite'); ?></a>
|
17 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-export'); ?>" class="nav-tab"><?php echo __('Export', 'modern-events-calendar-lite'); ?></a>
|
18 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-import'); ?>" class="nav-tab"><?php echo __('Import', 'modern-events-calendar-lite'); ?></a>
|
19 |
-
<a href="<?php echo $this->main->add_qs_var('tab', 'MEC-thirdparty'); ?>" class="nav-tab nav-tab-active"><?php echo __('Third Party Plugins', 'modern-events-calendar-lite'); ?></a>
|
20 |
</h2>
|
21 |
<div class="mec-container">
|
22 |
<div class="import-content w-clearfix extra">
|
23 |
<h3><?php _e('Third Party Plugins', 'modern-events-calendar-lite'); ?></h3>
|
24 |
-
<form id="mec_thirdparty_import_form" action="<?php echo $this->main->get_full_url(); ?>" method="POST">
|
25 |
<div class="mec-form-row">
|
26 |
<p><?php echo sprintf(__("You can import events from the following integrated plugins to %s.", 'modern-events-calendar-lite'), '<strong>'.__('Modern Events Calendar', 'modern-events-calendar-lite').'</strong>'); ?></p>
|
27 |
</div>
|
@@ -43,7 +43,7 @@ $third_parties = $this->main->get_integrated_plugins_for_import();
|
|
43 |
<?php elseif(isset($this->response['data']['count']) && !$this->response['data']['count']): ?>
|
44 |
<div class="mec-error"><?php echo __('No events found!', 'modern-events-calendar-lite'); ?></div>
|
45 |
<?php else: ?>
|
46 |
-
<form id="mec_thirdparty_import_do_form" action="<?php echo $this->main->get_full_url(); ?>" method="POST">
|
47 |
<div class="mec-ix-thirdparty-import-events mec-options-fields">
|
48 |
<h4><?php _e('Found Events', 'modern-events-calendar-lite'); ?></h4>
|
49 |
<div class="mec-success"><?php echo sprintf(__('We found %s events. Please select your desired events to import.', 'modern-events-calendar-lite'), '<strong>'.$this->response['data']['count'].'</strong>'); ?></div>
|
@@ -56,7 +56,7 @@ $third_parties = $this->main->get_integrated_plugins_for_import();
|
|
56 |
<?php foreach($this->response['data']['events'] as $event): if(trim($event->post_title) == '') continue; ?>
|
57 |
<li>
|
58 |
<label>
|
59 |
-
<input type="checkbox" name="tp-events[]" value="<?php echo $event->ID; ?>" checked="checked" />
|
60 |
<span><?php echo sprintf(__('Event Title: %s', 'modern-events-calendar-lite'), '<strong>'.$event->post_title.'</strong>'); ?></span>
|
61 |
</label>
|
62 |
</li>
|
@@ -100,7 +100,7 @@ $third_parties = $this->main->get_integrated_plugins_for_import();
|
|
100 |
</label>
|
101 |
</div>
|
102 |
<input type="hidden" name="mec-ix-action" value="thirdparty-import-do" />
|
103 |
-
<input type="hidden" name="ix[third-party]" value="<?php echo $this->ix['third-party']; ?>" />
|
104 |
<button id="mec_ix_thirdparty_import_do_form_button" class="button button-primary mec-button-primary" type="submit"><?php _e('Import', 'modern-events-calendar-lite'); ?></button>
|
105 |
</div>
|
106 |
</form>
|
9 |
<div class="wrap" id="mec-wrap">
|
10 |
<h1><?php _e('MEC Import / Export', 'modern-events-calendar-lite'); ?></h1>
|
11 |
<h2 class="nav-tab-wrapper">
|
12 |
+
<a href="<?php echo esc_url($this->main->remove_qs_var('tab')); ?>" class="nav-tab"><?php echo __('Google Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
13 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-g-calendar-export')); ?>" class="nav-tab"><?php echo __('Google Cal. Export', 'modern-events-calendar-lite'); ?></a>
|
14 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-f-calendar-import')); ?>" class="nav-tab"><?php echo __('Facebook Cal. Import', 'modern-events-calendar-lite'); ?></a>
|
15 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-meetup-import')); ?>" class="nav-tab"><?php echo __('Meetup Import', 'modern-events-calendar-lite'); ?></a>
|
16 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-sync')); ?>" class="nav-tab"><?php echo __('Synchronization', 'modern-events-calendar-lite'); ?></a>
|
17 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-export')); ?>" class="nav-tab"><?php echo __('Export', 'modern-events-calendar-lite'); ?></a>
|
18 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-import')); ?>" class="nav-tab"><?php echo __('Import', 'modern-events-calendar-lite'); ?></a>
|
19 |
+
<a href="<?php echo esc_url($this->main->add_qs_var('tab', 'MEC-thirdparty')); ?>" class="nav-tab nav-tab-active"><?php echo __('Third Party Plugins', 'modern-events-calendar-lite'); ?></a>
|
20 |
</h2>
|
21 |
<div class="mec-container">
|
22 |
<div class="import-content w-clearfix extra">
|
23 |
<h3><?php _e('Third Party Plugins', 'modern-events-calendar-lite'); ?></h3>
|
24 |
+
<form id="mec_thirdparty_import_form" action="<?php echo esc_url($this->main->get_full_url()); ?>" method="POST">
|
25 |
<div class="mec-form-row">
|
26 |
<p><?php echo sprintf(__("You can import events from the following integrated plugins to %s.", 'modern-events-calendar-lite'), '<strong>'.__('Modern Events Calendar', 'modern-events-calendar-lite').'</strong>'); ?></p>
|
27 |
</div>
|
43 |
<?php elseif(isset($this->response['data']['count']) && !$this->response['data']['count']): ?>
|
44 |
<div class="mec-error"><?php echo __('No events found!', 'modern-events-calendar-lite'); ?></div>
|
45 |
<?php else: ?>
|
46 |
+
<form id="mec_thirdparty_import_do_form" action="<?php echo esc_url($this->main->get_full_url()); ?>" method="POST">
|
47 |
<div class="mec-ix-thirdparty-import-events mec-options-fields">
|
48 |
<h4><?php _e('Found Events', 'modern-events-calendar-lite'); ?></h4>
|
49 |
<div class="mec-success"><?php echo sprintf(__('We found %s events. Please select your desired events to import.', 'modern-events-calendar-lite'), '<strong>'.$this->response['data']['count'].'</strong>'); ?></div>
|
56 |
<?php foreach($this->response['data']['events'] as $event): if(trim($event->post_title) == '') continue; ?>
|
57 |
<li>
|
58 |
<label>
|
59 |
+
<input type="checkbox" name="tp-events[]" value="<?php echo esc_attr($event->ID); ?>" checked="checked" />
|
60 |
<span><?php echo sprintf(__('Event Title: %s', 'modern-events-calendar-lite'), '<strong>'.$event->post_title.'</strong>'); ?></span>
|
61 |
</label>
|
62 |
</li>
|
100 |
</label>
|
101 |
</div>
|
102 |
<input type="hidden" name="mec-ix-action" value="thirdparty-import-do" />
|
103 |
+
<input type="hidden" name="ix[third-party]" value="<?php echo esc_attr($this->ix['third-party']); ?>" />
|
104 |
<button id="mec_ix_thirdparty_import_do_form_button" class="button button-primary mec-button-primary" type="submit"><?php _e('Import', 'modern-events-calendar-lite'); ?></button>
|
105 |
</div>
|
106 |
</form>
|
app/features/login.php
CHANGED
@@ -41,8 +41,8 @@ class MEC_feature_login extends MEC_base
|
|
41 |
if(!wp_verify_nonce(sanitize_text_field($_POST['mec_login_nonce']), 'mec-ajax-login-nonce')) return;
|
42 |
|
43 |
$info = array();
|
44 |
-
$info['user_login'] = $_POST['username'];
|
45 |
-
$info['user_password'] = $_POST['password'];
|
46 |
$info['remember'] = true;
|
47 |
|
48 |
$user_signon = wp_signon($info, true); // secure_cookie set true.
|
41 |
if(!wp_verify_nonce(sanitize_text_field($_POST['mec_login_nonce']), 'mec-ajax-login-nonce')) return;
|
42 |
|
43 |
$info = array();
|
44 |
+
$info['user_login'] = sanitize_text_field($_POST['username']);
|
45 |
+
$info['user_password'] = sanitize_text_field($_POST['password']);
|
46 |
$info['remember'] = true;
|
47 |
|
48 |
$user_signon = wp_signon($info, true); // secure_cookie set true.
|
app/features/mec.php
CHANGED
@@ -210,8 +210,8 @@ class MEC_feature_mec extends MEC_base
|
|
210 |
if(!wp_verify_nonce($_REQUEST['nonce'], 'mec_settings_nonce')) exit();
|
211 |
|
212 |
$options = get_option('mec_options');
|
213 |
-
$options['product_name'] = $_REQUEST['content']['LicenseTypeJson'];
|
214 |
-
$options['purchase_code'] = $_REQUEST['content']['PurchaseCodeJson'];
|
215 |
|
216 |
$verify = NULL;
|
217 |
$verify = $this->plugin_activation_request($options);
|
@@ -229,7 +229,7 @@ class MEC_feature_mec extends MEC_base
|
|
229 |
}
|
230 |
|
231 |
|
232 |
-
update_option(
|
233 |
echo $LicenseStatus;
|
234 |
wp_die();
|
235 |
}
|
@@ -288,7 +288,7 @@ class MEC_feature_mec extends MEC_base
|
|
288 |
{
|
289 |
// Current User is not Permitted
|
290 |
if(!current_user_can('mec_settings') and !current_user_can('administrator')) $this->main->response(array('success'=>0, 'code'=>'ADMIN_ONLY'));
|
291 |
-
if(!wp_verify_nonce(
|
292 |
|
293 |
update_option('mec_addons_notification_option', 'open');
|
294 |
wp_die();
|
@@ -299,7 +299,7 @@ class MEC_feature_mec extends MEC_base
|
|
299 |
{
|
300 |
// Current User is not Permitted
|
301 |
if(!current_user_can('mec_settings') and !current_user_can('administrator')) $this->main->response(array('success'=>0, 'code'=>'ADMIN_ONLY'));
|
302 |
-
if(!wp_verify_nonce(
|
303 |
|
304 |
update_option('mec_custom_msg_2_close_option', 'open');
|
305 |
wp_die();
|
@@ -310,7 +310,7 @@ class MEC_feature_mec extends MEC_base
|
|
310 |
{
|
311 |
// Current User is not Permitted
|
312 |
if(!current_user_can('mec_settings') and !current_user_can('administrator')) $this->main->response(array('success'=>0, 'code'=>'ADMIN_ONLY'));
|
313 |
-
if(!wp_verify_nonce(
|
314 |
|
315 |
update_option('mec_custom_msg_close_option', 'open');
|
316 |
wp_die();
|
@@ -324,7 +324,7 @@ class MEC_feature_mec extends MEC_base
|
|
324 |
if(!current_user_can('mec_report')) $this->main->response(array('success'=>0, 'code'=>'ADMIN_ONLY'));
|
325 |
if(!wp_verify_nonce($_REQUEST['nonce'], 'mec_settings_nonce')) exit();
|
326 |
|
327 |
-
$event_id = $_POST['event_id'];
|
328 |
$feature_class = new MEC_feature_mec();
|
329 |
|
330 |
$booking_options = get_post_meta($event_id, 'mec_booking', true);
|
@@ -1510,7 +1510,7 @@ class MEC_feature_mec extends MEC_base
|
|
1510 |
|
1511 |
public function widget_total_bookings()
|
1512 |
{
|
1513 |
-
$current_page = isset($_GET['page']) ? $_GET['page'] : 'dashboard';
|
1514 |
|
1515 |
wp_enqueue_script('mec-chartjs-script', $this->main->asset('js/chartjs.min.js'));
|
1516 |
wp_enqueue_script('mec-total-booking-reports-script', $this->main->asset('js/total-booking-reports.js'));
|
@@ -1735,7 +1735,7 @@ class MEC_feature_mec extends MEC_base
|
|
1735 |
|
1736 |
$timestamp = ((isset($_GET['time']) and $_GET['time']) ? (int) sanitize_text_field($_GET['time']) : NULL);
|
1737 |
|
1738 |
-
$occurrence = (isset($_GET['occurrence']) ? $_GET['occurrence'] : NULL);
|
1739 |
if(!$timestamp and $occurrence) $timestamp = strtotime($occurrence) + (int) get_post_meta($post->ID, 'mec_start_day_seconds', true);
|
1740 |
|
1741 |
if(!$timestamp)
|
210 |
if(!wp_verify_nonce($_REQUEST['nonce'], 'mec_settings_nonce')) exit();
|
211 |
|
212 |
$options = get_option('mec_options');
|
213 |
+
$options['product_name'] = sanitize_text_field($_REQUEST['content']['LicenseTypeJson']);
|
214 |
+
$options['purchase_code'] = sanitize_text_field($_REQUEST['content']['PurchaseCodeJson']);
|
215 |
|
216 |
$verify = NULL;
|
217 |
$verify = $this->plugin_activation_request($options);
|
229 |
}
|
230 |
|
231 |
|
232 |
+
update_option('mec_options', $options);
|
233 |
echo $LicenseStatus;
|
234 |
wp_die();
|
235 |
}
|
288 |
{
|
289 |
// Current User is not Permitted
|
290 |
if(!current_user_can('mec_settings') and !current_user_can('administrator')) $this->main->response(array('success'=>0, 'code'=>'ADMIN_ONLY'));
|
291 |
+
if(!wp_verify_nonce($_REQUEST['nonce'], 'mec_settings_nonce')) exit();
|
292 |
|
293 |
update_option('mec_addons_notification_option', 'open');
|
294 |
wp_die();
|
299 |
{
|
300 |
// Current User is not Permitted
|
301 |
if(!current_user_can('mec_settings') and !current_user_can('administrator')) $this->main->response(array('success'=>0, 'code'=>'ADMIN_ONLY'));
|
302 |
+
if(!wp_verify_nonce($_REQUEST['nonce'], 'mec_settings_nonce')) exit();
|
303 |
|
304 |
update_option('mec_custom_msg_2_close_option', 'open');
|
305 |
wp_die();
|
310 |
{
|
311 |
// Current User is not Permitted
|
312 |
if(!current_user_can('mec_settings') and !current_user_can('administrator')) $this->main->response(array('success'=>0, 'code'=>'ADMIN_ONLY'));
|
313 |
+
if(!wp_verify_nonce($_REQUEST['nonce'], 'mec_settings_nonce')) exit();
|
314 |
|
315 |
update_option('mec_custom_msg_close_option', 'open');
|
316 |
wp_die();
|
324 |
if(!current_user_can('mec_report')) $this->main->response(array('success'=>0, 'code'=>'ADMIN_ONLY'));
|
325 |
if(!wp_verify_nonce($_REQUEST['nonce'], 'mec_settings_nonce')) exit();
|
326 |
|
327 |
+
$event_id = sanitize_text_field($_POST['event_id']);
|
328 |
$feature_class = new MEC_feature_mec();
|
329 |
|
330 |
$booking_options = get_post_meta($event_id, 'mec_booking', true);
|
1510 |
|
1511 |
public function widget_total_bookings()
|
1512 |
{
|
1513 |
+
$current_page = isset($_GET['page']) ? sanitize_text_field($_GET['page']) : 'dashboard';
|
1514 |
|
1515 |
wp_enqueue_script('mec-chartjs-script', $this->main->asset('js/chartjs.min.js'));
|
1516 |
wp_enqueue_script('mec-total-booking-reports-script', $this->main->asset('js/total-booking-reports.js'));
|
1735 |
|
1736 |
$timestamp = ((isset($_GET['time']) and $_GET['time']) ? (int) sanitize_text_field($_GET['time']) : NULL);
|
1737 |
|
1738 |
+
$occurrence = (isset($_GET['occurrence']) ? sanitize_text_field($_GET['occurrence']) : NULL);
|
1739 |
if(!$timestamp and $occurrence) $timestamp = strtotime($occurrence) + (int) get_post_meta($post->ID, 'mec_start_day_seconds', true);
|
1740 |
|
1741 |
if(!$timestamp)
|
app/features/mec/addons.php
CHANGED
@@ -21,29 +21,17 @@ wp_enqueue_script('mec-lity-script', $this->main->asset('packages/lity/lity.min.
|
|
21 |
<?php if(current_user_can('read')): ?>
|
22 |
<?php
|
23 |
$data_url = 'https://webnus.net/modern-events-calendar/addons-api/addons-api.json';
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
{
|
36 |
-
$ch = curl_init();
|
37 |
-
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
38 |
-
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
39 |
-
curl_setopt($ch, CURLOPT_URL, $data_url);
|
40 |
-
$result = curl_exec($ch);
|
41 |
-
curl_close($ch);
|
42 |
-
$obj = json_decode($result);
|
43 |
-
$i = count((array)$obj);
|
44 |
-
} else {
|
45 |
-
$obj = '';
|
46 |
-
}
|
47 |
?>
|
48 |
<div class="w-row">
|
49 |
<?php if ( !empty( $obj ) ) : ?>
|
21 |
<?php if(current_user_can('read')): ?>
|
22 |
<?php
|
23 |
$data_url = 'https://webnus.net/modern-events-calendar/addons-api/addons-api.json';
|
24 |
+
$args = array(
|
25 |
+
'timeout' => '5',
|
26 |
+
'redirection' => '5',
|
27 |
+
'httpversion' => '1.0',
|
28 |
+
'blocking' => true,
|
29 |
+
'headers' => array(),
|
30 |
+
'cookies' => array(),
|
31 |
+
);
|
32 |
+
$response = wp_remote_get( $data_url,$args );
|
33 |
+
$body = wp_remote_retrieve_body( $response );
|
34 |
+
$obj = json_decode($body);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
?>
|
36 |
<div class="w-row">
|
37 |
<?php if ( !empty( $obj ) ) : ?>
|
app/features/mec/booking.php
CHANGED
@@ -654,8 +654,8 @@ $gateways_options = $this->main->get_gateways_options();
|
|
654 |
<div class="mec-form-row">
|
655 |
<span class="mec-col-12">
|
656 |
<label>
|
657 |
-
<input type="hidden" name="mec[settings][fees_disabled_gateways][<?php echo $gateway->id(); ?>]" value="0">
|
658 |
-
<input type="checkbox" name="mec[settings][fees_disabled_gateways][<?php echo $gateway->id(); ?>]" value="1" <?php echo ((isset($settings['fees_disabled_gateways']) and isset($settings['fees_disabled_gateways'][$gateway->id()]) and $settings['fees_disabled_gateways'][$gateway->id()]) ? 'checked="checked"' : ''); ?>>
|
659 |
<?php echo $gateway->title(); ?>
|
660 |
</label>
|
661 |
</span>
|
@@ -1050,7 +1050,7 @@ $gateways_options = $this->main->get_gateways_options();
|
|
1050 |
<div class="mec-form-row" id="mec_gateways_form_container">
|
1051 |
<ul>
|
1052 |
<?php foreach($gateways as $gateway): ?>
|
1053 |
-
<li id="mec_gateway_id<?php echo $gateway->id(); ?>">
|
1054 |
<?php $gateway->options_form(); ?>
|
1055 |
</li>
|
1056 |
<?php endforeach; ?>
|
654 |
<div class="mec-form-row">
|
655 |
<span class="mec-col-12">
|
656 |
<label>
|
657 |
+
<input type="hidden" name="mec[settings][fees_disabled_gateways][<?php echo esc_attr($gateway->id()); ?>]" value="0">
|
658 |
+
<input type="checkbox" name="mec[settings][fees_disabled_gateways][<?php echo esc_attr($gateway->id()); ?>]" value="1" <?php echo ((isset($settings['fees_disabled_gateways']) and isset($settings['fees_disabled_gateways'][$gateway->id()]) and $settings['fees_disabled_gateways'][$gateway->id()]) ? 'checked="checked"' : ''); ?>>
|
659 |
<?php echo $gateway->title(); ?>
|
660 |
</label>
|
661 |
</span>
|
1050 |
<div class="mec-form-row" id="mec_gateways_form_container">
|
1051 |
<ul>
|
1052 |
<?php foreach($gateways as $gateway): ?>
|
1053 |
+
<li id="mec_gateway_id<?php echo esc_attr($gateway->id()); ?>">
|
1054 |
<?php $gateway->options_form(); ?>
|
1055 |
</li>
|
1056 |
<?php endforeach; ?>
|
app/features/mec/dashboard.php
CHANGED
@@ -43,6 +43,7 @@ if($booking_status) wp_enqueue_script('mec-chartjs-script', $this->asset('js/cha
|
|
43 |
// Whether to show dashboard boxes or not!
|
44 |
$box_support = apply_filters('mec_dashboard_box_support', true);
|
45 |
$box_stats = apply_filters('mec_dashboard_box_stats', true);
|
|
|
46 |
?>
|
47 |
<div id="webnus-dashboard" class="wrap about-wrap">
|
48 |
<div class="welcome-head w-clearfix">
|
@@ -65,7 +66,45 @@ $box_stats = apply_filters('mec_dashboard_box_stats', true);
|
|
65 |
<div class="welcome-content w-clearfix extra">
|
66 |
<div class="w-row">
|
67 |
<div class="w-col-sm-12">
|
68 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
</div>
|
70 |
</div>
|
71 |
<?php if(!$this->getPRO()): ?>
|
43 |
// Whether to show dashboard boxes or not!
|
44 |
$box_support = apply_filters('mec_dashboard_box_support', true);
|
45 |
$box_stats = apply_filters('mec_dashboard_box_stats', true);
|
46 |
+
|
47 |
?>
|
48 |
<div id="webnus-dashboard" class="wrap about-wrap">
|
49 |
<div class="welcome-head w-clearfix">
|
66 |
<div class="welcome-content w-clearfix extra">
|
67 |
<div class="w-row">
|
68 |
<div class="w-col-sm-12">
|
69 |
+
<?php
|
70 |
+
echo '<script>
|
71 |
+
(function(){
|
72 |
+
var version = parseInt(Math.random()*10000);
|
73 |
+
var webformKey = "8dd552ab6041bd25d23d8a8467819f701f9196106be0e25edc6870c9cc922bdc_"+version;
|
74 |
+
var loaderHTML = "<div class=\"fs-webform-loader\" style=\"margin:auto\"> <style type=\"text/css\"> .loader-box{ width:100%; margin:auto; margin-top:50px; text-align:center; } .loader { border-radius: 50%; width: 20px; height: 20px; animation: spin 1s linear infinite; border: 3px solid #12344D; border-top: 3px solid #B3DFFF; display:block; margin: 25px auto; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } #loader-text{ vertical-align:middle; text-align:center; color: #333; display: inline-block; vertical-align: middle; margin-top:-20px; height:100%; } </style> <div class=\"loader-box\"> <div class=\"loader\"></div> <div id=\"loader-text\"> </div> </div></div>";
|
75 |
+
var containerHTML = "<div id=\"fs-webform-container_";
|
76 |
+
containerHTML += webformKey;
|
77 |
+
containerHTML += "\" class=\"fs-webform-container fs_8dd552ab6041bd25d23d8a8467819f701f9196106be0e25edc6870c9cc922bdc\" style=\"display:none;\"></div>";
|
78 |
+
var scriptTag = document.currentScript || document.getElementById("fs_8dd552ab6041bd25d23d8a8467819f701f9196106be0e25edc6870c9cc922bdc") || document.getElementById("fswebforms") || document.getElementById("formservjs");
|
79 |
+
var docHook = scriptTag.parentElement;
|
80 |
+
var content = document.createElement("div");
|
81 |
+
scriptTag.id = webformKey;
|
82 |
+
docHook.appendChild(content);
|
83 |
+
content.innerHTML = loaderHTML+containerHTML;
|
84 |
+
|
85 |
+
var webformOptions = {
|
86 |
+
key: "8dd552ab6041bd25d23d8a8467819f701f9196106be0e25edc6870c9cc922bdc",
|
87 |
+
url: "https://webform.freshsales.io/assets/webforms/8dd552ab6041bd25d23d8a8467819f701f9196106be0e25edc6870c9cc922bdc/10",
|
88 |
+
domainURL: "https://webnus.freshsales.io",
|
89 |
+
format: "js",
|
90 |
+
version: version,
|
91 |
+
formVersion: 10
|
92 |
+
};
|
93 |
+
|
94 |
+
if(window.WebFormQueue){
|
95 |
+
WebFormQueue.add(webformOptions);
|
96 |
+
} else {
|
97 |
+
var script = document.createElement("script");
|
98 |
+
script.src = "https://assets.freshsales.io/assets/webform-6a8bd10d9118645b79d2d3b3a3112e0901bf1beb.js";
|
99 |
+
script.onload = function(){
|
100 |
+
WebFormQueue.add(webformOptions);
|
101 |
+
};
|
102 |
+
var webformContainer = document.getElementById("fs-webform-container_"+webformKey);
|
103 |
+
webformContainer.appendChild(script);
|
104 |
+
}
|
105 |
+
})()
|
106 |
+
</script>';
|
107 |
+
?>
|
108 |
</div>
|
109 |
</div>
|
110 |
<?php if(!$this->getPRO()): ?>
|
app/features/mec/meta_boxes/display_options.php
CHANGED
@@ -1801,7 +1801,7 @@ $upcoming_event_ids = $this->main->get_upcoming_event_ids();
|
|
1801 |
<label class="mec-col-4" for="mec_skin_cover_event_id"><?php _e('Event', 'modern-events-calendar-lite'); ?></label>
|
1802 |
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][cover][event_id]" id="mec_skin_cover_event_id">
|
1803 |
<?php foreach($events as $event): ?>
|
1804 |
-
<option value="<?php echo $event->ID; ?>" <?php if(isset($sk_options_cover['event_id']) and $sk_options_cover['event_id'] == $event->ID) echo 'selected="selected"'; ?>><?php echo $event->post_title; ?></option>
|
1805 |
<?php endforeach; ?>
|
1806 |
</select>
|
1807 |
</div>
|
@@ -1896,7 +1896,7 @@ $upcoming_event_ids = $this->main->get_upcoming_event_ids();
|
|
1896 |
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][countdown][event_id]" id="mec_skin_countdown_event_id">
|
1897 |
<option value="-1" <?php if(isset($sk_options_countdown['event_id']) and $sk_options_countdown['event_id'] == '-1') echo 'selected="selected"'; ?>><?php echo __(' -- Next Upcoming Event -- ', 'modern-events-calendar-lite') ?></option>
|
1898 |
<?php foreach($upcoming_event_ids as $upcoming_event_id): $event = get_post($upcoming_event_id); ?>
|
1899 |
-
<option value="<?php echo $event->ID; ?>" <?php if(isset($sk_options_countdown['event_id']) and $sk_options_countdown['event_id'] == $event->ID) echo 'selected="selected"'; ?>><?php echo $event->post_title; ?></option>
|
1900 |
<?php endforeach; ?>
|
1901 |
</select>
|
1902 |
</div>
|
@@ -1969,7 +1969,7 @@ $upcoming_event_ids = $this->main->get_upcoming_event_ids();
|
|
1969 |
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][available_spot][event_id]" id="mec_skin_available_spot_event_id">
|
1970 |
<option value="-1" <?php if(isset($sk_options_available_spot['event_id']) and $sk_options_available_spot['event_id'] == '-1') echo 'selected="selected"'; ?>><?php echo __(' -- Next Upcoming Event -- ', 'modern-events-calendar-lite') ?></option>
|
1971 |
<?php foreach($events as $event): ?>
|
1972 |
-
<option value="<?php echo $event->ID; ?>" <?php if(isset($sk_options_available_spot['event_id']) and $sk_options_available_spot['event_id'] == $event->ID) echo 'selected="selected"'; ?>><?php echo $event->post_title; ?></option>
|
1973 |
<?php endforeach; ?>
|
1974 |
</select>
|
1975 |
</div>
|
1801 |
<label class="mec-col-4" for="mec_skin_cover_event_id"><?php _e('Event', 'modern-events-calendar-lite'); ?></label>
|
1802 |
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][cover][event_id]" id="mec_skin_cover_event_id">
|
1803 |
<?php foreach($events as $event): ?>
|
1804 |
+
<option value="<?php echo esc_attr($event->ID); ?>" <?php if(isset($sk_options_cover['event_id']) and $sk_options_cover['event_id'] == $event->ID) echo 'selected="selected"'; ?>><?php echo $event->post_title; ?></option>
|
1805 |
<?php endforeach; ?>
|
1806 |
</select>
|
1807 |
</div>
|
1896 |
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][countdown][event_id]" id="mec_skin_countdown_event_id">
|
1897 |
<option value="-1" <?php if(isset($sk_options_countdown['event_id']) and $sk_options_countdown['event_id'] == '-1') echo 'selected="selected"'; ?>><?php echo __(' -- Next Upcoming Event -- ', 'modern-events-calendar-lite') ?></option>
|
1898 |
<?php foreach($upcoming_event_ids as $upcoming_event_id): $event = get_post($upcoming_event_id); ?>
|
1899 |
+
<option value="<?php echo esc_attr($event->ID); ?>" <?php if(isset($sk_options_countdown['event_id']) and $sk_options_countdown['event_id'] == $event->ID) echo 'selected="selected"'; ?>><?php echo $event->post_title; ?></option>
|
1900 |
<?php endforeach; ?>
|
1901 |
</select>
|
1902 |
</div>
|
1969 |
<select class="mec-col-4 wn-mec-select" name="mec[sk-options][available_spot][event_id]" id="mec_skin_available_spot_event_id">
|
1970 |
<option value="-1" <?php if(isset($sk_options_available_spot['event_id']) and $sk_options_available_spot['event_id'] == '-1') echo 'selected="selected"'; ?>><?php echo __(' -- Next Upcoming Event -- ', 'modern-events-calendar-lite') ?></option>
|
1971 |
<?php foreach($events as $event): ?>
|
1972 |
+
<option value="<?php echo esc_attr($event->ID); ?>" <?php if(isset($sk_options_available_spot['event_id']) and $sk_options_available_spot['event_id'] == $event->ID) echo 'selected="selected"'; ?>><?php echo $event->post_title; ?></option>
|
1973 |
<?php endforeach; ?>
|
1974 |
</select>
|
1975 |
</div>
|
app/features/mec/settings.php
CHANGED
@@ -288,6 +288,21 @@ $shortcodes = get_posts(array(
|
|
288 |
</div>
|
289 |
</div>
|
290 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
291 |
</div>
|
292 |
|
293 |
<div id="email_option" class="mec-options-fields">
|
288 |
</div>
|
289 |
</div>
|
290 |
|
291 |
+
<?php /*<div class="mec-form-row" style="padding-bottom: 3px;">
|
292 |
+
<label class="mec-col-3" for="mec_settings_admin_calendar"><?php _e('Admin Calendar', 'modern-events-calendar-lite'); ?></label>
|
293 |
+
<div class="mec-col-9">
|
294 |
+
<label id="mec_settings_admin_calendar" >
|
295 |
+
<input type="hidden" name="mec[settings][admin_calendar]" value="0" />
|
296 |
+
<input value="1" type="checkbox" name="mec[settings][admin_calendar]" <?php if(isset($settings['admin_calendar']) and $settings['admin_calendar']) echo 'checked="checked"'; ?> /> <?php _e('Enable', 'modern-events-calendar-lite'); ?>
|
297 |
+
</label>
|
298 |
+
</div>
|
299 |
+
</div>
|
300 |
+
<div class="mec-form-row">
|
301 |
+
<div class="mec-col-12">
|
302 |
+
<p style="margin-top: 0;"><?php esc_html_e('If enabled, a calendar view will be added with month navigation to the backend event manager.', 'modern-events-calendar-lite'); ?></p>
|
303 |
+
</div>
|
304 |
+
</div>*/ ?>
|
305 |
+
|
306 |
</div>
|
307 |
|
308 |
<div id="email_option" class="mec-options-fields">
|
app/features/mec/support-page.php
CHANGED
@@ -49,7 +49,46 @@ wp_enqueue_script('mec-lity-script', $this->main->asset('packages/lity/lity.min.
|
|
49 |
<?php endif; ?>
|
50 |
|
51 |
<?php if(current_user_can('read')): ?>
|
52 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
<div class="w-row">
|
54 |
<div class="w-col-sm-12">
|
55 |
<div class="w-box support-page searchbox">
|
49 |
<?php endif; ?>
|
50 |
|
51 |
<?php if(current_user_can('read')): ?>
|
52 |
+
<?php
|
53 |
+
echo '
|
54 |
+
<script>
|
55 |
+
(function(){
|
56 |
+
var version = parseInt(Math.random()*10000);
|
57 |
+
var webformKey = "8dd552ab6041bd25d23d8a8467819f701f9196106be0e25edc6870c9cc922bdc_"+version;
|
58 |
+
var loaderHTML = "<div class=\"fs-webform-loader\" style=\"margin:auto\"> <style type=\"text/css\"> .loader-box{ width:100%; margin:auto; margin-top:50px; text-align:center; } .loader { border-radius: 50%; width: 20px; height: 20px; animation: spin 1s linear infinite; border: 3px solid #12344D; border-top: 3px solid #B3DFFF; display:block; margin: 25px auto; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } #loader-text{ vertical-align:middle; text-align:center; color: #333; display: inline-block; vertical-align: middle; margin-top:-20px; height:100%; } </style> <div class=\"loader-box\"> <div class=\"loader\"></div> <div id=\"loader-text\"> </div> </div></div>";
|
59 |
+
var containerHTML = "<div id=\"fs-webform-container_";
|
60 |
+
containerHTML += webformKey;
|
61 |
+
containerHTML += "\" class=\"fs-webform-container fs_8dd552ab6041bd25d23d8a8467819f701f9196106be0e25edc6870c9cc922bdc\" style=\"display:none;\"></div>";
|
62 |
+
var scriptTag = document.currentScript || document.getElementById("fs_8dd552ab6041bd25d23d8a8467819f701f9196106be0e25edc6870c9cc922bdc") || document.getElementById("fswebforms") || document.getElementById("formservjs");
|
63 |
+
var docHook = scriptTag.parentElement;
|
64 |
+
var content = document.createElement("div");
|
65 |
+
scriptTag.id = webformKey;
|
66 |
+
docHook.appendChild(content);
|
67 |
+
content.innerHTML = loaderHTML+containerHTML;
|
68 |
+
|
69 |
+
var webformOptions = {
|
70 |
+
key: "8dd552ab6041bd25d23d8a8467819f701f9196106be0e25edc6870c9cc922bdc",
|
71 |
+
url: "https://webform.freshsales.io/assets/webforms/8dd552ab6041bd25d23d8a8467819f701f9196106be0e25edc6870c9cc922bdc/10",
|
72 |
+
domainURL: "https://webnus.freshsales.io",
|
73 |
+
format: "js",
|
74 |
+
version: version,
|
75 |
+
formVersion: 10
|
76 |
+
};
|
77 |
+
|
78 |
+
if(window.WebFormQueue){
|
79 |
+
WebFormQueue.add(webformOptions);
|
80 |
+
} else {
|
81 |
+
var script = document.createElement("script");
|
82 |
+
script.src = "https://assets.freshsales.io/assets/webform-6a8bd10d9118645b79d2d3b3a3112e0901bf1beb.js";
|
83 |
+
script.onload = function(){
|
84 |
+
WebFormQueue.add(webformOptions);
|
85 |
+
};
|
86 |
+
var webformContainer = document.getElementById("fs-webform-container_"+webformKey);
|
87 |
+
webformContainer.appendChild(script);
|
88 |
+
}
|
89 |
+
})()
|
90 |
+
</script>';
|
91 |
+
?>
|
92 |
<div class="w-row">
|
93 |
<div class="w-col-sm-12">
|
94 |
<div class="w-box support-page searchbox">
|
app/features/popup/event.php
CHANGED
@@ -30,8 +30,9 @@ $dont_show_map = 1;
|
|
30 |
|
31 |
$organizers = get_terms('mec_organizer', array('orderby'=>'name', 'hide_empty'=>'0'));
|
32 |
$organizer_id = 1;
|
33 |
-
$wizard_page = isset($_REQUEST['page']) ? $_REQUEST['page'] : '';
|
34 |
-
$main_page = isset($_REQUEST['post_type']) ? $_REQUEST['post_type'] : '';
|
|
|
35 |
// This date format used for input type of datepicker.
|
36 |
$datepicker_format = (isset($settings['datepicker_format']) and trim($settings['datepicker_format'])) ? $settings['datepicker_format'] : 'Y-m-d';
|
37 |
?>
|
30 |
|
31 |
$organizers = get_terms('mec_organizer', array('orderby'=>'name', 'hide_empty'=>'0'));
|
32 |
$organizer_id = 1;
|
33 |
+
$wizard_page = isset($_REQUEST['page']) ? sanitize_text_field($_REQUEST['page']) : '';
|
34 |
+
$main_page = isset($_REQUEST['post_type']) ? sanitize_text_field($_REQUEST['post_type']) : '';
|
35 |
+
|
36 |
// This date format used for input type of datepicker.
|
37 |
$datepicker_format = (isset($settings['datepicker_format']) and trim($settings['datepicker_format'])) ? $settings['datepicker_format'] : 'Y-m-d';
|
38 |
?>
|
app/features/popup/shortcode.php
CHANGED
@@ -10,8 +10,8 @@ $events = $this->main->get_events();
|
|
10 |
|
11 |
// MEC Settings
|
12 |
$settings = $this->main->get_settings();
|
13 |
-
$wizard_page = isset($_REQUEST['page']) ? $_REQUEST['page'] : '';
|
14 |
-
$main_page = isset($_REQUEST['post_type']) ? $_REQUEST['post_type'] : '';
|
15 |
?>
|
16 |
<div id="mec_popup_shortcode" class="lity-hide">
|
17 |
<div class="mec-steps-container">
|
@@ -494,7 +494,7 @@ $main_page = isset($_REQUEST['post_type']) ? $_REQUEST['post_type'] : '';
|
|
494 |
<h3 for="mec_shortcode_event_id"><?php _e('Select Event', 'modern-events-calendar-lite'); ?></h3>
|
495 |
<select name="shortcode[event]" id="mec_shortcode_event_id" class="mec_shortcode_event_id wn-mec-select-popup">
|
496 |
<?php foreach($events as $event): ?>
|
497 |
-
<option value="<?php echo $event->ID; ?>" <?php if(isset($sk_options_cover['event_id']) and $sk_options_cover['event_id'] == $event->ID) echo 'selected="selected"'; ?>><?php echo $event->post_title; ?></option>
|
498 |
<?php endforeach; ?>
|
499 |
</select>
|
500 |
</div>
|
10 |
|
11 |
// MEC Settings
|
12 |
$settings = $this->main->get_settings();
|
13 |
+
$wizard_page = isset($_REQUEST['page']) ? sanitize_text_field($_REQUEST['page']) : '';
|
14 |
+
$main_page = isset($_REQUEST['post_type']) ? sanitize_text_field($_REQUEST['post_type']) : '';
|
15 |
?>
|
16 |
<div id="mec_popup_shortcode" class="lity-hide">
|
17 |
<div class="mec-steps-container">
|
494 |
<h3 for="mec_shortcode_event_id"><?php _e('Select Event', 'modern-events-calendar-lite'); ?></h3>
|
495 |
<select name="shortcode[event]" id="mec_shortcode_event_id" class="mec_shortcode_event_id wn-mec-select-popup">
|
496 |
<?php foreach($events as $event): ?>
|
497 |
+
<option value="<?php echo esc_attr($event->ID); ?>" <?php if(isset($sk_options_cover['event_id']) and $sk_options_cover['event_id'] == $event->ID) echo 'selected="selected"'; ?>><?php echo $event->post_title; ?></option>
|
498 |
<?php endforeach; ?>
|
499 |
</select>
|
500 |
</div>
|
app/features/search.php
CHANGED
@@ -278,8 +278,8 @@ class MEC_feature_search extends MEC_base
|
|
278 |
$mec_queries[] = array(
|
279 |
'taxonomy' => 'mec_location',
|
280 |
'field' => 'id',
|
281 |
-
'terms' => array($_GET['location']),
|
282 |
-
'operator'=> 'IN'
|
283 |
);
|
284 |
}
|
285 |
|
@@ -288,8 +288,8 @@ class MEC_feature_search extends MEC_base
|
|
288 |
$mec_queries[] = array(
|
289 |
'taxonomy' => 'mec_category',
|
290 |
'field' => 'id',
|
291 |
-
'terms' => array($_GET['category']),
|
292 |
-
'operator'=> 'IN'
|
293 |
);
|
294 |
}
|
295 |
|
@@ -298,8 +298,8 @@ class MEC_feature_search extends MEC_base
|
|
298 |
$mec_queries[] = array(
|
299 |
'taxonomy' => 'mec_organizer',
|
300 |
'field' => 'id',
|
301 |
-
'terms' => array($_GET['organizer']),
|
302 |
-
'operator'=> 'IN'
|
303 |
);
|
304 |
}
|
305 |
|
@@ -308,14 +308,14 @@ class MEC_feature_search extends MEC_base
|
|
308 |
$mec_queries[] = array(
|
309 |
'taxonomy' => 'mec_speaker',
|
310 |
'field' => 'id',
|
311 |
-
'terms' => array($_GET['speaker']),
|
312 |
-
'operator'=> 'IN'
|
313 |
);
|
314 |
}
|
315 |
|
316 |
if(!empty($_GET['tag']))
|
317 |
{
|
318 |
-
$term = get_term_by('id', $_GET['tag'], apply_filters('mec_taxonomy_tag', ''));
|
319 |
if($term) $mec_tag_query = $term->slug;
|
320 |
}
|
321 |
|
@@ -324,8 +324,8 @@ class MEC_feature_search extends MEC_base
|
|
324 |
$mec_queries[] = array(
|
325 |
'taxonomy' => 'mec_label',
|
326 |
'field' => 'id',
|
327 |
-
'terms' => array($_GET['label']),
|
328 |
-
'operator'=> 'IN'
|
329 |
);
|
330 |
}
|
331 |
|
278 |
$mec_queries[] = array(
|
279 |
'taxonomy' => 'mec_location',
|
280 |
'field' => 'id',
|
281 |
+
'terms' => array(sanitize_text_field($_GET['location'])),
|
282 |
+
'operator' => 'IN'
|
283 |
);
|
284 |
}
|
285 |
|
288 |
$mec_queries[] = array(
|
289 |
'taxonomy' => 'mec_category',
|
290 |
'field' => 'id',
|
291 |
+
'terms' => array(sanitize_text_field($_GET['category'])),
|
292 |
+
'operator' => 'IN'
|
293 |
);
|
294 |
}
|
295 |
|
298 |
$mec_queries[] = array(
|
299 |
'taxonomy' => 'mec_organizer',
|
300 |
'field' => 'id',
|
301 |
+
'terms' => array(sanitize_text_field($_GET['organizer'])),
|
302 |
+
'operator' => 'IN'
|
303 |
);
|
304 |
}
|
305 |
|
308 |
$mec_queries[] = array(
|
309 |
'taxonomy' => 'mec_speaker',
|
310 |
'field' => 'id',
|
311 |
+
'terms' => array(sanitize_text_field($_GET['speaker'])),
|
312 |
+
'operator' => 'IN'
|
313 |
);
|
314 |
}
|
315 |
|
316 |
if(!empty($_GET['tag']))
|
317 |
{
|
318 |
+
$term = get_term_by('id', sanitize_text_field($_GET['tag']), apply_filters('mec_taxonomy_tag', ''));
|
319 |
if($term) $mec_tag_query = $term->slug;
|
320 |
}
|
321 |
|
324 |
$mec_queries[] = array(
|
325 |
'taxonomy' => 'mec_label',
|
326 |
'field' => 'id',
|
327 |
+
'terms' => array(sanitize_text_field($_GET['label'])),
|
328 |
+
'operator' => 'IN'
|
329 |
);
|
330 |
}
|
331 |
|
app/libraries/base.php
CHANGED
@@ -172,7 +172,7 @@ abstract class MEC_base extends MEC
|
|
172 |
*/
|
173 |
final public function getPRO()
|
174 |
{
|
175 |
-
return MEC::getInstance(
|
176 |
}
|
177 |
|
178 |
/**
|
172 |
*/
|
173 |
final public function getPRO()
|
174 |
{
|
175 |
+
return MEC::getInstance('app.libraries.pro');
|
176 |
}
|
177 |
|
178 |
/**
|
app/libraries/book.php
CHANGED
@@ -435,8 +435,8 @@ class MEC_book extends MEC_base
|
|
435 |
{
|
436 |
// Work or don't work auto confirmation when pay through pay locally payment.
|
437 |
$gateways_settings = get_option('mec_options', array());
|
438 |
-
$pay_locally_gateway = ((isset($_GET['action']) and
|
439 |
-
$bank_transfer_gateway = ((isset($_GET['action']) and
|
440 |
|
441 |
if(!$pay_locally_gateway and !$bank_transfer_gateway) $this->confirm($book_id, 'auto');
|
442 |
}
|
@@ -738,7 +738,7 @@ class MEC_book extends MEC_base
|
|
738 |
$availability = array();
|
739 |
foreach($dates as $date)
|
740 |
{
|
741 |
-
$ex = explode(':', $date);
|
742 |
$date = $ex[0];
|
743 |
|
744 |
$a = $this->get_tickets_availability($event_id, $date);
|
435 |
{
|
436 |
// Work or don't work auto confirmation when pay through pay locally payment.
|
437 |
$gateways_settings = get_option('mec_options', array());
|
438 |
+
$pay_locally_gateway = ((isset($_GET['action']) and sanitize_text_field($_GET['action']) == 'mec_do_transaction_pay_locally') and (isset($gateways_settings['gateways'][1]['disable_auto_confirmation']) and trim($gateways_settings['gateways'][1]['disable_auto_confirmation']))) ? true : false;
|
439 |
+
$bank_transfer_gateway = ((isset($_GET['action']) and sanitize_text_field($_GET['action']) == 'mec_do_transaction_bank_transfer') and (isset($gateways_settings['gateways'][8]['disable_auto_confirmation']) and trim($gateways_settings['gateways'][8]['disable_auto_confirmation']))) ? true : false;
|
440 |
|
441 |
if(!$pay_locally_gateway and !$bank_transfer_gateway) $this->confirm($book_id, 'auto');
|
442 |
}
|
738 |
$availability = array();
|
739 |
foreach($dates as $date)
|
740 |
{
|
741 |
+
$ex = explode(':', sanitize_text_field($date));
|
742 |
$date = $ex[0];
|
743 |
|
744 |
$a = $this->get_tickets_availability($event_id, $date);
|
app/libraries/cart.php
CHANGED
@@ -107,7 +107,7 @@ class MEC_cart extends MEC_base
|
|
107 |
|
108 |
public function get_cart_id()
|
109 |
{
|
110 |
-
$cart_id = (isset($_COOKIE['mec_cart']) and trim($_COOKIE['mec_cart'])) ? $_COOKIE['mec_cart'] : NULL;
|
111 |
|
112 |
if(!$cart_id and !headers_sent())
|
113 |
{
|
107 |
|
108 |
public function get_cart_id()
|
109 |
{
|
110 |
+
$cart_id = (isset($_COOKIE['mec_cart']) and trim($_COOKIE['mec_cart'])) ? sanitize_text_field($_COOKIE['mec_cart']) : NULL;
|
111 |
|
112 |
if(!$cart_id and !headers_sent())
|
113 |
{
|
app/libraries/factory.php
CHANGED
@@ -59,7 +59,8 @@ class MEC_factory extends MEC_base
|
|
59 |
|
60 |
// Register MEC function to be called in WordPress footer hook
|
61 |
$this->action('wp_footer', array($this, 'load_footer'), 9999);
|
62 |
-
|
|
|
63 |
// Parse WordPress query
|
64 |
$this->action('parse_query', array($this->parser, 'WPQ_parse'), 99);
|
65 |
|
@@ -1144,7 +1145,7 @@ class MEC_factory extends MEC_base
|
|
1144 |
$screen = get_current_screen();
|
1145 |
|
1146 |
$base = $screen->base;
|
1147 |
-
$page = isset($_REQUEST['page']) ? $_REQUEST['page'] : '';
|
1148 |
$post_type = $screen->post_type;
|
1149 |
$taxonomy = $screen->taxonomy;
|
1150 |
|
59 |
|
60 |
// Register MEC function to be called in WordPress footer hook
|
61 |
$this->action('wp_footer', array($this, 'load_footer'), 9999);
|
62 |
+
$this->action('admin_footer', array($this, 'load_footer'), 9999);
|
63 |
+
|
64 |
// Parse WordPress query
|
65 |
$this->action('parse_query', array($this->parser, 'WPQ_parse'), 99);
|
66 |
|
1145 |
$screen = get_current_screen();
|
1146 |
|
1147 |
$base = $screen->base;
|
1148 |
+
$page = isset($_REQUEST['page']) ? sanitize_text_field($_REQUEST['page']) : '';
|
1149 |
$post_type = $screen->post_type;
|
1150 |
$taxonomy = $screen->taxonomy;
|
1151 |
|
app/libraries/hourlyschedule.php
CHANGED
@@ -28,7 +28,7 @@ class MEC_hourlyschedule extends MEC_base
|
|
28 |
$hourly_schedules = $args['hourly_schedules'];
|
29 |
$speakers_status = $args['speakers_status'];
|
30 |
$speakers = $args['speakers'];
|
31 |
-
$wrapper_class = (isset($args['wrapper_class']) ? $args['wrapper_class'] : 'mec-meta-box-fields mec-event-tab-content');
|
32 |
$prefix = (isset($args['prefix']) ? $args['prefix'] : '');
|
33 |
$name_prefix = ((isset($args['name_prefix']) and trim($args['name_prefix'])) ? $args['name_prefix'] : 'mec');
|
34 |
?>
|
28 |
$hourly_schedules = $args['hourly_schedules'];
|
29 |
$speakers_status = $args['speakers_status'];
|
30 |
$speakers = $args['speakers'];
|
31 |
+
$wrapper_class = (isset($args['wrapper_class']) ? $args['wrapper_class'] : 'mec-meta-box-fields mec-event-tab-content mec-fes-hourly-schedule');
|
32 |
$prefix = (isset($args['prefix']) ? $args['prefix'] : '');
|
33 |
$name_prefix = ((isset($args['name_prefix']) and trim($args['name_prefix'])) ? $args['name_prefix'] : 'mec');
|
34 |
?>
|
app/libraries/main.php
CHANGED
@@ -1076,63 +1076,27 @@ class MEC_main extends MEC_base
|
|
1076 |
{
|
1077 |
$get_cmsg_display_option = get_option('mec_custom_msg_2_display_option');
|
1078 |
$get_mec_saved_message_time = get_option('mec_saved_message_2_time');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1079 |
|
1080 |
if(!isset($get_mec_saved_message_time)):
|
1081 |
-
$
|
1082 |
-
|
1083 |
-
|
1084 |
-
$ctx = stream_context_create(array('http'=> array( 'timeout' => 20 ),'ssl'=>array( 'verify_peer'=>false, 'verify_peer_name'=>false)));
|
1085 |
-
$get_data = file_get_contents($data_url, false, $ctx);
|
1086 |
-
if ( $get_data !== false AND !empty($get_data) )
|
1087 |
-
{
|
1088 |
-
$obj = json_decode($get_data);
|
1089 |
-
$i = count((array)$obj);
|
1090 |
-
}
|
1091 |
-
}
|
1092 |
-
elseif ( function_exists('curl_version') )
|
1093 |
-
{
|
1094 |
-
$ch = curl_init();
|
1095 |
-
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
1096 |
-
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
1097 |
-
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0);
|
1098 |
-
curl_setopt($ch, CURLOPT_TIMEOUT, 20); //timeout in seconds
|
1099 |
-
curl_setopt($ch, CURLOPT_URL, $data_url);
|
1100 |
-
$result = curl_exec($ch);
|
1101 |
-
curl_close($ch);
|
1102 |
-
$obj = json_decode($result);
|
1103 |
-
$i = count((array)$obj);
|
1104 |
-
} else {
|
1105 |
-
$obj = '';
|
1106 |
-
}
|
1107 |
update_option('mec_saved_message_2_time', date("Y-m-d"));
|
1108 |
else:
|
1109 |
if ( strtotime(date("Y-m-d")) > strtotime($get_mec_saved_message_time) ) {
|
1110 |
-
$
|
1111 |
-
|
1112 |
-
|
1113 |
-
$ctx = stream_context_create(array('http'=> array( 'timeout' => 20 ),'ssl'=>array( 'verify_peer'=>false, 'verify_peer_name'=>false)));
|
1114 |
-
$get_data = file_get_contents($data_url, false, $ctx);
|
1115 |
-
if ( $get_data !== false AND !empty($get_data) )
|
1116 |
-
{
|
1117 |
-
$obj = json_decode($get_data);
|
1118 |
-
$i = count((array)$obj);
|
1119 |
-
}
|
1120 |
-
}
|
1121 |
-
elseif ( function_exists('curl_version') )
|
1122 |
-
{
|
1123 |
-
$ch = curl_init();
|
1124 |
-
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
1125 |
-
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
1126 |
-
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0);
|
1127 |
-
curl_setopt($ch, CURLOPT_TIMEOUT, 20); //timeout in seconds
|
1128 |
-
curl_setopt($ch, CURLOPT_URL, $data_url);
|
1129 |
-
$result = curl_exec($ch);
|
1130 |
-
curl_close($ch);
|
1131 |
-
$obj = json_decode($result);
|
1132 |
-
$i = count((array)$obj);
|
1133 |
-
} else {
|
1134 |
-
$obj = '';
|
1135 |
-
}
|
1136 |
update_option('mec_saved_message_2_time', date("Y-m-d"));
|
1137 |
} else {
|
1138 |
$mec_custom_msg_html = get_option('mec_custom_msg_2_html');
|
@@ -1182,63 +1146,26 @@ class MEC_main extends MEC_base
|
|
1182 |
{
|
1183 |
$get_cmsg_display_option = get_option('mec_custom_msg_display_option');
|
1184 |
$get_mec_saved_message_time = get_option('mec_saved_message_time');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1185 |
|
1186 |
if(!isset($get_mec_saved_message_time)):
|
1187 |
-
$
|
1188 |
-
|
1189 |
-
|
1190 |
-
$ctx = stream_context_create(array('http'=> array( 'timeout' => 20 ),'ssl'=>array( 'verify_peer'=>false, 'verify_peer_name'=>false)));
|
1191 |
-
$get_data = file_get_contents($data_url, false, $ctx);
|
1192 |
-
if ( $get_data !== false AND !empty($get_data) )
|
1193 |
-
{
|
1194 |
-
$obj = json_decode($get_data);
|
1195 |
-
$i = count((array)$obj);
|
1196 |
-
}
|
1197 |
-
}
|
1198 |
-
elseif ( function_exists('curl_version') )
|
1199 |
-
{
|
1200 |
-
$ch = curl_init();
|
1201 |
-
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
1202 |
-
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
1203 |
-
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0);
|
1204 |
-
curl_setopt($ch, CURLOPT_TIMEOUT, 20); //timeout in seconds
|
1205 |
-
curl_setopt($ch, CURLOPT_URL, $data_url);
|
1206 |
-
$result = curl_exec($ch);
|
1207 |
-
curl_close($ch);
|
1208 |
-
$obj = json_decode($result);
|
1209 |
-
$i = count((array)$obj);
|
1210 |
-
} else {
|
1211 |
-
$obj = '';
|
1212 |
-
}
|
1213 |
update_option('mec_saved_message_time', date("Y-m-d"));
|
1214 |
else:
|
1215 |
if ( strtotime(date("Y-m-d")) > strtotime($get_mec_saved_message_time) ) {
|
1216 |
-
$
|
1217 |
-
|
1218 |
-
|
1219 |
-
$ctx = stream_context_create(array('http'=> array( 'timeout' => 20 ),'ssl'=> array( 'verify_peer'=> false, 'verify_peer_name'=> false)));
|
1220 |
-
$get_data = file_get_contents($data_url, false, $ctx);
|
1221 |
-
if ( $get_data !== false AND !empty($get_data) )
|
1222 |
-
{
|
1223 |
-
$obj = json_decode($get_data);
|
1224 |
-
$i = count((array)$obj);
|
1225 |
-
}
|
1226 |
-
}
|
1227 |
-
elseif ( function_exists('curl_version') )
|
1228 |
-
{
|
1229 |
-
$ch = curl_init();
|
1230 |
-
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
1231 |
-
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
1232 |
-
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0);
|
1233 |
-
curl_setopt($ch, CURLOPT_TIMEOUT, 20); //timeout in seconds
|
1234 |
-
curl_setopt($ch, CURLOPT_URL, $data_url);
|
1235 |
-
$result = curl_exec($ch);
|
1236 |
-
curl_close($ch);
|
1237 |
-
$obj = json_decode($result);
|
1238 |
-
$i = count((array)$obj);
|
1239 |
-
} else {
|
1240 |
-
$obj = '';
|
1241 |
-
}
|
1242 |
update_option('mec_saved_message_time', date("Y-m-d"));
|
1243 |
} else {
|
1244 |
$mec_custom_msg_html = get_option('mec_custom_msg_html');
|
@@ -2969,7 +2896,7 @@ class MEC_main extends MEC_base
|
|
2969 |
|
2970 |
// Invoice Key
|
2971 |
$invoice_key = isset($transaction['invoice_key']) ? $transaction['invoice_key'] : NULL;
|
2972 |
-
if($invoice_key and (!isset($_GET['mec-key']) or (isset($_GET['mec-key']) and $_GET['mec-key'] != $invoice_key)))
|
2973 |
{
|
2974 |
wp_die(__("You don't have access to view this invoice!", 'modern-events-calendar-lite'), __('Key is invalid.', 'modern-events-calendar-lite'));
|
2975 |
exit;
|
@@ -8562,12 +8489,12 @@ class MEC_main extends MEC_base
|
|
8562 |
public function get_start_time_of_multiple_days($event_id, $time)
|
8563 |
{
|
8564 |
if(!trim($time)) return NULL;
|
8565 |
-
|
8566 |
// Cache
|
8567 |
$cache = $this->getCache();
|
8568 |
|
8569 |
// Get Start Time
|
8570 |
-
$new_time = $cache->rememberOnce(
|
8571 |
{
|
8572 |
// Database
|
8573 |
$db = $this->getDB();
|
@@ -9528,7 +9455,7 @@ class MEC_main extends MEC_base
|
|
9528 |
public function preview()
|
9529 |
{
|
9530 |
// Elementor
|
9531 |
-
if(isset($_GET['action']) and $_GET['action'] === 'elementor') return true;
|
9532 |
|
9533 |
// Default
|
9534 |
return false;
|
1076 |
{
|
1077 |
$get_cmsg_display_option = get_option('mec_custom_msg_2_display_option');
|
1078 |
$get_mec_saved_message_time = get_option('mec_saved_message_2_time');
|
1079 |
+
$data_url = 'https://webnus.net/modern-events-calendar/addons-api/mec-extra-content-2.json';
|
1080 |
+
$args = array(
|
1081 |
+
'timeout' => '5',
|
1082 |
+
'redirection' => '5',
|
1083 |
+
'httpversion' => '1.0',
|
1084 |
+
'blocking' => true,
|
1085 |
+
'headers' => array(),
|
1086 |
+
'cookies' => array(),
|
1087 |
+
);
|
1088 |
+
|
1089 |
|
1090 |
if(!isset($get_mec_saved_message_time)):
|
1091 |
+
$response = wp_remote_get( $data_url,$args );
|
1092 |
+
$body = wp_remote_retrieve_body( $response );
|
1093 |
+
$obj = json_decode($body);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1094 |
update_option('mec_saved_message_2_time', date("Y-m-d"));
|
1095 |
else:
|
1096 |
if ( strtotime(date("Y-m-d")) > strtotime($get_mec_saved_message_time) ) {
|
1097 |
+
$response = wp_remote_get( $data_url,$args );
|
1098 |
+
$body = wp_remote_retrieve_body( $response );
|
1099 |
+
$obj = json_decode($body);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1100 |
update_option('mec_saved_message_2_time', date("Y-m-d"));
|
1101 |
} else {
|
1102 |
$mec_custom_msg_html = get_option('mec_custom_msg_2_html');
|
1146 |
{
|
1147 |
$get_cmsg_display_option = get_option('mec_custom_msg_display_option');
|
1148 |
$get_mec_saved_message_time = get_option('mec_saved_message_time');
|
1149 |
+
$data_url = 'https://webnus.net/modern-events-calendar/addons-api/mec-extra-content.json';
|
1150 |
+
$args = array(
|
1151 |
+
'timeout' => '5',
|
1152 |
+
'redirection' => '5',
|
1153 |
+
'httpversion' => '1.0',
|
1154 |
+
'blocking' => true,
|
1155 |
+
'headers' => array(),
|
1156 |
+
'cookies' => array(),
|
1157 |
+
);
|
1158 |
|
1159 |
if(!isset($get_mec_saved_message_time)):
|
1160 |
+
$response = wp_remote_get( $data_url,$args );
|
1161 |
+
$body = wp_remote_retrieve_body( $response );
|
1162 |
+
$obj = json_decode($body);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1163 |
update_option('mec_saved_message_time', date("Y-m-d"));
|
1164 |
else:
|
1165 |
if ( strtotime(date("Y-m-d")) > strtotime($get_mec_saved_message_time) ) {
|
1166 |
+
$response = wp_remote_get( $data_url,$args );
|
1167 |
+
$body = wp_remote_retrieve_body( $response );
|
1168 |
+
$obj = json_decode($body);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1169 |
update_option('mec_saved_message_time', date("Y-m-d"));
|
1170 |
} else {
|
1171 |
$mec_custom_msg_html = get_option('mec_custom_msg_html');
|
2896 |
|
2897 |
// Invoice Key
|
2898 |
$invoice_key = isset($transaction['invoice_key']) ? $transaction['invoice_key'] : NULL;
|
2899 |
+
if($invoice_key and (!isset($_GET['mec-key']) or (isset($_GET['mec-key']) and sanitize_text_field($_GET['mec-key']) != $invoice_key)))
|
2900 |
{
|
2901 |
wp_die(__("You don't have access to view this invoice!", 'modern-events-calendar-lite'), __('Key is invalid.', 'modern-events-calendar-lite'));
|
2902 |
exit;
|
8489 |
public function get_start_time_of_multiple_days($event_id, $time)
|
8490 |
{
|
8491 |
if(!trim($time)) return NULL;
|
8492 |
+
|
8493 |
// Cache
|
8494 |
$cache = $this->getCache();
|
8495 |
|
8496 |
// Get Start Time
|
8497 |
+
$new_time = $cache->rememberOnce('start-multiple-days-start-time'.$event_id.':'.$time, function() use($event_id, $time)
|
8498 |
{
|
8499 |
// Database
|
8500 |
$db = $this->getDB();
|
9455 |
public function preview()
|
9456 |
{
|
9457 |
// Elementor
|
9458 |
+
if(isset($_GET['action']) and sanitize_text_field($_GET['action']) === 'elementor') return true;
|
9459 |
|
9460 |
// Default
|
9461 |
return false;
|
app/modules/booking/steps/checkout.php
CHANGED
@@ -107,7 +107,7 @@ if($mecFluentEnable)
|
|
107 |
<div class="mec-book-form-coupon">
|
108 |
<form id="mec_book_form_coupon<?php echo $uniqueid; ?>" onsubmit="mec_book_apply_coupon<?php echo $uniqueid; ?>(); return false;">
|
109 |
<input type="text" name="coupon" title="<?php esc_attr_e('Discount Coupon', 'modern-events-calendar-lite'); ?>" placeholder="<?php esc_attr_e('Discount Coupon', 'modern-events-calendar-lite'); ?>" />
|
110 |
-
<input type="hidden" name="transaction_id" value="<?php echo $transaction_id; ?>" />
|
111 |
<input type="hidden" name="action" value="mec_apply_coupon" />
|
112 |
<?php wp_nonce_field('mec_apply_coupon_'.$transaction_id); ?>
|
113 |
<button type="submit"><?php _e('Apply Coupon', 'modern-events-calendar-lite'); ?></button>
|
@@ -121,7 +121,7 @@ if($mecFluentEnable)
|
|
121 |
<div class="mec-book-form-gateway-label">
|
122 |
<label>
|
123 |
<?php if(count($active_gateways) > 1): ?>
|
124 |
-
<input type="radio" name="book[gateway]" onchange="mec_gateway_selected(this.value); mec_adjust_booking_fees<?php echo $uniqueid; ?>(this.value, '<?php echo $transaction_id; ?>');" value="<?php echo $gateway->id(); ?>" />
|
125 |
<?php endif; ?>
|
126 |
<?php echo $gateway->title(); ?>
|
127 |
</label>
|
@@ -129,7 +129,7 @@ if($mecFluentEnable)
|
|
129 |
<?php endforeach; ?>
|
130 |
|
131 |
<?php foreach($active_gateways as $gateway): ?>
|
132 |
-
<div class="mec-book-form-gateway-checkout <?php echo (count($active_gateways) == 1 ? '' : 'mec-util-hidden'); ?>" id="mec_book_form_gateway_checkout<?php echo $gateway->id(); ?>">
|
133 |
<?php echo $gateway->comment(); ?>
|
134 |
<?php $gateway->checkout_form($transaction_id); ?>
|
135 |
</div>
|
@@ -139,7 +139,7 @@ if($mecFluentEnable)
|
|
139 |
<form id="mec_book_form_free_booking<?php echo $uniqueid; ?>" class="mec-util-hidden mec-click-next" onsubmit="mec_book_free<?php echo $uniqueid; ?>(); return false;">
|
140 |
<div class="mec-form-row">
|
141 |
<input type="hidden" name="action" value="mec_do_transaction_free" />
|
142 |
-
<input type="hidden" name="transaction_id" value="<?php echo $transaction_id; ?>" />
|
143 |
<input type="hidden" name="gateway_id" value="4" />
|
144 |
<input type="hidden" name="uniqueid" value="<?php echo $uniqueid; ?>" />
|
145 |
<?php wp_nonce_field('mec_transaction_form_'.$transaction_id); ?>
|
@@ -151,7 +151,7 @@ if($mecFluentEnable)
|
|
151 |
<script>
|
152 |
jQuery(document).ready(function()
|
153 |
{
|
154 |
-
mec_adjust_booking_fees<?php echo $uniqueid; ?>(<?php echo $first_gateway_id; ?>, '<?php echo $transaction_id; ?>');
|
155 |
});
|
156 |
</script>
|
157 |
<?php endif; ?>
|
107 |
<div class="mec-book-form-coupon">
|
108 |
<form id="mec_book_form_coupon<?php echo $uniqueid; ?>" onsubmit="mec_book_apply_coupon<?php echo $uniqueid; ?>(); return false;">
|
109 |
<input type="text" name="coupon" title="<?php esc_attr_e('Discount Coupon', 'modern-events-calendar-lite'); ?>" placeholder="<?php esc_attr_e('Discount Coupon', 'modern-events-calendar-lite'); ?>" />
|
110 |
+
<input type="hidden" name="transaction_id" value="<?php echo esc_attr($transaction_id); ?>" />
|
111 |
<input type="hidden" name="action" value="mec_apply_coupon" />
|
112 |
<?php wp_nonce_field('mec_apply_coupon_'.$transaction_id); ?>
|
113 |
<button type="submit"><?php _e('Apply Coupon', 'modern-events-calendar-lite'); ?></button>
|
121 |
<div class="mec-book-form-gateway-label">
|
122 |
<label>
|
123 |
<?php if(count($active_gateways) > 1): ?>
|
124 |
+
<input type="radio" name="book[gateway]" onchange="mec_gateway_selected(this.value); mec_adjust_booking_fees<?php echo $uniqueid; ?>(this.value, '<?php echo esc_attr($transaction_id); ?>');" value="<?php echo esc_attr($gateway->id()); ?>" />
|
125 |
<?php endif; ?>
|
126 |
<?php echo $gateway->title(); ?>
|
127 |
</label>
|
129 |
<?php endforeach; ?>
|
130 |
|
131 |
<?php foreach($active_gateways as $gateway): ?>
|
132 |
+
<div class="mec-book-form-gateway-checkout <?php echo (count($active_gateways) == 1 ? '' : 'mec-util-hidden'); ?>" id="mec_book_form_gateway_checkout<?php echo esc_attr($gateway->id()); ?>">
|
133 |
<?php echo $gateway->comment(); ?>
|
134 |
<?php $gateway->checkout_form($transaction_id); ?>
|
135 |
</div>
|
139 |
<form id="mec_book_form_free_booking<?php echo $uniqueid; ?>" class="mec-util-hidden mec-click-next" onsubmit="mec_book_free<?php echo $uniqueid; ?>(); return false;">
|
140 |
<div class="mec-form-row">
|
141 |
<input type="hidden" name="action" value="mec_do_transaction_free" />
|
142 |
+
<input type="hidden" name="transaction_id" value="<?php echo esc_attr($transaction_id); ?>" />
|
143 |
<input type="hidden" name="gateway_id" value="4" />
|
144 |
<input type="hidden" name="uniqueid" value="<?php echo $uniqueid; ?>" />
|
145 |
<?php wp_nonce_field('mec_transaction_form_'.$transaction_id); ?>
|
151 |
<script>
|
152 |
jQuery(document).ready(function()
|
153 |
{
|
154 |
+
mec_adjust_booking_fees<?php echo $uniqueid; ?>(<?php echo $first_gateway_id; ?>, '<?php echo esc_js($transaction_id); ?>');
|
155 |
});
|
156 |
</script>
|
157 |
<?php endif; ?>
|
app/modules/booking/steps/form.php
CHANGED
@@ -69,7 +69,7 @@ if(!$mec_email)
|
|
69 |
'label' => esc_html__('Email', 'modern-events-calendar-lite'),
|
70 |
);
|
71 |
}
|
72 |
-
|
73 |
?>
|
74 |
<form id="mec_book_form<?php echo $uniqueid; ?>" class="mec-booking-form-container row" onsubmit="mec_book_form_submit(event, <?php echo $uniqueid; ?>);" novalidate="novalidate" enctype="multipart/form-data" method="post">
|
75 |
<h4><?php echo apply_filters('mec-booking-attendees-title', __('Attendee\'s Form', 'modern-events-calendar-lite'), $event_id) ?></h4>
|
@@ -175,13 +175,19 @@ if(!$mec_email)
|
|
175 |
foreach ($tickets as $ticket_id => $count) : if (!$count) continue;
|
176 |
$ticket = $event_tickets[$ticket_id];
|
177 |
for ($i = 1; $i <= $count; $i++) : $j++;
|
178 |
-
$
|
|
|
179 |
<li class="mec-book-ticket-container <?php echo (($j > 1 and $first_for_all) ? 'mec-util-hidden' : ''); ?>">
|
180 |
<?php if (!empty($ticket['name']) || !empty($this->book->get_ticket_price_label($ticket, current_time('Y-m-d'), $event_id))) : ?>
|
181 |
<h4 class="col-md-12">
|
182 |
-
<?php if
|
183 |
<span class="mec-ticket-name"><?php echo __($ticket['name'], 'modern-events-calendar-lite'); ?></span>
|
184 |
-
<span class="mec-ticket-price"
|
|
|
|
|
|
|
|
|
|
|
185 |
</h4>
|
186 |
<?php endif; ?>
|
187 |
|
@@ -572,14 +578,11 @@ if(!$mec_email)
|
|
572 |
display: block
|
573 |
}
|
574 |
</style>
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
});
|
585 |
-
</script>
|
69 |
'label' => esc_html__('Email', 'modern-events-calendar-lite'),
|
70 |
);
|
71 |
}
|
72 |
+
wp_enqueue_script('mec-nice-select', $this->main->asset('js/jquery.nice-select.min.js'));
|
73 |
?>
|
74 |
<form id="mec_book_form<?php echo $uniqueid; ?>" class="mec-booking-form-container row" onsubmit="mec_book_form_submit(event, <?php echo $uniqueid; ?>);" novalidate="novalidate" enctype="multipart/form-data" method="post">
|
75 |
<h4><?php echo apply_filters('mec-booking-attendees-title', __('Attendee\'s Form', 'modern-events-calendar-lite'), $event_id) ?></h4>
|
175 |
foreach ($tickets as $ticket_id => $count) : if (!$count) continue;
|
176 |
$ticket = $event_tickets[$ticket_id];
|
177 |
for ($i = 1; $i <= $count; $i++) : $j++;
|
178 |
+
$ticket_price = $this->book->get_ticket_price($ticket, current_time('Y-m-d'), $event_id);
|
179 |
+
if(is_numeric($ticket_price)) $total_ticket_prices += $ticket_price; ?>
|
180 |
<li class="mec-book-ticket-container <?php echo (($j > 1 and $first_for_all) ? 'mec-util-hidden' : ''); ?>">
|
181 |
<?php if (!empty($ticket['name']) || !empty($this->book->get_ticket_price_label($ticket, current_time('Y-m-d'), $event_id))) : ?>
|
182 |
<h4 class="col-md-12">
|
183 |
+
<?php if($attendee_counter == 1): ?><span class="mec-ticket-attendee-counter"><?php printf(__('Attendee #%s details — ', 'modern-events-calendar-lite'), $i); ?></span><?php endif; ?>
|
184 |
<span class="mec-ticket-name"><?php echo __($ticket['name'], 'modern-events-calendar-lite'); ?></span>
|
185 |
+
<span class="mec-ticket-price">
|
186 |
+
<?php
|
187 |
+
echo $this->book->get_ticket_price($ticket, current_time('Y-m-d'), $event_id);
|
188 |
+
echo $this->book->get_ticket_price_label($ticket, current_time('Y-m-d'), $event_id);
|
189 |
+
?>
|
190 |
+
</span>
|
191 |
</h4>
|
192 |
<?php endif; ?>
|
193 |
|
578 |
display: block
|
579 |
}
|
580 |
</style>
|
581 |
+
<?php wp_add_inline_script( 'mec-nice-select', '
|
582 |
+
jQuery(document).ready(function()
|
583 |
+
{
|
584 |
+
if(jQuery(".mec-booking-shortcode").length < 0) return;
|
585 |
+
|
586 |
+
// Events
|
587 |
+
jQuery(".mec-booking-shortcode").find("select").niceSelect();
|
588 |
+
});' ) ?>
|
|
|
|
|
|
app/modules/booking/steps/tickets.php
CHANGED
@@ -104,7 +104,8 @@ if($total_spots > 0) $available_spots = min($available_spots, $total_spots);
|
|
104 |
$date_selection = (isset($settings['booking_date_selection']) and trim($settings['booking_date_selection'])) ? $settings['booking_date_selection'] : 'dropdown';
|
105 |
|
106 |
// Modal Booking
|
107 |
-
$modal_booking = (isset($_GET['method']) and $_GET['method'] === 'mec-booking-modal');
|
|
|
108 |
?>
|
109 |
<form id="mec_book_form<?php echo $uniqueid; ?>" onsubmit="mec_book_form_submit(event, <?php echo $uniqueid; ?>);">
|
110 |
<h4><?php echo ($from_shortcode ? $event->data->post->post_title : __('Book Event', 'modern-events-calendar-lite')); ?></h4>
|
@@ -158,7 +159,12 @@ $modal_booking = (isset($_GET['method']) and $_GET['method'] === 'mec-booking-mo
|
|
158 |
<div class="mec-event-ticket mec-event-ticket<?php echo $ticket_limit; ?>" id="mec_event_ticket<?php echo $ticket_id; ?>">
|
159 |
<div class="mec-ticket-available-spots <?php echo ($ticket_limit == '0' ? 'mec-util-hidden' : ''); ?>">
|
160 |
<span class="mec-event-ticket-name"><?php echo (isset($ticket['name']) ? __($ticket['name'], 'modern-events-calendar-lite') : ''); ?></span>
|
161 |
-
<span class="mec-event-ticket-price"
|
|
|
|
|
|
|
|
|
|
|
162 |
<?php if(isset($ticket['description']) and trim($ticket['description'])): ?><p class="mec-event-ticket-description"><?php echo __($ticket['description'], 'modern-events-calendar-lite'); ?></p><?php endif; ?>
|
163 |
|
164 |
<?php if(!$user_ticket_unlimited and $user_ticket_limit == 1 and count($tickets) == 1): ?>
|
@@ -215,14 +221,12 @@ $modal_booking = (isset($_GET['method']) and $_GET['method'] === 'mec-booking-mo
|
|
215 |
</form>
|
216 |
<?php if($from_shortcode): ?>
|
217 |
<style>.nice-select{-webkit-tap-highlight-color:transparent;background-color:#fff;border-radius:5px;border:solid 1px #e8e8e8;box-sizing:border-box;clear:both;cursor:pointer;display:block;float:left;font-family:inherit;font-size:14px;font-weight:400;height:42px;line-height:40px;outline:0;padding-left:18px;padding-right:30px;position:relative;text-align:left!important;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;width:auto}.nice-select:hover{border-color:#dbdbdb}.nice-select.open,.nice-select:active,.nice-select:focus{border-color:#999}.nice-select:after{border-bottom:2px solid #999;border-right:2px solid #999;content:'';display:block;height:5px;margin-top:-4px;pointer-events:none;position:absolute;right:12px;top:50%;-webkit-transform-origin:66% 66%;-ms-transform-origin:66% 66%;transform-origin:66% 66%;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);-webkit-transition:all .15s ease-in-out;transition:all .15s ease-in-out;width:5px}.nice-select.open:after{-webkit-transform:rotate(-135deg);-ms-transform:rotate(-135deg);transform:rotate(-135deg)}.nice-select.open .list{opacity:1;pointer-events:auto;-webkit-transform:scale(1) translateY(0);-ms-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}.nice-select.disabled{border-color:#ededed;color:#999;pointer-events:none}.nice-select.disabled:after{border-color:#ccc}.nice-select.wide{width:100%}.nice-select.wide .list{left:0!important;right:0!important}.nice-select.right{float:right}.nice-select.right .list{left:auto;right:0}.nice-select.small{font-size:12px;height:36px;line-height:34px}.nice-select.small:after{height:4px;width:4px}.nice-select.small .option{line-height:34px;min-height:34px}.nice-select .list{background-color:#fff;border-radius:5px;box-shadow:0 0 0 1px rgba(68,68,68,.11);box-sizing:border-box;margin-top:4px;opacity:0;overflow:hidden;padding:0;pointer-events:none;position:absolute;top:100%;left:0;-webkit-transform-origin:50% 0;-ms-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform:scale(.75) translateY(-21px);-ms-transform:scale(.75) translateY(-21px);transform:scale(.75) translateY(-21px);-webkit-transition:all .2s cubic-bezier(.5,0,0,1.25),opacity .15s ease-out;transition:all .2s cubic-bezier(.5,0,0,1.25),opacity .15s ease-out;z-index:9}.nice-select .list:hover .option:not(:hover){background-color:transparent!important}.nice-select .option{cursor:pointer;font-weight:400;line-height:40px;list-style:none;min-height:40px;outline:0;padding-left:18px;padding-right:29px;text-align:left;-webkit-transition:all .2s;transition:all .2s}.nice-select .option.focus,.nice-select .option.selected.focus,.nice-select .option:hover{background-color:#f6f6f6}.nice-select .option.selected{font-weight:700}.nice-select .option.disabled{background-color:transparent;color:#999;cursor:default}.no-csspointerevents .nice-select .list{display:none}.no-csspointerevents .nice-select.open .list{display:block}</style>
|
218 |
-
|
219 |
-
<script>
|
220 |
jQuery(document).ready(function()
|
221 |
{
|
222 |
-
if(jQuery(
|
223 |
|
224 |
// Events
|
225 |
-
jQuery(
|
226 |
-
});
|
227 |
-
</script>
|
228 |
<?php endif; ?>
|
104 |
$date_selection = (isset($settings['booking_date_selection']) and trim($settings['booking_date_selection'])) ? $settings['booking_date_selection'] : 'dropdown';
|
105 |
|
106 |
// Modal Booking
|
107 |
+
$modal_booking = (isset($_GET['method']) and sanitize_text_field($_GET['method']) === 'mec-booking-modal');
|
108 |
+
wp_enqueue_script('mec-nice-select', $this->asset('js/jquery.nice-select.min.js'));
|
109 |
?>
|
110 |
<form id="mec_book_form<?php echo $uniqueid; ?>" onsubmit="mec_book_form_submit(event, <?php echo $uniqueid; ?>);">
|
111 |
<h4><?php echo ($from_shortcode ? $event->data->post->post_title : __('Book Event', 'modern-events-calendar-lite')); ?></h4>
|
159 |
<div class="mec-event-ticket mec-event-ticket<?php echo $ticket_limit; ?>" id="mec_event_ticket<?php echo $ticket_id; ?>">
|
160 |
<div class="mec-ticket-available-spots <?php echo ($ticket_limit == '0' ? 'mec-util-hidden' : ''); ?>">
|
161 |
<span class="mec-event-ticket-name"><?php echo (isset($ticket['name']) ? __($ticket['name'], 'modern-events-calendar-lite') : ''); ?></span>
|
162 |
+
<span class="mec-event-ticket-price">
|
163 |
+
<?php
|
164 |
+
echo (isset($ticket['price']) ? $book->get_ticket_price($ticket, current_time('Y-m-d'), $event_id) : '');
|
165 |
+
echo (isset($ticket['price_label']) ? $book->get_ticket_price_label($ticket, current_time('Y-m-d'), $event_id) : '');
|
166 |
+
?>
|
167 |
+
</span>
|
168 |
<?php if(isset($ticket['description']) and trim($ticket['description'])): ?><p class="mec-event-ticket-description"><?php echo __($ticket['description'], 'modern-events-calendar-lite'); ?></p><?php endif; ?>
|
169 |
|
170 |
<?php if(!$user_ticket_unlimited and $user_ticket_limit == 1 and count($tickets) == 1): ?>
|
221 |
</form>
|
222 |
<?php if($from_shortcode): ?>
|
223 |
<style>.nice-select{-webkit-tap-highlight-color:transparent;background-color:#fff;border-radius:5px;border:solid 1px #e8e8e8;box-sizing:border-box;clear:both;cursor:pointer;display:block;float:left;font-family:inherit;font-size:14px;font-weight:400;height:42px;line-height:40px;outline:0;padding-left:18px;padding-right:30px;position:relative;text-align:left!important;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;width:auto}.nice-select:hover{border-color:#dbdbdb}.nice-select.open,.nice-select:active,.nice-select:focus{border-color:#999}.nice-select:after{border-bottom:2px solid #999;border-right:2px solid #999;content:'';display:block;height:5px;margin-top:-4px;pointer-events:none;position:absolute;right:12px;top:50%;-webkit-transform-origin:66% 66%;-ms-transform-origin:66% 66%;transform-origin:66% 66%;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);-webkit-transition:all .15s ease-in-out;transition:all .15s ease-in-out;width:5px}.nice-select.open:after{-webkit-transform:rotate(-135deg);-ms-transform:rotate(-135deg);transform:rotate(-135deg)}.nice-select.open .list{opacity:1;pointer-events:auto;-webkit-transform:scale(1) translateY(0);-ms-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}.nice-select.disabled{border-color:#ededed;color:#999;pointer-events:none}.nice-select.disabled:after{border-color:#ccc}.nice-select.wide{width:100%}.nice-select.wide .list{left:0!important;right:0!important}.nice-select.right{float:right}.nice-select.right .list{left:auto;right:0}.nice-select.small{font-size:12px;height:36px;line-height:34px}.nice-select.small:after{height:4px;width:4px}.nice-select.small .option{line-height:34px;min-height:34px}.nice-select .list{background-color:#fff;border-radius:5px;box-shadow:0 0 0 1px rgba(68,68,68,.11);box-sizing:border-box;margin-top:4px;opacity:0;overflow:hidden;padding:0;pointer-events:none;position:absolute;top:100%;left:0;-webkit-transform-origin:50% 0;-ms-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform:scale(.75) translateY(-21px);-ms-transform:scale(.75) translateY(-21px);transform:scale(.75) translateY(-21px);-webkit-transition:all .2s cubic-bezier(.5,0,0,1.25),opacity .15s ease-out;transition:all .2s cubic-bezier(.5,0,0,1.25),opacity .15s ease-out;z-index:9}.nice-select .list:hover .option:not(:hover){background-color:transparent!important}.nice-select .option{cursor:pointer;font-weight:400;line-height:40px;list-style:none;min-height:40px;outline:0;padding-left:18px;padding-right:29px;text-align:left;-webkit-transition:all .2s;transition:all .2s}.nice-select .option.focus,.nice-select .option.selected.focus,.nice-select .option:hover{background-color:#f6f6f6}.nice-select .option.selected{font-weight:700}.nice-select .option.disabled{background-color:transparent;color:#999;cursor:default}.no-csspointerevents .nice-select .list{display:none}.no-csspointerevents .nice-select.open .list{display:block}</style>
|
224 |
+
<?php wp_add_inline_script( 'mec-nice-select', '
|
|
|
225 |
jQuery(document).ready(function()
|
226 |
{
|
227 |
+
if(jQuery(".mec-booking-shortcode").length < 0) return;
|
228 |
|
229 |
// Events
|
230 |
+
jQuery(".mec-booking-shortcode").find("select").niceSelect();
|
231 |
+
});' ) ?>
|
|
|
232 |
<?php endif; ?>
|
app/modules/qrcode/details.php
CHANGED
@@ -12,7 +12,7 @@ $settings = $this->get_settings();
|
|
12 |
if(isset($settings['qrcode_module_status']) and !$settings['qrcode_module_status']) return;
|
13 |
|
14 |
$url = get_post_permalink($event->ID);
|
15 |
-
if(isset($_REQUEST['occurrence'])) $url = $this->add_qs_var('occurrence', $_REQUEST['occurrence'], $url);
|
16 |
|
17 |
$file_name = 'qr_'.md5($url).'.png';
|
18 |
|
12 |
if(isset($settings['qrcode_module_status']) and !$settings['qrcode_module_status']) return;
|
13 |
|
14 |
$url = get_post_permalink($event->ID);
|
15 |
+
if(isset($_REQUEST['occurrence'])) $url = $this->add_qs_var('occurrence', sanitize_text_field($_REQUEST['occurrence']), $url);
|
16 |
|
17 |
$file_name = 'qr_'.md5($url).'.png';
|
18 |
|
app/modules/speakers/details.php
CHANGED
@@ -55,11 +55,11 @@ if(!count($speakers)) return false;
|
|
55 |
<div class="mec-hourly-schedule-speaker-contact-information">
|
56 |
<!-- Speaker Telephone -->
|
57 |
<?php if($tel = trim(get_term_meta($speaker['id'], 'tel', true))): ?>
|
58 |
-
<a href="tel:<?php echo $tel; ?>"><i class="mec-fa-phone"></i></a>
|
59 |
<?php endif; ?>
|
60 |
<!-- Speaker Email -->
|
61 |
<?php if($email = trim(get_term_meta($speaker['id'], 'email', true))): ?>
|
62 |
-
<a href="mailto:<?php echo $email; ?>" target="_blank"><i class="mec-fa-envelope"></i></a>
|
63 |
<?php endif; ?>
|
64 |
<!-- Speaker Website page -->
|
65 |
<?php if($website = trim(get_term_meta($speaker['id'], 'website', true))): ?>
|
55 |
<div class="mec-hourly-schedule-speaker-contact-information">
|
56 |
<!-- Speaker Telephone -->
|
57 |
<?php if($tel = trim(get_term_meta($speaker['id'], 'tel', true))): ?>
|
58 |
+
<a href="tel:<?php echo esc_attr($tel); ?>"><i class="mec-fa-phone"></i></a>
|
59 |
<?php endif; ?>
|
60 |
<!-- Speaker Email -->
|
61 |
<?php if($email = trim(get_term_meta($speaker['id'], 'email', true))): ?>
|
62 |
+
<a href="mailto:<?php echo esc_attr($email); ?>" target="_blank"><i class="mec-fa-envelope"></i></a>
|
63 |
<?php endif; ?>
|
64 |
<!-- Speaker Website page -->
|
65 |
<?php if($website = trim(get_term_meta($speaker['id'], 'website', true))): ?>
|
app/skins/agenda/render.php
CHANGED
@@ -13,7 +13,7 @@ $reason_for_cancellation = isset($this->skin_options['reason_for_cancellation'])
|
|
13 |
<?php foreach($this->events as $date=>$events): ?>
|
14 |
|
15 |
<?php $month_id = date('Ym', strtotime($date)); if($this->month_divider and $month_id != $current_month_divider): $current_month_divider = $month_id; ?>
|
16 |
-
<div class="mec-month-divider" data-toggle-divider="mec-toggle-<?php echo date('Ym', strtotime($date)); ?>-<?php echo $this->id; ?>"><span><?php echo $this->main->date_i18n('F Y', strtotime($date)); ?></span><i class="mec-sl-arrow-down"></i></div>
|
17 |
<?php endif; ?>
|
18 |
<div class="mec-events-agenda">
|
19 |
|
13 |
<?php foreach($this->events as $date=>$events): ?>
|
14 |
|
15 |
<?php $month_id = date('Ym', strtotime($date)); if($this->month_divider and $month_id != $current_month_divider): $current_month_divider = $month_id; ?>
|
16 |
+
<div class="mec-month-divider" data-toggle-divider="mec-toggle-<?php echo date('Ym', strtotime($date)); ?>-<?php echo esc_attr($this->id); ?>"><span><?php echo $this->main->date_i18n('F Y', strtotime($date)); ?></span><i class="mec-sl-arrow-down"></i></div>
|
17 |
<?php endif; ?>
|
18 |
<div class="mec-events-agenda">
|
19 |
|
app/skins/agenda/tpl.php
CHANGED
@@ -60,23 +60,23 @@ else $set_dark = '';
|
|
60 |
do_action('mec_start_skin', $this->id);
|
61 |
do_action('mec_agenda_skin_head');
|
62 |
?>
|
63 |
-
<div class="mec-wrap mec-events-agenda-container <?php echo $this->html_class . ' ' . $set_dark; ?>" id="mec_skin_<?php echo $this->id; ?>">
|
64 |
|
65 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
66 |
|
67 |
<?php if($this->found): ?>
|
68 |
-
<div class="mec-skin-agenda-events-container" id="mec_skin_events_<?php echo $this->id; ?>">
|
69 |
<div class="mec-wrap mec-events-agenda-wrap <?php echo $event_colorskin; ?>">
|
70 |
<div class="mec-events-agenda-container mec-event-agenda-<?php echo $this->style; ?>">
|
71 |
<?php echo $items_html; ?>
|
72 |
</div>
|
73 |
</div>
|
74 |
</div>
|
75 |
-
<div class="mec-skin-agenda-no-events-container mec-util-hidden" id="mec_skin_no_events_<?php echo $this->id; ?>">
|
76 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
77 |
</div>
|
78 |
<?php else: ?>
|
79 |
-
<div class="mec-skin-agenda-events-container" id="mec_skin_events_<?php echo $this->id; ?>">
|
80 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
81 |
</div>
|
82 |
<?php endif; ?>
|
60 |
do_action('mec_start_skin', $this->id);
|
61 |
do_action('mec_agenda_skin_head');
|
62 |
?>
|
63 |
+
<div class="mec-wrap mec-events-agenda-container <?php echo $this->html_class . ' ' . $set_dark; ?>" id="mec_skin_<?php echo esc_attr($this->id); ?>">
|
64 |
|
65 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
66 |
|
67 |
<?php if($this->found): ?>
|
68 |
+
<div class="mec-skin-agenda-events-container" id="mec_skin_events_<?php echo esc_attr($this->id); ?>">
|
69 |
<div class="mec-wrap mec-events-agenda-wrap <?php echo $event_colorskin; ?>">
|
70 |
<div class="mec-events-agenda-container mec-event-agenda-<?php echo $this->style; ?>">
|
71 |
<?php echo $items_html; ?>
|
72 |
</div>
|
73 |
</div>
|
74 |
</div>
|
75 |
+
<div class="mec-skin-agenda-no-events-container mec-util-hidden" id="mec_skin_no_events_<?php echo esc_attr($this->id); ?>">
|
76 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
77 |
</div>
|
78 |
<?php else: ?>
|
79 |
+
<div class="mec-skin-agenda-events-container" id="mec_skin_events_<?php echo esc_attr($this->id); ?>">
|
80 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
81 |
</div>
|
82 |
<?php endif; ?>
|
app/skins/available_spot/tpl.php
CHANGED
@@ -116,7 +116,7 @@ if($total_spots >= 0) $spots = min($spots, $total_spots);
|
|
116 |
do_action('mec_start_skin', $this->id);
|
117 |
do_action('mec_available_spot_skin_head');
|
118 |
?>
|
119 |
-
<div class="mec-wrap <?php echo $event_colorskin; ?> <?php echo $this->html_class . ' ' . $set_dark; ?>" id="mec_skin_<?php echo $this->id; ?>">
|
120 |
<div class="mec-av-spot-wrap">
|
121 |
<?php
|
122 |
// MEC Schema
|
@@ -136,7 +136,7 @@ do_action('mec_available_spot_skin_head');
|
|
136 |
<div class="mec-av-spot-box"><?php _e('Available Spot(s):', 'modern-events-calendar-lite'); ?> <span class="mec-av-spot-count mec-color"><?php echo ($spots != '-1' ? $spots : __('Unlimited', 'modern-events-calendar-lite')); ?></span></div>
|
137 |
</div>
|
138 |
<div class="mec-av-spot-col6">
|
139 |
-
<div class="mec-event-countdown" id="mec_skin_available_spot<?php echo $this->id; ?>">
|
140 |
<ul class="clockdiv" id="countdown">
|
141 |
<li class="days-w block-w">
|
142 |
<span class="mec-days">00</span>
|
116 |
do_action('mec_start_skin', $this->id);
|
117 |
do_action('mec_available_spot_skin_head');
|
118 |
?>
|
119 |
+
<div class="mec-wrap <?php echo $event_colorskin; ?> <?php echo $this->html_class . ' ' . $set_dark; ?>" id="mec_skin_<?php echo esc_attr($this->id); ?>">
|
120 |
<div class="mec-av-spot-wrap">
|
121 |
<?php
|
122 |
// MEC Schema
|
136 |
<div class="mec-av-spot-box"><?php _e('Available Spot(s):', 'modern-events-calendar-lite'); ?> <span class="mec-av-spot-count mec-color"><?php echo ($spots != '-1' ? $spots : __('Unlimited', 'modern-events-calendar-lite')); ?></span></div>
|
137 |
</div>
|
138 |
<div class="mec-av-spot-col6">
|
139 |
+
<div class="mec-event-countdown" id="mec_skin_available_spot<?php echo esc_attr($this->id); ?>">
|
140 |
<ul class="clockdiv" id="countdown">
|
141 |
<li class="days-w block-w">
|
142 |
<span class="mec-days">00</span>
|
app/skins/carousel/render.php
CHANGED
@@ -109,8 +109,7 @@ $reason_for_cancellation = isset($this->skin_options['reason_for_cancellation'])
|
|
109 |
<?php elseif($this->style == 'type3'): ?>
|
110 |
<div class="event-carousel-type3-head clearfix">
|
111 |
<div class="mec-event-image">
|
112 |
-
<?php
|
113 |
-
// if($event->data->thumbnails['meccarouselthumb']) echo $event->data->thumbnails['meccarouselthumb'];
|
114 |
if($event->data->thumbnails['meccarouselthumb']) echo $this->display_link($event, $event->data->thumbnails['meccarouselthumb'], '');
|
115 |
else echo '<img src="'. $this->main->asset('img/no-image.png') .'" />';
|
116 |
?>
|
109 |
<?php elseif($this->style == 'type3'): ?>
|
110 |
<div class="event-carousel-type3-head clearfix">
|
111 |
<div class="mec-event-image">
|
112 |
+
<?php
|
|
|
113 |
if($event->data->thumbnails['meccarouselthumb']) echo $this->display_link($event, $event->data->thumbnails['meccarouselthumb'], '');
|
114 |
else echo '<img src="'. $this->main->asset('img/no-image.png') .'" />';
|
115 |
?>
|
app/skins/carousel/tpl.php
CHANGED
@@ -53,13 +53,13 @@ else $this->factory->params('footer', $javascript);
|
|
53 |
do_action('mec_start_skin', $this->id);
|
54 |
do_action('mec_carousel_skin_head');
|
55 |
?>
|
56 |
-
<div class="mec-wrap mec-skin-carousel-container<?php echo $this->html_class . ' ' . $set_dark; ?>" id="mec_skin_<?php echo $this->id; ?>">
|
57 |
<?php if($this->found): ?>
|
58 |
-
<div class="mec-skin-carousel-events-container" id="mec_skin_events_<?php echo $this->id; ?>">
|
59 |
<?php echo $items_html; ?>
|
60 |
</div>
|
61 |
<?php else: ?>
|
62 |
-
<div class="mec-skin-carousel-events-container" id="mec_skin_events_<?php echo $this->id; ?>">
|
63 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
64 |
</div>
|
65 |
<?php endif; ?>
|
53 |
do_action('mec_start_skin', $this->id);
|
54 |
do_action('mec_carousel_skin_head');
|
55 |
?>
|
56 |
+
<div class="mec-wrap mec-skin-carousel-container<?php echo $this->html_class . ' ' . $set_dark; ?>" id="mec_skin_<?php echo esc_attr($this->id); ?>">
|
57 |
<?php if($this->found): ?>
|
58 |
+
<div class="mec-skin-carousel-events-container" id="mec_skin_events_<?php echo esc_attr($this->id); ?>">
|
59 |
<?php echo $items_html; ?>
|
60 |
</div>
|
61 |
<?php else: ?>
|
62 |
+
<div class="mec-skin-carousel-events-container" id="mec_skin_events_<?php echo esc_attr($this->id); ?>">
|
63 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
64 |
</div>
|
65 |
<?php endif; ?>
|
app/skins/countdown/tpl.php
CHANGED
@@ -103,7 +103,7 @@ do_action('mec_countdown_skin_head');
|
|
103 |
.mec-wrap .mec-event-countdown-style1 .mec-event-countdown-part2:after { border-color: transparent transparent transparent<?php echo $this->bg_color; ?>;}
|
104 |
.mec-event-countdown-style3 .mec-event-date:after {border-color: transparent transparent <?php echo $this->bg_color; ?> transparent;}
|
105 |
</style>
|
106 |
-
<div class="mec-wrap <?php echo $this->html_class . ' ' . $set_dark; ?>" id="mec_skin_<?php echo $this->id; ?>">
|
107 |
<?php
|
108 |
// MEC Schema
|
109 |
do_action('mec_schema', $event);
|
@@ -120,7 +120,7 @@ do_action('mec_countdown_skin_head');
|
|
120 |
<div class="mec-event-date"><?php echo $this->main->date_i18n($this->date_format_style11, strtotime($event_date)); ?></div>
|
121 |
<div class="mec-event-place"><?php echo (isset($event_location['name']) ? ' - '.$event_location['name'] : ''); ?></div>
|
122 |
</div>
|
123 |
-
<div class="mec-event-countdown" id="mec_skin_countdown<?php echo $this->id; ?>">
|
124 |
<ul class="clockdiv" id="countdown">
|
125 |
<div class="days-w block-w">
|
126 |
<li>
|
@@ -166,7 +166,7 @@ do_action('mec_countdown_skin_head');
|
|
166 |
<div class="mec-event-date"><?php echo $this->main->date_i18n($this->date_format_style21, strtotime($event_date)); ?></div>
|
167 |
<div class="mec-event-place"><?php echo (isset($event_location['name']) ? ' - '.$event_location['name'] : ''); ?></div>
|
168 |
</div>
|
169 |
-
<div class="mec-event-countdown" id="mec_skin_countdown<?php echo $this->id; ?>">
|
170 |
<ul class="clockdiv" id="countdown">
|
171 |
<div class="days-w block-w">
|
172 |
<li>
|
@@ -217,7 +217,7 @@ do_action('mec_countdown_skin_head');
|
|
217 |
<h4 class="mec-event-title"><?php echo $event_title.$this->main->get_flags($event); ?><?php echo $this->main->get_normal_labels($event, $display_label).$this->main->display_cancellation_reason($event, $reason_for_cancellation); ?><?php echo $this->get_label_captions($event,'mec-fc-style'); ?><?php do_action('mec_shortcode_virtual_badge', $event->data->ID ); ?></h4>
|
218 |
<?php echo $this->display_link($event, $this->main->m('event_detail', __('EVENT DETAIL', 'modern-events-calendar-lite')), 'mec-event-link'); ?>
|
219 |
</div>
|
220 |
-
<div class="mec-event-countdown" id="mec_skin_countdown<?php echo $this->id; ?>">
|
221 |
<ul class="clockdiv" id="countdown">
|
222 |
<div class="days-w block-w">
|
223 |
<li>
|
103 |
.mec-wrap .mec-event-countdown-style1 .mec-event-countdown-part2:after { border-color: transparent transparent transparent<?php echo $this->bg_color; ?>;}
|
104 |
.mec-event-countdown-style3 .mec-event-date:after {border-color: transparent transparent <?php echo $this->bg_color; ?> transparent;}
|
105 |
</style>
|
106 |
+
<div class="mec-wrap <?php echo $this->html_class . ' ' . $set_dark; ?>" id="mec_skin_<?php echo esc_attr($this->id); ?>">
|
107 |
<?php
|
108 |
// MEC Schema
|
109 |
do_action('mec_schema', $event);
|
120 |
<div class="mec-event-date"><?php echo $this->main->date_i18n($this->date_format_style11, strtotime($event_date)); ?></div>
|
121 |
<div class="mec-event-place"><?php echo (isset($event_location['name']) ? ' - '.$event_location['name'] : ''); ?></div>
|
122 |
</div>
|
123 |
+
<div class="mec-event-countdown" id="mec_skin_countdown<?php echo esc_attr($this->id); ?>">
|
124 |
<ul class="clockdiv" id="countdown">
|
125 |
<div class="days-w block-w">
|
126 |
<li>
|
166 |
<div class="mec-event-date"><?php echo $this->main->date_i18n($this->date_format_style21, strtotime($event_date)); ?></div>
|
167 |
<div class="mec-event-place"><?php echo (isset($event_location['name']) ? ' - '.$event_location['name'] : ''); ?></div>
|
168 |
</div>
|
169 |
+
<div class="mec-event-countdown" id="mec_skin_countdown<?php echo esc_attr($this->id); ?>">
|
170 |
<ul class="clockdiv" id="countdown">
|
171 |
<div class="days-w block-w">
|
172 |
<li>
|
217 |
<h4 class="mec-event-title"><?php echo $event_title.$this->main->get_flags($event); ?><?php echo $this->main->get_normal_labels($event, $display_label).$this->main->display_cancellation_reason($event, $reason_for_cancellation); ?><?php echo $this->get_label_captions($event,'mec-fc-style'); ?><?php do_action('mec_shortcode_virtual_badge', $event->data->ID ); ?></h4>
|
218 |
<?php echo $this->display_link($event, $this->main->m('event_detail', __('EVENT DETAIL', 'modern-events-calendar-lite')), 'mec-event-link'); ?>
|
219 |
</div>
|
220 |
+
<div class="mec-event-countdown" id="mec_skin_countdown<?php echo esc_attr($this->id); ?>">
|
221 |
<ul class="clockdiv" id="countdown">
|
222 |
<div class="days-w block-w">
|
223 |
<li>
|
app/skins/custom/render.php
CHANGED
@@ -45,7 +45,7 @@ if($this->style == 'colorful')
|
|
45 |
$post = $event->data->post;
|
46 |
|
47 |
if($this->count == '1' and $this->month_divider and $month_id != $current_month_divider): $current_month_divider = $month_id; ?>
|
48 |
-
<div class="mec-month-divider" data-toggle-divider="mec-toggle-<?php echo date('Ym', strtotime($date)); ?>-<?php echo $this->id; ?>"><span><?php echo $this->main->date_i18n('F Y', strtotime($date)); ?></span><i class="mec-sl-arrow-down"></i></div>
|
49 |
<?php endif;
|
50 |
|
51 |
echo ($rcount == 1) ? '<div class="row">' : '';
|
45 |
$post = $event->data->post;
|
46 |
|
47 |
if($this->count == '1' and $this->month_divider and $month_id != $current_month_divider): $current_month_divider = $month_id; ?>
|
48 |
+
<div class="mec-month-divider" data-toggle-divider="mec-toggle-<?php echo date('Ym', strtotime($date)); ?>-<?php echo esc_attr($this->id); ?>"><span><?php echo $this->main->date_i18n('F Y', strtotime($date)); ?></span><i class="mec-sl-arrow-down"></i></div>
|
49 |
<?php endif;
|
50 |
|
51 |
echo ($rcount == 1) ? '<div class="row">' : '';
|
app/skins/custom/tpl.php
CHANGED
@@ -50,14 +50,14 @@ else $this->factory->params('footer', $javascript);
|
|
50 |
do_action('mec_start_skin', $this->id);
|
51 |
do_action('mec_custom_skin_head');
|
52 |
?>
|
53 |
-
<div class="mec-wrap mec-skin-custom-container <?php echo $this->html_class; ?>" id="mec_skin_<?php echo $this->id; ?>">
|
54 |
|
55 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
56 |
|
57 |
<?php if($this->found): ?>
|
58 |
<?php if ( $this->map_on_top == '1' ) : ?>
|
59 |
-
<div class="mec-wrap mec-skin-map-container <?php echo $this->html_class; ?>" id="mec_skin_<?php echo $this->id; ?>">
|
60 |
-
<div class="mec-googlemap-skin" id="mec_googlemap_canvas<?php echo $this->id; ?>" style="height: 500px;">
|
61 |
<?php
|
62 |
$map = isset($this->settings['default_maps_view'])?$this->settings['default_maps_view']:'google';
|
63 |
do_action('mec_map_inner_element_tools', array('map' => $map));
|
@@ -66,14 +66,14 @@ do_action('mec_custom_skin_head');
|
|
66 |
<input type="hidden" id="gmap-data" value="">
|
67 |
</div>
|
68 |
<?php endif; ?>
|
69 |
-
<div class="mec-skin-custom-events-container" id="mec_skin_events_<?php echo $this->id; ?>">
|
70 |
<?php echo $items_html; ?>
|
71 |
</div>
|
72 |
-
<div class="mec-skin-custom-no-events-container mec-util-hidden" id="mec_skin_no_events_<?php echo $this->id; ?>">
|
73 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
74 |
</div>
|
75 |
<?php else: ?>
|
76 |
-
<div class="mec-skin-custom-events-container" id="mec_skin_events_<?php echo $this->id; ?>">
|
77 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
78 |
</div>
|
79 |
<?php endif; ?>
|
50 |
do_action('mec_start_skin', $this->id);
|
51 |
do_action('mec_custom_skin_head');
|
52 |
?>
|
53 |
+
<div class="mec-wrap mec-skin-custom-container <?php echo $this->html_class; ?>" id="mec_skin_<?php echo esc_attr($this->id); ?>">
|
54 |
|
55 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
56 |
|
57 |
<?php if($this->found): ?>
|
58 |
<?php if ( $this->map_on_top == '1' ) : ?>
|
59 |
+
<div class="mec-wrap mec-skin-map-container <?php echo $this->html_class; ?>" id="mec_skin_<?php echo esc_attr($this->id); ?>">
|
60 |
+
<div class="mec-googlemap-skin" id="mec_googlemap_canvas<?php echo esc_attr($this->id); ?>" style="height: 500px;">
|
61 |
<?php
|
62 |
$map = isset($this->settings['default_maps_view'])?$this->settings['default_maps_view']:'google';
|
63 |
do_action('mec_map_inner_element_tools', array('map' => $map));
|
66 |
<input type="hidden" id="gmap-data" value="">
|
67 |
</div>
|
68 |
<?php endif; ?>
|
69 |
+
<div class="mec-skin-custom-events-container" id="mec_skin_events_<?php echo esc_attr($this->id); ?>">
|
70 |
<?php echo $items_html; ?>
|
71 |
</div>
|
72 |
+
<div class="mec-skin-custom-no-events-container mec-util-hidden" id="mec_skin_no_events_<?php echo esc_attr($this->id); ?>">
|
73 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
74 |
</div>
|
75 |
<?php else: ?>
|
76 |
+
<div class="mec-skin-custom-events-container" id="mec_skin_events_<?php echo esc_attr($this->id); ?>">
|
77 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
78 |
</div>
|
79 |
<?php endif; ?>
|
app/skins/daily_view/render.php
CHANGED
@@ -10,7 +10,7 @@ $reason_for_cancellation = isset($this->skin_options['reason_for_cancellation'])
|
|
10 |
?>
|
11 |
<ul class="mec-daily-view-dates-events">
|
12 |
<?php foreach($this->events as $date=>$events): ?>
|
13 |
-
<li class="mec-daily-view-date-events mec-util-hidden" id="mec_daily_view_date_events<?php echo $this->id; ?>_<?php echo date('Ymd', strtotime($date)); ?>">
|
14 |
<?php if(count($events)): ?>
|
15 |
<?php foreach($events as $event): ?>
|
16 |
<?php
|
10 |
?>
|
11 |
<ul class="mec-daily-view-dates-events">
|
12 |
<?php foreach($this->events as $date=>$events): ?>
|
13 |
+
<li class="mec-daily-view-date-events mec-util-hidden" id="mec_daily_view_date_events<?php echo esc_attr($this->id); ?>_<?php echo date('Ymd', strtotime($date)); ?>">
|
14 |
<?php if(count($events)): ?>
|
15 |
<?php foreach($events as $event): ?>
|
16 |
<?php
|
app/skins/daily_view/tpl.php
CHANGED
@@ -112,21 +112,21 @@ else $set_dark = '';
|
|
112 |
do_action('mec_start_skin', $this->id);
|
113 |
do_action('mec_daily_skin_head');
|
114 |
?>
|
115 |
-
<div id="mec_skin_<?php echo $this->id; ?>" class="mec-wrap <?php echo $event_colorskin . ' ' . $this->html_class . ' ' . $set_dark; ?>">
|
116 |
|
117 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
118 |
|
119 |
<div class="mec-calendar mec-calendar-daily">
|
120 |
<?php if($this->next_previous_button): ?>
|
121 |
<div class="mec-skin-daily-view-month-navigator-container mec-calendar-a-month mec-clear">
|
122 |
-
<div class="mec-month-navigator" id="mec_month_navigator<?php echo $this->id; ?>_<?php echo date('Ym', $current_month_time); ?>"><?php echo $navigator_html; ?></div>
|
123 |
</div>
|
124 |
<?php else: ?>
|
125 |
<div class="mec-calendar-a-month mec-clear"><h4 class="mec-month-label"><?php echo $this->main->date_i18n('Y F', $current_month_time); ?></h4></div>
|
126 |
<?php endif; ?>
|
127 |
|
128 |
-
<div class="mec-skin-daily-view-events-container" id="mec_skin_events_<?php echo $this->id; ?>">
|
129 |
-
<div class="mec-month-container mec-calendar-a-day mec-clear" id="mec_daily_view_month_<?php echo $this->id; ?>_<?php echo date('Ym', $current_month_time); ?>">
|
130 |
<?php echo $month_html; ?>
|
131 |
</div>
|
132 |
</div>
|
112 |
do_action('mec_start_skin', $this->id);
|
113 |
do_action('mec_daily_skin_head');
|
114 |
?>
|
115 |
+
<div id="mec_skin_<?php echo esc_attr($this->id); ?>" class="mec-wrap <?php echo $event_colorskin . ' ' . $this->html_class . ' ' . $set_dark; ?>">
|
116 |
|
117 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
118 |
|
119 |
<div class="mec-calendar mec-calendar-daily">
|
120 |
<?php if($this->next_previous_button): ?>
|
121 |
<div class="mec-skin-daily-view-month-navigator-container mec-calendar-a-month mec-clear">
|
122 |
+
<div class="mec-month-navigator" id="mec_month_navigator<?php echo esc_attr($this->id); ?>_<?php echo date('Ym', $current_month_time); ?>"><?php echo $navigator_html; ?></div>
|
123 |
</div>
|
124 |
<?php else: ?>
|
125 |
<div class="mec-calendar-a-month mec-clear"><h4 class="mec-month-label"><?php echo $this->main->date_i18n('Y F', $current_month_time); ?></h4></div>
|
126 |
<?php endif; ?>
|
127 |
|
128 |
+
<div class="mec-skin-daily-view-events-container" id="mec_skin_events_<?php echo esc_attr($this->id); ?>">
|
129 |
+
<div class="mec-month-container mec-calendar-a-day mec-clear" id="mec_daily_view_month_<?php echo esc_attr($this->id); ?>_<?php echo date('Ym', $current_month_time); ?>">
|
130 |
<?php echo $month_html; ?>
|
131 |
</div>
|
132 |
</div>
|
app/skins/default_full_calendar/tpl.php
CHANGED
@@ -44,7 +44,7 @@ else $set_dark = '';
|
|
44 |
do_action('mec_start_skin', $this->id);
|
45 |
do_action('mec_full_skin_head');
|
46 |
?>
|
47 |
-
<div id="mec_skin_<?php echo $this->id; ?>" class="mec-wrap <?php echo $event_colorskin . ' ' . $set_dark; ?> mec-full-calendar-wrap">
|
48 |
|
49 |
<div class="mec-search-form mec-totalcal-box">
|
50 |
<?php
|
@@ -58,7 +58,7 @@ do_action('mec_full_skin_head');
|
|
58 |
|
59 |
$sf_columns = 7;
|
60 |
?>
|
61 |
-
<div id="mec_search_form_<?php echo $this->id; ?>">
|
62 |
<?php if($sf_month_filter_status): $sf_columns -= 3; ?>
|
63 |
<div class="col-md-3">
|
64 |
<?php echo $this->sf_search_field('month_filter', $sf_month_filter , 0); ?>
|
@@ -82,11 +82,11 @@ do_action('mec_full_skin_head');
|
|
82 |
</div>
|
83 |
</div>
|
84 |
|
85 |
-
<div id="mec_full_calendar_container_<?php echo $this->id; ?>" class="mec-full-calendar-skin-container">
|
86 |
<?php echo $this->load_skin($this->default_view); ?>
|
87 |
</div>
|
88 |
|
89 |
</div>
|
90 |
<style type="text/css">
|
91 |
-
#mec_skin_<?php echo $this->id; ?> .mec-search-form .mec-date-search{width: 100%;}
|
92 |
</style>
|
44 |
do_action('mec_start_skin', $this->id);
|
45 |
do_action('mec_full_skin_head');
|
46 |
?>
|
47 |
+
<div id="mec_skin_<?php echo esc_attr($this->id); ?>" class="mec-wrap <?php echo $event_colorskin . ' ' . $set_dark; ?> mec-full-calendar-wrap">
|
48 |
|
49 |
<div class="mec-search-form mec-totalcal-box">
|
50 |
<?php
|
58 |
|
59 |
$sf_columns = 7;
|
60 |
?>
|
61 |
+
<div id="mec_search_form_<?php echo esc_attr($this->id); ?>">
|
62 |
<?php if($sf_month_filter_status): $sf_columns -= 3; ?>
|
63 |
<div class="col-md-3">
|
64 |
<?php echo $this->sf_search_field('month_filter', $sf_month_filter , 0); ?>
|
82 |
</div>
|
83 |
</div>
|
84 |
|
85 |
+
<div id="mec_full_calendar_container_<?php echo esc_attr($this->id); ?>" class="mec-full-calendar-skin-container">
|
86 |
<?php echo $this->load_skin($this->default_view); ?>
|
87 |
</div>
|
88 |
|
89 |
</div>
|
90 |
<style type="text/css">
|
91 |
+
#mec_skin_<?php echo esc_attr($this->id); ?> .mec-search-form .mec-date-search{width: 100%;}
|
92 |
</style>
|
app/skins/full_calendar/tpl.php
CHANGED
@@ -49,7 +49,7 @@ else $label_all_set = '';
|
|
49 |
do_action('mec_start_skin', $this->id);
|
50 |
do_action('mec_full_skin_head');
|
51 |
?>
|
52 |
-
<div id="mec_skin_<?php echo $this->id; ?>" class="mec-wrap <?php echo $event_colorskin . ' '. $label_all_set . ' ' . $set_dark; ?> mec-full-calendar-wrap">
|
53 |
|
54 |
<div class="mec-search-form mec-totalcal-box">
|
55 |
<?php if($this->sf_status): ?>
|
@@ -86,7 +86,7 @@ do_action('mec_full_skin_head');
|
|
86 |
if((!empty($sf_category) && $sf_category["type"] == 'dropdown') || (!empty($sf_location) && $sf_location["type"] == 'dropdown') || (!empty($sf_organizer) && $sf_organizer["type"] == 'dropdown') || (!empty($sf_speaker) && $sf_speaker["type"] == 'dropdown') || (!empty($sf_tag) && $sf_tag["type"] == 'dropdown') || (!empty($sf_label) && $sf_label["type"] == 'dropdown')) $wrapper_class = 'class="mec-dropdown-wrap"';
|
87 |
else $wrapper_class = '';
|
88 |
?>
|
89 |
-
<div id="mec_search_form_<?php echo $this->id; ?>" <?php echo $wrapper_class; ?>>
|
90 |
|
91 |
<?php echo apply_filters('mec_filter_fields_search_form', '', $this); ?>
|
92 |
|
@@ -111,7 +111,7 @@ do_action('mec_full_skin_head');
|
|
111 |
<?php endif; ?>
|
112 |
</div>
|
113 |
</div>
|
114 |
-
<div id="mec_search_form_<?php echo $this->id; ?>">
|
115 |
<?php if($sf_address_search_status): ?>
|
116 |
<?php echo $this->sf_search_field('address_search', $sf_address_search , $this->sf_display_label); ?>
|
117 |
<?php endif; ?>
|
@@ -119,7 +119,7 @@ do_action('mec_full_skin_head');
|
|
119 |
<?php echo $this->sf_search_field('event_cost', $sf_event_cost , $this->sf_display_label); ?>
|
120 |
<?php endif; ?>
|
121 |
</div>
|
122 |
-
<div id="mec_search_form_<?php echo $this->id; ?>" class="mec-full-calendar-search-ends">
|
123 |
<?php if($sf_text_search_status): ?>
|
124 |
<?php echo $this->sf_search_field('text_search', $sf_text_search , $this->sf_display_label); ?>
|
125 |
<?php endif; ?>
|
@@ -130,7 +130,7 @@ do_action('mec_full_skin_head');
|
|
130 |
<?php echo $this->sf_search_field('time_filter', $sf_local_time , $this->sf_display_label); ?>
|
131 |
<?php endif; ?>
|
132 |
<?php if($this->sf_reset_button): ?>
|
133 |
-
<div class="mec-search-reset-button"><button class="button mec-button" id="mec_search_form_<?php echo $this->id; ?>_reset" type="button"><?php echo esc_html__('Reset', 'modern-events-calendar-lite'); ?></button></div>
|
134 |
<?php endif; ?>
|
135 |
<div class="col-md-12 mec-tab-loader">
|
136 |
<div class="mec-totalcal-view">
|
@@ -147,7 +147,7 @@ do_action('mec_full_skin_head');
|
|
147 |
<?php endif; // this is for if($this->sf_status): ?>
|
148 |
</div>
|
149 |
|
150 |
-
<div id="mec_full_calendar_container_<?php echo $this->id; ?>" class="mec-full-calendar-skin-container">
|
151 |
<?php echo $this->load_skin($this->default_view); ?>
|
152 |
</div>
|
153 |
|
49 |
do_action('mec_start_skin', $this->id);
|
50 |
do_action('mec_full_skin_head');
|
51 |
?>
|
52 |
+
<div id="mec_skin_<?php echo esc_attr($this->id); ?>" class="mec-wrap <?php echo $event_colorskin . ' '. $label_all_set . ' ' . $set_dark; ?> mec-full-calendar-wrap">
|
53 |
|
54 |
<div class="mec-search-form mec-totalcal-box">
|
55 |
<?php if($this->sf_status): ?>
|
86 |
if((!empty($sf_category) && $sf_category["type"] == 'dropdown') || (!empty($sf_location) && $sf_location["type"] == 'dropdown') || (!empty($sf_organizer) && $sf_organizer["type"] == 'dropdown') || (!empty($sf_speaker) && $sf_speaker["type"] == 'dropdown') || (!empty($sf_tag) && $sf_tag["type"] == 'dropdown') || (!empty($sf_label) && $sf_label["type"] == 'dropdown')) $wrapper_class = 'class="mec-dropdown-wrap"';
|
87 |
else $wrapper_class = '';
|
88 |
?>
|
89 |
+
<div id="mec_search_form_<?php echo esc_attr($this->id); ?>" <?php echo $wrapper_class; ?>>
|
90 |
|
91 |
<?php echo apply_filters('mec_filter_fields_search_form', '', $this); ?>
|
92 |
|
111 |
<?php endif; ?>
|
112 |
</div>
|
113 |
</div>
|
114 |
+
<div id="mec_search_form_<?php echo esc_attr($this->id); ?>">
|
115 |
<?php if($sf_address_search_status): ?>
|
116 |
<?php echo $this->sf_search_field('address_search', $sf_address_search , $this->sf_display_label); ?>
|
117 |
<?php endif; ?>
|
119 |
<?php echo $this->sf_search_field('event_cost', $sf_event_cost , $this->sf_display_label); ?>
|
120 |
<?php endif; ?>
|
121 |
</div>
|
122 |
+
<div id="mec_search_form_<?php echo esc_attr($this->id); ?>" class="mec-full-calendar-search-ends">
|
123 |
<?php if($sf_text_search_status): ?>
|
124 |
<?php echo $this->sf_search_field('text_search', $sf_text_search , $this->sf_display_label); ?>
|
125 |
<?php endif; ?>
|
130 |
<?php echo $this->sf_search_field('time_filter', $sf_local_time , $this->sf_display_label); ?>
|
131 |
<?php endif; ?>
|
132 |
<?php if($this->sf_reset_button): ?>
|
133 |
+
<div class="mec-search-reset-button"><button class="button mec-button" id="mec_search_form_<?php echo esc_attr($this->id); ?>_reset" type="button"><?php echo esc_html__('Reset', 'modern-events-calendar-lite'); ?></button></div>
|
134 |
<?php endif; ?>
|
135 |
<div class="col-md-12 mec-tab-loader">
|
136 |
<div class="mec-totalcal-view">
|
147 |
<?php endif; // this is for if($this->sf_status): ?>
|
148 |
</div>
|
149 |
|
150 |
+
<div id="mec_full_calendar_container_<?php echo esc_attr($this->id); ?>" class="mec-full-calendar-skin-container">
|
151 |
<?php echo $this->load_skin($this->default_view); ?>
|
152 |
</div>
|
153 |
|
app/skins/general_calendar/tpl.php
CHANGED
@@ -59,8 +59,9 @@ if(!function_exists('mec_general_calendar_find_event'))
|
|
59 |
}
|
60 |
}
|
61 |
}
|
|
|
62 |
?>
|
63 |
-
<div class="mec-gCalendar" id="mec_skin_<?php echo $this->id; ?>">
|
64 |
<div id='gCalendar-loading' class="mec-modal-result" style="display: none"></div>
|
65 |
<div id="mec-gCalendar-wrap"></div>
|
66 |
<div class="mec-gCalendar-filters">
|
@@ -80,7 +81,6 @@ if(!function_exists('mec_general_calendar_find_event'))
|
|
80 |
</div>
|
81 |
</div>
|
82 |
<style>.nice-select{color: #838383;-webkit-tap-highlight-color:transparent;background-color:#fff;border:solid 1px #E3E4E5;box-sizing:border-box;clear:both;cursor:pointer;display:block;float:left;font-family:inherit;font-size:12px;font-weight:400;height:42px;line-height:40px;outline:0;padding-left:18px;padding-right:30px;position:relative;text-align:left!important;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;width: 100%;border-radius: 0 3px 3px 0;height: 40px;}.nice-select:hover{border-color:#dbdbdb}.nice-select:after{border-bottom: 1px solid #c1c2c3; border-right: 1px solid #c1c2c3; width: 8px; height: 8px; margin-top: -5px; right: 15px;content:'';display:block;pointer-events:none;position:absolute;top:50%;-webkit-transform-origin:66% 66%;-ms-transform-origin:66% 66%;transform-origin:66% 66%;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);-webkit-transition:all .15s ease-in-out;transition:all .15s ease-in-out}.nice-select.open:after{-webkit-transform:rotate(-135deg);-ms-transform:rotate(-135deg);transform:rotate(-135deg)}.nice-select.open .list{opacity:1;pointer-events:auto;-webkit-transform:scale(1) translateY(0);-ms-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}.nice-select.disabled{border-color:#ededed;color:#999;pointer-events:none}.nice-select.disabled:after{border-color:#ccc}.nice-select.wide{width:100%}.nice-select.wide .list{left:0!important;right:0!important}.nice-select.right{float:right}.nice-select.right .list{left:auto;right:0}.nice-select.small{font-size:12px;height:36px;line-height:34px}.nice-select.small:after{height:4px;width:4px}.nice-select.small .option{line-height:34px;min-height:34px}.nice-select .list{width: 100%;background-color:#fff;border-radius:0 0 3px 3px;box-shadow:0 0 0 1px rgba(68,68,68,.11);box-sizing:border-box;margin-top:4px;opacity:0;overflow:hidden;padding:0;pointer-events:none;position:absolute;top:100%;left:0;-webkit-transform-origin:50% 0;-ms-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform:scale(.75) translateY(-21px);-ms-transform:scale(.75) translateY(-21px);transform:scale(.75) translateY(-21px);-webkit-transition:all .2s cubic-bezier(.5,0,0,1.25),opacity .15s ease-out;transition:all .2s cubic-bezier(.5,0,0,1.25),opacity .15s ease-out;z-index:9}.nice-select .list:hover .option:not(:hover){background-color:transparent!important}.nice-select .option{ cursor: pointer; font-weight: 400;line-height: 1.2;list-style: none;min-height: 30px;outline: 0;padding: 10px 6px 10px 18px;text-align: left;-webkit-transition: all .2s;transition: all .2s;font-size: 14px;letter-spacing: -0.1px;white-space: break-spaces;}.nice-select .option.focus,.nice-select .option.selected.focus,.nice-select .option:hover{background-color:#f6f6f6}.nice-select .option.selected{font-weight:700}.nice-select .option.disabled{background-color:transparent;color:#999;cursor:default}.no-csspointerevents .nice-select .list{display:none}.no-csspointerevents .nice-select.open .list{display:block}</style>
|
83 |
-
<script type="text/javascript" src="<?php echo $this->main->asset('js/jquery.nice-select.min.js'); ?>"></script>
|
84 |
<script>
|
85 |
document.addEventListener("DOMContentLoaded", function () {
|
86 |
var calendarEl = document.getElementById("mec-gCalendar-wrap");
|
59 |
}
|
60 |
}
|
61 |
}
|
62 |
+
wp_enqueue_script('mec-nice-select', $this->main->asset('js/jquery.nice-select.min.js'));
|
63 |
?>
|
64 |
+
<div class="mec-gCalendar" id="mec_skin_<?php echo esc_attr($this->id); ?>">
|
65 |
<div id='gCalendar-loading' class="mec-modal-result" style="display: none"></div>
|
66 |
<div id="mec-gCalendar-wrap"></div>
|
67 |
<div class="mec-gCalendar-filters">
|
81 |
</div>
|
82 |
</div>
|
83 |
<style>.nice-select{color: #838383;-webkit-tap-highlight-color:transparent;background-color:#fff;border:solid 1px #E3E4E5;box-sizing:border-box;clear:both;cursor:pointer;display:block;float:left;font-family:inherit;font-size:12px;font-weight:400;height:42px;line-height:40px;outline:0;padding-left:18px;padding-right:30px;position:relative;text-align:left!important;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;width: 100%;border-radius: 0 3px 3px 0;height: 40px;}.nice-select:hover{border-color:#dbdbdb}.nice-select:after{border-bottom: 1px solid #c1c2c3; border-right: 1px solid #c1c2c3; width: 8px; height: 8px; margin-top: -5px; right: 15px;content:'';display:block;pointer-events:none;position:absolute;top:50%;-webkit-transform-origin:66% 66%;-ms-transform-origin:66% 66%;transform-origin:66% 66%;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);-webkit-transition:all .15s ease-in-out;transition:all .15s ease-in-out}.nice-select.open:after{-webkit-transform:rotate(-135deg);-ms-transform:rotate(-135deg);transform:rotate(-135deg)}.nice-select.open .list{opacity:1;pointer-events:auto;-webkit-transform:scale(1) translateY(0);-ms-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}.nice-select.disabled{border-color:#ededed;color:#999;pointer-events:none}.nice-select.disabled:after{border-color:#ccc}.nice-select.wide{width:100%}.nice-select.wide .list{left:0!important;right:0!important}.nice-select.right{float:right}.nice-select.right .list{left:auto;right:0}.nice-select.small{font-size:12px;height:36px;line-height:34px}.nice-select.small:after{height:4px;width:4px}.nice-select.small .option{line-height:34px;min-height:34px}.nice-select .list{width: 100%;background-color:#fff;border-radius:0 0 3px 3px;box-shadow:0 0 0 1px rgba(68,68,68,.11);box-sizing:border-box;margin-top:4px;opacity:0;overflow:hidden;padding:0;pointer-events:none;position:absolute;top:100%;left:0;-webkit-transform-origin:50% 0;-ms-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform:scale(.75) translateY(-21px);-ms-transform:scale(.75) translateY(-21px);transform:scale(.75) translateY(-21px);-webkit-transition:all .2s cubic-bezier(.5,0,0,1.25),opacity .15s ease-out;transition:all .2s cubic-bezier(.5,0,0,1.25),opacity .15s ease-out;z-index:9}.nice-select .list:hover .option:not(:hover){background-color:transparent!important}.nice-select .option{ cursor: pointer; font-weight: 400;line-height: 1.2;list-style: none;min-height: 30px;outline: 0;padding: 10px 6px 10px 18px;text-align: left;-webkit-transition: all .2s;transition: all .2s;font-size: 14px;letter-spacing: -0.1px;white-space: break-spaces;}.nice-select .option.focus,.nice-select .option.selected.focus,.nice-select .option:hover{background-color:#f6f6f6}.nice-select .option.selected{font-weight:700}.nice-select .option.disabled{background-color:transparent;color:#999;cursor:default}.no-csspointerevents .nice-select .list{display:none}.no-csspointerevents .nice-select.open .list{display:block}</style>
|
|
|
84 |
<script>
|
85 |
document.addEventListener("DOMContentLoaded", function () {
|
86 |
var calendarEl = document.getElementById("mec-gCalendar-wrap");
|
app/skins/grid/render.php
CHANGED
@@ -290,7 +290,7 @@ if(isset($this->map_on_top) and $this->map_on_top and isset($map_events) and !em
|
|
290 |
$this->main->load_map_assets();
|
291 |
|
292 |
// It changing geolocation focus, because after done filtering, if it doesn't. then the map position will not set correctly.
|
293 |
-
if((isset($_REQUEST['action']) and $_REQUEST['action'] == 'mec_grid_load_more') and isset($_REQUEST['sf'])) $this->geolocation_focus = true;
|
294 |
|
295 |
$map_javascript = '<script type="text/javascript">
|
296 |
var mecmap'.$this->id.';
|
290 |
$this->main->load_map_assets();
|
291 |
|
292 |
// It changing geolocation focus, because after done filtering, if it doesn't. then the map position will not set correctly.
|
293 |
+
if((isset($_REQUEST['action']) and sanitize_text_field($_REQUEST['action']) == 'mec_grid_load_more') and isset($_REQUEST['sf'])) $this->geolocation_focus = true;
|
294 |
|
295 |
$map_javascript = '<script type="text/javascript">
|
296 |
var mecmap'.$this->id.';
|
app/skins/grid/tpl.php
CHANGED
@@ -55,14 +55,14 @@ else $this->factory->params('footer', $javascript);
|
|
55 |
do_action('mec_start_skin', $this->id);
|
56 |
do_action('mec_grid_skin_head');
|
57 |
?>
|
58 |
-
<div class="mec-wrap mec-skin-grid-container <?php echo $this->html_class . ' ' . $set_dark; ?>" id="mec_skin_<?php echo $this->id; ?>">
|
59 |
|
60 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
61 |
|
62 |
<?php if($this->found): ?>
|
63 |
<?php if($this->map_on_top == '1'): ?>
|
64 |
-
<div class="mec-wrap mec-skin-map-container <?php echo $this->html_class; ?>" id="mec_skin_<?php echo $this->id; ?>">
|
65 |
-
<div class="mec-googlemap-skin" id="mec_googlemap_canvas<?php echo $this->id; ?>" style="height: 500px;">
|
66 |
<?php
|
67 |
$map = isset($this->settings['default_maps_view'])?$this->settings['default_maps_view']:'google';
|
68 |
do_action('mec_map_inner_element_tools', array('map' => $map));
|
@@ -71,14 +71,14 @@ do_action('mec_grid_skin_head');
|
|
71 |
<input type="hidden" id="gmap-data" value="">
|
72 |
</div>
|
73 |
<?php endif; ?>
|
74 |
-
<div class="mec-skin-grid-events-container" id="mec_skin_events_<?php echo $this->id; ?>">
|
75 |
<?php echo $items_html; ?>
|
76 |
</div>
|
77 |
-
<div class="mec-skin-grid-no-events-container mec-util-hidden" id="mec_skin_no_events_<?php echo $this->id; ?>">
|
78 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
79 |
</div>
|
80 |
<?php else: ?>
|
81 |
-
<div class="mec-skin-grid-events-container" id="mec_skin_events_<?php echo $this->id; ?>">
|
82 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
83 |
</div>
|
84 |
<?php endif; ?>
|
55 |
do_action('mec_start_skin', $this->id);
|
56 |
do_action('mec_grid_skin_head');
|
57 |
?>
|
58 |
+
<div class="mec-wrap mec-skin-grid-container <?php echo $this->html_class . ' ' . $set_dark; ?>" id="mec_skin_<?php echo esc_attr($this->id); ?>">
|
59 |
|
60 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
61 |
|
62 |
<?php if($this->found): ?>
|
63 |
<?php if($this->map_on_top == '1'): ?>
|
64 |
+
<div class="mec-wrap mec-skin-map-container <?php echo $this->html_class; ?>" id="mec_skin_<?php echo esc_attr($this->id); ?>">
|
65 |
+
<div class="mec-googlemap-skin" id="mec_googlemap_canvas<?php echo esc_attr($this->id); ?>" style="height: 500px;">
|
66 |
<?php
|
67 |
$map = isset($this->settings['default_maps_view'])?$this->settings['default_maps_view']:'google';
|
68 |
do_action('mec_map_inner_element_tools', array('map' => $map));
|
71 |
<input type="hidden" id="gmap-data" value="">
|
72 |
</div>
|
73 |
<?php endif; ?>
|
74 |
+
<div class="mec-skin-grid-events-container" id="mec_skin_events_<?php echo esc_attr($this->id); ?>">
|
75 |
<?php echo $items_html; ?>
|
76 |
</div>
|
77 |
+
<div class="mec-skin-grid-no-events-container mec-util-hidden" id="mec_skin_no_events_<?php echo esc_attr($this->id); ?>">
|
78 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
79 |
</div>
|
80 |
<?php else: ?>
|
81 |
+
<div class="mec-skin-grid-events-container" id="mec_skin_events_<?php echo esc_attr($this->id); ?>">
|
82 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
83 |
</div>
|
84 |
<?php endif; ?>
|
app/skins/list/render.php
CHANGED
@@ -17,7 +17,7 @@ $map_events = array();
|
|
17 |
<?php foreach($this->events as $date=>$events): ?>
|
18 |
|
19 |
<?php $month_id = date('Ym', strtotime($date)); if($this->month_divider and $month_id != $current_month_divider): $current_month_divider = $month_id; ?>
|
20 |
-
<div class="mec-month-divider" data-toggle-divider="mec-toggle-<?php echo date('Ym', strtotime($date)); ?>-<?php echo $this->id; ?>"><span><?php echo $this->main->date_i18n('F Y', strtotime($date)); ?></span><i class="mec-sl-arrow-down"></i></div>
|
21 |
<?php endif; ?>
|
22 |
|
23 |
<?php
|
@@ -40,7 +40,7 @@ $map_events = array();
|
|
40 |
// MEC Schema
|
41 |
do_action('mec_schema', $event);
|
42 |
?>
|
43 |
-
<article class="<?php echo (isset($event->data->meta['event_past']) and trim($event->data->meta['event_past'])) ? 'mec-past-event ' : ''; ?>mec-event-article <?php echo $custom_data_class; ?> mec-clear <?php echo $this->get_event_classes($event); ?> mec-divider-toggle mec-toggle-<?php echo date('Ym', strtotime($date)); ?>-<?php echo $this->id; ?>" itemscope>
|
44 |
<?php if($this->style == 'modern'): ?>
|
45 |
<div class="col-md-2 col-sm-2">
|
46 |
|
@@ -254,7 +254,7 @@ if(isset($this->map_on_top) and $this->map_on_top and isset($map_events) and !em
|
|
254 |
$this->main->load_map_assets();
|
255 |
|
256 |
// It changing geolocation focus, because after done filtering, if it doesn't. then the map position will not set correctly.
|
257 |
-
if((isset($_REQUEST['action']) and $_REQUEST['action'] == 'mec_list_load_more') and isset($_REQUEST['sf'])) $this->geolocation_focus = true;
|
258 |
|
259 |
$map_javascript = '<script type="text/javascript">
|
260 |
var mecmap'.$this->id.';
|
17 |
<?php foreach($this->events as $date=>$events): ?>
|
18 |
|
19 |
<?php $month_id = date('Ym', strtotime($date)); if($this->month_divider and $month_id != $current_month_divider): $current_month_divider = $month_id; ?>
|
20 |
+
<div class="mec-month-divider" data-toggle-divider="mec-toggle-<?php echo date('Ym', strtotime($date)); ?>-<?php echo esc_attr($this->id); ?>"><span><?php echo $this->main->date_i18n('F Y', strtotime($date)); ?></span><i class="mec-sl-arrow-down"></i></div>
|
21 |
<?php endif; ?>
|
22 |
|
23 |
<?php
|
40 |
// MEC Schema
|
41 |
do_action('mec_schema', $event);
|
42 |
?>
|
43 |
+
<article class="<?php echo (isset($event->data->meta['event_past']) and trim($event->data->meta['event_past'])) ? 'mec-past-event ' : ''; ?>mec-event-article <?php echo $custom_data_class; ?> mec-clear <?php echo $this->get_event_classes($event); ?> mec-divider-toggle mec-toggle-<?php echo date('Ym', strtotime($date)); ?>-<?php echo esc_attr($this->id); ?>" itemscope>
|
44 |
<?php if($this->style == 'modern'): ?>
|
45 |
<div class="col-md-2 col-sm-2">
|
46 |
|
254 |
$this->main->load_map_assets();
|
255 |
|
256 |
// It changing geolocation focus, because after done filtering, if it doesn't. then the map position will not set correctly.
|
257 |
+
if((isset($_REQUEST['action']) and sanitize_text_field($_REQUEST['action']) == 'mec_list_load_more') and isset($_REQUEST['sf'])) $this->geolocation_focus = true;
|
258 |
|
259 |
$map_javascript = '<script type="text/javascript">
|
260 |
var mecmap'.$this->id.';
|
app/skins/list/tpl.php
CHANGED
@@ -62,14 +62,14 @@ else $this->factory->params('footer', $javascript);
|
|
62 |
do_action('mec_start_skin', $this->id);
|
63 |
do_action('mec_list_skin_head');
|
64 |
?>
|
65 |
-
<div class="mec-wrap mec-skin-list-container <?php echo $this->html_class . ' ' . $set_dark; ?>" id="mec_skin_<?php echo $this->id; ?>">
|
66 |
|
67 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
68 |
|
69 |
<?php if($this->found): ?>
|
70 |
<?php if($this->map_on_top == '1'): ?>
|
71 |
-
<div class="mec-wrap mec-skin-map-container <?php echo $this->html_class; ?>" id="mec_skin_<?php echo $this->id; ?>">
|
72 |
-
<div class="mec-googlemap-skin" id="mec_googlemap_canvas<?php echo $this->id; ?>" style="height: 500px;">
|
73 |
<?php
|
74 |
$map = isset($this->settings['default_maps_view']) ? $this->settings['default_maps_view'] : 'google';
|
75 |
do_action('mec_map_inner_element_tools', array('map' => $map));
|
@@ -78,14 +78,14 @@ do_action('mec_list_skin_head');
|
|
78 |
<input type="hidden" id="gmap-data" value="">
|
79 |
</div>
|
80 |
<?php endif; ?>
|
81 |
-
<div class="mec-skin-list-events-container<?php if($this->style == 'accordion' and $this->toggle_month_divider and $this->month_divider) echo ' mec-toggle-month-divider'; ?>" id="mec_skin_events_<?php echo $this->id; ?>">
|
82 |
<?php echo $items_html; ?>
|
83 |
</div>
|
84 |
-
<div class="mec-skin-list-no-events-container mec-util-hidden" id="mec_skin_no_events_<?php echo $this->id; ?>">
|
85 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
86 |
</div>
|
87 |
<?php else: ?>
|
88 |
-
<div class="mec-skin-list-events-container<?php if($this->style == 'accordion' and $this->toggle_month_divider and $this->month_divider) echo ' mec-toggle-month-divider'; ?>" id="mec_skin_events_<?php echo $this->id; ?>">
|
89 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
90 |
</div>
|
91 |
<?php endif; ?>
|
62 |
do_action('mec_start_skin', $this->id);
|
63 |
do_action('mec_list_skin_head');
|
64 |
?>
|
65 |
+
<div class="mec-wrap mec-skin-list-container <?php echo $this->html_class . ' ' . $set_dark; ?>" id="mec_skin_<?php echo esc_attr($this->id); ?>">
|
66 |
|
67 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
68 |
|
69 |
<?php if($this->found): ?>
|
70 |
<?php if($this->map_on_top == '1'): ?>
|
71 |
+
<div class="mec-wrap mec-skin-map-container <?php echo $this->html_class; ?>" id="mec_skin_<?php echo esc_attr($this->id); ?>">
|
72 |
+
<div class="mec-googlemap-skin" id="mec_googlemap_canvas<?php echo esc_attr($this->id); ?>" style="height: 500px;">
|
73 |
<?php
|
74 |
$map = isset($this->settings['default_maps_view']) ? $this->settings['default_maps_view'] : 'google';
|
75 |
do_action('mec_map_inner_element_tools', array('map' => $map));
|
78 |
<input type="hidden" id="gmap-data" value="">
|
79 |
</div>
|
80 |
<?php endif; ?>
|
81 |
+
<div class="mec-skin-list-events-container<?php if($this->style == 'accordion' and $this->toggle_month_divider and $this->month_divider) echo ' mec-toggle-month-divider'; ?>" id="mec_skin_events_<?php echo esc_attr($this->id); ?>">
|
82 |
<?php echo $items_html; ?>
|
83 |
</div>
|
84 |
+
<div class="mec-skin-list-no-events-container mec-util-hidden" id="mec_skin_no_events_<?php echo esc_attr($this->id); ?>">
|
85 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
86 |
</div>
|
87 |
<?php else: ?>
|
88 |
+
<div class="mec-skin-list-events-container<?php if($this->style == 'accordion' and $this->toggle_month_divider and $this->month_divider) echo ' mec-toggle-month-divider'; ?>" id="mec_skin_events_<?php echo esc_attr($this->id); ?>">
|
89 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
90 |
</div>
|
91 |
<?php endif; ?>
|
app/skins/map/tpl.php
CHANGED
@@ -60,13 +60,13 @@ do_action('mec_start_skin', $this->id);
|
|
60 |
do_action('mec_map_skin_head');
|
61 |
?>
|
62 |
<?php if($settings['view_mode'] == 'normal') : ?>
|
63 |
-
<div class="mec-wrap mec-skin-map-container <?php echo $this->html_class; ?>" id="mec_skin_<?php echo $this->id; ?>">
|
64 |
|
65 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
66 |
<?php do_action('mec_map_skin_before_form', $settings); ?>
|
67 |
|
68 |
<?php if(count($this->events)): ?>
|
69 |
-
<div class="mec-googlemap-skin" id="mec_map_canvas<?php echo $this->id; ?>" style="height: 500px;">
|
70 |
<?php do_action('mec_map_inner_element_tools', $settings); ?>
|
71 |
</div>
|
72 |
<?php else: ?>
|
@@ -78,7 +78,7 @@ do_action('mec_map_skin_head');
|
|
78 |
<div class="mec-wrap">
|
79 |
<div class="row">
|
80 |
<div class="col-sm-12">
|
81 |
-
<div class="mec-skin-map-container <?php echo $this->html_class; ?>" id="mec_skin_<?php echo $this->id; ?>">
|
82 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
83 |
</div>
|
84 |
</div>
|
@@ -86,14 +86,14 @@ do_action('mec_map_skin_head');
|
|
86 |
<div class="row mec-map-events-wrap">
|
87 |
<div class="col-sm-7">
|
88 |
<?php if(count($this->events)): ?>
|
89 |
-
<div class="mec-googlemap-skin" id="mec_map_canvas<?php echo $this->id; ?>" style="height: 600px;">
|
90 |
<?php do_action('mec_map_inner_element_tools', $settings); ?>
|
91 |
</div>
|
92 |
<?php else: ?>
|
93 |
<p class="mec-error"><?php _e('No events found!', 'modern-events-calendar-lite'); ?></p>
|
94 |
<?php endif; ?>
|
95 |
</div>
|
96 |
-
<div class="col-sm-5" id="mec-map-skin-side-<?php echo $this->id; ?>"></div>
|
97 |
</div>
|
98 |
</div>
|
99 |
<?php endif; ?>
|
60 |
do_action('mec_map_skin_head');
|
61 |
?>
|
62 |
<?php if($settings['view_mode'] == 'normal') : ?>
|
63 |
+
<div class="mec-wrap mec-skin-map-container <?php echo $this->html_class; ?>" id="mec_skin_<?php echo esc_attr($this->id); ?>">
|
64 |
|
65 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
66 |
<?php do_action('mec_map_skin_before_form', $settings); ?>
|
67 |
|
68 |
<?php if(count($this->events)): ?>
|
69 |
+
<div class="mec-googlemap-skin" id="mec_map_canvas<?php echo esc_attr($this->id); ?>" style="height: 500px;">
|
70 |
<?php do_action('mec_map_inner_element_tools', $settings); ?>
|
71 |
</div>
|
72 |
<?php else: ?>
|
78 |
<div class="mec-wrap">
|
79 |
<div class="row">
|
80 |
<div class="col-sm-12">
|
81 |
+
<div class="mec-skin-map-container <?php echo $this->html_class; ?>" id="mec_skin_<?php echo esc_attr($this->id); ?>">
|
82 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
83 |
</div>
|
84 |
</div>
|
86 |
<div class="row mec-map-events-wrap">
|
87 |
<div class="col-sm-7">
|
88 |
<?php if(count($this->events)): ?>
|
89 |
+
<div class="mec-googlemap-skin" id="mec_map_canvas<?php echo esc_attr($this->id); ?>" style="height: 600px;">
|
90 |
<?php do_action('mec_map_inner_element_tools', $settings); ?>
|
91 |
</div>
|
92 |
<?php else: ?>
|
93 |
<p class="mec-error"><?php _e('No events found!', 'modern-events-calendar-lite'); ?></p>
|
94 |
<?php endif; ?>
|
95 |
</div>
|
96 |
+
<div class="col-sm-5" id="mec-map-skin-side-<?php echo esc_attr($this->id); ?>"></div>
|
97 |
</div>
|
98 |
</div>
|
99 |
<?php endif; ?>
|
app/skins/masonry/tpl.php
CHANGED
@@ -63,18 +63,18 @@ else $set_dark = '';
|
|
63 |
do_action('mec_start_skin', $this->id);
|
64 |
do_action('mec_masonry_skin_head');
|
65 |
?>
|
66 |
-
<div class="mec-wrap mec-skin-masonry-container<?php echo $event_colorskin; ?><?php echo $this->html_class . ' ' . $set_dark; ?>" id="mec_skin_<?php echo $this->id; ?>" data-filterby="<?php echo trim($this->filter_by) ? trim($this->filter_by) : ''; ?>" data-sortascending="<?php echo (isset($this->show_only_expired_events) and $this->show_only_expired_events) ? false : true; ?>">
|
67 |
<?php if(trim($this->filter_by)) echo $this->filter_by(); ?>
|
68 |
|
69 |
<?php if($this->found): ?>
|
70 |
-
<div class="mec-events-masonry-wrap" id="mec_skin_events_<?php echo $this->id; ?>">
|
71 |
<?php echo $items_html; ?>
|
72 |
</div>
|
73 |
-
<div class="mec-skin-masonry-no-events-container mec-util-hidden" id="mec_skin_no_events_<?php echo $this->id; ?>">
|
74 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
75 |
</div>
|
76 |
<?php else: ?>
|
77 |
-
<div class="mec-skin-masonry-events-container" id="mec_skin_events_<?php echo $this->id; ?>">
|
78 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
79 |
</div>
|
80 |
<?php endif; ?>
|
63 |
do_action('mec_start_skin', $this->id);
|
64 |
do_action('mec_masonry_skin_head');
|
65 |
?>
|
66 |
+
<div class="mec-wrap mec-skin-masonry-container<?php echo $event_colorskin; ?><?php echo $this->html_class . ' ' . $set_dark; ?>" id="mec_skin_<?php echo esc_attr($this->id); ?>" data-filterby="<?php echo trim($this->filter_by) ? trim($this->filter_by) : ''; ?>" data-sortascending="<?php echo (isset($this->show_only_expired_events) and $this->show_only_expired_events) ? false : true; ?>">
|
67 |
<?php if(trim($this->filter_by)) echo $this->filter_by(); ?>
|
68 |
|
69 |
<?php if($this->found): ?>
|
70 |
+
<div class="mec-events-masonry-wrap" id="mec_skin_events_<?php echo esc_attr($this->id); ?>">
|
71 |
<?php echo $items_html; ?>
|
72 |
</div>
|
73 |
+
<div class="mec-skin-masonry-no-events-container mec-util-hidden" id="mec_skin_no_events_<?php echo esc_attr($this->id); ?>">
|
74 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
75 |
</div>
|
76 |
<?php else: ?>
|
77 |
+
<div class="mec-skin-masonry-events-container" id="mec_skin_events_<?php echo esc_attr($this->id); ?>">
|
78 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
79 |
</div>
|
80 |
<?php endif; ?>
|
app/skins/monthly_view/calendar_admin.php
ADDED
@@ -0,0 +1,120 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/** no direct access **/
|
3 |
+
defined('MECEXEC') or die();
|
4 |
+
|
5 |
+
/** @var MEC_skin_monthly_view $this */
|
6 |
+
|
7 |
+
// table headings
|
8 |
+
$headings = $this->main->get_weekday_abbr_labels();
|
9 |
+
echo '<dl class="mec-calendar-table-head"><dt class="mec-calendar-day-head">'.implode('</dt><dt class="mec-calendar-day-head">', $headings).'</dt></dl>';
|
10 |
+
|
11 |
+
// Start day of week
|
12 |
+
$week_start = $this->main->get_first_day_of_week();
|
13 |
+
|
14 |
+
// Single Event Display Method
|
15 |
+
$target_set = false;
|
16 |
+
$target_url = 'target="_blank"';
|
17 |
+
|
18 |
+
$this->localtime = false;
|
19 |
+
$display_label = false;
|
20 |
+
$reason_for_cancellation = false;
|
21 |
+
|
22 |
+
// days and weeks vars
|
23 |
+
$running_day = date('w', mktime(0, 0, 0, $month, 1, $year));
|
24 |
+
$days_in_month = date('t', mktime(0, 0, 0, $month, 1, $year));
|
25 |
+
$days_in_previous_month = date('t', strtotime('-1 month', strtotime($this->active_day)));
|
26 |
+
|
27 |
+
$days_in_this_week = 1;
|
28 |
+
$day_counter = 0;
|
29 |
+
|
30 |
+
if($week_start == 0) $running_day = $running_day; // Sunday
|
31 |
+
elseif($week_start == 1) // Monday
|
32 |
+
{
|
33 |
+
if($running_day != 0) $running_day = $running_day - 1;
|
34 |
+
else $running_day = 6;
|
35 |
+
}
|
36 |
+
elseif($week_start == 6) // Saturday
|
37 |
+
{
|
38 |
+
if($running_day != 6) $running_day = $running_day + 1;
|
39 |
+
else $running_day = 0;
|
40 |
+
}
|
41 |
+
elseif($week_start == 5) // Friday
|
42 |
+
{
|
43 |
+
if($running_day < 4) $running_day = $running_day + 2;
|
44 |
+
elseif($running_day == 5) $running_day = 0;
|
45 |
+
elseif($running_day == 6) $running_day = 1;
|
46 |
+
}
|
47 |
+
?>
|
48 |
+
<dl class="mec-calendar-row">
|
49 |
+
<?php
|
50 |
+
// print "blank" days until the first of the current week
|
51 |
+
for($x = 0; $x < $running_day; $x++)
|
52 |
+
{
|
53 |
+
echo '<dt class="mec-table-nullday">'.($days_in_previous_month - ($running_day-1-$x)).'</dt>';
|
54 |
+
$days_in_this_week++;
|
55 |
+
}
|
56 |
+
|
57 |
+
// keep going with days ....
|
58 |
+
for($list_day = 1; $list_day <= $days_in_month; $list_day++)
|
59 |
+
{
|
60 |
+
$time = strtotime($year.'-'.$month.'-'.$list_day);
|
61 |
+
|
62 |
+
$today = date('Y-m-d', $time);
|
63 |
+
$day_id = date('Ymd', $time);
|
64 |
+
$selected_day = (str_replace('-', '', $this->active_day) == $day_id) ? ' mec-selected-day' : '';
|
65 |
+
$selected_day_date = (str_replace('-', '', $this->active_day) == $day_id) ? 'mec-color' : '';
|
66 |
+
|
67 |
+
// Print events
|
68 |
+
if(isset($events[$today]) and count($events[$today]))
|
69 |
+
{
|
70 |
+
echo '<dt class="mec-calendar-day'.$selected_day.'" data-mec-cell="'.$day_id.'" data-day="'.$list_day.'" data-month="'.date('Ym', $time).'"><div class="'.$selected_day_date.'">'.apply_filters( 'mec_filter_list_day_value', $list_day, $today, $this ).'</div>';
|
71 |
+
foreach($events[$today] as $event)
|
72 |
+
{
|
73 |
+
$event_color = isset($event->data->meta['mec_color']) ? '#'.$event->data->meta['mec_color'] : '';
|
74 |
+
$start_time = (isset($event->data->time) ? $event->data->time['start'] : '');
|
75 |
+
$end_time = (isset($event->data->time) ? $event->data->time['end'] : '');
|
76 |
+
|
77 |
+
$event_unique = (isset($event->data->time) ? $event->data->ID.$event->data->time['start_timestamp'] : $event->data->ID);
|
78 |
+
|
79 |
+
echo '<div class="'.((isset($event->data->meta['event_past']) and trim($event->data->meta['event_past'])) ? 'mec-past-event ' : '').'ended-relative simple-skin-ended">';
|
80 |
+
echo '<a class="mec-monthly-tooltip event-single-link-simple" data-tooltip-content="#mec-tooltip-'.$event_unique.'-'.$day_id.'" data-event-id="'.$event->data->ID.'" href="'.get_edit_post_link($event->ID).'" '.$target_url.'>';
|
81 |
+
echo '<h4 class="mec-event-title">'.$event->data->title.'</h4>'.$this->main->get_normal_labels($event, $display_label).$this->main->display_cancellation_reason($event, $reason_for_cancellation);
|
82 |
+
do_action('mec_shortcode_virtual_badge', $event->data->ID);
|
83 |
+
echo '</a>';
|
84 |
+
echo '</div>';
|
85 |
+
}
|
86 |
+
|
87 |
+
echo '</dt>';
|
88 |
+
}
|
89 |
+
else
|
90 |
+
{
|
91 |
+
echo '<dt class="mec-calendar-day'.$selected_day.'" data-mec-cell="'.$day_id.'" data-day="'.$list_day.'" data-month="'.date('Ym', $time).'">'.apply_filters( 'mec_filter_list_day_value', $list_day, $today, $this ).'</dt>';
|
92 |
+
echo '</dt>';
|
93 |
+
}
|
94 |
+
|
95 |
+
if($running_day == 6)
|
96 |
+
{
|
97 |
+
echo '</dl>';
|
98 |
+
|
99 |
+
if((($day_counter+1) != $days_in_month) or (($day_counter+1) == $days_in_month and $days_in_this_week == 7))
|
100 |
+
{
|
101 |
+
echo '<dl class="mec-calendar-row">';
|
102 |
+
}
|
103 |
+
|
104 |
+
$running_day = -1;
|
105 |
+
$days_in_this_week = 0;
|
106 |
+
}
|
107 |
+
|
108 |
+
$days_in_this_week++; $running_day++; $day_counter++;
|
109 |
+
}
|
110 |
+
|
111 |
+
// finish the rest of the days in the week
|
112 |
+
if($days_in_this_week < 8)
|
113 |
+
{
|
114 |
+
for($x = 1; $x <= (8 - $days_in_this_week); $x++)
|
115 |
+
{
|
116 |
+
echo '<dt class="mec-table-nullday">'.$x.'</dt>';
|
117 |
+
}
|
118 |
+
}
|
119 |
+
?>
|
120 |
+
</dl>
|
app/skins/monthly_view/render.php
CHANGED
@@ -7,6 +7,7 @@ defined('MECEXEC') or die();
|
|
7 |
if(in_array($this->style, array('clean', 'modern'))) $calendar_type = 'calendar_clean';
|
8 |
elseif(in_array($this->style, array('novel'))) $calendar_type = 'calendar_novel';
|
9 |
elseif(in_array($this->style, array('simple'))) $calendar_type = 'calendar_simple';
|
|
|
10 |
else $calendar_type = 'calendar';
|
11 |
|
12 |
echo $this->draw_monthly_calendar($this->year, $this->month, $this->events, $calendar_type);
|
7 |
if(in_array($this->style, array('clean', 'modern'))) $calendar_type = 'calendar_clean';
|
8 |
elseif(in_array($this->style, array('novel'))) $calendar_type = 'calendar_novel';
|
9 |
elseif(in_array($this->style, array('simple'))) $calendar_type = 'calendar_simple';
|
10 |
+
elseif(in_array($this->style, array('admin'))) $calendar_type = 'calendar_admin';
|
11 |
else $calendar_type = 'calendar';
|
12 |
|
13 |
echo $this->draw_monthly_calendar($this->year, $this->month, $this->events, $calendar_type);
|
app/skins/monthly_view/tpl.php
CHANGED
@@ -119,7 +119,7 @@ else
|
|
119 |
do_action('mec_start_skin', $this->id);
|
120 |
do_action('mec_monthly_skin_head');
|
121 |
?>
|
122 |
-
<div id="mec_skin_<?php echo $this->id; ?>" class="mec-wrap <?php echo $event_colorskin . ' ' . $this->html_class . ' ' . $set_dark; ?>">
|
123 |
|
124 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
125 |
|
@@ -128,14 +128,14 @@ do_action('mec_monthly_skin_head');
|
|
128 |
<div class="mec-calendar-side mec-clear">
|
129 |
<?php if($this->next_previous_button): ?>
|
130 |
<div class="mec-skin-monthly-view-month-navigator-container">
|
131 |
-
<div class="mec-month-navigator" id="mec_month_navigator_<?php echo $this->id; ?>_<?php echo date('Ym', $current_month_time); ?>"><?php echo $navigator_html; ?></div>
|
132 |
</div>
|
133 |
<?php else: ?>
|
134 |
<div class="mec-calendar-header"><h2><?php echo $this->main->date_i18n('Y F', $current_month_time); ?></h2></div>
|
135 |
<?php endif; ?>
|
136 |
|
137 |
-
<div class="mec-calendar-table" id="mec_skin_events_<?php echo $this->id; ?>">
|
138 |
-
<div class="mec-month-container mec-month-container-selected" id="mec_monthly_view_month_<?php echo $this->id; ?>_<?php echo date('Ym', $current_month_time); ?>" data-month-id="<?php echo date('Ym', $current_month_time); ?>"><?php echo $month_html; ?></div>
|
139 |
</div>
|
140 |
</div>
|
141 |
<?php echo $events_side . $div_end_topsec . $div_footer; ?>
|
119 |
do_action('mec_start_skin', $this->id);
|
120 |
do_action('mec_monthly_skin_head');
|
121 |
?>
|
122 |
+
<div id="mec_skin_<?php echo esc_attr($this->id); ?>" class="mec-wrap <?php echo $event_colorskin . ' ' . $this->html_class . ' ' . $set_dark; ?>">
|
123 |
|
124 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
125 |
|
128 |
<div class="mec-calendar-side mec-clear">
|
129 |
<?php if($this->next_previous_button): ?>
|
130 |
<div class="mec-skin-monthly-view-month-navigator-container">
|
131 |
+
<div class="mec-month-navigator" id="mec_month_navigator_<?php echo esc_attr($this->id); ?>_<?php echo date('Ym', $current_month_time); ?>"><?php echo $navigator_html; ?></div>
|
132 |
</div>
|
133 |
<?php else: ?>
|
134 |
<div class="mec-calendar-header"><h2><?php echo $this->main->date_i18n('Y F', $current_month_time); ?></h2></div>
|
135 |
<?php endif; ?>
|
136 |
|
137 |
+
<div class="mec-calendar-table" id="mec_skin_events_<?php echo esc_attr($this->id); ?>">
|
138 |
+
<div class="mec-month-container mec-month-container-selected" id="mec_monthly_view_month_<?php echo esc_attr($this->id); ?>_<?php echo date('Ym', $current_month_time); ?>" data-month-id="<?php echo date('Ym', $current_month_time); ?>"><?php echo $month_html; ?></div>
|
139 |
</div>
|
140 |
</div>
|
141 |
<?php echo $events_side . $div_end_topsec . $div_footer; ?>
|
app/skins/single.php
CHANGED
@@ -254,10 +254,10 @@ class MEC_skin_single extends MEC_skins
|
|
254 |
$p_exclude = array($event_id);
|
255 |
$n_exclude = array($event_id);
|
256 |
|
257 |
-
$pskip = (isset($_REQUEST['pskip']) and is_numeric($_REQUEST['pskip']) and $_REQUEST['pskip'] > 0) ? $_REQUEST['pskip'] : NULL;
|
258 |
if($pskip) $p_exclude[] = $pskip;
|
259 |
|
260 |
-
$nskip = (isset($_REQUEST['nskip']) and is_numeric($_REQUEST['nskip']) and $_REQUEST['nskip'] > 0) ? $_REQUEST['nskip'] : NULL;
|
261 |
if($nskip) $n_exclude[] = $nskip;
|
262 |
|
263 |
$date = $event->date;
|
@@ -1221,7 +1221,7 @@ class MEC_skin_single extends MEC_skins
|
|
1221 |
<div class="mec-event-more-info">
|
1222 |
<i class="mec-sl-info"></i>
|
1223 |
<h3 class="mec-cost"><?php echo $this->main->m('more_info_link', __('More Info', 'modern-events-calendar-lite')); ?></h3>
|
1224 |
-
<dl><dd class="mec-events-event-more-info"><a class="mec-more-info-button a mec-color-hover" target="<?php echo $more_info_target; ?>" href="<?php echo esc_url($more_info); ?>"><?php echo $more_info_title; ?></a></dd></dl>
|
1225 |
</div>
|
1226 |
</div>
|
1227 |
<?php
|
@@ -1334,7 +1334,7 @@ class MEC_skin_single extends MEC_skins
|
|
1334 |
$more_info_title = MEC_feature_occurrences::param($event->ID, $event->date['start']['timestamp'], 'more_info_title', ((isset($event->data->meta['mec_more_info_title']) and trim($event->data->meta['mec_more_info_title'])) ? $event->data->meta['mec_more_info_title'] : __('Read More', 'modern-events-calendar-lite')));
|
1335 |
?>
|
1336 |
<div class="mec-reg-btn mec-frontbox">
|
1337 |
-
<a class="mec-booking-button mec-bg-color" target="<?php echo $more_info_target; ?>" href="<?php echo esc_url($more_info); ?>">
|
1338 |
<?php
|
1339 |
if($more_info_title) echo esc_html__($more_info_title, 'modern-events-calendar-lite');
|
1340 |
else echo esc_html($this->main->m('register_button', __('REGISTER', 'modern-events-calendar-lite')));
|
@@ -1390,14 +1390,14 @@ class MEC_skin_single extends MEC_skins
|
|
1390 |
<dd class="mec-organizer-tel">
|
1391 |
<i class="mec-sl-phone"></i>
|
1392 |
<h6><?php _e('Phone', 'modern-events-calendar-lite'); ?></h6>
|
1393 |
-
<a href="tel:<?php echo $organizer['tel']; ?>"><?php echo $organizer['tel']; ?></a>
|
1394 |
</dd>
|
1395 |
<?php endif;
|
1396 |
if(isset($organizer['email']) && !empty($organizer['email'])): ?>
|
1397 |
<dd class="mec-organizer-email">
|
1398 |
<i class="mec-sl-envelope"></i>
|
1399 |
<h6><?php _e('Email', 'modern-events-calendar-lite'); ?></h6>
|
1400 |
-
<a href="mailto:<?php echo $organizer['email']; ?>"><?php echo $organizer['email']; ?></a>
|
1401 |
</dd>
|
1402 |
<?php endif;
|
1403 |
if(isset($organizer['url']) && !empty($organizer['url']) and $organizer['url'] != 'http://'): ?>
|
@@ -1457,14 +1457,14 @@ class MEC_skin_single extends MEC_skins
|
|
1457 |
<dd class="mec-organizer-tel">
|
1458 |
<i class="mec-sl-phone"></i>
|
1459 |
<h6><?php _e('Phone', 'modern-events-calendar-lite'); ?></h6>
|
1460 |
-
<a href="tel:<?php echo $organizer['tel']; ?>"><?php echo $organizer['tel']; ?></a>
|
1461 |
</dd>
|
1462 |
<?php endif;
|
1463 |
if(isset($organizer['email']) && !empty($organizer['email'])): ?>
|
1464 |
<dd class="mec-organizer-email">
|
1465 |
<i class="mec-sl-envelope"></i>
|
1466 |
<h6><?php _e('Email', 'modern-events-calendar-lite'); ?></h6>
|
1467 |
-
<a href="mailto:<?php echo $organizer['email']; ?>"><?php echo $organizer['email']; ?></a>
|
1468 |
</dd>
|
1469 |
<?php endif;
|
1470 |
if(isset($organizer['url']) && !empty($organizer['url']) and $organizer['url'] != 'http://'): ?>
|
254 |
$p_exclude = array($event_id);
|
255 |
$n_exclude = array($event_id);
|
256 |
|
257 |
+
$pskip = (isset($_REQUEST['pskip']) and is_numeric($_REQUEST['pskip']) and $_REQUEST['pskip'] > 0) ? sanitize_text_field($_REQUEST['pskip']) : NULL;
|
258 |
if($pskip) $p_exclude[] = $pskip;
|
259 |
|
260 |
+
$nskip = (isset($_REQUEST['nskip']) and is_numeric($_REQUEST['nskip']) and $_REQUEST['nskip'] > 0) ? sanitize_text_field($_REQUEST['nskip']) : NULL;
|
261 |
if($nskip) $n_exclude[] = $nskip;
|
262 |
|
263 |
$date = $event->date;
|
1221 |
<div class="mec-event-more-info">
|
1222 |
<i class="mec-sl-info"></i>
|
1223 |
<h3 class="mec-cost"><?php echo $this->main->m('more_info_link', __('More Info', 'modern-events-calendar-lite')); ?></h3>
|
1224 |
+
<dl><dd class="mec-events-event-more-info"><a class="mec-more-info-button a mec-color-hover" target="<?php echo esc_attr($more_info_target); ?>" href="<?php echo esc_url($more_info); ?>"><?php echo $more_info_title; ?></a></dd></dl>
|
1225 |
</div>
|
1226 |
</div>
|
1227 |
<?php
|
1334 |
$more_info_title = MEC_feature_occurrences::param($event->ID, $event->date['start']['timestamp'], 'more_info_title', ((isset($event->data->meta['mec_more_info_title']) and trim($event->data->meta['mec_more_info_title'])) ? $event->data->meta['mec_more_info_title'] : __('Read More', 'modern-events-calendar-lite')));
|
1335 |
?>
|
1336 |
<div class="mec-reg-btn mec-frontbox">
|
1337 |
+
<a class="mec-booking-button mec-bg-color" target="<?php echo esc_attr($more_info_target); ?>" href="<?php echo esc_url($more_info); ?>">
|
1338 |
<?php
|
1339 |
if($more_info_title) echo esc_html__($more_info_title, 'modern-events-calendar-lite');
|
1340 |
else echo esc_html($this->main->m('register_button', __('REGISTER', 'modern-events-calendar-lite')));
|
1390 |
<dd class="mec-organizer-tel">
|
1391 |
<i class="mec-sl-phone"></i>
|
1392 |
<h6><?php _e('Phone', 'modern-events-calendar-lite'); ?></h6>
|
1393 |
+
<a href="tel:<?php echo esc_attr($organizer['tel']); ?>"><?php echo $organizer['tel']; ?></a>
|
1394 |
</dd>
|
1395 |
<?php endif;
|
1396 |
if(isset($organizer['email']) && !empty($organizer['email'])): ?>
|
1397 |
<dd class="mec-organizer-email">
|
1398 |
<i class="mec-sl-envelope"></i>
|
1399 |
<h6><?php _e('Email', 'modern-events-calendar-lite'); ?></h6>
|
1400 |
+
<a href="mailto:<?php echo esc_attr($organizer['email']); ?>"><?php echo $organizer['email']; ?></a>
|
1401 |
</dd>
|
1402 |
<?php endif;
|
1403 |
if(isset($organizer['url']) && !empty($organizer['url']) and $organizer['url'] != 'http://'): ?>
|
1457 |
<dd class="mec-organizer-tel">
|
1458 |
<i class="mec-sl-phone"></i>
|
1459 |
<h6><?php _e('Phone', 'modern-events-calendar-lite'); ?></h6>
|
1460 |
+
<a href="tel:<?php echo esc_attr($organizer['tel']); ?>"><?php echo $organizer['tel']; ?></a>
|
1461 |
</dd>
|
1462 |
<?php endif;
|
1463 |
if(isset($organizer['email']) && !empty($organizer['email'])): ?>
|
1464 |
<dd class="mec-organizer-email">
|
1465 |
<i class="mec-sl-envelope"></i>
|
1466 |
<h6><?php _e('Email', 'modern-events-calendar-lite'); ?></h6>
|
1467 |
+
<a href="mailto:<?php echo esc_attr($organizer['email']); ?>"><?php echo $organizer['email']; ?></a>
|
1468 |
</dd>
|
1469 |
<?php endif;
|
1470 |
if(isset($organizer['url']) && !empty($organizer['url']) and $organizer['url'] != 'http://'): ?>
|
app/skins/single/default.php
CHANGED
@@ -228,7 +228,7 @@ if($sticky_sidebar == 1) $sticky_sidebar = 'mec-sticky';
|
|
228 |
<div class="mec-event-more-info">
|
229 |
<i class="mec-sl-info"></i>
|
230 |
<h3 class="mec-cost"><?php echo $this->main->m('more_info_link', __('More Info', 'modern-events-calendar-lite')); ?></h3>
|
231 |
-
<dl><dd class="mec-events-event-more-info"><a class="mec-more-info-button mec-color-hover" target="<?php echo $more_info_target; ?>" href="<?php echo esc_url($more_info); ?>"><?php echo $more_info_title; ?></a></dd></dl>
|
232 |
</div>
|
233 |
<?php
|
234 |
}
|
@@ -336,14 +336,14 @@ if($sticky_sidebar == 1) $sticky_sidebar = 'mec-sticky';
|
|
336 |
<dd class="mec-organizer-tel">
|
337 |
<i class="mec-sl-phone"></i>
|
338 |
<h6><?php _e('Phone', 'modern-events-calendar-lite'); ?></h6>
|
339 |
-
<a href="tel:<?php echo $organizer['tel']; ?>"><?php echo $organizer['tel']; ?></a>
|
340 |
</dd>
|
341 |
<?php endif;
|
342 |
if(isset($organizer['email']) && !empty($organizer['email'])): ?>
|
343 |
<dd class="mec-organizer-email">
|
344 |
<i class="mec-sl-envelope"></i>
|
345 |
<h6><?php _e('Email', 'modern-events-calendar-lite'); ?></h6>
|
346 |
-
<a href="mailto:<?php echo $organizer['email']; ?>"><?php echo $organizer['email']; ?></a>
|
347 |
</dd>
|
348 |
<?php endif;
|
349 |
if(isset($organizer['url']) && !empty($organizer['url']) and $organizer['url'] != 'http://'): ?>
|
@@ -371,7 +371,7 @@ if($sticky_sidebar == 1) $sticky_sidebar = 'mec-sticky';
|
|
371 |
<?php $data_lity = $data_lity_class = ''; if(isset($settings['single_booking_style']) and $settings['single_booking_style'] == 'modal' ){ /* $data_lity = 'onclick="openBookingModal();"'; */ $data_lity_class = 'mec-booking-data-lity'; } ?>
|
372 |
<a class="mec-booking-button mec-bg-color <?php echo $data_lity_class; ?> <?php if(isset($settings['single_booking_style']) and $settings['single_booking_style'] != 'modal' ) echo 'simple-booking'; ?>" href="#mec-events-meta-group-booking-<?php echo $this->uniqueid; ?>" <?php echo $data_lity; ?>><?php echo esc_html($this->main->m('register_button', __('REGISTER', 'modern-events-calendar-lite'))); ?></a>
|
373 |
<?php elseif($more_info): ?>
|
374 |
-
<a class="mec-booking-button mec-bg-color" target="<?php echo $more_info_target; ?>" href="<?php echo esc_url($more_info); ?>"><?php if($more_info_title) echo esc_html__($more_info_title, 'modern-events-calendar-lite'); else echo esc_html($this->main->m('register_button', __('REGISTER', 'modern-events-calendar-lite'))); ?></a>
|
375 |
<?php endif; ?>
|
376 |
|
377 |
</div>
|
228 |
<div class="mec-event-more-info">
|
229 |
<i class="mec-sl-info"></i>
|
230 |
<h3 class="mec-cost"><?php echo $this->main->m('more_info_link', __('More Info', 'modern-events-calendar-lite')); ?></h3>
|
231 |
+
<dl><dd class="mec-events-event-more-info"><a class="mec-more-info-button mec-color-hover" target="<?php echo esc_attr($more_info_target); ?>" href="<?php echo esc_url($more_info); ?>"><?php echo $more_info_title; ?></a></dd></dl>
|
232 |
</div>
|
233 |
<?php
|
234 |
}
|
336 |
<dd class="mec-organizer-tel">
|
337 |
<i class="mec-sl-phone"></i>
|
338 |
<h6><?php _e('Phone', 'modern-events-calendar-lite'); ?></h6>
|
339 |
+
<a href="tel:<?php echo esc_attr($organizer['tel']); ?>"><?php echo $organizer['tel']; ?></a>
|
340 |
</dd>
|
341 |
<?php endif;
|
342 |
if(isset($organizer['email']) && !empty($organizer['email'])): ?>
|
343 |
<dd class="mec-organizer-email">
|
344 |
<i class="mec-sl-envelope"></i>
|
345 |
<h6><?php _e('Email', 'modern-events-calendar-lite'); ?></h6>
|
346 |
+
<a href="mailto:<?php echo esc_attr($organizer['email']); ?>"><?php echo $organizer['email']; ?></a>
|
347 |
</dd>
|
348 |
<?php endif;
|
349 |
if(isset($organizer['url']) && !empty($organizer['url']) and $organizer['url'] != 'http://'): ?>
|
371 |
<?php $data_lity = $data_lity_class = ''; if(isset($settings['single_booking_style']) and $settings['single_booking_style'] == 'modal' ){ /* $data_lity = 'onclick="openBookingModal();"'; */ $data_lity_class = 'mec-booking-data-lity'; } ?>
|
372 |
<a class="mec-booking-button mec-bg-color <?php echo $data_lity_class; ?> <?php if(isset($settings['single_booking_style']) and $settings['single_booking_style'] != 'modal' ) echo 'simple-booking'; ?>" href="#mec-events-meta-group-booking-<?php echo $this->uniqueid; ?>" <?php echo $data_lity; ?>><?php echo esc_html($this->main->m('register_button', __('REGISTER', 'modern-events-calendar-lite'))); ?></a>
|
373 |
<?php elseif($more_info): ?>
|
374 |
+
<a class="mec-booking-button mec-bg-color" target="<?php echo esc_attr($more_info_target); ?>" href="<?php echo esc_url($more_info); ?>"><?php if($more_info_title) echo esc_html__($more_info_title, 'modern-events-calendar-lite'); else echo esc_html($this->main->m('register_button', __('REGISTER', 'modern-events-calendar-lite'))); ?></a>
|
375 |
<?php endif; ?>
|
376 |
|
377 |
</div>
|
app/skins/single/m1.php
CHANGED
@@ -132,14 +132,14 @@ $cost = $this->main->get_event_cost($event);
|
|
132 |
<dd class="mec-organizer-tel">
|
133 |
<i class="mec-sl-phone"></i>
|
134 |
<h6><?php _e('Phone', 'modern-events-calendar-lite'); ?></h6>
|
135 |
-
<a href="tel:<?php echo $organizer['tel']; ?>"><?php echo $organizer['tel']; ?></a>
|
136 |
</dd>
|
137 |
<?php endif;
|
138 |
if(isset($organizer['email']) && !empty($organizer['email'])): ?>
|
139 |
<dd class="mec-organizer-email">
|
140 |
<i class="mec-sl-envelope"></i>
|
141 |
<h6><?php _e('Email', 'modern-events-calendar-lite'); ?></h6>
|
142 |
-
<a href="mailto:<?php echo $organizer['email']; ?>"><?php echo $organizer['email']; ?></a>
|
143 |
</dd>
|
144 |
<?php endif;
|
145 |
if(isset($organizer['url']) && !empty($organizer['url']) and $organizer['url'] != 'http://'): ?>
|
@@ -167,7 +167,7 @@ $cost = $this->main->get_event_cost($event);
|
|
167 |
<?php elseif($event_link): ?>
|
168 |
<a class="mec-booking-button mec-bg-color" target="_blank" href="<?php echo esc_url($event_link); ?>"><?php echo esc_html($this->main->m('register_button', __('REGISTER', 'modern-events-calendar-lite'))); ?></a>
|
169 |
<?php elseif($more_info): ?>
|
170 |
-
<a class="mec-booking-button mec-bg-color" target="<?php echo $more_info_target; ?>" href="<?php echo esc_url($more_info); ?>"><?php if($more_info_title) echo esc_html__($more_info_title, 'modern-events-calendar-lite'); else echo esc_html($this->main->m('register_button', __('REGISTER', 'modern-events-calendar-lite'))); ?></a>
|
171 |
<?php endif; ?>
|
172 |
</div>
|
173 |
|
@@ -255,7 +255,7 @@ $cost = $this->main->get_event_cost($event);
|
|
255 |
<div class="mec-event-more-info">
|
256 |
<i class="mec-sl-info"></i>
|
257 |
<h3 class="mec-cost"><?php echo $this->main->m('more_info_link', __('More Info', 'modern-events-calendar-lite')); ?></h3>
|
258 |
-
<dl><dd class="mec-events-event-more-info"><a class="mec-more-info-button mec-color-hover" target="<?php echo $more_info_target; ?>" href="<?php echo esc_url($more_info); ?>"><?php echo $more_info_title; ?></a></dd></dl>
|
259 |
</div>
|
260 |
<?php
|
261 |
}
|
132 |
<dd class="mec-organizer-tel">
|
133 |
<i class="mec-sl-phone"></i>
|
134 |
<h6><?php _e('Phone', 'modern-events-calendar-lite'); ?></h6>
|
135 |
+
<a href="tel:<?php echo esc_attr($organizer['tel']); ?>"><?php echo $organizer['tel']; ?></a>
|
136 |
</dd>
|
137 |
<?php endif;
|
138 |
if(isset($organizer['email']) && !empty($organizer['email'])): ?>
|
139 |
<dd class="mec-organizer-email">
|
140 |
<i class="mec-sl-envelope"></i>
|
141 |
<h6><?php _e('Email', 'modern-events-calendar-lite'); ?></h6>
|
142 |
+
<a href="mailto:<?php echo esc_attr($organizer['email']); ?>"><?php echo $organizer['email']; ?></a>
|
143 |
</dd>
|
144 |
<?php endif;
|
145 |
if(isset($organizer['url']) && !empty($organizer['url']) and $organizer['url'] != 'http://'): ?>
|
167 |
<?php elseif($event_link): ?>
|
168 |
<a class="mec-booking-button mec-bg-color" target="_blank" href="<?php echo esc_url($event_link); ?>"><?php echo esc_html($this->main->m('register_button', __('REGISTER', 'modern-events-calendar-lite'))); ?></a>
|
169 |
<?php elseif($more_info): ?>
|
170 |
+
<a class="mec-booking-button mec-bg-color" target="<?php echo esc_attr($more_info_target); ?>" href="<?php echo esc_url($more_info); ?>"><?php if($more_info_title) echo esc_html__($more_info_title, 'modern-events-calendar-lite'); else echo esc_html($this->main->m('register_button', __('REGISTER', 'modern-events-calendar-lite'))); ?></a>
|
171 |
<?php endif; ?>
|
172 |
</div>
|
173 |
|
255 |
<div class="mec-event-more-info">
|
256 |
<i class="mec-sl-info"></i>
|
257 |
<h3 class="mec-cost"><?php echo $this->main->m('more_info_link', __('More Info', 'modern-events-calendar-lite')); ?></h3>
|
258 |
+
<dl><dd class="mec-events-event-more-info"><a class="mec-more-info-button mec-color-hover" target="<?php echo esc_attr($more_info_target); ?>" href="<?php echo esc_url($more_info); ?>"><?php echo $more_info_title; ?></a></dd></dl>
|
259 |
</div>
|
260 |
<?php
|
261 |
}
|
app/skins/single/m2.php
CHANGED
@@ -52,14 +52,14 @@ $organizer = ($organizer_id ? $this->main->get_organizer_data($organizer_id) : a
|
|
52 |
<dd class="mec-organizer-tel">
|
53 |
<i class="mec-sl-phone"></i>
|
54 |
<h6><?php _e('Phone', 'modern-events-calendar-lite'); ?></h6>
|
55 |
-
<a href="tel:<?php echo $organizer['tel']; ?>"><?php echo $organizer['tel']; ?></a>
|
56 |
</dd>
|
57 |
<?php endif;
|
58 |
if(isset($organizer['email']) && !empty($organizer['email'])): ?>
|
59 |
<dd class="mec-organizer-email">
|
60 |
<i class="mec-sl-envelope"></i>
|
61 |
<h6><?php _e('Email', 'modern-events-calendar-lite'); ?></h6>
|
62 |
-
<a href="mailto:<?php echo $organizer['email']; ?>"><?php echo $organizer['email']; ?></a>
|
63 |
</dd>
|
64 |
<?php endif;
|
65 |
if(isset($organizer['url']) && !empty($organizer['url']) and $organizer['url'] != 'http://'): ?>
|
@@ -87,7 +87,7 @@ $organizer = ($organizer_id ? $this->main->get_organizer_data($organizer_id) : a
|
|
87 |
<?php elseif($event_link): ?>
|
88 |
<a class="mec-booking-button mec-bg-color" target="_blank" href="<?php echo esc_url($event_link); ?>"><?php echo esc_html($this->main->m('register_button', __('REGISTER', 'modern-events-calendar-lite'))); ?></a>
|
89 |
<?php elseif($more_info): ?>
|
90 |
-
<a class="mec-booking-button mec-bg-color" target="<?php echo $more_info_target; ?>" href="<?php echo esc_url($more_info); ?>"><?php if($more_info_title) echo esc_html__($more_info_title, 'modern-events-calendar-lite'); else echo esc_html($this->main->m('register_button', __('REGISTER', 'modern-events-calendar-lite'))); ?></a>
|
91 |
<?php endif; ?>
|
92 |
</div>
|
93 |
|
@@ -176,7 +176,7 @@ $organizer = ($organizer_id ? $this->main->get_organizer_data($organizer_id) : a
|
|
176 |
<div class="mec-event-more-info">
|
177 |
<i class="mec-sl-info"></i>
|
178 |
<h3 class="mec-cost"><?php echo $this->main->m('more_info_link', __('More Info', 'modern-events-calendar-lite')); ?></h3>
|
179 |
-
<dd class="mec-events-event-more-info"><a class="mec-more-info-button mec-color-hover" target="<?php echo $more_info_target; ?>" href="<?php echo esc_url($more_info); ?>"><?php echo $more_info_title; ?></a></dd>
|
180 |
</div>
|
181 |
<?php
|
182 |
}
|
52 |
<dd class="mec-organizer-tel">
|
53 |
<i class="mec-sl-phone"></i>
|
54 |
<h6><?php _e('Phone', 'modern-events-calendar-lite'); ?></h6>
|
55 |
+
<a href="tel:<?php echo esc_attr($organizer['tel']); ?>"><?php echo $organizer['tel']; ?></a>
|
56 |
</dd>
|
57 |
<?php endif;
|
58 |
if(isset($organizer['email']) && !empty($organizer['email'])): ?>
|
59 |
<dd class="mec-organizer-email">
|
60 |
<i class="mec-sl-envelope"></i>
|
61 |
<h6><?php _e('Email', 'modern-events-calendar-lite'); ?></h6>
|
62 |
+
<a href="mailto:<?php echo esc_attr($organizer['email']); ?>"><?php echo $organizer['email']; ?></a>
|
63 |
</dd>
|
64 |
<?php endif;
|
65 |
if(isset($organizer['url']) && !empty($organizer['url']) and $organizer['url'] != 'http://'): ?>
|
87 |
<?php elseif($event_link): ?>
|
88 |
<a class="mec-booking-button mec-bg-color" target="_blank" href="<?php echo esc_url($event_link); ?>"><?php echo esc_html($this->main->m('register_button', __('REGISTER', 'modern-events-calendar-lite'))); ?></a>
|
89 |
<?php elseif($more_info): ?>
|
90 |
+
<a class="mec-booking-button mec-bg-color" target="<?php echo esc_attr($more_info_target); ?>" href="<?php echo esc_url($more_info); ?>"><?php if($more_info_title) echo esc_html__($more_info_title, 'modern-events-calendar-lite'); else echo esc_html($this->main->m('register_button', __('REGISTER', 'modern-events-calendar-lite'))); ?></a>
|
91 |
<?php endif; ?>
|
92 |
</div>
|
93 |
|
176 |
<div class="mec-event-more-info">
|
177 |
<i class="mec-sl-info"></i>
|
178 |
<h3 class="mec-cost"><?php echo $this->main->m('more_info_link', __('More Info', 'modern-events-calendar-lite')); ?></h3>
|
179 |
+
<dd class="mec-events-event-more-info"><a class="mec-more-info-button mec-color-hover" target="<?php echo esc_attr($more_info_target); ?>" href="<?php echo esc_url($more_info); ?>"><?php echo $more_info_title; ?></a></dd>
|
180 |
</div>
|
181 |
<?php
|
182 |
}
|
app/skins/single/tpl.php
CHANGED
@@ -12,6 +12,9 @@ $settings = $this->main->get_settings();
|
|
12 |
$occurrence = (isset($event->date['start']['date']) ? $event->date['start']['date'] : (isset($_GET['occurrence']) ? sanitize_text_field($_GET['occurrence']) : ''));
|
13 |
$occurrence_end_date = (isset($event->date['end']['date']) ? $event->date['end']['date'] : (trim($occurrence) ? $this->main->get_end_date_by_occurrence($event->data->ID, (isset($event->date['start']['date']) ? $event->date['start']['date'] : $occurrence)) : ''));
|
14 |
|
|
|
|
|
|
|
15 |
$show_event_details_page = apply_filters('mec_show_event_details_page', true, $event->data->ID);
|
16 |
if($show_event_details_page !== true)
|
17 |
{
|
12 |
$occurrence = (isset($event->date['start']['date']) ? $event->date['start']['date'] : (isset($_GET['occurrence']) ? sanitize_text_field($_GET['occurrence']) : ''));
|
13 |
$occurrence_end_date = (isset($event->date['end']['date']) ? $event->date['end']['date'] : (trim($occurrence) ? $this->main->get_end_date_by_occurrence($event->data->ID, (isset($event->date['start']['date']) ? $event->date['start']['date'] : $occurrence)) : ''));
|
14 |
|
15 |
+
// Event Object
|
16 |
+
$GLOBALS['mec-event'] = $event;
|
17 |
+
|
18 |
$show_event_details_page = apply_filters('mec_show_event_details_page', true, $event->data->ID);
|
19 |
if($show_event_details_page !== true)
|
20 |
{
|
app/skins/slider/tpl.php
CHANGED
@@ -42,14 +42,14 @@ else $this->factory->params('footer', $javascript);
|
|
42 |
do_action('mec_start_skin', $this->id);
|
43 |
do_action('mec_slider_skin_head');
|
44 |
?>
|
45 |
-
<div class="mec-wrap mec-skin-slider-container<?php echo $this->html_class . ' ' . $set_dark; ?>" id="mec_skin_<?php echo $this->id; ?>">
|
46 |
|
47 |
<?php if($this->found): ?>
|
48 |
-
<div class="mec-skin-slider-events-container" id="mec_skin_events_<?php echo $this->id; ?>">
|
49 |
<?php echo $items_html; ?>
|
50 |
</div>
|
51 |
<?php else: ?>
|
52 |
-
<div class="mec-skin-slider-events-container" id="mec_skin_events_<?php echo $this->id; ?>">
|
53 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
54 |
</div>
|
55 |
<?php endif; ?>
|
42 |
do_action('mec_start_skin', $this->id);
|
43 |
do_action('mec_slider_skin_head');
|
44 |
?>
|
45 |
+
<div class="mec-wrap mec-skin-slider-container<?php echo $this->html_class . ' ' . $set_dark; ?>" id="mec_skin_<?php echo esc_attr($this->id); ?>">
|
46 |
|
47 |
<?php if($this->found): ?>
|
48 |
+
<div class="mec-skin-slider-events-container" id="mec_skin_events_<?php echo esc_attr($this->id); ?>">
|
49 |
<?php echo $items_html; ?>
|
50 |
</div>
|
51 |
<?php else: ?>
|
52 |
+
<div class="mec-skin-slider-events-container" id="mec_skin_events_<?php echo esc_attr($this->id); ?>">
|
53 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
54 |
</div>
|
55 |
<?php endif; ?>
|
app/skins/tile/render.php
CHANGED
@@ -56,7 +56,7 @@ $map_events = array();
|
|
56 |
<?php endif; ?>
|
57 |
<div class="mec-event-time"><i class="mec-sl-clock"></i><?php echo $start_time; ?></div>
|
58 |
</div>
|
59 |
-
<div class="mec-event-content" data-target="<?php echo ($method == 'new' ? 'blank' : ($method ? $method : '')); ?>" data-event-id="<?php echo $event->ID; ?>">
|
60 |
<?php if($method != 'no'): ?><a href="<?php echo $this->main->get_event_date_permalink($event, $event->date['start']['date']); ?>" target="<?php echo ($method == 'new' ? 'blank' : ($method ? $method : '')); ?>" class="mec-tile-into-content-link"></a><?php endif; ?>
|
61 |
<div class="mec-tile-event-content">
|
62 |
<div class="mec-event-detail">
|
56 |
<?php endif; ?>
|
57 |
<div class="mec-event-time"><i class="mec-sl-clock"></i><?php echo $start_time; ?></div>
|
58 |
</div>
|
59 |
+
<div class="mec-event-content" data-target="<?php echo ($method == 'new' ? 'blank' : ($method ? $method : '')); ?>" data-event-id="<?php echo esc_attr($event->ID); ?>">
|
60 |
<?php if($method != 'no'): ?><a href="<?php echo $this->main->get_event_date_permalink($event, $event->date['start']['date']); ?>" target="<?php echo ($method == 'new' ? 'blank' : ($method ? $method : '')); ?>" class="mec-tile-into-content-link"></a><?php endif; ?>
|
61 |
<div class="mec-tile-event-content">
|
62 |
<div class="mec-event-detail">
|
app/skins/tile/tpl.php
CHANGED
@@ -115,7 +115,7 @@ else $set_dark ='';
|
|
115 |
do_action('mec_start_skin', $this->id);
|
116 |
do_action('mec_tile_head');
|
117 |
?>
|
118 |
-
<div id="mec_skin_<?php echo $this->id; ?>" class="mec-wrap <?php echo $event_colorskin . ' ' . $this->html_class . ' ' . $set_dark; ?>">
|
119 |
|
120 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
121 |
|
@@ -124,15 +124,15 @@ do_action('mec_tile_head');
|
|
124 |
<div class="mec-clear">
|
125 |
<?php if($this->next_previous_button): ?>
|
126 |
<div class="mec-skin-tile-month-navigator-container">
|
127 |
-
<div class="mec-month-navigator" id="mec_month_navigator_<?php echo $this->id; ?>_<?php echo date('Ym', $current_month_time); ?>"><?php echo $navigator_html; ?></div>
|
128 |
</div>
|
129 |
<?php endif; ?>
|
130 |
|
131 |
-
<div class="mec-calendar-table" id="mec_skin_events_<?php echo $this->id; ?>">
|
132 |
<?php if($this->load_method === 'list'): ?>
|
133 |
<?php echo $month_html; ?>
|
134 |
<?php else: ?>
|
135 |
-
<div class="mec-month-container mec-month-container-selected" id="mec_tile_month_<?php echo $this->id; ?>_<?php echo date('Ym', $current_month_time); ?>" data-month-id="<?php echo date('Ym', $current_month_time); ?>"><?php echo $month_html; ?></div>
|
136 |
<?php endif; ?>
|
137 |
</div>
|
138 |
|
115 |
do_action('mec_start_skin', $this->id);
|
116 |
do_action('mec_tile_head');
|
117 |
?>
|
118 |
+
<div id="mec_skin_<?php echo esc_attr($this->id); ?>" class="mec-wrap <?php echo $event_colorskin . ' ' . $this->html_class . ' ' . $set_dark; ?>">
|
119 |
|
120 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
121 |
|
124 |
<div class="mec-clear">
|
125 |
<?php if($this->next_previous_button): ?>
|
126 |
<div class="mec-skin-tile-month-navigator-container">
|
127 |
+
<div class="mec-month-navigator" id="mec_month_navigator_<?php echo esc_attr($this->id); ?>_<?php echo date('Ym', $current_month_time); ?>"><?php echo $navigator_html; ?></div>
|
128 |
</div>
|
129 |
<?php endif; ?>
|
130 |
|
131 |
+
<div class="mec-calendar-table" id="mec_skin_events_<?php echo esc_attr($this->id); ?>">
|
132 |
<?php if($this->load_method === 'list'): ?>
|
133 |
<?php echo $month_html; ?>
|
134 |
<?php else: ?>
|
135 |
+
<div class="mec-month-container mec-month-container-selected" id="mec_tile_month_<?php echo esc_attr($this->id); ?>_<?php echo date('Ym', $current_month_time); ?>" data-month-id="<?php echo date('Ym', $current_month_time); ?>"><?php echo $month_html; ?></div>
|
136 |
<?php endif; ?>
|
137 |
</div>
|
138 |
|
app/skins/timeline/tpl.php
CHANGED
@@ -57,19 +57,19 @@ else $this->factory->params('footer', $javascript);
|
|
57 |
do_action('mec_start_skin', $this->id);
|
58 |
do_action('mec_timeline_skin_head');
|
59 |
?>
|
60 |
-
<div class="mec-wrap mec-skin-timeline-container <?php echo $this->html_class . ' ' . $set_dark; ?>" id="mec_skin_<?php echo $this->id; ?>">
|
61 |
|
62 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
63 |
|
64 |
<?php if($this->found): ?>
|
65 |
-
<div class="mec-skin-timeline-events-container" id="mec_skin_events_<?php echo $this->id; ?>">
|
66 |
<?php echo $items_html; ?>
|
67 |
</div>
|
68 |
-
<div class="mec-skin-timeline-no-events-container mec-util-hidden" id="mec_skin_no_events_<?php echo $this->id; ?>">
|
69 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
70 |
</div>
|
71 |
<?php else: ?>
|
72 |
-
<div class="mec-skin-timeline-events-container" id="mec_skin_events_<?php echo $this->id; ?>">
|
73 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
74 |
</div>
|
75 |
<?php endif; ?>
|
57 |
do_action('mec_start_skin', $this->id);
|
58 |
do_action('mec_timeline_skin_head');
|
59 |
?>
|
60 |
+
<div class="mec-wrap mec-skin-timeline-container <?php echo $this->html_class . ' ' . $set_dark; ?>" id="mec_skin_<?php echo esc_attr($this->id); ?>">
|
61 |
|
62 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
63 |
|
64 |
<?php if($this->found): ?>
|
65 |
+
<div class="mec-skin-timeline-events-container" id="mec_skin_events_<?php echo esc_attr($this->id); ?>">
|
66 |
<?php echo $items_html; ?>
|
67 |
</div>
|
68 |
+
<div class="mec-skin-timeline-no-events-container mec-util-hidden" id="mec_skin_no_events_<?php echo esc_attr($this->id); ?>">
|
69 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
70 |
</div>
|
71 |
<?php else: ?>
|
72 |
+
<div class="mec-skin-timeline-events-container" id="mec_skin_events_<?php echo esc_attr($this->id); ?>">
|
73 |
<?php _e('No event found!', 'modern-events-calendar-lite'); ?>
|
74 |
</div>
|
75 |
<?php endif; ?>
|
app/skins/timetable/classic.php
CHANGED
@@ -49,11 +49,11 @@ else $this->factory->params('footer', $javascript);
|
|
49 |
$styling = $this->main->get_styling();
|
50 |
$event_colorskin = (isset($styling['mec_colorskin']) || isset($styling['color'])) ? 'colorskin-custom' : '';
|
51 |
?>
|
52 |
-
<div id="mec_skin_<?php echo $this->id; ?>" class="mec-timetable-wrap mec-wrap <?php echo $event_colorskin . ' ' . $this->html_class; ?>">
|
53 |
|
54 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
55 |
|
56 |
-
<div id="mec_skin_events_<?php echo $this->id; ?>">
|
57 |
<?php echo $date_events; ?>
|
58 |
</div>
|
59 |
|
49 |
$styling = $this->main->get_styling();
|
50 |
$event_colorskin = (isset($styling['mec_colorskin']) || isset($styling['color'])) ? 'colorskin-custom' : '';
|
51 |
?>
|
52 |
+
<div id="mec_skin_<?php echo esc_attr($this->id); ?>" class="mec-timetable-wrap mec-wrap <?php echo $event_colorskin . ' ' . $this->html_class; ?>">
|
53 |
|
54 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
55 |
|
56 |
+
<div id="mec_skin_events_<?php echo esc_attr($this->id); ?>">
|
57 |
<?php echo $date_events; ?>
|
58 |
</div>
|
59 |
|
app/skins/timetable/clean.php
CHANGED
@@ -52,11 +52,11 @@ else $this->factory->params('footer', $javascript);
|
|
52 |
$styling = $this->main->get_styling();
|
53 |
$event_colorskin = (isset($styling['mec_colorskin']) || isset($styling['color'])) ? 'colorskin-custom' : '';
|
54 |
?>
|
55 |
-
<div id="mec_skin_<?php echo $this->id; ?>" class="mec-timetable-wrap mec-wrap <?php echo $event_colorskin . ' ' . $this->html_class; ?>">
|
56 |
|
57 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
58 |
|
59 |
-
<div id="mec_skin_events_<?php echo $this->id; ?>">
|
60 |
<?php echo $date_events; ?>
|
61 |
</div>
|
62 |
|
52 |
$styling = $this->main->get_styling();
|
53 |
$event_colorskin = (isset($styling['mec_colorskin']) || isset($styling['color'])) ? 'colorskin-custom' : '';
|
54 |
?>
|
55 |
+
<div id="mec_skin_<?php echo esc_attr($this->id); ?>" class="mec-timetable-wrap mec-wrap <?php echo $event_colorskin . ' ' . $this->html_class; ?>">
|
56 |
|
57 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
58 |
|
59 |
+
<div id="mec_skin_events_<?php echo esc_attr($this->id); ?>">
|
60 |
<?php echo $date_events; ?>
|
61 |
</div>
|
62 |
|
app/skins/timetable/modern.php
CHANGED
@@ -137,14 +137,14 @@ else $this->factory->params('footer', $javascript);
|
|
137 |
$styling = $this->main->get_styling();
|
138 |
$event_colorskin = (isset($styling['mec_colorskin'] ) || isset($styling['color'])) ? 'colorskin-custom' : '';
|
139 |
?>
|
140 |
-
<div id="mec_skin_<?php echo $this->id; ?>" class="mec-timetable-wrap mec-wrap <?php echo $event_colorskin . ' ' . $this->html_class; ?>">
|
141 |
|
142 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
143 |
|
144 |
<div class="mec-calendar mec-calendar-daily mec-calendar-weekly mec-calendar-timetable">
|
145 |
<?php if($this->next_previous_button): ?>
|
146 |
<div class="mec-skin-weekly-view-month-navigator-container mec-calendar-a-month mec-clear">
|
147 |
-
<div class="mec-month-navigator" id="mec_month_navigator<?php echo $this->id; ?>_<?php echo date('Ym', $current_month_time); ?>"><?php echo $navigator_html; ?></div>
|
148 |
</div>
|
149 |
<?php else: ?>
|
150 |
<div class="mec-calendar-a-month mec-clear">
|
@@ -152,8 +152,8 @@ $event_colorskin = (isset($styling['mec_colorskin'] ) || isset($styling['color']
|
|
152 |
</div>
|
153 |
<?php endif; ?>
|
154 |
|
155 |
-
<div class="mec-skin-weekly-view-events-container" id="mec_skin_events_<?php echo $this->id; ?>">
|
156 |
-
<div class="mec-month-container" id="mec_timetable_month_<?php echo $this->id; ?>_<?php echo date('Ym', $current_month_time); ?>">
|
157 |
<?php echo $week_html . $month_html; ?>
|
158 |
</div>
|
159 |
</div>
|
137 |
$styling = $this->main->get_styling();
|
138 |
$event_colorskin = (isset($styling['mec_colorskin'] ) || isset($styling['color'])) ? 'colorskin-custom' : '';
|
139 |
?>
|
140 |
+
<div id="mec_skin_<?php echo esc_attr($this->id); ?>" class="mec-timetable-wrap mec-wrap <?php echo $event_colorskin . ' ' . $this->html_class; ?>">
|
141 |
|
142 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
143 |
|
144 |
<div class="mec-calendar mec-calendar-daily mec-calendar-weekly mec-calendar-timetable">
|
145 |
<?php if($this->next_previous_button): ?>
|
146 |
<div class="mec-skin-weekly-view-month-navigator-container mec-calendar-a-month mec-clear">
|
147 |
+
<div class="mec-month-navigator" id="mec_month_navigator<?php echo esc_attr($this->id); ?>_<?php echo date('Ym', $current_month_time); ?>"><?php echo $navigator_html; ?></div>
|
148 |
</div>
|
149 |
<?php else: ?>
|
150 |
<div class="mec-calendar-a-month mec-clear">
|
152 |
</div>
|
153 |
<?php endif; ?>
|
154 |
|
155 |
+
<div class="mec-skin-weekly-view-events-container" id="mec_skin_events_<?php echo esc_attr($this->id); ?>">
|
156 |
+
<div class="mec-month-container" id="mec_timetable_month_<?php echo esc_attr($this->id); ?>_<?php echo date('Ym', $current_month_time); ?>">
|
157 |
<?php echo $week_html . $month_html; ?>
|
158 |
</div>
|
159 |
</div>
|
app/skins/timetable/render.php
CHANGED
@@ -26,7 +26,7 @@ else $set_dark = '';
|
|
26 |
}
|
27 |
?>
|
28 |
<?php if(count($events)): ?>
|
29 |
-
<div class="mec-timetable-events-list <?php echo ($date == $this->active_date ? '' : 'mec-util-hidden'); ?> mec-weekly-view-date-events mec-calendar-day-events mec-clear mec-weekly-view-week-<?php echo $this->id; ?>-<?php echo date('Ym', strtotime($date)).$week; ?> mec_weekly_view_date_events<?php echo $this->id; ?>_<?php echo date('Ymd', strtotime($date)); ?>" id="mec_weekly_view_date_events<?php echo $this->id; ?>_<?php echo date('Ymd', strtotime($date)); ?>" data-week-number="<?php echo $week; ?>">
|
30 |
<?php foreach($events as $event): ?>
|
31 |
<?php
|
32 |
$location_id = $this->main->get_master_location_id($event);
|
@@ -43,7 +43,7 @@ else $set_dark = '';
|
|
43 |
// MEC Schema
|
44 |
do_action('mec_schema', $event);
|
45 |
?>
|
46 |
-
<article class="<?php echo (isset($event->data->meta['event_past']) and trim($event->data->meta['event_past'])) ? 'mec-past-event ' : ''; ?>mec-timetable-event mec-timetable-day-<?php echo $this->id; ?>-<?php echo date('Ymd', strtotime($date)); ?> <?php echo $this->get_event_classes($event); ?>">
|
47 |
<span class="mec-timetable-event-span mec-timetable-event-time">
|
48 |
<i class="mec-sl-clock"></i>
|
49 |
<?php if(trim($start_time)): ?>
|
@@ -75,7 +75,7 @@ else $set_dark = '';
|
|
75 |
</div>
|
76 |
|
77 |
<?php elseif(!isset($has_events[$week])): $has_events[$week] = 'printed'; ?>
|
78 |
-
<div class="mec-timetable-events-list mec-weekly-view-date-events mec-util-hidden mec-calendar-day-events mec-clear mec-weekly-view-week-<?php echo $this->id; ?>-<?php echo date('Ym', strtotime($date)).$week; ?> mec_weekly_view_date_events<?php echo $this->id; ?>_<?php echo date('Ymd', strtotime($date)); ?>" id="mec_weekly_view_date_events<?php echo $this->id; ?>_<?php echo date('Ymd', strtotime($date)); ?>" data-week-number="<?php echo $week; ?>">
|
79 |
<article class="mec-event-article"><h4 class="mec-event-title"><?php _e('No Events', 'modern-events-calendar-lite'); ?></h4><div class="mec-event-detail"></div></article>
|
80 |
</div>
|
81 |
<?php endif; ?>
|
26 |
}
|
27 |
?>
|
28 |
<?php if(count($events)): ?>
|
29 |
+
<div class="mec-timetable-events-list <?php echo ($date == $this->active_date ? '' : 'mec-util-hidden'); ?> mec-weekly-view-date-events mec-calendar-day-events mec-clear mec-weekly-view-week-<?php echo esc_attr($this->id); ?>-<?php echo date('Ym', strtotime($date)).$week; ?> mec_weekly_view_date_events<?php echo esc_attr($this->id); ?>_<?php echo date('Ymd', strtotime($date)); ?>" id="mec_weekly_view_date_events<?php echo esc_attr($this->id); ?>_<?php echo date('Ymd', strtotime($date)); ?>" data-week-number="<?php echo $week; ?>">
|
30 |
<?php foreach($events as $event): ?>
|
31 |
<?php
|
32 |
$location_id = $this->main->get_master_location_id($event);
|
43 |
// MEC Schema
|
44 |
do_action('mec_schema', $event);
|
45 |
?>
|
46 |
+
<article class="<?php echo (isset($event->data->meta['event_past']) and trim($event->data->meta['event_past'])) ? 'mec-past-event ' : ''; ?>mec-timetable-event mec-timetable-day-<?php echo esc_attr($this->id); ?>-<?php echo date('Ymd', strtotime($date)); ?> <?php echo $this->get_event_classes($event); ?>">
|
47 |
<span class="mec-timetable-event-span mec-timetable-event-time">
|
48 |
<i class="mec-sl-clock"></i>
|
49 |
<?php if(trim($start_time)): ?>
|
75 |
</div>
|
76 |
|
77 |
<?php elseif(!isset($has_events[$week])): $has_events[$week] = 'printed'; ?>
|
78 |
+
<div class="mec-timetable-events-list mec-weekly-view-date-events mec-util-hidden mec-calendar-day-events mec-clear mec-weekly-view-week-<?php echo esc_attr($this->id); ?>-<?php echo date('Ym', strtotime($date)).$week; ?> mec_weekly_view_date_events<?php echo esc_attr($this->id); ?>_<?php echo date('Ymd', strtotime($date)); ?>" id="mec_weekly_view_date_events<?php echo esc_attr($this->id); ?>_<?php echo date('Ymd', strtotime($date)); ?>" data-week-number="<?php echo $week; ?>">
|
79 |
<article class="mec-event-article"><h4 class="mec-event-title"><?php _e('No Events', 'modern-events-calendar-lite'); ?></h4><div class="mec-event-detail"></div></article>
|
80 |
</div>
|
81 |
<?php endif; ?>
|
app/skins/weekly_view/render.php
CHANGED
@@ -19,7 +19,7 @@ $reason_for_cancellation = isset($this->skin_options['reason_for_cancellation'])
|
|
19 |
}
|
20 |
?>
|
21 |
<?php if(count($events)): ?>
|
22 |
-
<li class="mec-weekly-view-date-events mec-util-hidden mec-calendar-day-events mec-clear mec-weekly-view-week-<?php echo $this->id; ?>-<?php echo $this->year.$this->month.$week; ?>" id="mec_weekly_view_date_events<?php echo $this->id; ?>_<?php echo date('Ymd', strtotime($date)); ?>" data-week-number="<?php echo $week; ?>">
|
23 |
<?php foreach($events as $event): ?>
|
24 |
<?php
|
25 |
$location_id = $this->main->get_master_location_id($event);
|
@@ -59,7 +59,7 @@ $reason_for_cancellation = isset($this->skin_options['reason_for_cancellation'])
|
|
59 |
<?php endforeach; ?>
|
60 |
</li>
|
61 |
<?php elseif(!isset($has_events[$week])): $has_events[$week] = 'printed'; ?>
|
62 |
-
<li class="mec-weekly-view-date-events mec-util-hidden mec-calendar-day-events mec-clear mec-weekly-view-week-<?php echo $this->id; ?>-<?php echo date('Ym', strtotime($date)).$week; ?>" id="mec_weekly_view_date_events<?php echo $this->id; ?>_<?php echo date('Ymd', strtotime($date)); ?>" data-week-number="<?php echo $week; ?>">
|
63 |
<article class="mec-event-article"><h4 class="mec-event-title"><?php _e('No Events', 'modern-events-calendar-lite'); ?></h4><div class="mec-event-detail"></div></article>
|
64 |
</li>
|
65 |
<?php endif; ?>
|
19 |
}
|
20 |
?>
|
21 |
<?php if(count($events)): ?>
|
22 |
+
<li class="mec-weekly-view-date-events mec-util-hidden mec-calendar-day-events mec-clear mec-weekly-view-week-<?php echo esc_attr($this->id); ?>-<?php echo $this->year.$this->month.$week; ?>" id="mec_weekly_view_date_events<?php echo esc_attr($this->id); ?>_<?php echo date('Ymd', strtotime($date)); ?>" data-week-number="<?php echo $week; ?>">
|
23 |
<?php foreach($events as $event): ?>
|
24 |
<?php
|
25 |
$location_id = $this->main->get_master_location_id($event);
|
59 |
<?php endforeach; ?>
|
60 |
</li>
|
61 |
<?php elseif(!isset($has_events[$week])): $has_events[$week] = 'printed'; ?>
|
62 |
+
<li class="mec-weekly-view-date-events mec-util-hidden mec-calendar-day-events mec-clear mec-weekly-view-week-<?php echo esc_attr($this->id); ?>-<?php echo date('Ym', strtotime($date)).$week; ?>" id="mec_weekly_view_date_events<?php echo esc_attr($this->id); ?>_<?php echo date('Ymd', strtotime($date)); ?>" data-week-number="<?php echo $week; ?>">
|
63 |
<article class="mec-event-article"><h4 class="mec-event-title"><?php _e('No Events', 'modern-events-calendar-lite'); ?></h4><div class="mec-event-detail"></div></article>
|
64 |
</li>
|
65 |
<?php endif; ?>
|
app/skins/weekly_view/tpl.php
CHANGED
@@ -135,14 +135,14 @@ else $set_dark = '';
|
|
135 |
do_action('mec_start_skin', $this->id);
|
136 |
do_action('mec_weekly_skin_head');
|
137 |
?>
|
138 |
-
<div id="mec_skin_<?php echo $this->id; ?>" class="mec-wrap <?php echo $event_colorskin . ' ' . $this->html_class . ' ' . $set_dark; ?>">
|
139 |
|
140 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
141 |
|
142 |
<div class="mec-calendar mec-calendar-daily mec-calendar-weekly">
|
143 |
<?php if($this->next_previous_button): ?>
|
144 |
<div class="mec-skin-weekly-view-month-navigator-container mec-calendar-a-month mec-clear">
|
145 |
-
<div class="mec-month-navigator" id="mec_month_navigator<?php echo $this->id; ?>_<?php echo date('Ym', $current_month_time); ?>"><?php echo $navigator_html; ?></div>
|
146 |
</div>
|
147 |
<?php else: ?>
|
148 |
<div class="mec-calendar-a-month mec-clear">
|
@@ -150,8 +150,8 @@ do_action('mec_weekly_skin_head');
|
|
150 |
</div>
|
151 |
<?php endif; ?>
|
152 |
|
153 |
-
<div class="mec-skin-weekly-view-events-container" id="mec_skin_events_<?php echo $this->id; ?>">
|
154 |
-
<div class="mec-month-container" id="mec_weekly_view_month_<?php echo $this->id; ?>_<?php echo date('Ym', $current_month_time); ?>">
|
155 |
<?php echo $week_html . $month_html; ?>
|
156 |
</div>
|
157 |
</div>
|
135 |
do_action('mec_start_skin', $this->id);
|
136 |
do_action('mec_weekly_skin_head');
|
137 |
?>
|
138 |
+
<div id="mec_skin_<?php echo esc_attr($this->id); ?>" class="mec-wrap <?php echo $event_colorskin . ' ' . $this->html_class . ' ' . $set_dark; ?>">
|
139 |
|
140 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
141 |
|
142 |
<div class="mec-calendar mec-calendar-daily mec-calendar-weekly">
|
143 |
<?php if($this->next_previous_button): ?>
|
144 |
<div class="mec-skin-weekly-view-month-navigator-container mec-calendar-a-month mec-clear">
|
145 |
+
<div class="mec-month-navigator" id="mec_month_navigator<?php echo esc_attr($this->id); ?>_<?php echo date('Ym', $current_month_time); ?>"><?php echo $navigator_html; ?></div>
|
146 |
</div>
|
147 |
<?php else: ?>
|
148 |
<div class="mec-calendar-a-month mec-clear">
|
150 |
</div>
|
151 |
<?php endif; ?>
|
152 |
|
153 |
+
<div class="mec-skin-weekly-view-events-container" id="mec_skin_events_<?php echo esc_attr($this->id); ?>">
|
154 |
+
<div class="mec-month-container" id="mec_weekly_view_month_<?php echo esc_attr($this->id); ?>_<?php echo date('Ym', $current_month_time); ?>">
|
155 |
<?php echo $week_html . $month_html; ?>
|
156 |
</div>
|
157 |
</div>
|
app/skins/yearly_view/render.php
CHANGED
@@ -28,7 +28,7 @@ $reason_for_cancellation = isset($this->skin_options['reason_for_cancellation'])
|
|
28 |
<?php foreach($this->events as $date=>$events): ?>
|
29 |
<div class="<?php echo ($count > 20) ? 'mec-events-agenda mec-util-hidden' : 'mec-events-agenda'; ?>">
|
30 |
|
31 |
-
<div class="mec-agenda-date-wrap" id="mec_yearly_view<?php echo $this->id; ?>_<?php echo date('Ymd', strtotime($date)); ?>">
|
32 |
<i class="mec-sl-calendar"></i>
|
33 |
<span class="mec-agenda-day"><?php echo $this->main->date_i18n($this->date_format_modern_1, strtotime($date)); ?></span>
|
34 |
<span class="mec-agenda-date"><?php echo $this->main->date_i18n($this->date_format_modern_2, strtotime($date)); ?></span>
|
28 |
<?php foreach($this->events as $date=>$events): ?>
|
29 |
<div class="<?php echo ($count > 20) ? 'mec-events-agenda mec-util-hidden' : 'mec-events-agenda'; ?>">
|
30 |
|
31 |
+
<div class="mec-agenda-date-wrap" id="mec_yearly_view<?php echo esc_attr($this->id); ?>_<?php echo date('Ymd', strtotime($date)); ?>">
|
32 |
<i class="mec-sl-calendar"></i>
|
33 |
<span class="mec-agenda-day"><?php echo $this->main->date_i18n($this->date_format_modern_1, strtotime($date)); ?></span>
|
34 |
<span class="mec-agenda-date"><?php echo $this->main->date_i18n($this->date_format_modern_2, strtotime($date)); ?></span>
|
app/skins/yearly_view/tpl.php
CHANGED
@@ -101,7 +101,7 @@ else $set_dark = '';
|
|
101 |
do_action('mec_start_skin', $this->id);
|
102 |
do_action('mec_yearly_skin_head');
|
103 |
?>
|
104 |
-
<div id="mec_skin_<?php echo $this->id; ?>" class="mec-wrap <?php echo $this->html_class . ' ' . $set_dark; ?>">
|
105 |
|
106 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
107 |
|
@@ -109,7 +109,7 @@ do_action('mec_yearly_skin_head');
|
|
109 |
|
110 |
<?php if($this->next_previous_button): ?>
|
111 |
<div class="mec-yearly-title-sec">
|
112 |
-
<div class="mec-year-navigator" id="mec_year_navigator_<?php echo $this->id; ?>_<?php echo date('Y', $current_year_time); ?>">
|
113 |
<?php echo $navigator_html; ?>
|
114 |
</div>
|
115 |
</div>
|
@@ -121,8 +121,8 @@ do_action('mec_yearly_skin_head');
|
|
121 |
</div>
|
122 |
<?php endif; ?>
|
123 |
|
124 |
-
<div id="mec_skin_events_<?php echo $this->id; ?>">
|
125 |
-
<div class="mec-year-container" id="mec_yearly_view_year_<?php echo $this->id; ?>_<?php echo date('Y', $current_year_time); ?>" data-year-id="<?php echo date('Y', $current_year_time); ?>">
|
126 |
<?php echo $year_html; ?>
|
127 |
</div>
|
128 |
</div>
|
101 |
do_action('mec_start_skin', $this->id);
|
102 |
do_action('mec_yearly_skin_head');
|
103 |
?>
|
104 |
+
<div id="mec_skin_<?php echo esc_attr($this->id); ?>" class="mec-wrap <?php echo $this->html_class . ' ' . $set_dark; ?>">
|
105 |
|
106 |
<?php if($this->sf_status) echo $this->sf_search_form(); ?>
|
107 |
|
109 |
|
110 |
<?php if($this->next_previous_button): ?>
|
111 |
<div class="mec-yearly-title-sec">
|
112 |
+
<div class="mec-year-navigator" id="mec_year_navigator_<?php echo esc_attr($this->id); ?>_<?php echo date('Y', $current_year_time); ?>">
|
113 |
<?php echo $navigator_html; ?>
|
114 |
</div>
|
115 |
</div>
|
121 |
</div>
|
122 |
<?php endif; ?>
|
123 |
|
124 |
+
<div id="mec_skin_events_<?php echo esc_attr($this->id); ?>">
|
125 |
+
<div class="mec-year-container" id="mec_yearly_view_year_<?php echo esc_attr($this->id); ?>_<?php echo date('Y', $current_year_time); ?>" data-year-id="<?php echo date('Y', $current_year_time); ?>">
|
126 |
<?php echo $year_html; ?>
|
127 |
</div>
|
128 |
</div>
|
app/widgets/single.php
CHANGED
@@ -110,83 +110,83 @@ class MEC_single_widget extends WP_Widget
|
|
110 |
?>
|
111 |
<ul class="mec-sortable">
|
112 |
<li>
|
113 |
-
<input class="checkbox" type="checkbox" <?php checked($data_time, 'on'); ?> id="<?php echo $this->get_field_id('data_time'); ?>" name="<?php echo $this->get_field_name('data_time'); ?>" />
|
114 |
-
<label for="<?php echo $this->get_field_id('data_time'); ?>"><?php _e('Date Time Module', 'modern-events-calendar-lite'); ?></label>
|
115 |
</li>
|
116 |
<li>
|
117 |
-
<input class="checkbox" type="checkbox" <?php checked($local_time, 'on'); ?> id="<?php echo $this->get_field_id('local_time'); ?>" name="<?php echo $this->get_field_name('local_time'); ?>" />
|
118 |
-
<label for="<?php echo $this->get_field_id('local_time'); ?>"><?php _e('Local Time', 'modern-events-calendar-lite'); ?></label>
|
119 |
</li>
|
120 |
<li>
|
121 |
-
<input class="checkbox" type="checkbox" <?php checked($event_cost, 'on'); ?> id="<?php echo $this->get_field_id('event_cost'); ?>" name="<?php echo $this->get_field_name('event_cost'); ?>" />
|
122 |
-
<label for="<?php echo $this->get_field_id('event_cost'); ?>"><?php _e('Event Cost', 'modern-events-calendar-lite'); ?></label>
|
123 |
</li>
|
124 |
<li>
|
125 |
-
<input class="checkbox" type="checkbox" <?php checked($more_info, 'on'); ?> id="<?php echo $this->get_field_id('more_info'); ?>" name="<?php echo $this->get_field_name('more_info'); ?>" />
|
126 |
-
<label for="<?php echo $this->get_field_id('more_info'); ?>"><?php _e('More Info', 'modern-events-calendar-lite'); ?></label>
|
127 |
</li>
|
128 |
<li>
|
129 |
-
<input class="checkbox" type="checkbox" <?php checked($event_label, 'on'); ?> id="<?php echo $this->get_field_id('event_label'); ?>" name="<?php echo $this->get_field_name('event_label'); ?>" />
|
130 |
-
<label for="<?php echo $this->get_field_id('event_label'); ?>"><?php _e('Event Label', 'modern-events-calendar-lite'); ?></label>
|
131 |
</li>
|
132 |
<li>
|
133 |
-
<input class="checkbox" type="checkbox" <?php checked($event_location, 'on'); ?> id="<?php echo $this->get_field_id('event_location'); ?>" name="<?php echo $this->get_field_name('event_location'); ?>" />
|
134 |
-
<label for="<?php echo $this->get_field_id('event_location'); ?>"><?php _e('Event Location', 'modern-events-calendar-lite'); ?></label>
|
135 |
</li>
|
136 |
<li>
|
137 |
-
<input class="checkbox" type="checkbox" <?php checked($event_categories, 'on'); ?> id="<?php echo $this->get_field_id('event_categories'); ?>" name="<?php echo $this->get_field_name('event_categories'); ?>" />
|
138 |
-
<label for="<?php echo $this->get_field_id('event_categories'); ?>"><?php _e('Event Categories', 'modern-events-calendar-lite'); ?></label>
|
139 |
</li>
|
140 |
<li>
|
141 |
-
<input class="checkbox" type="checkbox" <?php checked($event_orgnizer, 'on'); ?> id="<?php echo $this->get_field_id('event_orgnizer'); ?>" name="<?php echo $this->get_field_name('event_orgnizer'); ?>" />
|
142 |
-
<label for="<?php echo $this->get_field_id('event_orgnizer'); ?>"><?php _e('Event Organizer', 'modern-events-calendar-lite'); ?></label>
|
143 |
</li>
|
144 |
<li>
|
145 |
-
<input class="checkbox" type="checkbox" <?php checked($event_speakers, 'on'); ?> id="<?php echo $this->get_field_id('event_speakers'); ?>" name="<?php echo $this->get_field_name('event_speakers'); ?>" />
|
146 |
-
<label for="<?php echo $this->get_field_id('event_speakers'); ?>"><?php _e('Event Speakers', 'modern-events-calendar-lite'); ?></label>
|
147 |
</li>
|
148 |
<li>
|
149 |
-
<input class="checkbox" type="checkbox" <?php checked($register_btn, 'on'); ?> id="<?php echo $this->get_field_id('register_btn'); ?>" name="<?php echo $this->get_field_name('register_btn'); ?>" />
|
150 |
-
<label for="<?php echo $this->get_field_id('register_btn'); ?>"><?php _e('Register Button', 'modern-events-calendar-lite'); ?></label>
|
151 |
</li>
|
152 |
<li>
|
153 |
-
<input class="checkbox" type="checkbox" <?php checked($attende_module, 'on'); ?> id="<?php echo $this->get_field_id('attende_module'); ?>" name="<?php echo $this->get_field_name('attende_module'); ?>" />
|
154 |
-
<label for="<?php echo $this->get_field_id('attende_module'); ?>"><?php _e('Attendees Module', 'modern-events-calendar-lite'); ?></label>
|
155 |
</li>
|
156 |
<li>
|
157 |
-
<input class="checkbox" type="checkbox" <?php checked($next_module, 'on'); ?> id="<?php echo $this->get_field_id('next_module'); ?>" name="<?php echo $this->get_field_name('next_module'); ?>" />
|
158 |
-
<label for="<?php echo $this->get_field_id('next_module'); ?>"><?php _e('Next Event', 'modern-events-calendar-lite'); ?></label>
|
159 |
</li>
|
160 |
<li>
|
161 |
-
<input class="checkbox" type="checkbox" <?php checked($links_module, 'on'); ?> id="<?php echo $this->get_field_id('links_module'); ?>" name="<?php echo $this->get_field_name('links_module'); ?>" />
|
162 |
-
<label for="<?php echo $this->get_field_id('links_module'); ?>"><?php _e('Social Module', 'modern-events-calendar-lite'); ?></label>
|
163 |
</li>
|
164 |
<li>
|
165 |
-
<input class="checkbox" type="checkbox" <?php checked($weather, 'on'); ?> id="<?php echo $this->get_field_id('weather_module'); ?>" name="<?php echo $this->get_field_name('weather_module'); ?>" />
|
166 |
-
<label for="<?php echo $this->get_field_id('weather_module'); ?>"><?php _e('Weather Module', 'modern-events-calendar-lite'); ?></label>
|
167 |
</li>
|
168 |
<li>
|
169 |
-
<input class="checkbox" type="checkbox" <?php checked($google_map, 'on'); ?> id="<?php echo $this->get_field_id('google_map'); ?>" name="<?php echo $this->get_field_name('google_map'); ?>" />
|
170 |
-
<label for="<?php echo $this->get_field_id('google_map'); ?>"><?php _e('Google Map', 'modern-events-calendar-lite'); ?></label>
|
171 |
</li>
|
172 |
<li>
|
173 |
-
<input class="checkbox" type="checkbox" <?php checked($qrcode, 'on'); ?> id="<?php echo $this->get_field_id('qrcode_module'); ?>" name="<?php echo $this->get_field_name('qrcode_module'); ?>" />
|
174 |
-
<label for="<?php echo $this->get_field_id('qrcode_module'); ?>"><?php _e('QR Code', 'modern-events-calendar-lite'); ?></label>
|
175 |
</li>
|
176 |
<li>
|
177 |
-
<input class="checkbox" type="checkbox" <?php checked($public_download, 'on'); ?> id="<?php echo $this->get_field_id('public_download_module'); ?>" name="<?php echo $this->get_field_name('public_download_module'); ?>" />
|
178 |
-
<label for="<?php echo $this->get_field_id('public_download_module'); ?>"><?php _e('Public Download', 'modern-events-calendar-lite'); ?></label>
|
179 |
</li>
|
180 |
<li>
|
181 |
-
<input class="checkbox" type="checkbox" <?php checked($custom_fields, 'on'); ?> id="<?php echo $this->get_field_id('custom_fields_module'); ?>" name="<?php echo $this->get_field_name('custom_fields_module'); ?>" />
|
182 |
-
<label for="<?php echo $this->get_field_id('custom_fields_module'); ?>"><?php _e('Custom Fields', 'modern-events-calendar-lite'); ?></label>
|
183 |
</li>
|
184 |
|
185 |
<?php if(!function_exists('is_plugin_active')) include_once(ABSPATH . 'wp-admin/includes/plugin.php'); ?>
|
186 |
<?php if(is_plugin_active('mec-virtual-events/mec-virtual-events.php')): ?>
|
187 |
<li>
|
188 |
-
<input class="checkbox" type="checkbox" <?php checked($virtual_events, 'on'); ?> id="<?php echo $this->get_field_id('virtual_events_module'); ?>" name="<?php echo $this->get_field_name('virtual_events_module'); ?>" />
|
189 |
-
<label for="<?php echo $this->get_field_id('virtual_events_module'); ?>"><?php _e('Virtual Event', 'modern-events-calendar-lite'); ?></label>
|
190 |
</li>
|
191 |
<?php endif; ?>
|
192 |
</ul>
|
110 |
?>
|
111 |
<ul class="mec-sortable">
|
112 |
<li>
|
113 |
+
<input class="checkbox" type="checkbox" <?php checked($data_time, 'on'); ?> id="<?php echo esc_attr($this->get_field_id('data_time')); ?>" name="<?php echo esc_attr($this->get_field_name('data_time')); ?>" />
|
114 |
+
<label for="<?php echo esc_attr($this->get_field_id('data_time')); ?>"><?php _e('Date Time Module', 'modern-events-calendar-lite'); ?></label>
|
115 |
</li>
|
116 |
<li>
|
117 |
+
<input class="checkbox" type="checkbox" <?php checked($local_time, 'on'); ?> id="<?php echo esc_attr($this->get_field_id('local_time')); ?>" name="<?php echo esc_attr($this->get_field_name('local_time')); ?>" />
|
118 |
+
<label for="<?php echo esc_attr($this->get_field_id('local_time')); ?>"><?php _e('Local Time', 'modern-events-calendar-lite'); ?></label>
|
119 |
</li>
|
120 |
<li>
|
121 |
+
<input class="checkbox" type="checkbox" <?php checked($event_cost, 'on'); ?> id="<?php echo esc_attr($this->get_field_id('event_cost')); ?>" name="<?php echo esc_attr($this->get_field_name('event_cost')); ?>" />
|
122 |
+
<label for="<?php echo esc_attr($this->get_field_id('event_cost')); ?>"><?php _e('Event Cost', 'modern-events-calendar-lite'); ?></label>
|
123 |
</li>
|
124 |
<li>
|
125 |
+
<input class="checkbox" type="checkbox" <?php checked($more_info, 'on'); ?> id="<?php echo esc_attr($this->get_field_id('more_info')); ?>" name="<?php echo esc_attr($this->get_field_name('more_info')); ?>" />
|
126 |
+
<label for="<?php echo esc_attr($this->get_field_id('more_info')); ?>"><?php _e('More Info', 'modern-events-calendar-lite'); ?></label>
|
127 |
</li>
|
128 |
<li>
|
129 |
+
<input class="checkbox" type="checkbox" <?php checked($event_label, 'on'); ?> id="<?php echo esc_attr($this->get_field_id('event_label')); ?>" name="<?php echo esc_attr($this->get_field_name('event_label')); ?>" />
|
130 |
+
<label for="<?php echo esc_attr($this->get_field_id('event_label')); ?>"><?php _e('Event Label', 'modern-events-calendar-lite'); ?></label>
|
131 |
</li>
|
132 |
<li>
|
133 |
+
<input class="checkbox" type="checkbox" <?php checked($event_location, 'on'); ?> id="<?php echo esc_attr($this->get_field_id('event_location')); ?>" name="<?php echo esc_attr($this->get_field_name('event_location')); ?>" />
|
134 |
+
<label for="<?php echo esc_attr($this->get_field_id('event_location')); ?>"><?php _e('Event Location', 'modern-events-calendar-lite'); ?></label>
|
135 |
</li>
|
136 |
<li>
|
137 |
+
<input class="checkbox" type="checkbox" <?php checked($event_categories, 'on'); ?> id="<?php echo esc_attr($this->get_field_id('event_categories')); ?>" name="<?php echo esc_attr($this->get_field_name('event_categories')); ?>" />
|
138 |
+
<label for="<?php echo esc_attr($this->get_field_id('event_categories')); ?>"><?php _e('Event Categories', 'modern-events-calendar-lite'); ?></label>
|
139 |
</li>
|
140 |
<li>
|
141 |
+
<input class="checkbox" type="checkbox" <?php checked($event_orgnizer, 'on'); ?> id="<?php echo esc_attr($this->get_field_id('event_orgnizer')); ?>" name="<?php echo esc_attr($this->get_field_name('event_orgnizer')); ?>" />
|
142 |
+
<label for="<?php echo esc_attr($this->get_field_id('event_orgnizer')); ?>"><?php _e('Event Organizer', 'modern-events-calendar-lite'); ?></label>
|
143 |
</li>
|
144 |
<li>
|
145 |
+
<input class="checkbox" type="checkbox" <?php checked($event_speakers, 'on'); ?> id="<?php echo esc_attr($this->get_field_id('event_speakers')); ?>" name="<?php echo esc_attr($this->get_field_name('event_speakers')); ?>" />
|
146 |
+
<label for="<?php echo esc_attr($this->get_field_id('event_speakers')); ?>"><?php _e('Event Speakers', 'modern-events-calendar-lite'); ?></label>
|
147 |
</li>
|
148 |
<li>
|
149 |
+
<input class="checkbox" type="checkbox" <?php checked($register_btn, 'on'); ?> id="<?php echo esc_attr($this->get_field_id('register_btn')); ?>" name="<?php echo esc_attr($this->get_field_name('register_btn')); ?>" />
|
150 |
+
<label for="<?php echo esc_attr($this->get_field_id('register_btn')); ?>"><?php _e('Register Button', 'modern-events-calendar-lite'); ?></label>
|
151 |
</li>
|
152 |
<li>
|
153 |
+
<input class="checkbox" type="checkbox" <?php checked($attende_module, 'on'); ?> id="<?php echo esc_attr($this->get_field_id('attende_module')); ?>" name="<?php echo esc_attr($this->get_field_name('attende_module')); ?>" />
|
154 |
+
<label for="<?php echo esc_attr($this->get_field_id('attende_module')); ?>"><?php _e('Attendees Module', 'modern-events-calendar-lite'); ?></label>
|
155 |
</li>
|
156 |
<li>
|
157 |
+
<input class="checkbox" type="checkbox" <?php checked($next_module, 'on'); ?> id="<?php echo esc_attr($this->get_field_id('next_module')); ?>" name="<?php echo esc_attr($this->get_field_name('next_module')); ?>" />
|
158 |
+
<label for="<?php echo esc_attr($this->get_field_id('next_module')); ?>"><?php _e('Next Event', 'modern-events-calendar-lite'); ?></label>
|
159 |
</li>
|
160 |
<li>
|
161 |
+
<input class="checkbox" type="checkbox" <?php checked($links_module, 'on'); ?> id="<?php echo esc_attr($this->get_field_id('links_module')); ?>" name="<?php echo esc_attr($this->get_field_name('links_module')); ?>" />
|
162 |
+
<label for="<?php echo esc_attr($this->get_field_id('links_module')); ?>"><?php _e('Social Module', 'modern-events-calendar-lite'); ?></label>
|
163 |
</li>
|
164 |
<li>
|
165 |
+
<input class="checkbox" type="checkbox" <?php checked($weather, 'on'); ?> id="<?php echo esc_attr($this->get_field_id('weather_module')); ?>" name="<?php echo esc_attr($this->get_field_name('weather_module')); ?>" />
|
166 |
+
<label for="<?php echo esc_attr($this->get_field_id('weather_module')); ?>"><?php _e('Weather Module', 'modern-events-calendar-lite'); ?></label>
|
167 |
</li>
|
168 |
<li>
|
169 |
+
<input class="checkbox" type="checkbox" <?php checked($google_map, 'on'); ?> id="<?php echo esc_attr($this->get_field_id('google_map')); ?>" name="<?php echo esc_attr($this->get_field_name('google_map')); ?>" />
|
170 |
+
<label for="<?php echo esc_attr($this->get_field_id('google_map')); ?>"><?php _e('Google Map', 'modern-events-calendar-lite'); ?></label>
|
171 |
</li>
|
172 |
<li>
|
173 |
+
<input class="checkbox" type="checkbox" <?php checked($qrcode, 'on'); ?> id="<?php echo esc_attr($this->get_field_id('qrcode_module')); ?>" name="<?php echo esc_attr($this->get_field_name('qrcode_module')); ?>" />
|
174 |
+
<label for="<?php echo esc_attr($this->get_field_id('qrcode_module')); ?>"><?php _e('QR Code', 'modern-events-calendar-lite'); ?></label>
|
175 |
</li>
|
176 |
<li>
|
177 |
+
<input class="checkbox" type="checkbox" <?php checked($public_download, 'on'); ?> id="<?php echo esc_attr($this->get_field_id('public_download_module')); ?>" name="<?php echo esc_attr($this->get_field_name('public_download_module')); ?>" />
|
178 |
+
<label for="<?php echo esc_attr($this->get_field_id('public_download_module')); ?>"><?php _e('Public Download', 'modern-events-calendar-lite'); ?></label>
|
179 |
</li>
|
180 |
<li>
|
181 |
+
<input class="checkbox" type="checkbox" <?php checked($custom_fields, 'on'); ?> id="<?php echo esc_attr($this->get_field_id('custom_fields_module')); ?>" name="<?php echo esc_attr($this->get_field_name('custom_fields_module')); ?>" />
|
182 |
+
<label for="<?php echo esc_attr($this->get_field_id('custom_fields_module')); ?>"><?php _e('Custom Fields', 'modern-events-calendar-lite'); ?></label>
|
183 |
</li>
|
184 |
|
185 |
<?php if(!function_exists('is_plugin_active')) include_once(ABSPATH . 'wp-admin/includes/plugin.php'); ?>
|
186 |
<?php if(is_plugin_active('mec-virtual-events/mec-virtual-events.php')): ?>
|
187 |
<li>
|
188 |
+
<input class="checkbox" type="checkbox" <?php checked($virtual_events, 'on'); ?> id="<?php echo esc_attr($this->get_field_id('virtual_events_module')); ?>" name="<?php echo esc_attr($this->get_field_name('virtual_events_module')); ?>" />
|
189 |
+
<label for="<?php echo esc_attr($this->get_field_id('virtual_events_module')); ?>"><?php _e('Virtual Event', 'modern-events-calendar-lite'); ?></label>
|
190 |
</li>
|
191 |
<?php endif; ?>
|
192 |
</ul>
|
app/widgets/single/default.php
CHANGED
@@ -67,7 +67,7 @@
|
|
67 |
<div class="mec-event-more-info">
|
68 |
<i class="mec-sl-info"></i>
|
69 |
<h3 class="mec-cost"><?php echo $single->main->m('more_info_link', __('More Info', 'modern-events-calendar-lite')); ?></h3>
|
70 |
-
<dl><dd class="mec-events-event-more-info"><a class="mec-more-info-button mec-color-hover" target="<?php echo $more_info_target; ?>" href="<?php echo esc_url($more_info); ?>"><?php echo $more_info_title; ?></a></dd></dl>
|
71 |
</div>
|
72 |
<?php
|
73 |
}
|
@@ -175,14 +175,14 @@
|
|
175 |
<dd class="mec-organizer-tel">
|
176 |
<i class="mec-sl-phone"></i>
|
177 |
<h6><?php _e('Phone', 'modern-events-calendar-lite'); ?></h6>
|
178 |
-
<a href="tel:<?php echo $organizer['tel']; ?>"><?php echo $organizer['tel']; ?></a>
|
179 |
</dd>
|
180 |
<?php endif;
|
181 |
if(isset($organizer['email']) && !empty($organizer['email'])): ?>
|
182 |
<dd class="mec-organizer-email">
|
183 |
<i class="mec-sl-envelope"></i>
|
184 |
<h6><?php _e('Email', 'modern-events-calendar-lite'); ?></h6>
|
185 |
-
<a href="mailto:<?php echo $organizer['email']; ?>"><?php echo $organizer['email']; ?></a>
|
186 |
</dd>
|
187 |
<?php endif;
|
188 |
if(isset($organizer['url']) && !empty($organizer['url']) and $organizer['url'] != 'http://'): ?>
|
@@ -208,7 +208,7 @@
|
|
208 |
<?php $data_lity = $data_lity_class = ''; if(isset($settings['single_booking_style']) and $settings['single_booking_style'] == 'modal' ){ /* $data_lity = 'onclick="openBookingModal();"'; */ $data_lity_class = 'mec-booking-data-lity'; } ?>
|
209 |
<a class="mec-booking-button mec-bg-color <?php echo $data_lity_class; ?> <?php if(isset($settings['single_booking_style']) and $settings['single_booking_style'] != 'modal' ) echo 'simple-booking'; ?>" href="#mec-events-meta-group-booking-<?php echo $single->uniqueid; ?>" <?php echo $data_lity; ?>><?php echo esc_html($single->main->m('register_button', __('REGISTER', 'modern-events-calendar-lite'))); ?></a>
|
210 |
<?php elseif($single->found_value('register_btn', $settings) == 'on' and $more_info): ?>
|
211 |
-
<a class="mec-booking-button mec-bg-color" target="<?php echo $more_info_target; ?>" href="<?php echo $more_info; ?>"><?php if($more_info_title) echo esc_html__($more_info_title, 'modern-events-calendar-lite'); else echo esc_html($single->main->m('register_button', __('REGISTER', 'modern-events-calendar-lite'))); ?></a>
|
212 |
<?php endif; ?>
|
213 |
</div>
|
214 |
<?php endif; ?>
|
67 |
<div class="mec-event-more-info">
|
68 |
<i class="mec-sl-info"></i>
|
69 |
<h3 class="mec-cost"><?php echo $single->main->m('more_info_link', __('More Info', 'modern-events-calendar-lite')); ?></h3>
|
70 |
+
<dl><dd class="mec-events-event-more-info"><a class="mec-more-info-button mec-color-hover" target="<?php echo esc_attr($more_info_target); ?>" href="<?php echo esc_url($more_info); ?>"><?php echo $more_info_title; ?></a></dd></dl>
|
71 |
</div>
|
72 |
<?php
|
73 |
}
|
175 |
<dd class="mec-organizer-tel">
|
176 |
<i class="mec-sl-phone"></i>
|
177 |
<h6><?php _e('Phone', 'modern-events-calendar-lite'); ?></h6>
|
178 |
+
<a href="tel:<?php echo esc_attr($organizer['tel']); ?>"><?php echo $organizer['tel']; ?></a>
|
179 |
</dd>
|
180 |
<?php endif;
|
181 |
if(isset($organizer['email']) && !empty($organizer['email'])): ?>
|
182 |
<dd class="mec-organizer-email">
|
183 |
<i class="mec-sl-envelope"></i>
|
184 |
<h6><?php _e('Email', 'modern-events-calendar-lite'); ?></h6>
|
185 |
+
<a href="mailto:<?php echo esc_attr($organizer['email']); ?>"><?php echo $organizer['email']; ?></a>
|
186 |
</dd>
|
187 |
<?php endif;
|
188 |
if(isset($organizer['url']) && !empty($organizer['url']) and $organizer['url'] != 'http://'): ?>
|
208 |
<?php $data_lity = $data_lity_class = ''; if(isset($settings['single_booking_style']) and $settings['single_booking_style'] == 'modal' ){ /* $data_lity = 'onclick="openBookingModal();"'; */ $data_lity_class = 'mec-booking-data-lity'; } ?>
|
209 |
<a class="mec-booking-button mec-bg-color <?php echo $data_lity_class; ?> <?php if(isset($settings['single_booking_style']) and $settings['single_booking_style'] != 'modal' ) echo 'simple-booking'; ?>" href="#mec-events-meta-group-booking-<?php echo $single->uniqueid; ?>" <?php echo $data_lity; ?>><?php echo esc_html($single->main->m('register_button', __('REGISTER', 'modern-events-calendar-lite'))); ?></a>
|
210 |
<?php elseif($single->found_value('register_btn', $settings) == 'on' and $more_info): ?>
|
211 |
+
<a class="mec-booking-button mec-bg-color" target="<?php echo esc_attr($more_info_target); ?>" href="<?php echo $more_info; ?>"><?php if($more_info_title) echo esc_html__($more_info_title, 'modern-events-calendar-lite'); else echo esc_html($single->main->m('register_button', __('REGISTER', 'modern-events-calendar-lite'))); ?></a>
|
212 |
<?php endif; ?>
|
213 |
</div>
|
214 |
<?php endif; ?>
|
app/widgets/single/modern.php
CHANGED
@@ -21,14 +21,14 @@
|
|
21 |
<dd class="mec-organizer-tel">
|
22 |
<i class="mec-sl-phone"></i>
|
23 |
<h6><?php _e('Phone', 'modern-events-calendar-lite'); ?></h6>
|
24 |
-
<a href="tel:<?php echo $organizer['tel']; ?>"><?php echo $organizer['tel']; ?></a>
|
25 |
</dd>
|
26 |
<?php endif;
|
27 |
if(isset($organizer['email']) && !empty($organizer['email'])): ?>
|
28 |
<dd class="mec-organizer-email">
|
29 |
<i class="mec-sl-envelope"></i>
|
30 |
<h6><?php _e('Email', 'modern-events-calendar-lite'); ?></h6>
|
31 |
-
<a href="mailto:<?php echo $organizer['email']; ?>"><?php echo $organizer['email']; ?></a>
|
32 |
</dd>
|
33 |
<?php endif;
|
34 |
if(isset($organizer['url']) && !empty($organizer['url']) and $organizer['url'] != 'http://'): ?>
|
@@ -62,7 +62,7 @@
|
|
62 |
} ?>
|
63 |
<a class="mec-booking-button mec-bg-color <?php echo $data_lity_class; ?> <?php if(isset($settings['single_booking_style']) and $settings['single_booking_style'] != 'modal' ) echo 'simple-booking'; ?>" href="#<?php echo $target_id; ?>" <?php echo $data_lity; ?>><?php echo esc_html($single->main->m('register_button', __('REGISTER', 'modern-events-calendar-lite'))); ?></a>
|
64 |
<?php elseif($more_info): ?>
|
65 |
-
<a class="mec-booking-button mec-bg-color" target="<?php echo $more_info_target; ?>" href="<?php echo esc_url($more_info); ?>"><?php if($more_info_title) echo esc_html__($more_info_title, 'modern-events-calendar-lite'); else echo esc_html($single->main->m('register_button', __('REGISTER', 'modern-events-calendar-lite'))); ?></a>
|
66 |
<?php endif; ?>
|
67 |
</div>
|
68 |
<?php endif; ?>
|
@@ -145,7 +145,7 @@
|
|
145 |
<div class="mec-event-more-info">
|
146 |
<i class="mec-sl-info"></i>
|
147 |
<h3 class="mec-cost"><?php echo $single->main->m('more_info_link', __('More Info', 'modern-events-calendar-lite')); ?></h3>
|
148 |
-
<dl><dd class="mec-events-event-more-info"><a class="mec-more-info-button mec-color-hover" target="<?php echo $more_info_target; ?>" href="<?php echo esc_url($more_info); ?>"><?php echo $more_info_title; ?></a></dd></dl>
|
149 |
</div>
|
150 |
<?php
|
151 |
}
|
21 |
<dd class="mec-organizer-tel">
|
22 |
<i class="mec-sl-phone"></i>
|
23 |
<h6><?php _e('Phone', 'modern-events-calendar-lite'); ?></h6>
|
24 |
+
<a href="tel:<?php echo esc_attr($organizer['tel']); ?>"><?php echo $organizer['tel']; ?></a>
|
25 |
</dd>
|
26 |
<?php endif;
|
27 |
if(isset($organizer['email']) && !empty($organizer['email'])): ?>
|
28 |
<dd class="mec-organizer-email">
|
29 |
<i class="mec-sl-envelope"></i>
|
30 |
<h6><?php _e('Email', 'modern-events-calendar-lite'); ?></h6>
|
31 |
+
<a href="mailto:<?php echo esc_attr($organizer['email']); ?>"><?php echo $organizer['email']; ?></a>
|
32 |
</dd>
|
33 |
<?php endif;
|
34 |
if(isset($organizer['url']) && !empty($organizer['url']) and $organizer['url'] != 'http://'): ?>
|
62 |
} ?>
|
63 |
<a class="mec-booking-button mec-bg-color <?php echo $data_lity_class; ?> <?php if(isset($settings['single_booking_style']) and $settings['single_booking_style'] != 'modal' ) echo 'simple-booking'; ?>" href="#<?php echo $target_id; ?>" <?php echo $data_lity; ?>><?php echo esc_html($single->main->m('register_button', __('REGISTER', 'modern-events-calendar-lite'))); ?></a>
|
64 |
<?php elseif($more_info): ?>
|
65 |
+
<a class="mec-booking-button mec-bg-color" target="<?php echo esc_attr($more_info_target); ?>" href="<?php echo esc_url($more_info); ?>"><?php if($more_info_title) echo esc_html__($more_info_title, 'modern-events-calendar-lite'); else echo esc_html($single->main->m('register_button', __('REGISTER', 'modern-events-calendar-lite'))); ?></a>
|
66 |
<?php endif; ?>
|
67 |
</div>
|
68 |
<?php endif; ?>
|
145 |
<div class="mec-event-more-info">
|
146 |
<i class="mec-sl-info"></i>
|
147 |
<h3 class="mec-cost"><?php echo $single->main->m('more_info_link', __('More Info', 'modern-events-calendar-lite')); ?></h3>
|
148 |
+
<dl><dd class="mec-events-event-more-info"><a class="mec-more-info-button mec-color-hover" target="<?php echo esc_attr($more_info_target); ?>" href="<?php echo esc_url($more_info); ?>"><?php echo $more_info_title; ?></a></dd></dl>
|
149 |
</div>
|
150 |
<?php
|
151 |
}
|
assets/css/admin-calendar.min.css
ADDED
File without changes
|
assets/js/admin-calendar.js
ADDED
@@ -0,0 +1,123 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// MEC MONTHLY VIEW PLUGIN
|
2 |
+
(function($)
|
3 |
+
{
|
4 |
+
$.fn.mecMonthlyView = function(options)
|
5 |
+
{
|
6 |
+
var active_month;
|
7 |
+
var active_year;
|
8 |
+
|
9 |
+
// Default Options
|
10 |
+
var settings = $.extend(
|
11 |
+
{
|
12 |
+
// These are the defaults.
|
13 |
+
today: null,
|
14 |
+
id: 0,
|
15 |
+
month_navigator: 0,
|
16 |
+
atts: '',
|
17 |
+
active_month: {},
|
18 |
+
next_month: {},
|
19 |
+
sf: {},
|
20 |
+
ajax_url: '',
|
21 |
+
}, options);
|
22 |
+
|
23 |
+
// Wrapper
|
24 |
+
var $wrapper = $("#mec_skin_" + settings.id);
|
25 |
+
|
26 |
+
// Initialize Month Navigator
|
27 |
+
if(settings.month_navigator) initMonthNavigator();
|
28 |
+
|
29 |
+
// Add Loading Wrapper
|
30 |
+
jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
|
31 |
+
|
32 |
+
active_month = settings.active_month.month;
|
33 |
+
active_year = settings.active_month.year;
|
34 |
+
|
35 |
+
function initMonthNavigator()
|
36 |
+
{
|
37 |
+
var $loadMonth = $('.mec-load-month');
|
38 |
+
|
39 |
+
// Remove the onclick event
|
40 |
+
$wrapper.find($loadMonth).off('click');
|
41 |
+
|
42 |
+
// Add onclick event
|
43 |
+
$wrapper.find($loadMonth).on('click', function()
|
44 |
+
{
|
45 |
+
var year = $(this).data('mec-year');
|
46 |
+
var month = $(this).data('mec-month');
|
47 |
+
|
48 |
+
setMonth(year, month);
|
49 |
+
});
|
50 |
+
}
|
51 |
+
|
52 |
+
function setMonth(year, month)
|
53 |
+
{
|
54 |
+
var month_id = year + "" + month;
|
55 |
+
active_month = month;
|
56 |
+
active_year = year;
|
57 |
+
|
58 |
+
// Month exists so we just show it
|
59 |
+
if($("#mec_monthly_view_month_" + settings.id + "_" + month_id).length)
|
60 |
+
{
|
61 |
+
// Toggle Month
|
62 |
+
toggleMonth(month_id);
|
63 |
+
}
|
64 |
+
else
|
65 |
+
{
|
66 |
+
var $modalResult = $('.mec-modal-result');
|
67 |
+
|
68 |
+
// Add Loading Class
|
69 |
+
$modalResult.addClass('mec-month-navigator-loading');
|
70 |
+
|
71 |
+
$.ajax(
|
72 |
+
{
|
73 |
+
url: settings.ajax_url,
|
74 |
+
data: "action=mec_monthly_view_load_month&mec_year=" + year + "&mec_month=" + month + "&" + settings.atts,
|
75 |
+
dataType: "json",
|
76 |
+
type: "post",
|
77 |
+
success: function(response)
|
78 |
+
{
|
79 |
+
// Append Month
|
80 |
+
$("#mec_skin_events_" + settings.id).append('<div class="mec-month-container" id="mec_monthly_view_month_' + settings.id + '_' + response.current_month.id + '" data-month-id="' + response.current_month.id + '">' + response.month + '</div>');
|
81 |
+
|
82 |
+
// Append Month Navigator
|
83 |
+
$("#mec_skin_" + settings.id + " .mec-skin-monthly-view-month-navigator-container").append('<div class="mec-month-navigator" id="mec_month_navigator_' + settings.id + '_' + response.current_month.id + '">' + response.navigator + '</div>');
|
84 |
+
|
85 |
+
// Re-initialize Month Navigator
|
86 |
+
initMonthNavigator();
|
87 |
+
|
88 |
+
// Toggle Month
|
89 |
+
toggleMonth(response.current_month.id);
|
90 |
+
|
91 |
+
// Remove loading Class
|
92 |
+
$modalResult.removeClass("mec-month-navigator-loading");
|
93 |
+
|
94 |
+
jQuery(document).trigger('load_calendar_data');
|
95 |
+
},
|
96 |
+
error: function(){}
|
97 |
+
});
|
98 |
+
}
|
99 |
+
}
|
100 |
+
|
101 |
+
function toggleMonth(month_id)
|
102 |
+
{
|
103 |
+
var $monthContainer = $("#mec_skin_" + settings.id + " .mec-month-container");
|
104 |
+
var $currentMonth = $("#mec_monthly_view_month_" + settings.id + "_" + month_id);
|
105 |
+
|
106 |
+
// Toggle Month Navigator
|
107 |
+
$("#mec_skin_" + settings.id + " .mec-month-navigator").hide();
|
108 |
+
$("#mec_month_navigator_" + settings.id + "_" + month_id).show();
|
109 |
+
|
110 |
+
// Toggle Month
|
111 |
+
$monthContainer.hide();
|
112 |
+
$currentMonth.show();
|
113 |
+
|
114 |
+
// Add selected class
|
115 |
+
$monthContainer.removeClass("mec-month-container-selected");
|
116 |
+
$currentMonth.addClass("mec-month-container-selected");
|
117 |
+
|
118 |
+
// Toggle Events Side
|
119 |
+
$("#mec_skin_" + settings.id + " .mec-month-side").hide();
|
120 |
+
$("#mec_month_side_" + settings.id + "_" + month_id).show();
|
121 |
+
}
|
122 |
+
};
|
123 |
+
}(jQuery));
|
assets/js/chartjs.min.js
CHANGED
@@ -1,10 +1,13 @@
|
|
1 |
/*!
|
2 |
-
* Chart.js
|
3 |
-
*
|
4 |
-
*
|
5 |
-
*
|
6 |
-
* Copyright 2018 Chart.js Contributors
|
7 |
-
* Released under the MIT license
|
8 |
-
* https://github.com/chartjs/Chart.js/blob/master/LICENSE.md
|
9 |
*/
|
10 |
-
!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Chart=t()}}(function(){return function t(e,i,n){function a(r,s){if(!i[r]){if(!e[r]){var l="function"==typeof require&&require;if(!s&&l)return l(r,!0);if(o)return o(r,!0);var u=new Error("Cannot find module '"+r+"'");throw u.code="MODULE_NOT_FOUND",u}var d=i[r]={exports:{}};e[r][0].call(d.exports,function(t){var i=e[r][1][t];return a(i||t)},d,d.exports,t,e,i,n)}return i[r].exports}for(var o="function"==typeof require&&require,r=0;r<n.length;r++)a(n[r]);return a}({1:[function(t,e,i){},{}],2:[function(t,e,i){var n=t(6);function a(t){if(t){var e=[0,0,0],i=1,a=t.match(/^#([a-fA-F0-9]{3})$/i);if(a){a=a[1];for(var o=0;o<e.length;o++)e[o]=parseInt(a[o]+a[o],16)}else if(a=t.match(/^#([a-fA-F0-9]{6})$/i)){a=a[1];for(o=0;o<e.length;o++)e[o]=parseInt(a.slice(2*o,2*o+2),16)}else if(a=t.match(/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(o=0;o<e.length;o++)e[o]=parseInt(a[o+1]);i=parseFloat(a[4])}else if(a=t.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(o=0;o<e.length;o++)e[o]=Math.round(2.55*parseFloat(a[o+1]));i=parseFloat(a[4])}else if(a=t.match(/(\w+)/)){if("transparent"==a[1])return[0,0,0,0];if(!(e=n[a[1]]))return}for(o=0;o<e.length;o++)e[o]=d(e[o],0,255);return i=i||0==i?d(i,0,1):1,e[3]=i,e}}function o(t){if(t){var e=t.match(/^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(e){var i=parseFloat(e[4]);return[d(parseInt(e[1]),0,360),d(parseFloat(e[2]),0,100),d(parseFloat(e[3]),0,100),d(isNaN(i)?1:i,0,1)]}}}function r(t){if(t){var e=t.match(/^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(e){var i=parseFloat(e[4]);return[d(parseInt(e[1]),0,360),d(parseFloat(e[2]),0,100),d(parseFloat(e[3]),0,100),d(isNaN(i)?1:i,0,1)]}}}function s(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"rgba("+t[0]+", "+t[1]+", "+t[2]+", "+e+")"}function l(t,e){return"rgba("+Math.round(t[0]/255*100)+"%, "+Math.round(t[1]/255*100)+"%, "+Math.round(t[2]/255*100)+"%, "+(e||t[3]||1)+")"}function u(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+e+")"}function d(t,e,i){return Math.min(Math.max(e,t),i)}function c(t){var e=t.toString(16).toUpperCase();return e.length<2?"0"+e:e}e.exports={getRgba:a,getHsla:o,getRgb:function(t){var e=a(t);return e&&e.slice(0,3)},getHsl:function(t){var e=o(t);return e&&e.slice(0,3)},getHwb:r,getAlpha:function(t){var e=a(t);{if(e)return e[3];if(e=o(t))return e[3];if(e=r(t))return e[3]}},hexString:function(t){return"#"+c(t[0])+c(t[1])+c(t[2])},rgbString:function(t,e){if(e<1||t[3]&&t[3]<1)return s(t,e);return"rgb("+t[0]+", "+t[1]+", "+t[2]+")"},rgbaString:s,percentString:function(t,e){if(e<1||t[3]&&t[3]<1)return l(t,e);var i=Math.round(t[0]/255*100),n=Math.round(t[1]/255*100),a=Math.round(t[2]/255*100);return"rgb("+i+"%, "+n+"%, "+a+"%)"},percentaString:l,hslString:function(t,e){if(e<1||t[3]&&t[3]<1)return u(t,e);return"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"},hslaString:u,hwbString:function(t,e){void 0===e&&(e=void 0!==t[3]?t[3]:1);return"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"},keyword:function(t){return h[t.slice(0,3)]}};var h={};for(var f in n)h[n[f]]=f},{6:6}],3:[function(t,e,i){var n=t(5),a=t(2),o=function(t){return t instanceof o?t:this instanceof o?(this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1},void("string"==typeof t?(e=a.getRgba(t))?this.setValues("rgb",e):(e=a.getHsla(t))?this.setValues("hsl",e):(e=a.getHwb(t))&&this.setValues("hwb",e):"object"==typeof t&&(void 0!==(e=t).r||void 0!==e.red?this.setValues("rgb",e):void 0!==e.l||void 0!==e.lightness?this.setValues("hsl",e):void 0!==e.v||void 0!==e.value?this.setValues("hsv",e):void 0!==e.w||void 0!==e.whiteness?this.setValues("hwb",e):void 0===e.c&&void 0===e.cyan||this.setValues("cmyk",e)))):new o(t);var e};o.prototype={isValid:function(){return this.valid},rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var t=this.values;return 1!==t.alpha?t.hwb.concat([t.alpha]):t.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var t=this.values;return t.rgb.concat([t.alpha])},hslaArray:function(){var t=this.values;return t.hsl.concat([t.alpha])},alpha:function(t){return void 0===t?this.values.alpha:(this.setValues("alpha",t),this)},red:function(t){return this.setChannel("rgb",0,t)},green:function(t){return this.setChannel("rgb",1,t)},blue:function(t){return this.setChannel("rgb",2,t)},hue:function(t){return t&&(t=(t%=360)<0?360+t:t),this.setChannel("hsl",0,t)},saturation:function(t){return this.setChannel("hsl",1,t)},lightness:function(t){return this.setChannel("hsl",2,t)},saturationv:function(t){return this.setChannel("hsv",1,t)},whiteness:function(t){return this.setChannel("hwb",1,t)},blackness:function(t){return this.setChannel("hwb",2,t)},value:function(t){return this.setChannel("hsv",2,t)},cyan:function(t){return this.setChannel("cmyk",0,t)},magenta:function(t){return this.setChannel("cmyk",1,t)},yellow:function(t){return this.setChannel("cmyk",2,t)},black:function(t){return this.setChannel("cmyk",3,t)},hexString:function(){return a.hexString(this.values.rgb)},rgbString:function(){return a.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return a.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return a.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return a.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return a.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return a.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return a.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var t=this.values.rgb;return t[0]<<16|t[1]<<8|t[2]},luminosity:function(){for(var t=this.values.rgb,e=[],i=0;i<t.length;i++){var n=t[i]/255;e[i]=n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4)}return.2126*e[0]+.7152*e[1]+.0722*e[2]},contrast:function(t){var e=this.luminosity(),i=t.luminosity();return e>i?(e+.05)/(i+.05):(i+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,i=(e[0]+t)%360;return e[0]=i<0?360+i:i,this.setValues("hsl",e),this},mix:function(t,e){var i=this,n=t,a=void 0===e?.5:e,o=2*a-1,r=i.alpha()-n.alpha(),s=((o*r==-1?o:(o+r)/(1+o*r))+1)/2,l=1-s;return this.rgb(s*i.red()+l*n.red(),s*i.green()+l*n.green(),s*i.blue()+l*n.blue()).alpha(i.alpha()*a+n.alpha()*(1-a))},toJSON:function(){return this.rgb()},clone:function(){var t,e,i=new o,n=this.values,a=i.values;for(var r in n)n.hasOwnProperty(r)&&(t=n[r],"[object Array]"===(e={}.toString.call(t))?a[r]=t.slice(0):"[object Number]"===e?a[r]=t:console.error("unexpected color value:",t));return i}},o.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},o.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},o.prototype.getValues=function(t){for(var e=this.values,i={},n=0;n<t.length;n++)i[t.charAt(n)]=e[t][n];return 1!==e.alpha&&(i.a=e.alpha),i},o.prototype.setValues=function(t,e){var i,a,o=this.values,r=this.spaces,s=this.maxes,l=1;if(this.valid=!0,"alpha"===t)l=e;else if(e.length)o[t]=e.slice(0,t.length),l=e[t.length];else if(void 0!==e[t.charAt(0)]){for(i=0;i<t.length;i++)o[t][i]=e[t.charAt(i)];l=e.a}else if(void 0!==e[r[t][0]]){var u=r[t];for(i=0;i<t.length;i++)o[t][i]=e[u[i]];l=e.alpha}if(o.alpha=Math.max(0,Math.min(1,void 0===l?o.alpha:l)),"alpha"===t)return!1;for(i=0;i<t.length;i++)a=Math.max(0,Math.min(s[t][i],o[t][i])),o[t][i]=Math.round(a);for(var d in r)d!==t&&(o[d]=n[t][d](o[t]));return!0},o.prototype.setSpace=function(t,e){var i=e[0];return void 0===i?this.getValues(t):("number"==typeof i&&(i=Array.prototype.slice.call(e)),this.setValues(t,i),this)},o.prototype.setChannel=function(t,e,i){var n=this.values[t];return void 0===i?n[e]:i===n[e]?this:(n[e]=i,this.setValues(t,n),this)},"undefined"!=typeof window&&(window.Color=o),e.exports=o},{2:2,5:5}],4:[function(t,e,i){function n(t){var e,i,n=t[0]/255,a=t[1]/255,o=t[2]/255,r=Math.min(n,a,o),s=Math.max(n,a,o),l=s-r;return s==r?e=0:n==s?e=(a-o)/l:a==s?e=2+(o-n)/l:o==s&&(e=4+(n-a)/l),(e=Math.min(60*e,360))<0&&(e+=360),i=(r+s)/2,[e,100*(s==r?0:i<=.5?l/(s+r):l/(2-s-r)),100*i]}function a(t){var e,i,n=t[0],a=t[1],o=t[2],r=Math.min(n,a,o),s=Math.max(n,a,o),l=s-r;return i=0==s?0:l/s*1e3/10,s==r?e=0:n==s?e=(a-o)/l:a==s?e=2+(o-n)/l:o==s&&(e=4+(n-a)/l),(e=Math.min(60*e,360))<0&&(e+=360),[e,i,s/255*1e3/10]}function o(t){var e=t[0],i=t[1],a=t[2];return[n(t)[0],100*(1/255*Math.min(e,Math.min(i,a))),100*(a=1-1/255*Math.max(e,Math.max(i,a)))]}function s(t){var e,i=t[0]/255,n=t[1]/255,a=t[2]/255;return[100*((1-i-(e=Math.min(1-i,1-n,1-a)))/(1-e)||0),100*((1-n-e)/(1-e)||0),100*((1-a-e)/(1-e)||0),100*e]}function l(t){return C[JSON.stringify(t)]}function u(t){var e=t[0]/255,i=t[1]/255,n=t[2]/255;return[100*(.4124*(e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)+.1805*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)),100*(.2126*e+.7152*i+.0722*n),100*(.0193*e+.1192*i+.9505*n)]}function d(t){var e=u(t),i=e[0],n=e[1],a=e[2];return n/=100,a/=108.883,i=(i/=95.047)>.008856?Math.pow(i,1/3):7.787*i+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(i-n),200*(n-(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116))]}function c(t){var e,i,n,a,o,r=t[0]/360,s=t[1]/100,l=t[2]/100;if(0==s)return[o=255*l,o,o];e=2*l-(i=l<.5?l*(1+s):l+s-l*s),a=[0,0,0];for(var u=0;u<3;u++)(n=r+1/3*-(u-1))<0&&n++,n>1&&n--,o=6*n<1?e+6*(i-e)*n:2*n<1?i:3*n<2?e+(i-e)*(2/3-n)*6:e,a[u]=255*o;return a}function h(t){var e=t[0]/60,i=t[1]/100,n=t[2]/100,a=Math.floor(e)%6,o=e-Math.floor(e),r=255*n*(1-i),s=255*n*(1-i*o),l=255*n*(1-i*(1-o));n*=255;switch(a){case 0:return[n,l,r];case 1:return[s,n,r];case 2:return[r,n,l];case 3:return[r,s,n];case 4:return[l,r,n];case 5:return[n,r,s]}}function f(t){var e,i,n,a,o=t[0]/360,s=t[1]/100,l=t[2]/100,u=s+l;switch(u>1&&(s/=u,l/=u),n=6*o-(e=Math.floor(6*o)),0!=(1&e)&&(n=1-n),a=s+n*((i=1-l)-s),e){default:case 6:case 0:r=i,g=a,b=s;break;case 1:r=a,g=i,b=s;break;case 2:r=s,g=i,b=a;break;case 3:r=s,g=a,b=i;break;case 4:r=a,g=s,b=i;break;case 5:r=i,g=s,b=a}return[255*r,255*g,255*b]}function p(t){var e=t[0]/100,i=t[1]/100,n=t[2]/100,a=t[3]/100;return[255*(1-Math.min(1,e*(1-a)+a)),255*(1-Math.min(1,i*(1-a)+a)),255*(1-Math.min(1,n*(1-a)+a))]}function m(t){var e,i,n,a=t[0]/100,o=t[1]/100,r=t[2]/100;return i=-.9689*a+1.8758*o+.0415*r,n=.0557*a+-.204*o+1.057*r,e=(e=3.2406*a+-1.5372*o+-.4986*r)>.0031308?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i*=12.92,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,[255*(e=Math.min(Math.max(0,e),1)),255*(i=Math.min(Math.max(0,i),1)),255*(n=Math.min(Math.max(0,n),1))]}function v(t){var e=t[0],i=t[1],n=t[2];return i/=100,n/=108.883,e=(e/=95.047)>.008856?Math.pow(e,1/3):7.787*e+16/116,[116*(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116)-16,500*(e-i),200*(i-(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116))]}function x(t){var e,i,n,a,o=t[0],r=t[1],s=t[2];return o<=8?a=(i=100*o/903.3)/100*7.787+16/116:(i=100*Math.pow((o+16)/116,3),a=Math.pow(i/100,1/3)),[e=e/95.047<=.008856?e=95.047*(r/500+a-16/116)/7.787:95.047*Math.pow(r/500+a,3),i,n=n/108.883<=.008859?n=108.883*(a-s/200-16/116)/7.787:108.883*Math.pow(a-s/200,3)]}function y(t){var e,i=t[0],n=t[1],a=t[2];return(e=360*Math.atan2(a,n)/2/Math.PI)<0&&(e+=360),[i,Math.sqrt(n*n+a*a),e]}function k(t){return m(x(t))}function M(t){var e,i=t[0],n=t[1];return e=t[2]/360*2*Math.PI,[i,n*Math.cos(e),n*Math.sin(e)]}function w(t){return S[t]}e.exports={rgb2hsl:n,rgb2hsv:a,rgb2hwb:o,rgb2cmyk:s,rgb2keyword:l,rgb2xyz:u,rgb2lab:d,rgb2lch:function(t){return y(d(t))},hsl2rgb:c,hsl2hsv:function(t){var e=t[0],i=t[1]/100,n=t[2]/100;if(0===n)return[0,0,0];return[e,100*(2*(i*=(n*=2)<=1?n:2-n)/(n+i)),100*((n+i)/2)]},hsl2hwb:function(t){return o(c(t))},hsl2cmyk:function(t){return s(c(t))},hsl2keyword:function(t){return l(c(t))},hsv2rgb:h,hsv2hsl:function(t){var e,i,n=t[0],a=t[1]/100,o=t[2]/100;return e=a*o,[n,100*(e=(e/=(i=(2-a)*o)<=1?i:2-i)||0),100*(i/=2)]},hsv2hwb:function(t){return o(h(t))},hsv2cmyk:function(t){return s(h(t))},hsv2keyword:function(t){return l(h(t))},hwb2rgb:f,hwb2hsl:function(t){return n(f(t))},hwb2hsv:function(t){return a(f(t))},hwb2cmyk:function(t){return s(f(t))},hwb2keyword:function(t){return l(f(t))},cmyk2rgb:p,cmyk2hsl:function(t){return n(p(t))},cmyk2hsv:function(t){return a(p(t))},cmyk2hwb:function(t){return o(p(t))},cmyk2keyword:function(t){return l(p(t))},keyword2rgb:w,keyword2hsl:function(t){return n(w(t))},keyword2hsv:function(t){return a(w(t))},keyword2hwb:function(t){return o(w(t))},keyword2cmyk:function(t){return s(w(t))},keyword2lab:function(t){return d(w(t))},keyword2xyz:function(t){return u(w(t))},xyz2rgb:m,xyz2lab:v,xyz2lch:function(t){return y(v(t))},lab2xyz:x,lab2rgb:k,lab2lch:y,lch2lab:M,lch2xyz:function(t){return x(M(t))},lch2rgb:function(t){return k(M(t))}};var S={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},C={};for(var _ in S)C[JSON.stringify(S[_])]=_},{}],5:[function(t,e,i){var n=t(4),a=function(){return new u};for(var o in n){a[o+"Raw"]=function(t){return function(e){return"number"==typeof e&&(e=Array.prototype.slice.call(arguments)),n[t](e)}}(o);var r=/(\w+)2(\w+)/.exec(o),s=r[1],l=r[2];(a[s]=a[s]||{})[l]=a[o]=function(t){return function(e){"number"==typeof e&&(e=Array.prototype.slice.call(arguments));var i=n[t](e);if("string"==typeof i||void 0===i)return i;for(var a=0;a<i.length;a++)i[a]=Math.round(i[a]);return i}}(o)}var u=function(){this.convs={}};u.prototype.routeSpace=function(t,e){var i=e[0];return void 0===i?this.getValues(t):("number"==typeof i&&(i=Array.prototype.slice.call(e)),this.setValues(t,i))},u.prototype.setValues=function(t,e){return this.space=t,this.convs={},this.convs[t]=e,this},u.prototype.getValues=function(t){var e=this.convs[t];if(!e){var i=this.space,n=this.convs[i];e=a[i][t](n),this.convs[t]=e}return e},["rgb","hsl","hsv","cmyk","keyword"].forEach(function(t){u.prototype[t]=function(e){return this.routeSpace(t,arguments)}}),e.exports=a},{4:4}],6:[function(t,e,i){"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},{}],7:[function(t,e,i){var n=t(29)();n.helpers=t(45),t(27)(n),n.defaults=t(25),n.Element=t(26),n.elements=t(40),n.Interaction=t(28),n.layouts=t(30),n.platform=t(48),n.plugins=t(31),n.Ticks=t(34),t(22)(n),t(23)(n),t(24)(n),t(33)(n),t(32)(n),t(35)(n),t(55)(n),t(53)(n),t(54)(n),t(56)(n),t(57)(n),t(58)(n),t(15)(n),t(16)(n),t(17)(n),t(18)(n),t(19)(n),t(20)(n),t(21)(n),t(8)(n),t(9)(n),t(10)(n),t(11)(n),t(12)(n),t(13)(n),t(14)(n);var a=t(49);for(var o in a)a.hasOwnProperty(o)&&n.plugins.register(a[o]);n.platform.initialize(),e.exports=n,"undefined"!=typeof window&&(window.Chart=n),n.Legend=a.legend._element,n.Title=a.title._element,n.pluginService=n.plugins,n.PluginBase=n.Element.extend({}),n.canvasHelpers=n.helpers.canvas,n.layoutService=n.layouts},{10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20,21:21,22:22,23:23,24:24,25:25,26:26,27:27,28:28,29:29,30:30,31:31,32:32,33:33,34:34,35:35,40:40,45:45,48:48,49:49,53:53,54:54,55:55,56:56,57:57,58:58,8:8,9:9}],8:[function(t,e,i){"use strict";e.exports=function(t){t.Bar=function(e,i){return i.type="bar",new t(e,i)}}},{}],9:[function(t,e,i){"use strict";e.exports=function(t){t.Bubble=function(e,i){return i.type="bubble",new t(e,i)}}},{}],10:[function(t,e,i){"use strict";e.exports=function(t){t.Doughnut=function(e,i){return i.type="doughnut",new t(e,i)}}},{}],11:[function(t,e,i){"use strict";e.exports=function(t){t.Line=function(e,i){return i.type="line",new t(e,i)}}},{}],12:[function(t,e,i){"use strict";e.exports=function(t){t.PolarArea=function(e,i){return i.type="polarArea",new t(e,i)}}},{}],13:[function(t,e,i){"use strict";e.exports=function(t){t.Radar=function(e,i){return i.type="radar",new t(e,i)}}},{}],14:[function(t,e,i){"use strict";e.exports=function(t){t.Scatter=function(e,i){return i.type="scatter",new t(e,i)}}},{}],15:[function(t,e,i){"use strict";var n=t(25),a=t(40),o=t(45);n._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}}),n._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{position:"left",type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{callbacks:{title:function(t,e){var i="";return t.length>0&&(t[0].yLabel?i=t[0].yLabel:e.labels.length>0&&t[0].index<e.labels.length&&(i=e.labels[t[0].index])),i},label:function(t,e){return(e.datasets[t.datasetIndex].label||"")+": "+t.xLabel}},mode:"index",axis:"y"}}),e.exports=function(t){t.controllers.bar=t.DatasetController.extend({dataElementType:a.Rectangle,initialize:function(){var e;t.DatasetController.prototype.initialize.apply(this,arguments),(e=this.getMeta()).stack=this.getDataset().stack,e.bar=!0},update:function(t){var e,i,n=this.getMeta().data;for(this._ruler=this.getRuler(),e=0,i=n.length;e<i;++e)this.updateElement(n[e],e,t)},updateElement:function(t,e,i){var n=this,a=n.chart,r=n.getMeta(),s=n.getDataset(),l=t.custom||{},u=a.options.elements.rectangle;t._xScale=n.getScaleForId(r.xAxisID),t._yScale=n.getScaleForId(r.yAxisID),t._datasetIndex=n.index,t._index=e,t._model={datasetLabel:s.label,label:a.data.labels[e],borderSkipped:l.borderSkipped?l.borderSkipped:u.borderSkipped,backgroundColor:l.backgroundColor?l.backgroundColor:o.valueAtIndexOrDefault(s.backgroundColor,e,u.backgroundColor),borderColor:l.borderColor?l.borderColor:o.valueAtIndexOrDefault(s.borderColor,e,u.borderColor),borderWidth:l.borderWidth?l.borderWidth:o.valueAtIndexOrDefault(s.borderWidth,e,u.borderWidth)},n.updateElementGeometry(t,e,i),t.pivot()},updateElementGeometry:function(t,e,i){var n=this,a=t._model,o=n.getValueScale(),r=o.getBasePixel(),s=o.isHorizontal(),l=n._ruler||n.getRuler(),u=n.calculateBarValuePixels(n.index,e),d=n.calculateBarIndexPixels(n.index,e,l);a.horizontal=s,a.base=i?r:u.base,a.x=s?i?r:u.head:d.center,a.y=s?d.center:i?r:u.head,a.height=s?d.size:void 0,a.width=s?void 0:d.size},getValueScaleId:function(){return this.getMeta().yAxisID},getIndexScaleId:function(){return this.getMeta().xAxisID},getValueScale:function(){return this.getScaleForId(this.getValueScaleId())},getIndexScale:function(){return this.getScaleForId(this.getIndexScaleId())},_getStacks:function(t){var e,i,n=this.chart,a=this.getIndexScale().options.stacked,o=void 0===t?n.data.datasets.length:t+1,r=[];for(e=0;e<o;++e)(i=n.getDatasetMeta(e)).bar&&n.isDatasetVisible(e)&&(!1===a||!0===a&&-1===r.indexOf(i.stack)||void 0===a&&(void 0===i.stack||-1===r.indexOf(i.stack)))&&r.push(i.stack);return r},getStackCount:function(){return this._getStacks().length},getStackIndex:function(t,e){var i=this._getStacks(t),n=void 0!==e?i.indexOf(e):-1;return-1===n?i.length-1:n},getRuler:function(){var t,e,i=this.getIndexScale(),n=this.getStackCount(),a=this.index,r=i.isHorizontal(),s=r?i.left:i.top,l=s+(r?i.width:i.height),u=[];for(t=0,e=this.getMeta().data.length;t<e;++t)u.push(i.getPixelForValue(null,t,a));return{min:o.isNullOrUndef(i.options.barThickness)?function(t,e){var i,n,a,o,r=t.isHorizontal()?t.width:t.height,s=t.getTicks();for(a=1,o=e.length;a<o;++a)r=Math.min(r,e[a]-e[a-1]);for(a=0,o=s.length;a<o;++a)n=t.getPixelForTick(a),r=a>0?Math.min(r,n-i):r,i=n;return r}(i,u):-1,pixels:u,start:s,end:l,stackCount:n,scale:i}},calculateBarValuePixels:function(t,e){var i,n,a,o,r,s,l=this.chart,u=this.getMeta(),d=this.getValueScale(),c=l.data.datasets,h=d.getRightValue(c[t].data[e]),f=d.options.stacked,g=u.stack,p=0;if(f||void 0===f&&void 0!==g)for(i=0;i<t;++i)(n=l.getDatasetMeta(i)).bar&&n.stack===g&&n.controller.getValueScaleId()===d.id&&l.isDatasetVisible(i)&&(a=d.getRightValue(c[i].data[e]),(h<0&&a<0||h>=0&&a>0)&&(p+=a));return o=d.getPixelForValue(p),{size:s=((r=d.getPixelForValue(p+h))-o)/2,base:o,head:r,center:r+s/2}},calculateBarIndexPixels:function(t,e,i){var n,a,r,s,l,u,d,c,h,f,g,p,m,v,b,x,y,k=i.scale.options,M="flex"===k.barThickness?(h=e,g=k,m=(f=i).pixels,v=m[h],b=h>0?m[h-1]:null,x=h<m.length-1?m[h+1]:null,y=g.categoryPercentage,null===b&&(b=v-(null===x?f.end-v:x-v)),null===x&&(x=v+v-b),p=v-(v-b)/2*y,{chunk:(x-b)/2*y/f.stackCount,ratio:g.barPercentage,start:p}):(n=e,a=i,u=(r=k).barThickness,d=a.stackCount,c=a.pixels[n],o.isNullOrUndef(u)?(s=a.min*r.categoryPercentage,l=r.barPercentage):(s=u*d,l=1),{chunk:s/d,ratio:l,start:c-s/2}),w=this.getStackIndex(t,this.getMeta().stack),S=M.start+M.chunk*w+M.chunk/2,C=Math.min(o.valueOrDefault(k.maxBarThickness,1/0),M.chunk*M.ratio);return{base:S-C/2,head:S+C/2,center:S,size:C}},draw:function(){var t=this.chart,e=this.getValueScale(),i=this.getMeta().data,n=this.getDataset(),a=i.length,r=0;for(o.canvas.clipArea(t.ctx,t.chartArea);r<a;++r)isNaN(e.getRightValue(n.data[r]))||i[r].draw();o.canvas.unclipArea(t.ctx)},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],i=t._index,n=t.custom||{},a=t._model;a.backgroundColor=n.hoverBackgroundColor?n.hoverBackgroundColor:o.valueAtIndexOrDefault(e.hoverBackgroundColor,i,o.getHoverColor(a.backgroundColor)),a.borderColor=n.hoverBorderColor?n.hoverBorderColor:o.valueAtIndexOrDefault(e.hoverBorderColor,i,o.getHoverColor(a.borderColor)),a.borderWidth=n.hoverBorderWidth?n.hoverBorderWidth:o.valueAtIndexOrDefault(e.hoverBorderWidth,i,a.borderWidth)},removeHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],i=t._index,n=t.custom||{},a=t._model,r=this.chart.options.elements.rectangle;a.backgroundColor=n.backgroundColor?n.backgroundColor:o.valueAtIndexOrDefault(e.backgroundColor,i,r.backgroundColor),a.borderColor=n.borderColor?n.borderColor:o.valueAtIndexOrDefault(e.borderColor,i,r.borderColor),a.borderWidth=n.borderWidth?n.borderWidth:o.valueAtIndexOrDefault(e.borderWidth,i,r.borderWidth)}}),t.controllers.horizontalBar=t.controllers.bar.extend({getValueScaleId:function(){return this.getMeta().xAxisID},getIndexScaleId:function(){return this.getMeta().yAxisID}})}},{25:25,40:40,45:45}],16:[function(t,e,i){"use strict";var n=t(25),a=t(40),o=t(45);n._set("bubble",{hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-0"}],yAxes:[{type:"linear",position:"left",id:"y-axis-0"}]},tooltips:{callbacks:{title:function(){return""},label:function(t,e){var i=e.datasets[t.datasetIndex].label||"",n=e.datasets[t.datasetIndex].data[t.index];return i+": ("+t.xLabel+", "+t.yLabel+", "+n.r+")"}}}}),e.exports=function(t){t.controllers.bubble=t.DatasetController.extend({dataElementType:a.Point,update:function(t){var e=this,i=e.getMeta().data;o.each(i,function(i,n){e.updateElement(i,n,t)})},updateElement:function(t,e,i){var n=this,a=n.getMeta(),o=t.custom||{},r=n.getScaleForId(a.xAxisID),s=n.getScaleForId(a.yAxisID),l=n._resolveElementOptions(t,e),u=n.getDataset().data[e],d=n.index,c=i?r.getPixelForDecimal(.5):r.getPixelForValue("object"==typeof u?u:NaN,e,d),h=i?s.getBasePixel():s.getPixelForValue(u,e,d);t._xScale=r,t._yScale=s,t._options=l,t._datasetIndex=d,t._index=e,t._model={backgroundColor:l.backgroundColor,borderColor:l.borderColor,borderWidth:l.borderWidth,hitRadius:l.hitRadius,pointStyle:l.pointStyle,radius:i?0:l.radius,skip:o.skip||isNaN(c)||isNaN(h),x:c,y:h},t.pivot()},setHoverStyle:function(t){var e=t._model,i=t._options;e.backgroundColor=o.valueOrDefault(i.hoverBackgroundColor,o.getHoverColor(i.backgroundColor)),e.borderColor=o.valueOrDefault(i.hoverBorderColor,o.getHoverColor(i.borderColor)),e.borderWidth=o.valueOrDefault(i.hoverBorderWidth,i.borderWidth),e.radius=i.radius+i.hoverRadius},removeHoverStyle:function(t){var e=t._model,i=t._options;e.backgroundColor=i.backgroundColor,e.borderColor=i.borderColor,e.borderWidth=i.borderWidth,e.radius=i.radius},_resolveElementOptions:function(t,e){var i,n,a,r=this.chart,s=r.data.datasets[this.index],l=t.custom||{},u=r.options.elements.point,d=o.options.resolve,c=s.data[e],h={},f={chart:r,dataIndex:e,dataset:s,datasetIndex:this.index},g=["backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","hoverRadius","hitRadius","pointStyle"];for(i=0,n=g.length;i<n;++i)h[a=g[i]]=d([l[a],s[a],u[a]],f,e);return h.radius=d([l.radius,c?c.r:void 0,s.radius,u.radius],f,e),h}})}},{25:25,40:40,45:45}],17:[function(t,e,i){"use strict";var n=t(25),a=t(40),o=t(45);n._set("doughnut",{animation:{animateRotate:!0,animateScale:!1},hover:{mode:"single"},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var i=t.data,n=i.datasets,a=i.labels;if(n.length)for(var o=0;o<n[0].data.length;++o)e.push('<li><span style="background-color:'+n[0].backgroundColor[o]+'"></span>'),a[o]&&e.push(a[o]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(i,n){var a=t.getDatasetMeta(0),r=e.datasets[0],s=a.data[n],l=s&&s.custom||{},u=o.valueAtIndexOrDefault,d=t.options.elements.arc;return{text:i,fillStyle:l.backgroundColor?l.backgroundColor:u(r.backgroundColor,n,d.backgroundColor),strokeStyle:l.borderColor?l.borderColor:u(r.borderColor,n,d.borderColor),lineWidth:l.borderWidth?l.borderWidth:u(r.borderWidth,n,d.borderWidth),hidden:isNaN(r.data[n])||a.data[n].hidden,index:n}}):[]}},onClick:function(t,e){var i,n,a,o=e.index,r=this.chart;for(i=0,n=(r.data.datasets||[]).length;i<n;++i)(a=r.getDatasetMeta(i)).data[o]&&(a.data[o].hidden=!a.data[o].hidden);r.update()}},cutoutPercentage:50,rotation:-.5*Math.PI,circumference:2*Math.PI,tooltips:{callbacks:{title:function(){return""},label:function(t,e){var i=e.labels[t.index],n=": "+e.datasets[t.datasetIndex].data[t.index];return o.isArray(i)?(i=i.slice())[0]+=n:i+=n,i}}}}),n._set("pie",o.clone(n.doughnut)),n._set("pie",{cutoutPercentage:0}),e.exports=function(t){t.controllers.doughnut=t.controllers.pie=t.DatasetController.extend({dataElementType:a.Arc,linkScales:o.noop,getRingIndex:function(t){for(var e=0,i=0;i<t;++i)this.chart.isDatasetVisible(i)&&++e;return e},update:function(t){var e=this,i=e.chart,n=i.chartArea,a=i.options,r=a.elements.arc,s=n.right-n.left-r.borderWidth,l=n.bottom-n.top-r.borderWidth,u=Math.min(s,l),d={x:0,y:0},c=e.getMeta(),h=a.cutoutPercentage,f=a.circumference;if(f<2*Math.PI){var g=a.rotation%(2*Math.PI),p=(g+=2*Math.PI*(g>=Math.PI?-1:g<-Math.PI?1:0))+f,m=Math.cos(g),v=Math.sin(g),b=Math.cos(p),x=Math.sin(p),y=g<=0&&p>=0||g<=2*Math.PI&&2*Math.PI<=p,k=g<=.5*Math.PI&&.5*Math.PI<=p||g<=2.5*Math.PI&&2.5*Math.PI<=p,M=g<=-Math.PI&&-Math.PI<=p||g<=Math.PI&&Math.PI<=p,w=g<=.5*-Math.PI&&.5*-Math.PI<=p||g<=1.5*Math.PI&&1.5*Math.PI<=p,S=h/100,C=M?-1:Math.min(m*(m<0?1:S),b*(b<0?1:S)),_=w?-1:Math.min(v*(v<0?1:S),x*(x<0?1:S)),D=y?1:Math.max(m*(m>0?1:S),b*(b>0?1:S)),I=k?1:Math.max(v*(v>0?1:S),x*(x>0?1:S)),P=.5*(D-C),A=.5*(I-_);u=Math.min(s/P,l/A),d={x:-.5*(D+C),y:-.5*(I+_)}}i.borderWidth=e.getMaxBorderWidth(c.data),i.outerRadius=Math.max((u-i.borderWidth)/2,0),i.innerRadius=Math.max(h?i.outerRadius/100*h:0,0),i.radiusLength=(i.outerRadius-i.innerRadius)/i.getVisibleDatasetCount(),i.offsetX=d.x*i.outerRadius,i.offsetY=d.y*i.outerRadius,c.total=e.calculateTotal(),e.outerRadius=i.outerRadius-i.radiusLength*e.getRingIndex(e.index),e.innerRadius=Math.max(e.outerRadius-i.radiusLength,0),o.each(c.data,function(i,n){e.updateElement(i,n,t)})},updateElement:function(t,e,i){var n=this,a=n.chart,r=a.chartArea,s=a.options,l=s.animation,u=(r.left+r.right)/2,d=(r.top+r.bottom)/2,c=s.rotation,h=s.rotation,f=n.getDataset(),g=i&&l.animateRotate?0:t.hidden?0:n.calculateCircumference(f.data[e])*(s.circumference/(2*Math.PI)),p=i&&l.animateScale?0:n.innerRadius,m=i&&l.animateScale?0:n.outerRadius,v=o.valueAtIndexOrDefault;o.extend(t,{_datasetIndex:n.index,_index:e,_model:{x:u+a.offsetX,y:d+a.offsetY,startAngle:c,endAngle:h,circumference:g,outerRadius:m,innerRadius:p,label:v(f.label,e,a.data.labels[e])}});var b=t._model;this.removeHoverStyle(t),i&&l.animateRotate||(b.startAngle=0===e?s.rotation:n.getMeta().data[e-1]._model.endAngle,b.endAngle=b.startAngle+b.circumference),t.pivot()},removeHoverStyle:function(e){t.DatasetController.prototype.removeHoverStyle.call(this,e,this.chart.options.elements.arc)},calculateTotal:function(){var t,e=this.getDataset(),i=this.getMeta(),n=0;return o.each(i.data,function(i,a){t=e.data[a],isNaN(t)||i.hidden||(n+=Math.abs(t))}),n},calculateCircumference:function(t){var e=this.getMeta().total;return e>0&&!isNaN(t)?2*Math.PI*(Math.abs(t)/e):0},getMaxBorderWidth:function(t){for(var e,i,n=0,a=this.index,o=t.length,r=0;r<o;r++)e=t[r]._model?t[r]._model.borderWidth:0,n=(i=t[r]._chart?t[r]._chart.config.data.datasets[a].hoverBorderWidth:0)>(n=e>n?e:n)?i:n;return n}})}},{25:25,40:40,45:45}],18:[function(t,e,i){"use strict";var n=t(25),a=t(40),o=t(45);n._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}}),e.exports=function(t){function e(t,e){return o.valueOrDefault(t.showLine,e.showLines)}t.controllers.line=t.DatasetController.extend({datasetElementType:a.Line,dataElementType:a.Point,update:function(t){var i,n,a,r=this,s=r.getMeta(),l=s.dataset,u=s.data||[],d=r.chart.options,c=d.elements.line,h=r.getScaleForId(s.yAxisID),f=r.getDataset(),g=e(f,d);for(g&&(a=l.custom||{},void 0!==f.tension&&void 0===f.lineTension&&(f.lineTension=f.tension),l._scale=h,l._datasetIndex=r.index,l._children=u,l._model={spanGaps:f.spanGaps?f.spanGaps:d.spanGaps,tension:a.tension?a.tension:o.valueOrDefault(f.lineTension,c.tension),backgroundColor:a.backgroundColor?a.backgroundColor:f.backgroundColor||c.backgroundColor,borderWidth:a.borderWidth?a.borderWidth:f.borderWidth||c.borderWidth,borderColor:a.borderColor?a.borderColor:f.borderColor||c.borderColor,borderCapStyle:a.borderCapStyle?a.borderCapStyle:f.borderCapStyle||c.borderCapStyle,borderDash:a.borderDash?a.borderDash:f.borderDash||c.borderDash,borderDashOffset:a.borderDashOffset?a.borderDashOffset:f.borderDashOffset||c.borderDashOffset,borderJoinStyle:a.borderJoinStyle?a.borderJoinStyle:f.borderJoinStyle||c.borderJoinStyle,fill:a.fill?a.fill:void 0!==f.fill?f.fill:c.fill,steppedLine:a.steppedLine?a.steppedLine:o.valueOrDefault(f.steppedLine,c.stepped),cubicInterpolationMode:a.cubicInterpolationMode?a.cubicInterpolationMode:o.valueOrDefault(f.cubicInterpolationMode,c.cubicInterpolationMode)},l.pivot()),i=0,n=u.length;i<n;++i)r.updateElement(u[i],i,t);for(g&&0!==l._model.tension&&r.updateBezierControlPoints(),i=0,n=u.length;i<n;++i)u[i].pivot()},getPointBackgroundColor:function(t,e){var i=this.chart.options.elements.point.backgroundColor,n=this.getDataset(),a=t.custom||{};return a.backgroundColor?i=a.backgroundColor:n.pointBackgroundColor?i=o.valueAtIndexOrDefault(n.pointBackgroundColor,e,i):n.backgroundColor&&(i=n.backgroundColor),i},getPointBorderColor:function(t,e){var i=this.chart.options.elements.point.borderColor,n=this.getDataset(),a=t.custom||{};return a.borderColor?i=a.borderColor:n.pointBorderColor?i=o.valueAtIndexOrDefault(n.pointBorderColor,e,i):n.borderColor&&(i=n.borderColor),i},getPointBorderWidth:function(t,e){var i=this.chart.options.elements.point.borderWidth,n=this.getDataset(),a=t.custom||{};return isNaN(a.borderWidth)?!isNaN(n.pointBorderWidth)||o.isArray(n.pointBorderWidth)?i=o.valueAtIndexOrDefault(n.pointBorderWidth,e,i):isNaN(n.borderWidth)||(i=n.borderWidth):i=a.borderWidth,i},updateElement:function(t,e,i){var n,a,r=this,s=r.getMeta(),l=t.custom||{},u=r.getDataset(),d=r.index,c=u.data[e],h=r.getScaleForId(s.yAxisID),f=r.getScaleForId(s.xAxisID),g=r.chart.options.elements.point;void 0!==u.radius&&void 0===u.pointRadius&&(u.pointRadius=u.radius),void 0!==u.hitRadius&&void 0===u.pointHitRadius&&(u.pointHitRadius=u.hitRadius),n=f.getPixelForValue("object"==typeof c?c:NaN,e,d),a=i?h.getBasePixel():r.calculatePointY(c,e,d),t._xScale=f,t._yScale=h,t._datasetIndex=d,t._index=e,t._model={x:n,y:a,skip:l.skip||isNaN(n)||isNaN(a),radius:l.radius||o.valueAtIndexOrDefault(u.pointRadius,e,g.radius),pointStyle:l.pointStyle||o.valueAtIndexOrDefault(u.pointStyle,e,g.pointStyle),backgroundColor:r.getPointBackgroundColor(t,e),borderColor:r.getPointBorderColor(t,e),borderWidth:r.getPointBorderWidth(t,e),tension:s.dataset._model?s.dataset._model.tension:0,steppedLine:!!s.dataset._model&&s.dataset._model.steppedLine,hitRadius:l.hitRadius||o.valueAtIndexOrDefault(u.pointHitRadius,e,g.hitRadius)}},calculatePointY:function(t,e,i){var n,a,o,r=this.chart,s=this.getMeta(),l=this.getScaleForId(s.yAxisID),u=0,d=0;if(l.options.stacked){for(n=0;n<i;n++)if(a=r.data.datasets[n],"line"===(o=r.getDatasetMeta(n)).type&&o.yAxisID===l.id&&r.isDatasetVisible(n)){var c=Number(l.getRightValue(a.data[e]));c<0?d+=c||0:u+=c||0}var h=Number(l.getRightValue(t));return h<0?l.getPixelForValue(d+h):l.getPixelForValue(u+h)}return l.getPixelForValue(t)},updateBezierControlPoints:function(){var t,e,i,n,a=this.getMeta(),r=this.chart.chartArea,s=a.data||[];function l(t,e,i){return Math.max(Math.min(t,i),e)}if(a.dataset._model.spanGaps&&(s=s.filter(function(t){return!t._model.skip})),"monotone"===a.dataset._model.cubicInterpolationMode)o.splineCurveMonotone(s);else for(t=0,e=s.length;t<e;++t)i=s[t]._model,n=o.splineCurve(o.previousItem(s,t)._model,i,o.nextItem(s,t)._model,a.dataset._model.tension),i.controlPointPreviousX=n.previous.x,i.controlPointPreviousY=n.previous.y,i.controlPointNextX=n.next.x,i.controlPointNextY=n.next.y;if(this.chart.options.elements.line.capBezierPoints)for(t=0,e=s.length;t<e;++t)(i=s[t]._model).controlPointPreviousX=l(i.controlPointPreviousX,r.left,r.right),i.controlPointPreviousY=l(i.controlPointPreviousY,r.top,r.bottom),i.controlPointNextX=l(i.controlPointNextX,r.left,r.right),i.controlPointNextY=l(i.controlPointNextY,r.top,r.bottom)},draw:function(){var t=this.chart,i=this.getMeta(),n=i.data||[],a=t.chartArea,r=n.length,s=0;for(o.canvas.clipArea(t.ctx,a),e(this.getDataset(),t.options)&&i.dataset.draw(),o.canvas.unclipArea(t.ctx);s<r;++s)n[s].draw(a)},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],i=t._index,n=t.custom||{},a=t._model;a.radius=n.hoverRadius||o.valueAtIndexOrDefault(e.pointHoverRadius,i,this.chart.options.elements.point.hoverRadius),a.backgroundColor=n.hoverBackgroundColor||o.valueAtIndexOrDefault(e.pointHoverBackgroundColor,i,o.getHoverColor(a.backgroundColor)),a.borderColor=n.hoverBorderColor||o.valueAtIndexOrDefault(e.pointHoverBorderColor,i,o.getHoverColor(a.borderColor)),a.borderWidth=n.hoverBorderWidth||o.valueAtIndexOrDefault(e.pointHoverBorderWidth,i,a.borderWidth)},removeHoverStyle:function(t){var e=this,i=e.chart.data.datasets[t._datasetIndex],n=t._index,a=t.custom||{},r=t._model;void 0!==i.radius&&void 0===i.pointRadius&&(i.pointRadius=i.radius),r.radius=a.radius||o.valueAtIndexOrDefault(i.pointRadius,n,e.chart.options.elements.point.radius),r.backgroundColor=e.getPointBackgroundColor(t,n),r.borderColor=e.getPointBorderColor(t,n),r.borderWidth=e.getPointBorderWidth(t,n)}})}},{25:25,40:40,45:45}],19:[function(t,e,i){"use strict";var n=t(25),a=t(40),o=t(45);n._set("polarArea",{scale:{type:"radialLinear",angleLines:{display:!1},gridLines:{circular:!0},pointLabels:{display:!1},ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var i=t.data,n=i.datasets,a=i.labels;if(n.length)for(var o=0;o<n[0].data.length;++o)e.push('<li><span style="background-color:'+n[0].backgroundColor[o]+'"></span>'),a[o]&&e.push(a[o]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(i,n){var a=t.getDatasetMeta(0),r=e.datasets[0],s=a.data[n].custom||{},l=o.valueAtIndexOrDefault,u=t.options.elements.arc;return{text:i,fillStyle:s.backgroundColor?s.backgroundColor:l(r.backgroundColor,n,u.backgroundColor),strokeStyle:s.borderColor?s.borderColor:l(r.borderColor,n,u.borderColor),lineWidth:s.borderWidth?s.borderWidth:l(r.borderWidth,n,u.borderWidth),hidden:isNaN(r.data[n])||a.data[n].hidden,index:n}}):[]}},onClick:function(t,e){var i,n,a,o=e.index,r=this.chart;for(i=0,n=(r.data.datasets||[]).length;i<n;++i)(a=r.getDatasetMeta(i)).data[o].hidden=!a.data[o].hidden;r.update()}},tooltips:{callbacks:{title:function(){return""},label:function(t,e){return e.labels[t.index]+": "+t.yLabel}}}}),e.exports=function(t){t.controllers.polarArea=t.DatasetController.extend({dataElementType:a.Arc,linkScales:o.noop,update:function(t){var e=this,i=e.chart,n=i.chartArea,a=e.getMeta(),r=i.options,s=r.elements.arc,l=Math.min(n.right-n.left,n.bottom-n.top);i.outerRadius=Math.max((l-s.borderWidth/2)/2,0),i.innerRadius=Math.max(r.cutoutPercentage?i.outerRadius/100*r.cutoutPercentage:1,0),i.radiusLength=(i.outerRadius-i.innerRadius)/i.getVisibleDatasetCount(),e.outerRadius=i.outerRadius-i.radiusLength*e.index,e.innerRadius=e.outerRadius-i.radiusLength,a.count=e.countVisibleElements(),o.each(a.data,function(i,n){e.updateElement(i,n,t)})},updateElement:function(t,e,i){for(var n=this,a=n.chart,r=n.getDataset(),s=a.options,l=s.animation,u=a.scale,d=a.data.labels,c=n.calculateCircumference(r.data[e]),h=u.xCenter,f=u.yCenter,g=0,p=n.getMeta(),m=0;m<e;++m)isNaN(r.data[m])||p.data[m].hidden||++g;var v=s.startAngle,b=t.hidden?0:u.getDistanceFromCenterForValue(r.data[e]),x=v+c*g,y=x+(t.hidden?0:c),k=l.animateScale?0:u.getDistanceFromCenterForValue(r.data[e]);o.extend(t,{_datasetIndex:n.index,_index:e,_scale:u,_model:{x:h,y:f,innerRadius:0,outerRadius:i?k:b,startAngle:i&&l.animateRotate?v:x,endAngle:i&&l.animateRotate?v:y,label:o.valueAtIndexOrDefault(d,e,d[e])}}),n.removeHoverStyle(t),t.pivot()},removeHoverStyle:function(e){t.DatasetController.prototype.removeHoverStyle.call(this,e,this.chart.options.elements.arc)},countVisibleElements:function(){var t=this.getDataset(),e=this.getMeta(),i=0;return o.each(e.data,function(e,n){isNaN(t.data[n])||e.hidden||i++}),i},calculateCircumference:function(t){var e=this.getMeta().count;return e>0&&!isNaN(t)?2*Math.PI/e:0}})}},{25:25,40:40,45:45}],20:[function(t,e,i){"use strict";var n=t(25),a=t(40),o=t(45);n._set("radar",{scale:{type:"radialLinear"},elements:{line:{tension:0}}}),e.exports=function(t){t.controllers.radar=t.DatasetController.extend({datasetElementType:a.Line,dataElementType:a.Point,linkScales:o.noop,update:function(t){var e=this,i=e.getMeta(),n=i.dataset,a=i.data,r=n.custom||{},s=e.getDataset(),l=e.chart.options.elements.line,u=e.chart.scale;void 0!==s.tension&&void 0===s.lineTension&&(s.lineTension=s.tension),o.extend(i.dataset,{_datasetIndex:e.index,_scale:u,_children:a,_loop:!0,_model:{tension:r.tension?r.tension:o.valueOrDefault(s.lineTension,l.tension),backgroundColor:r.backgroundColor?r.backgroundColor:s.backgroundColor||l.backgroundColor,borderWidth:r.borderWidth?r.borderWidth:s.borderWidth||l.borderWidth,borderColor:r.borderColor?r.borderColor:s.borderColor||l.borderColor,fill:r.fill?r.fill:void 0!==s.fill?s.fill:l.fill,borderCapStyle:r.borderCapStyle?r.borderCapStyle:s.borderCapStyle||l.borderCapStyle,borderDash:r.borderDash?r.borderDash:s.borderDash||l.borderDash,borderDashOffset:r.borderDashOffset?r.borderDashOffset:s.borderDashOffset||l.borderDashOffset,borderJoinStyle:r.borderJoinStyle?r.borderJoinStyle:s.borderJoinStyle||l.borderJoinStyle}}),i.dataset.pivot(),o.each(a,function(i,n){e.updateElement(i,n,t)},e),e.updateBezierControlPoints()},updateElement:function(t,e,i){var n=this,a=t.custom||{},r=n.getDataset(),s=n.chart.scale,l=n.chart.options.elements.point,u=s.getPointPositionForValue(e,r.data[e]);void 0!==r.radius&&void 0===r.pointRadius&&(r.pointRadius=r.radius),void 0!==r.hitRadius&&void 0===r.pointHitRadius&&(r.pointHitRadius=r.hitRadius),o.extend(t,{_datasetIndex:n.index,_index:e,_scale:s,_model:{x:i?s.xCenter:u.x,y:i?s.yCenter:u.y,tension:a.tension?a.tension:o.valueOrDefault(r.lineTension,n.chart.options.elements.line.tension),radius:a.radius?a.radius:o.valueAtIndexOrDefault(r.pointRadius,e,l.radius),backgroundColor:a.backgroundColor?a.backgroundColor:o.valueAtIndexOrDefault(r.pointBackgroundColor,e,l.backgroundColor),borderColor:a.borderColor?a.borderColor:o.valueAtIndexOrDefault(r.pointBorderColor,e,l.borderColor),borderWidth:a.borderWidth?a.borderWidth:o.valueAtIndexOrDefault(r.pointBorderWidth,e,l.borderWidth),pointStyle:a.pointStyle?a.pointStyle:o.valueAtIndexOrDefault(r.pointStyle,e,l.pointStyle),hitRadius:a.hitRadius?a.hitRadius:o.valueAtIndexOrDefault(r.pointHitRadius,e,l.hitRadius)}}),t._model.skip=a.skip?a.skip:isNaN(t._model.x)||isNaN(t._model.y)},updateBezierControlPoints:function(){var t=this.chart.chartArea,e=this.getMeta();o.each(e.data,function(i,n){var a=i._model,r=o.splineCurve(o.previousItem(e.data,n,!0)._model,a,o.nextItem(e.data,n,!0)._model,a.tension);a.controlPointPreviousX=Math.max(Math.min(r.previous.x,t.right),t.left),a.controlPointPreviousY=Math.max(Math.min(r.previous.y,t.bottom),t.top),a.controlPointNextX=Math.max(Math.min(r.next.x,t.right),t.left),a.controlPointNextY=Math.max(Math.min(r.next.y,t.bottom),t.top),i.pivot()})},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],i=t.custom||{},n=t._index,a=t._model;a.radius=i.hoverRadius?i.hoverRadius:o.valueAtIndexOrDefault(e.pointHoverRadius,n,this.chart.options.elements.point.hoverRadius),a.backgroundColor=i.hoverBackgroundColor?i.hoverBackgroundColor:o.valueAtIndexOrDefault(e.pointHoverBackgroundColor,n,o.getHoverColor(a.backgroundColor)),a.borderColor=i.hoverBorderColor?i.hoverBorderColor:o.valueAtIndexOrDefault(e.pointHoverBorderColor,n,o.getHoverColor(a.borderColor)),a.borderWidth=i.hoverBorderWidth?i.hoverBorderWidth:o.valueAtIndexOrDefault(e.pointHoverBorderWidth,n,a.borderWidth)},removeHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],i=t.custom||{},n=t._index,a=t._model,r=this.chart.options.elements.point;a.radius=i.radius?i.radius:o.valueAtIndexOrDefault(e.pointRadius,n,r.radius),a.backgroundColor=i.backgroundColor?i.backgroundColor:o.valueAtIndexOrDefault(e.pointBackgroundColor,n,r.backgroundColor),a.borderColor=i.borderColor?i.borderColor:o.valueAtIndexOrDefault(e.pointBorderColor,n,r.borderColor),a.borderWidth=i.borderWidth?i.borderWidth:o.valueAtIndexOrDefault(e.pointBorderWidth,n,r.borderWidth)}})}},{25:25,40:40,45:45}],21:[function(t,e,i){"use strict";t(25)._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},showLines:!1,tooltips:{callbacks:{title:function(){return""},label:function(t){return"("+t.xLabel+", "+t.yLabel+")"}}}}),e.exports=function(t){t.controllers.scatter=t.controllers.line}},{25:25}],22:[function(t,e,i){"use strict";var n=t(25),a=t(26),o=t(45);n._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:o.noop,onComplete:o.noop}}),e.exports=function(t){t.Animation=a.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),t.animationService={frameDuration:17,animations:[],dropFrames:0,request:null,addAnimation:function(t,e,i,n){var a,o,r=this.animations;for(e.chart=t,n||(t.animating=!0),a=0,o=r.length;a<o;++a)if(r[a].chart===t)return void(r[a]=e);r.push(e),1===r.length&&this.requestAnimationFrame()},cancelAnimation:function(t){var e=o.findIndex(this.animations,function(e){return e.chart===t});-1!==e&&(this.animations.splice(e,1),t.animating=!1)},requestAnimationFrame:function(){var t=this;null===t.request&&(t.request=o.requestAnimFrame.call(window,function(){t.request=null,t.startDigest()}))},startDigest:function(){var t=this,e=Date.now(),i=0;t.dropFrames>1&&(i=Math.floor(t.dropFrames),t.dropFrames=t.dropFrames%1),t.advance(1+i);var n=Date.now();t.dropFrames+=(n-e)/t.frameDuration,t.animations.length>0&&t.requestAnimationFrame()},advance:function(t){for(var e,i,n=this.animations,a=0;a<n.length;)i=(e=n[a]).chart,e.currentStep=(e.currentStep||0)+t,e.currentStep=Math.min(e.currentStep,e.numSteps),o.callback(e.render,[i,e],i),o.callback(e.onAnimationProgress,[e],i),e.currentStep>=e.numSteps?(o.callback(e.onAnimationComplete,[e],i),i.animating=!1,n.splice(a,1)):++a}},Object.defineProperty(t.Animation.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(t.Animation.prototype,"chartInstance",{get:function(){return this.chart},set:function(t){this.chart=t}})}},{25:25,26:26,45:45}],23:[function(t,e,i){"use strict";var n=t(25),a=t(45),o=t(28),r=t(30),s=t(48),l=t(31);e.exports=function(t){function e(t){return"top"===t||"bottom"===t}t.types={},t.instances={},t.controllers={},a.extend(t.prototype,{construct:function(e,i){var o,r,l=this;(r=(o=(o=i)||{}).data=o.data||{}).datasets=r.datasets||[],r.labels=r.labels||[],o.options=a.configMerge(n.global,n[o.type],o.options||{}),i=o;var u=s.acquireContext(e,i),d=u&&u.canvas,c=d&&d.height,h=d&&d.width;l.id=a.uid(),l.ctx=u,l.canvas=d,l.config=i,l.width=h,l.height=c,l.aspectRatio=c?h/c:null,l.options=i.options,l._bufferedRender=!1,l.chart=l,l.controller=l,t.instances[l.id]=l,Object.defineProperty(l,"data",{get:function(){return l.config.data},set:function(t){l.config.data=t}}),u&&d?(l.initialize(),l.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var t=this;return l.notify(t,"beforeInit"),a.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.ensureScalesHaveIDs(),t.buildOrUpdateScales(),t.initToolTip(),l.notify(t,"afterInit"),t},clear:function(){return a.canvas.clear(this),this},stop:function(){return t.animationService.cancelAnimation(this),this},resize:function(t){var e=this,i=e.options,n=e.canvas,o=i.maintainAspectRatio&&e.aspectRatio||null,r=Math.max(0,Math.floor(a.getMaximumWidth(n))),s=Math.max(0,Math.floor(o?r/o:a.getMaximumHeight(n)));if((e.width!==r||e.height!==s)&&(n.width=e.width=r,n.height=e.height=s,n.style.width=r+"px",n.style.height=s+"px",a.retinaScale(e,i.devicePixelRatio),!t)){var u={width:r,height:s};l.notify(e,"resize",[u]),e.options.onResize&&e.options.onResize(e,u),e.stop(),e.update(e.options.responsiveAnimationDuration)}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},i=t.scale;a.each(e.xAxes,function(t,e){t.id=t.id||"x-axis-"+e}),a.each(e.yAxes,function(t,e){t.id=t.id||"y-axis-"+e}),i&&(i.id=i.id||"scale")},buildOrUpdateScales:function(){var i=this,n=i.options,o=i.scales||{},r=[],s=Object.keys(o).reduce(function(t,e){return t[e]=!1,t},{});n.scales&&(r=r.concat((n.scales.xAxes||[]).map(function(t){return{options:t,dtype:"category",dposition:"bottom"}}),(n.scales.yAxes||[]).map(function(t){return{options:t,dtype:"linear",dposition:"left"}}))),n.scale&&r.push({options:n.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),a.each(r,function(n){var r=n.options,l=r.id,u=a.valueOrDefault(r.type,n.dtype);e(r.position)!==e(n.dposition)&&(r.position=n.dposition),s[l]=!0;var d=null;if(l in o&&o[l].type===u)(d=o[l]).options=r,d.ctx=i.ctx,d.chart=i;else{var c=t.scaleService.getScaleConstructor(u);if(!c)return;d=new c({id:l,type:u,options:r,ctx:i.ctx,chart:i}),o[d.id]=d}d.mergeTicksOptions(),n.isDefault&&(i.scale=d)}),a.each(s,function(t,e){t||delete o[e]}),i.scales=o,t.scaleService.addScalesToLayout(this)},buildOrUpdateControllers:function(){var e=this,i=[],n=[];return a.each(e.data.datasets,function(a,o){var r=e.getDatasetMeta(o),s=a.type||e.config.type;if(r.type&&r.type!==s&&(e.destroyDatasetMeta(o),r=e.getDatasetMeta(o)),r.type=s,i.push(r.type),r.controller)r.controller.updateIndex(o),r.controller.linkScales();else{var l=t.controllers[r.type];if(void 0===l)throw new Error('"'+r.type+'" is not a chart type.');r.controller=new l(e,o),n.push(r.controller)}},e),n},resetElements:function(){var t=this;a.each(t.data.datasets,function(e,i){t.getDatasetMeta(i).controller.reset()},t)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(e){var i,n,o=this;if(e&&"object"==typeof e||(e={duration:e,lazy:arguments[1]}),n=(i=o).options,a.each(i.scales,function(t){r.removeBox(i,t)}),n=a.configMerge(t.defaults.global,t.defaults[i.config.type],n),i.options=i.config.options=n,i.ensureScalesHaveIDs(),i.buildOrUpdateScales(),i.tooltip._options=n.tooltips,i.tooltip.initialize(),l._invalidate(o),!1!==l.notify(o,"beforeUpdate")){o.tooltip._data=o.data;var s=o.buildOrUpdateControllers();a.each(o.data.datasets,function(t,e){o.getDatasetMeta(e).controller.buildOrUpdateElements()},o),o.updateLayout(),o.options.animation&&o.options.animation.duration&&a.each(s,function(t){t.reset()}),o.updateDatasets(),o.tooltip.initialize(),o.lastActive=[],l.notify(o,"afterUpdate"),o._bufferedRender?o._bufferedRequest={duration:e.duration,easing:e.easing,lazy:e.lazy}:o.render(e)}},updateLayout:function(){!1!==l.notify(this,"beforeLayout")&&(r.update(this,this.width,this.height),l.notify(this,"afterScaleUpdate"),l.notify(this,"afterLayout"))},updateDatasets:function(){if(!1!==l.notify(this,"beforeDatasetsUpdate")){for(var t=0,e=this.data.datasets.length;t<e;++t)this.updateDataset(t);l.notify(this,"afterDatasetsUpdate")}},updateDataset:function(t){var e=this.getDatasetMeta(t),i={meta:e,index:t};!1!==l.notify(this,"beforeDatasetUpdate",[i])&&(e.controller.update(),l.notify(this,"afterDatasetUpdate",[i]))},render:function(e){var i=this;e&&"object"==typeof e||(e={duration:e,lazy:arguments[1]});var n=e.duration,o=e.lazy;if(!1!==l.notify(i,"beforeRender")){var r=i.options.animation,s=function(t){l.notify(i,"afterRender"),a.callback(r&&r.onComplete,[t],i)};if(r&&(void 0!==n&&0!==n||void 0===n&&0!==r.duration)){var u=new t.Animation({numSteps:(n||r.duration)/16.66,easing:e.easing||r.easing,render:function(t,e){var i=a.easing.effects[e.easing],n=e.currentStep,o=n/e.numSteps;t.draw(i(o),o,n)},onAnimationProgress:r.onProgress,onAnimationComplete:s});t.animationService.addAnimation(i,u,n,o)}else i.draw(),s(new t.Animation({numSteps:0,chart:i}));return i}},draw:function(t){var e=this;e.clear(),a.isNullOrUndef(t)&&(t=1),e.transition(t),!1!==l.notify(e,"beforeDraw",[t])&&(a.each(e.boxes,function(t){t.draw(e.chartArea)},e),e.scale&&e.scale.draw(),e.drawDatasets(t),e._drawTooltip(t),l.notify(e,"afterDraw",[t]))},transition:function(t){for(var e=0,i=(this.data.datasets||[]).length;e<i;++e)this.isDatasetVisible(e)&&this.getDatasetMeta(e).controller.transition(t);this.tooltip.transition(t)},drawDatasets:function(t){var e=this;if(!1!==l.notify(e,"beforeDatasetsDraw",[t])){for(var i=(e.data.datasets||[]).length-1;i>=0;--i)e.isDatasetVisible(i)&&e.drawDataset(i,t);l.notify(e,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var i=this.getDatasetMeta(t),n={meta:i,index:t,easingValue:e};!1!==l.notify(this,"beforeDatasetDraw",[n])&&(i.controller.draw(e),l.notify(this,"afterDatasetDraw",[n]))},_drawTooltip:function(t){var e=this.tooltip,i={tooltip:e,easingValue:t};!1!==l.notify(this,"beforeTooltipDraw",[i])&&(e.draw(),l.notify(this,"afterTooltipDraw",[i]))},getElementAtEvent:function(t){return o.modes.single(this,t)},getElementsAtEvent:function(t){return o.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return o.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,i){var n=o.modes[e];return"function"==typeof n?n(this,t,i):[]},getDatasetAtEvent:function(t){return o.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this.data.datasets[t];e._meta||(e._meta={});var i=e._meta[this.id];return i||(i=e._meta[this.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),i},getVisibleDatasetCount:function(){for(var t=0,e=0,i=this.data.datasets.length;e<i;++e)this.isDatasetVisible(e)&&t++;return t},isDatasetVisible:function(t){var e=this.getDatasetMeta(t);return"boolean"==typeof e.hidden?!e.hidden:!this.data.datasets[t].hidden},generateLegend:function(){return this.options.legendCallback(this)},destroyDatasetMeta:function(t){var e=this.id,i=this.data.datasets[t],n=i._meta&&i._meta[e];n&&(n.controller.destroy(),delete i._meta[e])},destroy:function(){var e,i,n=this,o=n.canvas;for(n.stop(),e=0,i=n.data.datasets.length;e<i;++e)n.destroyDatasetMeta(e);o&&(n.unbindEvents(),a.canvas.clear(n),s.releaseContext(n.ctx),n.canvas=null,n.ctx=null),l.notify(n,"destroy"),delete t.instances[n.id]},toBase64Image:function(){return this.canvas.toDataURL.apply(this.canvas,arguments)},initToolTip:function(){var e=this;e.tooltip=new t.Tooltip({_chart:e,_chartInstance:e,_data:e.data,_options:e.options.tooltips},e)},bindEvents:function(){var t=this,e=t._listeners={},i=function(){t.eventHandler.apply(t,arguments)};a.each(t.options.events,function(n){s.addEventListener(t,n,i),e[n]=i}),t.options.responsive&&(i=function(){t.resize()},s.addEventListener(t,"resize",i),e.resize=i)},unbindEvents:function(){var t=this,e=t._listeners;e&&(delete t._listeners,a.each(e,function(e,i){s.removeEventListener(t,i,e)}))},updateHoverStyle:function(t,e,i){var n,a,o,r=i?"setHoverStyle":"removeHoverStyle";for(a=0,o=t.length;a<o;++a)(n=t[a])&&this.getDatasetMeta(n._datasetIndex).controller[r](n)},eventHandler:function(t){var e=this,i=e.tooltip;if(!1!==l.notify(e,"beforeEvent",[t])){e._bufferedRender=!0,e._bufferedRequest=null;var n=e.handleEvent(t);i&&(n=i._start?i.handleEvent(t):n|i.handleEvent(t)),l.notify(e,"afterEvent",[t]);var a=e._bufferedRequest;return a?e.render(a):n&&!e.animating&&(e.stop(),e.render(e.options.hover.animationDuration,!0)),e._bufferedRender=!1,e._bufferedRequest=null,e}},handleEvent:function(t){var e,i=this,n=i.options||{},o=n.hover;return i.lastActive=i.lastActive||[],"mouseout"===t.type?i.active=[]:i.active=i.getElementsAtEventForMode(t,o.mode,o),a.callback(n.onHover||n.hover.onHover,[t.native,i.active],i),"mouseup"!==t.type&&"click"!==t.type||n.onClick&&n.onClick.call(i,t.native,i.active),i.lastActive.length&&i.updateHoverStyle(i.lastActive,o.mode,!1),i.active.length&&o.mode&&i.updateHoverStyle(i.active,o.mode,!0),e=!a.arrayEquals(i.active,i.lastActive),i.lastActive=i.active,e}}),t.Controller=t}},{25:25,28:28,30:30,31:31,45:45,48:48}],24:[function(t,e,i){"use strict";var n=t(45);e.exports=function(t){var e=["push","pop","shift","splice","unshift"];function i(t,i){var n=t._chartjs;if(n){var a=n.listeners,o=a.indexOf(i);-1!==o&&a.splice(o,1),a.length>0||(e.forEach(function(e){delete t[e]}),delete t._chartjs)}}t.DatasetController=function(t,e){this.initialize(t,e)},n.extend(t.DatasetController.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){this.chart=t,this.index=e,this.linkScales(),this.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),i=t.getDataset();null!==e.xAxisID&&e.xAxisID in t.chart.scales||(e.xAxisID=i.xAxisID||t.chart.options.scales.xAxes[0].id),null!==e.yAxisID&&e.yAxisID in t.chart.scales||(e.yAxisID=i.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},reset:function(){this.update(!0)},destroy:function(){this._data&&i(this._data,this)},createMetaDataset:function(){var t=this.datasetElementType;return t&&new t({_chart:this.chart,_datasetIndex:this.index})},createMetaData:function(t){var e=this.dataElementType;return e&&new e({_chart:this.chart,_datasetIndex:this.index,_index:t})},addElements:function(){var t,e,i=this.getMeta(),n=this.getDataset().data||[],a=i.data;for(t=0,e=n.length;t<e;++t)a[t]=a[t]||this.createMetaData(t);i.dataset=i.dataset||this.createMetaDataset()},addElementAndReset:function(t){var e=this.createMetaData(t);this.getMeta().data.splice(t,0,e),this.updateElement(e,t,!0)},buildOrUpdateElements:function(){var t,a,o=this,r=o.getDataset(),s=r.data||(r.data=[]);o._data!==s&&(o._data&&i(o._data,o),a=o,(t=s)._chartjs?t._chartjs.listeners.push(a):(Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[a]}}),e.forEach(function(e){var i="onData"+e.charAt(0).toUpperCase()+e.slice(1),a=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:function(){var e=Array.prototype.slice.call(arguments),o=a.apply(this,e);return n.each(t._chartjs.listeners,function(t){"function"==typeof t[i]&&t[i].apply(t,e)}),o}})})),o._data=s),o.resyncElements()},update:n.noop,transition:function(t){for(var e=this.getMeta(),i=e.data||[],n=i.length,a=0;a<n;++a)i[a].transition(t);e.dataset&&e.dataset.transition(t)},draw:function(){var t=this.getMeta(),e=t.data||[],i=e.length,n=0;for(t.dataset&&t.dataset.draw();n<i;++n)e[n].draw()},removeHoverStyle:function(t,e){var i=this.chart.data.datasets[t._datasetIndex],a=t._index,o=t.custom||{},r=n.valueAtIndexOrDefault,s=t._model;s.backgroundColor=o.backgroundColor?o.backgroundColor:r(i.backgroundColor,a,e.backgroundColor),s.borderColor=o.borderColor?o.borderColor:r(i.borderColor,a,e.borderColor),s.borderWidth=o.borderWidth?o.borderWidth:r(i.borderWidth,a,e.borderWidth)},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],i=t._index,a=t.custom||{},o=n.valueAtIndexOrDefault,r=n.getHoverColor,s=t._model;s.backgroundColor=a.hoverBackgroundColor?a.hoverBackgroundColor:o(e.hoverBackgroundColor,i,r(s.backgroundColor)),s.borderColor=a.hoverBorderColor?a.hoverBorderColor:o(e.hoverBorderColor,i,r(s.borderColor)),s.borderWidth=a.hoverBorderWidth?a.hoverBorderWidth:o(e.hoverBorderWidth,i,s.borderWidth)},resyncElements:function(){var t=this.getMeta(),e=this.getDataset().data,i=t.data.length,n=e.length;n<i?t.data.splice(n,i-n):n>i&&this.insertElements(i,n-i)},insertElements:function(t,e){for(var i=0;i<e;++i)this.addElementAndReset(t+i)},onDataPush:function(){this.insertElements(this.getDataset().data.length-1,arguments.length)},onDataPop:function(){this.getMeta().data.pop()},onDataShift:function(){this.getMeta().data.shift()},onDataSplice:function(t,e){this.getMeta().data.splice(t,e),this.insertElements(t,arguments.length-2)},onDataUnshift:function(){this.insertElements(0,arguments.length)}}),t.DatasetController.extend=n.inherits}},{45:45}],25:[function(t,e,i){"use strict";var n=t(45);e.exports={_set:function(t,e){return n.merge(this[t]||(this[t]={}),e)}}},{45:45}],26:[function(t,e,i){"use strict";var n=t(3),a=t(45);var o=function(t){a.extend(this,t),this.initialize.apply(this,arguments)};a.extend(o.prototype,{initialize:function(){this.hidden=!1},pivot:function(){var t=this;return t._view||(t._view=a.clone(t._model)),t._start={},t},transition:function(t){var e=this,i=e._model,a=e._start,o=e._view;return i&&1!==t?(o||(o=e._view={}),a||(a=e._start={}),function(t,e,i,a){var o,r,s,l,u,d,c,h,f,g=Object.keys(i);for(o=0,r=g.length;o<r;++o)if(d=i[s=g[o]],e.hasOwnProperty(s)||(e[s]=d),(l=e[s])!==d&&"_"!==s[0]){if(t.hasOwnProperty(s)||(t[s]=l),(c=typeof d)==typeof(u=t[s]))if("string"===c){if((h=n(u)).valid&&(f=n(d)).valid){e[s]=f.mix(h,a).rgbString();continue}}else if("number"===c&&isFinite(u)&&isFinite(d)){e[s]=u+(d-u)*a;continue}e[s]=d}}(a,o,i,t),e):(e._view=i,e._start=null,e)},tooltipPosition:function(){return{x:this._model.x,y:this._model.y}},hasValue:function(){return a.isNumber(this._model.x)&&a.isNumber(this._model.y)}}),o.extend=a.inherits,e.exports=o},{3:3,45:45}],27:[function(t,e,i){"use strict";var n=t(3),a=t(25),o=t(45);e.exports=function(t){function e(t,e,i){var n;return"string"==typeof t?(n=parseInt(t,10),-1!==t.indexOf("%")&&(n=n/100*e.parentNode[i])):n=t,n}function i(t){return null!=t&&"none"!==t}function r(t,n,a){var o=document.defaultView,r=t.parentNode,s=o.getComputedStyle(t)[n],l=o.getComputedStyle(r)[n],u=i(s),d=i(l),c=Number.POSITIVE_INFINITY;return u||d?Math.min(u?e(s,t,a):c,d?e(l,r,a):c):"none"}o.configMerge=function(){return o.merge(o.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(e,i,n,a){var r=i[e]||{},s=n[e];"scales"===e?i[e]=o.scaleMerge(r,s):"scale"===e?i[e]=o.merge(r,[t.scaleService.getScaleDefaults(s.type),s]):o._merger(e,i,n,a)}})},o.scaleMerge=function(){return o.merge(o.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(e,i,n,a){if("xAxes"===e||"yAxes"===e){var r,s,l,u=n[e].length;for(i[e]||(i[e]=[]),r=0;r<u;++r)l=n[e][r],s=o.valueOrDefault(l.type,"xAxes"===e?"category":"linear"),r>=i[e].length&&i[e].push({}),!i[e][r].type||l.type&&l.type!==i[e][r].type?o.merge(i[e][r],[t.scaleService.getScaleDefaults(s),l]):o.merge(i[e][r],l)}else o._merger(e,i,n,a)}})},o.where=function(t,e){if(o.isArray(t)&&Array.prototype.filter)return t.filter(e);var i=[];return o.each(t,function(t){e(t)&&i.push(t)}),i},o.findIndex=Array.prototype.findIndex?function(t,e,i){return t.findIndex(e,i)}:function(t,e,i){i=void 0===i?t:i;for(var n=0,a=t.length;n<a;++n)if(e.call(i,t[n],n,t))return n;return-1},o.findNextWhere=function(t,e,i){o.isNullOrUndef(i)&&(i=-1);for(var n=i+1;n<t.length;n++){var a=t[n];if(e(a))return a}},o.findPreviousWhere=function(t,e,i){o.isNullOrUndef(i)&&(i=t.length);for(var n=i-1;n>=0;n--){var a=t[n];if(e(a))return a}},o.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},o.almostEquals=function(t,e,i){return Math.abs(t-e)<i},o.almostWhole=function(t,e){var i=Math.round(t);return i-e<t&&i+e>t},o.max=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.max(t,e)},Number.NEGATIVE_INFINITY)},o.min=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.min(t,e)},Number.POSITIVE_INFINITY)},o.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return 0===(t=+t)||isNaN(t)?t:t>0?1:-1},o.log10=Math.log10?function(t){return Math.log10(t)}:function(t){var e=Math.log(t)*Math.LOG10E,i=Math.round(e);return t===Math.pow(10,i)?i:e},o.toRadians=function(t){return t*(Math.PI/180)},o.toDegrees=function(t){return t*(180/Math.PI)},o.getAngleFromPoint=function(t,e){var i=e.x-t.x,n=e.y-t.y,a=Math.sqrt(i*i+n*n),o=Math.atan2(n,i);return o<-.5*Math.PI&&(o+=2*Math.PI),{angle:o,distance:a}},o.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},o.aliasPixel=function(t){return t%2==0?0:.5},o.splineCurve=function(t,e,i,n){var a=t.skip?e:t,o=e,r=i.skip?e:i,s=Math.sqrt(Math.pow(o.x-a.x,2)+Math.pow(o.y-a.y,2)),l=Math.sqrt(Math.pow(r.x-o.x,2)+Math.pow(r.y-o.y,2)),u=s/(s+l),d=l/(s+l),c=n*(u=isNaN(u)?0:u),h=n*(d=isNaN(d)?0:d);return{previous:{x:o.x-c*(r.x-a.x),y:o.y-c*(r.y-a.y)},next:{x:o.x+h*(r.x-a.x),y:o.y+h*(r.y-a.y)}}},o.EPSILON=Number.EPSILON||1e-14,o.splineCurveMonotone=function(t){var e,i,n,a,r,s,l,u,d,c=(t||[]).map(function(t){return{model:t._model,deltaK:0,mK:0}}),h=c.length;for(e=0;e<h;++e)if(!(n=c[e]).model.skip){if(i=e>0?c[e-1]:null,(a=e<h-1?c[e+1]:null)&&!a.model.skip){var f=a.model.x-n.model.x;n.deltaK=0!==f?(a.model.y-n.model.y)/f:0}!i||i.model.skip?n.mK=n.deltaK:!a||a.model.skip?n.mK=i.deltaK:this.sign(i.deltaK)!==this.sign(n.deltaK)?n.mK=0:n.mK=(i.deltaK+n.deltaK)/2}for(e=0;e<h-1;++e)n=c[e],a=c[e+1],n.model.skip||a.model.skip||(o.almostEquals(n.deltaK,0,this.EPSILON)?n.mK=a.mK=0:(r=n.mK/n.deltaK,s=a.mK/n.deltaK,(u=Math.pow(r,2)+Math.pow(s,2))<=9||(l=3/Math.sqrt(u),n.mK=r*l*n.deltaK,a.mK=s*l*n.deltaK)));for(e=0;e<h;++e)(n=c[e]).model.skip||(i=e>0?c[e-1]:null,a=e<h-1?c[e+1]:null,i&&!i.model.skip&&(d=(n.model.x-i.model.x)/3,n.model.controlPointPreviousX=n.model.x-d,n.model.controlPointPreviousY=n.model.y-d*n.mK),a&&!a.model.skip&&(d=(a.model.x-n.model.x)/3,n.model.controlPointNextX=n.model.x+d,n.model.controlPointNextY=n.model.y+d*n.mK))},o.nextItem=function(t,e,i){return i?e>=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},o.previousItem=function(t,e,i){return i?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},o.niceNum=function(t,e){var i=Math.floor(o.log10(t)),n=t/Math.pow(10,i);return(e?n<1.5?1:n<3?2:n<7?5:10:n<=1?1:n<=2?2:n<=5?5:10)*Math.pow(10,i)},o.requestAnimFrame="undefined"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},o.getRelativePosition=function(t,e){var i,n,a=t.originalEvent||t,r=t.currentTarget||t.srcElement,s=r.getBoundingClientRect(),l=a.touches;l&&l.length>0?(i=l[0].clientX,n=l[0].clientY):(i=a.clientX,n=a.clientY);var u=parseFloat(o.getStyle(r,"padding-left")),d=parseFloat(o.getStyle(r,"padding-top")),c=parseFloat(o.getStyle(r,"padding-right")),h=parseFloat(o.getStyle(r,"padding-bottom")),f=s.right-s.left-u-c,g=s.bottom-s.top-d-h;return{x:i=Math.round((i-s.left-u)/f*r.width/e.currentDevicePixelRatio),y:n=Math.round((n-s.top-d)/g*r.height/e.currentDevicePixelRatio)}},o.getConstraintWidth=function(t){return r(t,"max-width","clientWidth")},o.getConstraintHeight=function(t){return r(t,"max-height","clientHeight")},o.getMaximumWidth=function(t){var e=t.parentNode;if(!e)return t.clientWidth;var i=parseInt(o.getStyle(e,"padding-left"),10),n=parseInt(o.getStyle(e,"padding-right"),10),a=e.clientWidth-i-n,r=o.getConstraintWidth(t);return isNaN(r)?a:Math.min(a,r)},o.getMaximumHeight=function(t){var e=t.parentNode;if(!e)return t.clientHeight;var i=parseInt(o.getStyle(e,"padding-top"),10),n=parseInt(o.getStyle(e,"padding-bottom"),10),a=e.clientHeight-i-n,r=o.getConstraintHeight(t);return isNaN(r)?a:Math.min(a,r)},o.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},o.retinaScale=function(t,e){var i=t.currentDevicePixelRatio=e||window.devicePixelRatio||1;if(1!==i){var n=t.canvas,a=t.height,o=t.width;n.height=a*i,n.width=o*i,t.ctx.scale(i,i),n.style.height||n.style.width||(n.style.height=a+"px",n.style.width=o+"px")}},o.fontString=function(t,e,i){return e+" "+t+"px "+i},o.longestText=function(t,e,i,n){var a=(n=n||{}).data=n.data||{},r=n.garbageCollect=n.garbageCollect||[];n.font!==e&&(a=n.data={},r=n.garbageCollect=[],n.font=e),t.font=e;var s=0;o.each(i,function(e){null!=e&&!0!==o.isArray(e)?s=o.measureText(t,a,r,s,e):o.isArray(e)&&o.each(e,function(e){null==e||o.isArray(e)||(s=o.measureText(t,a,r,s,e))})});var l=r.length/2;if(l>i.length){for(var u=0;u<l;u++)delete a[r[u]];r.splice(0,l)}return s},o.measureText=function(t,e,i,n,a){var o=e[a];return o||(o=e[a]=t.measureText(a).width,i.push(a)),o>n&&(n=o),n},o.numberOfLabelLines=function(t){var e=1;return o.each(t,function(t){o.isArray(t)&&t.length>e&&(e=t.length)}),e},o.color=n?function(t){return t instanceof CanvasGradient&&(t=a.global.defaultColor),n(t)}:function(t){return console.error("Color.js not found!"),t},o.getHoverColor=function(t){return t instanceof CanvasPattern?t:o.color(t).saturate(.5).darken(.1).rgbString()}}},{25:25,3:3,45:45}],28:[function(t,e,i){"use strict";var n=t(45);function a(t,e){return t.native?{x:t.x,y:t.y}:n.getRelativePosition(t,e)}function o(t,e){var i,n,a,o,r;for(n=0,o=t.data.datasets.length;n<o;++n)if(t.isDatasetVisible(n))for(a=0,r=(i=t.getDatasetMeta(n)).data.length;a<r;++a){var s=i.data[a];s._view.skip||e(s)}}function r(t,e){var i=[];return o(t,function(t){t.inRange(e.x,e.y)&&i.push(t)}),i}function s(t,e,i,n){var a=Number.POSITIVE_INFINITY,r=[];return o(t,function(t){if(!i||t.inRange(e.x,e.y)){var o=t.getCenterPoint(),s=n(e,o);s<a?(r=[t],a=s):s===a&&r.push(t)}}),r}function l(t){var e=-1!==t.indexOf("x"),i=-1!==t.indexOf("y");return function(t,n){var a=e?Math.abs(t.x-n.x):0,o=i?Math.abs(t.y-n.y):0;return Math.sqrt(Math.pow(a,2)+Math.pow(o,2))}}function u(t,e,i){var n=a(e,t);i.axis=i.axis||"x";var o=l(i.axis),u=i.intersect?r(t,n):s(t,n,!1,o),d=[];return u.length?(t.data.datasets.forEach(function(e,i){if(t.isDatasetVisible(i)){var n=t.getDatasetMeta(i).data[u[0]._index];n&&!n._view.skip&&d.push(n)}}),d):[]}e.exports={modes:{single:function(t,e){var i=a(e,t),n=[];return o(t,function(t){if(t.inRange(i.x,i.y))return n.push(t),n}),n.slice(0,1)},label:u,index:u,dataset:function(t,e,i){var n=a(e,t);i.axis=i.axis||"xy";var o=l(i.axis),u=i.intersect?r(t,n):s(t,n,!1,o);return u.length>0&&(u=t.getDatasetMeta(u[0]._datasetIndex).data),u},"x-axis":function(t,e){return u(t,e,{intersect:!1})},point:function(t,e){return r(t,a(e,t))},nearest:function(t,e,i){var n=a(e,t);i.axis=i.axis||"xy";var o=l(i.axis),r=s(t,n,i.intersect,o);return r.length>1&&r.sort(function(t,e){var i=t.getArea()-e.getArea();return 0===i&&(i=t._datasetIndex-e._datasetIndex),i}),r.slice(0,1)},x:function(t,e,i){var n=a(e,t),r=[],s=!1;return o(t,function(t){t.inXRange(n.x)&&r.push(t),t.inRange(n.x,n.y)&&(s=!0)}),i.intersect&&!s&&(r=[]),r},y:function(t,e,i){var n=a(e,t),r=[],s=!1;return o(t,function(t){t.inYRange(n.y)&&r.push(t),t.inRange(n.x,n.y)&&(s=!0)}),i.intersect&&!s&&(r=[]),r}}}},{45:45}],29:[function(t,e,i){"use strict";t(25)._set("global",{responsive:!0,responsiveAnimationDuration:0,maintainAspectRatio:!0,events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",showLines:!0,elements:{},layout:{padding:{top:0,right:0,bottom:0,left:0}}}),e.exports=function(){var t=function(t,e){return this.construct(t,e),this};return t.Chart=t,t}},{25:25}],30:[function(t,e,i){"use strict";var n=t(45);function a(t,e){return n.where(t,function(t){return t.position===e})}function o(t,e){t.forEach(function(t,e){return t._tmpIndex_=e,t}),t.sort(function(t,i){var n=e?i:t,a=e?t:i;return n.weight===a.weight?n._tmpIndex_-a._tmpIndex_:n.weight-a.weight}),t.forEach(function(t){delete t._tmpIndex_})}e.exports={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),e.fullWidth=e.fullWidth||!1,e.position=e.position||"top",e.weight=e.weight||0,t.boxes.push(e)},removeBox:function(t,e){var i=t.boxes?t.boxes.indexOf(e):-1;-1!==i&&t.boxes.splice(i,1)},configure:function(t,e,i){for(var n,a=["fullWidth","position","weight"],o=a.length,r=0;r<o;++r)n=a[r],i.hasOwnProperty(n)&&(e[n]=i[n])},update:function(t,e,i){if(t){var r=t.options.layout||{},s=n.options.toPadding(r.padding),l=s.left,u=s.right,d=s.top,c=s.bottom,h=a(t.boxes,"left"),f=a(t.boxes,"right"),g=a(t.boxes,"top"),p=a(t.boxes,"bottom"),m=a(t.boxes,"chartArea");o(h,!0),o(f,!1),o(g,!0),o(p,!1);var v=e-l-u,b=i-d-c,x=b/2,y=(e-v/2)/(h.length+f.length),k=(i-x)/(g.length+p.length),M=v,w=b,S=[];n.each(h.concat(f,g,p),function(t){var e,i=t.isHorizontal();i?(e=t.update(t.fullWidth?v:M,k),w-=e.height):(e=t.update(y,w),M-=e.width),S.push({horizontal:i,minSize:e,box:t})});var C=0,_=0,D=0,I=0;n.each(g.concat(p),function(t){if(t.getPadding){var e=t.getPadding();C=Math.max(C,e.left),_=Math.max(_,e.right)}}),n.each(h.concat(f),function(t){if(t.getPadding){var e=t.getPadding();D=Math.max(D,e.top),I=Math.max(I,e.bottom)}});var P=l,A=u,T=d,F=c;n.each(h.concat(f),N),n.each(h,function(t){P+=t.width}),n.each(f,function(t){A+=t.width}),n.each(g.concat(p),N),n.each(g,function(t){T+=t.height}),n.each(p,function(t){F+=t.height}),n.each(h.concat(f),function(t){var e=n.findNextWhere(S,function(e){return e.box===t}),i={left:0,right:0,top:T,bottom:F};e&&t.update(e.minSize.width,w,i)}),P=l,A=u,T=d,F=c,n.each(h,function(t){P+=t.width}),n.each(f,function(t){A+=t.width}),n.each(g,function(t){T+=t.height}),n.each(p,function(t){F+=t.height});var O=Math.max(C-P,0);P+=O,A+=Math.max(_-A,0);var R=Math.max(D-T,0);T+=R,F+=Math.max(I-F,0);var L=i-T-F,z=e-P-A;z===M&&L===w||(n.each(h,function(t){t.height=L}),n.each(f,function(t){t.height=L}),n.each(g,function(t){t.fullWidth||(t.width=z)}),n.each(p,function(t){t.fullWidth||(t.width=z)}),w=L,M=z);var B=l+O,W=d+R;n.each(h.concat(g),V),B+=M,W+=w,n.each(f,V),n.each(p,V),t.chartArea={left:P,top:T,right:P+M,bottom:T+w},n.each(m,function(e){e.left=t.chartArea.left,e.top=t.chartArea.top,e.right=t.chartArea.right,e.bottom=t.chartArea.bottom,e.update(M,w)})}function N(t){var e=n.findNextWhere(S,function(e){return e.box===t});if(e)if(t.isHorizontal()){var i={left:Math.max(P,C),right:Math.max(A,_),top:0,bottom:0};t.update(t.fullWidth?v:M,b/2,i)}else t.update(e.minSize.width,w)}function V(t){t.isHorizontal()?(t.left=t.fullWidth?l:P,t.right=t.fullWidth?e-u:P+M,t.top=W,t.bottom=W+t.height,W=t.bottom):(t.left=B,t.right=B+t.width,t.top=T,t.bottom=T+w,B=t.right)}}}},{45:45}],31:[function(t,e,i){"use strict";var n=t(25),a=t(45);n._set("global",{plugins:{}}),e.exports={_plugins:[],_cacheId:0,register:function(t){var e=this._plugins;[].concat(t).forEach(function(t){-1===e.indexOf(t)&&e.push(t)}),this._cacheId++},unregister:function(t){var e=this._plugins;[].concat(t).forEach(function(t){var i=e.indexOf(t);-1!==i&&e.splice(i,1)}),this._cacheId++},clear:function(){this._plugins=[],this._cacheId++},count:function(){return this._plugins.length},getAll:function(){return this._plugins},notify:function(t,e,i){var n,a,o,r,s,l=this.descriptors(t),u=l.length;for(n=0;n<u;++n)if("function"==typeof(s=(o=(a=l[n]).plugin)[e])&&((r=[t].concat(i||[])).push(a.options),!1===s.apply(o,r)))return!1;return!0},descriptors:function(t){var e=t.$plugins||(t.$plugins={});if(e.id===this._cacheId)return e.descriptors;var i=[],o=[],r=t&&t.config||{},s=r.options&&r.options.plugins||{};return this._plugins.concat(r.plugins||[]).forEach(function(t){if(-1===i.indexOf(t)){var e=t.id,r=s[e];!1!==r&&(!0===r&&(r=a.clone(n.global.plugins[e])),i.push(t),o.push({plugin:t,options:r||{}}))}}),e.descriptors=o,e.id=this._cacheId,o},_invalidate:function(t){delete t.$plugins}}},{25:25,45:45}],32:[function(t,e,i){"use strict";var n=t(25),a=t(26),o=t(45),r=t(34);function s(t){var e,i,n=[];for(e=0,i=t.length;e<i;++e)n.push(t[e].label);return n}function l(t,e,i){var n=t.getPixelForTick(e);return i&&(n-=0===e?(t.getPixelForTick(1)-n)/2:(n-t.getPixelForTick(e-1))/2),n}n._set("scale",{display:!0,position:"left",offset:!1,gridLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickMarkLength:10,zeroLineWidth:1,zeroLineColor:"rgba(0,0,0,0.25)",zeroLineBorderDash:[],zeroLineBorderDashOffset:0,offsetGridLines:!1,borderDash:[],borderDashOffset:0},scaleLabel:{display:!1,labelString:"",lineHeight:1.2,padding:{top:4,bottom:4}},ticks:{beginAtZero:!1,minRotation:0,maxRotation:50,mirror:!1,padding:0,reverse:!1,display:!0,autoSkip:!0,autoSkipPadding:0,labelOffset:0,callback:r.formatters.values,minor:{},major:{}}}),e.exports=function(t){function e(t,e,i){return o.isArray(e)?o.longestText(t,i,e):t.measureText(e).width}function i(t){var e=o.valueOrDefault,i=n.global,a=e(t.fontSize,i.defaultFontSize),r=e(t.fontStyle,i.defaultFontStyle),s=e(t.fontFamily,i.defaultFontFamily);return{size:a,style:r,family:s,font:o.fontString(a,r,s)}}function r(t){return o.options.toLineHeight(o.valueOrDefault(t.lineHeight,1.2),o.valueOrDefault(t.fontSize,n.global.defaultFontSize))}t.Scale=a.extend({getPadding:function(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}},getTicks:function(){return this._ticks},mergeTicksOptions:function(){var t=this.options.ticks;for(var e in!1===t.minor&&(t.minor={display:!1}),!1===t.major&&(t.major={display:!1}),t)"major"!==e&&"minor"!==e&&(void 0===t.minor[e]&&(t.minor[e]=t[e]),void 0===t.major[e]&&(t.major[e]=t[e]))},beforeUpdate:function(){o.callback(this.options.beforeUpdate,[this])},update:function(t,e,i){var n,a,r,s,l,u,d=this;for(d.beforeUpdate(),d.maxWidth=t,d.maxHeight=e,d.margins=o.extend({left:0,right:0,top:0,bottom:0},i),d.longestTextCache=d.longestTextCache||{},d.beforeSetDimensions(),d.setDimensions(),d.afterSetDimensions(),d.beforeDataLimits(),d.determineDataLimits(),d.afterDataLimits(),d.beforeBuildTicks(),l=d.buildTicks()||[],d.afterBuildTicks(),d.beforeTickToLabelConversion(),r=d.convertTicksToLabels(l)||d.ticks,d.afterTickToLabelConversion(),d.ticks=r,n=0,a=r.length;n<a;++n)s=r[n],(u=l[n])?u.label=s:l.push(u={label:s,major:!1});return d._ticks=l,d.beforeCalculateTickRotation(),d.calculateTickRotation(),d.afterCalculateTickRotation(),d.beforeFit(),d.fit(),d.afterFit(),d.afterUpdate(),d.minSize},afterUpdate:function(){o.callback(this.options.afterUpdate,[this])},beforeSetDimensions:function(){o.callback(this.options.beforeSetDimensions,[this])},setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0},afterSetDimensions:function(){o.callback(this.options.afterSetDimensions,[this])},beforeDataLimits:function(){o.callback(this.options.beforeDataLimits,[this])},determineDataLimits:o.noop,afterDataLimits:function(){o.callback(this.options.afterDataLimits,[this])},beforeBuildTicks:function(){o.callback(this.options.beforeBuildTicks,[this])},buildTicks:o.noop,afterBuildTicks:function(){o.callback(this.options.afterBuildTicks,[this])},beforeTickToLabelConversion:function(){o.callback(this.options.beforeTickToLabelConversion,[this])},convertTicksToLabels:function(){var t=this.options.ticks;this.ticks=this.ticks.map(t.userCallback||t.callback,this)},afterTickToLabelConversion:function(){o.callback(this.options.afterTickToLabelConversion,[this])},beforeCalculateTickRotation:function(){o.callback(this.options.beforeCalculateTickRotation,[this])},calculateTickRotation:function(){var t=this,e=t.ctx,n=t.options.ticks,a=s(t._ticks),r=i(n);e.font=r.font;var l=n.minRotation||0;if(a.length&&t.options.display&&t.isHorizontal())for(var u,d=o.longestText(e,r.font,a,t.longestTextCache),c=d,h=t.getPixelForTick(1)-t.getPixelForTick(0)-6;c>h&&l<n.maxRotation;){var f=o.toRadians(l);if(u=Math.cos(f),Math.sin(f)*d>t.maxHeight){l--;break}l++,c=u*d}t.labelRotation=l},afterCalculateTickRotation:function(){o.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){o.callback(this.options.beforeFit,[this])},fit:function(){var t=this,n=t.minSize={width:0,height:0},a=s(t._ticks),l=t.options,u=l.ticks,d=l.scaleLabel,c=l.gridLines,h=l.display,f=t.isHorizontal(),g=i(u),p=l.gridLines.tickMarkLength;if(n.width=f?t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:h&&c.drawTicks?p:0,n.height=f?h&&c.drawTicks?p:0:t.maxHeight,d.display&&h){var m=r(d)+o.options.toPadding(d.padding).height;f?n.height+=m:n.width+=m}if(u.display&&h){var v=o.longestText(t.ctx,g.font,a,t.longestTextCache),b=o.numberOfLabelLines(a),x=.5*g.size,y=t.options.ticks.padding;if(f){t.longestLabelWidth=v;var k=o.toRadians(t.labelRotation),M=Math.cos(k),w=Math.sin(k)*v+g.size*b+x*(b-1)+x;n.height=Math.min(t.maxHeight,n.height+w+y),t.ctx.font=g.font;var S=e(t.ctx,a[0],g.font),C=e(t.ctx,a[a.length-1],g.font);0!==t.labelRotation?(t.paddingLeft="bottom"===l.position?M*S+3:M*x+3,t.paddingRight="bottom"===l.position?M*x+3:M*C+3):(t.paddingLeft=S/2+3,t.paddingRight=C/2+3)}else u.mirror?v=0:v+=y+x,n.width=Math.min(t.maxWidth,n.width+v),t.paddingTop=g.size/2,t.paddingBottom=g.size/2}t.handleMargins(),t.width=n.width,t.height=n.height},handleMargins:function(){var t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left,0),t.paddingTop=Math.max(t.paddingTop-t.margins.top,0),t.paddingRight=Math.max(t.paddingRight-t.margins.right,0),t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom,0))},afterFit:function(){o.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(o.isNullOrUndef(t))return NaN;if("number"==typeof t&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},getLabelForIndex:o.noop,getPixelForValue:o.noop,getValueForPixel:o.noop,getPixelForTick:function(t){var e=this,i=e.options.offset;if(e.isHorizontal()){var n=(e.width-(e.paddingLeft+e.paddingRight))/Math.max(e._ticks.length-(i?0:1),1),a=n*t+e.paddingLeft;i&&(a+=n/2);var o=e.left+Math.round(a);return o+=e.isFullWidth()?e.margins.left:0}var r=e.height-(e.paddingTop+e.paddingBottom);return e.top+t*(r/(e._ticks.length-1))},getPixelForDecimal:function(t){var e=this;if(e.isHorizontal()){var i=(e.width-(e.paddingLeft+e.paddingRight))*t+e.paddingLeft,n=e.left+Math.round(i);return n+=e.isFullWidth()?e.margins.left:0}return e.top+t*e.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this.min,e=this.max;return this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0},_autoSkip:function(t){var e,i,n,a,r=this,s=r.isHorizontal(),l=r.options.ticks.minor,u=t.length,d=o.toRadians(r.labelRotation),c=Math.cos(d),h=r.longestLabelWidth*c,f=[];for(l.maxTicksLimit&&(a=l.maxTicksLimit),s&&(e=!1,(h+l.autoSkipPadding)*u>r.width-(r.paddingLeft+r.paddingRight)&&(e=1+Math.floor((h+l.autoSkipPadding)*u/(r.width-(r.paddingLeft+r.paddingRight)))),a&&u>a&&(e=Math.max(e,Math.floor(u/a)))),i=0;i<u;i++)n=t[i],(e>1&&i%e>0||i%e==0&&i+e>=u)&&i!==u-1&&delete n.label,f.push(n);return f},draw:function(t){var e=this,a=e.options;if(a.display){var s=e.ctx,u=n.global,d=a.ticks.minor,c=a.ticks.major||d,h=a.gridLines,f=a.scaleLabel,g=0!==e.labelRotation,p=e.isHorizontal(),m=d.autoSkip?e._autoSkip(e.getTicks()):e.getTicks(),v=o.valueOrDefault(d.fontColor,u.defaultFontColor),b=i(d),x=o.valueOrDefault(c.fontColor,u.defaultFontColor),y=i(c),k=h.drawTicks?h.tickMarkLength:0,M=o.valueOrDefault(f.fontColor,u.defaultFontColor),w=i(f),S=o.options.toPadding(f.padding),C=o.toRadians(e.labelRotation),_=[],D=e.options.gridLines.lineWidth,I="right"===a.position?e.right:e.right-D-k,P="right"===a.position?e.right+k:e.right,A="bottom"===a.position?e.top+D:e.bottom-k-D,T="bottom"===a.position?e.top+D+k:e.bottom+D;if(o.each(m,function(i,n){if(!o.isNullOrUndef(i.label)){var r,s,c,f,v,b,x,y,M,w,S,F,O,R,L=i.label;n===e.zeroLineIndex&&a.offset===h.offsetGridLines?(r=h.zeroLineWidth,s=h.zeroLineColor,c=h.zeroLineBorderDash,f=h.zeroLineBorderDashOffset):(r=o.valueAtIndexOrDefault(h.lineWidth,n),s=o.valueAtIndexOrDefault(h.color,n),c=o.valueOrDefault(h.borderDash,u.borderDash),f=o.valueOrDefault(h.borderDashOffset,u.borderDashOffset));var z="middle",B="middle",W=d.padding;if(p){var N=k+W;"bottom"===a.position?(B=g?"middle":"top",z=g?"right":"center",R=e.top+N):(B=g?"middle":"bottom",z=g?"left":"center",R=e.bottom-N);var V=l(e,n,h.offsetGridLines&&m.length>1);V<e.left&&(s="rgba(0,0,0,0)"),V+=o.aliasPixel(r),O=e.getPixelForTick(n)+d.labelOffset,v=x=M=S=V,b=A,y=T,w=t.top,F=t.bottom+D}else{var E,H="left"===a.position;d.mirror?(z=H?"left":"right",E=W):(z=H?"right":"left",E=k+W),O=H?e.right-E:e.left+E;var j=l(e,n,h.offsetGridLines&&m.length>1);j<e.top&&(s="rgba(0,0,0,0)"),j+=o.aliasPixel(r),R=e.getPixelForTick(n)+d.labelOffset,v=I,x=P,M=t.left,S=t.right+D,b=y=w=F=j}_.push({tx1:v,ty1:b,tx2:x,ty2:y,x1:M,y1:w,x2:S,y2:F,labelX:O,labelY:R,glWidth:r,glColor:s,glBorderDash:c,glBorderDashOffset:f,rotation:-1*C,label:L,major:i.major,textBaseline:B,textAlign:z})}}),o.each(_,function(t){if(h.display&&(s.save(),s.lineWidth=t.glWidth,s.strokeStyle=t.glColor,s.setLineDash&&(s.setLineDash(t.glBorderDash),s.lineDashOffset=t.glBorderDashOffset),s.beginPath(),h.drawTicks&&(s.moveTo(t.tx1,t.ty1),s.lineTo(t.tx2,t.ty2)),h.drawOnChartArea&&(s.moveTo(t.x1,t.y1),s.lineTo(t.x2,t.y2)),s.stroke(),s.restore()),d.display){s.save(),s.translate(t.labelX,t.labelY),s.rotate(t.rotation),s.font=t.major?y.font:b.font,s.fillStyle=t.major?x:v,s.textBaseline=t.textBaseline,s.textAlign=t.textAlign;var i=t.label;if(o.isArray(i))for(var n=i.length,a=1.5*b.size,r=e.isHorizontal()?0:-a*(n-1)/2,l=0;l<n;++l)s.fillText(""+i[l],0,r),r+=a;else s.fillText(i,0,0);s.restore()}}),f.display){var F,O,R=0,L=r(f)/2;if(p)F=e.left+(e.right-e.left)/2,O="bottom"===a.position?e.bottom-L-S.bottom:e.top+L+S.top;else{var z="left"===a.position;F=z?e.left+L+S.top:e.right-L-S.top,O=e.top+(e.bottom-e.top)/2,R=z?-.5*Math.PI:.5*Math.PI}s.save(),s.translate(F,O),s.rotate(R),s.textAlign="center",s.textBaseline="middle",s.fillStyle=M,s.font=w.font,s.fillText(f.labelString,0,0),s.restore()}if(h.drawBorder){s.lineWidth=o.valueAtIndexOrDefault(h.lineWidth,0),s.strokeStyle=o.valueAtIndexOrDefault(h.color,0);var B=e.left,W=e.right+D,N=e.top,V=e.bottom+D,E=o.aliasPixel(s.lineWidth);p?(N=V="top"===a.position?e.bottom:e.top,N+=E,V+=E):(B=W="left"===a.position?e.right:e.left,B+=E,W+=E),s.beginPath(),s.moveTo(B,N),s.lineTo(W,V),s.stroke()}}}})}},{25:25,26:26,34:34,45:45}],33:[function(t,e,i){"use strict";var n=t(25),a=t(45),o=t(30);e.exports=function(t){t.scaleService={constructors:{},defaults:{},registerScaleType:function(t,e,i){this.constructors[t]=e,this.defaults[t]=a.clone(i)},getScaleConstructor:function(t){return this.constructors.hasOwnProperty(t)?this.constructors[t]:void 0},getScaleDefaults:function(t){return this.defaults.hasOwnProperty(t)?a.merge({},[n.scale,this.defaults[t]]):{}},updateScaleDefaults:function(t,e){this.defaults.hasOwnProperty(t)&&(this.defaults[t]=a.extend(this.defaults[t],e))},addScalesToLayout:function(t){a.each(t.scales,function(e){e.fullWidth=e.options.fullWidth,e.position=e.options.position,e.weight=e.options.weight,o.addBox(t,e)})}}}},{25:25,30:30,45:45}],34:[function(t,e,i){"use strict";var n=t(45);e.exports={formatters:{values:function(t){return n.isArray(t)?t:""+t},linear:function(t,e,i){var a=i.length>3?i[2]-i[1]:i[1]-i[0];Math.abs(a)>1&&t!==Math.floor(t)&&(a=t-Math.floor(t));var o=n.log10(Math.abs(a)),r="";if(0!==t){var s=-1*Math.floor(o);s=Math.max(Math.min(s,20),0),r=t.toFixed(s)}else r="0";return r},logarithmic:function(t,e,i){var a=t/Math.pow(10,Math.floor(n.log10(t)));return 0===t?"0":1===a||2===a||5===a||0===e||e===i.length-1?t.toExponential():""}}}},{45:45}],35:[function(t,e,i){"use strict";var n=t(25),a=t(26),o=t(45);n._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:o.noop,title:function(t,e){var i="",n=e.labels,a=n?n.length:0;if(t.length>0){var o=t[0];o.xLabel?i=o.xLabel:a>0&&o.index<a&&(i=n[o.index])}return i},afterTitle:o.noop,beforeBody:o.noop,beforeLabel:o.noop,label:function(t,e){var i=e.datasets[t.datasetIndex].label||"";return i&&(i+=": "),i+=t.yLabel},labelColor:function(t,e){var i=e.getDatasetMeta(t.datasetIndex).data[t.index]._view;return{borderColor:i.borderColor,backgroundColor:i.backgroundColor}},labelTextColor:function(){return this._options.bodyFontColor},afterLabel:o.noop,afterBody:o.noop,beforeFooter:o.noop,footer:o.noop,afterFooter:o.noop}}}),e.exports=function(t){function e(t,e){var i=o.color(t);return i.alpha(e*i.alpha()).rgbaString()}function i(t,e){return e&&(o.isArray(e)?Array.prototype.push.apply(t,e):t.push(e)),t}function r(t){var e=n.global,i=o.valueOrDefault;return{xPadding:t.xPadding,yPadding:t.yPadding,xAlign:t.xAlign,yAlign:t.yAlign,bodyFontColor:t.bodyFontColor,_bodyFontFamily:i(t.bodyFontFamily,e.defaultFontFamily),_bodyFontStyle:i(t.bodyFontStyle,e.defaultFontStyle),_bodyAlign:t.bodyAlign,bodyFontSize:i(t.bodyFontSize,e.defaultFontSize),bodySpacing:t.bodySpacing,titleFontColor:t.titleFontColor,_titleFontFamily:i(t.titleFontFamily,e.defaultFontFamily),_titleFontStyle:i(t.titleFontStyle,e.defaultFontStyle),titleFontSize:i(t.titleFontSize,e.defaultFontSize),_titleAlign:t.titleAlign,titleSpacing:t.titleSpacing,titleMarginBottom:t.titleMarginBottom,footerFontColor:t.footerFontColor,_footerFontFamily:i(t.footerFontFamily,e.defaultFontFamily),_footerFontStyle:i(t.footerFontStyle,e.defaultFontStyle),footerFontSize:i(t.footerFontSize,e.defaultFontSize),_footerAlign:t.footerAlign,footerSpacing:t.footerSpacing,footerMarginTop:t.footerMarginTop,caretSize:t.caretSize,cornerRadius:t.cornerRadius,backgroundColor:t.backgroundColor,opacity:0,legendColorBackground:t.multiKeyBackground,displayColors:t.displayColors,borderColor:t.borderColor,borderWidth:t.borderWidth}}t.Tooltip=a.extend({initialize:function(){this._model=r(this._options),this._lastActive=[]},getTitle:function(){var t=this._options.callbacks,e=t.beforeTitle.apply(this,arguments),n=t.title.apply(this,arguments),a=t.afterTitle.apply(this,arguments),o=[];return o=i(o=i(o=i(o,e),n),a)},getBeforeBody:function(){var t=this._options.callbacks.beforeBody.apply(this,arguments);return o.isArray(t)?t:void 0!==t?[t]:[]},getBody:function(t,e){var n=this,a=n._options.callbacks,r=[];return o.each(t,function(t){var o={before:[],lines:[],after:[]};i(o.before,a.beforeLabel.call(n,t,e)),i(o.lines,a.label.call(n,t,e)),i(o.after,a.afterLabel.call(n,t,e)),r.push(o)}),r},getAfterBody:function(){var t=this._options.callbacks.afterBody.apply(this,arguments);return o.isArray(t)?t:void 0!==t?[t]:[]},getFooter:function(){var t=this._options.callbacks,e=t.beforeFooter.apply(this,arguments),n=t.footer.apply(this,arguments),a=t.afterFooter.apply(this,arguments),o=[];return o=i(o=i(o=i(o,e),n),a)},update:function(e){var i,n,a,s,l,u,d,c,h,f,g,p,m,v,b,x,y,k,M,w,S=this,C=S._options,_=S._model,D=S._model=r(C),I=S._active,P=S._data,A={xAlign:_.xAlign,yAlign:_.yAlign},T={x:_.x,y:_.y},F={width:_.width,height:_.height},O={x:_.caretX,y:_.caretY};if(I.length){D.opacity=1;var R=[],L=[];O=t.Tooltip.positioners[C.position].call(S,I,S._eventPosition);var z=[];for(i=0,n=I.length;i<n;++i)z.push((x=I[i],y=void 0,k=void 0,void 0,void 0,y=x._xScale,k=x._yScale||x._scale,M=x._index,w=x._datasetIndex,{xLabel:y?y.getLabelForIndex(M,w):"",yLabel:k?k.getLabelForIndex(M,w):"",index:M,datasetIndex:w,x:x._model.x,y:x._model.y}));C.filter&&(z=z.filter(function(t){return C.filter(t,P)})),C.itemSort&&(z=z.sort(function(t,e){return C.itemSort(t,e,P)})),o.each(z,function(t){R.push(C.callbacks.labelColor.call(S,t,S._chart)),L.push(C.callbacks.labelTextColor.call(S,t,S._chart))}),D.title=S.getTitle(z,P),D.beforeBody=S.getBeforeBody(z,P),D.body=S.getBody(z,P),D.afterBody=S.getAfterBody(z,P),D.footer=S.getFooter(z,P),D.x=Math.round(O.x),D.y=Math.round(O.y),D.caretPadding=C.caretPadding,D.labelColors=R,D.labelTextColors=L,D.dataPoints=z,A=function(t,e){var i,n,a,o,r,s=t._model,l=t._chart,u=t._chart.chartArea,d="center",c="center";s.y<e.height?c="top":s.y>l.height-e.height&&(c="bottom");var h=(u.left+u.right)/2,f=(u.top+u.bottom)/2;"center"===c?(i=function(t){return t<=h},n=function(t){return t>h}):(i=function(t){return t<=e.width/2},n=function(t){return t>=l.width-e.width/2}),a=function(t){return t+e.width+s.caretSize+s.caretPadding>l.width},o=function(t){return t-e.width-s.caretSize-s.caretPadding<0},r=function(t){return t<=f?"top":"bottom"},i(s.x)?(d="left",a(s.x)&&(d="center",c=r(s.y))):n(s.x)&&(d="right",o(s.x)&&(d="center",c=r(s.y)));var g=t._options;return{xAlign:g.xAlign?g.xAlign:d,yAlign:g.yAlign?g.yAlign:c}}(this,F=function(t,e){var i=t._chart.ctx,n=2*e.yPadding,a=0,r=e.body,s=r.reduce(function(t,e){return t+e.before.length+e.lines.length+e.after.length},0);s+=e.beforeBody.length+e.afterBody.length;var l=e.title.length,u=e.footer.length,d=e.titleFontSize,c=e.bodyFontSize,h=e.footerFontSize;n+=l*d,n+=l?(l-1)*e.titleSpacing:0,n+=l?e.titleMarginBottom:0,n+=s*c,n+=s?(s-1)*e.bodySpacing:0,n+=u?e.footerMarginTop:0,n+=u*h,n+=u?(u-1)*e.footerSpacing:0;var f=0,g=function(t){a=Math.max(a,i.measureText(t).width+f)};return i.font=o.fontString(d,e._titleFontStyle,e._titleFontFamily),o.each(e.title,g),i.font=o.fontString(c,e._bodyFontStyle,e._bodyFontFamily),o.each(e.beforeBody.concat(e.afterBody),g),f=e.displayColors?c+2:0,o.each(r,function(t){o.each(t.before,g),o.each(t.lines,g),o.each(t.after,g)}),f=0,i.font=o.fontString(h,e._footerFontStyle,e._footerFontFamily),o.each(e.footer,g),{width:a+=2*e.xPadding,height:n}}(this,D)),a=D,s=F,l=A,u=S._chart,d=a.x,c=a.y,h=a.caretSize,f=a.caretPadding,g=a.cornerRadius,p=l.xAlign,m=l.yAlign,v=h+f,b=g+f,"right"===p?d-=s.width:"center"===p&&((d-=s.width/2)+s.width>u.width&&(d=u.width-s.width),d<0&&(d=0)),"top"===m?c+=v:c-="bottom"===m?s.height+v:s.height/2,"center"===m?"left"===p?d+=v:"right"===p&&(d-=v):"left"===p?d-=b:"right"===p&&(d+=b),T={x:d,y:c}}else D.opacity=0;return D.xAlign=A.xAlign,D.yAlign=A.yAlign,D.x=T.x,D.y=T.y,D.width=F.width,D.height=F.height,D.caretX=O.x,D.caretY=O.y,S._model=D,e&&C.custom&&C.custom.call(S,D),S},drawCaret:function(t,e){var i=this._chart.ctx,n=this._view,a=this.getCaretPosition(t,e,n);i.lineTo(a.x1,a.y1),i.lineTo(a.x2,a.y2),i.lineTo(a.x3,a.y3)},getCaretPosition:function(t,e,i){var n,a,o,r,s,l,u=i.caretSize,d=i.cornerRadius,c=i.xAlign,h=i.yAlign,f=t.x,g=t.y,p=e.width,m=e.height;if("center"===h)s=g+m/2,"left"===c?(a=(n=f)-u,o=n,r=s+u,l=s-u):(a=(n=f+p)+u,o=n,r=s-u,l=s+u);else if("left"===c?(n=(a=f+d+u)-u,o=a+u):"right"===c?(n=(a=f+p-d-u)-u,o=a+u):(n=(a=i.caretX)-u,o=a+u),"top"===h)s=(r=g)-u,l=r;else{s=(r=g+m)+u,l=r;var v=o;o=n,n=v}return{x1:n,x2:a,x3:o,y1:r,y2:s,y3:l}},drawTitle:function(t,i,n,a){var r=i.title;if(r.length){n.textAlign=i._titleAlign,n.textBaseline="top";var s,l,u=i.titleFontSize,d=i.titleSpacing;for(n.fillStyle=e(i.titleFontColor,a),n.font=o.fontString(u,i._titleFontStyle,i._titleFontFamily),s=0,l=r.length;s<l;++s)n.fillText(r[s],t.x,t.y),t.y+=u+d,s+1===r.length&&(t.y+=i.titleMarginBottom-d)}},drawBody:function(t,i,n,a){var r=i.bodyFontSize,s=i.bodySpacing,l=i.body;n.textAlign=i._bodyAlign,n.textBaseline="top",n.font=o.fontString(r,i._bodyFontStyle,i._bodyFontFamily);var u=0,d=function(e){n.fillText(e,t.x+u,t.y),t.y+=r+s};n.fillStyle=e(i.bodyFontColor,a),o.each(i.beforeBody,d);var c=i.displayColors;u=c?r+2:0,o.each(l,function(s,l){var u=e(i.labelTextColors[l],a);n.fillStyle=u,o.each(s.before,d),o.each(s.lines,function(o){c&&(n.fillStyle=e(i.legendColorBackground,a),n.fillRect(t.x,t.y,r,r),n.lineWidth=1,n.strokeStyle=e(i.labelColors[l].borderColor,a),n.strokeRect(t.x,t.y,r,r),n.fillStyle=e(i.labelColors[l].backgroundColor,a),n.fillRect(t.x+1,t.y+1,r-2,r-2),n.fillStyle=u),d(o)}),o.each(s.after,d)}),u=0,o.each(i.afterBody,d),t.y-=s},drawFooter:function(t,i,n,a){var r=i.footer;r.length&&(t.y+=i.footerMarginTop,n.textAlign=i._footerAlign,n.textBaseline="top",n.fillStyle=e(i.footerFontColor,a),n.font=o.fontString(i.footerFontSize,i._footerFontStyle,i._footerFontFamily),o.each(r,function(e){n.fillText(e,t.x,t.y),t.y+=i.footerFontSize+i.footerSpacing}))},drawBackground:function(t,i,n,a,o){n.fillStyle=e(i.backgroundColor,o),n.strokeStyle=e(i.borderColor,o),n.lineWidth=i.borderWidth;var r=i.xAlign,s=i.yAlign,l=t.x,u=t.y,d=a.width,c=a.height,h=i.cornerRadius;n.beginPath(),n.moveTo(l+h,u),"top"===s&&this.drawCaret(t,a),n.lineTo(l+d-h,u),n.quadraticCurveTo(l+d,u,l+d,u+h),"center"===s&&"right"===r&&this.drawCaret(t,a),n.lineTo(l+d,u+c-h),n.quadraticCurveTo(l+d,u+c,l+d-h,u+c),"bottom"===s&&this.drawCaret(t,a),n.lineTo(l+h,u+c),n.quadraticCurveTo(l,u+c,l,u+c-h),"center"===s&&"left"===r&&this.drawCaret(t,a),n.lineTo(l,u+h),n.quadraticCurveTo(l,u,l+h,u),n.closePath(),n.fill(),i.borderWidth>0&&n.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var i={width:e.width,height:e.height},n={x:e.x,y:e.y},a=Math.abs(e.opacity<.001)?0:e.opacity,o=e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length;this._options.enabled&&o&&(this.drawBackground(n,e,t,i,a),n.x+=e.xPadding,n.y+=e.yPadding,this.drawTitle(n,e,t,a),this.drawBody(n,e,t,a),this.drawFooter(n,e,t,a))}},handleEvent:function(t){var e,i=this,n=i._options;return i._lastActive=i._lastActive||[],"mouseout"===t.type?i._active=[]:i._active=i._chart.getElementsAtEventForMode(t,n.mode,n),(e=!o.arrayEquals(i._active,i._lastActive))&&(i._lastActive=i._active,(n.enabled||n.custom)&&(i._eventPosition={x:t.x,y:t.y},i.update(!0),i.pivot())),e}}),t.Tooltip.positioners={average:function(t){if(!t.length)return!1;var e,i,n=0,a=0,o=0;for(e=0,i=t.length;e<i;++e){var r=t[e];if(r&&r.hasValue()){var s=r.tooltipPosition();n+=s.x,a+=s.y,++o}}return{x:Math.round(n/o),y:Math.round(a/o)}},nearest:function(t,e){var i,n,a,r=e.x,s=e.y,l=Number.POSITIVE_INFINITY;for(i=0,n=t.length;i<n;++i){var u=t[i];if(u&&u.hasValue()){var d=u.getCenterPoint(),c=o.distanceBetweenPoints(e,d);c<l&&(l=c,a=u)}}if(a){var h=a.tooltipPosition();r=h.x,s=h.y}return{x:r,y:s}}}}},{25:25,26:26,45:45}],36:[function(t,e,i){"use strict";var n=t(25),a=t(26),o=t(45);n._set("global",{elements:{arc:{backgroundColor:n.global.defaultColor,borderColor:"#fff",borderWidth:2}}}),e.exports=a.extend({inLabelRange:function(t){var e=this._view;return!!e&&Math.pow(t-e.x,2)<Math.pow(e.radius+e.hoverRadius,2)},inRange:function(t,e){var i=this._view;if(i){for(var n=o.getAngleFromPoint(i,{x:t,y:e}),a=n.angle,r=n.distance,s=i.startAngle,l=i.endAngle;l<s;)l+=2*Math.PI;for(;a>l;)a-=2*Math.PI;for(;a<s;)a+=2*Math.PI;var u=a>=s&&a<=l,d=r>=i.innerRadius&&r<=i.outerRadius;return u&&d}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,i=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*i,y:t.y+Math.sin(e)*i}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,i=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*i,y:t.y+Math.sin(e)*i}},draw:function(){var t=this._chart.ctx,e=this._view,i=e.startAngle,n=e.endAngle;t.beginPath(),t.arc(e.x,e.y,e.outerRadius,i,n),t.arc(e.x,e.y,e.innerRadius,n,i,!0),t.closePath(),t.strokeStyle=e.borderColor,t.lineWidth=e.borderWidth,t.fillStyle=e.backgroundColor,t.fill(),t.lineJoin="bevel",e.borderWidth&&t.stroke()}})},{25:25,26:26,45:45}],37:[function(t,e,i){"use strict";var n=t(25),a=t(26),o=t(45),r=n.global;n._set("global",{elements:{line:{tension:.4,backgroundColor:r.defaultColor,borderWidth:3,borderColor:r.defaultColor,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}}),e.exports=a.extend({draw:function(){var t,e,i,n,a=this._view,s=this._chart.ctx,l=a.spanGaps,u=this._children.slice(),d=r.elements.line,c=-1;for(this._loop&&u.length&&u.push(u[0]),s.save(),s.lineCap=a.borderCapStyle||d.borderCapStyle,s.setLineDash&&s.setLineDash(a.borderDash||d.borderDash),s.lineDashOffset=a.borderDashOffset||d.borderDashOffset,s.lineJoin=a.borderJoinStyle||d.borderJoinStyle,s.lineWidth=a.borderWidth||d.borderWidth,s.strokeStyle=a.borderColor||r.defaultColor,s.beginPath(),c=-1,t=0;t<u.length;++t)e=u[t],i=o.previousItem(u,t),n=e._view,0===t?n.skip||(s.moveTo(n.x,n.y),c=t):(i=-1===c?i:u[c],n.skip||(c!==t-1&&!l||-1===c?s.moveTo(n.x,n.y):o.canvas.lineTo(s,i._view,e._view),c=t));s.stroke(),s.restore()}})},{25:25,26:26,45:45}],38:[function(t,e,i){"use strict";var n=t(25),a=t(26),o=t(45),r=n.global.defaultColor;function s(t){var e=this._view;return!!e&&Math.abs(t-e.x)<e.radius+e.hitRadius}n._set("global",{elements:{point:{radius:3,pointStyle:"circle",backgroundColor:r,borderColor:r,borderWidth:1,hitRadius:1,hoverRadius:4,hoverBorderWidth:1}}}),e.exports=a.extend({inRange:function(t,e){var i=this._view;return!!i&&Math.pow(t-i.x,2)+Math.pow(e-i.y,2)<Math.pow(i.hitRadius+i.radius,2)},inLabelRange:s,inXRange:s,inYRange:function(t){var e=this._view;return!!e&&Math.abs(t-e.y)<e.radius+e.hitRadius},getCenterPoint:function(){var t=this._view;return{x:t.x,y:t.y}},getArea:function(){return Math.PI*Math.pow(this._view.radius,2)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y,padding:t.radius+t.borderWidth}},draw:function(t){var e=this._view,i=this._model,a=this._chart.ctx,s=e.pointStyle,l=e.radius,u=e.x,d=e.y,c=o.color,h=0;e.skip||(a.strokeStyle=e.borderColor||r,a.lineWidth=o.valueOrDefault(e.borderWidth,n.global.elements.point.borderWidth),a.fillStyle=e.backgroundColor||r,void 0!==t&&(i.x<t.left||1.01*t.right<i.x||i.y<t.top||1.01*t.bottom<i.y)&&(i.x<t.left?h=(u-i.x)/(t.left-i.x):1.01*t.right<i.x?h=(i.x-u)/(i.x-t.right):i.y<t.top?h=(d-i.y)/(t.top-i.y):1.01*t.bottom<i.y&&(h=(i.y-d)/(i.y-t.bottom)),h=Math.round(100*h)/100,a.strokeStyle=c(a.strokeStyle).alpha(h).rgbString(),a.fillStyle=c(a.fillStyle).alpha(h).rgbString()),o.canvas.drawPoint(a,s,l,u,d))}})},{25:25,26:26,45:45}],39:[function(t,e,i){"use strict";var n=t(25),a=t(26);function o(t){return void 0!==t._view.width}function r(t){var e,i,n,a,r=t._view;if(o(t)){var s=r.width/2;e=r.x-s,i=r.x+s,n=Math.min(r.y,r.base),a=Math.max(r.y,r.base)}else{var l=r.height/2;e=Math.min(r.x,r.base),i=Math.max(r.x,r.base),n=r.y-l,a=r.y+l}return{left:e,top:n,right:i,bottom:a}}n._set("global",{elements:{rectangle:{backgroundColor:n.global.defaultColor,borderColor:n.global.defaultColor,borderSkipped:"bottom",borderWidth:0}}}),e.exports=a.extend({draw:function(){var t,e,i,n,a,o,r,s=this._chart.ctx,l=this._view,u=l.borderWidth;if(l.horizontal?(t=l.base,e=l.x,i=l.y-l.height/2,n=l.y+l.height/2,a=e>t?1:-1,o=1,r=l.borderSkipped||"left"):(t=l.x-l.width/2,e=l.x+l.width/2,i=l.y,a=1,o=(n=l.base)>i?1:-1,r=l.borderSkipped||"bottom"),u){var d=Math.min(Math.abs(t-e),Math.abs(i-n)),c=(u=u>d?d:u)/2,h=t+("left"!==r?c*a:0),f=e+("right"!==r?-c*a:0),g=i+("top"!==r?c*o:0),p=n+("bottom"!==r?-c*o:0);h!==f&&(i=g,n=p),g!==p&&(t=h,e=f)}s.beginPath(),s.fillStyle=l.backgroundColor,s.strokeStyle=l.borderColor,s.lineWidth=u;var m=[[t,n],[t,i],[e,i],[e,n]],v=["bottom","left","top","right"].indexOf(r,0);function b(t){return m[(v+t)%4]}-1===v&&(v=0);var x=b(0);s.moveTo(x[0],x[1]);for(var y=1;y<4;y++)x=b(y),s.lineTo(x[0],x[1]);s.fill(),u&&s.stroke()},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){var i=!1;if(this._view){var n=r(this);i=t>=n.left&&t<=n.right&&e>=n.top&&e<=n.bottom}return i},inLabelRange:function(t,e){if(!this._view)return!1;var i=r(this);return o(this)?t>=i.left&&t<=i.right:e>=i.top&&e<=i.bottom},inXRange:function(t){var e=r(this);return t>=e.left&&t<=e.right},inYRange:function(t){var e=r(this);return t>=e.top&&t<=e.bottom},getCenterPoint:function(){var t,e,i=this._view;return o(this)?(t=i.x,e=(i.y+i.base)/2):(t=(i.x+i.base)/2,e=i.y),{x:t,y:e}},getArea:function(){var t=this._view;return t.width*Math.abs(t.y-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}})},{25:25,26:26}],40:[function(t,e,i){"use strict";e.exports={},e.exports.Arc=t(36),e.exports.Line=t(37),e.exports.Point=t(38),e.exports.Rectangle=t(39)},{36:36,37:37,38:38,39:39}],41:[function(t,e,i){"use strict";var n=t(42);i=e.exports={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,i,n,a,o){if(o){var r=Math.min(o,n/2),s=Math.min(o,a/2);t.moveTo(e+r,i),t.lineTo(e+n-r,i),t.quadraticCurveTo(e+n,i,e+n,i+s),t.lineTo(e+n,i+a-s),t.quadraticCurveTo(e+n,i+a,e+n-r,i+a),t.lineTo(e+r,i+a),t.quadraticCurveTo(e,i+a,e,i+a-s),t.lineTo(e,i+s),t.quadraticCurveTo(e,i,e+r,i)}else t.rect(e,i,n,a)},drawPoint:function(t,e,i,n,a){var o,r,s,l,u,d;if(!e||"object"!=typeof e||"[object HTMLImageElement]"!==(o=e.toString())&&"[object HTMLCanvasElement]"!==o){if(!(isNaN(i)||i<=0)){switch(e){default:t.beginPath(),t.arc(n,a,i,0,2*Math.PI),t.closePath(),t.fill();break;case"triangle":t.beginPath(),u=(r=3*i/Math.sqrt(3))*Math.sqrt(3)/2,t.moveTo(n-r/2,a+u/3),t.lineTo(n+r/2,a+u/3),t.lineTo(n,a-2*u/3),t.closePath(),t.fill();break;case"rect":d=1/Math.SQRT2*i,t.beginPath(),t.fillRect(n-d,a-d,2*d,2*d),t.strokeRect(n-d,a-d,2*d,2*d);break;case"rectRounded":var c=i/Math.SQRT2,h=n-c,f=a-c,g=Math.SQRT2*i;t.beginPath(),this.roundedRect(t,h,f,g,g,i/2),t.closePath(),t.fill();break;case"rectRot":d=1/Math.SQRT2*i,t.beginPath(),t.moveTo(n-d,a),t.lineTo(n,a+d),t.lineTo(n+d,a),t.lineTo(n,a-d),t.closePath(),t.fill();break;case"cross":t.beginPath(),t.moveTo(n,a+i),t.lineTo(n,a-i),t.moveTo(n-i,a),t.lineTo(n+i,a),t.closePath();break;case"crossRot":t.beginPath(),s=Math.cos(Math.PI/4)*i,l=Math.sin(Math.PI/4)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l),t.moveTo(n-s,a+l),t.lineTo(n+s,a-l),t.closePath();break;case"star":t.beginPath(),t.moveTo(n,a+i),t.lineTo(n,a-i),t.moveTo(n-i,a),t.lineTo(n+i,a),s=Math.cos(Math.PI/4)*i,l=Math.sin(Math.PI/4)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l),t.moveTo(n-s,a+l),t.lineTo(n+s,a-l),t.closePath();break;case"line":t.beginPath(),t.moveTo(n-i,a),t.lineTo(n+i,a),t.closePath();break;case"dash":t.beginPath(),t.moveTo(n,a),t.lineTo(n+i,a),t.closePath()}t.stroke()}}else t.drawImage(e,n-e.width/2,a-e.height/2,e.width,e.height)},clipArea:function(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()},unclipArea:function(t){t.restore()},lineTo:function(t,e,i,n){if(i.steppedLine)return"after"===i.steppedLine&&!n||"after"!==i.steppedLine&&n?t.lineTo(e.x,i.y):t.lineTo(i.x,e.y),void t.lineTo(i.x,i.y);i.tension?t.bezierCurveTo(n?e.controlPointPreviousX:e.controlPointNextX,n?e.controlPointPreviousY:e.controlPointNextY,n?i.controlPointNextX:i.controlPointPreviousX,n?i.controlPointNextY:i.controlPointPreviousY,i.x,i.y):t.lineTo(i.x,i.y)}};n.clear=i.clear,n.drawRoundedRectangle=function(t){t.beginPath(),i.roundedRect.apply(i,arguments),t.closePath()}},{42:42}],42:[function(t,e,i){"use strict";var n,a={noop:function(){},uid:(n=0,function(){return n++}),isNullOrUndef:function(t){return null==t},isArray:Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},isObject:function(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)},valueOrDefault:function(t,e){return void 0===t?e:t},valueAtIndexOrDefault:function(t,e,i){return a.valueOrDefault(a.isArray(t)?t[e]:t,i)},callback:function(t,e,i){if(t&&"function"==typeof t.call)return t.apply(i,e)},each:function(t,e,i,n){var o,r,s;if(a.isArray(t))if(r=t.length,n)for(o=r-1;o>=0;o--)e.call(i,t[o],o);else for(o=0;o<r;o++)e.call(i,t[o],o);else if(a.isObject(t))for(r=(s=Object.keys(t)).length,o=0;o<r;o++)e.call(i,t[s[o]],s[o])},arrayEquals:function(t,e){var i,n,o,r;if(!t||!e||t.length!==e.length)return!1;for(i=0,n=t.length;i<n;++i)if(o=t[i],r=e[i],o instanceof Array&&r instanceof Array){if(!a.arrayEquals(o,r))return!1}else if(o!==r)return!1;return!0},clone:function(t){if(a.isArray(t))return t.map(a.clone);if(a.isObject(t)){for(var e={},i=Object.keys(t),n=i.length,o=0;o<n;++o)e[i[o]]=a.clone(t[i[o]]);return e}return t},_merger:function(t,e,i,n){var o=e[t],r=i[t];a.isObject(o)&&a.isObject(r)?a.merge(o,r,n):e[t]=a.clone(r)},_mergerIf:function(t,e,i){var n=e[t],o=i[t];a.isObject(n)&&a.isObject(o)?a.mergeIf(n,o):e.hasOwnProperty(t)||(e[t]=a.clone(o))},merge:function(t,e,i){var n,o,r,s,l,u=a.isArray(e)?e:[e],d=u.length;if(!a.isObject(t))return t;for(n=(i=i||{}).merger||a._merger,o=0;o<d;++o)if(e=u[o],a.isObject(e))for(l=0,s=(r=Object.keys(e)).length;l<s;++l)n(r[l],t,e,i);return t},mergeIf:function(t,e){return a.merge(t,e,{merger:a._mergerIf})},extend:function(t){for(var e=function(e,i){t[i]=e},i=1,n=arguments.length;i<n;++i)a.each(arguments[i],e);return t},inherits:function(t){var e=this,i=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return e.apply(this,arguments)},n=function(){this.constructor=i};return n.prototype=e.prototype,i.prototype=new n,i.extend=a.inherits,t&&a.extend(i.prototype,t),i.__super__=e.prototype,i}};e.exports=a,a.callCallback=a.callback,a.indexOf=function(t,e,i){return Array.prototype.indexOf.call(t,e,i)},a.getValueOrDefault=a.valueOrDefault,a.getValueAtIndexOrDefault=a.valueAtIndexOrDefault},{}],43:[function(t,e,i){"use strict";var n=t(42),a={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return-t*(t-2)},easeInOutQuad:function(t){return(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1)},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return(t-=1)*t*t+1},easeInOutCubic:function(t){return(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return-((t-=1)*t*t*t-1)},easeInOutQuart:function(t){return(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return(t-=1)*t*t*t*t+1},easeInOutQuint:function(t){return(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},easeInSine:function(t){return 1-Math.cos(t*(Math.PI/2))},easeOutSine:function(t){return Math.sin(t*(Math.PI/2))},easeInOutSine:function(t){return-.5*(Math.cos(Math.PI*t)-1)},easeInExpo:function(t){return 0===t?0:Math.pow(2,10*(t-1))},easeOutExpo:function(t){return 1===t?1:1-Math.pow(2,-10*t)},easeInOutExpo:function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(2-Math.pow(2,-10*--t))},easeInCirc:function(t){return t>=1?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:1===t?1:(i||(i=.3),n<1?(n=1,e=i/4):e=i/(2*Math.PI)*Math.asin(1/n),-n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i))},easeOutElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:1===t?1:(i||(i=.3),n<1?(n=1,e=i/4):e=i/(2*Math.PI)*Math.asin(1/n),n*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/i)+1)},easeInOutElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:2==(t/=.5)?1:(i||(i=.45),n<1?(n=1,e=i/4):e=i/(2*Math.PI)*Math.asin(1/n),t<1?n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*-.5:n*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*.5+1)},easeInBack:function(t){return t*t*(2.70158*t-1.70158)},easeOutBack:function(t){return(t-=1)*t*(2.70158*t+1.70158)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-a.easeOutBounce(1-t)},easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return t<.5?.5*a.easeInBounce(2*t):.5*a.easeOutBounce(2*t-1)+.5}};e.exports={effects:a},n.easingEffects=a},{42:42}],44:[function(t,e,i){"use strict";var n=t(42);e.exports={toLineHeight:function(t,e){var i=(""+t).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!i||"normal"===i[1])return 1.2*e;switch(t=+i[2],i[3]){case"px":return t;case"%":t/=100}return e*t},toPadding:function(t){var e,i,a,o;return n.isObject(t)?(e=+t.top||0,i=+t.right||0,a=+t.bottom||0,o=+t.left||0):e=i=a=o=+t||0,{top:e,right:i,bottom:a,left:o,height:e+a,width:o+i}},resolve:function(t,e,i){var a,o,r;for(a=0,o=t.length;a<o;++a)if(void 0!==(r=t[a])&&(void 0!==e&&"function"==typeof r&&(r=r(e)),void 0!==i&&n.isArray(r)&&(r=r[i]),void 0!==r))return r}}},{42:42}],45:[function(t,e,i){"use strict";e.exports=t(42),e.exports.easing=t(43),e.exports.canvas=t(41),e.exports.options=t(44)},{41:41,42:42,43:43,44:44}],46:[function(t,e,i){e.exports={acquireContext:function(t){return t&&t.canvas&&(t=t.canvas),t&&t.getContext("2d")||null}}},{}],47:[function(t,e,i){"use strict";var n=t(45),a="$chartjs",o="chartjs-",r=o+"render-monitor",s=o+"render-animation",l=["animationstart","webkitAnimationStart"],u={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function d(t,e){var i=n.getStyle(t,e),a=i&&i.match(/^(\d+)(\.\d+)?px$/);return a?Number(a[1]):void 0}var c=!!function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("e",null,e)}catch(t){}return t}()&&{passive:!0};function h(t,e,i){t.addEventListener(e,i,c)}function f(t,e,i){t.removeEventListener(e,i,c)}function g(t,e,i,n,a){return{type:t,chart:e,native:a||null,x:void 0!==i?i:null,y:void 0!==n?n:null}}function p(t,e,i){var u,d,c,f,p,m,v,b,x=t[a]||(t[a]={}),y=x.resizer=function(t){var e=document.createElement("div"),i=o+"size-monitor",n="position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1;";e.style.cssText=n,e.className=i,e.innerHTML='<div class="'+i+'-expand" style="'+n+'"><div style="position:absolute;width:1000000px;height:1000000px;left:0;top:0"></div></div><div class="'+i+'-shrink" style="'+n+'"><div style="position:absolute;width:200%;height:200%;left:0; top:0"></div></div>';var a=e.childNodes[0],r=e.childNodes[1];e._reset=function(){a.scrollLeft=1e6,a.scrollTop=1e6,r.scrollLeft=1e6,r.scrollTop=1e6};var s=function(){e._reset(),t()};return h(a,"scroll",s.bind(a,"expand")),h(r,"scroll",s.bind(r,"shrink")),e}((u=function(){if(x.resizer)return e(g("resize",i))},c=!1,f=[],function(){f=Array.prototype.slice.call(arguments),d=d||this,c||(c=!0,n.requestAnimFrame.call(window,function(){c=!1,u.apply(d,f)}))}));m=function(){if(x.resizer){var e=t.parentNode;e&&e!==y.parentNode&&e.insertBefore(y,e.firstChild),y._reset()}},v=(p=t)[a]||(p[a]={}),b=v.renderProxy=function(t){t.animationName===s&&m()},n.each(l,function(t){h(p,t,b)}),v.reflow=!!p.offsetParent,p.classList.add(r)}function m(t){var e,i,o,s=t[a]||{},u=s.resizer;delete s.resizer,i=(e=t)[a]||{},(o=i.renderProxy)&&(n.each(l,function(t){f(e,t,o)}),delete i.renderProxy),e.classList.remove(r),u&&u.parentNode&&u.parentNode.removeChild(u)}e.exports={_enabled:"undefined"!=typeof window&&"undefined"!=typeof document,initialize:function(){var t,e,i,n="from{opacity:0.99}to{opacity:1}";e="@-webkit-keyframes "+s+"{"+n+"}@keyframes "+s+"{"+n+"}."+r+"{-webkit-animation:"+s+" 0.001s;animation:"+s+" 0.001s;}",i=(t=this)._style||document.createElement("style"),t._style||(t._style=i,e="/* Chart.js */\n"+e,i.setAttribute("type","text/css"),document.getElementsByTagName("head")[0].appendChild(i)),i.appendChild(document.createTextNode(e))},acquireContext:function(t,e){"string"==typeof t?t=document.getElementById(t):t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas);var i=t&&t.getContext&&t.getContext("2d");return i&&i.canvas===t?(function(t,e){var i=t.style,n=t.getAttribute("height"),o=t.getAttribute("width");if(t[a]={initial:{height:n,width:o,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||"block",null===o||""===o){var r=d(t,"width");void 0!==r&&(t.width=r)}if(null===n||""===n)if(""===t.style.height)t.height=t.width/(e.options.aspectRatio||2);else{var s=d(t,"height");void 0!==r&&(t.height=s)}}(t,e),i):null},releaseContext:function(t){var e=t.canvas;if(e[a]){var i=e[a].initial;["height","width"].forEach(function(t){var a=i[t];n.isNullOrUndef(a)?e.removeAttribute(t):e.setAttribute(t,a)}),n.each(i.style||{},function(t,i){e.style[i]=t}),e.width=e.width,delete e[a]}},addEventListener:function(t,e,i){var o=t.canvas;if("resize"!==e){var r=i[a]||(i[a]={});h(o,e,(r.proxies||(r.proxies={}))[t.id+"_"+e]=function(e){var a,o,r,s;i((o=t,r=u[(a=e).type]||a.type,s=n.getRelativePosition(a,o),g(r,o,s.x,s.y,a)))})}else p(o,i,t)},removeEventListener:function(t,e,i){var n=t.canvas;if("resize"!==e){var o=((i[a]||{}).proxies||{})[t.id+"_"+e];o&&f(n,e,o)}else m(n)}},n.addEvent=h,n.removeEvent=f},{45:45}],48:[function(t,e,i){"use strict";var n=t(45),a=t(46),o=t(47),r=o._enabled?o:a;e.exports=n.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},r)},{45:45,46:46,47:47}],49:[function(t,e,i){"use strict";e.exports={},e.exports.filler=t(50),e.exports.legend=t(51),e.exports.title=t(52)},{50:50,51:51,52:52}],50:[function(t,e,i){"use strict";var n=t(25),a=t(40),o=t(45);n._set("global",{plugins:{filler:{propagate:!0}}});var r={dataset:function(t){var e=t.fill,i=t.chart,n=i.getDatasetMeta(e),a=n&&i.isDatasetVisible(e)&&n.dataset._children||[],o=a.length||0;return o?function(t,e){return e<o&&a[e]._view||null}:null},boundary:function(t){var e=t.boundary,i=e?e.x:null,n=e?e.y:null;return function(t){return{x:null===i?t.x:i,y:null===n?t.y:n}}}};function s(t,e,i){var n,a=t._model||{},o=a.fill;if(void 0===o&&(o=!!a.backgroundColor),!1===o||null===o)return!1;if(!0===o)return"origin";if(n=parseFloat(o,10),isFinite(n)&&Math.floor(n)===n)return"-"!==o[0]&&"+"!==o[0]||(n=e+n),!(n===e||n<0||n>=i)&&n;switch(o){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return o;default:return!1}}function l(t){var e,i=t.el._model||{},n=t.el._scale||{},a=t.fill,o=null;if(isFinite(a))return null;if("start"===a?o=void 0===i.scaleBottom?n.bottom:i.scaleBottom:"end"===a?o=void 0===i.scaleTop?n.top:i.scaleTop:void 0!==i.scaleZero?o=i.scaleZero:n.getBasePosition?o=n.getBasePosition():n.getBasePixel&&(o=n.getBasePixel()),null!=o){if(void 0!==o.x&&void 0!==o.y)return o;if("number"==typeof o&&isFinite(o))return{x:(e=n.isHorizontal())?o:null,y:e?null:o}}return null}function u(t,e,i){var n,a=t[e].fill,o=[e];if(!i)return a;for(;!1!==a&&-1===o.indexOf(a);){if(!isFinite(a))return a;if(!(n=t[a]))return!1;if(n.visible)return a;o.push(a),a=n.fill}return!1}function d(t){return t&&!t.skip}function c(t,e,i,n,a){var r;if(n&&a){for(t.moveTo(e[0].x,e[0].y),r=1;r<n;++r)o.canvas.lineTo(t,e[r-1],e[r]);for(t.lineTo(i[a-1].x,i[a-1].y),r=a-1;r>0;--r)o.canvas.lineTo(t,i[r],i[r-1],!0)}}e.exports={id:"filler",afterDatasetsUpdate:function(t,e){var i,n,o,d,c,h,f,g=(t.data.datasets||[]).length,p=e.propagate,m=[];for(n=0;n<g;++n)d=null,(o=(i=t.getDatasetMeta(n)).dataset)&&o._model&&o instanceof a.Line&&(d={visible:t.isDatasetVisible(n),fill:s(o,n,g),chart:t,el:o}),i.$filler=d,m.push(d);for(n=0;n<g;++n)(d=m[n])&&(d.fill=u(m,n,p),d.boundary=l(d),d.mapper=(void 0,f=void 0,h=(c=d).fill,f="dataset",!1===h?null:(isFinite(h)||(f="boundary"),r[f](c))))},beforeDatasetDraw:function(t,e){var i=e.meta.$filler;if(i){var a=t.ctx,r=i.el,s=r._view,l=r._children||[],u=i.mapper,h=s.backgroundColor||n.global.defaultColor;u&&h&&l.length&&(o.canvas.clipArea(a,t.chartArea),function(t,e,i,n,a,o){var r,s,l,u,h,f,g,p=e.length,m=n.spanGaps,v=[],b=[],x=0,y=0;for(t.beginPath(),r=0,s=p+!!o;r<s;++r)h=i(u=e[l=r%p]._view,l,n),f=d(u),g=d(h),f&&g?(x=v.push(u),y=b.push(h)):x&&y&&(m?(f&&v.push(u),g&&b.push(h)):(c(t,v,b,x,y),x=y=0,v=[],b=[]));c(t,v,b,x,y),t.closePath(),t.fillStyle=a,t.fill()}(a,l,u,s,h,r._loop),o.canvas.unclipArea(a))}}}},{25:25,40:40,45:45}],51:[function(t,e,i){"use strict";var n=t(25),a=t(26),o=t(45),r=t(30),s=o.noop;function l(t,e){return t.usePointStyle?e*Math.SQRT2:t.boxWidth}n._set("global",{legend:{display:!0,position:"top",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(t,e){var i=e.datasetIndex,n=this.chart,a=n.getDatasetMeta(i);a.hidden=null===a.hidden?!n.data.datasets[i].hidden:null,n.update()},onHover:null,labels:{boxWidth:40,padding:10,generateLabels:function(t){var e=t.data;return o.isArray(e.datasets)?e.datasets.map(function(e,i){return{text:e.label,fillStyle:o.isArray(e.backgroundColor)?e.backgroundColor[0]:e.backgroundColor,hidden:!t.isDatasetVisible(i),lineCap:e.borderCapStyle,lineDash:e.borderDash,lineDashOffset:e.borderDashOffset,lineJoin:e.borderJoinStyle,lineWidth:e.borderWidth,strokeStyle:e.borderColor,pointStyle:e.pointStyle,datasetIndex:i}},this):[]}}},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');for(var i=0;i<t.data.datasets.length;i++)e.push('<li><span style="background-color:'+t.data.datasets[i].backgroundColor+'"></span>'),t.data.datasets[i].label&&e.push(t.data.datasets[i].label),e.push("</li>");return e.push("</ul>"),e.join("")}});var u=a.extend({initialize:function(t){o.extend(this,t),this.legendHitBoxes=[],this.doughnutMode=!1},beforeUpdate:s,update:function(t,e,i){var n=this;return n.beforeUpdate(),n.maxWidth=t,n.maxHeight=e,n.margins=i,n.beforeSetDimensions(),n.setDimensions(),n.afterSetDimensions(),n.beforeBuildLabels(),n.buildLabels(),n.afterBuildLabels(),n.beforeFit(),n.fit(),n.afterFit(),n.afterUpdate(),n.minSize},afterUpdate:s,beforeSetDimensions:s,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:s,beforeBuildLabels:s,buildLabels:function(){var t=this,e=t.options.labels||{},i=o.callback(e.generateLabels,[t.chart],t)||[];e.filter&&(i=i.filter(function(i){return e.filter(i,t.chart.data)})),t.options.reverse&&i.reverse(),t.legendItems=i},afterBuildLabels:s,beforeFit:s,fit:function(){var t=this,e=t.options,i=e.labels,a=e.display,r=t.ctx,s=n.global,u=o.valueOrDefault,d=u(i.fontSize,s.defaultFontSize),c=u(i.fontStyle,s.defaultFontStyle),h=u(i.fontFamily,s.defaultFontFamily),f=o.fontString(d,c,h),g=t.legendHitBoxes=[],p=t.minSize,m=t.isHorizontal();if(m?(p.width=t.maxWidth,p.height=a?10:0):(p.width=a?10:0,p.height=t.maxHeight),a)if(r.font=f,m){var v=t.lineWidths=[0],b=t.legendItems.length?d+i.padding:0;r.textAlign="left",r.textBaseline="top",o.each(t.legendItems,function(e,n){var a=l(i,d)+d/2+r.measureText(e.text).width;v[v.length-1]+a+i.padding>=t.width&&(b+=d+i.padding,v[v.length]=t.left),g[n]={left:0,top:0,width:a,height:d},v[v.length-1]+=a+i.padding}),p.height+=b}else{var x=i.padding,y=t.columnWidths=[],k=i.padding,M=0,w=0,S=d+x;o.each(t.legendItems,function(t,e){var n=l(i,d)+d/2+r.measureText(t.text).width;w+S>p.height&&(k+=M+i.padding,y.push(M),M=0,w=0),M=Math.max(M,n),w+=S,g[e]={left:0,top:0,width:n,height:d}}),k+=M,y.push(M),p.width+=k}t.width=p.width,t.height=p.height},afterFit:s,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var t=this,e=t.options,i=e.labels,a=n.global,r=a.elements.line,s=t.width,u=t.lineWidths;if(e.display){var d,c=t.ctx,h=o.valueOrDefault,f=h(i.fontColor,a.defaultFontColor),g=h(i.fontSize,a.defaultFontSize),p=h(i.fontStyle,a.defaultFontStyle),m=h(i.fontFamily,a.defaultFontFamily),v=o.fontString(g,p,m);c.textAlign="left",c.textBaseline="middle",c.lineWidth=.5,c.strokeStyle=f,c.fillStyle=f,c.font=v;var b=l(i,g),x=t.legendHitBoxes,y=t.isHorizontal();d=y?{x:t.left+(s-u[0])/2,y:t.top+i.padding,line:0}:{x:t.left+i.padding,y:t.top+i.padding,line:0};var k=g+i.padding;o.each(t.legendItems,function(n,l){var f,p,m,v,M,w=c.measureText(n.text).width,S=b+g/2+w,C=d.x,_=d.y;y?C+S>=s&&(_=d.y+=k,d.line++,C=d.x=t.left+(s-u[d.line])/2):_+k>t.bottom&&(C=d.x=C+t.columnWidths[d.line]+i.padding,_=d.y=t.top+i.padding,d.line++),function(t,i,n){if(!(isNaN(b)||b<=0)){c.save(),c.fillStyle=h(n.fillStyle,a.defaultColor),c.lineCap=h(n.lineCap,r.borderCapStyle),c.lineDashOffset=h(n.lineDashOffset,r.borderDashOffset),c.lineJoin=h(n.lineJoin,r.borderJoinStyle),c.lineWidth=h(n.lineWidth,r.borderWidth),c.strokeStyle=h(n.strokeStyle,a.defaultColor);var s=0===h(n.lineWidth,r.borderWidth);if(c.setLineDash&&c.setLineDash(h(n.lineDash,r.borderDash)),e.labels&&e.labels.usePointStyle){var l=g*Math.SQRT2/2,u=l/Math.SQRT2,d=t+u,f=i+u;o.canvas.drawPoint(c,n.pointStyle,l,d,f)}else s||c.strokeRect(t,i,b,g),c.fillRect(t,i,b,g);c.restore()}}(C,_,n),x[l].left=C,x[l].top=_,f=n,p=w,v=b+(m=g/2)+C,M=_+m,c.fillText(f.text,v,M),f.hidden&&(c.beginPath(),c.lineWidth=2,c.moveTo(v,M),c.lineTo(v+p,M),c.stroke()),y?d.x+=S+i.padding:d.y+=k})}},handleEvent:function(t){var e=this,i=e.options,n="mouseup"===t.type?"click":t.type,a=!1;if("mousemove"===n){if(!i.onHover)return}else{if("click"!==n)return;if(!i.onClick)return}var o=t.x,r=t.y;if(o>=e.left&&o<=e.right&&r>=e.top&&r<=e.bottom)for(var s=e.legendHitBoxes,l=0;l<s.length;++l){var u=s[l];if(o>=u.left&&o<=u.left+u.width&&r>=u.top&&r<=u.top+u.height){if("click"===n){i.onClick.call(e,t.native,e.legendItems[l]),a=!0;break}if("mousemove"===n){i.onHover.call(e,t.native,e.legendItems[l]),a=!0;break}}}return a}});function d(t,e){var i=new u({ctx:t.ctx,options:e,chart:t});r.configure(t,i,e),r.addBox(t,i),t.legend=i}e.exports={id:"legend",_element:u,beforeInit:function(t){var e=t.options.legend;e&&d(t,e)},beforeUpdate:function(t){var e=t.options.legend,i=t.legend;e?(o.mergeIf(e,n.global.legend),i?(r.configure(t,i,e),i.options=e):d(t,e)):i&&(r.removeBox(t,i),delete t.legend)},afterEvent:function(t,e){var i=t.legend;i&&i.handleEvent(e)}}},{25:25,26:26,30:30,45:45}],52:[function(t,e,i){"use strict";var n=t(25),a=t(26),o=t(45),r=t(30),s=o.noop;n._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,lineHeight:1.2,padding:10,position:"top",text:"",weight:2e3}});var l=a.extend({initialize:function(t){o.extend(this,t),this.legendHitBoxes=[]},beforeUpdate:s,update:function(t,e,i){var n=this;return n.beforeUpdate(),n.maxWidth=t,n.maxHeight=e,n.margins=i,n.beforeSetDimensions(),n.setDimensions(),n.afterSetDimensions(),n.beforeBuildLabels(),n.buildLabels(),n.afterBuildLabels(),n.beforeFit(),n.fit(),n.afterFit(),n.afterUpdate(),n.minSize},afterUpdate:s,beforeSetDimensions:s,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:s,beforeBuildLabels:s,buildLabels:s,afterBuildLabels:s,beforeFit:s,fit:function(){var t=this,e=o.valueOrDefault,i=t.options,a=i.display,r=e(i.fontSize,n.global.defaultFontSize),s=t.minSize,l=o.isArray(i.text)?i.text.length:1,u=o.options.toLineHeight(i.lineHeight,r),d=a?l*u+2*i.padding:0;t.isHorizontal()?(s.width=t.maxWidth,s.height=d):(s.width=d,s.height=t.maxHeight),t.width=s.width,t.height=s.height},afterFit:s,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var t=this,e=t.ctx,i=o.valueOrDefault,a=t.options,r=n.global;if(a.display){var s,l,u,d=i(a.fontSize,r.defaultFontSize),c=i(a.fontStyle,r.defaultFontStyle),h=i(a.fontFamily,r.defaultFontFamily),f=o.fontString(d,c,h),g=o.options.toLineHeight(a.lineHeight,d),p=g/2+a.padding,m=0,v=t.top,b=t.left,x=t.bottom,y=t.right;e.fillStyle=i(a.fontColor,r.defaultFontColor),e.font=f,t.isHorizontal()?(l=b+(y-b)/2,u=v+p,s=y-b):(l="left"===a.position?b+p:y-p,u=v+(x-v)/2,s=x-v,m=Math.PI*("left"===a.position?-.5:.5)),e.save(),e.translate(l,u),e.rotate(m),e.textAlign="center",e.textBaseline="middle";var k=a.text;if(o.isArray(k))for(var M=0,w=0;w<k.length;++w)e.fillText(k[w],0,M,s),M+=g;else e.fillText(k,0,0,s);e.restore()}}});function u(t,e){var i=new l({ctx:t.ctx,options:e,chart:t});r.configure(t,i,e),r.addBox(t,i),t.titleBlock=i}e.exports={id:"title",_element:l,beforeInit:function(t){var e=t.options.title;e&&u(t,e)},beforeUpdate:function(t){var e=t.options.title,i=t.titleBlock;e?(o.mergeIf(e,n.global.title),i?(r.configure(t,i,e),i.options=e):u(t,e)):i&&(r.removeBox(t,i),delete t.titleBlock)}}},{25:25,26:26,30:30,45:45}],53:[function(t,e,i){"use strict";e.exports=function(t){var e=t.Scale.extend({getLabels:function(){var t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels},determineDataLimits:function(){var t,e=this,i=e.getLabels();e.minIndex=0,e.maxIndex=i.length-1,void 0!==e.options.ticks.min&&(t=i.indexOf(e.options.ticks.min),e.minIndex=-1!==t?t:e.minIndex),void 0!==e.options.ticks.max&&(t=i.indexOf(e.options.ticks.max),e.maxIndex=-1!==t?t:e.maxIndex),e.min=i[e.minIndex],e.max=i[e.maxIndex]},buildTicks:function(){var t=this,e=t.getLabels();t.ticks=0===t.minIndex&&t.maxIndex===e.length-1?e:e.slice(t.minIndex,t.maxIndex+1)},getLabelForIndex:function(t,e){var i=this,n=i.chart.data,a=i.isHorizontal();return n.yLabels&&!a?i.getRightValue(n.datasets[e].data[t]):i.ticks[t-i.minIndex]},getPixelForValue:function(t,e){var i,n=this,a=n.options.offset,o=Math.max(n.maxIndex+1-n.minIndex-(a?0:1),1);if(null!=t&&(i=n.isHorizontal()?t.x:t.y),void 0!==i||void 0!==t&&isNaN(e)){t=i||t;var r=n.getLabels().indexOf(t);e=-1!==r?r:e}if(n.isHorizontal()){var s=n.width/o,l=s*(e-n.minIndex);return a&&(l+=s/2),n.left+Math.round(l)}var u=n.height/o,d=u*(e-n.minIndex);return a&&(d+=u/2),n.top+Math.round(d)},getPixelForTick:function(t){return this.getPixelForValue(this.ticks[t],t+this.minIndex,null)},getValueForPixel:function(t){var e=this,i=e.options.offset,n=Math.max(e._ticks.length-(i?0:1),1),a=e.isHorizontal(),o=(a?e.width:e.height)/n;return t-=a?e.left:e.top,i&&(t-=o/2),(t<=0?0:Math.round(t/o))+e.minIndex},getBasePixel:function(){return this.bottom}});t.scaleService.registerScaleType("category",e,{position:"bottom"})}},{}],54:[function(t,e,i){"use strict";var n=t(25),a=t(45),o=t(34);e.exports=function(t){var e={position:"left",ticks:{callback:o.formatters.linear}},i=t.LinearScaleBase.extend({determineDataLimits:function(){var t=this,e=t.options,i=t.chart,n=i.data.datasets,o=t.isHorizontal();function r(e){return o?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null,t.max=null;var s=e.stacked;if(void 0===s&&a.each(n,function(t,e){if(!s){var n=i.getDatasetMeta(e);i.isDatasetVisible(e)&&r(n)&&void 0!==n.stack&&(s=!0)}}),e.stacked||s){var l={};a.each(n,function(n,o){var s=i.getDatasetMeta(o),u=[s.type,void 0===e.stacked&&void 0===s.stack?o:"",s.stack].join(".");void 0===l[u]&&(l[u]={positiveValues:[],negativeValues:[]});var d=l[u].positiveValues,c=l[u].negativeValues;i.isDatasetVisible(o)&&r(s)&&a.each(n.data,function(i,n){var a=+t.getRightValue(i);isNaN(a)||s.data[n].hidden||(d[n]=d[n]||0,c[n]=c[n]||0,e.relativePoints?d[n]=100:a<0?c[n]+=a:d[n]+=a)})}),a.each(l,function(e){var i=e.positiveValues.concat(e.negativeValues),n=a.min(i),o=a.max(i);t.min=null===t.min?n:Math.min(t.min,n),t.max=null===t.max?o:Math.max(t.max,o)})}else a.each(n,function(e,n){var o=i.getDatasetMeta(n);i.isDatasetVisible(n)&&r(o)&&a.each(e.data,function(e,i){var n=+t.getRightValue(e);isNaN(n)||o.data[i].hidden||(null===t.min?t.min=n:n<t.min&&(t.min=n),null===t.max?t.max=n:n>t.max&&(t.max=n))})});t.min=isFinite(t.min)&&!isNaN(t.min)?t.min:0,t.max=isFinite(t.max)&&!isNaN(t.max)?t.max:1,this.handleTickRangeOptions()},getTickLimit:function(){var t,e=this.options.ticks;if(this.isHorizontal())t=Math.min(e.maxTicksLimit?e.maxTicksLimit:11,Math.ceil(this.width/50));else{var i=a.valueOrDefault(e.fontSize,n.global.defaultFontSize);t=Math.min(e.maxTicksLimit?e.maxTicksLimit:11,Math.ceil(this.height/(2*i)))}return t},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e=this,i=e.start,n=+e.getRightValue(t),a=e.end-i;return e.isHorizontal()?e.left+e.width/a*(n-i):e.bottom-e.height/a*(n-i)},getValueForPixel:function(t){var e=this,i=e.isHorizontal(),n=i?e.width:e.height,a=(i?t-e.left:e.bottom-t)/n;return e.start+(e.end-e.start)*a},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}});t.scaleService.registerScaleType("linear",i,e)}},{25:25,34:34,45:45}],55:[function(t,e,i){"use strict";var n=t(45);e.exports=function(t){var e=n.noop;t.LinearScaleBase=t.Scale.extend({getRightValue:function(e){return"string"==typeof e?+e:t.Scale.prototype.getRightValue.call(this,e)},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;if(e.beginAtZero){var i=n.sign(t.min),a=n.sign(t.max);i<0&&a<0?t.max=0:i>0&&a>0&&(t.min=0)}var o=void 0!==e.min||void 0!==e.suggestedMin,r=void 0!==e.max||void 0!==e.suggestedMax;void 0!==e.min?t.min=e.min:void 0!==e.suggestedMin&&(null===t.min?t.min=e.suggestedMin:t.min=Math.min(t.min,e.suggestedMin)),void 0!==e.max?t.max=e.max:void 0!==e.suggestedMax&&(null===t.max?t.max=e.suggestedMax:t.max=Math.max(t.max,e.suggestedMax)),o!==r&&t.min>=t.max&&(o?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,e.beginAtZero||t.min--)},getTickLimit:e,handleDirectionalChanges:e,buildTicks:function(){var t=this,e=t.options.ticks,i=t.getTickLimit(),a={maxTicks:i=Math.max(2,i),min:e.min,max:e.max,stepSize:n.valueOrDefault(e.fixedStepSize,e.stepSize)},o=t.ticks=function(t,e){var i,a=[];if(t.stepSize&&t.stepSize>0)i=t.stepSize;else{var o=n.niceNum(e.max-e.min,!1);i=n.niceNum(o/(t.maxTicks-1),!0)}var r=Math.floor(e.min/i)*i,s=Math.ceil(e.max/i)*i;t.min&&t.max&&t.stepSize&&n.almostWhole((t.max-t.min)/t.stepSize,i/1e3)&&(r=t.min,s=t.max);var l=(s-r)/i;l=n.almostEquals(l,Math.round(l),i/1e3)?Math.round(l):Math.ceil(l);var u=1;i<1&&(u=Math.pow(10,i.toString().length-2),r=Math.round(r*u)/u,s=Math.round(s*u)/u),a.push(void 0!==t.min?t.min:r);for(var d=1;d<l;++d)a.push(Math.round((r+d*i)*u)/u);return a.push(void 0!==t.max?t.max:s),a}(a,t);t.handleDirectionalChanges(),t.max=n.max(o),t.min=n.min(o),e.reverse?(o.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){var e=this;e.ticksAsNumbers=e.ticks.slice(),e.zeroLineIndex=e.ticks.indexOf(0),t.Scale.prototype.convertTicksToLabels.call(e)}})}},{45:45}],56:[function(t,e,i){"use strict";var n=t(45),a=t(34);e.exports=function(t){var e={position:"left",ticks:{callback:a.formatters.logarithmic}},i=t.Scale.extend({determineDataLimits:function(){var t=this,e=t.options,i=t.chart,a=i.data.datasets,o=t.isHorizontal();function r(e){return o?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null,t.max=null,t.minNotZero=null;var s=e.stacked;if(void 0===s&&n.each(a,function(t,e){if(!s){var n=i.getDatasetMeta(e);i.isDatasetVisible(e)&&r(n)&&void 0!==n.stack&&(s=!0)}}),e.stacked||s){var l={};n.each(a,function(a,o){var s=i.getDatasetMeta(o),u=[s.type,void 0===e.stacked&&void 0===s.stack?o:"",s.stack].join(".");i.isDatasetVisible(o)&&r(s)&&(void 0===l[u]&&(l[u]=[]),n.each(a.data,function(e,i){var n=l[u],a=+t.getRightValue(e);isNaN(a)||s.data[i].hidden||a<0||(n[i]=n[i]||0,n[i]+=a)}))}),n.each(l,function(e){if(e.length>0){var i=n.min(e),a=n.max(e);t.min=null===t.min?i:Math.min(t.min,i),t.max=null===t.max?a:Math.max(t.max,a)}})}else n.each(a,function(e,a){var o=i.getDatasetMeta(a);i.isDatasetVisible(a)&&r(o)&&n.each(e.data,function(e,i){var n=+t.getRightValue(e);isNaN(n)||o.data[i].hidden||n<0||(null===t.min?t.min=n:n<t.min&&(t.min=n),null===t.max?t.max=n:n>t.max&&(t.max=n),0!==n&&(null===t.minNotZero||n<t.minNotZero)&&(t.minNotZero=n))})});this.handleTickRangeOptions()},handleTickRangeOptions:function(){var t=this,e=t.options.ticks,i=n.valueOrDefault;t.min=i(e.min,t.min),t.max=i(e.max,t.max),t.min===t.max&&(0!==t.min&&null!==t.min?(t.min=Math.pow(10,Math.floor(n.log10(t.min))-1),t.max=Math.pow(10,Math.floor(n.log10(t.max))+1)):(t.min=1,t.max=10)),null===t.min&&(t.min=Math.pow(10,Math.floor(n.log10(t.max))-1)),null===t.max&&(t.max=0!==t.min?Math.pow(10,Math.floor(n.log10(t.min))+1):10),null===t.minNotZero&&(t.min>0?t.minNotZero=t.min:t.max<1?t.minNotZero=Math.pow(10,Math.floor(n.log10(t.max))):t.minNotZero=1)},buildTicks:function(){var t=this,e=t.options.ticks,i=!t.isHorizontal(),a={min:e.min,max:e.max},o=t.ticks=function(t,e){var i,a,o=[],r=n.valueOrDefault,s=r(t.min,Math.pow(10,Math.floor(n.log10(e.min)))),l=Math.floor(n.log10(e.max)),u=Math.ceil(e.max/Math.pow(10,l));0===s?(i=Math.floor(n.log10(e.minNotZero)),a=Math.floor(e.minNotZero/Math.pow(10,i)),o.push(s),s=a*Math.pow(10,i)):(i=Math.floor(n.log10(s)),a=Math.floor(s/Math.pow(10,i)));for(var d=i<0?Math.pow(10,Math.abs(i)):1;o.push(s),10==++a&&(a=1,d=++i>=0?1:d),s=Math.round(a*Math.pow(10,i)*d)/d,i<l||i===l&&a<u;);var c=r(t.max,s);return o.push(c),o}(a,t);t.max=n.max(o),t.min=n.min(o),e.reverse?(i=!i,t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max),i&&o.reverse()},convertTicksToLabels:function(){this.tickValues=this.ticks.slice(),t.Scale.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForTick:function(t){return this.getPixelForValue(this.tickValues[t])},_getFirstTickValue:function(t){var e=Math.floor(n.log10(t));return Math.floor(t/Math.pow(10,e))*Math.pow(10,e)},getPixelForValue:function(e){var i,a,o,r,s,l=this,u=l.options.ticks.reverse,d=n.log10,c=l._getFirstTickValue(l.minNotZero),h=0;return e=+l.getRightValue(e),u?(o=l.end,r=l.start,s=-1):(o=l.start,r=l.end,s=1),l.isHorizontal()?(i=l.width,a=u?l.right:l.left):(i=l.height,s*=-1,a=u?l.top:l.bottom),e!==o&&(0===o&&(i-=h=n.getValueOrDefault(l.options.ticks.fontSize,t.defaults.global.defaultFontSize),o=c),0!==e&&(h+=i/(d(r)-d(o))*(d(e)-d(o))),a+=s*h),a},getValueForPixel:function(e){var i,a,o,r,s=this,l=s.options.ticks.reverse,u=n.log10,d=s._getFirstTickValue(s.minNotZero);if(l?(a=s.end,o=s.start):(a=s.start,o=s.end),s.isHorizontal()?(i=s.width,r=l?s.right-e:e-s.left):(i=s.height,r=l?e-s.top:s.bottom-e),r!==a){if(0===a){var c=n.getValueOrDefault(s.options.ticks.fontSize,t.defaults.global.defaultFontSize);r-=c,i-=c,a=d}r*=u(o)-u(a),r/=i,r=Math.pow(10,u(a)+r)}return r}});t.scaleService.registerScaleType("logarithmic",i,e)}},{34:34,45:45}],57:[function(t,e,i){"use strict";var n=t(25),a=t(45),o=t(34);e.exports=function(t){var e=n.global,i={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:o.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(t){return t}}};function r(t){var e=t.options;return e.angleLines.display||e.pointLabels.display?t.chart.data.labels.length:0}function s(t){var i=t.options.pointLabels,n=a.valueOrDefault(i.fontSize,e.defaultFontSize),o=a.valueOrDefault(i.fontStyle,e.defaultFontStyle),r=a.valueOrDefault(i.fontFamily,e.defaultFontFamily);return{size:n,style:o,family:r,font:a.fontString(n,o,r)}}function l(t,e,i,n,a){return t===n||t===a?{start:e-i/2,end:e+i/2}:t<n||t>a?{start:e-i-5,end:e}:{start:e,end:e+i+5}}function u(t,e,i,n){if(a.isArray(e))for(var o=i.y,r=1.5*n,s=0;s<e.length;++s)t.fillText(e[s],i.x,o),o+=r;else t.fillText(e,i.x,i.y)}function d(t){return a.isNumber(t)?t:0}var c=t.LinearScaleBase.extend({setDimensions:function(){var t=this,i=t.options,n=i.ticks;t.width=t.maxWidth,t.height=t.maxHeight,t.xCenter=Math.round(t.width/2),t.yCenter=Math.round(t.height/2);var o=a.min([t.height,t.width]),r=a.valueOrDefault(n.fontSize,e.defaultFontSize);t.drawingArea=i.display?o/2-(r/2+n.backdropPaddingY):o/2},determineDataLimits:function(){var t=this,e=t.chart,i=Number.POSITIVE_INFINITY,n=Number.NEGATIVE_INFINITY;a.each(e.data.datasets,function(o,r){if(e.isDatasetVisible(r)){var s=e.getDatasetMeta(r);a.each(o.data,function(e,a){var o=+t.getRightValue(e);isNaN(o)||s.data[a].hidden||(i=Math.min(o,i),n=Math.max(o,n))})}}),t.min=i===Number.POSITIVE_INFINITY?0:i,t.max=n===Number.NEGATIVE_INFINITY?0:n,t.handleTickRangeOptions()},getTickLimit:function(){var t=this.options.ticks,i=a.valueOrDefault(t.fontSize,e.defaultFontSize);return Math.min(t.maxTicksLimit?t.maxTicksLimit:11,Math.ceil(this.drawingArea/(1.5*i)))},convertTicksToLabels:function(){var e=this;t.LinearScaleBase.prototype.convertTicksToLabels.call(e),e.pointLabels=e.chart.data.labels.map(e.options.pointLabels.callback,e)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},fit:function(){var t,e;this.options.pointLabels.display?function(t){var e,i,n,o=s(t),u=Math.min(t.height/2,t.width/2),d={r:t.width,l:0,t:t.height,b:0},c={};t.ctx.font=o.font,t._pointLabelSizes=[];var h,f,g,p=r(t);for(e=0;e<p;e++){n=t.getPointPosition(e,u),h=t.ctx,f=o.size,g=t.pointLabels[e]||"",i=a.isArray(g)?{w:a.longestText(h,h.font,g),h:g.length*f+1.5*(g.length-1)*f}:{w:h.measureText(g).width,h:f},t._pointLabelSizes[e]=i;var m=t.getIndexAngle(e),v=a.toDegrees(m)%360,b=l(v,n.x,i.w,0,180),x=l(v,n.y,i.h,90,270);b.start<d.l&&(d.l=b.start,c.l=m),b.end>d.r&&(d.r=b.end,c.r=m),x.start<d.t&&(d.t=x.start,c.t=m),x.end>d.b&&(d.b=x.end,c.b=m)}t.setReductions(u,d,c)}(this):(t=this,e=Math.min(t.height/2,t.width/2),t.drawingArea=Math.round(e),t.setCenterPoint(0,0,0,0))},setReductions:function(t,e,i){var n=e.l/Math.sin(i.l),a=Math.max(e.r-this.width,0)/Math.sin(i.r),o=-e.t/Math.cos(i.t),r=-Math.max(e.b-this.height,0)/Math.cos(i.b);n=d(n),a=d(a),o=d(o),r=d(r),this.drawingArea=Math.min(Math.round(t-(n+a)/2),Math.round(t-(o+r)/2)),this.setCenterPoint(n,a,o,r)},setCenterPoint:function(t,e,i,n){var a=this,o=a.width-e-a.drawingArea,r=t+a.drawingArea,s=i+a.drawingArea,l=a.height-n-a.drawingArea;a.xCenter=Math.round((r+o)/2+a.left),a.yCenter=Math.round((s+l)/2+a.top)},getIndexAngle:function(t){return t*(2*Math.PI/r(this))+(this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0)*Math.PI*2/360},getDistanceFromCenterForValue:function(t){var e=this;if(null===t)return 0;var i=e.drawingArea/(e.max-e.min);return e.options.ticks.reverse?(e.max-t)*i:(t-e.min)*i},getPointPosition:function(t,e){var i=this.getIndexAngle(t)-Math.PI/2;return{x:Math.round(Math.cos(i)*e)+this.xCenter,y:Math.round(Math.sin(i)*e)+this.yCenter}},getPointPositionForValue:function(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))},getBasePosition:function(){var t=this.min,e=this.max;return this.getPointPositionForValue(0,this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0)},draw:function(){var t=this,i=t.options,n=i.gridLines,o=i.ticks,l=a.valueOrDefault;if(i.display){var d=t.ctx,c=this.getIndexAngle(0),h=l(o.fontSize,e.defaultFontSize),f=l(o.fontStyle,e.defaultFontStyle),g=l(o.fontFamily,e.defaultFontFamily),p=a.fontString(h,f,g);a.each(t.ticks,function(i,s){if(s>0||o.reverse){var u=t.getDistanceFromCenterForValue(t.ticksAsNumbers[s]);if(n.display&&0!==s&&function(t,e,i,n){var o=t.ctx;if(o.strokeStyle=a.valueAtIndexOrDefault(e.color,n-1),o.lineWidth=a.valueAtIndexOrDefault(e.lineWidth,n-1),t.options.gridLines.circular)o.beginPath(),o.arc(t.xCenter,t.yCenter,i,0,2*Math.PI),o.closePath(),o.stroke();else{var s=r(t);if(0===s)return;o.beginPath();var l=t.getPointPosition(0,i);o.moveTo(l.x,l.y);for(var u=1;u<s;u++)l=t.getPointPosition(u,i),o.lineTo(l.x,l.y);o.closePath(),o.stroke()}}(t,n,u,s),o.display){var f=l(o.fontColor,e.defaultFontColor);if(d.font=p,d.save(),d.translate(t.xCenter,t.yCenter),d.rotate(c),o.showLabelBackdrop){var g=d.measureText(i).width;d.fillStyle=o.backdropColor,d.fillRect(-g/2-o.backdropPaddingX,-u-h/2-o.backdropPaddingY,g+2*o.backdropPaddingX,h+2*o.backdropPaddingY)}d.textAlign="center",d.textBaseline="middle",d.fillStyle=f,d.fillText(i,0,-u),d.restore()}}}),(i.angleLines.display||i.pointLabels.display)&&function(t){var i=t.ctx,n=t.options,o=n.angleLines,l=n.pointLabels;i.lineWidth=o.lineWidth,i.strokeStyle=o.color;var d,c,h,f,g=t.getDistanceFromCenterForValue(n.ticks.reverse?t.min:t.max),p=s(t);i.textBaseline="top";for(var m=r(t)-1;m>=0;m--){if(o.display){var v=t.getPointPosition(m,g);i.beginPath(),i.moveTo(t.xCenter,t.yCenter),i.lineTo(v.x,v.y),i.stroke(),i.closePath()}if(l.display){var b=t.getPointPosition(m,g+5),x=a.valueAtIndexOrDefault(l.fontColor,m,e.defaultFontColor);i.font=p.font,i.fillStyle=x;var y=t.getIndexAngle(m),k=a.toDegrees(y);i.textAlign=0===(f=k)||180===f?"center":f<180?"left":"right",d=k,c=t._pointLabelSizes[m],h=b,90===d||270===d?h.y-=c.h/2:(d>270||d<90)&&(h.y-=c.h),u(i,t.pointLabels[m]||"",b,p.size)}}}(t)}}});t.scaleService.registerScaleType("radialLinear",c,i)}},{25:25,34:34,45:45}],58:[function(t,e,i){"use strict";var n=t(1);n="function"==typeof n?n:window.moment;var a=t(25),o=t(45),r=Number.MIN_SAFE_INTEGER||-9007199254740991,s=Number.MAX_SAFE_INTEGER||9007199254740991,l={millisecond:{common:!0,size:1,steps:[1,2,5,10,20,50,100,250,500]},second:{common:!0,size:1e3,steps:[1,2,5,10,30]},minute:{common:!0,size:6e4,steps:[1,2,5,10,30]},hour:{common:!0,size:36e5,steps:[1,2,3,6,12]},day:{common:!0,size:864e5,steps:[1,2,5]},week:{common:!1,size:6048e5,steps:[1,2,3,4]},month:{common:!0,size:2628e6,steps:[1,2,3]},quarter:{common:!1,size:7884e6,steps:[1,2,3,4]},year:{common:!0,size:3154e7}},u=Object.keys(l);function d(t,e){return t-e}function c(t){var e,i,n,a={},o=[];for(e=0,i=t.length;e<i;++e)a[n=t[e]]||(a[n]=!0,o.push(n));return o}function h(t,e,i,n){var a=function(t,e,i){for(var n,a,o,r=0,s=t.length-1;r>=0&&r<=s;){if(a=t[(n=r+s>>1)-1]||null,o=t[n],!a)return{lo:null,hi:o};if(o[e]<i)r=n+1;else{if(!(a[e]>i))return{lo:a,hi:o};s=n-1}}return{lo:o,hi:null}}(t,e,i),o=a.lo?a.hi?a.lo:t[t.length-2]:t[0],r=a.lo?a.hi?a.hi:t[t.length-1]:t[1],s=r[e]-o[e],l=s?(i-o[e])/s:0,u=(r[n]-o[n])*l;return o[n]+u}function f(t,e){var i=e.parser,a=e.parser||e.format;return"function"==typeof i?i(t):"string"==typeof t&&"string"==typeof a?n(t,a):(t instanceof n||(t=n(t)),t.isValid()?t:"function"==typeof a?a(t):t)}function g(t,e){if(o.isNullOrUndef(t))return null;var i=e.options.time,n=f(e.getRightValue(t),i);return n.isValid()?(i.round&&n.startOf(i.round),n.valueOf()):null}function p(t){for(var e=u.indexOf(t)+1,i=u.length;e<i;++e)if(l[u[e]].common)return u[e]}function m(t,e,i,a){var r,d=a.time,c=d.unit||function(t,e,i,n){var a,o,r,d=u.length;for(a=u.indexOf(t);a<d-1;++a)if(r=(o=l[u[a]]).steps?o.steps[o.steps.length-1]:s,o.common&&Math.ceil((i-e)/(r*o.size))<=n)return u[a];return u[d-1]}(d.minUnit,t,e,i),h=p(c),f=o.valueOrDefault(d.stepSize,d.unitStepSize),g="week"===c&&d.isoWeekday,m=a.ticks.major.enabled,v=l[c],b=n(t),x=n(e),y=[];for(f||(f=function(t,e,i,n){var a,o,r,s=e-t,u=l[i],d=u.size,c=u.steps;if(!c)return Math.ceil(s/(n*d));for(a=0,o=c.length;a<o&&(r=c[a],!(Math.ceil(s/(d*r))<=n));++a);return r}(t,e,c,i)),g&&(b=b.isoWeekday(g),x=x.isoWeekday(g)),b=b.startOf(g?"day":c),(x=x.startOf(g?"day":c))<e&&x.add(1,c),r=n(b),m&&h&&!g&&!d.round&&(r.startOf(h),r.add(~~((b-r)/(v.size*f))*f,c));r<x;r.add(f,c))y.push(+r);return y.push(+r),y}e.exports=function(t){var e=t.Scale.extend({initialize:function(){if(!n)throw new Error("Chart.js - Moment.js could not be found! You must include it before Chart.js to use the time scale. Download at https://momentjs.com");this.mergeTicksOptions(),t.Scale.prototype.initialize.call(this)},update:function(){var e=this.options;return e.time&&e.time.format&&console.warn("options.time.format is deprecated and replaced by options.time.parser."),t.Scale.prototype.update.apply(this,arguments)},getRightValue:function(e){return e&&void 0!==e.t&&(e=e.t),t.Scale.prototype.getRightValue.call(this,e)},determineDataLimits:function(){var t,e,i,a,l,u,h=this,f=h.chart,p=h.options.time,m=p.unit||"day",v=s,b=r,x=[],y=[],k=[];for(t=0,i=f.data.labels.length;t<i;++t)k.push(g(f.data.labels[t],h));for(t=0,i=(f.data.datasets||[]).length;t<i;++t)if(f.isDatasetVisible(t))if(l=f.data.datasets[t].data,o.isObject(l[0]))for(y[t]=[],e=0,a=l.length;e<a;++e)u=g(l[e],h),x.push(u),y[t][e]=u;else x.push.apply(x,k),y[t]=k.slice(0);else y[t]=[];k.length&&(k=c(k).sort(d),v=Math.min(v,k[0]),b=Math.max(b,k[k.length-1])),x.length&&(x=c(x).sort(d),v=Math.min(v,x[0]),b=Math.max(b,x[x.length-1])),v=g(p.min,h)||v,b=g(p.max,h)||b,v=v===s?+n().startOf(m):v,b=b===r?+n().endOf(m)+1:b,h.min=Math.min(v,b),h.max=Math.max(v+1,b),h._horizontal=h.isHorizontal(),h._table=[],h._timestamps={data:x,datasets:y,labels:k}},buildTicks:function(){var t,e,i,a,o,r,s,d,c,v,b,x,y=this,k=y.min,M=y.max,w=y.options,S=w.time,C=[],_=[];switch(w.ticks.source){case"data":C=y._timestamps.data;break;case"labels":C=y._timestamps.labels;break;case"auto":default:C=m(k,M,y.getLabelCapacity(k),w)}for("ticks"===w.bounds&&C.length&&(k=C[0],M=C[C.length-1]),k=g(S.min,y)||k,M=g(S.max,y)||M,t=0,e=C.length;t<e;++t)(i=C[t])>=k&&i<=M&&_.push(i);return y.min=k,y.max=M,y._unit=S.unit||function(t,e,i,a){var o,r,s=n.duration(n(a).diff(n(i)));for(o=u.length-1;o>=u.indexOf(e);o--)if(r=u[o],l[r].common&&s.as(r)>=t.length)return r;return u[e?u.indexOf(e):0]}(_,S.minUnit,y.min,y.max),y._majorUnit=p(y._unit),y._table=function(t,e,i,n){if("linear"===n||!t.length)return[{time:e,pos:0},{time:i,pos:1}];var a,o,r,s,l,u=[],d=[e];for(a=0,o=t.length;a<o;++a)(s=t[a])>e&&s<i&&d.push(s);for(d.push(i),a=0,o=d.length;a<o;++a)l=d[a+1],r=d[a-1],s=d[a],void 0!==r&&void 0!==l&&Math.round((l+r)/2)===s||u.push({time:s,pos:a/(o-1)});return u}(y._timestamps.data,k,M,w.distribution),y._offsets=(a=y._table,o=_,r=k,s=M,b=0,x=0,(d=w).offset&&o.length&&(d.time.min||(c=o.length>1?o[1]:s,v=o[0],b=(h(a,"time",c,"pos")-h(a,"time",v,"pos"))/2),d.time.max||(c=o[o.length-1],v=o.length>1?o[o.length-2]:r,x=(h(a,"time",c,"pos")-h(a,"time",v,"pos"))/2)),{left:b,right:x}),y._labelFormat=function(t,e){var i,n,a,o=t.length;for(i=0;i<o;i++){if(0!==(n=f(t[i],e)).millisecond())return"MMM D, YYYY h:mm:ss.SSS a";0===n.second()&&0===n.minute()&&0===n.hour()||(a=!0)}return a?"MMM D, YYYY h:mm:ss a":"MMM D, YYYY"}(y._timestamps.data,S),function(t,e){var i,a,o,r,s=[];for(i=0,a=t.length;i<a;++i)o=t[i],r=!!e&&o===+n(o).startOf(e),s.push({value:o,major:r});return s}(_,y._majorUnit)},getLabelForIndex:function(t,e){var i=this.chart.data,n=this.options.time,a=i.labels&&t<i.labels.length?i.labels[t]:"",r=i.datasets[e].data[t];return o.isObject(r)&&(a=this.getRightValue(r)),n.tooltipFormat?f(a,n).format(n.tooltipFormat):"string"==typeof a?a:f(a,n).format(this._labelFormat)},tickFormatFunction:function(t,e,i,n){var a=this.options,r=t.valueOf(),s=a.time.displayFormats,l=s[this._unit],u=this._majorUnit,d=s[u],c=t.clone().startOf(u).valueOf(),h=a.ticks.major,f=h.enabled&&u&&d&&r===c,g=t.format(n||(f?d:l)),p=f?h:a.ticks.minor,m=o.valueOrDefault(p.callback,p.userCallback);return m?m(g,e,i):g},convertTicksToLabels:function(t){var e,i,a=[];for(e=0,i=t.length;e<i;++e)a.push(this.tickFormatFunction(n(t[e].value),e,t));return a},getPixelForOffset:function(t){var e=this,i=e._horizontal?e.width:e.height,n=e._horizontal?e.left:e.top,a=h(e._table,"time",t,"pos");return n+i*(e._offsets.left+a)/(e._offsets.left+1+e._offsets.right)},getPixelForValue:function(t,e,i){var n=null;if(void 0!==e&&void 0!==i&&(n=this._timestamps.datasets[i][e]),null===n&&(n=g(t,this)),null!==n)return this.getPixelForOffset(n)},getPixelForTick:function(t){var e=this.getTicks();return t>=0&&t<e.length?this.getPixelForOffset(e[t].value):null},getValueForPixel:function(t){var e=this,i=e._horizontal?e.width:e.height,a=e._horizontal?e.left:e.top,o=(i?(t-a)/i:0)*(e._offsets.left+1+e._offsets.left)-e._offsets.right,r=h(e._table,"pos",o,"time");return n(r)},getLabelWidth:function(t){var e=this.options.ticks,i=this.ctx.measureText(t).width,n=o.toRadians(e.maxRotation),r=Math.cos(n),s=Math.sin(n);return i*r+o.valueOrDefault(e.fontSize,a.global.defaultFontSize)*s},getLabelCapacity:function(t){var e=this,i=e.options.time.displayFormats.millisecond,a=e.tickFormatFunction(n(t),0,[],i),o=e.getLabelWidth(a),r=e.isHorizontal()?e.width:e.height,s=Math.floor(r/o);return s>0?s:1}});t.scaleService.registerScaleType("time",e,{position:"bottom",distribution:"linear",bounds:"data",time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}})}},{1:1,25:25,45:45}]},{},[7])(7)});
|
|
|
|
|
|
|
|
|
|
|
|
1 |
/*!
|
2 |
+
* Chart.js v3.7.1
|
3 |
+
* https://www.chartjs.org
|
4 |
+
* (c) 2022 Chart.js Contributors
|
5 |
+
* Released under the MIT License
|
|
|
|
|
|
|
6 |
*/
|
7 |
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Chart=e()}(this,(function(){"use strict";const t="undefined"==typeof window?function(t){return t()}:window.requestAnimationFrame;function e(e,i,s){const n=s||(t=>Array.prototype.slice.call(t));let o=!1,a=[];return function(...s){a=n(s),o||(o=!0,t.call(window,(()=>{o=!1,e.apply(i,a)})))}}function i(t,e){let i;return function(...s){return e?(clearTimeout(i),i=setTimeout(t,e,s)):t.apply(this,s),e}}const s=t=>"start"===t?"left":"end"===t?"right":"center",n=(t,e,i)=>"start"===t?e:"end"===t?i:(e+i)/2,o=(t,e,i,s)=>t===(s?"left":"right")?i:"center"===t?(e+i)/2:e;var a=new class{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(t,e,i,s){const n=e.listeners[s],o=e.duration;n.forEach((s=>s({chart:t,initial:e.initial,numSteps:o,currentStep:Math.min(i-e.start,o)})))}_refresh(){this._request||(this._running=!0,this._request=t.call(window,(()=>{this._update(),this._request=null,this._running&&this._refresh()})))}_update(t=Date.now()){let e=0;this._charts.forEach(((i,s)=>{if(!i.running||!i.items.length)return;const n=i.items;let o,a=n.length-1,r=!1;for(;a>=0;--a)o=n[a],o._active?(o._total>i.duration&&(i.duration=o._total),o.tick(t),r=!0):(n[a]=n[n.length-1],n.pop());r&&(s.draw(),this._notify(s,i,t,"progress")),n.length||(i.running=!1,this._notify(s,i,t,"complete"),i.initial=!1),e+=n.length})),this._lastDate=t,0===e&&(this._running=!1)}_getAnims(t){const e=this._charts;let i=e.get(t);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(t,i)),i}listen(t,e,i){this._getAnims(t).listeners[e].push(i)}add(t,e){e&&e.length&&this._getAnims(t).items.push(...e)}has(t){return this._getAnims(t).items.length>0}start(t){const e=this._charts.get(t);e&&(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce(((t,e)=>Math.max(t,e._duration)),0),this._refresh())}running(t){if(!this._running)return!1;const e=this._charts.get(t);return!!(e&&e.running&&e.items.length)}stop(t){const e=this._charts.get(t);if(!e||!e.items.length)return;const i=e.items;let s=i.length-1;for(;s>=0;--s)i[s].cancel();e.items=[],this._notify(t,e,Date.now(),"complete")}remove(t){return this._charts.delete(t)}};
|
8 |
+
/*!
|
9 |
+
* @kurkle/color v0.1.9
|
10 |
+
* https://github.com/kurkle/color#readme
|
11 |
+
* (c) 2020 Jukka Kurkela
|
12 |
+
* Released under the MIT License
|
13 |
+
*/const r={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},l="0123456789ABCDEF",h=t=>l[15&t],c=t=>l[(240&t)>>4]+l[15&t],d=t=>(240&t)>>4==(15&t);function u(t){var e=function(t){return d(t.r)&&d(t.g)&&d(t.b)&&d(t.a)}(t)?h:c;return t?"#"+e(t.r)+e(t.g)+e(t.b)+(t.a<255?e(t.a):""):t}function f(t){return t+.5|0}const g=(t,e,i)=>Math.max(Math.min(t,i),e);function p(t){return g(f(2.55*t),0,255)}function m(t){return g(f(255*t),0,255)}function x(t){return g(f(t/2.55)/100,0,1)}function b(t){return g(f(100*t),0,100)}const _=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;const y=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function v(t,e,i){const s=e*Math.min(i,1-i),n=(e,n=(e+t/30)%12)=>i-s*Math.max(Math.min(n-3,9-n,1),-1);return[n(0),n(8),n(4)]}function w(t,e,i){const s=(s,n=(s+t/60)%6)=>i-i*e*Math.max(Math.min(n,4-n,1),0);return[s(5),s(3),s(1)]}function M(t,e,i){const s=v(t,1,.5);let n;for(e+i>1&&(n=1/(e+i),e*=n,i*=n),n=0;n<3;n++)s[n]*=1-e-i,s[n]+=e;return s}function k(t){const e=t.r/255,i=t.g/255,s=t.b/255,n=Math.max(e,i,s),o=Math.min(e,i,s),a=(n+o)/2;let r,l,h;return n!==o&&(h=n-o,l=a>.5?h/(2-n-o):h/(n+o),r=n===e?(i-s)/h+(i<s?6:0):n===i?(s-e)/h+2:(e-i)/h+4,r=60*r+.5),[0|r,l||0,a]}function S(t,e,i,s){return(Array.isArray(e)?t(e[0],e[1],e[2]):t(e,i,s)).map(m)}function P(t,e,i){return S(v,t,e,i)}function D(t){return(t%360+360)%360}function C(t){const e=y.exec(t);let i,s=255;if(!e)return;e[5]!==i&&(s=e[6]?p(+e[5]):m(+e[5]));const n=D(+e[2]),o=+e[3]/100,a=+e[4]/100;return i="hwb"===e[1]?function(t,e,i){return S(M,t,e,i)}(n,o,a):"hsv"===e[1]?function(t,e,i){return S(w,t,e,i)}(n,o,a):P(n,o,a),{r:i[0],g:i[1],b:i[2],a:s}}const O={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},A={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};let T;function L(t){T||(T=function(){const t={},e=Object.keys(A),i=Object.keys(O);let s,n,o,a,r;for(s=0;s<e.length;s++){for(a=r=e[s],n=0;n<i.length;n++)o=i[n],r=r.replace(o,O[o]);o=parseInt(A[a],16),t[r]=[o>>16&255,o>>8&255,255&o]}return t}(),T.transparent=[0,0,0,0]);const e=T[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:4===e.length?e[3]:255}}function R(t,e,i){if(t){let s=k(t);s[e]=Math.max(0,Math.min(s[e]+s[e]*i,0===e?360:1)),s=P(s),t.r=s[0],t.g=s[1],t.b=s[2]}}function E(t,e){return t?Object.assign(e||{},t):t}function I(t){var e={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(e={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(e.a=m(t[3]))):(e=E(t,{r:0,g:0,b:0,a:1})).a=m(e.a),e}function z(t){return"r"===t.charAt(0)?function(t){const e=_.exec(t);let i,s,n,o=255;if(e){if(e[7]!==i){const t=+e[7];o=255&(e[8]?p(t):255*t)}return i=+e[1],s=+e[3],n=+e[5],i=255&(e[2]?p(i):i),s=255&(e[4]?p(s):s),n=255&(e[6]?p(n):n),{r:i,g:s,b:n,a:o}}}(t):C(t)}class F{constructor(t){if(t instanceof F)return t;const e=typeof t;let i;var s,n,o;"object"===e?i=I(t):"string"===e&&(o=(s=t).length,"#"===s[0]&&(4===o||5===o?n={r:255&17*r[s[1]],g:255&17*r[s[2]],b:255&17*r[s[3]],a:5===o?17*r[s[4]]:255}:7!==o&&9!==o||(n={r:r[s[1]]<<4|r[s[2]],g:r[s[3]]<<4|r[s[4]],b:r[s[5]]<<4|r[s[6]],a:9===o?r[s[7]]<<4|r[s[8]]:255})),i=n||L(t)||z(t)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var t=E(this._rgb);return t&&(t.a=x(t.a)),t}set rgb(t){this._rgb=I(t)}rgbString(){return this._valid?(t=this._rgb)&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${x(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`):this._rgb;var t}hexString(){return this._valid?u(this._rgb):this._rgb}hslString(){return this._valid?function(t){if(!t)return;const e=k(t),i=e[0],s=b(e[1]),n=b(e[2]);return t.a<255?`hsla(${i}, ${s}%, ${n}%, ${x(t.a)})`:`hsl(${i}, ${s}%, ${n}%)`}(this._rgb):this._rgb}mix(t,e){const i=this;if(t){const s=i.rgb,n=t.rgb;let o;const a=e===o?.5:e,r=2*a-1,l=s.a-n.a,h=((r*l==-1?r:(r+l)/(1+r*l))+1)/2;o=1-h,s.r=255&h*s.r+o*n.r+.5,s.g=255&h*s.g+o*n.g+.5,s.b=255&h*s.b+o*n.b+.5,s.a=a*s.a+(1-a)*n.a,i.rgb=s}return i}clone(){return new F(this.rgb)}alpha(t){return this._rgb.a=m(t),this}clearer(t){return this._rgb.a*=1-t,this}greyscale(){const t=this._rgb,e=f(.3*t.r+.59*t.g+.11*t.b);return t.r=t.g=t.b=e,this}opaquer(t){return this._rgb.a*=1+t,this}negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,this}lighten(t){return R(this._rgb,2,t),this}darken(t){return R(this._rgb,2,-t),this}saturate(t){return R(this._rgb,1,t),this}desaturate(t){return R(this._rgb,1,-t),this}rotate(t){return function(t,e){var i=k(t);i[0]=D(i[0]+e),i=P(i),t.r=i[0],t.g=i[1],t.b=i[2]}(this._rgb,t),this}}function B(t){return new F(t)}const V=t=>t instanceof CanvasGradient||t instanceof CanvasPattern;function W(t){return V(t)?t:B(t)}function N(t){return V(t)?t:B(t).saturate(.5).darken(.1).hexString()}function H(){}const j=function(){let t=0;return function(){return t++}}();function $(t){return null==t}function Y(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return"[object"===e.substr(0,7)&&"Array]"===e.substr(-6)}function U(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)}const X=t=>("number"==typeof t||t instanceof Number)&&isFinite(+t);function q(t,e){return X(t)?t:e}function K(t,e){return void 0===t?e:t}const G=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100:t/e,Z=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100*e:+t;function J(t,e,i){if(t&&"function"==typeof t.call)return t.apply(i,e)}function Q(t,e,i,s){let n,o,a;if(Y(t))if(o=t.length,s)for(n=o-1;n>=0;n--)e.call(i,t[n],n);else for(n=0;n<o;n++)e.call(i,t[n],n);else if(U(t))for(a=Object.keys(t),o=a.length,n=0;n<o;n++)e.call(i,t[a[n]],a[n])}function tt(t,e){let i,s,n,o;if(!t||!e||t.length!==e.length)return!1;for(i=0,s=t.length;i<s;++i)if(n=t[i],o=e[i],n.datasetIndex!==o.datasetIndex||n.index!==o.index)return!1;return!0}function et(t){if(Y(t))return t.map(et);if(U(t)){const e=Object.create(null),i=Object.keys(t),s=i.length;let n=0;for(;n<s;++n)e[i[n]]=et(t[i[n]]);return e}return t}function it(t){return-1===["__proto__","prototype","constructor"].indexOf(t)}function st(t,e,i,s){if(!it(t))return;const n=e[t],o=i[t];U(n)&&U(o)?nt(n,o,s):e[t]=et(o)}function nt(t,e,i){const s=Y(e)?e:[e],n=s.length;if(!U(t))return t;const o=(i=i||{}).merger||st;for(let a=0;a<n;++a){if(!U(e=s[a]))continue;const n=Object.keys(e);for(let s=0,a=n.length;s<a;++s)o(n[s],t,e,i)}return t}function ot(t,e){return nt(t,e,{merger:at})}function at(t,e,i){if(!it(t))return;const s=e[t],n=i[t];U(s)&&U(n)?ot(s,n):Object.prototype.hasOwnProperty.call(e,t)||(e[t]=et(n))}function rt(t,e){const i=t.indexOf(".",e);return-1===i?t.length:i}function lt(t,e){if(""===e)return t;let i=0,s=rt(e,i);for(;t&&s>i;)t=t[e.substr(i,s-i)],i=s+1,s=rt(e,i);return t}function ht(t){return t.charAt(0).toUpperCase()+t.slice(1)}const ct=t=>void 0!==t,dt=t=>"function"==typeof t,ut=(t,e)=>{if(t.size!==e.size)return!1;for(const i of t)if(!e.has(i))return!1;return!0};function ft(t){return"mouseup"===t.type||"click"===t.type||"contextmenu"===t.type}const gt=Object.create(null),pt=Object.create(null);function mt(t,e){if(!e)return t;const i=e.split(".");for(let e=0,s=i.length;e<s;++e){const s=i[e];t=t[s]||(t[s]=Object.create(null))}return t}function xt(t,e,i){return"string"==typeof e?nt(mt(t,e),i):nt(mt(t,""),e)}var bt=new class{constructor(t){this.animation=void 0,this.backgroundColor="rgba(0,0,0,0.1)",this.borderColor="rgba(0,0,0,0.1)",this.color="#666",this.datasets={},this.devicePixelRatio=t=>t.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(t,e)=>N(e.backgroundColor),this.hoverBorderColor=(t,e)=>N(e.borderColor),this.hoverColor=(t,e)=>N(e.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(t)}set(t,e){return xt(this,t,e)}get(t){return mt(this,t)}describe(t,e){return xt(pt,t,e)}override(t,e){return xt(gt,t,e)}route(t,e,i,s){const n=mt(this,t),o=mt(this,i),a="_"+e;Object.defineProperties(n,{[a]:{value:n[e],writable:!0},[e]:{enumerable:!0,get(){const t=this[a],e=o[s];return U(t)?Object.assign({},e,t):K(t,e)},set(t){this[a]=t}}})}}({_scriptable:t=>!t.startsWith("on"),_indexable:t=>"events"!==t,hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}});const _t=Math.PI,yt=2*_t,vt=yt+_t,wt=Number.POSITIVE_INFINITY,Mt=_t/180,kt=_t/2,St=_t/4,Pt=2*_t/3,Dt=Math.log10,Ct=Math.sign;function Ot(t){const e=Math.round(t);t=Lt(t,e,t/1e3)?e:t;const i=Math.pow(10,Math.floor(Dt(t))),s=t/i;return(s<=1?1:s<=2?2:s<=5?5:10)*i}function At(t){const e=[],i=Math.sqrt(t);let s;for(s=1;s<i;s++)t%s==0&&(e.push(s),e.push(t/s));return i===(0|i)&&e.push(i),e.sort(((t,e)=>t-e)).pop(),e}function Tt(t){return!isNaN(parseFloat(t))&&isFinite(t)}function Lt(t,e,i){return Math.abs(t-e)<i}function Rt(t,e){const i=Math.round(t);return i-e<=t&&i+e>=t}function Et(t,e,i){let s,n,o;for(s=0,n=t.length;s<n;s++)o=t[s][i],isNaN(o)||(e.min=Math.min(e.min,o),e.max=Math.max(e.max,o))}function It(t){return t*(_t/180)}function zt(t){return t*(180/_t)}function Ft(t){if(!X(t))return;let e=1,i=0;for(;Math.round(t*e)/e!==t;)e*=10,i++;return i}function Bt(t,e){const i=e.x-t.x,s=e.y-t.y,n=Math.sqrt(i*i+s*s);let o=Math.atan2(s,i);return o<-.5*_t&&(o+=yt),{angle:o,distance:n}}function Vt(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function Wt(t,e){return(t-e+vt)%yt-_t}function Nt(t){return(t%yt+yt)%yt}function Ht(t,e,i,s){const n=Nt(t),o=Nt(e),a=Nt(i),r=Nt(o-n),l=Nt(a-n),h=Nt(n-o),c=Nt(n-a);return n===o||n===a||s&&o===a||r>l&&h<c}function jt(t,e,i){return Math.max(e,Math.min(i,t))}function $t(t){return jt(t,-32768,32767)}function Yt(t,e,i,s=1e-6){return t>=Math.min(e,i)-s&&t<=Math.max(e,i)+s}function Ut(t){return!t||$(t.size)||$(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}function Xt(t,e,i,s,n){let o=e[n];return o||(o=e[n]=t.measureText(n).width,i.push(n)),o>s&&(s=o),s}function qt(t,e,i,s){let n=(s=s||{}).data=s.data||{},o=s.garbageCollect=s.garbageCollect||[];s.font!==e&&(n=s.data={},o=s.garbageCollect=[],s.font=e),t.save(),t.font=e;let a=0;const r=i.length;let l,h,c,d,u;for(l=0;l<r;l++)if(d=i[l],null!=d&&!0!==Y(d))a=Xt(t,n,o,a,d);else if(Y(d))for(h=0,c=d.length;h<c;h++)u=d[h],null==u||Y(u)||(a=Xt(t,n,o,a,u));t.restore();const f=o.length/2;if(f>i.length){for(l=0;l<f;l++)delete n[o[l]];o.splice(0,f)}return a}function Kt(t,e,i){const s=t.currentDevicePixelRatio,n=0!==i?Math.max(i/2,.5):0;return Math.round((e-n)*s)/s+n}function Gt(t,e){(e=e||t.getContext("2d")).save(),e.resetTransform(),e.clearRect(0,0,t.width,t.height),e.restore()}function Zt(t,e,i,s){let n,o,a,r,l;const h=e.pointStyle,c=e.rotation,d=e.radius;let u=(c||0)*Mt;if(h&&"object"==typeof h&&(n=h.toString(),"[object HTMLImageElement]"===n||"[object HTMLCanvasElement]"===n))return t.save(),t.translate(i,s),t.rotate(u),t.drawImage(h,-h.width/2,-h.height/2,h.width,h.height),void t.restore();if(!(isNaN(d)||d<=0)){switch(t.beginPath(),h){default:t.arc(i,s,d,0,yt),t.closePath();break;case"triangle":t.moveTo(i+Math.sin(u)*d,s-Math.cos(u)*d),u+=Pt,t.lineTo(i+Math.sin(u)*d,s-Math.cos(u)*d),u+=Pt,t.lineTo(i+Math.sin(u)*d,s-Math.cos(u)*d),t.closePath();break;case"rectRounded":l=.516*d,r=d-l,o=Math.cos(u+St)*r,a=Math.sin(u+St)*r,t.arc(i-o,s-a,l,u-_t,u-kt),t.arc(i+a,s-o,l,u-kt,u),t.arc(i+o,s+a,l,u,u+kt),t.arc(i-a,s+o,l,u+kt,u+_t),t.closePath();break;case"rect":if(!c){r=Math.SQRT1_2*d,t.rect(i-r,s-r,2*r,2*r);break}u+=St;case"rectRot":o=Math.cos(u)*d,a=Math.sin(u)*d,t.moveTo(i-o,s-a),t.lineTo(i+a,s-o),t.lineTo(i+o,s+a),t.lineTo(i-a,s+o),t.closePath();break;case"crossRot":u+=St;case"cross":o=Math.cos(u)*d,a=Math.sin(u)*d,t.moveTo(i-o,s-a),t.lineTo(i+o,s+a),t.moveTo(i+a,s-o),t.lineTo(i-a,s+o);break;case"star":o=Math.cos(u)*d,a=Math.sin(u)*d,t.moveTo(i-o,s-a),t.lineTo(i+o,s+a),t.moveTo(i+a,s-o),t.lineTo(i-a,s+o),u+=St,o=Math.cos(u)*d,a=Math.sin(u)*d,t.moveTo(i-o,s-a),t.lineTo(i+o,s+a),t.moveTo(i+a,s-o),t.lineTo(i-a,s+o);break;case"line":o=Math.cos(u)*d,a=Math.sin(u)*d,t.moveTo(i-o,s-a),t.lineTo(i+o,s+a);break;case"dash":t.moveTo(i,s),t.lineTo(i+Math.cos(u)*d,s+Math.sin(u)*d)}t.fill(),e.borderWidth>0&&t.stroke()}}function Jt(t,e,i){return i=i||.5,!e||t&&t.x>e.left-i&&t.x<e.right+i&&t.y>e.top-i&&t.y<e.bottom+i}function Qt(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()}function te(t){t.restore()}function ee(t,e,i,s,n){if(!e)return t.lineTo(i.x,i.y);if("middle"===n){const s=(e.x+i.x)/2;t.lineTo(s,e.y),t.lineTo(s,i.y)}else"after"===n!=!!s?t.lineTo(e.x,i.y):t.lineTo(i.x,e.y);t.lineTo(i.x,i.y)}function ie(t,e,i,s){if(!e)return t.lineTo(i.x,i.y);t.bezierCurveTo(s?e.cp1x:e.cp2x,s?e.cp1y:e.cp2y,s?i.cp2x:i.cp1x,s?i.cp2y:i.cp1y,i.x,i.y)}function se(t,e,i,s,n,o={}){const a=Y(e)?e:[e],r=o.strokeWidth>0&&""!==o.strokeColor;let l,h;for(t.save(),t.font=n.string,function(t,e){e.translation&&t.translate(e.translation[0],e.translation[1]);$(e.rotation)||t.rotate(e.rotation);e.color&&(t.fillStyle=e.color);e.textAlign&&(t.textAlign=e.textAlign);e.textBaseline&&(t.textBaseline=e.textBaseline)}(t,o),l=0;l<a.length;++l)h=a[l],r&&(o.strokeColor&&(t.strokeStyle=o.strokeColor),$(o.strokeWidth)||(t.lineWidth=o.strokeWidth),t.strokeText(h,i,s,o.maxWidth)),t.fillText(h,i,s,o.maxWidth),ne(t,i,s,h,o),s+=n.lineHeight;t.restore()}function ne(t,e,i,s,n){if(n.strikethrough||n.underline){const o=t.measureText(s),a=e-o.actualBoundingBoxLeft,r=e+o.actualBoundingBoxRight,l=i-o.actualBoundingBoxAscent,h=i+o.actualBoundingBoxDescent,c=n.strikethrough?(l+h)/2:h;t.strokeStyle=t.fillStyle,t.beginPath(),t.lineWidth=n.decorationWidth||2,t.moveTo(a,c),t.lineTo(r,c),t.stroke()}}function oe(t,e){const{x:i,y:s,w:n,h:o,radius:a}=e;t.arc(i+a.topLeft,s+a.topLeft,a.topLeft,-kt,_t,!0),t.lineTo(i,s+o-a.bottomLeft),t.arc(i+a.bottomLeft,s+o-a.bottomLeft,a.bottomLeft,_t,kt,!0),t.lineTo(i+n-a.bottomRight,s+o),t.arc(i+n-a.bottomRight,s+o-a.bottomRight,a.bottomRight,kt,0,!0),t.lineTo(i+n,s+a.topRight),t.arc(i+n-a.topRight,s+a.topRight,a.topRight,0,-kt,!0),t.lineTo(i+a.topLeft,s)}function ae(t,e,i){i=i||(i=>t[i]<e);let s,n=t.length-1,o=0;for(;n-o>1;)s=o+n>>1,i(s)?o=s:n=s;return{lo:o,hi:n}}const re=(t,e,i)=>ae(t,i,(s=>t[s][e]<i)),le=(t,e,i)=>ae(t,i,(s=>t[s][e]>=i));function he(t,e,i){let s=0,n=t.length;for(;s<n&&t[s]<e;)s++;for(;n>s&&t[n-1]>i;)n--;return s>0||n<t.length?t.slice(s,n):t}const ce=["push","pop","shift","splice","unshift"];function de(t,e){t._chartjs?t._chartjs.listeners.push(e):(Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),ce.forEach((e=>{const i="_onData"+ht(e),s=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value(...e){const n=s.apply(this,e);return t._chartjs.listeners.forEach((t=>{"function"==typeof t[i]&&t[i](...e)})),n}})})))}function ue(t,e){const i=t._chartjs;if(!i)return;const s=i.listeners,n=s.indexOf(e);-1!==n&&s.splice(n,1),s.length>0||(ce.forEach((e=>{delete t[e]})),delete t._chartjs)}function fe(t){const e=new Set;let i,s;for(i=0,s=t.length;i<s;++i)e.add(t[i]);return e.size===s?t:Array.from(e)}function ge(){return"undefined"!=typeof window&&"undefined"!=typeof document}function pe(t){let e=t.parentNode;return e&&"[object ShadowRoot]"===e.toString()&&(e=e.host),e}function me(t,e,i){let s;return"string"==typeof t?(s=parseInt(t,10),-1!==t.indexOf("%")&&(s=s/100*e.parentNode[i])):s=t,s}const xe=t=>window.getComputedStyle(t,null);function be(t,e){return xe(t).getPropertyValue(e)}const _e=["top","right","bottom","left"];function ye(t,e,i){const s={};i=i?"-"+i:"";for(let n=0;n<4;n++){const o=_e[n];s[o]=parseFloat(t[e+"-"+o+i])||0}return s.width=s.left+s.right,s.height=s.top+s.bottom,s}function ve(t,e){const{canvas:i,currentDevicePixelRatio:s}=e,n=xe(i),o="border-box"===n.boxSizing,a=ye(n,"padding"),r=ye(n,"border","width"),{x:l,y:h,box:c}=function(t,e){const i=t.native||t,s=i.touches,n=s&&s.length?s[0]:i,{offsetX:o,offsetY:a}=n;let r,l,h=!1;if(((t,e,i)=>(t>0||e>0)&&(!i||!i.shadowRoot))(o,a,i.target))r=o,l=a;else{const t=e.getBoundingClientRect();r=n.clientX-t.left,l=n.clientY-t.top,h=!0}return{x:r,y:l,box:h}}(t,i),d=a.left+(c&&r.left),u=a.top+(c&&r.top);let{width:f,height:g}=e;return o&&(f-=a.width+r.width,g-=a.height+r.height),{x:Math.round((l-d)/f*i.width/s),y:Math.round((h-u)/g*i.height/s)}}const we=t=>Math.round(10*t)/10;function Me(t,e,i,s){const n=xe(t),o=ye(n,"margin"),a=me(n.maxWidth,t,"clientWidth")||wt,r=me(n.maxHeight,t,"clientHeight")||wt,l=function(t,e,i){let s,n;if(void 0===e||void 0===i){const o=pe(t);if(o){const t=o.getBoundingClientRect(),a=xe(o),r=ye(a,"border","width"),l=ye(a,"padding");e=t.width-l.width-r.width,i=t.height-l.height-r.height,s=me(a.maxWidth,o,"clientWidth"),n=me(a.maxHeight,o,"clientHeight")}else e=t.clientWidth,i=t.clientHeight}return{width:e,height:i,maxWidth:s||wt,maxHeight:n||wt}}(t,e,i);let{width:h,height:c}=l;if("content-box"===n.boxSizing){const t=ye(n,"border","width"),e=ye(n,"padding");h-=e.width+t.width,c-=e.height+t.height}return h=Math.max(0,h-o.width),c=Math.max(0,s?Math.floor(h/s):c-o.height),h=we(Math.min(h,a,l.maxWidth)),c=we(Math.min(c,r,l.maxHeight)),h&&!c&&(c=we(h/2)),{width:h,height:c}}function ke(t,e,i){const s=e||1,n=Math.floor(t.height*s),o=Math.floor(t.width*s);t.height=n/s,t.width=o/s;const a=t.canvas;return a.style&&(i||!a.style.height&&!a.style.width)&&(a.style.height=`${t.height}px`,a.style.width=`${t.width}px`),(t.currentDevicePixelRatio!==s||a.height!==n||a.width!==o)&&(t.currentDevicePixelRatio=s,a.height=n,a.width=o,t.ctx.setTransform(s,0,0,s,0,0),!0)}const Se=function(){let t=!1;try{const e={get passive(){return t=!0,!1}};window.addEventListener("test",null,e),window.removeEventListener("test",null,e)}catch(t){}return t}();function Pe(t,e){const i=be(t,e),s=i&&i.match(/^(\d+)(\.\d+)?px$/);return s?+s[1]:void 0}function De(t,e){return"native"in t?{x:t.x,y:t.y}:ve(t,e)}function Ce(t,e,i,s){const{controller:n,data:o,_sorted:a}=t,r=n._cachedMeta.iScale;if(r&&e===r.axis&&"r"!==e&&a&&o.length){const t=r._reversePixels?le:re;if(!s)return t(o,e,i);if(n._sharedOptions){const s=o[0],n="function"==typeof s.getRange&&s.getRange(e);if(n){const s=t(o,e,i-n),a=t(o,e,i+n);return{lo:s.lo,hi:a.hi}}}}return{lo:0,hi:o.length-1}}function Oe(t,e,i,s,n){const o=t.getSortedVisibleDatasetMetas(),a=i[e];for(let t=0,i=o.length;t<i;++t){const{index:i,data:r}=o[t],{lo:l,hi:h}=Ce(o[t],e,a,n);for(let t=l;t<=h;++t){const e=r[t];e.skip||s(e,i,t)}}}function Ae(t,e,i,s){const n=[];if(!Jt(e,t.chartArea,t._minPadding))return n;return Oe(t,i,e,(function(t,i,o){t.inRange(e.x,e.y,s)&&n.push({element:t,datasetIndex:i,index:o})}),!0),n}function Te(t,e,i,s,n){let o=[];const a=function(t){const e=-1!==t.indexOf("x"),i=-1!==t.indexOf("y");return function(t,s){const n=e?Math.abs(t.x-s.x):0,o=i?Math.abs(t.y-s.y):0;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))}}(i);let r=Number.POSITIVE_INFINITY;return Oe(t,i,e,(function(i,l,h){const c=i.inRange(e.x,e.y,n);if(s&&!c)return;const d=i.getCenterPoint(n);if(!Jt(d,t.chartArea,t._minPadding)&&!c)return;const u=a(e,d);u<r?(o=[{element:i,datasetIndex:l,index:h}],r=u):u===r&&o.push({element:i,datasetIndex:l,index:h})})),o}function Le(t,e,i,s,n){return Jt(e,t.chartArea,t._minPadding)?"r"!==i||s?Te(t,e,i,s,n):function(t,e,i,s){let n=[];return Oe(t,i,e,(function(t,i,o){const{startAngle:a,endAngle:r}=t.getProps(["startAngle","endAngle"],s),{angle:l}=Bt(t,{x:e.x,y:e.y});Ht(l,a,r)&&n.push({element:t,datasetIndex:i,index:o})})),n}(t,e,i,n):[]}function Re(t,e,i,s){const n=De(e,t),o=[],a=i.axis,r="x"===a?"inXRange":"inYRange";let l=!1;return function(t,e){const i=t.getSortedVisibleDatasetMetas();let s,n,o;for(let t=0,a=i.length;t<a;++t){({index:s,data:n}=i[t]);for(let t=0,i=n.length;t<i;++t)o=n[t],o.skip||e(o,s,t)}}(t,((t,e,i)=>{t[r](n[a],s)&&o.push({element:t,datasetIndex:e,index:i}),t.inRange(n.x,n.y,s)&&(l=!0)})),i.intersect&&!l?[]:o}var Ee={modes:{index(t,e,i,s){const n=De(e,t),o=i.axis||"x",a=i.intersect?Ae(t,n,o,s):Le(t,n,o,!1,s),r=[];return a.length?(t.getSortedVisibleDatasetMetas().forEach((t=>{const e=a[0].index,i=t.data[e];i&&!i.skip&&r.push({element:i,datasetIndex:t.index,index:e})})),r):[]},dataset(t,e,i,s){const n=De(e,t),o=i.axis||"xy";let a=i.intersect?Ae(t,n,o,s):Le(t,n,o,!1,s);if(a.length>0){const e=a[0].datasetIndex,i=t.getDatasetMeta(e).data;a=[];for(let t=0;t<i.length;++t)a.push({element:i[t],datasetIndex:e,index:t})}return a},point:(t,e,i,s)=>Ae(t,De(e,t),i.axis||"xy",s),nearest:(t,e,i,s)=>Le(t,De(e,t),i.axis||"xy",i.intersect,s),x:(t,e,i,s)=>Re(t,e,{axis:"x",intersect:i.intersect},s),y:(t,e,i,s)=>Re(t,e,{axis:"y",intersect:i.intersect},s)}};const Ie=new RegExp(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/),ze=new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);function Fe(t,e){const i=(""+t).match(Ie);if(!i||"normal"===i[1])return 1.2*e;switch(t=+i[2],i[3]){case"px":return t;case"%":t/=100}return e*t}function Be(t,e){const i={},s=U(e),n=s?Object.keys(e):e,o=U(t)?s?i=>K(t[i],t[e[i]]):e=>t[e]:()=>t;for(const t of n)i[t]=+o(t)||0;return i}function Ve(t){return Be(t,{top:"y",right:"x",bottom:"y",left:"x"})}function We(t){return Be(t,["topLeft","topRight","bottomLeft","bottomRight"])}function Ne(t){const e=Ve(t);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function He(t,e){t=t||{},e=e||bt.font;let i=K(t.size,e.size);"string"==typeof i&&(i=parseInt(i,10));let s=K(t.style,e.style);s&&!(""+s).match(ze)&&(console.warn('Invalid font style specified: "'+s+'"'),s="");const n={family:K(t.family,e.family),lineHeight:Fe(K(t.lineHeight,e.lineHeight),i),size:i,style:s,weight:K(t.weight,e.weight),string:""};return n.string=Ut(n),n}function je(t,e,i,s){let n,o,a,r=!0;for(n=0,o=t.length;n<o;++n)if(a=t[n],void 0!==a&&(void 0!==e&&"function"==typeof a&&(a=a(e),r=!1),void 0!==i&&Y(a)&&(a=a[i%a.length],r=!1),void 0!==a))return s&&!r&&(s.cacheable=!1),a}function $e(t,e,i){const{min:s,max:n}=t,o=Z(e,(n-s)/2),a=(t,e)=>i&&0===t?0:t+e;return{min:a(s,-Math.abs(o)),max:a(n,o)}}function Ye(t,e){return Object.assign(Object.create(t),e)}const Ue=["left","top","right","bottom"];function Xe(t,e){return t.filter((t=>t.pos===e))}function qe(t,e){return t.filter((t=>-1===Ue.indexOf(t.pos)&&t.box.axis===e))}function Ke(t,e){return t.sort(((t,i)=>{const s=e?i:t,n=e?t:i;return s.weight===n.weight?s.index-n.index:s.weight-n.weight}))}function Ge(t,e){const i=function(t){const e={};for(const i of t){const{stack:t,pos:s,stackWeight:n}=i;if(!t||!Ue.includes(s))continue;const o=e[t]||(e[t]={count:0,placed:0,weight:0,size:0});o.count++,o.weight+=n}return e}(t),{vBoxMaxWidth:s,hBoxMaxHeight:n}=e;let o,a,r;for(o=0,a=t.length;o<a;++o){r=t[o];const{fullSize:a}=r.box,l=i[r.stack],h=l&&r.stackWeight/l.weight;r.horizontal?(r.width=h?h*s:a&&e.availableWidth,r.height=n):(r.width=s,r.height=h?h*n:a&&e.availableHeight)}return i}function Ze(t,e,i,s){return Math.max(t[i],e[i])+Math.max(t[s],e[s])}function Je(t,e){t.top=Math.max(t.top,e.top),t.left=Math.max(t.left,e.left),t.bottom=Math.max(t.bottom,e.bottom),t.right=Math.max(t.right,e.right)}function Qe(t,e,i,s){const{pos:n,box:o}=i,a=t.maxPadding;if(!U(n)){i.size&&(t[n]-=i.size);const e=s[i.stack]||{size:0,count:1};e.size=Math.max(e.size,i.horizontal?o.height:o.width),i.size=e.size/e.count,t[n]+=i.size}o.getPadding&&Je(a,o.getPadding());const r=Math.max(0,e.outerWidth-Ze(a,t,"left","right")),l=Math.max(0,e.outerHeight-Ze(a,t,"top","bottom")),h=r!==t.w,c=l!==t.h;return t.w=r,t.h=l,i.horizontal?{same:h,other:c}:{same:c,other:h}}function ti(t,e){const i=e.maxPadding;function s(t){const s={left:0,top:0,right:0,bottom:0};return t.forEach((t=>{s[t]=Math.max(e[t],i[t])})),s}return s(t?["left","right"]:["top","bottom"])}function ei(t,e,i,s){const n=[];let o,a,r,l,h,c;for(o=0,a=t.length,h=0;o<a;++o){r=t[o],l=r.box,l.update(r.width||e.w,r.height||e.h,ti(r.horizontal,e));const{same:a,other:d}=Qe(e,i,r,s);h|=a&&n.length,c=c||d,l.fullSize||n.push(r)}return h&&ei(n,e,i,s)||c}function ii(t,e,i,s,n){t.top=i,t.left=e,t.right=e+s,t.bottom=i+n,t.width=s,t.height=n}function si(t,e,i,s){const n=i.padding;let{x:o,y:a}=e;for(const r of t){const t=r.box,l=s[r.stack]||{count:1,placed:0,weight:1},h=r.stackWeight/l.weight||1;if(r.horizontal){const s=e.w*h,o=l.size||t.height;ct(l.start)&&(a=l.start),t.fullSize?ii(t,n.left,a,i.outerWidth-n.right-n.left,o):ii(t,e.left+l.placed,a,s,o),l.start=a,l.placed+=s,a=t.bottom}else{const s=e.h*h,a=l.size||t.width;ct(l.start)&&(o=l.start),t.fullSize?ii(t,o,n.top,a,i.outerHeight-n.bottom-n.top):ii(t,o,e.top+l.placed,a,s),l.start=o,l.placed+=s,o=t.right}}e.x=o,e.y=a}bt.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}});var ni={addBox(t,e){t.boxes||(t.boxes=[]),e.fullSize=e.fullSize||!1,e.position=e.position||"top",e.weight=e.weight||0,e._layers=e._layers||function(){return[{z:0,draw(t){e.draw(t)}}]},t.boxes.push(e)},removeBox(t,e){const i=t.boxes?t.boxes.indexOf(e):-1;-1!==i&&t.boxes.splice(i,1)},configure(t,e,i){e.fullSize=i.fullSize,e.position=i.position,e.weight=i.weight},update(t,e,i,s){if(!t)return;const n=Ne(t.options.layout.padding),o=Math.max(e-n.width,0),a=Math.max(i-n.height,0),r=function(t){const e=function(t){const e=[];let i,s,n,o,a,r;for(i=0,s=(t||[]).length;i<s;++i)n=t[i],({position:o,options:{stack:a,stackWeight:r=1}}=n),e.push({index:i,box:n,pos:o,horizontal:n.isHorizontal(),weight:n.weight,stack:a&&o+a,stackWeight:r});return e}(t),i=Ke(e.filter((t=>t.box.fullSize)),!0),s=Ke(Xe(e,"left"),!0),n=Ke(Xe(e,"right")),o=Ke(Xe(e,"top"),!0),a=Ke(Xe(e,"bottom")),r=qe(e,"x"),l=qe(e,"y");return{fullSize:i,leftAndTop:s.concat(o),rightAndBottom:n.concat(l).concat(a).concat(r),chartArea:Xe(e,"chartArea"),vertical:s.concat(n).concat(l),horizontal:o.concat(a).concat(r)}}(t.boxes),l=r.vertical,h=r.horizontal;Q(t.boxes,(t=>{"function"==typeof t.beforeLayout&&t.beforeLayout()}));const c=l.reduce(((t,e)=>e.box.options&&!1===e.box.options.display?t:t+1),0)||1,d=Object.freeze({outerWidth:e,outerHeight:i,padding:n,availableWidth:o,availableHeight:a,vBoxMaxWidth:o/2/c,hBoxMaxHeight:a/2}),u=Object.assign({},n);Je(u,Ne(s));const f=Object.assign({maxPadding:u,w:o,h:a,x:n.left,y:n.top},n),g=Ge(l.concat(h),d);ei(r.fullSize,f,d,g),ei(l,f,d,g),ei(h,f,d,g)&&ei(l,f,d,g),function(t){const e=t.maxPadding;function i(i){const s=Math.max(e[i]-t[i],0);return t[i]+=s,s}t.y+=i("top"),t.x+=i("left"),i("right"),i("bottom")}(f),si(r.leftAndTop,f,d,g),f.x+=f.w,f.y+=f.h,si(r.rightAndBottom,f,d,g),t.chartArea={left:f.left,top:f.top,right:f.left+f.w,bottom:f.top+f.h,height:f.h,width:f.w},Q(r.chartArea,(e=>{const i=e.box;Object.assign(i,t.chartArea),i.update(f.w,f.h,{left:0,top:0,right:0,bottom:0})}))}};function oi(t,e=[""],i=t,s,n=(()=>t[0])){ct(s)||(s=mi("_fallback",t));const o={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:i,_fallback:s,_getTarget:n,override:n=>oi([n,...t],e,i,s)};return new Proxy(o,{deleteProperty:(e,i)=>(delete e[i],delete e._keys,delete t[0][i],!0),get:(i,s)=>ci(i,s,(()=>function(t,e,i,s){let n;for(const o of e)if(n=mi(li(o,t),i),ct(n))return hi(t,n)?gi(i,s,t,n):n}(s,e,t,i))),getOwnPropertyDescriptor:(t,e)=>Reflect.getOwnPropertyDescriptor(t._scopes[0],e),getPrototypeOf:()=>Reflect.getPrototypeOf(t[0]),has:(t,e)=>xi(t).includes(e),ownKeys:t=>xi(t),set(t,e,i){const s=t._storage||(t._storage=n());return t[e]=s[e]=i,delete t._keys,!0}})}function ai(t,e,i,s){const n={_cacheable:!1,_proxy:t,_context:e,_subProxy:i,_stack:new Set,_descriptors:ri(t,s),setContext:e=>ai(t,e,i,s),override:n=>ai(t.override(n),e,i,s)};return new Proxy(n,{deleteProperty:(e,i)=>(delete e[i],delete t[i],!0),get:(t,e,i)=>ci(t,e,(()=>function(t,e,i){const{_proxy:s,_context:n,_subProxy:o,_descriptors:a}=t;let r=s[e];dt(r)&&a.isScriptable(e)&&(r=function(t,e,i,s){const{_proxy:n,_context:o,_subProxy:a,_stack:r}=i;if(r.has(t))throw new Error("Recursion detected: "+Array.from(r).join("->")+"->"+t);r.add(t),e=e(o,a||s),r.delete(t),hi(t,e)&&(e=gi(n._scopes,n,t,e));return e}(e,r,t,i));Y(r)&&r.length&&(r=function(t,e,i,s){const{_proxy:n,_context:o,_subProxy:a,_descriptors:r}=i;if(ct(o.index)&&s(t))e=e[o.index%e.length];else if(U(e[0])){const i=e,s=n._scopes.filter((t=>t!==i));e=[];for(const l of i){const i=gi(s,n,t,l);e.push(ai(i,o,a&&a[t],r))}}return e}(e,r,t,a.isIndexable));hi(e,r)&&(r=ai(r,n,o&&o[e],a));return r}(t,e,i))),getOwnPropertyDescriptor:(e,i)=>e._descriptors.allKeys?Reflect.has(t,i)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,i),getPrototypeOf:()=>Reflect.getPrototypeOf(t),has:(e,i)=>Reflect.has(t,i),ownKeys:()=>Reflect.ownKeys(t),set:(e,i,s)=>(t[i]=s,delete e[i],!0)})}function ri(t,e={scriptable:!0,indexable:!0}){const{_scriptable:i=e.scriptable,_indexable:s=e.indexable,_allKeys:n=e.allKeys}=t;return{allKeys:n,scriptable:i,indexable:s,isScriptable:dt(i)?i:()=>i,isIndexable:dt(s)?s:()=>s}}const li=(t,e)=>t?t+ht(e):e,hi=(t,e)=>U(e)&&"adapters"!==t&&(null===Object.getPrototypeOf(e)||e.constructor===Object);function ci(t,e,i){if(Object.prototype.hasOwnProperty.call(t,e))return t[e];const s=i();return t[e]=s,s}function di(t,e,i){return dt(t)?t(e,i):t}const ui=(t,e)=>!0===t?e:"string"==typeof t?lt(e,t):void 0;function fi(t,e,i,s,n){for(const o of e){const e=ui(i,o);if(e){t.add(e);const o=di(e._fallback,i,n);if(ct(o)&&o!==i&&o!==s)return o}else if(!1===e&&ct(s)&&i!==s)return null}return!1}function gi(t,e,i,s){const n=e._rootScopes,o=di(e._fallback,i,s),a=[...t,...n],r=new Set;r.add(s);let l=pi(r,a,i,o||i,s);return null!==l&&((!ct(o)||o===i||(l=pi(r,a,o,l,s),null!==l))&&oi(Array.from(r),[""],n,o,(()=>function(t,e,i){const s=t._getTarget();e in s||(s[e]={});const n=s[e];if(Y(n)&&U(i))return i;return n}(e,i,s))))}function pi(t,e,i,s,n){for(;i;)i=fi(t,e,i,s,n);return i}function mi(t,e){for(const i of e){if(!i)continue;const e=i[t];if(ct(e))return e}}function xi(t){let e=t._keys;return e||(e=t._keys=function(t){const e=new Set;for(const i of t)for(const t of Object.keys(i).filter((t=>!t.startsWith("_"))))e.add(t);return Array.from(e)}(t._scopes)),e}const bi=Number.EPSILON||1e-14,_i=(t,e)=>e<t.length&&!t[e].skip&&t[e],yi=t=>"x"===t?"y":"x";function vi(t,e,i,s){const n=t.skip?e:t,o=e,a=i.skip?e:i,r=Vt(o,n),l=Vt(a,o);let h=r/(r+l),c=l/(r+l);h=isNaN(h)?0:h,c=isNaN(c)?0:c;const d=s*h,u=s*c;return{previous:{x:o.x-d*(a.x-n.x),y:o.y-d*(a.y-n.y)},next:{x:o.x+u*(a.x-n.x),y:o.y+u*(a.y-n.y)}}}function wi(t,e="x"){const i=yi(e),s=t.length,n=Array(s).fill(0),o=Array(s);let a,r,l,h=_i(t,0);for(a=0;a<s;++a)if(r=l,l=h,h=_i(t,a+1),l){if(h){const t=h[e]-l[e];n[a]=0!==t?(h[i]-l[i])/t:0}o[a]=r?h?Ct(n[a-1])!==Ct(n[a])?0:(n[a-1]+n[a])/2:n[a-1]:n[a]}!function(t,e,i){const s=t.length;let n,o,a,r,l,h=_i(t,0);for(let c=0;c<s-1;++c)l=h,h=_i(t,c+1),l&&h&&(Lt(e[c],0,bi)?i[c]=i[c+1]=0:(n=i[c]/e[c],o=i[c+1]/e[c],r=Math.pow(n,2)+Math.pow(o,2),r<=9||(a=3/Math.sqrt(r),i[c]=n*a*e[c],i[c+1]=o*a*e[c])))}(t,n,o),function(t,e,i="x"){const s=yi(i),n=t.length;let o,a,r,l=_i(t,0);for(let h=0;h<n;++h){if(a=r,r=l,l=_i(t,h+1),!r)continue;const n=r[i],c=r[s];a&&(o=(n-a[i])/3,r[`cp1${i}`]=n-o,r[`cp1${s}`]=c-o*e[h]),l&&(o=(l[i]-n)/3,r[`cp2${i}`]=n+o,r[`cp2${s}`]=c+o*e[h])}}(t,o,e)}function Mi(t,e,i){return Math.max(Math.min(t,i),e)}function ki(t,e,i,s,n){let o,a,r,l;if(e.spanGaps&&(t=t.filter((t=>!t.skip))),"monotone"===e.cubicInterpolationMode)wi(t,n);else{let i=s?t[t.length-1]:t[0];for(o=0,a=t.length;o<a;++o)r=t[o],l=vi(i,r,t[Math.min(o+1,a-(s?0:1))%a],e.tension),r.cp1x=l.previous.x,r.cp1y=l.previous.y,r.cp2x=l.next.x,r.cp2y=l.next.y,i=r}e.capBezierPoints&&function(t,e){let i,s,n,o,a,r=Jt(t[0],e);for(i=0,s=t.length;i<s;++i)a=o,o=r,r=i<s-1&&Jt(t[i+1],e),o&&(n=t[i],a&&(n.cp1x=Mi(n.cp1x,e.left,e.right),n.cp1y=Mi(n.cp1y,e.top,e.bottom)),r&&(n.cp2x=Mi(n.cp2x,e.left,e.right),n.cp2y=Mi(n.cp2y,e.top,e.bottom)))}(t,i)}const Si=t=>0===t||1===t,Pi=(t,e,i)=>-Math.pow(2,10*(t-=1))*Math.sin((t-e)*yt/i),Di=(t,e,i)=>Math.pow(2,-10*t)*Math.sin((t-e)*yt/i)+1,Ci={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>1-Math.cos(t*kt),easeOutSine:t=>Math.sin(t*kt),easeInOutSine:t=>-.5*(Math.cos(_t*t)-1),easeInExpo:t=>0===t?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>1===t?1:1-Math.pow(2,-10*t),easeInOutExpo:t=>Si(t)?t:t<.5?.5*Math.pow(2,10*(2*t-1)):.5*(2-Math.pow(2,-10*(2*t-1))),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>Si(t)?t:Pi(t,.075,.3),easeOutElastic:t=>Si(t)?t:Di(t,.075,.3),easeInOutElastic(t){const e=.1125;return Si(t)?t:t<.5?.5*Pi(2*t,e,.45):.5+.5*Di(2*t-1,e,.45)},easeInBack(t){const e=1.70158;return t*t*((e+1)*t-e)},easeOutBack(t){const e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack(t){let e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:t=>1-Ci.easeOutBounce(1-t),easeOutBounce(t){const e=7.5625,i=2.75;return t<1/i?e*t*t:t<2/i?e*(t-=1.5/i)*t+.75:t<2.5/i?e*(t-=2.25/i)*t+.9375:e*(t-=2.625/i)*t+.984375},easeInOutBounce:t=>t<.5?.5*Ci.easeInBounce(2*t):.5*Ci.easeOutBounce(2*t-1)+.5};function Oi(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:t.y+i*(e.y-t.y)}}function Ai(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:"middle"===s?i<.5?t.y:e.y:"after"===s?i<1?t.y:e.y:i>0?e.y:t.y}}function Ti(t,e,i,s){const n={x:t.cp2x,y:t.cp2y},o={x:e.cp1x,y:e.cp1y},a=Oi(t,n,i),r=Oi(n,o,i),l=Oi(o,e,i),h=Oi(a,r,i),c=Oi(r,l,i);return Oi(h,c,i)}const Li=new Map;function Ri(t,e,i){return function(t,e){e=e||{};const i=t+JSON.stringify(e);let s=Li.get(i);return s||(s=new Intl.NumberFormat(t,e),Li.set(i,s)),s}(e,i).format(t)}function Ei(t,e,i){return t?function(t,e){return{x:i=>t+t+e-i,setWidth(t){e=t},textAlign:t=>"center"===t?t:"right"===t?"left":"right",xPlus:(t,e)=>t-e,leftForLtr:(t,e)=>t-e}}(e,i):{x:t=>t,setWidth(t){},textAlign:t=>t,xPlus:(t,e)=>t+e,leftForLtr:(t,e)=>t}}function Ii(t,e){let i,s;"ltr"!==e&&"rtl"!==e||(i=t.canvas.style,s=[i.getPropertyValue("direction"),i.getPropertyPriority("direction")],i.setProperty("direction",e,"important"),t.prevTextDirection=s)}function zi(t,e){void 0!==e&&(delete t.prevTextDirection,t.canvas.style.setProperty("direction",e[0],e[1]))}function Fi(t){return"angle"===t?{between:Ht,compare:Wt,normalize:Nt}:{between:Yt,compare:(t,e)=>t-e,normalize:t=>t}}function Bi({start:t,end:e,count:i,loop:s,style:n}){return{start:t%i,end:e%i,loop:s&&(e-t+1)%i==0,style:n}}function Vi(t,e,i){if(!i)return[t];const{property:s,start:n,end:o}=i,a=e.length,{compare:r,between:l,normalize:h}=Fi(s),{start:c,end:d,loop:u,style:f}=function(t,e,i){const{property:s,start:n,end:o}=i,{between:a,normalize:r}=Fi(s),l=e.length;let h,c,{start:d,end:u,loop:f}=t;if(f){for(d+=l,u+=l,h=0,c=l;h<c&&a(r(e[d%l][s]),n,o);++h)d--,u--;d%=l,u%=l}return u<d&&(u+=l),{start:d,end:u,loop:f,style:t.style}}(t,e,i),g=[];let p,m,x,b=!1,_=null;const y=()=>b||l(n,x,p)&&0!==r(n,x),v=()=>!b||0===r(o,p)||l(o,x,p);for(let t=c,i=c;t<=d;++t)m=e[t%a],m.skip||(p=h(m[s]),p!==x&&(b=l(p,n,o),null===_&&y()&&(_=0===r(p,n)?t:i),null!==_&&v()&&(g.push(Bi({start:_,end:t,loop:u,count:a,style:f})),_=null),i=t,x=p));return null!==_&&g.push(Bi({start:_,end:d,loop:u,count:a,style:f})),g}function Wi(t,e){const i=[],s=t.segments;for(let n=0;n<s.length;n++){const o=Vi(s[n],t.points,e);o.length&&i.push(...o)}return i}function Ni(t,e){const i=t.points,s=t.options.spanGaps,n=i.length;if(!n)return[];const o=!!t._loop,{start:a,end:r}=function(t,e,i,s){let n=0,o=e-1;if(i&&!s)for(;n<e&&!t[n].skip;)n++;for(;n<e&&t[n].skip;)n++;for(n%=e,i&&(o+=n);o>n&&t[o%e].skip;)o--;return o%=e,{start:n,end:o}}(i,n,o,s);if(!0===s)return Hi(t,[{start:a,end:r,loop:o}],i,e);return Hi(t,function(t,e,i,s){const n=t.length,o=[];let a,r=e,l=t[e];for(a=e+1;a<=i;++a){const i=t[a%n];i.skip||i.stop?l.skip||(s=!1,o.push({start:e%n,end:(a-1)%n,loop:s}),e=r=i.stop?a:null):(r=a,l.skip&&(e=a)),l=i}return null!==r&&o.push({start:e%n,end:r%n,loop:s}),o}(i,a,r<a?r+n:r,!!t._fullLoop&&0===a&&r===n-1),i,e)}function Hi(t,e,i,s){return s&&s.setContext&&i?function(t,e,i,s){const n=t._chart.getContext(),o=ji(t.options),{_datasetIndex:a,options:{spanGaps:r}}=t,l=i.length,h=[];let c=o,d=e[0].start,u=d;function f(t,e,s,n){const o=r?-1:1;if(t!==e){for(t+=l;i[t%l].skip;)t-=o;for(;i[e%l].skip;)e+=o;t%l!=e%l&&(h.push({start:t%l,end:e%l,loop:s,style:n}),c=n,d=e%l)}}for(const t of e){d=r?d:t.start;let e,o=i[d%l];for(u=d+1;u<=t.end;u++){const r=i[u%l];e=ji(s.setContext(Ye(n,{type:"segment",p0:o,p1:r,p0DataIndex:(u-1)%l,p1DataIndex:u%l,datasetIndex:a}))),$i(e,c)&&f(d,u-1,t.loop,c),o=r,c=e}d<u-1&&f(d,u-1,t.loop,c)}return h}(t,e,i,s):e}function ji(t){return{backgroundColor:t.backgroundColor,borderCapStyle:t.borderCapStyle,borderDash:t.borderDash,borderDashOffset:t.borderDashOffset,borderJoinStyle:t.borderJoinStyle,borderWidth:t.borderWidth,borderColor:t.borderColor}}function $i(t,e){return e&&JSON.stringify(t)!==JSON.stringify(e)}var Yi=Object.freeze({__proto__:null,easingEffects:Ci,color:W,getHoverColor:N,noop:H,uid:j,isNullOrUndef:$,isArray:Y,isObject:U,isFinite:X,finiteOrDefault:q,valueOrDefault:K,toPercentage:G,toDimension:Z,callback:J,each:Q,_elementsEqual:tt,clone:et,_merger:st,merge:nt,mergeIf:ot,_mergerIf:at,_deprecated:function(t,e,i,s){void 0!==e&&console.warn(t+': "'+i+'" is deprecated. Please use "'+s+'" instead')},resolveObjectKey:lt,_capitalize:ht,defined:ct,isFunction:dt,setsEqual:ut,_isClickEvent:ft,toFontString:Ut,_measureText:Xt,_longestText:qt,_alignPixel:Kt,clearCanvas:Gt,drawPoint:Zt,_isPointInArea:Jt,clipArea:Qt,unclipArea:te,_steppedLineTo:ee,_bezierCurveTo:ie,renderText:se,addRoundedRectPath:oe,_lookup:ae,_lookupByKey:re,_rlookupByKey:le,_filterBetween:he,listenArrayEvents:de,unlistenArrayEvents:ue,_arrayUnique:fe,_createResolver:oi,_attachContext:ai,_descriptors:ri,splineCurve:vi,splineCurveMonotone:wi,_updateBezierControlPoints:ki,_isDomSupported:ge,_getParentNode:pe,getStyle:be,getRelativePosition:ve,getMaximumSize:Me,retinaScale:ke,supportsEventListenerOptions:Se,readUsedSize:Pe,fontString:function(t,e,i){return e+" "+t+"px "+i},requestAnimFrame:t,throttled:e,debounce:i,_toLeftRightCenter:s,_alignStartEnd:n,_textX:o,_pointInLine:Oi,_steppedInterpolation:Ai,_bezierInterpolation:Ti,formatNumber:Ri,toLineHeight:Fe,_readValueToProps:Be,toTRBL:Ve,toTRBLCorners:We,toPadding:Ne,toFont:He,resolve:je,_addGrace:$e,createContext:Ye,PI:_t,TAU:yt,PITAU:vt,INFINITY:wt,RAD_PER_DEG:Mt,HALF_PI:kt,QUARTER_PI:St,TWO_THIRDS_PI:Pt,log10:Dt,sign:Ct,niceNum:Ot,_factorize:At,isNumber:Tt,almostEquals:Lt,almostWhole:Rt,_setMinAndMaxByKey:Et,toRadians:It,toDegrees:zt,_decimalPlaces:Ft,getAngleFromPoint:Bt,distanceBetweenPoints:Vt,_angleDiff:Wt,_normalizeAngle:Nt,_angleBetween:Ht,_limitValue:jt,_int16Range:$t,_isBetween:Yt,getRtlAdapter:Ei,overrideTextDirection:Ii,restoreTextDirection:zi,_boundSegment:Vi,_boundSegments:Wi,_computeSegments:Ni});class Ui{acquireContext(t,e){}releaseContext(t){return!1}addEventListener(t,e,i){}removeEventListener(t,e,i){}getDevicePixelRatio(){return 1}getMaximumSize(t,e,i,s){return e=Math.max(0,e||t.width),i=i||t.height,{width:e,height:Math.max(0,s?Math.floor(e/s):i)}}isAttached(t){return!0}updateConfig(t){}}class Xi extends Ui{acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}updateConfig(t){t.options.animation=!1}}const qi={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},Ki=t=>null===t||""===t;const Gi=!!Se&&{passive:!0};function Zi(t,e,i){t.canvas.removeEventListener(e,i,Gi)}function Ji(t,e){for(const i of t)if(i===e||i.contains(e))return!0}function Qi(t,e,i){const s=t.canvas,n=new MutationObserver((t=>{let e=!1;for(const i of t)e=e||Ji(i.addedNodes,s),e=e&&!Ji(i.removedNodes,s);e&&i()}));return n.observe(document,{childList:!0,subtree:!0}),n}function ts(t,e,i){const s=t.canvas,n=new MutationObserver((t=>{let e=!1;for(const i of t)e=e||Ji(i.removedNodes,s),e=e&&!Ji(i.addedNodes,s);e&&i()}));return n.observe(document,{childList:!0,subtree:!0}),n}const es=new Map;let is=0;function ss(){const t=window.devicePixelRatio;t!==is&&(is=t,es.forEach(((e,i)=>{i.currentDevicePixelRatio!==t&&e()})))}function ns(t,i,s){const n=t.canvas,o=n&&pe(n);if(!o)return;const a=e(((t,e)=>{const i=o.clientWidth;s(t,e),i<o.clientWidth&&s()}),window),r=new ResizeObserver((t=>{const e=t[0],i=e.contentRect.width,s=e.contentRect.height;0===i&&0===s||a(i,s)}));return r.observe(o),function(t,e){es.size||window.addEventListener("resize",ss),es.set(t,e)}(t,a),r}function os(t,e,i){i&&i.disconnect(),"resize"===e&&function(t){es.delete(t),es.size||window.removeEventListener("resize",ss)}(t)}function as(t,i,s){const n=t.canvas,o=e((e=>{null!==t.ctx&&s(function(t,e){const i=qi[t.type]||t.type,{x:s,y:n}=ve(t,e);return{type:i,chart:e,native:t,x:void 0!==s?s:null,y:void 0!==n?n:null}}(e,t))}),t,(t=>{const e=t[0];return[e,e.offsetX,e.offsetY]}));return function(t,e,i){t.addEventListener(e,i,Gi)}(n,i,o),o}class rs extends Ui{acquireContext(t,e){const i=t&&t.getContext&&t.getContext("2d");return i&&i.canvas===t?(function(t,e){const i=t.style,s=t.getAttribute("height"),n=t.getAttribute("width");if(t.$chartjs={initial:{height:s,width:n,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||"block",i.boxSizing=i.boxSizing||"border-box",Ki(n)){const e=Pe(t,"width");void 0!==e&&(t.width=e)}if(Ki(s))if(""===t.style.height)t.height=t.width/(e||2);else{const e=Pe(t,"height");void 0!==e&&(t.height=e)}}(t,e),i):null}releaseContext(t){const e=t.canvas;if(!e.$chartjs)return!1;const i=e.$chartjs.initial;["height","width"].forEach((t=>{const s=i[t];$(s)?e.removeAttribute(t):e.setAttribute(t,s)}));const s=i.style||{};return Object.keys(s).forEach((t=>{e.style[t]=s[t]})),e.width=e.width,delete e.$chartjs,!0}addEventListener(t,e,i){this.removeEventListener(t,e);const s=t.$proxies||(t.$proxies={}),n={attach:Qi,detach:ts,resize:ns}[e]||as;s[e]=n(t,e,i)}removeEventListener(t,e){const i=t.$proxies||(t.$proxies={}),s=i[e];if(!s)return;({attach:os,detach:os,resize:os}[e]||Zi)(t,e,s),i[e]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,e,i,s){return Me(t,e,i,s)}isAttached(t){const e=pe(t);return!(!e||!e.isConnected)}}function ls(t){return!ge()||"undefined"!=typeof OffscreenCanvas&&t instanceof OffscreenCanvas?Xi:rs}var hs=Object.freeze({__proto__:null,_detectPlatform:ls,BasePlatform:Ui,BasicPlatform:Xi,DomPlatform:rs});const cs="transparent",ds={boolean:(t,e,i)=>i>.5?e:t,color(t,e,i){const s=W(t||cs),n=s.valid&&W(e||cs);return n&&n.valid?n.mix(s,i).hexString():e},number:(t,e,i)=>t+(e-t)*i};class us{constructor(t,e,i,s){const n=e[i];s=je([t.to,s,n,t.from]);const o=je([t.from,n,s]);this._active=!0,this._fn=t.fn||ds[t.type||typeof o],this._easing=Ci[t.easing]||Ci.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=e,this._prop=i,this._from=o,this._to=s,this._promises=void 0}active(){return this._active}update(t,e,i){if(this._active){this._notify(!1);const s=this._target[this._prop],n=i-this._start,o=this._duration-n;this._start=i,this._duration=Math.floor(Math.max(o,t.duration)),this._total+=n,this._loop=!!t.loop,this._to=je([t.to,e,s,t.from]),this._from=je([t.from,s,e])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){const e=t-this._start,i=this._duration,s=this._prop,n=this._from,o=this._loop,a=this._to;let r;if(this._active=n!==a&&(o||e<i),!this._active)return this._target[s]=a,void this._notify(!0);e<0?this._target[s]=n:(r=e/i%2,r=o&&r>1?2-r:r,r=this._easing(Math.min(1,Math.max(0,r))),this._target[s]=this._fn(n,a,r))}wait(){const t=this._promises||(this._promises=[]);return new Promise(((e,i)=>{t.push({res:e,rej:i})}))}_notify(t){const e=t?"res":"rej",i=this._promises||[];for(let t=0;t<i.length;t++)i[t][e]()}}bt.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0});const fs=Object.keys(bt.animation);bt.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:t=>"onProgress"!==t&&"onComplete"!==t&&"fn"!==t}),bt.set("animations",{colors:{type:"color",properties:["color","borderColor","backgroundColor"]},numbers:{type:"number",properties:["x","y","borderWidth","radius","tension"]}}),bt.describe("animations",{_fallback:"animation"}),bt.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:t=>0|t}}}});class gs{constructor(t,e){this._chart=t,this._properties=new Map,this.configure(e)}configure(t){if(!U(t))return;const e=this._properties;Object.getOwnPropertyNames(t).forEach((i=>{const s=t[i];if(!U(s))return;const n={};for(const t of fs)n[t]=s[t];(Y(s.properties)&&s.properties||[i]).forEach((t=>{t!==i&&e.has(t)||e.set(t,n)}))}))}_animateOptions(t,e){const i=e.options,s=function(t,e){if(!e)return;let i=t.options;if(!i)return void(t.options=e);i.$shared&&(t.options=i=Object.assign({},i,{$shared:!1,$animations:{}}));return i}(t,i);if(!s)return[];const n=this._createAnimations(s,i);return i.$shared&&function(t,e){const i=[],s=Object.keys(e);for(let e=0;e<s.length;e++){const n=t[s[e]];n&&n.active()&&i.push(n.wait())}return Promise.all(i)}(t.options.$animations,i).then((()=>{t.options=i}),(()=>{})),n}_createAnimations(t,e){const i=this._properties,s=[],n=t.$animations||(t.$animations={}),o=Object.keys(e),a=Date.now();let r;for(r=o.length-1;r>=0;--r){const l=o[r];if("$"===l.charAt(0))continue;if("options"===l){s.push(...this._animateOptions(t,e));continue}const h=e[l];let c=n[l];const d=i.get(l);if(c){if(d&&c.active()){c.update(d,h,a);continue}c.cancel()}d&&d.duration?(n[l]=c=new us(d,t,l,h),s.push(c)):t[l]=h}return s}update(t,e){if(0===this._properties.size)return void Object.assign(t,e);const i=this._createAnimations(t,e);return i.length?(a.add(this._chart,i),!0):void 0}}function ps(t,e){const i=t&&t.options||{},s=i.reverse,n=void 0===i.min?e:0,o=void 0===i.max?e:0;return{start:s?o:n,end:s?n:o}}function ms(t,e){const i=[],s=t._getSortedDatasetMetas(e);let n,o;for(n=0,o=s.length;n<o;++n)i.push(s[n].index);return i}function xs(t,e,i,s={}){const n=t.keys,o="single"===s.mode;let a,r,l,h;if(null!==e){for(a=0,r=n.length;a<r;++a){if(l=+n[a],l===i){if(s.all)continue;break}h=t.values[l],X(h)&&(o||0===e||Ct(e)===Ct(h))&&(e+=h)}return e}}function bs(t,e){const i=t&&t.options.stacked;return i||void 0===i&&void 0!==e.stack}function _s(t,e,i){const s=t[e]||(t[e]={});return s[i]||(s[i]={})}function ys(t,e,i,s){for(const n of e.getMatchingVisibleMetas(s).reverse()){const e=t[n.index];if(i&&e>0||!i&&e<0)return n.index}return null}function vs(t,e){const{chart:i,_cachedMeta:s}=t,n=i._stacks||(i._stacks={}),{iScale:o,vScale:a,index:r}=s,l=o.axis,h=a.axis,c=function(t,e,i){return`${t.id}.${e.id}.${i.stack||i.type}`}(o,a,s),d=e.length;let u;for(let t=0;t<d;++t){const i=e[t],{[l]:o,[h]:d}=i;u=(i._stacks||(i._stacks={}))[h]=_s(n,c,o),u[r]=d,u._top=ys(u,a,!0,s.type),u._bottom=ys(u,a,!1,s.type)}}function ws(t,e){const i=t.scales;return Object.keys(i).filter((t=>i[t].axis===e)).shift()}function Ms(t,e){const i=t.controller.index,s=t.vScale&&t.vScale.axis;if(s){e=e||t._parsed;for(const t of e){const e=t._stacks;if(!e||void 0===e[s]||void 0===e[s][i])return;delete e[s][i]}}}const ks=t=>"reset"===t||"none"===t,Ss=(t,e)=>e?t:Object.assign({},t);class Ps{constructor(t,e){this.chart=t,this._ctx=t.ctx,this.index=e,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.$context=void 0,this._syncList=[],this.initialize()}initialize(){const t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=bs(t.vScale,t),this.addElements()}updateIndex(t){this.index!==t&&Ms(this._cachedMeta),this.index=t}linkScales(){const t=this.chart,e=this._cachedMeta,i=this.getDataset(),s=(t,e,i,s)=>"x"===t?e:"r"===t?s:i,n=e.xAxisID=K(i.xAxisID,ws(t,"x")),o=e.yAxisID=K(i.yAxisID,ws(t,"y")),a=e.rAxisID=K(i.rAxisID,ws(t,"r")),r=e.indexAxis,l=e.iAxisID=s(r,n,o,a),h=e.vAxisID=s(r,o,n,a);e.xScale=this.getScaleForId(n),e.yScale=this.getScaleForId(o),e.rScale=this.getScaleForId(a),e.iScale=this.getScaleForId(l),e.vScale=this.getScaleForId(h)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){const e=this._cachedMeta;return t===e.iScale?e.vScale:e.iScale}reset(){this._update("reset")}_destroy(){const t=this._cachedMeta;this._data&&ue(this._data,this),t._stacked&&Ms(t)}_dataCheck(){const t=this.getDataset(),e=t.data||(t.data=[]),i=this._data;if(U(e))this._data=function(t){const e=Object.keys(t),i=new Array(e.length);let s,n,o;for(s=0,n=e.length;s<n;++s)o=e[s],i[s]={x:o,y:t[o]};return i}(e);else if(i!==e){if(i){ue(i,this);const t=this._cachedMeta;Ms(t),t._parsed=[]}e&&Object.isExtensible(e)&&de(e,this),this._syncList=[],this._data=e}}addElements(){const t=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(t.dataset=new this.datasetElementType)}buildOrUpdateElements(t){const e=this._cachedMeta,i=this.getDataset();let s=!1;this._dataCheck();const n=e._stacked;e._stacked=bs(e.vScale,e),e.stack!==i.stack&&(s=!0,Ms(e),e.stack=i.stack),this._resyncElements(t),(s||n!==e._stacked)&&vs(this,e._parsed)}configure(){const t=this.chart.config,e=t.datasetScopeKeys(this._type),i=t.getOptionScopes(this.getDataset(),e,!0);this.options=t.createResolver(i,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(t,e){const{_cachedMeta:i,_data:s}=this,{iScale:n,_stacked:o}=i,a=n.axis;let r,l,h,c=0===t&&e===s.length||i._sorted,d=t>0&&i._parsed[t-1];if(!1===this._parsing)i._parsed=s,i._sorted=!0,h=s;else{h=Y(s[t])?this.parseArrayData(i,s,t,e):U(s[t])?this.parseObjectData(i,s,t,e):this.parsePrimitiveData(i,s,t,e);const n=()=>null===l[a]||d&&l[a]<d[a];for(r=0;r<e;++r)i._parsed[r+t]=l=h[r],c&&(n()&&(c=!1),d=l);i._sorted=c}o&&vs(this,h)}parsePrimitiveData(t,e,i,s){const{iScale:n,vScale:o}=t,a=n.axis,r=o.axis,l=n.getLabels(),h=n===o,c=new Array(s);let d,u,f;for(d=0,u=s;d<u;++d)f=d+i,c[d]={[a]:h||n.parse(l[f],f),[r]:o.parse(e[f],f)};return c}parseArrayData(t,e,i,s){const{xScale:n,yScale:o}=t,a=new Array(s);let r,l,h,c;for(r=0,l=s;r<l;++r)h=r+i,c=e[h],a[r]={x:n.parse(c[0],h),y:o.parse(c[1],h)};return a}parseObjectData(t,e,i,s){const{xScale:n,yScale:o}=t,{xAxisKey:a="x",yAxisKey:r="y"}=this._parsing,l=new Array(s);let h,c,d,u;for(h=0,c=s;h<c;++h)d=h+i,u=e[d],l[h]={x:n.parse(lt(u,a),d),y:o.parse(lt(u,r),d)};return l}getParsed(t){return this._cachedMeta._parsed[t]}getDataElement(t){return this._cachedMeta.data[t]}applyStack(t,e,i){const s=this.chart,n=this._cachedMeta,o=e[t.axis];return xs({keys:ms(s,!0),values:e._stacks[t.axis]},o,n.index,{mode:i})}updateRangeFromParsed(t,e,i,s){const n=i[e.axis];let o=null===n?NaN:n;const a=s&&i._stacks[e.axis];s&&a&&(s.values=a,o=xs(s,n,this._cachedMeta.index)),t.min=Math.min(t.min,o),t.max=Math.max(t.max,o)}getMinMax(t,e){const i=this._cachedMeta,s=i._parsed,n=i._sorted&&t===i.iScale,o=s.length,a=this._getOtherScale(t),r=((t,e,i)=>t&&!e.hidden&&e._stacked&&{keys:ms(i,!0),values:null})(e,i,this.chart),l={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:h,max:c}=function(t){const{min:e,max:i,minDefined:s,maxDefined:n}=t.getUserBounds();return{min:s?e:Number.NEGATIVE_INFINITY,max:n?i:Number.POSITIVE_INFINITY}}(a);let d,u;function f(){u=s[d];const e=u[a.axis];return!X(u[t.axis])||h>e||c<e}for(d=0;d<o&&(f()||(this.updateRangeFromParsed(l,t,u,r),!n));++d);if(n)for(d=o-1;d>=0;--d)if(!f()){this.updateRangeFromParsed(l,t,u,r);break}return l}getAllParsedValues(t){const e=this._cachedMeta._parsed,i=[];let s,n,o;for(s=0,n=e.length;s<n;++s)o=e[s][t.axis],X(o)&&i.push(o);return i}getMaxOverflow(){return!1}getLabelAndValue(t){const e=this._cachedMeta,i=e.iScale,s=e.vScale,n=this.getParsed(t);return{label:i?""+i.getLabelForValue(n[i.axis]):"",value:s?""+s.getLabelForValue(n[s.axis]):""}}_update(t){const e=this._cachedMeta;this.update(t||"default"),e._clip=function(t){let e,i,s,n;return U(t)?(e=t.top,i=t.right,s=t.bottom,n=t.left):e=i=s=n=t,{top:e,right:i,bottom:s,left:n,disabled:!1===t}}(K(this.options.clip,function(t,e,i){if(!1===i)return!1;const s=ps(t,i),n=ps(e,i);return{top:n.end,right:s.end,bottom:n.start,left:s.start}}(e.xScale,e.yScale,this.getMaxOverflow())))}update(t){}draw(){const t=this._ctx,e=this.chart,i=this._cachedMeta,s=i.data||[],n=e.chartArea,o=[],a=this._drawStart||0,r=this._drawCount||s.length-a,l=this.options.drawActiveElementsOnTop;let h;for(i.dataset&&i.dataset.draw(t,n,a,r),h=a;h<a+r;++h){const e=s[h];e.hidden||(e.active&&l?o.push(e):e.draw(t,n))}for(h=0;h<o.length;++h)o[h].draw(t,n)}getStyle(t,e){const i=e?"active":"default";return void 0===t&&this._cachedMeta.dataset?this.resolveDatasetElementOptions(i):this.resolveDataElementOptions(t||0,i)}getContext(t,e,i){const s=this.getDataset();let n;if(t>=0&&t<this._cachedMeta.data.length){const e=this._cachedMeta.data[t];n=e.$context||(e.$context=function(t,e,i){return Ye(t,{active:!1,dataIndex:e,parsed:void 0,raw:void 0,element:i,index:e,mode:"default",type:"data"})}(this.getContext(),t,e)),n.parsed=this.getParsed(t),n.raw=s.data[t],n.index=n.dataIndex=t}else n=this.$context||(this.$context=function(t,e){return Ye(t,{active:!1,dataset:void 0,datasetIndex:e,index:e,mode:"default",type:"dataset"})}(this.chart.getContext(),this.index)),n.dataset=s,n.index=n.datasetIndex=this.index;return n.active=!!e,n.mode=i,n}resolveDatasetElementOptions(t){return this._resolveElementOptions(this.datasetElementType.id,t)}resolveDataElementOptions(t,e){return this._resolveElementOptions(this.dataElementType.id,e,t)}_resolveElementOptions(t,e="default",i){const s="active"===e,n=this._cachedDataOpts,o=t+"-"+e,a=n[o],r=this.enableOptionSharing&&ct(i);if(a)return Ss(a,r);const l=this.chart.config,h=l.datasetElementScopeKeys(this._type,t),c=s?[`${t}Hover`,"hover",t,""]:[t,""],d=l.getOptionScopes(this.getDataset(),h),u=Object.keys(bt.elements[t]),f=l.resolveNamedOptions(d,u,(()=>this.getContext(i,s)),c);return f.$shared&&(f.$shared=r,n[o]=Object.freeze(Ss(f,r))),f}_resolveAnimations(t,e,i){const s=this.chart,n=this._cachedDataOpts,o=`animation-${e}`,a=n[o];if(a)return a;let r;if(!1!==s.options.animation){const s=this.chart.config,n=s.datasetAnimationScopeKeys(this._type,e),o=s.getOptionScopes(this.getDataset(),n);r=s.createResolver(o,this.getContext(t,i,e))}const l=new gs(s,r&&r.animations);return r&&r._cacheable&&(n[o]=Object.freeze(l)),l}getSharedOptions(t){if(t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,e){return!e||ks(t)||this.chart._animationsDisabled}updateElement(t,e,i,s){ks(s)?Object.assign(t,i):this._resolveAnimations(e,s).update(t,i)}updateSharedOptions(t,e,i){t&&!ks(e)&&this._resolveAnimations(void 0,e).update(t,i)}_setStyle(t,e,i,s){t.active=s;const n=this.getStyle(e,s);this._resolveAnimations(e,i,s).update(t,{options:!s&&this.getSharedOptions(n)||n})}removeHoverStyle(t,e,i){this._setStyle(t,i,"active",!1)}setHoverStyle(t,e,i){this._setStyle(t,i,"active",!0)}_removeDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!1)}_setDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!0)}_resyncElements(t){const e=this._data,i=this._cachedMeta.data;for(const[t,e,i]of this._syncList)this[t](e,i);this._syncList=[];const s=i.length,n=e.length,o=Math.min(n,s);o&&this.parse(0,o),n>s?this._insertElements(s,n-s,t):n<s&&this._removeElements(n,s-n)}_insertElements(t,e,i=!0){const s=this._cachedMeta,n=s.data,o=t+e;let a;const r=t=>{for(t.length+=e,a=t.length-1;a>=o;a--)t[a]=t[a-e]};for(r(n),a=t;a<o;++a)n[a]=new this.dataElementType;this._parsing&&r(s._parsed),this.parse(t,e),i&&this.updateElements(n,t,e,"reset")}updateElements(t,e,i,s){}_removeElements(t,e){const i=this._cachedMeta;if(this._parsing){const s=i._parsed.splice(t,e);i._stacked&&Ms(i,s)}i.data.splice(t,e)}_sync(t){if(this._parsing)this._syncList.push(t);else{const[e,i,s]=t;this[e](i,s)}this.chart._dataChanges.push([this.index,...t])}_onDataPush(){const t=arguments.length;this._sync(["_insertElements",this.getDataset().data.length-t,t])}_onDataPop(){this._sync(["_removeElements",this._cachedMeta.data.length-1,1])}_onDataShift(){this._sync(["_removeElements",0,1])}_onDataSplice(t,e){e&&this._sync(["_removeElements",t,e]);const i=arguments.length-2;i&&this._sync(["_insertElements",t,i])}_onDataUnshift(){this._sync(["_insertElements",0,arguments.length])}}Ps.defaults={},Ps.prototype.datasetElementType=null,Ps.prototype.dataElementType=null;class Ds{constructor(){this.x=void 0,this.y=void 0,this.active=!1,this.options=void 0,this.$animations=void 0}tooltipPosition(t){const{x:e,y:i}=this.getProps(["x","y"],t);return{x:e,y:i}}hasValue(){return Tt(this.x)&&Tt(this.y)}getProps(t,e){const i=this.$animations;if(!e||!i)return this;const s={};return t.forEach((t=>{s[t]=i[t]&&i[t].active()?i[t]._to:this[t]})),s}}Ds.defaults={},Ds.defaultRoutes=void 0;const Cs={values:t=>Y(t)?t:""+t,numeric(t,e,i){if(0===t)return"0";const s=this.chart.options.locale;let n,o=t;if(i.length>1){const e=Math.max(Math.abs(i[0].value),Math.abs(i[i.length-1].value));(e<1e-4||e>1e15)&&(n="scientific"),o=function(t,e){let i=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;Math.abs(i)>=1&&t!==Math.floor(t)&&(i=t-Math.floor(t));return i}(t,i)}const a=Dt(Math.abs(o)),r=Math.max(Math.min(-1*Math.floor(a),20),0),l={notation:n,minimumFractionDigits:r,maximumFractionDigits:r};return Object.assign(l,this.options.ticks.format),Ri(t,s,l)},logarithmic(t,e,i){if(0===t)return"0";const s=t/Math.pow(10,Math.floor(Dt(t)));return 1===s||2===s||5===s?Cs.numeric.call(this,t,e,i):""}};var Os={formatters:Cs};function As(t,e){const i=t.options.ticks,s=i.maxTicksLimit||function(t){const e=t.options.offset,i=t._tickSize(),s=t._length/i+(e?0:1),n=t._maxLength/i;return Math.floor(Math.min(s,n))}(t),n=i.major.enabled?function(t){const e=[];let i,s;for(i=0,s=t.length;i<s;i++)t[i].major&&e.push(i);return e}(e):[],o=n.length,a=n[0],r=n[o-1],l=[];if(o>s)return function(t,e,i,s){let n,o=0,a=i[0];for(s=Math.ceil(s),n=0;n<t.length;n++)n===a&&(e.push(t[n]),o++,a=i[o*s])}(e,l,n,o/s),l;const h=function(t,e,i){const s=function(t){const e=t.length;let i,s;if(e<2)return!1;for(s=t[0],i=1;i<e;++i)if(t[i]-t[i-1]!==s)return!1;return s}(t),n=e.length/i;if(!s)return Math.max(n,1);const o=At(s);for(let t=0,e=o.length-1;t<e;t++){const e=o[t];if(e>n)return e}return Math.max(n,1)}(n,e,s);if(o>0){let t,i;const s=o>1?Math.round((r-a)/(o-1)):null;for(Ts(e,l,h,$(s)?0:a-s,a),t=0,i=o-1;t<i;t++)Ts(e,l,h,n[t],n[t+1]);return Ts(e,l,h,r,$(s)?e.length:r+s),l}return Ts(e,l,h),l}function Ts(t,e,i,s,n){const o=K(s,0),a=Math.min(K(n,t.length),t.length);let r,l,h,c=0;for(i=Math.ceil(i),n&&(r=n-s,i=r/Math.floor(r/i)),h=o;h<0;)c++,h=Math.round(o+c*i);for(l=Math.max(o,0);l<a;l++)l===h&&(e.push(t[l]),c++,h=Math.round(o+c*i))}bt.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",grace:0,grid:{display:!0,lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(t,e)=>e.lineWidth,tickColor:(t,e)=>e.color,offset:!1,borderDash:[],borderDashOffset:0,borderWidth:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:Os.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),bt.route("scale.ticks","color","","color"),bt.route("scale.grid","color","","borderColor"),bt.route("scale.grid","borderColor","","borderColor"),bt.route("scale.title","color","","color"),bt.describe("scale",{_fallback:!1,_scriptable:t=>!t.startsWith("before")&&!t.startsWith("after")&&"callback"!==t&&"parser"!==t,_indexable:t=>"borderDash"!==t&&"tickBorderDash"!==t}),bt.describe("scales",{_fallback:"scale"}),bt.describe("scale.ticks",{_scriptable:t=>"backdropPadding"!==t&&"callback"!==t,_indexable:t=>"backdropPadding"!==t});const Ls=(t,e,i)=>"top"===e||"left"===e?t[e]+i:t[e]-i;function Rs(t,e){const i=[],s=t.length/e,n=t.length;let o=0;for(;o<n;o+=s)i.push(t[Math.floor(o)]);return i}function Es(t,e,i){const s=t.ticks.length,n=Math.min(e,s-1),o=t._startPixel,a=t._endPixel,r=1e-6;let l,h=t.getPixelForTick(n);if(!(i&&(l=1===s?Math.max(h-o,a-h):0===e?(t.getPixelForTick(1)-h)/2:(h-t.getPixelForTick(n-1))/2,h+=n<e?l:-l,h<o-r||h>a+r)))return h}function Is(t){return t.drawTicks?t.tickLength:0}function zs(t,e){if(!t.display)return 0;const i=He(t.font,e),s=Ne(t.padding);return(Y(t.text)?t.text.length:1)*i.lineHeight+s.height}function Fs(t,e,i){let n=s(t);return(i&&"right"!==e||!i&&"right"===e)&&(n=(t=>"left"===t?"right":"right"===t?"left":t)(n)),n}class Bs extends Ds{constructor(t){super(),this.id=t.id,this.type=t.type,this.options=void 0,this.ctx=t.ctx,this.chart=t.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(t){this.options=t.setContext(this.getContext()),this.axis=t.axis,this._userMin=this.parse(t.min),this._userMax=this.parse(t.max),this._suggestedMin=this.parse(t.suggestedMin),this._suggestedMax=this.parse(t.suggestedMax)}parse(t,e){return t}getUserBounds(){let{_userMin:t,_userMax:e,_suggestedMin:i,_suggestedMax:s}=this;return t=q(t,Number.POSITIVE_INFINITY),e=q(e,Number.NEGATIVE_INFINITY),i=q(i,Number.POSITIVE_INFINITY),s=q(s,Number.NEGATIVE_INFINITY),{min:q(t,i),max:q(e,s),minDefined:X(t),maxDefined:X(e)}}getMinMax(t){let e,{min:i,max:s,minDefined:n,maxDefined:o}=this.getUserBounds();if(n&&o)return{min:i,max:s};const a=this.getMatchingVisibleMetas();for(let r=0,l=a.length;r<l;++r)e=a[r].controller.getMinMax(this,t),n||(i=Math.min(i,e.min)),o||(s=Math.max(s,e.max));return i=o&&i>s?s:i,s=n&&i>s?i:s,{min:q(i,q(s,i)),max:q(s,q(i,s))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){J(this.options.beforeUpdate,[this])}update(t,e,i){const{beginAtZero:s,grace:n,ticks:o}=this.options,a=o.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=e,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=$e(this,n,s),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const r=a<this.ticks.length;this._convertTicksToLabels(r?Rs(this.ticks,a):this.ticks),this.configure(),this.beforeCalculateLabelRotation(),this.calculateLabelRotation(),this.afterCalculateLabelRotation(),o.display&&(o.autoSkip||"auto"===o.source)&&(this.ticks=As(this,this.ticks),this._labelSizes=null),r&&this._convertTicksToLabels(this.ticks),this.beforeFit(),this.fit(),this.afterFit(),this.afterUpdate()}configure(){let t,e,i=this.options.reverse;this.isHorizontal()?(t=this.left,e=this.right):(t=this.top,e=this.bottom,i=!i),this._startPixel=t,this._endPixel=e,this._reversePixels=i,this._length=e-t,this._alignToPixels=this.options.alignToPixels}afterUpdate(){J(this.options.afterUpdate,[this])}beforeSetDimensions(){J(this.options.beforeSetDimensions,[this])}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=0,this.right=this.width):(this.height=this.maxHeight,this.top=0,this.bottom=this.height),this.paddingLeft=0,this.paddingTop=0,this.paddingRight=0,this.paddingBottom=0}afterSetDimensions(){J(this.options.afterSetDimensions,[this])}_callHooks(t){this.chart.notifyPlugins(t,this.getContext()),J(this.options[t],[this])}beforeDataLimits(){this._callHooks("beforeDataLimits")}determineDataLimits(){}afterDataLimits(){this._callHooks("afterDataLimits")}beforeBuildTicks(){this._callHooks("beforeBuildTicks")}buildTicks(){return[]}afterBuildTicks(){this._callHooks("afterBuildTicks")}beforeTickToLabelConversion(){J(this.options.beforeTickToLabelConversion,[this])}generateTickLabels(t){const e=this.options.ticks;let i,s,n;for(i=0,s=t.length;i<s;i++)n=t[i],n.label=J(e.callback,[n.value,i,t],this)}afterTickToLabelConversion(){J(this.options.afterTickToLabelConversion,[this])}beforeCalculateLabelRotation(){J(this.options.beforeCalculateLabelRotation,[this])}calculateLabelRotation(){const t=this.options,e=t.ticks,i=this.ticks.length,s=e.minRotation||0,n=e.maxRotation;let o,a,r,l=s;if(!this._isVisible()||!e.display||s>=n||i<=1||!this.isHorizontal())return void(this.labelRotation=s);const h=this._getLabelSizes(),c=h.widest.width,d=h.highest.height,u=jt(this.chart.width-c,0,this.maxWidth);o=t.offset?this.maxWidth/i:u/(i-1),c+6>o&&(o=u/(i-(t.offset?.5:1)),a=this.maxHeight-Is(t.grid)-e.padding-zs(t.title,this.chart.options.font),r=Math.sqrt(c*c+d*d),l=zt(Math.min(Math.asin(jt((h.highest.height+6)/o,-1,1)),Math.asin(jt(a/r,-1,1))-Math.asin(jt(d/r,-1,1)))),l=Math.max(s,Math.min(n,l))),this.labelRotation=l}afterCalculateLabelRotation(){J(this.options.afterCalculateLabelRotation,[this])}beforeFit(){J(this.options.beforeFit,[this])}fit(){const t={width:0,height:0},{chart:e,options:{ticks:i,title:s,grid:n}}=this,o=this._isVisible(),a=this.isHorizontal();if(o){const o=zs(s,e.options.font);if(a?(t.width=this.maxWidth,t.height=Is(n)+o):(t.height=this.maxHeight,t.width=Is(n)+o),i.display&&this.ticks.length){const{first:e,last:s,widest:n,highest:o}=this._getLabelSizes(),r=2*i.padding,l=It(this.labelRotation),h=Math.cos(l),c=Math.sin(l);if(a){const e=i.mirror?0:c*n.width+h*o.height;t.height=Math.min(this.maxHeight,t.height+e+r)}else{const e=i.mirror?0:h*n.width+c*o.height;t.width=Math.min(this.maxWidth,t.width+e+r)}this._calculatePadding(e,s,c,h)}}this._handleMargins(),a?(this.width=this._length=e.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=e.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,e,i,s){const{ticks:{align:n,padding:o},position:a}=this.options,r=0!==this.labelRotation,l="top"!==a&&"x"===this.axis;if(this.isHorizontal()){const a=this.getPixelForTick(0)-this.left,h=this.right-this.getPixelForTick(this.ticks.length-1);let c=0,d=0;r?l?(c=s*t.width,d=i*e.height):(c=i*t.height,d=s*e.width):"start"===n?d=e.width:"end"===n?c=t.width:(c=t.width/2,d=e.width/2),this.paddingLeft=Math.max((c-a+o)*this.width/(this.width-a),0),this.paddingRight=Math.max((d-h+o)*this.width/(this.width-h),0)}else{let i=e.height/2,s=t.height/2;"start"===n?(i=0,s=t.height):"end"===n&&(i=e.height,s=0),this.paddingTop=i+o,this.paddingBottom=s+o}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){J(this.options.afterFit,[this])}isHorizontal(){const{axis:t,position:e}=this.options;return"top"===e||"bottom"===e||"x"===t}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){let e,i;for(this.beforeTickToLabelConversion(),this.generateTickLabels(t),e=0,i=t.length;e<i;e++)$(t[e].label)&&(t.splice(e,1),i--,e--);this.afterTickToLabelConversion()}_getLabelSizes(){let t=this._labelSizes;if(!t){const e=this.options.ticks.sampleSize;let i=this.ticks;e<i.length&&(i=Rs(i,e)),this._labelSizes=t=this._computeLabelSizes(i,i.length)}return t}_computeLabelSizes(t,e){const{ctx:i,_longestTextCache:s}=this,n=[],o=[];let a,r,l,h,c,d,u,f,g,p,m,x=0,b=0;for(a=0;a<e;++a){if(h=t[a].label,c=this._resolveTickFontOptions(a),i.font=d=c.string,u=s[d]=s[d]||{data:{},gc:[]},f=c.lineHeight,g=p=0,$(h)||Y(h)){if(Y(h))for(r=0,l=h.length;r<l;++r)m=h[r],$(m)||Y(m)||(g=Xt(i,u.data,u.gc,g,m),p+=f)}else g=Xt(i,u.data,u.gc,g,h),p=f;n.push(g),o.push(p),x=Math.max(g,x),b=Math.max(p,b)}!function(t,e){Q(t,(t=>{const i=t.gc,s=i.length/2;let n;if(s>e){for(n=0;n<s;++n)delete t.data[i[n]];i.splice(0,s)}}))}(s,e);const _=n.indexOf(x),y=o.indexOf(b),v=t=>({width:n[t]||0,height:o[t]||0});return{first:v(0),last:v(e-1),widest:v(_),highest:v(y),widths:n,heights:o}}getLabelForValue(t){return t}getPixelForValue(t,e){return NaN}getValueForPixel(t){}getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);const e=this._startPixel+t*this._length;return $t(this._alignToPixels?Kt(this.chart,e,0):e)}getDecimalForPixel(t){const e=(t-this._startPixel)/this._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0}getContext(t){const e=this.ticks||[];if(t>=0&&t<e.length){const i=e[t];return i.$context||(i.$context=function(t,e,i){return Ye(t,{tick:i,index:e,type:"tick"})}(this.getContext(),t,i))}return this.$context||(this.$context=Ye(this.chart.getContext(),{scale:this,type:"scale"}))}_tickSize(){const t=this.options.ticks,e=It(this.labelRotation),i=Math.abs(Math.cos(e)),s=Math.abs(Math.sin(e)),n=this._getLabelSizes(),o=t.autoSkipPadding||0,a=n?n.widest.width+o:0,r=n?n.highest.height+o:0;return this.isHorizontal()?r*i>a*s?a/i:r/s:r*s<a*i?r/i:a/s}_isVisible(){const t=this.options.display;return"auto"!==t?!!t:this.getMatchingVisibleMetas().length>0}_computeGridLineItems(t){const e=this.axis,i=this.chart,s=this.options,{grid:n,position:o}=s,a=n.offset,r=this.isHorizontal(),l=this.ticks.length+(a?1:0),h=Is(n),c=[],d=n.setContext(this.getContext()),u=d.drawBorder?d.borderWidth:0,f=u/2,g=function(t){return Kt(i,t,u)};let p,m,x,b,_,y,v,w,M,k,S,P;if("top"===o)p=g(this.bottom),y=this.bottom-h,w=p-f,k=g(t.top)+f,P=t.bottom;else if("bottom"===o)p=g(this.top),k=t.top,P=g(t.bottom)-f,y=p+f,w=this.top+h;else if("left"===o)p=g(this.right),_=this.right-h,v=p-f,M=g(t.left)+f,S=t.right;else if("right"===o)p=g(this.left),M=t.left,S=g(t.right)-f,_=p+f,v=this.left+h;else if("x"===e){if("center"===o)p=g((t.top+t.bottom)/2+.5);else if(U(o)){const t=Object.keys(o)[0],e=o[t];p=g(this.chart.scales[t].getPixelForValue(e))}k=t.top,P=t.bottom,y=p+f,w=y+h}else if("y"===e){if("center"===o)p=g((t.left+t.right)/2);else if(U(o)){const t=Object.keys(o)[0],e=o[t];p=g(this.chart.scales[t].getPixelForValue(e))}_=p-f,v=_-h,M=t.left,S=t.right}const D=K(s.ticks.maxTicksLimit,l),C=Math.max(1,Math.ceil(l/D));for(m=0;m<l;m+=C){const t=n.setContext(this.getContext(m)),e=t.lineWidth,s=t.color,o=n.borderDash||[],l=t.borderDashOffset,h=t.tickWidth,d=t.tickColor,u=t.tickBorderDash||[],f=t.tickBorderDashOffset;x=Es(this,m,a),void 0!==x&&(b=Kt(i,x,e),r?_=v=M=S=b:y=w=k=P=b,c.push({tx1:_,ty1:y,tx2:v,ty2:w,x1:M,y1:k,x2:S,y2:P,width:e,color:s,borderDash:o,borderDashOffset:l,tickWidth:h,tickColor:d,tickBorderDash:u,tickBorderDashOffset:f}))}return this._ticksLength=l,this._borderValue=p,c}_computeLabelItems(t){const e=this.axis,i=this.options,{position:s,ticks:n}=i,o=this.isHorizontal(),a=this.ticks,{align:r,crossAlign:l,padding:h,mirror:c}=n,d=Is(i.grid),u=d+h,f=c?-h:u,g=-It(this.labelRotation),p=[];let m,x,b,_,y,v,w,M,k,S,P,D,C="middle";if("top"===s)v=this.bottom-f,w=this._getXAxisLabelAlignment();else if("bottom"===s)v=this.top+f,w=this._getXAxisLabelAlignment();else if("left"===s){const t=this._getYAxisLabelAlignment(d);w=t.textAlign,y=t.x}else if("right"===s){const t=this._getYAxisLabelAlignment(d);w=t.textAlign,y=t.x}else if("x"===e){if("center"===s)v=(t.top+t.bottom)/2+u;else if(U(s)){const t=Object.keys(s)[0],e=s[t];v=this.chart.scales[t].getPixelForValue(e)+u}w=this._getXAxisLabelAlignment()}else if("y"===e){if("center"===s)y=(t.left+t.right)/2-u;else if(U(s)){const t=Object.keys(s)[0],e=s[t];y=this.chart.scales[t].getPixelForValue(e)}w=this._getYAxisLabelAlignment(d).textAlign}"y"===e&&("start"===r?C="top":"end"===r&&(C="bottom"));const O=this._getLabelSizes();for(m=0,x=a.length;m<x;++m){b=a[m],_=b.label;const t=n.setContext(this.getContext(m));M=this.getPixelForTick(m)+n.labelOffset,k=this._resolveTickFontOptions(m),S=k.lineHeight,P=Y(_)?_.length:1;const e=P/2,i=t.color,r=t.textStrokeColor,h=t.textStrokeWidth;let d;if(o?(y=M,D="top"===s?"near"===l||0!==g?-P*S+S/2:"center"===l?-O.highest.height/2-e*S+S:-O.highest.height+S/2:"near"===l||0!==g?S/2:"center"===l?O.highest.height/2-e*S:O.highest.height-P*S,c&&(D*=-1)):(v=M,D=(1-P)*S/2),t.showLabelBackdrop){const e=Ne(t.backdropPadding),i=O.heights[m],s=O.widths[m];let n=v+D-e.top,o=y-e.left;switch(C){case"middle":n-=i/2;break;case"bottom":n-=i}switch(w){case"center":o-=s/2;break;case"right":o-=s}d={left:o,top:n,width:s+e.width,height:i+e.height,color:t.backdropColor}}p.push({rotation:g,label:_,font:k,color:i,strokeColor:r,strokeWidth:h,textOffset:D,textAlign:w,textBaseline:C,translation:[y,v],backdrop:d})}return p}_getXAxisLabelAlignment(){const{position:t,ticks:e}=this.options;if(-It(this.labelRotation))return"top"===t?"left":"right";let i="center";return"start"===e.align?i="left":"end"===e.align&&(i="right"),i}_getYAxisLabelAlignment(t){const{position:e,ticks:{crossAlign:i,mirror:s,padding:n}}=this.options,o=t+n,a=this._getLabelSizes().widest.width;let r,l;return"left"===e?s?(l=this.right+n,"near"===i?r="left":"center"===i?(r="center",l+=a/2):(r="right",l+=a)):(l=this.right-o,"near"===i?r="right":"center"===i?(r="center",l-=a/2):(r="left",l=this.left)):"right"===e?s?(l=this.left+n,"near"===i?r="right":"center"===i?(r="center",l-=a/2):(r="left",l-=a)):(l=this.left+o,"near"===i?r="left":"center"===i?(r="center",l+=a/2):(r="right",l=this.right)):r="right",{textAlign:r,x:l}}_computeLabelArea(){if(this.options.ticks.mirror)return;const t=this.chart,e=this.options.position;return"left"===e||"right"===e?{top:0,left:this.left,bottom:t.height,right:this.right}:"top"===e||"bottom"===e?{top:this.top,left:0,bottom:this.bottom,right:t.width}:void 0}drawBackground(){const{ctx:t,options:{backgroundColor:e},left:i,top:s,width:n,height:o}=this;e&&(t.save(),t.fillStyle=e,t.fillRect(i,s,n,o),t.restore())}getLineWidthForValue(t){const e=this.options.grid;if(!this._isVisible()||!e.display)return 0;const i=this.ticks.findIndex((e=>e.value===t));if(i>=0){return e.setContext(this.getContext(i)).lineWidth}return 0}drawGrid(t){const e=this.options.grid,i=this.ctx,s=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t));let n,o;const a=(t,e,s)=>{s.width&&s.color&&(i.save(),i.lineWidth=s.width,i.strokeStyle=s.color,i.setLineDash(s.borderDash||[]),i.lineDashOffset=s.borderDashOffset,i.beginPath(),i.moveTo(t.x,t.y),i.lineTo(e.x,e.y),i.stroke(),i.restore())};if(e.display)for(n=0,o=s.length;n<o;++n){const t=s[n];e.drawOnChartArea&&a({x:t.x1,y:t.y1},{x:t.x2,y:t.y2},t),e.drawTicks&&a({x:t.tx1,y:t.ty1},{x:t.tx2,y:t.ty2},{color:t.tickColor,width:t.tickWidth,borderDash:t.tickBorderDash,borderDashOffset:t.tickBorderDashOffset})}}drawBorder(){const{chart:t,ctx:e,options:{grid:i}}=this,s=i.setContext(this.getContext()),n=i.drawBorder?s.borderWidth:0;if(!n)return;const o=i.setContext(this.getContext(0)).lineWidth,a=this._borderValue;let r,l,h,c;this.isHorizontal()?(r=Kt(t,this.left,n)-n/2,l=Kt(t,this.right,o)+o/2,h=c=a):(h=Kt(t,this.top,n)-n/2,c=Kt(t,this.bottom,o)+o/2,r=l=a),e.save(),e.lineWidth=s.borderWidth,e.strokeStyle=s.borderColor,e.beginPath(),e.moveTo(r,h),e.lineTo(l,c),e.stroke(),e.restore()}drawLabels(t){if(!this.options.ticks.display)return;const e=this.ctx,i=this._computeLabelArea();i&&Qt(e,i);const s=this._labelItems||(this._labelItems=this._computeLabelItems(t));let n,o;for(n=0,o=s.length;n<o;++n){const t=s[n],i=t.font,o=t.label;t.backdrop&&(e.fillStyle=t.backdrop.color,e.fillRect(t.backdrop.left,t.backdrop.top,t.backdrop.width,t.backdrop.height)),se(e,o,0,t.textOffset,i,t)}i&&te(e)}drawTitle(){const{ctx:t,options:{position:e,title:i,reverse:s}}=this;if(!i.display)return;const o=He(i.font),a=Ne(i.padding),r=i.align;let l=o.lineHeight/2;"bottom"===e||"center"===e||U(e)?(l+=a.bottom,Y(i.text)&&(l+=o.lineHeight*(i.text.length-1))):l+=a.top;const{titleX:h,titleY:c,maxWidth:d,rotation:u}=function(t,e,i,s){const{top:o,left:a,bottom:r,right:l,chart:h}=t,{chartArea:c,scales:d}=h;let u,f,g,p=0;const m=r-o,x=l-a;if(t.isHorizontal()){if(f=n(s,a,l),U(i)){const t=Object.keys(i)[0],s=i[t];g=d[t].getPixelForValue(s)+m-e}else g="center"===i?(c.bottom+c.top)/2+m-e:Ls(t,i,e);u=l-a}else{if(U(i)){const t=Object.keys(i)[0],s=i[t];f=d[t].getPixelForValue(s)-x+e}else f="center"===i?(c.left+c.right)/2-x+e:Ls(t,i,e);g=n(s,r,o),p="left"===i?-kt:kt}return{titleX:f,titleY:g,maxWidth:u,rotation:p}}(this,l,e,r);se(t,i.text,0,0,o,{color:i.color,maxWidth:d,rotation:u,textAlign:Fs(r,e,s),textBaseline:"middle",translation:[h,c]})}draw(t){this._isVisible()&&(this.drawBackground(),this.drawGrid(t),this.drawBorder(),this.drawTitle(),this.drawLabels(t))}_layers(){const t=this.options,e=t.ticks&&t.ticks.z||0,i=K(t.grid&&t.grid.z,-1);return this._isVisible()&&this.draw===Bs.prototype.draw?[{z:i,draw:t=>{this.drawBackground(),this.drawGrid(t),this.drawTitle()}},{z:i+1,draw:()=>{this.drawBorder()}},{z:e,draw:t=>{this.drawLabels(t)}}]:[{z:e,draw:t=>{this.draw(t)}}]}getMatchingVisibleMetas(t){const e=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",s=[];let n,o;for(n=0,o=e.length;n<o;++n){const o=e[n];o[i]!==this.id||t&&o.type!==t||s.push(o)}return s}_resolveTickFontOptions(t){return He(this.options.ticks.setContext(this.getContext(t)).font)}_maxDigits(){const t=this._resolveTickFontOptions(0).lineHeight;return(this.isHorizontal()?this.width:this.height)/t}}class Vs{constructor(t,e,i){this.type=t,this.scope=e,this.override=i,this.items=Object.create(null)}isForType(t){return Object.prototype.isPrototypeOf.call(this.type.prototype,t.prototype)}register(t){const e=Object.getPrototypeOf(t);let i;(function(t){return"id"in t&&"defaults"in t})(e)&&(i=this.register(e));const s=this.items,n=t.id,o=this.scope+"."+n;if(!n)throw new Error("class does not have id: "+t);return n in s||(s[n]=t,function(t,e,i){const s=nt(Object.create(null),[i?bt.get(i):{},bt.get(e),t.defaults]);bt.set(e,s),t.defaultRoutes&&function(t,e){Object.keys(e).forEach((i=>{const s=i.split("."),n=s.pop(),o=[t].concat(s).join("."),a=e[i].split("."),r=a.pop(),l=a.join(".");bt.route(o,n,l,r)}))}(e,t.defaultRoutes);t.descriptors&&bt.describe(e,t.descriptors)}(t,o,i),this.override&&bt.override(t.id,t.overrides)),o}get(t){return this.items[t]}unregister(t){const e=this.items,i=t.id,s=this.scope;i in e&&delete e[i],s&&i in bt[s]&&(delete bt[s][i],this.override&&delete gt[i])}}var Ws=new class{constructor(){this.controllers=new Vs(Ps,"datasets",!0),this.elements=new Vs(Ds,"elements"),this.plugins=new Vs(Object,"plugins"),this.scales=new Vs(Bs,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each("register",t)}remove(...t){this._each("unregister",t)}addControllers(...t){this._each("register",t,this.controllers)}addElements(...t){this._each("register",t,this.elements)}addPlugins(...t){this._each("register",t,this.plugins)}addScales(...t){this._each("register",t,this.scales)}getController(t){return this._get(t,this.controllers,"controller")}getElement(t){return this._get(t,this.elements,"element")}getPlugin(t){return this._get(t,this.plugins,"plugin")}getScale(t){return this._get(t,this.scales,"scale")}removeControllers(...t){this._each("unregister",t,this.controllers)}removeElements(...t){this._each("unregister",t,this.elements)}removePlugins(...t){this._each("unregister",t,this.plugins)}removeScales(...t){this._each("unregister",t,this.scales)}_each(t,e,i){[...e].forEach((e=>{const s=i||this._getRegistryForType(e);i||s.isForType(e)||s===this.plugins&&e.id?this._exec(t,s,e):Q(e,(e=>{const s=i||this._getRegistryForType(e);this._exec(t,s,e)}))}))}_exec(t,e,i){const s=ht(t);J(i["before"+s],[],i),e[t](i),J(i["after"+s],[],i)}_getRegistryForType(t){for(let e=0;e<this._typedRegistries.length;e++){const i=this._typedRegistries[e];if(i.isForType(t))return i}return this.plugins}_get(t,e,i){const s=e.get(t);if(void 0===s)throw new Error('"'+t+'" is not a registered '+i+".");return s}};class Ns{constructor(){this._init=[]}notify(t,e,i,s){"beforeInit"===e&&(this._init=this._createDescriptors(t,!0),this._notify(this._init,t,"install"));const n=s?this._descriptors(t).filter(s):this._descriptors(t),o=this._notify(n,t,e,i);return"afterDestroy"===e&&(this._notify(n,t,"stop"),this._notify(this._init,t,"uninstall")),o}_notify(t,e,i,s){s=s||{};for(const n of t){const t=n.plugin;if(!1===J(t[i],[e,s,n.options],t)&&s.cancelable)return!1}return!0}invalidate(){$(this._cache)||(this._oldCache=this._cache,this._cache=void 0)}_descriptors(t){if(this._cache)return this._cache;const e=this._cache=this._createDescriptors(t);return this._notifyStateChanges(t),e}_createDescriptors(t,e){const i=t&&t.config,s=K(i.options&&i.options.plugins,{}),n=function(t){const e=[],i=Object.keys(Ws.plugins.items);for(let t=0;t<i.length;t++)e.push(Ws.getPlugin(i[t]));const s=t.plugins||[];for(let t=0;t<s.length;t++){const i=s[t];-1===e.indexOf(i)&&e.push(i)}return e}(i);return!1!==s||e?function(t,e,i,s){const n=[],o=t.getContext();for(let a=0;a<e.length;a++){const r=e[a],l=Hs(i[r.id],s);null!==l&&n.push({plugin:r,options:js(t.config,r,l,o)})}return n}(t,n,s,e):[]}_notifyStateChanges(t){const e=this._oldCache||[],i=this._cache,s=(t,e)=>t.filter((t=>!e.some((e=>t.plugin.id===e.plugin.id))));this._notify(s(e,i),t,"stop"),this._notify(s(i,e),t,"start")}}function Hs(t,e){return e||!1!==t?!0===t?{}:t:null}function js(t,e,i,s){const n=t.pluginScopeKeys(e),o=t.getOptionScopes(i,n);return t.createResolver(o,s,[""],{scriptable:!1,indexable:!1,allKeys:!0})}function $s(t,e){const i=bt.datasets[t]||{};return((e.datasets||{})[t]||{}).indexAxis||e.indexAxis||i.indexAxis||"x"}function Ys(t,e){return"x"===t||"y"===t?t:e.axis||("top"===(i=e.position)||"bottom"===i?"x":"left"===i||"right"===i?"y":void 0)||t.charAt(0).toLowerCase();var i}function Us(t){const e=t.options||(t.options={});e.plugins=K(e.plugins,{}),e.scales=function(t,e){const i=gt[t.type]||{scales:{}},s=e.scales||{},n=$s(t.type,e),o=Object.create(null),a=Object.create(null);return Object.keys(s).forEach((t=>{const e=s[t];if(!U(e))return console.error(`Invalid scale configuration for scale: ${t}`);if(e._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${t}`);const r=Ys(t,e),l=function(t,e){return t===e?"_index_":"_value_"}(r,n),h=i.scales||{};o[r]=o[r]||t,a[t]=ot(Object.create(null),[{axis:r},e,h[r],h[l]])})),t.data.datasets.forEach((i=>{const n=i.type||t.type,r=i.indexAxis||$s(n,e),l=(gt[n]||{}).scales||{};Object.keys(l).forEach((t=>{const e=function(t,e){let i=t;return"_index_"===t?i=e:"_value_"===t&&(i="x"===e?"y":"x"),i}(t,r),n=i[e+"AxisID"]||o[e]||e;a[n]=a[n]||Object.create(null),ot(a[n],[{axis:e},s[n],l[t]])}))})),Object.keys(a).forEach((t=>{const e=a[t];ot(e,[bt.scales[e.type],bt.scale])})),a}(t,e)}function Xs(t){return(t=t||{}).datasets=t.datasets||[],t.labels=t.labels||[],t}const qs=new Map,Ks=new Set;function Gs(t,e){let i=qs.get(t);return i||(i=e(),qs.set(t,i),Ks.add(i)),i}const Zs=(t,e,i)=>{const s=lt(e,i);void 0!==s&&t.add(s)};class Js{constructor(t){this._config=function(t){return(t=t||{}).data=Xs(t.data),Us(t),t}(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=Xs(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){const t=this._config;this.clearCache(),Us(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return Gs(t,(()=>[[`datasets.${t}`,""]]))}datasetAnimationScopeKeys(t,e){return Gs(`${t}.transition.${e}`,(()=>[[`datasets.${t}.transitions.${e}`,`transitions.${e}`],[`datasets.${t}`,""]]))}datasetElementScopeKeys(t,e){return Gs(`${t}-${e}`,(()=>[[`datasets.${t}.elements.${e}`,`datasets.${t}`,`elements.${e}`,""]]))}pluginScopeKeys(t){const e=t.id;return Gs(`${this.type}-plugin-${e}`,(()=>[[`plugins.${e}`,...t.additionalOptionScopes||[]]]))}_cachedScopes(t,e){const i=this._scopeCache;let s=i.get(t);return s&&!e||(s=new Map,i.set(t,s)),s}getOptionScopes(t,e,i){const{options:s,type:n}=this,o=this._cachedScopes(t,i),a=o.get(e);if(a)return a;const r=new Set;e.forEach((e=>{t&&(r.add(t),e.forEach((e=>Zs(r,t,e)))),e.forEach((t=>Zs(r,s,t))),e.forEach((t=>Zs(r,gt[n]||{},t))),e.forEach((t=>Zs(r,bt,t))),e.forEach((t=>Zs(r,pt,t)))}));const l=Array.from(r);return 0===l.length&&l.push(Object.create(null)),Ks.has(e)&&o.set(e,l),l}chartOptionScopes(){const{options:t,type:e}=this;return[t,gt[e]||{},bt.datasets[e]||{},{type:e},bt,pt]}resolveNamedOptions(t,e,i,s=[""]){const n={$shared:!0},{resolver:o,subPrefixes:a}=Qs(this._resolverCache,t,s);let r=o;if(function(t,e){const{isScriptable:i,isIndexable:s}=ri(t);for(const n of e){const e=i(n),o=s(n),a=(o||e)&&t[n];if(e&&(dt(a)||tn(a))||o&&Y(a))return!0}return!1}(o,e)){n.$shared=!1;r=ai(o,i=dt(i)?i():i,this.createResolver(t,i,a))}for(const t of e)n[t]=r[t];return n}createResolver(t,e,i=[""],s){const{resolver:n}=Qs(this._resolverCache,t,i);return U(e)?ai(n,e,void 0,s):n}}function Qs(t,e,i){let s=t.get(e);s||(s=new Map,t.set(e,s));const n=i.join();let o=s.get(n);if(!o){o={resolver:oi(e,i),subPrefixes:i.filter((t=>!t.toLowerCase().includes("hover")))},s.set(n,o)}return o}const tn=t=>U(t)&&Object.getOwnPropertyNames(t).reduce(((e,i)=>e||dt(t[i])),!1);const en=["top","bottom","left","right","chartArea"];function sn(t,e){return"top"===t||"bottom"===t||-1===en.indexOf(t)&&"x"===e}function nn(t,e){return function(i,s){return i[t]===s[t]?i[e]-s[e]:i[t]-s[t]}}function on(t){const e=t.chart,i=e.options.animation;e.notifyPlugins("afterRender"),J(i&&i.onComplete,[t],e)}function an(t){const e=t.chart,i=e.options.animation;J(i&&i.onProgress,[t],e)}function rn(t){return ge()&&"string"==typeof t?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const ln={},hn=t=>{const e=rn(t);return Object.values(ln).filter((t=>t.canvas===e)).pop()};function cn(t,e,i){const s=Object.keys(t);for(const n of s){const s=+n;if(s>=e){const o=t[n];delete t[n],(i>0||s>e)&&(t[s+i]=o)}}}class dn{constructor(t,e){const s=this.config=new Js(e),n=rn(t),o=hn(n);if(o)throw new Error("Canvas is already in use. Chart with ID '"+o.id+"' must be destroyed before the canvas can be reused.");const r=s.createResolver(s.chartOptionScopes(),this.getContext());this.platform=new(s.platform||ls(n)),this.platform.updateConfig(s);const l=this.platform.acquireContext(n,r.aspectRatio),h=l&&l.canvas,c=h&&h.height,d=h&&h.width;this.id=j(),this.ctx=l,this.canvas=h,this.width=d,this.height=c,this._options=r,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new Ns,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=i((t=>this.update(t)),r.resizeDelay||0),this._dataChanges=[],ln[this.id]=this,l&&h?(a.listen(this,"complete",on),a.listen(this,"progress",an),this._initialize(),this.attached&&this.update()):console.error("Failed to create chart: can't acquire context from the given item")}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},width:i,height:s,_aspectRatio:n}=this;return $(t)?e&&n?n:s?i/s:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():ke(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return Gt(this.canvas,this.ctx),this}stop(){return a.stop(this),this}resize(t,e){a.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){const i=this.options,s=this.canvas,n=i.maintainAspectRatio&&this.aspectRatio,o=this.platform.getMaximumSize(s,t,e,n),a=i.devicePixelRatio||this.platform.getDevicePixelRatio(),r=this.width?"resize":"attach";this.width=o.width,this.height=o.height,this._aspectRatio=this.aspectRatio,ke(this,a,!0)&&(this.notifyPlugins("resize",{size:o}),J(i.onResize,[this,o],this),this.attached&&this._doResize(r)&&this.render())}ensureScalesHaveIDs(){Q(this.options.scales||{},((t,e)=>{t.id=e}))}buildOrUpdateScales(){const t=this.options,e=t.scales,i=this.scales,s=Object.keys(i).reduce(((t,e)=>(t[e]=!1,t)),{});let n=[];e&&(n=n.concat(Object.keys(e).map((t=>{const i=e[t],s=Ys(t,i),n="r"===s,o="x"===s;return{options:i,dposition:n?"chartArea":o?"bottom":"left",dtype:n?"radialLinear":o?"category":"linear"}})))),Q(n,(e=>{const n=e.options,o=n.id,a=Ys(o,n),r=K(n.type,e.dtype);void 0!==n.position&&sn(n.position,a)===sn(e.dposition)||(n.position=e.dposition),s[o]=!0;let l=null;if(o in i&&i[o].type===r)l=i[o];else{l=new(Ws.getScale(r))({id:o,type:r,ctx:this.ctx,chart:this}),i[l.id]=l}l.init(n,t)})),Q(s,((t,e)=>{t||delete i[e]})),Q(i,(t=>{ni.configure(this,t,t.options),ni.addBox(this,t)}))}_updateMetasets(){const t=this._metasets,e=this.data.datasets.length,i=t.length;if(t.sort(((t,e)=>t.index-e.index)),i>e){for(let t=e;t<i;++t)this._destroyDatasetMeta(t);t.splice(e,i-e)}this._sortedMetasets=t.slice(0).sort(nn("order","index"))}_removeUnreferencedMetasets(){const{_metasets:t,data:{datasets:e}}=this;t.length>e.length&&delete this._stacks,t.forEach(((t,i)=>{0===e.filter((e=>e===t._dataset)).length&&this._destroyDatasetMeta(i)}))}buildOrUpdateControllers(){const t=[],e=this.data.datasets;let i,s;for(this._removeUnreferencedMetasets(),i=0,s=e.length;i<s;i++){const s=e[i];let n=this.getDatasetMeta(i);const o=s.type||this.config.type;if(n.type&&n.type!==o&&(this._destroyDatasetMeta(i),n=this.getDatasetMeta(i)),n.type=o,n.indexAxis=s.indexAxis||$s(o,this.options),n.order=s.order||0,n.index=i,n.label=""+s.label,n.visible=this.isDatasetVisible(i),n.controller)n.controller.updateIndex(i),n.controller.linkScales();else{const e=Ws.getController(o),{datasetElementType:s,dataElementType:a}=bt.datasets[o];Object.assign(e.prototype,{dataElementType:Ws.getElement(a),datasetElementType:s&&Ws.getElement(s)}),n.controller=new e(this,i),t.push(n.controller)}}return this._updateMetasets(),t}_resetElements(){Q(this.data.datasets,((t,e)=>{this.getDatasetMeta(e).controller.reset()}),this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const e=this.config;e.update();const i=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),s=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),!1===this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0}))return;const n=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let o=0;for(let t=0,e=this.data.datasets.length;t<e;t++){const{controller:e}=this.getDatasetMeta(t),i=!s&&-1===n.indexOf(e);e.buildOrUpdateElements(i),o=Math.max(+e.getMaxOverflow(),o)}o=this._minPadding=i.layout.autoPadding?o:0,this._updateLayout(o),s||Q(n,(t=>{t.reset()})),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(nn("z","_idx"));const{_active:a,_lastEvent:r}=this;r?this._eventHandler(r,!0):a.length&&this._updateHoverStyles(a,a,!0),this.render()}_updateScales(){Q(this.scales,(t=>{ni.removeBox(this,t)})),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,e=new Set(Object.keys(this._listeners)),i=new Set(t.events);ut(e,i)&&!!this._responsiveListeners===t.responsive||(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(const{method:i,start:s,count:n}of e){cn(t,s,"_removeElements"===i?-n:n)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const e=this.data.datasets.length,i=e=>new Set(t.filter((t=>t[0]===e)).map(((t,e)=>e+","+t.splice(1).join(",")))),s=i(0);for(let t=1;t<e;t++)if(!ut(s,i(t)))return;return Array.from(s).map((t=>t.split(","))).map((t=>({method:t[1],start:+t[2],count:+t[3]})))}_updateLayout(t){if(!1===this.notifyPlugins("beforeLayout",{cancelable:!0}))return;ni.update(this,this.width,this.height,t);const e=this.chartArea,i=e.width<=0||e.height<=0;this._layers=[],Q(this.boxes,(t=>{i&&"chartArea"===t.position||(t.configure&&t.configure(),this._layers.push(...t._layers()))}),this),this._layers.forEach(((t,e)=>{t._idx=e})),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(!1!==this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})){for(let t=0,e=this.data.datasets.length;t<e;++t)this.getDatasetMeta(t).controller.configure();for(let e=0,i=this.data.datasets.length;e<i;++e)this._updateDataset(e,dt(t)?t({datasetIndex:e}):t);this.notifyPlugins("afterDatasetsUpdate",{mode:t})}}_updateDataset(t,e){const i=this.getDatasetMeta(t),s={meta:i,index:t,mode:e,cancelable:!0};!1!==this.notifyPlugins("beforeDatasetUpdate",s)&&(i.controller._update(e),s.cancelable=!1,this.notifyPlugins("afterDatasetUpdate",s))}render(){!1!==this.notifyPlugins("beforeRender",{cancelable:!0})&&(a.has(this)?this.attached&&!a.running(this)&&a.start(this):(this.draw(),on({chart:this})))}draw(){let t;if(this._resizeBeforeDraw){const{width:t,height:e}=this._resizeBeforeDraw;this._resize(t,e),this._resizeBeforeDraw=null}if(this.clear(),this.width<=0||this.height<=0)return;if(!1===this.notifyPlugins("beforeDraw",{cancelable:!0}))return;const e=this._layers;for(t=0;t<e.length&&e[t].z<=0;++t)e[t].draw(this.chartArea);for(this._drawDatasets();t<e.length;++t)e[t].draw(this.chartArea);this.notifyPlugins("afterDraw")}_getSortedDatasetMetas(t){const e=this._sortedMetasets,i=[];let s,n;for(s=0,n=e.length;s<n;++s){const n=e[s];t&&!n.visible||i.push(n)}return i}getSortedVisibleDatasetMetas(){return this._getSortedDatasetMetas(!0)}_drawDatasets(){if(!1===this.notifyPlugins("beforeDatasetsDraw",{cancelable:!0}))return;const t=this.getSortedVisibleDatasetMetas();for(let e=t.length-1;e>=0;--e)this._drawDataset(t[e]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const e=this.ctx,i=t._clip,s=!i.disabled,n=this.chartArea,o={meta:t,index:t.index,cancelable:!0};!1!==this.notifyPlugins("beforeDatasetDraw",o)&&(s&&Qt(e,{left:!1===i.left?0:n.left-i.left,right:!1===i.right?this.width:n.right+i.right,top:!1===i.top?0:n.top-i.top,bottom:!1===i.bottom?this.height:n.bottom+i.bottom}),t.controller.draw(),s&&te(e),o.cancelable=!1,this.notifyPlugins("afterDatasetDraw",o))}getElementsAtEventForMode(t,e,i,s){const n=Ee.modes[e];return"function"==typeof n?n(this,t,i,s):[]}getDatasetMeta(t){const e=this.data.datasets[t],i=this._metasets;let s=i.filter((t=>t&&t._dataset===e)).pop();return s||(s={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},i.push(s)),s}getContext(){return this.$context||(this.$context=Ye(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const i=this.getDatasetMeta(t);return"boolean"==typeof i.hidden?!i.hidden:!e.hidden}setDatasetVisibility(t,e){this.getDatasetMeta(t).hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,i){const s=i?"show":"hide",n=this.getDatasetMeta(t),o=n.controller._resolveAnimations(void 0,s);ct(e)?(n.data[e].hidden=!i,this.update()):(this.setDatasetVisibility(t,i),o.update(n,{visible:i}),this.update((e=>e.datasetIndex===t?s:void 0)))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),a.remove(this),t=0,e=this.data.datasets.length;t<e;++t)this._destroyDatasetMeta(t)}destroy(){this.notifyPlugins("beforeDestroy");const{canvas:t,ctx:e}=this;this._stop(),this.config.clearCache(),t&&(this.unbindEvents(),Gt(t,e),this.platform.releaseContext(e),this.canvas=null,this.ctx=null),this.notifyPlugins("destroy"),delete ln[this.id],this.notifyPlugins("afterDestroy")}toBase64Image(...t){return this.canvas.toDataURL(...t)}bindEvents(){this.bindUserEvents(),this.options.responsive?this.bindResponsiveEvents():this.attached=!0}bindUserEvents(){const t=this._listeners,e=this.platform,i=(i,s)=>{e.addEventListener(this,i,s),t[i]=s},s=(t,e,i)=>{t.offsetX=e,t.offsetY=i,this._eventHandler(t)};Q(this.options.events,(t=>i(t,s)))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,e=this.platform,i=(i,s)=>{e.addEventListener(this,i,s),t[i]=s},s=(i,s)=>{t[i]&&(e.removeEventListener(this,i,s),delete t[i])},n=(t,e)=>{this.canvas&&this.resize(t,e)};let o;const a=()=>{s("attach",a),this.attached=!0,this.resize(),i("resize",n),i("detach",o)};o=()=>{this.attached=!1,s("resize",n),this._stop(),this._resize(0,0),i("attach",a)},e.isAttached(this.canvas)?a():o()}unbindEvents(){Q(this._listeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._listeners={},Q(this._responsiveListeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._responsiveListeners=void 0}updateHoverStyle(t,e,i){const s=i?"set":"remove";let n,o,a,r;for("dataset"===e&&(n=this.getDatasetMeta(t[0].datasetIndex),n.controller["_"+s+"DatasetHoverStyle"]()),a=0,r=t.length;a<r;++a){o=t[a];const e=o&&this.getDatasetMeta(o.datasetIndex).controller;e&&e[s+"HoverStyle"](o.element,o.datasetIndex,o.index)}}getActiveElements(){return this._active||[]}setActiveElements(t){const e=this._active||[],i=t.map((({datasetIndex:t,index:e})=>{const i=this.getDatasetMeta(t);if(!i)throw new Error("No dataset found at index "+t);return{datasetIndex:t,element:i.data[e],index:e}}));!tt(i,e)&&(this._active=i,this._lastEvent=null,this._updateHoverStyles(i,e))}notifyPlugins(t,e,i){return this._plugins.notify(this,t,e,i)}_updateHoverStyles(t,e,i){const s=this.options.hover,n=(t,e)=>t.filter((t=>!e.some((e=>t.datasetIndex===e.datasetIndex&&t.index===e.index)))),o=n(e,t),a=i?t:n(t,e);o.length&&this.updateHoverStyle(o,s.mode,!1),a.length&&s.mode&&this.updateHoverStyle(a,s.mode,!0)}_eventHandler(t,e){const i={event:t,replay:e,cancelable:!0,inChartArea:Jt(t,this.chartArea,this._minPadding)},s=e=>(e.options.events||this.options.events).includes(t.native.type);if(!1===this.notifyPlugins("beforeEvent",i,s))return;const n=this._handleEvent(t,e,i.inChartArea);return i.cancelable=!1,this.notifyPlugins("afterEvent",i,s),(n||i.changed)&&this.render(),this}_handleEvent(t,e,i){const{_active:s=[],options:n}=this,o=e,a=this._getActiveElements(t,s,i,o),r=ft(t),l=function(t,e,i,s){return i&&"mouseout"!==t.type?s?e:t:null}(t,this._lastEvent,i,r);i&&(this._lastEvent=null,J(n.onHover,[t,a,this],this),r&&J(n.onClick,[t,a,this],this));const h=!tt(a,s);return(h||e)&&(this._active=a,this._updateHoverStyles(a,s,e)),this._lastEvent=l,h}_getActiveElements(t,e,i,s){if("mouseout"===t.type)return[];if(!i)return e;const n=this.options.hover;return this.getElementsAtEventForMode(t,n.mode,n,s)}}const un=()=>Q(dn.instances,(t=>t._plugins.invalidate())),fn=!0;function gn(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}Object.defineProperties(dn,{defaults:{enumerable:fn,value:bt},instances:{enumerable:fn,value:ln},overrides:{enumerable:fn,value:gt},registry:{enumerable:fn,value:Ws},version:{enumerable:fn,value:"3.7.1"},getChart:{enumerable:fn,value:hn},register:{enumerable:fn,value:(...t)=>{Ws.add(...t),un()}},unregister:{enumerable:fn,value:(...t)=>{Ws.remove(...t),un()}}});class pn{constructor(t){this.options=t||{}}formats(){return gn()}parse(t,e){return gn()}format(t,e){return gn()}add(t,e,i){return gn()}diff(t,e,i){return gn()}startOf(t,e,i){return gn()}endOf(t,e){return gn()}}pn.override=function(t){Object.assign(pn.prototype,t)};var mn={_date:pn};function xn(t){const e=t.iScale,i=function(t,e){if(!t._cache.$bar){const i=t.getMatchingVisibleMetas(e);let s=[];for(let e=0,n=i.length;e<n;e++)s=s.concat(i[e].controller.getAllParsedValues(t));t._cache.$bar=fe(s.sort(((t,e)=>t-e)))}return t._cache.$bar}(e,t.type);let s,n,o,a,r=e._length;const l=()=>{32767!==o&&-32768!==o&&(ct(a)&&(r=Math.min(r,Math.abs(o-a)||r)),a=o)};for(s=0,n=i.length;s<n;++s)o=e.getPixelForValue(i[s]),l();for(a=void 0,s=0,n=e.ticks.length;s<n;++s)o=e.getPixelForTick(s),l();return r}function bn(t,e,i,s){return Y(t)?function(t,e,i,s){const n=i.parse(t[0],s),o=i.parse(t[1],s),a=Math.min(n,o),r=Math.max(n,o);let l=a,h=r;Math.abs(a)>Math.abs(r)&&(l=r,h=a),e[i.axis]=h,e._custom={barStart:l,barEnd:h,start:n,end:o,min:a,max:r}}(t,e,i,s):e[i.axis]=i.parse(t,s),e}function _n(t,e,i,s){const n=t.iScale,o=t.vScale,a=n.getLabels(),r=n===o,l=[];let h,c,d,u;for(h=i,c=i+s;h<c;++h)u=e[h],d={},d[n.axis]=r||n.parse(a[h],h),l.push(bn(u,d,o,h));return l}function yn(t){return t&&void 0!==t.barStart&&void 0!==t.barEnd}function vn(t,e,i,s){let n=e.borderSkipped;const o={};if(!n)return void(t.borderSkipped=o);const{start:a,end:r,reverse:l,top:h,bottom:c}=function(t){let e,i,s,n,o;return t.horizontal?(e=t.base>t.x,i="left",s="right"):(e=t.base<t.y,i="bottom",s="top"),e?(n="end",o="start"):(n="start",o="end"),{start:i,end:s,reverse:e,top:n,bottom:o}}(t);"middle"===n&&i&&(t.enableBorderRadius=!0,(i._top||0)===s?n=h:(i._bottom||0)===s?n=c:(o[wn(c,a,r,l)]=!0,n=h)),o[wn(n,a,r,l)]=!0,t.borderSkipped=o}function wn(t,e,i,s){var n,o,a;return s?(a=i,t=Mn(t=(n=t)===(o=e)?a:n===a?o:n,i,e)):t=Mn(t,e,i),t}function Mn(t,e,i){return"start"===t?e:"end"===t?i:t}function kn(t,{inflateAmount:e},i){t.inflateAmount="auto"===e?1===i?.33:0:e}class Sn extends Ps{parsePrimitiveData(t,e,i,s){return _n(t,e,i,s)}parseArrayData(t,e,i,s){return _n(t,e,i,s)}parseObjectData(t,e,i,s){const{iScale:n,vScale:o}=t,{xAxisKey:a="x",yAxisKey:r="y"}=this._parsing,l="x"===n.axis?a:r,h="x"===o.axis?a:r,c=[];let d,u,f,g;for(d=i,u=i+s;d<u;++d)g=e[d],f={},f[n.axis]=n.parse(lt(g,l),d),c.push(bn(lt(g,h),f,o,d));return c}updateRangeFromParsed(t,e,i,s){super.updateRangeFromParsed(t,e,i,s);const n=i._custom;n&&e===this._cachedMeta.vScale&&(t.min=Math.min(t.min,n.min),t.max=Math.max(t.max,n.max))}getMaxOverflow(){return 0}getLabelAndValue(t){const e=this._cachedMeta,{iScale:i,vScale:s}=e,n=this.getParsed(t),o=n._custom,a=yn(o)?"["+o.start+", "+o.end+"]":""+s.getLabelForValue(n[s.axis]);return{label:""+i.getLabelForValue(n[i.axis]),value:a}}initialize(){this.enableOptionSharing=!0,super.initialize();this._cachedMeta.stack=this.getDataset().stack}update(t){const e=this._cachedMeta;this.updateElements(e.data,0,e.data.length,t)}updateElements(t,e,i,s){const n="reset"===s,{index:o,_cachedMeta:{vScale:a}}=this,r=a.getBasePixel(),l=a.isHorizontal(),h=this._getRuler(),c=this.resolveDataElementOptions(e,s),d=this.getSharedOptions(c),u=this.includeOptions(s,d);this.updateSharedOptions(d,s,c);for(let c=e;c<e+i;c++){const e=this.getParsed(c),i=n||$(e[a.axis])?{base:r,head:r}:this._calculateBarValuePixels(c),f=this._calculateBarIndexPixels(c,h),g=(e._stacks||{})[a.axis],p={horizontal:l,base:i.base,enableBorderRadius:!g||yn(e._custom)||o===g._top||o===g._bottom,x:l?i.head:f.center,y:l?f.center:i.head,height:l?f.size:Math.abs(i.size),width:l?Math.abs(i.size):f.size};u&&(p.options=d||this.resolveDataElementOptions(c,t[c].active?"active":s));const m=p.options||t[c].options;vn(p,m,g,o),kn(p,m,h.ratio),this.updateElement(t[c],c,p,s)}}_getStacks(t,e){const i=this._cachedMeta.iScale,s=i.getMatchingVisibleMetas(this._type),n=i.options.stacked,o=s.length,a=[];let r,l;for(r=0;r<o;++r)if(l=s[r],l.controller.options.grouped){if(void 0!==e){const t=l.controller.getParsed(e)[l.controller._cachedMeta.vScale.axis];if($(t)||isNaN(t))continue}if((!1===n||-1===a.indexOf(l.stack)||void 0===n&&void 0===l.stack)&&a.push(l.stack),l.index===t)break}return a.length||a.push(void 0),a}_getStackCount(t){return this._getStacks(void 0,t).length}_getStackIndex(t,e,i){const s=this._getStacks(t,i),n=void 0!==e?s.indexOf(e):-1;return-1===n?s.length-1:n}_getRuler(){const t=this.options,e=this._cachedMeta,i=e.iScale,s=[];let n,o;for(n=0,o=e.data.length;n<o;++n)s.push(i.getPixelForValue(this.getParsed(n)[i.axis],n));const a=t.barThickness;return{min:a||xn(e),pixels:s,start:i._startPixel,end:i._endPixel,stackCount:this._getStackCount(),scale:i,grouped:t.grouped,ratio:a?1:t.categoryPercentage*t.barPercentage}}_calculateBarValuePixels(t){const{_cachedMeta:{vScale:e,_stacked:i},options:{base:s,minBarLength:n}}=this,o=s||0,a=this.getParsed(t),r=a._custom,l=yn(r);let h,c,d=a[e.axis],u=0,f=i?this.applyStack(e,a,i):d;f!==d&&(u=f-d,f=d),l&&(d=r.barStart,f=r.barEnd-r.barStart,0!==d&&Ct(d)!==Ct(r.barEnd)&&(u=0),u+=d);const g=$(s)||l?u:s;let p=e.getPixelForValue(g);if(h=this.chart.getDataVisibility(t)?e.getPixelForValue(u+f):p,c=h-p,Math.abs(c)<n&&(c=function(t,e,i){return 0!==t?Ct(t):(e.isHorizontal()?1:-1)*(e.min>=i?1:-1)}(c,e,o)*n,d===o&&(p-=c/2),h=p+c),p===e.getPixelForValue(o)){const t=Ct(c)*e.getLineWidthForValue(o)/2;p+=t,c-=t}return{size:c,base:p,head:h,center:h+c/2}}_calculateBarIndexPixels(t,e){const i=e.scale,s=this.options,n=s.skipNull,o=K(s.maxBarThickness,1/0);let a,r;if(e.grouped){const i=n?this._getStackCount(t):e.stackCount,l="flex"===s.barThickness?function(t,e,i,s){const n=e.pixels,o=n[t];let a=t>0?n[t-1]:null,r=t<n.length-1?n[t+1]:null;const l=i.categoryPercentage;null===a&&(a=o-(null===r?e.end-e.start:r-o)),null===r&&(r=o+o-a);const h=o-(o-Math.min(a,r))/2*l;return{chunk:Math.abs(r-a)/2*l/s,ratio:i.barPercentage,start:h}}(t,e,s,i):function(t,e,i,s){const n=i.barThickness;let o,a;return $(n)?(o=e.min*i.categoryPercentage,a=i.barPercentage):(o=n*s,a=1),{chunk:o/s,ratio:a,start:e.pixels[t]-o/2}}(t,e,s,i),h=this._getStackIndex(this.index,this._cachedMeta.stack,n?t:void 0);a=l.start+l.chunk*h+l.chunk/2,r=Math.min(o,l.chunk*l.ratio)}else a=i.getPixelForValue(this.getParsed(t)[i.axis],t),r=Math.min(o,e.min*e.ratio);return{base:a-r/2,head:a+r/2,center:a,size:r}}draw(){const t=this._cachedMeta,e=t.vScale,i=t.data,s=i.length;let n=0;for(;n<s;++n)null!==this.getParsed(n)[e.axis]&&i[n].draw(this._ctx)}}Sn.id="bar",Sn.defaults={datasetElementType:!1,dataElementType:"bar",categoryPercentage:.8,barPercentage:.9,grouped:!0,animations:{numbers:{type:"number",properties:["x","y","base","width","height"]}}},Sn.overrides={scales:{_index_:{type:"category",offset:!0,grid:{offset:!0}},_value_:{type:"linear",beginAtZero:!0}}};class Pn extends Ps{initialize(){this.enableOptionSharing=!0,super.initialize()}parsePrimitiveData(t,e,i,s){const n=super.parsePrimitiveData(t,e,i,s);for(let t=0;t<n.length;t++)n[t]._custom=this.resolveDataElementOptions(t+i).radius;return n}parseArrayData(t,e,i,s){const n=super.parseArrayData(t,e,i,s);for(let t=0;t<n.length;t++){const s=e[i+t];n[t]._custom=K(s[2],this.resolveDataElementOptions(t+i).radius)}return n}parseObjectData(t,e,i,s){const n=super.parseObjectData(t,e,i,s);for(let t=0;t<n.length;t++){const s=e[i+t];n[t]._custom=K(s&&s.r&&+s.r,this.resolveDataElementOptions(t+i).radius)}return n}getMaxOverflow(){const t=this._cachedMeta.data;let e=0;for(let i=t.length-1;i>=0;--i)e=Math.max(e,t[i].size(this.resolveDataElementOptions(i))/2);return e>0&&e}getLabelAndValue(t){const e=this._cachedMeta,{xScale:i,yScale:s}=e,n=this.getParsed(t),o=i.getLabelForValue(n.x),a=s.getLabelForValue(n.y),r=n._custom;return{label:e.label,value:"("+o+", "+a+(r?", "+r:"")+")"}}update(t){const e=this._cachedMeta.data;this.updateElements(e,0,e.length,t)}updateElements(t,e,i,s){const n="reset"===s,{iScale:o,vScale:a}=this._cachedMeta,r=this.resolveDataElementOptions(e,s),l=this.getSharedOptions(r),h=this.includeOptions(s,l),c=o.axis,d=a.axis;for(let r=e;r<e+i;r++){const e=t[r],i=!n&&this.getParsed(r),l={},u=l[c]=n?o.getPixelForDecimal(.5):o.getPixelForValue(i[c]),f=l[d]=n?a.getBasePixel():a.getPixelForValue(i[d]);l.skip=isNaN(u)||isNaN(f),h&&(l.options=this.resolveDataElementOptions(r,e.active?"active":s),n&&(l.options.radius=0)),this.updateElement(e,r,l,s)}this.updateSharedOptions(l,s,r)}resolveDataElementOptions(t,e){const i=this.getParsed(t);let s=super.resolveDataElementOptions(t,e);s.$shared&&(s=Object.assign({},s,{$shared:!1}));const n=s.radius;return"active"!==e&&(s.radius=0),s.radius+=K(i&&i._custom,n),s}}Pn.id="bubble",Pn.defaults={datasetElementType:!1,dataElementType:"point",animations:{numbers:{type:"number",properties:["x","y","borderWidth","radius"]}}},Pn.overrides={scales:{x:{type:"linear"},y:{type:"linear"}},plugins:{tooltip:{callbacks:{title:()=>""}}}};class Dn extends Ps{constructor(t,e){super(t,e),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(t,e){const i=this.getDataset().data,s=this._cachedMeta;if(!1===this._parsing)s._parsed=i;else{let n,o,a=t=>+i[t];if(U(i[t])){const{key:t="value"}=this._parsing;a=e=>+lt(i[e],t)}for(n=t,o=t+e;n<o;++n)s._parsed[n]=a(n)}}_getRotation(){return It(this.options.rotation-90)}_getCircumference(){return It(this.options.circumference)}_getRotationExtents(){let t=yt,e=-yt;for(let i=0;i<this.chart.data.datasets.length;++i)if(this.chart.isDatasetVisible(i)){const s=this.chart.getDatasetMeta(i).controller,n=s._getRotation(),o=s._getCircumference();t=Math.min(t,n),e=Math.max(e,n+o)}return{rotation:t,circumference:e-t}}update(t){const e=this.chart,{chartArea:i}=e,s=this._cachedMeta,n=s.data,o=this.getMaxBorderWidth()+this.getMaxOffset(n)+this.options.spacing,a=Math.max((Math.min(i.width,i.height)-o)/2,0),r=Math.min(G(this.options.cutout,a),1),l=this._getRingWeight(this.index),{circumference:h,rotation:c}=this._getRotationExtents(),{ratioX:d,ratioY:u,offsetX:f,offsetY:g}=function(t,e,i){let s=1,n=1,o=0,a=0;if(e<yt){const r=t,l=r+e,h=Math.cos(r),c=Math.sin(r),d=Math.cos(l),u=Math.sin(l),f=(t,e,s)=>Ht(t,r,l,!0)?1:Math.max(e,e*i,s,s*i),g=(t,e,s)=>Ht(t,r,l,!0)?-1:Math.min(e,e*i,s,s*i),p=f(0,h,d),m=f(kt,c,u),x=g(_t,h,d),b=g(_t+kt,c,u);s=(p-x)/2,n=(m-b)/2,o=-(p+x)/2,a=-(m+b)/2}return{ratioX:s,ratioY:n,offsetX:o,offsetY:a}}(c,h,r),p=(i.width-o)/d,m=(i.height-o)/u,x=Math.max(Math.min(p,m)/2,0),b=Z(this.options.radius,x),_=(b-Math.max(b*r,0))/this._getVisibleDatasetWeightTotal();this.offsetX=f*b,this.offsetY=g*b,s.total=this.calculateTotal(),this.outerRadius=b-_*this._getRingWeightOffset(this.index),this.innerRadius=Math.max(this.outerRadius-_*l,0),this.updateElements(n,0,n.length,t)}_circumference(t,e){const i=this.options,s=this._cachedMeta,n=this._getCircumference();return e&&i.animation.animateRotate||!this.chart.getDataVisibility(t)||null===s._parsed[t]||s.data[t].hidden?0:this.calculateCircumference(s._parsed[t]*n/yt)}updateElements(t,e,i,s){const n="reset"===s,o=this.chart,a=o.chartArea,r=o.options.animation,l=(a.left+a.right)/2,h=(a.top+a.bottom)/2,c=n&&r.animateScale,d=c?0:this.innerRadius,u=c?0:this.outerRadius,f=this.resolveDataElementOptions(e,s),g=this.getSharedOptions(f),p=this.includeOptions(s,g);let m,x=this._getRotation();for(m=0;m<e;++m)x+=this._circumference(m,n);for(m=e;m<e+i;++m){const e=this._circumference(m,n),i=t[m],o={x:l+this.offsetX,y:h+this.offsetY,startAngle:x,endAngle:x+e,circumference:e,outerRadius:u,innerRadius:d};p&&(o.options=g||this.resolveDataElementOptions(m,i.active?"active":s)),x+=e,this.updateElement(i,m,o,s)}this.updateSharedOptions(g,s,f)}calculateTotal(){const t=this._cachedMeta,e=t.data;let i,s=0;for(i=0;i<e.length;i++){const n=t._parsed[i];null===n||isNaN(n)||!this.chart.getDataVisibility(i)||e[i].hidden||(s+=Math.abs(n))}return s}calculateCircumference(t){const e=this._cachedMeta.total;return e>0&&!isNaN(t)?yt*(Math.abs(t)/e):0}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart,s=i.data.labels||[],n=Ri(e._parsed[t],i.options.locale);return{label:s[t]||"",value:n}}getMaxBorderWidth(t){let e=0;const i=this.chart;let s,n,o,a,r;if(!t)for(s=0,n=i.data.datasets.length;s<n;++s)if(i.isDatasetVisible(s)){o=i.getDatasetMeta(s),t=o.data,a=o.controller;break}if(!t)return 0;for(s=0,n=t.length;s<n;++s)r=a.resolveDataElementOptions(s),"inner"!==r.borderAlign&&(e=Math.max(e,r.borderWidth||0,r.hoverBorderWidth||0));return e}getMaxOffset(t){let e=0;for(let i=0,s=t.length;i<s;++i){const t=this.resolveDataElementOptions(i);e=Math.max(e,t.offset||0,t.hoverOffset||0)}return e}_getRingWeightOffset(t){let e=0;for(let i=0;i<t;++i)this.chart.isDatasetVisible(i)&&(e+=this._getRingWeight(i));return e}_getRingWeight(t){return Math.max(K(this.chart.data.datasets[t].weight,1),0)}_getVisibleDatasetWeightTotal(){return this._getRingWeightOffset(this.chart.data.datasets.length)||1}}Dn.id="doughnut",Dn.defaults={datasetElementType:!1,dataElementType:"arc",animation:{animateRotate:!0,animateScale:!1},animations:{numbers:{type:"number",properties:["circumference","endAngle","innerRadius","outerRadius","startAngle","x","y","offset","borderWidth","spacing"]}},cutout:"50%",rotation:0,circumference:360,radius:"100%",spacing:0,indexAxis:"r"},Dn.descriptors={_scriptable:t=>"spacing"!==t,_indexable:t=>"spacing"!==t},Dn.overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const e=t.data;if(e.labels.length&&e.datasets.length){const{labels:{pointStyle:i}}=t.legend.options;return e.labels.map(((e,s)=>{const n=t.getDatasetMeta(0).controller.getStyle(s);return{text:e,fillStyle:n.backgroundColor,strokeStyle:n.borderColor,lineWidth:n.borderWidth,pointStyle:i,hidden:!t.getDataVisibility(s),index:s}}))}return[]}},onClick(t,e,i){i.chart.toggleDataVisibility(e.index),i.chart.update()}},tooltip:{callbacks:{title:()=>"",label(t){let e=t.label;const i=": "+t.formattedValue;return Y(e)?(e=e.slice(),e[0]+=i):e+=i,e}}}}};class Cn extends Ps{initialize(){this.enableOptionSharing=!0,super.initialize()}update(t){const e=this._cachedMeta,{dataset:i,data:s=[],_dataset:n}=e,o=this.chart._animationsDisabled;let{start:a,count:r}=function(t,e,i){const s=e.length;let n=0,o=s;if(t._sorted){const{iScale:a,_parsed:r}=t,l=a.axis,{min:h,max:c,minDefined:d,maxDefined:u}=a.getUserBounds();d&&(n=jt(Math.min(re(r,a.axis,h).lo,i?s:re(e,l,a.getPixelForValue(h)).lo),0,s-1)),o=u?jt(Math.max(re(r,a.axis,c).hi+1,i?0:re(e,l,a.getPixelForValue(c)).hi+1),n,s)-n:s-n}return{start:n,count:o}}(e,s,o);this._drawStart=a,this._drawCount=r,function(t){const{xScale:e,yScale:i,_scaleRanges:s}=t,n={xmin:e.min,xmax:e.max,ymin:i.min,ymax:i.max};if(!s)return t._scaleRanges=n,!0;const o=s.xmin!==e.min||s.xmax!==e.max||s.ymin!==i.min||s.ymax!==i.max;return Object.assign(s,n),o}(e)&&(a=0,r=s.length),i._chart=this.chart,i._datasetIndex=this.index,i._decimated=!!n._decimated,i.points=s;const l=this.resolveDatasetElementOptions(t);this.options.showLine||(l.borderWidth=0),l.segment=this.options.segment,this.updateElement(i,void 0,{animated:!o,options:l},t),this.updateElements(s,a,r,t)}updateElements(t,e,i,s){const n="reset"===s,{iScale:o,vScale:a,_stacked:r,_dataset:l}=this._cachedMeta,h=this.resolveDataElementOptions(e,s),c=this.getSharedOptions(h),d=this.includeOptions(s,c),u=o.axis,f=a.axis,{spanGaps:g,segment:p}=this.options,m=Tt(g)?g:Number.POSITIVE_INFINITY,x=this.chart._animationsDisabled||n||"none"===s;let b=e>0&&this.getParsed(e-1);for(let h=e;h<e+i;++h){const e=t[h],i=this.getParsed(h),g=x?e:{},_=$(i[f]),y=g[u]=o.getPixelForValue(i[u],h),v=g[f]=n||_?a.getBasePixel():a.getPixelForValue(r?this.applyStack(a,i,r):i[f],h);g.skip=isNaN(y)||isNaN(v)||_,g.stop=h>0&&i[u]-b[u]>m,p&&(g.parsed=i,g.raw=l.data[h]),d&&(g.options=c||this.resolveDataElementOptions(h,e.active?"active":s)),x||this.updateElement(e,h,g,s),b=i}this.updateSharedOptions(c,s,h)}getMaxOverflow(){const t=this._cachedMeta,e=t.dataset,i=e.options&&e.options.borderWidth||0,s=t.data||[];if(!s.length)return i;const n=s[0].size(this.resolveDataElementOptions(0)),o=s[s.length-1].size(this.resolveDataElementOptions(s.length-1));return Math.max(i,n,o)/2}draw(){const t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}}Cn.id="line",Cn.defaults={datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1},Cn.overrides={scales:{_index_:{type:"category"},_value_:{type:"linear"}}};class On extends Ps{constructor(t,e){super(t,e),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart,s=i.data.labels||[],n=Ri(e._parsed[t].r,i.options.locale);return{label:s[t]||"",value:n}}update(t){const e=this._cachedMeta.data;this._updateRadius(),this.updateElements(e,0,e.length,t)}_updateRadius(){const t=this.chart,e=t.chartArea,i=t.options,s=Math.min(e.right-e.left,e.bottom-e.top),n=Math.max(s/2,0),o=(n-Math.max(i.cutoutPercentage?n/100*i.cutoutPercentage:1,0))/t.getVisibleDatasetCount();this.outerRadius=n-o*this.index,this.innerRadius=this.outerRadius-o}updateElements(t,e,i,s){const n="reset"===s,o=this.chart,a=this.getDataset(),r=o.options.animation,l=this._cachedMeta.rScale,h=l.xCenter,c=l.yCenter,d=l.getIndexAngle(0)-.5*_t;let u,f=d;const g=360/this.countVisibleElements();for(u=0;u<e;++u)f+=this._computeAngle(u,s,g);for(u=e;u<e+i;u++){const e=t[u];let i=f,p=f+this._computeAngle(u,s,g),m=o.getDataVisibility(u)?l.getDistanceFromCenterForValue(a.data[u]):0;f=p,n&&(r.animateScale&&(m=0),r.animateRotate&&(i=p=d));const x={x:h,y:c,innerRadius:0,outerRadius:m,startAngle:i,endAngle:p,options:this.resolveDataElementOptions(u,e.active?"active":s)};this.updateElement(e,u,x,s)}}countVisibleElements(){const t=this.getDataset(),e=this._cachedMeta;let i=0;return e.data.forEach(((e,s)=>{!isNaN(t.data[s])&&this.chart.getDataVisibility(s)&&i++})),i}_computeAngle(t,e,i){return this.chart.getDataVisibility(t)?It(this.resolveDataElementOptions(t,e).angle||i):0}}On.id="polarArea",On.defaults={dataElementType:"arc",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:"number",properties:["x","y","startAngle","endAngle","innerRadius","outerRadius"]}},indexAxis:"r",startAngle:0},On.overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const e=t.data;if(e.labels.length&&e.datasets.length){const{labels:{pointStyle:i}}=t.legend.options;return e.labels.map(((e,s)=>{const n=t.getDatasetMeta(0).controller.getStyle(s);return{text:e,fillStyle:n.backgroundColor,strokeStyle:n.borderColor,lineWidth:n.borderWidth,pointStyle:i,hidden:!t.getDataVisibility(s),index:s}}))}return[]}},onClick(t,e,i){i.chart.toggleDataVisibility(e.index),i.chart.update()}},tooltip:{callbacks:{title:()=>"",label:t=>t.chart.data.labels[t.dataIndex]+": "+t.formattedValue}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}};class An extends Dn{}An.id="pie",An.defaults={cutout:0,rotation:0,circumference:360,radius:"100%"};class Tn extends Ps{getLabelAndValue(t){const e=this._cachedMeta.vScale,i=this.getParsed(t);return{label:e.getLabels()[t],value:""+e.getLabelForValue(i[e.axis])}}update(t){const e=this._cachedMeta,i=e.dataset,s=e.data||[],n=e.iScale.getLabels();if(i.points=s,"resize"!==t){const e=this.resolveDatasetElementOptions(t);this.options.showLine||(e.borderWidth=0);const o={_loop:!0,_fullLoop:n.length===s.length,options:e};this.updateElement(i,void 0,o,t)}this.updateElements(s,0,s.length,t)}updateElements(t,e,i,s){const n=this.getDataset(),o=this._cachedMeta.rScale,a="reset"===s;for(let r=e;r<e+i;r++){const e=t[r],i=this.resolveDataElementOptions(r,e.active?"active":s),l=o.getPointPositionForValue(r,n.data[r]),h=a?o.xCenter:l.x,c=a?o.yCenter:l.y,d={x:h,y:c,angle:l.angle,skip:isNaN(h)||isNaN(c),options:i};this.updateElement(e,r,d,s)}}}Tn.id="radar",Tn.defaults={datasetElementType:"line",dataElementType:"point",indexAxis:"r",showLine:!0,elements:{line:{fill:"start"}}},Tn.overrides={aspectRatio:1,scales:{r:{type:"radialLinear"}}};class Ln extends Cn{}Ln.id="scatter",Ln.defaults={showLine:!1,fill:!1},Ln.overrides={interaction:{mode:"point"},plugins:{tooltip:{callbacks:{title:()=>"",label:t=>"("+t.label+", "+t.formattedValue+")"}}},scales:{x:{type:"linear"},y:{type:"linear"}}};var Rn=Object.freeze({__proto__:null,BarController:Sn,BubbleController:Pn,DoughnutController:Dn,LineController:Cn,PolarAreaController:On,PieController:An,RadarController:Tn,ScatterController:Ln});function En(t,e,i){const{startAngle:s,pixelMargin:n,x:o,y:a,outerRadius:r,innerRadius:l}=e;let h=n/r;t.beginPath(),t.arc(o,a,r,s-h,i+h),l>n?(h=n/l,t.arc(o,a,l,i+h,s-h,!0)):t.arc(o,a,n,i+kt,s-kt),t.closePath(),t.clip()}function In(t,e,i,s){const n=Be(t.options.borderRadius,["outerStart","outerEnd","innerStart","innerEnd"]);const o=(i-e)/2,a=Math.min(o,s*e/2),r=t=>{const e=(i-Math.min(o,t))*s/2;return jt(t,0,Math.min(o,e))};return{outerStart:r(n.outerStart),outerEnd:r(n.outerEnd),innerStart:jt(n.innerStart,0,a),innerEnd:jt(n.innerEnd,0,a)}}function zn(t,e,i,s){return{x:i+t*Math.cos(e),y:s+t*Math.sin(e)}}function Fn(t,e,i,s,n){const{x:o,y:a,startAngle:r,pixelMargin:l,innerRadius:h}=e,c=Math.max(e.outerRadius+s+i-l,0),d=h>0?h+s+i+l:0;let u=0;const f=n-r;if(s){const t=((h>0?h-s:0)+(c>0?c-s:0))/2;u=(f-(0!==t?f*t/(t+s):f))/2}const g=(f-Math.max(.001,f*c-i/_t)/c)/2,p=r+g+u,m=n-g-u,{outerStart:x,outerEnd:b,innerStart:_,innerEnd:y}=In(e,d,c,m-p),v=c-x,w=c-b,M=p+x/v,k=m-b/w,S=d+_,P=d+y,D=p+_/S,C=m-y/P;if(t.beginPath(),t.arc(o,a,c,M,k),b>0){const e=zn(w,k,o,a);t.arc(e.x,e.y,b,k,m+kt)}const O=zn(P,m,o,a);if(t.lineTo(O.x,O.y),y>0){const e=zn(P,C,o,a);t.arc(e.x,e.y,y,m+kt,C+Math.PI)}if(t.arc(o,a,d,m-y/d,p+_/d,!0),_>0){const e=zn(S,D,o,a);t.arc(e.x,e.y,_,D+Math.PI,p-kt)}const A=zn(v,p,o,a);if(t.lineTo(A.x,A.y),x>0){const e=zn(v,M,o,a);t.arc(e.x,e.y,x,p-kt,M)}t.closePath()}function Bn(t,e,i,s,n){const{options:o}=e,{borderWidth:a,borderJoinStyle:r}=o,l="inner"===o.borderAlign;a&&(l?(t.lineWidth=2*a,t.lineJoin=r||"round"):(t.lineWidth=a,t.lineJoin=r||"bevel"),e.fullCircles&&function(t,e,i){const{x:s,y:n,startAngle:o,pixelMargin:a,fullCircles:r}=e,l=Math.max(e.outerRadius-a,0),h=e.innerRadius+a;let c;for(i&&En(t,e,o+yt),t.beginPath(),t.arc(s,n,h,o+yt,o,!0),c=0;c<r;++c)t.stroke();for(t.beginPath(),t.arc(s,n,l,o,o+yt),c=0;c<r;++c)t.stroke()}(t,e,l),l&&En(t,e,n),Fn(t,e,i,s,n),t.stroke())}class Vn extends Ds{constructor(t){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,t&&Object.assign(this,t)}inRange(t,e,i){const s=this.getProps(["x","y"],i),{angle:n,distance:o}=Bt(s,{x:t,y:e}),{startAngle:a,endAngle:r,innerRadius:l,outerRadius:h,circumference:c}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],i),d=this.options.spacing/2,u=K(c,r-a)>=yt||Ht(n,a,r),f=Yt(o,l+d,h+d);return u&&f}getCenterPoint(t){const{x:e,y:i,startAngle:s,endAngle:n,innerRadius:o,outerRadius:a}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius","circumference"],t),{offset:r,spacing:l}=this.options,h=(s+n)/2,c=(o+a+l+r)/2;return{x:e+Math.cos(h)*c,y:i+Math.sin(h)*c}}tooltipPosition(t){return this.getCenterPoint(t)}draw(t){const{options:e,circumference:i}=this,s=(e.offset||0)/2,n=(e.spacing||0)/2;if(this.pixelMargin="inner"===e.borderAlign?.33:0,this.fullCircles=i>yt?Math.floor(i/yt):0,0===i||this.innerRadius<0||this.outerRadius<0)return;t.save();let o=0;if(s){o=s/2;const e=(this.startAngle+this.endAngle)/2;t.translate(Math.cos(e)*o,Math.sin(e)*o),this.circumference>=_t&&(o=s)}t.fillStyle=e.backgroundColor,t.strokeStyle=e.borderColor;const a=function(t,e,i,s){const{fullCircles:n,startAngle:o,circumference:a}=e;let r=e.endAngle;if(n){Fn(t,e,i,s,o+yt);for(let e=0;e<n;++e)t.fill();isNaN(a)||(r=o+a%yt,a%yt==0&&(r+=yt))}return Fn(t,e,i,s,r),t.fill(),r}(t,this,o,n);Bn(t,this,o,n,a),t.restore()}}function Wn(t,e,i=e){t.lineCap=K(i.borderCapStyle,e.borderCapStyle),t.setLineDash(K(i.borderDash,e.borderDash)),t.lineDashOffset=K(i.borderDashOffset,e.borderDashOffset),t.lineJoin=K(i.borderJoinStyle,e.borderJoinStyle),t.lineWidth=K(i.borderWidth,e.borderWidth),t.strokeStyle=K(i.borderColor,e.borderColor)}function Nn(t,e,i){t.lineTo(i.x,i.y)}function Hn(t,e,i={}){const s=t.length,{start:n=0,end:o=s-1}=i,{start:a,end:r}=e,l=Math.max(n,a),h=Math.min(o,r),c=n<a&&o<a||n>r&&o>r;return{count:s,start:l,loop:e.loop,ilen:h<l&&!c?s+h-l:h-l}}function jn(t,e,i,s){const{points:n,options:o}=e,{count:a,start:r,loop:l,ilen:h}=Hn(n,i,s),c=function(t){return t.stepped?ee:t.tension||"monotone"===t.cubicInterpolationMode?ie:Nn}(o);let d,u,f,{move:g=!0,reverse:p}=s||{};for(d=0;d<=h;++d)u=n[(r+(p?h-d:d))%a],u.skip||(g?(t.moveTo(u.x,u.y),g=!1):c(t,f,u,p,o.stepped),f=u);return l&&(u=n[(r+(p?h:0))%a],c(t,f,u,p,o.stepped)),!!l}function $n(t,e,i,s){const n=e.points,{count:o,start:a,ilen:r}=Hn(n,i,s),{move:l=!0,reverse:h}=s||{};let c,d,u,f,g,p,m=0,x=0;const b=t=>(a+(h?r-t:t))%o,_=()=>{f!==g&&(t.lineTo(m,g),t.lineTo(m,f),t.lineTo(m,p))};for(l&&(d=n[b(0)],t.moveTo(d.x,d.y)),c=0;c<=r;++c){if(d=n[b(c)],d.skip)continue;const e=d.x,i=d.y,s=0|e;s===u?(i<f?f=i:i>g&&(g=i),m=(x*m+e)/++x):(_(),t.lineTo(e,i),u=s,x=0,f=g=i),p=i}_()}function Yn(t){const e=t.options,i=e.borderDash&&e.borderDash.length;return!(t._decimated||t._loop||e.tension||"monotone"===e.cubicInterpolationMode||e.stepped||i)?$n:jn}Vn.id="arc",Vn.defaults={borderAlign:"center",borderColor:"#fff",borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0},Vn.defaultRoutes={backgroundColor:"backgroundColor"};const Un="function"==typeof Path2D;function Xn(t,e,i,s){Un&&!e.options.segment?function(t,e,i,s){let n=e._path;n||(n=e._path=new Path2D,e.path(n,i,s)&&n.closePath()),Wn(t,e.options),t.stroke(n)}(t,e,i,s):function(t,e,i,s){const{segments:n,options:o}=e,a=Yn(e);for(const r of n)Wn(t,o,r.style),t.beginPath(),a(t,e,r,{start:i,end:i+s-1})&&t.closePath(),t.stroke()}(t,e,i,s)}class qn extends Ds{constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,e){const i=this.options;if((i.tension||"monotone"===i.cubicInterpolationMode)&&!i.stepped&&!this._pointsUpdated){const s=i.spanGaps?this._loop:this._fullLoop;ki(this._points,i,t,s,e),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=Ni(this,this.options.segment))}first(){const t=this.segments,e=this.points;return t.length&&e[t[0].start]}last(){const t=this.segments,e=this.points,i=t.length;return i&&e[t[i-1].end]}interpolate(t,e){const i=this.options,s=t[e],n=this.points,o=Wi(this,{property:e,start:s,end:s});if(!o.length)return;const a=[],r=function(t){return t.stepped?Ai:t.tension||"monotone"===t.cubicInterpolationMode?Ti:Oi}(i);let l,h;for(l=0,h=o.length;l<h;++l){const{start:h,end:c}=o[l],d=n[h],u=n[c];if(d===u){a.push(d);continue}const f=r(d,u,Math.abs((s-d[e])/(u[e]-d[e])),i.stepped);f[e]=t[e],a.push(f)}return 1===a.length?a[0]:a}pathSegment(t,e,i){return Yn(this)(t,this,e,i)}path(t,e,i){const s=this.segments,n=Yn(this);let o=this._loop;e=e||0,i=i||this.points.length-e;for(const a of s)o&=n(t,this,a,{start:e,end:e+i-1});return!!o}draw(t,e,i,s){const n=this.options||{};(this.points||[]).length&&n.borderWidth&&(t.save(),Xn(t,this,i,s),t.restore()),this.animated&&(this._pointsUpdated=!1,this._path=void 0)}}function Kn(t,e,i,s){const n=t.options,{[i]:o}=t.getProps([i],s);return Math.abs(e-o)<n.radius+n.hitRadius}qn.id="line",qn.defaults={borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0},qn.defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"},qn.descriptors={_scriptable:!0,_indexable:t=>"borderDash"!==t&&"fill"!==t};class Gn extends Ds{constructor(t){super(),this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,t&&Object.assign(this,t)}inRange(t,e,i){const s=this.options,{x:n,y:o}=this.getProps(["x","y"],i);return Math.pow(t-n,2)+Math.pow(e-o,2)<Math.pow(s.hitRadius+s.radius,2)}inXRange(t,e){return Kn(this,t,"x",e)}inYRange(t,e){return Kn(this,t,"y",e)}getCenterPoint(t){const{x:e,y:i}=this.getProps(["x","y"],t);return{x:e,y:i}}size(t){let e=(t=t||this.options||{}).radius||0;e=Math.max(e,e&&t.hoverRadius||0);return 2*(e+(e&&t.borderWidth||0))}draw(t,e){const i=this.options;this.skip||i.radius<.1||!Jt(this,e,this.size(i)/2)||(t.strokeStyle=i.borderColor,t.lineWidth=i.borderWidth,t.fillStyle=i.backgroundColor,Zt(t,i,this.x,this.y))}getRange(){const t=this.options||{};return t.radius+t.hitRadius}}function Zn(t,e){const{x:i,y:s,base:n,width:o,height:a}=t.getProps(["x","y","base","width","height"],e);let r,l,h,c,d;return t.horizontal?(d=a/2,r=Math.min(i,n),l=Math.max(i,n),h=s-d,c=s+d):(d=o/2,r=i-d,l=i+d,h=Math.min(s,n),c=Math.max(s,n)),{left:r,top:h,right:l,bottom:c}}function Jn(t,e,i,s){return t?0:jt(e,i,s)}function Qn(t){const e=Zn(t),i=e.right-e.left,s=e.bottom-e.top,n=function(t,e,i){const s=t.options.borderWidth,n=t.borderSkipped,o=Ve(s);return{t:Jn(n.top,o.top,0,i),r:Jn(n.right,o.right,0,e),b:Jn(n.bottom,o.bottom,0,i),l:Jn(n.left,o.left,0,e)}}(t,i/2,s/2),o=function(t,e,i){const{enableBorderRadius:s}=t.getProps(["enableBorderRadius"]),n=t.options.borderRadius,o=We(n),a=Math.min(e,i),r=t.borderSkipped,l=s||U(n);return{topLeft:Jn(!l||r.top||r.left,o.topLeft,0,a),topRight:Jn(!l||r.top||r.right,o.topRight,0,a),bottomLeft:Jn(!l||r.bottom||r.left,o.bottomLeft,0,a),bottomRight:Jn(!l||r.bottom||r.right,o.bottomRight,0,a)}}(t,i/2,s/2);return{outer:{x:e.left,y:e.top,w:i,h:s,radius:o},inner:{x:e.left+n.l,y:e.top+n.t,w:i-n.l-n.r,h:s-n.t-n.b,radius:{topLeft:Math.max(0,o.topLeft-Math.max(n.t,n.l)),topRight:Math.max(0,o.topRight-Math.max(n.t,n.r)),bottomLeft:Math.max(0,o.bottomLeft-Math.max(n.b,n.l)),bottomRight:Math.max(0,o.bottomRight-Math.max(n.b,n.r))}}}}function to(t,e,i,s){const n=null===e,o=null===i,a=t&&!(n&&o)&&Zn(t,s);return a&&(n||Yt(e,a.left,a.right))&&(o||Yt(i,a.top,a.bottom))}function eo(t,e){t.rect(e.x,e.y,e.w,e.h)}function io(t,e,i={}){const s=t.x!==i.x?-e:0,n=t.y!==i.y?-e:0,o=(t.x+t.w!==i.x+i.w?e:0)-s,a=(t.y+t.h!==i.y+i.h?e:0)-n;return{x:t.x+s,y:t.y+n,w:t.w+o,h:t.h+a,radius:t.radius}}Gn.id="point",Gn.defaults={borderWidth:1,hitRadius:1,hoverBorderWidth:1,hoverRadius:4,pointStyle:"circle",radius:3,rotation:0},Gn.defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};class so extends Ds{constructor(t){super(),this.options=void 0,this.horizontal=void 0,this.base=void 0,this.width=void 0,this.height=void 0,this.inflateAmount=void 0,t&&Object.assign(this,t)}draw(t){const{inflateAmount:e,options:{borderColor:i,backgroundColor:s}}=this,{inner:n,outer:o}=Qn(this),a=(r=o.radius).topLeft||r.topRight||r.bottomLeft||r.bottomRight?oe:eo;var r;t.save(),o.w===n.w&&o.h===n.h||(t.beginPath(),a(t,io(o,e,n)),t.clip(),a(t,io(n,-e,o)),t.fillStyle=i,t.fill("evenodd")),t.beginPath(),a(t,io(n,e)),t.fillStyle=s,t.fill(),t.restore()}inRange(t,e,i){return to(this,t,e,i)}inXRange(t,e){return to(this,t,null,e)}inYRange(t,e){return to(this,null,t,e)}getCenterPoint(t){const{x:e,y:i,base:s,horizontal:n}=this.getProps(["x","y","base","horizontal"],t);return{x:n?(e+s)/2:e,y:n?i:(i+s)/2}}getRange(t){return"x"===t?this.width/2:this.height/2}}so.id="bar",so.defaults={borderSkipped:"start",borderWidth:0,borderRadius:0,inflateAmount:"auto",pointStyle:void 0},so.defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};var no=Object.freeze({__proto__:null,ArcElement:Vn,LineElement:qn,PointElement:Gn,BarElement:so});function oo(t){if(t._decimated){const e=t._data;delete t._decimated,delete t._data,Object.defineProperty(t,"data",{value:e})}}function ao(t){t.data.datasets.forEach((t=>{oo(t)}))}var ro={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(t,e,i)=>{if(!i.enabled)return void ao(t);const s=t.width;t.data.datasets.forEach(((e,n)=>{const{_data:o,indexAxis:a}=e,r=t.getDatasetMeta(n),l=o||e.data;if("y"===je([a,t.options.indexAxis]))return;if("line"!==r.type)return;const h=t.scales[r.xAxisID];if("linear"!==h.type&&"time"!==h.type)return;if(t.options.parsing)return;let{start:c,count:d}=function(t,e){const i=e.length;let s,n=0;const{iScale:o}=t,{min:a,max:r,minDefined:l,maxDefined:h}=o.getUserBounds();return l&&(n=jt(re(e,o.axis,a).lo,0,i-1)),s=h?jt(re(e,o.axis,r).hi+1,n,i)-n:i-n,{start:n,count:s}}(r,l);if(d<=(i.threshold||4*s))return void oo(e);let u;switch($(o)&&(e._data=l,delete e.data,Object.defineProperty(e,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(t){this._data=t}})),i.algorithm){case"lttb":u=function(t,e,i,s,n){const o=n.samples||s;if(o>=i)return t.slice(e,e+i);const a=[],r=(i-2)/(o-2);let l=0;const h=e+i-1;let c,d,u,f,g,p=e;for(a[l++]=t[p],c=0;c<o-2;c++){let s,n=0,o=0;const h=Math.floor((c+1)*r)+1+e,m=Math.min(Math.floor((c+2)*r)+1,i)+e,x=m-h;for(s=h;s<m;s++)n+=t[s].x,o+=t[s].y;n/=x,o/=x;const b=Math.floor(c*r)+1+e,_=Math.min(Math.floor((c+1)*r)+1,i)+e,{x:y,y:v}=t[p];for(u=f=-1,s=b;s<_;s++)f=.5*Math.abs((y-n)*(t[s].y-v)-(y-t[s].x)*(o-v)),f>u&&(u=f,d=t[s],g=s);a[l++]=d,p=g}return a[l++]=t[h],a}(l,c,d,s,i);break;case"min-max":u=function(t,e,i,s){let n,o,a,r,l,h,c,d,u,f,g=0,p=0;const m=[],x=e+i-1,b=t[e].x,_=t[x].x-b;for(n=e;n<e+i;++n){o=t[n],a=(o.x-b)/_*s,r=o.y;const e=0|a;if(e===l)r<u?(u=r,h=n):r>f&&(f=r,c=n),g=(p*g+o.x)/++p;else{const i=n-1;if(!$(h)&&!$(c)){const e=Math.min(h,c),s=Math.max(h,c);e!==d&&e!==i&&m.push({...t[e],x:g}),s!==d&&s!==i&&m.push({...t[s],x:g})}n>0&&i!==d&&m.push(t[i]),m.push(o),l=e,p=0,u=f=r,h=c=d=n}}return m}(l,c,d,s);break;default:throw new Error(`Unsupported decimation algorithm '${i.algorithm}'`)}e._decimated=u}))},destroy(t){ao(t)}};function lo(t,e,i){const s=function(t){const e=t.options,i=e.fill;let s=K(i&&i.target,i);return void 0===s&&(s=!!e.backgroundColor),!1!==s&&null!==s&&(!0===s?"origin":s)}(t);if(U(s))return!isNaN(s.value)&&s;let n=parseFloat(s);return X(n)&&Math.floor(n)===n?("-"!==s[0]&&"+"!==s[0]||(n=e+n),!(n===e||n<0||n>=i)&&n):["origin","start","end","stack","shape"].indexOf(s)>=0&&s}class ho{constructor(t){this.x=t.x,this.y=t.y,this.radius=t.radius}pathSegment(t,e,i){const{x:s,y:n,radius:o}=this;return e=e||{start:0,end:yt},t.arc(s,n,o,e.end,e.start,!0),!i.bounds}interpolate(t){const{x:e,y:i,radius:s}=this,n=t.angle;return{x:e+Math.cos(n)*s,y:i+Math.sin(n)*s,angle:n}}}function co(t){return(t.scale||{}).getPointPositionForValue?function(t){const{scale:e,fill:i}=t,s=e.options,n=e.getLabels().length,o=[],a=s.reverse?e.max:e.min,r=s.reverse?e.min:e.max;let l,h,c;if(c="start"===i?a:"end"===i?r:U(i)?i.value:e.getBaseValue(),s.grid.circular)return h=e.getPointPositionForValue(0,a),new ho({x:h.x,y:h.y,radius:e.getDistanceFromCenterForValue(c)});for(l=0;l<n;++l)o.push(e.getPointPositionForValue(l,c));return o}(t):function(t){const{scale:e={},fill:i}=t;let s,n=null;return"start"===i?n=e.bottom:"end"===i?n=e.top:U(i)?n=e.getPixelForValue(i.value):e.getBasePixel&&(n=e.getBasePixel()),X(n)?(s=e.isHorizontal(),{x:s?n:null,y:s?null:n}):null}(t)}function uo(t,e,i){for(;e>t;e--){const t=i[e];if(!isNaN(t.x)&&!isNaN(t.y))break}return e}function fo(t,e,i){const s=[];for(let n=0;n<i.length;n++){const o=i[n],{first:a,last:r,point:l}=go(o,e,"x");if(!(!l||a&&r))if(a)s.unshift(l);else if(t.push(l),!r)break}t.push(...s)}function go(t,e,i){const s=t.interpolate(e,i);if(!s)return{};const n=s[i],o=t.segments,a=t.points;let r=!1,l=!1;for(let t=0;t<o.length;t++){const e=o[t],s=a[e.start][i],h=a[e.end][i];if(Yt(n,s,h)){r=n===s,l=n===h;break}}return{first:r,last:l,point:s}}function po(t){const{chart:e,fill:i,line:s}=t;if(X(i))return function(t,e){const i=t.getDatasetMeta(e);return i&&t.isDatasetVisible(e)?i.dataset:null}(e,i);if("stack"===i)return function(t){const{scale:e,index:i,line:s}=t,n=[],o=s.segments,a=s.points,r=function(t,e){const i=[],s=t.getMatchingVisibleMetas("line");for(let t=0;t<s.length;t++){const n=s[t];if(n.index===e)break;n.hidden||i.unshift(n.dataset)}return i}(e,i);r.push(mo({x:null,y:e.bottom},s));for(let t=0;t<o.length;t++){const e=o[t];for(let t=e.start;t<=e.end;t++)fo(n,a[t],r)}return new qn({points:n,options:{}})}(t);if("shape"===i)return!0;const n=co(t);return n instanceof ho?n:mo(n,s)}function mo(t,e){let i=[],s=!1;return Y(t)?(s=!0,i=t):i=function(t,e){const{x:i=null,y:s=null}=t||{},n=e.points,o=[];return e.segments.forEach((({start:t,end:e})=>{e=uo(t,e,n);const a=n[t],r=n[e];null!==s?(o.push({x:a.x,y:s}),o.push({x:r.x,y:s})):null!==i&&(o.push({x:i,y:a.y}),o.push({x:i,y:r.y}))})),o}(t,e),i.length?new qn({points:i,options:{tension:0},_loop:s,_fullLoop:s}):null}function xo(t,e,i){let s=t[e].fill;const n=[e];let o;if(!i)return s;for(;!1!==s&&-1===n.indexOf(s);){if(!X(s))return s;if(o=t[s],!o)return!1;if(o.visible)return s;n.push(s),s=o.fill}return!1}function bo(t,e,i){const{segments:s,points:n}=e;let o=!0,a=!1;t.beginPath();for(const r of s){const{start:s,end:l}=r,h=n[s],c=n[uo(s,l,n)];o?(t.moveTo(h.x,h.y),o=!1):(t.lineTo(h.x,i),t.lineTo(h.x,h.y)),a=!!e.pathSegment(t,r,{move:a}),a?t.closePath():t.lineTo(c.x,i)}t.lineTo(e.first().x,i),t.closePath(),t.clip()}function _o(t,e,i,s){if(s)return;let n=e[t],o=i[t];return"angle"===t&&(n=Nt(n),o=Nt(o)),{property:t,start:n,end:o}}function yo(t,e,i,s){return t&&e?s(t[i],e[i]):t?t[i]:e?e[i]:0}function vo(t,e,i){const{top:s,bottom:n}=e.chart.chartArea,{property:o,start:a,end:r}=i||{};"x"===o&&(t.beginPath(),t.rect(a,s,r-a,n-s),t.clip())}function wo(t,e,i,s){const n=e.interpolate(i,s);n&&t.lineTo(n.x,n.y)}function Mo(t,e){const{line:i,target:s,property:n,color:o,scale:a}=e,r=function(t,e,i){const s=t.segments,n=t.points,o=e.points,a=[];for(const t of s){let{start:s,end:r}=t;r=uo(s,r,n);const l=_o(i,n[s],n[r],t.loop);if(!e.segments){a.push({source:t,target:l,start:n[s],end:n[r]});continue}const h=Wi(e,l);for(const e of h){const s=_o(i,o[e.start],o[e.end],e.loop),r=Vi(t,n,s);for(const t of r)a.push({source:t,target:e,start:{[i]:yo(l,s,"start",Math.max)},end:{[i]:yo(l,s,"end",Math.min)}})}}return a}(i,s,n);for(const{source:e,target:l,start:h,end:c}of r){const{style:{backgroundColor:r=o}={}}=e,d=!0!==s;t.save(),t.fillStyle=r,vo(t,a,d&&_o(n,h,c)),t.beginPath();const u=!!i.pathSegment(t,e);let f;if(d){u?t.closePath():wo(t,s,c,n);const e=!!s.pathSegment(t,l,{move:u,reverse:!0});f=u&&e,f||wo(t,s,h,n)}t.closePath(),t.fill(f?"evenodd":"nonzero"),t.restore()}}function ko(t,e,i){const s=po(e),{line:n,scale:o,axis:a}=e,r=n.options,l=r.fill,h=r.backgroundColor,{above:c=h,below:d=h}=l||{};s&&n.points.length&&(Qt(t,i),function(t,e){const{line:i,target:s,above:n,below:o,area:a,scale:r}=e,l=i._loop?"angle":e.axis;t.save(),"x"===l&&o!==n&&(bo(t,s,a.top),Mo(t,{line:i,target:s,color:n,scale:r,property:l}),t.restore(),t.save(),bo(t,s,a.bottom)),Mo(t,{line:i,target:s,color:o,scale:r,property:l}),t.restore()}(t,{line:n,target:s,above:c,below:d,area:i,scale:o,axis:a}),te(t))}var So={id:"filler",afterDatasetsUpdate(t,e,i){const s=(t.data.datasets||[]).length,n=[];let o,a,r,l;for(a=0;a<s;++a)o=t.getDatasetMeta(a),r=o.dataset,l=null,r&&r.options&&r instanceof qn&&(l={visible:t.isDatasetVisible(a),index:a,fill:lo(r,a,s),chart:t,axis:o.controller.options.indexAxis,scale:o.vScale,line:r}),o.$filler=l,n.push(l);for(a=0;a<s;++a)l=n[a],l&&!1!==l.fill&&(l.fill=xo(n,a,i.propagate))},beforeDraw(t,e,i){const s="beforeDraw"===i.drawTime,n=t.getSortedVisibleDatasetMetas(),o=t.chartArea;for(let e=n.length-1;e>=0;--e){const i=n[e].$filler;i&&(i.line.updateControlPoints(o,i.axis),s&&ko(t.ctx,i,o))}},beforeDatasetsDraw(t,e,i){if("beforeDatasetsDraw"!==i.drawTime)return;const s=t.getSortedVisibleDatasetMetas();for(let e=s.length-1;e>=0;--e){const i=s[e].$filler;i&&ko(t.ctx,i,t.chartArea)}},beforeDatasetDraw(t,e,i){const s=e.meta.$filler;s&&!1!==s.fill&&"beforeDatasetDraw"===i.drawTime&&ko(t.ctx,s,t.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const Po=(t,e)=>{let{boxHeight:i=e,boxWidth:s=e}=t;return t.usePointStyle&&(i=Math.min(i,e),s=Math.min(s,e)),{boxWidth:s,boxHeight:i,itemHeight:Math.max(e,i)}};class Do extends Ds{constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e,i){this.maxWidth=t,this.maxHeight=e,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const t=this.options.labels||{};let e=J(t.generateLabels,[this.chart],this)||[];t.filter&&(e=e.filter((e=>t.filter(e,this.chart.data)))),t.sort&&(e=e.sort(((e,i)=>t.sort(e,i,this.chart.data)))),this.options.reverse&&e.reverse(),this.legendItems=e}fit(){const{options:t,ctx:e}=this;if(!t.display)return void(this.width=this.height=0);const i=t.labels,s=He(i.font),n=s.size,o=this._computeTitleHeight(),{boxWidth:a,itemHeight:r}=Po(i,n);let l,h;e.font=s.string,this.isHorizontal()?(l=this.maxWidth,h=this._fitRows(o,n,a,r)+10):(h=this.maxHeight,l=this._fitCols(o,n,a,r)+10),this.width=Math.min(l,t.maxWidth||this.maxWidth),this.height=Math.min(h,t.maxHeight||this.maxHeight)}_fitRows(t,e,i,s){const{ctx:n,maxWidth:o,options:{labels:{padding:a}}}=this,r=this.legendHitBoxes=[],l=this.lineWidths=[0],h=s+a;let c=t;n.textAlign="left",n.textBaseline="middle";let d=-1,u=-h;return this.legendItems.forEach(((t,f)=>{const g=i+e/2+n.measureText(t.text).width;(0===f||l[l.length-1]+g+2*a>o)&&(c+=h,l[l.length-(f>0?0:1)]=0,u+=h,d++),r[f]={left:0,top:u,row:d,width:g,height:s},l[l.length-1]+=g+a})),c}_fitCols(t,e,i,s){const{ctx:n,maxHeight:o,options:{labels:{padding:a}}}=this,r=this.legendHitBoxes=[],l=this.columnSizes=[],h=o-t;let c=a,d=0,u=0,f=0,g=0;return this.legendItems.forEach(((t,o)=>{const p=i+e/2+n.measureText(t.text).width;o>0&&u+s+2*a>h&&(c+=d+a,l.push({width:d,height:u}),f+=d+a,g++,d=u=0),r[o]={left:f,top:u,col:g,width:p,height:s},d=Math.max(d,p),u+=s+a})),c+=d,l.push({width:d,height:u}),c}adjustHitBoxes(){if(!this.options.display)return;const t=this._computeTitleHeight(),{legendHitBoxes:e,options:{align:i,labels:{padding:s},rtl:o}}=this,a=Ei(o,this.left,this.width);if(this.isHorizontal()){let o=0,r=n(i,this.left+s,this.right-this.lineWidths[o]);for(const l of e)o!==l.row&&(o=l.row,r=n(i,this.left+s,this.right-this.lineWidths[o])),l.top+=this.top+t+s,l.left=a.leftForLtr(a.x(r),l.width),r+=l.width+s}else{let o=0,r=n(i,this.top+t+s,this.bottom-this.columnSizes[o].height);for(const l of e)l.col!==o&&(o=l.col,r=n(i,this.top+t+s,this.bottom-this.columnSizes[o].height)),l.top=r,l.left+=this.left+s,l.left=a.leftForLtr(a.x(l.left),l.width),r+=l.height+s}}isHorizontal(){return"top"===this.options.position||"bottom"===this.options.position}draw(){if(this.options.display){const t=this.ctx;Qt(t,this),this._draw(),te(t)}}_draw(){const{options:t,columnSizes:e,lineWidths:i,ctx:s}=this,{align:a,labels:r}=t,l=bt.color,h=Ei(t.rtl,this.left,this.width),c=He(r.font),{color:d,padding:u}=r,f=c.size,g=f/2;let p;this.drawTitle(),s.textAlign=h.textAlign("left"),s.textBaseline="middle",s.lineWidth=.5,s.font=c.string;const{boxWidth:m,boxHeight:x,itemHeight:b}=Po(r,f),_=this.isHorizontal(),y=this._computeTitleHeight();p=_?{x:n(a,this.left+u,this.right-i[0]),y:this.top+u+y,line:0}:{x:this.left+u,y:n(a,this.top+y+u,this.bottom-e[0].height),line:0},Ii(this.ctx,t.textDirection);const v=b+u;this.legendItems.forEach(((w,M)=>{s.strokeStyle=w.fontColor||d,s.fillStyle=w.fontColor||d;const k=s.measureText(w.text).width,S=h.textAlign(w.textAlign||(w.textAlign=r.textAlign)),P=m+g+k;let D=p.x,C=p.y;h.setWidth(this.width),_?M>0&&D+P+u>this.right&&(C=p.y+=v,p.line++,D=p.x=n(a,this.left+u,this.right-i[p.line])):M>0&&C+v>this.bottom&&(D=p.x=D+e[p.line].width+u,p.line++,C=p.y=n(a,this.top+y+u,this.bottom-e[p.line].height));!function(t,e,i){if(isNaN(m)||m<=0||isNaN(x)||x<0)return;s.save();const n=K(i.lineWidth,1);if(s.fillStyle=K(i.fillStyle,l),s.lineCap=K(i.lineCap,"butt"),s.lineDashOffset=K(i.lineDashOffset,0),s.lineJoin=K(i.lineJoin,"miter"),s.lineWidth=n,s.strokeStyle=K(i.strokeStyle,l),s.setLineDash(K(i.lineDash,[])),r.usePointStyle){const o={radius:m*Math.SQRT2/2,pointStyle:i.pointStyle,rotation:i.rotation,borderWidth:n},a=h.xPlus(t,m/2);Zt(s,o,a,e+g)}else{const o=e+Math.max((f-x)/2,0),a=h.leftForLtr(t,m),r=We(i.borderRadius);s.beginPath(),Object.values(r).some((t=>0!==t))?oe(s,{x:a,y:o,w:m,h:x,radius:r}):s.rect(a,o,m,x),s.fill(),0!==n&&s.stroke()}s.restore()}(h.x(D),C,w),D=o(S,D+m+g,_?D+P:this.right,t.rtl),function(t,e,i){se(s,i.text,t,e+b/2,c,{strikethrough:i.hidden,textAlign:h.textAlign(i.textAlign)})}(h.x(D),C,w),_?p.x+=P+u:p.y+=v})),zi(this.ctx,t.textDirection)}drawTitle(){const t=this.options,e=t.title,i=He(e.font),o=Ne(e.padding);if(!e.display)return;const a=Ei(t.rtl,this.left,this.width),r=this.ctx,l=e.position,h=i.size/2,c=o.top+h;let d,u=this.left,f=this.width;if(this.isHorizontal())f=Math.max(...this.lineWidths),d=this.top+c,u=n(t.align,u,this.right-f);else{const e=this.columnSizes.reduce(((t,e)=>Math.max(t,e.height)),0);d=c+n(t.align,this.top,this.bottom-e-t.labels.padding-this._computeTitleHeight())}const g=n(l,u,u+f);r.textAlign=a.textAlign(s(l)),r.textBaseline="middle",r.strokeStyle=e.color,r.fillStyle=e.color,r.font=i.string,se(r,e.text,g,d,i)}_computeTitleHeight(){const t=this.options.title,e=He(t.font),i=Ne(t.padding);return t.display?e.lineHeight+i.height:0}_getLegendItemAt(t,e){let i,s,n;if(Yt(t,this.left,this.right)&&Yt(e,this.top,this.bottom))for(n=this.legendHitBoxes,i=0;i<n.length;++i)if(s=n[i],Yt(t,s.left,s.left+s.width)&&Yt(e,s.top,s.top+s.height))return this.legendItems[i];return null}handleEvent(t){const e=this.options;if(!function(t,e){if("mousemove"===t&&(e.onHover||e.onLeave))return!0;if(e.onClick&&("click"===t||"mouseup"===t))return!0;return!1}(t.type,e))return;const i=this._getLegendItemAt(t.x,t.y);if("mousemove"===t.type){const o=this._hoveredItem,a=(n=i,null!==(s=o)&&null!==n&&s.datasetIndex===n.datasetIndex&&s.index===n.index);o&&!a&&J(e.onLeave,[t,o,this],this),this._hoveredItem=i,i&&!a&&J(e.onHover,[t,i,this],this)}else i&&J(e.onClick,[t,i,this],this);var s,n}}var Co={id:"legend",_element:Do,start(t,e,i){const s=t.legend=new Do({ctx:t.ctx,options:i,chart:t});ni.configure(t,s,i),ni.addBox(t,s)},stop(t){ni.removeBox(t,t.legend),delete t.legend},beforeUpdate(t,e,i){const s=t.legend;ni.configure(t,s,i),s.options=i},afterUpdate(t){const e=t.legend;e.buildLabels(),e.adjustHitBoxes()},afterEvent(t,e){e.replay||t.legend.handleEvent(e.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(t,e,i){const s=e.datasetIndex,n=i.chart;n.isDatasetVisible(s)?(n.hide(s),e.hidden=!0):(n.show(s),e.hidden=!1)},onHover:null,onLeave:null,labels:{color:t=>t.chart.options.color,boxWidth:40,padding:10,generateLabels(t){const e=t.data.datasets,{labels:{usePointStyle:i,pointStyle:s,textAlign:n,color:o}}=t.legend.options;return t._getSortedDatasetMetas().map((t=>{const a=t.controller.getStyle(i?0:void 0),r=Ne(a.borderWidth);return{text:e[t.index].label,fillStyle:a.backgroundColor,fontColor:o,hidden:!t.visible,lineCap:a.borderCapStyle,lineDash:a.borderDash,lineDashOffset:a.borderDashOffset,lineJoin:a.borderJoinStyle,lineWidth:(r.width+r.height)/4,strokeStyle:a.borderColor,pointStyle:s||a.pointStyle,rotation:a.rotation,textAlign:n||a.textAlign,borderRadius:0,datasetIndex:t.index}}),this)}},title:{color:t=>t.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:t=>!t.startsWith("on"),labels:{_scriptable:t=>!["generateLabels","filter","sort"].includes(t)}}};class Oo extends Ds{constructor(t){super(),this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e){const i=this.options;if(this.left=0,this.top=0,!i.display)return void(this.width=this.height=this.right=this.bottom=0);this.width=this.right=t,this.height=this.bottom=e;const s=Y(i.text)?i.text.length:1;this._padding=Ne(i.padding);const n=s*He(i.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=n:this.width=n}isHorizontal(){const t=this.options.position;return"top"===t||"bottom"===t}_drawArgs(t){const{top:e,left:i,bottom:s,right:o,options:a}=this,r=a.align;let l,h,c,d=0;return this.isHorizontal()?(h=n(r,i,o),c=e+t,l=o-i):("left"===a.position?(h=i+t,c=n(r,s,e),d=-.5*_t):(h=o-t,c=n(r,e,s),d=.5*_t),l=s-e),{titleX:h,titleY:c,maxWidth:l,rotation:d}}draw(){const t=this.ctx,e=this.options;if(!e.display)return;const i=He(e.font),n=i.lineHeight/2+this._padding.top,{titleX:o,titleY:a,maxWidth:r,rotation:l}=this._drawArgs(n);se(t,e.text,0,0,i,{color:e.color,maxWidth:r,rotation:l,textAlign:s(e.align),textBaseline:"middle",translation:[o,a]})}}var Ao={id:"title",_element:Oo,start(t,e,i){!function(t,e){const i=new Oo({ctx:t.ctx,options:e,chart:t});ni.configure(t,i,e),ni.addBox(t,i),t.titleBlock=i}(t,i)},stop(t){const e=t.titleBlock;ni.removeBox(t,e),delete t.titleBlock},beforeUpdate(t,e,i){const s=t.titleBlock;ni.configure(t,s,i),s.options=i},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const To=new WeakMap;var Lo={id:"subtitle",start(t,e,i){const s=new Oo({ctx:t.ctx,options:i,chart:t});ni.configure(t,s,i),ni.addBox(t,s),To.set(t,s)},stop(t){ni.removeBox(t,To.get(t)),To.delete(t)},beforeUpdate(t,e,i){const s=To.get(t);ni.configure(t,s,i),s.options=i},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const Ro={average(t){if(!t.length)return!1;let e,i,s=0,n=0,o=0;for(e=0,i=t.length;e<i;++e){const i=t[e].element;if(i&&i.hasValue()){const t=i.tooltipPosition();s+=t.x,n+=t.y,++o}}return{x:s/o,y:n/o}},nearest(t,e){if(!t.length)return!1;let i,s,n,o=e.x,a=e.y,r=Number.POSITIVE_INFINITY;for(i=0,s=t.length;i<s;++i){const s=t[i].element;if(s&&s.hasValue()){const t=Vt(e,s.getCenterPoint());t<r&&(r=t,n=s)}}if(n){const t=n.tooltipPosition();o=t.x,a=t.y}return{x:o,y:a}}};function Eo(t,e){return e&&(Y(e)?Array.prototype.push.apply(t,e):t.push(e)),t}function Io(t){return("string"==typeof t||t instanceof String)&&t.indexOf("\n")>-1?t.split("\n"):t}function zo(t,e){const{element:i,datasetIndex:s,index:n}=e,o=t.getDatasetMeta(s).controller,{label:a,value:r}=o.getLabelAndValue(n);return{chart:t,label:a,parsed:o.getParsed(n),raw:t.data.datasets[s].data[n],formattedValue:r,dataset:o.getDataset(),dataIndex:n,datasetIndex:s,element:i}}function Fo(t,e){const i=t.chart.ctx,{body:s,footer:n,title:o}=t,{boxWidth:a,boxHeight:r}=e,l=He(e.bodyFont),h=He(e.titleFont),c=He(e.footerFont),d=o.length,u=n.length,f=s.length,g=Ne(e.padding);let p=g.height,m=0,x=s.reduce(((t,e)=>t+e.before.length+e.lines.length+e.after.length),0);if(x+=t.beforeBody.length+t.afterBody.length,d&&(p+=d*h.lineHeight+(d-1)*e.titleSpacing+e.titleMarginBottom),x){p+=f*(e.displayColors?Math.max(r,l.lineHeight):l.lineHeight)+(x-f)*l.lineHeight+(x-1)*e.bodySpacing}u&&(p+=e.footerMarginTop+u*c.lineHeight+(u-1)*e.footerSpacing);let b=0;const _=function(t){m=Math.max(m,i.measureText(t).width+b)};return i.save(),i.font=h.string,Q(t.title,_),i.font=l.string,Q(t.beforeBody.concat(t.afterBody),_),b=e.displayColors?a+2+e.boxPadding:0,Q(s,(t=>{Q(t.before,_),Q(t.lines,_),Q(t.after,_)})),b=0,i.font=c.string,Q(t.footer,_),i.restore(),m+=g.width,{width:m,height:p}}function Bo(t,e,i,s){const{x:n,width:o}=i,{width:a,chartArea:{left:r,right:l}}=t;let h="center";return"center"===s?h=n<=(r+l)/2?"left":"right":n<=o/2?h="left":n>=a-o/2&&(h="right"),function(t,e,i,s){const{x:n,width:o}=s,a=i.caretSize+i.caretPadding;return"left"===t&&n+o+a>e.width||"right"===t&&n-o-a<0||void 0}(h,t,e,i)&&(h="center"),h}function Vo(t,e,i){const s=i.yAlign||e.yAlign||function(t,e){const{y:i,height:s}=e;return i<s/2?"top":i>t.height-s/2?"bottom":"center"}(t,i);return{xAlign:i.xAlign||e.xAlign||Bo(t,e,i,s),yAlign:s}}function Wo(t,e,i,s){const{caretSize:n,caretPadding:o,cornerRadius:a}=t,{xAlign:r,yAlign:l}=i,h=n+o,{topLeft:c,topRight:d,bottomLeft:u,bottomRight:f}=We(a);let g=function(t,e){let{x:i,width:s}=t;return"right"===e?i-=s:"center"===e&&(i-=s/2),i}(e,r);const p=function(t,e,i){let{y:s,height:n}=t;return"top"===e?s+=i:s-="bottom"===e?n+i:n/2,s}(e,l,h);return"center"===l?"left"===r?g+=h:"right"===r&&(g-=h):"left"===r?g-=Math.max(c,u)+n:"right"===r&&(g+=Math.max(d,f)+n),{x:jt(g,0,s.width-e.width),y:jt(p,0,s.height-e.height)}}function No(t,e,i){const s=Ne(i.padding);return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-s.right:t.x+s.left}function Ho(t){return Eo([],Io(t))}function jo(t,e){const i=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return i?t.override(i):t}class $o extends Ds{constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart||t._chart,this._chart=this.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const t=this._cachedAnimations;if(t)return t;const e=this.chart,i=this.options.setContext(this.getContext()),s=i.enabled&&e.options.animation&&i.animations,n=new gs(this.chart,s);return s._cacheable&&(this._cachedAnimations=Object.freeze(n)),n}getContext(){return this.$context||(this.$context=(t=this.chart.getContext(),e=this,i=this._tooltipItems,Ye(t,{tooltip:e,tooltipItems:i,type:"tooltip"})));var t,e,i}getTitle(t,e){const{callbacks:i}=e,s=i.beforeTitle.apply(this,[t]),n=i.title.apply(this,[t]),o=i.afterTitle.apply(this,[t]);let a=[];return a=Eo(a,Io(s)),a=Eo(a,Io(n)),a=Eo(a,Io(o)),a}getBeforeBody(t,e){return Ho(e.callbacks.beforeBody.apply(this,[t]))}getBody(t,e){const{callbacks:i}=e,s=[];return Q(t,(t=>{const e={before:[],lines:[],after:[]},n=jo(i,t);Eo(e.before,Io(n.beforeLabel.call(this,t))),Eo(e.lines,n.label.call(this,t)),Eo(e.after,Io(n.afterLabel.call(this,t))),s.push(e)})),s}getAfterBody(t,e){return Ho(e.callbacks.afterBody.apply(this,[t]))}getFooter(t,e){const{callbacks:i}=e,s=i.beforeFooter.apply(this,[t]),n=i.footer.apply(this,[t]),o=i.afterFooter.apply(this,[t]);let a=[];return a=Eo(a,Io(s)),a=Eo(a,Io(n)),a=Eo(a,Io(o)),a}_createItems(t){const e=this._active,i=this.chart.data,s=[],n=[],o=[];let a,r,l=[];for(a=0,r=e.length;a<r;++a)l.push(zo(this.chart,e[a]));return t.filter&&(l=l.filter(((e,s,n)=>t.filter(e,s,n,i)))),t.itemSort&&(l=l.sort(((e,s)=>t.itemSort(e,s,i)))),Q(l,(e=>{const i=jo(t.callbacks,e);s.push(i.labelColor.call(this,e)),n.push(i.labelPointStyle.call(this,e)),o.push(i.labelTextColor.call(this,e))})),this.labelColors=s,this.labelPointStyles=n,this.labelTextColors=o,this.dataPoints=l,l}update(t,e){const i=this.options.setContext(this.getContext()),s=this._active;let n,o=[];if(s.length){const t=Ro[i.position].call(this,s,this._eventPosition);o=this._createItems(i),this.title=this.getTitle(o,i),this.beforeBody=this.getBeforeBody(o,i),this.body=this.getBody(o,i),this.afterBody=this.getAfterBody(o,i),this.footer=this.getFooter(o,i);const e=this._size=Fo(this,i),a=Object.assign({},t,e),r=Vo(this.chart,i,a),l=Wo(i,a,r,this.chart);this.xAlign=r.xAlign,this.yAlign=r.yAlign,n={opacity:1,x:l.x,y:l.y,width:e.width,height:e.height,caretX:t.x,caretY:t.y}}else 0!==this.opacity&&(n={opacity:0});this._tooltipItems=o,this.$context=void 0,n&&this._resolveAnimations().update(this,n),t&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:e})}drawCaret(t,e,i,s){const n=this.getCaretPosition(t,i,s);e.lineTo(n.x1,n.y1),e.lineTo(n.x2,n.y2),e.lineTo(n.x3,n.y3)}getCaretPosition(t,e,i){const{xAlign:s,yAlign:n}=this,{caretSize:o,cornerRadius:a}=i,{topLeft:r,topRight:l,bottomLeft:h,bottomRight:c}=We(a),{x:d,y:u}=t,{width:f,height:g}=e;let p,m,x,b,_,y;return"center"===n?(_=u+g/2,"left"===s?(p=d,m=p-o,b=_+o,y=_-o):(p=d+f,m=p+o,b=_-o,y=_+o),x=p):(m="left"===s?d+Math.max(r,h)+o:"right"===s?d+f-Math.max(l,c)-o:this.caretX,"top"===n?(b=u,_=b-o,p=m-o,x=m+o):(b=u+g,_=b+o,p=m+o,x=m-o),y=b),{x1:p,x2:m,x3:x,y1:b,y2:_,y3:y}}drawTitle(t,e,i){const s=this.title,n=s.length;let o,a,r;if(n){const l=Ei(i.rtl,this.x,this.width);for(t.x=No(this,i.titleAlign,i),e.textAlign=l.textAlign(i.titleAlign),e.textBaseline="middle",o=He(i.titleFont),a=i.titleSpacing,e.fillStyle=i.titleColor,e.font=o.string,r=0;r<n;++r)e.fillText(s[r],l.x(t.x),t.y+o.lineHeight/2),t.y+=o.lineHeight+a,r+1===n&&(t.y+=i.titleMarginBottom-a)}}_drawColorBox(t,e,i,s,n){const o=this.labelColors[i],a=this.labelPointStyles[i],{boxHeight:r,boxWidth:l,boxPadding:h}=n,c=He(n.bodyFont),d=No(this,"left",n),u=s.x(d),f=r<c.lineHeight?(c.lineHeight-r)/2:0,g=e.y+f;if(n.usePointStyle){const e={radius:Math.min(l,r)/2,pointStyle:a.pointStyle,rotation:a.rotation,borderWidth:1},i=s.leftForLtr(u,l)+l/2,h=g+r/2;t.strokeStyle=n.multiKeyBackground,t.fillStyle=n.multiKeyBackground,Zt(t,e,i,h),t.strokeStyle=o.borderColor,t.fillStyle=o.backgroundColor,Zt(t,e,i,h)}else{t.lineWidth=o.borderWidth||1,t.strokeStyle=o.borderColor,t.setLineDash(o.borderDash||[]),t.lineDashOffset=o.borderDashOffset||0;const e=s.leftForLtr(u,l-h),i=s.leftForLtr(s.xPlus(u,1),l-h-2),a=We(o.borderRadius);Object.values(a).some((t=>0!==t))?(t.beginPath(),t.fillStyle=n.multiKeyBackground,oe(t,{x:e,y:g,w:l,h:r,radius:a}),t.fill(),t.stroke(),t.fillStyle=o.backgroundColor,t.beginPath(),oe(t,{x:i,y:g+1,w:l-2,h:r-2,radius:a}),t.fill()):(t.fillStyle=n.multiKeyBackground,t.fillRect(e,g,l,r),t.strokeRect(e,g,l,r),t.fillStyle=o.backgroundColor,t.fillRect(i,g+1,l-2,r-2))}t.fillStyle=this.labelTextColors[i]}drawBody(t,e,i){const{body:s}=this,{bodySpacing:n,bodyAlign:o,displayColors:a,boxHeight:r,boxWidth:l,boxPadding:h}=i,c=He(i.bodyFont);let d=c.lineHeight,u=0;const f=Ei(i.rtl,this.x,this.width),g=function(i){e.fillText(i,f.x(t.x+u),t.y+d/2),t.y+=d+n},p=f.textAlign(o);let m,x,b,_,y,v,w;for(e.textAlign=o,e.textBaseline="middle",e.font=c.string,t.x=No(this,p,i),e.fillStyle=i.bodyColor,Q(this.beforeBody,g),u=a&&"right"!==p?"center"===o?l/2+h:l+2+h:0,_=0,v=s.length;_<v;++_){for(m=s[_],x=this.labelTextColors[_],e.fillStyle=x,Q(m.before,g),b=m.lines,a&&b.length&&(this._drawColorBox(e,t,_,f,i),d=Math.max(c.lineHeight,r)),y=0,w=b.length;y<w;++y)g(b[y]),d=c.lineHeight;Q(m.after,g)}u=0,d=c.lineHeight,Q(this.afterBody,g),t.y-=n}drawFooter(t,e,i){const s=this.footer,n=s.length;let o,a;if(n){const r=Ei(i.rtl,this.x,this.width);for(t.x=No(this,i.footerAlign,i),t.y+=i.footerMarginTop,e.textAlign=r.textAlign(i.footerAlign),e.textBaseline="middle",o=He(i.footerFont),e.fillStyle=i.footerColor,e.font=o.string,a=0;a<n;++a)e.fillText(s[a],r.x(t.x),t.y+o.lineHeight/2),t.y+=o.lineHeight+i.footerSpacing}}drawBackground(t,e,i,s){const{xAlign:n,yAlign:o}=this,{x:a,y:r}=t,{width:l,height:h}=i,{topLeft:c,topRight:d,bottomLeft:u,bottomRight:f}=We(s.cornerRadius);e.fillStyle=s.backgroundColor,e.strokeStyle=s.borderColor,e.lineWidth=s.borderWidth,e.beginPath(),e.moveTo(a+c,r),"top"===o&&this.drawCaret(t,e,i,s),e.lineTo(a+l-d,r),e.quadraticCurveTo(a+l,r,a+l,r+d),"center"===o&&"right"===n&&this.drawCaret(t,e,i,s),e.lineTo(a+l,r+h-f),e.quadraticCurveTo(a+l,r+h,a+l-f,r+h),"bottom"===o&&this.drawCaret(t,e,i,s),e.lineTo(a+u,r+h),e.quadraticCurveTo(a,r+h,a,r+h-u),"center"===o&&"left"===n&&this.drawCaret(t,e,i,s),e.lineTo(a,r+c),e.quadraticCurveTo(a,r,a+c,r),e.closePath(),e.fill(),s.borderWidth>0&&e.stroke()}_updateAnimationTarget(t){const e=this.chart,i=this.$animations,s=i&&i.x,n=i&&i.y;if(s||n){const i=Ro[t.position].call(this,this._active,this._eventPosition);if(!i)return;const o=this._size=Fo(this,t),a=Object.assign({},i,this._size),r=Vo(e,t,a),l=Wo(t,a,r,e);s._to===l.x&&n._to===l.y||(this.xAlign=r.xAlign,this.yAlign=r.yAlign,this.width=o.width,this.height=o.height,this.caretX=i.x,this.caretY=i.y,this._resolveAnimations().update(this,l))}}draw(t){const e=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(e);const s={width:this.width,height:this.height},n={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;const o=Ne(e.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;e.enabled&&a&&(t.save(),t.globalAlpha=i,this.drawBackground(n,t,s,e),Ii(t,e.textDirection),n.y+=o.top,this.drawTitle(n,t,e),this.drawBody(n,t,e),this.drawFooter(n,t,e),zi(t,e.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,e){const i=this._active,s=t.map((({datasetIndex:t,index:e})=>{const i=this.chart.getDatasetMeta(t);if(!i)throw new Error("Cannot find a dataset at index "+t);return{datasetIndex:t,element:i.data[e],index:e}})),n=!tt(i,s),o=this._positionChanged(s,e);(n||o)&&(this._active=s,this._eventPosition=e,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,e,i=!0){if(e&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const s=this.options,n=this._active||[],o=this._getActiveElements(t,n,e,i),a=this._positionChanged(o,t),r=e||!tt(o,n)||a;return r&&(this._active=o,(s.enabled||s.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,e))),r}_getActiveElements(t,e,i,s){const n=this.options;if("mouseout"===t.type)return[];if(!s)return e;const o=this.chart.getElementsAtEventForMode(t,n.mode,n,i);return n.reverse&&o.reverse(),o}_positionChanged(t,e){const{caretX:i,caretY:s,options:n}=this,o=Ro[n.position].call(this,t,e);return!1!==o&&(i!==o.x||s!==o.y)}}$o.positioners=Ro;var Yo={id:"tooltip",_element:$o,positioners:Ro,afterInit(t,e,i){i&&(t.tooltip=new $o({chart:t,options:i}))},beforeUpdate(t,e,i){t.tooltip&&t.tooltip.initialize(i)},reset(t,e,i){t.tooltip&&t.tooltip.initialize(i)},afterDraw(t){const e=t.tooltip,i={tooltip:e};!1!==t.notifyPlugins("beforeTooltipDraw",i)&&(e&&e.draw(t.ctx),t.notifyPlugins("afterTooltipDraw",i))},afterEvent(t,e){if(t.tooltip){const i=e.replay;t.tooltip.handleEvent(e.event,i,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:{beforeTitle:H,title(t){if(t.length>0){const e=t[0],i=e.chart.data.labels,s=i?i.length:0;if(this&&this.options&&"dataset"===this.options.mode)return e.dataset.label||"";if(e.label)return e.label;if(s>0&&e.dataIndex<s)return i[e.dataIndex]}return""},afterTitle:H,beforeBody:H,beforeLabel:H,label(t){if(this&&this.options&&"dataset"===this.options.mode)return t.label+": "+t.formattedValue||t.formattedValue;let e=t.dataset.label||"";e&&(e+=": ");const i=t.formattedValue;return $(i)||(e+=i),e},labelColor(t){const e=t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex);return{borderColor:e.borderColor,backgroundColor:e.backgroundColor,borderWidth:e.borderWidth,borderDash:e.borderDash,borderDashOffset:e.borderDashOffset,borderRadius:0}},labelTextColor(){return this.options.bodyColor},labelPointStyle(t){const e=t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex);return{pointStyle:e.pointStyle,rotation:e.rotation}},afterLabel:H,afterBody:H,beforeFooter:H,footer:H,afterFooter:H}},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:t=>"filter"!==t&&"itemSort"!==t&&"external"!==t,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]},Uo=Object.freeze({__proto__:null,Decimation:ro,Filler:So,Legend:Co,SubTitle:Lo,Title:Ao,Tooltip:Yo});function Xo(t,e,i,s){const n=t.indexOf(e);if(-1===n)return((t,e,i,s)=>("string"==typeof e?(i=t.push(e)-1,s.unshift({index:i,label:e})):isNaN(e)&&(i=null),i))(t,e,i,s);return n!==t.lastIndexOf(e)?i:n}class qo extends Bs{constructor(t){super(t),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(t){const e=this._addedLabels;if(e.length){const t=this.getLabels();for(const{index:i,label:s}of e)t[i]===s&&t.splice(i,1);this._addedLabels=[]}super.init(t)}parse(t,e){if($(t))return null;const i=this.getLabels();return((t,e)=>null===t?null:jt(Math.round(t),0,e))(e=isFinite(e)&&i[e]===t?e:Xo(i,t,K(e,t),this._addedLabels),i.length-1)}determineDataLimits(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let{min:i,max:s}=this.getMinMax(!0);"ticks"===this.options.bounds&&(t||(i=0),e||(s=this.getLabels().length-1)),this.min=i,this.max=s}buildTicks(){const t=this.min,e=this.max,i=this.options.offset,s=[];let n=this.getLabels();n=0===t&&e===n.length-1?n:n.slice(t,e+1),this._valueRange=Math.max(n.length-(i?0:1),1),this._startValue=this.min-(i?.5:0);for(let i=t;i<=e;i++)s.push({value:i});return s}getLabelForValue(t){const e=this.getLabels();return t>=0&&t<e.length?e[t]:t}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(t){return"number"!=typeof t&&(t=this.parse(t)),null===t?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}}function Ko(t,e,{horizontal:i,minRotation:s}){const n=It(s),o=(i?Math.sin(n):Math.cos(n))||.001,a=.75*e*(""+t).length;return Math.min(e/o,a)}qo.id="category",qo.defaults={ticks:{callback:qo.prototype.getLabelForValue}};class Go extends Bs{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(t,e){return $(t)||("number"==typeof t||t instanceof Number)&&!isFinite(+t)?null:+t}handleTickRangeOptions(){const{beginAtZero:t}=this.options,{minDefined:e,maxDefined:i}=this.getUserBounds();let{min:s,max:n}=this;const o=t=>s=e?s:t,a=t=>n=i?n:t;if(t){const t=Ct(s),e=Ct(n);t<0&&e<0?a(0):t>0&&e>0&&o(0)}if(s===n){let e=1;(n>=Number.MAX_SAFE_INTEGER||s<=Number.MIN_SAFE_INTEGER)&&(e=Math.abs(.05*n)),a(n+e),t||o(s-e)}this.min=s,this.max=n}getTickLimit(){const t=this.options.ticks;let e,{maxTicksLimit:i,stepSize:s}=t;return s?(e=Math.ceil(this.max/s)-Math.floor(this.min/s)+1,e>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${s} would result generating up to ${e} ticks. Limiting to 1000.`),e=1e3)):(e=this.computeTickLimit(),i=i||11),i&&(e=Math.min(i,e)),e}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,e=t.ticks;let i=this.getTickLimit();i=Math.max(2,i);const s=function(t,e){const i=[],{bounds:s,step:n,min:o,max:a,precision:r,count:l,maxTicks:h,maxDigits:c,includeBounds:d}=t,u=n||1,f=h-1,{min:g,max:p}=e,m=!$(o),x=!$(a),b=!$(l),_=(p-g)/(c+1);let y,v,w,M,k=Ot((p-g)/f/u)*u;if(k<1e-14&&!m&&!x)return[{value:g},{value:p}];M=Math.ceil(p/k)-Math.floor(g/k),M>f&&(k=Ot(M*k/f/u)*u),$(r)||(y=Math.pow(10,r),k=Math.ceil(k*y)/y),"ticks"===s?(v=Math.floor(g/k)*k,w=Math.ceil(p/k)*k):(v=g,w=p),m&&x&&n&&Rt((a-o)/n,k/1e3)?(M=Math.round(Math.min((a-o)/k,h)),k=(a-o)/M,v=o,w=a):b?(v=m?o:v,w=x?a:w,M=l-1,k=(w-v)/M):(M=(w-v)/k,M=Lt(M,Math.round(M),k/1e3)?Math.round(M):Math.ceil(M));const S=Math.max(Ft(k),Ft(v));y=Math.pow(10,$(r)?S:r),v=Math.round(v*y)/y,w=Math.round(w*y)/y;let P=0;for(m&&(d&&v!==o?(i.push({value:o}),v<o&&P++,Lt(Math.round((v+P*k)*y)/y,o,Ko(o,_,t))&&P++):v<o&&P++);P<M;++P)i.push({value:Math.round((v+P*k)*y)/y});return x&&d&&w!==a?i.length&&Lt(i[i.length-1].value,a,Ko(a,_,t))?i[i.length-1].value=a:i.push({value:a}):x&&w!==a||i.push({value:w}),i}({maxTicks:i,bounds:t.bounds,min:t.min,max:t.max,precision:e.precision,step:e.stepSize,count:e.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:e.minRotation||0,includeBounds:!1!==e.includeBounds},this._range||this);return"ticks"===t.bounds&&Et(s,this,"value"),t.reverse?(s.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),s}configure(){const t=this.ticks;let e=this.min,i=this.max;if(super.configure(),this.options.offset&&t.length){const s=(i-e)/Math.max(t.length-1,1)/2;e-=s,i+=s}this._startValue=e,this._endValue=i,this._valueRange=i-e}getLabelForValue(t){return Ri(t,this.chart.options.locale,this.options.ticks.format)}}class Zo extends Go{determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=X(t)?t:0,this.max=X(e)?e:1,this.handleTickRangeOptions()}computeTickLimit(){const t=this.isHorizontal(),e=t?this.width:this.height,i=It(this.options.ticks.minRotation),s=(t?Math.sin(i):Math.cos(i))||.001,n=this._resolveTickFontOptions(0);return Math.ceil(e/Math.min(40,n.lineHeight/s))}getPixelForValue(t){return null===t?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}}function Jo(t){return 1===t/Math.pow(10,Math.floor(Dt(t)))}Zo.id="linear",Zo.defaults={ticks:{callback:Os.formatters.numeric}};class Qo extends Bs{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(t,e){const i=Go.prototype.parse.apply(this,[t,e]);if(0!==i)return X(i)&&i>0?i:null;this._zero=!0}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=X(t)?Math.max(0,t):null,this.max=X(e)?Math.max(0,e):null,this.options.beginAtZero&&(this._zero=!0),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let i=this.min,s=this.max;const n=e=>i=t?i:e,o=t=>s=e?s:t,a=(t,e)=>Math.pow(10,Math.floor(Dt(t))+e);i===s&&(i<=0?(n(1),o(10)):(n(a(i,-1)),o(a(s,1)))),i<=0&&n(a(s,-1)),s<=0&&o(a(i,1)),this._zero&&this.min!==this._suggestedMin&&i===a(this.min,0)&&n(a(i,-1)),this.min=i,this.max=s}buildTicks(){const t=this.options,e=function(t,e){const i=Math.floor(Dt(e.max)),s=Math.ceil(e.max/Math.pow(10,i)),n=[];let o=q(t.min,Math.pow(10,Math.floor(Dt(e.min)))),a=Math.floor(Dt(o)),r=Math.floor(o/Math.pow(10,a)),l=a<0?Math.pow(10,Math.abs(a)):1;do{n.push({value:o,major:Jo(o)}),++r,10===r&&(r=1,++a,l=a>=0?1:l),o=Math.round(r*Math.pow(10,a)*l)/l}while(a<i||a===i&&r<s);const h=q(t.max,o);return n.push({value:h,major:Jo(o)}),n}({min:this._userMin,max:this._userMax},this);return"ticks"===t.bounds&&Et(e,this,"value"),t.reverse?(e.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),e}getLabelForValue(t){return void 0===t?"0":Ri(t,this.chart.options.locale,this.options.ticks.format)}configure(){const t=this.min;super.configure(),this._startValue=Dt(t),this._valueRange=Dt(this.max)-Dt(t)}getPixelForValue(t){return void 0!==t&&0!==t||(t=this.min),null===t||isNaN(t)?NaN:this.getPixelForDecimal(t===this.min?0:(Dt(t)-this._startValue)/this._valueRange)}getValueForPixel(t){const e=this.getDecimalForPixel(t);return Math.pow(10,this._startValue+e*this._valueRange)}}function ta(t){const e=t.ticks;if(e.display&&t.display){const t=Ne(e.backdropPadding);return K(e.font&&e.font.size,bt.font.size)+t.height}return 0}function ea(t,e,i,s,n){return t===s||t===n?{start:e-i/2,end:e+i/2}:t<s||t>n?{start:e-i,end:e}:{start:e,end:e+i}}function ia(t){const e={l:t.left+t._padding.left,r:t.right-t._padding.right,t:t.top+t._padding.top,b:t.bottom-t._padding.bottom},i=Object.assign({},e),s=[],n=[],o=t._pointLabels.length,a=t.options.pointLabels,r=a.centerPointLabels?_t/o:0;for(let d=0;d<o;d++){const o=a.setContext(t.getPointLabelContext(d));n[d]=o.padding;const u=t.getPointPosition(d,t.drawingArea+n[d],r),f=He(o.font),g=(l=t.ctx,h=f,c=Y(c=t._pointLabels[d])?c:[c],{w:qt(l,h.string,c),h:c.length*h.lineHeight});s[d]=g;const p=Nt(t.getIndexAngle(d)+r),m=Math.round(zt(p));sa(i,e,p,ea(m,u.x,g.w,0,180),ea(m,u.y,g.h,90,270))}var l,h,c;t.setCenterPoint(e.l-i.l,i.r-e.r,e.t-i.t,i.b-e.b),t._pointLabelItems=function(t,e,i){const s=[],n=t._pointLabels.length,o=t.options,a=ta(o)/2,r=t.drawingArea,l=o.pointLabels.centerPointLabels?_t/n:0;for(let o=0;o<n;o++){const n=t.getPointPosition(o,r+a+i[o],l),h=Math.round(zt(Nt(n.angle+kt))),c=e[o],d=aa(n.y,c.h,h),u=na(h),f=oa(n.x,c.w,u);s.push({x:n.x,y:d,textAlign:u,left:f,top:d,right:f+c.w,bottom:d+c.h})}return s}(t,s,n)}function sa(t,e,i,s,n){const o=Math.abs(Math.sin(i)),a=Math.abs(Math.cos(i));let r=0,l=0;s.start<e.l?(r=(e.l-s.start)/o,t.l=Math.min(t.l,e.l-r)):s.end>e.r&&(r=(s.end-e.r)/o,t.r=Math.max(t.r,e.r+r)),n.start<e.t?(l=(e.t-n.start)/a,t.t=Math.min(t.t,e.t-l)):n.end>e.b&&(l=(n.end-e.b)/a,t.b=Math.max(t.b,e.b+l))}function na(t){return 0===t||180===t?"center":t<180?"left":"right"}function oa(t,e,i){return"right"===i?t-=e:"center"===i&&(t-=e/2),t}function aa(t,e,i){return 90===i||270===i?t-=e/2:(i>270||i<90)&&(t-=e),t}function ra(t,e,i,s){const{ctx:n}=t;if(i)n.arc(t.xCenter,t.yCenter,e,0,yt);else{let i=t.getPointPosition(0,e);n.moveTo(i.x,i.y);for(let o=1;o<s;o++)i=t.getPointPosition(o,e),n.lineTo(i.x,i.y)}}Qo.id="logarithmic",Qo.defaults={ticks:{callback:Os.formatters.logarithmic,major:{enabled:!0}}};class la extends Go{constructor(t){super(t),this.xCenter=void 0,this.yCenter=void 0,this.drawingArea=void 0,this._pointLabels=[],this._pointLabelItems=[]}setDimensions(){const t=this._padding=Ne(ta(this.options)/2),e=this.width=this.maxWidth-t.width,i=this.height=this.maxHeight-t.height;this.xCenter=Math.floor(this.left+e/2+t.left),this.yCenter=Math.floor(this.top+i/2+t.top),this.drawingArea=Math.floor(Math.min(e,i)/2)}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!1);this.min=X(t)&&!isNaN(t)?t:0,this.max=X(e)&&!isNaN(e)?e:0,this.handleTickRangeOptions()}computeTickLimit(){return Math.ceil(this.drawingArea/ta(this.options))}generateTickLabels(t){Go.prototype.generateTickLabels.call(this,t),this._pointLabels=this.getLabels().map(((t,e)=>{const i=J(this.options.pointLabels.callback,[t,e],this);return i||0===i?i:""})).filter(((t,e)=>this.chart.getDataVisibility(e)))}fit(){const t=this.options;t.display&&t.pointLabels.display?ia(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(t,e,i,s){this.xCenter+=Math.floor((t-e)/2),this.yCenter+=Math.floor((i-s)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(t,e,i,s))}getIndexAngle(t){return Nt(t*(yt/(this._pointLabels.length||1))+It(this.options.startAngle||0))}getDistanceFromCenterForValue(t){if($(t))return NaN;const e=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-t)*e:(t-this.min)*e}getValueForDistanceFromCenter(t){if($(t))return NaN;const e=t/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-e:this.min+e}getPointLabelContext(t){const e=this._pointLabels||[];if(t>=0&&t<e.length){const i=e[t];return function(t,e,i){return Ye(t,{label:i,index:e,type:"pointLabel"})}(this.getContext(),t,i)}}getPointPosition(t,e,i=0){const s=this.getIndexAngle(t)-kt+i;return{x:Math.cos(s)*e+this.xCenter,y:Math.sin(s)*e+this.yCenter,angle:s}}getPointPositionForValue(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))}getBasePosition(t){return this.getPointPositionForValue(t||0,this.getBaseValue())}getPointLabelPosition(t){const{left:e,top:i,right:s,bottom:n}=this._pointLabelItems[t];return{left:e,top:i,right:s,bottom:n}}drawBackground(){const{backgroundColor:t,grid:{circular:e}}=this.options;if(t){const i=this.ctx;i.save(),i.beginPath(),ra(this,this.getDistanceFromCenterForValue(this._endValue),e,this._pointLabels.length),i.closePath(),i.fillStyle=t,i.fill(),i.restore()}}drawGrid(){const t=this.ctx,e=this.options,{angleLines:i,grid:s}=e,n=this._pointLabels.length;let o,a,r;if(e.pointLabels.display&&function(t,e){const{ctx:i,options:{pointLabels:s}}=t;for(let n=e-1;n>=0;n--){const e=s.setContext(t.getPointLabelContext(n)),o=He(e.font),{x:a,y:r,textAlign:l,left:h,top:c,right:d,bottom:u}=t._pointLabelItems[n],{backdropColor:f}=e;if(!$(f)){const t=Ne(e.backdropPadding);i.fillStyle=f,i.fillRect(h-t.left,c-t.top,d-h+t.width,u-c+t.height)}se(i,t._pointLabels[n],a,r+o.lineHeight/2,o,{color:e.color,textAlign:l,textBaseline:"middle"})}}(this,n),s.display&&this.ticks.forEach(((t,e)=>{if(0!==e){a=this.getDistanceFromCenterForValue(t.value);!function(t,e,i,s){const n=t.ctx,o=e.circular,{color:a,lineWidth:r}=e;!o&&!s||!a||!r||i<0||(n.save(),n.strokeStyle=a,n.lineWidth=r,n.setLineDash(e.borderDash),n.lineDashOffset=e.borderDashOffset,n.beginPath(),ra(t,i,o,s),n.closePath(),n.stroke(),n.restore())}(this,s.setContext(this.getContext(e-1)),a,n)}})),i.display){for(t.save(),o=n-1;o>=0;o--){const s=i.setContext(this.getPointLabelContext(o)),{color:n,lineWidth:l}=s;l&&n&&(t.lineWidth=l,t.strokeStyle=n,t.setLineDash(s.borderDash),t.lineDashOffset=s.borderDashOffset,a=this.getDistanceFromCenterForValue(e.ticks.reverse?this.min:this.max),r=this.getPointPosition(o,a),t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(r.x,r.y),t.stroke())}t.restore()}}drawBorder(){}drawLabels(){const t=this.ctx,e=this.options,i=e.ticks;if(!i.display)return;const s=this.getIndexAngle(0);let n,o;t.save(),t.translate(this.xCenter,this.yCenter),t.rotate(s),t.textAlign="center",t.textBaseline="middle",this.ticks.forEach(((s,a)=>{if(0===a&&!e.reverse)return;const r=i.setContext(this.getContext(a)),l=He(r.font);if(n=this.getDistanceFromCenterForValue(this.ticks[a].value),r.showLabelBackdrop){t.font=l.string,o=t.measureText(s.label).width,t.fillStyle=r.backdropColor;const e=Ne(r.backdropPadding);t.fillRect(-o/2-e.left,-n-l.size/2-e.top,o+e.width,l.size+e.height)}se(t,s.label,0,-n,l,{color:r.color})})),t.restore()}drawTitle(){}}la.id="radialLinear",la.defaults={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:Os.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback:t=>t,padding:5,centerPointLabels:!1}},la.defaultRoutes={"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"},la.descriptors={angleLines:{_fallback:"grid"}};const ha={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},ca=Object.keys(ha);function da(t,e){return t-e}function ua(t,e){if($(e))return null;const i=t._adapter,{parser:s,round:n,isoWeekday:o}=t._parseOpts;let a=e;return"function"==typeof s&&(a=s(a)),X(a)||(a="string"==typeof s?i.parse(a,s):i.parse(a)),null===a?null:(n&&(a="week"!==n||!Tt(o)&&!0!==o?i.startOf(a,n):i.startOf(a,"isoWeek",o)),+a)}function fa(t,e,i,s){const n=ca.length;for(let o=ca.indexOf(t);o<n-1;++o){const t=ha[ca[o]],n=t.steps?t.steps:Number.MAX_SAFE_INTEGER;if(t.common&&Math.ceil((i-e)/(n*t.size))<=s)return ca[o]}return ca[n-1]}function ga(t,e,i){if(i){if(i.length){const{lo:s,hi:n}=ae(i,e);t[i[s]>=e?i[s]:i[n]]=!0}}else t[e]=!0}function pa(t,e,i){const s=[],n={},o=e.length;let a,r;for(a=0;a<o;++a)r=e[a],n[r]=a,s.push({value:r,major:!1});return 0!==o&&i?function(t,e,i,s){const n=t._adapter,o=+n.startOf(e[0].value,s),a=e[e.length-1].value;let r,l;for(r=o;r<=a;r=+n.add(r,1,s))l=i[r],l>=0&&(e[l].major=!0);return e}(t,s,n,i):s}class ma extends Bs{constructor(t){super(t),this._cache={data:[],labels:[],all:[]},this._unit="day",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(t,e){const i=t.time||(t.time={}),s=this._adapter=new mn._date(t.adapters.date);ot(i.displayFormats,s.formats()),this._parseOpts={parser:i.parser,round:i.round,isoWeekday:i.isoWeekday},super.init(t),this._normalized=e.normalized}parse(t,e){return void 0===t?null:ua(this,t)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){const t=this.options,e=this._adapter,i=t.time.unit||"day";let{min:s,max:n,minDefined:o,maxDefined:a}=this.getUserBounds();function r(t){o||isNaN(t.min)||(s=Math.min(s,t.min)),a||isNaN(t.max)||(n=Math.max(n,t.max))}o&&a||(r(this._getLabelBounds()),"ticks"===t.bounds&&"labels"===t.ticks.source||r(this.getMinMax(!1))),s=X(s)&&!isNaN(s)?s:+e.startOf(Date.now(),i),n=X(n)&&!isNaN(n)?n:+e.endOf(Date.now(),i)+1,this.min=Math.min(s,n-1),this.max=Math.max(s+1,n)}_getLabelBounds(){const t=this.getLabelTimestamps();let e=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;return t.length&&(e=t[0],i=t[t.length-1]),{min:e,max:i}}buildTicks(){const t=this.options,e=t.time,i=t.ticks,s="labels"===i.source?this.getLabelTimestamps():this._generate();"ticks"===t.bounds&&s.length&&(this.min=this._userMin||s[0],this.max=this._userMax||s[s.length-1]);const n=this.min,o=he(s,n,this.max);return this._unit=e.unit||(i.autoSkip?fa(e.minUnit,this.min,this.max,this._getLabelCapacity(n)):function(t,e,i,s,n){for(let o=ca.length-1;o>=ca.indexOf(i);o--){const i=ca[o];if(ha[i].common&&t._adapter.diff(n,s,i)>=e-1)return i}return ca[i?ca.indexOf(i):0]}(this,o.length,e.minUnit,this.min,this.max)),this._majorUnit=i.major.enabled&&"year"!==this._unit?function(t){for(let e=ca.indexOf(t)+1,i=ca.length;e<i;++e)if(ha[ca[e]].common)return ca[e]}(this._unit):void 0,this.initOffsets(s),t.reverse&&o.reverse(),pa(this,o,this._majorUnit)}initOffsets(t){let e,i,s=0,n=0;this.options.offset&&t.length&&(e=this.getDecimalForValue(t[0]),s=1===t.length?1-e:(this.getDecimalForValue(t[1])-e)/2,i=this.getDecimalForValue(t[t.length-1]),n=1===t.length?i:(i-this.getDecimalForValue(t[t.length-2]))/2);const o=t.length<3?.5:.25;s=jt(s,0,o),n=jt(n,0,o),this._offsets={start:s,end:n,factor:1/(s+1+n)}}_generate(){const t=this._adapter,e=this.min,i=this.max,s=this.options,n=s.time,o=n.unit||fa(n.minUnit,e,i,this._getLabelCapacity(e)),a=K(n.stepSize,1),r="week"===o&&n.isoWeekday,l=Tt(r)||!0===r,h={};let c,d,u=e;if(l&&(u=+t.startOf(u,"isoWeek",r)),u=+t.startOf(u,l?"day":o),t.diff(i,e,o)>1e5*a)throw new Error(e+" and "+i+" are too far apart with stepSize of "+a+" "+o);const f="data"===s.ticks.source&&this.getDataTimestamps();for(c=u,d=0;c<i;c=+t.add(c,a,o),d++)ga(h,c,f);return c!==i&&"ticks"!==s.bounds&&1!==d||ga(h,c,f),Object.keys(h).sort(((t,e)=>t-e)).map((t=>+t))}getLabelForValue(t){const e=this._adapter,i=this.options.time;return i.tooltipFormat?e.format(t,i.tooltipFormat):e.format(t,i.displayFormats.datetime)}_tickFormatFunction(t,e,i,s){const n=this.options,o=n.time.displayFormats,a=this._unit,r=this._majorUnit,l=a&&o[a],h=r&&o[r],c=i[e],d=r&&h&&c&&c.major,u=this._adapter.format(t,s||(d?h:l)),f=n.ticks.callback;return f?J(f,[u,e,i],this):u}generateTickLabels(t){let e,i,s;for(e=0,i=t.length;e<i;++e)s=t[e],s.label=this._tickFormatFunction(s.value,e,t)}getDecimalForValue(t){return null===t?NaN:(t-this.min)/(this.max-this.min)}getPixelForValue(t){const e=this._offsets,i=this.getDecimalForValue(t);return this.getPixelForDecimal((e.start+i)*e.factor)}getValueForPixel(t){const e=this._offsets,i=this.getDecimalForPixel(t)/e.factor-e.end;return this.min+i*(this.max-this.min)}_getLabelSize(t){const e=this.options.ticks,i=this.ctx.measureText(t).width,s=It(this.isHorizontal()?e.maxRotation:e.minRotation),n=Math.cos(s),o=Math.sin(s),a=this._resolveTickFontOptions(0).size;return{w:i*n+a*o,h:i*o+a*n}}_getLabelCapacity(t){const e=this.options.time,i=e.displayFormats,s=i[e.unit]||i.millisecond,n=this._tickFormatFunction(t,0,pa(this,[t],this._majorUnit),s),o=this._getLabelSize(n),a=Math.floor(this.isHorizontal()?this.width/o.w:this.height/o.h)-1;return a>0?a:1}getDataTimestamps(){let t,e,i=this._cache.data||[];if(i.length)return i;const s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(t=0,e=s.length;t<e;++t)i=i.concat(s[t].controller.getAllParsedValues(this));return this._cache.data=this.normalize(i)}getLabelTimestamps(){const t=this._cache.labels||[];let e,i;if(t.length)return t;const s=this.getLabels();for(e=0,i=s.length;e<i;++e)t.push(ua(this,s[e]));return this._cache.labels=this._normalized?t:this.normalize(t)}normalize(t){return fe(t.sort(da))}}function xa(t,e,i){let s,n,o,a,r=0,l=t.length-1;i?(e>=t[r].pos&&e<=t[l].pos&&({lo:r,hi:l}=re(t,"pos",e)),({pos:s,time:o}=t[r]),({pos:n,time:a}=t[l])):(e>=t[r].time&&e<=t[l].time&&({lo:r,hi:l}=re(t,"time",e)),({time:s,pos:o}=t[r]),({time:n,pos:a}=t[l]));const h=n-s;return h?o+(a-o)*(e-s)/h:o}ma.id="time",ma.defaults={bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{source:"auto",major:{enabled:!1}}};class ba extends ma{constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const t=this._getTimestampsForTable(),e=this._table=this.buildLookupTable(t);this._minPos=xa(e,this.min),this._tableRange=xa(e,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){const{min:e,max:i}=this,s=[],n=[];let o,a,r,l,h;for(o=0,a=t.length;o<a;++o)l=t[o],l>=e&&l<=i&&s.push(l);if(s.length<2)return[{time:e,pos:0},{time:i,pos:1}];for(o=0,a=s.length;o<a;++o)h=s[o+1],r=s[o-1],l=s[o],Math.round((h+r)/2)!==l&&n.push({time:l,pos:o/(a-1)});return n}_getTimestampsForTable(){let t=this._cache.all||[];if(t.length)return t;const e=this.getDataTimestamps(),i=this.getLabelTimestamps();return t=e.length&&i.length?this.normalize(e.concat(i)):e.length?e:i,t=this._cache.all=t,t}getDecimalForValue(t){return(xa(this._table,t)-this._minPos)/this._tableRange}getValueForPixel(t){const e=this._offsets,i=this.getDecimalForPixel(t)/e.factor-e.end;return xa(this._table,i*this._tableRange+this._minPos,!0)}}ba.id="timeseries",ba.defaults=ma.defaults;var _a=Object.freeze({__proto__:null,CategoryScale:qo,LinearScale:Zo,LogarithmicScale:Qo,RadialLinearScale:la,TimeScale:ma,TimeSeriesScale:ba});return dn.register(Rn,_a,no,Uo),dn.helpers={...Yi},dn._adapters=mn,dn.Animation=us,dn.Animations=gs,dn.animator=a,dn.controllers=Ws.controllers.items,dn.DatasetController=Ps,dn.Element=Ds,dn.elements=no,dn.Interaction=Ee,dn.layouts=ni,dn.platforms=hs,dn.Scale=Bs,dn.Ticks=Os,Object.assign(dn,Rn,_a,no,Uo,hs),dn.Chart=dn,"undefined"!=typeof window&&(window.Chart=dn),dn}));
|
assets/js/frontend.js
CHANGED
@@ -569,13 +569,16 @@ jQuery(window).on('load', function()
|
|
569 |
settings.skin = skin;
|
570 |
|
571 |
// Add Loading Class
|
572 |
-
if
|
573 |
jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
|
574 |
|
|
|
|
|
|
|
575 |
// Add Month & Year
|
576 |
-
if(settings.atts.indexOf('sf[month]') <= -1)
|
577 |
{
|
578 |
-
settings.atts += '&sf[month]='+$
|
579 |
}
|
580 |
|
581 |
$.ajax({
|
569 |
settings.skin = skin;
|
570 |
|
571 |
// Add Loading Class
|
572 |
+
if(jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
|
573 |
jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
|
574 |
|
575 |
+
var $month_picker = $("#mec_sf_month_" + settings.id);
|
576 |
+
var $year_picker = $("#mec_sf_year_" + settings.id);
|
577 |
+
|
578 |
// Add Month & Year
|
579 |
+
if(settings.atts.indexOf('sf[month]') <= -1 && $month_picker.length && $year_picker.length)
|
580 |
{
|
581 |
+
settings.atts += '&sf[month]='+$month_picker.val()+'&sf[year]='+$year_picker.val();
|
582 |
}
|
583 |
|
584 |
$.ajax({
|
changelog.txt
CHANGED
@@ -1,4 +1,16 @@
|
|
1 |
-
v 6.4.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
- Improved: The XML export
|
3 |
- Improved: The skin load in full calendar shortcode
|
4 |
- Improved: The Stripe gateway by adding some booking fields into the meta fields (pro)
|
1 |
+
v 6.4.5 – 15 March 2022
|
2 |
+
- Added: Dynamic content shortcode
|
3 |
+
- Added: View bookings link to the classic event list in WordPress backend (pro)
|
4 |
+
- Updated: Some language files
|
5 |
+
- Updated: Charts library
|
6 |
+
- Improved: The “Frontend Submission” form
|
7 |
+
- Improved: The code security
|
8 |
+
- Removed: An encrypted code
|
9 |
+
- Fixed: An issue in booking form (pro)
|
10 |
+
- Fixed: An issue in full calendar when loaded as category archive
|
11 |
+
- Fixed: Some issues regarding search module
|
12 |
+
|
13 |
+
v 6.4.2 – 3 March 2022
|
14 |
- Improved: The XML export
|
15 |
- Improved: The skin load in full calendar shortcode
|
16 |
- Improved: The Stripe gateway by adding some booking fields into the meta fields (pro)
|
languages/modern-events-calendar-lite-cs_CZ.mo
CHANGED
Binary file
|
languages/modern-events-calendar-lite-cs_CZ.po
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: Modern Events Calendar Lite\n"
|
4 |
-
"POT-Creation-Date: 2022-03-
|
5 |
-
"PO-Revision-Date: 2022-03-
|
6 |
"Last-Translator: \n"
|
7 |
"Language-Team: \n"
|
8 |
"Language: cs_CZ\n"
|
@@ -24,7 +24,7 @@ msgstr ""
|
|
24 |
#: app/addons/KC.php:68 app/addons/VC.php:59 app/features/ix/import.php:24
|
25 |
#: app/features/ix/import.php:48 app/features/ix/import.php:77
|
26 |
#: app/features/ix/thirdparty.php:26 app/features/mec.php:1341
|
27 |
-
#: app/features/mec.php:1365 app/features/mec/dashboard.php:
|
28 |
#: app/features/mec/wizard.php:502 app/widgets/MEC.php:33
|
29 |
msgid "Modern Events Calendar"
|
30 |
msgstr "Moderní kalendář událostí"
|
@@ -150,24 +150,24 @@ msgid "There is no changelog available."
|
|
150 |
msgstr ""
|
151 |
|
152 |
#: app/core/src/Books/Book.php:106 app/features/ix.php:275
|
153 |
-
#: app/libraries/main.php:
|
154 |
msgid "Rejected"
|
155 |
msgstr "Odmítnuto"
|
156 |
|
157 |
#: app/core/src/Books/Book.php:111 app/features/ix.php:274
|
158 |
-
#: app/libraries/main.php:
|
159 |
-
#: app/libraries/main.php:
|
160 |
msgid "Confirmed"
|
161 |
msgstr "Potvrzeno"
|
162 |
|
163 |
-
#: app/core/src/Books/Book.php:117 app/features/mec/settings.php:
|
164 |
-
#: app/libraries/main.php:
|
165 |
msgid "Pending"
|
166 |
msgstr "Nevyřízený"
|
167 |
|
168 |
#: app/core/src/Books/Book.php:186 app/features/ix.php:280
|
169 |
#: app/features/labels.php:119 app/features/labels.php:145
|
170 |
-
#: app/libraries/main.php:
|
171 |
msgid "Canceled"
|
172 |
msgstr "Zrušená"
|
173 |
|
@@ -176,17 +176,17 @@ msgstr "Zrušená"
|
|
176 |
#: app/features/mec/integrations.php:449 app/features/mec/integrations.php:471
|
177 |
#: app/features/mec/modules.php:406 app/features/mec/modules.php:428
|
178 |
#: app/features/mec/notifications.php:1922
|
179 |
-
#: app/features/mec/notifications.php:1945 app/features/mec/settings.php:
|
180 |
-
#: app/features/mec/settings.php:
|
181 |
-
#: app/features/mec/single.php:624 app/libraries/main.php:
|
182 |
msgid "Verified"
|
183 |
msgstr "Ověřeno"
|
184 |
|
185 |
-
#: app/core/src/Books/Book.php:197 app/libraries/main.php:
|
186 |
msgid "Waiting"
|
187 |
msgstr "Čekající"
|
188 |
|
189 |
-
#: app/core/src/Books/BookingForm.php:
|
190 |
#: app/skins/single/default.php:133 app/skins/single/m1.php:319
|
191 |
#: app/skins/single/m2.php:237 app/skins/single/modern.php:197
|
192 |
msgid "Sold out!"
|
@@ -210,17 +210,17 @@ msgstr "Název vstupenky"
|
|
210 |
#: app/core/src/SingleBuilder/Widgets/EventOrganizers/EventOrganizers.php:70
|
211 |
#: app/features/autoemails.php:60 app/features/events.php:606
|
212 |
#: app/features/events.php:2650 app/features/events.php:2717
|
213 |
-
#: app/features/events.php:2806 app/features/events.php:
|
214 |
#: app/features/fes.php:280 app/features/fes/form.php:812
|
215 |
#: app/features/login/login.php:5 app/features/mec/booking.php:61
|
216 |
#: app/features/mec/booking.php:798 app/features/mec/booking.php:896
|
217 |
-
#: app/features/mec/settings.php:
|
218 |
#: app/features/organizers.php:112 app/features/organizers.php:153
|
219 |
#: app/features/profile/profile.php:206 app/features/speakers.php:134
|
220 |
#: app/features/speakers.php:211 app/libraries/main.php:653
|
221 |
-
#: app/libraries/main.php:
|
222 |
-
#: app/libraries/main.php:
|
223 |
-
#: app/modules/booking/steps/form.php:69 app/modules/booking/steps/form.php:
|
224 |
#: app/skins/single.php:1399 app/skins/single.php:1466
|
225 |
#: app/skins/single/default.php:345 app/skins/single/m1.php:141
|
226 |
#: app/skins/single/m2.php:61 app/widgets/single/default.php:184
|
@@ -242,21 +242,21 @@ msgstr "Vložte štítek pro toto pole"
|
|
242 |
#: app/core/src/Forms/FormFields.php:396 app/core/src/Forms/FormFields.php:442
|
243 |
#: app/core/src/Forms/FormFields.php:488 app/core/src/Forms/FormFields.php:544
|
244 |
#: app/core/src/Forms/FormFields.php:596 app/features/organizers.php:340
|
245 |
-
#: app/features/organizers.php:348 app/libraries/main.php:
|
246 |
-
#: app/libraries/main.php:
|
247 |
-
#: app/libraries/main.php:
|
248 |
-
#: app/libraries/main.php:
|
249 |
-
#: app/libraries/main.php:
|
250 |
-
#: app/libraries/main.php:
|
251 |
-
#: app/libraries/main.php:
|
252 |
-
#: app/libraries/main.php:
|
253 |
msgid "Sort"
|
254 |
msgstr "Seřadit"
|
255 |
|
256 |
#: app/core/src/Forms/FormFields.php:52 app/core/src/Forms/SettingsForm.php:88
|
257 |
#: app/features/events.php:2716 app/features/events.php:2805
|
258 |
#: app/features/mec/booking.php:797 app/features/mec/booking.php:895
|
259 |
-
#: app/features/mec/single.php:306 app/libraries/main.php:
|
260 |
#: app/libraries/skins.php:1413
|
261 |
msgid "Text"
|
262 |
msgstr "Text"
|
@@ -267,13 +267,13 @@ msgstr "Text"
|
|
267 |
#: app/core/src/Forms/FormFields.php:286 app/core/src/Forms/FormFields.php:317
|
268 |
#: app/core/src/Forms/FormFields.php:348 app/core/src/Forms/FormFields.php:403
|
269 |
#: app/core/src/Forms/FormFields.php:449 app/core/src/Forms/FormFields.php:495
|
270 |
-
#: app/core/src/Forms/FormFields.php:551 app/libraries/main.php:
|
271 |
-
#: app/libraries/main.php:
|
272 |
-
#: app/libraries/main.php:
|
273 |
-
#: app/libraries/main.php:
|
274 |
-
#: app/libraries/main.php:
|
275 |
-
#: app/libraries/main.php:
|
276 |
-
#: app/libraries/main.php:
|
277 |
msgid "Required Field"
|
278 |
msgstr "Požadovaná pole"
|
279 |
|
@@ -292,14 +292,14 @@ msgstr "Požadovaná pole"
|
|
292 |
#: app/features/organizers.php:340 app/features/organizers.php:349
|
293 |
#: app/libraries/hourlyschedule.php:53 app/libraries/hourlyschedule.php:74
|
294 |
#: app/libraries/hourlyschedule.php:102 app/libraries/hourlyschedule.php:130
|
295 |
-
#: app/libraries/hourlyschedule.php:154 app/libraries/main.php:
|
296 |
-
#: app/libraries/main.php:
|
297 |
-
#: app/libraries/main.php:
|
298 |
-
#: app/libraries/main.php:
|
299 |
-
#: app/libraries/main.php:
|
300 |
-
#: app/libraries/main.php:
|
301 |
-
#: app/libraries/main.php:
|
302 |
-
#: app/libraries/main.php:
|
303 |
#: app/libraries/ticketVariations.php:72
|
304 |
msgid "Remove"
|
305 |
msgstr "Odstranit"
|
@@ -310,13 +310,13 @@ msgstr "Odstranit"
|
|
310 |
#: app/core/src/Forms/FormFields.php:292 app/core/src/Forms/FormFields.php:323
|
311 |
#: app/core/src/Forms/FormFields.php:354 app/core/src/Forms/FormFields.php:409
|
312 |
#: app/core/src/Forms/FormFields.php:455 app/core/src/Forms/FormFields.php:508
|
313 |
-
#: app/core/src/Forms/FormFields.php:557 app/libraries/main.php:
|
314 |
-
#: app/libraries/main.php:
|
315 |
-
#: app/libraries/main.php:
|
316 |
-
#: app/libraries/main.php:
|
317 |
-
#: app/libraries/main.php:
|
318 |
-
#: app/libraries/main.php:
|
319 |
-
#: app/libraries/main.php:
|
320 |
msgid "Insert a label for this field"
|
321 |
msgstr "Vložte štítek pro toto pole"
|
322 |
|
@@ -333,24 +333,24 @@ msgid "MEC Last Name"
|
|
333 |
msgstr "MEC Jméno"
|
334 |
|
335 |
#: app/core/src/Forms/FormFields.php:93 app/features/events.php:2714
|
336 |
-
#: app/features/mec/booking.php:795 app/libraries/main.php:
|
337 |
msgid "MEC Name"
|
338 |
msgstr "MEC Jméno"
|
339 |
|
340 |
#: app/core/src/Forms/FormFields.php:158 app/core/src/Forms/SettingsForm.php:83
|
341 |
#: app/features/events.php:2715 app/features/mec/booking.php:796
|
342 |
-
#: app/libraries/main.php:
|
343 |
msgid "MEC Email"
|
344 |
msgstr "MEC Email"
|
345 |
|
346 |
#: app/core/src/Forms/FormFields.php:219 app/features/mec/single.php:308
|
347 |
-
#: app/libraries/main.php:
|
348 |
msgid "URL"
|
349 |
msgstr ""
|
350 |
|
351 |
#: app/core/src/Forms/FormFields.php:250
|
352 |
#: app/core/src/Forms/SettingsForm.php:108 app/features/events.php:2720
|
353 |
-
#: app/features/mec/booking.php:801 app/libraries/main.php:
|
354 |
msgid "File"
|
355 |
msgstr "Soubor"
|
356 |
|
@@ -360,8 +360,8 @@ msgstr "Soubor"
|
|
360 |
#: app/features/events.php:2807 app/features/fes.php:280
|
361 |
#: app/features/mec/booking.php:799 app/features/mec/booking.php:897
|
362 |
#: app/features/mec/single.php:309 app/features/profile/profile.php:59
|
363 |
-
#: app/features/wc.php:89 app/libraries/main.php:
|
364 |
-
#: app/libraries/skins.php:1325 app/modules/booking/steps/tickets.php:
|
365 |
#: app/modules/next-event/details.php:145 app/skins/single.php:1191
|
366 |
#: app/skins/single/default.php:169 app/skins/single/m1.php:40
|
367 |
#: app/skins/single/modern.php:92 app/widgets/single/default.php:11
|
@@ -374,7 +374,7 @@ msgstr "Datum"
|
|
374 |
#: app/features/mec/booking.php:898 app/features/mec/single.php:310
|
375 |
#: app/features/organizers.php:104 app/features/organizers.php:149
|
376 |
#: app/features/speakers.php:126 app/features/speakers.php:207
|
377 |
-
#: app/features/speakers.php:294 app/libraries/main.php:
|
378 |
msgid "Tel"
|
379 |
msgstr "Tel"
|
380 |
|
@@ -382,19 +382,19 @@ msgstr "Tel"
|
|
382 |
#: app/core/src/Forms/SettingsForm.php:113 app/features/events.php:2721
|
383 |
#: app/features/events.php:2809 app/features/mec/booking.php:802
|
384 |
#: app/features/mec/booking.php:899 app/features/mec/single.php:311
|
385 |
-
#: app/libraries/main.php:
|
386 |
msgid "Textarea"
|
387 |
msgstr "Plocha textu"
|
388 |
|
389 |
#: app/core/src/Forms/FormFields.php:373
|
390 |
#: app/core/src/Forms/SettingsForm.php:138 app/features/events.php:2726
|
391 |
#: app/features/events.php:2814 app/features/mec/booking.php:807
|
392 |
-
#: app/features/mec/booking.php:904 app/features/mec/settings.php:
|
393 |
-
#: app/features/mec/single.php:312 app/libraries/main.php:
|
394 |
msgid "Paragraph"
|
395 |
msgstr "Paragraf"
|
396 |
|
397 |
-
#: app/core/src/Forms/FormFields.php:378 app/libraries/main.php:
|
398 |
msgid "HTML and shortcode are allowed."
|
399 |
msgstr "HTML a zkrácené kódy jsou povoleny."
|
400 |
|
@@ -402,13 +402,13 @@ msgstr "HTML a zkrácené kódy jsou povoleny."
|
|
402 |
#: app/core/src/Forms/SettingsForm.php:118 app/features/events.php:2722
|
403 |
#: app/features/events.php:2810 app/features/mec/booking.php:131
|
404 |
#: app/features/mec/booking.php:803 app/features/mec/booking.php:900
|
405 |
-
#: app/features/mec/single.php:313 app/libraries/main.php:
|
406 |
msgid "Checkboxes"
|
407 |
msgstr "Zatržítko"
|
408 |
|
409 |
#: app/core/src/Forms/FormFields.php:421 app/core/src/Forms/FormFields.php:467
|
410 |
-
#: app/core/src/Forms/FormFields.php:520 app/libraries/main.php:
|
411 |
-
#: app/libraries/main.php:
|
412 |
msgid "Option"
|
413 |
msgstr "Možnost"
|
414 |
|
@@ -416,7 +416,7 @@ msgstr "Možnost"
|
|
416 |
#: app/core/src/Forms/SettingsForm.php:123 app/features/events.php:2723
|
417 |
#: app/features/events.php:2811 app/features/mec/booking.php:804
|
418 |
#: app/features/mec/booking.php:901 app/features/mec/single.php:314
|
419 |
-
#: app/libraries/main.php:
|
420 |
msgid "Radio Buttons"
|
421 |
msgstr "Přepínače"
|
422 |
|
@@ -505,7 +505,7 @@ msgstr "Přepínače"
|
|
505 |
#: app/features/mec/meta_boxes/search_form.php:1094
|
506 |
#: app/features/mec/meta_boxes/search_form.php:1116
|
507 |
#: app/features/mec/single.php:315 app/features/popup/settings.php:348
|
508 |
-
#: app/libraries/main.php:
|
509 |
msgid "Dropdown"
|
510 |
msgstr "Rozbalovací"
|
511 |
|
@@ -516,44 +516,44 @@ msgstr ""
|
|
516 |
#: app/core/src/Forms/FormFields.php:545
|
517 |
#: app/core/src/Forms/SettingsForm.php:133 app/features/events.php:2725
|
518 |
#: app/features/events.php:2813 app/features/mec/booking.php:806
|
519 |
-
#: app/features/mec/booking.php:903 app/libraries/main.php:
|
520 |
msgid "Agreement"
|
521 |
msgstr "Smlouva"
|
522 |
|
523 |
-
#: app/core/src/Forms/FormFields.php:557 app/libraries/main.php:
|
524 |
#, fuzzy, php-format
|
525 |
#| msgid "Integrate with MEC"
|
526 |
msgid "I agree with %s"
|
527 |
msgstr "Integrovat s MEC"
|
528 |
|
529 |
-
#: app/core/src/Forms/FormFields.php:557 app/libraries/main.php:
|
530 |
#, php-format
|
531 |
msgid "Instead of %s, the page title with a link will be show."
|
532 |
msgstr "Místo%s se zobrazí název stránky s odkazem."
|
533 |
|
534 |
-
#: app/core/src/Forms/FormFields.php:559 app/features/mec/settings.php:
|
535 |
-
#: app/libraries/main.php:
|
536 |
msgid "Agreement Page"
|
537 |
msgstr "Stránka smlouvy"
|
538 |
|
539 |
#: app/core/src/Forms/FormFields.php:570 app/features/profile/profile.php:62
|
540 |
-
#: app/libraries/main.php:
|
541 |
msgid "Status"
|
542 |
msgstr "Stav"
|
543 |
|
544 |
-
#: app/core/src/Forms/FormFields.php:572 app/libraries/main.php:
|
545 |
msgid "Checked by default"
|
546 |
msgstr "Ve výchozím nastavení zaškrtnuto"
|
547 |
|
548 |
-
#: app/core/src/Forms/FormFields.php:573 app/libraries/main.php:
|
549 |
msgid "Unchecked by default"
|
550 |
msgstr "Ve výchozím nastavení není zaškrtnuto"
|
551 |
|
552 |
-
#: app/core/src/Forms/FormFields.php:598 app/libraries/main.php:
|
553 |
msgid "Insert a label for this option"
|
554 |
msgstr "Vložte štítek pro tuto možnost"
|
555 |
|
556 |
-
#: app/core/src/Forms/FormFields.php:606 app/libraries/main.php:
|
557 |
msgid "Mapping with Profile Fields"
|
558 |
msgstr ""
|
559 |
|
@@ -696,26 +696,26 @@ msgstr "Vložte e-maily oddělené čárkami pro více příjemců."
|
|
696 |
|
697 |
#: app/core/src/Notifications/template-notification-settings.php:94
|
698 |
#: app/core/src/SingleBuilder/Widgets/EventMoreInfo/EventMoreInfo.php:49
|
699 |
-
#: app/features/
|
700 |
-
#: app/features/events.php:
|
701 |
-
#: app/features/events.php:
|
702 |
-
#: app/features/events.php:
|
703 |
-
#: app/features/events.php:
|
704 |
-
#: app/features/events.php:
|
705 |
-
#: app/features/events.php:
|
706 |
-
#: app/features/events.php:
|
707 |
-
#: app/features/fes/form.php:
|
708 |
-
#: app/features/
|
709 |
-
#: app/features/mec/booking.php:
|
710 |
-
#: app/features/mec/booking.php:
|
711 |
-
#: app/features/mec/booking.php:
|
712 |
-
#: app/features/mec/booking.php:
|
713 |
-
#: app/features/mec/booking.php:
|
714 |
-
#: app/features/mec/booking.php:
|
715 |
-
#: app/features/mec/booking.php:
|
716 |
-
#: app/features/mec/booking.php:
|
717 |
-
#: app/features/mec/
|
718 |
-
#: app/features/mec/integrations.php:86
|
719 |
#: app/features/mec/meta_boxes/display_options.php:98
|
720 |
#: app/features/mec/meta_boxes/display_options.php:111
|
721 |
#: app/features/mec/meta_boxes/display_options.php:124
|
@@ -767,14 +767,14 @@ msgstr "Vložte e-maily oddělené čárkami pro více příjemců."
|
|
767 |
#: app/features/mec/settings.php:86 app/features/mec/settings.php:113
|
768 |
#: app/features/mec/settings.php:149 app/features/mec/settings.php:172
|
769 |
#: app/features/mec/settings.php:218 app/features/mec/settings.php:268
|
770 |
-
#: app/features/mec/settings.php:
|
771 |
-
#: app/features/mec/settings.php:
|
772 |
-
#: app/features/mec/settings.php:
|
773 |
-
#: app/features/mec/settings.php:
|
774 |
-
#: app/features/mec/settings.php:
|
775 |
-
#: app/features/mec/settings.php:
|
776 |
-
#: app/features/mec/settings.php:
|
777 |
-
#: app/features/mec/settings.php:
|
778 |
#: app/features/mec/single.php:66 app/features/mec/single.php:86
|
779 |
#: app/features/mec/single.php:104 app/features/mec/single.php:128
|
780 |
#: app/features/mec/single.php:145 app/features/mec/single.php:208
|
@@ -782,8 +782,8 @@ msgstr "Vložte e-maily oddělené čárkami pro více příjemců."
|
|
782 |
#: app/features/mec/styling.php:223 app/features/mec/styling.php:240
|
783 |
#: app/features/mec/styling.php:257 app/features/mec/styling.php:271
|
784 |
#: app/features/occurrences.php:472 app/features/occurrences.php:502
|
785 |
-
#: app/features/organizers.php:289 app/features/popup/event.php:
|
786 |
-
#: app/features/popup/event.php:
|
787 |
#: app/features/popup/settings.php:161 app/features/popup/settings.php:182
|
788 |
#: app/features/popup/settings.php:300 app/libraries/ticketVariations.php:50
|
789 |
#: app/libraries/ticketVariations.php:65 app/skins/single.php:1218
|
@@ -921,11 +921,11 @@ msgstr ""
|
|
921 |
#: app/features/mec/meta_boxes/search_form.php:844
|
922 |
#: app/features/mec/meta_boxes/search_form.php:967
|
923 |
#: app/features/mec/meta_boxes/search_form.php:1054
|
924 |
-
#: app/features/mec/settings.php:
|
925 |
#: app/features/mec/single.php:464 app/features/mec/single.php:517
|
926 |
#: app/features/popup/settings.php:220 app/features/popup/settings.php:259
|
927 |
-
#: app/features/search.php:91 app/libraries/main.php:
|
928 |
-
#: app/libraries/main.php:
|
929 |
#: app/libraries/skins.php:1126 app/skins/single.php:1095
|
930 |
#: app/skins/single/default.php:297 app/skins/single/m1.php:231
|
931 |
#: app/skins/single/m2.php:151 app/widgets/single/default.php:137
|
@@ -947,9 +947,9 @@ msgstr ""
|
|
947 |
|
948 |
#: app/core/src/SingleBuilder/Widgets/EventCost/EventCost.php:47
|
949 |
#: app/features/events.php:432 app/features/events.php:1283
|
950 |
-
#: app/features/fes/form.php:870 app/features/mec/settings.php:
|
951 |
-
#: app/features/occurrences.php:514 app/libraries/main.php:
|
952 |
-
#: app/libraries/main.php:
|
953 |
#: app/skins/single.php:1126 app/skins/single/default.php:213
|
954 |
#: app/skins/single/m1.php:80 app/skins/single/modern.php:132
|
955 |
#: app/widgets/single/default.php:55
|
@@ -1030,8 +1030,8 @@ msgstr ""
|
|
1030 |
#: app/features/events.php:4197 app/features/fes/form.php:1000
|
1031 |
#: app/features/labels.php:61 app/features/labels.php:227
|
1032 |
#: app/features/mec.php:525 app/features/mec/meta_boxes/filter.php:72
|
1033 |
-
#: app/features/mec/meta_boxes/filter.php:135 app/libraries/main.php:
|
1034 |
-
#: app/libraries/main.php:
|
1035 |
#: app/skins/single/default.php:245 app/skins/single/m1.php:95
|
1036 |
#: app/skins/single/modern.php:147 app/widgets/single/default.php:84
|
1037 |
msgid "Labels"
|
@@ -1080,14 +1080,14 @@ msgstr "Skrýt místo"
|
|
1080 |
#: app/features/mec/meta_boxes/search_form.php:852
|
1081 |
#: app/features/mec/meta_boxes/search_form.php:975
|
1082 |
#: app/features/mec/meta_boxes/search_form.php:1062
|
1083 |
-
#: app/features/mec/settings.php:
|
1084 |
#: app/features/mec/single.php:525 app/features/occurrences.php:460
|
1085 |
#: app/features/occurrences.php:462 app/features/occurrences.php:471
|
1086 |
-
#: app/features/popup/event.php:
|
1087 |
#: app/features/popup/settings.php:228 app/features/popup/settings.php:267
|
1088 |
-
#: app/features/search.php:97 app/libraries/main.php:
|
1089 |
-
#: app/libraries/main.php:
|
1090 |
-
#: app/libraries/main.php:
|
1091 |
#: app/libraries/skins.php:1181 app/skins/single.php:1022
|
1092 |
#: app/skins/single.php:1525 app/skins/single/default.php:266
|
1093 |
#: app/skins/single/m1.php:201 app/skins/single/m2.php:121
|
@@ -1121,7 +1121,7 @@ msgstr ""
|
|
1121 |
#: app/core/src/SingleBuilder/Widgets/EventMoreInfo/EventMoreInfo.php:48
|
1122 |
#: app/features/events.php:1519 app/features/events.php:1532
|
1123 |
#: app/features/fes/form.php:838 app/features/occurrences.php:528
|
1124 |
-
#: app/libraries/main.php:
|
1125 |
#: app/skins/single.php:1223 app/skins/single/default.php:230
|
1126 |
#: app/skins/single/m1.php:257 app/skins/single/m2.php:178
|
1127 |
#: app/widgets/single.php:126 app/widgets/single/default.php:69
|
@@ -1186,15 +1186,15 @@ msgstr "Skrýt organizátora"
|
|
1186 |
#: app/features/mec/meta_boxes/search_form.php:860
|
1187 |
#: app/features/mec/meta_boxes/search_form.php:983
|
1188 |
#: app/features/mec/meta_boxes/search_form.php:1070
|
1189 |
-
#: app/features/mec/settings.php:
|
1190 |
#: app/features/mec/single.php:521 app/features/occurrences.php:490
|
1191 |
#: app/features/occurrences.php:492 app/features/occurrences.php:501
|
1192 |
#: app/features/organizers.php:58 app/features/organizers.php:208
|
1193 |
#: app/features/organizers.php:277 app/features/organizers.php:279
|
1194 |
-
#: app/features/organizers.php:288 app/features/popup/event.php:
|
1195 |
-
#: app/features/popup/event.php:
|
1196 |
#: app/features/popup/settings.php:263 app/features/search.php:103
|
1197 |
-
#: app/libraries/main.php:
|
1198 |
#: app/libraries/search.php:314 app/libraries/skins.php:1210
|
1199 |
#: app/skins/single.php:1381 app/skins/single/default.php:327
|
1200 |
#: app/skins/single/m1.php:123 app/skins/single/m2.php:43
|
@@ -1235,9 +1235,9 @@ msgid "How to set register button"
|
|
1235 |
msgstr "Registrační tlačítko"
|
1236 |
|
1237 |
#: app/core/src/SingleBuilder/Widgets/EventRegisterButton/EventRegisterButton.php:48
|
1238 |
-
#: app/libraries/main.php:
|
1239 |
#: app/skins/available_spot/tpl.php:204 app/skins/carousel/render.php:105
|
1240 |
-
#: app/skins/carousel/render.php:
|
1241 |
#: app/skins/grid/render.php:153 app/skins/grid/render.php:214
|
1242 |
#: app/skins/grid/render.php:237 app/skins/list/render.php:90
|
1243 |
#: app/skins/list/render.php:210 app/skins/masonry/render.php:151
|
@@ -1314,8 +1314,8 @@ msgstr "Čas"
|
|
1314 |
|
1315 |
#: app/core/src/SingleBuilder/Widgets/EventTime/EventTime.php:49
|
1316 |
#: app/features/booking/calendar_novel.php:145
|
1317 |
-
#: app/features/search_bar/search_result.php:12 app/libraries/main.php:
|
1318 |
-
#: app/libraries/main.php:
|
1319 |
#: app/libraries/render.php:554 app/libraries/render.php:759
|
1320 |
#: app/libraries/render.php:983 app/libraries/render.php:1010
|
1321 |
#: app/libraries/skins.php:967 app/libraries/skins.php:972
|
@@ -1363,6 +1363,18 @@ msgstr ""
|
|
1363 |
msgid "%s notification(s) sent."
|
1364 |
msgstr "Upozornění"
|
1365 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1366 |
#: app/features/autoemails.php:61 app/features/mec.php:542
|
1367 |
#, fuzzy
|
1368 |
#| msgid "Email"
|
@@ -1451,11 +1463,11 @@ msgstr "Výchozí hodnota je prázdná"
|
|
1451 |
msgid "Go to events page"
|
1452 |
msgstr "Zobrazit Mapy Google na stránce události"
|
1453 |
|
1454 |
-
#: app/features/cart/cart.php:43 app/features/events.php:
|
1455 |
#: app/features/fes.php:280 app/features/mec/booking.php:355
|
1456 |
-
#: app/features/wc.php:91 app/libraries/main.php:
|
1457 |
-
#: app/libraries/main.php:
|
1458 |
-
#: app/libraries/main.php:
|
1459 |
msgid "Transaction ID"
|
1460 |
msgstr "ID transakce"
|
1461 |
|
@@ -1472,12 +1484,12 @@ msgstr "Událost"
|
|
1472 |
|
1473 |
#: app/features/cart/cart.php:45 app/features/events.php:1558
|
1474 |
#: app/features/events.php:1924 app/libraries/book.php:172
|
1475 |
-
#: app/libraries/main.php:
|
1476 |
-
#: app/modules/booking/steps/tickets.php:
|
1477 |
msgid "Tickets"
|
1478 |
msgstr "Vstupenky"
|
1479 |
|
1480 |
-
#: app/features/cart/cart.php:46 app/modules/booking/steps/tickets.php:
|
1481 |
msgid "Dates"
|
1482 |
msgstr "Data"
|
1483 |
|
@@ -1493,8 +1505,8 @@ msgstr "Povoleno"
|
|
1493 |
msgid "Applied Coupon"
|
1494 |
msgstr "Aplikovat kupon"
|
1495 |
|
1496 |
-
#: app/features/cart/cart.php:77 app/libraries/main.php:
|
1497 |
-
#: app/libraries/main.php:
|
1498 |
#, fuzzy
|
1499 |
#| msgid "Coupons"
|
1500 |
msgid "Coupon Code"
|
@@ -1518,12 +1530,12 @@ msgstr "Zdarma"
|
|
1518 |
|
1519 |
#: app/features/cart/checkout.php:96 app/features/contextual.php:308
|
1520 |
#: app/features/events.php:397 app/features/mec/booking.php:92
|
1521 |
-
#: app/features/mec/notifications.php:45 app/features/mec/support-page.php:
|
1522 |
-
#: app/features/mec/support-page.php:
|
1523 |
#: app/libraries/main.php:683 app/libraries/main.php:687
|
1524 |
#: app/libraries/main.php:712 app/libraries/main.php:830
|
1525 |
-
#: app/libraries/main.php:
|
1526 |
-
#: app/libraries/main.php:
|
1527 |
msgid "Booking"
|
1528 |
msgstr "Rezervace"
|
1529 |
|
@@ -1534,7 +1546,7 @@ msgid "Back to Cart"
|
|
1534 |
msgstr "← Zpět na %s"
|
1535 |
|
1536 |
#: app/features/colors.php:50 app/features/fes/form.php:1024
|
1537 |
-
#: app/features/mec/settings.php:
|
1538 |
msgid "Event Color"
|
1539 |
msgstr "Barva události"
|
1540 |
|
@@ -1545,8 +1557,8 @@ msgid "Recent Colors"
|
|
1545 |
msgstr "Barva události"
|
1546 |
|
1547 |
#: app/features/contextual.php:55 app/features/mec.php:546
|
1548 |
-
#: app/features/mec/dashboard.php:
|
1549 |
-
#: app/features/mec/wizard.php:534 app/features/popup/event.php:
|
1550 |
#: app/features/popup/settings.php:30 app/features/popup/shortcode.php:39
|
1551 |
#: app/libraries/main.php:738
|
1552 |
msgid "Settings"
|
@@ -1554,7 +1566,7 @@ msgstr "Nastavení"
|
|
1554 |
|
1555 |
#: app/features/contextual.php:62 app/features/events.php:1565
|
1556 |
#: app/features/events.php:2655 app/features/mec/booking.php:760
|
1557 |
-
#: app/features/mec/booking.php:1036 app/features/mec/settings.php:
|
1558 |
#: app/features/mec/support.php:29
|
1559 |
msgid "Booking Form"
|
1560 |
msgstr "Rezervační formulář"
|
@@ -1583,7 +1595,7 @@ msgstr ""
|
|
1583 |
"iframe>"
|
1584 |
|
1585 |
#: app/features/contextual.php:70 app/features/events.php:1573
|
1586 |
-
#: app/features/mec/booking.php:972 app/features/mec/support-page.php:
|
1587 |
#: app/features/mec/support.php:36 app/libraries/main.php:690
|
1588 |
msgid "Payment Gateways"
|
1589 |
msgstr "Platební brány"
|
@@ -1599,7 +1611,7 @@ msgstr ""
|
|
1599 |
"allowfullscreen></iframe>"
|
1600 |
|
1601 |
#: app/features/contextual.php:77 app/features/events.php:434
|
1602 |
-
#: app/features/mec/support-page.php:
|
1603 |
#: app/libraries/main.php:916
|
1604 |
msgid "Notifications"
|
1605 |
msgstr "Upozornění"
|
@@ -1685,11 +1697,11 @@ msgstr ""
|
|
1685 |
"height=\"420\" src=\"https://www.youtube.com/embed/dqgt1b8X8hs\" frameborder="
|
1686 |
"\"0\" allowfullscreen></iframe>"
|
1687 |
|
1688 |
-
#: app/features/contextual.php:117 app/features/mec/support-page.php:
|
1689 |
msgid "General Options"
|
1690 |
msgstr "Obecné možnosti"
|
1691 |
|
1692 |
-
#: app/features/contextual.php:139 app/features/mec/settings.php:
|
1693 |
#: app/libraries/main.php:645
|
1694 |
msgid "Slugs/Permalinks"
|
1695 |
msgstr "Název v URL / Trvalé odkazy"
|
@@ -1703,7 +1715,7 @@ msgstr "Podrobnosti o události / Stránka jedné události"
|
|
1703 |
msgid "Currency Options"
|
1704 |
msgstr "Možnosti Měna"
|
1705 |
|
1706 |
-
#: app/features/contextual.php:182 app/features/mec/support-page.php:
|
1707 |
msgid "Google Maps Options"
|
1708 |
msgstr "Možnosti Google Maps"
|
1709 |
|
@@ -1724,8 +1736,8 @@ msgstr "Sociální sítě"
|
|
1724 |
msgid "Next Event Module"
|
1725 |
msgstr "Modul Další události"
|
1726 |
|
1727 |
-
#: app/features/contextual.php:286 app/features/mec/settings.php:
|
1728 |
-
#: app/features/mec/support-page.php:
|
1729 |
msgid "Frontend Event Submission"
|
1730 |
msgstr "Předání události frontendu"
|
1731 |
|
@@ -1743,7 +1755,7 @@ msgstr "Kupóny"
|
|
1743 |
msgid "BuddyPress Integration"
|
1744 |
msgstr "Integrace BuddyPress"
|
1745 |
|
1746 |
-
#: app/features/contextual.php:334 app/features/mec/settings.php:
|
1747 |
msgid "Mailchimp Integration"
|
1748 |
msgstr "Integrace Mailchimp"
|
1749 |
|
@@ -1752,7 +1764,7 @@ msgid "MEC Activation"
|
|
1752 |
msgstr "Aktivace MEC"
|
1753 |
|
1754 |
#: app/features/dlfile.php:138 app/features/events.php:1570
|
1755 |
-
#: app/features/mec/booking.php:465 app/features/mec/settings.php:
|
1756 |
#, fuzzy
|
1757 |
#| msgid "Download ICS file"
|
1758 |
msgid "Downloadable File"
|
@@ -1795,7 +1807,7 @@ msgid "Public File to Download"
|
|
1795 |
msgstr ""
|
1796 |
|
1797 |
#: app/features/dlfile.php:297 app/features/events.php:3874
|
1798 |
-
#: app/features/events.php:4183 app/features/events.php:
|
1799 |
#: app/features/fes/form.php:262 app/features/mec/booking.php:690
|
1800 |
#: app/features/mec/booking.php:722 app/features/mec/styling.php:134
|
1801 |
#: app/libraries/hourlyschedule.php:49 app/libraries/hourlyschedule.php:65
|
@@ -1863,8 +1875,8 @@ msgid "event occurrence."
|
|
1863 |
msgstr "Další výskyt"
|
1864 |
|
1865 |
#: app/features/emails/details.php:40 app/features/events.php:192
|
1866 |
-
#: app/features/ix/export.php:37 app/features/mec/dashboard.php:
|
1867 |
-
#: app/libraries/main.php:
|
1868 |
#: app/skins/daily_view/tpl.php:84 app/skins/monthly_view/calendar_clean.php:46
|
1869 |
#: app/skins/monthly_view/tpl.php:76 app/skins/tile/tpl.php:85
|
1870 |
#: app/skins/yearly_view/tpl.php:73
|
@@ -1884,7 +1896,7 @@ msgstr ""
|
|
1884 |
msgid "Add Event"
|
1885 |
msgstr "Přidat událost"
|
1886 |
|
1887 |
-
#: app/features/events.php:195 app/features/mec/dashboard.php:
|
1888 |
msgid "Add New Event"
|
1889 |
msgstr "Přidat novou událost"
|
1890 |
|
@@ -1899,7 +1911,7 @@ msgid "Edit Event"
|
|
1899 |
msgstr "Editace události"
|
1900 |
|
1901 |
#: app/features/events.php:199 app/features/fes/list.php:100
|
1902 |
-
#: app/features/popup/event.php:
|
1903 |
msgid "View Event"
|
1904 |
msgstr "Zobrazit událost"
|
1905 |
|
@@ -1910,8 +1922,8 @@ msgstr "V koši nebyly nalezeny žádné události!"
|
|
1910 |
#: app/features/events.php:219 app/features/events.php:3831
|
1911 |
#: app/features/events.php:4198 app/features/fes/form.php:974
|
1912 |
#: app/features/mec.php:524 app/features/mec/meta_boxes/filter.php:69
|
1913 |
-
#: app/features/mec/meta_boxes/filter.php:81 app/libraries/main.php:
|
1914 |
-
#: app/libraries/main.php:
|
1915 |
msgid "Categories"
|
1916 |
msgstr "Kategorie"
|
1917 |
|
@@ -2029,7 +2041,7 @@ msgstr "Opakování události"
|
|
2029 |
msgid "Event Data"
|
2030 |
msgstr "Zobrazit událost"
|
2031 |
|
2032 |
-
#: app/features/events.php:428 app/features/mec/settings.php:
|
2033 |
#: app/libraries/hourlyschedule.php:36 app/skins/single.php:1565
|
2034 |
msgid "Hourly Schedule"
|
2035 |
msgstr "Hodinový rozvrh"
|
@@ -2065,10 +2077,10 @@ msgid "Guest Data"
|
|
2065 |
msgstr "Údaje hosta"
|
2066 |
|
2067 |
#: app/features/events.php:605 app/features/events.php:2641
|
2068 |
-
#: app/features/events.php:
|
2069 |
#: app/features/fes/form.php:816 app/features/labels.php:184
|
2070 |
#: app/features/mec/booking.php:49 app/features/organizers.php:296
|
2071 |
-
#: app/features/popup/event.php:
|
2072 |
#: app/libraries/notifications.php:2090 app/modules/booking/steps/form.php:60
|
2073 |
msgid "Name"
|
2074 |
msgstr "Jméno"
|
@@ -2103,7 +2115,7 @@ msgstr "Datum a čas"
|
|
2103 |
#: app/features/mec/meta_boxes/display_options.php:2347
|
2104 |
#: app/features/mec/meta_boxes/display_options.php:2478
|
2105 |
#: app/features/mec/meta_boxes/display_options.php:2584
|
2106 |
-
#: app/features/popup/event.php:
|
2107 |
msgid "Start Date"
|
2108 |
msgstr "Počátečná den"
|
2109 |
|
@@ -2118,12 +2130,12 @@ msgstr "Počátečná den"
|
|
2118 |
#: app/features/mec/meta_boxes/display_options.php:788
|
2119 |
#: app/features/mec/meta_boxes/display_options.php:1618
|
2120 |
#: app/features/mec/meta_boxes/display_options.php:2363
|
2121 |
-
#: app/features/popup/event.php:
|
2122 |
msgid "End Date"
|
2123 |
msgstr "Konečný den"
|
2124 |
|
2125 |
#: app/features/events.php:669 app/features/fes/form.php:326
|
2126 |
-
#: app/features/popup/event.php:
|
2127 |
#, fuzzy
|
2128 |
#| msgid "All Day Event"
|
2129 |
msgid "All-day Event"
|
@@ -2173,7 +2185,7 @@ msgstr "Zdědí z globálních možností"
|
|
2173 |
|
2174 |
#: app/features/events.php:725 app/features/events.php:728
|
2175 |
#: app/features/fes/form.php:358 app/features/fes/form.php:361
|
2176 |
-
#: app/features/mec/settings.php:
|
2177 |
#, fuzzy
|
2178 |
#| msgid "Countdown View"
|
2179 |
msgid "Countdown Method"
|
@@ -2197,7 +2209,7 @@ msgid "Visibility"
|
|
2197 |
msgstr "Viditelnost"
|
2198 |
|
2199 |
#: app/features/events.php:740 app/features/fes/form.php:374
|
2200 |
-
#: app/features/mec/settings.php:
|
2201 |
#, fuzzy
|
2202 |
#| msgid "Visibility"
|
2203 |
msgid "Event Visibility"
|
@@ -2420,9 +2432,9 @@ msgstr "Další výskyt dalších událostí"
|
|
2420 |
#: app/features/mec/notifications.php:1360
|
2421 |
#: app/features/mec/notifications.php:1511
|
2422 |
#: app/features/mec/notifications.php:1628
|
2423 |
-
#: app/features/mec/notifications.php:1778 app/features/mec/settings.php:
|
2424 |
#: app/features/notifications.php:160 app/features/occurrences.php:511
|
2425 |
-
#: app/libraries/main.php:
|
2426 |
#: app/widgets/single.php:122
|
2427 |
msgid "Event Cost"
|
2428 |
msgstr "Cena události"
|
@@ -2434,63 +2446,63 @@ msgid "Show the minimum price based on tickets"
|
|
2434 |
msgstr "Zobrazit britské jednotky počasí"
|
2435 |
|
2436 |
#: app/features/events.php:1300 app/features/fes/form.php:887
|
2437 |
-
#: app/features/mec/settings.php:
|
2438 |
#: app/libraries/main.php:646
|
2439 |
msgid "Currency"
|
2440 |
msgstr "Měna"
|
2441 |
|
2442 |
#: app/features/events.php:1310 app/features/events.php:1315
|
2443 |
#: app/features/fes/form.php:897 app/features/fes/form.php:902
|
2444 |
-
#: app/features/mec/settings.php:
|
2445 |
msgid "Currency Sign"
|
2446 |
msgstr "Symbol měny"
|
2447 |
|
2448 |
#: app/features/events.php:1316 app/features/fes/form.php:903
|
2449 |
-
#: app/features/mec/settings.php:
|
2450 |
msgid "Default value will be \"currency\" if you leave it empty."
|
2451 |
msgstr "Výchozí hodnota bude „měna“, pokud ji necháte prázdnou."
|
2452 |
|
2453 |
#: app/features/events.php:1323 app/features/fes/form.php:910
|
2454 |
-
#: app/features/mec/settings.php:
|
2455 |
msgid "Currency Position"
|
2456 |
msgstr "Pozice měny"
|
2457 |
|
2458 |
#: app/features/events.php:1326 app/features/fes/form.php:913
|
2459 |
-
#: app/features/mec/settings.php:
|
2460 |
#, fuzzy
|
2461 |
#| msgid "Before $10"
|
2462 |
msgid "$10 (Before)"
|
2463 |
msgstr "Před $10"
|
2464 |
|
2465 |
#: app/features/events.php:1327 app/features/fes/form.php:914
|
2466 |
-
#: app/features/mec/settings.php:
|
2467 |
msgid "$ 10 (Before with Space)"
|
2468 |
msgstr ""
|
2469 |
|
2470 |
#: app/features/events.php:1328 app/features/fes/form.php:915
|
2471 |
-
#: app/features/mec/settings.php:
|
2472 |
#, fuzzy
|
2473 |
#| msgid "After"
|
2474 |
msgid "10$ (After)"
|
2475 |
msgstr "Po"
|
2476 |
|
2477 |
#: app/features/events.php:1329 app/features/fes/form.php:916
|
2478 |
-
#: app/features/mec/settings.php:
|
2479 |
msgid "10 $ (After with Space)"
|
2480 |
msgstr ""
|
2481 |
|
2482 |
#: app/features/events.php:1334 app/features/fes/form.php:921
|
2483 |
-
#: app/features/mec/settings.php:
|
2484 |
msgid "Thousand Separator"
|
2485 |
msgstr "Oddělovač tisíců"
|
2486 |
|
2487 |
#: app/features/events.php:1340 app/features/fes/form.php:927
|
2488 |
-
#: app/features/mec/settings.php:
|
2489 |
msgid "Decimal Separator"
|
2490 |
msgstr "Oddělovač desítel"
|
2491 |
|
2492 |
#: app/features/events.php:1350 app/features/fes/form.php:937
|
2493 |
-
#: app/features/mec/settings.php:
|
2494 |
msgid "No decimal"
|
2495 |
msgstr "Bez desetinných míst"
|
2496 |
|
@@ -2517,14 +2529,14 @@ msgid "Day 1"
|
|
2517 |
msgstr "Den 1"
|
2518 |
|
2519 |
#: app/features/events.php:1498 app/features/fes/form.php:831
|
2520 |
-
#: app/features/mec/settings.php:
|
2521 |
msgid "Event Links"
|
2522 |
msgstr "Odkazy na událost"
|
2523 |
|
2524 |
#: app/features/events.php:1501 app/features/events.php:1509
|
2525 |
-
#: app/features/fes/form.php:833 app/features/mec/settings.php:
|
2526 |
-
#: app/features/occurrences.php:523 app/libraries/main.php:
|
2527 |
-
#: app/libraries/main.php:
|
2528 |
msgid "Event Link"
|
2529 |
msgstr "Odkaz na událost"
|
2530 |
|
@@ -2578,12 +2590,12 @@ msgstr ""
|
|
2578 |
"Pokud ji vyplníte, zobrazí se jako volitelný odkaz na stránce s podrobnostmi "
|
2579 |
"o události. Vložte celý odkaz včetně http (s): //"
|
2580 |
|
2581 |
-
#: app/features/events.php:1556 app/features/mec/settings.php:
|
2582 |
msgid "Booking Options"
|
2583 |
msgstr "Možnosti rezervace"
|
2584 |
|
2585 |
#: app/features/events.php:1557 app/features/events.php:1857
|
2586 |
-
#: app/features/mec/settings.php:
|
2587 |
#, fuzzy
|
2588 |
#| msgid "Total user booking limits"
|
2589 |
msgid "Total User Booking Limits"
|
@@ -2594,17 +2606,17 @@ msgid "Fees"
|
|
2594 |
msgstr "Poplatky"
|
2595 |
|
2596 |
#: app/features/events.php:1563 app/features/events.php:2556
|
2597 |
-
#: app/features/mec/settings.php:
|
2598 |
msgid "Ticket Variations / Options"
|
2599 |
msgstr "Varianty vstupenky / možnosti"
|
2600 |
|
2601 |
#: app/features/events.php:1567 app/features/mec/booking.php:1067
|
2602 |
-
#: app/features/mec/support-page.php:
|
2603 |
msgid "Organizer Payment"
|
2604 |
msgstr "Platba organizátora"
|
2605 |
|
2606 |
-
#: app/features/events.php:1575 app/features/
|
2607 |
-
#: app/libraries/main.php:
|
2608 |
msgid "Bookings"
|
2609 |
msgstr "Rezervace"
|
2610 |
|
@@ -2617,8 +2629,8 @@ msgstr "Celkové limity rezervace"
|
|
2617 |
#: app/features/events.php:1653 app/features/events.php:2051
|
2618 |
#: app/features/events.php:2298 app/modules/booking/default.php:117
|
2619 |
#: app/modules/booking/default.php:222
|
2620 |
-
#: app/modules/booking/steps/tickets.php:168
|
2621 |
#: app/modules/booking/steps/tickets.php:174
|
|
|
2622 |
#: app/skins/available_spot/tpl.php:136
|
2623 |
msgid "Unlimited"
|
2624 |
msgstr "Neomezené"
|
@@ -2650,7 +2662,7 @@ msgid "e.g 5"
|
|
2650 |
msgstr ""
|
2651 |
|
2652 |
#: app/features/events.php:1686 app/features/events.php:1700
|
2653 |
-
#: app/features/mec/settings.php:
|
2654 |
#, fuzzy
|
2655 |
#| msgid "Next Occurrence"
|
2656 |
msgid "Book All Occurrences"
|
@@ -2672,7 +2684,7 @@ msgid "Allow multiple bookings by same email on different dates."
|
|
2672 |
msgstr ""
|
2673 |
|
2674 |
#: app/features/events.php:1727 app/features/mec/booking.php:135
|
2675 |
-
#: app/features/mec/settings.php:
|
2676 |
#, fuzzy
|
2677 |
#| msgid "General Options"
|
2678 |
msgid "Interval Options"
|
@@ -2706,7 +2718,7 @@ msgstr ""
|
|
2706 |
msgid "Stop selling tickets after first occurrence."
|
2707 |
msgstr ""
|
2708 |
|
2709 |
-
#: app/features/events.php:1757 app/features/mec/settings.php:
|
2710 |
msgid "Automatic Approval"
|
2711 |
msgstr ""
|
2712 |
|
@@ -2851,7 +2863,7 @@ msgstr "Ověřovací email"
|
|
2851 |
#: app/features/mec/meta_boxes/search_form.php:1115
|
2852 |
#: app/features/mec/meta_boxes/search_form.php:1122
|
2853 |
#: app/features/mec/modules.php:115 app/features/mec/settings.php:98
|
2854 |
-
#: app/features/mec/settings.php:
|
2855 |
msgid "Disabled"
|
2856 |
msgstr "Zakázaný"
|
2857 |
|
@@ -2870,7 +2882,7 @@ msgid "Booking Confirmation"
|
|
2870 |
msgstr "Potvrzení rezervace"
|
2871 |
|
2872 |
#: app/features/events.php:1782 app/features/mec/booking.php:316
|
2873 |
-
#: app/features/mec/settings.php:
|
2874 |
#, fuzzy
|
2875 |
#| msgid "Ticket"
|
2876 |
msgid "Last Few Tickets Percentage"
|
@@ -2883,8 +2895,8 @@ msgstr ""
|
|
2883 |
#: app/features/events.php:1802 app/features/events.php:1819
|
2884 |
#: app/features/events.php:1829 app/features/mec/booking.php:323
|
2885 |
#: app/features/mec/booking.php:325 app/features/mec/booking.php:335
|
2886 |
-
#: app/features/mec/settings.php:
|
2887 |
-
#: app/features/mec/settings.php:
|
2888 |
msgid "Thank You Page"
|
2889 |
msgstr "Stránka s poděkováním"
|
2890 |
|
@@ -2898,17 +2910,17 @@ msgstr ""
|
|
2898 |
|
2899 |
#: app/features/events.php:1837 app/features/events.php:1842
|
2900 |
#: app/features/mec/booking.php:343 app/features/mec/booking.php:348
|
2901 |
-
#: app/features/mec/settings.php:
|
2902 |
msgid "Thank You Page Time Interval"
|
2903 |
msgstr "Stránka s poděkováním časového intervalu"
|
2904 |
|
2905 |
#: app/features/events.php:1839 app/features/mec/booking.php:345
|
2906 |
-
#: app/features/mec/settings.php:
|
2907 |
msgid "2000 mean 2 seconds"
|
2908 |
msgstr "2000 znamená 2 vteřiny"
|
2909 |
|
2910 |
#: app/features/events.php:1843 app/features/mec/booking.php:349
|
2911 |
-
#: app/features/mec/settings.php:
|
2912 |
msgid ""
|
2913 |
"Waiting time before redirecting to thank you page. It's in miliseconds so "
|
2914 |
"2000 means 2 seconds."
|
@@ -2977,7 +2989,7 @@ msgstr "Konec"
|
|
2977 |
|
2978 |
#: app/features/events.php:1994 app/features/events.php:1997
|
2979 |
#: app/features/events.php:2253 app/features/events.php:2256
|
2980 |
-
#: app/features/mec/settings.php:
|
2981 |
#, fuzzy
|
2982 |
#| msgid "Description"
|
2983 |
msgid "Private Description"
|
@@ -2993,7 +3005,7 @@ msgstr ""
|
|
2993 |
#: app/features/events.php:2007 app/features/events.php:2011
|
2994 |
#: app/features/events.php:2109 app/features/events.php:2136
|
2995 |
#: app/features/events.php:2265 app/features/events.php:2268
|
2996 |
-
#: app/features/events.php:2349 app/features/events.php:
|
2997 |
#: app/features/mec/booking.php:694 app/features/mec/booking.php:697
|
2998 |
#: app/features/mec/booking.php:726 app/features/mec/booking.php:729
|
2999 |
#: app/libraries/ticketVariations.php:43 app/libraries/ticketVariations.php:46
|
@@ -3077,7 +3089,7 @@ msgstr "Cena za datum"
|
|
3077 |
#: app/features/mec/meta_boxes/search_form.php:881
|
3078 |
#: app/features/mec/meta_boxes/search_form.php:1004
|
3079 |
#: app/features/mec/meta_boxes/search_form.php:1091
|
3080 |
-
#: app/features/mec/settings.php:
|
3081 |
#: app/features/mec/single.php:482 app/features/mec/single.php:535
|
3082 |
#: app/features/popup/settings.php:238 app/features/popup/settings.php:277
|
3083 |
#: app/features/search.php:121 app/libraries/search.php:374
|
@@ -3168,9 +3180,9 @@ msgstr "Limit účastníků"
|
|
3168 |
msgid "Fixed Fields"
|
3169 |
msgstr "Požadovaná pole"
|
3170 |
|
3171 |
-
#: app/features/events.php:2887 app/features/events.php:
|
3172 |
-
#: app/features/mec/settings.php:
|
3173 |
-
#: app/libraries/main.php:
|
3174 |
msgid "Attendees"
|
3175 |
msgstr "Účastníci"
|
3176 |
|
@@ -3195,12 +3207,12 @@ msgid "Next Occurrences"
|
|
3195 |
msgstr "Další výskyt"
|
3196 |
|
3197 |
#: app/features/events.php:3756 app/features/mec/meta_boxes/filter.php:199
|
3198 |
-
#: app/features/mec/settings.php:
|
3199 |
msgid "Expired Events"
|
3200 |
msgstr "Události vypršely"
|
3201 |
|
3202 |
#: app/features/events.php:3757 app/features/mec.php:1374
|
3203 |
-
#: app/features/mec/dashboard.php:
|
3204 |
msgid "Upcoming Events"
|
3205 |
msgstr "Nadcházející události"
|
3206 |
|
@@ -3261,7 +3273,7 @@ msgid "JSON Export"
|
|
3261 |
msgstr "JSON Export"
|
3262 |
|
3263 |
#: app/features/events.php:4068 app/features/events.php:4069
|
3264 |
-
#: app/features/events.php:
|
3265 |
msgid "Duplicate"
|
3266 |
msgstr "Duplikát"
|
3267 |
|
@@ -3299,7 +3311,7 @@ msgstr "%s Email"
|
|
3299 |
|
3300 |
# v kontextu
|
3301 |
#: app/features/events.php:4196 app/features/fes/form.php:953
|
3302 |
-
#: app/features/mec/settings.php:
|
3303 |
msgid "Featured Image"
|
3304 |
msgstr "Hlavní obrázek"
|
3305 |
|
@@ -3311,49 +3323,49 @@ msgstr "Tagy"
|
|
3311 |
|
3312 |
#: app/features/events.php:4203 app/features/fes/form.php:1068
|
3313 |
#: app/features/mec.php:532 app/features/mec/modules.php:34
|
3314 |
-
#: app/features/mec/modules.php:43 app/features/mec/settings.php:
|
3315 |
#: app/features/popup/settings.php:299 app/features/speakers.php:67
|
3316 |
#: app/libraries/hourlyschedule.php:77 app/libraries/hourlyschedule.php:105
|
3317 |
#: app/libraries/hourlyschedule.php:157 app/libraries/main.php:694
|
3318 |
-
#: app/libraries/main.php:
|
3319 |
#: app/modules/speakers/details.php:18
|
3320 |
msgid "Speakers"
|
3321 |
msgstr "Řečníci"
|
3322 |
|
3323 |
-
#: app/features/events.php:
|
3324 |
#: app/features/profile/profile.php:209 app/libraries/cart.php:64
|
3325 |
-
#: app/libraries/main.php:
|
3326 |
-
#: app/libraries/main.php:
|
3327 |
msgid "Ticket"
|
3328 |
msgstr "Vstupenka"
|
3329 |
|
3330 |
-
#: app/features/events.php:
|
3331 |
msgid "Variations"
|
3332 |
msgstr "Variace"
|
3333 |
|
3334 |
-
#: app/features/events.php:
|
3335 |
msgid "Unknown"
|
3336 |
msgstr "Neznámý"
|
3337 |
|
3338 |
-
#: app/features/events.php:
|
3339 |
msgid ""
|
3340 |
"If you want to send an email, first select your attendees and then click in "
|
3341 |
"the button below, please."
|
3342 |
msgstr ""
|
3343 |
|
3344 |
-
#: app/features/events.php:
|
3345 |
#, fuzzy
|
3346 |
#| msgid "Organizer Email"
|
3347 |
msgid "Send Email"
|
3348 |
msgstr "Organizátor Email"
|
3349 |
|
3350 |
-
#: app/features/events.php:
|
3351 |
#, fuzzy
|
3352 |
#| msgid "Attendees Form"
|
3353 |
msgid "No Attendees Found!"
|
3354 |
msgstr "Formulář účastníků"
|
3355 |
|
3356 |
-
#: app/features/events.php:
|
3357 |
#, fuzzy
|
3358 |
#| msgid "No bookings found!"
|
3359 |
msgid "No Bookings Found!"
|
@@ -3417,8 +3429,8 @@ msgstr "Konec"
|
|
3417 |
msgid "Total Price"
|
3418 |
msgstr "Celková cena"
|
3419 |
|
3420 |
-
#: app/features/fes.php:280 app/libraries/main.php:
|
3421 |
-
#: app/libraries/main.php:
|
3422 |
#, fuzzy
|
3423 |
#| msgid "Payment Gateways"
|
3424 |
msgid "Gateway"
|
@@ -3506,8 +3518,8 @@ msgstr "Událost byla publikována."
|
|
3506 |
msgid "Go back to events list"
|
3507 |
msgstr "Přejít zpět na seznam událostí"
|
3508 |
|
3509 |
-
#: app/features/fes/form.php:270 app/features/mec/settings.php:
|
3510 |
-
#: app/features/mec/settings.php:
|
3511 |
msgid "Excerpt"
|
3512 |
msgstr ""
|
3513 |
|
@@ -3586,7 +3598,7 @@ msgid "eg. yourname@gmail.com"
|
|
3586 |
msgstr "např. vasejmeno@gmail.com"
|
3587 |
|
3588 |
#: app/features/fes/form.php:817 app/features/organizers.php:297
|
3589 |
-
#: app/features/popup/event.php:
|
3590 |
msgid "eg. John Smith"
|
3591 |
msgstr "např. Jan Novák"
|
3592 |
|
@@ -3620,23 +3632,23 @@ msgstr "Jméno řečníka"
|
|
3620 |
msgid "Separate names with commas: Justin, Chris"
|
3621 |
msgstr "Oddělte jména čárkami - Novák Petr, Pavel"
|
3622 |
|
3623 |
-
#: app/features/fes/form.php:
|
3624 |
#, fuzzy, php-format
|
3625 |
#| msgid "Please %s/%s in order to submit new events."
|
3626 |
msgid "I accept the %s in order to submit an event."
|
3627 |
msgstr "Prosím %s/%s za účelem odeslání nových událostí."
|
3628 |
|
3629 |
-
#: app/features/fes/form.php:
|
3630 |
msgid "Privacy Policy"
|
3631 |
msgstr ""
|
3632 |
|
3633 |
-
#: app/features/fes/form.php:
|
3634 |
#, fuzzy
|
3635 |
#| msgid "Please %s/%s in order to submit new events."
|
3636 |
msgid "I accept the Privacy Policy in order to submit an event."
|
3637 |
msgstr "Prosím %s/%s za účelem odeslání nových událostí."
|
3638 |
|
3639 |
-
#: app/features/fes/form.php:
|
3640 |
#, fuzzy
|
3641 |
#| msgid "Edit Event"
|
3642 |
msgid "Submit Event"
|
@@ -3766,7 +3778,7 @@ msgid "All seems good! Please click %s to authenticate your app."
|
|
3766 |
msgstr "Vše vypadá dobře! Klikněte na % s pro ověření vaší aplikace."
|
3767 |
|
3768 |
#: app/features/ix.php:4326 app/features/mec/integrations.php:256
|
3769 |
-
#: app/features/mec/settings.php:
|
3770 |
msgid "here"
|
3771 |
msgstr ""
|
3772 |
|
@@ -4027,7 +4039,7 @@ msgstr "Přidat do Google kalendáře"
|
|
4027 |
|
4028 |
#: app/features/ix/export_g_calendar.php:100 app/features/mec/booking.php:1262
|
4029 |
#: app/features/mec/integrations.php:451 app/features/mec/modules.php:408
|
4030 |
-
#: app/features/mec/notifications.php:1924 app/features/mec/settings.php:
|
4031 |
#: app/features/mec/single.php:604
|
4032 |
msgid "Checking ..."
|
4033 |
msgstr "Ověřování ..."
|
@@ -4144,7 +4156,7 @@ msgstr "Import z Facebook kalendáře"
|
|
4144 |
msgid "Import all of your Facebook events into MEC."
|
4145 |
msgstr "Importujte všechny své události na Facebooku do MEC."
|
4146 |
|
4147 |
-
#: app/features/ix/import_f_calendar.php:27 app/features/mec/dashboard.php:
|
4148 |
#: app/features/mec/support-page.php:11 app/features/mec/support.php:100
|
4149 |
msgid "Documentation"
|
4150 |
msgstr "Dokumentace"
|
@@ -4522,7 +4534,7 @@ msgstr "Vybrané a zrušené události můžete zobrazit jiným stylem!"
|
|
4522 |
|
4523 |
#: app/features/labels.php:186 app/features/locations.php:269
|
4524 |
#: app/features/organizers.php:210 app/features/speakers.php:295
|
4525 |
-
#: app/modules/booking/steps/tickets.php:
|
4526 |
msgid "Count"
|
4527 |
msgstr "Spočítat"
|
4528 |
|
@@ -4538,9 +4550,9 @@ msgid "Event %s"
|
|
4538 |
msgstr "Událost %s"
|
4539 |
|
4540 |
#: app/features/locations.php:59 app/features/mec.php:526
|
4541 |
-
#: app/features/mec/dashboard.php:
|
4542 |
-
#: app/features/mec/meta_boxes/filter.php:99 app/libraries/main.php:
|
4543 |
-
#: app/libraries/main.php:
|
4544 |
msgid "Locations"
|
4545 |
msgstr "Umístění"
|
4546 |
|
@@ -4549,7 +4561,7 @@ msgid "Enter the location address"
|
|
4549 |
msgstr "Vložit adresu místa"
|
4550 |
|
4551 |
#: app/features/locations.php:131 app/features/locations.php:197
|
4552 |
-
#: app/features/locations.php:374 app/features/popup/event.php:
|
4553 |
msgid "Latitude"
|
4554 |
msgstr "Zeměpisná šířka"
|
4555 |
|
@@ -4560,7 +4572,7 @@ msgid "Geo latitude (Optional for Lite)"
|
|
4560 |
msgstr "Zeměpisná šířka (volitelné)"
|
4561 |
|
4562 |
#: app/features/locations.php:139 app/features/locations.php:201
|
4563 |
-
#: app/features/locations.php:375 app/features/popup/event.php:
|
4564 |
msgid "Longitude"
|
4565 |
msgstr "Zeměpisná délka"
|
4566 |
|
@@ -4596,11 +4608,11 @@ msgid "Event Main %s"
|
|
4596 |
msgstr "Hlavní událost %s"
|
4597 |
|
4598 |
#: app/features/locations.php:332 app/features/occurrences.php:464
|
4599 |
-
#: app/features/popup/event.php:
|
4600 |
msgid "Hide location"
|
4601 |
msgstr "Skrýt místo"
|
4602 |
|
4603 |
-
#: app/features/locations.php:333 app/features/popup/event.php:
|
4604 |
msgid "Insert a new location"
|
4605 |
msgstr "Vložit nové místo"
|
4606 |
|
@@ -4608,28 +4620,28 @@ msgstr "Vložit nové místo"
|
|
4608 |
msgid "Choose one of saved locations or insert new one below."
|
4609 |
msgstr "Vyberte jedno z uložených míst nebo vložte nové."
|
4610 |
|
4611 |
-
#: app/features/locations.php:348 app/features/popup/event.php:
|
4612 |
msgid "Location Name"
|
4613 |
msgstr "Název místa"
|
4614 |
|
4615 |
-
#: app/features/locations.php:349 app/features/popup/event.php:
|
4616 |
msgid "eg. City Hall"
|
4617 |
msgstr "např. Radnice"
|
4618 |
|
4619 |
-
#: app/features/locations.php:352 app/features/mec/settings.php:
|
4620 |
-
#: app/features/popup/event.php:
|
4621 |
msgid "Event Location"
|
4622 |
msgstr "Místo události"
|
4623 |
|
4624 |
-
#: app/features/locations.php:353 app/features/popup/event.php:
|
4625 |
msgid "eg. City hall, Manhattan, New York"
|
4626 |
msgstr "např. Radnice, Dominikánská 2, Brno"
|
4627 |
|
4628 |
-
#: app/features/locations.php:378 app/features/popup/event.php:
|
4629 |
msgid "Latitude/Longitude"
|
4630 |
msgstr "Zeměpisná šířka / délka"
|
4631 |
|
4632 |
-
#: app/features/locations.php:379 app/features/popup/event.php:
|
4633 |
msgid ""
|
4634 |
"If you leave the latitude and longitude empty, Modern Events Calendar tries "
|
4635 |
"to convert the location address to geopoint, Latitude and Longitude are the "
|
@@ -4643,22 +4655,22 @@ msgstr ""
|
|
4643 |
"místo, použijte název místa, města, státu nebo adresy nebo klikněte na místo "
|
4644 |
"na mapě a vyhledejte souřadnice délky a šířky."
|
4645 |
|
4646 |
-
#: app/features/locations.php:379 app/features/popup/event.php:
|
4647 |
msgid "Get Latitude and Longitude"
|
4648 |
msgstr "Získejte šířku a délku"
|
4649 |
|
4650 |
#: app/features/locations.php:392 app/features/organizers.php:315
|
4651 |
-
#: app/features/popup/event.php:
|
4652 |
msgid "Choose image"
|
4653 |
msgstr "Vyberte obrázek"
|
4654 |
|
4655 |
#: app/features/locations.php:407 app/features/occurrences.php:482
|
4656 |
-
#: app/features/popup/event.php:
|
4657 |
msgid "Don't show map in single event page"
|
4658 |
msgstr "Nezobrazovat mapu na jednostránkové události"
|
4659 |
|
4660 |
-
#: app/features/locations.php:411 app/libraries/main.php:
|
4661 |
-
#: app/libraries/main.php:
|
4662 |
msgid "Other Locations"
|
4663 |
msgstr "Další místa"
|
4664 |
|
@@ -4679,7 +4691,7 @@ msgstr "<strong>"
|
|
4679 |
msgid "Login successful, redirecting..."
|
4680 |
msgstr ""
|
4681 |
|
4682 |
-
#: app/features/login/login.php:11 app/modules/booking/steps/form.php:
|
4683 |
msgid "Password"
|
4684 |
msgstr ""
|
4685 |
|
@@ -4700,7 +4712,7 @@ msgstr ""
|
|
4700 |
"<br> <b> Poznámka: Váš nákupní kód by se měl shodovat s vaším typem licence. "
|
4701 |
"</b>"
|
4702 |
|
4703 |
-
#: app/features/mec.php:227 app/features/mec/support-page.php:
|
4704 |
msgid "Troubleshooting"
|
4705 |
msgstr "Odstraňování problémů"
|
4706 |
|
@@ -4743,15 +4755,15 @@ msgstr "MEC - podpora"
|
|
4743 |
msgid "Support"
|
4744 |
msgstr "Podpora"
|
4745 |
|
4746 |
-
#: app/features/mec.php:527 app/features/mec/dashboard.php:
|
4747 |
#: app/features/mec/meta_boxes/filter.php:71
|
4748 |
#: app/features/mec/meta_boxes/filter.php:117 app/features/organizers.php:59
|
4749 |
-
#: app/libraries/main.php:
|
4750 |
msgid "Organizers"
|
4751 |
msgstr "Organizátoři"
|
4752 |
|
4753 |
#: app/features/mec.php:536 app/features/mec.php:596
|
4754 |
-
#: app/features/mec/dashboard.php:
|
4755 |
msgid "Shortcodes"
|
4756 |
msgstr "Zkrácené kódy"
|
4757 |
|
@@ -4893,7 +4905,7 @@ msgstr "Vícedenní událost"
|
|
4893 |
msgid "Total Bookings"
|
4894 |
msgstr "Celkový počet rezervací"
|
4895 |
|
4896 |
-
#: app/features/mec.php:1365 app/features/mec/dashboard.php:
|
4897 |
msgid "Modern Events Calendar (Lite)"
|
4898 |
msgstr "Modern Events Calendar (Lite)"
|
4899 |
|
@@ -4967,17 +4979,17 @@ msgstr "Zahrnout uplynulé události"
|
|
4967 |
msgid "Include Modern Events Calendar Assets (CSS, JavaScript, etc files.)"
|
4968 |
msgstr ""
|
4969 |
|
4970 |
-
#: app/features/mec/addons.php:16 app/features/mec/addons.php:
|
4971 |
-
#: app/features/mec/dashboard.php:
|
4972 |
#: app/features/mec/report.php:21 app/features/mec/support-page.php:21
|
4973 |
msgid "Version"
|
4974 |
msgstr "Verze"
|
4975 |
|
4976 |
-
#: app/features/mec/addons.php:
|
4977 |
msgid "Coming Soon"
|
4978 |
msgstr "Již brzy"
|
4979 |
|
4980 |
-
#: app/features/mec/addons.php:
|
4981 |
msgid ""
|
4982 |
"<strong>\"file_get_contents\"</strong> and <strong>\"Curl\"</strong> "
|
4983 |
"functions are <strong>not activated</strong> on your server. Please contact "
|
@@ -5010,8 +5022,8 @@ msgstr "Vyhledávání ..."
|
|
5010 |
#: app/features/mec/notifications.php:1860
|
5011 |
#: app/features/mec/notifications.php:1942
|
5012 |
#: app/features/mec/notifications.php:1956 app/features/mec/settings.php:35
|
5013 |
-
#: app/features/mec/settings.php:
|
5014 |
-
#: app/features/mec/settings.php:
|
5015 |
#: app/features/mec/single.php:25 app/features/mec/single.php:569
|
5016 |
#: app/features/mec/single.php:579 app/features/mec/single.php:621
|
5017 |
#: app/features/mec/single.php:635 app/features/mec/styles.php:11
|
@@ -5167,7 +5179,7 @@ msgstr "Registrační tlačítko"
|
|
5167 |
|
5168 |
#: app/features/mec/booking.php:210 app/features/mec/booking.php:218
|
5169 |
#: app/features/popup/settings.php:354 app/features/popup/settings.php:362
|
5170 |
-
#: app/modules/booking/steps/form.php:
|
5171 |
#, fuzzy
|
5172 |
#| msgid "Register Button"
|
5173 |
msgid "Registration"
|
@@ -5749,7 +5761,7 @@ msgid "Cart Page"
|
|
5749 |
msgstr "Počátečná den"
|
5750 |
|
5751 |
#: app/features/mec/booking.php:1141 app/features/mec/booking.php:1153
|
5752 |
-
#: app/features/mec/settings.php:
|
5753 |
#, php-format
|
5754 |
msgid "Put %s shortcode into the page."
|
5755 |
msgstr "Vložte %s na stránku zkrácené kódy."
|
@@ -5768,7 +5780,7 @@ msgstr "Povolit fakturu"
|
|
5768 |
|
5769 |
#: app/features/mec/booking.php:1257 app/features/mec/integrations.php:446
|
5770 |
#: app/features/mec/messages.php:90 app/features/mec/modules.php:403
|
5771 |
-
#: app/features/mec/notifications.php:1919 app/features/mec/settings.php:
|
5772 |
#: app/features/mec/single.php:599 app/features/mec/styles.php:62
|
5773 |
#: app/features/mec/styling.php:357
|
5774 |
msgid "Saved"
|
@@ -5776,7 +5788,7 @@ msgstr "Uloženo"
|
|
5776 |
|
5777 |
#: app/features/mec/booking.php:1258 app/features/mec/integrations.php:447
|
5778 |
#: app/features/mec/messages.php:91 app/features/mec/modules.php:404
|
5779 |
-
#: app/features/mec/notifications.php:1920 app/features/mec/settings.php:
|
5780 |
#: app/features/mec/single.php:600 app/features/mec/styles.php:63
|
5781 |
#: app/features/mec/styling.php:358
|
5782 |
msgid "Settings Saved!"
|
@@ -5784,21 +5796,21 @@ msgstr "Nastavení uložena!"
|
|
5784 |
|
5785 |
#: app/features/mec/booking.php:1284 app/features/mec/integrations.php:473
|
5786 |
#: app/features/mec/modules.php:430 app/features/mec/notifications.php:1947
|
5787 |
-
#: app/features/mec/settings.php:
|
5788 |
msgid "Please Refresh Page"
|
5789 |
msgstr "Prosím obnovte stránku"
|
5790 |
|
5791 |
-
#: app/features/mec/dashboard.php:
|
5792 |
#, php-format
|
5793 |
msgid "Welcome %s"
|
5794 |
msgstr "Vítejte %s"
|
5795 |
|
5796 |
-
#: app/features/mec/dashboard.php:
|
5797 |
#, php-format
|
5798 |
msgid "%s - Most Powerful & Easy to Use Events Management System"
|
5799 |
msgstr "%s - Nejvýkonnější a snadno použitelný systém pro správu událostí"
|
5800 |
|
5801 |
-
#: app/features/mec/dashboard.php:
|
5802 |
#, php-format
|
5803 |
msgid ""
|
5804 |
"You're using %s version of Modern Events Calendar. To use advanced booking "
|
@@ -5809,20 +5821,20 @@ msgstr ""
|
|
5809 |
"pokročilý rezervační systém, moderní vzhledy jako Agenda, Rozvrh, Roční "
|
5810 |
"pohled, Dostupná místa atd., Měli byste upgradovat na verzi Pro."
|
5811 |
|
5812 |
-
#: app/features/mec/dashboard.php:
|
5813 |
msgid "lite"
|
5814 |
msgstr " omezenou"
|
5815 |
|
5816 |
-
#: app/features/mec/dashboard.php:
|
5817 |
#: app/features/mec/support.php:126
|
5818 |
msgid "GO PREMIUM"
|
5819 |
msgstr "PŘEJÍT NA PREMIUM"
|
5820 |
|
5821 |
-
#: app/features/mec/dashboard.php:
|
5822 |
msgid "Getting started with Modern Events Calendar"
|
5823 |
msgstr "Začínáme s Modern Events Calendar"
|
5824 |
|
5825 |
-
#: app/features/mec/dashboard.php:
|
5826 |
msgid ""
|
5827 |
"In this short video, you can learn how to make an event and put a calendar "
|
5828 |
"on your website. Please watch this 2 minutes video to the end."
|
@@ -5830,21 +5842,21 @@ msgstr ""
|
|
5830 |
"V tomto krátkém videu se dozvíte, jak vytvořit událost a umístit kalendář na "
|
5831 |
"svoje stránky. Sledujte prosím toto 2minutové video až do konce."
|
5832 |
|
5833 |
-
#: app/features/mec/dashboard.php:
|
5834 |
#, fuzzy
|
5835 |
#| msgid "MEC Activation"
|
5836 |
msgid "License Activation"
|
5837 |
msgstr "Aktivace MEC"
|
5838 |
|
5839 |
-
#: app/features/mec/dashboard.php:
|
5840 |
msgid "Activate Addons"
|
5841 |
msgstr "Aktivovat doplňky"
|
5842 |
|
5843 |
-
#: app/features/mec/dashboard.php:
|
5844 |
msgid "You cannot access this section."
|
5845 |
msgstr "Nemáte přístup do této části."
|
5846 |
|
5847 |
-
#: app/features/mec/dashboard.php:
|
5848 |
msgid ""
|
5849 |
"In order to use all plugin features and options, please enter your purchase "
|
5850 |
"code."
|
@@ -5852,11 +5864,11 @@ msgstr ""
|
|
5852 |
"Chcete-li využívat všechny funkce a možnosti doplňku, zadejte prosím "
|
5853 |
"zakoupený kód."
|
5854 |
|
5855 |
-
#: app/features/mec/dashboard.php:
|
5856 |
msgid "Popular Gateways"
|
5857 |
msgstr "Oblíbené platební brány"
|
5858 |
|
5859 |
-
#: app/features/mec/dashboard.php:
|
5860 |
msgid "Change Log"
|
5861 |
msgstr "Změna logu"
|
5862 |
|
@@ -5894,48 +5906,48 @@ msgstr "Stáhnout nastavení"
|
|
5894 |
msgid "Mailchimp"
|
5895 |
msgstr "Integrace Mailchimp"
|
5896 |
|
5897 |
-
#: app/features/mec/integrations.php:46 app/features/mec/settings.php:
|
5898 |
msgid "Enable Mailchimp Integration"
|
5899 |
msgstr "Povolit integraci Mailchimp"
|
5900 |
|
5901 |
#: app/features/mec/integrations.php:51 app/features/mec/integrations.php:56
|
5902 |
#: app/features/mec/integrations.php:111 app/features/mec/integrations.php:135
|
5903 |
#: app/features/mec/integrations.php:159 app/features/mec/integrations.php:226
|
5904 |
-
#: app/features/mec/settings.php:
|
5905 |
-
#: app/features/mec/settings.php:
|
5906 |
-
#: app/features/mec/settings.php:
|
5907 |
msgid "API Key"
|
5908 |
msgstr "API Key"
|
5909 |
|
5910 |
#: app/features/mec/integrations.php:57 app/features/mec/integrations.php:70
|
5911 |
-
#: app/features/mec/modules.php:76 app/features/mec/settings.php:
|
5912 |
-
#: app/features/mec/settings.php:
|
5913 |
msgid "Required!"
|
5914 |
msgstr "Požadované!"
|
5915 |
|
5916 |
#: app/features/mec/integrations.php:64 app/features/mec/integrations.php:69
|
5917 |
#: app/features/mec/integrations.php:117 app/features/mec/integrations.php:232
|
5918 |
#: app/features/mec/integrations.php:250 app/features/mec/integrations.php:298
|
5919 |
-
#: app/features/mec/settings.php:
|
5920 |
-
#: app/features/mec/settings.php:
|
5921 |
-
#: app/features/mec/settings.php:
|
5922 |
msgid "List ID"
|
5923 |
msgstr "ID seznamu"
|
5924 |
|
5925 |
#: app/features/mec/integrations.php:77 app/features/mec/integrations.php:85
|
5926 |
-
#: app/features/mec/settings.php:
|
5927 |
msgid "Subscription Status"
|
5928 |
msgstr "Stav odběru"
|
5929 |
|
5930 |
-
#: app/features/mec/integrations.php:80 app/features/mec/settings.php:
|
5931 |
msgid "Subscribe automatically"
|
5932 |
msgstr "Odebírat automaticky"
|
5933 |
|
5934 |
-
#: app/features/mec/integrations.php:81 app/features/mec/settings.php:
|
5935 |
msgid "Subscribe by verification"
|
5936 |
msgstr "Přihlaste se k odběru pomocí ověření"
|
5937 |
|
5938 |
-
#: app/features/mec/integrations.php:86 app/features/mec/settings.php:
|
5939 |
#, fuzzy
|
5940 |
#| msgid ""
|
5941 |
#| "If you choose \"Subscribe by verification\" then an email will send to "
|
@@ -5947,7 +5959,7 @@ msgstr ""
|
|
5947 |
"Pokud zvolíte možnost „Přihlásit se k odběru pomocí ověření“, odešle e-mail "
|
5948 |
"uživateli mailchimp k ověření oběru."
|
5949 |
|
5950 |
-
#: app/features/mec/integrations.php:95 app/features/mec/settings.php:
|
5951 |
msgid "Enable Segment Creation by Event Title and Booking Date"
|
5952 |
msgstr ""
|
5953 |
|
@@ -5957,7 +5969,7 @@ msgstr ""
|
|
5957 |
msgid "Campaign Monitor"
|
5958 |
msgstr "Integrace Mailchimp"
|
5959 |
|
5960 |
-
#: app/features/mec/integrations.php:106 app/features/mec/settings.php:
|
5961 |
#, fuzzy
|
5962 |
#| msgid "Enable Mailchimp Integration"
|
5963 |
msgid "Enable Campaign Monitor Integration"
|
@@ -5969,13 +5981,13 @@ msgstr "Povolit integraci Mailchimp"
|
|
5969 |
msgid "MailerLite"
|
5970 |
msgstr "Integrace Mailchimp"
|
5971 |
|
5972 |
-
#: app/features/mec/integrations.php:130 app/features/mec/settings.php:
|
5973 |
#, fuzzy
|
5974 |
#| msgid "Enable Mailchimp Integration"
|
5975 |
msgid "Enable MailerLite Integration"
|
5976 |
msgstr "Povolit integraci Mailchimp"
|
5977 |
|
5978 |
-
#: app/features/mec/integrations.php:141 app/features/mec/settings.php:
|
5979 |
#, fuzzy
|
5980 |
#| msgid "Group URL"
|
5981 |
msgid "Group ID"
|
@@ -5987,26 +5999,26 @@ msgstr "Group URL"
|
|
5987 |
msgid "Constant Contact"
|
5988 |
msgstr "Povolit integraci Mailchimp"
|
5989 |
|
5990 |
-
#: app/features/mec/integrations.php:154 app/features/mec/settings.php:
|
5991 |
#, fuzzy
|
5992 |
#| msgid "Enable Mailchimp Integration"
|
5993 |
msgid "Enable constantcontact Integration"
|
5994 |
msgstr "Povolit integraci Mailchimp"
|
5995 |
|
5996 |
-
#: app/features/mec/integrations.php:165 app/features/mec/settings.php:
|
5997 |
#, fuzzy
|
5998 |
#| msgid "Facebook Page Access Token"
|
5999 |
msgid "Access Token"
|
6000 |
msgstr "Token pro přístup na stránku Facebook"
|
6001 |
|
6002 |
#: app/features/mec/integrations.php:185 app/features/mec/integrations.php:200
|
6003 |
-
#: app/features/mec/settings.php:
|
6004 |
#, fuzzy
|
6005 |
#| msgid "Select icon"
|
6006 |
msgid "Select List"
|
6007 |
msgstr "Vybrat ikonu"
|
6008 |
|
6009 |
-
#: app/features/mec/integrations.php:201 app/features/mec/settings.php:
|
6010 |
msgid ""
|
6011 |
"Please fill in the API key and Access Token field and save settings. after "
|
6012 |
"that, please refresh the page and select a list."
|
@@ -6018,13 +6030,13 @@ msgstr ""
|
|
6018 |
msgid "Active Campaign"
|
6019 |
msgstr "Integrace Mailchimp"
|
6020 |
|
6021 |
-
#: app/features/mec/integrations.php:215 app/features/mec/settings.php:
|
6022 |
#, fuzzy
|
6023 |
#| msgid "Enable Mailchimp Integration"
|
6024 |
msgid "Enable Active Campaign Integration"
|
6025 |
msgstr "Povolit integraci Mailchimp"
|
6026 |
|
6027 |
-
#: app/features/mec/integrations.php:220 app/features/mec/settings.php:
|
6028 |
msgid "API URL"
|
6029 |
msgstr ""
|
6030 |
|
@@ -6032,19 +6044,19 @@ msgstr ""
|
|
6032 |
msgid "AWeber"
|
6033 |
msgstr ""
|
6034 |
|
6035 |
-
#: app/features/mec/integrations.php:245 app/features/mec/settings.php:
|
6036 |
#, fuzzy
|
6037 |
#| msgid "Enable Mailchimp Integration"
|
6038 |
msgid "Enable AWeber Integration"
|
6039 |
msgstr "Povolit integraci Mailchimp"
|
6040 |
|
6041 |
-
#: app/features/mec/integrations.php:255 app/features/mec/settings.php:
|
6042 |
#, fuzzy, php-format
|
6043 |
#| msgid "Third Party plugin is not installed and activated!"
|
6044 |
msgid "%s plugin should be installed and connected to your AWeber account."
|
6045 |
msgstr "Plugin třetích stran není nainstalován a aktivován!"
|
6046 |
|
6047 |
-
#: app/features/mec/integrations.php:256 app/features/mec/settings.php:
|
6048 |
#, php-format
|
6049 |
msgid "More information about the list ID can be found %s."
|
6050 |
msgstr ""
|
@@ -6053,19 +6065,19 @@ msgstr ""
|
|
6053 |
msgid "MailPoet"
|
6054 |
msgstr ""
|
6055 |
|
6056 |
-
#: app/features/mec/integrations.php:265 app/features/mec/settings.php:
|
6057 |
#, fuzzy
|
6058 |
#| msgid "Enable Mailchimp Integration"
|
6059 |
msgid "Enable MailPoet Integration"
|
6060 |
msgstr "Povolit integraci Mailchimp"
|
6061 |
|
6062 |
-
#: app/features/mec/integrations.php:271 app/features/mec/settings.php:
|
6063 |
#: app/skins/default_full_calendar/tpl.php:80
|
6064 |
#: app/skins/full_calendar/tpl.php:141
|
6065 |
msgid "List"
|
6066 |
msgstr "Seznam"
|
6067 |
|
6068 |
-
#: app/features/mec/integrations.php:282 app/features/mec/settings.php:
|
6069 |
#, fuzzy, php-format
|
6070 |
#| msgid "Third Party plugin is not installed and activated!"
|
6071 |
msgid "%s plugin should be installed and activated."
|
@@ -6075,13 +6087,13 @@ msgstr "Plugin třetích stran není nainstalován a aktivován!"
|
|
6075 |
msgid "Sendfox"
|
6076 |
msgstr ""
|
6077 |
|
6078 |
-
#: app/features/mec/integrations.php:291 app/features/mec/settings.php:
|
6079 |
#, fuzzy
|
6080 |
#| msgid "Enable Mailchimp Integration"
|
6081 |
msgid "Enable Sendfox Integration"
|
6082 |
msgstr "Povolit integraci Mailchimp"
|
6083 |
|
6084 |
-
#: app/features/mec/integrations.php:308 app/features/mec/settings.php:
|
6085 |
#, fuzzy, php-format
|
6086 |
#| msgid "Third Party plugin is not installed and activated!"
|
6087 |
msgid "%s plugin should be installed and connected to your Sendfox account."
|
@@ -6159,7 +6171,7 @@ msgstr "Povolit upozornění na rezervaci"
|
|
6159 |
msgid "PaidMembership Pro plugin should be installed and activated."
|
6160 |
msgstr "Plugin třetích stran není nainstalován a aktivován!"
|
6161 |
|
6162 |
-
#: app/features/mec/messages.php:36 app/features/mec/support-page.php:
|
6163 |
#: app/features/mec/support.php:66 app/libraries/main.php:969
|
6164 |
msgid "Messages"
|
6165 |
msgstr "Zprávy"
|
@@ -6191,9 +6203,9 @@ msgstr "Vzhled"
|
|
6191 |
#: app/features/mec/meta_boxes/display_options.php:1080
|
6192 |
#: app/features/mec/meta_boxes/display_options.php:1447
|
6193 |
#: app/features/mec/meta_boxes/display_options.php:1758
|
6194 |
-
#: app/features/mec/settings.php:
|
6195 |
-
#: app/features/mec/settings.php:
|
6196 |
-
#: app/features/mec/settings.php:
|
6197 |
#: app/features/popup/settings.php:104 app/features/popup/settings.php:128
|
6198 |
#: app/features/popup/settings.php:137 app/features/popup/shortcode.php:70
|
6199 |
#: app/features/popup/shortcode.php:104 app/features/popup/shortcode.php:201
|
@@ -6205,8 +6217,8 @@ msgstr "Klasický"
|
|
6205 |
|
6206 |
#: app/features/mec/meta_boxes/display_options.php:49
|
6207 |
#: app/features/mec/meta_boxes/display_options.php:303
|
6208 |
-
#: app/features/mec/settings.php:
|
6209 |
-
#: app/features/mec/settings.php:
|
6210 |
#: app/features/popup/settings.php:129 app/features/popup/settings.php:139
|
6211 |
#: app/features/popup/shortcode.php:75 app/features/popup/shortcode.php:114
|
6212 |
msgid "Minimal"
|
@@ -6218,10 +6230,10 @@ msgstr "Minimální"
|
|
6218 |
#: app/features/mec/meta_boxes/display_options.php:1082
|
6219 |
#: app/features/mec/meta_boxes/display_options.php:1445
|
6220 |
#: app/features/mec/meta_boxes/display_options.php:1760
|
6221 |
-
#: app/features/mec/settings.php:
|
6222 |
-
#: app/features/mec/settings.php:
|
6223 |
-
#: app/features/mec/settings.php:
|
6224 |
-
#: app/features/mec/settings.php:
|
6225 |
#: app/features/popup/settings.php:106 app/features/popup/settings.php:119
|
6226 |
#: app/features/popup/settings.php:130 app/features/popup/settings.php:140
|
6227 |
#: app/features/popup/shortcode.php:80 app/features/popup/shortcode.php:119
|
@@ -6231,13 +6243,13 @@ msgid "Modern"
|
|
6231 |
msgstr "Moderní"
|
6232 |
|
6233 |
#: app/features/mec/meta_boxes/display_options.php:51
|
6234 |
-
#: app/features/mec/settings.php:
|
6235 |
#: app/features/popup/settings.php:131 app/features/popup/shortcode.php:85
|
6236 |
msgid "Standard"
|
6237 |
msgstr "Standardní"
|
6238 |
|
6239 |
#: app/features/mec/meta_boxes/display_options.php:52
|
6240 |
-
#: app/features/mec/settings.php:
|
6241 |
#: app/features/popup/settings.php:132 app/features/popup/shortcode.php:90
|
6242 |
msgid "Accordion"
|
6243 |
msgstr "Akordeon"
|
@@ -6668,9 +6680,9 @@ msgstr "Přepínač pro oddělovník měsíce"
|
|
6668 |
#: app/features/mec/meta_boxes/display_options.php:1081
|
6669 |
#: app/features/mec/meta_boxes/display_options.php:1446
|
6670 |
#: app/features/mec/meta_boxes/display_options.php:1759
|
6671 |
-
#: app/features/mec/settings.php:
|
6672 |
-
#: app/features/mec/settings.php:
|
6673 |
-
#: app/features/mec/settings.php:
|
6674 |
#: app/features/popup/settings.php:105 app/features/popup/settings.php:120
|
6675 |
#: app/features/popup/settings.php:138 app/features/popup/shortcode.php:109
|
6676 |
#: app/features/popup/shortcode.php:148 app/features/popup/shortcode.php:163
|
@@ -6682,8 +6694,8 @@ msgstr "Čistý"
|
|
6682 |
#: app/features/mec/meta_boxes/display_options.php:305
|
6683 |
#: app/features/mec/meta_boxes/display_options.php:725
|
6684 |
#: app/features/mec/meta_boxes/display_options.php:1084
|
6685 |
-
#: app/features/mec/settings.php:
|
6686 |
-
#: app/features/mec/settings.php:
|
6687 |
#: app/features/popup/settings.php:108 app/features/popup/settings.php:141
|
6688 |
#: app/features/popup/shortcode.php:124 app/features/popup/shortcode.php:173
|
6689 |
#: app/features/popup/shortcode.php:221
|
@@ -6698,8 +6710,8 @@ msgstr "Plněbarevný"
|
|
6698 |
#: app/features/mec/meta_boxes/display_options.php:307
|
6699 |
#: app/features/mec/meta_boxes/display_options.php:724
|
6700 |
#: app/features/mec/meta_boxes/display_options.php:1083
|
6701 |
-
#: app/features/mec/settings.php:
|
6702 |
-
#: app/features/mec/settings.php:
|
6703 |
#: app/features/popup/settings.php:107 app/features/popup/settings.php:143
|
6704 |
#: app/features/popup/shortcode.php:134 app/features/popup/shortcode.php:168
|
6705 |
#: app/features/popup/shortcode.php:216
|
@@ -6750,15 +6762,15 @@ msgstr "Výchozí zobrazení"
|
|
6750 |
|
6751 |
#: app/features/mec/meta_boxes/display_options.php:711
|
6752 |
#: app/features/mec/meta_boxes/display_options.php:735
|
6753 |
-
#: app/libraries/main.php:374 app/libraries/main.php:
|
6754 |
-
#: app/libraries/main.php:
|
6755 |
msgid "List View"
|
6756 |
msgstr "Zobrazení seznamu"
|
6757 |
|
6758 |
#: app/features/mec/meta_boxes/display_options.php:712
|
6759 |
#: app/features/mec/meta_boxes/display_options.php:778
|
6760 |
-
#: app/libraries/main.php:375 app/libraries/main.php:
|
6761 |
-
#: app/libraries/main.php:
|
6762 |
msgid "Grid View"
|
6763 |
msgstr "Zobrazení mřížky"
|
6764 |
|
@@ -6772,8 +6784,8 @@ msgstr "Zobrazení rozvrhu"
|
|
6772 |
|
6773 |
#: app/features/mec/meta_boxes/display_options.php:714
|
6774 |
#: app/features/mec/meta_boxes/display_options.php:821
|
6775 |
-
#: app/libraries/main.php:378 app/libraries/main.php:
|
6776 |
-
#: app/libraries/main.php:
|
6777 |
msgid "Yearly View"
|
6778 |
msgstr "Roční zobrazení"
|
6779 |
|
@@ -6784,15 +6796,15 @@ msgstr "Měsíční / kalendářní zobrazení"
|
|
6784 |
|
6785 |
#: app/features/mec/meta_boxes/display_options.php:716
|
6786 |
#: app/features/mec/meta_boxes/display_options.php:895
|
6787 |
-
#: app/libraries/main.php:381 app/libraries/main.php:
|
6788 |
-
#: app/libraries/main.php:
|
6789 |
msgid "Weekly View"
|
6790 |
msgstr "Týdenní zobrazení"
|
6791 |
|
6792 |
#: app/features/mec/meta_boxes/display_options.php:717
|
6793 |
#: app/features/mec/meta_boxes/display_options.php:905
|
6794 |
-
#: app/libraries/main.php:380 app/libraries/main.php:
|
6795 |
-
#: app/libraries/main.php:
|
6796 |
msgid "Daily View"
|
6797 |
msgstr "Denní zobrazení"
|
6798 |
|
@@ -7233,7 +7245,7 @@ msgstr "Autoři"
|
|
7233 |
|
7234 |
#: app/features/mec/meta_boxes/filter.php:75
|
7235 |
#: app/features/mec/meta_boxes/filter.php:184
|
7236 |
-
#: app/features/mec/settings.php:
|
7237 |
#: app/features/occurrences.php:101
|
7238 |
#, fuzzy
|
7239 |
#| msgid "Occurrences times"
|
@@ -7416,11 +7428,11 @@ msgstr ""
|
|
7416 |
#: app/features/mec/meta_boxes/search_form.php:867
|
7417 |
#: app/features/mec/meta_boxes/search_form.php:990
|
7418 |
#: app/features/mec/meta_boxes/search_form.php:1077
|
7419 |
-
#: app/features/mec/settings.php:
|
7420 |
#: app/features/mec/single.php:530 app/features/popup/settings.php:233
|
7421 |
#: app/features/popup/settings.php:272 app/features/search.php:109
|
7422 |
#: app/features/speakers.php:66 app/features/speakers.php:292
|
7423 |
-
#: app/libraries/main.php:
|
7424 |
#: app/libraries/search.php:334 app/libraries/skins.php:1239
|
7425 |
#: app/modules/speakers/details.php:18
|
7426 |
msgid "Speaker"
|
@@ -7438,7 +7450,7 @@ msgstr "Řečník"
|
|
7438 |
#: app/features/mec/meta_boxes/search_form.php:874
|
7439 |
#: app/features/mec/meta_boxes/search_form.php:997
|
7440 |
#: app/features/mec/meta_boxes/search_form.php:1084
|
7441 |
-
#: app/features/mec/settings.php:
|
7442 |
#: app/features/mec/single.php:539 app/features/popup/settings.php:242
|
7443 |
#: app/features/popup/settings.php:281 app/features/search.php:115
|
7444 |
#: app/features/tag.php:58 app/libraries/search.php:354
|
@@ -8089,7 +8101,7 @@ msgstr "Název události"
|
|
8089 |
#: app/features/mec/notifications.php:1356
|
8090 |
#: app/features/mec/notifications.php:1507
|
8091 |
#: app/features/mec/notifications.php:1624
|
8092 |
-
#: app/features/mec/notifications.php:1774 app/features/mec/settings.php:
|
8093 |
#: app/features/notifications.php:156
|
8094 |
#, fuzzy
|
8095 |
#| msgid "Description"
|
@@ -8106,7 +8118,7 @@ msgstr "Popis"
|
|
8106 |
#: app/features/mec/notifications.php:1357
|
8107 |
#: app/features/mec/notifications.php:1508
|
8108 |
#: app/features/mec/notifications.php:1625
|
8109 |
-
#: app/features/mec/notifications.php:1775 app/features/mec/settings.php:
|
8110 |
#: app/features/notifications.php:157
|
8111 |
msgid "Event Tags"
|
8112 |
msgstr "Tagy události"
|
@@ -8121,7 +8133,7 @@ msgstr "Tagy události"
|
|
8121 |
#: app/features/mec/notifications.php:1358
|
8122 |
#: app/features/mec/notifications.php:1509
|
8123 |
#: app/features/mec/notifications.php:1626
|
8124 |
-
#: app/features/mec/notifications.php:1776 app/features/mec/settings.php:
|
8125 |
#: app/features/notifications.php:158
|
8126 |
msgid "Event Labels"
|
8127 |
msgstr "Štítky události"
|
@@ -8136,7 +8148,7 @@ msgstr "Štítky události"
|
|
8136 |
#: app/features/mec/notifications.php:1359
|
8137 |
#: app/features/mec/notifications.php:1510
|
8138 |
#: app/features/mec/notifications.php:1627
|
8139 |
-
#: app/features/mec/notifications.php:1777 app/features/mec/settings.php:
|
8140 |
#: app/features/notifications.php:159 app/widgets/single.php:138
|
8141 |
msgid "Event Categories"
|
8142 |
msgstr "Kategorie události"
|
@@ -8750,8 +8762,8 @@ msgstr ""
|
|
8750 |
msgid "only once per hour"
|
8751 |
msgstr "pouze jednou denně"
|
8752 |
|
8753 |
-
#: app/features/mec/notifications.php:1314 app/libraries/main.php:
|
8754 |
-
#: app/libraries/main.php:
|
8755 |
#, fuzzy
|
8756 |
#| msgid "hours"
|
8757 |
msgid "Hours"
|
@@ -8765,7 +8777,7 @@ msgstr ""
|
|
8765 |
msgid "Please, insert comma to separate reminder hours."
|
8766 |
msgstr ""
|
8767 |
|
8768 |
-
#: app/features/mec/notifications.php:1408 app/features/popup/event.php:
|
8769 |
#: app/libraries/main.php:705
|
8770 |
msgid "New Event"
|
8771 |
msgstr "Nová událost"
|
@@ -8802,8 +8814,8 @@ msgid "Status of event"
|
|
8802 |
msgstr "Stav události"
|
8803 |
|
8804 |
#: app/features/mec/notifications.php:1517
|
8805 |
-
#: app/features/mec/notifications.php:1634 app/features/mec/settings.php:
|
8806 |
-
#: app/features/mec/settings.php:
|
8807 |
msgid "Event Note"
|
8808 |
msgstr "Poznámka události"
|
8809 |
|
@@ -9088,8 +9100,8 @@ msgid "You can enable/disable Schema scripts"
|
|
9088 |
msgstr "Můžete povolit nebo zakázat skripty schématu"
|
9089 |
|
9090 |
#: app/features/mec/settings.php:137 app/features/mec/settings.php:148
|
9091 |
-
#: app/features/popup/settings.php:41 app/libraries/main.php:
|
9092 |
-
#: app/libraries/main.php:
|
9093 |
msgid "Weekdays"
|
9094 |
msgstr "Pracovní dny"
|
9095 |
|
@@ -9252,159 +9264,159 @@ msgstr ""
|
|
9252 |
msgid "If enabled, users are able to use %s URL to subscribe to your events."
|
9253 |
msgstr ""
|
9254 |
|
9255 |
-
#: app/features/mec/settings.php:
|
9256 |
#, fuzzy
|
9257 |
#| msgid "Speakers Names"
|
9258 |
msgid "Sender Name"
|
9259 |
msgstr "Jméno řečníka"
|
9260 |
|
9261 |
-
#: app/features/mec/settings.php:
|
9262 |
msgid "e.g. Webnus"
|
9263 |
msgstr ""
|
9264 |
|
9265 |
-
#: app/features/mec/settings.php:
|
9266 |
#, fuzzy
|
9267 |
#| msgid "Organizer Email"
|
9268 |
msgid "Sender Email"
|
9269 |
msgstr "Organizátor Email"
|
9270 |
|
9271 |
-
#: app/features/mec/settings.php:
|
9272 |
msgid "e.g. info@webnus.biz"
|
9273 |
msgstr ""
|
9274 |
|
9275 |
-
#: app/features/mec/settings.php:
|
9276 |
#, fuzzy
|
9277 |
#| msgid "Simple Method"
|
9278 |
msgid "Recipients Method"
|
9279 |
msgstr "Jednoduchá metoda"
|
9280 |
|
9281 |
-
#: app/features/mec/settings.php:
|
9282 |
msgid "BCC (Invisible)"
|
9283 |
msgstr ""
|
9284 |
|
9285 |
-
#: app/features/mec/settings.php:
|
9286 |
msgid "CC (Visible)"
|
9287 |
msgstr ""
|
9288 |
|
9289 |
-
#: app/features/mec/settings.php:
|
9290 |
msgid "Archive Pages"
|
9291 |
msgstr "Archivní stránky"
|
9292 |
|
9293 |
-
#: app/features/mec/settings.php:
|
9294 |
#: app/features/popup/settings.php:72 app/features/popup/settings.php:77
|
9295 |
msgid "Archive Page Title"
|
9296 |
msgstr "Název stránky archivu"
|
9297 |
|
9298 |
-
#: app/features/mec/settings.php:
|
9299 |
msgid "Default value is Events - It's title of the page"
|
9300 |
msgstr "Výchozí hodnota je Události - to je název stránky"
|
9301 |
|
9302 |
-
#: app/features/mec/settings.php:
|
9303 |
#, fuzzy
|
9304 |
#| msgid "Archive Page Title"
|
9305 |
msgid "Tag of Archive Page Title"
|
9306 |
msgstr "Název stránky archivu"
|
9307 |
|
9308 |
-
#: app/features/mec/settings.php:
|
9309 |
#, fuzzy
|
9310 |
#| msgid "Pending"
|
9311 |
msgid "Heading 1"
|
9312 |
msgstr "Nevyřízený"
|
9313 |
|
9314 |
-
#: app/features/mec/settings.php:
|
9315 |
#, fuzzy
|
9316 |
#| msgid "Pending"
|
9317 |
msgid "Heading 2"
|
9318 |
msgstr "Nevyřízený"
|
9319 |
|
9320 |
-
#: app/features/mec/settings.php:
|
9321 |
#, fuzzy
|
9322 |
#| msgid "Pending"
|
9323 |
msgid "Heading 3"
|
9324 |
msgstr "Nevyřízený"
|
9325 |
|
9326 |
-
#: app/features/mec/settings.php:
|
9327 |
#, fuzzy
|
9328 |
#| msgid "Pending"
|
9329 |
msgid "Heading 4"
|
9330 |
msgstr "Nevyřízený"
|
9331 |
|
9332 |
-
#: app/features/mec/settings.php:
|
9333 |
#, fuzzy
|
9334 |
#| msgid "Pending"
|
9335 |
msgid "Heading 5"
|
9336 |
msgstr "Nevyřízený"
|
9337 |
|
9338 |
-
#: app/features/mec/settings.php:
|
9339 |
#, fuzzy
|
9340 |
#| msgid "Pending"
|
9341 |
msgid "Heading 6"
|
9342 |
msgstr "Nevyřízený"
|
9343 |
|
9344 |
-
#: app/features/mec/settings.php:
|
9345 |
msgid "Division"
|
9346 |
msgstr ""
|
9347 |
|
9348 |
-
#: app/features/mec/settings.php:
|
9349 |
msgid "Inline Bold Text"
|
9350 |
msgstr ""
|
9351 |
|
9352 |
-
#: app/features/mec/settings.php:
|
9353 |
#, fuzzy
|
9354 |
#| msgid "Head Text"
|
9355 |
msgid "Inline Text"
|
9356 |
msgstr "Text hlavičky"
|
9357 |
|
9358 |
-
#: app/features/mec/settings.php:
|
9359 |
#: app/features/popup/settings.php:86
|
9360 |
msgid "Archive Page Skin"
|
9361 |
msgstr "Vzhled archivní stránky"
|
9362 |
|
9363 |
-
#: app/features/mec/settings.php:
|
9364 |
#: app/features/popup/settings.php:94
|
9365 |
msgid "Put shortcode..."
|
9366 |
msgstr "Vložte zkrácený kód..."
|
9367 |
|
9368 |
-
#: app/features/mec/settings.php:
|
9369 |
-
#: app/features/mec/settings.php:
|
9370 |
-
#: app/features/mec/settings.php:
|
9371 |
-
#: app/features/mec/settings.php:
|
9372 |
-
#: app/features/mec/settings.php:
|
9373 |
#: app/features/popup/settings.php:97 app/features/popup/settings.php:112
|
9374 |
#: app/features/popup/settings.php:115 app/features/popup/settings.php:124
|
9375 |
#: app/features/popup/settings.php:150
|
9376 |
msgid "There is no skins"
|
9377 |
msgstr "Neexistuje žádný vzhled"
|
9378 |
|
9379 |
-
#: app/features/mec/settings.php:
|
9380 |
#: app/features/mec/single.php:77 app/features/popup/settings.php:100
|
9381 |
#: app/features/popup/settings.php:173
|
9382 |
msgid "Modern Style"
|
9383 |
msgstr "Moderní styl"
|
9384 |
|
9385 |
-
#: app/features/mec/settings.php:
|
9386 |
#: app/features/popup/settings.php:142
|
9387 |
msgid "colorful"
|
9388 |
msgstr "pestrý"
|
9389 |
|
9390 |
-
#: app/features/mec/settings.php:
|
9391 |
#: app/features/popup/settings.php:147
|
9392 |
msgid "Clean Style"
|
9393 |
msgstr "Čistý styl"
|
9394 |
|
9395 |
-
#: app/features/mec/settings.php:
|
9396 |
msgid "Default value is Calendar/Monthly View, But you can change it "
|
9397 |
msgstr "Výchozí hodnota je Kalendář / Měsíční zobrazení, ale můžete ji změnit "
|
9398 |
|
9399 |
-
#: app/features/mec/settings.php:
|
9400 |
msgid "See Demo"
|
9401 |
msgstr "Viz Demo"
|
9402 |
|
9403 |
-
#: app/features/mec/settings.php:
|
9404 |
msgid "Category Page Skin"
|
9405 |
msgstr "Vzhled stránky kategorie"
|
9406 |
|
9407 |
-
#: app/features/mec/settings.php:
|
9408 |
#, fuzzy
|
9409 |
#| msgid ""
|
9410 |
#| "Default value is List View - But you can change it Set a skin for all "
|
@@ -9416,24 +9428,24 @@ msgstr ""
|
|
9416 |
"Výchozí hodnota je Zobrazení seznamu - ale můžete ji změnit Nastavit vzhled "
|
9417 |
"pro všechny kategorie."
|
9418 |
|
9419 |
-
#: app/features/mec/settings.php:
|
9420 |
msgid "Category Events Method"
|
9421 |
msgstr "Kategorie Metoda události"
|
9422 |
|
9423 |
-
#: app/features/mec/settings.php:
|
9424 |
msgid "Default value is Upcoming Events"
|
9425 |
msgstr "Výchozí hodnota je Nadcházející události"
|
9426 |
|
9427 |
-
#: app/features/mec/settings.php:
|
9428 |
msgid "Events Archive Status"
|
9429 |
msgstr "Stav archivu událostí"
|
9430 |
|
9431 |
-
#: app/features/mec/settings.php:
|
9432 |
msgid "Enabled (Recommended)"
|
9433 |
msgstr "Povoleno (doporučeno)"
|
9434 |
|
9435 |
# Slug
|
9436 |
-
#: app/features/mec/settings.php:
|
9437 |
msgid ""
|
9438 |
"If you disable it, then you should create a page as archive page of MEC. "
|
9439 |
"Page's slug must equals to \"Main Slug\" of MEC. Also it will disable all of "
|
@@ -9444,12 +9456,12 @@ msgstr ""
|
|
9444 |
"přepisování MEC."
|
9445 |
|
9446 |
# Hlavní slug
|
9447 |
-
#: app/features/mec/settings.php:
|
9448 |
#: app/features/popup/settings.php:155 app/features/popup/settings.php:160
|
9449 |
msgid "Main Slug"
|
9450 |
msgstr "Main Slug"
|
9451 |
|
9452 |
-
#: app/features/mec/settings.php:
|
9453 |
msgid ""
|
9454 |
"Default value is events. You can not have a page with this name. MEC allows "
|
9455 |
"you to create custom URLs for the permalinks and archives to enhance the "
|
@@ -9459,17 +9471,17 @@ msgstr ""
|
|
9459 |
"umožňuje vytvářet vlastní adresy URL pro permanentní odkazy a archivy, aby "
|
9460 |
"se zvýšila použitelnost a dopředná kompatibilita odkazů."
|
9461 |
|
9462 |
-
#: app/features/mec/settings.php:
|
9463 |
#: app/features/popup/settings.php:165
|
9464 |
msgid "Valid characters are lowercase a-z, - character and numbers."
|
9465 |
msgstr "Platnými znaky jsou malá písmena a-z, - znak a čísla."
|
9466 |
|
9467 |
# Slug
|
9468 |
-
#: app/features/mec/settings.php:
|
9469 |
msgid "Category Slug"
|
9470 |
msgstr "Kategorie Slug"
|
9471 |
|
9472 |
-
#: app/features/mec/settings.php:
|
9473 |
msgid ""
|
9474 |
"It's slug of MEC categories, you can change it to events-cat or something "
|
9475 |
"else. Default value is mec-category. You can not have a page with this name."
|
@@ -9478,123 +9490,123 @@ msgstr ""
|
|
9478 |
"jiného. Výchozí hodnota je mec-kategorie. Nemůžete mít stránku s tímto "
|
9479 |
"názvem."
|
9480 |
|
9481 |
-
#: app/features/mec/settings.php:
|
9482 |
msgid "Assets (CSS and JavaScript files)"
|
9483 |
msgstr ""
|
9484 |
|
9485 |
-
#: app/features/mec/settings.php:
|
9486 |
#, fuzzy
|
9487 |
#| msgid "Start Date"
|
9488 |
msgid "Per Page"
|
9489 |
msgstr "Počátečná den"
|
9490 |
|
9491 |
-
#: app/features/mec/settings.php:
|
9492 |
#, fuzzy
|
9493 |
#| msgid "Enable speakers feature"
|
9494 |
msgid "Enable Assets Per Page"
|
9495 |
msgstr "Povolit vlastnosti řečníků"
|
9496 |
|
9497 |
-
#: app/features/mec/settings.php:
|
9498 |
msgid ""
|
9499 |
"By enabling this option MEC won't include any JavaScript or CSS files in "
|
9500 |
"frontend of your website unless you enable the assets inclusion in page "
|
9501 |
"options."
|
9502 |
msgstr ""
|
9503 |
|
9504 |
-
#: app/features/mec/settings.php:
|
9505 |
#, fuzzy
|
9506 |
#| msgid "Load More"
|
9507 |
msgid "Load in Footer"
|
9508 |
msgstr "Načíst více"
|
9509 |
|
9510 |
-
#: app/features/mec/settings.php:
|
9511 |
msgid "Load Assets in Footer"
|
9512 |
msgstr ""
|
9513 |
|
9514 |
-
#: app/features/mec/settings.php:
|
9515 |
#, fuzzy
|
9516 |
#| msgid "Enable Google Recaptcha"
|
9517 |
msgid "Google Recaptcha"
|
9518 |
msgstr "Povolit Google Recaptcha"
|
9519 |
|
9520 |
-
#: app/features/mec/settings.php:
|
9521 |
msgid "Enable Google Recaptcha"
|
9522 |
msgstr "Povolit Google Recaptcha"
|
9523 |
|
9524 |
-
#: app/features/mec/settings.php:
|
9525 |
msgid "Enable on booking form"
|
9526 |
msgstr "Povolit rezervační formulář"
|
9527 |
|
9528 |
-
#: app/features/mec/settings.php:
|
9529 |
msgid "Enable on \"Frontend Event Submission\" form"
|
9530 |
msgstr "Povolit ve formuláři „Odesílání událostí z frontendu“"
|
9531 |
|
9532 |
# místa
|
9533 |
-
#: app/features/mec/settings.php:
|
9534 |
msgid "Site Key"
|
9535 |
msgstr "Klíč webu"
|
9536 |
|
9537 |
-
#: app/features/mec/settings.php:
|
9538 |
msgid "Secret Key"
|
9539 |
msgstr "Tajný klíč"
|
9540 |
|
9541 |
-
#: app/features/mec/settings.php:
|
9542 |
msgid "Time Format"
|
9543 |
msgstr "Formát času"
|
9544 |
|
9545 |
-
#: app/features/mec/settings.php:
|
9546 |
msgid "12 hours format with AM/PM"
|
9547 |
msgstr "12 hodinový formát s dop./odp."
|
9548 |
|
9549 |
-
#: app/features/mec/settings.php:
|
9550 |
msgid "24 hours format"
|
9551 |
msgstr "24 hodinový fotmát"
|
9552 |
|
9553 |
-
#: app/features/mec/settings.php:
|
9554 |
msgid "This option, affects the selection of Start/End time."
|
9555 |
msgstr "Tato možnost ovlivňuje výběr času zahájení / ukončení."
|
9556 |
|
9557 |
-
#: app/features/mec/settings.php:
|
9558 |
msgid "Events List Page"
|
9559 |
msgstr "Stránka seznamu událostí"
|
9560 |
|
9561 |
-
#: app/features/mec/settings.php:
|
9562 |
msgid "Add/Edit Events Page"
|
9563 |
msgstr "Přidat / Editovat stránku událostí"
|
9564 |
|
9565 |
-
#: app/features/mec/settings.php:
|
9566 |
#, fuzzy
|
9567 |
#| msgid "On Event Start"
|
9568 |
msgid "New Events Status"
|
9569 |
msgstr "Při spuštění události"
|
9570 |
|
9571 |
-
#: app/features/mec/settings.php:
|
9572 |
#, fuzzy
|
9573 |
#| msgid "WordPress"
|
9574 |
msgid "Let WordPress decide"
|
9575 |
msgstr "WordPress"
|
9576 |
|
9577 |
-
#: app/features/mec/settings.php:
|
9578 |
msgid "Publish"
|
9579 |
msgstr ""
|
9580 |
|
9581 |
-
#: app/features/mec/settings.php:
|
9582 |
#, fuzzy
|
9583 |
#| msgid "Display Event Price"
|
9584 |
msgid "Display Event Date in List"
|
9585 |
msgstr "Zobrazit cenu události"
|
9586 |
|
9587 |
-
#: app/features/mec/settings.php:
|
9588 |
#: app/libraries/notifications.php:2110
|
9589 |
msgid "No"
|
9590 |
msgstr "Ne"
|
9591 |
|
9592 |
-
#: app/features/mec/settings.php:
|
9593 |
#: app/libraries/notifications.php:2110
|
9594 |
msgid "Yes"
|
9595 |
msgstr "Ano"
|
9596 |
|
9597 |
-
#: app/features/mec/settings.php:
|
9598 |
#, fuzzy
|
9599 |
#| msgid ""
|
9600 |
#| "User redirects to this page after booking. Leave it empty if you want to "
|
@@ -9606,131 +9618,131 @@ msgstr ""
|
|
9606 |
"Uživatel bude přesměrován na tuto stránku po rezervaci. Pokud ji chcete "
|
9607 |
"vypnout, ponechte ji prázdnou."
|
9608 |
|
9609 |
-
#: app/features/mec/settings.php:
|
9610 |
#, fuzzy
|
9611 |
#| msgid "Thank You Page"
|
9612 |
msgid "Thank You Page URL"
|
9613 |
msgstr "Stránka s poděkováním"
|
9614 |
|
9615 |
-
#: app/features/mec/settings.php:
|
9616 |
msgid "If filled it will use instead of thank you page set above."
|
9617 |
msgstr ""
|
9618 |
|
9619 |
-
#: app/features/mec/settings.php:
|
9620 |
#, fuzzy
|
9621 |
#| msgid "Maximum file size"
|
9622 |
msgid "Maximum File Size"
|
9623 |
msgstr "Maximální velikost souboru"
|
9624 |
|
9625 |
-
#: app/features/mec/settings.php:
|
9626 |
msgid "in KB"
|
9627 |
msgstr ""
|
9628 |
|
9629 |
-
#: app/features/mec/settings.php:
|
9630 |
msgid "In Kilo Bytes so 5000 means 5MB (Approximately)"
|
9631 |
msgstr ""
|
9632 |
|
9633 |
-
#: app/features/mec/settings.php:
|
9634 |
#, fuzzy
|
9635 |
#| msgid "Enable event submission by guest (Not logged-in) users"
|
9636 |
msgid "Enable event submission by guest (Not logged in) users"
|
9637 |
msgstr "Povolit odesílání události hosty (nepřihlášenými uživateli)"
|
9638 |
|
9639 |
-
#: app/features/mec/settings.php:
|
9640 |
msgid "Enable mandatory email and name for guest user"
|
9641 |
msgstr "Povolit povinný e-mail a jméno pro hostujícího uživatele"
|
9642 |
|
9643 |
-
#: app/features/mec/settings.php:
|
9644 |
msgid ""
|
9645 |
"Automatically create users after event publish and assign event to the "
|
9646 |
"created user"
|
9647 |
msgstr ""
|
9648 |
|
9649 |
-
#: app/features/mec/settings.php:
|
9650 |
msgid "Frontend Event Submission Sections"
|
9651 |
msgstr "Sekce pro zasílání událostí z webových stránek (frontend)"
|
9652 |
|
9653 |
-
#: app/features/mec/settings.php:
|
9654 |
#, fuzzy
|
9655 |
#| msgid "Event Details"
|
9656 |
msgid "Event Data Fields"
|
9657 |
msgstr "Podrobnosti události"
|
9658 |
|
9659 |
-
#: app/features/mec/settings.php:
|
9660 |
msgid ""
|
9661 |
"This feature adds the ability to hide the current event to all MEC "
|
9662 |
"Shortcodes."
|
9663 |
msgstr ""
|
9664 |
|
9665 |
-
#: app/features/mec/settings.php:
|
9666 |
msgid "Event Organizer"
|
9667 |
msgstr "Organizátor události"
|
9668 |
|
9669 |
-
#: app/features/mec/settings.php:
|
9670 |
#, fuzzy
|
9671 |
#| msgid "Additional Organizers"
|
9672 |
msgid "Ability to Use All Organizers"
|
9673 |
msgstr "Další organizátoři"
|
9674 |
|
9675 |
-
#: app/features/mec/settings.php:
|
9676 |
#, fuzzy
|
9677 |
#| msgid "Organizers"
|
9678 |
msgid "Use All Organizers"
|
9679 |
msgstr "Organizátoři"
|
9680 |
|
9681 |
-
#: app/features/mec/settings.php:
|
9682 |
msgid ""
|
9683 |
"Users are able to see list of ogranizers and use them for their event. Set "
|
9684 |
"it to \"No\" if you want to disable this functionality and \"Other Organizers"
|
9685 |
"\" feature."
|
9686 |
msgstr ""
|
9687 |
|
9688 |
-
#: app/features/mec/settings.php:
|
9689 |
#, fuzzy
|
9690 |
#| msgid "Total booking limits"
|
9691 |
msgid "Total Booking Limit"
|
9692 |
msgstr "Celkové limity rezervace"
|
9693 |
|
9694 |
-
#: app/features/mec/settings.php:
|
9695 |
#, fuzzy
|
9696 |
#| msgid "Discount"
|
9697 |
msgid "Discount Per User Roles"
|
9698 |
msgstr "Sleva"
|
9699 |
|
9700 |
-
#: app/features/mec/settings.php:
|
9701 |
#, fuzzy
|
9702 |
#| msgid "Ticket Variations / Options"
|
9703 |
msgid "Ticket Options"
|
9704 |
msgstr "Varianty vstupenky / možnosti"
|
9705 |
|
9706 |
-
#: app/features/mec/settings.php:
|
9707 |
msgid "Fees / Taxes Options"
|
9708 |
msgstr "Možnosti Poplatky / Daně"
|
9709 |
|
9710 |
-
#: app/features/mec/settings.php:
|
9711 |
#, fuzzy
|
9712 |
#| msgid "Schema"
|
9713 |
msgid "SEO Schema"
|
9714 |
msgstr "Schéma"
|
9715 |
|
9716 |
-
#: app/features/mec/settings.php:
|
9717 |
#: app/features/mec/single.php:241
|
9718 |
msgid "Public Download Module"
|
9719 |
msgstr ""
|
9720 |
|
9721 |
-
#: app/features/mec/settings.php:
|
9722 |
#, fuzzy
|
9723 |
#| msgid "Edit Event"
|
9724 |
msgid "Virtual Event"
|
9725 |
msgstr "Editace události"
|
9726 |
|
9727 |
-
#: app/features/mec/settings.php:
|
9728 |
#, fuzzy
|
9729 |
#| msgid "Book Event"
|
9730 |
msgid "Zoom Event"
|
9731 |
msgstr "Rezervovat událost"
|
9732 |
|
9733 |
-
#: app/features/mec/settings.php:
|
9734 |
#, php-format
|
9735 |
msgid ""
|
9736 |
"Users can put a note for editors while they're submitting the event. Also "
|
@@ -9741,52 +9753,52 @@ msgstr ""
|
|
9741 |
"oznámení o nové události můžete také vložit %%event_note%%, abyste dostali e-"
|
9742 |
"mail s poznámkami uživatelů."
|
9743 |
|
9744 |
-
#: app/features/mec/settings.php:
|
9745 |
#, fuzzy
|
9746 |
#| msgid "Visibility"
|
9747 |
msgid "Note visibility"
|
9748 |
msgstr "Viditelnost"
|
9749 |
|
9750 |
-
#: app/features/mec/settings.php:
|
9751 |
msgid "Always"
|
9752 |
msgstr "Vždy"
|
9753 |
|
9754 |
-
#: app/features/mec/settings.php:
|
9755 |
msgid "While event is not published"
|
9756 |
msgstr "I když událost není zveřejněna"
|
9757 |
|
9758 |
-
#: app/features/mec/settings.php:
|
9759 |
msgid "Event Note shows on Frontend Submission Form and Edit Event in backend."
|
9760 |
msgstr ""
|
9761 |
"Poznámka k události se zobrazí ve formuláři pro zasílání z webových stránek "
|
9762 |
"(frontend) a Upravit událost v administraci stránek (backend)."
|
9763 |
|
9764 |
-
#: app/features/mec/settings.php:
|
9765 |
msgid "Agreement Checkbox (GDPR Compatibility)"
|
9766 |
msgstr ""
|
9767 |
|
9768 |
-
#: app/features/mec/settings.php:
|
9769 |
#, fuzzy
|
9770 |
#| msgid "Checked by default"
|
9771 |
msgid "Checked by Default"
|
9772 |
msgstr "Ve výchozím nastavení zaškrtnuto"
|
9773 |
|
9774 |
-
#: app/features/mec/settings.php:
|
9775 |
#, fuzzy
|
9776 |
#| msgid "Required Field"
|
9777 |
msgid "Required Fields"
|
9778 |
msgstr "Požadovaná pole"
|
9779 |
|
9780 |
-
#: app/features/mec/settings.php:
|
9781 |
-
#: app/libraries/main.php:
|
9782 |
msgid "More Info Link"
|
9783 |
msgstr "Odkaz na více informací"
|
9784 |
|
9785 |
-
#: app/features/mec/settings.php:
|
9786 |
msgid "User Profile"
|
9787 |
msgstr "Uživatelský profil"
|
9788 |
|
9789 |
-
#: app/features/mec/settings.php:
|
9790 |
#, fuzzy, php-format
|
9791 |
#| msgid ""
|
9792 |
#| "Put %s shortcode into your desired page. Then users are able to see "
|
@@ -9798,23 +9810,23 @@ msgstr ""
|
|
9798 |
"Vložte %s krátký kód na požadovanou stránku. Uživatelé pak mohou vidět "
|
9799 |
"historii svých rezervací."
|
9800 |
|
9801 |
-
#: app/features/mec/settings.php:
|
9802 |
#, php-format
|
9803 |
msgid "Use %s attribute to hide canceled bookings. Like %s"
|
9804 |
msgstr ""
|
9805 |
|
9806 |
-
#: app/features/mec/settings.php:
|
9807 |
#, php-format
|
9808 |
msgid "Use %s attribute to show upcoming bookings. Like %s"
|
9809 |
msgstr ""
|
9810 |
|
9811 |
-
#: app/features/mec/settings.php:
|
9812 |
#, fuzzy
|
9813 |
#| msgid "Hide Events"
|
9814 |
msgid "User Events"
|
9815 |
msgstr "Skrýt události"
|
9816 |
|
9817 |
-
#: app/features/mec/settings.php:
|
9818 |
#, fuzzy, php-format
|
9819 |
#| msgid ""
|
9820 |
#| "Put %s shortcode into your desired page. Then users are able to search "
|
@@ -9826,11 +9838,11 @@ msgstr ""
|
|
9826 |
"Vložte %s krátký kód na požadovanou stránku. Uživatelé pak mohou vyhledávat "
|
9827 |
"události"
|
9828 |
|
9829 |
-
#: app/features/mec/settings.php:
|
9830 |
msgid "Search Bar"
|
9831 |
msgstr "Vyhledávací panel"
|
9832 |
|
9833 |
-
#: app/features/mec/settings.php:
|
9834 |
#, php-format
|
9835 |
msgid ""
|
9836 |
"Put %s shortcode into your desired page. Then users are able to search events"
|
@@ -9838,15 +9850,15 @@ msgstr ""
|
|
9838 |
"Vložte %s krátký kód na požadovanou stránku. Uživatelé pak mohou vyhledávat "
|
9839 |
"události"
|
9840 |
|
9841 |
-
#: app/features/mec/settings.php:
|
9842 |
msgid "Ajax Live mode"
|
9843 |
msgstr "Ajax Live mód"
|
9844 |
|
9845 |
-
#: app/features/mec/settings.php:
|
9846 |
msgid "Ajax mode"
|
9847 |
msgstr "Ajax mód"
|
9848 |
|
9849 |
-
#: app/features/mec/settings.php:
|
9850 |
#, fuzzy
|
9851 |
#| msgid ""
|
9852 |
#| "if you enable this option, search button disappeared and to use this "
|
@@ -9858,55 +9870,55 @@ msgstr ""
|
|
9858 |
"pokud tuto možnost povolíte, tlačítko pro vyhledávání zmizelo a pro použití "
|
9859 |
"této funkce musí být povoleno pole pro zadávání textu."
|
9860 |
|
9861 |
-
#: app/features/mec/settings.php:
|
9862 |
msgid "Modern Type"
|
9863 |
msgstr "Moderní typ"
|
9864 |
|
9865 |
-
#: app/features/mec/settings.php:
|
9866 |
msgid "Search bar fields"
|
9867 |
msgstr "Pole vyhledávacího panelu"
|
9868 |
|
9869 |
-
#: app/features/mec/settings.php:
|
9870 |
msgid "Text input"
|
9871 |
msgstr "Zadávání textu"
|
9872 |
|
9873 |
-
#: app/features/mec/settings.php:
|
9874 |
#, fuzzy
|
9875 |
#| msgid "Mailchimp Integration"
|
9876 |
msgid "Campaign Monitor Integration"
|
9877 |
msgstr "Integrace Mailchimp"
|
9878 |
|
9879 |
-
#: app/features/mec/settings.php:
|
9880 |
#, fuzzy
|
9881 |
#| msgid "Mailchimp Integration"
|
9882 |
msgid "MailerLite Integration"
|
9883 |
msgstr "Integrace Mailchimp"
|
9884 |
|
9885 |
-
#: app/features/mec/settings.php:
|
9886 |
#, fuzzy
|
9887 |
#| msgid "Enable Mailchimp Integration"
|
9888 |
msgid "Constant Contact Integration"
|
9889 |
msgstr "Povolit integraci Mailchimp"
|
9890 |
|
9891 |
-
#: app/features/mec/settings.php:
|
9892 |
#, fuzzy
|
9893 |
#| msgid "Mailchimp Integration"
|
9894 |
msgid "Active Campaign Integration"
|
9895 |
msgstr "Integrace Mailchimp"
|
9896 |
|
9897 |
-
#: app/features/mec/settings.php:
|
9898 |
#, fuzzy
|
9899 |
#| msgid "Mailchimp Integration"
|
9900 |
msgid "AWeber Integration"
|
9901 |
msgstr "Integrace Mailchimp"
|
9902 |
|
9903 |
-
#: app/features/mec/settings.php:
|
9904 |
#, fuzzy
|
9905 |
#| msgid "Mailchimp Integration"
|
9906 |
msgid "MailPoet Integration"
|
9907 |
msgstr "Integrace Mailchimp"
|
9908 |
|
9909 |
-
#: app/features/mec/settings.php:
|
9910 |
#, fuzzy
|
9911 |
#| msgid "Mailchimp Integration"
|
9912 |
msgid "Sendfox Integration"
|
@@ -10478,259 +10490,259 @@ msgid ""
|
|
10478 |
"support by then. You can use links below in order to do that:"
|
10479 |
msgstr ""
|
10480 |
|
10481 |
-
#: app/features/mec/support-page.php:
|
10482 |
msgid "Advice and answers from the Webnus Team"
|
10483 |
msgstr "Rady a odpovědi týmu Webnus"
|
10484 |
|
10485 |
-
#: app/features/mec/support-page.php:
|
10486 |
#, fuzzy
|
10487 |
#| msgid "Single Event"
|
10488 |
msgid "Setting Up Event"
|
10489 |
msgstr "Jedna událost"
|
10490 |
|
10491 |
# v kontextu
|
10492 |
-
#: app/features/mec/support-page.php:
|
10493 |
#, fuzzy
|
10494 |
#| msgid "Featured Image"
|
10495 |
msgid "Setup Features"
|
10496 |
msgstr "Hlavní obrázek"
|
10497 |
|
10498 |
-
#: app/features/mec/support-page.php:
|
10499 |
msgid "Add Event In MEC Plugin"
|
10500 |
msgstr ""
|
10501 |
|
10502 |
-
#: app/features/mec/support-page.php:
|
10503 |
msgid "Repeating, Date & Time"
|
10504 |
msgstr ""
|
10505 |
|
10506 |
-
#: app/features/mec/support-page.php:
|
10507 |
#, fuzzy
|
10508 |
#| msgid "Ticket"
|
10509 |
msgid "Add Tickets & Fee"
|
10510 |
msgstr "Vstupenka"
|
10511 |
|
10512 |
-
#: app/features/mec/support-page.php:
|
10513 |
#, fuzzy
|
10514 |
#| msgid "Total booking limits"
|
10515 |
msgid "Total Booking & User Limits"
|
10516 |
msgstr "Celkové limity rezervace"
|
10517 |
|
10518 |
-
#: app/features/mec/support-page.php:
|
10519 |
msgid "Create Events With Your Page Builder"
|
10520 |
msgstr "Vytvářejte události pomocí Tvůrce stránek"
|
10521 |
|
10522 |
-
#: app/features/mec/support-page.php:
|
10523 |
#, fuzzy
|
10524 |
#| msgid "MEC - Settings"
|
10525 |
msgid "MEC Settings"
|
10526 |
msgstr "MEC - Nastavení"
|
10527 |
|
10528 |
-
#: app/features/mec/support-page.php:
|
10529 |
msgid "Single Event"
|
10530 |
msgstr "Jedna událost"
|
10531 |
|
10532 |
-
#: app/features/mec/support-page.php:
|
10533 |
#, fuzzy
|
10534 |
#| msgid "Add Shortcode"
|
10535 |
msgid "Making Advance Shortcodes"
|
10536 |
msgstr "Přidat zkrácený kód"
|
10537 |
|
10538 |
-
#: app/features/mec/support-page.php:
|
10539 |
#, fuzzy
|
10540 |
#| msgid "Enable Booking"
|
10541 |
msgid "Manage The Bookings"
|
10542 |
msgstr "Povolit rezervace"
|
10543 |
|
10544 |
-
#: app/features/mec/support-page.php:
|
10545 |
#, fuzzy
|
10546 |
#| msgid "Articles"
|
10547 |
msgid "Other Articles"
|
10548 |
msgstr "Články"
|
10549 |
|
10550 |
-
#: app/features/mec/support-page.php:
|
10551 |
#, fuzzy
|
10552 |
#| msgid "Import / Export"
|
10553 |
msgid "Import & Export Events"
|
10554 |
msgstr "Import / Export"
|
10555 |
|
10556 |
-
#: app/features/mec/support-page.php:
|
10557 |
#, fuzzy
|
10558 |
#| msgid "Single Event Style"
|
10559 |
msgid "Single Events Sidebar"
|
10560 |
msgstr "Styl jedné události"
|
10561 |
|
10562 |
-
#: app/features/mec/support-page.php:
|
10563 |
msgid "Translate MEC"
|
10564 |
msgstr "Přeložit MEC"
|
10565 |
|
10566 |
-
#: app/features/mec/support-page.php:
|
10567 |
#, fuzzy
|
10568 |
#| msgid "Documentation"
|
10569 |
msgid "Developer Documentation"
|
10570 |
msgstr "Dokumentace"
|
10571 |
|
10572 |
-
#: app/features/mec/support-page.php:
|
10573 |
#, fuzzy
|
10574 |
#| msgid "Knowledgebase"
|
10575 |
msgid "Knowledge"
|
10576 |
msgstr "Znalostní databáze"
|
10577 |
|
10578 |
-
#: app/features/mec/support-page.php:
|
10579 |
#, fuzzy
|
10580 |
#| msgid "Quick Setup"
|
10581 |
msgid "Quick Setup Video"
|
10582 |
msgstr "Rychlé nastavení"
|
10583 |
|
10584 |
-
#: app/features/mec/support-page.php:
|
10585 |
msgid "Download the Plugin"
|
10586 |
msgstr "Stažení doplňku"
|
10587 |
|
10588 |
-
#: app/features/mec/support-page.php:
|
10589 |
msgid "Install and Activate the Plugin"
|
10590 |
msgstr "Instalace a aktivace doplňku"
|
10591 |
|
10592 |
-
#: app/features/mec/support-page.php:
|
10593 |
msgid "Add a New Event"
|
10594 |
msgstr "Přidat Novou událost"
|
10595 |
|
10596 |
-
#: app/features/mec/support-page.php:
|
10597 |
-
#: app/features/mec/support-page.php:
|
10598 |
-
#: app/features/mec/support-page.php:
|
10599 |
-
#: app/features/mec/support-page.php:
|
10600 |
msgid "Watch Video"
|
10601 |
msgstr "Sledovat video"
|
10602 |
|
10603 |
-
#: app/features/mec/support-page.php:
|
10604 |
#, fuzzy
|
10605 |
#| msgid "Activate License"
|
10606 |
msgid "Activate License Video"
|
10607 |
msgstr "Aktivovat licenci"
|
10608 |
|
10609 |
-
#: app/features/mec/support-page.php:
|
10610 |
msgid "Login to Dashboard"
|
10611 |
msgstr "Přihlásit se do řídícímu panelu"
|
10612 |
|
10613 |
-
#: app/features/mec/support-page.php:
|
10614 |
msgid "Get the License Key"
|
10615 |
msgstr "Získat licenční klíč"
|
10616 |
|
10617 |
-
#: app/features/mec/support-page.php:
|
10618 |
msgid "Activate the plugin"
|
10619 |
msgstr "Aktivace doplňku"
|
10620 |
|
10621 |
-
#: app/features/mec/support-page.php:
|
10622 |
#, fuzzy
|
10623 |
#| msgid "Add New Event"
|
10624 |
msgid "Add New Event Video"
|
10625 |
msgstr "Přidat novou událost"
|
10626 |
|
10627 |
-
#: app/features/mec/support-page.php:
|
10628 |
msgid "Add New Events, Date and Time"
|
10629 |
msgstr "Přidat novou událost, datum a čas"
|
10630 |
|
10631 |
-
#: app/features/mec/support-page.php:
|
10632 |
msgid "Tags, Categories, Organizer, Location"
|
10633 |
msgstr "Tagy, Kategorie, Organizátoři, Místa"
|
10634 |
|
10635 |
-
#: app/features/mec/support-page.php:
|
10636 |
msgid "Hourly Schedule, Set Up Shortcodes"
|
10637 |
msgstr "Hodinový rozvrh, nastavení zkrácených kódů"
|
10638 |
|
10639 |
-
#: app/features/mec/support-page.php:
|
10640 |
#, fuzzy
|
10641 |
#| msgid "Enable Booking"
|
10642 |
msgid "Enable Booking Video"
|
10643 |
msgstr "Povolit rezervace"
|
10644 |
|
10645 |
-
#: app/features/mec/support-page.php:
|
10646 |
msgid "Enable Booking"
|
10647 |
msgstr "Povolit rezervace"
|
10648 |
|
10649 |
-
#: app/features/mec/support-page.php:
|
10650 |
msgid "Customize the Booking Form"
|
10651 |
msgstr "Přizpůsobit rezervační formulář"
|
10652 |
|
10653 |
-
#: app/features/mec/support-page.php:
|
10654 |
msgid "Set Up a Payment Gateway"
|
10655 |
msgstr "Nastavení platební brány"
|
10656 |
|
10657 |
-
#: app/features/mec/support-page.php:
|
10658 |
#, fuzzy
|
10659 |
#| msgid "Booking Form"
|
10660 |
msgid "Add Booking Form Video"
|
10661 |
msgstr "Rezervační formulář"
|
10662 |
|
10663 |
-
#: app/features/mec/support-page.php:
|
10664 |
msgid "Enable Booking from Settings"
|
10665 |
msgstr "Povolit rezervaci z nastavení"
|
10666 |
|
10667 |
-
#: app/features/mec/support-page.php:
|
10668 |
msgid "Set Up a Booking Form"
|
10669 |
msgstr "Nastavit rezervační formulář"
|
10670 |
|
10671 |
-
#: app/features/mec/support-page.php:
|
10672 |
#, fuzzy
|
10673 |
#| msgid "Create Shortcodes"
|
10674 |
msgid "Create Shortcodes Video"
|
10675 |
msgstr "Vytvořit zkrácené kódy"
|
10676 |
|
10677 |
-
#: app/features/mec/support-page.php:
|
10678 |
msgid "Create a New Shortcode"
|
10679 |
msgstr "Vytvořit nové zkrácený kód"
|
10680 |
|
10681 |
-
#: app/features/mec/support-page.php:
|
10682 |
msgid "Customize Shortcodes"
|
10683 |
msgstr "Přizpůsobit zkrácené kódy"
|
10684 |
|
10685 |
-
#: app/features/mec/support-page.php:
|
10686 |
msgid "Use Filters in Shortcodes"
|
10687 |
msgstr "Použít filtry ve zkrácených kódech"
|
10688 |
|
10689 |
-
#: app/features/mec/support-page.php:
|
10690 |
#, fuzzy
|
10691 |
#| msgid "WooCommerce gateways"
|
10692 |
msgid "WooCommerce Video"
|
10693 |
msgstr "Brána WooCommerce"
|
10694 |
|
10695 |
-
#: app/features/mec/support-page.php:
|
10696 |
msgid "Install and Activate WooCommerce"
|
10697 |
msgstr "Instalace a aktivace WooCommerce"
|
10698 |
|
10699 |
-
#: app/features/mec/support-page.php:
|
10700 |
msgid "Integrate with MEC"
|
10701 |
msgstr "Integrovat s MEC"
|
10702 |
|
10703 |
-
#: app/features/mec/support-page.php:
|
10704 |
msgid "Set Up WooCommerce Gateway"
|
10705 |
msgstr "Nastavit bránu WooCommerce"
|
10706 |
|
10707 |
-
#: app/features/mec/support-page.php:
|
10708 |
#, fuzzy
|
10709 |
#| msgid "Settings"
|
10710 |
msgid "Settings Video"
|
10711 |
msgstr "Nastavení"
|
10712 |
|
10713 |
-
#: app/features/mec/support-page.php:
|
10714 |
msgid "An Overview of the Settings"
|
10715 |
msgstr "Přehled nastavení"
|
10716 |
|
10717 |
-
#: app/features/mec/support-page.php:
|
10718 |
msgid "Set Up Different Settings"
|
10719 |
msgstr "Nastavit různá nastavení"
|
10720 |
|
10721 |
-
#: app/features/mec/support-page.php:
|
10722 |
msgid "Use Different Options"
|
10723 |
msgstr "Použít různé možnosti"
|
10724 |
|
10725 |
-
#: app/features/mec/support-page.php:
|
10726 |
msgid "FAQ"
|
10727 |
msgstr "FAQ"
|
10728 |
|
10729 |
-
#: app/features/mec/support-page.php:
|
10730 |
msgid "How should I update plugin?"
|
10731 |
msgstr "Jak mám aktualizovat doplněk?"
|
10732 |
|
10733 |
-
#: app/features/mec/support-page.php:
|
10734 |
#, php-format
|
10735 |
msgid ""
|
10736 |
"You have two options:<br>\n"
|
@@ -10749,11 +10761,11 @@ msgstr ""
|
|
10749 |
"vyžaduje přidání nákupního kódu v odpovídající sekci pluginu. Pro další "
|
10750 |
"informace, prosím <a href=\"%s\" target=\"_blank\">klikněte sem</a>."
|
10751 |
|
10752 |
-
#: app/features/mec/support-page.php:
|
10753 |
msgid "Do I lose all my data or customization if I update MEC?"
|
10754 |
msgstr "Ztratím všechna moje data nebo přizpůsobení, pokud aktualizuji MEC?"
|
10755 |
|
10756 |
-
#: app/features/mec/support-page.php:
|
10757 |
msgid ""
|
10758 |
"If you’ve added a file to the main folder of MEC, this file will be removed "
|
10759 |
"after the update. Therefore, please do get a full back up before proceeding "
|
@@ -10763,11 +10775,11 @@ msgstr ""
|
|
10763 |
"aktualizaci odstraněn. Před pokračováním v procesu aktualizace proto prosím "
|
10764 |
"proveďte úplné zálohování."
|
10765 |
|
10766 |
-
#: app/features/mec/support-page.php:
|
10767 |
msgid "Can I customize the event pages?"
|
10768 |
msgstr "Mohu přizpůsobit stránky událostí?"
|
10769 |
|
10770 |
-
#: app/features/mec/support-page.php:
|
10771 |
#, php-format
|
10772 |
msgid ""
|
10773 |
"Yes, it is possible. In order to see the related documentations, please <a "
|
@@ -10776,11 +10788,11 @@ msgstr ""
|
|
10776 |
"Ano, je to možné. Chcete-li zobrazit související dokumentaci, prosím <a href="
|
10777 |
"\"%s\" target=\"_blank\">klikněte sem</a>."
|
10778 |
|
10779 |
-
#: app/features/mec/support-page.php:
|
10780 |
msgid "Does MEC have default languages or it needs to be translated?"
|
10781 |
msgstr "Má MEC výchozí jazyky nebo je třeba jej přeložit?"
|
10782 |
|
10783 |
-
#: app/features/mec/support-page.php:
|
10784 |
#, fuzzy, php-format
|
10785 |
#| msgid ""
|
10786 |
#| "Yes, for some of the languages MEC has the translation file as default. "
|
@@ -10798,11 +10810,11 @@ msgstr ""
|
|
10798 |
"vyžadovat jejich aktualizace. Další informace naleznete <a href=\"%s\" "
|
10799 |
"target=\"_blank\"> kliknutím sem</a>."
|
10800 |
|
10801 |
-
#: app/features/mec/support-page.php:
|
10802 |
msgid "Can I have more than one calendar in one website?"
|
10803 |
msgstr "Mohu mít na jednom webu více než jeden kalendář?"
|
10804 |
|
10805 |
-
#: app/features/mec/support-page.php:
|
10806 |
msgid ""
|
10807 |
"Unfortunately, MEC does not support more than 1 calendar in a single "
|
10808 |
"website, however, it will be added in its upcoming updates."
|
@@ -10810,11 +10822,11 @@ msgstr ""
|
|
10810 |
"MEC bohužel nepodporuje více než 1 kalendář na jednom webu, bude však přidán "
|
10811 |
"do nadcházejících aktualizací."
|
10812 |
|
10813 |
-
#: app/features/mec/support-page.php:
|
10814 |
msgid "Can I import/export from/to MEC?"
|
10815 |
msgstr "Mohu importovat / exportovat z / do MEC?"
|
10816 |
|
10817 |
-
#: app/features/mec/support-page.php:
|
10818 |
msgid ""
|
10819 |
"Yes, you can get an XML export from MEC data or import the file you've "
|
10820 |
"exported to MEC. Also, if you are using one of the following plugins (The "
|
@@ -10826,62 +10838,62 @@ msgstr ""
|
|
10826 |
"calendarize it, EventOn, Events Schedule WP Plugin), pak můžete své události "
|
10827 |
"snadno přenést do MEC."
|
10828 |
|
10829 |
-
#: app/features/mec/support-page.php:
|
10830 |
msgid "Articles"
|
10831 |
msgstr "Články"
|
10832 |
|
10833 |
-
#: app/features/mec/support-page.php:
|
10834 |
msgid "MEC And Integrate With WooCommerce"
|
10835 |
msgstr "(MEC) a integrace s WooCommerce"
|
10836 |
|
10837 |
-
#: app/features/mec/support-page.php:
|
10838 |
#, fuzzy
|
10839 |
#| msgid "Direction on single event"
|
10840 |
msgid "How to remove comment box on single event?"
|
10841 |
msgstr "Směr na jednu událost"
|
10842 |
|
10843 |
-
#: app/features/mec/support-page.php:
|
10844 |
msgid "Setup Date Option On Shortcodes"
|
10845 |
msgstr "Možnost nastavení data na zkrácené kódy"
|
10846 |
|
10847 |
-
#: app/features/mec/support-page.php:
|
10848 |
#, fuzzy
|
10849 |
#| msgid "I want to export booking, what should I do?"
|
10850 |
msgid "No Event Found, what should I fix?"
|
10851 |
msgstr "Chci exportovat rezervaci, co mám dělat?"
|
10852 |
|
10853 |
-
#: app/features/mec/support-page.php:
|
10854 |
msgid "How Can I change the image size in shortcodes?"
|
10855 |
msgstr ""
|
10856 |
|
10857 |
-
#: app/features/mec/support-page.php:
|
10858 |
msgid "Booking Module Not Working"
|
10859 |
msgstr "Rezervační modul nefunguje"
|
10860 |
|
10861 |
-
#: app/features/mec/support-page.php:
|
10862 |
msgid "I want to export booking, what should I do?"
|
10863 |
msgstr "Chci exportovat rezervaci, co mám dělat?"
|
10864 |
|
10865 |
-
#: app/features/mec/support-page.php:
|
10866 |
#, fuzzy
|
10867 |
#| msgid "Documentation"
|
10868 |
msgid "MEC developer documentation"
|
10869 |
msgstr "Dokumentace"
|
10870 |
|
10871 |
-
#: app/features/mec/support-page.php:
|
10872 |
msgid ""
|
10873 |
"You don’t need to register anywhere for support anymore.You can click the "
|
10874 |
"following button, and the chat box will open up to ask all your different "
|
10875 |
"questions using our various channels."
|
10876 |
msgstr ""
|
10877 |
|
10878 |
-
#: app/features/mec/support-page.php:
|
10879 |
msgid ""
|
10880 |
"<br><small style=\"color: #8a8a8a;\">Only enter your email address and the "
|
10881 |
"answers will be sent over to your mail box.</small>"
|
10882 |
msgstr ""
|
10883 |
|
10884 |
-
#: app/features/mec/support-page.php:
|
10885 |
#, fuzzy
|
10886 |
#| msgid "Create a support ticket"
|
10887 |
msgid "Create a Support Ticket"
|
@@ -11107,12 +11119,12 @@ msgid "Choose one of saved locations."
|
|
11107 |
msgstr "Vyberte jedno z uložených míst nebo vložte nové."
|
11108 |
|
11109 |
#: app/features/occurrences.php:494 app/features/organizers.php:280
|
11110 |
-
#: app/features/popup/event.php:
|
11111 |
msgid "Hide organizer"
|
11112 |
msgstr "Skrýt organizátora"
|
11113 |
|
11114 |
#: app/features/occurrences.php:502 app/features/organizers.php:289
|
11115 |
-
#: app/features/popup/event.php:
|
11116 |
msgid "Choose one of saved organizers or insert new one below."
|
11117 |
msgstr "Vyberte některého z uložených organizátorů nebo vložte nového."
|
11118 |
|
@@ -11125,7 +11137,7 @@ msgid "Insert organizer email address."
|
|
11125 |
msgstr "Vložit email organizátora."
|
11126 |
|
11127 |
#: app/features/organizers.php:120 app/features/organizers.php:157
|
11128 |
-
#: app/features/organizers.php:308 app/features/popup/event.php:
|
11129 |
msgid "Link to organizer page"
|
11130 |
msgstr "Odkaz na stránku organizátora"
|
11131 |
|
@@ -11139,32 +11151,32 @@ msgstr ""
|
|
11139 |
msgid "Contact info"
|
11140 |
msgstr "Kontaktní informace"
|
11141 |
|
11142 |
-
#: app/features/organizers.php:281 app/features/popup/event.php:
|
11143 |
msgid "Insert a new organizer"
|
11144 |
msgstr "Vložit nového organizátora"
|
11145 |
|
11146 |
-
#: app/features/organizers.php:300 app/features/popup/event.php:
|
11147 |
msgid "Phone number."
|
11148 |
msgstr "Telefonní číslo."
|
11149 |
|
11150 |
-
#: app/features/organizers.php:301 app/features/popup/event.php:
|
11151 |
msgid "eg. +1 (234) 5678"
|
11152 |
msgstr "např. + 420 123 456 789"
|
11153 |
|
11154 |
-
#: app/features/organizers.php:304 app/features/popup/event.php:
|
11155 |
msgid "Email address."
|
11156 |
msgstr "Emailová adresa."
|
11157 |
|
11158 |
-
#: app/features/organizers.php:305 app/features/popup/event.php:
|
11159 |
msgid "eg. john@smith.com"
|
11160 |
msgstr "např. info@itreseni.cz"
|
11161 |
|
11162 |
-
#: app/features/organizers.php:309 app/features/popup/event.php:
|
11163 |
msgid "eg. https://webnus.net"
|
11164 |
msgstr "např. https://webnus.net"
|
11165 |
|
11166 |
-
#: app/features/organizers.php:329 app/libraries/main.php:
|
11167 |
-
#: app/libraries/main.php:
|
11168 |
msgid "Other Organizers"
|
11169 |
msgstr "Další organizátoři"
|
11170 |
|
@@ -11174,75 +11186,75 @@ msgid ""
|
|
11174 |
msgstr ""
|
11175 |
"Pokud chcete, můžete kromě hlavního organizátora vybrat další organizátory."
|
11176 |
|
11177 |
-
#: app/features/popup/event.php:
|
11178 |
#, fuzzy
|
11179 |
#| msgid "Add Shortcode"
|
11180 |
msgid "Adding an Event..."
|
11181 |
msgstr "Přidat zkrácený kód"
|
11182 |
|
11183 |
-
#: app/features/popup/event.php:
|
11184 |
#, fuzzy
|
11185 |
#| msgid "Event Note"
|
11186 |
msgid "Event Name"
|
11187 |
msgstr "Poznámka události"
|
11188 |
|
11189 |
-
#: app/features/popup/event.php:
|
11190 |
msgid "Event name is required"
|
11191 |
msgstr ""
|
11192 |
|
11193 |
-
#: app/features/popup/event.php:
|
11194 |
#, fuzzy
|
11195 |
#| msgid "Choose one of saved locations or insert new one below."
|
11196 |
msgid "Choose one of saved locations or insert new one."
|
11197 |
msgstr "Vyberte jedno z uložených míst nebo vložte nové."
|
11198 |
|
11199 |
-
#: app/features/popup/event.php:
|
11200 |
#, fuzzy
|
11201 |
#| msgid "Location"
|
11202 |
msgid "Add Location"
|
11203 |
msgstr "Umístění"
|
11204 |
|
11205 |
-
#: app/features/popup/event.php:
|
11206 |
#, fuzzy
|
11207 |
#| msgid "Organizer"
|
11208 |
msgid "Add Organizer"
|
11209 |
msgstr "Organizátor"
|
11210 |
|
11211 |
-
#: app/features/popup/event.php:
|
11212 |
#, fuzzy
|
11213 |
#| msgid "Categories"
|
11214 |
msgid "All Categories"
|
11215 |
msgstr "Kategorie"
|
11216 |
|
11217 |
-
#: app/features/popup/event.php:
|
11218 |
msgid "Most Used"
|
11219 |
msgstr ""
|
11220 |
|
11221 |
-
#: app/features/popup/event.php:
|
11222 |
#, fuzzy
|
11223 |
#| msgid "Add New Event"
|
11224 |
msgid "Add New Category"
|
11225 |
msgstr "Přidat novou událost"
|
11226 |
|
11227 |
# v kontextu
|
11228 |
-
#: app/features/popup/event.php:
|
11229 |
#, fuzzy
|
11230 |
#| msgid "Featured Image"
|
11231 |
msgid "Set Featured Image"
|
11232 |
msgstr "Hlavní obrázek"
|
11233 |
|
11234 |
-
#: app/features/popup/event.php:
|
11235 |
msgid "Your Event Has Been Created."
|
11236 |
msgstr ""
|
11237 |
|
11238 |
-
#: app/features/popup/event.php:
|
11239 |
#: app/features/popup/shortcode.php:553
|
11240 |
msgid "Prev"
|
11241 |
msgstr ""
|
11242 |
|
11243 |
-
#: app/features/popup/event.php:
|
11244 |
-
#: app/features/popup/shortcode.php:554 app/modules/booking/steps/form.php:
|
11245 |
-
#: app/modules/booking/steps/tickets.php:
|
11246 |
#: app/skins/countdown/tpl.php:160 app/skins/countdown/tpl.php:207
|
11247 |
msgid "Next"
|
11248 |
msgstr "Další"
|
@@ -11535,8 +11547,8 @@ msgstr "Prosím %s/%s za účelem odeslání nových událostí."
|
|
11535 |
msgid "Other Dates"
|
11536 |
msgstr "Konec"
|
11537 |
|
11538 |
-
#: app/features/wc.php:113 app/features/wc.php:136 app/libraries/main.php:
|
11539 |
-
#: app/libraries/main.php:
|
11540 |
#: app/libraries/notifications.php:1632 app/libraries/notifications.php:1643
|
11541 |
#: app/libraries/notifications.php:1659 app/libraries/notifications.php:1987
|
11542 |
#: app/libraries/notifications.php:1988 app/libraries/transaction.php:180
|
@@ -11554,7 +11566,7 @@ msgstr ""
|
|
11554 |
msgid "Only %s slots remained for %s ticket so you cannot book %s ones."
|
11555 |
msgstr ""
|
11556 |
|
11557 |
-
#: app/features/wc.php:256 app/libraries/main.php:
|
11558 |
#, php-format
|
11559 |
msgid "Maximum allowed number of tickets that you can book is %s."
|
11560 |
msgstr ""
|
@@ -11597,78 +11609,78 @@ msgstr[2] ""
|
|
11597 |
msgid "Checkout"
|
11598 |
msgstr "Překontrolovat"
|
11599 |
|
11600 |
-
#: app/libraries/factory.php:
|
11601 |
msgid "M.E. Calendar"
|
11602 |
msgstr "M.E. Kalendář"
|
11603 |
|
11604 |
-
#: app/libraries/factory.php:
|
11605 |
msgctxt "plugin link"
|
11606 |
msgid "Upgrade to Pro Version"
|
11607 |
msgstr "Upgrade na verzi PRO"
|
11608 |
|
11609 |
-
#: app/libraries/factory.php:
|
11610 |
msgctxt "plugin link"
|
11611 |
msgid "Settings"
|
11612 |
msgstr "Nastavení"
|
11613 |
|
11614 |
-
#: app/libraries/factory.php:
|
11615 |
msgctxt "plugin link"
|
11616 |
msgid "Upgrade"
|
11617 |
msgstr "Upgrade"
|
11618 |
|
11619 |
-
#: app/libraries/factory.php:
|
11620 |
msgid "day"
|
11621 |
msgstr "den"
|
11622 |
|
11623 |
-
#: app/libraries/factory.php:
|
11624 |
#: app/skins/available_spot/tpl.php:143 app/skins/countdown/tpl.php:128
|
11625 |
#: app/skins/countdown/tpl.php:174 app/skins/countdown/tpl.php:225
|
11626 |
msgid "days"
|
11627 |
msgstr "dny"
|
11628 |
|
11629 |
-
#: app/libraries/factory.php:
|
11630 |
msgid "hour"
|
11631 |
msgstr "hodina"
|
11632 |
|
11633 |
-
#: app/libraries/factory.php:
|
11634 |
#: app/skins/available_spot/tpl.php:147 app/skins/countdown/tpl.php:134
|
11635 |
#: app/skins/countdown/tpl.php:180 app/skins/countdown/tpl.php:231
|
11636 |
msgid "hours"
|
11637 |
msgstr "hodiny"
|
11638 |
|
11639 |
-
#: app/libraries/factory.php:
|
11640 |
msgid "minute"
|
11641 |
msgstr "minuta"
|
11642 |
|
11643 |
-
#: app/libraries/factory.php:
|
11644 |
#: app/skins/available_spot/tpl.php:151 app/skins/countdown/tpl.php:140
|
11645 |
#: app/skins/countdown/tpl.php:186 app/skins/countdown/tpl.php:237
|
11646 |
msgid "minutes"
|
11647 |
msgstr "minuty"
|
11648 |
|
11649 |
-
#: app/libraries/factory.php:
|
11650 |
msgid "second"
|
11651 |
msgstr "vteřina"
|
11652 |
|
11653 |
-
#: app/libraries/factory.php:
|
11654 |
#: app/skins/available_spot/tpl.php:155 app/skins/countdown/tpl.php:146
|
11655 |
#: app/skins/countdown/tpl.php:192 app/skins/countdown/tpl.php:243
|
11656 |
msgid "seconds"
|
11657 |
msgstr "vteřiny"
|
11658 |
|
11659 |
-
#: app/libraries/factory.php:
|
11660 |
msgid "MEC Single Sidebar"
|
11661 |
msgstr "MEC Postranní panel"
|
11662 |
|
11663 |
-
#: app/libraries/factory.php:
|
11664 |
msgid "Custom sidebar for single and modal page of MEC."
|
11665 |
msgstr "Vlastní postranní panel pro jednu a modální stránku MEC."
|
11666 |
|
11667 |
-
#: app/libraries/factory.php:
|
11668 |
msgid "Notice:"
|
11669 |
msgstr ""
|
11670 |
|
11671 |
-
#: app/libraries/factory.php:
|
11672 |
msgid "This update includes only bug fixes."
|
11673 |
msgstr ""
|
11674 |
|
@@ -11711,33 +11723,33 @@ msgstr "Do např. 8:45"
|
|
11711 |
msgid "New Day"
|
11712 |
msgstr "Nový den"
|
11713 |
|
11714 |
-
#: app/libraries/main.php:376 app/libraries/main.php:
|
11715 |
-
#: app/libraries/main.php:
|
11716 |
msgid "Agenda View"
|
11717 |
msgstr "Zobrazení agendy"
|
11718 |
|
11719 |
-
#: app/libraries/main.php:377 app/libraries/main.php:
|
11720 |
-
#: app/libraries/main.php:
|
11721 |
msgid "Full Calendar"
|
11722 |
msgstr "Plný kalendář"
|
11723 |
|
11724 |
-
#: app/libraries/main.php:379 app/libraries/main.php:
|
11725 |
-
#: app/libraries/main.php:
|
11726 |
msgid "Calendar/Monthly View"
|
11727 |
msgstr "Kalendář / zobrazení měsíce"
|
11728 |
|
11729 |
-
#: app/libraries/main.php:382 app/libraries/main.php:
|
11730 |
-
#: app/libraries/main.php:
|
11731 |
msgid "Timetable View"
|
11732 |
msgstr "Zobrazení rozvrhu"
|
11733 |
|
11734 |
-
#: app/libraries/main.php:383 app/libraries/main.php:
|
11735 |
-
#: app/libraries/main.php:
|
11736 |
msgid "Masonry View"
|
11737 |
msgstr "Zobrazení zdi"
|
11738 |
|
11739 |
-
#: app/libraries/main.php:384 app/libraries/main.php:
|
11740 |
-
#: app/libraries/main.php:
|
11741 |
msgid "Map View"
|
11742 |
msgstr "Zobrazení mapy"
|
11743 |
|
@@ -11768,45 +11780,45 @@ msgstr "Zobrazení posuvníku"
|
|
11768 |
msgid "Timeline View"
|
11769 |
msgstr "Zobrazení rozvrhu"
|
11770 |
|
11771 |
-
#: app/libraries/main.php:392 app/libraries/main.php:
|
11772 |
-
#: app/libraries/main.php:
|
11773 |
#, fuzzy
|
11774 |
#| msgid "Google Calendar"
|
11775 |
msgid "General Calendar"
|
11776 |
msgstr "Kalendář Google"
|
11777 |
|
11778 |
-
#: app/libraries/main.php:451 app/libraries/main.php:
|
11779 |
-
#: app/libraries/main.php:
|
11780 |
msgid "SU"
|
11781 |
msgstr "NE"
|
11782 |
|
11783 |
-
#: app/libraries/main.php:452 app/libraries/main.php:
|
11784 |
-
#: app/libraries/main.php:
|
11785 |
msgid "MO"
|
11786 |
msgstr "PO"
|
11787 |
|
11788 |
-
#: app/libraries/main.php:453 app/libraries/main.php:
|
11789 |
-
#: app/libraries/main.php:
|
11790 |
msgid "TU"
|
11791 |
msgstr "ÚT"
|
11792 |
|
11793 |
-
#: app/libraries/main.php:454 app/libraries/main.php:
|
11794 |
-
#: app/libraries/main.php:
|
11795 |
msgid "WE"
|
11796 |
msgstr "ST"
|
11797 |
|
11798 |
-
#: app/libraries/main.php:455 app/libraries/main.php:
|
11799 |
-
#: app/libraries/main.php:
|
11800 |
msgid "TH"
|
11801 |
msgstr "ČT"
|
11802 |
|
11803 |
-
#: app/libraries/main.php:456 app/libraries/main.php:
|
11804 |
-
#: app/libraries/main.php:
|
11805 |
msgid "FR"
|
11806 |
msgstr "PÁ"
|
11807 |
|
11808 |
-
#: app/libraries/main.php:457 app/libraries/main.php:
|
11809 |
-
#: app/libraries/main.php:
|
11810 |
msgid "SA"
|
11811 |
msgstr "SO"
|
11812 |
|
@@ -11890,167 +11902,167 @@ msgstr ""
|
|
11890 |
msgid "find out more"
|
11891 |
msgstr ""
|
11892 |
|
11893 |
-
#: app/libraries/main.php:
|
11894 |
msgid "Events at this location"
|
11895 |
msgstr "Události na tomto místě"
|
11896 |
|
11897 |
-
#: app/libraries/main.php:
|
11898 |
msgid "Event at this location"
|
11899 |
msgstr "Událost na tomto místě"
|
11900 |
|
11901 |
-
#: app/libraries/main.php:
|
11902 |
msgid "Facebook"
|
11903 |
msgstr "Facebook"
|
11904 |
|
11905 |
-
#: app/libraries/main.php:
|
11906 |
msgid "Twitter"
|
11907 |
msgstr "Twitter"
|
11908 |
|
11909 |
-
#: app/libraries/main.php:
|
11910 |
msgid "Linkedin"
|
11911 |
msgstr "Linkedin"
|
11912 |
|
11913 |
-
#: app/libraries/main.php:
|
11914 |
msgid "VK"
|
11915 |
msgstr "VK"
|
11916 |
|
11917 |
-
#: app/libraries/main.php:
|
11918 |
msgid "Tumblr"
|
11919 |
msgstr ""
|
11920 |
|
11921 |
-
#: app/libraries/main.php:
|
11922 |
msgid "Pinterest"
|
11923 |
msgstr ""
|
11924 |
|
11925 |
-
#: app/libraries/main.php:
|
11926 |
msgid "Flipboard"
|
11927 |
msgstr ""
|
11928 |
|
11929 |
-
#: app/libraries/main.php:
|
11930 |
#, fuzzy
|
11931 |
#| msgid "Tickets"
|
11932 |
msgid "GetPocket"
|
11933 |
msgstr "Vstupenky"
|
11934 |
|
11935 |
-
#: app/libraries/main.php:
|
11936 |
msgid "Reddit"
|
11937 |
msgstr ""
|
11938 |
|
11939 |
-
#: app/libraries/main.php:
|
11940 |
msgid "WhatsApp"
|
11941 |
msgstr ""
|
11942 |
|
11943 |
-
#: app/libraries/main.php:
|
11944 |
msgid "Telegram"
|
11945 |
msgstr ""
|
11946 |
|
11947 |
-
#: app/libraries/main.php:
|
11948 |
msgid "Share on Facebook"
|
11949 |
msgstr "Sdílet na Facebooku"
|
11950 |
|
11951 |
-
#: app/libraries/main.php:
|
11952 |
msgid "Tweet"
|
11953 |
msgstr "Tweet"
|
11954 |
|
11955 |
-
#: app/libraries/main.php:
|
11956 |
#, fuzzy
|
11957 |
#| msgid "Share on Facebook"
|
11958 |
msgid "Share on Tumblr"
|
11959 |
msgstr "Sdílet na Facebooku"
|
11960 |
|
11961 |
-
#: app/libraries/main.php:
|
11962 |
msgid "Share on Pinterest"
|
11963 |
msgstr ""
|
11964 |
|
11965 |
-
#: app/libraries/main.php:
|
11966 |
#, fuzzy
|
11967 |
#| msgid "Share on Facebook"
|
11968 |
msgid "Share on Flipboard"
|
11969 |
msgstr "Sdílet na Facebooku"
|
11970 |
|
11971 |
-
#: app/libraries/main.php:
|
11972 |
#, fuzzy
|
11973 |
#| msgid "Share on Facebook"
|
11974 |
msgid "Share on GetPocket"
|
11975 |
msgstr "Sdílet na Facebooku"
|
11976 |
|
11977 |
-
#: app/libraries/main.php:
|
11978 |
#, fuzzy
|
11979 |
#| msgid "Share on Facebook"
|
11980 |
msgid "Share on Reddit"
|
11981 |
msgstr "Sdílet na Facebooku"
|
11982 |
|
11983 |
-
#: app/libraries/main.php:
|
11984 |
msgid "Share on Telegram"
|
11985 |
msgstr ""
|
11986 |
|
11987 |
-
#: app/libraries/main.php:
|
11988 |
msgid "Share on WhatsApp"
|
11989 |
msgstr ""
|
11990 |
|
11991 |
-
#: app/libraries/main.php:
|
11992 |
msgid "Custom Shortcode"
|
11993 |
msgstr "Uživatelské zkrácené kódy"
|
11994 |
|
11995 |
-
#: app/libraries/main.php:
|
11996 |
#, fuzzy
|
11997 |
#| msgid "The events are imported successfully!"
|
11998 |
msgid "Your booking has been verified successfully!"
|
11999 |
msgstr "Události byly úspěšně importovány!"
|
12000 |
|
12001 |
-
#: app/libraries/main.php:
|
12002 |
msgid "Your booking already verified!"
|
12003 |
msgstr "Vaše rezervace již byla ověřena!"
|
12004 |
|
12005 |
-
#: app/libraries/main.php:
|
12006 |
msgid "Your booking cannot verify!"
|
12007 |
msgstr "Vaši rezervaci nelze ověřit!"
|
12008 |
|
12009 |
-
#: app/libraries/main.php:
|
12010 |
msgid "Your booking successfully canceled."
|
12011 |
msgstr "Vaše rezervace byla úspěšně zrušena."
|
12012 |
|
12013 |
-
#: app/libraries/main.php:
|
12014 |
msgid "Your booking already canceled!"
|
12015 |
msgstr "Vaše rezervace již byla zrušena!"
|
12016 |
|
12017 |
-
#: app/libraries/main.php:
|
12018 |
#, fuzzy
|
12019 |
#| msgid "The event is finished."
|
12020 |
msgid "The event is already finished!"
|
12021 |
msgstr "Událost je ukončena."
|
12022 |
|
12023 |
-
#: app/libraries/main.php:
|
12024 |
msgid "The cancelation window is not started yet."
|
12025 |
msgstr ""
|
12026 |
|
12027 |
-
#: app/libraries/main.php:
|
12028 |
msgid "The cancelation window is passed."
|
12029 |
msgstr ""
|
12030 |
|
12031 |
-
#: app/libraries/main.php:
|
12032 |
msgid "Your booking cannot be canceled."
|
12033 |
msgstr "Vaši rezervaci nelze zrušit."
|
12034 |
|
12035 |
-
#: app/libraries/main.php:
|
12036 |
msgid "You canceled the payment successfully."
|
12037 |
msgstr "Platbu jste úspěšně zrušili."
|
12038 |
|
12039 |
-
#: app/libraries/main.php:
|
12040 |
msgid "You returned from payment gateway successfully."
|
12041 |
msgstr "Úspěšně jste se vrátili z platební brány."
|
12042 |
|
12043 |
-
#: app/libraries/main.php:
|
12044 |
-
#: app/libraries/main.php:
|
12045 |
msgid "Cannot find the invoice!"
|
12046 |
msgstr "Fakturu nelze najít!"
|
12047 |
|
12048 |
-
#: app/libraries/main.php:
|
12049 |
-
#: app/libraries/main.php:
|
12050 |
msgid "Invoice is invalid."
|
12051 |
msgstr "Faktura je neplatná."
|
12052 |
|
12053 |
-
#: app/libraries/main.php:
|
12054 |
#, fuzzy
|
12055 |
#| msgid ""
|
12056 |
#| "Your booking still is not confirmed. You able download it after "
|
@@ -12060,214 +12072,214 @@ msgid ""
|
|
12060 |
msgstr ""
|
12061 |
"Vaše rezervace stále není potvrzena. Můžete si ji stáhnout po potvrzení!"
|
12062 |
|
12063 |
-
#: app/libraries/main.php:
|
12064 |
msgid "Booking Not Confirmed."
|
12065 |
msgstr "Rezervace nebyla potvrzena."
|
12066 |
|
12067 |
-
#: app/libraries/main.php:
|
12068 |
msgid "Cannot find the booking!"
|
12069 |
msgstr "Nemohu najít rezervaci!"
|
12070 |
|
12071 |
-
#: app/libraries/main.php:
|
12072 |
msgid "Booking is invalid."
|
12073 |
msgstr "Rezervace není platná."
|
12074 |
|
12075 |
-
#: app/libraries/main.php:
|
12076 |
#, fuzzy
|
12077 |
#| msgid "Sorry! You don't have access to modify this event."
|
12078 |
msgid "You don't have access to view this invoice!"
|
12079 |
msgstr "Promiňte! Nemáte přístup k úpravě této události."
|
12080 |
|
12081 |
-
#: app/libraries/main.php:
|
12082 |
#, fuzzy
|
12083 |
#| msgid "Invoice is invalid."
|
12084 |
msgid "Key is invalid."
|
12085 |
msgstr "Faktura je neplatná."
|
12086 |
|
12087 |
-
#: app/libraries/main.php:
|
12088 |
#, php-format
|
12089 |
msgid "%s Invoice"
|
12090 |
msgstr "%s Faktura"
|
12091 |
|
12092 |
-
#: app/libraries/main.php:
|
12093 |
#, fuzzy
|
12094 |
#| msgid "Date and Time"
|
12095 |
msgid "Date & Times"
|
12096 |
msgstr "Datum a čas"
|
12097 |
|
12098 |
-
#: app/libraries/main.php:
|
12099 |
#, fuzzy
|
12100 |
#| msgid "Date and Time"
|
12101 |
msgid "Date & Time"
|
12102 |
msgstr "Datum a čas"
|
12103 |
|
12104 |
-
#: app/libraries/main.php:
|
12105 |
#, fuzzy, php-format
|
12106 |
#| msgid "Custom Styles"
|
12107 |
msgid "%s Fields"
|
12108 |
msgstr "Vlastní styly"
|
12109 |
|
12110 |
-
#: app/libraries/main.php:
|
12111 |
msgid "Billing"
|
12112 |
msgstr "Fakturace"
|
12113 |
|
12114 |
-
#: app/libraries/main.php:
|
12115 |
msgid "Total"
|
12116 |
msgstr "Celkem"
|
12117 |
|
12118 |
-
#: app/libraries/main.php:
|
12119 |
#, fuzzy
|
12120 |
#| msgid "Payment Gateways"
|
12121 |
msgid "Payment"
|
12122 |
msgstr "Platební brány"
|
12123 |
|
12124 |
-
#: app/libraries/main.php:
|
12125 |
#, fuzzy
|
12126 |
#| msgid "Payment Gateways"
|
12127 |
msgid "Payment Time"
|
12128 |
msgstr "Platební brány"
|
12129 |
|
12130 |
-
#: app/libraries/main.php:
|
12131 |
#, fuzzy
|
12132 |
#| msgid "Confirmed"
|
12133 |
msgid "Not Confirmed"
|
12134 |
msgstr "Potvrzeno"
|
12135 |
|
12136 |
-
#: app/libraries/main.php:
|
12137 |
msgid "Request is not valid."
|
12138 |
msgstr "Požadavek není platný."
|
12139 |
|
12140 |
-
#: app/libraries/main.php:
|
12141 |
msgid "iCal export stopped!"
|
12142 |
msgstr "iCal export byl zastaven!"
|
12143 |
|
12144 |
-
#: app/libraries/main.php:
|
12145 |
#, fuzzy
|
12146 |
#| msgid "Block Editor"
|
12147 |
msgid "HTML Editor"
|
12148 |
msgstr "Editor bloků"
|
12149 |
|
12150 |
-
#: app/libraries/main.php:
|
12151 |
msgid "Consider the first item as a placeholder"
|
12152 |
msgstr ""
|
12153 |
|
12154 |
-
#: app/libraries/main.php:
|
12155 |
msgid "Free"
|
12156 |
msgstr "Zdarma"
|
12157 |
|
12158 |
-
#: app/libraries/main.php:
|
12159 |
msgid "M.E. Calender"
|
12160 |
msgstr "M.E. Kalendář"
|
12161 |
|
12162 |
-
#: app/libraries/main.php:
|
12163 |
#, php-format
|
12164 |
msgid "Copy of %s"
|
12165 |
msgstr "Kopie %s"
|
12166 |
|
12167 |
-
#: app/libraries/main.php:
|
12168 |
msgid "Booked an event."
|
12169 |
msgstr "Událost byla rezervována."
|
12170 |
|
12171 |
-
#: app/libraries/main.php:
|
12172 |
#, php-format
|
12173 |
msgid "%s booked %s event."
|
12174 |
msgstr "%s zarezervoval %s událost."
|
12175 |
|
12176 |
-
#: app/libraries/main.php:
|
12177 |
msgid "Taxonomies"
|
12178 |
msgstr "Taxonomie"
|
12179 |
|
12180 |
# Mrknout na kontext
|
12181 |
-
#: app/libraries/main.php:
|
12182 |
msgid "Category Plural Label"
|
12183 |
msgstr "Štítek množné kategorie"
|
12184 |
|
12185 |
# Mrknout na kontext
|
12186 |
-
#: app/libraries/main.php:
|
12187 |
msgid "Category Singular Label"
|
12188 |
msgstr "Štítek jednotné kategorie"
|
12189 |
|
12190 |
-
#: app/libraries/main.php:
|
12191 |
msgid "Label Plural Label"
|
12192 |
msgstr "Štítek množného štítku"
|
12193 |
|
12194 |
-
#: app/libraries/main.php:
|
12195 |
msgid "Label Singular Label"
|
12196 |
msgstr "Štítek jednotného štítku"
|
12197 |
|
12198 |
-
#: app/libraries/main.php:
|
12199 |
msgid "label"
|
12200 |
msgstr "štítek"
|
12201 |
|
12202 |
-
#: app/libraries/main.php:
|
12203 |
msgid "Location Plural Label"
|
12204 |
msgstr "Štítek množného umístění"
|
12205 |
|
12206 |
-
#: app/libraries/main.php:
|
12207 |
msgid "Location Singular Label"
|
12208 |
msgstr "Štítek jednotného umístění"
|
12209 |
|
12210 |
-
#: app/libraries/main.php:
|
12211 |
msgid "Organizer Plural Label"
|
12212 |
msgstr "Štítek množného organizátora"
|
12213 |
|
12214 |
-
#: app/libraries/main.php:
|
12215 |
msgid "Organizer Singular Label"
|
12216 |
msgstr "Štítek jednotného organizátora"
|
12217 |
|
12218 |
-
#: app/libraries/main.php:
|
12219 |
msgid "Speaker Plural Label"
|
12220 |
msgstr "Štítek množného řečníka"
|
12221 |
|
12222 |
-
#: app/libraries/main.php:
|
12223 |
msgid "Speaker Singular Label"
|
12224 |
msgstr "Štítek jednotného řečníka"
|
12225 |
|
12226 |
-
#: app/libraries/main.php:
|
12227 |
msgid "Sunday abbreviation"
|
12228 |
msgstr "Neděle zkratka"
|
12229 |
|
12230 |
-
#: app/libraries/main.php:
|
12231 |
msgid "Monday abbreviation"
|
12232 |
msgstr "Pondělí zkratka"
|
12233 |
|
12234 |
-
#: app/libraries/main.php:
|
12235 |
msgid "Tuesday abbreviation"
|
12236 |
msgstr "Úterý zkratka"
|
12237 |
|
12238 |
-
#: app/libraries/main.php:
|
12239 |
msgid "Wednesday abbreviation"
|
12240 |
msgstr "Středa zkratka"
|
12241 |
|
12242 |
-
#: app/libraries/main.php:
|
12243 |
msgid "Thursday abbreviation"
|
12244 |
msgstr "Čtvrtek zkratka"
|
12245 |
|
12246 |
-
#: app/libraries/main.php:
|
12247 |
msgid "Friday abbreviation"
|
12248 |
msgstr "Pátek zkratka"
|
12249 |
|
12250 |
-
#: app/libraries/main.php:
|
12251 |
msgid "Saturday abbreviation"
|
12252 |
msgstr "Sobota zkratka"
|
12253 |
|
12254 |
-
#: app/libraries/main.php:
|
12255 |
#, fuzzy
|
12256 |
#| msgid "Ticket (Singular)"
|
12257 |
msgid "Booking (Singular)"
|
12258 |
msgstr "Vstupenka (Jednotné)"
|
12259 |
|
12260 |
-
#: app/libraries/main.php:
|
12261 |
#, fuzzy
|
12262 |
#| msgid "Tickets (Plural)"
|
12263 |
msgid "Bookings (Plural)"
|
12264 |
msgstr "Vstupenky (Množné)"
|
12265 |
|
12266 |
-
#: app/libraries/main.php:
|
12267 |
msgid "Booking Success Message"
|
12268 |
msgstr "Zpráva o úspěchu rezervace"
|
12269 |
|
12270 |
-
#: app/libraries/main.php:
|
12271 |
#, fuzzy
|
12272 |
#| msgid ""
|
12273 |
#| "Thanks for your booking. Your tickets booked, booking verification might "
|
@@ -12279,73 +12291,73 @@ msgstr ""
|
|
12279 |
"Děkujeme za vaši rezervaci. Vaše vstupenky jsou rezervovány, může být nutné "
|
12280 |
"ověřit rezervaci. Zkontrolujte prosím svůj e-mail."
|
12281 |
|
12282 |
-
#: app/libraries/main.php:
|
12283 |
#, fuzzy
|
12284 |
#| msgid "Booking Success Message"
|
12285 |
msgid "Booking Restriction Message 1"
|
12286 |
msgstr "Zpráva o úspěchu rezervace"
|
12287 |
|
12288 |
-
#: app/libraries/main.php:
|
12289 |
#, php-format
|
12290 |
msgid ""
|
12291 |
"You selected %s tickets to book but maximum number of tikets per user is %s "
|
12292 |
"tickets."
|
12293 |
msgstr ""
|
12294 |
|
12295 |
-
#: app/libraries/main.php:
|
12296 |
#, fuzzy
|
12297 |
#| msgid "Booking Success Message"
|
12298 |
msgid "Booking Restriction Message 2"
|
12299 |
msgstr "Zpráva o úspěchu rezervace"
|
12300 |
|
12301 |
-
#: app/libraries/main.php:
|
12302 |
#, php-format
|
12303 |
msgid ""
|
12304 |
"You booked %s tickets till now but maximum number of tickets per user is %s "
|
12305 |
"tickets."
|
12306 |
msgstr ""
|
12307 |
|
12308 |
-
#: app/libraries/main.php:
|
12309 |
#, fuzzy
|
12310 |
#| msgid "Booking Success Message"
|
12311 |
msgid "Booking IP Restriction Message"
|
12312 |
msgstr "Zpráva o úspěchu rezervace"
|
12313 |
|
12314 |
-
#: app/libraries/main.php:
|
12315 |
#, fuzzy
|
12316 |
#| msgid "Booking Options"
|
12317 |
msgid "Booking Button"
|
12318 |
msgstr "Možnosti rezervace"
|
12319 |
|
12320 |
-
#: app/libraries/main.php:
|
12321 |
#, fuzzy
|
12322 |
#| msgid "Booking Form"
|
12323 |
msgid "Book Now"
|
12324 |
msgstr "Rezervační formulář"
|
12325 |
|
12326 |
-
#: app/libraries/main.php:
|
12327 |
msgid "Ticket (Singular)"
|
12328 |
msgstr "Vstupenka (Jednotné)"
|
12329 |
|
12330 |
-
#: app/libraries/main.php:
|
12331 |
msgid "Tickets (Plural)"
|
12332 |
msgstr "Vstupenky (Množné)"
|
12333 |
|
12334 |
-
#: app/libraries/main.php:
|
12335 |
msgid "Others"
|
12336 |
msgstr "Další"
|
12337 |
|
12338 |
-
#: app/libraries/main.php:
|
12339 |
#: app/widgets/single.php:150
|
12340 |
msgid "Register Button"
|
12341 |
msgstr "Registrační tlačítko"
|
12342 |
|
12343 |
-
#: app/libraries/main.php:
|
12344 |
msgid "View Detail Button"
|
12345 |
msgstr "Tlačítko Zobrazit detail"
|
12346 |
|
12347 |
-
#: app/libraries/main.php:
|
12348 |
-
#: app/skins/carousel/render.php:105 app/skins/carousel/render.php:
|
12349 |
#: app/skins/grid/render.php:94 app/skins/grid/render.php:153
|
12350 |
#: app/skins/grid/render.php:214 app/skins/grid/render.php:237
|
12351 |
#: app/skins/list/render.php:90 app/skins/list/render.php:210
|
@@ -12356,148 +12368,148 @@ msgstr "Tlačítko Zobrazit detail"
|
|
12356 |
msgid "View Detail"
|
12357 |
msgstr "Zobrazit detail"
|
12358 |
|
12359 |
-
#: app/libraries/main.php:
|
12360 |
msgid "Event Detail Button"
|
12361 |
msgstr "Tlačítko Detail události"
|
12362 |
|
12363 |
-
#: app/libraries/main.php:
|
12364 |
msgid "Event Detail"
|
12365 |
msgstr "Zobrazit událost"
|
12366 |
|
12367 |
-
#: app/libraries/main.php:
|
12368 |
msgid "EventON"
|
12369 |
msgstr "EventON"
|
12370 |
|
12371 |
-
#: app/libraries/main.php:
|
12372 |
msgid "The Events Calendar"
|
12373 |
msgstr "The Events Calendar"
|
12374 |
|
12375 |
-
#: app/libraries/main.php:
|
12376 |
msgid "Events Schedule WP Plugin"
|
12377 |
msgstr "Events Schedule WP Plugin"
|
12378 |
|
12379 |
-
#: app/libraries/main.php:
|
12380 |
msgid "Calendarize It"
|
12381 |
msgstr "Calendarize It"
|
12382 |
|
12383 |
-
#: app/libraries/main.php:
|
12384 |
#, fuzzy
|
12385 |
#| msgid "Event Speakers"
|
12386 |
msgid "Event Espresso"
|
12387 |
msgstr "Řečník události"
|
12388 |
|
12389 |
-
#: app/libraries/main.php:
|
12390 |
#, fuzzy
|
12391 |
#| msgid "Event Repeating (Recurring events)"
|
12392 |
msgid "Events Manager (Recurring)"
|
12393 |
msgstr "Opakování události (opakující se události)"
|
12394 |
|
12395 |
-
#: app/libraries/main.php:
|
12396 |
#, fuzzy
|
12397 |
#| msgid "Modern Events Calendar (Lite)"
|
12398 |
msgid "Events Manager (Single)"
|
12399 |
msgstr "Modern Events Calendar (Lite)"
|
12400 |
|
12401 |
-
#: app/libraries/main.php:
|
12402 |
#, fuzzy
|
12403 |
#| msgid "Modern Events Calendar (Lite)"
|
12404 |
msgid "WP Event Manager"
|
12405 |
msgstr "Modern Events Calendar (Lite)"
|
12406 |
|
12407 |
-
#: app/libraries/main.php:
|
12408 |
#, fuzzy
|
12409 |
#| msgid "Sunday"
|
12410 |
msgid "Sun"
|
12411 |
msgstr "Neděle"
|
12412 |
|
12413 |
-
#: app/libraries/main.php:
|
12414 |
#, fuzzy
|
12415 |
#| msgid "Monday"
|
12416 |
msgid "Mon"
|
12417 |
msgstr "Pondělí"
|
12418 |
|
12419 |
-
#: app/libraries/main.php:
|
12420 |
#, fuzzy
|
12421 |
#| msgid "Tel"
|
12422 |
msgid "Tue"
|
12423 |
msgstr "Tel"
|
12424 |
|
12425 |
-
#: app/libraries/main.php:
|
12426 |
msgid "Wed"
|
12427 |
msgstr ""
|
12428 |
|
12429 |
-
#: app/libraries/main.php:
|
12430 |
msgid "Thu"
|
12431 |
msgstr ""
|
12432 |
|
12433 |
-
#: app/libraries/main.php:
|
12434 |
#, fuzzy
|
12435 |
#| msgid "Friday"
|
12436 |
msgid "Fri"
|
12437 |
msgstr "Pátek"
|
12438 |
|
12439 |
-
#: app/libraries/main.php:
|
12440 |
#, fuzzy
|
12441 |
#| msgid "Start"
|
12442 |
msgid "Sat"
|
12443 |
msgstr "Začátek"
|
12444 |
|
12445 |
-
#: app/libraries/main.php:
|
12446 |
#: app/libraries/render.php:467
|
12447 |
msgid "Skin controller does not exist."
|
12448 |
msgstr "Ovladač vzhledu neexistuje."
|
12449 |
|
12450 |
-
#: app/libraries/main.php:
|
12451 |
msgid "Sold Out"
|
12452 |
msgstr "Vyprodáno"
|
12453 |
|
12454 |
-
#: app/libraries/main.php:
|
12455 |
#, fuzzy
|
12456 |
#| msgid "Ticket"
|
12457 |
msgid "Last Few Tickets"
|
12458 |
msgstr "Vstupenka"
|
12459 |
|
12460 |
-
#: app/libraries/main.php:
|
12461 |
#, fuzzy
|
12462 |
#| msgid "Upcoming Events"
|
12463 |
msgid "Ongoing"
|
12464 |
msgstr "Nadcházející události"
|
12465 |
|
12466 |
-
#: app/libraries/main.php:
|
12467 |
#, fuzzy
|
12468 |
#| msgid "Expired Events"
|
12469 |
msgid "Expired"
|
12470 |
msgstr "Události vypršely"
|
12471 |
|
12472 |
-
#: app/libraries/main.php:
|
12473 |
#, fuzzy
|
12474 |
#| msgid "minutes"
|
12475 |
msgid "Minutes"
|
12476 |
msgstr "minuty"
|
12477 |
|
12478 |
-
#: app/libraries/main.php:
|
12479 |
msgid "AM / PM"
|
12480 |
msgstr ""
|
12481 |
|
12482 |
-
#: app/libraries/main.php:
|
12483 |
msgid "AM"
|
12484 |
msgstr "dop."
|
12485 |
|
12486 |
-
#: app/libraries/main.php:
|
12487 |
msgid "PM"
|
12488 |
msgstr "odp."
|
12489 |
|
12490 |
-
#: app/libraries/main.php:
|
12491 |
msgid "Ongoing..."
|
12492 |
msgstr ""
|
12493 |
|
12494 |
-
#: app/libraries/main.php:
|
12495 |
#, fuzzy
|
12496 |
#| msgid "Expired Events"
|
12497 |
msgid "Expired!"
|
12498 |
msgstr "Události vypršely"
|
12499 |
|
12500 |
-
#: app/libraries/main.php:
|
12501 |
#, fuzzy
|
12502 |
#| msgid "Categories"
|
12503 |
msgid "Uncategorized"
|
@@ -12570,7 +12582,7 @@ msgid "+ %s to Google Calendar"
|
|
12570 |
msgstr "+ Přidat do Google kalendáře"
|
12571 |
|
12572 |
#: app/libraries/skins.php:1090 app/skins/full_calendar/tpl.php:133
|
12573 |
-
#: app/skins/general_calendar/tpl.php:
|
12574 |
msgid "Reset"
|
12575 |
msgstr ""
|
12576 |
|
@@ -12598,7 +12610,7 @@ msgstr "Možnosti ceny"
|
|
12598 |
msgid "Max Price"
|
12599 |
msgstr "Cena"
|
12600 |
|
12601 |
-
#: app/libraries/skins.php:1594 app/modules/booking/steps/tickets.php:
|
12602 |
msgid "Book Event"
|
12603 |
msgstr "Rezervovat událost"
|
12604 |
|
@@ -12680,7 +12692,7 @@ msgid "Discount Coupon"
|
|
12680 |
msgstr "Slevový kupon"
|
12681 |
|
12682 |
#: app/modules/booking/steps/checkout.php:138
|
12683 |
-
#: app/modules/booking/steps/form.php:
|
12684 |
msgid "Back"
|
12685 |
msgstr ""
|
12686 |
|
@@ -12690,61 +12702,61 @@ msgstr ""
|
|
12690 |
msgid "Attendee's Form"
|
12691 |
msgstr "Formulář účastníků"
|
12692 |
|
12693 |
-
#: app/modules/booking/steps/form.php:
|
12694 |
#, fuzzy, php-format
|
12695 |
#| msgid "Attendees Limit"
|
12696 |
msgid "Attendee #%s details — "
|
12697 |
msgstr "Limit účastníků"
|
12698 |
|
12699 |
-
#: app/modules/booking/steps/form.php:
|
12700 |
msgid "Fill other attendees information like the first form."
|
12701 |
msgstr "Vyplňte informace o dalších účastnících, jako v prvním formuláři."
|
12702 |
|
12703 |
-
#: app/modules/booking/steps/form.php:
|
12704 |
msgid "Username"
|
12705 |
msgstr ""
|
12706 |
|
12707 |
-
#: app/modules/booking/steps/form.php:
|
12708 |
-
#: app/modules/booking/steps/tickets.php:
|
12709 |
#, fuzzy
|
12710 |
#| msgid "Location"
|
12711 |
msgid "Add to Cart"
|
12712 |
msgstr "Umístění"
|
12713 |
|
12714 |
-
#: app/modules/booking/steps/form.php:
|
12715 |
msgid "Submit"
|
12716 |
msgstr "Potvrdit"
|
12717 |
|
12718 |
-
#: app/modules/booking/steps/tickets.php:
|
12719 |
msgid ""
|
12720 |
"By booking this event you can attend all occurrences. Some of them are "
|
12721 |
"listed below but there might be more."
|
12722 |
msgstr ""
|
12723 |
|
12724 |
-
#: app/modules/booking/steps/tickets.php:
|
12725 |
#, fuzzy
|
12726 |
#| msgid "Ticket time"
|
12727 |
msgid "1 Ticket selected."
|
12728 |
msgstr "Čas vstupenky"
|
12729 |
|
12730 |
-
#: app/modules/booking/steps/tickets.php:168
|
12731 |
#: app/modules/booking/steps/tickets.php:174
|
|
|
12732 |
#, php-format
|
12733 |
msgid "Available %s: <span>%s</span>"
|
12734 |
msgstr "K dispozici %s: <span>%s</span>"
|
12735 |
|
12736 |
-
#: app/modules/booking/steps/tickets.php:
|
12737 |
#, php-format
|
12738 |
msgid "The %s ticket sales has ended!"
|
12739 |
msgstr ""
|
12740 |
|
12741 |
-
#: app/modules/booking/steps/tickets.php:
|
12742 |
#, php-format
|
12743 |
msgid "The %s ticket is sold out. You can try another ticket or another date."
|
12744 |
msgstr ""
|
12745 |
"Vstupenka %s je vyprodána. Můžete vyzkoušet jinou vstupenku nebo jiné datum."
|
12746 |
|
12747 |
-
#: app/modules/booking/steps/tickets.php:
|
12748 |
#, fuzzy, php-format
|
12749 |
#| msgid ""
|
12750 |
#| "The %s ticket is sold out. You can try another ticket or another date."
|
@@ -12895,13 +12907,13 @@ msgstr "Načíst více"
|
|
12895 |
msgid "Available Spot(s):"
|
12896 |
msgstr "Dostupné spoty:"
|
12897 |
|
12898 |
-
#: app/skins/carousel/render.php:
|
12899 |
#: app/skins/countdown/tpl.php:200 app/skins/countdown/tpl.php:218
|
12900 |
#: app/skins/cover/tpl.php:68 app/skins/list/render.php:144
|
12901 |
msgid "EVENT DETAIL"
|
12902 |
msgstr "DETAIL UDÁLOSTI"
|
12903 |
|
12904 |
-
#: app/skins/carousel/render.php:
|
12905 |
msgid "View All Events"
|
12906 |
msgstr "Zobrazit všechny události"
|
12907 |
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: Modern Events Calendar Lite\n"
|
4 |
+
"POT-Creation-Date: 2022-03-15 11:57+0330\n"
|
5 |
+
"PO-Revision-Date: 2022-03-15 12:09+0330\n"
|
6 |
"Last-Translator: \n"
|
7 |
"Language-Team: \n"
|
8 |
"Language: cs_CZ\n"
|
24 |
#: app/addons/KC.php:68 app/addons/VC.php:59 app/features/ix/import.php:24
|
25 |
#: app/features/ix/import.php:48 app/features/ix/import.php:77
|
26 |
#: app/features/ix/thirdparty.php:26 app/features/mec.php:1341
|
27 |
+
#: app/features/mec.php:1365 app/features/mec/dashboard.php:55
|
28 |
#: app/features/mec/wizard.php:502 app/widgets/MEC.php:33
|
29 |
msgid "Modern Events Calendar"
|
30 |
msgstr "Moderní kalendář událostí"
|
150 |
msgstr ""
|
151 |
|
152 |
#: app/core/src/Books/Book.php:106 app/features/ix.php:275
|
153 |
+
#: app/libraries/main.php:7836 app/libraries/main.php:7863
|
154 |
msgid "Rejected"
|
155 |
msgstr "Odmítnuto"
|
156 |
|
157 |
#: app/core/src/Books/Book.php:111 app/features/ix.php:274
|
158 |
+
#: app/libraries/main.php:3220 app/libraries/main.php:7835
|
159 |
+
#: app/libraries/main.php:7855
|
160 |
msgid "Confirmed"
|
161 |
msgstr "Potvrzeno"
|
162 |
|
163 |
+
#: app/core/src/Books/Book.php:117 app/features/mec/settings.php:767
|
164 |
+
#: app/libraries/main.php:7837 app/libraries/main.php:7859
|
165 |
msgid "Pending"
|
166 |
msgstr "Nevyřízený"
|
167 |
|
168 |
#: app/core/src/Books/Book.php:186 app/features/ix.php:280
|
169 |
#: app/features/labels.php:119 app/features/labels.php:145
|
170 |
+
#: app/libraries/main.php:7884
|
171 |
msgid "Canceled"
|
172 |
msgstr "Zrušená"
|
173 |
|
176 |
#: app/features/mec/integrations.php:449 app/features/mec/integrations.php:471
|
177 |
#: app/features/mec/modules.php:406 app/features/mec/modules.php:428
|
178 |
#: app/features/mec/notifications.php:1922
|
179 |
+
#: app/features/mec/notifications.php:1945 app/features/mec/settings.php:1624
|
180 |
+
#: app/features/mec/settings.php:1646 app/features/mec/single.php:602
|
181 |
+
#: app/features/mec/single.php:624 app/libraries/main.php:7883
|
182 |
msgid "Verified"
|
183 |
msgstr "Ověřeno"
|
184 |
|
185 |
+
#: app/core/src/Books/Book.php:197 app/libraries/main.php:7885
|
186 |
msgid "Waiting"
|
187 |
msgstr "Čekající"
|
188 |
|
189 |
+
#: app/core/src/Books/BookingForm.php:40 app/skins/single.php:1073
|
190 |
#: app/skins/single/default.php:133 app/skins/single/m1.php:319
|
191 |
#: app/skins/single/m2.php:237 app/skins/single/modern.php:197
|
192 |
msgid "Sold out!"
|
210 |
#: app/core/src/SingleBuilder/Widgets/EventOrganizers/EventOrganizers.php:70
|
211 |
#: app/features/autoemails.php:60 app/features/events.php:606
|
212 |
#: app/features/events.php:2650 app/features/events.php:2717
|
213 |
+
#: app/features/events.php:2806 app/features/events.php:4449
|
214 |
#: app/features/fes.php:280 app/features/fes/form.php:812
|
215 |
#: app/features/login/login.php:5 app/features/mec/booking.php:61
|
216 |
#: app/features/mec/booking.php:798 app/features/mec/booking.php:896
|
217 |
+
#: app/features/mec/settings.php:310 app/features/mec/single.php:307
|
218 |
#: app/features/organizers.php:112 app/features/organizers.php:153
|
219 |
#: app/features/profile/profile.php:206 app/features/speakers.php:134
|
220 |
#: app/features/speakers.php:211 app/libraries/main.php:653
|
221 |
+
#: app/libraries/main.php:2077 app/libraries/main.php:2146
|
222 |
+
#: app/libraries/main.php:4056 app/libraries/notifications.php:2091
|
223 |
+
#: app/modules/booking/steps/form.php:69 app/modules/booking/steps/form.php:224
|
224 |
#: app/skins/single.php:1399 app/skins/single.php:1466
|
225 |
#: app/skins/single/default.php:345 app/skins/single/m1.php:141
|
226 |
#: app/skins/single/m2.php:61 app/widgets/single/default.php:184
|
242 |
#: app/core/src/Forms/FormFields.php:396 app/core/src/Forms/FormFields.php:442
|
243 |
#: app/core/src/Forms/FormFields.php:488 app/core/src/Forms/FormFields.php:544
|
244 |
#: app/core/src/Forms/FormFields.php:596 app/features/organizers.php:340
|
245 |
+
#: app/features/organizers.php:348 app/libraries/main.php:3964
|
246 |
+
#: app/libraries/main.php:3995 app/libraries/main.php:4025
|
247 |
+
#: app/libraries/main.php:4055 app/libraries/main.php:4086
|
248 |
+
#: app/libraries/main.php:4117 app/libraries/main.php:4147
|
249 |
+
#: app/libraries/main.php:4178 app/libraries/main.php:4209
|
250 |
+
#: app/libraries/main.php:4247 app/libraries/main.php:4271
|
251 |
+
#: app/libraries/main.php:4319 app/libraries/main.php:4367
|
252 |
+
#: app/libraries/main.php:4425 app/libraries/main.php:4475
|
253 |
msgid "Sort"
|
254 |
msgstr "Seřadit"
|
255 |
|
256 |
#: app/core/src/Forms/FormFields.php:52 app/core/src/Forms/SettingsForm.php:88
|
257 |
#: app/features/events.php:2716 app/features/events.php:2805
|
258 |
#: app/features/mec/booking.php:797 app/features/mec/booking.php:895
|
259 |
+
#: app/features/mec/single.php:306 app/libraries/main.php:3965
|
260 |
#: app/libraries/skins.php:1413
|
261 |
msgid "Text"
|
262 |
msgstr "Text"
|
267 |
#: app/core/src/Forms/FormFields.php:286 app/core/src/Forms/FormFields.php:317
|
268 |
#: app/core/src/Forms/FormFields.php:348 app/core/src/Forms/FormFields.php:403
|
269 |
#: app/core/src/Forms/FormFields.php:449 app/core/src/Forms/FormFields.php:495
|
270 |
+
#: app/core/src/Forms/FormFields.php:551 app/libraries/main.php:3972
|
271 |
+
#: app/libraries/main.php:4003 app/libraries/main.php:4033
|
272 |
+
#: app/libraries/main.php:4063 app/libraries/main.php:4094
|
273 |
+
#: app/libraries/main.php:4125 app/libraries/main.php:4155
|
274 |
+
#: app/libraries/main.php:4186 app/libraries/main.php:4218
|
275 |
+
#: app/libraries/main.php:4279 app/libraries/main.php:4327
|
276 |
+
#: app/libraries/main.php:4375 app/libraries/main.php:4433
|
277 |
msgid "Required Field"
|
278 |
msgstr "Požadovaná pole"
|
279 |
|
292 |
#: app/features/organizers.php:340 app/features/organizers.php:349
|
293 |
#: app/libraries/hourlyschedule.php:53 app/libraries/hourlyschedule.php:74
|
294 |
#: app/libraries/hourlyschedule.php:102 app/libraries/hourlyschedule.php:130
|
295 |
+
#: app/libraries/hourlyschedule.php:154 app/libraries/main.php:3975
|
296 |
+
#: app/libraries/main.php:4006 app/libraries/main.php:4036
|
297 |
+
#: app/libraries/main.php:4066 app/libraries/main.php:4097
|
298 |
+
#: app/libraries/main.php:4128 app/libraries/main.php:4158
|
299 |
+
#: app/libraries/main.php:4189 app/libraries/main.php:4227
|
300 |
+
#: app/libraries/main.php:4249 app/libraries/main.php:4282
|
301 |
+
#: app/libraries/main.php:4330 app/libraries/main.php:4385
|
302 |
+
#: app/libraries/main.php:4436 app/libraries/main.php:4476
|
303 |
#: app/libraries/ticketVariations.php:72
|
304 |
msgid "Remove"
|
305 |
msgstr "Odstranit"
|
310 |
#: app/core/src/Forms/FormFields.php:292 app/core/src/Forms/FormFields.php:323
|
311 |
#: app/core/src/Forms/FormFields.php:354 app/core/src/Forms/FormFields.php:409
|
312 |
#: app/core/src/Forms/FormFields.php:455 app/core/src/Forms/FormFields.php:508
|
313 |
+
#: app/core/src/Forms/FormFields.php:557 app/libraries/main.php:3978
|
314 |
+
#: app/libraries/main.php:4009 app/libraries/main.php:4039
|
315 |
+
#: app/libraries/main.php:4069 app/libraries/main.php:4100
|
316 |
+
#: app/libraries/main.php:4131 app/libraries/main.php:4161
|
317 |
+
#: app/libraries/main.php:4192 app/libraries/main.php:4230
|
318 |
+
#: app/libraries/main.php:4285 app/libraries/main.php:4333
|
319 |
+
#: app/libraries/main.php:4388 app/libraries/main.php:4439
|
320 |
msgid "Insert a label for this field"
|
321 |
msgstr "Vložte štítek pro toto pole"
|
322 |
|
333 |
msgstr "MEC Jméno"
|
334 |
|
335 |
#: app/core/src/Forms/FormFields.php:93 app/features/events.php:2714
|
336 |
+
#: app/features/mec/booking.php:795 app/libraries/main.php:3996
|
337 |
msgid "MEC Name"
|
338 |
msgstr "MEC Jméno"
|
339 |
|
340 |
#: app/core/src/Forms/FormFields.php:158 app/core/src/Forms/SettingsForm.php:83
|
341 |
#: app/features/events.php:2715 app/features/mec/booking.php:796
|
342 |
+
#: app/libraries/main.php:4026
|
343 |
msgid "MEC Email"
|
344 |
msgstr "MEC Email"
|
345 |
|
346 |
#: app/core/src/Forms/FormFields.php:219 app/features/mec/single.php:308
|
347 |
+
#: app/libraries/main.php:4087
|
348 |
msgid "URL"
|
349 |
msgstr ""
|
350 |
|
351 |
#: app/core/src/Forms/FormFields.php:250
|
352 |
#: app/core/src/Forms/SettingsForm.php:108 app/features/events.php:2720
|
353 |
+
#: app/features/mec/booking.php:801 app/libraries/main.php:4118
|
354 |
msgid "File"
|
355 |
msgstr "Soubor"
|
356 |
|
360 |
#: app/features/events.php:2807 app/features/fes.php:280
|
361 |
#: app/features/mec/booking.php:799 app/features/mec/booking.php:897
|
362 |
#: app/features/mec/single.php:309 app/features/profile/profile.php:59
|
363 |
+
#: app/features/wc.php:89 app/libraries/main.php:4148
|
364 |
+
#: app/libraries/skins.php:1325 app/modules/booking/steps/tickets.php:137
|
365 |
#: app/modules/next-event/details.php:145 app/skins/single.php:1191
|
366 |
#: app/skins/single/default.php:169 app/skins/single/m1.php:40
|
367 |
#: app/skins/single/modern.php:92 app/widgets/single/default.php:11
|
374 |
#: app/features/mec/booking.php:898 app/features/mec/single.php:310
|
375 |
#: app/features/organizers.php:104 app/features/organizers.php:149
|
376 |
#: app/features/speakers.php:126 app/features/speakers.php:207
|
377 |
+
#: app/features/speakers.php:294 app/libraries/main.php:4179
|
378 |
msgid "Tel"
|
379 |
msgstr "Tel"
|
380 |
|
382 |
#: app/core/src/Forms/SettingsForm.php:113 app/features/events.php:2721
|
383 |
#: app/features/events.php:2809 app/features/mec/booking.php:802
|
384 |
#: app/features/mec/booking.php:899 app/features/mec/single.php:311
|
385 |
+
#: app/libraries/main.php:4210
|
386 |
msgid "Textarea"
|
387 |
msgstr "Plocha textu"
|
388 |
|
389 |
#: app/core/src/Forms/FormFields.php:373
|
390 |
#: app/core/src/Forms/SettingsForm.php:138 app/features/events.php:2726
|
391 |
#: app/features/events.php:2814 app/features/mec/booking.php:807
|
392 |
+
#: app/features/mec/booking.php:904 app/features/mec/settings.php:366
|
393 |
+
#: app/features/mec/single.php:312 app/libraries/main.php:4248
|
394 |
msgid "Paragraph"
|
395 |
msgstr "Paragraf"
|
396 |
|
397 |
+
#: app/core/src/Forms/FormFields.php:378 app/libraries/main.php:4254
|
398 |
msgid "HTML and shortcode are allowed."
|
399 |
msgstr "HTML a zkrácené kódy jsou povoleny."
|
400 |
|
402 |
#: app/core/src/Forms/SettingsForm.php:118 app/features/events.php:2722
|
403 |
#: app/features/events.php:2810 app/features/mec/booking.php:131
|
404 |
#: app/features/mec/booking.php:803 app/features/mec/booking.php:900
|
405 |
+
#: app/features/mec/single.php:313 app/libraries/main.php:4272
|
406 |
msgid "Checkboxes"
|
407 |
msgstr "Zatržítko"
|
408 |
|
409 |
#: app/core/src/Forms/FormFields.php:421 app/core/src/Forms/FormFields.php:467
|
410 |
+
#: app/core/src/Forms/FormFields.php:520 app/libraries/main.php:4299
|
411 |
+
#: app/libraries/main.php:4347 app/libraries/main.php:4402
|
412 |
msgid "Option"
|
413 |
msgstr "Možnost"
|
414 |
|
416 |
#: app/core/src/Forms/SettingsForm.php:123 app/features/events.php:2723
|
417 |
#: app/features/events.php:2811 app/features/mec/booking.php:804
|
418 |
#: app/features/mec/booking.php:901 app/features/mec/single.php:314
|
419 |
+
#: app/libraries/main.php:4320
|
420 |
msgid "Radio Buttons"
|
421 |
msgstr "Přepínače"
|
422 |
|
505 |
#: app/features/mec/meta_boxes/search_form.php:1094
|
506 |
#: app/features/mec/meta_boxes/search_form.php:1116
|
507 |
#: app/features/mec/single.php:315 app/features/popup/settings.php:348
|
508 |
+
#: app/libraries/main.php:4368
|
509 |
msgid "Dropdown"
|
510 |
msgstr "Rozbalovací"
|
511 |
|
516 |
#: app/core/src/Forms/FormFields.php:545
|
517 |
#: app/core/src/Forms/SettingsForm.php:133 app/features/events.php:2725
|
518 |
#: app/features/events.php:2813 app/features/mec/booking.php:806
|
519 |
+
#: app/features/mec/booking.php:903 app/libraries/main.php:4426
|
520 |
msgid "Agreement"
|
521 |
msgstr "Smlouva"
|
522 |
|
523 |
+
#: app/core/src/Forms/FormFields.php:557 app/libraries/main.php:4439
|
524 |
#, fuzzy, php-format
|
525 |
#| msgid "Integrate with MEC"
|
526 |
msgid "I agree with %s"
|
527 |
msgstr "Integrovat s MEC"
|
528 |
|
529 |
+
#: app/core/src/Forms/FormFields.php:557 app/libraries/main.php:4439
|
530 |
#, php-format
|
531 |
msgid "Instead of %s, the page title with a link will be show."
|
532 |
msgstr "Místo%s se zobrazí název stránky s odkazem."
|
533 |
|
534 |
+
#: app/core/src/Forms/FormFields.php:559 app/features/mec/settings.php:1170
|
535 |
+
#: app/libraries/main.php:4441
|
536 |
msgid "Agreement Page"
|
537 |
msgstr "Stránka smlouvy"
|
538 |
|
539 |
#: app/core/src/Forms/FormFields.php:570 app/features/profile/profile.php:62
|
540 |
+
#: app/libraries/main.php:4450
|
541 |
msgid "Status"
|
542 |
msgstr "Stav"
|
543 |
|
544 |
+
#: app/core/src/Forms/FormFields.php:572 app/libraries/main.php:4452
|
545 |
msgid "Checked by default"
|
546 |
msgstr "Ve výchozím nastavení zaškrtnuto"
|
547 |
|
548 |
+
#: app/core/src/Forms/FormFields.php:573 app/libraries/main.php:4453
|
549 |
msgid "Unchecked by default"
|
550 |
msgstr "Ve výchozím nastavení není zaškrtnuto"
|
551 |
|
552 |
+
#: app/core/src/Forms/FormFields.php:598 app/libraries/main.php:4477
|
553 |
msgid "Insert a label for this option"
|
554 |
msgstr "Vložte štítek pro tuto možnost"
|
555 |
|
556 |
+
#: app/core/src/Forms/FormFields.php:606 app/libraries/main.php:9107
|
557 |
msgid "Mapping with Profile Fields"
|
558 |
msgstr ""
|
559 |
|
696 |
|
697 |
#: app/core/src/Notifications/template-notification-settings.php:94
|
698 |
#: app/core/src/SingleBuilder/Widgets/EventMoreInfo/EventMoreInfo.php:49
|
699 |
+
#: app/features/dc.php:215 app/features/events.php:701
|
700 |
+
#: app/features/events.php:881 app/features/events.php:1234
|
701 |
+
#: app/features/events.php:1316 app/features/events.php:1404
|
702 |
+
#: app/features/events.php:1535 app/features/events.php:1660
|
703 |
+
#: app/features/events.php:1830 app/features/events.php:1843
|
704 |
+
#: app/features/events.php:2014 app/features/events.php:2029
|
705 |
+
#: app/features/events.php:2271 app/features/events.php:2283
|
706 |
+
#: app/features/events.php:2476 app/features/events.php:2513
|
707 |
+
#: app/features/fes/form.php:460 app/features/fes/form.php:768
|
708 |
+
#: app/features/fes/form.php:903 app/features/locations.php:341
|
709 |
+
#: app/features/mec/booking.php:113 app/features/mec/booking.php:189
|
710 |
+
#: app/features/mec/booking.php:202 app/features/mec/booking.php:238
|
711 |
+
#: app/features/mec/booking.php:303 app/features/mec/booking.php:336
|
712 |
+
#: app/features/mec/booking.php:349 app/features/mec/booking.php:415
|
713 |
+
#: app/features/mec/booking.php:466 app/features/mec/booking.php:602
|
714 |
+
#: app/features/mec/booking.php:632 app/features/mec/booking.php:698
|
715 |
+
#: app/features/mec/booking.php:708 app/features/mec/booking.php:730
|
716 |
+
#: app/features/mec/booking.php:740 app/features/mec/booking.php:1010
|
717 |
+
#: app/features/mec/booking.php:1038 app/features/mec/integrations.php:57
|
718 |
+
#: app/features/mec/integrations.php:70 app/features/mec/integrations.php:86
|
719 |
#: app/features/mec/meta_boxes/display_options.php:98
|
720 |
#: app/features/mec/meta_boxes/display_options.php:111
|
721 |
#: app/features/mec/meta_boxes/display_options.php:124
|
767 |
#: app/features/mec/settings.php:86 app/features/mec/settings.php:113
|
768 |
#: app/features/mec/settings.php:149 app/features/mec/settings.php:172
|
769 |
#: app/features/mec/settings.php:218 app/features/mec/settings.php:268
|
770 |
+
#: app/features/mec/settings.php:348 app/features/mec/settings.php:443
|
771 |
+
#: app/features/mec/settings.php:520 app/features/mec/settings.php:537
|
772 |
+
#: app/features/mec/settings.php:554 app/features/mec/settings.php:573
|
773 |
+
#: app/features/mec/settings.php:587 app/features/mec/settings.php:615
|
774 |
+
#: app/features/mec/settings.php:731 app/features/mec/settings.php:914
|
775 |
+
#: app/features/mec/settings.php:1133 app/features/mec/settings.php:1149
|
776 |
+
#: app/features/mec/settings.php:1314 app/features/mec/settings.php:1327
|
777 |
+
#: app/features/mec/settings.php:1343 app/features/mec/single.php:50
|
778 |
#: app/features/mec/single.php:66 app/features/mec/single.php:86
|
779 |
#: app/features/mec/single.php:104 app/features/mec/single.php:128
|
780 |
#: app/features/mec/single.php:145 app/features/mec/single.php:208
|
782 |
#: app/features/mec/styling.php:223 app/features/mec/styling.php:240
|
783 |
#: app/features/mec/styling.php:257 app/features/mec/styling.php:271
|
784 |
#: app/features/occurrences.php:472 app/features/occurrences.php:502
|
785 |
+
#: app/features/organizers.php:289 app/features/popup/event.php:131
|
786 |
+
#: app/features/popup/event.php:181 app/features/popup/settings.php:78
|
787 |
#: app/features/popup/settings.php:161 app/features/popup/settings.php:182
|
788 |
#: app/features/popup/settings.php:300 app/libraries/ticketVariations.php:50
|
789 |
#: app/libraries/ticketVariations.php:65 app/skins/single.php:1218
|
921 |
#: app/features/mec/meta_boxes/search_form.php:844
|
922 |
#: app/features/mec/meta_boxes/search_form.php:967
|
923 |
#: app/features/mec/meta_boxes/search_form.php:1054
|
924 |
+
#: app/features/mec/settings.php:1190 app/features/mec/settings.php:1253
|
925 |
#: app/features/mec/single.php:464 app/features/mec/single.php:517
|
926 |
#: app/features/popup/settings.php:220 app/features/popup/settings.php:259
|
927 |
+
#: app/features/search.php:91 app/libraries/main.php:7486
|
928 |
+
#: app/libraries/main.php:7547 app/libraries/search.php:256
|
929 |
#: app/libraries/skins.php:1126 app/skins/single.php:1095
|
930 |
#: app/skins/single/default.php:297 app/skins/single/m1.php:231
|
931 |
#: app/skins/single/m2.php:151 app/widgets/single/default.php:137
|
947 |
|
948 |
#: app/core/src/SingleBuilder/Widgets/EventCost/EventCost.php:47
|
949 |
#: app/features/events.php:432 app/features/events.php:1283
|
950 |
+
#: app/features/fes/form.php:870 app/features/mec/settings.php:1187
|
951 |
+
#: app/features/occurrences.php:514 app/libraries/main.php:7532
|
952 |
+
#: app/libraries/main.php:7579 app/libraries/skins.php:1441
|
953 |
#: app/skins/single.php:1126 app/skins/single/default.php:213
|
954 |
#: app/skins/single/m1.php:80 app/skins/single/modern.php:132
|
955 |
#: app/widgets/single/default.php:55
|
1030 |
#: app/features/events.php:4197 app/features/fes/form.php:1000
|
1031 |
#: app/features/labels.php:61 app/features/labels.php:227
|
1032 |
#: app/features/mec.php:525 app/features/mec/meta_boxes/filter.php:72
|
1033 |
+
#: app/features/mec/meta_boxes/filter.php:135 app/libraries/main.php:7487
|
1034 |
+
#: app/libraries/main.php:7548 app/skins/single.php:1253
|
1035 |
#: app/skins/single/default.php:245 app/skins/single/m1.php:95
|
1036 |
#: app/skins/single/modern.php:147 app/widgets/single/default.php:84
|
1037 |
msgid "Labels"
|
1080 |
#: app/features/mec/meta_boxes/search_form.php:852
|
1081 |
#: app/features/mec/meta_boxes/search_form.php:975
|
1082 |
#: app/features/mec/meta_boxes/search_form.php:1062
|
1083 |
+
#: app/features/mec/settings.php:1259 app/features/mec/single.php:472
|
1084 |
#: app/features/mec/single.php:525 app/features/occurrences.php:460
|
1085 |
#: app/features/occurrences.php:462 app/features/occurrences.php:471
|
1086 |
+
#: app/features/popup/event.php:121 app/features/popup/event.php:130
|
1087 |
#: app/features/popup/settings.php:228 app/features/popup/settings.php:267
|
1088 |
+
#: app/features/search.php:97 app/libraries/main.php:2947
|
1089 |
+
#: app/libraries/main.php:3226 app/libraries/main.php:7490
|
1090 |
+
#: app/libraries/main.php:7551 app/libraries/search.php:294
|
1091 |
#: app/libraries/skins.php:1181 app/skins/single.php:1022
|
1092 |
#: app/skins/single.php:1525 app/skins/single/default.php:266
|
1093 |
#: app/skins/single/m1.php:201 app/skins/single/m2.php:121
|
1121 |
#: app/core/src/SingleBuilder/Widgets/EventMoreInfo/EventMoreInfo.php:48
|
1122 |
#: app/features/events.php:1519 app/features/events.php:1532
|
1123 |
#: app/features/fes/form.php:838 app/features/occurrences.php:528
|
1124 |
+
#: app/libraries/main.php:7530 app/libraries/main.php:7577
|
1125 |
#: app/skins/single.php:1223 app/skins/single/default.php:230
|
1126 |
#: app/skins/single/m1.php:257 app/skins/single/m2.php:178
|
1127 |
#: app/widgets/single.php:126 app/widgets/single/default.php:69
|
1186 |
#: app/features/mec/meta_boxes/search_form.php:860
|
1187 |
#: app/features/mec/meta_boxes/search_form.php:983
|
1188 |
#: app/features/mec/meta_boxes/search_form.php:1070
|
1189 |
+
#: app/features/mec/settings.php:1265 app/features/mec/single.php:468
|
1190 |
#: app/features/mec/single.php:521 app/features/occurrences.php:490
|
1191 |
#: app/features/occurrences.php:492 app/features/occurrences.php:501
|
1192 |
#: app/features/organizers.php:58 app/features/organizers.php:208
|
1193 |
#: app/features/organizers.php:277 app/features/organizers.php:279
|
1194 |
+
#: app/features/organizers.php:288 app/features/popup/event.php:171
|
1195 |
+
#: app/features/popup/event.php:180 app/features/popup/settings.php:224
|
1196 |
#: app/features/popup/settings.php:263 app/features/search.php:103
|
1197 |
+
#: app/libraries/main.php:7492 app/libraries/main.php:7553
|
1198 |
#: app/libraries/search.php:314 app/libraries/skins.php:1210
|
1199 |
#: app/skins/single.php:1381 app/skins/single/default.php:327
|
1200 |
#: app/skins/single/m1.php:123 app/skins/single/m2.php:43
|
1235 |
msgstr "Registrační tlačítko"
|
1236 |
|
1237 |
#: app/core/src/SingleBuilder/Widgets/EventRegisterButton/EventRegisterButton.php:48
|
1238 |
+
#: app/libraries/main.php:7526 app/libraries/main.php:7573
|
1239 |
#: app/skins/available_spot/tpl.php:204 app/skins/carousel/render.php:105
|
1240 |
+
#: app/skins/carousel/render.php:144 app/skins/grid/render.php:94
|
1241 |
#: app/skins/grid/render.php:153 app/skins/grid/render.php:214
|
1242 |
#: app/skins/grid/render.php:237 app/skins/list/render.php:90
|
1243 |
#: app/skins/list/render.php:210 app/skins/masonry/render.php:151
|
1314 |
|
1315 |
#: app/core/src/SingleBuilder/Widgets/EventTime/EventTime.php:49
|
1316 |
#: app/features/booking/calendar_novel.php:145
|
1317 |
+
#: app/features/search_bar/search_result.php:12 app/libraries/main.php:7535
|
1318 |
+
#: app/libraries/main.php:7582 app/libraries/notifications.php:1632
|
1319 |
#: app/libraries/render.php:554 app/libraries/render.php:759
|
1320 |
#: app/libraries/render.php:983 app/libraries/render.php:1010
|
1321 |
#: app/libraries/skins.php:967 app/libraries/skins.php:972
|
1363 |
msgid "%s notification(s) sent."
|
1364 |
msgstr "Upozornění"
|
1365 |
|
1366 |
+
#: app/features/admincalendar.php:65
|
1367 |
+
#, fuzzy
|
1368 |
+
#| msgid "Classic"
|
1369 |
+
msgid "Classic View"
|
1370 |
+
msgstr "Klasický"
|
1371 |
+
|
1372 |
+
#: app/features/admincalendar.php:73
|
1373 |
+
#, fuzzy
|
1374 |
+
#| msgid "Monthly/Calendar View"
|
1375 |
+
msgid "Calendar View"
|
1376 |
+
msgstr "Měsíční / kalendářní zobrazení"
|
1377 |
+
|
1378 |
#: app/features/autoemails.php:61 app/features/mec.php:542
|
1379 |
#, fuzzy
|
1380 |
#| msgid "Email"
|
1463 |
msgid "Go to events page"
|
1464 |
msgstr "Zobrazit Mapy Google na stránce události"
|
1465 |
|
1466 |
+
#: app/features/cart/cart.php:43 app/features/events.php:4744
|
1467 |
#: app/features/fes.php:280 app/features/mec/booking.php:355
|
1468 |
+
#: app/features/wc.php:91 app/libraries/main.php:2999
|
1469 |
+
#: app/libraries/main.php:3113 app/libraries/main.php:3218
|
1470 |
+
#: app/libraries/main.php:3362
|
1471 |
msgid "Transaction ID"
|
1472 |
msgstr "ID transakce"
|
1473 |
|
1484 |
|
1485 |
#: app/features/cart/cart.php:45 app/features/events.php:1558
|
1486 |
#: app/features/events.php:1924 app/libraries/book.php:172
|
1487 |
+
#: app/libraries/main.php:7520 app/modules/booking/steps/tickets.php:174
|
1488 |
+
#: app/modules/booking/steps/tickets.php:180
|
1489 |
msgid "Tickets"
|
1490 |
msgstr "Vstupenky"
|
1491 |
|
1492 |
+
#: app/features/cart/cart.php:46 app/modules/booking/steps/tickets.php:130
|
1493 |
msgid "Dates"
|
1494 |
msgstr "Data"
|
1495 |
|
1505 |
msgid "Applied Coupon"
|
1506 |
msgstr "Aplikovat kupon"
|
1507 |
|
1508 |
+
#: app/features/cart/cart.php:77 app/libraries/main.php:3092
|
1509 |
+
#: app/libraries/main.php:3340
|
1510 |
#, fuzzy
|
1511 |
#| msgid "Coupons"
|
1512 |
msgid "Coupon Code"
|
1530 |
|
1531 |
#: app/features/cart/checkout.php:96 app/features/contextual.php:308
|
1532 |
#: app/features/events.php:397 app/features/mec/booking.php:92
|
1533 |
+
#: app/features/mec/notifications.php:45 app/features/mec/support-page.php:149
|
1534 |
+
#: app/features/mec/support-page.php:153 app/libraries/main.php:682
|
1535 |
#: app/libraries/main.php:683 app/libraries/main.php:687
|
1536 |
#: app/libraries/main.php:712 app/libraries/main.php:830
|
1537 |
+
#: app/libraries/main.php:3008 app/libraries/main.php:7510
|
1538 |
+
#: app/libraries/main.php:7512 app/modules/booking/steps/checkout.php:146
|
1539 |
msgid "Booking"
|
1540 |
msgstr "Rezervace"
|
1541 |
|
1546 |
msgstr "← Zpět na %s"
|
1547 |
|
1548 |
#: app/features/colors.php:50 app/features/fes/form.php:1024
|
1549 |
+
#: app/features/mec/settings.php:922
|
1550 |
msgid "Event Color"
|
1551 |
msgstr "Barva události"
|
1552 |
|
1557 |
msgstr "Barva události"
|
1558 |
|
1559 |
#: app/features/contextual.php:55 app/features/mec.php:546
|
1560 |
+
#: app/features/mec/dashboard.php:159 app/features/mec/support.php:20
|
1561 |
+
#: app/features/mec/wizard.php:534 app/features/popup/event.php:64
|
1562 |
#: app/features/popup/settings.php:30 app/features/popup/shortcode.php:39
|
1563 |
#: app/libraries/main.php:738
|
1564 |
msgid "Settings"
|
1566 |
|
1567 |
#: app/features/contextual.php:62 app/features/events.php:1565
|
1568 |
#: app/features/events.php:2655 app/features/mec/booking.php:760
|
1569 |
+
#: app/features/mec/booking.php:1036 app/features/mec/settings.php:1043
|
1570 |
#: app/features/mec/support.php:29
|
1571 |
msgid "Booking Form"
|
1572 |
msgstr "Rezervační formulář"
|
1595 |
"iframe>"
|
1596 |
|
1597 |
#: app/features/contextual.php:70 app/features/events.php:1573
|
1598 |
+
#: app/features/mec/booking.php:972 app/features/mec/support-page.php:154
|
1599 |
#: app/features/mec/support.php:36 app/libraries/main.php:690
|
1600 |
msgid "Payment Gateways"
|
1601 |
msgstr "Platební brány"
|
1611 |
"allowfullscreen></iframe>"
|
1612 |
|
1613 |
#: app/features/contextual.php:77 app/features/events.php:434
|
1614 |
+
#: app/features/mec/support-page.php:156 app/features/mec/support.php:45
|
1615 |
#: app/libraries/main.php:916
|
1616 |
msgid "Notifications"
|
1617 |
msgstr "Upozornění"
|
1697 |
"height=\"420\" src=\"https://www.youtube.com/embed/dqgt1b8X8hs\" frameborder="
|
1698 |
"\"0\" allowfullscreen></iframe>"
|
1699 |
|
1700 |
+
#: app/features/contextual.php:117 app/features/mec/support-page.php:136
|
1701 |
msgid "General Options"
|
1702 |
msgstr "Obecné možnosti"
|
1703 |
|
1704 |
+
#: app/features/contextual.php:139 app/features/mec/settings.php:565
|
1705 |
#: app/libraries/main.php:645
|
1706 |
msgid "Slugs/Permalinks"
|
1707 |
msgstr "Název v URL / Trvalé odkazy"
|
1715 |
msgid "Currency Options"
|
1716 |
msgstr "Možnosti Měna"
|
1717 |
|
1718 |
+
#: app/features/contextual.php:182 app/features/mec/support-page.php:139
|
1719 |
msgid "Google Maps Options"
|
1720 |
msgstr "Možnosti Google Maps"
|
1721 |
|
1736 |
msgid "Next Event Module"
|
1737 |
msgstr "Modul Další události"
|
1738 |
|
1739 |
+
#: app/features/contextual.php:286 app/features/mec/settings.php:719
|
1740 |
+
#: app/features/mec/support-page.php:137 app/libraries/main.php:649
|
1741 |
msgid "Frontend Event Submission"
|
1742 |
msgstr "Předání události frontendu"
|
1743 |
|
1755 |
msgid "BuddyPress Integration"
|
1756 |
msgstr "Integrace BuddyPress"
|
1757 |
|
1758 |
+
#: app/features/contextual.php:334 app/features/mec/settings.php:1299
|
1759 |
msgid "Mailchimp Integration"
|
1760 |
msgstr "Integrace Mailchimp"
|
1761 |
|
1764 |
msgstr "Aktivace MEC"
|
1765 |
|
1766 |
#: app/features/dlfile.php:138 app/features/events.php:1570
|
1767 |
+
#: app/features/mec/booking.php:465 app/features/mec/settings.php:1084
|
1768 |
#, fuzzy
|
1769 |
#| msgid "Download ICS file"
|
1770 |
msgid "Downloadable File"
|
1807 |
msgstr ""
|
1808 |
|
1809 |
#: app/features/dlfile.php:297 app/features/events.php:3874
|
1810 |
+
#: app/features/events.php:4183 app/features/events.php:4738
|
1811 |
#: app/features/fes/form.php:262 app/features/mec/booking.php:690
|
1812 |
#: app/features/mec/booking.php:722 app/features/mec/styling.php:134
|
1813 |
#: app/libraries/hourlyschedule.php:49 app/libraries/hourlyschedule.php:65
|
1875 |
msgstr "Další výskyt"
|
1876 |
|
1877 |
#: app/features/emails/details.php:40 app/features/events.php:192
|
1878 |
+
#: app/features/ix/export.php:37 app/features/mec/dashboard.php:250
|
1879 |
+
#: app/libraries/main.php:6505 app/libraries/main.php:6525
|
1880 |
#: app/skins/daily_view/tpl.php:84 app/skins/monthly_view/calendar_clean.php:46
|
1881 |
#: app/skins/monthly_view/tpl.php:76 app/skins/tile/tpl.php:85
|
1882 |
#: app/skins/yearly_view/tpl.php:73
|
1896 |
msgid "Add Event"
|
1897 |
msgstr "Přidat událost"
|
1898 |
|
1899 |
+
#: app/features/events.php:195 app/features/mec/dashboard.php:158
|
1900 |
msgid "Add New Event"
|
1901 |
msgstr "Přidat novou událost"
|
1902 |
|
1911 |
msgstr "Editace události"
|
1912 |
|
1913 |
#: app/features/events.php:199 app/features/fes/list.php:100
|
1914 |
+
#: app/features/popup/event.php:260
|
1915 |
msgid "View Event"
|
1916 |
msgstr "Zobrazit událost"
|
1917 |
|
1922 |
#: app/features/events.php:219 app/features/events.php:3831
|
1923 |
#: app/features/events.php:4198 app/features/fes/form.php:974
|
1924 |
#: app/features/mec.php:524 app/features/mec/meta_boxes/filter.php:69
|
1925 |
+
#: app/features/mec/meta_boxes/filter.php:81 app/libraries/main.php:7485
|
1926 |
+
#: app/libraries/main.php:7546
|
1927 |
msgid "Categories"
|
1928 |
msgstr "Kategorie"
|
1929 |
|
2041 |
msgid "Event Data"
|
2042 |
msgstr "Zobrazit událost"
|
2043 |
|
2044 |
+
#: app/features/events.php:428 app/features/mec/settings.php:968
|
2045 |
#: app/libraries/hourlyschedule.php:36 app/skins/single.php:1565
|
2046 |
msgid "Hourly Schedule"
|
2047 |
msgstr "Hodinový rozvrh"
|
2077 |
msgstr "Údaje hosta"
|
2078 |
|
2079 |
#: app/features/events.php:605 app/features/events.php:2641
|
2080 |
+
#: app/features/events.php:4446 app/features/fes.php:280
|
2081 |
#: app/features/fes/form.php:816 app/features/labels.php:184
|
2082 |
#: app/features/mec/booking.php:49 app/features/organizers.php:296
|
2083 |
+
#: app/features/popup/event.php:190 app/features/profile/profile.php:203
|
2084 |
#: app/libraries/notifications.php:2090 app/modules/booking/steps/form.php:60
|
2085 |
msgid "Name"
|
2086 |
msgstr "Jméno"
|
2115 |
#: app/features/mec/meta_boxes/display_options.php:2347
|
2116 |
#: app/features/mec/meta_boxes/display_options.php:2478
|
2117 |
#: app/features/mec/meta_boxes/display_options.php:2584
|
2118 |
+
#: app/features/popup/event.php:80
|
2119 |
msgid "Start Date"
|
2120 |
msgstr "Počátečná den"
|
2121 |
|
2130 |
#: app/features/mec/meta_boxes/display_options.php:788
|
2131 |
#: app/features/mec/meta_boxes/display_options.php:1618
|
2132 |
#: app/features/mec/meta_boxes/display_options.php:2363
|
2133 |
+
#: app/features/popup/event.php:97
|
2134 |
msgid "End Date"
|
2135 |
msgstr "Konečný den"
|
2136 |
|
2137 |
#: app/features/events.php:669 app/features/fes/form.php:326
|
2138 |
+
#: app/features/popup/event.php:114
|
2139 |
#, fuzzy
|
2140 |
#| msgid "All Day Event"
|
2141 |
msgid "All-day Event"
|
2185 |
|
2186 |
#: app/features/events.php:725 app/features/events.php:728
|
2187 |
#: app/features/fes/form.php:358 app/features/fes/form.php:361
|
2188 |
+
#: app/features/mec/settings.php:873
|
2189 |
#, fuzzy
|
2190 |
#| msgid "Countdown View"
|
2191 |
msgid "Countdown Method"
|
2209 |
msgstr "Viditelnost"
|
2210 |
|
2211 |
#: app/features/events.php:740 app/features/fes/form.php:374
|
2212 |
+
#: app/features/mec/settings.php:909 app/features/mec/settings.php:913
|
2213 |
#, fuzzy
|
2214 |
#| msgid "Visibility"
|
2215 |
msgid "Event Visibility"
|
2432 |
#: app/features/mec/notifications.php:1360
|
2433 |
#: app/features/mec/notifications.php:1511
|
2434 |
#: app/features/mec/notifications.php:1628
|
2435 |
+
#: app/features/mec/notifications.php:1778 app/features/mec/settings.php:885
|
2436 |
#: app/features/notifications.php:160 app/features/occurrences.php:511
|
2437 |
+
#: app/libraries/main.php:7531 app/libraries/main.php:7578
|
2438 |
#: app/widgets/single.php:122
|
2439 |
msgid "Event Cost"
|
2440 |
msgstr "Cena události"
|
2446 |
msgstr "Zobrazit britské jednotky počasí"
|
2447 |
|
2448 |
#: app/features/events.php:1300 app/features/fes/form.php:887
|
2449 |
+
#: app/features/mec/settings.php:597 app/features/mec/settings.php:599
|
2450 |
#: app/libraries/main.php:646
|
2451 |
msgid "Currency"
|
2452 |
msgstr "Měna"
|
2453 |
|
2454 |
#: app/features/events.php:1310 app/features/events.php:1315
|
2455 |
#: app/features/fes/form.php:897 app/features/fes/form.php:902
|
2456 |
+
#: app/features/mec/settings.php:609 app/features/mec/settings.php:614
|
2457 |
msgid "Currency Sign"
|
2458 |
msgstr "Symbol měny"
|
2459 |
|
2460 |
#: app/features/events.php:1316 app/features/fes/form.php:903
|
2461 |
+
#: app/features/mec/settings.php:615
|
2462 |
msgid "Default value will be \"currency\" if you leave it empty."
|
2463 |
msgstr "Výchozí hodnota bude „měna“, pokud ji necháte prázdnou."
|
2464 |
|
2465 |
#: app/features/events.php:1323 app/features/fes/form.php:910
|
2466 |
+
#: app/features/mec/settings.php:622
|
2467 |
msgid "Currency Position"
|
2468 |
msgstr "Pozice měny"
|
2469 |
|
2470 |
#: app/features/events.php:1326 app/features/fes/form.php:913
|
2471 |
+
#: app/features/mec/settings.php:625
|
2472 |
#, fuzzy
|
2473 |
#| msgid "Before $10"
|
2474 |
msgid "$10 (Before)"
|
2475 |
msgstr "Před $10"
|
2476 |
|
2477 |
#: app/features/events.php:1327 app/features/fes/form.php:914
|
2478 |
+
#: app/features/mec/settings.php:626
|
2479 |
msgid "$ 10 (Before with Space)"
|
2480 |
msgstr ""
|
2481 |
|
2482 |
#: app/features/events.php:1328 app/features/fes/form.php:915
|
2483 |
+
#: app/features/mec/settings.php:627
|
2484 |
#, fuzzy
|
2485 |
#| msgid "After"
|
2486 |
msgid "10$ (After)"
|
2487 |
msgstr "Po"
|
2488 |
|
2489 |
#: app/features/events.php:1329 app/features/fes/form.php:916
|
2490 |
+
#: app/features/mec/settings.php:628
|
2491 |
msgid "10 $ (After with Space)"
|
2492 |
msgstr ""
|
2493 |
|
2494 |
#: app/features/events.php:1334 app/features/fes/form.php:921
|
2495 |
+
#: app/features/mec/settings.php:633
|
2496 |
msgid "Thousand Separator"
|
2497 |
msgstr "Oddělovač tisíců"
|
2498 |
|
2499 |
#: app/features/events.php:1340 app/features/fes/form.php:927
|
2500 |
+
#: app/features/mec/settings.php:639
|
2501 |
msgid "Decimal Separator"
|
2502 |
msgstr "Oddělovač desítel"
|
2503 |
|
2504 |
#: app/features/events.php:1350 app/features/fes/form.php:937
|
2505 |
+
#: app/features/mec/settings.php:649
|
2506 |
msgid "No decimal"
|
2507 |
msgstr "Bez desetinných míst"
|
2508 |
|
2529 |
msgstr "Den 1"
|
2530 |
|
2531 |
#: app/features/events.php:1498 app/features/fes/form.php:831
|
2532 |
+
#: app/features/mec/settings.php:879 app/features/occurrences.php:521
|
2533 |
msgid "Event Links"
|
2534 |
msgstr "Odkazy na událost"
|
2535 |
|
2536 |
#: app/features/events.php:1501 app/features/events.php:1509
|
2537 |
+
#: app/features/fes/form.php:833 app/features/mec/settings.php:1188
|
2538 |
+
#: app/features/occurrences.php:523 app/libraries/main.php:7529
|
2539 |
+
#: app/libraries/main.php:7576
|
2540 |
msgid "Event Link"
|
2541 |
msgstr "Odkaz na událost"
|
2542 |
|
2590 |
"Pokud ji vyplníte, zobrazí se jako volitelný odkaz na stránce s podrobnostmi "
|
2591 |
"o události. Vložte celý odkaz včetně http (s): //"
|
2592 |
|
2593 |
+
#: app/features/events.php:1556 app/features/mec/settings.php:976
|
2594 |
msgid "Booking Options"
|
2595 |
msgstr "Možnosti rezervace"
|
2596 |
|
2597 |
#: app/features/events.php:1557 app/features/events.php:1857
|
2598 |
+
#: app/features/mec/settings.php:1013
|
2599 |
#, fuzzy
|
2600 |
#| msgid "Total user booking limits"
|
2601 |
msgid "Total User Booking Limits"
|
2606 |
msgstr "Poplatky"
|
2607 |
|
2608 |
#: app/features/events.php:1563 app/features/events.php:2556
|
2609 |
+
#: app/features/mec/settings.php:1055
|
2610 |
msgid "Ticket Variations / Options"
|
2611 |
msgstr "Varianty vstupenky / možnosti"
|
2612 |
|
2613 |
#: app/features/events.php:1567 app/features/mec/booking.php:1067
|
2614 |
+
#: app/features/mec/support-page.php:157
|
2615 |
msgid "Organizer Payment"
|
2616 |
msgstr "Platba organizátora"
|
2617 |
|
2618 |
+
#: app/features/events.php:1575 app/features/events.php:4299
|
2619 |
+
#: app/features/ix/export.php:58 app/libraries/main.php:7513
|
2620 |
msgid "Bookings"
|
2621 |
msgstr "Rezervace"
|
2622 |
|
2629 |
#: app/features/events.php:1653 app/features/events.php:2051
|
2630 |
#: app/features/events.php:2298 app/modules/booking/default.php:117
|
2631 |
#: app/modules/booking/default.php:222
|
|
|
2632 |
#: app/modules/booking/steps/tickets.php:174
|
2633 |
+
#: app/modules/booking/steps/tickets.php:180
|
2634 |
#: app/skins/available_spot/tpl.php:136
|
2635 |
msgid "Unlimited"
|
2636 |
msgstr "Neomezené"
|
2662 |
msgstr ""
|
2663 |
|
2664 |
#: app/features/events.php:1686 app/features/events.php:1700
|
2665 |
+
#: app/features/mec/settings.php:995
|
2666 |
#, fuzzy
|
2667 |
#| msgid "Next Occurrence"
|
2668 |
msgid "Book All Occurrences"
|
2684 |
msgstr ""
|
2685 |
|
2686 |
#: app/features/events.php:1727 app/features/mec/booking.php:135
|
2687 |
+
#: app/features/mec/settings.php:1001
|
2688 |
#, fuzzy
|
2689 |
#| msgid "General Options"
|
2690 |
msgid "Interval Options"
|
2718 |
msgid "Stop selling tickets after first occurrence."
|
2719 |
msgstr ""
|
2720 |
|
2721 |
+
#: app/features/events.php:1757 app/features/mec/settings.php:1007
|
2722 |
msgid "Automatic Approval"
|
2723 |
msgstr ""
|
2724 |
|
2863 |
#: app/features/mec/meta_boxes/search_form.php:1115
|
2864 |
#: app/features/mec/meta_boxes/search_form.php:1122
|
2865 |
#: app/features/mec/modules.php:115 app/features/mec/settings.php:98
|
2866 |
+
#: app/features/mec/settings.php:549 app/features/popup/settings.php:358
|
2867 |
msgid "Disabled"
|
2868 |
msgstr "Zakázaný"
|
2869 |
|
2882 |
msgstr "Potvrzení rezervace"
|
2883 |
|
2884 |
#: app/features/events.php:1782 app/features/mec/booking.php:316
|
2885 |
+
#: app/features/mec/settings.php:1019
|
2886 |
#, fuzzy
|
2887 |
#| msgid "Ticket"
|
2888 |
msgid "Last Few Tickets Percentage"
|
2895 |
#: app/features/events.php:1802 app/features/events.php:1819
|
2896 |
#: app/features/events.php:1829 app/features/mec/booking.php:323
|
2897 |
#: app/features/mec/booking.php:325 app/features/mec/booking.php:335
|
2898 |
+
#: app/features/mec/settings.php:783 app/features/mec/settings.php:793
|
2899 |
+
#: app/features/mec/settings.php:1025
|
2900 |
msgid "Thank You Page"
|
2901 |
msgstr "Stránka s poděkováním"
|
2902 |
|
2910 |
|
2911 |
#: app/features/events.php:1837 app/features/events.php:1842
|
2912 |
#: app/features/mec/booking.php:343 app/features/mec/booking.php:348
|
2913 |
+
#: app/features/mec/settings.php:816 app/features/mec/settings.php:821
|
2914 |
msgid "Thank You Page Time Interval"
|
2915 |
msgstr "Stránka s poděkováním časového intervalu"
|
2916 |
|
2917 |
#: app/features/events.php:1839 app/features/mec/booking.php:345
|
2918 |
+
#: app/features/mec/settings.php:818
|
2919 |
msgid "2000 mean 2 seconds"
|
2920 |
msgstr "2000 znamená 2 vteřiny"
|
2921 |
|
2922 |
#: app/features/events.php:1843 app/features/mec/booking.php:349
|
2923 |
+
#: app/features/mec/settings.php:822
|
2924 |
msgid ""
|
2925 |
"Waiting time before redirecting to thank you page. It's in miliseconds so "
|
2926 |
"2000 means 2 seconds."
|
2989 |
|
2990 |
#: app/features/events.php:1994 app/features/events.php:1997
|
2991 |
#: app/features/events.php:2253 app/features/events.php:2256
|
2992 |
+
#: app/features/mec/settings.php:1037
|
2993 |
#, fuzzy
|
2994 |
#| msgid "Description"
|
2995 |
msgid "Private Description"
|
3005 |
#: app/features/events.php:2007 app/features/events.php:2011
|
3006 |
#: app/features/events.php:2109 app/features/events.php:2136
|
3007 |
#: app/features/events.php:2265 app/features/events.php:2268
|
3008 |
+
#: app/features/events.php:2349 app/features/events.php:4747
|
3009 |
#: app/features/mec/booking.php:694 app/features/mec/booking.php:697
|
3010 |
#: app/features/mec/booking.php:726 app/features/mec/booking.php:729
|
3011 |
#: app/libraries/ticketVariations.php:43 app/libraries/ticketVariations.php:46
|
3089 |
#: app/features/mec/meta_boxes/search_form.php:881
|
3090 |
#: app/features/mec/meta_boxes/search_form.php:1004
|
3091 |
#: app/features/mec/meta_boxes/search_form.php:1091
|
3092 |
+
#: app/features/mec/settings.php:1191 app/features/mec/settings.php:1285
|
3093 |
#: app/features/mec/single.php:482 app/features/mec/single.php:535
|
3094 |
#: app/features/popup/settings.php:238 app/features/popup/settings.php:277
|
3095 |
#: app/features/search.php:121 app/libraries/search.php:374
|
3180 |
msgid "Fixed Fields"
|
3181 |
msgstr "Požadovaná pole"
|
3182 |
|
3183 |
+
#: app/features/events.php:2887 app/features/events.php:4741
|
3184 |
+
#: app/features/mec/settings.php:1061 app/features/profile/profile.php:65
|
3185 |
+
#: app/libraries/main.php:3034 app/libraries/main.php:3281
|
3186 |
msgid "Attendees"
|
3187 |
msgstr "Účastníci"
|
3188 |
|
3207 |
msgstr "Další výskyt"
|
3208 |
|
3209 |
#: app/features/events.php:3756 app/features/mec/meta_boxes/filter.php:199
|
3210 |
+
#: app/features/mec/settings.php:532
|
3211 |
msgid "Expired Events"
|
3212 |
msgstr "Události vypršely"
|
3213 |
|
3214 |
#: app/features/events.php:3757 app/features/mec.php:1374
|
3215 |
+
#: app/features/mec/dashboard.php:282 app/features/mec/settings.php:531
|
3216 |
msgid "Upcoming Events"
|
3217 |
msgstr "Nadcházející události"
|
3218 |
|
3273 |
msgstr "JSON Export"
|
3274 |
|
3275 |
#: app/features/events.php:4068 app/features/events.php:4069
|
3276 |
+
#: app/features/events.php:4296
|
3277 |
msgid "Duplicate"
|
3278 |
msgstr "Duplikát"
|
3279 |
|
3311 |
|
3312 |
# v kontextu
|
3313 |
#: app/features/events.php:4196 app/features/fes/form.php:953
|
3314 |
+
#: app/features/mec/settings.php:891
|
3315 |
msgid "Featured Image"
|
3316 |
msgstr "Hlavní obrázek"
|
3317 |
|
3323 |
|
3324 |
#: app/features/events.php:4203 app/features/fes/form.php:1068
|
3325 |
#: app/features/mec.php:532 app/features/mec/modules.php:34
|
3326 |
+
#: app/features/mec/modules.php:43 app/features/mec/settings.php:962
|
3327 |
#: app/features/popup/settings.php:299 app/features/speakers.php:67
|
3328 |
#: app/libraries/hourlyschedule.php:77 app/libraries/hourlyschedule.php:105
|
3329 |
#: app/libraries/hourlyschedule.php:157 app/libraries/main.php:694
|
3330 |
+
#: app/libraries/main.php:7493 app/libraries/main.php:7554
|
3331 |
#: app/modules/speakers/details.php:18
|
3332 |
msgid "Speakers"
|
3333 |
msgstr "Řečníci"
|
3334 |
|
3335 |
+
#: app/features/events.php:4452 app/features/fes.php:280
|
3336 |
#: app/features/profile/profile.php:209 app/libraries/cart.php:64
|
3337 |
+
#: app/libraries/main.php:3050 app/libraries/main.php:3298
|
3338 |
+
#: app/libraries/main.php:7519
|
3339 |
msgid "Ticket"
|
3340 |
msgstr "Vstupenka"
|
3341 |
|
3342 |
+
#: app/features/events.php:4455 app/features/profile/profile.php:212
|
3343 |
msgid "Variations"
|
3344 |
msgstr "Variace"
|
3345 |
|
3346 |
+
#: app/features/events.php:4470 app/features/fes.php:356
|
3347 |
msgid "Unknown"
|
3348 |
msgstr "Neznámý"
|
3349 |
|
3350 |
+
#: app/features/events.php:4498
|
3351 |
msgid ""
|
3352 |
"If you want to send an email, first select your attendees and then click in "
|
3353 |
"the button below, please."
|
3354 |
msgstr ""
|
3355 |
|
3356 |
+
#: app/features/events.php:4498 app/features/mec/report.php:57
|
3357 |
#, fuzzy
|
3358 |
#| msgid "Organizer Email"
|
3359 |
msgid "Send Email"
|
3360 |
msgstr "Organizátor Email"
|
3361 |
|
3362 |
+
#: app/features/events.php:4502
|
3363 |
#, fuzzy
|
3364 |
#| msgid "Attendees Form"
|
3365 |
msgid "No Attendees Found!"
|
3366 |
msgstr "Formulář účastníků"
|
3367 |
|
3368 |
+
#: app/features/events.php:4804
|
3369 |
#, fuzzy
|
3370 |
#| msgid "No bookings found!"
|
3371 |
msgid "No Bookings Found!"
|
3429 |
msgid "Total Price"
|
3430 |
msgstr "Celková cena"
|
3431 |
|
3432 |
+
#: app/features/fes.php:280 app/libraries/main.php:3108
|
3433 |
+
#: app/libraries/main.php:3357
|
3434 |
#, fuzzy
|
3435 |
#| msgid "Payment Gateways"
|
3436 |
msgid "Gateway"
|
3518 |
msgid "Go back to events list"
|
3519 |
msgstr "Přejít zpět na seznam událostí"
|
3520 |
|
3521 |
+
#: app/features/fes/form.php:270 app/features/mec/settings.php:1076
|
3522 |
+
#: app/features/mec/settings.php:1186
|
3523 |
msgid "Excerpt"
|
3524 |
msgstr ""
|
3525 |
|
3598 |
msgstr "např. vasejmeno@gmail.com"
|
3599 |
|
3600 |
#: app/features/fes/form.php:817 app/features/organizers.php:297
|
3601 |
+
#: app/features/popup/event.php:191
|
3602 |
msgid "eg. John Smith"
|
3603 |
msgstr "např. Jan Novák"
|
3604 |
|
3632 |
msgid "Separate names with commas: Justin, Chris"
|
3633 |
msgstr "Oddělte jména čárkami - Novák Petr, Pavel"
|
3634 |
|
3635 |
+
#: app/features/fes/form.php:1115
|
3636 |
#, fuzzy, php-format
|
3637 |
#| msgid "Please %s/%s in order to submit new events."
|
3638 |
msgid "I accept the %s in order to submit an event."
|
3639 |
msgstr "Prosím %s/%s za účelem odeslání nových událostí."
|
3640 |
|
3641 |
+
#: app/features/fes/form.php:1115
|
3642 |
msgid "Privacy Policy"
|
3643 |
msgstr ""
|
3644 |
|
3645 |
+
#: app/features/fes/form.php:1117
|
3646 |
#, fuzzy
|
3647 |
#| msgid "Please %s/%s in order to submit new events."
|
3648 |
msgid "I accept the Privacy Policy in order to submit an event."
|
3649 |
msgstr "Prosím %s/%s za účelem odeslání nových událostí."
|
3650 |
|
3651 |
+
#: app/features/fes/form.php:1123
|
3652 |
#, fuzzy
|
3653 |
#| msgid "Edit Event"
|
3654 |
msgid "Submit Event"
|
3778 |
msgstr "Vše vypadá dobře! Klikněte na % s pro ověření vaší aplikace."
|
3779 |
|
3780 |
#: app/features/ix.php:4326 app/features/mec/integrations.php:256
|
3781 |
+
#: app/features/mec/settings.php:1511
|
3782 |
msgid "here"
|
3783 |
msgstr ""
|
3784 |
|
4039 |
|
4040 |
#: app/features/ix/export_g_calendar.php:100 app/features/mec/booking.php:1262
|
4041 |
#: app/features/mec/integrations.php:451 app/features/mec/modules.php:408
|
4042 |
+
#: app/features/mec/notifications.php:1924 app/features/mec/settings.php:1626
|
4043 |
#: app/features/mec/single.php:604
|
4044 |
msgid "Checking ..."
|
4045 |
msgstr "Ověřování ..."
|
4156 |
msgid "Import all of your Facebook events into MEC."
|
4157 |
msgstr "Importujte všechny své události na Facebooku do MEC."
|
4158 |
|
4159 |
+
#: app/features/ix/import_f_calendar.php:27 app/features/mec/dashboard.php:160
|
4160 |
#: app/features/mec/support-page.php:11 app/features/mec/support.php:100
|
4161 |
msgid "Documentation"
|
4162 |
msgstr "Dokumentace"
|
4534 |
|
4535 |
#: app/features/labels.php:186 app/features/locations.php:269
|
4536 |
#: app/features/organizers.php:210 app/features/speakers.php:295
|
4537 |
+
#: app/modules/booking/steps/tickets.php:178
|
4538 |
msgid "Count"
|
4539 |
msgstr "Spočítat"
|
4540 |
|
4550 |
msgstr "Událost %s"
|
4551 |
|
4552 |
#: app/features/locations.php:59 app/features/mec.php:526
|
4553 |
+
#: app/features/mec/dashboard.php:264 app/features/mec/meta_boxes/filter.php:70
|
4554 |
+
#: app/features/mec/meta_boxes/filter.php:99 app/libraries/main.php:7489
|
4555 |
+
#: app/libraries/main.php:7550
|
4556 |
msgid "Locations"
|
4557 |
msgstr "Umístění"
|
4558 |
|
4561 |
msgstr "Vložit adresu místa"
|
4562 |
|
4563 |
#: app/features/locations.php:131 app/features/locations.php:197
|
4564 |
+
#: app/features/locations.php:374 app/features/popup/event.php:155
|
4565 |
msgid "Latitude"
|
4566 |
msgstr "Zeměpisná šířka"
|
4567 |
|
4572 |
msgstr "Zeměpisná šířka (volitelné)"
|
4573 |
|
4574 |
#: app/features/locations.php:139 app/features/locations.php:201
|
4575 |
+
#: app/features/locations.php:375 app/features/popup/event.php:156
|
4576 |
msgid "Longitude"
|
4577 |
msgstr "Zeměpisná délka"
|
4578 |
|
4608 |
msgstr "Hlavní událost %s"
|
4609 |
|
4610 |
#: app/features/locations.php:332 app/features/occurrences.php:464
|
4611 |
+
#: app/features/popup/event.php:122
|
4612 |
msgid "Hide location"
|
4613 |
msgstr "Skrýt místo"
|
4614 |
|
4615 |
+
#: app/features/locations.php:333 app/features/popup/event.php:123
|
4616 |
msgid "Insert a new location"
|
4617 |
msgstr "Vložit nové místo"
|
4618 |
|
4620 |
msgid "Choose one of saved locations or insert new one below."
|
4621 |
msgstr "Vyberte jedno z uložených míst nebo vložte nové."
|
4622 |
|
4623 |
+
#: app/features/locations.php:348 app/features/popup/event.php:147
|
4624 |
msgid "Location Name"
|
4625 |
msgstr "Název místa"
|
4626 |
|
4627 |
+
#: app/features/locations.php:349 app/features/popup/event.php:148
|
4628 |
msgid "eg. City Hall"
|
4629 |
msgstr "např. Radnice"
|
4630 |
|
4631 |
+
#: app/features/locations.php:352 app/features/mec/settings.php:934
|
4632 |
+
#: app/features/popup/event.php:151 app/widgets/single.php:134
|
4633 |
msgid "Event Location"
|
4634 |
msgstr "Místo události"
|
4635 |
|
4636 |
+
#: app/features/locations.php:353 app/features/popup/event.php:152
|
4637 |
msgid "eg. City hall, Manhattan, New York"
|
4638 |
msgstr "např. Radnice, Dominikánská 2, Brno"
|
4639 |
|
4640 |
+
#: app/features/locations.php:378 app/features/popup/event.php:159
|
4641 |
msgid "Latitude/Longitude"
|
4642 |
msgstr "Zeměpisná šířka / délka"
|
4643 |
|
4644 |
+
#: app/features/locations.php:379 app/features/popup/event.php:160
|
4645 |
msgid ""
|
4646 |
"If you leave the latitude and longitude empty, Modern Events Calendar tries "
|
4647 |
"to convert the location address to geopoint, Latitude and Longitude are the "
|
4655 |
"místo, použijte název místa, města, státu nebo adresy nebo klikněte na místo "
|
4656 |
"na mapě a vyhledejte souřadnice délky a šířky."
|
4657 |
|
4658 |
+
#: app/features/locations.php:379 app/features/popup/event.php:160
|
4659 |
msgid "Get Latitude and Longitude"
|
4660 |
msgstr "Získejte šířku a délku"
|
4661 |
|
4662 |
#: app/features/locations.php:392 app/features/organizers.php:315
|
4663 |
+
#: app/features/popup/event.php:210
|
4664 |
msgid "Choose image"
|
4665 |
msgstr "Vyberte obrázek"
|
4666 |
|
4667 |
#: app/features/locations.php:407 app/features/occurrences.php:482
|
4668 |
+
#: app/features/popup/event.php:141
|
4669 |
msgid "Don't show map in single event page"
|
4670 |
msgstr "Nezobrazovat mapu na jednostránkové události"
|
4671 |
|
4672 |
+
#: app/features/locations.php:411 app/libraries/main.php:7534
|
4673 |
+
#: app/libraries/main.php:7581
|
4674 |
msgid "Other Locations"
|
4675 |
msgstr "Další místa"
|
4676 |
|
4691 |
msgid "Login successful, redirecting..."
|
4692 |
msgstr ""
|
4693 |
|
4694 |
+
#: app/features/login/login.php:11 app/modules/booking/steps/form.php:361
|
4695 |
msgid "Password"
|
4696 |
msgstr ""
|
4697 |
|
4712 |
"<br> <b> Poznámka: Váš nákupní kód by se měl shodovat s vaším typem licence. "
|
4713 |
"</b>"
|
4714 |
|
4715 |
+
#: app/features/mec.php:227 app/features/mec/support-page.php:175
|
4716 |
msgid "Troubleshooting"
|
4717 |
msgstr "Odstraňování problémů"
|
4718 |
|
4755 |
msgid "Support"
|
4756 |
msgstr "Podpora"
|
4757 |
|
4758 |
+
#: app/features/mec.php:527 app/features/mec/dashboard.php:271
|
4759 |
#: app/features/mec/meta_boxes/filter.php:71
|
4760 |
#: app/features/mec/meta_boxes/filter.php:117 app/features/organizers.php:59
|
4761 |
+
#: app/libraries/main.php:7491 app/libraries/main.php:7552
|
4762 |
msgid "Organizers"
|
4763 |
msgstr "Organizátoři"
|
4764 |
|
4765 |
#: app/features/mec.php:536 app/features/mec.php:596
|
4766 |
+
#: app/features/mec/dashboard.php:257
|
4767 |
msgid "Shortcodes"
|
4768 |
msgstr "Zkrácené kódy"
|
4769 |
|
4905 |
msgid "Total Bookings"
|
4906 |
msgstr "Celkový počet rezervací"
|
4907 |
|
4908 |
+
#: app/features/mec.php:1365 app/features/mec/dashboard.php:55
|
4909 |
msgid "Modern Events Calendar (Lite)"
|
4910 |
msgstr "Modern Events Calendar (Lite)"
|
4911 |
|
4979 |
msgid "Include Modern Events Calendar Assets (CSS, JavaScript, etc files.)"
|
4980 |
msgstr ""
|
4981 |
|
4982 |
+
#: app/features/mec/addons.php:16 app/features/mec/addons.php:50
|
4983 |
+
#: app/features/mec/dashboard.php:62 app/features/mec/go-pro.php:14
|
4984 |
#: app/features/mec/report.php:21 app/features/mec/support-page.php:21
|
4985 |
msgid "Version"
|
4986 |
msgstr "Verze"
|
4987 |
|
4988 |
+
#: app/features/mec/addons.php:67
|
4989 |
msgid "Coming Soon"
|
4990 |
msgstr "Již brzy"
|
4991 |
|
4992 |
+
#: app/features/mec/addons.php:78
|
4993 |
msgid ""
|
4994 |
"<strong>\"file_get_contents\"</strong> and <strong>\"Curl\"</strong> "
|
4995 |
"functions are <strong>not activated</strong> on your server. Please contact "
|
5022 |
#: app/features/mec/notifications.php:1860
|
5023 |
#: app/features/mec/notifications.php:1942
|
5024 |
#: app/features/mec/notifications.php:1956 app/features/mec/settings.php:35
|
5025 |
+
#: app/features/mec/settings.php:1575 app/features/mec/settings.php:1585
|
5026 |
+
#: app/features/mec/settings.php:1643 app/features/mec/settings.php:1657
|
5027 |
#: app/features/mec/single.php:25 app/features/mec/single.php:569
|
5028 |
#: app/features/mec/single.php:579 app/features/mec/single.php:621
|
5029 |
#: app/features/mec/single.php:635 app/features/mec/styles.php:11
|
5179 |
|
5180 |
#: app/features/mec/booking.php:210 app/features/mec/booking.php:218
|
5181 |
#: app/features/popup/settings.php:354 app/features/popup/settings.php:362
|
5182 |
+
#: app/modules/booking/steps/form.php:355
|
5183 |
#, fuzzy
|
5184 |
#| msgid "Register Button"
|
5185 |
msgid "Registration"
|
5761 |
msgstr "Počátečná den"
|
5762 |
|
5763 |
#: app/features/mec/booking.php:1141 app/features/mec/booking.php:1153
|
5764 |
+
#: app/features/mec/settings.php:747 app/features/mec/settings.php:759
|
5765 |
#, php-format
|
5766 |
msgid "Put %s shortcode into the page."
|
5767 |
msgstr "Vložte %s na stránku zkrácené kódy."
|
5780 |
|
5781 |
#: app/features/mec/booking.php:1257 app/features/mec/integrations.php:446
|
5782 |
#: app/features/mec/messages.php:90 app/features/mec/modules.php:403
|
5783 |
+
#: app/features/mec/notifications.php:1919 app/features/mec/settings.php:1621
|
5784 |
#: app/features/mec/single.php:599 app/features/mec/styles.php:62
|
5785 |
#: app/features/mec/styling.php:357
|
5786 |
msgid "Saved"
|
5788 |
|
5789 |
#: app/features/mec/booking.php:1258 app/features/mec/integrations.php:447
|
5790 |
#: app/features/mec/messages.php:91 app/features/mec/modules.php:404
|
5791 |
+
#: app/features/mec/notifications.php:1920 app/features/mec/settings.php:1622
|
5792 |
#: app/features/mec/single.php:600 app/features/mec/styles.php:63
|
5793 |
#: app/features/mec/styling.php:358
|
5794 |
msgid "Settings Saved!"
|
5796 |
|
5797 |
#: app/features/mec/booking.php:1284 app/features/mec/integrations.php:473
|
5798 |
#: app/features/mec/modules.php:430 app/features/mec/notifications.php:1947
|
5799 |
+
#: app/features/mec/settings.php:1648 app/features/mec/single.php:626
|
5800 |
msgid "Please Refresh Page"
|
5801 |
msgstr "Prosím obnovte stránku"
|
5802 |
|
5803 |
+
#: app/features/mec/dashboard.php:52
|
5804 |
#, php-format
|
5805 |
msgid "Welcome %s"
|
5806 |
msgstr "Vítejte %s"
|
5807 |
|
5808 |
+
#: app/features/mec/dashboard.php:55
|
5809 |
#, php-format
|
5810 |
msgid "%s - Most Powerful & Easy to Use Events Management System"
|
5811 |
msgstr "%s - Nejvýkonnější a snadno použitelný systém pro správu událostí"
|
5812 |
|
5813 |
+
#: app/features/mec/dashboard.php:115 app/features/mec/go-pro.php:66
|
5814 |
#, php-format
|
5815 |
msgid ""
|
5816 |
"You're using %s version of Modern Events Calendar. To use advanced booking "
|
5821 |
"pokročilý rezervační systém, moderní vzhledy jako Agenda, Rozvrh, Roční "
|
5822 |
"pohled, Dostupná místa atd., Měli byste upgradovat na verzi Pro."
|
5823 |
|
5824 |
+
#: app/features/mec/dashboard.php:115 app/features/mec/go-pro.php:66
|
5825 |
msgid "lite"
|
5826 |
msgstr " omezenou"
|
5827 |
|
5828 |
+
#: app/features/mec/dashboard.php:118 app/features/mec/go-pro.php:69
|
5829 |
#: app/features/mec/support.php:126
|
5830 |
msgid "GO PREMIUM"
|
5831 |
msgstr "PŘEJÍT NA PREMIUM"
|
5832 |
|
5833 |
+
#: app/features/mec/dashboard.php:151
|
5834 |
msgid "Getting started with Modern Events Calendar"
|
5835 |
msgstr "Začínáme s Modern Events Calendar"
|
5836 |
|
5837 |
+
#: app/features/mec/dashboard.php:152
|
5838 |
msgid ""
|
5839 |
"In this short video, you can learn how to make an event and put a calendar "
|
5840 |
"on your website. Please watch this 2 minutes video to the end."
|
5842 |
"V tomto krátkém videu se dozvíte, jak vytvořit událost a umístit kalendář na "
|
5843 |
"svoje stránky. Sledujte prosím toto 2minutové video až do konce."
|
5844 |
|
5845 |
+
#: app/features/mec/dashboard.php:168 app/features/mec/dashboard.php:192
|
5846 |
#, fuzzy
|
5847 |
#| msgid "MEC Activation"
|
5848 |
msgid "License Activation"
|
5849 |
msgstr "Aktivace MEC"
|
5850 |
|
5851 |
+
#: app/features/mec/dashboard.php:174 app/features/mec/dashboard.php:229
|
5852 |
msgid "Activate Addons"
|
5853 |
msgstr "Aktivovat doplňky"
|
5854 |
|
5855 |
+
#: app/features/mec/dashboard.php:182 app/features/mec/dashboard.php:238
|
5856 |
msgid "You cannot access this section."
|
5857 |
msgstr "Nemáte přístup do této části."
|
5858 |
|
5859 |
+
#: app/features/mec/dashboard.php:198
|
5860 |
msgid ""
|
5861 |
"In order to use all plugin features and options, please enter your purchase "
|
5862 |
"code."
|
5864 |
"Chcete-li využívat všechny funkce a možnosti doplňku, zadejte prosím "
|
5865 |
"zakoupený kód."
|
5866 |
|
5867 |
+
#: app/features/mec/dashboard.php:306
|
5868 |
msgid "Popular Gateways"
|
5869 |
msgstr "Oblíbené platební brány"
|
5870 |
|
5871 |
+
#: app/features/mec/dashboard.php:364
|
5872 |
msgid "Change Log"
|
5873 |
msgstr "Změna logu"
|
5874 |
|
5906 |
msgid "Mailchimp"
|
5907 |
msgstr "Integrace Mailchimp"
|
5908 |
|
5909 |
+
#: app/features/mec/integrations.php:46 app/features/mec/settings.php:1303
|
5910 |
msgid "Enable Mailchimp Integration"
|
5911 |
msgstr "Povolit integraci Mailchimp"
|
5912 |
|
5913 |
#: app/features/mec/integrations.php:51 app/features/mec/integrations.php:56
|
5914 |
#: app/features/mec/integrations.php:111 app/features/mec/integrations.php:135
|
5915 |
#: app/features/mec/integrations.php:159 app/features/mec/integrations.php:226
|
5916 |
+
#: app/features/mec/settings.php:1308 app/features/mec/settings.php:1313
|
5917 |
+
#: app/features/mec/settings.php:1368 app/features/mec/settings.php:1392
|
5918 |
+
#: app/features/mec/settings.php:1416 app/features/mec/settings.php:1483
|
5919 |
msgid "API Key"
|
5920 |
msgstr "API Key"
|
5921 |
|
5922 |
#: app/features/mec/integrations.php:57 app/features/mec/integrations.php:70
|
5923 |
+
#: app/features/mec/modules.php:76 app/features/mec/settings.php:1314
|
5924 |
+
#: app/features/mec/settings.php:1327
|
5925 |
msgid "Required!"
|
5926 |
msgstr "Požadované!"
|
5927 |
|
5928 |
#: app/features/mec/integrations.php:64 app/features/mec/integrations.php:69
|
5929 |
#: app/features/mec/integrations.php:117 app/features/mec/integrations.php:232
|
5930 |
#: app/features/mec/integrations.php:250 app/features/mec/integrations.php:298
|
5931 |
+
#: app/features/mec/settings.php:1321 app/features/mec/settings.php:1326
|
5932 |
+
#: app/features/mec/settings.php:1374 app/features/mec/settings.php:1489
|
5933 |
+
#: app/features/mec/settings.php:1507 app/features/mec/settings.php:1555
|
5934 |
msgid "List ID"
|
5935 |
msgstr "ID seznamu"
|
5936 |
|
5937 |
#: app/features/mec/integrations.php:77 app/features/mec/integrations.php:85
|
5938 |
+
#: app/features/mec/settings.php:1334 app/features/mec/settings.php:1342
|
5939 |
msgid "Subscription Status"
|
5940 |
msgstr "Stav odběru"
|
5941 |
|
5942 |
+
#: app/features/mec/integrations.php:80 app/features/mec/settings.php:1337
|
5943 |
msgid "Subscribe automatically"
|
5944 |
msgstr "Odebírat automaticky"
|
5945 |
|
5946 |
+
#: app/features/mec/integrations.php:81 app/features/mec/settings.php:1338
|
5947 |
msgid "Subscribe by verification"
|
5948 |
msgstr "Přihlaste se k odběru pomocí ověření"
|
5949 |
|
5950 |
+
#: app/features/mec/integrations.php:86 app/features/mec/settings.php:1343
|
5951 |
#, fuzzy
|
5952 |
#| msgid ""
|
5953 |
#| "If you choose \"Subscribe by verification\" then an email will send to "
|
5959 |
"Pokud zvolíte možnost „Přihlásit se k odběru pomocí ověření“, odešle e-mail "
|
5960 |
"uživateli mailchimp k ověření oběru."
|
5961 |
|
5962 |
+
#: app/features/mec/integrations.php:95 app/features/mec/settings.php:1352
|
5963 |
msgid "Enable Segment Creation by Event Title and Booking Date"
|
5964 |
msgstr ""
|
5965 |
|
5969 |
msgid "Campaign Monitor"
|
5970 |
msgstr "Integrace Mailchimp"
|
5971 |
|
5972 |
+
#: app/features/mec/integrations.php:106 app/features/mec/settings.php:1363
|
5973 |
#, fuzzy
|
5974 |
#| msgid "Enable Mailchimp Integration"
|
5975 |
msgid "Enable Campaign Monitor Integration"
|
5981 |
msgid "MailerLite"
|
5982 |
msgstr "Integrace Mailchimp"
|
5983 |
|
5984 |
+
#: app/features/mec/integrations.php:130 app/features/mec/settings.php:1387
|
5985 |
#, fuzzy
|
5986 |
#| msgid "Enable Mailchimp Integration"
|
5987 |
msgid "Enable MailerLite Integration"
|
5988 |
msgstr "Povolit integraci Mailchimp"
|
5989 |
|
5990 |
+
#: app/features/mec/integrations.php:141 app/features/mec/settings.php:1398
|
5991 |
#, fuzzy
|
5992 |
#| msgid "Group URL"
|
5993 |
msgid "Group ID"
|
5999 |
msgid "Constant Contact"
|
6000 |
msgstr "Povolit integraci Mailchimp"
|
6001 |
|
6002 |
+
#: app/features/mec/integrations.php:154 app/features/mec/settings.php:1411
|
6003 |
#, fuzzy
|
6004 |
#| msgid "Enable Mailchimp Integration"
|
6005 |
msgid "Enable constantcontact Integration"
|
6006 |
msgstr "Povolit integraci Mailchimp"
|
6007 |
|
6008 |
+
#: app/features/mec/integrations.php:165 app/features/mec/settings.php:1422
|
6009 |
#, fuzzy
|
6010 |
#| msgid "Facebook Page Access Token"
|
6011 |
msgid "Access Token"
|
6012 |
msgstr "Token pro přístup na stránku Facebook"
|
6013 |
|
6014 |
#: app/features/mec/integrations.php:185 app/features/mec/integrations.php:200
|
6015 |
+
#: app/features/mec/settings.php:1442 app/features/mec/settings.php:1457
|
6016 |
#, fuzzy
|
6017 |
#| msgid "Select icon"
|
6018 |
msgid "Select List"
|
6019 |
msgstr "Vybrat ikonu"
|
6020 |
|
6021 |
+
#: app/features/mec/integrations.php:201 app/features/mec/settings.php:1458
|
6022 |
msgid ""
|
6023 |
"Please fill in the API key and Access Token field and save settings. after "
|
6024 |
"that, please refresh the page and select a list."
|
6030 |
msgid "Active Campaign"
|
6031 |
msgstr "Integrace Mailchimp"
|
6032 |
|
6033 |
+
#: app/features/mec/integrations.php:215 app/features/mec/settings.php:1472
|
6034 |
#, fuzzy
|
6035 |
#| msgid "Enable Mailchimp Integration"
|
6036 |
msgid "Enable Active Campaign Integration"
|
6037 |
msgstr "Povolit integraci Mailchimp"
|
6038 |
|
6039 |
+
#: app/features/mec/integrations.php:220 app/features/mec/settings.php:1477
|
6040 |
msgid "API URL"
|
6041 |
msgstr ""
|
6042 |
|
6044 |
msgid "AWeber"
|
6045 |
msgstr ""
|
6046 |
|
6047 |
+
#: app/features/mec/integrations.php:245 app/features/mec/settings.php:1502
|
6048 |
#, fuzzy
|
6049 |
#| msgid "Enable Mailchimp Integration"
|
6050 |
msgid "Enable AWeber Integration"
|
6051 |
msgstr "Povolit integraci Mailchimp"
|
6052 |
|
6053 |
+
#: app/features/mec/integrations.php:255 app/features/mec/settings.php:1510
|
6054 |
#, fuzzy, php-format
|
6055 |
#| msgid "Third Party plugin is not installed and activated!"
|
6056 |
msgid "%s plugin should be installed and connected to your AWeber account."
|
6057 |
msgstr "Plugin třetích stran není nainstalován a aktivován!"
|
6058 |
|
6059 |
+
#: app/features/mec/integrations.php:256 app/features/mec/settings.php:1511
|
6060 |
#, php-format
|
6061 |
msgid "More information about the list ID can be found %s."
|
6062 |
msgstr ""
|
6065 |
msgid "MailPoet"
|
6066 |
msgstr ""
|
6067 |
|
6068 |
+
#: app/features/mec/integrations.php:265 app/features/mec/settings.php:1522
|
6069 |
#, fuzzy
|
6070 |
#| msgid "Enable Mailchimp Integration"
|
6071 |
msgid "Enable MailPoet Integration"
|
6072 |
msgstr "Povolit integraci Mailchimp"
|
6073 |
|
6074 |
+
#: app/features/mec/integrations.php:271 app/features/mec/settings.php:1528
|
6075 |
#: app/skins/default_full_calendar/tpl.php:80
|
6076 |
#: app/skins/full_calendar/tpl.php:141
|
6077 |
msgid "List"
|
6078 |
msgstr "Seznam"
|
6079 |
|
6080 |
+
#: app/features/mec/integrations.php:282 app/features/mec/settings.php:1539
|
6081 |
#, fuzzy, php-format
|
6082 |
#| msgid "Third Party plugin is not installed and activated!"
|
6083 |
msgid "%s plugin should be installed and activated."
|
6087 |
msgid "Sendfox"
|
6088 |
msgstr ""
|
6089 |
|
6090 |
+
#: app/features/mec/integrations.php:291 app/features/mec/settings.php:1548
|
6091 |
#, fuzzy
|
6092 |
#| msgid "Enable Mailchimp Integration"
|
6093 |
msgid "Enable Sendfox Integration"
|
6094 |
msgstr "Povolit integraci Mailchimp"
|
6095 |
|
6096 |
+
#: app/features/mec/integrations.php:308 app/features/mec/settings.php:1565
|
6097 |
#, fuzzy, php-format
|
6098 |
#| msgid "Third Party plugin is not installed and activated!"
|
6099 |
msgid "%s plugin should be installed and connected to your Sendfox account."
|
6171 |
msgid "PaidMembership Pro plugin should be installed and activated."
|
6172 |
msgstr "Plugin třetích stran není nainstalován a aktivován!"
|
6173 |
|
6174 |
+
#: app/features/mec/messages.php:36 app/features/mec/support-page.php:141
|
6175 |
#: app/features/mec/support.php:66 app/libraries/main.php:969
|
6176 |
msgid "Messages"
|
6177 |
msgstr "Zprávy"
|
6203 |
#: app/features/mec/meta_boxes/display_options.php:1080
|
6204 |
#: app/features/mec/meta_boxes/display_options.php:1447
|
6205 |
#: app/features/mec/meta_boxes/display_options.php:1758
|
6206 |
+
#: app/features/mec/settings.php:392 app/features/mec/settings.php:416
|
6207 |
+
#: app/features/mec/settings.php:425 app/features/mec/settings.php:469
|
6208 |
+
#: app/features/mec/settings.php:493 app/features/mec/settings.php:502
|
6209 |
#: app/features/popup/settings.php:104 app/features/popup/settings.php:128
|
6210 |
#: app/features/popup/settings.php:137 app/features/popup/shortcode.php:70
|
6211 |
#: app/features/popup/shortcode.php:104 app/features/popup/shortcode.php:201
|
6217 |
|
6218 |
#: app/features/mec/meta_boxes/display_options.php:49
|
6219 |
#: app/features/mec/meta_boxes/display_options.php:303
|
6220 |
+
#: app/features/mec/settings.php:417 app/features/mec/settings.php:427
|
6221 |
+
#: app/features/mec/settings.php:494 app/features/mec/settings.php:504
|
6222 |
#: app/features/popup/settings.php:129 app/features/popup/settings.php:139
|
6223 |
#: app/features/popup/shortcode.php:75 app/features/popup/shortcode.php:114
|
6224 |
msgid "Minimal"
|
6230 |
#: app/features/mec/meta_boxes/display_options.php:1082
|
6231 |
#: app/features/mec/meta_boxes/display_options.php:1445
|
6232 |
#: app/features/mec/meta_boxes/display_options.php:1760
|
6233 |
+
#: app/features/mec/settings.php:394 app/features/mec/settings.php:407
|
6234 |
+
#: app/features/mec/settings.php:418 app/features/mec/settings.php:428
|
6235 |
+
#: app/features/mec/settings.php:471 app/features/mec/settings.php:484
|
6236 |
+
#: app/features/mec/settings.php:495 app/features/mec/settings.php:505
|
6237 |
#: app/features/popup/settings.php:106 app/features/popup/settings.php:119
|
6238 |
#: app/features/popup/settings.php:130 app/features/popup/settings.php:140
|
6239 |
#: app/features/popup/shortcode.php:80 app/features/popup/shortcode.php:119
|
6243 |
msgstr "Moderní"
|
6244 |
|
6245 |
#: app/features/mec/meta_boxes/display_options.php:51
|
6246 |
+
#: app/features/mec/settings.php:419 app/features/mec/settings.php:496
|
6247 |
#: app/features/popup/settings.php:131 app/features/popup/shortcode.php:85
|
6248 |
msgid "Standard"
|
6249 |
msgstr "Standardní"
|
6250 |
|
6251 |
#: app/features/mec/meta_boxes/display_options.php:52
|
6252 |
+
#: app/features/mec/settings.php:420 app/features/mec/settings.php:497
|
6253 |
#: app/features/popup/settings.php:132 app/features/popup/shortcode.php:90
|
6254 |
msgid "Accordion"
|
6255 |
msgstr "Akordeon"
|
6680 |
#: app/features/mec/meta_boxes/display_options.php:1081
|
6681 |
#: app/features/mec/meta_boxes/display_options.php:1446
|
6682 |
#: app/features/mec/meta_boxes/display_options.php:1759
|
6683 |
+
#: app/features/mec/settings.php:393 app/features/mec/settings.php:408
|
6684 |
+
#: app/features/mec/settings.php:426 app/features/mec/settings.php:470
|
6685 |
+
#: app/features/mec/settings.php:485 app/features/mec/settings.php:503
|
6686 |
#: app/features/popup/settings.php:105 app/features/popup/settings.php:120
|
6687 |
#: app/features/popup/settings.php:138 app/features/popup/shortcode.php:109
|
6688 |
#: app/features/popup/shortcode.php:148 app/features/popup/shortcode.php:163
|
6694 |
#: app/features/mec/meta_boxes/display_options.php:305
|
6695 |
#: app/features/mec/meta_boxes/display_options.php:725
|
6696 |
#: app/features/mec/meta_boxes/display_options.php:1084
|
6697 |
+
#: app/features/mec/settings.php:396 app/features/mec/settings.php:429
|
6698 |
+
#: app/features/mec/settings.php:473 app/features/mec/settings.php:506
|
6699 |
#: app/features/popup/settings.php:108 app/features/popup/settings.php:141
|
6700 |
#: app/features/popup/shortcode.php:124 app/features/popup/shortcode.php:173
|
6701 |
#: app/features/popup/shortcode.php:221
|
6710 |
#: app/features/mec/meta_boxes/display_options.php:307
|
6711 |
#: app/features/mec/meta_boxes/display_options.php:724
|
6712 |
#: app/features/mec/meta_boxes/display_options.php:1083
|
6713 |
+
#: app/features/mec/settings.php:395 app/features/mec/settings.php:431
|
6714 |
+
#: app/features/mec/settings.php:472 app/features/mec/settings.php:508
|
6715 |
#: app/features/popup/settings.php:107 app/features/popup/settings.php:143
|
6716 |
#: app/features/popup/shortcode.php:134 app/features/popup/shortcode.php:168
|
6717 |
#: app/features/popup/shortcode.php:216
|
6762 |
|
6763 |
#: app/features/mec/meta_boxes/display_options.php:711
|
6764 |
#: app/features/mec/meta_boxes/display_options.php:735
|
6765 |
+
#: app/libraries/main.php:374 app/libraries/main.php:2295
|
6766 |
+
#: app/libraries/main.php:2321
|
6767 |
msgid "List View"
|
6768 |
msgstr "Zobrazení seznamu"
|
6769 |
|
6770 |
#: app/features/mec/meta_boxes/display_options.php:712
|
6771 |
#: app/features/mec/meta_boxes/display_options.php:778
|
6772 |
+
#: app/libraries/main.php:375 app/libraries/main.php:2296
|
6773 |
+
#: app/libraries/main.php:2322
|
6774 |
msgid "Grid View"
|
6775 |
msgstr "Zobrazení mřížky"
|
6776 |
|
6784 |
|
6785 |
#: app/features/mec/meta_boxes/display_options.php:714
|
6786 |
#: app/features/mec/meta_boxes/display_options.php:821
|
6787 |
+
#: app/libraries/main.php:378 app/libraries/main.php:2289
|
6788 |
+
#: app/libraries/main.php:2315
|
6789 |
msgid "Yearly View"
|
6790 |
msgstr "Roční zobrazení"
|
6791 |
|
6796 |
|
6797 |
#: app/features/mec/meta_boxes/display_options.php:716
|
6798 |
#: app/features/mec/meta_boxes/display_options.php:895
|
6799 |
+
#: app/libraries/main.php:381 app/libraries/main.php:2291
|
6800 |
+
#: app/libraries/main.php:2317
|
6801 |
msgid "Weekly View"
|
6802 |
msgstr "Týdenní zobrazení"
|
6803 |
|
6804 |
#: app/features/mec/meta_boxes/display_options.php:717
|
6805 |
#: app/features/mec/meta_boxes/display_options.php:905
|
6806 |
+
#: app/libraries/main.php:380 app/libraries/main.php:2292
|
6807 |
+
#: app/libraries/main.php:2318
|
6808 |
msgid "Daily View"
|
6809 |
msgstr "Denní zobrazení"
|
6810 |
|
7245 |
|
7246 |
#: app/features/mec/meta_boxes/filter.php:75
|
7247 |
#: app/features/mec/meta_boxes/filter.php:184
|
7248 |
+
#: app/features/mec/settings.php:1102 app/features/occurrences.php:71
|
7249 |
#: app/features/occurrences.php:101
|
7250 |
#, fuzzy
|
7251 |
#| msgid "Occurrences times"
|
7428 |
#: app/features/mec/meta_boxes/search_form.php:867
|
7429 |
#: app/features/mec/meta_boxes/search_form.php:990
|
7430 |
#: app/features/mec/meta_boxes/search_form.php:1077
|
7431 |
+
#: app/features/mec/settings.php:1272 app/features/mec/single.php:477
|
7432 |
#: app/features/mec/single.php:530 app/features/popup/settings.php:233
|
7433 |
#: app/features/popup/settings.php:272 app/features/search.php:109
|
7434 |
#: app/features/speakers.php:66 app/features/speakers.php:292
|
7435 |
+
#: app/libraries/main.php:7494 app/libraries/main.php:7555
|
7436 |
#: app/libraries/search.php:334 app/libraries/skins.php:1239
|
7437 |
#: app/modules/speakers/details.php:18
|
7438 |
msgid "Speaker"
|
7450 |
#: app/features/mec/meta_boxes/search_form.php:874
|
7451 |
#: app/features/mec/meta_boxes/search_form.php:997
|
7452 |
#: app/features/mec/meta_boxes/search_form.php:1084
|
7453 |
+
#: app/features/mec/settings.php:1279 app/features/mec/single.php:486
|
7454 |
#: app/features/mec/single.php:539 app/features/popup/settings.php:242
|
7455 |
#: app/features/popup/settings.php:281 app/features/search.php:115
|
7456 |
#: app/features/tag.php:58 app/libraries/search.php:354
|
8101 |
#: app/features/mec/notifications.php:1356
|
8102 |
#: app/features/mec/notifications.php:1507
|
8103 |
#: app/features/mec/notifications.php:1624
|
8104 |
+
#: app/features/mec/notifications.php:1774 app/features/mec/settings.php:1185
|
8105 |
#: app/features/notifications.php:156
|
8106 |
#, fuzzy
|
8107 |
#| msgid "Description"
|
8118 |
#: app/features/mec/notifications.php:1357
|
8119 |
#: app/features/mec/notifications.php:1508
|
8120 |
#: app/features/mec/notifications.php:1625
|
8121 |
+
#: app/features/mec/notifications.php:1775 app/features/mec/settings.php:928
|
8122 |
#: app/features/notifications.php:157
|
8123 |
msgid "Event Tags"
|
8124 |
msgstr "Tagy události"
|
8133 |
#: app/features/mec/notifications.php:1358
|
8134 |
#: app/features/mec/notifications.php:1509
|
8135 |
#: app/features/mec/notifications.php:1626
|
8136 |
+
#: app/features/mec/notifications.php:1776 app/features/mec/settings.php:903
|
8137 |
#: app/features/notifications.php:158
|
8138 |
msgid "Event Labels"
|
8139 |
msgstr "Štítky události"
|
8148 |
#: app/features/mec/notifications.php:1359
|
8149 |
#: app/features/mec/notifications.php:1510
|
8150 |
#: app/features/mec/notifications.php:1627
|
8151 |
+
#: app/features/mec/notifications.php:1777 app/features/mec/settings.php:897
|
8152 |
#: app/features/notifications.php:159 app/widgets/single.php:138
|
8153 |
msgid "Event Categories"
|
8154 |
msgstr "Kategorie události"
|
8762 |
msgid "only once per hour"
|
8763 |
msgstr "pouze jednou denně"
|
8764 |
|
8765 |
+
#: app/features/mec/notifications.php:1314 app/libraries/main.php:8771
|
8766 |
+
#: app/libraries/main.php:8791
|
8767 |
#, fuzzy
|
8768 |
#| msgid "hours"
|
8769 |
msgid "Hours"
|
8777 |
msgid "Please, insert comma to separate reminder hours."
|
8778 |
msgstr ""
|
8779 |
|
8780 |
+
#: app/features/mec/notifications.php:1408 app/features/popup/event.php:261
|
8781 |
#: app/libraries/main.php:705
|
8782 |
msgid "New Event"
|
8783 |
msgstr "Nová událost"
|
8814 |
msgstr "Stav události"
|
8815 |
|
8816 |
#: app/features/mec/notifications.php:1517
|
8817 |
+
#: app/features/mec/notifications.php:1634 app/features/mec/settings.php:1128
|
8818 |
+
#: app/features/mec/settings.php:1132 app/features/notifications.php:198
|
8819 |
msgid "Event Note"
|
8820 |
msgstr "Poznámka události"
|
8821 |
|
9100 |
msgstr "Můžete povolit nebo zakázat skripty schématu"
|
9101 |
|
9102 |
#: app/features/mec/settings.php:137 app/features/mec/settings.php:148
|
9103 |
+
#: app/features/popup/settings.php:41 app/libraries/main.php:7498
|
9104 |
+
#: app/libraries/main.php:7559
|
9105 |
msgid "Weekdays"
|
9106 |
msgstr "Pracovní dny"
|
9107 |
|
9264 |
msgid "If enabled, users are able to use %s URL to subscribe to your events."
|
9265 |
msgstr ""
|
9266 |
|
9267 |
+
#: app/features/mec/settings.php:313
|
9268 |
#, fuzzy
|
9269 |
#| msgid "Speakers Names"
|
9270 |
msgid "Sender Name"
|
9271 |
msgstr "Jméno řečníka"
|
9272 |
|
9273 |
+
#: app/features/mec/settings.php:316
|
9274 |
msgid "e.g. Webnus"
|
9275 |
msgstr ""
|
9276 |
|
9277 |
+
#: app/features/mec/settings.php:320
|
9278 |
#, fuzzy
|
9279 |
#| msgid "Organizer Email"
|
9280 |
msgid "Sender Email"
|
9281 |
msgstr "Organizátor Email"
|
9282 |
|
9283 |
+
#: app/features/mec/settings.php:323
|
9284 |
msgid "e.g. info@webnus.biz"
|
9285 |
msgstr ""
|
9286 |
|
9287 |
+
#: app/features/mec/settings.php:327
|
9288 |
#, fuzzy
|
9289 |
#| msgid "Simple Method"
|
9290 |
msgid "Recipients Method"
|
9291 |
msgstr "Jednoduchá metoda"
|
9292 |
|
9293 |
+
#: app/features/mec/settings.php:330
|
9294 |
msgid "BCC (Invisible)"
|
9295 |
msgstr ""
|
9296 |
|
9297 |
+
#: app/features/mec/settings.php:331
|
9298 |
msgid "CC (Visible)"
|
9299 |
msgstr ""
|
9300 |
|
9301 |
+
#: app/features/mec/settings.php:339 app/libraries/main.php:644
|
9302 |
msgid "Archive Pages"
|
9303 |
msgstr "Archivní stránky"
|
9304 |
|
9305 |
+
#: app/features/mec/settings.php:342 app/features/mec/settings.php:347
|
9306 |
#: app/features/popup/settings.php:72 app/features/popup/settings.php:77
|
9307 |
msgid "Archive Page Title"
|
9308 |
msgstr "Název stránky archivu"
|
9309 |
|
9310 |
+
#: app/features/mec/settings.php:348 app/features/popup/settings.php:78
|
9311 |
msgid "Default value is Events - It's title of the page"
|
9312 |
msgstr "Výchozí hodnota je Události - to je název stránky"
|
9313 |
|
9314 |
+
#: app/features/mec/settings.php:356
|
9315 |
#, fuzzy
|
9316 |
#| msgid "Archive Page Title"
|
9317 |
msgid "Tag of Archive Page Title"
|
9318 |
msgstr "Název stránky archivu"
|
9319 |
|
9320 |
+
#: app/features/mec/settings.php:359
|
9321 |
#, fuzzy
|
9322 |
#| msgid "Pending"
|
9323 |
msgid "Heading 1"
|
9324 |
msgstr "Nevyřízený"
|
9325 |
|
9326 |
+
#: app/features/mec/settings.php:360
|
9327 |
#, fuzzy
|
9328 |
#| msgid "Pending"
|
9329 |
msgid "Heading 2"
|
9330 |
msgstr "Nevyřízený"
|
9331 |
|
9332 |
+
#: app/features/mec/settings.php:361
|
9333 |
#, fuzzy
|
9334 |
#| msgid "Pending"
|
9335 |
msgid "Heading 3"
|
9336 |
msgstr "Nevyřízený"
|
9337 |
|
9338 |
+
#: app/features/mec/settings.php:362
|
9339 |
#, fuzzy
|
9340 |
#| msgid "Pending"
|
9341 |
msgid "Heading 4"
|
9342 |
msgstr "Nevyřízený"
|
9343 |
|
9344 |
+
#: app/features/mec/settings.php:363
|
9345 |
#, fuzzy
|
9346 |
#| msgid "Pending"
|
9347 |
msgid "Heading 5"
|
9348 |
msgstr "Nevyřízený"
|
9349 |
|
9350 |
+
#: app/features/mec/settings.php:364
|
9351 |
#, fuzzy
|
9352 |
#| msgid "Pending"
|
9353 |
msgid "Heading 6"
|
9354 |
msgstr "Nevyřízený"
|
9355 |
|
9356 |
+
#: app/features/mec/settings.php:365
|
9357 |
msgid "Division"
|
9358 |
msgstr ""
|
9359 |
|
9360 |
+
#: app/features/mec/settings.php:367
|
9361 |
msgid "Inline Bold Text"
|
9362 |
msgstr ""
|
9363 |
|
9364 |
+
#: app/features/mec/settings.php:368
|
9365 |
#, fuzzy
|
9366 |
#| msgid "Head Text"
|
9367 |
msgid "Inline Text"
|
9368 |
msgstr "Text hlavičky"
|
9369 |
|
9370 |
+
#: app/features/mec/settings.php:374 app/features/mec/settings.php:442
|
9371 |
#: app/features/popup/settings.php:86
|
9372 |
msgid "Archive Page Skin"
|
9373 |
msgstr "Vzhled archivní stránky"
|
9374 |
|
9375 |
+
#: app/features/mec/settings.php:382 app/features/mec/settings.php:459
|
9376 |
#: app/features/popup/settings.php:94
|
9377 |
msgid "Put shortcode..."
|
9378 |
msgstr "Vložte zkrácený kód..."
|
9379 |
|
9380 |
+
#: app/features/mec/settings.php:385 app/features/mec/settings.php:400
|
9381 |
+
#: app/features/mec/settings.php:403 app/features/mec/settings.php:412
|
9382 |
+
#: app/features/mec/settings.php:438 app/features/mec/settings.php:462
|
9383 |
+
#: app/features/mec/settings.php:477 app/features/mec/settings.php:480
|
9384 |
+
#: app/features/mec/settings.php:489 app/features/mec/settings.php:515
|
9385 |
#: app/features/popup/settings.php:97 app/features/popup/settings.php:112
|
9386 |
#: app/features/popup/settings.php:115 app/features/popup/settings.php:124
|
9387 |
#: app/features/popup/settings.php:150
|
9388 |
msgid "There is no skins"
|
9389 |
msgstr "Neexistuje žádný vzhled"
|
9390 |
|
9391 |
+
#: app/features/mec/settings.php:388 app/features/mec/settings.php:465
|
9392 |
#: app/features/mec/single.php:77 app/features/popup/settings.php:100
|
9393 |
#: app/features/popup/settings.php:173
|
9394 |
msgid "Modern Style"
|
9395 |
msgstr "Moderní styl"
|
9396 |
|
9397 |
+
#: app/features/mec/settings.php:430 app/features/mec/settings.php:507
|
9398 |
#: app/features/popup/settings.php:142
|
9399 |
msgid "colorful"
|
9400 |
msgstr "pestrý"
|
9401 |
|
9402 |
+
#: app/features/mec/settings.php:435 app/features/mec/settings.php:512
|
9403 |
#: app/features/popup/settings.php:147
|
9404 |
msgid "Clean Style"
|
9405 |
msgstr "Čistý styl"
|
9406 |
|
9407 |
+
#: app/features/mec/settings.php:443
|
9408 |
msgid "Default value is Calendar/Monthly View, But you can change it "
|
9409 |
msgstr "Výchozí hodnota je Kalendář / Měsíční zobrazení, ale můžete ji změnit "
|
9410 |
|
9411 |
+
#: app/features/mec/settings.php:443 app/features/mec/settings.php:520
|
9412 |
msgid "See Demo"
|
9413 |
msgstr "Viz Demo"
|
9414 |
|
9415 |
+
#: app/features/mec/settings.php:451 app/features/mec/settings.php:519
|
9416 |
msgid "Category Page Skin"
|
9417 |
msgstr "Vzhled stránky kategorie"
|
9418 |
|
9419 |
+
#: app/features/mec/settings.php:520
|
9420 |
#, fuzzy
|
9421 |
#| msgid ""
|
9422 |
#| "Default value is List View - But you can change it Set a skin for all "
|
9428 |
"Výchozí hodnota je Zobrazení seznamu - ale můžete ji změnit Nastavit vzhled "
|
9429 |
"pro všechny kategorie."
|
9430 |
|
9431 |
+
#: app/features/mec/settings.php:528 app/features/mec/settings.php:536
|
9432 |
msgid "Category Events Method"
|
9433 |
msgstr "Kategorie Metoda události"
|
9434 |
|
9435 |
+
#: app/features/mec/settings.php:537
|
9436 |
msgid "Default value is Upcoming Events"
|
9437 |
msgstr "Výchozí hodnota je Nadcházející události"
|
9438 |
|
9439 |
+
#: app/features/mec/settings.php:545 app/features/mec/settings.php:553
|
9440 |
msgid "Events Archive Status"
|
9441 |
msgstr "Stav archivu událostí"
|
9442 |
|
9443 |
+
#: app/features/mec/settings.php:548
|
9444 |
msgid "Enabled (Recommended)"
|
9445 |
msgstr "Povoleno (doporučeno)"
|
9446 |
|
9447 |
# Slug
|
9448 |
+
#: app/features/mec/settings.php:554
|
9449 |
msgid ""
|
9450 |
"If you disable it, then you should create a page as archive page of MEC. "
|
9451 |
"Page's slug must equals to \"Main Slug\" of MEC. Also it will disable all of "
|
9456 |
"přepisování MEC."
|
9457 |
|
9458 |
# Hlavní slug
|
9459 |
+
#: app/features/mec/settings.php:567 app/features/mec/settings.php:572
|
9460 |
#: app/features/popup/settings.php:155 app/features/popup/settings.php:160
|
9461 |
msgid "Main Slug"
|
9462 |
msgstr "Main Slug"
|
9463 |
|
9464 |
+
#: app/features/mec/settings.php:573 app/features/popup/settings.php:161
|
9465 |
msgid ""
|
9466 |
"Default value is events. You can not have a page with this name. MEC allows "
|
9467 |
"you to create custom URLs for the permalinks and archives to enhance the "
|
9471 |
"umožňuje vytvářet vlastní adresy URL pro permanentní odkazy a archivy, aby "
|
9472 |
"se zvýšila použitelnost a dopředná kompatibilita odkazů."
|
9473 |
|
9474 |
+
#: app/features/mec/settings.php:577 app/features/mec/settings.php:591
|
9475 |
#: app/features/popup/settings.php:165
|
9476 |
msgid "Valid characters are lowercase a-z, - character and numbers."
|
9477 |
msgstr "Platnými znaky jsou malá písmena a-z, - znak a čísla."
|
9478 |
|
9479 |
# Slug
|
9480 |
+
#: app/features/mec/settings.php:581 app/features/mec/settings.php:586
|
9481 |
msgid "Category Slug"
|
9482 |
msgstr "Kategorie Slug"
|
9483 |
|
9484 |
+
#: app/features/mec/settings.php:587
|
9485 |
msgid ""
|
9486 |
"It's slug of MEC categories, you can change it to events-cat or something "
|
9487 |
"else. Default value is mec-category. You can not have a page with this name."
|
9490 |
"jiného. Výchozí hodnota je mec-kategorie. Nemůžete mít stránku s tímto "
|
9491 |
"názvem."
|
9492 |
|
9493 |
+
#: app/features/mec/settings.php:656
|
9494 |
msgid "Assets (CSS and JavaScript files)"
|
9495 |
msgstr ""
|
9496 |
|
9497 |
+
#: app/features/mec/settings.php:658
|
9498 |
#, fuzzy
|
9499 |
#| msgid "Start Date"
|
9500 |
msgid "Per Page"
|
9501 |
msgstr "Počátečná den"
|
9502 |
|
9503 |
+
#: app/features/mec/settings.php:662
|
9504 |
#, fuzzy
|
9505 |
#| msgid "Enable speakers feature"
|
9506 |
msgid "Enable Assets Per Page"
|
9507 |
msgstr "Povolit vlastnosti řečníků"
|
9508 |
|
9509 |
+
#: app/features/mec/settings.php:666
|
9510 |
msgid ""
|
9511 |
"By enabling this option MEC won't include any JavaScript or CSS files in "
|
9512 |
"frontend of your website unless you enable the assets inclusion in page "
|
9513 |
"options."
|
9514 |
msgstr ""
|
9515 |
|
9516 |
+
#: app/features/mec/settings.php:669
|
9517 |
#, fuzzy
|
9518 |
#| msgid "Load More"
|
9519 |
msgid "Load in Footer"
|
9520 |
msgstr "Načíst více"
|
9521 |
|
9522 |
+
#: app/features/mec/settings.php:673
|
9523 |
msgid "Load Assets in Footer"
|
9524 |
msgstr ""
|
9525 |
|
9526 |
+
#: app/features/mec/settings.php:679 app/libraries/main.php:648
|
9527 |
#, fuzzy
|
9528 |
#| msgid "Enable Google Recaptcha"
|
9529 |
msgid "Google Recaptcha"
|
9530 |
msgstr "Povolit Google Recaptcha"
|
9531 |
|
9532 |
+
#: app/features/mec/settings.php:683
|
9533 |
msgid "Enable Google Recaptcha"
|
9534 |
msgstr "Povolit Google Recaptcha"
|
9535 |
|
9536 |
+
#: app/features/mec/settings.php:692
|
9537 |
msgid "Enable on booking form"
|
9538 |
msgstr "Povolit rezervační formulář"
|
9539 |
|
9540 |
+
#: app/features/mec/settings.php:700
|
9541 |
msgid "Enable on \"Frontend Event Submission\" form"
|
9542 |
msgstr "Povolit ve formuláři „Odesílání událostí z frontendu“"
|
9543 |
|
9544 |
# místa
|
9545 |
+
#: app/features/mec/settings.php:704
|
9546 |
msgid "Site Key"
|
9547 |
msgstr "Klíč webu"
|
9548 |
|
9549 |
+
#: app/features/mec/settings.php:710
|
9550 |
msgid "Secret Key"
|
9551 |
msgstr "Tajný klíč"
|
9552 |
|
9553 |
+
#: app/features/mec/settings.php:722 app/features/mec/settings.php:730
|
9554 |
msgid "Time Format"
|
9555 |
msgstr "Formát času"
|
9556 |
|
9557 |
+
#: app/features/mec/settings.php:725
|
9558 |
msgid "12 hours format with AM/PM"
|
9559 |
msgstr "12 hodinový formát s dop./odp."
|
9560 |
|
9561 |
+
#: app/features/mec/settings.php:726
|
9562 |
msgid "24 hours format"
|
9563 |
msgstr "24 hodinový fotmát"
|
9564 |
|
9565 |
+
#: app/features/mec/settings.php:731
|
9566 |
msgid "This option, affects the selection of Start/End time."
|
9567 |
msgstr "Tato možnost ovlivňuje výběr času zahájení / ukončení."
|
9568 |
|
9569 |
+
#: app/features/mec/settings.php:739
|
9570 |
msgid "Events List Page"
|
9571 |
msgstr "Stránka seznamu událostí"
|
9572 |
|
9573 |
+
#: app/features/mec/settings.php:751
|
9574 |
msgid "Add/Edit Events Page"
|
9575 |
msgstr "Přidat / Editovat stránku událostí"
|
9576 |
|
9577 |
+
#: app/features/mec/settings.php:763
|
9578 |
#, fuzzy
|
9579 |
#| msgid "On Event Start"
|
9580 |
msgid "New Events Status"
|
9581 |
msgstr "Při spuštění události"
|
9582 |
|
9583 |
+
#: app/features/mec/settings.php:766
|
9584 |
#, fuzzy
|
9585 |
#| msgid "WordPress"
|
9586 |
msgid "Let WordPress decide"
|
9587 |
msgstr "WordPress"
|
9588 |
|
9589 |
+
#: app/features/mec/settings.php:768
|
9590 |
msgid "Publish"
|
9591 |
msgstr ""
|
9592 |
|
9593 |
+
#: app/features/mec/settings.php:773
|
9594 |
#, fuzzy
|
9595 |
#| msgid "Display Event Price"
|
9596 |
msgid "Display Event Date in List"
|
9597 |
msgstr "Zobrazit cenu události"
|
9598 |
|
9599 |
+
#: app/features/mec/settings.php:776 app/features/mec/settings.php:948
|
9600 |
#: app/libraries/notifications.php:2110
|
9601 |
msgid "No"
|
9602 |
msgstr "Ne"
|
9603 |
|
9604 |
+
#: app/features/mec/settings.php:777 app/features/mec/settings.php:947
|
9605 |
#: app/libraries/notifications.php:2110
|
9606 |
msgid "Yes"
|
9607 |
msgstr "Ano"
|
9608 |
|
9609 |
+
#: app/features/mec/settings.php:794
|
9610 |
#, fuzzy
|
9611 |
#| msgid ""
|
9612 |
#| "User redirects to this page after booking. Leave it empty if you want to "
|
9618 |
"Uživatel bude přesměrován na tuto stránku po rezervaci. Pokud ji chcete "
|
9619 |
"vypnout, ponechte ji prázdnou."
|
9620 |
|
9621 |
+
#: app/features/mec/settings.php:801 app/features/mec/settings.php:806
|
9622 |
#, fuzzy
|
9623 |
#| msgid "Thank You Page"
|
9624 |
msgid "Thank You Page URL"
|
9625 |
msgstr "Stránka s poděkováním"
|
9626 |
|
9627 |
+
#: app/features/mec/settings.php:807
|
9628 |
msgid "If filled it will use instead of thank you page set above."
|
9629 |
msgstr ""
|
9630 |
|
9631 |
+
#: app/features/mec/settings.php:830 app/features/mec/settings.php:835
|
9632 |
#, fuzzy
|
9633 |
#| msgid "Maximum file size"
|
9634 |
msgid "Maximum File Size"
|
9635 |
msgstr "Maximální velikost souboru"
|
9636 |
|
9637 |
+
#: app/features/mec/settings.php:832
|
9638 |
msgid "in KB"
|
9639 |
msgstr ""
|
9640 |
|
9641 |
+
#: app/features/mec/settings.php:836
|
9642 |
msgid "In Kilo Bytes so 5000 means 5MB (Approximately)"
|
9643 |
msgstr ""
|
9644 |
|
9645 |
+
#: app/features/mec/settings.php:845
|
9646 |
#, fuzzy
|
9647 |
#| msgid "Enable event submission by guest (Not logged-in) users"
|
9648 |
msgid "Enable event submission by guest (Not logged in) users"
|
9649 |
msgstr "Povolit odesílání události hosty (nepřihlášenými uživateli)"
|
9650 |
|
9651 |
+
#: app/features/mec/settings.php:852
|
9652 |
msgid "Enable mandatory email and name for guest user"
|
9653 |
msgstr "Povolit povinný e-mail a jméno pro hostujícího uživatele"
|
9654 |
|
9655 |
+
#: app/features/mec/settings.php:858
|
9656 |
msgid ""
|
9657 |
"Automatically create users after event publish and assign event to the "
|
9658 |
"created user"
|
9659 |
msgstr ""
|
9660 |
|
9661 |
+
#: app/features/mec/settings.php:863
|
9662 |
msgid "Frontend Event Submission Sections"
|
9663 |
msgstr "Sekce pro zasílání událostí z webových stránek (frontend)"
|
9664 |
|
9665 |
+
#: app/features/mec/settings.php:867
|
9666 |
#, fuzzy
|
9667 |
#| msgid "Event Details"
|
9668 |
msgid "Event Data Fields"
|
9669 |
msgstr "Podrobnosti události"
|
9670 |
|
9671 |
+
#: app/features/mec/settings.php:914
|
9672 |
msgid ""
|
9673 |
"This feature adds the ability to hide the current event to all MEC "
|
9674 |
"Shortcodes."
|
9675 |
msgstr ""
|
9676 |
|
9677 |
+
#: app/features/mec/settings.php:940 app/widgets/single.php:142
|
9678 |
msgid "Event Organizer"
|
9679 |
msgstr "Organizátor události"
|
9680 |
|
9681 |
+
#: app/features/mec/settings.php:944
|
9682 |
#, fuzzy
|
9683 |
#| msgid "Additional Organizers"
|
9684 |
msgid "Ability to Use All Organizers"
|
9685 |
msgstr "Další organizátoři"
|
9686 |
|
9687 |
+
#: app/features/mec/settings.php:952
|
9688 |
#, fuzzy
|
9689 |
#| msgid "Organizers"
|
9690 |
msgid "Use All Organizers"
|
9691 |
msgstr "Organizátoři"
|
9692 |
|
9693 |
+
#: app/features/mec/settings.php:953
|
9694 |
msgid ""
|
9695 |
"Users are able to see list of ogranizers and use them for their event. Set "
|
9696 |
"it to \"No\" if you want to disable this functionality and \"Other Organizers"
|
9697 |
"\" feature."
|
9698 |
msgstr ""
|
9699 |
|
9700 |
+
#: app/features/mec/settings.php:983 app/features/occurrences.php:365
|
9701 |
#, fuzzy
|
9702 |
#| msgid "Total booking limits"
|
9703 |
msgid "Total Booking Limit"
|
9704 |
msgstr "Celkové limity rezervace"
|
9705 |
|
9706 |
+
#: app/features/mec/settings.php:989
|
9707 |
#, fuzzy
|
9708 |
#| msgid "Discount"
|
9709 |
msgid "Discount Per User Roles"
|
9710 |
msgstr "Sleva"
|
9711 |
|
9712 |
+
#: app/features/mec/settings.php:1031
|
9713 |
#, fuzzy
|
9714 |
#| msgid "Ticket Variations / Options"
|
9715 |
msgid "Ticket Options"
|
9716 |
msgstr "Varianty vstupenky / možnosti"
|
9717 |
|
9718 |
+
#: app/features/mec/settings.php:1049
|
9719 |
msgid "Fees / Taxes Options"
|
9720 |
msgstr "Možnosti Poplatky / Daně"
|
9721 |
|
9722 |
+
#: app/features/mec/settings.php:1070 app/features/schema.php:67
|
9723 |
#, fuzzy
|
9724 |
#| msgid "Schema"
|
9725 |
msgid "SEO Schema"
|
9726 |
msgstr "Schéma"
|
9727 |
|
9728 |
+
#: app/features/mec/settings.php:1093 app/features/mec/single.php:233
|
9729 |
#: app/features/mec/single.php:241
|
9730 |
msgid "Public Download Module"
|
9731 |
msgstr ""
|
9732 |
|
9733 |
+
#: app/features/mec/settings.php:1111 app/widgets/single.php:189
|
9734 |
#, fuzzy
|
9735 |
#| msgid "Edit Event"
|
9736 |
msgid "Virtual Event"
|
9737 |
msgstr "Editace události"
|
9738 |
|
9739 |
+
#: app/features/mec/settings.php:1120
|
9740 |
#, fuzzy
|
9741 |
#| msgid "Book Event"
|
9742 |
msgid "Zoom Event"
|
9743 |
msgstr "Rezervovat událost"
|
9744 |
|
9745 |
+
#: app/features/mec/settings.php:1133
|
9746 |
#, php-format
|
9747 |
msgid ""
|
9748 |
"Users can put a note for editors while they're submitting the event. Also "
|
9753 |
"oznámení o nové události můžete také vložit %%event_note%%, abyste dostali e-"
|
9754 |
"mail s poznámkami uživatelů."
|
9755 |
|
9756 |
+
#: app/features/mec/settings.php:1140 app/features/mec/settings.php:1148
|
9757 |
#, fuzzy
|
9758 |
#| msgid "Visibility"
|
9759 |
msgid "Note visibility"
|
9760 |
msgstr "Viditelnost"
|
9761 |
|
9762 |
+
#: app/features/mec/settings.php:1143
|
9763 |
msgid "Always"
|
9764 |
msgstr "Vždy"
|
9765 |
|
9766 |
+
#: app/features/mec/settings.php:1144
|
9767 |
msgid "While event is not published"
|
9768 |
msgstr "I když událost není zveřejněna"
|
9769 |
|
9770 |
+
#: app/features/mec/settings.php:1149
|
9771 |
msgid "Event Note shows on Frontend Submission Form and Edit Event in backend."
|
9772 |
msgstr ""
|
9773 |
"Poznámka k události se zobrazí ve formuláři pro zasílání z webových stránek "
|
9774 |
"(frontend) a Upravit událost v administraci stránek (backend)."
|
9775 |
|
9776 |
+
#: app/features/mec/settings.php:1159
|
9777 |
msgid "Agreement Checkbox (GDPR Compatibility)"
|
9778 |
msgstr ""
|
9779 |
|
9780 |
+
#: app/features/mec/settings.php:1166
|
9781 |
#, fuzzy
|
9782 |
#| msgid "Checked by default"
|
9783 |
msgid "Checked by Default"
|
9784 |
msgstr "Ve výchozím nastavení zaškrtnuto"
|
9785 |
|
9786 |
+
#: app/features/mec/settings.php:1182
|
9787 |
#, fuzzy
|
9788 |
#| msgid "Required Field"
|
9789 |
msgid "Required Fields"
|
9790 |
msgstr "Požadovaná pole"
|
9791 |
|
9792 |
+
#: app/features/mec/settings.php:1189 app/libraries/main.php:7530
|
9793 |
+
#: app/libraries/main.php:7577
|
9794 |
msgid "More Info Link"
|
9795 |
msgstr "Odkaz na více informací"
|
9796 |
|
9797 |
+
#: app/features/mec/settings.php:1202 app/libraries/main.php:650
|
9798 |
msgid "User Profile"
|
9799 |
msgstr "Uživatelský profil"
|
9800 |
|
9801 |
+
#: app/features/mec/settings.php:1204
|
9802 |
#, fuzzy, php-format
|
9803 |
#| msgid ""
|
9804 |
#| "Put %s shortcode into your desired page. Then users are able to see "
|
9810 |
"Vložte %s krátký kód na požadovanou stránku. Uživatelé pak mohou vidět "
|
9811 |
"historii svých rezervací."
|
9812 |
|
9813 |
+
#: app/features/mec/settings.php:1205
|
9814 |
#, php-format
|
9815 |
msgid "Use %s attribute to hide canceled bookings. Like %s"
|
9816 |
msgstr ""
|
9817 |
|
9818 |
+
#: app/features/mec/settings.php:1206
|
9819 |
#, php-format
|
9820 |
msgid "Use %s attribute to show upcoming bookings. Like %s"
|
9821 |
msgstr ""
|
9822 |
|
9823 |
+
#: app/features/mec/settings.php:1211 app/libraries/main.php:651
|
9824 |
#, fuzzy
|
9825 |
#| msgid "Hide Events"
|
9826 |
msgid "User Events"
|
9827 |
msgstr "Skrýt události"
|
9828 |
|
9829 |
+
#: app/features/mec/settings.php:1213
|
9830 |
#, fuzzy, php-format
|
9831 |
#| msgid ""
|
9832 |
#| "Put %s shortcode into your desired page. Then users are able to search "
|
9838 |
"Vložte %s krátký kód na požadovanou stránku. Uživatelé pak mohou vyhledávat "
|
9839 |
"události"
|
9840 |
|
9841 |
+
#: app/features/mec/settings.php:1225 app/libraries/main.php:652
|
9842 |
msgid "Search Bar"
|
9843 |
msgstr "Vyhledávací panel"
|
9844 |
|
9845 |
+
#: app/features/mec/settings.php:1227
|
9846 |
#, php-format
|
9847 |
msgid ""
|
9848 |
"Put %s shortcode into your desired page. Then users are able to search events"
|
9850 |
"Vložte %s krátký kód na požadovanou stránku. Uživatelé pak mohou vyhledávat "
|
9851 |
"události"
|
9852 |
|
9853 |
+
#: app/features/mec/settings.php:1232
|
9854 |
msgid "Ajax Live mode"
|
9855 |
msgstr "Ajax Live mód"
|
9856 |
|
9857 |
+
#: app/features/mec/settings.php:1236
|
9858 |
msgid "Ajax mode"
|
9859 |
msgstr "Ajax mód"
|
9860 |
|
9861 |
+
#: app/features/mec/settings.php:1237
|
9862 |
#, fuzzy
|
9863 |
#| msgid ""
|
9864 |
#| "if you enable this option, search button disappeared and to use this "
|
9870 |
"pokud tuto možnost povolíte, tlačítko pro vyhledávání zmizelo a pro použití "
|
9871 |
"této funkce musí být povoleno pole pro zadávání textu."
|
9872 |
|
9873 |
+
#: app/features/mec/settings.php:1245
|
9874 |
msgid "Modern Type"
|
9875 |
msgstr "Moderní typ"
|
9876 |
|
9877 |
+
#: app/features/mec/settings.php:1249
|
9878 |
msgid "Search bar fields"
|
9879 |
msgstr "Pole vyhledávacího panelu"
|
9880 |
|
9881 |
+
#: app/features/mec/settings.php:1291
|
9882 |
msgid "Text input"
|
9883 |
msgstr "Zadávání textu"
|
9884 |
|
9885 |
+
#: app/features/mec/settings.php:1359
|
9886 |
#, fuzzy
|
9887 |
#| msgid "Mailchimp Integration"
|
9888 |
msgid "Campaign Monitor Integration"
|
9889 |
msgstr "Integrace Mailchimp"
|
9890 |
|
9891 |
+
#: app/features/mec/settings.php:1383
|
9892 |
#, fuzzy
|
9893 |
#| msgid "Mailchimp Integration"
|
9894 |
msgid "MailerLite Integration"
|
9895 |
msgstr "Integrace Mailchimp"
|
9896 |
|
9897 |
+
#: app/features/mec/settings.php:1407
|
9898 |
#, fuzzy
|
9899 |
#| msgid "Enable Mailchimp Integration"
|
9900 |
msgid "Constant Contact Integration"
|
9901 |
msgstr "Povolit integraci Mailchimp"
|
9902 |
|
9903 |
+
#: app/features/mec/settings.php:1468
|
9904 |
#, fuzzy
|
9905 |
#| msgid "Mailchimp Integration"
|
9906 |
msgid "Active Campaign Integration"
|
9907 |
msgstr "Integrace Mailchimp"
|
9908 |
|
9909 |
+
#: app/features/mec/settings.php:1498
|
9910 |
#, fuzzy
|
9911 |
#| msgid "Mailchimp Integration"
|
9912 |
msgid "AWeber Integration"
|
9913 |
msgstr "Integrace Mailchimp"
|
9914 |
|
9915 |
+
#: app/features/mec/settings.php:1518
|
9916 |
#, fuzzy
|
9917 |
#| msgid "Mailchimp Integration"
|
9918 |
msgid "MailPoet Integration"
|
9919 |
msgstr "Integrace Mailchimp"
|
9920 |
|
9921 |
+
#: app/features/mec/settings.php:1544
|
9922 |
#, fuzzy
|
9923 |
#| msgid "Mailchimp Integration"
|
9924 |
msgid "Sendfox Integration"
|
10490 |
"support by then. You can use links below in order to do that:"
|
10491 |
msgstr ""
|
10492 |
|
10493 |
+
#: app/features/mec/support-page.php:96
|
10494 |
msgid "Advice and answers from the Webnus Team"
|
10495 |
msgstr "Rady a odpovědi týmu Webnus"
|
10496 |
|
10497 |
+
#: app/features/mec/support-page.php:115
|
10498 |
#, fuzzy
|
10499 |
#| msgid "Single Event"
|
10500 |
msgid "Setting Up Event"
|
10501 |
msgstr "Jedna událost"
|
10502 |
|
10503 |
# v kontextu
|
10504 |
+
#: app/features/mec/support-page.php:119
|
10505 |
#, fuzzy
|
10506 |
#| msgid "Featured Image"
|
10507 |
msgid "Setup Features"
|
10508 |
msgstr "Hlavní obrázek"
|
10509 |
|
10510 |
+
#: app/features/mec/support-page.php:120
|
10511 |
msgid "Add Event In MEC Plugin"
|
10512 |
msgstr ""
|
10513 |
|
10514 |
+
#: app/features/mec/support-page.php:121
|
10515 |
msgid "Repeating, Date & Time"
|
10516 |
msgstr ""
|
10517 |
|
10518 |
+
#: app/features/mec/support-page.php:122 app/features/mec/support-page.php:155
|
10519 |
#, fuzzy
|
10520 |
#| msgid "Ticket"
|
10521 |
msgid "Add Tickets & Fee"
|
10522 |
msgstr "Vstupenka"
|
10523 |
|
10524 |
+
#: app/features/mec/support-page.php:123
|
10525 |
#, fuzzy
|
10526 |
#| msgid "Total booking limits"
|
10527 |
msgid "Total Booking & User Limits"
|
10528 |
msgstr "Celkové limity rezervace"
|
10529 |
|
10530 |
+
#: app/features/mec/support-page.php:124 app/features/mec/support-page.php:369
|
10531 |
msgid "Create Events With Your Page Builder"
|
10532 |
msgstr "Vytvářejte události pomocí Tvůrce stránek"
|
10533 |
|
10534 |
+
#: app/features/mec/support-page.php:132
|
10535 |
#, fuzzy
|
10536 |
#| msgid "MEC - Settings"
|
10537 |
msgid "MEC Settings"
|
10538 |
msgstr "MEC - Nastavení"
|
10539 |
|
10540 |
+
#: app/features/mec/support-page.php:138 app/libraries/main.php:806
|
10541 |
msgid "Single Event"
|
10542 |
msgstr "Jedna událost"
|
10543 |
|
10544 |
+
#: app/features/mec/support-page.php:140 app/features/mec/support-page.php:377
|
10545 |
#, fuzzy
|
10546 |
#| msgid "Add Shortcode"
|
10547 |
msgid "Making Advance Shortcodes"
|
10548 |
msgstr "Přidat zkrácený kód"
|
10549 |
|
10550 |
+
#: app/features/mec/support-page.php:158
|
10551 |
#, fuzzy
|
10552 |
#| msgid "Enable Booking"
|
10553 |
msgid "Manage The Bookings"
|
10554 |
msgstr "Povolit rezervace"
|
10555 |
|
10556 |
+
#: app/features/mec/support-page.php:166
|
10557 |
#, fuzzy
|
10558 |
#| msgid "Articles"
|
10559 |
msgid "Other Articles"
|
10560 |
msgstr "Články"
|
10561 |
|
10562 |
+
#: app/features/mec/support-page.php:170
|
10563 |
#, fuzzy
|
10564 |
#| msgid "Import / Export"
|
10565 |
msgid "Import & Export Events"
|
10566 |
msgstr "Import / Export"
|
10567 |
|
10568 |
+
#: app/features/mec/support-page.php:171
|
10569 |
#, fuzzy
|
10570 |
#| msgid "Single Event Style"
|
10571 |
msgid "Single Events Sidebar"
|
10572 |
msgstr "Styl jedné události"
|
10573 |
|
10574 |
+
#: app/features/mec/support-page.php:172 app/features/mec/support-page.php:375
|
10575 |
msgid "Translate MEC"
|
10576 |
msgstr "Přeložit MEC"
|
10577 |
|
10578 |
+
#: app/features/mec/support-page.php:173
|
10579 |
#, fuzzy
|
10580 |
#| msgid "Documentation"
|
10581 |
msgid "Developer Documentation"
|
10582 |
msgstr "Dokumentace"
|
10583 |
|
10584 |
+
#: app/features/mec/support-page.php:174
|
10585 |
#, fuzzy
|
10586 |
#| msgid "Knowledgebase"
|
10587 |
msgid "Knowledge"
|
10588 |
msgstr "Znalostní databáze"
|
10589 |
|
10590 |
+
#: app/features/mec/support-page.php:186
|
10591 |
#, fuzzy
|
10592 |
#| msgid "Quick Setup"
|
10593 |
msgid "Quick Setup Video"
|
10594 |
msgstr "Rychlé nastavení"
|
10595 |
|
10596 |
+
#: app/features/mec/support-page.php:190
|
10597 |
msgid "Download the Plugin"
|
10598 |
msgstr "Stažení doplňku"
|
10599 |
|
10600 |
+
#: app/features/mec/support-page.php:191
|
10601 |
msgid "Install and Activate the Plugin"
|
10602 |
msgstr "Instalace a aktivace doplňku"
|
10603 |
|
10604 |
+
#: app/features/mec/support-page.php:192
|
10605 |
msgid "Add a New Event"
|
10606 |
msgstr "Přidat Novou událost"
|
10607 |
|
10608 |
+
#: app/features/mec/support-page.php:195 app/features/mec/support-page.php:212
|
10609 |
+
#: app/features/mec/support-page.php:229 app/features/mec/support-page.php:246
|
10610 |
+
#: app/features/mec/support-page.php:266 app/features/mec/support-page.php:283
|
10611 |
+
#: app/features/mec/support-page.php:300 app/features/mec/support-page.php:317
|
10612 |
msgid "Watch Video"
|
10613 |
msgstr "Sledovat video"
|
10614 |
|
10615 |
+
#: app/features/mec/support-page.php:203
|
10616 |
#, fuzzy
|
10617 |
#| msgid "Activate License"
|
10618 |
msgid "Activate License Video"
|
10619 |
msgstr "Aktivovat licenci"
|
10620 |
|
10621 |
+
#: app/features/mec/support-page.php:207
|
10622 |
msgid "Login to Dashboard"
|
10623 |
msgstr "Přihlásit se do řídícímu panelu"
|
10624 |
|
10625 |
+
#: app/features/mec/support-page.php:208
|
10626 |
msgid "Get the License Key"
|
10627 |
msgstr "Získat licenční klíč"
|
10628 |
|
10629 |
+
#: app/features/mec/support-page.php:209
|
10630 |
msgid "Activate the plugin"
|
10631 |
msgstr "Aktivace doplňku"
|
10632 |
|
10633 |
+
#: app/features/mec/support-page.php:220
|
10634 |
#, fuzzy
|
10635 |
#| msgid "Add New Event"
|
10636 |
msgid "Add New Event Video"
|
10637 |
msgstr "Přidat novou událost"
|
10638 |
|
10639 |
+
#: app/features/mec/support-page.php:224
|
10640 |
msgid "Add New Events, Date and Time"
|
10641 |
msgstr "Přidat novou událost, datum a čas"
|
10642 |
|
10643 |
+
#: app/features/mec/support-page.php:225
|
10644 |
msgid "Tags, Categories, Organizer, Location"
|
10645 |
msgstr "Tagy, Kategorie, Organizátoři, Místa"
|
10646 |
|
10647 |
+
#: app/features/mec/support-page.php:226
|
10648 |
msgid "Hourly Schedule, Set Up Shortcodes"
|
10649 |
msgstr "Hodinový rozvrh, nastavení zkrácených kódů"
|
10650 |
|
10651 |
+
#: app/features/mec/support-page.php:237
|
10652 |
#, fuzzy
|
10653 |
#| msgid "Enable Booking"
|
10654 |
msgid "Enable Booking Video"
|
10655 |
msgstr "Povolit rezervace"
|
10656 |
|
10657 |
+
#: app/features/mec/support-page.php:241
|
10658 |
msgid "Enable Booking"
|
10659 |
msgstr "Povolit rezervace"
|
10660 |
|
10661 |
+
#: app/features/mec/support-page.php:242 app/features/mec/support-page.php:263
|
10662 |
msgid "Customize the Booking Form"
|
10663 |
msgstr "Přizpůsobit rezervační formulář"
|
10664 |
|
10665 |
+
#: app/features/mec/support-page.php:243
|
10666 |
msgid "Set Up a Payment Gateway"
|
10667 |
msgstr "Nastavení platební brány"
|
10668 |
|
10669 |
+
#: app/features/mec/support-page.php:257
|
10670 |
#, fuzzy
|
10671 |
#| msgid "Booking Form"
|
10672 |
msgid "Add Booking Form Video"
|
10673 |
msgstr "Rezervační formulář"
|
10674 |
|
10675 |
+
#: app/features/mec/support-page.php:261
|
10676 |
msgid "Enable Booking from Settings"
|
10677 |
msgstr "Povolit rezervaci z nastavení"
|
10678 |
|
10679 |
+
#: app/features/mec/support-page.php:262
|
10680 |
msgid "Set Up a Booking Form"
|
10681 |
msgstr "Nastavit rezervační formulář"
|
10682 |
|
10683 |
+
#: app/features/mec/support-page.php:274
|
10684 |
#, fuzzy
|
10685 |
#| msgid "Create Shortcodes"
|
10686 |
msgid "Create Shortcodes Video"
|
10687 |
msgstr "Vytvořit zkrácené kódy"
|
10688 |
|
10689 |
+
#: app/features/mec/support-page.php:278
|
10690 |
msgid "Create a New Shortcode"
|
10691 |
msgstr "Vytvořit nové zkrácený kód"
|
10692 |
|
10693 |
+
#: app/features/mec/support-page.php:279
|
10694 |
msgid "Customize Shortcodes"
|
10695 |
msgstr "Přizpůsobit zkrácené kódy"
|
10696 |
|
10697 |
+
#: app/features/mec/support-page.php:280
|
10698 |
msgid "Use Filters in Shortcodes"
|
10699 |
msgstr "Použít filtry ve zkrácených kódech"
|
10700 |
|
10701 |
+
#: app/features/mec/support-page.php:291
|
10702 |
#, fuzzy
|
10703 |
#| msgid "WooCommerce gateways"
|
10704 |
msgid "WooCommerce Video"
|
10705 |
msgstr "Brána WooCommerce"
|
10706 |
|
10707 |
+
#: app/features/mec/support-page.php:295
|
10708 |
msgid "Install and Activate WooCommerce"
|
10709 |
msgstr "Instalace a aktivace WooCommerce"
|
10710 |
|
10711 |
+
#: app/features/mec/support-page.php:296
|
10712 |
msgid "Integrate with MEC"
|
10713 |
msgstr "Integrovat s MEC"
|
10714 |
|
10715 |
+
#: app/features/mec/support-page.php:297
|
10716 |
msgid "Set Up WooCommerce Gateway"
|
10717 |
msgstr "Nastavit bránu WooCommerce"
|
10718 |
|
10719 |
+
#: app/features/mec/support-page.php:308
|
10720 |
#, fuzzy
|
10721 |
#| msgid "Settings"
|
10722 |
msgid "Settings Video"
|
10723 |
msgstr "Nastavení"
|
10724 |
|
10725 |
+
#: app/features/mec/support-page.php:312
|
10726 |
msgid "An Overview of the Settings"
|
10727 |
msgstr "Přehled nastavení"
|
10728 |
|
10729 |
+
#: app/features/mec/support-page.php:313
|
10730 |
msgid "Set Up Different Settings"
|
10731 |
msgstr "Nastavit různá nastavení"
|
10732 |
|
10733 |
+
#: app/features/mec/support-page.php:314
|
10734 |
msgid "Use Different Options"
|
10735 |
msgstr "Použít různé možnosti"
|
10736 |
|
10737 |
+
#: app/features/mec/support-page.php:328
|
10738 |
msgid "FAQ"
|
10739 |
msgstr "FAQ"
|
10740 |
|
10741 |
+
#: app/features/mec/support-page.php:332
|
10742 |
msgid "How should I update plugin?"
|
10743 |
msgstr "Jak mám aktualizovat doplněk?"
|
10744 |
|
10745 |
+
#: app/features/mec/support-page.php:334
|
10746 |
#, php-format
|
10747 |
msgid ""
|
10748 |
"You have two options:<br>\n"
|
10761 |
"vyžaduje přidání nákupního kódu v odpovídající sekci pluginu. Pro další "
|
10762 |
"informace, prosím <a href=\"%s\" target=\"_blank\">klikněte sem</a>."
|
10763 |
|
10764 |
+
#: app/features/mec/support-page.php:339
|
10765 |
msgid "Do I lose all my data or customization if I update MEC?"
|
10766 |
msgstr "Ztratím všechna moje data nebo přizpůsobení, pokud aktualizuji MEC?"
|
10767 |
|
10768 |
+
#: app/features/mec/support-page.php:340
|
10769 |
msgid ""
|
10770 |
"If you’ve added a file to the main folder of MEC, this file will be removed "
|
10771 |
"after the update. Therefore, please do get a full back up before proceeding "
|
10775 |
"aktualizaci odstraněn. Před pokračováním v procesu aktualizace proto prosím "
|
10776 |
"proveďte úplné zálohování."
|
10777 |
|
10778 |
+
#: app/features/mec/support-page.php:343
|
10779 |
msgid "Can I customize the event pages?"
|
10780 |
msgstr "Mohu přizpůsobit stránky událostí?"
|
10781 |
|
10782 |
+
#: app/features/mec/support-page.php:345
|
10783 |
#, php-format
|
10784 |
msgid ""
|
10785 |
"Yes, it is possible. In order to see the related documentations, please <a "
|
10788 |
"Ano, je to možné. Chcete-li zobrazit související dokumentaci, prosím <a href="
|
10789 |
"\"%s\" target=\"_blank\">klikněte sem</a>."
|
10790 |
|
10791 |
+
#: app/features/mec/support-page.php:348
|
10792 |
msgid "Does MEC have default languages or it needs to be translated?"
|
10793 |
msgstr "Má MEC výchozí jazyky nebo je třeba jej přeložit?"
|
10794 |
|
10795 |
+
#: app/features/mec/support-page.php:350
|
10796 |
#, fuzzy, php-format
|
10797 |
#| msgid ""
|
10798 |
#| "Yes, for some of the languages MEC has the translation file as default. "
|
10810 |
"vyžadovat jejich aktualizace. Další informace naleznete <a href=\"%s\" "
|
10811 |
"target=\"_blank\"> kliknutím sem</a>."
|
10812 |
|
10813 |
+
#: app/features/mec/support-page.php:353
|
10814 |
msgid "Can I have more than one calendar in one website?"
|
10815 |
msgstr "Mohu mít na jednom webu více než jeden kalendář?"
|
10816 |
|
10817 |
+
#: app/features/mec/support-page.php:354
|
10818 |
msgid ""
|
10819 |
"Unfortunately, MEC does not support more than 1 calendar in a single "
|
10820 |
"website, however, it will be added in its upcoming updates."
|
10822 |
"MEC bohužel nepodporuje více než 1 kalendář na jednom webu, bude však přidán "
|
10823 |
"do nadcházejících aktualizací."
|
10824 |
|
10825 |
+
#: app/features/mec/support-page.php:356
|
10826 |
msgid "Can I import/export from/to MEC?"
|
10827 |
msgstr "Mohu importovat / exportovat z / do MEC?"
|
10828 |
|
10829 |
+
#: app/features/mec/support-page.php:357
|
10830 |
msgid ""
|
10831 |
"Yes, you can get an XML export from MEC data or import the file you've "
|
10832 |
"exported to MEC. Also, if you are using one of the following plugins (The "
|
10838 |
"calendarize it, EventOn, Events Schedule WP Plugin), pak můžete své události "
|
10839 |
"snadno přenést do MEC."
|
10840 |
|
10841 |
+
#: app/features/mec/support-page.php:365
|
10842 |
msgid "Articles"
|
10843 |
msgstr "Články"
|
10844 |
|
10845 |
+
#: app/features/mec/support-page.php:368
|
10846 |
msgid "MEC And Integrate With WooCommerce"
|
10847 |
msgstr "(MEC) a integrace s WooCommerce"
|
10848 |
|
10849 |
+
#: app/features/mec/support-page.php:370
|
10850 |
#, fuzzy
|
10851 |
#| msgid "Direction on single event"
|
10852 |
msgid "How to remove comment box on single event?"
|
10853 |
msgstr "Směr na jednu událost"
|
10854 |
|
10855 |
+
#: app/features/mec/support-page.php:371
|
10856 |
msgid "Setup Date Option On Shortcodes"
|
10857 |
msgstr "Možnost nastavení data na zkrácené kódy"
|
10858 |
|
10859 |
+
#: app/features/mec/support-page.php:372
|
10860 |
#, fuzzy
|
10861 |
#| msgid "I want to export booking, what should I do?"
|
10862 |
msgid "No Event Found, what should I fix?"
|
10863 |
msgstr "Chci exportovat rezervaci, co mám dělat?"
|
10864 |
|
10865 |
+
#: app/features/mec/support-page.php:373
|
10866 |
msgid "How Can I change the image size in shortcodes?"
|
10867 |
msgstr ""
|
10868 |
|
10869 |
+
#: app/features/mec/support-page.php:374
|
10870 |
msgid "Booking Module Not Working"
|
10871 |
msgstr "Rezervační modul nefunguje"
|
10872 |
|
10873 |
+
#: app/features/mec/support-page.php:376
|
10874 |
msgid "I want to export booking, what should I do?"
|
10875 |
msgstr "Chci exportovat rezervaci, co mám dělat?"
|
10876 |
|
10877 |
+
#: app/features/mec/support-page.php:378
|
10878 |
#, fuzzy
|
10879 |
#| msgid "Documentation"
|
10880 |
msgid "MEC developer documentation"
|
10881 |
msgstr "Dokumentace"
|
10882 |
|
10883 |
+
#: app/features/mec/support-page.php:389
|
10884 |
msgid ""
|
10885 |
"You don’t need to register anywhere for support anymore.You can click the "
|
10886 |
"following button, and the chat box will open up to ask all your different "
|
10887 |
"questions using our various channels."
|
10888 |
msgstr ""
|
10889 |
|
10890 |
+
#: app/features/mec/support-page.php:389
|
10891 |
msgid ""
|
10892 |
"<br><small style=\"color: #8a8a8a;\">Only enter your email address and the "
|
10893 |
"answers will be sent over to your mail box.</small>"
|
10894 |
msgstr ""
|
10895 |
|
10896 |
+
#: app/features/mec/support-page.php:390
|
10897 |
#, fuzzy
|
10898 |
#| msgid "Create a support ticket"
|
10899 |
msgid "Create a Support Ticket"
|
11119 |
msgstr "Vyberte jedno z uložených míst nebo vložte nové."
|
11120 |
|
11121 |
#: app/features/occurrences.php:494 app/features/organizers.php:280
|
11122 |
+
#: app/features/popup/event.php:172
|
11123 |
msgid "Hide organizer"
|
11124 |
msgstr "Skrýt organizátora"
|
11125 |
|
11126 |
#: app/features/occurrences.php:502 app/features/organizers.php:289
|
11127 |
+
#: app/features/popup/event.php:181
|
11128 |
msgid "Choose one of saved organizers or insert new one below."
|
11129 |
msgstr "Vyberte některého z uložených organizátorů nebo vložte nového."
|
11130 |
|
11137 |
msgstr "Vložit email organizátora."
|
11138 |
|
11139 |
#: app/features/organizers.php:120 app/features/organizers.php:157
|
11140 |
+
#: app/features/organizers.php:308 app/features/popup/event.php:204
|
11141 |
msgid "Link to organizer page"
|
11142 |
msgstr "Odkaz na stránku organizátora"
|
11143 |
|
11151 |
msgid "Contact info"
|
11152 |
msgstr "Kontaktní informace"
|
11153 |
|
11154 |
+
#: app/features/organizers.php:281 app/features/popup/event.php:173
|
11155 |
msgid "Insert a new organizer"
|
11156 |
msgstr "Vložit nového organizátora"
|
11157 |
|
11158 |
+
#: app/features/organizers.php:300 app/features/popup/event.php:194
|
11159 |
msgid "Phone number."
|
11160 |
msgstr "Telefonní číslo."
|
11161 |
|
11162 |
+
#: app/features/organizers.php:301 app/features/popup/event.php:195
|
11163 |
msgid "eg. +1 (234) 5678"
|
11164 |
msgstr "např. + 420 123 456 789"
|
11165 |
|
11166 |
+
#: app/features/organizers.php:304 app/features/popup/event.php:199
|
11167 |
msgid "Email address."
|
11168 |
msgstr "Emailová adresa."
|
11169 |
|
11170 |
+
#: app/features/organizers.php:305 app/features/popup/event.php:200
|
11171 |
msgid "eg. john@smith.com"
|
11172 |
msgstr "např. info@itreseni.cz"
|
11173 |
|
11174 |
+
#: app/features/organizers.php:309 app/features/popup/event.php:205
|
11175 |
msgid "eg. https://webnus.net"
|
11176 |
msgstr "např. https://webnus.net"
|
11177 |
|
11178 |
+
#: app/features/organizers.php:329 app/libraries/main.php:7533
|
11179 |
+
#: app/libraries/main.php:7580 app/skins/single.php:1439
|
11180 |
msgid "Other Organizers"
|
11181 |
msgstr "Další organizátoři"
|
11182 |
|
11186 |
msgstr ""
|
11187 |
"Pokud chcete, můžete kromě hlavního organizátora vybrat další organizátory."
|
11188 |
|
11189 |
+
#: app/features/popup/event.php:61
|
11190 |
#, fuzzy
|
11191 |
#| msgid "Add Shortcode"
|
11192 |
msgid "Adding an Event..."
|
11193 |
msgstr "Přidat zkrácený kód"
|
11194 |
|
11195 |
+
#: app/features/popup/event.php:69
|
11196 |
#, fuzzy
|
11197 |
#| msgid "Event Note"
|
11198 |
msgid "Event Name"
|
11199 |
msgstr "Poznámka události"
|
11200 |
|
11201 |
+
#: app/features/popup/event.php:70
|
11202 |
msgid "Event name is required"
|
11203 |
msgstr ""
|
11204 |
|
11205 |
+
#: app/features/popup/event.php:131
|
11206 |
#, fuzzy
|
11207 |
#| msgid "Choose one of saved locations or insert new one below."
|
11208 |
msgid "Choose one of saved locations or insert new one."
|
11209 |
msgstr "Vyberte jedno z uložených míst nebo vložte nové."
|
11210 |
|
11211 |
+
#: app/features/popup/event.php:135
|
11212 |
#, fuzzy
|
11213 |
#| msgid "Location"
|
11214 |
msgid "Add Location"
|
11215 |
msgstr "Umístění"
|
11216 |
|
11217 |
+
#: app/features/popup/event.php:185
|
11218 |
#, fuzzy
|
11219 |
#| msgid "Organizer"
|
11220 |
msgid "Add Organizer"
|
11221 |
msgstr "Organizátor"
|
11222 |
|
11223 |
+
#: app/features/popup/event.php:225
|
11224 |
#, fuzzy
|
11225 |
#| msgid "Categories"
|
11226 |
msgid "All Categories"
|
11227 |
msgstr "Kategorie"
|
11228 |
|
11229 |
+
#: app/features/popup/event.php:226
|
11230 |
msgid "Most Used"
|
11231 |
msgstr ""
|
11232 |
|
11233 |
+
#: app/features/popup/event.php:237
|
11234 |
#, fuzzy
|
11235 |
#| msgid "Add New Event"
|
11236 |
msgid "Add New Category"
|
11237 |
msgstr "Přidat novou událost"
|
11238 |
|
11239 |
# v kontextu
|
11240 |
+
#: app/features/popup/event.php:248
|
11241 |
#, fuzzy
|
11242 |
#| msgid "Featured Image"
|
11243 |
msgid "Set Featured Image"
|
11244 |
msgstr "Hlavní obrázek"
|
11245 |
|
11246 |
+
#: app/features/popup/event.php:258
|
11247 |
msgid "Your Event Has Been Created."
|
11248 |
msgstr ""
|
11249 |
|
11250 |
+
#: app/features/popup/event.php:269 app/features/popup/settings.php:534
|
11251 |
#: app/features/popup/shortcode.php:553
|
11252 |
msgid "Prev"
|
11253 |
msgstr ""
|
11254 |
|
11255 |
+
#: app/features/popup/event.php:270 app/features/popup/settings.php:536
|
11256 |
+
#: app/features/popup/shortcode.php:554 app/modules/booking/steps/form.php:391
|
11257 |
+
#: app/modules/booking/steps/tickets.php:220 app/skins/countdown/tpl.php:114
|
11258 |
#: app/skins/countdown/tpl.php:160 app/skins/countdown/tpl.php:207
|
11259 |
msgid "Next"
|
11260 |
msgstr "Další"
|
11547 |
msgid "Other Dates"
|
11548 |
msgstr "Konec"
|
11549 |
|
11550 |
+
#: app/features/wc.php:113 app/features/wc.php:136 app/libraries/main.php:2982
|
11551 |
+
#: app/libraries/main.php:3261 app/libraries/notifications.php:1617
|
11552 |
#: app/libraries/notifications.php:1632 app/libraries/notifications.php:1643
|
11553 |
#: app/libraries/notifications.php:1659 app/libraries/notifications.php:1987
|
11554 |
#: app/libraries/notifications.php:1988 app/libraries/transaction.php:180
|
11566 |
msgid "Only %s slots remained for %s ticket so you cannot book %s ones."
|
11567 |
msgstr ""
|
11568 |
|
11569 |
+
#: app/features/wc.php:256 app/libraries/main.php:7517
|
11570 |
#, php-format
|
11571 |
msgid "Maximum allowed number of tickets that you can book is %s."
|
11572 |
msgstr ""
|
11609 |
msgid "Checkout"
|
11610 |
msgstr "Překontrolovat"
|
11611 |
|
11612 |
+
#: app/libraries/factory.php:178
|
11613 |
msgid "M.E. Calendar"
|
11614 |
msgstr "M.E. Kalendář"
|
11615 |
|
11616 |
+
#: app/libraries/factory.php:217
|
11617 |
msgctxt "plugin link"
|
11618 |
msgid "Upgrade to Pro Version"
|
11619 |
msgstr "Upgrade na verzi PRO"
|
11620 |
|
11621 |
+
#: app/libraries/factory.php:233
|
11622 |
msgctxt "plugin link"
|
11623 |
msgid "Settings"
|
11624 |
msgstr "Nastavení"
|
11625 |
|
11626 |
+
#: app/libraries/factory.php:238
|
11627 |
msgctxt "plugin link"
|
11628 |
msgid "Upgrade"
|
11629 |
msgstr "Upgrade"
|
11630 |
|
11631 |
+
#: app/libraries/factory.php:392
|
11632 |
msgid "day"
|
11633 |
msgstr "den"
|
11634 |
|
11635 |
+
#: app/libraries/factory.php:393 app/modules/countdown/details.php:193
|
11636 |
#: app/skins/available_spot/tpl.php:143 app/skins/countdown/tpl.php:128
|
11637 |
#: app/skins/countdown/tpl.php:174 app/skins/countdown/tpl.php:225
|
11638 |
msgid "days"
|
11639 |
msgstr "dny"
|
11640 |
|
11641 |
+
#: app/libraries/factory.php:394
|
11642 |
msgid "hour"
|
11643 |
msgstr "hodina"
|
11644 |
|
11645 |
+
#: app/libraries/factory.php:395 app/modules/countdown/details.php:200
|
11646 |
#: app/skins/available_spot/tpl.php:147 app/skins/countdown/tpl.php:134
|
11647 |
#: app/skins/countdown/tpl.php:180 app/skins/countdown/tpl.php:231
|
11648 |
msgid "hours"
|
11649 |
msgstr "hodiny"
|
11650 |
|
11651 |
+
#: app/libraries/factory.php:396
|
11652 |
msgid "minute"
|
11653 |
msgstr "minuta"
|
11654 |
|
11655 |
+
#: app/libraries/factory.php:397 app/modules/countdown/details.php:207
|
11656 |
#: app/skins/available_spot/tpl.php:151 app/skins/countdown/tpl.php:140
|
11657 |
#: app/skins/countdown/tpl.php:186 app/skins/countdown/tpl.php:237
|
11658 |
msgid "minutes"
|
11659 |
msgstr "minuty"
|
11660 |
|
11661 |
+
#: app/libraries/factory.php:398
|
11662 |
msgid "second"
|
11663 |
msgstr "vteřina"
|
11664 |
|
11665 |
+
#: app/libraries/factory.php:399 app/modules/countdown/details.php:214
|
11666 |
#: app/skins/available_spot/tpl.php:155 app/skins/countdown/tpl.php:146
|
11667 |
#: app/skins/countdown/tpl.php:192 app/skins/countdown/tpl.php:243
|
11668 |
msgid "seconds"
|
11669 |
msgstr "vteřiny"
|
11670 |
|
11671 |
+
#: app/libraries/factory.php:476
|
11672 |
msgid "MEC Single Sidebar"
|
11673 |
msgstr "MEC Postranní panel"
|
11674 |
|
11675 |
+
#: app/libraries/factory.php:477
|
11676 |
msgid "Custom sidebar for single and modal page of MEC."
|
11677 |
msgstr "Vlastní postranní panel pro jednu a modální stránku MEC."
|
11678 |
|
11679 |
+
#: app/libraries/factory.php:1198
|
11680 |
msgid "Notice:"
|
11681 |
msgstr ""
|
11682 |
|
11683 |
+
#: app/libraries/factory.php:1199
|
11684 |
msgid "This update includes only bug fixes."
|
11685 |
msgstr ""
|
11686 |
|
11723 |
msgid "New Day"
|
11724 |
msgstr "Nový den"
|
11725 |
|
11726 |
+
#: app/libraries/main.php:376 app/libraries/main.php:2297
|
11727 |
+
#: app/libraries/main.php:2323
|
11728 |
msgid "Agenda View"
|
11729 |
msgstr "Zobrazení agendy"
|
11730 |
|
11731 |
+
#: app/libraries/main.php:377 app/libraries/main.php:2288
|
11732 |
+
#: app/libraries/main.php:2314
|
11733 |
msgid "Full Calendar"
|
11734 |
msgstr "Plný kalendář"
|
11735 |
|
11736 |
+
#: app/libraries/main.php:379 app/libraries/main.php:2290
|
11737 |
+
#: app/libraries/main.php:2316
|
11738 |
msgid "Calendar/Monthly View"
|
11739 |
msgstr "Kalendář / zobrazení měsíce"
|
11740 |
|
11741 |
+
#: app/libraries/main.php:382 app/libraries/main.php:2293
|
11742 |
+
#: app/libraries/main.php:2319
|
11743 |
msgid "Timetable View"
|
11744 |
msgstr "Zobrazení rozvrhu"
|
11745 |
|
11746 |
+
#: app/libraries/main.php:383 app/libraries/main.php:2294
|
11747 |
+
#: app/libraries/main.php:2320
|
11748 |
msgid "Masonry View"
|
11749 |
msgstr "Zobrazení zdi"
|
11750 |
|
11751 |
+
#: app/libraries/main.php:384 app/libraries/main.php:2298
|
11752 |
+
#: app/libraries/main.php:2324
|
11753 |
msgid "Map View"
|
11754 |
msgstr "Zobrazení mapy"
|
11755 |
|
11780 |
msgid "Timeline View"
|
11781 |
msgstr "Zobrazení rozvrhu"
|
11782 |
|
11783 |
+
#: app/libraries/main.php:392 app/libraries/main.php:2299
|
11784 |
+
#: app/libraries/main.php:2325
|
11785 |
#, fuzzy
|
11786 |
#| msgid "Google Calendar"
|
11787 |
msgid "General Calendar"
|
11788 |
msgstr "Kalendář Google"
|
11789 |
|
11790 |
+
#: app/libraries/main.php:451 app/libraries/main.php:7500
|
11791 |
+
#: app/libraries/main.php:7561
|
11792 |
msgid "SU"
|
11793 |
msgstr "NE"
|
11794 |
|
11795 |
+
#: app/libraries/main.php:452 app/libraries/main.php:7501
|
11796 |
+
#: app/libraries/main.php:7562
|
11797 |
msgid "MO"
|
11798 |
msgstr "PO"
|
11799 |
|
11800 |
+
#: app/libraries/main.php:453 app/libraries/main.php:7502
|
11801 |
+
#: app/libraries/main.php:7563
|
11802 |
msgid "TU"
|
11803 |
msgstr "ÚT"
|
11804 |
|
11805 |
+
#: app/libraries/main.php:454 app/libraries/main.php:7503
|
11806 |
+
#: app/libraries/main.php:7564
|
11807 |
msgid "WE"
|
11808 |
msgstr "ST"
|
11809 |
|
11810 |
+
#: app/libraries/main.php:455 app/libraries/main.php:7504
|
11811 |
+
#: app/libraries/main.php:7565
|
11812 |
msgid "TH"
|
11813 |
msgstr "ČT"
|
11814 |
|
11815 |
+
#: app/libraries/main.php:456 app/libraries/main.php:7505
|
11816 |
+
#: app/libraries/main.php:7566
|
11817 |
msgid "FR"
|
11818 |
msgstr "PÁ"
|
11819 |
|
11820 |
+
#: app/libraries/main.php:457 app/libraries/main.php:7506
|
11821 |
+
#: app/libraries/main.php:7567
|
11822 |
msgid "SA"
|
11823 |
msgstr "SO"
|
11824 |
|
11902 |
msgid "find out more"
|
11903 |
msgstr ""
|
11904 |
|
11905 |
+
#: app/libraries/main.php:2014
|
11906 |
msgid "Events at this location"
|
11907 |
msgstr "Události na tomto místě"
|
11908 |
|
11909 |
+
#: app/libraries/main.php:2014
|
11910 |
msgid "Event at this location"
|
11911 |
msgstr "Událost na tomto místě"
|
11912 |
|
11913 |
+
#: app/libraries/main.php:2066
|
11914 |
msgid "Facebook"
|
11915 |
msgstr "Facebook"
|
11916 |
|
11917 |
+
#: app/libraries/main.php:2067
|
11918 |
msgid "Twitter"
|
11919 |
msgstr "Twitter"
|
11920 |
|
11921 |
+
#: app/libraries/main.php:2068 app/libraries/main.php:2125
|
11922 |
msgid "Linkedin"
|
11923 |
msgstr "Linkedin"
|
11924 |
|
11925 |
+
#: app/libraries/main.php:2069 app/libraries/main.php:2161
|
11926 |
msgid "VK"
|
11927 |
msgstr "VK"
|
11928 |
|
11929 |
+
#: app/libraries/main.php:2070
|
11930 |
msgid "Tumblr"
|
11931 |
msgstr ""
|
11932 |
|
11933 |
+
#: app/libraries/main.php:2071
|
11934 |
msgid "Pinterest"
|
11935 |
msgstr ""
|
11936 |
|
11937 |
+
#: app/libraries/main.php:2072
|
11938 |
msgid "Flipboard"
|
11939 |
msgstr ""
|
11940 |
|
11941 |
+
#: app/libraries/main.php:2073
|
11942 |
#, fuzzy
|
11943 |
#| msgid "Tickets"
|
11944 |
msgid "GetPocket"
|
11945 |
msgstr "Vstupenky"
|
11946 |
|
11947 |
+
#: app/libraries/main.php:2074
|
11948 |
msgid "Reddit"
|
11949 |
msgstr ""
|
11950 |
|
11951 |
+
#: app/libraries/main.php:2075
|
11952 |
msgid "WhatsApp"
|
11953 |
msgstr ""
|
11954 |
|
11955 |
+
#: app/libraries/main.php:2076
|
11956 |
msgid "Telegram"
|
11957 |
msgstr ""
|
11958 |
|
11959 |
+
#: app/libraries/main.php:2095
|
11960 |
msgid "Share on Facebook"
|
11961 |
msgstr "Sdílet na Facebooku"
|
11962 |
|
11963 |
+
#: app/libraries/main.php:2110
|
11964 |
msgid "Tweet"
|
11965 |
msgstr "Tweet"
|
11966 |
|
11967 |
+
#: app/libraries/main.php:2176
|
11968 |
#, fuzzy
|
11969 |
#| msgid "Share on Facebook"
|
11970 |
msgid "Share on Tumblr"
|
11971 |
msgstr "Sdílet na Facebooku"
|
11972 |
|
11973 |
+
#: app/libraries/main.php:2192
|
11974 |
msgid "Share on Pinterest"
|
11975 |
msgstr ""
|
11976 |
|
11977 |
+
#: app/libraries/main.php:2208
|
11978 |
#, fuzzy
|
11979 |
#| msgid "Share on Facebook"
|
11980 |
msgid "Share on Flipboard"
|
11981 |
msgstr "Sdílet na Facebooku"
|
11982 |
|
11983 |
+
#: app/libraries/main.php:2226
|
11984 |
#, fuzzy
|
11985 |
#| msgid "Share on Facebook"
|
11986 |
msgid "Share on GetPocket"
|
11987 |
msgstr "Sdílet na Facebooku"
|
11988 |
|
11989 |
+
#: app/libraries/main.php:2242
|
11990 |
#, fuzzy
|
11991 |
#| msgid "Share on Facebook"
|
11992 |
msgid "Share on Reddit"
|
11993 |
msgstr "Sdílet na Facebooku"
|
11994 |
|
11995 |
+
#: app/libraries/main.php:2258
|
11996 |
msgid "Share on Telegram"
|
11997 |
msgstr ""
|
11998 |
|
11999 |
+
#: app/libraries/main.php:2276
|
12000 |
msgid "Share on WhatsApp"
|
12001 |
msgstr ""
|
12002 |
|
12003 |
+
#: app/libraries/main.php:2300 app/libraries/main.php:2326
|
12004 |
msgid "Custom Shortcode"
|
12005 |
msgstr "Uživatelské zkrácené kódy"
|
12006 |
|
12007 |
+
#: app/libraries/main.php:2712 app/libraries/main.php:2747
|
12008 |
#, fuzzy
|
12009 |
#| msgid "The events are imported successfully!"
|
12010 |
msgid "Your booking has been verified successfully!"
|
12011 |
msgstr "Události byly úspěšně importovány!"
|
12012 |
|
12013 |
+
#: app/libraries/main.php:2717
|
12014 |
msgid "Your booking already verified!"
|
12015 |
msgstr "Vaše rezervace již byla ověřena!"
|
12016 |
|
12017 |
+
#: app/libraries/main.php:2749
|
12018 |
msgid "Your booking cannot verify!"
|
12019 |
msgstr "Vaši rezervaci nelze ověřit!"
|
12020 |
|
12021 |
+
#: app/libraries/main.php:2771 app/libraries/main.php:2830
|
12022 |
msgid "Your booking successfully canceled."
|
12023 |
msgstr "Vaše rezervace byla úspěšně zrušena."
|
12024 |
|
12025 |
+
#: app/libraries/main.php:2776
|
12026 |
msgid "Your booking already canceled!"
|
12027 |
msgstr "Vaše rezervace již byla zrušena!"
|
12028 |
|
12029 |
+
#: app/libraries/main.php:2788
|
12030 |
#, fuzzy
|
12031 |
#| msgid "The event is finished."
|
12032 |
msgid "The event is already finished!"
|
12033 |
msgstr "Událost je ukončena."
|
12034 |
|
12035 |
+
#: app/libraries/main.php:2809
|
12036 |
msgid "The cancelation window is not started yet."
|
12037 |
msgstr ""
|
12038 |
|
12039 |
+
#: app/libraries/main.php:2821
|
12040 |
msgid "The cancelation window is passed."
|
12041 |
msgstr ""
|
12042 |
|
12043 |
+
#: app/libraries/main.php:2838
|
12044 |
msgid "Your booking cannot be canceled."
|
12045 |
msgstr "Vaši rezervaci nelze zrušit."
|
12046 |
|
12047 |
+
#: app/libraries/main.php:2842
|
12048 |
msgid "You canceled the payment successfully."
|
12049 |
msgstr "Platbu jste úspěšně zrušili."
|
12050 |
|
12051 |
+
#: app/libraries/main.php:2846
|
12052 |
msgid "You returned from payment gateway successfully."
|
12053 |
msgstr "Úspěšně jste se vrátili z platební brány."
|
12054 |
|
12055 |
+
#: app/libraries/main.php:2865 app/libraries/main.php:3147
|
12056 |
+
#: app/libraries/main.php:3160
|
12057 |
msgid "Cannot find the invoice!"
|
12058 |
msgstr "Fakturu nelze najít!"
|
12059 |
|
12060 |
+
#: app/libraries/main.php:2865 app/libraries/main.php:3147
|
12061 |
+
#: app/libraries/main.php:3160
|
12062 |
msgid "Invoice is invalid."
|
12063 |
msgstr "Faktura je neplatná."
|
12064 |
|
12065 |
+
#: app/libraries/main.php:2887
|
12066 |
#, fuzzy
|
12067 |
#| msgid ""
|
12068 |
#| "Your booking still is not confirmed. You able download it after "
|
12072 |
msgstr ""
|
12073 |
"Vaše rezervace stále není potvrzena. Můžete si ji stáhnout po potvrzení!"
|
12074 |
|
12075 |
+
#: app/libraries/main.php:2887
|
12076 |
msgid "Booking Not Confirmed."
|
12077 |
msgstr "Rezervace nebyla potvrzena."
|
12078 |
|
12079 |
+
#: app/libraries/main.php:2893
|
12080 |
msgid "Cannot find the booking!"
|
12081 |
msgstr "Nemohu najít rezervaci!"
|
12082 |
|
12083 |
+
#: app/libraries/main.php:2893
|
12084 |
msgid "Booking is invalid."
|
12085 |
msgstr "Rezervace není platná."
|
12086 |
|
12087 |
+
#: app/libraries/main.php:2901
|
12088 |
#, fuzzy
|
12089 |
#| msgid "Sorry! You don't have access to modify this event."
|
12090 |
msgid "You don't have access to view this invoice!"
|
12091 |
msgstr "Promiňte! Nemáte přístup k úpravě této události."
|
12092 |
|
12093 |
+
#: app/libraries/main.php:2901
|
12094 |
#, fuzzy
|
12095 |
#| msgid "Invoice is invalid."
|
12096 |
msgid "Key is invalid."
|
12097 |
msgstr "Faktura je neplatná."
|
12098 |
|
12099 |
+
#: app/libraries/main.php:2936 app/libraries/main.php:3179
|
12100 |
#, php-format
|
12101 |
msgid "%s Invoice"
|
12102 |
msgstr "%s Faktura"
|
12103 |
|
12104 |
+
#: app/libraries/main.php:2973 app/libraries/main.php:3252
|
12105 |
#, fuzzy
|
12106 |
#| msgid "Date and Time"
|
12107 |
msgid "Date & Times"
|
12108 |
msgstr "Datum a čas"
|
12109 |
|
12110 |
+
#: app/libraries/main.php:2992 app/libraries/main.php:3271
|
12111 |
#, fuzzy
|
12112 |
#| msgid "Date and Time"
|
12113 |
msgid "Date & Time"
|
12114 |
msgstr "Datum a čas"
|
12115 |
|
12116 |
+
#: app/libraries/main.php:3008
|
12117 |
#, fuzzy, php-format
|
12118 |
#| msgid "Custom Styles"
|
12119 |
msgid "%s Fields"
|
12120 |
msgstr "Vlastní styly"
|
12121 |
|
12122 |
+
#: app/libraries/main.php:3080 app/libraries/main.php:3328
|
12123 |
msgid "Billing"
|
12124 |
msgstr "Fakturace"
|
12125 |
|
12126 |
+
#: app/libraries/main.php:3097 app/libraries/main.php:3345
|
12127 |
msgid "Total"
|
12128 |
msgstr "Celkem"
|
12129 |
|
12130 |
+
#: app/libraries/main.php:3104 app/libraries/main.php:3353
|
12131 |
#, fuzzy
|
12132 |
#| msgid "Payment Gateways"
|
12133 |
msgid "Payment"
|
12134 |
msgstr "Platební brány"
|
12135 |
|
12136 |
+
#: app/libraries/main.php:3121 app/libraries/main.php:3370
|
12137 |
#, fuzzy
|
12138 |
#| msgid "Payment Gateways"
|
12139 |
msgid "Payment Time"
|
12140 |
msgstr "Platební brány"
|
12141 |
|
12142 |
+
#: app/libraries/main.php:3220
|
12143 |
#, fuzzy
|
12144 |
#| msgid "Confirmed"
|
12145 |
msgid "Not Confirmed"
|
12146 |
msgstr "Potvrzeno"
|
12147 |
|
12148 |
+
#: app/libraries/main.php:3499
|
12149 |
msgid "Request is not valid."
|
12150 |
msgstr "Požadavek není platný."
|
12151 |
|
12152 |
+
#: app/libraries/main.php:3499
|
12153 |
msgid "iCal export stopped!"
|
12154 |
msgstr "iCal export byl zastaven!"
|
12155 |
|
12156 |
+
#: app/libraries/main.php:4224
|
12157 |
#, fuzzy
|
12158 |
#| msgid "Block Editor"
|
12159 |
msgid "HTML Editor"
|
12160 |
msgstr "Editor bloků"
|
12161 |
|
12162 |
+
#: app/libraries/main.php:4382
|
12163 |
msgid "Consider the first item as a placeholder"
|
12164 |
msgstr ""
|
12165 |
|
12166 |
+
#: app/libraries/main.php:4491
|
12167 |
msgid "Free"
|
12168 |
msgstr "Zdarma"
|
12169 |
|
12170 |
+
#: app/libraries/main.php:5266 app/libraries/main.php:7898
|
12171 |
msgid "M.E. Calender"
|
12172 |
msgstr "M.E. Kalendář"
|
12173 |
|
12174 |
+
#: app/libraries/main.php:5445
|
12175 |
#, php-format
|
12176 |
msgid "Copy of %s"
|
12177 |
msgstr "Kopie %s"
|
12178 |
|
12179 |
+
#: app/libraries/main.php:6429
|
12180 |
msgid "Booked an event."
|
12181 |
msgstr "Událost byla rezervována."
|
12182 |
|
12183 |
+
#: app/libraries/main.php:6470
|
12184 |
#, php-format
|
12185 |
msgid "%s booked %s event."
|
12186 |
msgstr "%s zarezervoval %s událost."
|
12187 |
|
12188 |
+
#: app/libraries/main.php:7483 app/libraries/main.php:7544
|
12189 |
msgid "Taxonomies"
|
12190 |
msgstr "Taxonomie"
|
12191 |
|
12192 |
# Mrknout na kontext
|
12193 |
+
#: app/libraries/main.php:7485 app/libraries/main.php:7546
|
12194 |
msgid "Category Plural Label"
|
12195 |
msgstr "Štítek množné kategorie"
|
12196 |
|
12197 |
# Mrknout na kontext
|
12198 |
+
#: app/libraries/main.php:7486 app/libraries/main.php:7547
|
12199 |
msgid "Category Singular Label"
|
12200 |
msgstr "Štítek jednotné kategorie"
|
12201 |
|
12202 |
+
#: app/libraries/main.php:7487 app/libraries/main.php:7548
|
12203 |
msgid "Label Plural Label"
|
12204 |
msgstr "Štítek množného štítku"
|
12205 |
|
12206 |
+
#: app/libraries/main.php:7488 app/libraries/main.php:7549
|
12207 |
msgid "Label Singular Label"
|
12208 |
msgstr "Štítek jednotného štítku"
|
12209 |
|
12210 |
+
#: app/libraries/main.php:7488 app/libraries/main.php:7549
|
12211 |
msgid "label"
|
12212 |
msgstr "štítek"
|
12213 |
|
12214 |
+
#: app/libraries/main.php:7489 app/libraries/main.php:7550
|
12215 |
msgid "Location Plural Label"
|
12216 |
msgstr "Štítek množného umístění"
|
12217 |
|
12218 |
+
#: app/libraries/main.php:7490 app/libraries/main.php:7551
|
12219 |
msgid "Location Singular Label"
|
12220 |
msgstr "Štítek jednotného umístění"
|
12221 |
|
12222 |
+
#: app/libraries/main.php:7491 app/libraries/main.php:7552
|
12223 |
msgid "Organizer Plural Label"
|
12224 |
msgstr "Štítek množného organizátora"
|
12225 |
|
12226 |
+
#: app/libraries/main.php:7492 app/libraries/main.php:7553
|
12227 |
msgid "Organizer Singular Label"
|
12228 |
msgstr "Štítek jednotného organizátora"
|
12229 |
|
12230 |
+
#: app/libraries/main.php:7493 app/libraries/main.php:7554
|
12231 |
msgid "Speaker Plural Label"
|
12232 |
msgstr "Štítek množného řečníka"
|
12233 |
|
12234 |
+
#: app/libraries/main.php:7494 app/libraries/main.php:7555
|
12235 |
msgid "Speaker Singular Label"
|
12236 |
msgstr "Štítek jednotného řečníka"
|
12237 |
|
12238 |
+
#: app/libraries/main.php:7500 app/libraries/main.php:7561
|
12239 |
msgid "Sunday abbreviation"
|
12240 |
msgstr "Neděle zkratka"
|
12241 |
|
12242 |
+
#: app/libraries/main.php:7501 app/libraries/main.php:7562
|
12243 |
msgid "Monday abbreviation"
|
12244 |
msgstr "Pondělí zkratka"
|
12245 |
|
12246 |
+
#: app/libraries/main.php:7502 app/libraries/main.php:7563
|
12247 |
msgid "Tuesday abbreviation"
|
12248 |
msgstr "Úterý zkratka"
|
12249 |
|
12250 |
+
#: app/libraries/main.php:7503 app/libraries/main.php:7564
|
12251 |
msgid "Wednesday abbreviation"
|
12252 |
msgstr "Středa zkratka"
|
12253 |
|
12254 |
+
#: app/libraries/main.php:7504 app/libraries/main.php:7565
|
12255 |
msgid "Thursday abbreviation"
|
12256 |
msgstr "Čtvrtek zkratka"
|
12257 |
|
12258 |
+
#: app/libraries/main.php:7505 app/libraries/main.php:7566
|
12259 |
msgid "Friday abbreviation"
|
12260 |
msgstr "Pátek zkratka"
|
12261 |
|
12262 |
+
#: app/libraries/main.php:7506 app/libraries/main.php:7567
|
12263 |
msgid "Saturday abbreviation"
|
12264 |
msgstr "Sobota zkratka"
|
12265 |
|
12266 |
+
#: app/libraries/main.php:7512
|
12267 |
#, fuzzy
|
12268 |
#| msgid "Ticket (Singular)"
|
12269 |
msgid "Booking (Singular)"
|
12270 |
msgstr "Vstupenka (Jednotné)"
|
12271 |
|
12272 |
+
#: app/libraries/main.php:7513
|
12273 |
#, fuzzy
|
12274 |
#| msgid "Tickets (Plural)"
|
12275 |
msgid "Bookings (Plural)"
|
12276 |
msgstr "Vstupenky (Množné)"
|
12277 |
|
12278 |
+
#: app/libraries/main.php:7514
|
12279 |
msgid "Booking Success Message"
|
12280 |
msgstr "Zpráva o úspěchu rezervace"
|
12281 |
|
12282 |
+
#: app/libraries/main.php:7514
|
12283 |
#, fuzzy
|
12284 |
#| msgid ""
|
12285 |
#| "Thanks for your booking. Your tickets booked, booking verification might "
|
12291 |
"Děkujeme za vaši rezervaci. Vaše vstupenky jsou rezervovány, může být nutné "
|
12292 |
"ověřit rezervaci. Zkontrolujte prosím svůj e-mail."
|
12293 |
|
12294 |
+
#: app/libraries/main.php:7515
|
12295 |
#, fuzzy
|
12296 |
#| msgid "Booking Success Message"
|
12297 |
msgid "Booking Restriction Message 1"
|
12298 |
msgstr "Zpráva o úspěchu rezervace"
|
12299 |
|
12300 |
+
#: app/libraries/main.php:7515
|
12301 |
#, php-format
|
12302 |
msgid ""
|
12303 |
"You selected %s tickets to book but maximum number of tikets per user is %s "
|
12304 |
"tickets."
|
12305 |
msgstr ""
|
12306 |
|
12307 |
+
#: app/libraries/main.php:7516
|
12308 |
#, fuzzy
|
12309 |
#| msgid "Booking Success Message"
|
12310 |
msgid "Booking Restriction Message 2"
|
12311 |
msgstr "Zpráva o úspěchu rezervace"
|
12312 |
|
12313 |
+
#: app/libraries/main.php:7516
|
12314 |
#, php-format
|
12315 |
msgid ""
|
12316 |
"You booked %s tickets till now but maximum number of tickets per user is %s "
|
12317 |
"tickets."
|
12318 |
msgstr ""
|
12319 |
|
12320 |
+
#: app/libraries/main.php:7517
|
12321 |
#, fuzzy
|
12322 |
#| msgid "Booking Success Message"
|
12323 |
msgid "Booking IP Restriction Message"
|
12324 |
msgstr "Zpráva o úspěchu rezervace"
|
12325 |
|
12326 |
+
#: app/libraries/main.php:7518
|
12327 |
#, fuzzy
|
12328 |
#| msgid "Booking Options"
|
12329 |
msgid "Booking Button"
|
12330 |
msgstr "Možnosti rezervace"
|
12331 |
|
12332 |
+
#: app/libraries/main.php:7518
|
12333 |
#, fuzzy
|
12334 |
#| msgid "Booking Form"
|
12335 |
msgid "Book Now"
|
12336 |
msgstr "Rezervační formulář"
|
12337 |
|
12338 |
+
#: app/libraries/main.php:7519
|
12339 |
msgid "Ticket (Singular)"
|
12340 |
msgstr "Vstupenka (Jednotné)"
|
12341 |
|
12342 |
+
#: app/libraries/main.php:7520
|
12343 |
msgid "Tickets (Plural)"
|
12344 |
msgstr "Vstupenky (Množné)"
|
12345 |
|
12346 |
+
#: app/libraries/main.php:7524 app/libraries/main.php:7571
|
12347 |
msgid "Others"
|
12348 |
msgstr "Další"
|
12349 |
|
12350 |
+
#: app/libraries/main.php:7526 app/libraries/main.php:7573
|
12351 |
#: app/widgets/single.php:150
|
12352 |
msgid "Register Button"
|
12353 |
msgstr "Registrační tlačítko"
|
12354 |
|
12355 |
+
#: app/libraries/main.php:7527 app/libraries/main.php:7574
|
12356 |
msgid "View Detail Button"
|
12357 |
msgstr "Tlačítko Zobrazit detail"
|
12358 |
|
12359 |
+
#: app/libraries/main.php:7527 app/libraries/main.php:7574
|
12360 |
+
#: app/skins/carousel/render.php:105 app/skins/carousel/render.php:144
|
12361 |
#: app/skins/grid/render.php:94 app/skins/grid/render.php:153
|
12362 |
#: app/skins/grid/render.php:214 app/skins/grid/render.php:237
|
12363 |
#: app/skins/list/render.php:90 app/skins/list/render.php:210
|
12368 |
msgid "View Detail"
|
12369 |
msgstr "Zobrazit detail"
|
12370 |
|
12371 |
+
#: app/libraries/main.php:7528 app/libraries/main.php:7575
|
12372 |
msgid "Event Detail Button"
|
12373 |
msgstr "Tlačítko Detail události"
|
12374 |
|
12375 |
+
#: app/libraries/main.php:7528 app/libraries/main.php:7575
|
12376 |
msgid "Event Detail"
|
12377 |
msgstr "Zobrazit událost"
|
12378 |
|
12379 |
+
#: app/libraries/main.php:7690
|
12380 |
msgid "EventON"
|
12381 |
msgstr "EventON"
|
12382 |
|
12383 |
+
#: app/libraries/main.php:7691
|
12384 |
msgid "The Events Calendar"
|
12385 |
msgstr "The Events Calendar"
|
12386 |
|
12387 |
+
#: app/libraries/main.php:7692
|
12388 |
msgid "Events Schedule WP Plugin"
|
12389 |
msgstr "Events Schedule WP Plugin"
|
12390 |
|
12391 |
+
#: app/libraries/main.php:7693
|
12392 |
msgid "Calendarize It"
|
12393 |
msgstr "Calendarize It"
|
12394 |
|
12395 |
+
#: app/libraries/main.php:7694
|
12396 |
#, fuzzy
|
12397 |
#| msgid "Event Speakers"
|
12398 |
msgid "Event Espresso"
|
12399 |
msgstr "Řečník události"
|
12400 |
|
12401 |
+
#: app/libraries/main.php:7695
|
12402 |
#, fuzzy
|
12403 |
#| msgid "Event Repeating (Recurring events)"
|
12404 |
msgid "Events Manager (Recurring)"
|
12405 |
msgstr "Opakování události (opakující se události)"
|
12406 |
|
12407 |
+
#: app/libraries/main.php:7696
|
12408 |
#, fuzzy
|
12409 |
#| msgid "Modern Events Calendar (Lite)"
|
12410 |
msgid "Events Manager (Single)"
|
12411 |
msgstr "Modern Events Calendar (Lite)"
|
12412 |
|
12413 |
+
#: app/libraries/main.php:7697
|
12414 |
#, fuzzy
|
12415 |
#| msgid "Modern Events Calendar (Lite)"
|
12416 |
msgid "WP Event Manager"
|
12417 |
msgstr "Modern Events Calendar (Lite)"
|
12418 |
|
12419 |
+
#: app/libraries/main.php:7928
|
12420 |
#, fuzzy
|
12421 |
#| msgid "Sunday"
|
12422 |
msgid "Sun"
|
12423 |
msgstr "Neděle"
|
12424 |
|
12425 |
+
#: app/libraries/main.php:7928
|
12426 |
#, fuzzy
|
12427 |
#| msgid "Monday"
|
12428 |
msgid "Mon"
|
12429 |
msgstr "Pondělí"
|
12430 |
|
12431 |
+
#: app/libraries/main.php:7928
|
12432 |
#, fuzzy
|
12433 |
#| msgid "Tel"
|
12434 |
msgid "Tue"
|
12435 |
msgstr "Tel"
|
12436 |
|
12437 |
+
#: app/libraries/main.php:7928
|
12438 |
msgid "Wed"
|
12439 |
msgstr ""
|
12440 |
|
12441 |
+
#: app/libraries/main.php:7928
|
12442 |
msgid "Thu"
|
12443 |
msgstr ""
|
12444 |
|
12445 |
+
#: app/libraries/main.php:7928
|
12446 |
#, fuzzy
|
12447 |
#| msgid "Friday"
|
12448 |
msgid "Fri"
|
12449 |
msgstr "Pátek"
|
12450 |
|
12451 |
+
#: app/libraries/main.php:7928
|
12452 |
#, fuzzy
|
12453 |
#| msgid "Start"
|
12454 |
msgid "Sat"
|
12455 |
msgstr "Začátek"
|
12456 |
|
12457 |
+
#: app/libraries/main.php:8137 app/libraries/render.php:82
|
12458 |
#: app/libraries/render.php:467
|
12459 |
msgid "Skin controller does not exist."
|
12460 |
msgstr "Ovladač vzhledu neexistuje."
|
12461 |
|
12462 |
+
#: app/libraries/main.php:8385
|
12463 |
msgid "Sold Out"
|
12464 |
msgstr "Vyprodáno"
|
12465 |
|
12466 |
+
#: app/libraries/main.php:8422
|
12467 |
#, fuzzy
|
12468 |
#| msgid "Ticket"
|
12469 |
msgid "Last Few Tickets"
|
12470 |
msgstr "Vstupenka"
|
12471 |
|
12472 |
+
#: app/libraries/main.php:8709
|
12473 |
#, fuzzy
|
12474 |
#| msgid "Upcoming Events"
|
12475 |
msgid "Ongoing"
|
12476 |
msgstr "Nadcházející události"
|
12477 |
|
12478 |
+
#: app/libraries/main.php:8711
|
12479 |
#, fuzzy
|
12480 |
#| msgid "Expired Events"
|
12481 |
msgid "Expired"
|
12482 |
msgstr "Události vypršely"
|
12483 |
|
12484 |
+
#: app/libraries/main.php:8777 app/libraries/main.php:8797
|
12485 |
#, fuzzy
|
12486 |
#| msgid "minutes"
|
12487 |
msgid "Minutes"
|
12488 |
msgstr "minuty"
|
12489 |
|
12490 |
+
#: app/libraries/main.php:8802
|
12491 |
msgid "AM / PM"
|
12492 |
msgstr ""
|
12493 |
|
12494 |
+
#: app/libraries/main.php:8803
|
12495 |
msgid "AM"
|
12496 |
msgstr "dop."
|
12497 |
|
12498 |
+
#: app/libraries/main.php:8804
|
12499 |
msgid "PM"
|
12500 |
msgstr "odp."
|
12501 |
|
12502 |
+
#: app/libraries/main.php:8812
|
12503 |
msgid "Ongoing..."
|
12504 |
msgstr ""
|
12505 |
|
12506 |
+
#: app/libraries/main.php:8813 app/skins/single.php:230
|
12507 |
#, fuzzy
|
12508 |
#| msgid "Expired Events"
|
12509 |
msgid "Expired!"
|
12510 |
msgstr "Události vypršely"
|
12511 |
|
12512 |
+
#: app/libraries/main.php:9380
|
12513 |
#, fuzzy
|
12514 |
#| msgid "Categories"
|
12515 |
msgid "Uncategorized"
|
12582 |
msgstr "+ Přidat do Google kalendáře"
|
12583 |
|
12584 |
#: app/libraries/skins.php:1090 app/skins/full_calendar/tpl.php:133
|
12585 |
+
#: app/skins/general_calendar/tpl.php:78
|
12586 |
msgid "Reset"
|
12587 |
msgstr ""
|
12588 |
|
12610 |
msgid "Max Price"
|
12611 |
msgstr "Cena"
|
12612 |
|
12613 |
+
#: app/libraries/skins.php:1594 app/modules/booking/steps/tickets.php:111
|
12614 |
msgid "Book Event"
|
12615 |
msgstr "Rezervovat událost"
|
12616 |
|
12692 |
msgstr "Slevový kupon"
|
12693 |
|
12694 |
#: app/modules/booking/steps/checkout.php:138
|
12695 |
+
#: app/modules/booking/steps/form.php:388
|
12696 |
msgid "Back"
|
12697 |
msgstr ""
|
12698 |
|
12702 |
msgid "Attendee's Form"
|
12703 |
msgstr "Formulář účastníků"
|
12704 |
|
12705 |
+
#: app/modules/booking/steps/form.php:183
|
12706 |
#, fuzzy, php-format
|
12707 |
#| msgid "Attendees Limit"
|
12708 |
msgid "Attendee #%s details — "
|
12709 |
msgstr "Limit účastníků"
|
12710 |
|
12711 |
+
#: app/modules/booking/steps/form.php:346
|
12712 |
msgid "Fill other attendees information like the first form."
|
12713 |
msgstr "Vyplňte informace o dalších účastnících, jako v prvním formuláři."
|
12714 |
|
12715 |
+
#: app/modules/booking/steps/form.php:357
|
12716 |
msgid "Username"
|
12717 |
msgstr ""
|
12718 |
|
12719 |
+
#: app/modules/booking/steps/form.php:391
|
12720 |
+
#: app/modules/booking/steps/tickets.php:220
|
12721 |
#, fuzzy
|
12722 |
#| msgid "Location"
|
12723 |
msgid "Add to Cart"
|
12724 |
msgstr "Umístění"
|
12725 |
|
12726 |
+
#: app/modules/booking/steps/form.php:391
|
12727 |
msgid "Submit"
|
12728 |
msgstr "Potvrdit"
|
12729 |
|
12730 |
+
#: app/modules/booking/steps/tickets.php:149
|
12731 |
msgid ""
|
12732 |
"By booking this event you can attend all occurrences. Some of them are "
|
12733 |
"listed below but there might be more."
|
12734 |
msgstr ""
|
12735 |
|
12736 |
+
#: app/modules/booking/steps/tickets.php:173
|
12737 |
#, fuzzy
|
12738 |
#| msgid "Ticket time"
|
12739 |
msgid "1 Ticket selected."
|
12740 |
msgstr "Čas vstupenky"
|
12741 |
|
|
|
12742 |
#: app/modules/booking/steps/tickets.php:174
|
12743 |
+
#: app/modules/booking/steps/tickets.php:180
|
12744 |
#, php-format
|
12745 |
msgid "Available %s: <span>%s</span>"
|
12746 |
msgstr "K dispozici %s: <span>%s</span>"
|
12747 |
|
12748 |
+
#: app/modules/booking/steps/tickets.php:185 app/skins/single/default.php:112
|
12749 |
#, php-format
|
12750 |
msgid "The %s ticket sales has ended!"
|
12751 |
msgstr ""
|
12752 |
|
12753 |
+
#: app/modules/booking/steps/tickets.php:186
|
12754 |
#, php-format
|
12755 |
msgid "The %s ticket is sold out. You can try another ticket or another date."
|
12756 |
msgstr ""
|
12757 |
"Vstupenka %s je vyprodána. Můžete vyzkoušet jinou vstupenku nebo jiné datum."
|
12758 |
|
12759 |
+
#: app/modules/booking/steps/tickets.php:187
|
12760 |
#, fuzzy, php-format
|
12761 |
#| msgid ""
|
12762 |
#| "The %s ticket is sold out. You can try another ticket or another date."
|
12907 |
msgid "Available Spot(s):"
|
12908 |
msgstr "Dostupné spoty:"
|
12909 |
|
12910 |
+
#: app/skins/carousel/render.php:168 app/skins/countdown/tpl.php:154
|
12911 |
#: app/skins/countdown/tpl.php:200 app/skins/countdown/tpl.php:218
|
12912 |
#: app/skins/cover/tpl.php:68 app/skins/list/render.php:144
|
12913 |
msgid "EVENT DETAIL"
|
12914 |
msgstr "DETAIL UDÁLOSTI"
|
12915 |
|
12916 |
+
#: app/skins/carousel/render.php:182
|
12917 |
msgid "View All Events"
|
12918 |
msgstr "Zobrazit všechny události"
|
12919 |
|
languages/modern-events-calendar-lite-de_DE.mo
CHANGED
Binary file
|
languages/modern-events-calendar-lite-de_DE.po
CHANGED
@@ -2,8 +2,8 @@ msgid ""
|
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: ME Calender\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date: 2022-03-
|
6 |
-
"PO-Revision-Date: 2022-03-
|
7 |
"Last-Translator: Jogon <koenig@kafinanz.de>\n"
|
8 |
"Language-Team: German\n"
|
9 |
"Language: de_DE\n"
|
@@ -20,7 +20,7 @@ msgstr ""
|
|
20 |
#: app/addons/KC.php:68 app/addons/VC.php:59 app/features/ix/import.php:24
|
21 |
#: app/features/ix/import.php:48 app/features/ix/import.php:77
|
22 |
#: app/features/ix/thirdparty.php:26 app/features/mec.php:1341
|
23 |
-
#: app/features/mec.php:1365 app/features/mec/dashboard.php:
|
24 |
#: app/features/mec/wizard.php:502 app/widgets/MEC.php:33
|
25 |
msgid "Modern Events Calendar"
|
26 |
msgstr "Moderner Event Kalender "
|
@@ -152,24 +152,24 @@ msgid "There is no changelog available."
|
|
152 |
msgstr ""
|
153 |
|
154 |
#: app/core/src/Books/Book.php:106 app/features/ix.php:275
|
155 |
-
#: app/libraries/main.php:
|
156 |
msgid "Rejected"
|
157 |
msgstr "Abgelehnt"
|
158 |
|
159 |
#: app/core/src/Books/Book.php:111 app/features/ix.php:274
|
160 |
-
#: app/libraries/main.php:
|
161 |
-
#: app/libraries/main.php:
|
162 |
msgid "Confirmed"
|
163 |
msgstr "Bestätigt"
|
164 |
|
165 |
-
#: app/core/src/Books/Book.php:117 app/features/mec/settings.php:
|
166 |
-
#: app/libraries/main.php:
|
167 |
msgid "Pending"
|
168 |
msgstr "Ausstehend"
|
169 |
|
170 |
#: app/core/src/Books/Book.php:186 app/features/ix.php:280
|
171 |
#: app/features/labels.php:119 app/features/labels.php:145
|
172 |
-
#: app/libraries/main.php:
|
173 |
msgid "Canceled"
|
174 |
msgstr "Abgesagt"
|
175 |
|
@@ -178,17 +178,17 @@ msgstr "Abgesagt"
|
|
178 |
#: app/features/mec/integrations.php:449 app/features/mec/integrations.php:471
|
179 |
#: app/features/mec/modules.php:406 app/features/mec/modules.php:428
|
180 |
#: app/features/mec/notifications.php:1922
|
181 |
-
#: app/features/mec/notifications.php:1945 app/features/mec/settings.php:
|
182 |
-
#: app/features/mec/settings.php:
|
183 |
-
#: app/features/mec/single.php:624 app/libraries/main.php:
|
184 |
msgid "Verified"
|
185 |
msgstr "Verifiziert"
|
186 |
|
187 |
-
#: app/core/src/Books/Book.php:197 app/libraries/main.php:
|
188 |
msgid "Waiting"
|
189 |
msgstr "in Bearbeitung"
|
190 |
|
191 |
-
#: app/core/src/Books/BookingForm.php:
|
192 |
#: app/skins/single/default.php:133 app/skins/single/m1.php:319
|
193 |
#: app/skins/single/m2.php:237 app/skins/single/modern.php:197
|
194 |
msgid "Sold out!"
|
@@ -212,17 +212,17 @@ msgstr "Vorname"
|
|
212 |
#: app/core/src/SingleBuilder/Widgets/EventOrganizers/EventOrganizers.php:70
|
213 |
#: app/features/autoemails.php:60 app/features/events.php:606
|
214 |
#: app/features/events.php:2650 app/features/events.php:2717
|
215 |
-
#: app/features/events.php:2806 app/features/events.php:
|
216 |
#: app/features/fes.php:280 app/features/fes/form.php:812
|
217 |
#: app/features/login/login.php:5 app/features/mec/booking.php:61
|
218 |
#: app/features/mec/booking.php:798 app/features/mec/booking.php:896
|
219 |
-
#: app/features/mec/settings.php:
|
220 |
#: app/features/organizers.php:112 app/features/organizers.php:153
|
221 |
#: app/features/profile/profile.php:206 app/features/speakers.php:134
|
222 |
#: app/features/speakers.php:211 app/libraries/main.php:653
|
223 |
-
#: app/libraries/main.php:
|
224 |
-
#: app/libraries/main.php:
|
225 |
-
#: app/modules/booking/steps/form.php:69 app/modules/booking/steps/form.php:
|
226 |
#: app/skins/single.php:1399 app/skins/single.php:1466
|
227 |
#: app/skins/single/default.php:345 app/skins/single/m1.php:141
|
228 |
#: app/skins/single/m2.php:61 app/widgets/single/default.php:184
|
@@ -244,21 +244,21 @@ msgstr "Geben Sie eine Bezeichnung (Label) für dieses Feld ein."
|
|
244 |
#: app/core/src/Forms/FormFields.php:396 app/core/src/Forms/FormFields.php:442
|
245 |
#: app/core/src/Forms/FormFields.php:488 app/core/src/Forms/FormFields.php:544
|
246 |
#: app/core/src/Forms/FormFields.php:596 app/features/organizers.php:340
|
247 |
-
#: app/features/organizers.php:348 app/libraries/main.php:
|
248 |
-
#: app/libraries/main.php:
|
249 |
-
#: app/libraries/main.php:
|
250 |
-
#: app/libraries/main.php:
|
251 |
-
#: app/libraries/main.php:
|
252 |
-
#: app/libraries/main.php:
|
253 |
-
#: app/libraries/main.php:
|
254 |
-
#: app/libraries/main.php:
|
255 |
msgid "Sort"
|
256 |
msgstr "Sortieren"
|
257 |
|
258 |
#: app/core/src/Forms/FormFields.php:52 app/core/src/Forms/SettingsForm.php:88
|
259 |
#: app/features/events.php:2716 app/features/events.php:2805
|
260 |
#: app/features/mec/booking.php:797 app/features/mec/booking.php:895
|
261 |
-
#: app/features/mec/single.php:306 app/libraries/main.php:
|
262 |
#: app/libraries/skins.php:1413
|
263 |
msgid "Text"
|
264 |
msgstr "Text"
|
@@ -269,13 +269,13 @@ msgstr "Text"
|
|
269 |
#: app/core/src/Forms/FormFields.php:286 app/core/src/Forms/FormFields.php:317
|
270 |
#: app/core/src/Forms/FormFields.php:348 app/core/src/Forms/FormFields.php:403
|
271 |
#: app/core/src/Forms/FormFields.php:449 app/core/src/Forms/FormFields.php:495
|
272 |
-
#: app/core/src/Forms/FormFields.php:551 app/libraries/main.php:
|
273 |
-
#: app/libraries/main.php:
|
274 |
-
#: app/libraries/main.php:
|
275 |
-
#: app/libraries/main.php:
|
276 |
-
#: app/libraries/main.php:
|
277 |
-
#: app/libraries/main.php:
|
278 |
-
#: app/libraries/main.php:
|
279 |
msgid "Required Field"
|
280 |
msgstr "Pflichtfeld"
|
281 |
|
@@ -294,14 +294,14 @@ msgstr "Pflichtfeld"
|
|
294 |
#: app/features/organizers.php:340 app/features/organizers.php:349
|
295 |
#: app/libraries/hourlyschedule.php:53 app/libraries/hourlyschedule.php:74
|
296 |
#: app/libraries/hourlyschedule.php:102 app/libraries/hourlyschedule.php:130
|
297 |
-
#: app/libraries/hourlyschedule.php:154 app/libraries/main.php:
|
298 |
-
#: app/libraries/main.php:
|
299 |
-
#: app/libraries/main.php:
|
300 |
-
#: app/libraries/main.php:
|
301 |
-
#: app/libraries/main.php:
|
302 |
-
#: app/libraries/main.php:
|
303 |
-
#: app/libraries/main.php:
|
304 |
-
#: app/libraries/main.php:
|
305 |
#: app/libraries/ticketVariations.php:72
|
306 |
msgid "Remove"
|
307 |
msgstr "Entfernen"
|
@@ -312,13 +312,13 @@ msgstr "Entfernen"
|
|
312 |
#: app/core/src/Forms/FormFields.php:292 app/core/src/Forms/FormFields.php:323
|
313 |
#: app/core/src/Forms/FormFields.php:354 app/core/src/Forms/FormFields.php:409
|
314 |
#: app/core/src/Forms/FormFields.php:455 app/core/src/Forms/FormFields.php:508
|
315 |
-
#: app/core/src/Forms/FormFields.php:557 app/libraries/main.php:4051
|
316 |
-
#: app/libraries/main.php:4082 app/libraries/main.php:4112
|
317 |
-
#: app/libraries/main.php:4142 app/libraries/main.php:4173
|
318 |
-
#: app/libraries/main.php:4204 app/libraries/main.php:4234
|
319 |
-
#: app/libraries/main.php:4265 app
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: ME Calender\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: 2022-03-15 11:57+0330\n"
|
6 |
+
"PO-Revision-Date: 2022-03-15 12:09+0330\n"
|
7 |
"Last-Translator: Jogon <koenig@kafinanz.de>\n"
|
8 |
"Language-Team: German\n"
|
9 |
"Language: de_DE\n"
|
20 |
#: app/addons/KC.php:68 app/addons/VC.php:59 app/features/ix/import.php:24
|
21 |
#: app/features/ix/import.php:48 app/features/ix/import.php:77
|
22 |
#: app/features/ix/thirdparty.php:26 app/features/mec.php:1341
|
23 |
+
#: app/features/mec.php:1365 app/features/mec/dashboard.php:55
|
24 |
#: app/features/mec/wizard.php:502 app/widgets/MEC.php:33
|
25 |
msgid "Modern Events Calendar"
|
26 |
msgstr "Moderner Event Kalender "
|
152 |
msgstr ""
|
153 |
|
154 |
#: app/core/src/Books/Book.php:106 app/features/ix.php:275
|
155 |
+
#: app/libraries/main.php:7836 app/libraries/main.php:7863
|
156 |
msgid "Rejected"
|
157 |
msgstr "Abgelehnt"
|
158 |
|
159 |
#: app/core/src/Books/Book.php:111 app/features/ix.php:274
|
160 |
+
#: app/libraries/main.php:3220 app/libraries/main.php:7835
|
161 |
+
#: app/libraries/main.php:7855
|
162 |
msgid "Confirmed"
|
163 |
msgstr "Bestätigt"
|
164 |
|
165 |
+
#: app/core/src/Books/Book.php:117 app/features/mec/settings.php:767
|
166 |
+
#: app/libraries/main.php:7837 app/libraries/main.php:7859
|
167 |
msgid "Pending"
|
168 |
msgstr "Ausstehend"
|
169 |
|
170 |
#: app/core/src/Books/Book.php:186 app/features/ix.php:280
|
171 |
#: app/features/labels.php:119 app/features/labels.php:145
|
172 |
+
#: app/libraries/main.php:7884
|
173 |
msgid "Canceled"
|
174 |
msgstr "Abgesagt"
|
175 |
|
178 |
#: app/features/mec/integrations.php:449 app/features/mec/integrations.php:471
|
179 |
#: app/features/mec/modules.php:406 app/features/mec/modules.php:428
|
180 |
#: app/features/mec/notifications.php:1922
|
181 |
+
#: app/features/mec/notifications.php:1945 app/features/mec/settings.php:1624
|
182 |
+
#: app/features/mec/settings.php:1646 app/features/mec/single.php:602
|
183 |
+
#: app/features/mec/single.php:624 app/libraries/main.php:7883
|
184 |
msgid "Verified"
|
185 |
msgstr "Verifiziert"
|
186 |
|
187 |
+
#: app/core/src/Books/Book.php:197 app/libraries/main.php:7885
|
188 |
msgid "Waiting"
|
189 |
msgstr "in Bearbeitung"
|
190 |
|
191 |
+
#: app/core/src/Books/BookingForm.php:40 app/skins/single.php:1073
|
192 |
#: app/skins/single/default.php:133 app/skins/single/m1.php:319
|
193 |
#: app/skins/single/m2.php:237 app/skins/single/modern.php:197
|
194 |
msgid "Sold out!"
|
212 |
#: app/core/src/SingleBuilder/Widgets/EventOrganizers/EventOrganizers.php:70
|
213 |
#: app/features/autoemails.php:60 app/features/events.php:606
|
214 |
#: app/features/events.php:2650 app/features/events.php:2717
|
215 |
+
#: app/features/events.php:2806 app/features/events.php:4449
|
216 |
#: app/features/fes.php:280 app/features/fes/form.php:812
|
217 |
#: app/features/login/login.php:5 app/features/mec/booking.php:61
|
218 |
#: app/features/mec/booking.php:798 app/features/mec/booking.php:896
|
219 |
+
#: app/features/mec/settings.php:310 app/features/mec/single.php:307
|
220 |
#: app/features/organizers.php:112 app/features/organizers.php:153
|
221 |
#: app/features/profile/profile.php:206 app/features/speakers.php:134
|
222 |
#: app/features/speakers.php:211 app/libraries/main.php:653
|
223 |
+
#: app/libraries/main.php:2077 app/libraries/main.php:2146
|
224 |
+
#: app/libraries/main.php:4056 app/libraries/notifications.php:2091
|
225 |
+
#: app/modules/booking/steps/form.php:69 app/modules/booking/steps/form.php:224
|
226 |
#: app/skins/single.php:1399 app/skins/single.php:1466
|
227 |
#: app/skins/single/default.php:345 app/skins/single/m1.php:141
|
228 |
#: app/skins/single/m2.php:61 app/widgets/single/default.php:184
|
244 |
#: app/core/src/Forms/FormFields.php:396 app/core/src/Forms/FormFields.php:442
|
245 |
#: app/core/src/Forms/FormFields.php:488 app/core/src/Forms/FormFields.php:544
|
246 |
#: app/core/src/Forms/FormFields.php:596 app/features/organizers.php:340
|
247 |
+
#: app/features/organizers.php:348 app/libraries/main.php:3964
|
248 |
+
#: app/libraries/main.php:3995 app/libraries/main.php:4025
|
249 |
+
#: app/libraries/main.php:4055 app/libraries/main.php:4086
|
250 |
+
#: app/libraries/main.php:4117 app/libraries/main.php:4147
|
251 |
+
#: app/libraries/main.php:4178 app/libraries/main.php:4209
|
252 |
+
#: app/libraries/main.php:4247 app/libraries/main.php:4271
|
253 |
+
#: app/libraries/main.php:4319 app/libraries/main.php:4367
|
254 |
+
#: app/libraries/main.php:4425 app/libraries/main.php:4475
|
255 |
msgid "Sort"
|
256 |
msgstr "Sortieren"
|
257 |
|
258 |
#: app/core/src/Forms/FormFields.php:52 app/core/src/Forms/SettingsForm.php:88
|
259 |
#: app/features/events.php:2716 app/features/events.php:2805
|
260 |
#: app/features/mec/booking.php:797 app/features/mec/booking.php:895
|
261 |
+
#: app/features/mec/single.php:306 app/libraries/main.php:3965
|
262 |
#: app/libraries/skins.php:1413
|
263 |
msgid "Text"
|
264 |
msgstr "Text"
|
269 |
#: app/core/src/Forms/FormFields.php:286 app/core/src/Forms/FormFields.php:317
|
270 |
#: app/core/src/Forms/FormFields.php:348 app/core/src/Forms/FormFields.php:403
|
271 |
#: app/core/src/Forms/FormFields.php:449 app/core/src/Forms/FormFields.php:495
|
272 |
+
#: app/core/src/Forms/FormFields.php:551 app/libraries/main.php:3972
|
273 |
+
#: app/libraries/main.php:4003 app/libraries/main.php:4033
|
274 |
+
#: app/libraries/main.php:4063 app/libraries/main.php:4094
|
275 |
+
#: app/libraries/main.php:4125 app/libraries/main.php:4155
|
276 |
+
#: app/libraries/main.php:4186 app/libraries/main.php:4218
|
277 |
+
#: app/libraries/main.php:4279 app/libraries/main.php:4327
|
278 |
+
#: app/libraries/main.php:4375 app/libraries/main.php:4433
|
279 |
msgid "Required Field"
|
280 |
msgstr "Pflichtfeld"
|
281 |
|
294 |
#: app/features/organizers.php:340 app/features/organizers.php:349
|
295 |
#: app/libraries/hourlyschedule.php:53 app/libraries/hourlyschedule.php:74
|
296 |
#: app/libraries/hourlyschedule.php:102 app/libraries/hourlyschedule.php:130
|
297 |
+
#: app/libraries/hourlyschedule.php:154 app/libraries/main.php:3975
|
298 |
+
#: app/libraries/main.php:4006 app/libraries/main.php:4036
|
299 |
+
#: app/libraries/main.php:4066 app/libraries/main.php:4097
|
300 |
+
#: app/libraries/main.php:4128 app/libraries/main.php:4158
|
301 |
+
#: app/libraries/main.php:4189 app/libraries/main.php:4227
|
302 |
+
#: app/libraries/main.php:4249 app/libraries/main.php:4282
|
303 |
+
#: app/libraries/main.php:4330 app/libraries/main.php:4385
|
304 |
+
#: app/libraries/main.php:4436 app/libraries/main.php:4476
|
305 |
#: app/libraries/ticketVariations.php:72
|
306 |
msgid "Remove"
|
307 |
msgstr "Entfernen"
|
312 |
#: app/core/src/Forms/FormFields.php:292 app/core/src/Forms/FormFields.php:323
|
313 |
#: app/core/src/Forms/FormFields.php:354 app/core/src/Forms/FormFields.php:409
|
314 |
#: app/core/src/Forms/FormFields.php:455 app/core/src/Forms/FormFields.php:508
|
|
|
|
|
|
|
|
|
|