dhtmlx-scheduler 7.0.1 → 7.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -204,7 +204,7 @@
204
204
  element.style.height = value;
205
205
  }
206
206
  if (config.click) {
207
- element.addEventListener("click", config.click);
207
+ scheduler2.event(element, "click", config.click);
208
208
  }
209
209
  if (config.html) {
210
210
  element.innerHTML = config.html;
@@ -632,9 +632,7 @@
632
632
  };
633
633
  scheduler2.set_sizes = function() {
634
634
  var w = this._x = this._obj.clientWidth - this.xy.margin_left;
635
- var h = this._y = this._obj.clientHeight - this.xy.margin_top;
636
635
  var scale_x = this._table_view ? 0 : this.xy.scale_width + this.xy.scroll_width;
637
- var scale_s = this._table_view ? -1 : this.xy.scale_width;
638
636
  var materialScalePlaceholder = this.$container.querySelector(".dhx_cal_scale_placeholder");
639
637
  if (scheduler2._is_material_skin()) {
640
638
  if (!materialScalePlaceholder) {
@@ -657,32 +655,22 @@
657
655
  }
658
656
  }
659
657
  this._data_width = w - scale_x;
660
- if (!scheduler2._is_new_skin()) {
661
- this.set_xy(this._els["dhx_cal_navline"][0], w, this.xy.nav_height, 0, 0);
662
- this.set_xy(this._els["dhx_cal_header"][0], w - scale_x + 1, this.xy.scale_height, scale_s, this.xy.nav_height + 1);
663
- var actual_height = this._els["dhx_cal_navline"][0].offsetHeight;
664
- if (actual_height > 0)
665
- this.xy.nav_height = actual_height;
666
- var data_y = this.xy.scale_height + this.xy.nav_height;
667
- this.set_xy(this._els["dhx_cal_data"][0], w, h - (data_y + 2), 0, data_y + 2);
658
+ this._els["dhx_cal_navline"][0].style.width = w + "px";
659
+ const header = this._els["dhx_cal_header"][0];
660
+ this.set_xy(header, this._data_width, this.xy.scale_height);
661
+ header.style.left = ``;
662
+ header.style.right = ``;
663
+ if (!this._table_view) {
664
+ if (this.config.rtl) {
665
+ header.style.right = `${this.xy.scale_width}px`;
666
+ } else {
667
+ header.style.left = `${this.xy.scale_width}px`;
668
+ }
668
669
  } else {
669
- this._els["dhx_cal_navline"][0].style.width = w + "px";
670
- const header = this._els["dhx_cal_header"][0];
671
- this.set_xy(header, this._data_width, this.xy.scale_height);
672
- header.style.left = ``;
673
- header.style.right = ``;
674
- if (!this._table_view) {
675
- if (this.config.rtl) {
676
- header.style.right = `${this.xy.scale_width}px`;
677
- } else {
678
- header.style.left = `${this.xy.scale_width}px`;
679
- }
670
+ if (!this.config.rtl) {
671
+ header.style.left = `-1px`;
680
672
  } else {
681
- if (!this.config.rtl) {
682
- header.style.left = `-1px`;
683
- } else {
684
- header.style.right = `-1px`;
685
- }
673
+ header.style.right = `-1px`;
686
674
  }
687
675
  }
688
676
  };
@@ -1549,11 +1537,7 @@
1549
1537
  head.className += " dhx_scale_bar_border";
1550
1538
  left = left + 1;
1551
1539
  }
1552
- if (scheduler2._is_new_skin()) {
1553
- this.set_xy(head, width, this.xy.scale_height - 1, left, offset_top);
1554
- } else {
1555
- this.set_xy(head, width - 1, this.xy.scale_height - 2, left, offset_top);
1556
- }
1540
+ this.set_xy(head, width, this.xy.scale_height - 1, left, offset_top);
1557
1541
  var columnHeaderText = this.templates[this._mode + "_scale_date"](date, this._mode);
1558
1542
  head.innerHTML = columnHeaderText;
1559
1543
  this._waiAria.dayHeaderAttr(head, columnHeaderText);
@@ -1626,37 +1610,35 @@
1626
1610
  if (this._ignores_detected && this._ignores[i]) {
1627
1611
  cls += " dhx_scale_ignore";
1628
1612
  }
1629
- if (this._is_new_skin()) {
1630
- for (let i2 = this.config.first_hour * 1; i2 < this.config.last_hour; i2++) {
1631
- const firstHalf = document.createElement("div");
1632
- firstHalf.className = "dhx_scale_time_slot dhx_scale_time_slot_hour_start";
1633
- firstHalf.style.height = this.config.hour_size_px / 2 + "px";
1634
- let slotDate = new Date(d.getFullYear(), d.getMonth(), d.getDate(), i2, 0);
1635
- firstHalf.setAttribute("data-slot-date", this.templates.format_date(slotDate));
1636
- let htmlContent = this.templates.time_slot_text(slotDate);
1637
- if (htmlContent) {
1638
- firstHalf.innerHTML = htmlContent;
1639
- }
1640
- let cssClass = this.templates.time_slot_class(slotDate);
1641
- if (cssClass) {
1642
- firstHalf.classList.add(cssClass);
1643
- }
1644
- scales.appendChild(firstHalf);
1645
- const secondHalf = document.createElement("div");
1646
- secondHalf.className = "dhx_scale_time_slot";
1647
- slotDate = new Date(d.getFullYear(), d.getMonth(), d.getDate(), i2, 30);
1648
- secondHalf.setAttribute("data-slot-date", this.templates.format_date(slotDate));
1649
- secondHalf.style.height = this.config.hour_size_px / 2 + "px";
1650
- htmlContent = this.templates.time_slot_text(slotDate);
1651
- if (htmlContent) {
1652
- secondHalf.innerHTML = htmlContent;
1653
- }
1654
- cssClass = this.templates.time_slot_class(slotDate);
1655
- if (cssClass) {
1656
- secondHalf.classList.add(cssClass);
1657
- }
1658
- scales.appendChild(secondHalf);
1659
- }
1613
+ for (let i2 = this.config.first_hour * 1; i2 < this.config.last_hour; i2++) {
1614
+ const firstHalf = document.createElement("div");
1615
+ firstHalf.className = "dhx_scale_time_slot dhx_scale_time_slot_hour_start";
1616
+ firstHalf.style.height = this.config.hour_size_px / 2 + "px";
1617
+ let slotDate = new Date(d.getFullYear(), d.getMonth(), d.getDate(), i2, 0);
1618
+ firstHalf.setAttribute("data-slot-date", this.templates.format_date(slotDate));
1619
+ let htmlContent = this.templates.time_slot_text(slotDate);
1620
+ if (htmlContent) {
1621
+ firstHalf.innerHTML = htmlContent;
1622
+ }
1623
+ let cssClass = this.templates.time_slot_class(slotDate);
1624
+ if (cssClass) {
1625
+ firstHalf.classList.add(cssClass);
1626
+ }
1627
+ scales.appendChild(firstHalf);
1628
+ const secondHalf = document.createElement("div");
1629
+ secondHalf.className = "dhx_scale_time_slot";
1630
+ slotDate = new Date(d.getFullYear(), d.getMonth(), d.getDate(), i2, 30);
1631
+ secondHalf.setAttribute("data-slot-date", this.templates.format_date(slotDate));
1632
+ secondHalf.style.height = this.config.hour_size_px / 2 + "px";
1633
+ htmlContent = this.templates.time_slot_text(slotDate);
1634
+ if (htmlContent) {
1635
+ secondHalf.innerHTML = htmlContent;
1636
+ }
1637
+ cssClass = this.templates.time_slot_class(slotDate);
1638
+ if (cssClass) {
1639
+ secondHalf.classList.add(cssClass);
1640
+ }
1641
+ scales.appendChild(secondHalf);
1660
1642
  }
1661
1643
  scales.className = cls + " " + this.templates.week_date_class(d, today);
1662
1644
  this._waiAria.dayColumnAttr(scales, d);
@@ -1709,11 +1691,6 @@
1709
1691
  this._els[dhx_multi_day][0].parentNode.removeChild(this._els[dhx_multi_day][0]);
1710
1692
  this._els[dhx_multi_day] = null;
1711
1693
  }
1712
- var navline = this._els["dhx_cal_navline"][0];
1713
- var top = navline.offsetHeight + this._els["dhx_cal_header"][0].offsetHeight + 1;
1714
- if (this._is_new_skin()) {
1715
- top = void 0;
1716
- }
1717
1694
  var c1 = document.createElement("div");
1718
1695
  c1.className = dhx_multi_day;
1719
1696
  c1.style.visibility = "hidden";
@@ -1721,13 +1698,13 @@
1721
1698
  var totalWidth = this._colsS[this._colsS.col_length];
1722
1699
  var offset = c.rtl ? this.xy.scale_width : this.xy.scroll_width;
1723
1700
  var hiddenWidth = Math.max(totalWidth + offset, 0);
1724
- this.set_xy(c1, hiddenWidth, 0, 0, top);
1701
+ this.set_xy(c1, hiddenWidth, 0, 0);
1725
1702
  data_area2.parentNode.insertBefore(c1, data_area2);
1726
1703
  var c2 = c1.cloneNode(true);
1727
1704
  c2.className = dhx_multi_day + "_icon";
1728
1705
  c2.style.visibility = "hidden";
1729
1706
  c2.style.display = "none";
1730
- this.set_xy(c2, this.xy.scale_width + 1, 0, 0, top);
1707
+ this.set_xy(c2, this.xy.scale_width + 1, 0, 0);
1731
1708
  c1.appendChild(c2);
1732
1709
  this._els[dhx_multi_day] = [c1, c2];
1733
1710
  scheduler2.event(this._els[dhx_multi_day][0], "click", this._click.dhx_cal_data);
@@ -3721,10 +3698,6 @@
3721
3698
  used_multi_day_height = Math.min(full_multi_day_height, this.config.multi_day_height_limit);
3722
3699
  used_multi_day_height_css = used_multi_day_height + "px";
3723
3700
  }
