ember-power-calendar 1.4.0 → 1.5.0
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/declarations/-private/utils.d.ts +2 -1
- package/declarations/-private/utils.d.ts.map +1 -1
- package/declarations/components/power-calendar/nav.d.ts +1 -2
- package/declarations/components/power-calendar/nav.d.ts.map +1 -1
- package/declarations/components/power-calendar-multiple/days.d.ts +1 -1
- package/declarations/components/power-calendar-multiple/days.d.ts.map +1 -1
- package/declarations/components/power-calendar-multiple.d.ts +13 -8
- package/declarations/components/power-calendar-multiple.d.ts.map +1 -1
- package/declarations/components/power-calendar-range/days.d.ts +2 -2
- package/declarations/components/power-calendar-range/days.d.ts.map +1 -1
- package/declarations/components/power-calendar-range.d.ts +9 -6
- package/declarations/components/power-calendar-range.d.ts.map +1 -1
- package/declarations/components/power-calendar.d.ts +13 -10
- package/declarations/components/power-calendar.d.ts.map +1 -1
- package/declarations/test-support/helpers.d.ts.map +1 -1
- package/dist/components/power-calendar/days.js +2 -2
- package/dist/components/power-calendar/days.js.map +1 -1
- package/dist/components/power-calendar/nav.js.map +1 -1
- package/dist/components/power-calendar-multiple/days.js +2 -2
- package/dist/components/power-calendar-multiple/days.js.map +1 -1
- package/dist/components/power-calendar-multiple.js +12 -2
- package/dist/components/power-calendar-multiple.js.map +1 -1
- package/dist/components/power-calendar-range/days.js +2 -2
- package/dist/components/power-calendar-range/days.js.map +1 -1
- package/dist/components/power-calendar-range.js +12 -2
- package/dist/components/power-calendar-range.js.map +1 -1
- package/dist/components/power-calendar.js +12 -2
- package/dist/components/power-calendar.js.map +1 -1
- package/dist/test-support/helpers.js +3 -4
- package/dist/test-support/helpers.js.map +1 -1
- package/dist/utils-y7Wx9c84.js +22 -0
- package/dist/utils-y7Wx9c84.js.map +1 -0
- package/package.json +17 -16
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { TaskForAsyncTaskFunction } from 'ember-concurrency';
|
|
2
2
|
import type { CalendarAPI, CalendarDay, PowerCalendarActions, TPowerCalendarOnSelect } from '../components/power-calendar';
|
|
3
|
+
import { type NormalizeCalendarValue } from '../utils.ts';
|
|
3
4
|
import type { TPowerCalendarRangeOnSelect } from '../components/power-calendar-range';
|
|
4
5
|
import type { TPowerCalendarMultipleOnSelect } from '../components/power-calendar-multiple.ts';
|
|
5
|
-
export declare function publicActionsObject(onSelect: TPowerCalendarOnSelect | TPowerCalendarRangeOnSelect | TPowerCalendarMultipleOnSelect | undefined, select: (day: CalendarDay, calendar: CalendarAPI, e: MouseEvent) => void, onCenterChange: ((newCenter:
|
|
6
|
+
export declare function publicActionsObject(onSelect: TPowerCalendarOnSelect | TPowerCalendarRangeOnSelect | TPowerCalendarMultipleOnSelect | undefined, select: (day: CalendarDay, calendar: CalendarAPI, e: MouseEvent) => void, onCenterChange: ((newCenter: NormalizeCalendarValue, calendar: CalendarAPI, event: MouseEvent) => Promise<void> | void) | undefined, changeCenterTask: TaskForAsyncTaskFunction<unknown, (newCenter: Date, calendar: CalendarAPI, e: MouseEvent) => Promise<void>>, currentCenter: Date): PowerCalendarActions;
|
|
6
7
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/-private/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/-private/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAO,KAAK,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AAE/F,wBAAgB,mBAAmB,CACjC,QAAQ,EACJ,sBAAsB,GACtB,2BAA2B,GAC3B,8BAA8B,GAC9B,SAAS,EACb,MAAM,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,KAAK,IAAI,EACxE,cAAc,EACV,CAAC,CACC,SAAS,EAAE,sBAAsB,EACjC,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,UAAU,KACd,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAC1B,SAAS,EACb,gBAAgB,EAAE,wBAAwB,CACxC,OAAO,EACP,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CACzE,EACD,aAAa,EAAE,IAAI,GAClB,oBAAoB,CAqBtB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import Component from '@glimmer/component';
|
|
2
2
|
import type { CalendarAPI, TPowerCalendarMoveCenterUnit } from '../power-calendar.ts';
|
|
3
|
-
interface PowerCalendarNavSignature {
|
|
3
|
+
export interface PowerCalendarNavSignature {
|
|
4
4
|
Args: {
|
|
5
5
|
calendar: CalendarAPI;
|
|
6
6
|
format: string;
|
|
@@ -14,5 +14,4 @@ export default class PowerCalendarNavComponent extends Component<PowerCalendarNa
|
|
|
14
14
|
get unit(): TPowerCalendarMoveCenterUnit;
|
|
15
15
|
get format(): string;
|
|
16
16
|
}
|
|
17
|
-
export {};
|
|
18
17
|
//# sourceMappingURL=nav.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nav.d.ts","sourceRoot":"","sources":["../../../src/components/power-calendar/nav.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,EACV,WAAW,EACX,4BAA4B,EAC7B,MAAM,sBAAsB,CAAC;AAE9B,
|
|
1
|
+
{"version":3,"file":"nav.d.ts","sourceRoot":"","sources":["../../../src/components/power-calendar/nav.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,EACV,WAAW,EACX,4BAA4B,EAC7B,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE;QACJ,QAAQ,EAAE,WAAW,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,4BAA4B,CAAC;KACpC,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;KAClC,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,SAAS,CAAC,yBAAyB,CAAC;IACzF,IAAI,IAAI,IAAI,4BAA4B,CAEvC;IAED,IAAI,MAAM,WAET;CA0CF"}
|
|
@@ -8,7 +8,7 @@ interface PowerCalendarMultipleDaysArgs extends Omit<PowerCalendarDaysArgs, 'sel
|
|
|
8
8
|
selected?: Date[];
|
|
9
9
|
maxLength?: number;
|
|
10
10
|
}
|
|
11
|
-
interface PowerCalendarMultipleDaysSignature extends Omit<PowerCalendarDaysSignature, 'Args'> {
|
|
11
|
+
export interface PowerCalendarMultipleDaysSignature extends Omit<PowerCalendarDaysSignature, 'Args'> {
|
|
12
12
|
Args: PowerCalendarMultipleDaysArgs;
|
|
13
13
|
}
|
|
14
14
|
export default class PowerCalendarMultipleDaysComponent extends Component<PowerCalendarMultipleDaysSignature> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"days.d.ts","sourceRoot":"","sources":["../../../src/components/power-calendar-multiple/days.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAK3C,OAAO,EASL,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAWL,KAAK,cAAc,EACnB,KAAK,IAAI,EACV,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,oBAAoB,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EACV,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,2BAA2B,CAAC;AAEnC,UAAU,6BACR,SAAQ,IAAI,CAAC,qBAAqB,EAAE,UAAU,CAAC;IAC/C,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,
|
|
1
|
+
{"version":3,"file":"days.d.ts","sourceRoot":"","sources":["../../../src/components/power-calendar-multiple/days.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAK3C,OAAO,EASL,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAWL,KAAK,cAAc,EACnB,KAAK,IAAI,EACV,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,oBAAoB,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EACV,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,2BAA2B,CAAC;AAEnC,UAAU,6BACR,SAAQ,IAAI,CAAC,qBAAqB,EAAE,UAAU,CAAC;IAC/C,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kCACf,SAAQ,IAAI,CAAC,0BAA0B,EAAE,MAAM,CAAC;IAChD,IAAI,EAAE,6BAA6B,CAAC;CACrC;AAED,MAAM,CAAC,OAAO,OAAO,kCAAmC,SAAQ,SAAS,CAAC,kCAAkC,CAAC;IAC1F,aAAa,EAAE,oBAAoB,CAAC;IAE5C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEzC,IAAI,aAAa,IAAI,cAAc,CAElC;IAED,IAAI,cAAc,IAAI,OAAO,CAI5B;IAED,IAAI,WAAW,IAAI,MAAM,EAAE,CAE1B;IAED,IAAI,aAAa,IAAI,MAAM,EAAE,CAE5B;IAED,IAAI,QAAQ,IAAI,MAAM,EAAE,CAEvB;IAED,IAAI,iBAAiB,IAAI,MAAM,CAK9B;IAED,IAAI,aAAa,IAAI,MAAM,EAAE,CAQ5B;IAED,IAAI,IAAI,IAAI,gBAAgB,EAAE,CAuB7B;IAED,IAAI,KAAK,IAAI,IAAI,EAAE,CAElB;IAED,IAAI,aAAa,IAAI,IAAI,CAQxB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAID,cAAc,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI;IAUnC,aAAa,IAAI,IAAI;IAKrB,aAAa,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI;IAgBrC,WAAW,CAAC,CAAC,EAAE,UAAU;IAKzB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,GAAE,WAAgC;IAKpE,cAAc,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAIjC,aAAa,CACX,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,IAAI,EACd,OAAO,CAAC,EAAE,IAAI,EACd,aAAa,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC;CAuFvC"}
|
|
@@ -1,22 +1,27 @@
|
|
|
1
1
|
import Component from '@glimmer/component';
|
|
2
|
+
import PowerCalendarMultipleDaysComponent, { type PowerCalendarMultipleDaysSignature } from './power-calendar-multiple/days.ts';
|
|
3
|
+
import PowerCalendarNavComponent, { type PowerCalendarNavSignature } from './power-calendar/nav.ts';
|
|
2
4
|
import { type NormalizeMultipleActionValue, type PowerCalendarDay } from '../utils.ts';
|
|
3
|
-
import type { CalendarAPI, CalendarDay, PowerCalendarAPI, PowerCalendarActions, PowerCalendarArgs,
|
|
5
|
+
import type { CalendarAPI, CalendarDay, PowerCalendarAPI, PowerCalendarActions, PowerCalendarArgs, SelectedDays, TCalendarType } from './power-calendar.ts';
|
|
4
6
|
import type Owner from '@ember/owner';
|
|
5
7
|
import type { ComponentLike } from '@glint/template';
|
|
6
8
|
import type PowerCalendarService from '../services/power-calendar.ts';
|
|
7
|
-
export interface PowerCalendarMultipleAPI extends Omit<PowerCalendarAPI, 'selected'> {
|
|
9
|
+
export interface PowerCalendarMultipleAPI extends Omit<PowerCalendarAPI, 'selected' | 'DaysComponent'> {
|
|
8
10
|
selected?: Date[];
|
|
11
|
+
DaysComponent: ComponentLike<PowerCalendarMultipleDaysSignature>;
|
|
9
12
|
}
|
|
10
13
|
export type TPowerCalendarMultipleOnSelect = (day: NormalizeMultipleActionValue, calendar: PowerCalendarMultipleAPI, event: MouseEvent) => void;
|
|
11
|
-
interface PowerCalendarMultipleArgs extends Omit<PowerCalendarArgs, 'selected' | 'onSelect'> {
|
|
14
|
+
interface PowerCalendarMultipleArgs extends Omit<PowerCalendarArgs, 'selected' | 'daysComponent' | 'onSelect'> {
|
|
12
15
|
selected?: Date[];
|
|
16
|
+
daysComponent?: string | ComponentLike<PowerCalendarMultipleDaysSignature>;
|
|
13
17
|
onSelect?: TPowerCalendarMultipleOnSelect;
|
|
14
18
|
}
|
|
15
19
|
interface PowerCalendarMultipleDefaultBlock extends PowerCalendarMultipleAPI {
|
|
16
|
-
|
|
17
|
-
|
|
20
|
+
Nav: ComponentLike<PowerCalendarNavSignature>;
|
|
21
|
+
Days: ComponentLike<PowerCalendarMultipleDaysSignature>;
|
|
18
22
|
}
|
|
19
|
-
interface PowerCalendarMultipleSignature
|
|
23
|
+
interface PowerCalendarMultipleSignature {
|
|
24
|
+
Element: HTMLElement;
|
|
20
25
|
Args: PowerCalendarMultipleArgs;
|
|
21
26
|
Blocks: {
|
|
22
27
|
default: [PowerCalendarMultipleDefaultBlock];
|
|
@@ -27,8 +32,8 @@ export default class PowerCalendarMultipleComponent extends Component<PowerCalen
|
|
|
27
32
|
center: null;
|
|
28
33
|
_calendarType: TCalendarType;
|
|
29
34
|
_selected?: SelectedDays;
|
|
30
|
-
navComponent:
|
|
31
|
-
daysComponent:
|
|
35
|
+
navComponent: typeof PowerCalendarNavComponent;
|
|
36
|
+
daysComponent: typeof PowerCalendarMultipleDaysComponent;
|
|
32
37
|
constructor(owner: Owner, args: PowerCalendarMultipleArgs);
|
|
33
38
|
willDestroy(): void;
|
|
34
39
|
get publicActions(): PowerCalendarActions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"power-calendar-multiple.d.ts","sourceRoot":"","sources":["../../src/components/power-calendar-multiple.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"power-calendar-multiple.d.ts","sourceRoot":"","sources":["../../src/components/power-calendar-multiple.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAQ3C,OAAO,kCAAkC,EAAE,EACzC,KAAK,kCAAkC,EACxC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,yBAAyB,EAAE,EAChC,KAAK,yBAAyB,EAC/B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAKL,KAAK,4BAA4B,EACjC,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,oBAAoB,MAAM,+BAA+B,CAAC;AAEtE,MAAM,WAAW,wBACf,SAAQ,IAAI,CAAC,gBAAgB,EAAE,UAAU,GAAG,eAAe,CAAC;IAC5D,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;IAClB,aAAa,EAAE,aAAa,CAAC,kCAAkC,CAAC,CAAC;CAClE;AAED,MAAM,MAAM,8BAA8B,GAAG,CAC3C,GAAG,EAAE,4BAA4B,EACjC,QAAQ,EAAE,wBAAwB,EAClC,KAAK,EAAE,UAAU,KACd,IAAI,CAAC;AAEV,UAAU,yBACR,SAAQ,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,eAAe,GAAG,UAAU,CAAC;IAC1E,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,kCAAkC,CAAC,CAAC;IAC3E,QAAQ,CAAC,EAAE,8BAA8B,CAAC;CAC3C;AAED,UAAU,iCAAkC,SAAQ,wBAAwB;IAC1E,GAAG,EAAE,aAAa,CAAC,yBAAyB,CAAC,CAAC;IAC9C,IAAI,EAAE,aAAa,CAAC,kCAAkC,CAAC,CAAC;CACzD;AAED,UAAU,8BAA8B;IACtC,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,yBAAyB,CAAC;IAChC,MAAM,EAAE;QACN,OAAO,EAAE,CAAC,iCAAiC,CAAC,CAAC;KAC9C,CAAC;CACH;AAED,MAAM,CAAC,OAAO,OAAO,8BAA+B,SAAQ,SAAS,CAAC,8BAA8B,CAAC;IAClF,aAAa,EAAE,oBAAoB,CAAC;IAE5C,MAAM,OAAQ;IACd,aAAa,EAAE,aAAa,CAAc;IAC1C,SAAS,CAAC,EAAE,YAAY,CAAC;IAElC,YAAY,mCAA6B;IACzC,aAAa,4CAAsC;gBAGvC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,yBAAyB;IAQzD,WAAW,IAAI,IAAI;IAKnB,IAAI,aAAa,IAAI,oBAAoB,CAQxC;IAED,IAAI,QAAQ,IAAI,IAAI,EAAE,GAAG,SAAS,CAsBjC;IAED,IAAI,QAAQ,CAAC,CAAC,EAAE,YAAY,EAE3B;IAED,IAAI,aAAa,IAAI,IAAI,CAMxB;IAED,IAAI,SAAS,IAAI,gBAAgB,CAUhC;IAED,IAAI,cAAc,IAAI,MAAM,CAK3B;IAGD,gBAAgB,4EACI,IAAI,YAAY,gBAAgB,KAAK,UAAU,oBAQjE;IAIF,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU;IAyBnE,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,4BAA4B;IAkBxE,gBAAgB;IAWhB,kBAAkB;CA6DnB"}
|
|
@@ -10,10 +10,10 @@ interface PowerCalendarMultipleDaysArgs extends Omit<PowerCalendarDaysArgs, 'sel
|
|
|
10
10
|
end: Date | null;
|
|
11
11
|
};
|
|
12
12
|
}
|
|
13
|
-
interface
|
|
13
|
+
export interface PowerCalendarRangeDaysSignature extends Omit<PowerCalendarDaysSignature, 'Args'> {
|
|
14
14
|
Args: PowerCalendarMultipleDaysArgs;
|
|
15
15
|
}
|
|
16
|
-
export default class PowerCalendarRangeDaysComponent extends Component<
|
|
16
|
+
export default class PowerCalendarRangeDaysComponent extends Component<PowerCalendarRangeDaysSignature> {
|
|
17
17
|
powerCalendar: PowerCalendarService;
|
|
18
18
|
focusedId: string | null;
|
|
19
19
|
get weekdayFormat(): TWeekdayFormat;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"days.d.ts","sourceRoot":"","sources":["../../../src/components/power-calendar-range/days.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAK3C,OAAO,KAAK,EACV,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAWL,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAUL,KAAK,cAAc,EACnB,KAAK,IAAI,EACV,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,oBAAoB,MAAM,kCAAkC,CAAC;AAEzE,UAAU,6BACR,SAAQ,IAAI,CAAC,qBAAqB,EAAE,UAAU,CAAC;IAC/C,QAAQ,CAAC,EAAE;QACT,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;QACnB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;KAClB,CAAC;CACH;AAED,
|
|
1
|
+
{"version":3,"file":"days.d.ts","sourceRoot":"","sources":["../../../src/components/power-calendar-range/days.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAK3C,OAAO,KAAK,EACV,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAWL,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAUL,KAAK,cAAc,EACnB,KAAK,IAAI,EACV,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,oBAAoB,MAAM,kCAAkC,CAAC;AAEzE,UAAU,6BACR,SAAQ,IAAI,CAAC,qBAAqB,EAAE,UAAU,CAAC;IAC/C,QAAQ,CAAC,EAAE;QACT,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;QACnB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,+BACf,SAAQ,IAAI,CAAC,0BAA0B,EAAE,MAAM,CAAC;IAChD,IAAI,EAAE,6BAA6B,CAAC;CACrC;AAED,MAAM,CAAC,OAAO,OAAO,+BAAgC,SAAQ,SAAS,CAAC,+BAA+B,CAAC;IACpF,aAAa,EAAE,oBAAoB,CAAC;IAE5C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEzC,IAAI,aAAa,IAAI,cAAc,CAElC;IAED,IAAI,cAAc,IAAI,OAAO,CAI5B;IAED,IAAI,WAAW,IAAI,MAAM,EAAE,CAE1B;IAED,IAAI,aAAa,IAAI,MAAM,EAAE,CAE5B;IAED,IAAI,QAAQ,IAAI,MAAM,EAAE,CAEvB;IAED,IAAI,iBAAiB,IAAI,MAAM,CAK9B;IAED,IAAI,aAAa,IAAI,MAAM,EAAE,CAQ5B;IAED,IAAI,IAAI,IAAI,gBAAgB,EAAE,CAY7B;IAED,IAAI,KAAK,IAAI,IAAI,EAAE,CAElB;IAED,IAAI,aAAa,IAAI,IAAI,CAOxB;IAID,cAAc,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI;IAUnC,aAAa,IAAI,IAAI;IAKrB,aAAa,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI;IAgBrC,WAAW,CAAC,CAAC,EAAE,UAAU;IAKzB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,qBAAqB;IAuCjE,aAAa;IAIb,cAAc,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;CAgFlC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import Component from '@glimmer/component';
|
|
2
|
+
import PowerCalendarRangeDaysComponent, { type PowerCalendarRangeDaysSignature } from './power-calendar-range/days.ts';
|
|
3
|
+
import PowerCalendarNavComponent, { type PowerCalendarNavSignature } from './power-calendar/nav.ts';
|
|
2
4
|
import { type NormalizeRangeActionValue, type PowerCalendarDay, type SelectedPowerCalendarRange } from '../utils.ts';
|
|
3
|
-
import type { PowerCalendarAPI,
|
|
5
|
+
import type { PowerCalendarAPI, PowerCalendarArgs, TCalendarType, SelectedDays, PowerCalendarActions, CalendarDay, CalendarAPI } from './power-calendar.ts';
|
|
4
6
|
import type Owner from '@ember/owner';
|
|
5
7
|
import type { ComponentLike } from '@glint/template';
|
|
6
8
|
import type PowerCalendarService from '../services/power-calendar.ts';
|
|
@@ -17,10 +19,11 @@ interface PowerCalendarRangeArgs extends Omit<PowerCalendarArgs, 'selected' | 'o
|
|
|
17
19
|
onSelect?: TPowerCalendarRangeOnSelect;
|
|
18
20
|
}
|
|
19
21
|
export interface PowerCalendarRangeDefaultBlock extends PowerCalendarRangeAPI {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
+
Nav: ComponentLike<PowerCalendarNavSignature>;
|
|
23
|
+
Days: ComponentLike<PowerCalendarRangeDaysSignature>;
|
|
22
24
|
}
|
|
23
|
-
interface PowerCalendarRangeSignature
|
|
25
|
+
interface PowerCalendarRangeSignature {
|
|
26
|
+
Element: HTMLElement;
|
|
24
27
|
Args: PowerCalendarRangeArgs;
|
|
25
28
|
Blocks: {
|
|
26
29
|
default: [PowerCalendarRangeDefaultBlock];
|
|
@@ -36,8 +39,8 @@ export default class PowerCalendarRangeComponent extends Component<PowerCalendar
|
|
|
36
39
|
center: null;
|
|
37
40
|
_calendarType: TCalendarType;
|
|
38
41
|
_selected?: SelectedDays;
|
|
39
|
-
navComponent:
|
|
40
|
-
daysComponent:
|
|
42
|
+
navComponent: typeof PowerCalendarNavComponent;
|
|
43
|
+
daysComponent: typeof PowerCalendarRangeDaysComponent;
|
|
41
44
|
constructor(owner: Owner, args: PowerCalendarRangeArgs);
|
|
42
45
|
willDestroy(): void;
|
|
43
46
|
get publicActions(): PowerCalendarActions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"power-calendar-range.d.ts","sourceRoot":"","sources":["../../src/components/power-calendar-range.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"power-calendar-range.d.ts","sourceRoot":"","sources":["../../src/components/power-calendar-range.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import Component from '@glimmer/component';
|
|
2
|
+
import { type TaskInstance } from 'ember-concurrency';
|
|
2
3
|
import type { ComponentLike } from '@glint/template';
|
|
3
4
|
import { type NormalizeCalendarValue, type PowerCalendarDay, type SelectedPowerCalendarRange } from '../utils.ts';
|
|
5
|
+
import PowerCalendarNavComponent, { type PowerCalendarNavSignature } from './power-calendar/nav.ts';
|
|
6
|
+
import PowerCalendarDaysComponent, { type PowerCalendarDaysSignature } from './power-calendar/days.ts';
|
|
4
7
|
import type Owner from '@ember/owner';
|
|
5
8
|
import type PowerCalendarService from '../services/power-calendar.ts';
|
|
6
9
|
import type { PowerCalendarRangeAPI, PowerCalendarRangeDay } from './power-calendar-range.ts';
|
|
@@ -20,16 +23,16 @@ export interface PowerCalendarAPI {
|
|
|
20
23
|
actions: PowerCalendarActions;
|
|
21
24
|
}
|
|
22
25
|
export interface PowerCalendarActions {
|
|
23
|
-
changeCenter?: (newCenter: Date, calendar: CalendarAPI, event: MouseEvent) => void
|
|
24
|
-
moveCenter?: (step: number, unit: TPowerCalendarMoveCenterUnit, calendar: PowerCalendarAPI, event: MouseEvent) => void
|
|
26
|
+
changeCenter?: (newCenter: Date, calendar: CalendarAPI, event: MouseEvent) => TaskInstance<void>;
|
|
27
|
+
moveCenter?: (step: number, unit: TPowerCalendarMoveCenterUnit, calendar: PowerCalendarAPI, event: MouseEvent) => Promise<void>;
|
|
25
28
|
select?: (day: CalendarDay, calendar: CalendarAPI, event: MouseEvent) => void;
|
|
26
29
|
}
|
|
27
30
|
export type TPowerCalendarOnSelect = (day: CalendarDay, calendar: CalendarAPI, event: MouseEvent) => void;
|
|
28
31
|
export interface PowerCalendarArgs {
|
|
29
|
-
daysComponent?: string | ComponentLike<
|
|
30
|
-
locale
|
|
31
|
-
navComponent?: string | ComponentLike<
|
|
32
|
-
onCenterChange?: (newCenter: NormalizeCalendarValue, calendar: PowerCalendarAPI, event: MouseEvent) => void;
|
|
32
|
+
daysComponent?: string | ComponentLike<PowerCalendarDaysSignature>;
|
|
33
|
+
locale?: string;
|
|
34
|
+
navComponent?: string | ComponentLike<PowerCalendarNavSignature>;
|
|
35
|
+
onCenterChange?: (newCenter: NormalizeCalendarValue, calendar: PowerCalendarAPI, event: MouseEvent) => Promise<void> | void;
|
|
33
36
|
onInit?: (calendar: PowerCalendarAPI) => void;
|
|
34
37
|
onSelect?: TPowerCalendarOnSelect;
|
|
35
38
|
selected?: SelectedDays;
|
|
@@ -37,8 +40,8 @@ export interface PowerCalendarArgs {
|
|
|
37
40
|
tag?: string;
|
|
38
41
|
}
|
|
39
42
|
export interface PowerCalendarDefaultBlock extends PowerCalendarAPI {
|
|
40
|
-
|
|
41
|
-
|
|
43
|
+
Nav: ComponentLike<PowerCalendarNavSignature>;
|
|
44
|
+
Days: ComponentLike<PowerCalendarDaysSignature>;
|
|
42
45
|
}
|
|
43
46
|
export type CalendarDay = PowerCalendarDay | PowerCalendarRangeDay | PowerCalendarDay[];
|
|
44
47
|
export interface PowerCalendarSignature {
|
|
@@ -53,8 +56,8 @@ export default class PowerCalendarComponent extends Component<PowerCalendarSigna
|
|
|
53
56
|
center: null;
|
|
54
57
|
_calendarType: TCalendarType;
|
|
55
58
|
_selected?: SelectedDays;
|
|
56
|
-
navComponent:
|
|
57
|
-
daysComponent:
|
|
59
|
+
navComponent: typeof PowerCalendarNavComponent;
|
|
60
|
+
daysComponent: typeof PowerCalendarDaysComponent;
|
|
58
61
|
constructor(owner: Owner, args: PowerCalendarArgs);
|
|
59
62
|
willDestroy(): void;
|
|
60
63
|
get publicActions(): PowerCalendarActions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"power-calendar.d.ts","sourceRoot":"","sources":["../../src/components/power-calendar.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"power-calendar.d.ts","sourceRoot":"","sources":["../../src/components/power-calendar.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/test-support/helpers.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/test-support/helpers.ts"],"names":[],"mappings":";AAOA,wBAAkB;AAElB,cAAc,aAAa,CAAC;AA6C5B,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,IAAI,GACd,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,IAAI,GACb,OAAO,CAAC,IAAI,CAAC,CAYf"}
|
|
@@ -67,13 +67,13 @@ class PowerCalendarDaysComponent extends Component {
|
|
|
67
67
|
|
|
68
68
|
// Actions
|
|
69
69
|
handleDayFocus(e) {
|
|
70
|
-
scheduleOnce('actions', this, this._updateFocused, e.target.dataset['date']);
|
|
70
|
+
scheduleOnce('actions', this, this._updateFocused.bind(this), e.target.dataset['date']);
|
|
71
71
|
}
|
|
72
72
|
static {
|
|
73
73
|
n(this.prototype, "handleDayFocus", [action]);
|
|
74
74
|
}
|
|
75
75
|
handleDayBlur() {
|
|
76
|
-
scheduleOnce('actions', this, this._updateFocused, null);
|
|
76
|
+
scheduleOnce('actions', this, this._updateFocused.bind(this), null);
|
|
77
77
|
}
|
|
78
78
|
static {
|
|
79
79
|
n(this.prototype, "handleDayBlur", [action]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"days.js","sources":["../../../src/components/power-calendar/days.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { scheduleOnce } from '@ember/runloop';\nimport { inject as service } from '@ember/service';\nimport {\n add,\n getWeekdays,\n getWeekdaysMin,\n getWeekdaysShort,\n isBefore,\n isSame,\n normalizeDate,\n withLocale,\n type PowerCalendarDay,\n} from '../../utils.ts';\nimport type { CalendarAPI } from '../power-calendar.ts';\nimport type PowerCalendarService from '../../services/power-calendar.ts';\nimport {\n firstDay,\n localeStartOfWeekOrFallback,\n weekdaysNames,\n weeks,\n handleDayKeyDown,\n focusDate,\n buildDay,\n lastDay,\n handleClick,\n type TWeekdayFormat,\n type Week,\n} from '../../-private/days-utils.ts';\n\nexport interface PowerCalendarDaysArgs {\n calendar: CalendarAPI;\n dayClass?: string;\n disabledDates?: Array<Date | string>;\n maxDate?: Date;\n minDate?: Date;\n selected?: Date;\n showDaysAround?: boolean;\n startOfWeek?: string;\n center?: Date;\n weekdayFormat?: TWeekdayFormat;\n}\n\nexport interface PowerCalendarDaysSignature {\n Element: HTMLElement;\n Args: PowerCalendarDaysArgs;\n Blocks: {\n default: [day: PowerCalendarDay, calendar: CalendarAPI, weeks: Week[]];\n };\n}\n\nexport default class PowerCalendarDaysComponent extends Component<PowerCalendarDaysSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked focusedId: string | null = null;\n\n get weekdayFormat(): TWeekdayFormat {\n return this.args.weekdayFormat || 'short'; // \"min\" | \"short\" | \"long\"\n }\n\n get showDaysAround(): boolean {\n return this.args.showDaysAround !== undefined\n ? this.args.showDaysAround\n : true;\n }\n\n get weekdaysMin(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysMin) as string[];\n }\n\n get weekdaysShort(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysShort) as string[];\n }\n\n get weekdays(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdays) as string[];\n }\n\n get localeStartOfWeek(): number {\n return localeStartOfWeekOrFallback(\n this.args.startOfWeek,\n this.args.calendar.locale,\n );\n }\n\n get weekdaysNames(): string[] {\n return weekdaysNames(\n this.localeStartOfWeek,\n this.weekdayFormat,\n this.weekdays,\n this.weekdaysMin,\n this.weekdaysShort,\n );\n }\n\n get days(): PowerCalendarDay[] {\n const today = this.powerCalendar.getDate();\n const theLastDay = lastDay(this.localeStartOfWeek, this.currentCenter);\n let day = firstDay(this.currentCenter, this.localeStartOfWeek);\n const days: PowerCalendarDay[] = [];\n while (isBefore(day, theLastDay)) {\n days.push(\n buildDay(\n day,\n today,\n this.args.calendar,\n this.focusedId,\n this.currentCenter,\n this.dayIsSelected.bind(this),\n this.args.minDate,\n this.args.maxDate,\n this.args.disabledDates,\n ),\n );\n day = add(day, 1, 'day');\n }\n return days;\n }\n\n get weeks(): Week[] {\n return weeks(this.days, this.showDaysAround);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = this.args.selected || this.args.calendar.center;\n }\n return normalizeDate(center) || this.args.calendar.center;\n }\n\n // Actions\n @action\n handleDayFocus(e: FocusEvent): void {\n scheduleOnce(\n 'actions',\n this,\n this._updateFocused,\n (e.target as HTMLElement).dataset['date'],\n );\n }\n\n @action\n handleDayBlur(): void {\n scheduleOnce('actions', this, this._updateFocused, null);\n }\n\n @action\n handleKeyDown(e: KeyboardEvent): void {\n const day = handleDayKeyDown(e, this.focusedId, this.days);\n if (!day) {\n return;\n }\n this.focusedId = day.id;\n scheduleOnce(\n 'afterRender',\n this,\n focusDate,\n this.args.calendar.uniqueId,\n this.focusedId ?? '',\n );\n }\n\n @action\n handleClick(e: MouseEvent) {\n handleClick(e, this.days, this.args.calendar);\n }\n\n // Methods\n dayIsSelected(date: Date, calendar: CalendarAPI = this.args.calendar) {\n return calendar.selected\n ? isSame(date, calendar.selected as Date, 'day')\n : false;\n }\n\n _updateFocused(id?: string | null) {\n this.focusedId = id ?? null;\n }\n}\n"],"names":["PowerCalendarDaysComponent","Component","g","prototype","service","i","void 0","tracked","weekdayFormat","args","showDaysAround","undefined","weekdaysMin","withLocale","calendar","locale","getWeekdaysMin","weekdaysShort","getWeekdaysShort","weekdays","getWeekdays","localeStartOfWeek","localeStartOfWeekOrFallback","startOfWeek","weekdaysNames","days","today","powerCalendar","getDate","theLastDay","lastDay","currentCenter","day","firstDay","isBefore","push","buildDay","focusedId","dayIsSelected","bind","minDate","maxDate","disabledDates","add","weeks","center","selected","normalizeDate","handleDayFocus","e","scheduleOnce","_updateFocused","target","dataset","n","action","handleDayBlur","handleKeyDown","handleDayKeyDown","id","focusDate","uniqueId","handleClick","date","isSame","setComponentTemplate","TEMPLATE"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"days.js","sources":["../../../src/components/power-calendar/days.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { scheduleOnce } from '@ember/runloop';\nimport { inject as service } from '@ember/service';\nimport {\n add,\n getWeekdays,\n getWeekdaysMin,\n getWeekdaysShort,\n isBefore,\n isSame,\n normalizeDate,\n withLocale,\n type PowerCalendarDay,\n} from '../../utils.ts';\nimport type { CalendarAPI } from '../power-calendar.ts';\nimport type PowerCalendarService from '../../services/power-calendar.ts';\nimport {\n firstDay,\n localeStartOfWeekOrFallback,\n weekdaysNames,\n weeks,\n handleDayKeyDown,\n focusDate,\n buildDay,\n lastDay,\n handleClick,\n type TWeekdayFormat,\n type Week,\n} from '../../-private/days-utils.ts';\n\nexport interface PowerCalendarDaysArgs {\n calendar: CalendarAPI;\n dayClass?: string;\n disabledDates?: Array<Date | string>;\n maxDate?: Date;\n minDate?: Date;\n selected?: Date;\n showDaysAround?: boolean;\n startOfWeek?: string;\n center?: Date;\n weekdayFormat?: TWeekdayFormat;\n}\n\nexport interface PowerCalendarDaysSignature {\n Element: HTMLElement;\n Args: PowerCalendarDaysArgs;\n Blocks: {\n default: [day: PowerCalendarDay, calendar: CalendarAPI, weeks: Week[]];\n };\n}\n\nexport default class PowerCalendarDaysComponent extends Component<PowerCalendarDaysSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked focusedId: string | null = null;\n\n get weekdayFormat(): TWeekdayFormat {\n return this.args.weekdayFormat || 'short'; // \"min\" | \"short\" | \"long\"\n }\n\n get showDaysAround(): boolean {\n return this.args.showDaysAround !== undefined\n ? this.args.showDaysAround\n : true;\n }\n\n get weekdaysMin(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysMin) as string[];\n }\n\n get weekdaysShort(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysShort) as string[];\n }\n\n get weekdays(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdays) as string[];\n }\n\n get localeStartOfWeek(): number {\n return localeStartOfWeekOrFallback(\n this.args.startOfWeek,\n this.args.calendar.locale,\n );\n }\n\n get weekdaysNames(): string[] {\n return weekdaysNames(\n this.localeStartOfWeek,\n this.weekdayFormat,\n this.weekdays,\n this.weekdaysMin,\n this.weekdaysShort,\n );\n }\n\n get days(): PowerCalendarDay[] {\n const today = this.powerCalendar.getDate();\n const theLastDay = lastDay(this.localeStartOfWeek, this.currentCenter);\n let day = firstDay(this.currentCenter, this.localeStartOfWeek);\n const days: PowerCalendarDay[] = [];\n while (isBefore(day, theLastDay)) {\n days.push(\n buildDay(\n day,\n today,\n this.args.calendar,\n this.focusedId,\n this.currentCenter,\n this.dayIsSelected.bind(this),\n this.args.minDate,\n this.args.maxDate,\n this.args.disabledDates,\n ),\n );\n day = add(day, 1, 'day');\n }\n return days;\n }\n\n get weeks(): Week[] {\n return weeks(this.days, this.showDaysAround);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = this.args.selected || this.args.calendar.center;\n }\n return normalizeDate(center) || this.args.calendar.center;\n }\n\n // Actions\n @action\n handleDayFocus(e: FocusEvent): void {\n scheduleOnce(\n 'actions',\n this,\n this._updateFocused.bind(this),\n (e.target as HTMLElement).dataset['date'],\n );\n }\n\n @action\n handleDayBlur(): void {\n scheduleOnce('actions', this, this._updateFocused.bind(this), null);\n }\n\n @action\n handleKeyDown(e: KeyboardEvent): void {\n const day = handleDayKeyDown(e, this.focusedId, this.days);\n if (!day) {\n return;\n }\n this.focusedId = day.id;\n scheduleOnce(\n 'afterRender',\n this,\n focusDate,\n this.args.calendar.uniqueId,\n this.focusedId ?? '',\n );\n }\n\n @action\n handleClick(e: MouseEvent) {\n handleClick(e, this.days, this.args.calendar);\n }\n\n // Methods\n dayIsSelected(date: Date, calendar: CalendarAPI = this.args.calendar) {\n return calendar.selected\n ? isSame(date, calendar.selected as Date, 'day')\n : false;\n }\n\n _updateFocused(id?: string | null) {\n this.focusedId = id ?? null;\n }\n}\n"],"names":["PowerCalendarDaysComponent","Component","g","prototype","service","i","void 0","tracked","weekdayFormat","args","showDaysAround","undefined","weekdaysMin","withLocale","calendar","locale","getWeekdaysMin","weekdaysShort","getWeekdaysShort","weekdays","getWeekdays","localeStartOfWeek","localeStartOfWeekOrFallback","startOfWeek","weekdaysNames","days","today","powerCalendar","getDate","theLastDay","lastDay","currentCenter","day","firstDay","isBefore","push","buildDay","focusedId","dayIsSelected","bind","minDate","maxDate","disabledDates","add","weeks","center","selected","normalizeDate","handleDayFocus","e","scheduleOnce","_updateFocused","target","dataset","n","action","handleDayBlur","handleKeyDown","handleDayKeyDown","id","focusDate","uniqueId","handleClick","date","isSame","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nav.js","sources":["../../../src/components/power-calendar/nav.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport type {\n CalendarAPI,\n TPowerCalendarMoveCenterUnit,\n} from '../power-calendar.ts';\n\
|
|
1
|
+
{"version":3,"file":"nav.js","sources":["../../../src/components/power-calendar/nav.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport type {\n CalendarAPI,\n TPowerCalendarMoveCenterUnit,\n} from '../power-calendar.ts';\n\nexport interface PowerCalendarNavSignature {\n Args: {\n calendar: CalendarAPI;\n format: string;\n unit: TPowerCalendarMoveCenterUnit;\n };\n Blocks: {\n default: [calendar: CalendarAPI];\n };\n}\n\nexport default class PowerCalendarNavComponent extends Component<PowerCalendarNavSignature> {\n get unit(): TPowerCalendarMoveCenterUnit {\n return this.args.unit || 'month';\n }\n\n get format() {\n return this.args.format || 'MMMM YYYY';\n }\n}\n"],"names":["PowerCalendarNavComponent","Component","unit","args","format","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;AAiBe,MAAMA,yBAAyB,SAASC,SAAS,CAA4B;EAC1F,IAAIC,IAAIA,GAAiC;AACvC,IAAA,OAAO,IAAI,CAACC,IAAI,CAACD,IAAI,IAAI,OAAO;AAClC;EAEA,IAAIE,MAAMA,GAAG;AACX,IAAA,OAAO,IAAI,CAACD,IAAI,CAACC,MAAM,IAAI,WAAW;AACxC;AACF;AAACC,oBAAA,CAAAC,QAAA,EARoBN,yBAAyB,CAAA;;;;"}
|
|
@@ -70,13 +70,13 @@ class PowerCalendarMultipleDaysComponent extends Component {
|
|
|
70
70
|
|
|
71
71
|
// Actions
|
|
72
72
|
handleDayFocus(e) {
|
|
73
|
-
scheduleOnce('actions', this, this._updateFocused, e.target.dataset['date']);
|
|
73
|
+
scheduleOnce('actions', this, this._updateFocused.bind(this), e.target.dataset['date']);
|
|
74
74
|
}
|
|
75
75
|
static {
|
|
76
76
|
n(this.prototype, "handleDayFocus", [action]);
|
|
77
77
|
}
|
|
78
78
|
handleDayBlur() {
|
|
79
|
-
scheduleOnce('actions', this, this._updateFocused, null);
|
|
79
|
+
scheduleOnce('actions', this, this._updateFocused.bind(this), null);
|
|
80
80
|
}
|
|
81
81
|
static {
|
|
82
82
|
n(this.prototype, "handleDayBlur", [action]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"days.js","sources":["../../../src/components/power-calendar-multiple/days.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { scheduleOnce } from '@ember/runloop';\nimport { inject as service } from '@ember/service';\nimport {\n add,\n getWeekdays,\n getWeekdaysMin,\n getWeekdaysShort,\n isBefore,\n isSame,\n normalizeDate,\n withLocale,\n type PowerCalendarDay,\n} from '../../utils.ts';\nimport type { PowerCalendarMultipleAPI } from '../power-calendar-multiple.ts';\nimport {\n buildDay,\n dayIsDisabled,\n firstDay,\n lastDay,\n localeStartOfWeekOrFallback,\n weekdaysNames,\n weeks,\n handleDayKeyDown,\n focusDate,\n handleClick,\n type TWeekdayFormat,\n type Week,\n} from '../../-private/days-utils.ts';\nimport type { CalendarAPI } from '../power-calendar.ts';\nimport type PowerCalendarService from '../../services/power-calendar.ts';\nimport type {\n PowerCalendarDaysArgs,\n PowerCalendarDaysSignature,\n} from '../power-calendar/days.ts';\n\ninterface PowerCalendarMultipleDaysArgs\n extends Omit<PowerCalendarDaysArgs, 'selected'> {\n selected?: Date[];\n maxLength?: number;\n}\n\ninterface PowerCalendarMultipleDaysSignature\n extends Omit<PowerCalendarDaysSignature, 'Args'> {\n Args: PowerCalendarMultipleDaysArgs;\n}\n\nexport default class PowerCalendarMultipleDaysComponent extends Component<PowerCalendarMultipleDaysSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked focusedId: string | null = null;\n\n get weekdayFormat(): TWeekdayFormat {\n return this.args.weekdayFormat || 'short'; // \"min\" | \"short\" | \"long\"\n }\n\n get showDaysAround(): boolean {\n return this.args.showDaysAround !== undefined\n ? this.args.showDaysAround\n : true;\n }\n\n get weekdaysMin(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysMin) as string[];\n }\n\n get weekdaysShort(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysShort) as string[];\n }\n\n get weekdays(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdays) as string[];\n }\n\n get localeStartOfWeek(): number {\n return localeStartOfWeekOrFallback(\n this.args.startOfWeek,\n this.args.calendar.locale,\n );\n }\n\n get weekdaysNames(): string[] {\n return weekdaysNames(\n this.localeStartOfWeek,\n this.weekdayFormat,\n this.weekdays,\n this.weekdaysMin,\n this.weekdaysShort,\n );\n }\n\n get days(): PowerCalendarDay[] {\n const today = this.powerCalendar.getDate();\n const theLastDay = lastDay(this.localeStartOfWeek, this.currentCenter);\n let day = firstDay(this.currentCenter, this.localeStartOfWeek);\n const days: PowerCalendarDay[] = [];\n while (isBefore(day, theLastDay)) {\n days.push(\n buildDay(\n day,\n today,\n this.args.calendar,\n this.focusedId,\n this.currentCenter,\n this.dayIsSelected.bind(this),\n this.args.minDate,\n this.args.maxDate,\n this.args.disabledDates,\n this.dayIsDisabled.bind(this),\n ),\n );\n day = add(day, 1, 'day');\n }\n return days;\n }\n\n get weeks(): Week[] {\n return weeks(this.days, this.showDaysAround);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = this.args.selected\n ? this.args.selected[0]\n : this.args.calendar.center;\n }\n return normalizeDate(center) || this.args.calendar.center;\n }\n\n get maxLength(): number {\n return this.args.maxLength || Infinity;\n }\n\n // Actions\n @action\n handleDayFocus(e: FocusEvent): void {\n scheduleOnce(\n 'actions',\n this,\n this._updateFocused,\n (e.target as HTMLElement).dataset['date'],\n );\n }\n\n @action\n handleDayBlur(): void {\n scheduleOnce('actions', this, this._updateFocused, null);\n }\n\n @action\n handleKeyDown(e: KeyboardEvent): void {\n const day = handleDayKeyDown(e, this.focusedId, this.days);\n if (!day) {\n return;\n }\n this.focusedId = day.id;\n scheduleOnce(\n 'afterRender',\n this,\n focusDate,\n this.args.calendar.uniqueId,\n this.focusedId ?? '',\n );\n }\n\n @action\n handleClick(e: MouseEvent) {\n handleClick(e, this.days, this.args.calendar);\n }\n\n // Methods\n dayIsSelected(date: Date, calendar: CalendarAPI = this.args.calendar) {\n const selected = (calendar as PowerCalendarMultipleAPI).selected || [];\n return selected.some((d) => isSame(date, d, 'day'));\n }\n\n _updateFocused(id?: string | null) {\n this.focusedId = id ?? null;\n }\n\n dayIsDisabled(\n date: Date,\n calendarApi: CalendarAPI,\n minDate?: Date,\n maxDate?: Date,\n disabledDates?: Array<Date | string>,\n ) {\n const calendar = calendarApi as PowerCalendarMultipleAPI;\n const numSelected = (calendar.selected && calendar.selected.length) || 0;\n const maxLength = this.maxLength || Infinity;\n return (\n dayIsDisabled(date, calendar, minDate, maxDate, disabledDates) ||\n (numSelected >= maxLength && !this.dayIsSelected(date))\n );\n }\n}\n"],"names":["PowerCalendarMultipleDaysComponent","Component","g","prototype","service","i","void 0","tracked","weekdayFormat","args","showDaysAround","undefined","weekdaysMin","withLocale","calendar","locale","getWeekdaysMin","weekdaysShort","getWeekdaysShort","weekdays","getWeekdays","localeStartOfWeek","localeStartOfWeekOrFallback","startOfWeek","weekdaysNames","days","today","powerCalendar","getDate","theLastDay","lastDay","currentCenter","day","firstDay","isBefore","push","buildDay","focusedId","dayIsSelected","bind","minDate","maxDate","disabledDates","dayIsDisabled","add","weeks","center","selected","normalizeDate","maxLength","Infinity","handleDayFocus","e","scheduleOnce","_updateFocused","target","dataset","n","action","handleDayBlur","handleKeyDown","handleDayKeyDown","id","focusDate","uniqueId","handleClick","date","some","d","isSame","calendarApi","numSelected","length","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"days.js","sources":["../../../src/components/power-calendar-multiple/days.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { scheduleOnce } from '@ember/runloop';\nimport { inject as service } from '@ember/service';\nimport {\n add,\n getWeekdays,\n getWeekdaysMin,\n getWeekdaysShort,\n isBefore,\n isSame,\n normalizeDate,\n withLocale,\n type PowerCalendarDay,\n} from '../../utils.ts';\nimport type { PowerCalendarMultipleAPI } from '../power-calendar-multiple.ts';\nimport {\n buildDay,\n dayIsDisabled,\n firstDay,\n lastDay,\n localeStartOfWeekOrFallback,\n weekdaysNames,\n weeks,\n handleDayKeyDown,\n focusDate,\n handleClick,\n type TWeekdayFormat,\n type Week,\n} from '../../-private/days-utils.ts';\nimport type { CalendarAPI } from '../power-calendar.ts';\nimport type PowerCalendarService from '../../services/power-calendar.ts';\nimport type {\n PowerCalendarDaysArgs,\n PowerCalendarDaysSignature,\n} from '../power-calendar/days.ts';\n\ninterface PowerCalendarMultipleDaysArgs\n extends Omit<PowerCalendarDaysArgs, 'selected'> {\n selected?: Date[];\n maxLength?: number;\n}\n\nexport interface PowerCalendarMultipleDaysSignature\n extends Omit<PowerCalendarDaysSignature, 'Args'> {\n Args: PowerCalendarMultipleDaysArgs;\n}\n\nexport default class PowerCalendarMultipleDaysComponent extends Component<PowerCalendarMultipleDaysSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked focusedId: string | null = null;\n\n get weekdayFormat(): TWeekdayFormat {\n return this.args.weekdayFormat || 'short'; // \"min\" | \"short\" | \"long\"\n }\n\n get showDaysAround(): boolean {\n return this.args.showDaysAround !== undefined\n ? this.args.showDaysAround\n : true;\n }\n\n get weekdaysMin(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysMin) as string[];\n }\n\n get weekdaysShort(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysShort) as string[];\n }\n\n get weekdays(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdays) as string[];\n }\n\n get localeStartOfWeek(): number {\n return localeStartOfWeekOrFallback(\n this.args.startOfWeek,\n this.args.calendar.locale,\n );\n }\n\n get weekdaysNames(): string[] {\n return weekdaysNames(\n this.localeStartOfWeek,\n this.weekdayFormat,\n this.weekdays,\n this.weekdaysMin,\n this.weekdaysShort,\n );\n }\n\n get days(): PowerCalendarDay[] {\n const today = this.powerCalendar.getDate();\n const theLastDay = lastDay(this.localeStartOfWeek, this.currentCenter);\n let day = firstDay(this.currentCenter, this.localeStartOfWeek);\n const days: PowerCalendarDay[] = [];\n while (isBefore(day, theLastDay)) {\n days.push(\n buildDay(\n day,\n today,\n this.args.calendar,\n this.focusedId,\n this.currentCenter,\n this.dayIsSelected.bind(this),\n this.args.minDate,\n this.args.maxDate,\n this.args.disabledDates,\n this.dayIsDisabled.bind(this),\n ),\n );\n day = add(day, 1, 'day');\n }\n return days;\n }\n\n get weeks(): Week[] {\n return weeks(this.days, this.showDaysAround);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = this.args.selected\n ? this.args.selected[0]\n : this.args.calendar.center;\n }\n return normalizeDate(center) || this.args.calendar.center;\n }\n\n get maxLength(): number {\n return this.args.maxLength || Infinity;\n }\n\n // Actions\n @action\n handleDayFocus(e: FocusEvent): void {\n scheduleOnce(\n 'actions',\n this,\n this._updateFocused.bind(this),\n (e.target as HTMLElement).dataset['date'],\n );\n }\n\n @action\n handleDayBlur(): void {\n scheduleOnce('actions', this, this._updateFocused.bind(this), null);\n }\n\n @action\n handleKeyDown(e: KeyboardEvent): void {\n const day = handleDayKeyDown(e, this.focusedId, this.days);\n if (!day) {\n return;\n }\n this.focusedId = day.id;\n scheduleOnce(\n 'afterRender',\n this,\n focusDate,\n this.args.calendar.uniqueId,\n this.focusedId ?? '',\n );\n }\n\n @action\n handleClick(e: MouseEvent) {\n handleClick(e, this.days, this.args.calendar);\n }\n\n // Methods\n dayIsSelected(date: Date, calendar: CalendarAPI = this.args.calendar) {\n const selected = (calendar as PowerCalendarMultipleAPI).selected || [];\n return selected.some((d) => isSame(date, d, 'day'));\n }\n\n _updateFocused(id?: string | null) {\n this.focusedId = id ?? null;\n }\n\n dayIsDisabled(\n date: Date,\n calendarApi: CalendarAPI,\n minDate?: Date,\n maxDate?: Date,\n disabledDates?: Array<Date | string>,\n ) {\n const calendar = calendarApi as PowerCalendarMultipleAPI;\n const numSelected = (calendar.selected && calendar.selected.length) || 0;\n const maxLength = this.maxLength || Infinity;\n return (\n dayIsDisabled(date, calendar, minDate, maxDate, disabledDates) ||\n (numSelected >= maxLength && !this.dayIsSelected(date))\n );\n }\n}\n"],"names":["PowerCalendarMultipleDaysComponent","Component","g","prototype","service","i","void 0","tracked","weekdayFormat","args","showDaysAround","undefined","weekdaysMin","withLocale","calendar","locale","getWeekdaysMin","weekdaysShort","getWeekdaysShort","weekdays","getWeekdays","localeStartOfWeek","localeStartOfWeekOrFallback","startOfWeek","weekdaysNames","days","today","powerCalendar","getDate","theLastDay","lastDay","currentCenter","day","firstDay","isBefore","push","buildDay","focusedId","dayIsSelected","bind","minDate","maxDate","disabledDates","dayIsDisabled","add","weeks","center","selected","normalizeDate","maxLength","Infinity","handleDayFocus","e","scheduleOnce","_updateFocused","target","dataset","n","action","handleDayBlur","handleKeyDown","handleDayKeyDown","id","focusDate","uniqueId","handleClick","date","some","d","isSame","calendarApi","numSelected","length","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;;;;;;AAiDe,MAAMA,kCAAkC,SAASC,SAAS,CAAqC;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,eAAA,EAAA,CAC3GC,MAAO,CAAA,CAAA;AAAA;AAAA,EAAA,cAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,eAAA,CAAA,EAAAC,SAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,WAAA,EAAA,CAEPI,OAAO,CAAA,EAAA,YAAA;AAAA,MAAA,OAA4B,IAAI;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,UAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,WAAA,CAAA,EAAAC,SAAA;EAExC,IAAIE,aAAaA,GAAmB;IAClC,OAAO,IAAI,CAACC,IAAI,CAACD,aAAa,IAAI,OAAO,CAAC;AAC5C;EAEA,IAAIE,cAAcA,GAAY;AAC5B,IAAA,OAAO,IAAI,CAACD,IAAI,CAACC,cAAc,KAAKC,SAAS,GACzC,IAAI,CAACF,IAAI,CAACC,cAAc,GACxB,IAAI;AACV;EAEA,IAAIE,WAAWA,GAAa;IAC1B,OAAOC,UAAU,CAAC,IAAI,CAACJ,IAAI,CAACK,QAAQ,CAACC,MAAM,EAAEC,cAAc,CAAC;AAC9D;EAEA,IAAIC,aAAaA,GAAa;IAC5B,OAAOJ,UAAU,CAAC,IAAI,CAACJ,IAAI,CAACK,QAAQ,CAACC,MAAM,EAAEG,gBAAgB,CAAC;AAChE;EAEA,IAAIC,QAAQA,GAAa;IACvB,OAAON,UAAU,CAAC,IAAI,CAACJ,IAAI,CAACK,QAAQ,CAACC,MAAM,EAAEK,WAAW,CAAC;AAC3D;EAEA,IAAIC,iBAAiBA,GAAW;AAC9B,IAAA,OAAOC,2BAA2B,CAChC,IAAI,CAACb,IAAI,CAACc,WAAW,EACrB,IAAI,CAACd,IAAI,CAACK,QAAQ,CAACC,MACrB,CAAC;AACH;EAEA,IAAIS,aAAaA,GAAa;IAC5B,OAAOA,aAAa,CAClB,IAAI,CAACH,iBAAiB,EACtB,IAAI,CAACb,aAAa,EAClB,IAAI,CAACW,QAAQ,EACb,IAAI,CAACP,WAAW,EAChB,IAAI,CAACK,aACP,CAAC;AACH;EAEA,IAAIQ,IAAIA,GAAuB;IAC7B,MAAMC,KAAK,GAAG,IAAI,CAACC,aAAa,CAACC,OAAO,EAAE;IAC1C,MAAMC,UAAU,GAAGC,OAAO,CAAC,IAAI,CAACT,iBAAiB,EAAE,IAAI,CAACU,aAAa,CAAC;IACtE,IAAIC,GAAG,GAAGC,QAAQ,CAAC,IAAI,CAACF,aAAa,EAAE,IAAI,CAACV,iBAAiB,CAAC;IAC9D,MAAMI,IAAwB,GAAG,EAAE;AACnC,IAAA,OAAOS,QAAQ,CAACF,GAAG,EAAEH,UAAU,CAAC,EAAE;MAChCJ,IAAI,CAACU,IAAI,CACPC,QAAQ,CACNJ,GAAG,EACHN,KAAK,EACL,IAAI,CAACjB,IAAI,CAACK,QAAQ,EAClB,IAAI,CAACuB,SAAS,EACd,IAAI,CAACN,aAAa,EAClB,IAAI,CAACO,aAAa,CAACC,IAAI,CAAC,IAAI,CAAC,EAC7B,IAAI,CAAC9B,IAAI,CAAC+B,OAAO,EACjB,IAAI,CAAC/B,IAAI,CAACgC,OAAO,EACjB,IAAI,CAAChC,IAAI,CAACiC,aAAa,EACvB,IAAI,CAACC,aAAa,CAACJ,IAAI,CAAC,IAAI,CAC9B,CACF,CAAC;MACDP,GAAG,GAAGY,GAAG,CAACZ,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC;AAC1B;AACA,IAAA,OAAOP,IAAI;AACb;EAEA,IAAIoB,KAAKA,GAAW;IAClB,OAAOA,KAAK,CAAC,IAAI,CAACpB,IAAI,EAAE,IAAI,CAACf,cAAc,CAAC;AAC9C;EAEA,IAAIqB,aAAaA,GAAS;AACxB,IAAA,IAAIe,MAAM,GAAG,IAAI,CAACrC,IAAI,CAACqC,MAAM;IAC7B,IAAI,CAACA,MAAM,EAAE;MACXA,MAAM,GAAG,IAAI,CAACrC,IAAI,CAACsC,QAAQ,GACvB,IAAI,CAACtC,IAAI,CAACsC,QAAQ,CAAC,CAAC,CAAC,GACrB,IAAI,CAACtC,IAAI,CAACK,QAAQ,CAACgC,MAAM;AAC/B;IACA,OAAOE,aAAa,CAACF,MAAM,CAAC,IAAI,IAAI,CAACrC,IAAI,CAACK,QAAQ,CAACgC,MAAM;AAC3D;EAEA,IAAIG,SAASA,GAAW;AACtB,IAAA,OAAO,IAAI,CAACxC,IAAI,CAACwC,SAAS,IAAIC,QAAQ;AACxC;;AAEA;EAEAC,cAAcA,CAACC,CAAa,EAAQ;IAClCC,YAAY,CACV,SAAS,EACT,IAAI,EACJ,IAAI,CAACC,cAAc,CAACf,IAAI,CAAC,IAAI,CAAC,EAC7Ba,CAAC,CAACG,MAAM,CAAiBC,OAAO,CAAC,MAAM,CAC1C,CAAC;AACH;AAAC,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAtD,SAAA,EAAA,gBAAA,EAAA,CARAuD,MAAM,CAAA,CAAA;AAAA;AAWPC,EAAAA,aAAaA,GAAS;AACpBN,IAAAA,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAACC,cAAc,CAACf,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;AACrE;AAAC,EAAA;IAAAkB,CAAA,CAAA,IAAA,CAAAtD,SAAA,EAAA,eAAA,EAAA,CAHAuD,MAAM,CAAA,CAAA;AAAA;EAMPE,aAAaA,CAACR,CAAgB,EAAQ;AACpC,IAAA,MAAMpB,GAAG,GAAG6B,gBAAgB,CAACT,CAAC,EAAE,IAAI,CAACf,SAAS,EAAE,IAAI,CAACZ,IAAI,CAAC;IAC1D,IAAI,CAACO,GAAG,EAAE;AACR,MAAA;AACF;AACA,IAAA,IAAI,CAACK,SAAS,GAAGL,GAAG,CAAC8B,EAAE;IACvBT,YAAY,CACV,aAAa,EACb,IAAI,EACJU,SAAS,EACT,IAAI,CAACtD,IAAI,CAACK,QAAQ,CAACkD,QAAQ,EAC3B,IAAI,CAAC3B,SAAS,IAAI,EACpB,CAAC;AACH;AAAC,EAAA;IAAAoB,CAAA,CAAA,IAAA,CAAAtD,SAAA,EAAA,eAAA,EAAA,CAdAuD,MAAM,CAAA,CAAA;AAAA;EAiBPO,WAAWA,CAACb,CAAa,EAAE;AACzBa,IAAAA,WAAW,CAACb,CAAC,EAAE,IAAI,CAAC3B,IAAI,EAAE,IAAI,CAAChB,IAAI,CAACK,QAAQ,CAAC;AAC/C;;AAEA;AAAA,EAAA;IAAA2C,CAAA,CAAA,IAAA,CAAAtD,SAAA,EAAA,aAAA,EAAA,CALCuD,MAAM,CAAA,CAAA;AAAA;EAMPpB,aAAaA,CAAC4B,IAAU,EAAEpD,QAAqB,GAAG,IAAI,CAACL,IAAI,CAACK,QAAQ,EAAE;AACpE,IAAA,MAAMiC,QAAQ,GAAIjC,QAAQ,CAA8BiC,QAAQ,IAAI,EAAE;AACtE,IAAA,OAAOA,QAAQ,CAACoB,IAAI,CAAEC,CAAC,IAAKC,MAAM,CAACH,IAAI,EAAEE,CAAC,EAAE,KAAK,CAAC,CAAC;AACrD;EAEAd,cAAcA,CAACQ,EAAkB,EAAE;AACjC,IAAA,IAAI,CAACzB,SAAS,GAAGyB,EAAE,IAAI,IAAI;AAC7B;EAEAnB,aAAaA,CACXuB,IAAU,EACVI,WAAwB,EACxB9B,OAAc,EACdC,OAAc,EACdC,aAAoC,EACpC;IACA,MAAM5B,QAAQ,GAAGwD,WAAuC;AACxD,IAAA,MAAMC,WAAW,GAAIzD,QAAQ,CAACiC,QAAQ,IAAIjC,QAAQ,CAACiC,QAAQ,CAACyB,MAAM,IAAK,CAAC;AACxE,IAAA,MAAMvB,SAAS,GAAG,IAAI,CAACA,SAAS,IAAIC,QAAQ;IAC5C,OACEP,aAAa,CAACuB,IAAI,EAAEpD,QAAQ,EAAE0B,OAAO,EAAEC,OAAO,EAAEC,aAAa,CAAC,IAC7D6B,WAAW,IAAItB,SAAS,IAAI,CAAC,IAAI,CAACX,aAAa,CAAC4B,IAAI,CAAE;AAE3D;AACF;AAACO,oBAAA,CAAAC,QAAA,EArJoB1E,kCAAkC,CAAA;;;;"}
|
|
@@ -9,7 +9,7 @@ import { action } from '@ember/object';
|
|
|
9
9
|
import 'ember-concurrency';
|
|
10
10
|
import PowerCalendarMultipleDaysComponent from './power-calendar-multiple/days.js';
|
|
11
11
|
import PowerCalendarNavComponent from './power-calendar/nav.js';
|
|
12
|
-
import { p as publicActionsObject } from '../utils-
|
|
12
|
+
import { p as publicActionsObject } from '../utils-y7Wx9c84.js';
|
|
13
13
|
import { normalizeDate, normalizeCalendarValue, isSame, normalizeMultipleActionValue } from '../utils.js';
|
|
14
14
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
15
15
|
import { g, i, n } from 'decorator-transforms/runtime';
|
|
@@ -54,7 +54,7 @@ class PowerCalendarMultipleComponent extends Component {
|
|
|
54
54
|
this.unregisterCalendar();
|
|
55
55
|
}
|
|
56
56
|
get publicActions() {
|
|
57
|
-
return publicActionsObject(this.args.onSelect, this.select, this.args.onCenterChange, this.changeCenterTask, this.currentCenter);
|
|
57
|
+
return publicActionsObject(this.args.onSelect, this.select.bind(this), this.args.onCenterChange, this.changeCenterTask, this.currentCenter);
|
|
58
58
|
}
|
|
59
59
|
get selected() {
|
|
60
60
|
if (this._selected) {
|
|
@@ -154,14 +154,24 @@ class PowerCalendarMultipleComponent extends Component {
|
|
|
154
154
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
155
155
|
window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??
|
|
156
156
|
// @ts-expect-error Property '__powerCalendars'
|
|
157
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
157
158
|
window.__powerCalendars[this.publicAPI.uniqueId] = this;
|
|
158
159
|
}
|
|
159
160
|
}
|
|
160
161
|
unregisterCalendar() {
|
|
161
162
|
// @ts-expect-error Property '__powerCalendars'
|
|
163
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
162
164
|
if (window && window.__powerCalendars?.[guidFor(this)]) {
|
|
163
165
|
// @ts-expect-error Property '__powerCalendars'
|
|
166
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
164
167
|
delete window.__powerCalendars[guidFor(this)];
|
|
168
|
+
|
|
169
|
+
// @ts-expect-error Property '__powerCalendars'
|
|
170
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
171
|
+
if (Object.keys(window.__powerCalendars).length === 0) {
|
|
172
|
+
// @ts-expect-error Property '__powerCalendars'
|
|
173
|
+
delete window.__powerCalendars;
|
|
174
|
+
}
|
|
165
175
|
}
|
|
166
176
|
}
|
|
167
177
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"power-calendar-multiple.js","sources":["../../src/components/power-calendar-multiple.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { guidFor } from '@ember/object/internals';\nimport { inject as service } from '@ember/service';\nimport { assert } from '@ember/debug';\nimport { isArray } from '@ember/array';\nimport { action } from '@ember/object';\nimport { task } from 'ember-concurrency';\nimport PowerCalendarMultipleDaysComponent from './power-calendar-multiple/days.ts';\nimport PowerCalendarNavComponent from './power-calendar/nav.ts';\nimport { publicActionsObject } from '../-private/utils.ts';\nimport {\n normalizeDate,\n isSame,\n normalizeMultipleActionValue,\n normalizeCalendarValue,\n type NormalizeMultipleActionValue,\n type PowerCalendarDay,\n} from '../utils.ts';\nimport type {\n CalendarAPI,\n CalendarDay,\n PowerCalendarAPI,\n PowerCalendarActions,\n PowerCalendarArgs,\n PowerCalendarSignature,\n SelectedDays,\n TCalendarType,\n} from './power-calendar.ts';\nimport type Owner from '@ember/owner';\nimport type { ComponentLike } from '@glint/template';\nimport type PowerCalendarService from '../services/power-calendar.ts';\n\nexport interface PowerCalendarMultipleAPI\n extends Omit<PowerCalendarAPI, 'selected'> {\n selected?: Date[];\n}\n\nexport type TPowerCalendarMultipleOnSelect = (\n day: NormalizeMultipleActionValue,\n calendar: PowerCalendarMultipleAPI,\n event: MouseEvent,\n) => void;\n\ninterface PowerCalendarMultipleArgs\n extends Omit<PowerCalendarArgs, 'selected' | 'onSelect'> {\n selected?: Date[];\n onSelect?: TPowerCalendarMultipleOnSelect;\n}\n\ninterface PowerCalendarMultipleDefaultBlock extends PowerCalendarMultipleAPI {\n NavComponent: ComponentLike<any>;\n DaysComponent: ComponentLike<any>;\n}\n\ninterface PowerCalendarMultipleSignature\n extends Omit<PowerCalendarSignature, 'Args'> {\n Args: PowerCalendarMultipleArgs;\n Blocks: {\n default: [PowerCalendarMultipleDefaultBlock];\n };\n}\n\nexport default class PowerCalendarMultipleComponent extends Component<PowerCalendarMultipleSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked center = null;\n @tracked _calendarType: TCalendarType = 'multiple';\n @tracked _selected?: SelectedDays;\n\n navComponent: ComponentLike<any> = PowerCalendarNavComponent;\n daysComponent: ComponentLike<any> = PowerCalendarMultipleDaysComponent;\n\n // Lifecycle hooks\n constructor(owner: Owner, args: PowerCalendarMultipleArgs) {\n super(owner, args);\n this.registerCalendar();\n if (this.args.onInit) {\n this.args.onInit(this.publicAPI);\n }\n }\n\n willDestroy(): void {\n super.willDestroy();\n this.unregisterCalendar();\n }\n\n get publicActions(): PowerCalendarActions {\n return publicActionsObject(\n this.args.onSelect,\n this.select,\n this.args.onCenterChange,\n this.changeCenterTask,\n this.currentCenter,\n );\n }\n\n get selected(): Date[] | undefined {\n if (this._selected) {\n return (this._selected as Date[]) || undefined;\n }\n\n const value = this.args.selected;\n\n if (!isArray(value)) {\n return value;\n }\n\n const selected: Date[] = [];\n\n for (const date of value) {\n const normalizedDate = normalizeDate(date);\n if (!(normalizedDate instanceof Date)) {\n continue;\n }\n selected.push(normalizedDate);\n }\n\n return selected;\n }\n\n set selected(v: SelectedDays) {\n this._selected = normalizeDate(v as Date | undefined);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = (this.selected || [])[0] || this.powerCalendar.getDate();\n }\n return normalizeDate(center) || this.powerCalendar.getDate();\n }\n\n get publicAPI(): PowerCalendarAPI {\n return {\n uniqueId: guidFor(this),\n type: this._calendarType,\n selected: this.selected,\n loading: this.changeCenterTask.isRunning,\n center: this.currentCenter,\n locale: this.args.locale || this.powerCalendar.locale,\n actions: this.publicActions,\n };\n }\n\n get tagWithDefault(): string {\n if (this.args.tag === undefined || this.args.tag === null) {\n return 'div';\n }\n return this.args.tag;\n }\n\n // Tasks\n changeCenterTask = task(\n async (newCenter: Date, calendar: PowerCalendarAPI, e: MouseEvent) => {\n assert(\n \"You attempted to move the center of a calendar that doesn't receive an `@onCenterChange` action.\",\n typeof this.args.onCenterChange === 'function',\n );\n const value = normalizeCalendarValue({ date: newCenter });\n await this.args.onCenterChange(value, calendar, e);\n },\n );\n\n // Actions\n @action\n select(dayOrDays: CalendarDay, calendar: CalendarAPI, e: MouseEvent) {\n assert(\n `The select action expects an array of date objects, or a date object. ${typeof dayOrDays} was recieved instead.`,\n isArray(dayOrDays) ||\n (dayOrDays instanceof Object && dayOrDays.date instanceof Date),\n );\n\n let days;\n\n if (isArray(dayOrDays)) {\n days = dayOrDays;\n } else if (dayOrDays instanceof Object && dayOrDays.date instanceof Date) {\n days = [dayOrDays];\n }\n\n if (this.args.onSelect) {\n this.args.onSelect(\n this._buildCollection((days as PowerCalendarDay[]) ?? []),\n calendar as PowerCalendarMultipleAPI,\n e,\n );\n }\n }\n\n // Methods\n _buildCollection(days: PowerCalendarDay[]): NormalizeMultipleActionValue {\n let selected = this.selected || [];\n\n for (const day of days) {\n const index = selected.findIndex((selectedDate) =>\n isSame(day.date, selectedDate, 'day'),\n );\n if (index === -1) {\n selected = [...selected, day.date];\n } else {\n selected = selected.slice(0, index).concat(selected.slice(index + 1));\n }\n }\n\n return normalizeMultipleActionValue({ date: selected });\n }\n\n // Methods\n registerCalendar() {\n if (window) {\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??\n // @ts-expect-error Property '__powerCalendars'\n window.__powerCalendars[this.publicAPI.uniqueId] = this;\n }\n }\n\n unregisterCalendar() {\n // @ts-expect-error Property '__powerCalendars'\n if (window && window.__powerCalendars?.[guidFor(this)]) {\n // @ts-expect-error Property '__powerCalendars'\n delete window.__powerCalendars[guidFor(this)];\n }\n }\n}\n"],"names":["PowerCalendarMultipleComponent","Component","g","prototype","service","i","void 0","tracked","navComponent","PowerCalendarNavComponent","daysComponent","PowerCalendarMultipleDaysComponent","constructor","owner","args","registerCalendar","onInit","publicAPI","willDestroy","unregisterCalendar","publicActions","publicActionsObject","onSelect","select","onCenterChange","changeCenterTask","currentCenter","selected","_selected","undefined","value","isArray","date","normalizedDate","normalizeDate","Date","push","v","center","powerCalendar","getDate","uniqueId","guidFor","type","_calendarType","loading","isRunning","locale","actions","tagWithDefault","tag","_buildTask","context","generator","newCenter","calendar","e","assert","normalizeCalendarValue","dayOrDays","Object","days","_buildCollection","n","action","day","index","findIndex","selectedDate","isSame","slice","concat","normalizeMultipleActionValue","window","__powerCalendars","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"power-calendar-multiple.js","sources":["../../src/components/power-calendar-multiple.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { guidFor } from '@ember/object/internals';\nimport { inject as service } from '@ember/service';\nimport { assert } from '@ember/debug';\nimport { isArray } from '@ember/array';\nimport { action } from '@ember/object';\nimport { task } from 'ember-concurrency';\nimport PowerCalendarMultipleDaysComponent, {\n type PowerCalendarMultipleDaysSignature,\n} from './power-calendar-multiple/days.ts';\nimport PowerCalendarNavComponent, {\n type PowerCalendarNavSignature,\n} from './power-calendar/nav.ts';\nimport { publicActionsObject } from '../-private/utils.ts';\nimport {\n normalizeDate,\n isSame,\n normalizeMultipleActionValue,\n normalizeCalendarValue,\n type NormalizeMultipleActionValue,\n type PowerCalendarDay,\n} from '../utils.ts';\nimport type {\n CalendarAPI,\n CalendarDay,\n PowerCalendarAPI,\n PowerCalendarActions,\n PowerCalendarArgs,\n SelectedDays,\n TCalendarType,\n} from './power-calendar.ts';\nimport type Owner from '@ember/owner';\nimport type { ComponentLike } from '@glint/template';\nimport type PowerCalendarService from '../services/power-calendar.ts';\n\nexport interface PowerCalendarMultipleAPI\n extends Omit<PowerCalendarAPI, 'selected' | 'DaysComponent'> {\n selected?: Date[];\n DaysComponent: ComponentLike<PowerCalendarMultipleDaysSignature>;\n}\n\nexport type TPowerCalendarMultipleOnSelect = (\n day: NormalizeMultipleActionValue,\n calendar: PowerCalendarMultipleAPI,\n event: MouseEvent,\n) => void;\n\ninterface PowerCalendarMultipleArgs\n extends Omit<PowerCalendarArgs, 'selected' | 'daysComponent' | 'onSelect'> {\n selected?: Date[];\n daysComponent?: string | ComponentLike<PowerCalendarMultipleDaysSignature>;\n onSelect?: TPowerCalendarMultipleOnSelect;\n}\n\ninterface PowerCalendarMultipleDefaultBlock extends PowerCalendarMultipleAPI {\n Nav: ComponentLike<PowerCalendarNavSignature>;\n Days: ComponentLike<PowerCalendarMultipleDaysSignature>;\n}\n\ninterface PowerCalendarMultipleSignature {\n Element: HTMLElement;\n Args: PowerCalendarMultipleArgs;\n Blocks: {\n default: [PowerCalendarMultipleDefaultBlock];\n };\n}\n\nexport default class PowerCalendarMultipleComponent extends Component<PowerCalendarMultipleSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked center = null;\n @tracked _calendarType: TCalendarType = 'multiple';\n @tracked _selected?: SelectedDays;\n\n navComponent = PowerCalendarNavComponent;\n daysComponent = PowerCalendarMultipleDaysComponent;\n\n // Lifecycle hooks\n constructor(owner: Owner, args: PowerCalendarMultipleArgs) {\n super(owner, args);\n this.registerCalendar();\n if (this.args.onInit) {\n this.args.onInit(this.publicAPI);\n }\n }\n\n willDestroy(): void {\n super.willDestroy();\n this.unregisterCalendar();\n }\n\n get publicActions(): PowerCalendarActions {\n return publicActionsObject(\n this.args.onSelect,\n this.select.bind(this),\n this.args.onCenterChange,\n this.changeCenterTask,\n this.currentCenter,\n );\n }\n\n get selected(): Date[] | undefined {\n if (this._selected) {\n return (this._selected as Date[]) || undefined;\n }\n\n const value = this.args.selected;\n\n if (!isArray(value)) {\n return value;\n }\n\n const selected: Date[] = [];\n\n for (const date of value) {\n const normalizedDate = normalizeDate(date);\n if (!(normalizedDate instanceof Date)) {\n continue;\n }\n selected.push(normalizedDate);\n }\n\n return selected;\n }\n\n set selected(v: SelectedDays) {\n this._selected = normalizeDate(v as Date | undefined);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = (this.selected || [])[0] || this.powerCalendar.getDate();\n }\n return normalizeDate(center) || this.powerCalendar.getDate();\n }\n\n get publicAPI(): PowerCalendarAPI {\n return {\n uniqueId: guidFor(this),\n type: this._calendarType,\n selected: this.selected,\n loading: this.changeCenterTask.isRunning,\n center: this.currentCenter,\n locale: this.args.locale || this.powerCalendar.locale,\n actions: this.publicActions,\n };\n }\n\n get tagWithDefault(): string {\n if (this.args.tag === undefined || this.args.tag === null) {\n return 'div';\n }\n return this.args.tag;\n }\n\n // Tasks\n changeCenterTask = task(\n async (newCenter: Date, calendar: PowerCalendarAPI, e: MouseEvent) => {\n assert(\n \"You attempted to move the center of a calendar that doesn't receive an `@onCenterChange` action.\",\n typeof this.args.onCenterChange === 'function',\n );\n const value = normalizeCalendarValue({ date: newCenter });\n await this.args.onCenterChange(value, calendar, e);\n },\n );\n\n // Actions\n @action\n select(dayOrDays: CalendarDay, calendar: CalendarAPI, e: MouseEvent) {\n assert(\n `The select action expects an array of date objects, or a date object. ${typeof dayOrDays} was recieved instead.`,\n isArray(dayOrDays) ||\n (dayOrDays instanceof Object && dayOrDays.date instanceof Date),\n );\n\n let days;\n\n if (isArray(dayOrDays)) {\n days = dayOrDays;\n } else if (dayOrDays instanceof Object && dayOrDays.date instanceof Date) {\n days = [dayOrDays];\n }\n\n if (this.args.onSelect) {\n this.args.onSelect(\n this._buildCollection((days as PowerCalendarDay[]) ?? []),\n calendar as PowerCalendarMultipleAPI,\n e,\n );\n }\n }\n\n // Methods\n _buildCollection(days: PowerCalendarDay[]): NormalizeMultipleActionValue {\n let selected = this.selected || [];\n\n for (const day of days) {\n const index = selected.findIndex((selectedDate) =>\n isSame(day.date, selectedDate, 'day'),\n );\n if (index === -1) {\n selected = [...selected, day.date];\n } else {\n selected = selected.slice(0, index).concat(selected.slice(index + 1));\n }\n }\n\n return normalizeMultipleActionValue({ date: selected });\n }\n\n // Methods\n registerCalendar() {\n if (window) {\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n window.__powerCalendars[this.publicAPI.uniqueId] = this;\n }\n }\n\n unregisterCalendar() {\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (window && window.__powerCalendars?.[guidFor(this)]) {\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n delete window.__powerCalendars[guidFor(this)];\n\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n if (Object.keys(window.__powerCalendars).length === 0) {\n // @ts-expect-error Property '__powerCalendars'\n delete window.__powerCalendars;\n }\n }\n }\n}\n"],"names":["PowerCalendarMultipleComponent","Component","g","prototype","service","i","void 0","tracked","navComponent","PowerCalendarNavComponent","daysComponent","PowerCalendarMultipleDaysComponent","constructor","owner","args","registerCalendar","onInit","publicAPI","willDestroy","unregisterCalendar","publicActions","publicActionsObject","onSelect","select","bind","onCenterChange","changeCenterTask","currentCenter","selected","_selected","undefined","value","isArray","date","normalizedDate","normalizeDate","Date","push","v","center","powerCalendar","getDate","uniqueId","guidFor","type","_calendarType","loading","isRunning","locale","actions","tagWithDefault","tag","_buildTask","context","generator","newCenter","calendar","e","assert","normalizeCalendarValue","dayOrDays","Object","days","_buildCollection","n","action","day","index","findIndex","selectedDate","isSame","slice","concat","normalizeMultipleActionValue","window","__powerCalendars","keys","length","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
@@ -67,13 +67,13 @@ class PowerCalendarRangeDaysComponent extends Component {
|
|
|
67
67
|
|
|
68
68
|
// Actions
|
|
69
69
|
handleDayFocus(e) {
|
|
70
|
-
scheduleOnce('actions', this, this._updateFocused, e.target.dataset['date']);
|
|
70
|
+
scheduleOnce('actions', this, this._updateFocused.bind(this), e.target.dataset['date']);
|
|
71
71
|
}
|
|
72
72
|
static {
|
|
73
73
|
n(this.prototype, "handleDayFocus", [action]);
|
|
74
74
|
}
|
|
75
75
|
handleDayBlur() {
|
|
76
|
-
scheduleOnce('actions', this, this._updateFocused, null);
|
|
76
|
+
scheduleOnce('actions', this, this._updateFocused.bind(this), null);
|
|
77
77
|
}
|
|
78
78
|
static {
|
|
79
79
|
n(this.prototype, "handleDayBlur", [action]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"days.js","sources":["../../../src/components/power-calendar-range/days.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { scheduleOnce } from '@ember/runloop';\nimport { inject as service } from '@ember/service';\nimport type {\n PowerCalendarDaysArgs,\n PowerCalendarDaysSignature,\n} from '../power-calendar/days.ts';\nimport {\n isBetween,\n isSame,\n diff,\n isBefore,\n add,\n withLocale,\n getWeekdaysMin,\n getWeekdaysShort,\n getWeekdays,\n normalizeDate,\n type PowerCalendarDay,\n} from '../../utils.ts';\nimport type { PowerCalendarRangeAPI } from '../power-calendar-range.ts';\nimport {\n buildDay,\n firstDay,\n lastDay,\n localeStartOfWeekOrFallback,\n weekdaysNames,\n weeks,\n handleDayKeyDown,\n focusDate,\n handleClick,\n type TWeekdayFormat,\n type Week,\n} from '../../-private/days-utils.ts';\nimport type PowerCalendarService from '../../services/power-calendar.ts';\n\ninterface PowerCalendarMultipleDaysArgs\n extends Omit<PowerCalendarDaysArgs, 'selected'> {\n selected?: {\n start: Date | null;\n end: Date | null;\n };\n}\n\ninterface PowerCalendarRangeSignature\n extends Omit<PowerCalendarDaysSignature, 'Args'> {\n Args: PowerCalendarMultipleDaysArgs;\n}\n\nexport default class PowerCalendarRangeDaysComponent extends Component<PowerCalendarRangeSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked focusedId: string | null = null;\n\n get weekdayFormat(): TWeekdayFormat {\n return this.args.weekdayFormat || 'short'; // \"min\" | \"short\" | \"long\"\n }\n\n get showDaysAround(): boolean {\n return this.args.showDaysAround !== undefined\n ? this.args.showDaysAround\n : true;\n }\n\n get weekdaysMin(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysMin) as string[];\n }\n\n get weekdaysShort(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysShort) as string[];\n }\n\n get weekdays(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdays) as string[];\n }\n\n get localeStartOfWeek(): number {\n return localeStartOfWeekOrFallback(\n this.args.startOfWeek,\n this.args.calendar.locale,\n );\n }\n\n get weekdaysNames(): string[] {\n return weekdaysNames(\n this.localeStartOfWeek,\n this.weekdayFormat,\n this.weekdays,\n this.weekdaysMin,\n this.weekdaysShort,\n );\n }\n\n get days(): PowerCalendarDay[] {\n const today = this.powerCalendar.getDate();\n const theLastDay = lastDay(this.localeStartOfWeek, this.currentCenter);\n let day = firstDay(this.currentCenter, this.localeStartOfWeek);\n const days: PowerCalendarDay[] = [];\n while (isBefore(day, theLastDay)) {\n days.push(\n this.buildDay(day, today, this.args.calendar as PowerCalendarRangeAPI),\n );\n day = add(day, 1, 'day');\n }\n return days;\n }\n\n get weeks(): Week[] {\n return weeks(this.days, this.showDaysAround);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n\n if (!center) {\n center = this.args.selected?.start || this.args.calendar.center;\n }\n return normalizeDate(center) || this.args.calendar.center;\n }\n\n // Actions\n @action\n handleDayFocus(e: FocusEvent): void {\n scheduleOnce(\n 'actions',\n this,\n this._updateFocused,\n (e.target as HTMLElement).dataset['date'],\n );\n }\n\n @action\n handleDayBlur(): void {\n scheduleOnce('actions', this, this._updateFocused, null);\n }\n\n @action\n handleKeyDown(e: KeyboardEvent): void {\n const day = handleDayKeyDown(e, this.focusedId, this.days);\n if (!day) {\n return;\n }\n this.focusedId = day.id;\n scheduleOnce(\n 'afterRender',\n this,\n focusDate,\n this.args.calendar.uniqueId,\n this.focusedId ?? '',\n );\n }\n\n @action\n handleClick(e: MouseEvent) {\n handleClick(e, this.days, this.args.calendar);\n }\n\n // Methods\n buildDay(date: Date, today: Date, calendar: PowerCalendarRangeAPI) {\n const day = buildDay(\n date,\n today,\n calendar,\n this.focusedId,\n this.currentCenter,\n this.dayIsSelected.bind(this),\n this.args.minDate,\n this.args.maxDate,\n this.args.disabledDates,\n );\n\n const { start, end } = calendar.selected || { start: null, end: null };\n if (start && end) {\n day.isSelected = isBetween(date, start, end, 'day', '[]');\n day.isRangeStart = day.isSelected && isSame(date, start, 'day');\n day.isRangeEnd = day.isSelected && isSame(date, end, 'day');\n } else {\n day.isRangeEnd = false;\n if (!start) {\n day.isRangeStart = false;\n } else {\n day.isRangeStart = day.isSelected = isSame(date, start, 'day');\n if (!day.isDisabled) {\n const diffInMs = Math.abs(diff(day.date, start));\n const minRange = calendar.minRange;\n const maxRange = calendar.maxRange;\n day.isDisabled =\n (minRange && diffInMs < minRange) ||\n (maxRange !== null &&\n maxRange !== undefined &&\n diffInMs > maxRange);\n }\n }\n }\n return day;\n }\n\n dayIsSelected() {\n return false;\n }\n\n _updateFocused(id?: string | null) {\n this.focusedId = id ?? null;\n }\n}\n"],"names":["PowerCalendarRangeDaysComponent","Component","g","prototype","service","i","void 0","tracked","weekdayFormat","args","showDaysAround","undefined","weekdaysMin","withLocale","calendar","locale","getWeekdaysMin","weekdaysShort","getWeekdaysShort","weekdays","getWeekdays","localeStartOfWeek","localeStartOfWeekOrFallback","startOfWeek","weekdaysNames","days","today","powerCalendar","getDate","theLastDay","lastDay","currentCenter","day","firstDay","isBefore","push","buildDay","add","weeks","center","selected","start","normalizeDate","handleDayFocus","e","scheduleOnce","_updateFocused","target","dataset","n","action","handleDayBlur","handleKeyDown","handleDayKeyDown","focusedId","id","focusDate","uniqueId","handleClick","date","dayIsSelected","bind","minDate","maxDate","disabledDates","end","isSelected","isBetween","isRangeStart","isSame","isRangeEnd","isDisabled","diffInMs","Math","abs","diff","minRange","maxRange","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"days.js","sources":["../../../src/components/power-calendar-range/days.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { scheduleOnce } from '@ember/runloop';\nimport { inject as service } from '@ember/service';\nimport type {\n PowerCalendarDaysArgs,\n PowerCalendarDaysSignature,\n} from '../power-calendar/days.ts';\nimport {\n isBetween,\n isSame,\n diff,\n isBefore,\n add,\n withLocale,\n getWeekdaysMin,\n getWeekdaysShort,\n getWeekdays,\n normalizeDate,\n type PowerCalendarDay,\n} from '../../utils.ts';\nimport type { PowerCalendarRangeAPI } from '../power-calendar-range.ts';\nimport {\n buildDay,\n firstDay,\n lastDay,\n localeStartOfWeekOrFallback,\n weekdaysNames,\n weeks,\n handleDayKeyDown,\n focusDate,\n handleClick,\n type TWeekdayFormat,\n type Week,\n} from '../../-private/days-utils.ts';\nimport type PowerCalendarService from '../../services/power-calendar.ts';\n\ninterface PowerCalendarMultipleDaysArgs\n extends Omit<PowerCalendarDaysArgs, 'selected'> {\n selected?: {\n start: Date | null;\n end: Date | null;\n };\n}\n\nexport interface PowerCalendarRangeDaysSignature\n extends Omit<PowerCalendarDaysSignature, 'Args'> {\n Args: PowerCalendarMultipleDaysArgs;\n}\n\nexport default class PowerCalendarRangeDaysComponent extends Component<PowerCalendarRangeDaysSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked focusedId: string | null = null;\n\n get weekdayFormat(): TWeekdayFormat {\n return this.args.weekdayFormat || 'short'; // \"min\" | \"short\" | \"long\"\n }\n\n get showDaysAround(): boolean {\n return this.args.showDaysAround !== undefined\n ? this.args.showDaysAround\n : true;\n }\n\n get weekdaysMin(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysMin) as string[];\n }\n\n get weekdaysShort(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdaysShort) as string[];\n }\n\n get weekdays(): string[] {\n return withLocale(this.args.calendar.locale, getWeekdays) as string[];\n }\n\n get localeStartOfWeek(): number {\n return localeStartOfWeekOrFallback(\n this.args.startOfWeek,\n this.args.calendar.locale,\n );\n }\n\n get weekdaysNames(): string[] {\n return weekdaysNames(\n this.localeStartOfWeek,\n this.weekdayFormat,\n this.weekdays,\n this.weekdaysMin,\n this.weekdaysShort,\n );\n }\n\n get days(): PowerCalendarDay[] {\n const today = this.powerCalendar.getDate();\n const theLastDay = lastDay(this.localeStartOfWeek, this.currentCenter);\n let day = firstDay(this.currentCenter, this.localeStartOfWeek);\n const days: PowerCalendarDay[] = [];\n while (isBefore(day, theLastDay)) {\n days.push(\n this.buildDay(day, today, this.args.calendar as PowerCalendarRangeAPI),\n );\n day = add(day, 1, 'day');\n }\n return days;\n }\n\n get weeks(): Week[] {\n return weeks(this.days, this.showDaysAround);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n\n if (!center) {\n center = this.args.selected?.start || this.args.calendar.center;\n }\n return normalizeDate(center) || this.args.calendar.center;\n }\n\n // Actions\n @action\n handleDayFocus(e: FocusEvent): void {\n scheduleOnce(\n 'actions',\n this,\n this._updateFocused.bind(this),\n (e.target as HTMLElement).dataset['date'],\n );\n }\n\n @action\n handleDayBlur(): void {\n scheduleOnce('actions', this, this._updateFocused.bind(this), null);\n }\n\n @action\n handleKeyDown(e: KeyboardEvent): void {\n const day = handleDayKeyDown(e, this.focusedId, this.days);\n if (!day) {\n return;\n }\n this.focusedId = day.id;\n scheduleOnce(\n 'afterRender',\n this,\n focusDate,\n this.args.calendar.uniqueId,\n this.focusedId ?? '',\n );\n }\n\n @action\n handleClick(e: MouseEvent) {\n handleClick(e, this.days, this.args.calendar);\n }\n\n // Methods\n buildDay(date: Date, today: Date, calendar: PowerCalendarRangeAPI) {\n const day = buildDay(\n date,\n today,\n calendar,\n this.focusedId,\n this.currentCenter,\n this.dayIsSelected.bind(this),\n this.args.minDate,\n this.args.maxDate,\n this.args.disabledDates,\n );\n\n const { start, end } = calendar.selected || { start: null, end: null };\n if (start && end) {\n day.isSelected = isBetween(date, start, end, 'day', '[]');\n day.isRangeStart = day.isSelected && isSame(date, start, 'day');\n day.isRangeEnd = day.isSelected && isSame(date, end, 'day');\n } else {\n day.isRangeEnd = false;\n if (!start) {\n day.isRangeStart = false;\n } else {\n day.isRangeStart = day.isSelected = isSame(date, start, 'day');\n if (!day.isDisabled) {\n const diffInMs = Math.abs(diff(day.date, start));\n const minRange = calendar.minRange;\n const maxRange = calendar.maxRange;\n day.isDisabled =\n (minRange && diffInMs < minRange) ||\n (maxRange !== null &&\n maxRange !== undefined &&\n diffInMs > maxRange);\n }\n }\n }\n return day;\n }\n\n dayIsSelected() {\n return false;\n }\n\n _updateFocused(id?: string | null) {\n this.focusedId = id ?? null;\n }\n}\n"],"names":["PowerCalendarRangeDaysComponent","Component","g","prototype","service","i","void 0","tracked","weekdayFormat","args","showDaysAround","undefined","weekdaysMin","withLocale","calendar","locale","getWeekdaysMin","weekdaysShort","getWeekdaysShort","weekdays","getWeekdays","localeStartOfWeek","localeStartOfWeekOrFallback","startOfWeek","weekdaysNames","days","today","powerCalendar","getDate","theLastDay","lastDay","currentCenter","day","firstDay","isBefore","push","buildDay","add","weeks","center","selected","start","normalizeDate","handleDayFocus","e","scheduleOnce","_updateFocused","bind","target","dataset","n","action","handleDayBlur","handleKeyDown","handleDayKeyDown","focusedId","id","focusDate","uniqueId","handleClick","date","dayIsSelected","minDate","maxDate","disabledDates","end","isSelected","isBetween","isRangeStart","isSame","isRangeEnd","isDisabled","diffInMs","Math","abs","diff","minRange","maxRange","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;;;;;;AAmDe,MAAMA,+BAA+B,SAASC,SAAS,CAAkC;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,eAAA,EAAA,CACrGC,MAAO,CAAA,CAAA;AAAA;AAAA,EAAA,cAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,eAAA,CAAA,EAAAC,SAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,WAAA,EAAA,CAEPI,OAAO,CAAA,EAAA,YAAA;AAAA,MAAA,OAA4B,IAAI;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,UAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,WAAA,CAAA,EAAAC,SAAA;EAExC,IAAIE,aAAaA,GAAmB;IAClC,OAAO,IAAI,CAACC,IAAI,CAACD,aAAa,IAAI,OAAO,CAAC;AAC5C;EAEA,IAAIE,cAAcA,GAAY;AAC5B,IAAA,OAAO,IAAI,CAACD,IAAI,CAACC,cAAc,KAAKC,SAAS,GACzC,IAAI,CAACF,IAAI,CAACC,cAAc,GACxB,IAAI;AACV;EAEA,IAAIE,WAAWA,GAAa;IAC1B,OAAOC,UAAU,CAAC,IAAI,CAACJ,IAAI,CAACK,QAAQ,CAACC,MAAM,EAAEC,cAAc,CAAC;AAC9D;EAEA,IAAIC,aAAaA,GAAa;IAC5B,OAAOJ,UAAU,CAAC,IAAI,CAACJ,IAAI,CAACK,QAAQ,CAACC,MAAM,EAAEG,gBAAgB,CAAC;AAChE;EAEA,IAAIC,QAAQA,GAAa;IACvB,OAAON,UAAU,CAAC,IAAI,CAACJ,IAAI,CAACK,QAAQ,CAACC,MAAM,EAAEK,WAAW,CAAC;AAC3D;EAEA,IAAIC,iBAAiBA,GAAW;AAC9B,IAAA,OAAOC,2BAA2B,CAChC,IAAI,CAACb,IAAI,CAACc,WAAW,EACrB,IAAI,CAACd,IAAI,CAACK,QAAQ,CAACC,MACrB,CAAC;AACH;EAEA,IAAIS,aAAaA,GAAa;IAC5B,OAAOA,aAAa,CAClB,IAAI,CAACH,iBAAiB,EACtB,IAAI,CAACb,aAAa,EAClB,IAAI,CAACW,QAAQ,EACb,IAAI,CAACP,WAAW,EAChB,IAAI,CAACK,aACP,CAAC;AACH;EAEA,IAAIQ,IAAIA,GAAuB;IAC7B,MAAMC,KAAK,GAAG,IAAI,CAACC,aAAa,CAACC,OAAO,EAAE;IAC1C,MAAMC,UAAU,GAAGC,OAAO,CAAC,IAAI,CAACT,iBAAiB,EAAE,IAAI,CAACU,aAAa,CAAC;IACtE,IAAIC,GAAG,GAAGC,QAAQ,CAAC,IAAI,CAACF,aAAa,EAAE,IAAI,CAACV,iBAAiB,CAAC;IAC9D,MAAMI,IAAwB,GAAG,EAAE;AACnC,IAAA,OAAOS,QAAQ,CAACF,GAAG,EAAEH,UAAU,CAAC,EAAE;AAChCJ,MAAAA,IAAI,CAACU,IAAI,CACP,IAAI,CAACC,QAAQ,CAACJ,GAAG,EAAEN,KAAK,EAAE,IAAI,CAACjB,IAAI,CAACK,QAAiC,CACvE,CAAC;MACDkB,GAAG,GAAGK,GAAG,CAACL,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC;AAC1B;AACA,IAAA,OAAOP,IAAI;AACb;EAEA,IAAIa,KAAKA,GAAW;IAClB,OAAOA,KAAK,CAAC,IAAI,CAACb,IAAI,EAAE,IAAI,CAACf,cAAc,CAAC;AAC9C;EAEA,IAAIqB,aAAaA,GAAS;AACxB,IAAA,IAAIQ,MAAM,GAAG,IAAI,CAAC9B,IAAI,CAAC8B,MAAM;IAE7B,IAAI,CAACA,MAAM,EAAE;AACXA,MAAAA,MAAM,GAAG,IAAI,CAAC9B,IAAI,CAAC+B,QAAQ,EAAEC,KAAK,IAAI,IAAI,CAAChC,IAAI,CAACK,QAAQ,CAACyB,MAAM;AACjE;IACA,OAAOG,aAAa,CAACH,MAAM,CAAC,IAAI,IAAI,CAAC9B,IAAI,CAACK,QAAQ,CAACyB,MAAM;AAC3D;;AAEA;EAEAI,cAAcA,CAACC,CAAa,EAAQ;IAClCC,YAAY,CACV,SAAS,EACT,IAAI,EACJ,IAAI,CAACC,cAAc,CAACC,IAAI,CAAC,IAAI,CAAC,EAC7BH,CAAC,CAACI,MAAM,CAAiBC,OAAO,CAAC,MAAM,CAC1C,CAAC;AACH;AAAC,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAA/C,SAAA,EAAA,gBAAA,EAAA,CARAgD,MAAM,CAAA,CAAA;AAAA;AAWPC,EAAAA,aAAaA,GAAS;AACpBP,IAAAA,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAACC,cAAc,CAACC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;AACrE;AAAC,EAAA;IAAAG,CAAA,CAAA,IAAA,CAAA/C,SAAA,EAAA,eAAA,EAAA,CAHAgD,MAAM,CAAA,CAAA;AAAA;EAMPE,aAAaA,CAACT,CAAgB,EAAQ;AACpC,IAAA,MAAMZ,GAAG,GAAGsB,gBAAgB,CAACV,CAAC,EAAE,IAAI,CAACW,SAAS,EAAE,IAAI,CAAC9B,IAAI,CAAC;IAC1D,IAAI,CAACO,GAAG,EAAE;AACR,MAAA;AACF;AACA,IAAA,IAAI,CAACuB,SAAS,GAAGvB,GAAG,CAACwB,EAAE;IACvBX,YAAY,CACV,aAAa,EACb,IAAI,EACJY,SAAS,EACT,IAAI,CAAChD,IAAI,CAACK,QAAQ,CAAC4C,QAAQ,EAC3B,IAAI,CAACH,SAAS,IAAI,EACpB,CAAC;AACH;AAAC,EAAA;IAAAL,CAAA,CAAA,IAAA,CAAA/C,SAAA,EAAA,eAAA,EAAA,CAdAgD,MAAM,CAAA,CAAA;AAAA;EAiBPQ,WAAWA,CAACf,CAAa,EAAE;AACzBe,IAAAA,WAAW,CAACf,CAAC,EAAE,IAAI,CAACnB,IAAI,EAAE,IAAI,CAAChB,IAAI,CAACK,QAAQ,CAAC;AAC/C;;AAEA;AAAA,EAAA;IAAAoC,CAAA,CAAA,IAAA,CAAA/C,SAAA,EAAA,aAAA,EAAA,CALCgD,MAAM,CAAA,CAAA;AAAA;AAMPf,EAAAA,QAAQA,CAACwB,IAAU,EAAElC,KAAW,EAAEZ,QAA+B,EAAE;IACjE,MAAMkB,GAAG,GAAGI,QAAQ,CAClBwB,IAAI,EACJlC,KAAK,EACLZ,QAAQ,EACR,IAAI,CAACyC,SAAS,EACd,IAAI,CAACxB,aAAa,EAClB,IAAI,CAAC8B,aAAa,CAACd,IAAI,CAAC,IAAI,CAAC,EAC7B,IAAI,CAACtC,IAAI,CAACqD,OAAO,EACjB,IAAI,CAACrD,IAAI,CAACsD,OAAO,EACjB,IAAI,CAACtD,IAAI,CAACuD,aACZ,CAAC;IAED,MAAM;MAAEvB,KAAK;AAAEwB,MAAAA;AAAI,KAAC,GAAGnD,QAAQ,CAAC0B,QAAQ,IAAI;AAAEC,MAAAA,KAAK,EAAE,IAAI;AAAEwB,MAAAA,GAAG,EAAE;KAAM;IACtE,IAAIxB,KAAK,IAAIwB,GAAG,EAAE;AAChBjC,MAAAA,GAAG,CAACkC,UAAU,GAAGC,SAAS,CAACP,IAAI,EAAEnB,KAAK,EAAEwB,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC;AACzDjC,MAAAA,GAAG,CAACoC,YAAY,GAAGpC,GAAG,CAACkC,UAAU,IAAIG,MAAM,CAACT,IAAI,EAAEnB,KAAK,EAAE,KAAK,CAAC;AAC/DT,MAAAA,GAAG,CAACsC,UAAU,GAAGtC,GAAG,CAACkC,UAAU,IAAIG,MAAM,CAACT,IAAI,EAAEK,GAAG,EAAE,KAAK,CAAC;AAC7D,KAAC,MAAM;MACLjC,GAAG,CAACsC,UAAU,GAAG,KAAK;MACtB,IAAI,CAAC7B,KAAK,EAAE;QACVT,GAAG,CAACoC,YAAY,GAAG,KAAK;AAC1B,OAAC,MAAM;AACLpC,QAAAA,GAAG,CAACoC,YAAY,GAAGpC,GAAG,CAACkC,UAAU,GAAGG,MAAM,CAACT,IAAI,EAAEnB,KAAK,EAAE,KAAK,CAAC;AAC9D,QAAA,IAAI,CAACT,GAAG,CAACuC,UAAU,EAAE;AACnB,UAAA,MAAMC,QAAQ,GAAGC,IAAI,CAACC,GAAG,CAACC,IAAI,CAAC3C,GAAG,CAAC4B,IAAI,EAAEnB,KAAK,CAAC,CAAC;AAChD,UAAA,MAAMmC,QAAQ,GAAG9D,QAAQ,CAAC8D,QAAQ;AAClC,UAAA,MAAMC,QAAQ,GAAG/D,QAAQ,CAAC+D,QAAQ;AAClC7C,UAAAA,GAAG,CAACuC,UAAU,GACXK,QAAQ,IAAIJ,QAAQ,GAAGI,QAAQ,IAC/BC,QAAQ,KAAK,IAAI,IAChBA,QAAQ,KAAKlE,SAAS,IACtB6D,QAAQ,GAAGK,QAAS;AAC1B;AACF;AACF;AACA,IAAA,OAAO7C,GAAG;AACZ;AAEA6B,EAAAA,aAAaA,GAAG;AACd,IAAA,OAAO,KAAK;AACd;EAEAf,cAAcA,CAACU,EAAkB,EAAE;AACjC,IAAA,IAAI,CAACD,SAAS,GAAGC,EAAE,IAAI,IAAI;AAC7B;AACF;AAACsB,oBAAA,CAAAC,QAAA,EA3JoB/E,+BAA+B,CAAA;;;;"}
|
|
@@ -8,7 +8,7 @@ import { assert } from '@ember/debug';
|
|
|
8
8
|
import 'ember-concurrency';
|
|
9
9
|
import PowerCalendarRangeDaysComponent from './power-calendar-range/days.js';
|
|
10
10
|
import PowerCalendarNavComponent from './power-calendar/nav.js';
|
|
11
|
-
import { p as publicActionsObject } from '../utils-
|
|
11
|
+
import { p as publicActionsObject } from '../utils-y7Wx9c84.js';
|
|
12
12
|
import { normalizeDate, normalizeCalendarValue, diff, normalizeDuration, normalizeRangeActionValue, isBefore, isAfter } from '../utils.js';
|
|
13
13
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
14
14
|
import { g, i, n } from 'decorator-transforms/runtime';
|
|
@@ -54,7 +54,7 @@ class PowerCalendarRangeComponent extends Component {
|
|
|
54
54
|
this.unregisterCalendar();
|
|
55
55
|
}
|
|
56
56
|
get publicActions() {
|
|
57
|
-
return publicActionsObject(this.args.onSelect, this.select, this.args.onCenterChange, this.changeCenterTask, this.currentCenter);
|
|
57
|
+
return publicActionsObject(this.args.onSelect, this.select.bind(this), this.args.onCenterChange, this.changeCenterTask, this.currentCenter);
|
|
58
58
|
}
|
|
59
59
|
get selected() {
|
|
60
60
|
if (this._selected) {
|
|
@@ -245,14 +245,24 @@ class PowerCalendarRangeComponent extends Component {
|
|
|
245
245
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
246
246
|
window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??
|
|
247
247
|
// @ts-expect-error Property '__powerCalendars'
|
|
248
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
248
249
|
window.__powerCalendars[this.publicAPI.uniqueId] = this;
|
|
249
250
|
}
|
|
250
251
|
}
|
|
251
252
|
unregisterCalendar() {
|
|
252
253
|
// @ts-expect-error Property '__powerCalendars'
|
|
254
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
253
255
|
if (window && window.__powerCalendars?.[guidFor(this)]) {
|
|
254
256
|
// @ts-expect-error Property '__powerCalendars'
|
|
257
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
255
258
|
delete window.__powerCalendars[guidFor(this)];
|
|
259
|
+
|
|
260
|
+
// @ts-expect-error Property '__powerCalendars'
|
|
261
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
262
|
+
if (Object.keys(window.__powerCalendars).length === 0) {
|
|
263
|
+
// @ts-expect-error Property '__powerCalendars'
|
|
264
|
+
delete window.__powerCalendars;
|
|
265
|
+
}
|
|
256
266
|
}
|
|
257
267
|
}
|
|
258
268
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"power-calendar-range.js","sources":["../../src/components/power-calendar-range.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { guidFor } from '@ember/object/internals';\nimport { assert } from '@ember/debug';\nimport { task } from 'ember-concurrency';\nimport PowerCalendarRangeDaysComponent from './power-calendar-range/days.ts';\nimport PowerCalendarNavComponent from './power-calendar/nav.ts';\nimport { publicActionsObject } from '../-private/utils.ts';\nimport {\n normalizeDate,\n normalizeRangeActionValue,\n diff,\n isAfter,\n isBefore,\n normalizeDuration,\n normalizeCalendarValue,\n type NormalizeRangeActionValue,\n type PowerCalendarDay,\n type SelectedPowerCalendarRange,\n} from '../utils.ts';\nimport type {\n PowerCalendarAPI,\n PowerCalendarSignature,\n PowerCalendarArgs,\n TCalendarType,\n SelectedDays,\n PowerCalendarActions,\n CalendarDay,\n CalendarAPI,\n} from './power-calendar.ts';\nimport type Owner from '@ember/owner';\nimport type { ComponentLike } from '@glint/template';\nimport type PowerCalendarService from '../services/power-calendar.ts';\n\nexport interface PowerCalendarRangeDay extends Omit<PowerCalendarDay, 'date'> {\n date: SelectedPowerCalendarRange;\n}\n\nexport const DAY_IN_MS = 86400000;\n\nexport type TPowerCalendarRangeOnSelect = (\n day: NormalizeRangeActionValue,\n calendar: PowerCalendarRangeAPI,\n event: MouseEvent,\n) => void;\n\ninterface PowerCalendarRangeArgs\n extends Omit<PowerCalendarArgs, 'selected' | 'onSelect'> {\n selected?: SelectedPowerCalendarRange;\n minRange?: number;\n maxRange?: number;\n proximitySelection?: boolean;\n onSelect?: TPowerCalendarRangeOnSelect;\n}\n\nexport interface PowerCalendarRangeDefaultBlock extends PowerCalendarRangeAPI {\n NavComponent: ComponentLike<any>;\n DaysComponent: ComponentLike<any>;\n}\n\ninterface PowerCalendarRangeSignature\n extends Omit<PowerCalendarSignature, 'Args' | 'Blocks'> {\n Args: PowerCalendarRangeArgs;\n Blocks: {\n default: [PowerCalendarRangeDefaultBlock];\n };\n}\n\nexport interface PowerCalendarRangeAPI\n extends Omit<PowerCalendarAPI, 'selected'> {\n selected?: SelectedPowerCalendarRange;\n minRange?: number | null;\n maxRange?: number | null;\n}\n\nexport default class PowerCalendarRangeComponent extends Component<PowerCalendarRangeSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked center = null;\n @tracked _calendarType: TCalendarType = 'range';\n @tracked _selected?: SelectedDays;\n\n navComponent: ComponentLike<any> = PowerCalendarNavComponent;\n daysComponent: ComponentLike<any> = PowerCalendarRangeDaysComponent;\n\n // Lifecycle hooks\n constructor(owner: Owner, args: PowerCalendarRangeArgs) {\n super(owner, args);\n this.registerCalendar();\n if (this.args.onInit) {\n this.args.onInit(this.publicAPI);\n }\n }\n\n willDestroy(): void {\n super.willDestroy();\n this.unregisterCalendar();\n }\n\n get publicActions(): PowerCalendarActions {\n return publicActionsObject(\n this.args.onSelect,\n this.select,\n this.args.onCenterChange,\n this.changeCenterTask,\n this.currentCenter,\n );\n }\n\n get selected(): SelectedPowerCalendarRange {\n if (this._selected) {\n return this._selected as SelectedPowerCalendarRange;\n }\n\n if (this.args.selected) {\n return {\n start: normalizeDate(this.args.selected.start),\n end: normalizeDate(this.args.selected.end),\n };\n }\n\n return { start: undefined, end: undefined };\n }\n\n set selected(v) {\n if (v === undefined || v === null) {\n v = {};\n }\n this._selected = {\n start: normalizeDate(v.start),\n end: normalizeDate(v.end),\n };\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = this.selected.start || this.powerCalendar.getDate();\n }\n return normalizeDate(center) || this.powerCalendar.getDate();\n }\n\n get publicAPI(): PowerCalendarRangeAPI {\n return {\n uniqueId: guidFor(this),\n type: this._calendarType,\n selected: this.selected,\n loading: this.changeCenterTask.isRunning,\n center: this.currentCenter,\n locale: this.args.locale || this.powerCalendar.locale,\n actions: this.publicActions,\n minRange: this.minRange,\n maxRange: this.maxRange,\n };\n }\n\n get tagWithDefault(): string {\n if (this.args.tag === undefined || this.args.tag === null) {\n return 'div';\n }\n return this.args.tag;\n }\n\n get proximitySelection(): boolean {\n return this.args.proximitySelection !== undefined\n ? this.args.proximitySelection\n : false;\n }\n\n get minRange(): number | null {\n if (this.args.minRange !== undefined) {\n return this._formatRange(this.args.minRange) as number;\n }\n\n return DAY_IN_MS;\n }\n\n get maxRange(): number | null {\n if (this.args.maxRange !== undefined) {\n return this._formatRange(this.args.maxRange) as number;\n }\n\n return null;\n }\n\n // Tasks\n changeCenterTask = task(\n async (newCenter: Date, calendar: PowerCalendarRangeAPI, e: MouseEvent) => {\n assert(\n \"You attempted to move the center of a calendar that doesn't receive an `@onCenterChange` action.\",\n typeof this.args.onCenterChange === 'function',\n );\n const value = normalizeCalendarValue({ date: newCenter });\n await this.args.onCenterChange(value, calendar, e);\n },\n );\n\n // Actions\n @action\n select(day: CalendarDay, calendar: CalendarAPI, e: MouseEvent) {\n const { date } = day as NormalizeRangeActionValue;\n assert(\n 'date must be either a Date, or a Range',\n date &&\n (ownProp(date, 'start') ||\n ownProp(date, 'end') ||\n date instanceof Date),\n );\n\n let range: NormalizeRangeActionValue;\n\n if (ownProp(date, 'start') && ownProp(date, 'end')) {\n range = { date };\n } else {\n range = this._buildRange({ date } as { date: Date });\n }\n\n const { start, end } = range.date;\n if (start && end) {\n const { minRange, maxRange } = this.publicAPI;\n const diffInMs = Math.abs(diff(end, start));\n if (\n diffInMs < (minRange ?? DAY_IN_MS) ||\n (maxRange && diffInMs > maxRange)\n ) {\n return;\n }\n }\n\n if (this.args.onSelect) {\n this.args.onSelect(range, calendar as PowerCalendarRangeAPI, e);\n }\n }\n\n _formatRange(v: number | undefined) {\n if (typeof v === 'number') {\n return v * DAY_IN_MS;\n }\n\n return normalizeDuration(v === undefined ? DAY_IN_MS : v);\n }\n\n // Methods\n _buildRange(day: { date: Date }): NormalizeRangeActionValue {\n const selected = this.selected || { start: null, end: null };\n const { start, end } = selected;\n\n if (this.proximitySelection) {\n return this._buildRangeByProximity(day, start, end);\n }\n\n return this._buildDefaultRange(day, start, end);\n }\n\n _buildRangeByProximity(\n day: { date: Date },\n start?: Date | null,\n end?: Date | null,\n ): NormalizeRangeActionValue {\n if (start && end) {\n const changeStart =\n Math.abs(diff(day.date, end)) > Math.abs(diff(day.date, start));\n\n return normalizeRangeActionValue({\n date: {\n start: changeStart ? day.date : start,\n end: changeStart ? end : day.date,\n },\n });\n }\n\n if (start && isBefore(day.date, start)) {\n return normalizeRangeActionValue({\n date: { start: day.date, end: null },\n });\n }\n\n return this._buildDefaultRange(day, start, end);\n }\n\n _buildDefaultRange(\n day: { date: Date },\n start?: Date | null,\n end?: Date | null,\n ): NormalizeRangeActionValue {\n if (start && !end) {\n if (isAfter(start, day.date)) {\n return normalizeRangeActionValue({\n date: { start: day.date, end: start },\n });\n }\n return normalizeRangeActionValue({\n date: { start: start, end: day.date },\n });\n }\n\n return normalizeRangeActionValue({ date: { start: day.date, end: null } });\n }\n\n // Methods\n registerCalendar() {\n if (window) {\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??\n // @ts-expect-error Property '__powerCalendars'\n window.__powerCalendars[this.publicAPI.uniqueId] = this;\n }\n }\n\n unregisterCalendar() {\n // @ts-expect-error Property '__powerCalendars'\n if (window && window.__powerCalendars?.[guidFor(this)]) {\n // @ts-expect-error Property '__powerCalendars'\n delete window.__powerCalendars[guidFor(this)];\n }\n }\n}\n\nfunction ownProp<T = { [key: string | number]: any }>(obj: T, prop: keyof T) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n"],"names":["DAY_IN_MS","PowerCalendarRangeComponent","Component","g","prototype","service","i","void 0","tracked","navComponent","PowerCalendarNavComponent","daysComponent","PowerCalendarRangeDaysComponent","constructor","owner","args","registerCalendar","onInit","publicAPI","willDestroy","unregisterCalendar","publicActions","publicActionsObject","onSelect","select","onCenterChange","changeCenterTask","currentCenter","selected","_selected","start","normalizeDate","end","undefined","v","center","powerCalendar","getDate","uniqueId","guidFor","type","_calendarType","loading","isRunning","locale","actions","minRange","maxRange","tagWithDefault","tag","proximitySelection","_formatRange","_buildTask","context","generator","newCenter","calendar","e","assert","value","normalizeCalendarValue","date","day","ownProp","Date","range","_buildRange","diffInMs","Math","abs","diff","n","action","normalizeDuration","_buildRangeByProximity","_buildDefaultRange","changeStart","normalizeRangeActionValue","isBefore","isAfter","window","__powerCalendars","obj","prop","Object","hasOwnProperty","call","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"power-calendar-range.js","sources":["../../src/components/power-calendar-range.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { guidFor } from '@ember/object/internals';\nimport { assert } from '@ember/debug';\nimport { task } from 'ember-concurrency';\nimport PowerCalendarRangeDaysComponent, {\n type PowerCalendarRangeDaysSignature,\n} from './power-calendar-range/days.ts';\nimport PowerCalendarNavComponent, {\n type PowerCalendarNavSignature,\n} from './power-calendar/nav.ts';\nimport { publicActionsObject } from '../-private/utils.ts';\nimport {\n normalizeDate,\n normalizeRangeActionValue,\n diff,\n isAfter,\n isBefore,\n normalizeDuration,\n normalizeCalendarValue,\n type NormalizeRangeActionValue,\n type PowerCalendarDay,\n type SelectedPowerCalendarRange,\n} from '../utils.ts';\nimport type {\n PowerCalendarAPI,\n PowerCalendarArgs,\n TCalendarType,\n SelectedDays,\n PowerCalendarActions,\n CalendarDay,\n CalendarAPI,\n} from './power-calendar.ts';\nimport type Owner from '@ember/owner';\nimport type { ComponentLike } from '@glint/template';\nimport type PowerCalendarService from '../services/power-calendar.ts';\n\nexport interface PowerCalendarRangeDay extends Omit<PowerCalendarDay, 'date'> {\n date: SelectedPowerCalendarRange;\n}\n\nexport const DAY_IN_MS = 86400000;\n\nexport type TPowerCalendarRangeOnSelect = (\n day: NormalizeRangeActionValue,\n calendar: PowerCalendarRangeAPI,\n event: MouseEvent,\n) => void;\n\ninterface PowerCalendarRangeArgs\n extends Omit<PowerCalendarArgs, 'selected' | 'onSelect'> {\n selected?: SelectedPowerCalendarRange;\n minRange?: number;\n maxRange?: number;\n proximitySelection?: boolean;\n onSelect?: TPowerCalendarRangeOnSelect;\n}\n\nexport interface PowerCalendarRangeDefaultBlock extends PowerCalendarRangeAPI {\n Nav: ComponentLike<PowerCalendarNavSignature>;\n Days: ComponentLike<PowerCalendarRangeDaysSignature>;\n}\n\ninterface PowerCalendarRangeSignature {\n Element: HTMLElement;\n Args: PowerCalendarRangeArgs;\n Blocks: {\n default: [PowerCalendarRangeDefaultBlock];\n };\n}\n\nexport interface PowerCalendarRangeAPI\n extends Omit<PowerCalendarAPI, 'selected'> {\n selected?: SelectedPowerCalendarRange;\n minRange?: number | null;\n maxRange?: number | null;\n}\n\nexport default class PowerCalendarRangeComponent extends Component<PowerCalendarRangeSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked center = null;\n @tracked _calendarType: TCalendarType = 'range';\n @tracked _selected?: SelectedDays;\n\n navComponent = PowerCalendarNavComponent;\n daysComponent = PowerCalendarRangeDaysComponent;\n\n // Lifecycle hooks\n constructor(owner: Owner, args: PowerCalendarRangeArgs) {\n super(owner, args);\n this.registerCalendar();\n if (this.args.onInit) {\n this.args.onInit(this.publicAPI);\n }\n }\n\n willDestroy(): void {\n super.willDestroy();\n this.unregisterCalendar();\n }\n\n get publicActions(): PowerCalendarActions {\n return publicActionsObject(\n this.args.onSelect,\n this.select.bind(this),\n this.args.onCenterChange,\n this.changeCenterTask,\n this.currentCenter,\n );\n }\n\n get selected(): SelectedPowerCalendarRange {\n if (this._selected) {\n return this._selected as SelectedPowerCalendarRange;\n }\n\n if (this.args.selected) {\n return {\n start: normalizeDate(this.args.selected.start),\n end: normalizeDate(this.args.selected.end),\n };\n }\n\n return { start: undefined, end: undefined };\n }\n\n set selected(v) {\n if (v === undefined || v === null) {\n v = {};\n }\n this._selected = {\n start: normalizeDate(v.start),\n end: normalizeDate(v.end),\n };\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = this.selected.start || this.powerCalendar.getDate();\n }\n return normalizeDate(center) || this.powerCalendar.getDate();\n }\n\n get publicAPI(): PowerCalendarRangeAPI {\n return {\n uniqueId: guidFor(this),\n type: this._calendarType,\n selected: this.selected,\n loading: this.changeCenterTask.isRunning,\n center: this.currentCenter,\n locale: this.args.locale || this.powerCalendar.locale,\n actions: this.publicActions,\n minRange: this.minRange,\n maxRange: this.maxRange,\n };\n }\n\n get tagWithDefault(): string {\n if (this.args.tag === undefined || this.args.tag === null) {\n return 'div';\n }\n return this.args.tag;\n }\n\n get proximitySelection(): boolean {\n return this.args.proximitySelection !== undefined\n ? this.args.proximitySelection\n : false;\n }\n\n get minRange(): number | null {\n if (this.args.minRange !== undefined) {\n return this._formatRange(this.args.minRange) as number;\n }\n\n return DAY_IN_MS;\n }\n\n get maxRange(): number | null {\n if (this.args.maxRange !== undefined) {\n return this._formatRange(this.args.maxRange) as number;\n }\n\n return null;\n }\n\n // Tasks\n changeCenterTask = task(\n async (newCenter: Date, calendar: PowerCalendarRangeAPI, e: MouseEvent) => {\n assert(\n \"You attempted to move the center of a calendar that doesn't receive an `@onCenterChange` action.\",\n typeof this.args.onCenterChange === 'function',\n );\n const value = normalizeCalendarValue({ date: newCenter });\n await this.args.onCenterChange(value, calendar, e);\n },\n );\n\n // Actions\n @action\n select(day: CalendarDay, calendar: CalendarAPI, e: MouseEvent) {\n const { date } = day as NormalizeRangeActionValue;\n assert(\n 'date must be either a Date, or a Range',\n date &&\n (ownProp(date, 'start') ||\n ownProp(date, 'end') ||\n date instanceof Date),\n );\n\n let range: NormalizeRangeActionValue;\n\n if (ownProp(date, 'start') && ownProp(date, 'end')) {\n range = { date };\n } else {\n range = this._buildRange({ date } as { date: Date });\n }\n\n const { start, end } = range.date;\n if (start && end) {\n const { minRange, maxRange } = this.publicAPI;\n const diffInMs = Math.abs(diff(end, start));\n if (\n diffInMs < (minRange ?? DAY_IN_MS) ||\n (maxRange && diffInMs > maxRange)\n ) {\n return;\n }\n }\n\n if (this.args.onSelect) {\n this.args.onSelect(range, calendar as PowerCalendarRangeAPI, e);\n }\n }\n\n _formatRange(v: number | undefined) {\n if (typeof v === 'number') {\n return v * DAY_IN_MS;\n }\n\n return normalizeDuration(v === undefined ? DAY_IN_MS : v);\n }\n\n // Methods\n _buildRange(day: { date: Date }): NormalizeRangeActionValue {\n const selected = this.selected || { start: null, end: null };\n const { start, end } = selected;\n\n if (this.proximitySelection) {\n return this._buildRangeByProximity(day, start, end);\n }\n\n return this._buildDefaultRange(day, start, end);\n }\n\n _buildRangeByProximity(\n day: { date: Date },\n start?: Date | null,\n end?: Date | null,\n ): NormalizeRangeActionValue {\n if (start && end) {\n const changeStart =\n Math.abs(diff(day.date, end)) > Math.abs(diff(day.date, start));\n\n return normalizeRangeActionValue({\n date: {\n start: changeStart ? day.date : start,\n end: changeStart ? end : day.date,\n },\n });\n }\n\n if (start && isBefore(day.date, start)) {\n return normalizeRangeActionValue({\n date: { start: day.date, end: null },\n });\n }\n\n return this._buildDefaultRange(day, start, end);\n }\n\n _buildDefaultRange(\n day: { date: Date },\n start?: Date | null,\n end?: Date | null,\n ): NormalizeRangeActionValue {\n if (start && !end) {\n if (isAfter(start, day.date)) {\n return normalizeRangeActionValue({\n date: { start: day.date, end: start },\n });\n }\n return normalizeRangeActionValue({\n date: { start: start, end: day.date },\n });\n }\n\n return normalizeRangeActionValue({ date: { start: day.date, end: null } });\n }\n\n // Methods\n registerCalendar() {\n if (window) {\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n window.__powerCalendars[this.publicAPI.uniqueId] = this;\n }\n }\n\n unregisterCalendar() {\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (window && window.__powerCalendars?.[guidFor(this)]) {\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n delete window.__powerCalendars[guidFor(this)];\n\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n if (Object.keys(window.__powerCalendars).length === 0) {\n // @ts-expect-error Property '__powerCalendars'\n delete window.__powerCalendars;\n }\n }\n }\n}\n\nfunction ownProp<T = { [key: string | number]: never }>(obj: T, prop: keyof T) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n"],"names":["DAY_IN_MS","PowerCalendarRangeComponent","Component","g","prototype","service","i","void 0","tracked","navComponent","PowerCalendarNavComponent","daysComponent","PowerCalendarRangeDaysComponent","constructor","owner","args","registerCalendar","onInit","publicAPI","willDestroy","unregisterCalendar","publicActions","publicActionsObject","onSelect","select","bind","onCenterChange","changeCenterTask","currentCenter","selected","_selected","start","normalizeDate","end","undefined","v","center","powerCalendar","getDate","uniqueId","guidFor","type","_calendarType","loading","isRunning","locale","actions","minRange","maxRange","tagWithDefault","tag","proximitySelection","_formatRange","_buildTask","context","generator","newCenter","calendar","e","assert","value","normalizeCalendarValue","date","day","ownProp","Date","range","_buildRange","diffInMs","Math","abs","diff","n","action","normalizeDuration","_buildRangeByProximity","_buildDefaultRange","changeStart","normalizeRangeActionValue","isBefore","isAfter","window","__powerCalendars","Object","keys","length","obj","prop","hasOwnProperty","call","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { assert } from '@ember/debug';
|
|
|
9
9
|
import { normalizeDate, normalizeCalendarValue } from '../utils.js';
|
|
10
10
|
import PowerCalendarNavComponent from './power-calendar/nav.js';
|
|
11
11
|
import PowerCalendarDaysComponent from './power-calendar/days.js';
|
|
12
|
-
import { p as publicActionsObject } from '../utils-
|
|
12
|
+
import { p as publicActionsObject } from '../utils-y7Wx9c84.js';
|
|
13
13
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
14
14
|
import { g, i, n } from 'decorator-transforms/runtime';
|
|
15
15
|
import { setComponentTemplate } from '@ember/component';
|
|
@@ -53,7 +53,7 @@ class PowerCalendarComponent extends Component {
|
|
|
53
53
|
this.unregisterCalendar();
|
|
54
54
|
}
|
|
55
55
|
get publicActions() {
|
|
56
|
-
return publicActionsObject(this.args.onSelect, this.select, this.args.onCenterChange, this.changeCenterTask, this.currentCenter);
|
|
56
|
+
return publicActionsObject(this.args.onSelect, this.select.bind(this), this.args.onCenterChange, this.changeCenterTask, this.currentCenter);
|
|
57
57
|
}
|
|
58
58
|
get selected() {
|
|
59
59
|
if (this._selected) {
|
|
@@ -121,14 +121,24 @@ class PowerCalendarComponent extends Component {
|
|
|
121
121
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
122
122
|
window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??
|
|
123
123
|
// @ts-expect-error Property '__powerCalendars'
|
|
124
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
124
125
|
window.__powerCalendars[this.publicAPI.uniqueId] = this;
|
|
125
126
|
}
|
|
126
127
|
}
|
|
127
128
|
unregisterCalendar() {
|
|
128
129
|
// @ts-expect-error Property '__powerCalendars'
|
|
130
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
129
131
|
if (window && window.__powerCalendars?.[guidFor(this)]) {
|
|
130
132
|
// @ts-expect-error Property '__powerCalendars'
|
|
133
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
131
134
|
delete window.__powerCalendars[guidFor(this)];
|
|
135
|
+
|
|
136
|
+
// @ts-expect-error Property '__powerCalendars'
|
|
137
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
138
|
+
if (Object.keys(window.__powerCalendars).length === 0) {
|
|
139
|
+
// @ts-expect-error Property '__powerCalendars'
|
|
140
|
+
delete window.__powerCalendars;
|
|
141
|
+
}
|
|
132
142
|
}
|
|
133
143
|
}
|
|
134
144
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"power-calendar.js","sources":["../../src/components/power-calendar.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\nimport { inject as service } from '@ember/service';\nimport { task } from 'ember-concurrency';\nimport { assert } from '@ember/debug';\nimport type { ComponentLike } from '@glint/template';\nimport {\n normalizeDate,\n normalizeCalendarValue,\n type NormalizeCalendarValue,\n type PowerCalendarDay,\n type SelectedPowerCalendarRange,\n} from '../utils.ts';\nimport PowerCalendarNavComponent from './power-calendar/nav.ts';\nimport PowerCalendarDaysComponent from './power-calendar/days.ts';\nimport type Owner from '@ember/owner';\nimport type PowerCalendarService from '../services/power-calendar.ts';\nimport type {\n PowerCalendarRangeAPI,\n PowerCalendarRangeDay,\n} from './power-calendar-range.ts';\nimport type { PowerCalendarMultipleAPI } from './power-calendar-multiple.ts';\nimport { publicActionsObject } from '../-private/utils.ts';\n\nexport type TCalendarType = 'multiple' | 'range' | 'single';\nexport type TPowerCalendarMoveCenterUnit = 'year' | 'month';\nexport type SelectedDays =\n | SelectedPowerCalendarRange\n | Date\n | Date[]\n | undefined;\nexport type CalendarAPI =\n | PowerCalendarAPI\n | PowerCalendarMultipleAPI\n | PowerCalendarRangeAPI;\n\nexport interface PowerCalendarAPI {\n uniqueId: string;\n calendarUniqueId?: string;\n selected?: SelectedDays;\n loading: boolean;\n center: Date;\n locale: string;\n type: TCalendarType;\n actions: PowerCalendarActions;\n}\n\nexport interface PowerCalendarActions {\n changeCenter?: (\n newCenter: Date,\n calendar: CalendarAPI,\n event: MouseEvent,\n ) => void;\n moveCenter?: (\n step: number,\n unit: TPowerCalendarMoveCenterUnit,\n calendar: PowerCalendarAPI,\n event: MouseEvent,\n ) => void;\n select?: (day: CalendarDay, calendar: CalendarAPI, event: MouseEvent) => void;\n}\n\nexport type TPowerCalendarOnSelect = (\n day: CalendarDay,\n calendar: CalendarAPI,\n event: MouseEvent,\n) => void;\n\nexport interface PowerCalendarArgs {\n daysComponent?: string | ComponentLike<any>;\n locale: string;\n navComponent?: string | ComponentLike<any>;\n onCenterChange?: (\n newCenter: NormalizeCalendarValue,\n calendar: PowerCalendarAPI,\n event: MouseEvent,\n ) => void;\n onInit?: (calendar: PowerCalendarAPI) => void;\n onSelect?: TPowerCalendarOnSelect;\n selected?: SelectedDays;\n center?: Date;\n tag?: string;\n}\n\nexport interface PowerCalendarDefaultBlock extends PowerCalendarAPI {\n NavComponent: ComponentLike<any>;\n DaysComponent: ComponentLike<any>;\n}\n\nexport type CalendarDay =\n | PowerCalendarDay\n | PowerCalendarRangeDay\n | PowerCalendarDay[];\n\nexport interface PowerCalendarSignature {\n Element: HTMLElement;\n Args: PowerCalendarArgs;\n Blocks: {\n default: [PowerCalendarDefaultBlock];\n };\n}\n\nexport default class PowerCalendarComponent extends Component<PowerCalendarSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked center = null;\n @tracked _calendarType: TCalendarType = 'single';\n @tracked _selected?: SelectedDays;\n\n navComponent: ComponentLike<any> = PowerCalendarNavComponent;\n daysComponent: ComponentLike<any> = PowerCalendarDaysComponent;\n\n // Lifecycle hooks\n constructor(owner: Owner, args: PowerCalendarArgs) {\n super(owner, args);\n this.registerCalendar();\n if (this.args.onInit) {\n this.args.onInit(this.publicAPI);\n }\n }\n\n willDestroy(): void {\n super.willDestroy();\n this.unregisterCalendar();\n }\n\n get publicActions(): PowerCalendarActions {\n return publicActionsObject(\n this.args.onSelect,\n this.select,\n this.args.onCenterChange,\n this.changeCenterTask,\n this.currentCenter,\n );\n }\n\n get selected(): SelectedDays {\n if (this._selected) {\n return this._selected;\n }\n\n return normalizeDate(this.args.selected as Date);\n }\n\n set selected(v: SelectedDays) {\n this._selected = normalizeDate(v as Date | undefined);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = (this.selected as Date) || this.powerCalendar.getDate();\n }\n return normalizeDate(center) || this.powerCalendar.getDate();\n }\n\n get publicAPI(): PowerCalendarAPI {\n return this._publicAPI;\n }\n\n get _publicAPI(): PowerCalendarAPI {\n return {\n uniqueId: guidFor(this),\n type: this._calendarType,\n selected: this.selected,\n loading: this.changeCenterTask.isRunning,\n center: this.currentCenter,\n locale: this.args.locale || this.powerCalendar.locale,\n actions: this.publicActions,\n };\n }\n\n get tagWithDefault(): string {\n if (this.args.tag === undefined || this.args.tag === null) {\n return 'div';\n }\n return this.args.tag;\n }\n\n // Tasks\n changeCenterTask = task(\n async (newCenter: Date, calendar: PowerCalendarAPI, e: MouseEvent) => {\n assert(\n \"You attempted to move the center of a calendar that doesn't receive an `@onCenterChange` action.\",\n typeof this.args.onCenterChange === 'function',\n );\n const value = normalizeCalendarValue({ date: newCenter });\n await this.args.onCenterChange(value, calendar, e);\n },\n );\n\n // Actions\n @action\n select(day: CalendarDay, calendar: PowerCalendarAPI, e: MouseEvent) {\n if (this.args.onSelect) {\n this.args.onSelect(day, calendar, e);\n }\n }\n\n // Methods\n registerCalendar() {\n if (window) {\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??\n // @ts-expect-error Property '__powerCalendars'\n window.__powerCalendars[this.publicAPI.uniqueId] = this;\n }\n }\n\n unregisterCalendar() {\n // @ts-expect-error Property '__powerCalendars'\n if (window && window.__powerCalendars?.[guidFor(this)]) {\n // @ts-expect-error Property '__powerCalendars'\n delete window.__powerCalendars[guidFor(this)];\n }\n }\n}\n"],"names":["PowerCalendarComponent","Component","g","prototype","service","i","void 0","tracked","navComponent","PowerCalendarNavComponent","daysComponent","PowerCalendarDaysComponent","constructor","owner","args","registerCalendar","onInit","publicAPI","willDestroy","unregisterCalendar","publicActions","publicActionsObject","onSelect","select","onCenterChange","changeCenterTask","currentCenter","selected","_selected","normalizeDate","v","center","powerCalendar","getDate","_publicAPI","uniqueId","guidFor","type","_calendarType","loading","isRunning","locale","actions","tagWithDefault","tag","undefined","_buildTask","context","generator","newCenter","calendar","e","assert","value","normalizeCalendarValue","date","day","n","action","window","__powerCalendars","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"power-calendar.js","sources":["../../src/components/power-calendar.ts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\nimport { inject as service } from '@ember/service';\nimport { task, type TaskInstance } from 'ember-concurrency';\nimport { assert } from '@ember/debug';\nimport type { ComponentLike } from '@glint/template';\nimport {\n normalizeDate,\n normalizeCalendarValue,\n type NormalizeCalendarValue,\n type PowerCalendarDay,\n type SelectedPowerCalendarRange,\n} from '../utils.ts';\nimport PowerCalendarNavComponent, {\n type PowerCalendarNavSignature,\n} from './power-calendar/nav.ts';\nimport PowerCalendarDaysComponent, {\n type PowerCalendarDaysSignature,\n} from './power-calendar/days.ts';\nimport type Owner from '@ember/owner';\nimport type PowerCalendarService from '../services/power-calendar.ts';\nimport type {\n PowerCalendarRangeAPI,\n PowerCalendarRangeDay,\n} from './power-calendar-range.ts';\nimport type { PowerCalendarMultipleAPI } from './power-calendar-multiple.ts';\nimport { publicActionsObject } from '../-private/utils.ts';\n\nexport type TCalendarType = 'multiple' | 'range' | 'single';\nexport type TPowerCalendarMoveCenterUnit = 'year' | 'month';\nexport type SelectedDays =\n | SelectedPowerCalendarRange\n | Date\n | Date[]\n | undefined;\nexport type CalendarAPI =\n | PowerCalendarAPI\n | PowerCalendarMultipleAPI\n | PowerCalendarRangeAPI;\n\nexport interface PowerCalendarAPI {\n uniqueId: string;\n calendarUniqueId?: string;\n selected?: SelectedDays;\n loading: boolean;\n center: Date;\n locale: string;\n type: TCalendarType;\n actions: PowerCalendarActions;\n}\n\nexport interface PowerCalendarActions {\n changeCenter?: (\n newCenter: Date,\n calendar: CalendarAPI,\n event: MouseEvent,\n ) => TaskInstance<void>;\n moveCenter?: (\n step: number,\n unit: TPowerCalendarMoveCenterUnit,\n calendar: PowerCalendarAPI,\n event: MouseEvent,\n ) => Promise<void>;\n select?: (day: CalendarDay, calendar: CalendarAPI, event: MouseEvent) => void;\n}\n\nexport type TPowerCalendarOnSelect = (\n day: CalendarDay,\n calendar: CalendarAPI,\n event: MouseEvent,\n) => void;\n\nexport interface PowerCalendarArgs {\n daysComponent?: string | ComponentLike<PowerCalendarDaysSignature>;\n locale?: string;\n navComponent?: string | ComponentLike<PowerCalendarNavSignature>;\n onCenterChange?: (\n newCenter: NormalizeCalendarValue,\n calendar: PowerCalendarAPI,\n event: MouseEvent,\n ) => Promise<void> | void;\n onInit?: (calendar: PowerCalendarAPI) => void;\n onSelect?: TPowerCalendarOnSelect;\n selected?: SelectedDays;\n center?: Date;\n tag?: string;\n}\n\nexport interface PowerCalendarDefaultBlock extends PowerCalendarAPI {\n Nav: ComponentLike<PowerCalendarNavSignature>;\n Days: ComponentLike<PowerCalendarDaysSignature>;\n}\n\nexport type CalendarDay =\n | PowerCalendarDay\n | PowerCalendarRangeDay\n | PowerCalendarDay[];\n\nexport interface PowerCalendarSignature {\n Element: HTMLElement;\n Args: PowerCalendarArgs;\n Blocks: {\n default: [PowerCalendarDefaultBlock];\n };\n}\n\nexport default class PowerCalendarComponent extends Component<PowerCalendarSignature> {\n @service declare powerCalendar: PowerCalendarService;\n\n @tracked center = null;\n @tracked _calendarType: TCalendarType = 'single';\n @tracked _selected?: SelectedDays;\n\n navComponent = PowerCalendarNavComponent;\n daysComponent = PowerCalendarDaysComponent;\n\n // Lifecycle hooks\n constructor(owner: Owner, args: PowerCalendarArgs) {\n super(owner, args);\n this.registerCalendar();\n if (this.args.onInit) {\n this.args.onInit(this.publicAPI);\n }\n }\n\n willDestroy(): void {\n super.willDestroy();\n this.unregisterCalendar();\n }\n\n get publicActions(): PowerCalendarActions {\n return publicActionsObject(\n this.args.onSelect,\n this.select.bind(this),\n this.args.onCenterChange,\n this.changeCenterTask,\n this.currentCenter,\n );\n }\n\n get selected(): SelectedDays {\n if (this._selected) {\n return this._selected;\n }\n\n return normalizeDate(this.args.selected as Date);\n }\n\n set selected(v: SelectedDays) {\n this._selected = normalizeDate(v as Date | undefined);\n }\n\n get currentCenter(): Date {\n let center = this.args.center;\n if (!center) {\n center = (this.selected as Date) || this.powerCalendar.getDate();\n }\n return normalizeDate(center) || this.powerCalendar.getDate();\n }\n\n get publicAPI(): PowerCalendarAPI {\n return this._publicAPI;\n }\n\n get _publicAPI(): PowerCalendarAPI {\n return {\n uniqueId: guidFor(this),\n type: this._calendarType,\n selected: this.selected,\n loading: this.changeCenterTask.isRunning,\n center: this.currentCenter,\n locale: this.args.locale || this.powerCalendar.locale,\n actions: this.publicActions,\n };\n }\n\n get tagWithDefault(): string {\n if (this.args.tag === undefined || this.args.tag === null) {\n return 'div';\n }\n return this.args.tag;\n }\n\n // Tasks\n changeCenterTask = task(\n async (newCenter: Date, calendar: PowerCalendarAPI, e: MouseEvent) => {\n assert(\n \"You attempted to move the center of a calendar that doesn't receive an `@onCenterChange` action.\",\n typeof this.args.onCenterChange === 'function',\n );\n const value = normalizeCalendarValue({ date: newCenter });\n await this.args.onCenterChange(value, calendar, e);\n },\n );\n\n // Actions\n @action\n select(day: CalendarDay, calendar: PowerCalendarAPI, e: MouseEvent) {\n if (this.args.onSelect) {\n this.args.onSelect(day, calendar, e);\n }\n }\n\n // Methods\n registerCalendar() {\n if (window) {\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n window.__powerCalendars = window.__powerCalendars || {}; // TODO: weakmap??\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n window.__powerCalendars[this.publicAPI.uniqueId] = this;\n }\n }\n\n unregisterCalendar() {\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (window && window.__powerCalendars?.[guidFor(this)]) {\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n delete window.__powerCalendars[guidFor(this)];\n\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n if (Object.keys(window.__powerCalendars).length === 0) {\n // @ts-expect-error Property '__powerCalendars'\n delete window.__powerCalendars;\n }\n }\n }\n}\n"],"names":["PowerCalendarComponent","Component","g","prototype","service","i","void 0","tracked","navComponent","PowerCalendarNavComponent","daysComponent","PowerCalendarDaysComponent","constructor","owner","args","registerCalendar","onInit","publicAPI","willDestroy","unregisterCalendar","publicActions","publicActionsObject","onSelect","select","bind","onCenterChange","changeCenterTask","currentCenter","selected","_selected","normalizeDate","v","center","powerCalendar","getDate","_publicAPI","uniqueId","guidFor","type","_calendarType","loading","isRunning","locale","actions","tagWithDefault","tag","undefined","_buildTask","context","generator","newCenter","calendar","e","assert","value","normalizeCalendarValue","date","day","n","action","window","__powerCalendars","Object","keys","length","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { run } from '@ember/runloop';
|
|
2
1
|
import { assert } from '@ember/debug';
|
|
3
2
|
import { settled, click, find } from '@ember/test-helpers';
|
|
4
3
|
import { formatDate } from '../utils.js';
|
|
@@ -30,8 +29,8 @@ function findComponentInstance(selector) {
|
|
|
30
29
|
const calendarGuid = findCalendarGuid(selector);
|
|
31
30
|
assert(`Could not find a calendar using selector: "${selector}"`, calendarGuid);
|
|
32
31
|
// @ts-expect-error Property '__powerCalendars'
|
|
33
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
34
|
-
return window.__powerCalendars[calendarGuid];
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access
|
|
33
|
+
return window.__powerCalendars?.[calendarGuid];
|
|
35
34
|
}
|
|
36
35
|
async function calendarCenter(selector, newCenter) {
|
|
37
36
|
assert('`calendarCenter` expect a Date object as second argument', newCenter instanceof Date);
|
|
@@ -39,7 +38,7 @@ async function calendarCenter(selector, newCenter) {
|
|
|
39
38
|
const onCenterChange = calendarComponent.args.onCenterChange;
|
|
40
39
|
assert("You cannot call `calendarCenter` on a component that doesn't has an `@onCenterChange` action", !!onCenterChange);
|
|
41
40
|
const publicAPI = calendarComponent.publicAPI;
|
|
42
|
-
|
|
41
|
+
await publicAPI.actions.changeCenter(newCenter, publicAPI, {});
|
|
43
42
|
return settled();
|
|
44
43
|
}
|
|
45
44
|
async function calendarSelect(selector, selected) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sources":["../../src/test-support/helpers.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../../src/test-support/helpers.ts"],"sourcesContent":["import { assert } from '@ember/debug';\nimport { click, settled, find } from '@ember/test-helpers';\nimport { formatDate } from '../utils.ts';\nimport type PowerCalendarMultipleComponent from '../components/power-calendar-multiple.ts';\nimport type PowerCalendarComponent from '../components/power-calendar.ts';\nimport type PowerCalendarRangeComponent from '../components/power-calendar-range.ts';\n\nexport default {};\n\nexport * from '../utils.ts';\n\nfunction findCalendarElement(selector: string): Element | null | undefined {\n const target = find(selector);\n\n if (target) {\n if (target.classList.contains('ember-power-calendar')) {\n return target;\n } else {\n return (\n target.querySelector('.ember-power-calendar') ||\n target.querySelector('[data-power-calendar-id]')\n );\n }\n }\n}\n\nfunction findCalendarGuid(selector: string): string | undefined {\n const maybeCalendar = findCalendarElement(selector);\n if (!maybeCalendar) {\n return;\n }\n if (maybeCalendar.classList.contains('ember-power-calendar')) {\n return maybeCalendar.id;\n } else {\n return (maybeCalendar as HTMLElement).dataset['powerCalendarId'];\n }\n}\n\nfunction findComponentInstance(\n selector: string,\n):\n | PowerCalendarComponent\n | PowerCalendarMultipleComponent\n | PowerCalendarRangeComponent {\n const calendarGuid = findCalendarGuid(selector);\n assert(\n `Could not find a calendar using selector: \"${selector}\"`,\n calendarGuid,\n );\n // @ts-expect-error Property '__powerCalendars'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n return window.__powerCalendars?.[calendarGuid];\n}\n\nexport async function calendarCenter(\n selector: string,\n newCenter: Date,\n): Promise<void> {\n assert(\n '`calendarCenter` expect a Date object as second argument',\n newCenter instanceof Date,\n );\n const calendarComponent = findComponentInstance(selector);\n const onCenterChange = calendarComponent.args.onCenterChange;\n assert(\n \"You cannot call `calendarCenter` on a component that doesn't has an `@onCenterChange` action\",\n !!onCenterChange,\n );\n const publicAPI = calendarComponent.publicAPI;\n await publicAPI.actions.changeCenter!(newCenter, publicAPI, {} as MouseEvent);\n return settled();\n}\n\nexport async function calendarSelect(\n selector: string,\n selected: Date,\n): Promise<void> {\n assert('`calendarSelect` expect a Date object as second argument', selected);\n const calendarElement = findCalendarElement(selector);\n const daySelector = `${selector} [data-date=\"${formatDate(\n selected,\n 'YYYY-MM-DD',\n )}\"]`;\n const dayElement = calendarElement?.querySelector(daySelector);\n if (!dayElement) {\n await calendarCenter(selector, selected);\n }\n return click(daySelector);\n}\n"],"names":["findCalendarElement","selector","target","find","classList","contains","querySelector","findCalendarGuid","maybeCalendar","id","dataset","findComponentInstance","calendarGuid","assert","window","__powerCalendars","calendarCenter","newCenter","Date","calendarComponent","onCenterChange","args","publicAPI","actions","changeCenter","settled","calendarSelect","selected","calendarElement","daySelector","formatDate","dayElement","click"],"mappings":";;;;;AAOA,cAAe,EAAE;AAIjB,SAASA,mBAAmBA,CAACC,QAAgB,EAA8B;AACzE,EAAA,MAAMC,MAAM,GAAGC,IAAI,CAACF,QAAQ,CAAC;AAE7B,EAAA,IAAIC,MAAM,EAAE;IACV,IAAIA,MAAM,CAACE,SAAS,CAACC,QAAQ,CAAC,sBAAsB,CAAC,EAAE;AACrD,MAAA,OAAOH,MAAM;AACf,KAAC,MAAM;AACL,MAAA,OACEA,MAAM,CAACI,aAAa,CAAC,uBAAuB,CAAC,IAC7CJ,MAAM,CAACI,aAAa,CAAC,0BAA0B,CAAC;AAEpD;AACF;AACF;AAEA,SAASC,gBAAgBA,CAACN,QAAgB,EAAsB;AAC9D,EAAA,MAAMO,aAAa,GAAGR,mBAAmB,CAACC,QAAQ,CAAC;EACnD,IAAI,CAACO,aAAa,EAAE;AAClB,IAAA;AACF;EACA,IAAIA,aAAa,CAACJ,SAAS,CAACC,QAAQ,CAAC,sBAAsB,CAAC,EAAE;IAC5D,OAAOG,aAAa,CAACC,EAAE;AACzB,GAAC,MAAM;AACL,IAAA,OAAQD,aAAa,CAAiBE,OAAO,CAAC,iBAAiB,CAAC;AAClE;AACF;AAEA,SAASC,qBAAqBA,CAC5BV,QAAgB,EAIc;AAC9B,EAAA,MAAMW,YAAY,GAAGL,gBAAgB,CAACN,QAAQ,CAAC;AAC/CY,EAAAA,MAAM,CACJ,CAA8CZ,2CAAAA,EAAAA,QAAQ,CAAG,CAAA,CAAA,EACzDW,YACF,CAAC;AACD;AACA;AACA,EAAA,OAAOE,MAAM,CAACC,gBAAgB,GAAGH,YAAY,CAAC;AAChD;AAEO,eAAeI,cAAcA,CAClCf,QAAgB,EAChBgB,SAAe,EACA;AACfJ,EAAAA,MAAM,CACJ,0DAA0D,EAC1DI,SAAS,YAAYC,IACvB,CAAC;AACD,EAAA,MAAMC,iBAAiB,GAAGR,qBAAqB,CAACV,QAAQ,CAAC;AACzD,EAAA,MAAMmB,cAAc,GAAGD,iBAAiB,CAACE,IAAI,CAACD,cAAc;AAC5DP,EAAAA,MAAM,CACJ,8FAA8F,EAC9F,CAAC,CAACO,cACJ,CAAC;AACD,EAAA,MAAME,SAAS,GAAGH,iBAAiB,CAACG,SAAS;AAC7C,EAAA,MAAMA,SAAS,CAACC,OAAO,CAACC,YAAY,CAAEP,SAAS,EAAEK,SAAS,EAAE,EAAgB,CAAC;EAC7E,OAAOG,OAAO,EAAE;AAClB;AAEO,eAAeC,cAAcA,CAClCzB,QAAgB,EAChB0B,QAAc,EACC;AACfd,EAAAA,MAAM,CAAC,0DAA0D,EAAEc,QAAQ,CAAC;AAC5E,EAAA,MAAMC,eAAe,GAAG5B,mBAAmB,CAACC,QAAQ,CAAC;EACrD,MAAM4B,WAAW,GAAG,CAAA,EAAG5B,QAAQ,CAAA,aAAA,EAAgB6B,UAAU,CACvDH,QAAQ,EACR,YACF,CAAC,CAAI,EAAA,CAAA;AACL,EAAA,MAAMI,UAAU,GAAGH,eAAe,EAAEtB,aAAa,CAACuB,WAAW,CAAC;EAC9D,IAAI,CAACE,UAAU,EAAE;AACf,IAAA,MAAMf,cAAc,CAACf,QAAQ,EAAE0B,QAAQ,CAAC;AAC1C;EACA,OAAOK,KAAK,CAACH,WAAW,CAAC;AAC3B;;;;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { add } from './utils.js';
|
|
2
|
+
|
|
3
|
+
function publicActionsObject(onSelect, select, onCenterChange, changeCenterTask, currentCenter) {
|
|
4
|
+
const actions = {};
|
|
5
|
+
if (onSelect) {
|
|
6
|
+
actions.select = (...args) => select(...args);
|
|
7
|
+
}
|
|
8
|
+
if (onCenterChange) {
|
|
9
|
+
const changeCenter = (newCenter, calendar, e) => {
|
|
10
|
+
return changeCenterTask.perform(newCenter, calendar, e);
|
|
11
|
+
};
|
|
12
|
+
actions.changeCenter = changeCenter;
|
|
13
|
+
actions.moveCenter = async (step, unit, calendar, e) => {
|
|
14
|
+
const newCenter = add(currentCenter, step, unit);
|
|
15
|
+
return await changeCenter(newCenter, calendar, e);
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
return actions;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export { publicActionsObject as p };
|
|
22
|
+
//# sourceMappingURL=utils-y7Wx9c84.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils-y7Wx9c84.js","sources":["../src/-private/utils.ts"],"sourcesContent":["import type { TaskForAsyncTaskFunction } from 'ember-concurrency';\nimport type {\n CalendarAPI,\n CalendarDay,\n PowerCalendarActions,\n TPowerCalendarOnSelect,\n} from '../components/power-calendar';\nimport { add, type NormalizeCalendarValue } from '../utils.ts';\nimport type { TPowerCalendarRangeOnSelect } from '../components/power-calendar-range';\nimport type { TPowerCalendarMultipleOnSelect } from '../components/power-calendar-multiple.ts';\n\nexport function publicActionsObject(\n onSelect:\n | TPowerCalendarOnSelect\n | TPowerCalendarRangeOnSelect\n | TPowerCalendarMultipleOnSelect\n | undefined,\n select: (day: CalendarDay, calendar: CalendarAPI, e: MouseEvent) => void,\n onCenterChange:\n | ((\n newCenter: NormalizeCalendarValue,\n calendar: CalendarAPI,\n event: MouseEvent,\n ) => Promise<void> | void)\n | undefined,\n changeCenterTask: TaskForAsyncTaskFunction<\n unknown,\n (newCenter: Date, calendar: CalendarAPI, e: MouseEvent) => Promise<void>\n >,\n currentCenter: Date,\n): PowerCalendarActions {\n const actions: PowerCalendarActions = {};\n if (onSelect) {\n actions.select = (...args) => select(...args);\n }\n if (onCenterChange) {\n const changeCenter = (\n newCenter: Date,\n calendar: CalendarAPI,\n e: MouseEvent,\n ) => {\n return changeCenterTask.perform(newCenter, calendar, e);\n };\n actions.changeCenter = changeCenter;\n actions.moveCenter = async (step, unit, calendar, e) => {\n const newCenter = add(currentCenter, step, unit);\n return await changeCenter(newCenter, calendar, e);\n };\n }\n\n return actions;\n}\n"],"names":["publicActionsObject","onSelect","select","onCenterChange","changeCenterTask","currentCenter","actions","args","changeCenter","newCenter","calendar","e","perform","moveCenter","step","unit","add"],"mappings":";;AAWO,SAASA,mBAAmBA,CACjCC,QAIa,EACbC,MAAwE,EACxEC,cAMa,EACbC,gBAGC,EACDC,aAAmB,EACG;EACtB,MAAMC,OAA6B,GAAG,EAAE;AACxC,EAAA,IAAIL,QAAQ,EAAE;IACZK,OAAO,CAACJ,MAAM,GAAG,CAAC,GAAGK,IAAI,KAAKL,MAAM,CAAC,GAAGK,IAAI,CAAC;AAC/C;AACA,EAAA,IAAIJ,cAAc,EAAE;IAClB,MAAMK,YAAY,GAAGA,CACnBC,SAAe,EACfC,QAAqB,EACrBC,CAAa,KACV;MACH,OAAOP,gBAAgB,CAACQ,OAAO,CAACH,SAAS,EAAEC,QAAQ,EAAEC,CAAC,CAAC;KACxD;IACDL,OAAO,CAACE,YAAY,GAAGA,YAAY;IACnCF,OAAO,CAACO,UAAU,GAAG,OAAOC,IAAI,EAAEC,IAAI,EAAEL,QAAQ,EAAEC,CAAC,KAAK;MACtD,MAAMF,SAAS,GAAGO,GAAG,CAACX,aAAa,EAAES,IAAI,EAAEC,IAAI,CAAC;MAChD,OAAO,MAAMP,YAAY,CAACC,SAAS,EAAEC,QAAQ,EAAEC,CAAC,CAAC;KAClD;AACH;AAEA,EAAA,OAAOL,OAAO;AAChB;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ember-power-calendar",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "Powerful and customizable calendar component for Ember",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ember-addon"
|
|
@@ -46,6 +46,21 @@
|
|
|
46
46
|
"scss",
|
|
47
47
|
"vendor"
|
|
48
48
|
],
|
|
49
|
+
"scripts": {
|
|
50
|
+
"build": "rollup --config",
|
|
51
|
+
"format": "prettier . --cache --write",
|
|
52
|
+
"lint": "concurrently \"pnpm:lint:*(!fix)\" --names \"lint:\" --prefixColors auto",
|
|
53
|
+
"lint:fix": "concurrently \"pnpm:lint:*:fix\" --names \"fix:\" --prefixColors auto && pnpm run format",
|
|
54
|
+
"lint:format": "prettier . --cache --check",
|
|
55
|
+
"lint:hbs": "ember-template-lint . --no-error-on-unmatched-pattern",
|
|
56
|
+
"lint:hbs:fix": "ember-template-lint . --fix --no-error-on-unmatched-pattern",
|
|
57
|
+
"lint:js": "eslint . --cache",
|
|
58
|
+
"lint:js:fix": "eslint . --fix",
|
|
59
|
+
"lint:types": "glint",
|
|
60
|
+
"prepack": "rollup --config",
|
|
61
|
+
"start": "rollup --config --watch",
|
|
62
|
+
"test": "echo 'A v2 addon does not have tests, run tests in test-app'"
|
|
63
|
+
},
|
|
49
64
|
"dependencies": {
|
|
50
65
|
"@embroider/addon-shim": "^1.9.0",
|
|
51
66
|
"decorator-transforms": "^2.3.0",
|
|
@@ -120,19 +135,5 @@
|
|
|
120
135
|
"./services/power-calendar.js": "./dist/_app_/services/power-calendar.js",
|
|
121
136
|
"./test-support/helpers.js": "./dist/_app_/test-support/helpers.js"
|
|
122
137
|
}
|
|
123
|
-
},
|
|
124
|
-
"scripts": {
|
|
125
|
-
"build": "rollup --config",
|
|
126
|
-
"format": "prettier . --cache --write",
|
|
127
|
-
"lint": "concurrently \"pnpm:lint:*(!fix)\" --names \"lint:\" --prefixColors auto",
|
|
128
|
-
"lint:fix": "concurrently \"pnpm:lint:*:fix\" --names \"fix:\" --prefixColors auto && pnpm run format",
|
|
129
|
-
"lint:format": "prettier . --cache --check",
|
|
130
|
-
"lint:hbs": "ember-template-lint . --no-error-on-unmatched-pattern",
|
|
131
|
-
"lint:hbs:fix": "ember-template-lint . --fix --no-error-on-unmatched-pattern",
|
|
132
|
-
"lint:js": "eslint . --cache",
|
|
133
|
-
"lint:js:fix": "eslint . --fix",
|
|
134
|
-
"lint:types": "glint",
|
|
135
|
-
"start": "rollup --config --watch",
|
|
136
|
-
"test": "echo 'A v2 addon does not have tests, run tests in test-app'"
|
|
137
138
|
}
|
|
138
|
-
}
|
|
139
|
+
}
|