@progress/kendo-angular-scheduler 25.4.0-develop.23 → 25.4.0-develop.25

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.
@@ -44,8 +44,8 @@ const packageMetadata = {
44
44
  productName: 'Kendo UI for Angular',
45
45
  productCode: 'KENDOUIANGULAR',
46
46
  productCodes: ['KENDOUIANGULAR'],
47
- publishDate: 1793358624,
48
- version: '25.4.0-develop.23',
47
+ publishDate: 1793613857,
48
+ version: '25.4.0-develop.25',
49
49
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
50
50
  };
51
51
 
@@ -2678,10 +2678,27 @@ const allDaysHidden = (days) => {
2678
2678
  return true;
2679
2679
  };
2680
2680
  /** @hidden */
2681
- const intersects = (startTime, endTime, periodStart, periodEnd) => (startTime < periodStart && endTime > periodEnd) ||
2681
+ const truncateToMinutes = (date) => {
2682
+ if (date.getSeconds() === 0 && date.getMilliseconds() === 0) {
2683
+ return date;
2684
+ }
2685
+ const result = new Date(date.getTime());
2686
+ result.setUTCSeconds(0, 0);
2687
+ return result;
2688
+ };
2689
+ /** @hidden */
2690
+ const eventsIntersect = (startTime, endTime, periodStart, periodEnd) => (startTime < periodStart && endTime > periodEnd) ||
2682
2691
  (periodStart <= startTime && startTime < periodEnd) ||
2683
2692
  (periodStart < endTime && endTime <= periodEnd && startTime < endTime);
2684
2693
  /** @hidden */
2694
+ const slotBoundaryEnd = (endTime, periodStart, periodEnd) => {
2695
+ const minuteAligned = periodStart.getSeconds() === 0 && periodStart.getMilliseconds() === 0 &&
2696
+ periodEnd.getSeconds() === 0 && periodEnd.getMilliseconds() === 0;
2697
+ return minuteAligned ? truncateToMinutes(endTime) : endTime;
2698
+ };
2699
+ /** @hidden */
2700
+ const intersects = (startTime, endTime, periodStart, periodEnd) => eventsIntersect(startTime, slotBoundaryEnd(endTime, periodStart, periodEnd), periodStart, periodEnd);
2701
+ /** @hidden */
2685
2702
  const dateInRange = (date, start, end) => start.getTime() <= date.getTime() && date.getTime() <= end.getTime();
2686
2703
  /** @hidden */