3724
- if (!scheduler2._is_new_skin()) {
3725
- data.style.top = this._els["dhx_cal_navline"][0].offsetHeight + this._els["dhx_cal_header"][0].offsetHeight + used_multi_day_height + "px";
3726
- data.style.height = this._obj.offsetHeight - parseInt(data.style.top, 10) - (this.xy.margin_top || 0) + "px";
3727
- }
3728
3701
  var multi_day_section = this._els["dhx_multi_day"][0];
3729
3702
  multi_day_section.style.height = used_multi_day_height_css;
3730
3703
  multi_day_section.style.visibility = h[0] == -1 ? "hidden" : "visible";
@@ -3740,9 +3713,6 @@
3740
3713
  }
3741
3714
  h[0] = 0;
3742
3715
  if (used_multi_day_height != full_multi_day_height) {
3743
- if (!scheduler2._is_new_skin()) {
3744
- data.style.top = parseInt(data.style.top) + 2 + "px";
3745
- }
3746
3716
  multi_day_section.style.overflowY = "auto";
3747
3717
  multi_day_icon.style.position = "fixed";
3748
3718
  multi_day_icon.style.top = "";
@@ -4298,7 +4268,7 @@
4298
4268
  cs2 += " " + cse;
4299
4269
  }
4300
4270
  var bg_color = ev.color ? "--dhx-scheduler-event-background:" + ev.color + ";" : "";
4301
- var color = ev.textColor ? "--dhx-scheduler-event-text:" + ev.textColor + ";" : "";
4271
+ var color = ev.textColor ? "--dhx-scheduler-event-color:" + ev.textColor + ";" : "";
4302
4272
  var style_text = ["position:absolute", "top:" + y + "px", "left:" + x + "px", "width:" + (x2 - x - (timed ? 1 : 0)) + "px", "height:" + (this.xy.bar_height - 2) + "px", color, bg_color, ev._text_style || ""].join(";");
4303
4273
  var html = "<div event_id='" + ev.id + "' " + this.config.event_attribute + "='" + ev.id + "' class='" + cs2 + "' style='" + style_text + "'" + this._waiAria.eventBarAttrString(ev) + ">";
