@syncfusion/ej2-schedule 27.1.51 → 27.1.53
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.
- package/dist/ej2-schedule.min.js +10 -0
- package/dist/ej2-schedule.umd.min.js +2 -2
- package/dist/ej2-schedule.umd.min.js.map +1 -1
- package/dist/es6/ej2-schedule.es2015.js +54 -13
- package/dist/es6/ej2-schedule.es2015.js.map +1 -1
- package/dist/es6/ej2-schedule.es5.js +59 -15
- package/dist/es6/ej2-schedule.es5.js.map +1 -1
- package/dist/global/ej2-schedule.min.js +2 -2
- package/dist/global/ej2-schedule.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +12 -12
- package/src/schedule/actions/resize.js +4 -9
- package/src/schedule/base/schedule.js +2 -1
- package/src/schedule/event-renderer/month.d.ts +1 -0
- package/src/schedule/event-renderer/month.js +11 -1
- package/src/schedule/event-renderer/vertical-view.js +25 -3
- package/src/schedule/popups/event-tooltip.js +1 -1
- package/src/schedule/popups/event-window.js +16 -0
|
@@ -7469,8 +7469,27 @@ class VerticalEvent extends EventBase {
|
|
|
7469
7469
|
if (this.parent.activeViewOptions.group.resources.length > 0) {
|
|
7470
7470
|
this.overlapList = this.filterEventsByResource(this.resources[parseInt(resource.toString(), 10)], this.overlapList);
|
|
7471
7471
|
}
|
|
7472
|
+
const queue = [];
|
|
7472
7473
|
this.overlapList.forEach((obj) => {
|
|
7473
|
-
|
|
7474
|
+
queue.push(obj);
|
|
7475
|
+
let filterList = [];
|
|
7476
|
+
const processedIds = new Set();
|
|
7477
|
+
while (queue.length > 0) {
|
|
7478
|
+
const currentObj = queue.shift();
|
|
7479
|
+
const overlaps = appointmentList.filter((data) => {
|
|
7480
|
+
return data[fieldMapping.endTime] > currentObj[fieldMapping.startTime] &&
|
|
7481
|
+
data[fieldMapping.startTime] <= currentObj[fieldMapping.endTime] &&
|
|
7482
|
+
!processedIds.has(data[fieldMapping.id]);
|
|
7483
|
+
});
|
|
7484
|
+
overlaps.forEach((overlap) => {
|
|
7485
|
+
filterList.push(overlap);
|
|
7486
|
+
processedIds.add(overlap[fieldMapping.id]);
|
|
7487
|
+
queue.push(overlap);
|
|
7488
|
+
});
|
|
7489
|
+
if (processedIds.size < appointmentList.length - 1) {
|
|
7490
|
+
break;
|
|
7491
|
+
}
|
|
7492
|
+
}
|
|
7474
7493
|
if (this.parent.activeViewOptions.group.resources.length > 0) {
|
|
7475
7494
|
filterList = this.filterEventsByResource(this.resources[parseInt(resource.toString(), 10)], filterList);
|
|
7476
7495
|
}
|
|
@@ -8270,7 +8289,7 @@ class MonthEvent extends EventBase {
|
|
|
8270
8289
|
renderEventElement(event, appointmentElement, cellTd) {
|
|
8271
8290
|
const eventType = appointmentElement.classList.contains(BLOCK_APPOINTMENT_CLASS) ? 'blockEvent' : 'event';
|
|
8272
8291
|
const isAppointment = appointmentElement.classList.contains(APPOINTMENT_CLASS);
|
|
8273
|
-
const eventObj = this.getEventData(event);
|
|
8292
|
+
const eventObj = this.parent.currentView === 'Month' ? this.getSpannedTime(event) : this.getEventData(event);
|
|
8274
8293
|
const args = { data: eventObj, element: appointmentElement, cancel: false, type: eventType };
|
|
8275
8294
|
this.parent.trigger(eventRendered, args, (eventArgs) => {
|
|
8276
8295
|
if (eventArgs.cancel) {
|
|
@@ -8281,6 +8300,16 @@ class MonthEvent extends EventBase {
|
|
|
8281
8300
|
}
|
|
8282
8301
|
});
|
|
8283
8302
|
}
|
|
8303
|
+
getSpannedTime(event) {
|
|
8304
|
+
const eventObj = extend({}, event, null, true);
|
|
8305
|
+
if ((eventObj[this.fields.startTime]).getDate() === (eventObj.data[this.fields.startTime]).getDate()) {
|
|
8306
|
+
eventObj[this.fields.startTime] = eventObj.data[this.fields.startTime];
|
|
8307
|
+
}
|
|
8308
|
+
if ((eventObj[this.fields.endTime]).getDate() === (eventObj.data[this.fields.endTime]).getDate()) {
|
|
8309
|
+
eventObj[this.fields.endTime] = eventObj.data[this.fields.endTime];
|
|
8310
|
+
}
|
|
8311
|
+
return eventObj;
|
|
8312
|
+
}
|
|
8284
8313
|
getEventData(event) {
|
|
8285
8314
|
const eventObj = extend({}, event, null, true);
|
|
8286
8315
|
eventObj[this.fields.startTime] = event.data[this.fields.startTime];
|
|
@@ -10800,7 +10829,7 @@ class EventTooltip {
|
|
|
10800
10829
|
this.parent.resetTemplates(['tooltipTemplate', 'headerTooltipTemplate']);
|
|
10801
10830
|
}
|
|
10802
10831
|
setContent(content) {
|
|
10803
|
-
this.tooltipObj.setProperties({ content: content }, true);
|
|
10832
|
+
this.tooltipObj.setProperties({ content: content, windowCollision: true }, true);
|
|
10804
10833
|
}
|
|
10805
10834
|
close() {
|
|
10806
10835
|
this.tooltipObj.close();
|
|
@@ -12937,6 +12966,9 @@ class EventWindow {
|
|
|
12937
12966
|
else if (element.classList.contains('e-checkbox')) {
|
|
12938
12967
|
fieldSelector = 'e-checkbox';
|
|
12939
12968
|
}
|
|
12969
|
+
else if (element.classList.contains('e-numerictextbox')) {
|
|
12970
|
+
fieldSelector = 'e-numerictextbox';
|
|
12971
|
+
}
|
|
12940
12972
|
const classSelector = isDropDowns ? `.${fieldSelector}:not(.e-control)` : `.${fieldSelector}`;
|
|
12941
12973
|
const control = closest(element, classSelector) || element.querySelector(`.${fieldSelector}`);
|
|
12942
12974
|
if (control) {
|
|
@@ -13667,6 +13699,9 @@ class EventWindow {
|
|
|
13667
13699
|
else if (element.classList.contains('e-checkbox')) {
|
|
13668
13700
|
value = element.ej2_instances[0].checked;
|
|
13669
13701
|
}
|
|
13702
|
+
else if (element.classList.contains('e-numerictextbox')) {
|
|
13703
|
+
value = element.ej2_instances[0].value;
|
|
13704
|
+
}
|
|
13670
13705
|
else {
|
|
13671
13706
|
if (element.type === 'checkbox') {
|
|
13672
13707
|
value = element.checked;
|
|
@@ -13711,6 +13746,11 @@ class EventWindow {
|
|
|
13711
13746
|
instance.checked = value;
|
|
13712
13747
|
instance.dataBind();
|
|
13713
13748
|
}
|
|
13749
|
+
else if (element.classList.contains('e-numerictextbox')) {
|
|
13750
|
+
const instance = element.ej2_instances[0];
|
|
13751
|
+
instance.value = value;
|
|
13752
|
+
instance.dataBind();
|
|
13753
|
+
}
|
|
13714
13754
|
else {
|
|
13715
13755
|
if (element.type !== 'checkbox') {
|
|
13716
13756
|
element.value = value || '';
|
|
@@ -13748,6 +13788,11 @@ class EventWindow {
|
|
|
13748
13788
|
instance.checked = false;
|
|
13749
13789
|
instance.dataBind();
|
|
13750
13790
|
}
|
|
13791
|
+
else if (element.classList.contains('e-numerictextbox')) {
|
|
13792
|
+
const instance = element.ej2_instances[0];
|
|
13793
|
+
instance.value = null;
|
|
13794
|
+
instance.dataBind();
|
|
13795
|
+
}
|
|
13751
13796
|
else {
|
|
13752
13797
|
if (element.type === 'checkbox') {
|
|
13753
13798
|
element.checked = false;
|
|
@@ -18764,8 +18809,9 @@ let Schedule = class Schedule extends Component {
|
|
|
18764
18809
|
const msMajorInterval = this.activeViewOptions.timeScale.interval * MS_PER_MINUTE;
|
|
18765
18810
|
const msInterval = msMajorInterval / this.activeViewOptions.timeScale.slotCount;
|
|
18766
18811
|
const offsetDiff = ((viewStartHour.getTimezoneOffset() - startHour.getTimezoneOffset()) * MS_PER_MINUTE);
|
|
18812
|
+
const endOffsetDiff = Math.abs((viewStartHour.getTimezoneOffset() - endHour.getTimezoneOffset()) * MS_PER_MINUTE);
|
|
18767
18813
|
let startIndex = Math.round((startHour.getTime() - viewStartHour.getTime() + offsetDiff) / msInterval);
|
|
18768
|
-
let endIndex = Math.ceil((endHour.getTime() - viewStartHour.getTime()
|
|
18814
|
+
let endIndex = Math.ceil((endHour.getTime() - viewStartHour.getTime() - endOffsetDiff) / msInterval);
|
|
18769
18815
|
const tempStartIndex = startIndex;
|
|
18770
18816
|
const tempEndIndex = endIndex;
|
|
18771
18817
|
const cells = [];
|
|
@@ -20708,11 +20754,8 @@ class Resize extends ActionBase {
|
|
|
20708
20754
|
const eventStart = new Date(this.actionObj.event[this.parent.eventFields.startTime].getTime());
|
|
20709
20755
|
const eventEnd = new Date(this.actionObj.event[this.parent.eventFields.endTime].getTime());
|
|
20710
20756
|
let resizeTime;
|
|
20711
|
-
let isDateHeader = false;
|
|
20712
20757
|
let headerName = this.parent.currentView;
|
|
20713
|
-
const isTimeViews = ['TimelineDay', 'TimelineWeek', 'TimelineWorkWeek'].indexOf(this.parent.currentView) > -1;
|
|
20714
20758
|
const isTimelineMonth = this.parent.currentView === 'TimelineMonth';
|
|
20715
|
-
const isWithoutScale = isTimelineMonth || isTimeViews && !this.parent.activeViewOptions.timeScale.enable;
|
|
20716
20759
|
if (this.parent.activeView.isTimelineView()) {
|
|
20717
20760
|
const tr = this.parent.getContentTable().querySelector('tr');
|
|
20718
20761
|
if (this.parent.activeViewOptions.headerRows.length > 0) {
|
|
@@ -20744,7 +20787,6 @@ class Resize extends ActionBase {
|
|
|
20744
20787
|
}
|
|
20745
20788
|
cellIndex = !isTimelineMonth ? Math.round(offsetValue / (this.parent.getElementWidth(tr) / noOfDays)) :
|
|
20746
20789
|
Math.floor(offsetValue / Math.floor(this.parent.getElementWidth(tr) / noOfDays));
|
|
20747
|
-
isDateHeader = isTimeViews && headerName === 'Date';
|
|
20748
20790
|
cellIndex = isLeft ? cellIndex : isTimelineMonth ? cellIndex + 1 : cellIndex;
|
|
20749
20791
|
isLastCell = cellIndex === tdCollections.length;
|
|
20750
20792
|
cellIndex = (cellIndex < 0) ? 0 : (cellIndex >= noOfDays) ? noOfDays - 1 : cellIndex;
|
|
@@ -20810,15 +20852,14 @@ class Resize extends ActionBase {
|
|
|
20810
20852
|
!this.parent.activeViewOptions.timeScale.enable;
|
|
20811
20853
|
if (isLeft) {
|
|
20812
20854
|
if ((eventEnd.getTime() - resizeTime.getTime()) <= 0) {
|
|
20813
|
-
resizeTime =
|
|
20855
|
+
resizeTime = isNotHourSlot ? resetTime(eventEnd) : eventStart;
|
|
20814
20856
|
}
|
|
20815
20857
|
this.actionObj.start = !isNotHourSlot ? this.calculateIntervalTime(resizeTime) : resizeTime;
|
|
20816
20858
|
}
|
|
20817
20859
|
else {
|
|
20818
|
-
|
|
20819
|
-
|
|
20820
|
-
|
|
20821
|
-
if (isWithoutScale && (resizeEnd.getTime() - eventStart.getTime()) <= 0) {
|
|
20860
|
+
let resizeEnd = (isNotHourSlot && resizeTime.getHours() === 0 && resizeTime.getMinutes() === 0) ?
|
|
20861
|
+
addDays(resizeTime, 1) : resizeTime;
|
|
20862
|
+
if (isNotHourSlot && (resizeEnd.getTime() - eventStart.getTime()) <= 0) {
|
|
20822
20863
|
resizeEnd = addDays(resetTime(eventStart), 1);
|
|
20823
20864
|
}
|
|
20824
20865
|
this.actionObj.end = !isNotHourSlot ? this.calculateIntervalTime(resizeEnd) : resizeEnd;
|