Skip to content

Commit ab764ec

Browse files
committed
feat: upgrade the drag and drop library
BREAKING CHANGE: there were some minor breaking changes in the drag and drop library that might affect your app if you were using it outside of the calendar. See the changelog for more info: https://github.com/mattlewis92/angular-draggable-droppable/blob/master/CHANGELOG.md
1 parent b3c9520 commit ab764ec

12 files changed

+38
-37
lines changed

demos/demo-modules/context-menu/template.html

+1-2
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@
4949
[class.cal-today]="day.isToday"
5050
[class.cal-future]="day.isFuture"
5151
[class.cal-weekend]="day.isWeekend"
52-
[class.cal-drag-over]="day.dragOver"
5352
(click)="dayHeaderClicked.emit({day: day})"
5453
[contextMenu]="basicMenu"
5554
[contextMenuSubject]="day.date">
@@ -93,4 +92,4 @@
9392
[refresh]="refresh"
9493
[hourSegmentTemplate]="dayHourSegmentTemplate">
9594
</mwl-calendar-day-view>
96-
</div>
95+
</div>

karma.conf.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ export default config => {
7878
},
7979
plugins: [
8080
new FilterWarningsPlugin({
81-
exclude: /export '\w+' was not found in 'calendar-utils'/
81+
exclude: /was not found in 'calendar-utils'/
8282
}),
8383
...(config.singleRun
8484
? [

package-lock.json

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@
163163
"@angular/core": ">=6.0.0 <8.0.0"
164164
},
165165
"dependencies": {
166-
"angular-draggable-droppable": "^3.0.0",
166+
"angular-draggable-droppable": "^4.0.0-alpha.10",
167167
"angular-resizable-element": "^3.0.0",
168168
"calendar-utils": "^0.2.0-alpha.5",
169169
"positioning": "^1.3.1"

src/modules/calendar.module.ts

-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { NgModule, ModuleWithProviders, Provider } from '@angular/core';
2-
import { DraggableHelper } from 'angular-draggable-droppable';
32
import {
43
CalendarCommonModule,
54
CalendarModuleConfig,
@@ -52,7 +51,6 @@ export class CalendarModule {
5251
return {
5352
ngModule: CalendarModule,
5453
providers: [
55-
DraggableHelper,
5654
calendarUtils,
5755
config.eventTitleFormatter || CalendarEventTitleFormatter,
5856
config.dateFormatter || CalendarDateFormatter

src/modules/common/calendar-common.module.ts

-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { ModuleWithProviders, NgModule, Provider } from '@angular/core';
22
import { CommonModule } from '@angular/common';
3-
import { DraggableHelper } from 'angular-draggable-droppable';
43
import { CalendarEventActionsComponent } from './calendar-event-actions.component';
54
import { CalendarEventTitleComponent } from './calendar-event-title.component';
65
import {
@@ -90,7 +89,6 @@ export class CalendarCommonModule {
9089
return {
9190
ngModule: CalendarCommonModule,
9291
providers: [
93-
DraggableHelper,
9492
calendarUtils,
9593
config.eventTitleFormatter || CalendarEventTitleFormatter,
9694
config.dateFormatter || CalendarDateFormatter

src/modules/day/calendar-day-view.component.ts

+2-4
Original file line numberDiff line numberDiff line change
@@ -116,11 +116,9 @@ export interface DayViewEventResize {
116116
[locale]="locale"
117117
[customTemplate]="hourSegmentTemplate"
118118
(click)="hourSegmentClicked.emit({date: segment.date})"
119-
[class.cal-drag-over]="segment.dragOver"
120119
mwlDroppable
121-
(dragEnter)="segment.dragOver = true"
122-
(dragLeave)="segment.dragOver = false"
123-
(drop)="segment.dragOver = false; eventDropped($event, segment)">
120+
dragOverClass="cal-drag-over"
121+
(drop)="eventDropped($event, segment)">
124122
</mwl-calendar-day-view-hour-segment>
125123
</div>
126124
</div>

src/modules/month/calendar-month-view.component.ts

+2-4
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ export interface CalendarMonthViewEventTimesChangedEvent
5858
<div class="cal-cell-row">
5959
<mwl-calendar-month-cell
6060
*ngFor="let day of (view.days | slice : rowIndex : rowIndex + (view.totalDaysVisibleInWeek)); trackBy:trackByDate"
61-
[class.cal-drag-over]="day.dragOver"
6261
[ngClass]="day?.cssClass"
6362
[day]="day"
6463
[openDay]="openDay"
@@ -71,9 +70,8 @@ export interface CalendarMonthViewEventTimesChangedEvent
7170
(highlightDay)="toggleDayHighlight($event.event, true)"
7271
(unhighlightDay)="toggleDayHighlight($event.event, false)"
7372
mwlDroppable
74-
(dragEnter)="day.dragOver = true"
75-
(dragLeave)="day.dragOver = false"
76-
(drop)="day.dragOver = false; eventDropped(day, $event.dropData.event)"
73+
dragOverClass="cal-drag-over"
74+
(drop)="eventDropped(day, $event.dropData.event)"
7775
(eventClicked)="eventClicked.emit({event: $event.event})">
7876
</mwl-calendar-month-cell>
7977
</div>

src/modules/week/calendar-week-view-header.component.ts

+2-4
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,11 @@ import { trackByWeekDayHeaderDate } from '../common/util';
2525
[class.cal-today]="day.isToday"
2626
[class.cal-future]="day.isFuture"
2727
[class.cal-weekend]="day.isWeekend"
28-
[class.cal-drag-over]="day.dragOver"
2928
[ngClass]="day.cssClass"
3029
(mwlClick)="dayHeaderClicked.emit({day: day})"
3130
mwlDroppable
32-
(dragEnter)="day.dragOver = true"
33-
(dragLeave)="day.dragOver = false"
34-
(drop)="day.dragOver = false; eventDropped.emit({event: $event.dropData.event, newStart: day.date})">
31+
dragOVerClass="cal-drag-over"
32+
(drop)="eventDropped.emit({event: $event.dropData.event, newStart: day.date})">
3533
<b>{{ day.date | calendarDate:'weekViewColumnHeader':locale }}</b><br>
3634
<span>{{ day.date | calendarDate:'weekViewColumnSubHeader':locale }}</span>
3735
</div>

test/calendar-day-view.component.spec.ts

+22-11
Original file line numberDiff line numberDiff line change
@@ -653,7 +653,7 @@ describe('CalendarDayViewComponent component', () => {
653653
fixture.detectChanges();
654654
document.body.appendChild(fixture.nativeElement);
655655
const event: HTMLElement = fixture.nativeElement.querySelector(
656-
'.cal-event'
656+
'.cal-event-container'
657657
);
658658
const eventPosition: ClientRect = event.getBoundingClientRect();
659659
let dragEvent: CalendarEventTimesChangedEvent;
@@ -670,8 +670,11 @@ describe('CalendarDayViewComponent component', () => {
670670
clientX: eventPosition.left + 10
671671
});
672672
fixture.detectChanges();
673-
expect(event.getBoundingClientRect().top).to.equal(eventPosition.top + 30);
674-
expect(event.getBoundingClientRect().bottom).to.equal(
673+
const ghostElement = event.nextSibling as HTMLElement;
674+
expect(ghostElement.getBoundingClientRect().top).to.equal(
675+
eventPosition.top + 30
676+
);
677+
expect(ghostElement.getBoundingClientRect().bottom).to.equal(
675678
eventPosition.bottom + 30
676679
);
677680
triggerDomEvent('mouseup', document.body, {
@@ -718,7 +721,7 @@ describe('CalendarDayViewComponent component', () => {
718721
fixture.detectChanges();
719722
document.body.appendChild(fixture.nativeElement);
720723
const event: HTMLElement = fixture.nativeElement.querySelector(
721-
'.cal-event'
724+
'.cal-event-container'
722725
);
723726
const eventPosition: ClientRect = event.getBoundingClientRect();
724727
const calendarPosition: ClientRect = fixture.nativeElement.getBoundingClientRect();
@@ -732,17 +735,22 @@ describe('CalendarDayViewComponent component', () => {
732735
clientX: eventPosition.left + 10
733736
});
734737
fixture.detectChanges();
735-
expect(event.getBoundingClientRect().top).to.equal(calendarPosition.top);
736-
expect(event.getBoundingClientRect().bottom).to.equal(
738+
const ghostElement = event.nextSibling as HTMLElement;
739+
expect(ghostElement.getBoundingClientRect().top).to.equal(
740+
calendarPosition.top
741+
);
742+
expect(ghostElement.getBoundingClientRect().bottom).to.equal(
737743
calendarPosition.top + eventPosition.height
738744
);
739745
triggerDomEvent('mousemove', document.body, {
740746
clientY: calendarPosition.top - 60,
741747
clientX: eventPosition.left + 10
742748
});
743749
fixture.detectChanges();
744-
expect(event.getBoundingClientRect().top).to.equal(calendarPosition.top);
745-
expect(event.getBoundingClientRect().bottom).to.equal(
750+
expect(ghostElement.getBoundingClientRect().top).to.equal(
751+
calendarPosition.top
752+
);
753+
expect(ghostElement.getBoundingClientRect().bottom).to.equal(
746754
calendarPosition.top + eventPosition.height
747755
);
748756
triggerDomEvent('mouseup', document.body, {
@@ -888,7 +896,7 @@ describe('CalendarDayViewComponent component', () => {
888896
fixture.detectChanges();
889897
document.body.appendChild(fixture.nativeElement);
890898
const event: HTMLElement = fixture.nativeElement.querySelector(
891-
'.cal-event'
899+
'.cal-event-container'
892900
);
893901
const eventPosition: ClientRect = event.getBoundingClientRect();
894902
let dragEvent: CalendarEventTimesChangedEvent;
@@ -905,8 +913,11 @@ describe('CalendarDayViewComponent component', () => {
905913
clientX: eventPosition.left + 10
906914
});
907915
fixture.detectChanges();
908-
expect(event.getBoundingClientRect().top).to.equal(eventPosition.top + 10);
909-
expect(event.getBoundingClientRect().bottom).to.equal(
916+
const ghostElement = event.nextSibling as HTMLElement;
917+
expect(ghostElement.getBoundingClientRect().top).to.equal(
918+
eventPosition.top + 10
919+
);
920+
expect(ghostElement.getBoundingClientRect().bottom).to.equal(
910921
eventPosition.bottom + 10
911922
);
912923
triggerDomEvent('mouseup', document.body, {

test/calendar-month-view.component.spec.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -584,7 +584,8 @@ describe('calendarMonthView component', () => {
584584
});
585585
fixture.detectChanges();
586586
expect(cells[10].classList.contains('cal-drag-over')).to.equal(true);
587-
const eventAfterDragPosition: ClientRect = event.getBoundingClientRect();
587+
const ghostElement = event.nextSibling as HTMLElement;
588+
const eventAfterDragPosition: ClientRect = ghostElement.getBoundingClientRect();
588589
const movedLeft: number = dragToCellPosition.left - eventStartPosition.left;
589590
expect(eventAfterDragPosition.left).to.equal(
590591
eventStartPosition.left + movedLeft

test/calendar-week-view.component.spec.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -633,7 +633,8 @@ describe('calendarWeekView component', () => {
633633
clientY: eventPosition.top
634634
});
635635
fixture.detectChanges();
636-
expect(Math.round(event.getBoundingClientRect().left)).to.equal(
636+
const ghostElement = event.nextSibling as HTMLElement;
637+
expect(Math.round(ghostElement.getBoundingClientRect().left)).to.equal(
637638
Math.round(eventPosition.left - dayWidth)
638639
);
639640
triggerDomEvent('mouseup', document.body, {
@@ -807,7 +808,6 @@ describe('calendarWeekView component', () => {
807808
clientX: headerPosition.left
808809
});
809810
fixture.detectChanges();
810-
expect(header.classList.contains('cal-drag-over')).to.equal(true);
811811
triggerDomEvent('mouseup', document.body, {
812812
clientY: headerPosition.top,
813813
clientX: headerPosition.left

0 commit comments

Comments
 (0)