4304
4274
  if (resizable) {
@@ -5468,9 +5438,7 @@
5468
5438
  var rtl = scheduler2.config.rtl;
5469
5439
  for (var i = 0; i < buttons.length; i++) {
5470
5440
  ariaAttr = this._waiAria.lightboxButtonAttrString(buttons[i]);
5471
- if (scheduler2._is_new_skin()) {
5472
- html += "<div class='dhx_cal_lcontrols_push_right'></div>";
5473
- }
5441
+ html += "<div class='dhx_cal_lcontrols_push_right'></div>";
5474
5442
  html += "<div " + ariaAttr + " data-action='" + buttons[i] + "' class='dhx_btn_set dhx_" + (rtl ? "left" : "right") + "_btn_set " + buttons[i] + "_set'><div class='dhx_btn_inner " + buttons[i] + "'></div><div>" + scheduler2.locale.labels[buttons[i]] + "</div></div>";
5475
5443
  }
5476
5444
  html += "</div>";
@@ -5622,7 +5590,7 @@
5622
5590
  var source, tracker, timer, drag_mode, scroll_mode, action_mode;
5623
5591
  var dblclicktime = 0;
5624
5592
  function attachTouchEvent(element, name, callback) {
5625
- element.addEventListener(name, function(e) {
5593
+ scheduler2.event(element, name, function(e) {
5626
5594
  if (scheduler2._is_lightbox_open()) {
5627
5595
  return true;
5628
5596
  } else {
@@ -5913,6 +5881,7 @@
5913
5881
  }
5914
5882
  }
5915
5883
  scheduler2._build_skin_info = function() {
5884
+ monitorThemeChange();
5916
5885
  const styles = getComputedStyle(this.$container);
5917
5886
  const themeVar = styles.getPropertyValue("--dhx-scheduler-theme");
5918
5887
  let isCssVarTheme = !!themeVar;
@@ -5940,9 +5909,6 @@
5940
5909
  }
5941
5910
  }
5942
5911
  };
5943
- scheduler2._is_new_skin = function() {
5944
- return scheduler2._theme_info.cssVarTheme;
5945
- };
5946
5912
  var calculatedMaterial;
5947
5913
  function checkIfMaterialSkin() {
5948
5914
  if (calculatedMaterial === void 0) {
@@ -6006,8 +5972,8 @@
6006
5972
  scheduler2.setCurrentView();
6007
5973
  }
6008
5974
  }
6009
- window.addEventListener("DOMContentLoaded", refreshAfterLoad);
6010
- window.addEventListener("load", refreshAfterLoad);
5975
+ scheduler2.event(window, "DOMContentLoaded", refreshAfterLoad);
5976
+ scheduler2.event(window, "load", refreshAfterLoad);
6011
5977
  scheduler2._border_box_events = function() {
6012
5978
  return checkIfBorderBoxStyling();
6013
5979
  };
@@ -6030,6 +5996,22 @@
6030
5996
  var html = "<span class='dhx_scale_h'>" + date.getHours() + "</span><span class='dhx_scale_m'>&nbsp;" + min + "</span>";
6031
5997
  return html;
6032
5998
  }
5999
+ let monitorIntervalId = null;
6000
+ function monitorThemeChange() {
6001
+ const container = scheduler2.$container;
6002
+ clearInterval(monitorIntervalId);
6003
+ if (container) {
6004
+ monitorIntervalId = setInterval(() => {
6005
+ const csstheme = getComputedStyle(container).getPropertyValue("--dhx-scheduler-theme");
6006
+ if (csstheme && csstheme !== scheduler2.skin) {
6007
+ scheduler2.setSkin(csstheme);
6008
+ }
6009
+ }, 100);
6010
+ }
6011
+ }
6012
+ scheduler2.attachEvent("onDestroy", function() {
6013
+ clearInterval(monitorIntervalId);
6014
+ });
6033
6015
  scheduler2._skin_init = function() {
6034
6016
  this._build_skin_info();
6035
6017
  if (!this.skin) {
@@ -6041,43 +6023,6 @@
6041
6023
  } else if (scheduler2.templates.hour_scale === flatSkinHourScale) {
6042
6024
  scheduler2.templates.hour_scale = scheduler2.date.date_to_str(scheduler2.config.hour_date);
6043
6025
  }
6044
- if (!this._theme_info.cssVarTheme) {
6045
- var set = 0;
6046
- if (scheduler2.skin && (scheduler2.skin === "classic" || scheduler2.skin === "glossy"))
6047
- set = 1;
6048
- if (scheduler2._is_material_skin()) {
6049
- var defaultButtonsLeft = scheduler2.config.buttons_left.$initial;
6050
- var defaultButtonsRight = scheduler2.config.buttons_right.$initial;
6051
- if (defaultButtonsLeft && scheduler2.config.buttons_left.slice().join() == defaultButtonsLeft && defaultButtonsRight && scheduler2.config.buttons_right.slice().join() == defaultButtonsRight) {
6052
- var tmp = scheduler2.config.buttons_left.slice();
6053
- scheduler2.config.buttons_left = scheduler2.config.buttons_right.slice();
6054
- scheduler2.config.buttons_right = tmp;
6055
- }
6056
- scheduler2.xy.event_header_height = 18;
6057
- scheduler2.xy.week_agenda_scale_height = 35;
6058
- scheduler2.xy.map_icon_width = 38;
6059
- scheduler2._lightbox_controls.defaults.textarea.height = 64;
6060
- scheduler2._lightbox_controls.defaults.time.height = "auto";
6061
- }
6062
- this._configure(scheduler2.config, scheduler2._skin_settings, set);
6063
- this._configure(scheduler2.xy, scheduler2._skin_xy, set);
6064
- if (scheduler2.skin === "flat") {
6065
- scheduler2.xy.scale_height = 35;
6066
- scheduler2.templates.hour_scale = function(date) {
6067
- var min = date.getMinutes();
6068
- min = min < 10 ? "0" + min : min;
6069
- var html = "<span class='dhx_scale_h'>" + date.getHours() + "</span><span class='dhx_scale_m'>&nbsp;" + min + "</span>";
6070
- return html;
6071
- };
6072
- }
6073
- if (set)
6074
- return;
6075
- }
6076
- if (!this._theme_info.cssVarTheme) {
6077
- var minic = scheduler2.config.minicalendar;
6078
- if (minic)
6079
- minic.padding = 14;
6080
- }
6081
6026
  scheduler2.attachEvent("onTemplatesReady", function() {
6082
6027
  var date_to_str = scheduler2.date.date_to_str("%d");
6083
6028
  if (!scheduler2.templates._old_month_day) {
@@ -6892,9 +6837,12 @@
6892
6837
  this.fullSync();
6893
6838
  });
6894
6839
  var self2 = this;
6895
- global$1.setInterval(function() {
6840
+ let intervalId = global$1.setInterval(function() {
6896
6841
  self2.loadUpdate();
6897
6842
  }, interval);
6843
+ this.attachEvent("onDestroy", function() {
6844
+ clearInterval(intervalId);
6845
+ });
6898
6846
  }, afterAutoUpdate: function(sid, action, tid, xml_node) {
6899
6847
  if (action == "collision") {
6900
6848
  this._need_update = true;
@@ -7356,7 +7304,7 @@
7356
7304
  const cs = { date: { month_full: ["Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"], month_short: ["Led", "Ún", "Bře", "Dub", "Kvě", "Čer", "Čec", "Srp", "Září", "Říj", "List", "Pro"], day_full: ["Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"], day_short: ["Ne", "Po", "Út", "St", "Čt", "Pá", "So"] }, labels: { dhx_cal_today_button: "Dnes", day_tab: "Den", week_tab: "Týden", month_tab: "Měsíc", new_event: "Nová událost", icon_save: "Uložit", icon_cancel: "Zpět", icon_details: "Detail", icon_edit: "Edituj", icon_delete: "Smazat", confirm_closing: "", confirm_deleting: "Událost bude trvale smazána, opravdu?", section_description: "Poznámky", section_time: "Doba platnosti", confirm_recurring: "Přejete si upravit celou řadu opakovaných událostí?", section_recurring: "Opakování události", button_recurring: "Vypnuto", button_recurring_open: "Zapnuto", button_edit_series: "Edit series", button_edit_occurrence: "Upravit instance", agenda_tab: "Program", date: "Datum", description: "Poznámka", year_tab: "Rok", full_day: "Full day", week_agenda_tab: "Program", grid_tab: "Mřížka", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Denně", repeat_radio_week: "Týdně", repeat_radio_month: "Měsíčně", repeat_radio_year: "Ročně", repeat_radio_day_type: "každý", repeat_text_day_count: "Den", repeat_radio_day_type2: "pracovní dny", repeat_week: "Opakuje každých", repeat_text_week_count: "Týdnů na:", repeat_radio_month_type: "u každého", repeat_radio_month_start: "na", repeat_text_month_day: "Den každého", repeat_text_month_count: "Měsíc", repeat_text_month_count2_before: "každý", repeat_text_month_count2_after: "Měsíc", repeat_year_label: "na", select_year_day2: "v", repeat_text_year_day: "Den v", select_year_month: "", repeat_radio_end: "bez data ukončení", repeat_text_occurences_count: "Události", repeat_radio_end2: "po", repeat_radio_end3: "Konec", month_for_recurring: ["Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"], day_for_recurring: ["Neděle ", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"] } };
7357
7305
  const da = { date: { month_full: ["Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"], month_short: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], day_full: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"], day_short: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"] }, labels: { dhx_cal_today_button: "Idag", day_tab: "Dag", week_tab: "Uge", month_tab: "Måned", new_event: "Ny begivenhed", icon_save: "Gem", icon_cancel: "Fortryd", icon_details: "Detaljer", icon_edit: "Tilret", icon_delete: "Slet", confirm_closing: "Dine rettelser vil gå tabt.. Er dy sikker?", confirm_deleting: "Bigivenheden vil blive slettet permanent. Er du sikker?", section_description: "Beskrivelse", section_time: "Tidsperiode", confirm_recurring: "Vil du tilrette hele serien af gentagne begivenheder?", section_recurring: "Gentag begivenhed", button_recurring: "Frakoblet", button_recurring_open: "Tilkoblet", button_edit_series: "Rediger serien", button_edit_occurrence: "Rediger en kopi", agenda_tab: "Dagsorden", date: "Dato", description: "Beskrivelse", year_tab: "År", week_agenda_tab: "Dagsorden", grid_tab: "Grid", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Daglig", repeat_radio_week: "Ugenlig", repeat_radio_month: "Månedlig", repeat_radio_year: "Årlig", repeat_radio_day_type: "Hver", repeat_text_day_count: "dag", repeat_radio_day_type2: "På hver arbejdsdag", repeat_week: " Gentager sig hver", repeat_text_week_count: "uge på følgende dage:", repeat_radio_month_type: "Hver den", repeat_radio_month_start: "Den", repeat_text_month_day: " i hver", repeat_text_month_count: "måned", repeat_text_month_count2_before: "hver", repeat_text_month_count2_after: "måned", repeat_year_label: "Den", select_year_day2: "i", repeat_text_year_day: "dag i", select_year_month: "", repeat_radio_end: "Ingen slutdato", repeat_text_occurences_count: "gentagelse", repeat_radio_end2: "Efter", repeat_radio_end3: "Slut", month_for_recurring: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], day_for_recurring: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"] } };
7358
7306
  const de = { date: { month_full: [" Januar", " Februar", " März ", " April", " Mai", " Juni", " Juli", " August", " September ", " Oktober", " November ", " Dezember"], month_short: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"], day_full: ["Sonntag", "Montag", "Dienstag", " Mittwoch", " Donnerstag", "Freitag", "Samstag"], day_short: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"] }, labels: { dhx_cal_today_button: "Heute", day_tab: "Tag", week_tab: "Woche", month_tab: "Monat", new_event: "neuer Eintrag", icon_save: "Speichern", icon_cancel: "Abbrechen", icon_details: "Details", icon_edit: "Ändern", icon_delete: "Löschen", confirm_closing: "", confirm_deleting: "Der Eintrag wird gelöscht", section_description: "Beschreibung", section_time: "Zeitspanne", full_day: "Ganzer Tag", confirm_recurring: "Wollen Sie alle Einträge bearbeiten oder nur diesen einzelnen Eintrag?", section_recurring: "Wiederholung", button_recurring: "Aus", button_recurring_open: "An", button_edit_series: "Bearbeiten Sie die Serie", button_edit_occurrence: "Bearbeiten Sie eine Kopie", agenda_tab: "Agenda", date: "Datum", description: "Beschreibung", year_tab: "Jahre", week_agenda_tab: "Agenda", grid_tab: "Grid", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Täglich", repeat_radio_week: "Wöchentlich", repeat_radio_month: "Monatlich", repeat_radio_year: "Jährlich", repeat_radio_day_type: "jeden", repeat_text_day_count: "Tag", repeat_radio_day_type2: "an jedem Arbeitstag", repeat_week: " Wiederholt sich jede", repeat_text_week_count: "Woche am:", repeat_radio_month_type: "an jedem", repeat_radio_month_start: "am", repeat_text_month_day: "Tag eines jeden", repeat_text_month_count: "Monats", repeat_text_month_count2_before: "jeden", repeat_text_month_count2_after: "Monats", repeat_year_label: "am", select_year_day2: "im", repeat_text_year_day: "Tag im", select_year_month: "", repeat_radio_end: "kein Enddatum", repeat_text_occurences_count: "Ereignissen", repeat_radio_end3: "Schluß", repeat_radio_end2: "nach", month_for_recurring: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], day_for_recurring: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"] } };
7359
- const el = { date: { month_full: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάϊος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"], month_short: ["ΙΑΝ", "ΦΕΒ", "ΜΑΡ", "ΑΠΡ", "ΜΑΙ", "ΙΟΥΝ", "ΙΟΥΛ", "ΑΥΓ", "ΣΕΠ", "ΟΚΤ", "ΝΟΕ", "ΔΕΚ"], day_full: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Κυριακή"], day_short: ["ΚΥ", "ΔΕ", "ΤΡ", "ΤΕ", "ΠΕ", "ΠΑ", "ΣΑ"] }, labels: { dhx_cal_today_button: "Σήμερα", day_tab: "Ημέρα", week_tab: "Εβδομάδα", month_tab: "Μήνας", new_event: "Νέο έργο", icon_save: "Αποθήκευση", icon_cancel: "Άκυρο", icon_details: "Λεπτομέρειες", icon_edit: "Επεξεργασία", icon_delete: "Διαγραφή", confirm_closing: "", confirm_deleting: "Το έργο θα διαγραφεί οριστικά. Θέλετε να συνεχίσετε;", section_description: "Περιγραφή", section_time: "Χρονική περίοδος", full_day: "Πλήρης Ημέρα", confirm_recurring: "Θέλετε να επεξεργασθείτε ολόκληρη την ομάδα των επαναλαμβανόμενων έργων;", section_recurring: "Επαναλαμβανόμενο έργο", button_recurring: "Ανενεργό", button_recurring_open: "Ενεργό", button_edit_series: "Επεξεργαστείτε τη σειρά", button_edit_occurrence: "Επεξεργασία ένα αντίγραφο", agenda_tab: "Ημερήσια Διάταξη", date: "Ημερομηνία", description: "Περιγραφή", year_tab: "Έτος", week_agenda_tab: "Ημερήσια Διάταξη", grid_tab: "Πλέγμα", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Ημερησίως", repeat_radio_week: "Εβδομαδιαίως", repeat_radio_month: "Μηνιαίως", repeat_radio_year: "Ετησίως", repeat_radio_day_type: "Κάθε", repeat_text_day_count: "ημέρα", repeat_radio_day_type2: "Κάθε εργάσιμη", repeat_week: " Επανάληψη κάθε", repeat_text_week_count: "εβδομάδα τις επόμενες ημέρες:", repeat_radio_month_type: "Επανάληψη", repeat_radio_month_start: "Την", repeat_text_month_day: "ημέρα κάθε", repeat_text_month_count: "μήνα", repeat_text_month_count2_before: "κάθε", repeat_text_month_count2_after: "μήνα", repeat_year_label: "Την", select_year_day2: "του", repeat_text_year_day: "ημέρα", select_year_month: "μήνα", repeat_radio_end: "Χωρίς ημερομηνία λήξεως", repeat_text_occurences_count: "επαναλήψεις", repeat_radio_end3: "Λήγει την", repeat_radio_end2: "Μετά από", month_for_recurring: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάϊος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"], day_for_recurring: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"] } };
7307
+ const el = { date: { month_full: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάϊος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"], month_short: ["ΙΑΝ", "ΦΕΒ", "ΜΑΡ", "ΑΠΡ", "ΜΑΙ", "ΙΟΥΝ", "ΙΟΥΛ", "ΑΥΓ", "ΣΕΠ", "ΟΚΤ", "ΝΟΕ", "ΔΕΚ"], day_full: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"], day_short: ["ΚΥ", "ΔΕ", "ΤΡ", "ΤΕ", "ΠΕ", "ΠΑ", "ΣΑ"] }, labels: { dhx_cal_today_button: "Σήμερα", day_tab: "Ημέρα", week_tab: "Εβδομάδα", month_tab: "Μήνας", new_event: "Νέο έργο", icon_save: "Αποθήκευση", icon_cancel: "Άκυρο", icon_details: "Λεπτομέρειες", icon_edit: "Επεξεργασία", icon_delete: "Διαγραφή", confirm_closing: "", confirm_deleting: "Το έργο θα διαγραφεί οριστικά. Θέλετε να συνεχίσετε;", section_description: "Περιγραφή", section_time: "Χρονική περίοδος", full_day: "Πλήρης Ημέρα", confirm_recurring: "Θέλετε να επεξεργασθείτε ολόκληρη την ομάδα των επαναλαμβανόμενων έργων;", section_recurring: "Επαναλαμβανόμενο έργο", button_recurring: "Ανενεργό", button_recurring_open: "Ενεργό", button_edit_series: "Επεξεργαστείτε τη σειρά", button_edit_occurrence: "Επεξεργασία ένα αντίγραφο", agenda_tab: "Ημερήσια Διάταξη", date: "Ημερομηνία", description: "Περιγραφή", year_tab: "Έτος", week_agenda_tab: "Ημερήσια Διάταξη", grid_tab: "Πλέγμα", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Ημερησίως", repeat_radio_week: "Εβδομαδιαίως", repeat_radio_month: "Μηνιαίως", repeat_radio_year: "Ετησίως", repeat_radio_day_type: "Κάθε", repeat_text_day_count: "ημέρα", repeat_radio_day_type2: "Κάθε εργάσιμη", repeat_week: " Επανάληψη κάθε", repeat_text_week_count: "εβδομάδα τις επόμενες ημέρες:", repeat_radio_month_type: "Επανάληψη", repeat_radio_month_start: "Την", repeat_text_month_day: "ημέρα κάθε", repeat_text_month_count: "μήνα", repeat_text_month_count2_before: "κάθε", repeat_text_month_count2_after: "μήνα", repeat_year_label: "Την", select_year_day2: "του", repeat_text_year_day: "ημέρα", select_year_month: "μήνα", repeat_radio_end: "Χωρίς ημερομηνία λήξεως", repeat_text_occurences_count: "επαναλήψεις", repeat_radio_end3: "Λήγει την", repeat_radio_end2: "Μετά από", month_for_recurring: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάϊος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"], day_for_recurring: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"] } };
7360
7308
  const en = { date: { month_full: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], month_short: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], day_full: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], day_short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] }, labels: { dhx_cal_today_button: "Today", day_tab: "Day", week_tab: "Week", month_tab: "Month", new_event: "New event", icon_save: "Save", icon_cancel: "Cancel", icon_details: "Details", icon_edit: "Edit", icon_delete: "Delete", confirm_closing: "", confirm_deleting: "Event will be deleted permanently, are you sure?", section_description: "Description", section_time: "Time period", full_day: "Full day", confirm_recurring: "Do you want to edit the whole set of repeated events?", section_recurring: "Repeat event", button_recurring: "Disabled", button_recurring_open: "Enabled", button_edit_series: "Edit series", button_edit_occurrence: "Edit occurrence", agenda_tab: "Agenda", date: "Date", description: "Description", year_tab: "Year", week_agenda_tab: "Agenda", grid_tab: "Grid", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Daily", repeat_radio_week: "Weekly", repeat_radio_month: "Monthly", repeat_radio_year: "Yearly", repeat_radio_day_type: "Every", repeat_text_day_count: "day", repeat_radio_day_type2: "Every workday", repeat_week: " Repeat every", repeat_text_week_count: "week next days:", repeat_radio_month_type: "Repeat", repeat_radio_month_start: "On", repeat_text_month_day: "day every", repeat_text_month_count: "month", repeat_text_month_count2_before: "every", repeat_text_month_count2_after: "month", repeat_year_label: "On", select_year_day2: "of", repeat_text_year_day: "day", select_year_month: "month", repeat_radio_end: "No end date", repeat_text_occurences_count: "occurrences", repeat_radio_end2: "After", repeat_radio_end3: "End by", month_for_recurring: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], day_for_recurring: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] } };
7361
7309
  const es = { date: { month_full: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"], month_short: ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"], day_full: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"], day_short: ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb"] }, labels: { dhx_cal_today_button: "Hoy", day_tab: "Día", week_tab: "Semana", month_tab: "Mes", new_event: "Nuevo evento", icon_save: "Guardar", icon_cancel: "Cancelar", icon_details: "Detalles", icon_edit: "Editar", icon_delete: "Eliminar", confirm_closing: "", confirm_deleting: "El evento se borrará definitivamente, ¿continuar?", section_description: "Descripción", section_time: "Período", full_day: "Todo el día", confirm_recurring: "¿Desea modificar el conjunto de eventos repetidos?", section_recurring: "Repita el evento", button_recurring: "Impedido", button_recurring_open: "Permitido", button_edit_series: "Editar la serie", button_edit_occurrence: "Editar este evento", agenda_tab: "Día", date: "Fecha", description: "Descripción", year_tab: "Año", week_agenda_tab: "Día", grid_tab: "Reja", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Diariamente", repeat_radio_week: "Semanalmente", repeat_radio_month: "Mensualmente", repeat_radio_year: "Anualmente", repeat_radio_day_type: "Cada", repeat_text_day_count: "dia", repeat_radio_day_type2: "Cada jornada de trabajo", repeat_week: " Repetir cada", repeat_text_week_count: "semana:", repeat_radio_month_type: "Repita", repeat_radio_month_start: "El", repeat_text_month_day: "dia cada ", repeat_text_month_count: "mes", repeat_text_month_count2_before: "cada", repeat_text_month_count2_after: "mes", repeat_year_label: "El", select_year_day2: "del", repeat_text_year_day: "dia", select_year_month: "mes", repeat_radio_end: "Sin fecha de finalización", repeat_text_occurences_count: "ocurrencias", repeat_radio_end3: "Fin", repeat_radio_end2: "Después de", month_for_recurring: ["Enero", "Febrero", "Маrzo", "Аbril", "Mayo", "Junio", "Julio", "Аgosto", "Setiembre", "Octubre", "Noviembre", "Diciembre"], day_for_recurring: ["Domingo", "Lunes", "Martes", "Miércoles", "Jeuves", "Viernes", "Sabado"] } };
7362
7310
  const fi = { date: { month_full: ["Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kes&auml;kuu", "Hein&auml;kuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu"], month_short: ["Tam", "Hel", "Maa", "Huh", "Tou", "Kes", "Hei", "Elo", "Syy", "Lok", "Mar", "Jou"], day_full: ["Sunnuntai", "Maanantai", "Tiistai", "Keskiviikko", "Torstai", "Perjantai", "Lauantai"], day_short: ["Su", "Ma", "Ti", "Ke", "To", "Pe", "La"] }, labels: { dhx_cal_today_button: "Tänään", day_tab: "Päivä", week_tab: "Viikko", month_tab: "Kuukausi", new_event: "Uusi tapahtuma", icon_save: "Tallenna", icon_cancel: "Peru", icon_details: "Tiedot", icon_edit: "Muokkaa", icon_delete: "Poista", confirm_closing: "", confirm_deleting: "Haluatko varmasti poistaa tapahtuman?", section_description: "Kuvaus", section_time: "Aikajakso", full_day: "Koko päivä", confirm_recurring: "Haluatko varmasti muokata toistuvan tapahtuman kaikkia jaksoja?", section_recurring: "Toista tapahtuma", button_recurring: "Ei k&auml;yt&ouml;ss&auml;", button_recurring_open: "K&auml;yt&ouml;ss&auml;", button_edit_series: "Muokkaa sarja", button_edit_occurrence: "Muokkaa kopio", agenda_tab: "Esityslista", date: "Päivämäärä", description: "Kuvaus", year_tab: "Vuoden", week_agenda_tab: "Esityslista", grid_tab: "Ritilä", drag_to_create: "Luo uusi vetämällä", drag_to_move: "Siirrä vetämällä", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "P&auml;ivitt&auml;in", repeat_radio_week: "Viikoittain", repeat_radio_month: "Kuukausittain", repeat_radio_year: "Vuosittain", repeat_radio_day_type: "Joka", repeat_text_day_count: "p&auml;iv&auml;", repeat_radio_day_type2: "Joka arkip&auml;iv&auml;", repeat_week: "Toista joka", repeat_text_week_count: "viikko n&auml;in&auml; p&auml;ivin&auml;:", repeat_radio_month_type: "Toista", repeat_radio_month_start: "", repeat_text_month_day: "p&auml;iv&auml;n&auml; joka", repeat_text_month_count: "kuukausi", repeat_text_month_count2_before: "joka", repeat_text_month_count2_after: "kuukausi", repeat_year_label: "", select_year_day2: "", repeat_text_year_day: "p&auml;iv&auml;", select_year_month: "kuukausi", repeat_radio_end: "Ei loppumisaikaa", repeat_text_occurences_count: "Toiston j&auml;lkeen", repeat_radio_end3: "Loppuu", repeat_radio_end2: "", month_for_recurring: ["Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kes&auml;kuu", "Hein&auml;kuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu"], day_for_recurring: ["Sunnuntai", "Maanantai", "Tiistai", "Keskiviikko", "Torstai", "Perjantai", "Lauantai"] } };
@@ -7668,7 +7616,7 @@
7668
7616
  }
