Modern Events Calendar Lite - Version 6.4.5

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 Icon 128x128 Modern Events Calendar Lite
Version 6.4.5
Comparing to
See all releases

Code changes from version 6.4.2 to 6.4.5

Files changed (115) hide show
  1. app/addons/divi/includes/MECShortcodesForDivi.php +1 -1
  2. app/addons/learndash.php +2 -2
  3. app/api/TFPDF/tfpdf.php +2373 -2294
  4. app/core/src/Books/BookingForm.php +5 -2
  5. app/core/src/Events/Event.php +6 -2
  6. app/core/src/Forms/DisplayFields.php +7 -7
  7. app/core/src/Forms/FormFields.php +160 -160
  8. app/core/src/Forms/SettingsForm.php +8 -8
  9. app/core/src/Notifications/SendEmail.php +1 -1
  10. app/core/src/Notifications/template-notification-settings.php +13 -13
  11. app/core/src/SingleBuilder/SingleBuilder.php +5 -0
  12. app/core/src/SingleBuilder/Widgets/Content/Content.php +15 -1
  13. app/core/src/SingleBuilder/Widgets/EventCategories/EventCategories.php +2 -2
  14. app/core/src/SingleBuilder/Widgets/EventCountdown/EventCountdown.php +1 -1
  15. app/core/src/SingleBuilder/Widgets/EventLabels/EventLabels.php +1 -1
  16. app/core/src/SingleBuilder/Widgets/EventLocations/EventLocations.php +2 -2
  17. app/core/src/SingleBuilder/Widgets/EventMoreInfo/EventMoreInfo.php +1 -1
  18. app/core/src/SingleBuilder/Widgets/EventOrganizers/EventOrganizers.php +3 -3
  19. app/core/src/SingleBuilder/Widgets/EventPublicDownload/EventPublicDownload.php +37 -0
  20. app/core/src/SingleBuilder/Widgets/EventRegisterButton/EventRegisterButton.php +2 -2
  21. app/core/src/SingleBuilder/Widgets/EventTags/EventTags.php +1 -1
  22. app/core/src/SingleBuilder/Widgets/FeaturedImage/FeaturedImage.php +1 -1
  23. app/features/admincalendar.php +87 -0
  24. app/features/booking/calendar_novel.php +2 -2
  25. app/features/cart/cart.php +2 -2
  26. app/features/cart/checkout.php +2 -2
  27. app/features/dc.php +221 -0
  28. app/features/emails/details.php +1 -1
  29. app/features/events.php +20 -16
  30. app/features/feed.php +1 -1
  31. app/features/fes.php +1 -1
  32. app/features/fes/form.php +22 -23
  33. app/features/fes/list.php +3 -3
  34. app/features/ix.php +8 -8
  35. app/features/ix/export.php +15 -15
  36. app/features/ix/export_g_calendar.php +10 -10
  37. app/features/ix/import.php +11 -11
  38. app/features/ix/import_f_calendar.php +11 -11
  39. app/features/ix/import_g_calendar.php +11 -11
  40. app/features/ix/import_meetup.php +11 -11
  41. app/features/ix/sync.php +9 -9
  42. app/features/ix/thirdparty.php +12 -12
  43. app/features/login.php +2 -2
  44. app/features/mec.php +9 -9
  45. app/features/mec/addons.php +11 -23
  46. app/features/mec/booking.php +3 -3
  47. app/features/mec/dashboard.php +40 -1
  48. app/features/mec/meta_boxes/display_options.php +3 -3
  49. app/features/mec/settings.php +15 -0
  50. app/features/mec/support-page.php +40 -1
  51. app/features/popup/event.php +3 -2
  52. app/features/popup/shortcode.php +3 -3
  53. app/features/search.php +11 -11
  54. app/libraries/base.php +1 -1
  55. app/libraries/book.php +3 -3
  56. app/libraries/cart.php +1 -1
  57. app/libraries/factory.php +3 -2
  58. app/libraries/hourlyschedule.php +1 -1
  59. app/libraries/main.php +35 -108
  60. app/modules/booking/steps/checkout.php +5 -5
  61. app/modules/booking/steps/form.php +18 -15
  62. app/modules/booking/steps/tickets.php +12 -8
  63. app/modules/qrcode/details.php +1 -1
  64. app/modules/speakers/details.php +2 -2
  65. app/skins/agenda/render.php +1 -1
  66. app/skins/agenda/tpl.php +4 -4
  67. app/skins/available_spot/tpl.php +2 -2
  68. app/skins/carousel/render.php +1 -2
  69. app/skins/carousel/tpl.php +3 -3
  70. app/skins/countdown/tpl.php +4 -4
  71. app/skins/custom/render.php +1 -1
  72. app/skins/custom/tpl.php +6 -6
  73. app/skins/daily_view/render.php +1 -1
  74. app/skins/daily_view/tpl.php +4 -4
  75. app/skins/default_full_calendar/tpl.php +4 -4
  76. app/skins/full_calendar/tpl.php +6 -6
  77. app/skins/general_calendar/tpl.php +2 -2
  78. app/skins/grid/render.php +1 -1
  79. app/skins/grid/tpl.php +6 -6
  80. app/skins/list/render.php +3 -3
  81. app/skins/list/tpl.php +6 -6
  82. app/skins/map/tpl.php +5 -5
  83. app/skins/masonry/tpl.php +4 -4
  84. app/skins/monthly_view/calendar_admin.php +120 -0
  85. app/skins/monthly_view/render.php +1 -0
  86. app/skins/monthly_view/tpl.php +4 -4
  87. app/skins/single.php +8 -8
  88. app/skins/single/default.php +4 -4
  89. app/skins/single/m1.php +4 -4
  90. app/skins/single/m2.php +4 -4
  91. app/skins/single/tpl.php +3 -0
  92. app/skins/slider/tpl.php +3 -3
  93. app/skins/tile/render.php +1 -1
  94. app/skins/tile/tpl.php +4 -4
  95. app/skins/timeline/tpl.php +4 -4
  96. app/skins/timetable/classic.php +2 -2
  97. app/skins/timetable/clean.php +2 -2
  98. app/skins/timetable/modern.php +4 -4
  99. app/skins/timetable/render.php +3 -3
  100. app/skins/weekly_view/render.php +2 -2
  101. app/skins/weekly_view/tpl.php +4 -4
  102. app/skins/yearly_view/render.php +1 -1
  103. app/skins/yearly_view/tpl.php +4 -4
  104. app/widgets/single.php +38 -38
  105. app/widgets/single/default.php +4 -4
  106. app/widgets/single/modern.php +4 -4
  107. assets/css/admin-calendar.min.css +0 -0
  108. assets/js/admin-calendar.js +123 -0
  109. assets/js/chartjs.min.js +11 -8
  110. assets/js/frontend.js +6 -3
  111. changelog.txt +13 -1
  112. languages/modern-events-calendar-lite-cs_CZ.mo +0 -0
  113. languages/modern-events-calendar-lite-cs_CZ.po +792 -780
  114. languages/modern-events-calendar-lite-de_DE.mo +0 -0
  115. 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
- /** no direct access **/
3
- defined('MECEXEC') or die();
 
 
 
 
 
 
 
 
 
4
 
5
- /**
6
- * tFPDF (based on FPDF 1.7)
7
- *
8
- * Version: 1.24
9
- * Date: 2011-09-24
10
- * Author: Ian Back <ianb@bpm1.com>
11
- * License: LGPL
12
- */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
 
14
- define('tFPDF_VERSION','1.24');
 
 
 
 
 
 
 
 
15
 
