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.
@@ -1363,6 +1363,10 @@ url("src/dhx-scheduler-icons.woff2?7d3dc8d31762f76ad3c385c23e9afbc6") format("wo
1363
1363
  opacity: 0.5;
1364
1364
  box-shadow: 0 1px 0 1px var(--dhx-scheduler-today-marker-color);
1365
1365
  }
1366
+ .dhx_matrix_now_time {
1367
+ background: var(--dhx-scheduler-today-marker-color);
1368
+ opacity: 0.5;
1369
+ }
1366
1370
  .dhx_minical_icon {
1367
1371
  background: var(--dhx-scheduler-btn-background);
1368
1372
  color: var(--dhx-scheduler-btn-color);
@@ -200,7 +200,7 @@ function extend$l(scheduler2) {
200
200
  element.style.height = value;
201
201
  }
202
202
  if (config.click) {
203
- element.addEventListener("click", config.click);
203
+ scheduler2.event(element, "click", config.click);
204
204
  }
205
205
  if (config.html) {
206
206
  element.innerHTML = config.html;
@@ -628,9 +628,7 @@ function extend$j(scheduler2) {
628
628
  };
629
629
  scheduler2.set_sizes = function() {
630
630
  var w = this._x = this._obj.clientWidth - this.xy.margin_left;
631
- var h = this._y = this._obj.clientHeight - this.xy.margin_top;
632
631
  var scale_x = this._table_view ? 0 : this.xy.scale_width + this.xy.scroll_width;
633
- var scale_s = this._table_view ? -1 : this.xy.scale_width;
634
632
  var materialScalePlaceholder = this.$container.querySelector(".dhx_cal_scale_placeholder");
635
633
  if (scheduler2._is_material_skin()) {
636
634
  if (!materialScalePlaceholder) {
@@ -653,32 +651,22 @@ function extend$j(scheduler2) {
653
651
  }
654
652
  }
655
653
  this._data_width = w - scale_x;
656
- if (!scheduler2._is_new_skin()) {
657
- this.set_xy(this._els["dhx_cal_navline"][0], w, this.xy.nav_height, 0, 0);
658
- this.set_xy(this._els["dhx_cal_header"][0], w - scale_x + 1, this.xy.scale_height, scale_s, this.xy.nav_height + 1);
659
- var actual_height = this._els["dhx_cal_navline"][0].offsetHeight;
660
- if (actual_height > 0)
661
- this.xy.nav_height = actual_height;
662
- var data_y = this.xy.scale_height + this.xy.nav_height;
663
- this.set_xy(this._els["dhx_cal_data"][0], w, h - (data_y + 2), 0, data_y + 2);
654
+ this._els["dhx_cal_navline"][0].style.width = w + "px";
655
+ const header = this._els["dhx_cal_header"][0];
656
+ this.set_xy(header, this._data_width, this.xy.scale_height);
657
+ header.style.left = ``;
658
+ header.style.right = ``;
659
+ if (!this._table_view) {
660
+ if (this.config.rtl) {
661
+ header.style.right = `${this.xy.scale_width}px`;
662
+ } else {
663
+ header.style.left = `${this.xy.scale_width}px`;
664
+ }
664
665
  } else {
665
- this._els["dhx_cal_navline"][0].style.width = w + "px";
666
- const header = this._els["dhx_cal_header"][0];
667
- this.set_xy(header, this._data_width, this.xy.scale_height);
668
- header.style.left = ``;
669
- header.style.right = ``;
670
- if (!this._table_view) {
671
- if (this.config.rtl) {
672
- header.style.right = `${this.xy.scale_width}px`;
673
- } else {
674
- header.style.left = `${this.xy.scale_width}px`;
675
- }
666
+ if (!this.config.rtl) {
667
+ header.style.left = `-1px`;
676
668
  } else {
677
- if (!this.config.rtl) {
678
- header.style.left = `-1px`;
679
- } else {
680
- header.style.right = `-1px`;
681
- }
669
+ header.style.right = `-1px`;
682
670
  }
683
671
  }
684
672
  };
@@ -1545,11 +1533,7 @@ function extend$j(scheduler2) {
1545
1533
  head.className += " dhx_scale_bar_border";
1546
1534
  left = left + 1;
1547
1535
  }
1548
- if (scheduler2._is_new_skin()) {
1549
- this.set_xy(head, width, this.xy.scale_height - 1, left, offset_top);
1550
- } else {
1551
- this.set_xy(head, width - 1, this.xy.scale_height - 2, left, offset_top);
1552
- }
1536
+ this.set_xy(head, width, this.xy.scale_height - 1, left, offset_top);
1553
1537
  var columnHeaderText = this.templates[this._mode + "_scale_date"](date, this._mode);
1554
1538
  head.innerHTML = columnHeaderText;
1555
1539
  this._waiAria.dayHeaderAttr(head, columnHeaderText);
@@ -1622,37 +1606,35 @@ function extend$j(scheduler2) {
1622
1606
  if (this._ignores_detected && this._ignores[i]) {
1623
1607
  cls += " dhx_scale_ignore";
1624
1608
  }
1625
- if (this._is_new_skin()) {
1626
- for (let i2 = this.config.first_hour * 1; i2 < this.config.last_hour; i2++) {
1627
- const firstHalf = document.createElement("div");
1628
- firstHalf.className = "dhx_scale_time_slot dhx_scale_time_slot_hour_start";
1629
- firstHalf.style.height = this.config.hour_size_px / 2 + "px";
1630
- let slotDate = new Date(d.getFullYear(), d.getMonth(), d.getDate(), i2, 0);
1631
- firstHalf.setAttribute("data-slot-date", this.templates.format_date(slotDate));
1632
- let htmlContent = this.templates.time_slot_text(slotDate);
1633
- if (htmlContent) {
1634
- firstHalf.innerHTML = htmlContent;
1635
- }
1636
- let cssClass = this.templates.time_slot_class(slotDate);
1637
- if (cssClass) {
1638
- firstHalf.classList.add(cssClass);
1639
- }
1640
- scales.appendChild(firstHalf);
1641
- const secondHalf = document.createElement("div");
1642
- secondHalf.className = "dhx_scale_time_slot";
1643
- slotDate = new Date(d.getFullYear(), d.getMonth(), d.getDate(), i2, 30);
1644
- secondHalf.setAttribute("data-slot-date", this.templates.format_date(slotDate));
1645
- secondHalf.style.height = this.config.hour_size_px / 2 + "px";
1646
- htmlContent = this.templates.time_slot_text(slotDate);
1647
- if (htmlContent) {
1648
- secondHalf.innerHTML = htmlContent;
1649
- }
1650
- cssClass = this.templates.time_slot_class(slotDate);
1651
- if (cssClass) {
1652
- secondHalf.classList.add(cssClass);
1653
- }
1654
- scales.appendChild(secondHalf);
1655
- }
1609
+ for (let i2 = this.config.first_hour * 1; i2 < this.config.last_hour; i2++) {
1610
+ const firstHalf = document.createElement("div");
1611
+ firstHalf.className = "dhx_scale_time_slot dhx_scale_time_slot_hour_start";
1612
+ firstHalf.style.height = this.config.hour_size_px / 2 + "px";
1613
+ let slotDate = new Date(d.getFullYear(), d.getMonth(), d.getDate(), i2, 0);
1614
+ firstHalf.setAttribute("data-slot-date", this.templates.format_date(slotDate));
1615
+ let htmlContent = this.templates.time_slot_text(slotDate);
1616
+ if (htmlContent) {
1617
+ firstHalf.innerHTML = htmlContent;
1618
+ }
1619
+ let cssClass = this.templates.time_slot_class(slotDate);
1620
+ if (cssClass) {
1621
+ firstHalf.classList.add(cssClass);
1622
+ }
1623
+ scales.appendChild(firstHalf);
1624
+ const secondHalf = document.createElement("div");
1625
+ secondHalf.className = "dhx_scale_time_slot";
1626
+ slotDate = new Date(d.getFullYear(), d.getMonth(), d.getDate(), i2, 30);
1627
+ secondHalf.setAttribute("data-slot-date", this.templates.format_date(slotDate));
1628
+ secondHalf.style.height = this.config.hour_size_px / 2 + "px";
1629
+ htmlContent = this.templates.time_slot_text(slotDate);
1630
+ if (htmlContent) {
1631
+ secondHalf.innerHTML = htmlContent;
1632
+ }
1633
+ cssClass = this.templates.time_slot_class(slotDate);
1634
+ if (cssClass) {
1635
+ secondHalf.classList.add(cssClass);
1636
+ }
1637
+ scales.appendChild(secondHalf);
1656
1638
  }
1657
1639
  scales.className = cls + " " + this.templates.week_date_class(d, today);
1658
1640
  this._waiAria.dayColumnAttr(scales, d);
@@ -1705,11 +1687,6 @@ function extend$j(scheduler2) {
1705
1687
  this._els[dhx_multi_day][0].parentNode.removeChild(this._els[dhx_multi_day][0]);
1706
1688
  this._els[dhx_multi_day] = null;
1707
1689
  }
1708
- var navline = this._els["dhx_cal_navline"][0];
1709
- var top = navline.offsetHeight + this._els["dhx_cal_header"][0].offsetHeight + 1;
1710
- if (this._is_new_skin()) {
1711
- top = void 0;
1712
- }
1713
1690
  var c1 = document.createElement("div");
1714
1691
  c1.className = dhx_multi_day;
1715
1692
  c1.style.visibility = "hidden";
@@ -1717,13 +1694,13 @@ function extend$j(scheduler2) {
1717
1694
  var totalWidth = this._colsS[this._colsS.col_length];
1718
1695
  var offset = c.rtl ? this.xy.scale_width : this.xy.scroll_width;
1719
1696
  var hiddenWidth = Math.max(totalWidth + offset, 0);
1720
- this.set_xy(c1, hiddenWidth, 0, 0, top);
1697
+ this.set_xy(c1, hiddenWidth, 0, 0);
1721
1698
  data_area2.parentNode.insertBefore(c1, data_area2);
1722
1699
  var c2 = c1.cloneNode(true);
1723
1700
  c2.className = dhx_multi_day + "_icon";
1724
1701
  c2.style.visibility = "hidden";
1725
1702
  c2.style.display = "none";
1726
- this.set_xy(c2, this.xy.scale_width + 1, 0, 0, top);
1703
+ this.set_xy(c2, this.xy.scale_width + 1, 0, 0);
1727
1704
  c1.appendChild(c2);
1728
1705
  this._els[dhx_multi_day] = [c1, c2];
1729
1706
  scheduler2.event(this._els[dhx_multi_day][0], "click", this._click.dhx_cal_data);
@@ -3717,10 +3694,6 @@ function extend$c(scheduler2) {
3717
3694
  used_multi_day_height = Math.min(full_multi_day_height, this.config.multi_day_height_limit);
3718
3695
  used_multi_day_height_css = used_multi_day_height + "px";
3719
3696
  }
3720
- if (!scheduler2._is_new_skin()) {
3721
- data.style.top = this._els["dhx_cal_navline"][0].offsetHeight + this._els["dhx_cal_header"][0].offsetHeight + used_multi_day_height + "px";
3722
- data.style.height = this._obj.offsetHeight - parseInt(data.style.top, 10) - (this.xy.margin_top || 0) + "px";
3723
- }
3724
3697
  var multi_day_section = this._els["dhx_multi_day"][0];
3725
3698
  multi_day_section.style.height = used_multi_day_height_css;
3726
3699
  multi_day_section.style.visibility = h[0] == -1 ? "hidden" : "visible";
@@ -3736,9 +3709,6 @@ function extend$c(scheduler2) {
3736
3709
  }
3737
3710
  h[0] = 0;
3738
3711
  if (used_multi_day_height != full_multi_day_height) {
3739
- if (!scheduler2._is_new_skin()) {
3740
- data.style.top = parseInt(data.style.top) + 2 + "px";
3741
- }
3742
3712
  multi_day_section.style.overflowY = "auto";
3743
3713
  multi_day_icon.style.position = "fixed";
3744
3714
  multi_day_icon.style.top = "";
@@ -4294,7 +4264,7 @@ function extend$c(scheduler2) {
4294
4264
  cs2 += " " + cse;
4295
4265
  }
4296
4266
  var bg_color = ev.color ? "--dhx-scheduler-event-background:" + ev.color + ";" : "";
4297
- var color = ev.textColor ? "--dhx-scheduler-event-text:" + ev.textColor + ";" : "";
4267
+ var color = ev.textColor ? "--dhx-scheduler-event-color:" + ev.textColor + ";" : "";
4298
4268
  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(";");
4299
4269
  var html = "<div event_id='" + ev.id + "' " + this.config.event_attribute + "='" + ev.id + "' class='" + cs2 + "' style='" + style_text + "'" + this._waiAria.eventBarAttrString(ev) + ">";
4300
4270
  if (resizable) {
@@ -5464,9 +5434,7 @@ function extend$6(scheduler2) {
5464
5434
  var rtl = scheduler2.config.rtl;
5465
5435
  for (var i = 0; i < buttons.length; i++) {
5466
5436
  ariaAttr = this._waiAria.lightboxButtonAttrString(buttons[i]);
5467
- if (scheduler2._is_new_skin()) {
5468
- html += "<div class='dhx_cal_lcontrols_push_right'></div>";
5469
- }
5437
+ html += "<div class='dhx_cal_lcontrols_push_right'></div>";
5470
5438
  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>";
5471
5439
  }
5472
5440
  html += "</div>";
@@ -5618,7 +5586,7 @@ function extend$5(scheduler2) {
5618
5586
  var source, tracker, timer, drag_mode, scroll_mode, action_mode;
5619
5587
  var dblclicktime = 0;
5620
5588
  function attachTouchEvent(element, name, callback) {
5621
- element.addEventListener(name, function(e) {
5589
+ scheduler2.event(element, name, function(e) {
5622
5590
  if (scheduler2._is_lightbox_open()) {
5623
5591
  return true;
5624
5592
  } else {
@@ -5909,6 +5877,7 @@ function extend$3(scheduler2) {
5909
5877
  }
5910
5878
  }
5911
5879
  scheduler2._build_skin_info = function() {
5880
+ monitorThemeChange();
5912
5881
  const styles = getComputedStyle(this.$container);
5913
5882
  const themeVar = styles.getPropertyValue("--dhx-scheduler-theme");
5914
5883
  let isCssVarTheme = !!themeVar;
@@ -5936,9 +5905,6 @@ function extend$3(scheduler2) {
5936
5905
  }
5937
5906
  }
5938
5907
  };
5939
- scheduler2._is_new_skin = function() {
5940
- return scheduler2._theme_info.cssVarTheme;
5941
- };
5942
5908
  var calculatedMaterial;
5943
5909
  function checkIfMaterialSkin() {
5944
5910
  if (calculatedMaterial === void 0) {
@@ -6002,8 +5968,8 @@ function extend$3(scheduler2) {
6002
5968
  scheduler2.setCurrentView();
6003
5969
  }
6004
5970
  }
6005
- window.addEventListener("DOMContentLoaded", refreshAfterLoad);
6006
- window.addEventListener("load", refreshAfterLoad);
5971
+ scheduler2.event(window, "DOMContentLoaded", refreshAfterLoad);
5972
+ scheduler2.event(window, "load", refreshAfterLoad);
6007
5973
  scheduler2._border_box_events = function() {
6008
5974
  return checkIfBorderBoxStyling();
6009
5975
  };
@@ -6026,6 +5992,22 @@ function extend$3(scheduler2) {
6026
5992
  var html = "<span class='dhx_scale_h'>" + date.getHours() + "</span><span class='dhx_scale_m'>&nbsp;" + min + "</span>";
6027
5993
  return html;
6028
5994
  }
5995
+ let monitorIntervalId = null;
5996
+ function monitorThemeChange() {
5997
+ const container = scheduler2.$container;
5998
+ clearInterval(monitorIntervalId);
5999
+ if (container) {
6000
+ monitorIntervalId = setInterval(() => {
6001
+ const csstheme = getComputedStyle(container).getPropertyValue("--dhx-scheduler-theme");
6002
+ if (csstheme && csstheme !== scheduler2.skin) {
6003
+ scheduler2.setSkin(csstheme);
6004
+ }
6005
+ }, 100);
6006
+ }
6007
+ }
6008
+ scheduler2.attachEvent("onDestroy", function() {
6009
+ clearInterval(monitorIntervalId);
6010
+ });
6029
6011
  scheduler2._skin_init = function() {
6030
6012
  this._build_skin_info();
6031
6013
  if (!this.skin) {
@@ -6037,43 +6019,6 @@ function extend$3(scheduler2) {
6037
6019
  } else if (scheduler2.templates.hour_scale === flatSkinHourScale) {
6038
6020
  scheduler2.templates.hour_scale = scheduler2.date.date_to_str(scheduler2.config.hour_date);
6039
6021
  }
6040
- if (!this._theme_info.cssVarTheme) {
6041
- var set = 0;
6042
- if (scheduler2.skin && (scheduler2.skin === "classic" || scheduler2.skin === "glossy"))
6043
- set = 1;
6044
- if (scheduler2._is_material_skin()) {
6045
- var defaultButtonsLeft = scheduler2.config.buttons_left.$initial;
6046
- var defaultButtonsRight = scheduler2.config.buttons_right.$initial;
6047
- if (defaultButtonsLeft && scheduler2.config.buttons_left.slice().join() == defaultButtonsLeft && defaultButtonsRight && scheduler2.config.buttons_right.slice().join() == defaultButtonsRight) {
6048
- var tmp = scheduler2.config.buttons_left.slice();
6049
- scheduler2.config.buttons_left = scheduler2.config.buttons_right.slice();
6050
- scheduler2.config.buttons_right = tmp;
6051
- }
6052
- scheduler2.xy.event_header_height = 18;
6053
- scheduler2.xy.week_agenda_scale_height = 35;
6054
- scheduler2.xy.map_icon_width = 38;
6055
- scheduler2._lightbox_controls.defaults.textarea.height = 64;
6056
- scheduler2._lightbox_controls.defaults.time.height = "auto";
6057
- }
6058
- this._configure(scheduler2.config, scheduler2._skin_settings, set);
6059
- this._configure(scheduler2.xy, scheduler2._skin_xy, set);
6060
- if (scheduler2.skin === "flat") {
6061
- scheduler2.xy.scale_height = 35;
6062
- scheduler2.templates.hour_scale = function(date) {
6063
- var min = date.getMinutes();
6064
- min = min < 10 ? "0" + min : min;
6065
- var html = "<span class='dhx_scale_h'>" + date.getHours() + "</span><span class='dhx_scale_m'>&nbsp;" + min + "</span>";
6066
- return html;
6067
- };
6068
- }
6069
- if (set)
6070
- return;
6071
- }
6072
- if (!this._theme_info.cssVarTheme) {
6073
- var minic = scheduler2.config.minicalendar;
6074
- if (minic)
6075
- minic.padding = 14;
6076
- }
6077
6022
  scheduler2.attachEvent("onTemplatesReady", function() {
6078
6023
  var date_to_str = scheduler2.date.date_to_str("%d");
6079
6024
  if (!scheduler2.templates._old_month_day) {
@@ -6888,9 +6833,12 @@ DataProcessor.prototype = { setTransactionMode: function(mode, total) {
6888
6833
  this.fullSync();
6889
6834
  });
6890
6835
  var self = this;
6891
- global$1.setInterval(function() {
6836
+ let intervalId = global$1.setInterval(function() {
6892
6837
  self.loadUpdate();
6893
6838
  }, interval);
6839
+ this.attachEvent("onDestroy", function() {
6840
+ clearInterval(intervalId);
6841
+ });
6894
6842
  }, afterAutoUpdate: function(sid, action, tid, xml_node) {
6895
6843
  if (action == "collision") {
6896
6844
  this._need_update = true;
@@ -7352,7 +7300,7 @@ const cn = { date: { month_full: ["一月", "二月", "三月", "四月", "五
7352
7300
  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"] } };
7353
7301
  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"] } };
7354
7302
  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"] } };
7355
- 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: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"] } };
7303
+ 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: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"] } };
7356
7304
  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"] } };
7357
7305
  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"] } };
7358
7306
  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"] } };
@@ -7664,7 +7612,7 @@ class DatePicker {
7664
7612
  }
7665
7613
  }
7666
7614
  function factoryMethod(extensionManager) {
7667
- const scheduler2 = { version: "7.0.1" };
7615
+ const scheduler2 = { version: "7.0.3" };
7668
7616
  extend$n(scheduler2);
7669
7617
  extend$i(scheduler2);
7670
7618
  extend$j(scheduler2);
@@ -8115,7 +8063,13 @@ function agenda_view(scheduler2) {
8115
8063
  const selectedId = scheduler2.getState().select_id;
8116
8064
  const cls = scheduler2.templates.event_class(calendarEvent.start_date, calendarEvent.end_date, calendarEvent);
8117
8065
  const description = scheduler2.templates.agenda_text(calendarEvent.start_date, calendarEvent.end_date, calendarEvent);
8118
- return `<div class="dhx_cal_agenda_event_line ${cls || ""} ${calendarEvent.id == selectedId ? "dhx_cal_agenda_event_line_selected" : ""}" ${scheduler2.config.event_attribute}="${calendarEvent.id}">
8066
+ let style = "";
8067
+ if (calendarEvent.color || calendarEvent.textColor) {
8068
+ const bg = calendarEvent.color ? "--dhx-scheduler-event-background:" + calendarEvent.color + ";" : "";
8069
+ const color = calendarEvent.textColor ? "--dhx-scheduler-event-color:" + calendarEvent.textColor + ";" : "";
8070
+ style = ` style="${bg}${color}" `;
8071
+ }
8072
+ 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}">
8119
8073
  <div class="dhx_cal_agenda_event_line_marker"></div>
8120
8074
  <div class="dhx_cal_agenda_event_line_time">${dates}</div>
8121
8075
  <div class="dhx_cal_agenda_event_line_text">${description}</div>
@@ -9225,9 +9179,13 @@ function marker(scheduler2) {
9225
9179
  }
9226
9180
  if (section) {
9227
9181
  if (scheduler2.matrix && scheduler2.matrix[mode]) {
9228
- label += ", " + scheduler2.templates[mode + "_scale_label"](section.key, section.label, section);
9182
+ const timeline = scheduler2.matrix[mode];
9183
+ const sectionObject = timeline.y_unit[timeline.order[section]];
9184
+ label += ", " + scheduler2.templates[mode + "_scale_label"](sectionObject.key, sectionObject.label, sectionObject);
9229
9185
  } else if (scheduler2._props && scheduler2._props[mode]) {
9230
- label += ", " + scheduler2.templates[mode + "_scale_text"](section.key, section.label, section);
9186
+ const units = scheduler2._props[mode];
9187
+ const sectionObject = units.options[units.order[section]];
9188
+ label += ", " + scheduler2.templates[mode + "_scale_text"](sectionObject.key, sectionObject.label, sectionObject);
9231
9189
  }
9232
9190
  }
9233
9191
  for (var i = 0; i < divs.length; i++) {
@@ -9299,8 +9257,25 @@ function marker(scheduler2) {
9299
9257
  if (!(min_date < end_date && max_date > start_date))
9300
9258
  return blocks;
9301
9259
  var block = this.createElement();
9302
- var start_pos = scheduler2._timeline_getX({ start_date }, false, view_opts) - 1;
9303
- var end_pos = scheduler2._timeline_getX({ start_date: end_date }, false, view_opts) - 1;
9260
+ let start_pos;
9261
+ let end_pos;
9262
+ function set_date_part(source, target) {
9263
+ target.setDate(1);
9264
+ target.setFullYear(source.getFullYear());
9265
+ target.setMonth(source.getMonth());
9266
+ target.setDate(source.getDate());
9267
+ }
9268
+ if (!scheduler2.getView().days) {
9269
+ start_pos = scheduler2._timeline_getX({ start_date }, false, view_opts);
9270
+ end_pos = scheduler2._timeline_getX({ start_date: end_date }, false, view_opts);
9271
+ } else {
9272
+ const tempStart = new Date(start_date);
9273
+ set_date_part(scheduler2._min_date, tempStart);
9274
+ const tempEnd = new Date(end_date);
9275
+ set_date_part(scheduler2._min_date, tempEnd);
9276
+ start_pos = scheduler2._timeline_getX({ start_date: tempStart }, false, view_opts);
9277
+ end_pos = scheduler2._timeline_getX({ start_date: tempEnd }, false, view_opts);
9278
+ }
9304
9279
  var height = view_opts._section_height[section] - 1 || view_opts.dy - 1;
9305
9280
  var top = 0;
9306
9281
  if (scheduler2._isRender("cell")) {
@@ -11261,7 +11236,7 @@ function key_nav(scheduler2) {
11261
11236
  dispatcher.disable();
11262
11237
  }
11263
11238
  }
11264
- setInterval(function() {
11239
+ const intervalId = setInterval(function() {
11265
11240
  if (!scheduler2.$container || !scheduler2.$keyboardNavigation.isChildOf(scheduler2.$container, document.body)) {
11266
11241
  return;
11267
11242
  }
@@ -11281,6 +11256,9 @@ function key_nav(scheduler2) {
11281
11256
  }, 100);
11282
11257
  }
11283
11258
  }, 500);
11259
+ scheduler2.attachEvent("onDestroy", function() {
11260
+ clearInterval(intervalId);
11261
+ });
11284
11262
  })();
11285
11263
  }
11286
11264
  function layer(scheduler2) {
@@ -11932,6 +11910,9 @@ function limit(scheduler2) {
11932
11910
  scheduler2._mark_now();
11933
11911
  }, 6e4);
11934
11912
  });
11913
+ scheduler2.attachEvent("onDestroy", function() {
11914
+ clearInterval(scheduler2._mark_now_timer);
11915
+ });
11935
11916
  scheduler2._mark_now = function(hide) {
11936
11917
  var dhx_now_time = "dhx_now_time";
11937
11918
  if (!this._els[dhx_now_time]) {
@@ -12226,6 +12207,9 @@ function limit(scheduler2) {
12226
12207
  return divs;
12227
12208
  };
12228
12209
  scheduler2.markTimespan = function(configuration) {
12210
+ if (!this._els) {
12211
+ throw new Error("`scheduler.markTimespan` can't be used before scheduler initialization. Place `scheduler.markTimespan` call after `scheduler.init`.");
12212
+ }
12229
12213
  var rebuild_els = false;
12230
12214
  if (!this._els["dhx_cal_data"]) {
12231
12215
  scheduler2.get_elements();
@@ -15999,12 +15983,7 @@ function year_view(scheduler2) {
15999
15983
  var c = this.config;
16000
15984
  dataArea.scrollTop = 0;
16001
15985
  dataArea.innerHTML = "";
16002
- var dx = Math.floor(parseInt(dataArea.style.width) / c.year_x);
16003
- var dy = Math.floor((parseInt(dataArea.style.height) - scheduler2.xy.year_top) / c.year_y);
16004
- if (dy < 190) {
16005
- dy = 190;
16006
- dx = Math.floor((parseInt(dataArea.style.width) - scheduler2.xy.scroll_width) / c.year_x);
16007
- }
15986
+ Math.floor((parseInt(dataArea.style.height) - scheduler2.xy.year_top) / c.year_y);
16008
15987
  var week_template = document.createElement("div");
16009
15988
  var dummy_date = this.date.week_start(scheduler2._currentDate());
16010
15989
  this._process_ignores(dummy_date, 7, "day", 1);
@@ -16028,15 +16007,11 @@ function year_view(scheduler2) {
16028
16007
  for (var j = 0; j < c.year_x; j++) {
16029
16008
  yearBox = document.createElement("div");
16030
16009
  yearBox.className = "dhx_year_box";
16031
- if (!this._is_new_skin()) {
16032
- yearBox.style.cssText = "position:absolute;";
16033
- }
16034
16010
  yearBox.setAttribute("date", this._helpers.formatDate(sd));
16035
16011
  yearBox.setAttribute("data-month-date", this._helpers.formatDate(sd));
16036
16012
  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>";
16037
16013
  var header = yearBox.querySelector(".dhx_year_month");
16038
16014
  var grid = yearBox.querySelector(".dhx_year_grid");
16039
- var weekHeader = yearBox.querySelector(".dhx_year_week");
16040
16015
  var body = yearBox.querySelector(".dhx_year_body");
16041
16016
  var headerId = scheduler2.uid();
16042
16017
  this._waiAria.yearHeader(header, headerId);
@@ -16049,12 +16024,6 @@ function year_view(scheduler2) {
16049
16024
  this._waiAria.yearDayCell(days[day]);
16050
16025
  }
16051
16026
  wrapper.appendChild(yearBox);
16052
- if (!this._is_new_skin()) {
16053
- weekHeader.style.height = weekHeader.childNodes[0].offsetHeight + "px";
16054
- var dt = Math.round((dy - 190) / 2);
16055
- yearBox.style.marginTop = dt + "px";
16056
- this.set_xy(yearBox, dx - 10, dy - dt - 10, dx * j + 5, dy * i + 5 + scheduler2.xy.year_top);
16057
- }
16058
16027
  week_starts[i * c.year_x + j] = (sd.getDay() - (this.config.start_on_monday ? 1 : 0) + 7) % 7;
16059
16028
  sd = this.date.add(sd, 1, "month");
16060
16029
  }