7669
7617
  }
7670
7618
  function factoryMethod(extensionManager) {
7671
- const scheduler2 = { version: "7.0.1" };
7619
+ const scheduler2 = { version: "7.0.3" };
7672
7620
  extend$n(scheduler2);
7673
7621
  extend$i(scheduler2);
7674
7622
  extend$j(scheduler2);
@@ -8119,7 +8067,13 @@
8119
8067
  const selectedId = scheduler2.getState().select_id;
8120
8068
  const cls = scheduler2.templates.event_class(calendarEvent.start_date, calendarEvent.end_date, calendarEvent);
8121
8069
  const description = scheduler2.templates.agenda_text(calendarEvent.start_date, calendarEvent.end_date, calendarEvent);
8122
- return `<div class="dhx_cal_agenda_event_line ${cls || ""} ${calendarEvent.id == selectedId ? "dhx_cal_agenda_event_line_selected" : ""}" ${scheduler2.config.event_attribute}="${calendarEvent.id}">
8070
+ let style = "";
8071
+ if (calendarEvent.color || calendarEvent.textColor) {
8072
+ const bg = calendarEvent.color ? "--dhx-scheduler-event-background:" + calendarEvent.color + ";" : "";
8073
+ const color = calendarEvent.textColor ? "--dhx-scheduler-event-color:" + calendarEvent.textColor + ";" : "";
8074
+ style = ` style="${bg}${color}" `;
8075
+ }
8076
+ return `<div class="dhx_cal_agenda_event_line ${cls || ""} ${calendarEvent.id == selectedId ? "dhx_cal_agenda_event_line_selected" : ""}" ${style} ${scheduler2.config.event_attribute}="${calendarEvent.id}">
8123
8077
  <div class="dhx_cal_agenda_event_line_marker"></div>
8124
8078
  <div class="dhx_cal_agenda_event_line_time">${dates}</div>
8125
8079
  <div class="dhx_cal_agenda_event_line_text">${description}</div>
@@ -9229,9 +9183,13 @@
9229
9183
  }