16
- class tFPDF
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  {
18
- var $unifontSubset;
19
- var $page; // current page number
20
- var $n; // current object number
21
- var $offsets; // array of object offsets
22
- var $buffer; // buffer holding in-memory PDF
23
- var $pages; // array containing pages
24
- var $state; // current document state
25
- var $compress; // compression flag
26
- var $k; // scale factor (number of points in user unit)
27
- var $DefOrientation; // default orientation
28
- var $CurOrientation; // current orientation
29
- var $StdPageSizes; // standard page sizes
30
- var $DefPageSize; // default page size
31
- var $CurPageSize; // current page size
32
- var $PageSizes; // used for pages with non default sizes or orientations
33
- var $wPt, $hPt; // dimensions of current page in points
34
- var $w, $h; // dimensions of current page in user unit
35
- var $lMargin; // left margin
36
- var $tMargin; // top margin
37
- var $rMargin; // right margin
38
- var $bMargin; // page break margin
39
- var $cMargin; // cell margin
40
- var $x, $y; // current position in user unit
41
- var $lasth; // height of last printed cell
42
- var $LineWidth; // line width in user unit
43
- var $fontpath; // path containing fonts
44
- var $CoreFonts; // array of core font names
45
- var $fonts; // array of used fonts
46
- var $FontFiles; // array of font files
47
- var $diffs; // array of encoding differences
48
- var $FontFamily; // current font family
49
- var $FontStyle; // current font style
50
- var $underline; // underlining flag
51
- var $CurrentFont; // current font info
52
- var $FontSizePt; // current font size in points
53
- var $FontSize; // current font size in user unit
54
- var $DrawColor; // commands for drawing color
55
- var $FillColor; // commands for filling color
56
- var $TextColor; // commands for text color
57
- var $ColorFlag; // indicates whether fill and text colors are different
58
- var $ws; // word spacing
59
- var $images; // array of used images
60
- var $PageLinks; // array of links in pages
61
- var $links; // array of internal links
62
- var $AutoPageBreak; // automatic page breaking
63
- var $PageBreakTrigger; // threshold used to trigger page breaks
64
- var $InHeader; // flag set when processing header
65
- var $InFooter; // flag set when processing footer
66
- var $ZoomMode; // zoom display mode
67
- var $LayoutMode; // layout display mode
68
- var $title; // title
69
- var $subject; // subject
70
- var $author; // author
71
- var $keywords; // keywords
72
- var $creator; // creator
73
- var $AliasNbPages; // alias for total number of pages
74
- var $PDFVersion; // PDF version number
75
-
76
- /*******************************************************************************
77
- * *
78
- * Public methods *
79
- * *
80
- *******************************************************************************/
81
- function __construct($orientation='P', $unit='mm', $size='A4')
82
- {
83
- // Some checks
84
- $this->_dochecks();
85
- // Initialization of properties
86
- $this->page = 0;
87
- $this->n = 2;
88
- $this->buffer = '';
89
- $this->pages = array();
90
- $this->PageSizes = array();
91
- $this->state = 0;
92
- $this->fonts = array();
93
- $this->FontFiles = array();
94
- $this->diffs = array();
95
- $this->images = array();
96
- $this->links = array();
97
- $this->InHeader = false;
98
- $this->InFooter = false;
99
- $this->lasth = 0;
100
- $this->FontFamily = '';
101
- $this->FontStyle = '';
102
- $this->FontSizePt = 12;
103
- $this->underline = false;
104
- $this->DrawColor = '0 G';
105
- $this->FillColor = '0 g';
106
- $this->TextColor = '0 g';
107
- $this->ColorFlag = false;
108
- $this->ws = 0;
109
- // Font path
110
- if(defined('FPDF_FONTPATH'))
111
- {
112
- $this->fontpath = FPDF_FONTPATH;
113
- if(substr($this->fontpath,-1)!='/' && substr($this->fontpath,-1)!='\\')
114
- $this->fontpath .= '/';
115
- }
116
- elseif(is_dir(dirname(__FILE__).'/font'))
117
- $this->fontpath = dirname(__FILE__).'/font/';
118
- else
119
- $this->fontpath = '';
120
- // Core fonts
121
- $this->CoreFonts = array('courier', 'helvetica', 'times', 'symbol', 'zapfdingbats');
122
- // Scale factor
123
- if($unit=='pt')
124
- $this->k = 1;
125
- elseif($unit=='mm')
126
- $this->k = 72/25.4;
127
- elseif($unit=='cm')
128
- $this->k = 72/2.54;
129
- elseif($unit=='in')
130
- $this->k = 72;
131
- else
132
- $this->Error('Incorrect unit: '.$unit);
133
- // Page sizes
134
- $this->StdPageSizes = array('a3'=>array(841.89,1190.55), 'a4'=>array(595.28,841.89), 'a5'=>array(420.94,595.28),
135
- 'letter'=>array(612,792), 'legal'=>array(612,1008));
136
- $size = $this->_getpagesize($size);
137
- $this->DefPageSize = $size;
138
- $this->CurPageSize = $size;
139
- // Page orientation
140
- $orientation = strtolower($orientation);
141
- if($orientation=='p' || $orientation=='portrait')
142
- {
143
- $this->DefOrientation = 'P';
144
- $this->w = $size[0];
145
- $this->h = $size[1];
146
- }
147
- elseif($orientation=='l' || $orientation=='landscape')
148
- {
149
- $this->DefOrientation = 'L';
150
- $this->w = $size[1];
151
- $this->h = $size[0];
152
- }
153
- else
154
- $this->Error('Incorrect orientation: '.$orientation);
155
- $this->CurOrientation = $this->DefOrientation;
156
- $this->wPt = $this->w*$this->k;
157
- $this->hPt = $this->h*$this->k;
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
- 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"><?php esc_html_e('Sold out!', 'modern-events-calendar-lite'); ?></div>
 
 
 
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
- $single_date_method = \MEC\Settings\Settings::getInstance()->get_settings( 'single_date_method' );
 
 
 
 
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="'.$thumbnail_url.'">';
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 = wpautop( do_shortcode( get_the_content( '', false, $event_id ) ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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( ']]>', ']]&gt;', $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;?></p>
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="'.$atts['image_width'].'" height="'.$atts['image_height'].'"> ';
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( 'mec_ticket_properties', $key, $ticket, $post->ID ); ?>
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 ($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,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:'.$unique_attendee['email'].'">'.$unique_attendee['email'].'</a></div>';
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']; ?>"><?php echo $status['label']; ?></span>
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 if(isset($this->settings['fes_section_virtual_events']) && $this->settings['fes_section_virtual_events']):
1089
-
1090
- if ( $post->ID != -1 && $post == "" ) {
1091
- $post = get_post_meta($post->ID, 'meta_box_virtual', true);
1092
- }
1093
 
1094
  do_action('mec_virtual_event_form', $post);
1095
-
1096
- endif; ?>
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( 'mec_options', $options);
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( $_REQUEST['nonce'], 'mec_settings_nonce')) exit();
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( $_REQUEST['nonce'], 'mec_settings_nonce')) exit();
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( $_REQUEST['nonce'], 'mec_settings_nonce')) exit();
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
- if(function_exists('file_get_contents') && ini_get('allow_url_fopen') )
25
- {
26
- $ctx = stream_context_create(array('http'=> array( 'timeout' => 20 ),'ssl'=>array( 'verify_peer'=>false, 'verify_peer_name'=>false)));
27
- $get_data = file_get_contents($data_url, false, $ctx);
28
- if ( $get_data !== false AND !empty($get_data) )
29
- {
30
- $obj = json_decode($get_data);
31
- $i = count((array)$obj);
32
- }
33
- }
34
- elseif ( function_exists('curl_version') )
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
- <script src='https://webnus.freshsales.io/web_forms/8dd552ab6041bd25d23d8a8467819f701f9196106be0e25edc6870c9cc922bdc/form.js' crossorigin='anonymous' id='fs_8dd552ab6041bd25d23d8a8467819f701f9196106be0e25edc6870c9cc922bdc'></script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
- <script src='https://webnus.freshsales.io/web_forms/8dd552ab6041bd25d23d8a8467819f701f9196106be0e25edc6870c9cc922bdc/form.js' crossorigin='anonymous' id='fs_8dd552ab6041bd25d23d8a8467819f701f9196106be0e25edc6870c9cc922bdc'></script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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(base64_decode('YXBwLmxpYnJhcmllcy5wcm8='));
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 trim($_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 trim($_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,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
- $data_url = 'https://webnus.net/modern-events-calendar/addons-api/mec-extra-content-2.json';
1082
- if(function_exists('file_get_contents') && ini_get('allow_url_fopen') )
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
- $data_url = 'https://webnus.net/modern-events-calendar/addons-api/mec-extra-content-2.json';
1111
- if(function_exists('file_get_contents') && ini_get('allow_url_fopen') )
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
- $data_url = 'https://webnus.net/modern-events-calendar/addons-api/mec-extra-content.json';
1188
- if(function_exists('file_get_contents') && ini_get('allow_url_fopen') )
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
- $data_url = 'https://webnus.net/modern-events-calendar/addons-api/mec-extra-content.json';
1217
- if(function_exists('file_get_contents') && ini_get('allow_url_fopen') )
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($event_id.':'.$time, function() use($event_id, $time)
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
- $total_ticket_prices += $this->book->get_ticket_price($ticket, current_time('Y-m-d'), $event_id); ?>
 
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 ($attendee_counter == 1):?><span class="mec-ticket-attendee-counter"><?php printf( __( 'Attendee #%s details — ', 'modern-events-calendar-lite' ), $i ); ?></span><?php endif;?>
183
  <span class="mec-ticket-name"><?php echo __($ticket['name'], 'modern-events-calendar-lite'); ?></span>
184
- <span class="mec-ticket-price"><?php echo $this->book->get_ticket_price_label($ticket, current_time('Y-m-d'), $event_id); ?></span>
 
 
 
 
 
185
  </h4>
186
  <?php endif; ?>
187
 
@@ -572,14 +578,11 @@ if(!$mec_email)
572
  display: block
573
  }
574
  </style>
575
- <script type="text/javascript" src="<?php echo $this->main->asset('js/jquery.nice-select.min.js'); ?>"></script>
576
- <script>
577
- jQuery(document).ready(function() {
578
- if (jQuery('.mec-booking-shortcode').length < 0) {
579
- return;
580
- }
581
- // Events
582
- jQuery('.mec-booking-shortcode').find('select').niceSelect();
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"><?php echo (isset($ticket['price_label']) ? $book->get_ticket_price_label($ticket, current_time('Y-m-d'), $event_id) : ''); ?></span>
 
 
 
 
 
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
- <script type="text/javascript" src="<?php echo $this->asset('js/jquery.nice-select.min.js'); ?>"></script>
219
- <script>
220
  jQuery(document).ready(function()
221
  {
222
- if(jQuery('.mec-booking-shortcode').length < 0) return;
223
 
224
  // Events
225
- jQuery('.mec-booking-shortcode').find('select').niceSelect();
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
- * http://chartjs.org/
4
- * Version: 2.7.2
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 (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
  // Add Month & Year
576
- if(settings.atts.indexOf('sf[month]') <= -1)
577
  {
578
- settings.atts += '&sf[month]='+$("#mec_sf_month_" + settings.id).val()+'&sf[year]='+$("#mec_sf_year_" + settings.id).val();
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.23 March 2022
 
 
 
 
 
 
 
 
 
 
 
 
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.515 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-03 10:13+0330\n"
5
- "PO-Revision-Date: 2022-03-03 10:15+0330\n"
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:54
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:7909 app/libraries/main.php:7936
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:3293 app/libraries/main.php:7908
159
- #: app/libraries/main.php:7928
160
  msgid "Confirmed"
161
  msgstr "Potvrzeno"
162
 
163
- #: app/core/src/Books/Book.php:117 app/features/mec/settings.php:752
164
- #: app/libraries/main.php:7910 app/libraries/main.php:7932
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:7957
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:1609
180
- #: app/features/mec/settings.php:1631 app/features/mec/single.php:602
181
- #: app/features/mec/single.php:624 app/libraries/main.php:7956
182
  msgid "Verified"
183
  msgstr "Ověřeno"
184
 
185
- #: app/core/src/Books/Book.php:197 app/libraries/main.php:7958
186
  msgid "Waiting"
187
  msgstr "Čekající"
188
 
189
- #: app/core/src/Books/BookingForm.php:39 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,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:4445
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:295 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:2150 app/libraries/main.php:2219
222
- #: app/libraries/main.php:4129 app/libraries/notifications.php:2091
223
- #: app/modules/booking/steps/form.php:69 app/modules/booking/steps/form.php:218
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:4037
246
- #: app/libraries/main.php:4068 app/libraries/main.php:4098
247
- #: app/libraries/main.php:4128 app/libraries/main.php:4159
248
- #: app/libraries/main.php:4190 app/libraries/main.php:4220
249
- #: app/libraries/main.php:4251 app/libraries/main.php:4282
250
- #: app/libraries/main.php:4320 app/libraries/main.php:4344
251
- #: app/libraries/main.php:4392 app/libraries/main.php:4440
252
- #: app/libraries/main.php:4498 app/libraries/main.php:4548
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:4038
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:4045
271
- #: app/libraries/main.php:4076 app/libraries/main.php:4106
272
- #: app/libraries/main.php:4136 app/libraries/main.php:4167
273
- #: app/libraries/main.php:4198 app/libraries/main.php:4228
274
- #: app/libraries/main.php:4259 app/libraries/main.php:4291
275
- #: app/libraries/main.php:4352 app/libraries/main.php:4400
276
- #: app/libraries/main.php:4448 app/libraries/main.php:4506
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:4048
296
- #: app/libraries/main.php:4079 app/libraries/main.php:4109
297
- #: app/libraries/main.php:4139 app/libraries/main.php:4170
298
- #: app/libraries/main.php:4201 app/libraries/main.php:4231
299
- #: app/libraries/main.php:4262 app/libraries/main.php:4300
300
- #: app/libraries/main.php:4322 app/libraries/main.php:4355
301
- #: app/libraries/main.php:4403 app/libraries/main.php:4458
302
- #: app/libraries/main.php:4509 app/libraries/main.php:4549
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:4051
314
- #: app/libraries/main.php:4082 app/libraries/main.php:4112
315
- #: app/libraries/main.php:4142 app/libraries/main.php:4173
316
- #: app/libraries/main.php:4204 app/libraries/main.php:4234
317
- #: app/libraries/main.php:4265 app/libraries/main.php:4303
318
- #: app/libraries/main.php:4358 app/libraries/main.php:4406
319
- #: app/libraries/main.php:4461 app/libraries/main.php:4512
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:4069
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:4099
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:4160
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:4191
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:4221
364
- #: app/libraries/skins.php:1325 app/modules/booking/steps/tickets.php:136
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:4252
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:4283
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:351
393
- #: app/features/mec/single.php:312 app/libraries/main.php:4321
394
  msgid "Paragraph"
395
  msgstr "Paragraf"
396
 
397
- #: app/core/src/Forms/FormFields.php:378 app/libraries/main.php:4327
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:4345
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:4372
411
- #: app/libraries/main.php:4420 app/libraries/main.php:4475
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:4393
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:4441
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:4499
520
  msgid "Agreement"
521
  msgstr "Smlouva"
522
 
523
- #: app/core/src/Forms/FormFields.php:557 app/libraries/main.php:4512
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:4512
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:1155
535
- #: app/libraries/main.php:4514
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:4523
541
  msgid "Status"
542
  msgstr "Stav"
543
 
544
- #: app/core/src/Forms/FormFields.php:572 app/libraries/main.php:4525
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:4526
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:4550
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:9180
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/events.php:701 app/features/events.php:881
700
- #: app/features/events.php:1234 app/features/events.php:1316
701
- #: app/features/events.php:1404 app/features/events.php:1535
702
- #: app/features/events.php:1660 app/features/events.php:1830
703
- #: app/features/events.php:1843 app/features/events.php:2014
704
- #: app/features/events.php:2029 app/features/events.php:2271
705
- #: app/features/events.php:2283 app/features/events.php:2476
706
- #: app/features/events.php:2513 app/features/fes/form.php:460
707
- #: app/features/fes/form.php:768 app/features/fes/form.php:903
708
- #: app/features/locations.php:341 app/features/mec/booking.php:113
709
- #: app/features/mec/booking.php:189 app/features/mec/booking.php:202
710
- #: app/features/mec/booking.php:238 app/features/mec/booking.php:303
711
- #: app/features/mec/booking.php:336 app/features/mec/booking.php:349
712
- #: app/features/mec/booking.php:415 app/features/mec/booking.php:466
713
- #: app/features/mec/booking.php:602 app/features/mec/booking.php:632
714
- #: app/features/mec/booking.php:698 app/features/mec/booking.php:708
715
- #: app/features/mec/booking.php:730 app/features/mec/booking.php:740
716
- #: app/features/mec/booking.php:1010 app/features/mec/booking.php:1038
717
- #: app/features/mec/integrations.php:57 app/features/mec/integrations.php:70
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:333 app/features/mec/settings.php:428
771
- #: app/features/mec/settings.php:505 app/features/mec/settings.php:522
772
- #: app/features/mec/settings.php:539 app/features/mec/settings.php:558
773
- #: app/features/mec/settings.php:572 app/features/mec/settings.php:600
774
- #: app/features/mec/settings.php:716 app/features/mec/settings.php:899
775
- #: app/features/mec/settings.php:1118 app/features/mec/settings.php:1134
776
- #: app/features/mec/settings.php:1299 app/features/mec/settings.php:1312
777
- #: app/features/mec/settings.php:1328 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,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:130
786
- #: app/features/popup/event.php:180 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,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:1175 app/features/mec/settings.php:1238
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:7559
928
- #: app/libraries/main.php:7620 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,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:1172
951
- #: app/features/occurrences.php:514 app/libraries/main.php:7605
952
- #: app/libraries/main.php:7652 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,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:7560
1034
- #: app/libraries/main.php:7621 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,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:1244 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:120 app/features/popup/event.php:129
1087
  #: app/features/popup/settings.php:228 app/features/popup/settings.php:267
1088
- #: app/features/search.php:97 app/libraries/main.php:3020
1089
- #: app/libraries/main.php:3299 app/libraries/main.php:7563
1090
- #: app/libraries/main.php:7624 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,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:7603 app/libraries/main.php:7650
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:1250 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:170
1195
- #: app/features/popup/event.php:179 app/features/popup/settings.php:224
1196
  #: app/features/popup/settings.php:263 app/features/search.php:103
1197
- #: app/libraries/main.php:7565 app/libraries/main.php:7626
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:7599 app/libraries/main.php:7646
1239
  #: app/skins/available_spot/tpl.php:204 app/skins/carousel/render.php:105
1240
- #: app/skins/carousel/render.php:145 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,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:7608
1318
- #: app/libraries/main.php:7655 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,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:4740
1455
  #: app/features/fes.php:280 app/features/mec/booking.php:355
1456
- #: app/features/wc.php:91 app/libraries/main.php:3072
1457
- #: app/libraries/main.php:3186 app/libraries/main.php:3291
1458
- #: app/libraries/main.php:3435
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:7593 app/modules/booking/steps/tickets.php:168
1476
- #: app/modules/booking/steps/tickets.php:174
1477
  msgid "Tickets"
1478
  msgstr "Vstupenky"
1479
 
1480
- #: app/features/cart/cart.php:46 app/modules/booking/steps/tickets.php:129
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:3165
1497
- #: app/libraries/main.php:3413
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:110
1522
- #: app/features/mec/support-page.php:114 app/libraries/main.php:682
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:3081 app/libraries/main.php:7583
1526
- #: app/libraries/main.php:7585 app/modules/booking/steps/checkout.php:146
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:907
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:120 app/features/mec/support.php:20
1549
- #: app/features/mec/wizard.php:534 app/features/popup/event.php:63
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:1028
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:115
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:117 app/features/mec/support.php:45
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:97
1689
  msgid "General Options"
1690
  msgstr "Obecné možnosti"
1691
 
1692
- #: app/features/contextual.php:139 app/features/mec/settings.php:550
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:100
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:704
1728
- #: app/features/mec/support-page.php:98 app/libraries/main.php:649
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:1284
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:1069
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:4734
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:211
1867
- #: app/libraries/main.php:6578 app/libraries/main.php:6598
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:119
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:259
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:7558
1914
- #: app/libraries/main.php:7619
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:953
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:4442 app/features/fes.php:280
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:189 app/features/profile/profile.php:203
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:79
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:96
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:113
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:858
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:894 app/features/mec/settings.php:898
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:870
2424
  #: app/features/notifications.php:160 app/features/occurrences.php:511
2425
- #: app/libraries/main.php:7604 app/libraries/main.php:7651
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:582 app/features/mec/settings.php:584
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:594 app/features/mec/settings.php:599
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:600
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:607
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:610
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:611
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:612
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:613
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:618
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:624
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:634
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:864 app/features/occurrences.php:521
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:1173
2526
- #: app/features/occurrences.php:523 app/libraries/main.php:7602
2527
- #: app/libraries/main.php:7649
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:961
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:998
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:1040
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:118
2603
  msgid "Organizer Payment"
2604
  msgstr "Platba organizátora"
2605
 
2606
- #: app/features/events.php:1575 app/features/ix/export.php:58
2607
- #: app/libraries/main.php:7586
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:980
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:986
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:992
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:534 app/features/popup/settings.php:358
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:1004
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:768 app/features/mec/settings.php:778
2887
- #: app/features/mec/settings.php:1010
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:801 app/features/mec/settings.php:806
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:803
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:807
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:1022
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:4743
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:1176 app/features/mec/settings.php:1270
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:4737
3172
- #: app/features/mec/settings.php:1046 app/features/profile/profile.php:65
3173
- #: app/libraries/main.php:3107 app/libraries/main.php:3354
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:517
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:243 app/features/mec/settings.php:516
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:4295
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:876
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:947
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:7566 app/libraries/main.php:7627
3319
  #: app/modules/speakers/details.php:18
3320
  msgid "Speakers"
3321
  msgstr "Řečníci"
3322
 
3323
- #: app/features/events.php:4448 app/features/fes.php:280
3324
  #: app/features/profile/profile.php:209 app/libraries/cart.php:64
3325
- #: app/libraries/main.php:3123 app/libraries/main.php:3371
3326
- #: app/libraries/main.php:7592
3327
  msgid "Ticket"
3328
  msgstr "Vstupenka"
3329
 
3330
- #: app/features/events.php:4451 app/features/profile/profile.php:212
3331
  msgid "Variations"
3332
  msgstr "Variace"
3333
 
3334
- #: app/features/events.php:4466 app/features/fes.php:356
3335
  msgid "Unknown"
3336
  msgstr "Neznámý"
3337
 
3338
- #: app/features/events.php:4494
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:4494 app/features/mec/report.php:57
3345
  #, fuzzy
3346
  #| msgid "Organizer Email"
3347
  msgid "Send Email"
3348
  msgstr "Organizátor Email"
3349
 
3350
- #: app/features/events.php:4498
3351
  #, fuzzy
3352
  #| msgid "Attendees Form"
3353
  msgid "No Attendees Found!"
3354
  msgstr "Formulář účastníků"
3355
 
3356
- #: app/features/events.php:4800
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:3181
3421
- #: app/libraries/main.php:3430
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:1061
3510
- #: app/features/mec/settings.php:1171
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:190
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:1116
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:1116
3630
  msgid "Privacy Policy"
3631
  msgstr ""
3632
 
3633
- #: app/features/fes/form.php:1118
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:1124
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:1496
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:1611
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:121
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:172
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:225 app/features/mec/meta_boxes/filter.php:70
4542
- #: app/features/mec/meta_boxes/filter.php:99 app/libraries/main.php:7562
4543
- #: app/libraries/main.php:7623
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:154
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:155
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:121
4600
  msgid "Hide location"
4601
  msgstr "Skrýt místo"
4602
 
4603
- #: app/features/locations.php:333 app/features/popup/event.php:122
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:146
4612
  msgid "Location Name"
4613
  msgstr "Název místa"
4614
 
4615
- #: app/features/locations.php:349 app/features/popup/event.php:147
4616
  msgid "eg. City Hall"
4617
  msgstr "např. Radnice"
4618
 
4619
- #: app/features/locations.php:352 app/features/mec/settings.php:919
4620
- #: app/features/popup/event.php:150 app/widgets/single.php:134
4621
  msgid "Event Location"
4622
  msgstr "Místo události"
4623
 
4624
- #: app/features/locations.php:353 app/features/popup/event.php:151
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:158
4629
  msgid "Latitude/Longitude"
4630
  msgstr "Zeměpisná šířka / délka"
4631
 
4632
- #: app/features/locations.php:379 app/features/popup/event.php:159
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:159
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:209
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:140
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:7607
4661
- #: app/libraries/main.php:7654
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:355
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:136
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:232
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:7564 app/libraries/main.php:7625
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:218
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:54
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:62
4971
- #: app/features/mec/dashboard.php:61 app/features/mec/go-pro.php:14
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:79
4977
  msgid "Coming Soon"
4978
  msgstr "Již brzy"
4979
 
4980
- #: app/features/mec/addons.php:90
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:1560 app/features/mec/settings.php:1570
5014
- #: app/features/mec/settings.php:1628 app/features/mec/settings.php:1642
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:349
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:732 app/features/mec/settings.php:744
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:1606
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:1607
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:1633 app/features/mec/single.php:626
5788
  msgid "Please Refresh Page"
5789
  msgstr "Prosím obnovte stránku"
5790
 
5791
- #: app/features/mec/dashboard.php:51
5792
  #, php-format
5793
  msgid "Welcome %s"
5794
  msgstr "Vítejte %s"
5795
 
5796
- #: app/features/mec/dashboard.php:54
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:76 app/features/mec/go-pro.php:66
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:76 app/features/mec/go-pro.php:66
5813
  msgid "lite"
5814
  msgstr " omezenou"
5815
 
5816
- #: app/features/mec/dashboard.php:79 app/features/mec/go-pro.php:69
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:112
5822
  msgid "Getting started with Modern Events Calendar"
5823
  msgstr "Začínáme s Modern Events Calendar"
5824
 
5825
- #: app/features/mec/dashboard.php:113
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:129 app/features/mec/dashboard.php:153
5834
  #, fuzzy
5835
  #| msgid "MEC Activation"
5836
  msgid "License Activation"
5837
  msgstr "Aktivace MEC"
5838
 
5839
- #: app/features/mec/dashboard.php:135 app/features/mec/dashboard.php:190
5840
  msgid "Activate Addons"
5841
  msgstr "Aktivovat doplňky"
5842
 
5843
- #: app/features/mec/dashboard.php:143 app/features/mec/dashboard.php:199
5844
  msgid "You cannot access this section."
5845
  msgstr "Nemáte přístup do této části."
5846
 
5847
- #: app/features/mec/dashboard.php:159
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:267
5856
  msgid "Popular Gateways"
5857
  msgstr "Oblíbené platební brány"
5858
 
5859
- #: app/features/mec/dashboard.php:325
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:1288
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:1293 app/features/mec/settings.php:1298
5905
- #: app/features/mec/settings.php:1353 app/features/mec/settings.php:1377
5906
- #: app/features/mec/settings.php:1401 app/features/mec/settings.php:1468
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:1299
5912
- #: app/features/mec/settings.php:1312
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:1306 app/features/mec/settings.php:1311
5920
- #: app/features/mec/settings.php:1359 app/features/mec/settings.php:1474
5921
- #: app/features/mec/settings.php:1492 app/features/mec/settings.php:1540
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:1319 app/features/mec/settings.php:1327
5927
  msgid "Subscription Status"
5928
  msgstr "Stav odběru"
5929
 
5930
- #: app/features/mec/integrations.php:80 app/features/mec/settings.php:1322
5931
  msgid "Subscribe automatically"
5932
  msgstr "Odebírat automaticky"
5933
 
5934
- #: app/features/mec/integrations.php:81 app/features/mec/settings.php:1323
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:1328
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:1337
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:1348
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:1372
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:1383
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:1396
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:1407
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:1427 app/features/mec/settings.php:1442
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:1443
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:1457
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:1462
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:1487
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:1495
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:1496
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:1507
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:1513
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:1524
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:1533
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:1550
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:102
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:377 app/features/mec/settings.php:401
6195
- #: app/features/mec/settings.php:410 app/features/mec/settings.php:454
6196
- #: app/features/mec/settings.php:478 app/features/mec/settings.php:487
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:402 app/features/mec/settings.php:412
6209
- #: app/features/mec/settings.php:479 app/features/mec/settings.php:489
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:379 app/features/mec/settings.php:392
6222
- #: app/features/mec/settings.php:403 app/features/mec/settings.php:413
6223
- #: app/features/mec/settings.php:456 app/features/mec/settings.php:469
6224
- #: app/features/mec/settings.php:480 app/features/mec/settings.php:490
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:404 app/features/mec/settings.php:481
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:405 app/features/mec/settings.php:482
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:378 app/features/mec/settings.php:393
6672
- #: app/features/mec/settings.php:411 app/features/mec/settings.php:455
6673
- #: app/features/mec/settings.php:470 app/features/mec/settings.php:488
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:381 app/features/mec/settings.php:414
6686
- #: app/features/mec/settings.php:458 app/features/mec/settings.php:491
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:380 app/features/mec/settings.php:416
6702
- #: app/features/mec/settings.php:457 app/features/mec/settings.php:493
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:2368
6754
- #: app/libraries/main.php:2394
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:2369
6761
- #: app/libraries/main.php:2395
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:2362
6776
- #: app/libraries/main.php:2388
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:2364
6788
- #: app/libraries/main.php:2390
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:2365
6795
- #: app/libraries/main.php:2391
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:1087 app/features/occurrences.php:71
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:1257 app/features/mec/single.php:477
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:7567 app/libraries/main.php:7628
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:1264 app/features/mec/single.php:486
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:1170
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:913
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:888
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:882
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:8844
8754
- #: app/libraries/main.php:8864
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:260
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:1113
8806
- #: app/features/mec/settings.php:1117 app/features/notifications.php:198
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:7571
9092
- #: app/libraries/main.php:7632
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:298
9256
  #, fuzzy
9257
  #| msgid "Speakers Names"
9258
  msgid "Sender Name"
9259
  msgstr "Jméno řečníka"
9260
 
9261
- #: app/features/mec/settings.php:301
9262
  msgid "e.g. Webnus"
9263
  msgstr ""
9264
 
9265
- #: app/features/mec/settings.php:305
9266
  #, fuzzy
9267
  #| msgid "Organizer Email"
9268
  msgid "Sender Email"
9269
  msgstr "Organizátor Email"
9270
 
9271
- #: app/features/mec/settings.php:308
9272
  msgid "e.g. info@webnus.biz"
9273
  msgstr ""
9274
 
9275
- #: app/features/mec/settings.php:312
9276
  #, fuzzy
9277
  #| msgid "Simple Method"
9278
  msgid "Recipients Method"
9279
  msgstr "Jednoduchá metoda"
9280
 
9281
- #: app/features/mec/settings.php:315
9282
  msgid "BCC (Invisible)"
9283
  msgstr ""
9284
 
9285
- #: app/features/mec/settings.php:316
9286
  msgid "CC (Visible)"
9287
  msgstr ""
9288
 
9289
- #: app/features/mec/settings.php:324 app/libraries/main.php:644
9290
  msgid "Archive Pages"
9291
  msgstr "Archivní stránky"
9292
 
9293
- #: app/features/mec/settings.php:327 app/features/mec/settings.php:332
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:333 app/features/popup/settings.php:78
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:341
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:344
9309
  #, fuzzy
9310
  #| msgid "Pending"
9311
  msgid "Heading 1"
9312
  msgstr "Nevyřízený"
9313
 
9314
- #: app/features/mec/settings.php:345
9315
  #, fuzzy
9316
  #| msgid "Pending"
9317
  msgid "Heading 2"
9318
  msgstr "Nevyřízený"
9319
 
9320
- #: app/features/mec/settings.php:346
9321
  #, fuzzy
9322
  #| msgid "Pending"
9323
  msgid "Heading 3"
9324
  msgstr "Nevyřízený"
9325
 
9326
- #: app/features/mec/settings.php:347
9327
  #, fuzzy
9328
  #| msgid "Pending"
9329
  msgid "Heading 4"
9330
  msgstr "Nevyřízený"
9331
 
9332
- #: app/features/mec/settings.php:348
9333
  #, fuzzy
9334
  #| msgid "Pending"
9335
  msgid "Heading 5"
9336
  msgstr "Nevyřízený"
9337
 
9338
- #: app/features/mec/settings.php:349
9339
  #, fuzzy
9340
  #| msgid "Pending"
9341
  msgid "Heading 6"
9342
  msgstr "Nevyřízený"
9343
 
9344
- #: app/features/mec/settings.php:350
9345
  msgid "Division"
9346
  msgstr ""
9347
 
9348
- #: app/features/mec/settings.php:352
9349
  msgid "Inline Bold Text"
9350
  msgstr ""
9351
 
9352
- #: app/features/mec/settings.php:353
9353
  #, fuzzy
9354
  #| msgid "Head Text"
9355
  msgid "Inline Text"
9356
  msgstr "Text hlavičky"
9357
 
9358
- #: app/features/mec/settings.php:359 app/features/mec/settings.php:427
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:367 app/features/mec/settings.php:444
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:370 app/features/mec/settings.php:385
9369
- #: app/features/mec/settings.php:388 app/features/mec/settings.php:397
9370
- #: app/features/mec/settings.php:423 app/features/mec/settings.php:447
9371
- #: app/features/mec/settings.php:462 app/features/mec/settings.php:465
9372
- #: app/features/mec/settings.php:474 app/features/mec/settings.php:500
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:373 app/features/mec/settings.php:450
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:415 app/features/mec/settings.php:492
9386
  #: app/features/popup/settings.php:142
9387
  msgid "colorful"
9388
  msgstr "pestrý"
9389
 
9390
- #: app/features/mec/settings.php:420 app/features/mec/settings.php:497
9391
  #: app/features/popup/settings.php:147
9392
  msgid "Clean Style"
9393
  msgstr "Čistý styl"
9394
 
9395
- #: app/features/mec/settings.php:428
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:428 app/features/mec/settings.php:505
9400
  msgid "See Demo"
9401
  msgstr "Viz Demo"
9402
 
9403
- #: app/features/mec/settings.php:436 app/features/mec/settings.php:504
9404
  msgid "Category Page Skin"
9405
  msgstr "Vzhled stránky kategorie"
9406
 
9407
- #: app/features/mec/settings.php:505
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:513 app/features/mec/settings.php:521
9420
  msgid "Category Events Method"
9421
  msgstr "Kategorie Metoda události"
9422
 
9423
- #: app/features/mec/settings.php:522
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:530 app/features/mec/settings.php:538
9428
  msgid "Events Archive Status"
9429
  msgstr "Stav archivu událostí"
9430
 
9431
- #: app/features/mec/settings.php:533
9432
  msgid "Enabled (Recommended)"
9433
  msgstr "Povoleno (doporučeno)"
9434
 
9435
  # Slug
9436
- #: app/features/mec/settings.php:539
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:552 app/features/mec/settings.php:557
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:558 app/features/popup/settings.php:161
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:562 app/features/mec/settings.php:576
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:566 app/features/mec/settings.php:571
9469
  msgid "Category Slug"
9470
  msgstr "Kategorie Slug"
9471
 
9472
- #: app/features/mec/settings.php:572
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:641
9482
  msgid "Assets (CSS and JavaScript files)"
9483
  msgstr ""
9484
 
9485
- #: app/features/mec/settings.php:643
9486
  #, fuzzy
9487
  #| msgid "Start Date"
9488
  msgid "Per Page"
9489
  msgstr "Počátečná den"
9490
 
9491
- #: app/features/mec/settings.php:647
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:651
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:654
9505
  #, fuzzy
9506
  #| msgid "Load More"
9507
  msgid "Load in Footer"
9508
  msgstr "Načíst více"
9509
 
9510
- #: app/features/mec/settings.php:658
9511
  msgid "Load Assets in Footer"
9512
  msgstr ""
9513
 
9514
- #: app/features/mec/settings.php:664 app/libraries/main.php:648
9515
  #, fuzzy
9516
  #| msgid "Enable Google Recaptcha"
9517
  msgid "Google Recaptcha"
9518
  msgstr "Povolit Google Recaptcha"
9519
 
9520
- #: app/features/mec/settings.php:668
9521
  msgid "Enable Google Recaptcha"
9522
  msgstr "Povolit Google Recaptcha"
9523
 
9524
- #: app/features/mec/settings.php:677
9525
  msgid "Enable on booking form"
9526
  msgstr "Povolit rezervační formulář"
9527
 
9528
- #: app/features/mec/settings.php:685
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:689
9534
  msgid "Site Key"
9535
  msgstr "Klíč webu"
9536
 
9537
- #: app/features/mec/settings.php:695
9538
  msgid "Secret Key"
9539
  msgstr "Tajný klíč"
9540
 
9541
- #: app/features/mec/settings.php:707 app/features/mec/settings.php:715
9542
  msgid "Time Format"
9543
  msgstr "Formát času"
9544
 
9545
- #: app/features/mec/settings.php:710
9546
  msgid "12 hours format with AM/PM"
9547
  msgstr "12 hodinový formát s dop./odp."
9548
 
9549
- #: app/features/mec/settings.php:711
9550
  msgid "24 hours format"
9551
  msgstr "24 hodinový fotmát"
9552
 
9553
- #: app/features/mec/settings.php:716
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:724
9558
  msgid "Events List Page"
9559
  msgstr "Stránka seznamu událostí"
9560
 
9561
- #: app/features/mec/settings.php:736
9562
  msgid "Add/Edit Events Page"
9563
  msgstr "Přidat / Editovat stránku událostí"
9564
 
9565
- #: app/features/mec/settings.php:748
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:751
9572
  #, fuzzy
9573
  #| msgid "WordPress"
9574
  msgid "Let WordPress decide"
9575
  msgstr "WordPress"
9576
 
9577
- #: app/features/mec/settings.php:753
9578
  msgid "Publish"
9579
  msgstr ""
9580
 
9581
- #: app/features/mec/settings.php:758
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:761 app/features/mec/settings.php:933
9588
  #: app/libraries/notifications.php:2110
9589
  msgid "No"
9590
  msgstr "Ne"
9591
 
9592
- #: app/features/mec/settings.php:762 app/features/mec/settings.php:932
9593
  #: app/libraries/notifications.php:2110
9594
  msgid "Yes"
9595
  msgstr "Ano"
9596
 
9597
- #: app/features/mec/settings.php:779
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:786 app/features/mec/settings.php:791
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:792
9616
  msgid "If filled it will use instead of thank you page set above."
9617
  msgstr ""
9618
 
9619
- #: app/features/mec/settings.php:815 app/features/mec/settings.php:820
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:817
9626
  msgid "in KB"
9627
  msgstr ""
9628
 
9629
- #: app/features/mec/settings.php:821
9630
  msgid "In Kilo Bytes so 5000 means 5MB (Approximately)"
9631
  msgstr ""
9632
 
9633
- #: app/features/mec/settings.php:830
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:837
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:843
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:848
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:852
9654
  #, fuzzy
9655
  #| msgid "Event Details"
9656
  msgid "Event Data Fields"
9657
  msgstr "Podrobnosti události"
9658
 
9659
- #: app/features/mec/settings.php:899
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:925 app/widgets/single.php:142
9666
  msgid "Event Organizer"
9667
  msgstr "Organizátor události"
9668
 
9669
- #: app/features/mec/settings.php:929
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:937
9676
  #, fuzzy
9677
  #| msgid "Organizers"
9678
  msgid "Use All Organizers"
9679
  msgstr "Organizátoři"
9680
 
9681
- #: app/features/mec/settings.php:938
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:968 app/features/occurrences.php:365
9689
  #, fuzzy
9690
  #| msgid "Total booking limits"
9691
  msgid "Total Booking Limit"
9692
  msgstr "Celkové limity rezervace"
9693
 
9694
- #: app/features/mec/settings.php:974
9695
  #, fuzzy
9696
  #| msgid "Discount"
9697
  msgid "Discount Per User Roles"
9698
  msgstr "Sleva"
9699
 
9700
- #: app/features/mec/settings.php:1016
9701
  #, fuzzy
9702
  #| msgid "Ticket Variations / Options"
9703
  msgid "Ticket Options"
9704
  msgstr "Varianty vstupenky / možnosti"
9705
 
9706
- #: app/features/mec/settings.php:1034
9707
  msgid "Fees / Taxes Options"
9708
  msgstr "Možnosti Poplatky / Daně"
9709
 
9710
- #: app/features/mec/settings.php:1055 app/features/schema.php:67
9711
  #, fuzzy
9712
  #| msgid "Schema"
9713
  msgid "SEO Schema"
9714
  msgstr "Schéma"
9715
 
9716
- #: app/features/mec/settings.php:1078 app/features/mec/single.php:233
9717
  #: app/features/mec/single.php:241
9718
  msgid "Public Download Module"
9719
  msgstr ""
9720
 
9721
- #: app/features/mec/settings.php:1096 app/widgets/single.php:189
9722
  #, fuzzy
9723
  #| msgid "Edit Event"
9724
  msgid "Virtual Event"
9725
  msgstr "Editace události"
9726
 
9727
- #: app/features/mec/settings.php:1105
9728
  #, fuzzy
9729
  #| msgid "Book Event"
9730
  msgid "Zoom Event"
9731
  msgstr "Rezervovat událost"
9732
 
9733
- #: app/features/mec/settings.php:1118
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:1125 app/features/mec/settings.php:1133
9745
  #, fuzzy
9746
  #| msgid "Visibility"
9747
  msgid "Note visibility"
9748
  msgstr "Viditelnost"
9749
 
9750
- #: app/features/mec/settings.php:1128
9751
  msgid "Always"
9752
  msgstr "Vždy"
9753
 
9754
- #: app/features/mec/settings.php:1129
9755
  msgid "While event is not published"
9756
  msgstr "I když událost není zveřejněna"
9757
 
9758
- #: app/features/mec/settings.php:1134
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:1144
9765
  msgid "Agreement Checkbox (GDPR Compatibility)"
9766
  msgstr ""
9767
 
9768
- #: app/features/mec/settings.php:1151
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:1167
9775
  #, fuzzy
9776
  #| msgid "Required Field"
9777
  msgid "Required Fields"
9778
  msgstr "Požadovaná pole"
9779
 
9780
- #: app/features/mec/settings.php:1174 app/libraries/main.php:7603
9781
- #: app/libraries/main.php:7650
9782
  msgid "More Info Link"
9783
  msgstr "Odkaz na více informací"
9784
 
9785
- #: app/features/mec/settings.php:1187 app/libraries/main.php:650
9786
  msgid "User Profile"
9787
  msgstr "Uživatelský profil"
9788
 
9789
- #: app/features/mec/settings.php:1189
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:1190
9802
  #, php-format
9803
  msgid "Use %s attribute to hide canceled bookings. Like %s"
9804
  msgstr ""
9805
 
9806
- #: app/features/mec/settings.php:1191
9807
  #, php-format
9808
  msgid "Use %s attribute to show upcoming bookings. Like %s"
9809
  msgstr ""
9810
 
9811
- #: app/features/mec/settings.php:1196 app/libraries/main.php:651
9812
  #, fuzzy
9813
  #| msgid "Hide Events"
9814
  msgid "User Events"
9815
  msgstr "Skrýt události"
9816
 
9817
- #: app/features/mec/settings.php:1198
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:1210 app/libraries/main.php:652
9830
  msgid "Search Bar"
9831
  msgstr "Vyhledávací panel"
9832
 
9833
- #: app/features/mec/settings.php:1212
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:1217
9842
  msgid "Ajax Live mode"
9843
  msgstr "Ajax Live mód"
9844
 
9845
- #: app/features/mec/settings.php:1221
9846
  msgid "Ajax mode"
9847
  msgstr "Ajax mód"
9848
 
9849
- #: app/features/mec/settings.php:1222
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:1230
9862
  msgid "Modern Type"
9863
  msgstr "Moderní typ"
9864
 
9865
- #: app/features/mec/settings.php:1234
9866
  msgid "Search bar fields"
9867
  msgstr "Pole vyhledávacího panelu"
9868
 
9869
- #: app/features/mec/settings.php:1276
9870
  msgid "Text input"
9871
  msgstr "Zadávání textu"
9872
 
9873
- #: app/features/mec/settings.php:1344
9874
  #, fuzzy
9875
  #| msgid "Mailchimp Integration"
9876
  msgid "Campaign Monitor Integration"
9877
  msgstr "Integrace Mailchimp"
9878
 
9879
- #: app/features/mec/settings.php:1368
9880
  #, fuzzy
9881
  #| msgid "Mailchimp Integration"
9882
  msgid "MailerLite Integration"
9883
  msgstr "Integrace Mailchimp"
9884
 
9885
- #: app/features/mec/settings.php:1392
9886
  #, fuzzy
9887
  #| msgid "Enable Mailchimp Integration"
9888
  msgid "Constant Contact Integration"
9889
  msgstr "Povolit integraci Mailchimp"
9890
 
9891
- #: app/features/mec/settings.php:1453
9892
  #, fuzzy
9893
  #| msgid "Mailchimp Integration"
9894
  msgid "Active Campaign Integration"
9895
  msgstr "Integrace Mailchimp"
9896
 
9897
- #: app/features/mec/settings.php:1483
9898
  #, fuzzy
9899
  #| msgid "Mailchimp Integration"
9900
  msgid "AWeber Integration"
9901
  msgstr "Integrace Mailchimp"
9902
 
9903
- #: app/features/mec/settings.php:1503
9904
  #, fuzzy
9905
  #| msgid "Mailchimp Integration"
9906
  msgid "MailPoet Integration"
9907
  msgstr "Integrace Mailchimp"
9908
 
9909
- #: app/features/mec/settings.php:1529
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:57
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:76
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:80
10493
  #, fuzzy
10494
  #| msgid "Featured Image"
10495
  msgid "Setup Features"
10496
  msgstr "Hlavní obrázek"
10497
 
10498
- #: app/features/mec/support-page.php:81
10499
  msgid "Add Event In MEC Plugin"
10500
  msgstr ""
10501
 
10502
- #: app/features/mec/support-page.php:82
10503
  msgid "Repeating, Date & Time"
10504
  msgstr ""
10505
 
10506
- #: app/features/mec/support-page.php:83 app/features/mec/support-page.php:116
10507
  #, fuzzy
10508
  #| msgid "Ticket"
10509
  msgid "Add Tickets & Fee"
10510
  msgstr "Vstupenka"
10511
 
10512
- #: app/features/mec/support-page.php:84
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:85 app/features/mec/support-page.php:330
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:93
10523
  #, fuzzy
10524
  #| msgid "MEC - Settings"
10525
  msgid "MEC Settings"
10526
  msgstr "MEC - Nastavení"
10527
 
10528
- #: app/features/mec/support-page.php:99 app/libraries/main.php:806
10529
  msgid "Single Event"
10530
  msgstr "Jedna událost"
10531
 
10532
- #: app/features/mec/support-page.php:101 app/features/mec/support-page.php:338
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:119
10539
  #, fuzzy
10540
  #| msgid "Enable Booking"
10541
  msgid "Manage The Bookings"
10542
  msgstr "Povolit rezervace"
10543
 
10544
- #: app/features/mec/support-page.php:127
10545
  #, fuzzy
10546
  #| msgid "Articles"
10547
  msgid "Other Articles"
10548
  msgstr "Články"
10549
 
10550
- #: app/features/mec/support-page.php:131
10551
  #, fuzzy
10552
  #| msgid "Import / Export"
10553
  msgid "Import & Export Events"
10554
  msgstr "Import / Export"
10555
 
10556
- #: app/features/mec/support-page.php:132
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:133 app/features/mec/support-page.php:336
10563
  msgid "Translate MEC"
10564
  msgstr "Přeložit MEC"
10565
 
10566
- #: app/features/mec/support-page.php:134
10567
  #, fuzzy
10568
  #| msgid "Documentation"
10569
  msgid "Developer Documentation"
10570
  msgstr "Dokumentace"
10571
 
10572
- #: app/features/mec/support-page.php:135
10573
  #, fuzzy
10574
  #| msgid "Knowledgebase"
10575
  msgid "Knowledge"
10576
  msgstr "Znalostní databáze"
10577
 
10578
- #: app/features/mec/support-page.php:147
10579
  #, fuzzy
10580
  #| msgid "Quick Setup"
10581
  msgid "Quick Setup Video"
10582
  msgstr "Rychlé nastavení"
10583
 
10584
- #: app/features/mec/support-page.php:151
10585
  msgid "Download the Plugin"
10586
  msgstr "Stažení doplňku"
10587
 
10588
- #: app/features/mec/support-page.php:152
10589
  msgid "Install and Activate the Plugin"
10590
  msgstr "Instalace a aktivace doplňku"
10591
 
10592
- #: app/features/mec/support-page.php:153
10593
  msgid "Add a New Event"
10594
  msgstr "Přidat Novou událost"
10595
 
10596
- #: app/features/mec/support-page.php:156 app/features/mec/support-page.php:173
10597
- #: app/features/mec/support-page.php:190 app/features/mec/support-page.php:207
10598
- #: app/features/mec/support-page.php:227 app/features/mec/support-page.php:244
10599
- #: app/features/mec/support-page.php:261 app/features/mec/support-page.php:278
10600
  msgid "Watch Video"
10601
  msgstr "Sledovat video"
10602
 
10603
- #: app/features/mec/support-page.php:164
10604
  #, fuzzy
10605
  #| msgid "Activate License"
10606
  msgid "Activate License Video"
10607
  msgstr "Aktivovat licenci"
10608
 
10609
- #: app/features/mec/support-page.php:168
10610
  msgid "Login to Dashboard"
10611
  msgstr "Přihlásit se do řídícímu panelu"
10612
 
10613
- #: app/features/mec/support-page.php:169
10614
  msgid "Get the License Key"
10615
  msgstr "Získat licenční klíč"
10616
 
10617
- #: app/features/mec/support-page.php:170
10618
  msgid "Activate the plugin"
10619
  msgstr "Aktivace doplňku"
10620
 
10621
- #: app/features/mec/support-page.php:181
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:185
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:186
10632
  msgid "Tags, Categories, Organizer, Location"
10633
  msgstr "Tagy, Kategorie, Organizátoři, Místa"
10634
 
10635
- #: app/features/mec/support-page.php:187
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:198
10640
  #, fuzzy
10641
  #| msgid "Enable Booking"
10642
  msgid "Enable Booking Video"
10643
  msgstr "Povolit rezervace"
10644
 
10645
- #: app/features/mec/support-page.php:202
10646
  msgid "Enable Booking"
10647
  msgstr "Povolit rezervace"
10648
 
10649
- #: app/features/mec/support-page.php:203 app/features/mec/support-page.php:224
10650
  msgid "Customize the Booking Form"
10651
  msgstr "Přizpůsobit rezervační formulář"
10652
 
10653
- #: app/features/mec/support-page.php:204
10654
  msgid "Set Up a Payment Gateway"
10655
  msgstr "Nastavení platební brány"
10656
 
10657
- #: app/features/mec/support-page.php:218
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:222
10664
  msgid "Enable Booking from Settings"
10665
  msgstr "Povolit rezervaci z nastavení"
10666
 
10667
- #: app/features/mec/support-page.php:223
10668
  msgid "Set Up a Booking Form"
10669
  msgstr "Nastavit rezervační formulář"
10670
 
10671
- #: app/features/mec/support-page.php:235
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:239
10678
  msgid "Create a New Shortcode"
10679
  msgstr "Vytvořit nové zkrácený kód"
10680
 
10681
- #: app/features/mec/support-page.php:240
10682
  msgid "Customize Shortcodes"
10683
  msgstr "Přizpůsobit zkrácené kódy"
10684
 
10685
- #: app/features/mec/support-page.php:241
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:252
10690
  #, fuzzy
10691
  #| msgid "WooCommerce gateways"
10692
  msgid "WooCommerce Video"
10693
  msgstr "Brána WooCommerce"
10694
 
10695
- #: app/features/mec/support-page.php:256
10696
  msgid "Install and Activate WooCommerce"
10697
  msgstr "Instalace a aktivace WooCommerce"
10698
 
10699
- #: app/features/mec/support-page.php:257
10700
  msgid "Integrate with MEC"
10701
  msgstr "Integrovat s MEC"
10702
 
10703
- #: app/features/mec/support-page.php:258
10704
  msgid "Set Up WooCommerce Gateway"
10705
  msgstr "Nastavit bránu WooCommerce"
10706
 
10707
- #: app/features/mec/support-page.php:269
10708
  #, fuzzy
10709
  #| msgid "Settings"
10710
  msgid "Settings Video"
10711
  msgstr "Nastavení"
10712
 
10713
- #: app/features/mec/support-page.php:273
10714
  msgid "An Overview of the Settings"
10715
  msgstr "Přehled nastavení"
10716
 
10717
- #: app/features/mec/support-page.php:274
10718
  msgid "Set Up Different Settings"
10719
  msgstr "Nastavit různá nastavení"
10720
 
10721
- #: app/features/mec/support-page.php:275
10722
  msgid "Use Different Options"
10723
  msgstr "Použít různé možnosti"
10724
 
10725
- #: app/features/mec/support-page.php:289
10726
  msgid "FAQ"
10727
  msgstr "FAQ"
10728
 
10729
- #: app/features/mec/support-page.php:293
10730
  msgid "How should I update plugin?"
10731
  msgstr "Jak mám aktualizovat doplněk?"
10732
 
10733
- #: app/features/mec/support-page.php:295
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:300
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:301
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:304
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:306
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:309
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:311
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:314
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:315
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:317
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:318
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:326
10830
  msgid "Articles"
10831
  msgstr "Články"
10832
 
10833
- #: app/features/mec/support-page.php:329
10834
  msgid "MEC And Integrate With WooCommerce"
10835
  msgstr "(MEC) a integrace s WooCommerce"
10836
 
10837
- #: app/features/mec/support-page.php:331
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:332
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:333
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:334
10854
  msgid "How Can I change the image size in shortcodes?"
10855
  msgstr ""
10856
 
10857
- #: app/features/mec/support-page.php:335
10858
  msgid "Booking Module Not Working"
10859
  msgstr "Rezervační modul nefunguje"
10860
 
10861
- #: app/features/mec/support-page.php:337
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:339
10866
  #, fuzzy
10867
  #| msgid "Documentation"
10868
  msgid "MEC developer documentation"
10869
  msgstr "Dokumentace"
10870
 
10871
- #: app/features/mec/support-page.php:350
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:350
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:351
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:171
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:180
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:203
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:172
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:193
11147
  msgid "Phone number."
11148
  msgstr "Telefonní číslo."
11149
 
11150
- #: app/features/organizers.php:301 app/features/popup/event.php:194
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:198
11155
  msgid "Email address."
11156
  msgstr "Emailová adresa."
11157
 
11158
- #: app/features/organizers.php:305 app/features/popup/event.php:199
11159
  msgid "eg. john@smith.com"
11160
  msgstr "např. info@itreseni.cz"
11161
 
11162
- #: app/features/organizers.php:309 app/features/popup/event.php:204
11163
  msgid "eg. https://webnus.net"
11164
  msgstr "např. https://webnus.net"
11165
 
11166
- #: app/features/organizers.php:329 app/libraries/main.php:7606
11167
- #: app/libraries/main.php:7653 app/skins/single.php:1439
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:60
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:68
11184
  #, fuzzy
11185
  #| msgid "Event Note"
11186
  msgid "Event Name"
11187
  msgstr "Poznámka události"
11188
 
11189
- #: app/features/popup/event.php:69
11190
  msgid "Event name is required"
11191
  msgstr ""
11192
 
11193
- #: app/features/popup/event.php:130
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:134
11200
  #, fuzzy
11201
  #| msgid "Location"
11202
  msgid "Add Location"
11203
  msgstr "Umístění"
11204
 
11205
- #: app/features/popup/event.php:184
11206
  #, fuzzy
11207
  #| msgid "Organizer"
11208
  msgid "Add Organizer"
11209
  msgstr "Organizátor"
11210
 
11211
- #: app/features/popup/event.php:224
11212
  #, fuzzy
11213
  #| msgid "Categories"
11214
  msgid "All Categories"
11215
  msgstr "Kategorie"
11216
 
11217
- #: app/features/popup/event.php:225
11218
  msgid "Most Used"
11219
  msgstr ""
11220
 
11221
- #: app/features/popup/event.php:236
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:247
11229
  #, fuzzy
11230
  #| msgid "Featured Image"
11231
  msgid "Set Featured Image"
11232
  msgstr "Hlavní obrázek"
11233
 
11234
- #: app/features/popup/event.php:257
11235
  msgid "Your Event Has Been Created."
11236
  msgstr ""
11237
 
11238
- #: app/features/popup/event.php:268 app/features/popup/settings.php:534
11239
  #: app/features/popup/shortcode.php:553
11240
  msgid "Prev"
11241
  msgstr ""
11242
 
11243
- #: app/features/popup/event.php:269 app/features/popup/settings.php:536
11244
- #: app/features/popup/shortcode.php:554 app/modules/booking/steps/form.php:385
11245
- #: app/modules/booking/steps/tickets.php:214 app/skins/countdown/tpl.php:114
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:3055
11539
- #: app/libraries/main.php:3334 app/libraries/notifications.php:1617
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:7590
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:177
11601
  msgid "M.E. Calendar"
11602
  msgstr "M.E. Kalendář"
11603
 
11604
- #: app/libraries/factory.php:216
11605
  msgctxt "plugin link"
11606
  msgid "Upgrade to Pro Version"
11607
  msgstr "Upgrade na verzi PRO"
11608
 
11609
- #: app/libraries/factory.php:232
11610
  msgctxt "plugin link"
11611
  msgid "Settings"
11612
  msgstr "Nastavení"
11613
 
11614
- #: app/libraries/factory.php:237
11615
  msgctxt "plugin link"
11616
  msgid "Upgrade"
11617
  msgstr "Upgrade"
11618
 
11619
- #: app/libraries/factory.php:391
11620
  msgid "day"
11621
  msgstr "den"
11622
 
11623
- #: app/libraries/factory.php:392 app/modules/countdown/details.php:193
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:393
11630
  msgid "hour"
11631
  msgstr "hodina"
11632
 
11633
- #: app/libraries/factory.php:394 app/modules/countdown/details.php:200
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:395
11640
  msgid "minute"
11641
  msgstr "minuta"
11642
 
11643
- #: app/libraries/factory.php:396 app/modules/countdown/details.php:207
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:397
11650
  msgid "second"
11651
  msgstr "vteřina"
11652
 
11653
- #: app/libraries/factory.php:398 app/modules/countdown/details.php:214
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:475
11660
  msgid "MEC Single Sidebar"
11661
  msgstr "MEC Postranní panel"
11662
 
11663
- #: app/libraries/factory.php:476
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:1197
11668
  msgid "Notice:"
11669
  msgstr ""
11670
 
11671
- #: app/libraries/factory.php:1198
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:2370
11715
- #: app/libraries/main.php:2396
11716
  msgid "Agenda View"
11717
  msgstr "Zobrazení agendy"
11718
 
11719
- #: app/libraries/main.php:377 app/libraries/main.php:2361
11720
- #: app/libraries/main.php:2387
11721
  msgid "Full Calendar"
11722
  msgstr "Plný kalendář"
11723
 
11724
- #: app/libraries/main.php:379 app/libraries/main.php:2363
11725
- #: app/libraries/main.php:2389
11726
  msgid "Calendar/Monthly View"
11727
  msgstr "Kalendář / zobrazení měsíce"
11728
 
11729
- #: app/libraries/main.php:382 app/libraries/main.php:2366
11730
- #: app/libraries/main.php:2392
11731
  msgid "Timetable View"
11732
  msgstr "Zobrazení rozvrhu"
11733
 
11734
- #: app/libraries/main.php:383 app/libraries/main.php:2367
11735
- #: app/libraries/main.php:2393
11736
  msgid "Masonry View"
11737
  msgstr "Zobrazení zdi"
11738
 
11739
- #: app/libraries/main.php:384 app/libraries/main.php:2371
11740
- #: app/libraries/main.php:2397
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:2372
11772
- #: app/libraries/main.php:2398
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:7573
11779
- #: app/libraries/main.php:7634
11780
  msgid "SU"
11781
  msgstr "NE"
11782
 
11783
- #: app/libraries/main.php:452 app/libraries/main.php:7574
11784
- #: app/libraries/main.php:7635
11785
  msgid "MO"
11786
  msgstr "PO"
11787
 
11788
- #: app/libraries/main.php:453 app/libraries/main.php:7575
11789
- #: app/libraries/main.php:7636
11790
  msgid "TU"
11791
  msgstr "ÚT"
11792
 
11793
- #: app/libraries/main.php:454 app/libraries/main.php:7576
11794
- #: app/libraries/main.php:7637
11795
  msgid "WE"
11796
  msgstr "ST"
11797
 
11798
- #: app/libraries/main.php:455 app/libraries/main.php:7577
11799
- #: app/libraries/main.php:7638
11800
  msgid "TH"
11801
  msgstr "ČT"
11802
 
11803
- #: app/libraries/main.php:456 app/libraries/main.php:7578
11804
- #: app/libraries/main.php:7639
11805
  msgid "FR"
11806
  msgstr "PÁ"
11807
 
11808
- #: app/libraries/main.php:457 app/libraries/main.php:7579
11809
- #: app/libraries/main.php:7640
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:2087
11894
  msgid "Events at this location"
11895
  msgstr "Události na tomto místě"
11896
 
11897
- #: app/libraries/main.php:2087
11898
  msgid "Event at this location"
11899
  msgstr "Událost na tomto místě"
11900
 
11901
- #: app/libraries/main.php:2139
11902
  msgid "Facebook"
11903
  msgstr "Facebook"
11904
 
11905
- #: app/libraries/main.php:2140
11906
  msgid "Twitter"
11907
  msgstr "Twitter"
11908
 
11909
- #: app/libraries/main.php:2141 app/libraries/main.php:2198
11910
  msgid "Linkedin"
11911
  msgstr "Linkedin"
11912
 
11913
- #: app/libraries/main.php:2142 app/libraries/main.php:2234
11914
  msgid "VK"
11915
  msgstr "VK"
11916
 
11917
- #: app/libraries/main.php:2143
11918
  msgid "Tumblr"
11919
  msgstr ""
11920
 
11921
- #: app/libraries/main.php:2144
11922
  msgid "Pinterest"
11923
  msgstr ""
11924
 
11925
- #: app/libraries/main.php:2145
11926
  msgid "Flipboard"
11927
  msgstr ""
11928
 
11929
- #: app/libraries/main.php:2146
11930
  #, fuzzy
11931
  #| msgid "Tickets"
11932
  msgid "GetPocket"
11933
  msgstr "Vstupenky"
11934
 
11935
- #: app/libraries/main.php:2147
11936
  msgid "Reddit"
11937
  msgstr ""
11938
 
11939
- #: app/libraries/main.php:2148
11940
  msgid "WhatsApp"
11941
  msgstr ""
11942
 
11943
- #: app/libraries/main.php:2149
11944
  msgid "Telegram"
11945
  msgstr ""
11946
 
11947
- #: app/libraries/main.php:2168
11948
  msgid "Share on Facebook"
11949
  msgstr "Sdílet na Facebooku"
11950
 
11951
- #: app/libraries/main.php:2183
11952
  msgid "Tweet"
11953
  msgstr "Tweet"
11954
 
11955
- #: app/libraries/main.php:2249
11956
  #, fuzzy
11957
  #| msgid "Share on Facebook"
11958
  msgid "Share on Tumblr"
11959
  msgstr "Sdílet na Facebooku"
11960
 
11961
- #: app/libraries/main.php:2265
11962
  msgid "Share on Pinterest"
11963
  msgstr ""
11964
 
11965
- #: app/libraries/main.php:2281
11966
  #, fuzzy
11967
  #| msgid "Share on Facebook"
11968
  msgid "Share on Flipboard"
11969
  msgstr "Sdílet na Facebooku"
11970
 
11971
- #: app/libraries/main.php:2299
11972
  #, fuzzy
11973
  #| msgid "Share on Facebook"
11974
  msgid "Share on GetPocket"
11975
  msgstr "Sdílet na Facebooku"
11976
 
11977
- #: app/libraries/main.php:2315
11978
  #, fuzzy
11979
  #| msgid "Share on Facebook"
11980
  msgid "Share on Reddit"
11981
  msgstr "Sdílet na Facebooku"
11982
 
11983
- #: app/libraries/main.php:2331
11984
  msgid "Share on Telegram"
11985
  msgstr ""
11986
 
11987
- #: app/libraries/main.php:2349
11988
  msgid "Share on WhatsApp"
11989
  msgstr ""
11990
 
11991
- #: app/libraries/main.php:2373 app/libraries/main.php:2399
11992
  msgid "Custom Shortcode"
11993
  msgstr "Uživatelské zkrácené kódy"
11994
 
11995
- #: app/libraries/main.php:2785 app/libraries/main.php:2820
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:2790
12002
  msgid "Your booking already verified!"
12003
  msgstr "Vaše rezervace již byla ověřena!"
12004
 
12005
- #: app/libraries/main.php:2822
12006
  msgid "Your booking cannot verify!"
12007
  msgstr "Vaši rezervaci nelze ověřit!"
12008
 
12009
- #: app/libraries/main.php:2844 app/libraries/main.php:2903
12010
  msgid "Your booking successfully canceled."
12011
  msgstr "Vaše rezervace byla úspěšně zrušena."
12012
 
12013
- #: app/libraries/main.php:2849
12014
  msgid "Your booking already canceled!"
12015
  msgstr "Vaše rezervace již byla zrušena!"
12016
 
12017
- #: app/libraries/main.php:2861
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:2882
12024
  msgid "The cancelation window is not started yet."
12025
  msgstr ""
12026
 
12027
- #: app/libraries/main.php:2894
12028
  msgid "The cancelation window is passed."
12029
  msgstr ""
12030
 
12031
- #: app/libraries/main.php:2911
12032
  msgid "Your booking cannot be canceled."
12033
  msgstr "Vaši rezervaci nelze zrušit."
12034
 
12035
- #: app/libraries/main.php:2915
12036
  msgid "You canceled the payment successfully."
12037
  msgstr "Platbu jste úspěšně zrušili."
12038
 
12039
- #: app/libraries/main.php:2919
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:2938 app/libraries/main.php:3220
12044
- #: app/libraries/main.php:3233
12045
  msgid "Cannot find the invoice!"
12046
  msgstr "Fakturu nelze najít!"
12047
 
12048
- #: app/libraries/main.php:2938 app/libraries/main.php:3220
12049
- #: app/libraries/main.php:3233
12050
  msgid "Invoice is invalid."
12051
  msgstr "Faktura je neplatná."
12052
 
12053
- #: app/libraries/main.php:2960
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:2960
12064
  msgid "Booking Not Confirmed."
12065
  msgstr "Rezervace nebyla potvrzena."
12066
 
12067
- #: app/libraries/main.php:2966
12068
  msgid "Cannot find the booking!"
12069
  msgstr "Nemohu najít rezervaci!"
12070
 
12071
- #: app/libraries/main.php:2966
12072
  msgid "Booking is invalid."
12073
  msgstr "Rezervace není platná."
12074
 
12075
- #: app/libraries/main.php:2974
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:2974
12082
  #, fuzzy
12083
  #| msgid "Invoice is invalid."
12084
  msgid "Key is invalid."
12085
  msgstr "Faktura je neplatná."
12086
 
12087
- #: app/libraries/main.php:3009 app/libraries/main.php:3252
12088
  #, php-format
12089
  msgid "%s Invoice"
12090
  msgstr "%s Faktura"
12091
 
12092
- #: app/libraries/main.php:3046 app/libraries/main.php:3325
12093
  #, fuzzy
12094
  #| msgid "Date and Time"
12095
  msgid "Date & Times"
12096
  msgstr "Datum a čas"
12097
 
12098
- #: app/libraries/main.php:3065 app/libraries/main.php:3344
12099
  #, fuzzy
12100
  #| msgid "Date and Time"
12101
  msgid "Date & Time"
12102
  msgstr "Datum a čas"
12103
 
12104
- #: app/libraries/main.php:3081
12105
  #, fuzzy, php-format
12106
  #| msgid "Custom Styles"
12107
  msgid "%s Fields"
12108
  msgstr "Vlastní styly"
12109
 
12110
- #: app/libraries/main.php:3153 app/libraries/main.php:3401
12111
  msgid "Billing"
12112
  msgstr "Fakturace"
12113
 
12114
- #: app/libraries/main.php:3170 app/libraries/main.php:3418
12115
  msgid "Total"
12116
  msgstr "Celkem"
12117
 
12118
- #: app/libraries/main.php:3177 app/libraries/main.php:3426
12119
  #, fuzzy
12120
  #| msgid "Payment Gateways"
12121
  msgid "Payment"
12122
  msgstr "Platební brány"
12123
 
12124
- #: app/libraries/main.php:3194 app/libraries/main.php:3443
12125
  #, fuzzy
12126
  #| msgid "Payment Gateways"
12127
  msgid "Payment Time"
12128
  msgstr "Platební brány"
12129
 
12130
- #: app/libraries/main.php:3293
12131
  #, fuzzy
12132
  #| msgid "Confirmed"
12133
  msgid "Not Confirmed"
12134
  msgstr "Potvrzeno"
12135
 
12136
- #: app/libraries/main.php:3572
12137
  msgid "Request is not valid."
12138
  msgstr "Požadavek není platný."
12139
 
12140
- #: app/libraries/main.php:3572
12141
  msgid "iCal export stopped!"
12142
  msgstr "iCal export byl zastaven!"
12143
 
12144
- #: app/libraries/main.php:4297
12145
  #, fuzzy
12146
  #| msgid "Block Editor"
12147
  msgid "HTML Editor"
12148
  msgstr "Editor bloků"
12149
 
12150
- #: app/libraries/main.php:4455
12151
  msgid "Consider the first item as a placeholder"
12152
  msgstr ""
12153
 
12154
- #: app/libraries/main.php:4564
12155
  msgid "Free"
12156
  msgstr "Zdarma"
12157
 
12158
- #: app/libraries/main.php:5339 app/libraries/main.php:7971
12159
  msgid "M.E. Calender"
12160
  msgstr "M.E. Kalendář"
12161
 
12162
- #: app/libraries/main.php:5518
12163
  #, php-format
12164
  msgid "Copy of %s"
12165
  msgstr "Kopie %s"
12166
 
12167
- #: app/libraries/main.php:6502
12168
  msgid "Booked an event."
12169
  msgstr "Událost byla rezervována."
12170
 
12171
- #: app/libraries/main.php:6543
12172
  #, php-format
12173
  msgid "%s booked %s event."
12174
  msgstr "%s zarezervoval %s událost."
12175
 
12176
- #: app/libraries/main.php:7556 app/libraries/main.php:7617
12177
  msgid "Taxonomies"
12178
  msgstr "Taxonomie"
12179
 
12180
  # Mrknout na kontext
12181
- #: app/libraries/main.php:7558 app/libraries/main.php:7619
12182
  msgid "Category Plural Label"
12183
  msgstr "Štítek množné kategorie"
12184
 
12185
  # Mrknout na kontext
12186
- #: app/libraries/main.php:7559 app/libraries/main.php:7620
12187
  msgid "Category Singular Label"
12188
  msgstr "Štítek jednotné kategorie"
12189
 
12190
- #: app/libraries/main.php:7560 app/libraries/main.php:7621
12191
  msgid "Label Plural Label"
12192
  msgstr "Štítek množného štítku"
12193
 
12194
- #: app/libraries/main.php:7561 app/libraries/main.php:7622
12195
  msgid "Label Singular Label"
12196
  msgstr "Štítek jednotného štítku"
12197
 
12198
- #: app/libraries/main.php:7561 app/libraries/main.php:7622
12199
  msgid "label"
12200
  msgstr "štítek"
12201
 
12202
- #: app/libraries/main.php:7562 app/libraries/main.php:7623
12203
  msgid "Location Plural Label"
12204
  msgstr "Štítek množného umístění"
12205
 
12206
- #: app/libraries/main.php:7563 app/libraries/main.php:7624
12207
  msgid "Location Singular Label"
12208
  msgstr "Štítek jednotného umístění"
12209
 
12210
- #: app/libraries/main.php:7564 app/libraries/main.php:7625
12211
  msgid "Organizer Plural Label"
12212
  msgstr "Štítek množného organizátora"
12213
 
12214
- #: app/libraries/main.php:7565 app/libraries/main.php:7626
12215
  msgid "Organizer Singular Label"
12216
  msgstr "Štítek jednotného organizátora"
12217
 
12218
- #: app/libraries/main.php:7566 app/libraries/main.php:7627
12219
  msgid "Speaker Plural Label"
12220
  msgstr "Štítek množného řečníka"
12221
 
12222
- #: app/libraries/main.php:7567 app/libraries/main.php:7628
12223
  msgid "Speaker Singular Label"
12224
  msgstr "Štítek jednotného řečníka"
12225
 
12226
- #: app/libraries/main.php:7573 app/libraries/main.php:7634
12227
  msgid "Sunday abbreviation"
12228
  msgstr "Neděle zkratka"
12229
 
12230
- #: app/libraries/main.php:7574 app/libraries/main.php:7635
12231
  msgid "Monday abbreviation"
12232
  msgstr "Pondělí zkratka"
12233
 
12234
- #: app/libraries/main.php:7575 app/libraries/main.php:7636
12235
  msgid "Tuesday abbreviation"
12236
  msgstr "Úterý zkratka"
12237
 
12238
- #: app/libraries/main.php:7576 app/libraries/main.php:7637
12239
  msgid "Wednesday abbreviation"
12240
  msgstr "Středa zkratka"
12241
 
12242
- #: app/libraries/main.php:7577 app/libraries/main.php:7638
12243
  msgid "Thursday abbreviation"
12244
  msgstr "Čtvrtek zkratka"
12245
 
12246
- #: app/libraries/main.php:7578 app/libraries/main.php:7639
12247
  msgid "Friday abbreviation"
12248
  msgstr "Pátek zkratka"
12249
 
12250
- #: app/libraries/main.php:7579 app/libraries/main.php:7640
12251
  msgid "Saturday abbreviation"
12252
  msgstr "Sobota zkratka"
12253
 
12254
- #: app/libraries/main.php:7585
12255
  #, fuzzy
12256
  #| msgid "Ticket (Singular)"
12257
  msgid "Booking (Singular)"
12258
  msgstr "Vstupenka (Jednotné)"
12259
 
12260
- #: app/libraries/main.php:7586
12261
  #, fuzzy
12262
  #| msgid "Tickets (Plural)"
12263
  msgid "Bookings (Plural)"
12264
  msgstr "Vstupenky (Množné)"
12265
 
12266
- #: app/libraries/main.php:7587
12267
  msgid "Booking Success Message"
12268
  msgstr "Zpráva o úspěchu rezervace"
12269
 
12270
- #: app/libraries/main.php:7587
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:7588
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:7588
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:7589
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:7589
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:7590
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:7591
12315
  #, fuzzy
12316
  #| msgid "Booking Options"
12317
  msgid "Booking Button"
12318
  msgstr "Možnosti rezervace"
12319
 
12320
- #: app/libraries/main.php:7591
12321
  #, fuzzy
12322
  #| msgid "Booking Form"
12323
  msgid "Book Now"
12324
  msgstr "Rezervační formulář"
12325
 
12326
- #: app/libraries/main.php:7592
12327
  msgid "Ticket (Singular)"
12328
  msgstr "Vstupenka (Jednotné)"
12329
 
12330
- #: app/libraries/main.php:7593
12331
  msgid "Tickets (Plural)"
12332
  msgstr "Vstupenky (Množné)"
12333
 
12334
- #: app/libraries/main.php:7597 app/libraries/main.php:7644
12335
  msgid "Others"
12336
  msgstr "Další"
12337
 
12338
- #: app/libraries/main.php:7599 app/libraries/main.php:7646
12339
  #: app/widgets/single.php:150
12340
  msgid "Register Button"
12341
  msgstr "Registrační tlačítko"
12342
 
12343
- #: app/libraries/main.php:7600 app/libraries/main.php:7647
12344
  msgid "View Detail Button"
12345
  msgstr "Tlačítko Zobrazit detail"
12346
 
12347
- #: app/libraries/main.php:7600 app/libraries/main.php:7647
12348
- #: app/skins/carousel/render.php:105 app/skins/carousel/render.php:145
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:7601 app/libraries/main.php:7648
12360
  msgid "Event Detail Button"
12361
  msgstr "Tlačítko Detail události"
12362
 
12363
- #: app/libraries/main.php:7601 app/libraries/main.php:7648
12364
  msgid "Event Detail"
12365
  msgstr "Zobrazit událost"
12366
 
12367
- #: app/libraries/main.php:7763
12368
  msgid "EventON"
12369
  msgstr "EventON"
12370
 
12371
- #: app/libraries/main.php:7764
12372
  msgid "The Events Calendar"
12373
  msgstr "The Events Calendar"
12374
 
12375
- #: app/libraries/main.php:7765
12376
  msgid "Events Schedule WP Plugin"
12377
  msgstr "Events Schedule WP Plugin"
12378
 
12379
- #: app/libraries/main.php:7766
12380
  msgid "Calendarize It"
12381
  msgstr "Calendarize It"
12382
 
12383
- #: app/libraries/main.php:7767
12384
  #, fuzzy
12385
  #| msgid "Event Speakers"
12386
  msgid "Event Espresso"
12387
  msgstr "Řečník události"
12388
 
12389
- #: app/libraries/main.php:7768
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:7769
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:7770
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:8001
12408
  #, fuzzy
12409
  #| msgid "Sunday"
12410
  msgid "Sun"
12411
  msgstr "Neděle"
12412
 
12413
- #: app/libraries/main.php:8001
12414
  #, fuzzy
12415
  #| msgid "Monday"
12416
  msgid "Mon"
12417
  msgstr "Pondělí"
12418
 
12419
- #: app/libraries/main.php:8001
12420
  #, fuzzy
12421
  #| msgid "Tel"
12422
  msgid "Tue"
12423
  msgstr "Tel"
12424
 
12425
- #: app/libraries/main.php:8001
12426
  msgid "Wed"
12427
  msgstr ""
12428
 
12429
- #: app/libraries/main.php:8001
12430
  msgid "Thu"
12431
  msgstr ""
12432
 
12433
- #: app/libraries/main.php:8001
12434
  #, fuzzy
12435
  #| msgid "Friday"
12436
  msgid "Fri"
12437
  msgstr "Pátek"
12438
 
12439
- #: app/libraries/main.php:8001
12440
  #, fuzzy
12441
  #| msgid "Start"
12442
  msgid "Sat"
12443
  msgstr "Začátek"
12444
 
12445
- #: app/libraries/main.php:8210 app/libraries/render.php:82
12446
  #: app/libraries/render.php:467
12447
  msgid "Skin controller does not exist."
12448
  msgstr "Ovladač vzhledu neexistuje."
12449
 
12450
- #: app/libraries/main.php:8458
12451
  msgid "Sold Out"
12452
  msgstr "Vyprodáno"
12453
 
12454
- #: app/libraries/main.php:8495
12455
  #, fuzzy
12456
  #| msgid "Ticket"
12457
  msgid "Last Few Tickets"
12458
  msgstr "Vstupenka"
12459
 
12460
- #: app/libraries/main.php:8782
12461
  #, fuzzy
12462
  #| msgid "Upcoming Events"
12463
  msgid "Ongoing"
12464
  msgstr "Nadcházející události"
12465
 
12466
- #: app/libraries/main.php:8784
12467
  #, fuzzy
12468
  #| msgid "Expired Events"
12469
  msgid "Expired"
12470
  msgstr "Události vypršely"
12471
 
12472
- #: app/libraries/main.php:8850 app/libraries/main.php:8870
12473
  #, fuzzy
12474
  #| msgid "minutes"
12475
  msgid "Minutes"
12476
  msgstr "minuty"
12477
 
12478
- #: app/libraries/main.php:8875
12479
  msgid "AM / PM"
12480
  msgstr ""
12481
 
12482
- #: app/libraries/main.php:8876
12483
  msgid "AM"
12484
  msgstr "dop."
12485
 
12486
- #: app/libraries/main.php:8877
12487
  msgid "PM"
12488
  msgstr "odp."
12489
 
12490
- #: app/libraries/main.php:8885
12491
  msgid "Ongoing..."
12492
  msgstr ""
12493
 
12494
- #: app/libraries/main.php:8886 app/skins/single.php:230
12495
  #, fuzzy
12496
  #| msgid "Expired Events"
12497
  msgid "Expired!"
12498
  msgstr "Události vypršely"
12499
 
12500
- #: app/libraries/main.php:9453
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:77
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:110
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:382
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:182
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:340
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:351
12704
  msgid "Username"
12705
  msgstr ""
12706
 
12707
- #: app/modules/booking/steps/form.php:385
12708
- #: app/modules/booking/steps/tickets.php:214
12709
  #, fuzzy
12710
  #| msgid "Location"
12711
  msgid "Add to Cart"
12712
  msgstr "Umístění"
12713
 
12714
- #: app/modules/booking/steps/form.php:385
12715
  msgid "Submit"
12716
  msgstr "Potvrdit"
12717
 
12718
- #: app/modules/booking/steps/tickets.php:148
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:167
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:179 app/skins/single/default.php:112
12737
  #, php-format
12738
  msgid "The %s ticket sales has ended!"
12739
  msgstr ""
12740
 
12741
- #: app/modules/booking/steps/tickets.php:180
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:181
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:169 app/skins/countdown/tpl.php:154
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:183
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-03 10:13+0330\n"
6
- "PO-Revision-Date: 2022-03-03 10:15+0330\n"
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:54
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:7909 app/libraries/main.php:7936
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:3293 app/libraries/main.php:7908
161
- #: app/libraries/main.php:7928
162
  msgid "Confirmed"
163
  msgstr "Bestätigt"
164
 
165
- #: app/core/src/Books/Book.php:117 app/features/mec/settings.php:752
166
- #: app/libraries/main.php:7910 app/libraries/main.php:7932
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:7957
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:1609
182
- #: app/features/mec/settings.php:1631 app/features/mec/single.php:602
183
- #: app/features/mec/single.php:624 app/libraries/main.php:7956
184
  msgid "Verified"
185
  msgstr "Verifiziert"
186
 
187
- #: app/core/src/Books/Book.php:197 app/libraries/main.php:7958
188
  msgid "Waiting"
189
  msgstr "in Bearbeitung"
190
 
191
- #: app/core/src/Books/BookingForm.php:39 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,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:4445
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:295 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:2150 app/libraries/main.php:2219
224
- #: app/libraries/main.php:4129 app/libraries/notifications.php:2091
225
- #: app/modules/booking/steps/form.php:69 app/modules/booking/steps/form.php:218
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:4037
248
- #: app/libraries/main.php:4068 app/libraries/main.php:4098
249
- #: app/libraries/main.php:4128 app/libraries/main.php:4159
250
- #: app/libraries/main.php:4190 app/libraries/main.php:4220
251
- #: app/libraries/main.php:4251 app/libraries/main.php:4282
252
- #: app/libraries/main.php:4320 app/libraries/main.php:4344
253
- #: app/libraries/main.php:4392 app/libraries/main.php:4440
254
- #: app/libraries/main.php:4498 app/libraries/main.php:4548
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:4038
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:4045
273
- #: app/libraries/main.php:4076 app/libraries/main.php:4106
274
- #: app/libraries/main.php:4136 app/libraries/main.php:4167
275
- #: app/libraries/main.php:4198 app/libraries/main.php:4228
276
- #: app/libraries/main.php:4259 app/libraries/main.php:4291
277
- #: app/libraries/main.php:4352 app/libraries/main.php:4400
278
- #: app/libraries/main.php:4448 app/libraries/main.php:4506
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:4048
298
- #: app/libraries/main.php:4079 app/libraries/main.php:4109
299
- #: app/libraries/main.php:4139 app/libraries/main.php:4170
300
- #: app/libraries/main.php:4201 app/libraries/main.php:4231
301
- #: app/libraries/main.php:4262 app/libraries/main.php:4300
302
- #: app/libraries/main.php:4322 app/libraries/main.php:4355
303
- #: app/libraries/main.php:4403 app/libraries/main.php:4458
304
- #: app/libraries/main.php:4509 app/libraries/main.php:4549
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