@@ -3,7 +3,7 @@ import { tracked } from '@glimmer/tracking';
3
3
import { action } from '@ember/object' ;
4
4
import { guidFor } from '@ember/object/internals' ;
5
5
import { inject as service } from '@ember/service' ;
6
- import { task } from 'ember-concurrency' ;
6
+ import { task , type TaskInstance } from 'ember-concurrency' ;
7
7
import { assert } from '@ember/debug' ;
8
8
import type { ComponentLike } from '@glint/template' ;
9
9
import {
@@ -52,13 +52,13 @@ export interface PowerCalendarActions {
52
52
newCenter : Date ,
53
53
calendar : CalendarAPI ,
54
54
event : MouseEvent ,
55
- ) => void ;
55
+ ) => TaskInstance < void > ;
56
56
moveCenter ?: (
57
57
step : number ,
58
58
unit : TPowerCalendarMoveCenterUnit ,
59
59
calendar : PowerCalendarAPI ,
60
60
event : MouseEvent ,
61
- ) => void ;
61
+ ) => Promise < void > ;
62
62
select ?: ( day : CalendarDay , calendar : CalendarAPI , event : MouseEvent ) => void ;
63
63
}
64
64
@@ -69,14 +69,14 @@ export type TPowerCalendarOnSelect = (
69
69
) => void ;
70
70
71
71
export interface PowerCalendarArgs {
72
- daysComponent ?: string | ComponentLike < any > ;
72
+ daysComponent ?: string | ComponentLike < PowerCalendarDaysComponent > ;
73
73
locale : string ;
74
- navComponent ?: string | ComponentLike < any > ;
74
+ navComponent ?: string | ComponentLike < PowerCalendarNavComponent > ;
75
75
onCenterChange ?: (
76
76
newCenter : NormalizeCalendarValue ,
77
77
calendar : PowerCalendarAPI ,
78
78
event : MouseEvent ,
79
- ) => void ;
79
+ ) => Promise < void > ;
80
80
onInit ?: ( calendar : PowerCalendarAPI ) => void ;
81
81
onSelect ?: TPowerCalendarOnSelect ;
82
82
selected ?: SelectedDays ;
@@ -85,8 +85,8 @@ export interface PowerCalendarArgs {
85
85
}
86
86
87
87
export interface PowerCalendarDefaultBlock extends PowerCalendarAPI {
88
- NavComponent : ComponentLike < any > ;
89
- DaysComponent : ComponentLike < any > ;
88
+ NavComponent : ComponentLike < PowerCalendarNavComponent > ;
89
+ DaysComponent : ComponentLike < PowerCalendarDaysComponent > ;
90
90
}
91
91
92
92
export type CalendarDay =
@@ -109,8 +109,8 @@ export default class PowerCalendarComponent extends Component<PowerCalendarSigna
109
109
@tracked _calendarType : TCalendarType = 'single' ;
110
110
@tracked _selected ?: SelectedDays ;
111
111
112
- navComponent : ComponentLike < any > = PowerCalendarNavComponent ;
113
- daysComponent : ComponentLike < any > = PowerCalendarDaysComponent ;
112
+ navComponent = PowerCalendarNavComponent ;
113
+ daysComponent = PowerCalendarDaysComponent ;
114
114
115
115
// Lifecycle hooks
116
116
constructor ( owner : Owner , args : PowerCalendarArgs ) {
@@ -129,7 +129,7 @@ export default class PowerCalendarComponent extends Component<PowerCalendarSigna
129
129
get publicActions ( ) : PowerCalendarActions {
130
130
return publicActionsObject (
131
131
this . args . onSelect ,
132
- this . select ,
132
+ this . select . bind ( this ) ,
133
133
this . args . onCenterChange ,
134
134
this . changeCenterTask ,
135
135
this . currentCenter ,
@@ -206,14 +206,17 @@ export default class PowerCalendarComponent extends Component<PowerCalendarSigna
206
206
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
207
207
window . __powerCalendars = window . __powerCalendars || { } ; // TODO: weakmap??
208
208
// @ts -expect-error Property '__powerCalendars'
209
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
209
210
window . __powerCalendars [ this . publicAPI . uniqueId ] = this ;
210
211
}
211
212
}
212
213
213
214
unregisterCalendar ( ) {
214
215
// @ts -expect-error Property '__powerCalendars'
216
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
215
217
if ( window && window . __powerCalendars ?. [ guidFor ( this ) ] ) {
216
218
// @ts -expect-error Property '__powerCalendars'
219
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
217
220
delete window . __powerCalendars [ guidFor ( this ) ] ;
218
221
}
219
222
}
0 commit comments