9230
9184
  if (section) {
9231
9185
  if (scheduler2.matrix && scheduler2.matrix[mode]) {
9232
- label += ", " + scheduler2.templates[mode + "_scale_label"](section.key, section.label, section);
9186
+ const timeline = scheduler2.matrix[mode];
9187
+ const sectionObject = timeline.y_unit[timeline.order[section]];
9188
+ label += ", " + scheduler2.templates[mode + "_scale_label"](sectionObject.key, sectionObject.label, sectionObject);
9233
9189
  } else if (scheduler2._props && scheduler2._props[mode]) {
9234
- label += ", " + scheduler2.templates[mode + "_scale_text"](section.key, section.label, section);
9190
+ const units = scheduler2._props[mode];
9191
+ const sectionObject = units.options[units.order[section]];
9192
+ label += ", " + scheduler2.templates[mode + "_scale_text"](sectionObject.key, sectionObject.label, sectionObject);
9235
9193
  }
9236
9194
  }
9237
9195
  for (var i = 0; i < divs.length; i++) {
@@ -9303,8 +9261,25 @@
9303
9261
  if (!(min_date < end_date && max_date > start_date))
9304
9262
  return blocks;
9305
9263
  var block = this.createElement();
9306
- var start_pos = scheduler2._timeline_getX({ start_date }, false, view_opts) - 1;
9307
- var end_pos = scheduler2._timeline_getX({ start_date: end_date }, false, view_opts) - 1;
9264
+ let start_pos;
9265
+ let end_pos;
9266
+ function set_date_part(source, target) {
9267
+ target.setDate(1);
9268
+ target.setFullYear(source.getFullYear());
9269
+ target.setMonth(source.getMonth());
9270
+ target.setDate(source.getDate());
9271
+ }
9272
+ if (!scheduler2.getView().days) {
9273
+ start_pos = scheduler2._timeline_getX({ start_date }, false, view_opts);
9274
+ end_pos = scheduler2._timeline_getX({ start_date: end_date }, false, view_opts);
9275
+ } else {
9276
+ const tempStart = new Date(start_date);
9277
+ set_date_part(scheduler2._min_date, tempStart);
9278
+ const tempEnd = new Date(end_date);
9279
+ set_date_part(scheduler2._min_date, tempEnd);
9280
+ start_pos = scheduler2._timeline_getX({ start_date: tempStart }, false, view_opts);
9281
+ end_pos = scheduler2._timeline_getX({ start_date: tempEnd }, false, view_opts);
9282
+ }
9308
9283
  var height = view_opts._section_height[section] - 1 || view_opts.dy - 1;
9309
9284
  var top = 0;
9310
9285
  if (scheduler2._isRender("cell")) {
@@ -11265,7 +11240,7 @@
11265
11240
  dispatcher.disable();
11266
11241
  }
11267
11242
  }
