dhtmlx-scheduler 7.2.9 → 7.2.10

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.
@@ -3,7 +3,7 @@
3
3
  })(this, function(exports2) {
4
4
  "use strict";/** @license
5
5
 
6
- dhtmlxScheduler v.7.2.9 Standard
6
+ dhtmlxScheduler v.7.2.10 Standard
7
7
 
8
8
  To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product), please obtain Commercial/Enterprise or Ultimate license on our site https://dhtmlx.com/docs/products/dhtmlxScheduler/#licensing or contact us at sales@dhtmlx.com
9
9
 
@@ -4095,6 +4095,25 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
4095
4095
  }
4096
4096
  return activeElement;
4097
4097
  }
4098
+ function closest(element, selector) {
4099
+ if (element.closest) {
4100
+ return element.closest(selector);
4101
+ } else if (element.matches || element.msMatchesSelector || element.webkitMatchesSelector) {
4102
+ var el = element;
4103
+ if (!document.documentElement.contains(el))
4104
+ return null;
4105
+ do {
4106
+ var method = el.matches || el.msMatchesSelector || el.webkitMatchesSelector;
4107
+ if (method.call(el, selector))
4108
+ return el;
4109
+ el = el.parentElement || el.parentNode;
4110
+ } while (el !== null && el.nodeType === 1);
4111
+ return null;
4112
+ } else {
4113
+ console.error("Your browser is not supported");
4114
+ return null;
4115
+ }
4116
+ }
4098
4117
  function getRootNode(element) {
4099
4118
  if (!element) {
4100
4119
  return document.body;
@@ -4113,9 +4132,13 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
4113
4132
  return !!getRootNode(element);
4114
4133
  }
4115
4134
  const dom_helpers = { getAbsoluteLeft: function getAbsoluteLeft(htmlObject) {
4116
- return this.getOffset(htmlObject).left;
4135
+ const offsetLeft = this.getOffset(htmlObject).left;
4136
+ const paddingLeft = parseInt(window.getComputedStyle(htmlObject).paddingLeft, 10) || 0;
4137
+ return offsetLeft + paddingLeft;
4117
4138
  }, getAbsoluteTop: function getAbsoluteTop(htmlObject) {
4118
- return this.getOffset(htmlObject).top;
4139
+ const offsetTop = this.getOffset(htmlObject).top;
4140
+ const paddingTop = parseInt(window.getComputedStyle(htmlObject).paddingTop, 10) || 0;
4141
+ return offsetTop + paddingTop;
4119
4142
  }, getOffsetSum: function getOffsetSum(elem) {
4120
4143
  var top = 0, left = 0;
4121
4144
  while (elem) {
@@ -4173,25 +4196,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
4173
4196
  }
4174
4197
  }, isChildOf: function(child, parent) {
4175
4198
  return parent.contains(child);
4176
- }, getFocusableNodes, getClassName, locateCss, getRootNode, hasShadowParent, isShadowDomSupported, getActiveElement, getRelativeEventPosition, getTargetNode, getNodePosition };
4177
- var closest;
4178
- if (Element.prototype.closest) {
4179
- closest = function(element, selector) {
4180
- return element.closest(selector);
4181
- };
4182
- } else {
4183
- var matches = Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
4184
- closest = function(element, selector) {
4185
- var el = element;
4186
- do {
4187
- if (matches.call(el, selector)) {
4188
- return el;
4189
- }
4190
- el = el.parentElement || el.parentNode;
4191
- } while (el !== null && el.nodeType === 1);
4192
- return null;
4193
- };
4194
- }
4199
+ }, getFocusableNodes, getClassName, locateCss, getRootNode, hasShadowParent, isShadowDomSupported, getActiveElement, getRelativeEventPosition, getTargetNode, getNodePosition, closest };
4195
4200
  var isWindowAwailable = typeof window !== "undefined";
4196
4201
  const env = { isIE: isWindowAwailable && (navigator.userAgent.indexOf("MSIE") >= 0 || navigator.userAgent.indexOf("Trident") >= 0), isOpera: isWindowAwailable && navigator.userAgent.indexOf("Opera") >= 0, isChrome: isWindowAwailable && navigator.userAgent.indexOf("Chrome") >= 0, isKHTML: isWindowAwailable && (navigator.userAgent.indexOf("Safari") >= 0 || navigator.userAgent.indexOf("Konqueror") >= 0), isFF: isWindowAwailable && navigator.userAgent.indexOf("Firefox") >= 0, isIPad: isWindowAwailable && navigator.userAgent.search(/iPad/gi) >= 0, isEdge: isWindowAwailable && navigator.userAgent.indexOf("Edge") != -1, isNode: !isWindowAwailable || typeof navigator == "undefined" };
4197
4202
  function extend$g(scheduler2) {
@@ -4244,7 +4249,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
4244
4249
  return result;
4245
4250
  }
4246
4251
  function extend$f(scheduler2) {
4247
- scheduler2.Promise = window.Promise;
4252
+ scheduler2.Promise = typeof window !== "undefined" ? window.Promise : Promise;
4248
4253
  function createConfig(method, args) {
4249
4254
  var result = { method };
4250
4255
  if (args.length === 0) {
@@ -7538,8 +7543,10 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
7538
7543
  scheduler2.setCurrentView();
7539
7544
  }
7540
7545
  }
7541
- scheduler2.event(window, "DOMContentLoaded", refreshAfterLoad);
7542
- scheduler2.event(window, "load", refreshAfterLoad);
7546
+ if (typeof window !== "undefined") {
7547
+ scheduler2.event(window, "DOMContentLoaded", refreshAfterLoad);
7548
+ scheduler2.event(window, "load", refreshAfterLoad);
7549
+ }
7543
7550
  scheduler2._border_box_events = function() {
7544
7551
  return checkIfBorderBoxStyling();
7545
7552
  };
@@ -8638,7 +8645,9 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
8638
8645
  return;
8639
8646
  }
8640
8647
  }
8641
- scheduler2.event(document, "keydown", modal_key, true);
8648
+ if (typeof window !== "undefined") {
8649
+ scheduler2.event(document, "keydown", modal_key, true);
8650
+ }
8642
8651
  function modality(mode) {
8643
8652
  if (!modality.cover) {
8644
8653
  modality.cover = document.createElement("div");
@@ -9103,7 +9112,11 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
9103
9112
  const monthEnd = scheduler2.date.add(scheduler2.date.month_start(new Date(date)), 1, "month");
9104
9113
  let lastDate = scheduler2.date.add(scheduler2.date.month_start(new Date(date)), 1, "month");
9105
9114
  const currentCalDate = scheduler2.date.date_part(scheduler2._currentDate());
9106
- if (lastDate.getDay() !== 0) {
9115
+ if (lastDate.getDay() !== 0 && scheduler2.config.start_on_monday) {
9116
+ const dayOfWeek = lastDate.getDay();
9117
+ const daysToSunday = (7 - dayOfWeek) % 7;
9118
+ lastDate = scheduler2.date.add(lastDate, daysToSunday + 1, "day");
9119
+ } else {
9107
9120
  lastDate = scheduler2.date.add(scheduler2.date.week_start(lastDate), 1, "week");
9108
9121
  }
9109
9122
  let weeks = this._weeksBetween(firstDate, lastDate);
@@ -9228,7 +9241,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
9228
9241
  }
9229
9242
  }
9230
9243
  function factoryMethod(extensionManager) {
9231
- const scheduler2 = { version: "7.2.9" };
9244
+ const scheduler2 = { version: "7.2.10" };
9232
9245
  scheduler2.$stateProvider = StateService();
9233
9246
  scheduler2.getState = scheduler2.$stateProvider.getState;
9234
9247
  extend$n(scheduler2);
@@ -10185,6 +10198,9 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
10185
10198
  var conditionalUpdateContainerHeight = function() {
10186
10199
  if (!(scheduler2.config.container_autoresize && active))
10187
10200
  return true;
10201
+ if (scheduler2._drag_mode && scheduler2._drag_mode === "create" && scheduler2._mobile) {
10202
+ return true;
10203
+ }
10188
10204
  var mode = scheduler2.getState().mode;
10189
10205
  if (!mode) {
10190
10206
  return true;