@@ -17,7 +17,8 @@ import {
17
17
CalendarEventTimesChangedEvent ,
18
18
DAYS_OF_WEEK ,
19
19
CalendarWeekViewComponent ,
20
- DateAdapter
20
+ DateAdapter ,
21
+ CalendarWeekViewBeforeRenderEvent
21
22
} from '../src' ;
22
23
import { DragAndDropModule } from 'angular-draggable-droppable' ;
23
24
import { Subject } from 'rxjs' ;
@@ -2046,4 +2047,60 @@ describe('calendarWeekView component', () => {
2046
2047
fixture . detectChanges ( ) ;
2047
2048
fixture . destroy ( ) ;
2048
2049
} ) ;
2050
+
2051
+ it ( 'should preserve css classes on hour segments when dragging an event' , ( ) => {
2052
+ const fixture : ComponentFixture <
2053
+ CalendarWeekViewComponent
2054
+ > = TestBed . createComponent ( CalendarWeekViewComponent ) ;
2055
+ fixture . componentInstance . viewDate = new Date ( '2018-07-29' ) ;
2056
+ fixture . componentInstance . events = [
2057
+ {
2058
+ start : moment ( new Date ( '2018-07-29' ) )
2059
+ . startOf ( 'day' )
2060
+ . add ( 3 , 'days' )
2061
+ . toDate ( ) ,
2062
+ title : 'bar' ,
2063
+ draggable : true
2064
+ }
2065
+ ] ;
2066
+ fixture . componentInstance . beforeViewRender . subscribe (
2067
+ ( view : CalendarWeekViewBeforeRenderEvent ) => {
2068
+ view . hourColumns . forEach ( column => {
2069
+ column . hours . forEach ( hour => {
2070
+ hour . segments . forEach ( segment => {
2071
+ segment . cssClass = 'disabled-cell' ;
2072
+ } ) ;
2073
+ } ) ;
2074
+ } ) ;
2075
+ }
2076
+ ) ;
2077
+ fixture . componentInstance . ngOnChanges ( { viewDate : { } , events : { } } ) ;
2078
+ fixture . detectChanges ( ) ;
2079
+ expect (
2080
+ fixture . nativeElement
2081
+ . querySelector ( '.cal-hour-segment' )
2082
+ . classList . contains ( 'disabled-cell' )
2083
+ ) . to . be . true ;
2084
+ document . body . appendChild ( fixture . nativeElement ) ;
2085
+ const events = fixture . nativeElement . querySelectorAll (
2086
+ '.cal-event-container'
2087
+ ) ;
2088
+ const dayWidth : number = events [ 0 ] . parentElement . offsetWidth ;
2089
+ const rect : ClientRect = events [ 0 ] . getBoundingClientRect ( ) ;
2090
+ triggerDomEvent ( 'mousedown' , events [ 0 ] , {
2091
+ clientX : rect . right ,
2092
+ clientY : rect . bottom
2093
+ } ) ;
2094
+ fixture . detectChanges ( ) ;
2095
+ triggerDomEvent ( 'mousemove' , events [ 0 ] , {
2096
+ clientX : rect . right + dayWidth - 5 ,
2097
+ clientY : rect . bottom + 95
2098
+ } ) ;
2099
+ fixture . detectChanges ( ) ;
2100
+ expect (
2101
+ fixture . nativeElement
2102
+ . querySelector ( '.cal-hour-segment' )
2103
+ . classList . contains ( 'disabled-cell' )
2104
+ ) . to . be . true ;
2105
+ } ) ;
2049
2106
} ) ;
0 commit comments