11268
- setInterval(function() {
11243
+ const intervalId = setInterval(function() {
11269
11244
  if (!scheduler2.$container || !scheduler2.$keyboardNavigation.isChildOf(scheduler2.$container, document.body)) {
11270
11245
  return;
11271
11246
  }
@@ -11285,6 +11260,9 @@
11285
11260
  }, 100);
11286
11261
  }
11287
11262
  }, 500);
11263
+ scheduler2.attachEvent("onDestroy", function() {
11264
+ clearInterval(intervalId);
11265
+ });
11288
11266
  })();
11289
11267
  }
11290
11268
  function layer(scheduler2) {
@@ -11936,6 +11914,9 @@
11936
11914
  scheduler2._mark_now();
11937
11915
  }, 6e4);
11938
11916
  });
11917
+ scheduler2.attachEvent("onDestroy", function() {
11918
+ clearInterval(scheduler2._mark_now_timer);
11919
+ });
11939
11920
  scheduler2._mark_now = function(hide) {
11940
11921
  var dhx_now_time = "dhx_now_time";
11941
11922
  if (!this._els[dhx_now_time]) {
@@ -12230,6 +12211,9 @@
12230
12211
  return divs;
12231
12212
  };
12232
12213
  scheduler2.markTimespan = function(configuration) {
12214
+ if (!this._els) {
12215
+ throw new Error("`scheduler.markTimespan` can't be used before scheduler initialization. Place `scheduler.markTimespan` call after `scheduler.init`.");
12216
+ }
12233
12217
  var rebuild_els = false;
12234
12218
  if (!this._els["dhx_cal_data"]) {
12235
12219
  scheduler2.get_elements();
@@ -16003,12 +15987,7 @@
16003
15987
  var c = this.config;
16004
15988
  dataArea.scrollTop = 0;
16005
15989
  dataArea.innerHTML = "";
16006
- var dx = Math.floor(parseInt(dataArea.style.width) / c.year_x);
16007
- var dy = Math.floor((parseInt(dataArea.style.height) - scheduler2.xy.year_top) / c.year_y);
16008
- if (dy < 190) {
16009
- dy = 190;
16010
- dx = Math.floor((parseInt(dataArea.style.width) - scheduler2.xy.scroll_width) / c.year_x);
16011
- }
15990
+ Math.floor((parseInt(dataArea.style.height) - scheduler2.xy.year_top) / c.year_y);
16012
15991
  var week_template = document.createElement("div");
16013
15992
  var dummy_date = this.date.week_start(scheduler2._currentDate());
16014
15993
  this._process_ignores(dummy_date, 7, "day", 1);
@@ -16032,15 +16011,11 @@
16032
16011
  for (var j = 0; j < c.year_x; j++) {
16033
16012
  yearBox = document.createElement("div");
16034
16013
  yearBox.className = "dhx_year_box";
16035
- if (!this._is_new_skin()) {
16036
- yearBox.style.cssText = "position:absolute;";
16037
- }
16038
16014
  yearBox.setAttribute("date", this._helpers.formatDate(sd));
16039
16015
  yearBox.setAttribute("data-month-date", this._helpers.formatDate(sd));
16040
16016
  yearBox.innerHTML = "<div class='dhx_year_month'></div><div class='dhx_year_grid'><div class='dhx_year_week'>" + week_template.innerHTML + "</div><div class='dhx_year_body'></div></div>";
16041
16017
  var header = yearBox.querySelector(".dhx_year_month");
16042
16018
  var grid = yearBox.querySelector(".dhx_year_grid");
16043
- var weekHeader = yearBox.querySelector(".dhx_year_week");
16044
16019
  var body = yearBox.querySelector(".dhx_year_body");
16045
16020
  var headerId = scheduler2.uid();
16046
16021
  this._waiAria.yearHeader(header, headerId);
@@ -16053,12 +16028,6 @@
16053
16028
  this._waiAria.yearDayCell(days[day]);
16054
16029
  }
16055
16030
  wrapper.appendChild(yearBox);
16056
- if (!this._is_new_skin()) {
16057
- weekHeader.style.height = weekHeader.childNodes[0].offsetHeight + "px";
16058
- var dt = Math.round((dy - 190) / 2);
16059
- yearBox.style.marginTop = dt + "px";
16060
- this.set_xy(yearBox, dx - 10, dy - dt - 10, dx * j + 5, dy * i + 5 + scheduler2.xy.year_top);
16061
- }
16062
16031
  week_starts[i * c.year_x + j] = (sd.getDay() - (this.config.start_on_monday ? 1 : 0) + 7) % 7;
16063
16032
  sd = this.date.add(sd, 1, "month");
16064
16033
  }