2687
2704
  const getVerticalPaddingAndBorder = (element) => {
@@ -13180,16 +13197,16 @@ class MonthSlotService extends BaseSlotService {
13180
13197
  const endDate = task.end.toUTCDate();
13181
13198
  let start, end;
13182
13199
  if (resizeStart) {
13183
- start = currentSlot.start.getTime() + offset.start;
13184
- if (start > endDate.getTime()) {
13200
+ start = new Date(currentSlot.start.getTime() + offset.start);
13201
+ if (start.getTime() > endDate.getTime()) {
13185
13202
  start = new Date(Math.min(dateWithTime(endDate, startDate).getTime(), endDate.getTime()));
13186
13203
  }
13187
13204
  end = endDate;
13188
13205
  }
13189
13206
  else {
13190
13207
  start = startDate;
13191
- end = currentSlot.start.getTime() + offset.end;
13192
- if (end < start.getTime()) {
13208
+ end = new Date(currentSlot.start.getTime() + offset.end);
13209
+ if (end.getTime() < start.getTime()) {
13193
13210
  end = new Date(Math.max(dateWithTime(startDate, endDate).getTime(), start.getTime()));
13194
13211
  }
13195
13212
  }
@@ -17099,7 +17116,7 @@ function initTimeColumns(slotKeys, slotItems) {
17099
17116
  groupSlots.push(slot);
17100
17117
  for (let eventIdx = 0; eventIdx < count; eventIdx++) {
17101
17118
  const event = events[eventIdx];
17102
- const endsInSlot = event.item.endTime.getTime() <= slot.end.getTime();
17119
+ const endsInSlot = slotBoundaryEnd(event.item.endTime, slot.start, slot.end).getTime() <= slot.end.getTime();
17103
17120
  // Grouping needs to consider the enforced minimum rendered height with MIN_EVENT_HEIGHT.
17104
17121
  let visuallyEndsInSlot = true;
17105
17122
  if (endsInSlot) {
@@ -17128,11 +17145,11 @@ function initTimeColumns(slotKeys, slotItems) {
17128
17145
  }
17129
17146
  // Events that don't intersect their start or end times but overlap in rendered height due to the minimum event height
17130
17147
  const anyOverlappingEvents = events.filter(e => e !== current && e.rect).some(event => {
17131
- const areIntersecting = intersects(event.item.startTime, event.item.endTime, current.item.startTime, current.item.endTime);
17148
+ const areIntersecting = eventsIntersect(event.item.startTime, event.item.endTime, current.item.startTime, current.item.endTime);
17132
17149
  const areOverlapping = minHeightOverlaps(current.rect.top, event.rect.top);
17133
17150
  return !areIntersecting && areOverlapping;
17134
17151
  });
17135
- const intersectingEvents = intersects(event.item.startTime, event.item.endTime, current.item.startTime, current.item.endTime);
17152
+ const intersectingEvents = eventsIntersect(event.item.startTime, event.item.endTime, current.item.startTime, current.item.endTime);
17136
17153
  const overlappingEvents = minHeightOverlaps(current.rect.top, event.rect.top);
17137
17154
  if (!(anyOverlappingEvents || intersectingEvents || overlappingEvents)) {
17138
17155
  const targetColumn = current.columnIndex;
@@ -17140,7 +17157,7 @@ function initTimeColumns(slotKeys, slotItems) {
17140
17157
  const hasColumnConflict = events.some(e => e !== current &&
17141
17158
  isNumber(e.columnIndex) &&
17142
17159
  e.columnIndex === targetColumn &&
17143
- (intersects(event.item.startTime, event.item.endTime, e.item.startTime, e.item.endTime) ||
17160
+ (eventsIntersect(event.item.startTime, event.item.endTime, e.item.startTime, e.item.endTime) ||
17144
17161
  (e.rect && event.rect && minHeightOverlaps(e.rect.top, event.rect.top))));
17145
17162
  if (hasColumnConflict) {
17146
17163
  previousIdx = current.columnIndex;
@@ -17162,7 +17179,7 @@ function initTimeColumns(slotKeys, slotItems) {
17162
17179
  event.lastColumn = !events.some((e) => {
17163
17180
  const hasColumnIndex = e.columnIndex;
17164
17181
  const isBeforeCurrentIndex = targetColumn < e.columnIndex;
17165
- const areIntersecting = intersects(event.item.startTime, event.item.endTime, e.item.startTime, e.item.endTime);
17182
+ const areIntersecting = eventsIntersect(event.item.startTime, event.item.endTime, e.item.startTime, e.item.endTime);
17166
17183
  return hasColumnIndex && isBeforeCurrentIndex && areIntersecting;
17167
17184
  });
17168
17185
  events.splice(eventIdx, 1);
@@ -17210,7 +17227,7 @@ function findTimeRowIndex(events, event) {
17210
17227
  }
17211
17228
  for (let idx = 0; idx < events.length; idx++) {
17212
17229
  const current = events[idx];
17213
- if (!current || !intersects(event.item.startTime, event.item.endTime, current.item.startTime, current.item.endTime)) {
17230
+ if (!current || !eventsIntersect(event.item.startTime, event.item.endTime, current.item.startTime, current.item.endTime)) {
17214
17231
  return idx;
17215
17232
  }
17216
17233
  }
@@ -7,7 +7,7 @@ export const packageMetadata = {
7
7
  "productCodes": [
8
8
  "KENDOUIANGULAR"
9
9
  ],
10
- "publishDate": 1793358624,
11
- "version": "25.4.0-develop.23",
10
+ "publishDate": 1793613857,
11
+ "version": "25.4.0-develop.25",
12
12
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
13
13
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-scheduler",
3
- "version": "25.4.0-develop.23",
3
+ "version": "25.4.0-develop.25",
4
4
  "description": "Kendo UI Scheduler Angular - Outlook or Google-style angular scheduler calendar. Full-featured and customizable embedded scheduling from the creator developers trust for professional UI components.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -80,7 +80,7 @@
80
80
  "package": {
81
81
  "productName": "Kendo UI for Angular",
82
82
  "productCode": "KENDOUIANGULAR",
83
- "publishDate": 1793358624,
83
+ "publishDate": 1793613857,
84
84
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
85
85
  }
86
86
  },
@@ -93,23 +93,23 @@
93
93
  "@progress/kendo-data-query": "^1.7.3",
94
94
  "@progress/kendo-drawing": "^1.25.0",
95
95
  "@progress/kendo-licensing": "^1.11.0",
96
- "@progress/kendo-angular-tooltip": "25.4.0-develop.23",
97
- "@progress/kendo-angular-buttons": "25.4.0-develop.23",
98
- "@progress/kendo-angular-common": "25.4.0-develop.23",
99
- "@progress/kendo-angular-dateinputs": "25.4.0-develop.23",
100
- "@progress/kendo-angular-dialog": "25.4.0-develop.23",
101
- "@progress/kendo-angular-dropdowns": "25.4.0-develop.23",
102
- "@progress/kendo-angular-icons": "25.4.0-develop.23",
103
- "@progress/kendo-angular-inputs": "25.4.0-develop.23",
104
- "@progress/kendo-angular-intl": "25.4.0-develop.23",
105
- "@progress/kendo-angular-l10n": "25.4.0-develop.23",
106
- "@progress/kendo-angular-label": "25.4.0-develop.23",
107
- "@progress/kendo-angular-popup": "25.4.0-develop.23",
96
+ "@progress/kendo-angular-tooltip": "25.4.0-develop.25",
97
+ "@progress/kendo-angular-buttons": "25.4.0-develop.25",
98
+ "@progress/kendo-angular-common": "25.4.0-develop.25",
99
+ "@progress/kendo-angular-dateinputs": "25.4.0-develop.25",
100
+ "@progress/kendo-angular-dialog": "25.4.0-develop.25",
101
+ "@progress/kendo-angular-dropdowns": "25.4.0-develop.25",
102
+ "@progress/kendo-angular-icons": "25.4.0-develop.25",
103
+ "@progress/kendo-angular-inputs": "25.4.0-develop.25",
104
+ "@progress/kendo-angular-intl": "25.4.0-develop.25",
105
+ "@progress/kendo-angular-l10n": "25.4.0-develop.25",
106
+ "@progress/kendo-angular-label": "25.4.0-develop.25",
107
+ "@progress/kendo-angular-popup": "25.4.0-develop.25",
108
108
  "rxjs": "^6.5.3 || ^7.0.0"
109
109
  },
110
110
  "dependencies": {
111
111
  "tslib": "^2.3.1",
112
- "@progress/kendo-angular-schematics": "25.4.0-develop.23",
112
+ "@progress/kendo-angular-schematics": "25.4.0-develop.25",
113
113
  "@progress/kendo-date-math": "^1.3.2",
114
114
  "@progress/kendo-draggable": "^3.0.2",
115
115
  "@progress/kendo-file-saver": "^1.0.7",
@@ -9,10 +9,10 @@ const schematics_1 = require("@angular-devkit/schematics");
9
9
  function default_1(options) {
10
10
  const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'SchedulerModule', package: 'scheduler', peerDependencies: {
11
11
  // peer deps of the dropdowns
12
- '@progress/kendo-angular-treeview': '25.4.0-develop.23',
13
- '@progress/kendo-angular-navigation': '25.4.0-develop.23',
12
+ '@progress/kendo-angular-treeview': '25.4.0-develop.25',
13
+ '@progress/kendo-angular-navigation': '25.4.0-develop.25',
14
14
  // peer dependency of kendo-angular-inputs
15
- '@progress/kendo-angular-dialog': '25.4.0-develop.23',
15
+ '@progress/kendo-angular-dialog': '25.4.0-develop.25',
16
16
  // peer dependency of kendo-angular-icons
17
17
  '@progress/kendo-svg-icons': '^4.0.0'
18
18
  } });