@radix-ng/primitives 0.39.4 → 0.40.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/core/src/date-time/formatter.d.ts +1 -1
- package/core/src/date-time/types.d.ts +13 -0
- package/core/src/date-time/useDateField.d.ts +4 -3
- package/core/src/date-time/utils.d.ts +4 -1
- package/date-field/src/date-field-context.token.d.ts +2 -1
- package/date-field/src/date-field-root.directive.d.ts +7 -2
- package/fesm2022/radix-ng-primitives-calendar.mjs +1 -1
- package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-core.mjs +88 -46
- package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-date-field.mjs +11 -3
- package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-number-field.mjs +7 -7
- package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-time-field.mjs +12 -4
- package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
- package/hover-card/src/hover-card-root.directive.d.ts +4 -4
- package/package.json +3 -3
- package/popover/src/popover-root.directive.d.ts +4 -4
- package/time-field/src/time-field-context.token.d.ts +2 -1
- package/time-field/src/time-field-root.directive.d.ts +7 -2
- package/tooltip/src/tooltip-root.directive.d.ts +4 -4
@@ -27,4 +27,4 @@ export type Formatter = {
|
|
27
27
|
*
|
28
28
|
* @see [DateFormatter](https://react-spectrum.adobe.com/internationalized/date/DateFormatter.html)
|
29
29
|
*/
|
30
|
-
export declare function createFormatter(initialLocale: string): Formatter;
|
30
|
+
export declare function createFormatter(initialLocale: string, opts?: DateFormatterOptions): Formatter;
|
@@ -1,6 +1,19 @@
|
|
1
1
|
import type { DateValue } from '@internationalized/date';
|
2
2
|
import { DATE_SEGMENT_PARTS, EDITABLE_SEGMENT_PARTS, NON_EDITABLE_SEGMENT_PARTS, TIME_SEGMENT_PARTS } from './parts';
|
3
3
|
export type DateMatcher = (date: DateValue) => boolean;
|
4
|
+
export type DateStep = {
|
5
|
+
year?: number;
|
6
|
+
month?: number;
|
7
|
+
day?: number;
|
8
|
+
hour?: number;
|
9
|
+
minute?: number;
|
10
|
+
second?: number;
|
11
|
+
millisecond?: number;
|
12
|
+
};
|
13
|
+
export type DateRange = {
|
14
|
+
start: DateValue | undefined;
|
15
|
+
end: DateValue | undefined;
|
16
|
+
};
|
4
17
|
export type HourCycle = 12 | 24 | undefined;
|
5
18
|
export type Month<T> = {
|
6
19
|
/**
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import { InputSignal, ModelSignal, WritableSignal } from '@angular/core';
|
1
|
+
import { InputSignal, ModelSignal, Signal, WritableSignal } from '@angular/core';
|
2
2
|
import { DateValue } from '@internationalized/date';
|
3
3
|
import { Formatter } from './formatter';
|
4
|
-
import { HourCycle, SegmentPart, SegmentValueObj } from './types';
|
4
|
+
import { DateStep, HourCycle, SegmentPart, SegmentValueObj } from './types';
|
5
5
|
export type UseDateFieldProps = {
|
6
6
|
hasLeftFocus: WritableSignal<boolean>;
|
7
7
|
lastKeyZero: WritableSignal<boolean>;
|
@@ -9,6 +9,7 @@ export type UseDateFieldProps = {
|
|
9
9
|
hourCycle: HourCycle;
|
10
10
|
formatter: Formatter;
|
11
11
|
segmentValues: WritableSignal<SegmentValueObj>;
|
12
|
+
step: Signal<DateStep>;
|
12
13
|
disabled: InputSignal<boolean>;
|
13
14
|
readonly: InputSignal<boolean>;
|
14
15
|
part: SegmentPart;
|
@@ -136,6 +137,6 @@ export declare const segmentBuilders: {
|
|
136
137
|
export declare function useDateField(props: UseDateFieldProps): {
|
137
138
|
handleSegmentClick: (e: MouseEvent) => void;
|
138
139
|
handleSegmentKeydown: (e: KeyboardEvent) => void;
|
139
|
-
attributes:
|
140
|
+
attributes: Signal<{}>;
|
140
141
|
};
|
141
142
|
export {};
|
@@ -1,4 +1,7 @@
|
|
1
1
|
import { Granularity } from './comparators';
|
2
|
-
import { HourCycle } from './types';
|
2
|
+
import { DateStep, HourCycle } from './types';
|
3
3
|
export declare function getOptsByGranularity(granularity: Granularity, hourCycle: HourCycle, isTimeValue?: boolean): Intl.DateTimeFormatOptions;
|
4
|
+
export declare function normalizeDateStep(step?: DateStep): DateStep;
|
4
5
|
export declare function handleCalendarInitialFocus(calendar: HTMLElement): void;
|
6
|
+
export declare function normalizeHourCycle(hourCycle: HourCycle): "h11" | "h23" | undefined;
|
7
|
+
export declare function normalizeHour12(hourCycle: HourCycle): boolean | undefined;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { InjectionToken, InputSignal, ModelSignal, Signal, WritableSignal } from '@angular/core';
|
2
2
|
import { DateValue } from '@internationalized/date';
|
3
|
-
import { Formatter, HourCycle, SegmentValueObj } from '@radix-ng/primitives/core';
|
3
|
+
import { DateStep, Formatter, HourCycle, SegmentValueObj } from '@radix-ng/primitives/core';
|
4
4
|
export interface DateFieldContextToken {
|
5
5
|
locale: InputSignal<string>;
|
6
6
|
value: ModelSignal<DateValue | undefined>;
|
@@ -9,6 +9,7 @@ export interface DateFieldContextToken {
|
|
9
9
|
isInvalid: Signal<boolean>;
|
10
10
|
placeholder: ModelSignal<DateValue>;
|
11
11
|
hourCycle: InputSignal<HourCycle>;
|
12
|
+
step$: Signal<DateStep>;
|
12
13
|
formatter: Formatter;
|
13
14
|
segmentValues: WritableSignal<SegmentValueObj>;
|
14
15
|
focusNext: () => void;
|
@@ -2,7 +2,7 @@ import { Direction } from '@angular/cdk/bidi';
|
|
2
2
|
import { BooleanInput } from '@angular/cdk/coercion';
|
3
3
|
import { AfterViewInit, OnInit } from '@angular/core';
|
4
4
|
import { DateValue } from '@internationalized/date';
|
5
|
-
import { DateMatcher, Formatter, Granularity, HourCycle, SegmentValueObj } from '@radix-ng/primitives/core';
|
5
|
+
import { DateMatcher, DateStep, Formatter, Granularity, HourCycle, SegmentValueObj } from '@radix-ng/primitives/core';
|
6
6
|
import * as i0 from "@angular/core";
|
7
7
|
export declare class RdxDateFieldRootDirective implements OnInit, AfterViewInit {
|
8
8
|
private readonly elementRef;
|
@@ -45,6 +45,11 @@ export declare class RdxDateFieldRootDirective implements OnInit, AfterViewInit
|
|
45
45
|
* Whether or not the field is readonly.
|
46
46
|
*/
|
47
47
|
readonly readonly: import("@angular/core").InputSignalWithTransform<boolean, BooleanInput>;
|
48
|
+
/**
|
49
|
+
* The stepping interval for the time fields. Defaults to 1
|
50
|
+
*/
|
51
|
+
readonly step: import("@angular/core").InputSignal<DateStep | undefined>;
|
52
|
+
readonly step$: import("@angular/core").Signal<DateStep>;
|
48
53
|
/**
|
49
54
|
* @ignore
|
50
55
|
*/
|
@@ -122,5 +127,5 @@ export declare class RdxDateFieldRootDirective implements OnInit, AfterViewInit
|
|
122
127
|
*/
|
123
128
|
setFocusedElement(el: HTMLElement): void;
|
124
129
|
static ɵfac: i0.ɵɵFactoryDeclaration<RdxDateFieldRootDirective, never>;
|
125
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDateFieldRootDirective, "[rdxDateFieldRoot]", ["rdxDateFieldRoot"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "isDateUnavailable": { "alias": "isDateUnavailable"; "required": false; "isSignal": true; }; "hourCycle": { "alias": "hourCycle"; "required": false; "isSignal": true; }; "granularity": { "alias": "granularity"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; "minValue": { "alias": "minValue"; "required": false; "isSignal": true; }; "maxValue": { "alias": "maxValue"; "required": false; "isSignal": true; }; "hideTimeZone": { "alias": "hideTimeZone"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "placeholder": "placeholderChange"; }, never, never, true, never>;
|
130
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDateFieldRootDirective, "[rdxDateFieldRoot]", ["rdxDateFieldRoot"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "isDateUnavailable": { "alias": "isDateUnavailable"; "required": false; "isSignal": true; }; "hourCycle": { "alias": "hourCycle"; "required": false; "isSignal": true; }; "granularity": { "alias": "granularity"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; "minValue": { "alias": "minValue"; "required": false; "isSignal": true; }; "maxValue": { "alias": "maxValue"; "required": false; "isSignal": true; }; "hideTimeZone": { "alias": "hideTimeZone"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "placeholder": "placeholderChange"; }, never, never, true, never>;
|
126
131
|
}
|
@@ -784,7 +784,7 @@ class RdxCalendarRootDirective {
|
|
784
784
|
this.isDateSelected = isDateSelected;
|
785
785
|
this.isInvalid = isInvalid();
|
786
786
|
});
|
787
|
-
watch([this.value], (_modelValue) => {
|
787
|
+
watch([this.value], ([_modelValue]) => {
|
788
788
|
if (Array.isArray(_modelValue) && _modelValue.length) {
|
789
789
|
const lastValue = _modelValue[_modelValue.length - 1];
|
790
790
|
if (lastValue && !isEqualDay(this.placeholder(), lastValue)) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"radix-ng-primitives-calendar.mjs","sources":["../../../packages/primitives/calendar/src/сalendar-сontext.token.ts","../../../packages/primitives/calendar/src/calendar-cell-trigger.directive.ts","../../../packages/primitives/calendar/src/calendar-cell.directive.ts","../../../packages/primitives/calendar/src/calendar-grid-body.directive.ts","../../../packages/primitives/calendar/src/calendar-grid-head.directive.ts","../../../packages/primitives/calendar/src/calendar-grid-row.directive.ts","../../../packages/primitives/calendar/src/calendar-grid.directive.ts","../../../packages/primitives/calendar/src/calendar-head-cell.directive.ts","../../../packages/primitives/calendar/src/calendar-header.directive.ts","../../../packages/primitives/calendar/src/calendar-heading.directive.ts","../../../packages/primitives/calendar/src/calendar-next.directive.ts","../../../packages/primitives/calendar/src/calendar-prev.directive.ts","../../../packages/primitives/calendar/src/calendar.ts","../../../packages/primitives/calendar/src/calendar-root.directive.ts","../../../packages/primitives/calendar/index.ts","../../../packages/primitives/calendar/radix-ng-primitives-calendar.ts"],"sourcesContent":["import { inject, InjectionToken, InputSignal, ModelSignal, WritableSignal } from '@angular/core';\nimport { DateValue } from '@internationalized/date';\nimport { DateMatcher, Formatter } from '@radix-ng/primitives/core';\n\nexport interface CalendarRootContextToken {\n nextPage?: (nextPageFunc?: (date: DateValue) => DateValue) => void;\n prevPage?: (nextPageFunc?: (date: DateValue) => DateValue) => void;\n isNextButtonDisabled: (nextPageFunc?: (date: DateValue) => DateValue) => boolean;\n isPrevButtonDisabled: (nextPageFunc?: (date: DateValue) => DateValue) => boolean;\n headingValue: WritableSignal<string>;\n dir: InputSignal<'ltr' | 'rtl'>;\n readonly: boolean;\n numberOfMonths: InputSignal<number>;\n placeholder: ModelSignal<DateValue>;\n pagedNavigation: boolean;\n disabled: InputSignal<boolean>;\n isDateSelected?: DateMatcher;\n isDateDisabled?: DateMatcher;\n isDateUnavailable: DateMatcher;\n formatter: Formatter;\n onDateChange: (date: DateValue) => void;\n currentElement: HTMLElement;\n}\n\nexport const CALENDAR_ROOT_CONTEXT = new InjectionToken<CalendarRootContextToken>('CalendarRootContext');\n\nexport function injectCalendarRootContext(): CalendarRootContextToken {\n return inject(CALENDAR_ROOT_CONTEXT);\n}\n","import { AfterViewInit, computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { DateValue, getLocalTimeZone, isSameDay, isSameMonth, isToday } from '@internationalized/date';\nimport * as kbd from '@radix-ng/primitives/core';\nimport { getDaysInMonth, toDate } from '@radix-ng/primitives/core';\nimport { injectCalendarRootContext } from './сalendar-сontext.token';\n\n@Directive({\n selector: '[rdxCalendarCellTrigger]',\n exportAs: 'rdxCalendarCellTrigger',\n host: {\n role: 'button',\n '[attr.aria-label]': 'labelText()',\n '[attr.aria-disabled]': 'isDisabled() || isUnavailable() ? true : undefined',\n '[attr.data-rdx-calendar-cell-trigger]': '\"\"',\n '[attr.tabindex]': 'isFocusedDate() ? 0 : isOutsideView() || isDisabled() ? undefined : -1',\n '[attr.data-value]': 'day()?.toString()',\n '[attr.data-disabled]': 'isDisabled() ? \"\" : undefined',\n '[attr.data-today]': 'isDateToday() ? \"\" : undefined',\n '[attr.data-outside-view]': 'isOutsideView() ? \"\" : undefined',\n '[attr.data-selected]': 'isSelectedDate() ? \"\" : undefined',\n '[attr.data-unavailable]': 'isUnavailable() ? \"\" : undefined',\n '[attr.data-focus]': 'isFocusedDate() ? \"\" : undefined',\n\n '(click)': 'onClick()',\n\n '(keydown)': 'onArrowKey($event)'\n }\n})\nexport class RdxCalendarCellTriggerDirective implements AfterViewInit {\n private readonly rootContext = injectCalendarRootContext();\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n /**\n * The date value provided to the cell trigger\n */\n readonly day = input<DateValue>();\n\n /**\n * The month in which the cell is rendered\n */\n readonly month = input<DateValue>();\n\n /**\n * Current day\n */\n readonly dayValue = computed(() => this.day()?.day.toLocaleString());\n\n /**\n * Current today state\n */\n readonly isDateToday = computed(() => {\n return isToday(<DateValue>this.day(), getLocalTimeZone());\n });\n\n /**\n * Current selected state\n */\n readonly isSelectedDate = computed(() => this.rootContext.isDateSelected!(<DateValue>this.day()));\n\n readonly isDisabled = computed(() => this.rootContext.isDateDisabled!(<DateValue>this.day()));\n\n readonly isOutsideView = computed(() => {\n return !isSameMonth(<DateValue>this.day(), <DateValue>this.month());\n });\n\n readonly isFocusedDate = computed(() => {\n return !this.rootContext.disabled() && isSameDay(<DateValue>this.day(), this.rootContext.placeholder());\n });\n\n readonly isUnavailable = computed(() => this.rootContext.isDateUnavailable?.(<DateValue>this.day()) ?? false);\n\n readonly labelText = computed(() => {\n return this.rootContext.formatter.custom(toDate(<DateValue>this.day()), {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric'\n });\n });\n\n /**\n * @ignore\n */\n currentElement!: HTMLElement;\n\n ngAfterViewInit() {\n this.currentElement = this.elementRef.nativeElement;\n }\n\n protected onClick() {\n this.changeDate(this.day()!);\n }\n\n protected onArrowKey(event: KeyboardEvent) {\n const code = event.code;\n if (\n ![kbd.ARROW_RIGHT, kbd.ARROW_LEFT, kbd.ARROW_UP, kbd.ARROW_DOWN, kbd.ENTER, kbd.SPACE_CODE].includes(code)\n ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n const indexIncrementation = 7;\n const sign = this.rootContext.dir() === 'rtl' ? -1 : 1;\n\n switch (code) {\n case kbd.ARROW_RIGHT:\n this.shiftFocus(this.currentElement, sign);\n break;\n case kbd.ARROW_LEFT:\n this.shiftFocus(this.currentElement, -sign);\n break;\n case kbd.ARROW_UP:\n this.shiftFocus(this.currentElement, -indexIncrementation);\n break;\n case kbd.ARROW_DOWN:\n this.shiftFocus(this.currentElement, indexIncrementation);\n break;\n case kbd.ENTER:\n case kbd.SPACE_CODE:\n this.changeDate(<DateValue>this.day());\n }\n }\n\n private shiftFocus(node: HTMLElement, add: number) {\n const parentElement = this.rootContext.currentElement;\n\n const allCollectionItems: HTMLElement[] = this.getSelectableCells(parentElement);\n if (!allCollectionItems.length) return;\n\n const index = allCollectionItems.indexOf(node);\n const newIndex = index + add;\n\n if (newIndex >= 0 && newIndex < allCollectionItems.length) {\n if (allCollectionItems[newIndex].hasAttribute('data-disabled')) {\n this.shiftFocus(allCollectionItems[newIndex], add);\n }\n allCollectionItems[newIndex].focus();\n return;\n }\n\n if (newIndex < 0) {\n if (!this.rootContext.prevPage) return;\n\n this.rootContext.prevPage();\n\n setTimeout(() => {\n const newCollectionItems = this.getSelectableCells(parentElement);\n if (!newCollectionItems.length) return;\n\n if (!this.rootContext.pagedNavigation && this.rootContext.numberOfMonths() > 1) {\n // Placeholder is set to the first month of the new page\n const numberOfDays = getDaysInMonth(this.rootContext.placeholder());\n const computedIndex = numberOfDays - Math.abs(newIndex);\n if (newCollectionItems[computedIndex].hasAttribute('data-disabled')) {\n this.shiftFocus(newCollectionItems[computedIndex], add);\n }\n newCollectionItems[computedIndex].focus();\n return;\n }\n\n const computedIndex = newCollectionItems.length - Math.abs(newIndex);\n if (newCollectionItems[computedIndex].hasAttribute('data-disabled')) {\n this.shiftFocus(newCollectionItems[computedIndex], add);\n }\n newCollectionItems[computedIndex].focus();\n });\n }\n\n if (newIndex >= allCollectionItems.length) {\n if (!this.rootContext.nextPage) return;\n\n this.rootContext.nextPage();\n\n setTimeout(() => {\n const newCollectionItems = this.getSelectableCells(parentElement);\n if (!newCollectionItems.length) return;\n\n if (!this.rootContext.pagedNavigation && this.rootContext.numberOfMonths() > 1) {\n const numberOfDays = getDaysInMonth(\n this.rootContext.placeholder().add({ months: this.rootContext.numberOfMonths() - 1 })\n );\n\n const computedIndex =\n newIndex - allCollectionItems.length + (newCollectionItems.length - numberOfDays);\n\n if (newCollectionItems[computedIndex].hasAttribute('data-disabled')) {\n this.shiftFocus(newCollectionItems[computedIndex], add);\n }\n newCollectionItems[computedIndex].focus();\n return;\n }\n\n const computedIndex = newIndex - allCollectionItems.length;\n if (newCollectionItems[computedIndex].hasAttribute('data-disabled')) {\n this.shiftFocus(newCollectionItems[computedIndex], add);\n }\n\n newCollectionItems[computedIndex].focus();\n });\n }\n }\n\n /**\n * @ignore\n */\n SELECTOR = '[data-rdx-calendar-cell-trigger]:not([data-outside-view]):not([data-outside-visible-view])';\n\n /**\n * @ignore\n */\n getSelectableCells(calendar: HTMLElement): HTMLElement[] {\n return Array.from(calendar.querySelectorAll(this.SELECTOR)) ?? [];\n }\n\n /**\n * @ignore\n */\n changeDate(date: DateValue) {\n this.rootContext.onDateChange(date);\n }\n}\n","import { Directive, input } from '@angular/core';\nimport { DateValue } from '@internationalized/date';\nimport { injectCalendarRootContext } from './сalendar-сontext.token';\n\n@Directive({\n selector: 'td[rdxCalendarCell]',\n host: {\n role: 'gridcell',\n '[attr.aria-selected]': 'rootContext.isDateSelected?.(date()!) ? true : undefined',\n '[attr.aria-disabled]': 'rootContext.isDateSelected?.(date()!) || rootContext.isDateUnavailable?.(date()!)',\n '[attr.data-disabled]': 'rootContext.isDateSelected?.(date()!) ? \"\" : undefined'\n }\n})\nexport class RdxCalendarCellDirective {\n protected readonly rootContext = injectCalendarRootContext();\n\n /**\n * The date of the cell\n */\n readonly date = input<DateValue>();\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'tbody[rdxCalendarGridBody]'\n})\nexport class RdxCalendarGridBodyDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'thead[rdxCalendarGridHead]',\n host: {\n '[attr.aria-hidden]': 'true'\n }\n})\nexport class RdxCalendarGridHeadDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'tr[rdxCalendarGridRow]'\n})\nexport class RdxCalendarGridRowDirective {}\n","import { computed, Directive } from '@angular/core';\nimport { injectCalendarRootContext } from './сalendar-сontext.token';\n\n@Directive({\n selector: 'table[rdxCalendarGrid]',\n host: {\n tabindex: '-1',\n role: 'grid',\n '[attr.aria-readonly]': 'readonly()',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.data-readonly]': 'readonly() && \"\"',\n '[attr.data-disabled]': 'disabled() && \"\"'\n }\n})\nexport class RdxCalendarGridDirective {\n private readonly rootContext = injectCalendarRootContext();\n\n readonly disabled = computed(() => (this.rootContext.disabled() ? true : undefined));\n readonly readonly = computed(() => (this.rootContext.readonly ? true : undefined));\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'th[rdxCalendarHeadCell]'\n})\nexport class RdxCalendarHeadCellDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'div[rdxCalendarHeader]'\n})\nexport class RdxCalendarHeaderDirective {}\n","import { computed, Directive } from '@angular/core';\nimport { injectCalendarRootContext } from './сalendar-сontext.token';\n\n@Directive({\n selector: 'div[rdxCalendarHeading]',\n exportAs: 'rdxCalendarHeading',\n host: {\n '[attr.data-disabled]': 'rootContext.disabled() ? \"\" : undefined'\n }\n})\nexport class RdxCalendarHeadingDirective {\n protected readonly rootContext = injectCalendarRootContext();\n\n readonly headingValue = computed(() => this.rootContext.headingValue());\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { DateValue } from '@internationalized/date';\nimport { injectCalendarRootContext } from './сalendar-сontext.token';\n\n@Directive({\n selector: 'button[rdxCalendarNext]',\n exportAs: 'rdxCalendarNext',\n host: {\n '(click)': 'onClick()',\n '[disabled]': 'disabled()',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.aria-disabled]': 'disabled() ? \"\" : undefined',\n 'aria-label': 'Next page'\n }\n})\nexport class RdxCalendarNextDirective {\n protected readonly rootContext = injectCalendarRootContext();\n\n /**\n * The function to be used for the `next page`. Overwrites the nextPage function set on the `CalendarRoot`.\n */\n readonly nextPage = input<(placeholder: DateValue) => DateValue>();\n\n /**\n * @ignore\n */\n readonly disabled = computed(\n () => this.rootContext.disabled() || this.rootContext.isNextButtonDisabled(this.nextPage())\n );\n\n protected onClick() {\n this.rootContext.nextPage!(this.nextPage());\n }\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { DateValue } from '@internationalized/date';\nimport { injectCalendarRootContext } from './сalendar-сontext.token';\n\n@Directive({\n selector: 'button[rdxCalendarPrev]',\n exportAs: 'rdxCalendarPrev',\n host: {\n '(click)': 'onClick()',\n '[disabled]': 'disabled()',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.aria-disabled]': 'disabled() ? \"\" : undefined',\n 'aria-label': 'Previous page'\n }\n})\nexport class RdxCalendarPrevDirective {\n protected readonly rootContext = injectCalendarRootContext();\n\n /**\n * The function to be used for the `prev page`. Overwrites the prevPage function set on the `CalendarRoot`.\n */\n readonly prevPage = input<(placeholder: DateValue) => DateValue>();\n\n /**\n * @ignore\n */\n readonly disabled = computed(\n () => this.rootContext.disabled() || this.rootContext.isNextButtonDisabled(this.prevPage())\n );\n\n protected onClick() {\n this.rootContext.prevPage!(this.prevPage());\n }\n}\n","import { computed, InputSignal, ModelSignal, signal, WritableSignal } from '@angular/core';\nimport { DateFields, DateValue, isEqualMonth, isSameDay } from '@internationalized/date';\nimport {\n createFormatter,\n createMonths,\n DateFormatterOptions,\n DateMatcher,\n getDaysInMonth,\n isAfter,\n isBefore,\n Month,\n toDate,\n watch\n} from '@radix-ng/primitives/core';\n\nexport type CalendarProps = {\n locale: InputSignal<string>;\n placeholder: WritableSignal<DateValue>;\n weekStartsOn: InputSignal<0 | 1 | 2 | 3 | 4 | 5 | 6>;\n fixedWeeks: WritableSignal<boolean>;\n numberOfMonths: InputSignal<number>;\n minValue: InputSignal<DateValue | undefined>;\n maxValue: InputSignal<DateValue | undefined>;\n disabled: WritableSignal<boolean>;\n weekdayFormat: InputSignal<Intl.DateTimeFormatOptions['weekday']>;\n pagedNavigation: WritableSignal<boolean>;\n isDateDisabled?: InputSignal<DateMatcher | undefined>;\n isDateUnavailable?: InputSignal<DateMatcher | undefined>;\n calendarLabel: InputSignal<string | undefined>;\n nextPage: InputSignal<((placeholder: DateValue) => DateValue) | undefined>;\n prevPage: InputSignal<((placeholder: DateValue) => DateValue) | undefined>;\n};\n\nexport type CalendarStateProps = {\n date: ModelSignal<DateValue | DateValue[] | undefined>;\n isDateDisabled?: DateMatcher;\n isDateUnavailable?: DateMatcher;\n};\n\nexport function calendarState(props: CalendarStateProps) {\n function isDateSelected(dateObj: DateValue): boolean {\n const currentValue = props.date(); // signal read\n\n if (Array.isArray(currentValue)) {\n return currentValue.some((d) => isSameDay(d, dateObj));\n } else if (!currentValue) {\n return false;\n } else {\n return isSameDay(currentValue, dateObj);\n }\n }\n\n const isInvalid = computed(() => {\n const currentValue = props.date();\n\n if (Array.isArray(currentValue)) {\n if (!currentValue.length) {\n return false;\n }\n for (const dateObj of currentValue) {\n if (props.isDateDisabled?.(dateObj)) return true;\n if (props.isDateUnavailable?.(dateObj)) return true;\n }\n } else {\n if (!currentValue) {\n return false;\n }\n if (props.isDateDisabled?.(currentValue)) return true;\n if (props.isDateUnavailable?.(currentValue)) return true;\n }\n return false;\n });\n\n return {\n isDateSelected,\n isInvalid\n };\n}\n\nfunction handleNextDisabled(lastPeriodInView: DateValue, nextPageFunc: (date: DateValue) => DateValue): DateValue {\n const firstPeriodOfNextPage = nextPageFunc(lastPeriodInView);\n const diff = firstPeriodOfNextPage.compare(lastPeriodInView);\n const duration: DateFields = {};\n if (diff >= 7) duration.day = 1;\n if (diff >= getDaysInMonth(lastPeriodInView)) duration.month = 1;\n return firstPeriodOfNextPage.set({ ...duration });\n}\n\nfunction handlePrevDisabled(firstPeriodInView: DateValue, prevPageFunc: (date: DateValue) => DateValue): DateValue {\n const lastPeriodOfPrevPage = prevPageFunc(firstPeriodInView);\n const diff = firstPeriodInView.compare(lastPeriodOfPrevPage);\n const duration: DateFields = {};\n if (diff >= 7) duration.day = 35;\n if (diff >= getDaysInMonth(firstPeriodInView)) duration.month = 13;\n return lastPeriodOfPrevPage.set({ ...duration });\n}\n\nfunction handleNextPage(date: DateValue, nextPageFunc: (date: DateValue) => DateValue): DateValue {\n return nextPageFunc(date);\n}\n\nfunction handlePrevPage(date: DateValue, prevPageFunc: (date: DateValue) => DateValue): DateValue {\n return prevPageFunc(date);\n}\n\nexport function calendar(props: CalendarProps) {\n const formatter = createFormatter(props.locale());\n\n const headingFormatOptions = computed(() => {\n const options: DateFormatterOptions = {\n calendar: props.placeholder().calendar.identifier\n };\n\n if (props.placeholder().calendar.identifier === 'gregory' && props.placeholder().era === 'BC') {\n options.era = 'short';\n }\n\n return options;\n });\n\n const month = signal<Month<DateValue>[]>(\n createMonths({\n dateObj: props.placeholder(),\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n })\n );\n\n const visibleView = computed(() => {\n return month().map((month) => month.value);\n });\n\n function isOutsideVisibleView(date: DateValue) {\n return !visibleView().some((month) => isEqualMonth(date, month));\n }\n\n const isNextButtonDisabled = (nextPageFunc?: (date: DateValue) => DateValue) => {\n if (!props.maxValue() || !month().length) return false;\n if (props.disabled()) return true;\n\n const lastPeriodInView = month()[month().length - 1].value;\n\n if (!nextPageFunc && !props.nextPage()) {\n const firstPeriodOfNextPage = lastPeriodInView.add({ months: 1 }).set({ day: 1 });\n return isAfter(firstPeriodOfNextPage, <DateValue>props.maxValue());\n }\n\n const firstPeriodOfNextPage = handleNextDisabled(lastPeriodInView, nextPageFunc || props.nextPage()!);\n return isAfter(firstPeriodOfNextPage, <DateValue>props.maxValue());\n };\n\n const isPrevButtonDisabled = (prevPageFunc?: (date: DateValue) => DateValue) => {\n if (!props.minValue() || !month().length) return false;\n if (props.disabled()) return true;\n const firstPeriodInView = month()[0].value;\n\n if (!prevPageFunc && !props.prevPage()) {\n const lastPeriodOfPrevPage = firstPeriodInView.subtract({ months: 1 }).set({ day: 35 });\n return isBefore(lastPeriodOfPrevPage, <DateValue>props.minValue());\n }\n\n const lastPeriodOfPrevPage = handlePrevDisabled(firstPeriodInView, prevPageFunc || props.prevPage()!);\n return isBefore(lastPeriodOfPrevPage, <DateValue>props.minValue());\n };\n\n const nextPage = (nextPageFunc?: (date: DateValue) => DateValue) => {\n const firstDate = month()[0].value;\n\n if (!nextPageFunc && !props.nextPage()) {\n const newDate = firstDate.add({ months: props.pagedNavigation() ? props.numberOfMonths() : 1 });\n\n const newMonth = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n });\n\n month.set(newMonth);\n props.placeholder.set(newMonth[0].value.set({ day: 1 }));\n\n return;\n }\n\n const newDate = handleNextPage(firstDate, nextPageFunc || props.nextPage()!);\n const newMonth = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n });\n\n month.set(newMonth);\n\n const duration: DateFields = {};\n\n if (!nextPageFunc) {\n const diff = newMonth[0].value.compare(firstDate);\n if (diff >= getDaysInMonth(firstDate)) {\n duration.day = 1;\n }\n\n if (diff >= 365) {\n duration.month = 1;\n }\n }\n\n props.placeholder.set(newMonth[0].value.set({ ...duration }));\n };\n\n const prevPage = (prevPageFunc?: (date: DateValue) => DateValue) => {\n const firstDate = month()[0].value;\n\n if (!prevPageFunc && !props.prevPage()) {\n const newDate = firstDate.subtract({ months: props.pagedNavigation() ? props.numberOfMonths() : 1 });\n\n const newMonth = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n });\n\n month.set(newMonth);\n\n props.placeholder.set(newMonth[0].value.set({ day: 1 }));\n return;\n }\n\n const newDate = handlePrevPage(firstDate, prevPageFunc || props.prevPage()!);\n const newMonth = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n });\n\n month.set(newMonth);\n\n const duration: DateFields = {};\n\n // Do not adjust the placeholder if the prevPageFunc is defined (overwrite)\n if (!prevPageFunc) {\n const diff = firstDate.compare(newMonth[0].value);\n if (diff >= getDaysInMonth(firstDate)) duration.day = 1;\n\n if (diff >= 365) duration.month = 1;\n }\n\n props.placeholder.set(newMonth[0].value.set({ ...duration }));\n };\n\n function isDateDisabled(dateObj: DateValue) {\n if (props.isDateDisabled?.()?.(dateObj) || props.disabled()) return true;\n if (props.maxValue() && isAfter(dateObj, <DateValue>props.maxValue())) return true;\n if (props.minValue() && isBefore(dateObj, <DateValue>props.minValue())) return true;\n return false;\n }\n\n const isDateUnavailable = (date: DateValue) => {\n return !!props.isDateUnavailable?.()?.(date);\n };\n\n const weekdays = computed(() => {\n if (!month().length) return [];\n return month()[0].weeks[0].map((date) => {\n return formatter.dayOfWeek(toDate(date), props.weekdayFormat());\n });\n });\n\n watch([props.placeholder], ([placeholder]) => {\n if (visibleView().some((month) => isEqualMonth(month, placeholder))) {\n return;\n }\n\n month.set(\n createMonths({\n dateObj: placeholder,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n })\n );\n });\n\n watch(\n [props.locale, props.weekStartsOn, props.fixedWeeks, props.numberOfMonths],\n ([locale, weekStartsOn, fixedWeeks, numberOfMonths]) => {\n month.set(\n createMonths({\n dateObj: props.placeholder(),\n weekStartsOn: weekStartsOn,\n locale: locale,\n fixedWeeks: fixedWeeks,\n numberOfMonths: numberOfMonths\n })\n );\n }\n );\n\n const headingValue = computed(() => {\n if (!month().length) {\n return '';\n }\n\n if (props.locale() !== formatter.getLocale()) formatter.setLocale(props.locale());\n\n if (month().length === 1) {\n const _month = month()[0].value;\n return `${formatter.fullMonthAndYear(toDate(_month), headingFormatOptions())}`;\n }\n\n const startMonth = toDate(month()[0].value);\n const endMonth = toDate(month()[month().length - 1].value);\n\n const startMonthName = formatter.fullMonth(startMonth, headingFormatOptions());\n const endMonthName = formatter.fullMonth(endMonth, headingFormatOptions());\n const startMonthYear = formatter.fullYear(startMonth, headingFormatOptions());\n const endMonthYear = formatter.fullYear(endMonth, headingFormatOptions());\n\n return startMonthYear === endMonthYear\n ? `${startMonthName} - ${endMonthName} ${endMonthYear}`\n : `${startMonthName} ${startMonthYear} - ${endMonthName} ${endMonthYear}`;\n });\n\n const fullCalendarLabel = computed(() => `${props.calendarLabel() ?? 'Event Date'}, ${headingValue()}`);\n\n return {\n isDateDisabled,\n isDateUnavailable,\n isNextButtonDisabled,\n isPrevButtonDisabled,\n month,\n weekdays,\n visibleView,\n isOutsideVisibleView,\n formatter,\n nextPage,\n prevPage,\n headingValue,\n fullCalendarLabel\n };\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n AfterViewInit,\n booleanAttribute,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n inject,\n input,\n linkedSignal,\n model,\n signal\n} from '@angular/core';\nimport { DateValue, isEqualDay, isSameDay } from '@internationalized/date';\nimport { DateMatcher, Formatter, getDefaultDate, Month, watch } from '@radix-ng/primitives/core';\nimport { calendar, calendarState } from './calendar';\nimport { CALENDAR_ROOT_CONTEXT } from './сalendar-сontext.token';\n\n@Directive({\n selector: '[rdxCalendarRoot]',\n exportAs: 'rdxCalendarRoot',\n providers: [{ provide: CALENDAR_ROOT_CONTEXT, useExisting: forwardRef(() => RdxCalendarRootDirective) }],\n host: {\n role: 'application',\n '[attr.aria-label]': 'fullCalendarLabel()',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.data-readonly]': 'readonly() ? \"\" : undefined',\n '[attr.data-invalid]': 'isInvalid ? \"\" : undefined',\n '[attr.dir]': 'dir()'\n }\n})\nexport class RdxCalendarRootDirective implements AfterViewInit {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n /**\n * The controlled checked state of the calendar\n */\n readonly value = model<DateValue | DateValue[] | undefined>();\n\n /**\n * The default placeholder date\n */\n readonly defaultPlaceholder = model<DateValue>();\n\n readonly locale = input<string>('en');\n\n readonly defaultDate = getDefaultDate({\n defaultPlaceholder: this.defaultPlaceholder(),\n defaultValue: this.value(),\n locale: this.locale()\n });\n\n /**\n * The placeholder date, which is used to determine what month to display when no date is selected.\n * This updates as the user navigates the calendar and can be used to programmatically control the calendar view\n */\n readonly placeholder = model<DateValue>(this.defaultPlaceholder() ?? this.defaultDate.copy());\n\n readonly multiple = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether to always display 6 weeks in the calendar\n */\n readonly fixedWeeks = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether the calendar is disabled\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether to prevent the user from deselecting a date without selecting another date first\n */\n readonly preventDeselect = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * The day of the week to start the calendar on\n */\n readonly weekStartsOn = input<0 | 1 | 2 | 3 | 4 | 5 | 6>(1);\n\n /**\n * The number of months to display at once\n */\n readonly numberOfMonths = input<number>(1);\n\n /**\n * The reading direction of the calendar when applicable.\n */\n readonly dir = input<'ltr' | 'rtl'>('ltr');\n\n /**\n * The minimum date that can be selected\n */\n readonly minValue = input<DateValue>();\n\n /**\n * The maximum date that can be selected\n */\n readonly maxValue = input<DateValue>();\n\n /**\n * The format to use for the weekday strings provided via the weekdays slot prop\n */\n readonly weekdayFormat = input<Intl.DateTimeFormatOptions['weekday']>('narrow');\n\n /**\n * The accessible label for the calendar\n */\n readonly calendarLabel = input<string>();\n\n /**\n * Whether the calendar is readonly\n */\n readonly readonly = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * This property causes the previous and next buttons to navigate by the number of months displayed at once, rather than one month\n */\n readonly pagedNavigation = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n readonly propsNextPage = input<(placeholder: DateValue) => DateValue>();\n\n readonly propsPrevPage = input<(placeholder: DateValue) => DateValue>();\n\n /**\n * A function that returns whether a date is disabled\n */\n readonly isDateDisabled = input<DateMatcher>();\n\n /**\n * A function that returns whether a date is unavailable\n */\n readonly isDateUnavailable = input<DateMatcher>();\n\n readonly initialFocus = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n readonly months = model<Month<DateValue>[]>();\n\n /**\n * The days of the week\n */\n readonly weekDays = model<string[]>();\n\n protected readonly _fixedWeeks = linkedSignal(this.fixedWeeks);\n\n protected readonly _disabled = linkedSignal(this.disabled);\n\n protected readonly _pagedNavigation = linkedSignal(this.pagedNavigation);\n\n /**\n * @ignore\n */\n readonly headingValue = signal<string>('');\n\n /**\n * @ignore\n */\n readonly fullCalendarLabel = signal<string>('');\n\n /**\n * @ignore\n */\n nextPage: (nextPageFunc?: (date: DateValue) => DateValue) => void;\n\n /**\n * @ignore\n */\n prevPage: (nextPageFunc?: (date: DateValue) => DateValue) => void;\n\n /**\n * @ignore\n */\n isNextButtonDisabled: (nextPageFunc?: (date: DateValue) => DateValue) => boolean;\n\n /**\n * @ignore\n */\n isPrevButtonDisabled: (nextPageFunc?: (date: DateValue) => DateValue) => boolean;\n\n /**\n * @ignore\n */\n isDateSelected: DateMatcher;\n\n /**\n * @ignore\n */\n isInvalid: boolean;\n\n /**\n * @ignore\n */\n isOutsideVisibleView: (date: DateValue) => boolean;\n\n /**\n * @ignore\n */\n formatter: Formatter;\n\n /**\n * @ignore\n */\n currentElement!: HTMLElement;\n\n private readonly calendar = calendar({\n locale: this.locale,\n placeholder: this.placeholder,\n weekStartsOn: this.weekStartsOn,\n fixedWeeks: this._fixedWeeks,\n numberOfMonths: this.numberOfMonths,\n minValue: this.minValue,\n maxValue: this.maxValue,\n disabled: this._disabled,\n weekdayFormat: this.weekdayFormat,\n pagedNavigation: this._pagedNavigation,\n isDateDisabled: this.isDateDisabled,\n isDateUnavailable: this.isDateUnavailable,\n calendarLabel: this.calendarLabel,\n nextPage: this.propsNextPage,\n prevPage: this.propsPrevPage\n });\n\n constructor() {\n this.nextPage = this.calendar.nextPage;\n this.prevPage = this.calendar.prevPage;\n this.isOutsideVisibleView = this.calendar.isOutsideVisibleView;\n this.isNextButtonDisabled = this.calendar.isNextButtonDisabled;\n this.isPrevButtonDisabled = this.calendar.isPrevButtonDisabled;\n this.formatter = this.calendar.formatter;\n\n effect(() => {\n this.months.set(this.calendar.month());\n\n this.weekDays.set(this.calendar.weekdays());\n\n this.fullCalendarLabel.set(this.calendar.fullCalendarLabel());\n\n this.headingValue.set(this.calendar.headingValue());\n\n const { isInvalid, isDateSelected } = calendarState({\n date: this.value,\n isDateDisabled: this.isDateDisabled(),\n isDateUnavailable: this.isDateUnavailable()\n });\n\n this.isDateSelected = isDateSelected;\n this.isInvalid = isInvalid();\n });\n\n watch([this.value], (_modelValue) => {\n if (Array.isArray(_modelValue) && _modelValue.length) {\n const lastValue = _modelValue[_modelValue.length - 1];\n if (lastValue && !isEqualDay(this.placeholder(), <DateValue>lastValue)) {\n this.onPlaceholderChange(<DateValue>lastValue);\n }\n } else if (!Array.isArray(_modelValue) && _modelValue && !isEqualDay(this.placeholder(), _modelValue)) {\n this.onPlaceholderChange(_modelValue);\n }\n });\n }\n\n ngAfterViewInit() {\n this.currentElement = this.elementRef.nativeElement;\n }\n\n /**\n * @ignore\n */\n onPlaceholderChange(value: DateValue) {\n this.placeholder.set(value.copy());\n }\n\n /**\n * @ignore\n */\n onDateChange(date: DateValue) {\n const currentValue = this.value();\n\n if (!this.multiple()) {\n // for single selection\n if (!this.value()) {\n this.value.set(date.copy());\n return;\n }\n\n if (!this.preventDeselect() && isEqualDay(this.value() as DateValue, date)) {\n this.placeholder.set(date.copy());\n this.value.set(undefined);\n } else {\n this.value.set(date.copy());\n }\n } else if (!this.value()) {\n // for multiple selection\n this.value.set([date.copy()]);\n } else if (Array.isArray(currentValue)) {\n const index = currentValue.findIndex((d: DateValue) => isSameDay(d, date));\n if (index === -1) {\n this.value.set([...currentValue, date.copy()]);\n } else if (!this.preventDeselect()) {\n const next = currentValue.filter((d: DateValue) => !isSameDay(d, date));\n if (next.length === 0) {\n this.placeholder.set(date.copy());\n this.value.set(undefined);\n return;\n }\n this.value.set(next.map((d) => d.copy()));\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nexport { RdxCalendarCellTriggerDirective } from './src/calendar-cell-trigger.directive';\nexport { RdxCalendarCellDirective } from './src/calendar-cell.directive';\nexport { RdxCalendarGridBodyDirective } from './src/calendar-grid-body.directive';\nexport { RdxCalendarGridHeadDirective } from './src/calendar-grid-head.directive';\nexport { RdxCalendarGridRowDirective } from './src/calendar-grid-row.directive';\nexport { RdxCalendarGridDirective } from './src/calendar-grid.directive';\nexport { RdxCalendarHeadCellDirective } from './src/calendar-head-cell.directive';\nexport { RdxCalendarHeaderDirective } from './src/calendar-header.directive';\nexport { RdxCalendarHeadingDirective } from './src/calendar-heading.directive';\nexport { RdxCalendarNextDirective } from './src/calendar-next.directive';\nexport { RdxCalendarPrevDirective } from './src/calendar-prev.directive';\nexport { RdxCalendarRootDirective } from './src/calendar-root.directive';\n\nimport { RdxCalendarCellTriggerDirective } from './src/calendar-cell-trigger.directive';\nimport { RdxCalendarCellDirective } from './src/calendar-cell.directive';\nimport { RdxCalendarGridBodyDirective } from './src/calendar-grid-body.directive';\nimport { RdxCalendarGridHeadDirective } from './src/calendar-grid-head.directive';\nimport { RdxCalendarGridRowDirective } from './src/calendar-grid-row.directive';\nimport { RdxCalendarGridDirective } from './src/calendar-grid.directive';\nimport { RdxCalendarHeadCellDirective } from './src/calendar-head-cell.directive';\nimport { RdxCalendarHeaderDirective } from './src/calendar-header.directive';\nimport { RdxCalendarHeadingDirective } from './src/calendar-heading.directive';\nimport { RdxCalendarNextDirective } from './src/calendar-next.directive';\nimport { RdxCalendarPrevDirective } from './src/calendar-prev.directive';\nimport { RdxCalendarRootDirective } from './src/calendar-root.directive';\n\nconst _imports = [\n RdxCalendarCellTriggerDirective,\n RdxCalendarCellDirective,\n RdxCalendarGridBodyDirective,\n RdxCalendarGridHeadDirective,\n RdxCalendarGridRowDirective,\n RdxCalendarGridDirective,\n RdxCalendarHeadCellDirective,\n RdxCalendarHeaderDirective,\n RdxCalendarPrevDirective,\n RdxCalendarRootDirective,\n RdxCalendarHeadingDirective,\n RdxCalendarNextDirective\n];\n\n@NgModule({\n imports: [..._imports],\n exports: [..._imports]\n})\nexport class RdxCalendarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"radix-ng-primitives-calendar.mjs","sources":["../../../packages/primitives/calendar/src/сalendar-сontext.token.ts","../../../packages/primitives/calendar/src/calendar-cell-trigger.directive.ts","../../../packages/primitives/calendar/src/calendar-cell.directive.ts","../../../packages/primitives/calendar/src/calendar-grid-body.directive.ts","../../../packages/primitives/calendar/src/calendar-grid-head.directive.ts","../../../packages/primitives/calendar/src/calendar-grid-row.directive.ts","../../../packages/primitives/calendar/src/calendar-grid.directive.ts","../../../packages/primitives/calendar/src/calendar-head-cell.directive.ts","../../../packages/primitives/calendar/src/calendar-header.directive.ts","../../../packages/primitives/calendar/src/calendar-heading.directive.ts","../../../packages/primitives/calendar/src/calendar-next.directive.ts","../../../packages/primitives/calendar/src/calendar-prev.directive.ts","../../../packages/primitives/calendar/src/calendar.ts","../../../packages/primitives/calendar/src/calendar-root.directive.ts","../../../packages/primitives/calendar/index.ts","../../../packages/primitives/calendar/radix-ng-primitives-calendar.ts"],"sourcesContent":["import { inject, InjectionToken, InputSignal, ModelSignal, WritableSignal } from '@angular/core';\nimport { DateValue } from '@internationalized/date';\nimport { DateMatcher, Formatter } from '@radix-ng/primitives/core';\n\nexport interface CalendarRootContextToken {\n nextPage?: (nextPageFunc?: (date: DateValue) => DateValue) => void;\n prevPage?: (nextPageFunc?: (date: DateValue) => DateValue) => void;\n isNextButtonDisabled: (nextPageFunc?: (date: DateValue) => DateValue) => boolean;\n isPrevButtonDisabled: (nextPageFunc?: (date: DateValue) => DateValue) => boolean;\n headingValue: WritableSignal<string>;\n dir: InputSignal<'ltr' | 'rtl'>;\n readonly: boolean;\n numberOfMonths: InputSignal<number>;\n placeholder: ModelSignal<DateValue>;\n pagedNavigation: boolean;\n disabled: InputSignal<boolean>;\n isDateSelected?: DateMatcher;\n isDateDisabled?: DateMatcher;\n isDateUnavailable: DateMatcher;\n formatter: Formatter;\n onDateChange: (date: DateValue) => void;\n currentElement: HTMLElement;\n}\n\nexport const CALENDAR_ROOT_CONTEXT = new InjectionToken<CalendarRootContextToken>('CalendarRootContext');\n\nexport function injectCalendarRootContext(): CalendarRootContextToken {\n return inject(CALENDAR_ROOT_CONTEXT);\n}\n","import { AfterViewInit, computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { DateValue, getLocalTimeZone, isSameDay, isSameMonth, isToday } from '@internationalized/date';\nimport * as kbd from '@radix-ng/primitives/core';\nimport { getDaysInMonth, toDate } from '@radix-ng/primitives/core';\nimport { injectCalendarRootContext } from './сalendar-сontext.token';\n\n@Directive({\n selector: '[rdxCalendarCellTrigger]',\n exportAs: 'rdxCalendarCellTrigger',\n host: {\n role: 'button',\n '[attr.aria-label]': 'labelText()',\n '[attr.aria-disabled]': 'isDisabled() || isUnavailable() ? true : undefined',\n '[attr.data-rdx-calendar-cell-trigger]': '\"\"',\n '[attr.tabindex]': 'isFocusedDate() ? 0 : isOutsideView() || isDisabled() ? undefined : -1',\n '[attr.data-value]': 'day()?.toString()',\n '[attr.data-disabled]': 'isDisabled() ? \"\" : undefined',\n '[attr.data-today]': 'isDateToday() ? \"\" : undefined',\n '[attr.data-outside-view]': 'isOutsideView() ? \"\" : undefined',\n '[attr.data-selected]': 'isSelectedDate() ? \"\" : undefined',\n '[attr.data-unavailable]': 'isUnavailable() ? \"\" : undefined',\n '[attr.data-focus]': 'isFocusedDate() ? \"\" : undefined',\n\n '(click)': 'onClick()',\n\n '(keydown)': 'onArrowKey($event)'\n }\n})\nexport class RdxCalendarCellTriggerDirective implements AfterViewInit {\n private readonly rootContext = injectCalendarRootContext();\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n /**\n * The date value provided to the cell trigger\n */\n readonly day = input<DateValue>();\n\n /**\n * The month in which the cell is rendered\n */\n readonly month = input<DateValue>();\n\n /**\n * Current day\n */\n readonly dayValue = computed(() => this.day()?.day.toLocaleString());\n\n /**\n * Current today state\n */\n readonly isDateToday = computed(() => {\n return isToday(<DateValue>this.day(), getLocalTimeZone());\n });\n\n /**\n * Current selected state\n */\n readonly isSelectedDate = computed(() => this.rootContext.isDateSelected!(<DateValue>this.day()));\n\n readonly isDisabled = computed(() => this.rootContext.isDateDisabled!(<DateValue>this.day()));\n\n readonly isOutsideView = computed(() => {\n return !isSameMonth(<DateValue>this.day(), <DateValue>this.month());\n });\n\n readonly isFocusedDate = computed(() => {\n return !this.rootContext.disabled() && isSameDay(<DateValue>this.day(), this.rootContext.placeholder());\n });\n\n readonly isUnavailable = computed(() => this.rootContext.isDateUnavailable?.(<DateValue>this.day()) ?? false);\n\n readonly labelText = computed(() => {\n return this.rootContext.formatter.custom(toDate(<DateValue>this.day()), {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric'\n });\n });\n\n /**\n * @ignore\n */\n currentElement!: HTMLElement;\n\n ngAfterViewInit() {\n this.currentElement = this.elementRef.nativeElement;\n }\n\n protected onClick() {\n this.changeDate(this.day()!);\n }\n\n protected onArrowKey(event: KeyboardEvent) {\n const code = event.code;\n if (\n ![kbd.ARROW_RIGHT, kbd.ARROW_LEFT, kbd.ARROW_UP, kbd.ARROW_DOWN, kbd.ENTER, kbd.SPACE_CODE].includes(code)\n ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n const indexIncrementation = 7;\n const sign = this.rootContext.dir() === 'rtl' ? -1 : 1;\n\n switch (code) {\n case kbd.ARROW_RIGHT:\n this.shiftFocus(this.currentElement, sign);\n break;\n case kbd.ARROW_LEFT:\n this.shiftFocus(this.currentElement, -sign);\n break;\n case kbd.ARROW_UP:\n this.shiftFocus(this.currentElement, -indexIncrementation);\n break;\n case kbd.ARROW_DOWN:\n this.shiftFocus(this.currentElement, indexIncrementation);\n break;\n case kbd.ENTER:\n case kbd.SPACE_CODE:\n this.changeDate(<DateValue>this.day());\n }\n }\n\n private shiftFocus(node: HTMLElement, add: number) {\n const parentElement = this.rootContext.currentElement;\n\n const allCollectionItems: HTMLElement[] = this.getSelectableCells(parentElement);\n if (!allCollectionItems.length) return;\n\n const index = allCollectionItems.indexOf(node);\n const newIndex = index + add;\n\n if (newIndex >= 0 && newIndex < allCollectionItems.length) {\n if (allCollectionItems[newIndex].hasAttribute('data-disabled')) {\n this.shiftFocus(allCollectionItems[newIndex], add);\n }\n allCollectionItems[newIndex].focus();\n return;\n }\n\n if (newIndex < 0) {\n if (!this.rootContext.prevPage) return;\n\n this.rootContext.prevPage();\n\n setTimeout(() => {\n const newCollectionItems = this.getSelectableCells(parentElement);\n if (!newCollectionItems.length) return;\n\n if (!this.rootContext.pagedNavigation && this.rootContext.numberOfMonths() > 1) {\n // Placeholder is set to the first month of the new page\n const numberOfDays = getDaysInMonth(this.rootContext.placeholder());\n const computedIndex = numberOfDays - Math.abs(newIndex);\n if (newCollectionItems[computedIndex].hasAttribute('data-disabled')) {\n this.shiftFocus(newCollectionItems[computedIndex], add);\n }\n newCollectionItems[computedIndex].focus();\n return;\n }\n\n const computedIndex = newCollectionItems.length - Math.abs(newIndex);\n if (newCollectionItems[computedIndex].hasAttribute('data-disabled')) {\n this.shiftFocus(newCollectionItems[computedIndex], add);\n }\n newCollectionItems[computedIndex].focus();\n });\n }\n\n if (newIndex >= allCollectionItems.length) {\n if (!this.rootContext.nextPage) return;\n\n this.rootContext.nextPage();\n\n setTimeout(() => {\n const newCollectionItems = this.getSelectableCells(parentElement);\n if (!newCollectionItems.length) return;\n\n if (!this.rootContext.pagedNavigation && this.rootContext.numberOfMonths() > 1) {\n const numberOfDays = getDaysInMonth(\n this.rootContext.placeholder().add({ months: this.rootContext.numberOfMonths() - 1 })\n );\n\n const computedIndex =\n newIndex - allCollectionItems.length + (newCollectionItems.length - numberOfDays);\n\n if (newCollectionItems[computedIndex].hasAttribute('data-disabled')) {\n this.shiftFocus(newCollectionItems[computedIndex], add);\n }\n newCollectionItems[computedIndex].focus();\n return;\n }\n\n const computedIndex = newIndex - allCollectionItems.length;\n if (newCollectionItems[computedIndex].hasAttribute('data-disabled')) {\n this.shiftFocus(newCollectionItems[computedIndex], add);\n }\n\n newCollectionItems[computedIndex].focus();\n });\n }\n }\n\n /**\n * @ignore\n */\n SELECTOR = '[data-rdx-calendar-cell-trigger]:not([data-outside-view]):not([data-outside-visible-view])';\n\n /**\n * @ignore\n */\n getSelectableCells(calendar: HTMLElement): HTMLElement[] {\n return Array.from(calendar.querySelectorAll(this.SELECTOR)) ?? [];\n }\n\n /**\n * @ignore\n */\n changeDate(date: DateValue) {\n this.rootContext.onDateChange(date);\n }\n}\n","import { Directive, input } from '@angular/core';\nimport { DateValue } from '@internationalized/date';\nimport { injectCalendarRootContext } from './сalendar-сontext.token';\n\n@Directive({\n selector: 'td[rdxCalendarCell]',\n host: {\n role: 'gridcell',\n '[attr.aria-selected]': 'rootContext.isDateSelected?.(date()!) ? true : undefined',\n '[attr.aria-disabled]': 'rootContext.isDateSelected?.(date()!) || rootContext.isDateUnavailable?.(date()!)',\n '[attr.data-disabled]': 'rootContext.isDateSelected?.(date()!) ? \"\" : undefined'\n }\n})\nexport class RdxCalendarCellDirective {\n protected readonly rootContext = injectCalendarRootContext();\n\n /**\n * The date of the cell\n */\n readonly date = input<DateValue>();\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'tbody[rdxCalendarGridBody]'\n})\nexport class RdxCalendarGridBodyDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'thead[rdxCalendarGridHead]',\n host: {\n '[attr.aria-hidden]': 'true'\n }\n})\nexport class RdxCalendarGridHeadDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'tr[rdxCalendarGridRow]'\n})\nexport class RdxCalendarGridRowDirective {}\n","import { computed, Directive } from '@angular/core';\nimport { injectCalendarRootContext } from './сalendar-сontext.token';\n\n@Directive({\n selector: 'table[rdxCalendarGrid]',\n host: {\n tabindex: '-1',\n role: 'grid',\n '[attr.aria-readonly]': 'readonly()',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.data-readonly]': 'readonly() && \"\"',\n '[attr.data-disabled]': 'disabled() && \"\"'\n }\n})\nexport class RdxCalendarGridDirective {\n private readonly rootContext = injectCalendarRootContext();\n\n readonly disabled = computed(() => (this.rootContext.disabled() ? true : undefined));\n readonly readonly = computed(() => (this.rootContext.readonly ? true : undefined));\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'th[rdxCalendarHeadCell]'\n})\nexport class RdxCalendarHeadCellDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'div[rdxCalendarHeader]'\n})\nexport class RdxCalendarHeaderDirective {}\n","import { computed, Directive } from '@angular/core';\nimport { injectCalendarRootContext } from './сalendar-сontext.token';\n\n@Directive({\n selector: 'div[rdxCalendarHeading]',\n exportAs: 'rdxCalendarHeading',\n host: {\n '[attr.data-disabled]': 'rootContext.disabled() ? \"\" : undefined'\n }\n})\nexport class RdxCalendarHeadingDirective {\n protected readonly rootContext = injectCalendarRootContext();\n\n readonly headingValue = computed(() => this.rootContext.headingValue());\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { DateValue } from '@internationalized/date';\nimport { injectCalendarRootContext } from './сalendar-сontext.token';\n\n@Directive({\n selector: 'button[rdxCalendarNext]',\n exportAs: 'rdxCalendarNext',\n host: {\n '(click)': 'onClick()',\n '[disabled]': 'disabled()',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.aria-disabled]': 'disabled() ? \"\" : undefined',\n 'aria-label': 'Next page'\n }\n})\nexport class RdxCalendarNextDirective {\n protected readonly rootContext = injectCalendarRootContext();\n\n /**\n * The function to be used for the `next page`. Overwrites the nextPage function set on the `CalendarRoot`.\n */\n readonly nextPage = input<(placeholder: DateValue) => DateValue>();\n\n /**\n * @ignore\n */\n readonly disabled = computed(\n () => this.rootContext.disabled() || this.rootContext.isNextButtonDisabled(this.nextPage())\n );\n\n protected onClick() {\n this.rootContext.nextPage!(this.nextPage());\n }\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { DateValue } from '@internationalized/date';\nimport { injectCalendarRootContext } from './сalendar-сontext.token';\n\n@Directive({\n selector: 'button[rdxCalendarPrev]',\n exportAs: 'rdxCalendarPrev',\n host: {\n '(click)': 'onClick()',\n '[disabled]': 'disabled()',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.aria-disabled]': 'disabled() ? \"\" : undefined',\n 'aria-label': 'Previous page'\n }\n})\nexport class RdxCalendarPrevDirective {\n protected readonly rootContext = injectCalendarRootContext();\n\n /**\n * The function to be used for the `prev page`. Overwrites the prevPage function set on the `CalendarRoot`.\n */\n readonly prevPage = input<(placeholder: DateValue) => DateValue>();\n\n /**\n * @ignore\n */\n readonly disabled = computed(\n () => this.rootContext.disabled() || this.rootContext.isNextButtonDisabled(this.prevPage())\n );\n\n protected onClick() {\n this.rootContext.prevPage!(this.prevPage());\n }\n}\n","import { computed, InputSignal, ModelSignal, signal, WritableSignal } from '@angular/core';\nimport { DateFields, DateValue, isEqualMonth, isSameDay } from '@internationalized/date';\nimport {\n createFormatter,\n createMonths,\n DateFormatterOptions,\n DateMatcher,\n getDaysInMonth,\n isAfter,\n isBefore,\n Month,\n toDate,\n watch\n} from '@radix-ng/primitives/core';\n\nexport type CalendarProps = {\n locale: InputSignal<string>;\n placeholder: WritableSignal<DateValue>;\n weekStartsOn: InputSignal<0 | 1 | 2 | 3 | 4 | 5 | 6>;\n fixedWeeks: WritableSignal<boolean>;\n numberOfMonths: InputSignal<number>;\n minValue: InputSignal<DateValue | undefined>;\n maxValue: InputSignal<DateValue | undefined>;\n disabled: WritableSignal<boolean>;\n weekdayFormat: InputSignal<Intl.DateTimeFormatOptions['weekday']>;\n pagedNavigation: WritableSignal<boolean>;\n isDateDisabled?: InputSignal<DateMatcher | undefined>;\n isDateUnavailable?: InputSignal<DateMatcher | undefined>;\n calendarLabel: InputSignal<string | undefined>;\n nextPage: InputSignal<((placeholder: DateValue) => DateValue) | undefined>;\n prevPage: InputSignal<((placeholder: DateValue) => DateValue) | undefined>;\n};\n\nexport type CalendarStateProps = {\n date: ModelSignal<DateValue | DateValue[] | undefined>;\n isDateDisabled?: DateMatcher;\n isDateUnavailable?: DateMatcher;\n};\n\nexport function calendarState(props: CalendarStateProps) {\n function isDateSelected(dateObj: DateValue): boolean {\n const currentValue = props.date(); // signal read\n\n if (Array.isArray(currentValue)) {\n return currentValue.some((d) => isSameDay(d, dateObj));\n } else if (!currentValue) {\n return false;\n } else {\n return isSameDay(currentValue, dateObj);\n }\n }\n\n const isInvalid = computed(() => {\n const currentValue = props.date();\n\n if (Array.isArray(currentValue)) {\n if (!currentValue.length) {\n return false;\n }\n for (const dateObj of currentValue) {\n if (props.isDateDisabled?.(dateObj)) return true;\n if (props.isDateUnavailable?.(dateObj)) return true;\n }\n } else {\n if (!currentValue) {\n return false;\n }\n if (props.isDateDisabled?.(currentValue)) return true;\n if (props.isDateUnavailable?.(currentValue)) return true;\n }\n return false;\n });\n\n return {\n isDateSelected,\n isInvalid\n };\n}\n\nfunction handleNextDisabled(lastPeriodInView: DateValue, nextPageFunc: (date: DateValue) => DateValue): DateValue {\n const firstPeriodOfNextPage = nextPageFunc(lastPeriodInView);\n const diff = firstPeriodOfNextPage.compare(lastPeriodInView);\n const duration: DateFields = {};\n if (diff >= 7) duration.day = 1;\n if (diff >= getDaysInMonth(lastPeriodInView)) duration.month = 1;\n return firstPeriodOfNextPage.set({ ...duration });\n}\n\nfunction handlePrevDisabled(firstPeriodInView: DateValue, prevPageFunc: (date: DateValue) => DateValue): DateValue {\n const lastPeriodOfPrevPage = prevPageFunc(firstPeriodInView);\n const diff = firstPeriodInView.compare(lastPeriodOfPrevPage);\n const duration: DateFields = {};\n if (diff >= 7) duration.day = 35;\n if (diff >= getDaysInMonth(firstPeriodInView)) duration.month = 13;\n return lastPeriodOfPrevPage.set({ ...duration });\n}\n\nfunction handleNextPage(date: DateValue, nextPageFunc: (date: DateValue) => DateValue): DateValue {\n return nextPageFunc(date);\n}\n\nfunction handlePrevPage(date: DateValue, prevPageFunc: (date: DateValue) => DateValue): DateValue {\n return prevPageFunc(date);\n}\n\nexport function calendar(props: CalendarProps) {\n const formatter = createFormatter(props.locale());\n\n const headingFormatOptions = computed(() => {\n const options: DateFormatterOptions = {\n calendar: props.placeholder().calendar.identifier\n };\n\n if (props.placeholder().calendar.identifier === 'gregory' && props.placeholder().era === 'BC') {\n options.era = 'short';\n }\n\n return options;\n });\n\n const month = signal<Month<DateValue>[]>(\n createMonths({\n dateObj: props.placeholder(),\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n })\n );\n\n const visibleView = computed(() => {\n return month().map((month) => month.value);\n });\n\n function isOutsideVisibleView(date: DateValue) {\n return !visibleView().some((month) => isEqualMonth(date, month));\n }\n\n const isNextButtonDisabled = (nextPageFunc?: (date: DateValue) => DateValue) => {\n if (!props.maxValue() || !month().length) return false;\n if (props.disabled()) return true;\n\n const lastPeriodInView = month()[month().length - 1].value;\n\n if (!nextPageFunc && !props.nextPage()) {\n const firstPeriodOfNextPage = lastPeriodInView.add({ months: 1 }).set({ day: 1 });\n return isAfter(firstPeriodOfNextPage, <DateValue>props.maxValue());\n }\n\n const firstPeriodOfNextPage = handleNextDisabled(lastPeriodInView, nextPageFunc || props.nextPage()!);\n return isAfter(firstPeriodOfNextPage, <DateValue>props.maxValue());\n };\n\n const isPrevButtonDisabled = (prevPageFunc?: (date: DateValue) => DateValue) => {\n if (!props.minValue() || !month().length) return false;\n if (props.disabled()) return true;\n const firstPeriodInView = month()[0].value;\n\n if (!prevPageFunc && !props.prevPage()) {\n const lastPeriodOfPrevPage = firstPeriodInView.subtract({ months: 1 }).set({ day: 35 });\n return isBefore(lastPeriodOfPrevPage, <DateValue>props.minValue());\n }\n\n const lastPeriodOfPrevPage = handlePrevDisabled(firstPeriodInView, prevPageFunc || props.prevPage()!);\n return isBefore(lastPeriodOfPrevPage, <DateValue>props.minValue());\n };\n\n const nextPage = (nextPageFunc?: (date: DateValue) => DateValue) => {\n const firstDate = month()[0].value;\n\n if (!nextPageFunc && !props.nextPage()) {\n const newDate = firstDate.add({ months: props.pagedNavigation() ? props.numberOfMonths() : 1 });\n\n const newMonth = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n });\n\n month.set(newMonth);\n props.placeholder.set(newMonth[0].value.set({ day: 1 }));\n\n return;\n }\n\n const newDate = handleNextPage(firstDate, nextPageFunc || props.nextPage()!);\n const newMonth = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n });\n\n month.set(newMonth);\n\n const duration: DateFields = {};\n\n if (!nextPageFunc) {\n const diff = newMonth[0].value.compare(firstDate);\n if (diff >= getDaysInMonth(firstDate)) {\n duration.day = 1;\n }\n\n if (diff >= 365) {\n duration.month = 1;\n }\n }\n\n props.placeholder.set(newMonth[0].value.set({ ...duration }));\n };\n\n const prevPage = (prevPageFunc?: (date: DateValue) => DateValue) => {\n const firstDate = month()[0].value;\n\n if (!prevPageFunc && !props.prevPage()) {\n const newDate = firstDate.subtract({ months: props.pagedNavigation() ? props.numberOfMonths() : 1 });\n\n const newMonth = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n });\n\n month.set(newMonth);\n\n props.placeholder.set(newMonth[0].value.set({ day: 1 }));\n return;\n }\n\n const newDate = handlePrevPage(firstDate, prevPageFunc || props.prevPage()!);\n const newMonth = createMonths({\n dateObj: newDate,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n });\n\n month.set(newMonth);\n\n const duration: DateFields = {};\n\n // Do not adjust the placeholder if the prevPageFunc is defined (overwrite)\n if (!prevPageFunc) {\n const diff = firstDate.compare(newMonth[0].value);\n if (diff >= getDaysInMonth(firstDate)) duration.day = 1;\n\n if (diff >= 365) duration.month = 1;\n }\n\n props.placeholder.set(newMonth[0].value.set({ ...duration }));\n };\n\n function isDateDisabled(dateObj: DateValue) {\n if (props.isDateDisabled?.()?.(dateObj) || props.disabled()) return true;\n if (props.maxValue() && isAfter(dateObj, <DateValue>props.maxValue())) return true;\n if (props.minValue() && isBefore(dateObj, <DateValue>props.minValue())) return true;\n return false;\n }\n\n const isDateUnavailable = (date: DateValue) => {\n return !!props.isDateUnavailable?.()?.(date);\n };\n\n const weekdays = computed(() => {\n if (!month().length) return [];\n return month()[0].weeks[0].map((date) => {\n return formatter.dayOfWeek(toDate(date), props.weekdayFormat());\n });\n });\n\n watch([props.placeholder], ([placeholder]) => {\n if (visibleView().some((month) => isEqualMonth(month, placeholder))) {\n return;\n }\n\n month.set(\n createMonths({\n dateObj: placeholder,\n weekStartsOn: props.weekStartsOn(),\n locale: props.locale(),\n fixedWeeks: props.fixedWeeks(),\n numberOfMonths: props.numberOfMonths()\n })\n );\n });\n\n watch(\n [props.locale, props.weekStartsOn, props.fixedWeeks, props.numberOfMonths],\n ([locale, weekStartsOn, fixedWeeks, numberOfMonths]) => {\n month.set(\n createMonths({\n dateObj: props.placeholder(),\n weekStartsOn: weekStartsOn,\n locale: locale,\n fixedWeeks: fixedWeeks,\n numberOfMonths: numberOfMonths\n })\n );\n }\n );\n\n const headingValue = computed(() => {\n if (!month().length) {\n return '';\n }\n\n if (props.locale() !== formatter.getLocale()) formatter.setLocale(props.locale());\n\n if (month().length === 1) {\n const _month = month()[0].value;\n return `${formatter.fullMonthAndYear(toDate(_month), headingFormatOptions())}`;\n }\n\n const startMonth = toDate(month()[0].value);\n const endMonth = toDate(month()[month().length - 1].value);\n\n const startMonthName = formatter.fullMonth(startMonth, headingFormatOptions());\n const endMonthName = formatter.fullMonth(endMonth, headingFormatOptions());\n const startMonthYear = formatter.fullYear(startMonth, headingFormatOptions());\n const endMonthYear = formatter.fullYear(endMonth, headingFormatOptions());\n\n return startMonthYear === endMonthYear\n ? `${startMonthName} - ${endMonthName} ${endMonthYear}`\n : `${startMonthName} ${startMonthYear} - ${endMonthName} ${endMonthYear}`;\n });\n\n const fullCalendarLabel = computed(() => `${props.calendarLabel() ?? 'Event Date'}, ${headingValue()}`);\n\n return {\n isDateDisabled,\n isDateUnavailable,\n isNextButtonDisabled,\n isPrevButtonDisabled,\n month,\n weekdays,\n visibleView,\n isOutsideVisibleView,\n formatter,\n nextPage,\n prevPage,\n headingValue,\n fullCalendarLabel\n };\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n AfterViewInit,\n booleanAttribute,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n inject,\n input,\n linkedSignal,\n model,\n signal\n} from '@angular/core';\nimport { DateValue, isEqualDay, isSameDay } from '@internationalized/date';\nimport { DateMatcher, Formatter, getDefaultDate, Month, watch } from '@radix-ng/primitives/core';\nimport { calendar, calendarState } from './calendar';\nimport { CALENDAR_ROOT_CONTEXT } from './сalendar-сontext.token';\n\n@Directive({\n selector: '[rdxCalendarRoot]',\n exportAs: 'rdxCalendarRoot',\n providers: [{ provide: CALENDAR_ROOT_CONTEXT, useExisting: forwardRef(() => RdxCalendarRootDirective) }],\n host: {\n role: 'application',\n '[attr.aria-label]': 'fullCalendarLabel()',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.data-readonly]': 'readonly() ? \"\" : undefined',\n '[attr.data-invalid]': 'isInvalid ? \"\" : undefined',\n '[attr.dir]': 'dir()'\n }\n})\nexport class RdxCalendarRootDirective implements AfterViewInit {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n /**\n * The controlled checked state of the calendar\n */\n readonly value = model<DateValue | DateValue[] | undefined>();\n\n /**\n * The default placeholder date\n */\n readonly defaultPlaceholder = model<DateValue>();\n\n readonly locale = input<string>('en');\n\n readonly defaultDate = getDefaultDate({\n defaultPlaceholder: this.defaultPlaceholder(),\n defaultValue: this.value(),\n locale: this.locale()\n });\n\n /**\n * The placeholder date, which is used to determine what month to display when no date is selected.\n * This updates as the user navigates the calendar and can be used to programmatically control the calendar view\n */\n readonly placeholder = model<DateValue>(this.defaultPlaceholder() ?? this.defaultDate.copy());\n\n readonly multiple = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether to always display 6 weeks in the calendar\n */\n readonly fixedWeeks = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether the calendar is disabled\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Whether to prevent the user from deselecting a date without selecting another date first\n */\n readonly preventDeselect = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * The day of the week to start the calendar on\n */\n readonly weekStartsOn = input<0 | 1 | 2 | 3 | 4 | 5 | 6>(1);\n\n /**\n * The number of months to display at once\n */\n readonly numberOfMonths = input<number>(1);\n\n /**\n * The reading direction of the calendar when applicable.\n */\n readonly dir = input<'ltr' | 'rtl'>('ltr');\n\n /**\n * The minimum date that can be selected\n */\n readonly minValue = input<DateValue>();\n\n /**\n * The maximum date that can be selected\n */\n readonly maxValue = input<DateValue>();\n\n /**\n * The format to use for the weekday strings provided via the weekdays slot prop\n */\n readonly weekdayFormat = input<Intl.DateTimeFormatOptions['weekday']>('narrow');\n\n /**\n * The accessible label for the calendar\n */\n readonly calendarLabel = input<string>();\n\n /**\n * Whether the calendar is readonly\n */\n readonly readonly = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * This property causes the previous and next buttons to navigate by the number of months displayed at once, rather than one month\n */\n readonly pagedNavigation = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n readonly propsNextPage = input<(placeholder: DateValue) => DateValue>();\n\n readonly propsPrevPage = input<(placeholder: DateValue) => DateValue>();\n\n /**\n * A function that returns whether a date is disabled\n */\n readonly isDateDisabled = input<DateMatcher>();\n\n /**\n * A function that returns whether a date is unavailable\n */\n readonly isDateUnavailable = input<DateMatcher>();\n\n readonly initialFocus = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n readonly months = model<Month<DateValue>[]>();\n\n /**\n * The days of the week\n */\n readonly weekDays = model<string[]>();\n\n protected readonly _fixedWeeks = linkedSignal(this.fixedWeeks);\n\n protected readonly _disabled = linkedSignal(this.disabled);\n\n protected readonly _pagedNavigation = linkedSignal(this.pagedNavigation);\n\n /**\n * @ignore\n */\n readonly headingValue = signal<string>('');\n\n /**\n * @ignore\n */\n readonly fullCalendarLabel = signal<string>('');\n\n /**\n * @ignore\n */\n nextPage: (nextPageFunc?: (date: DateValue) => DateValue) => void;\n\n /**\n * @ignore\n */\n prevPage: (nextPageFunc?: (date: DateValue) => DateValue) => void;\n\n /**\n * @ignore\n */\n isNextButtonDisabled: (nextPageFunc?: (date: DateValue) => DateValue) => boolean;\n\n /**\n * @ignore\n */\n isPrevButtonDisabled: (nextPageFunc?: (date: DateValue) => DateValue) => boolean;\n\n /**\n * @ignore\n */\n isDateSelected: DateMatcher;\n\n /**\n * @ignore\n */\n isInvalid: boolean;\n\n /**\n * @ignore\n */\n isOutsideVisibleView: (date: DateValue) => boolean;\n\n /**\n * @ignore\n */\n formatter: Formatter;\n\n /**\n * @ignore\n */\n currentElement!: HTMLElement;\n\n private readonly calendar = calendar({\n locale: this.locale,\n placeholder: this.placeholder,\n weekStartsOn: this.weekStartsOn,\n fixedWeeks: this._fixedWeeks,\n numberOfMonths: this.numberOfMonths,\n minValue: this.minValue,\n maxValue: this.maxValue,\n disabled: this._disabled,\n weekdayFormat: this.weekdayFormat,\n pagedNavigation: this._pagedNavigation,\n isDateDisabled: this.isDateDisabled,\n isDateUnavailable: this.isDateUnavailable,\n calendarLabel: this.calendarLabel,\n nextPage: this.propsNextPage,\n prevPage: this.propsPrevPage\n });\n\n constructor() {\n this.nextPage = this.calendar.nextPage;\n this.prevPage = this.calendar.prevPage;\n this.isOutsideVisibleView = this.calendar.isOutsideVisibleView;\n this.isNextButtonDisabled = this.calendar.isNextButtonDisabled;\n this.isPrevButtonDisabled = this.calendar.isPrevButtonDisabled;\n this.formatter = this.calendar.formatter;\n\n effect(() => {\n this.months.set(this.calendar.month());\n\n this.weekDays.set(this.calendar.weekdays());\n\n this.fullCalendarLabel.set(this.calendar.fullCalendarLabel());\n\n this.headingValue.set(this.calendar.headingValue());\n\n const { isInvalid, isDateSelected } = calendarState({\n date: this.value,\n isDateDisabled: this.isDateDisabled(),\n isDateUnavailable: this.isDateUnavailable()\n });\n\n this.isDateSelected = isDateSelected;\n this.isInvalid = isInvalid();\n });\n\n watch([this.value], ([_modelValue]) => {\n if (Array.isArray(_modelValue) && _modelValue.length) {\n const lastValue = _modelValue[_modelValue.length - 1];\n if (lastValue && !isEqualDay(this.placeholder(), <DateValue>lastValue)) {\n this.onPlaceholderChange(<DateValue>lastValue);\n }\n } else if (!Array.isArray(_modelValue) && _modelValue && !isEqualDay(this.placeholder(), _modelValue)) {\n this.onPlaceholderChange(_modelValue);\n }\n });\n }\n\n ngAfterViewInit() {\n this.currentElement = this.elementRef.nativeElement;\n }\n\n /**\n * @ignore\n */\n onPlaceholderChange(value: DateValue) {\n this.placeholder.set(value.copy());\n }\n\n /**\n * @ignore\n */\n onDateChange(date: DateValue) {\n const currentValue = this.value();\n\n if (!this.multiple()) {\n // for single selection\n if (!this.value()) {\n this.value.set(date.copy());\n return;\n }\n\n if (!this.preventDeselect() && isEqualDay(this.value() as DateValue, date)) {\n this.placeholder.set(date.copy());\n this.value.set(undefined);\n } else {\n this.value.set(date.copy());\n }\n } else if (!this.value()) {\n // for multiple selection\n this.value.set([date.copy()]);\n } else if (Array.isArray(currentValue)) {\n const index = currentValue.findIndex((d: DateValue) => isSameDay(d, date));\n if (index === -1) {\n this.value.set([...currentValue, date.copy()]);\n } else if (!this.preventDeselect()) {\n const next = currentValue.filter((d: DateValue) => !isSameDay(d, date));\n if (next.length === 0) {\n this.placeholder.set(date.copy());\n this.value.set(undefined);\n return;\n }\n this.value.set(next.map((d) => d.copy()));\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nexport { RdxCalendarCellTriggerDirective } from './src/calendar-cell-trigger.directive';\nexport { RdxCalendarCellDirective } from './src/calendar-cell.directive';\nexport { RdxCalendarGridBodyDirective } from './src/calendar-grid-body.directive';\nexport { RdxCalendarGridHeadDirective } from './src/calendar-grid-head.directive';\nexport { RdxCalendarGridRowDirective } from './src/calendar-grid-row.directive';\nexport { RdxCalendarGridDirective } from './src/calendar-grid.directive';\nexport { RdxCalendarHeadCellDirective } from './src/calendar-head-cell.directive';\nexport { RdxCalendarHeaderDirective } from './src/calendar-header.directive';\nexport { RdxCalendarHeadingDirective } from './src/calendar-heading.directive';\nexport { RdxCalendarNextDirective } from './src/calendar-next.directive';\nexport { RdxCalendarPrevDirective } from './src/calendar-prev.directive';\nexport { RdxCalendarRootDirective } from './src/calendar-root.directive';\n\nimport { RdxCalendarCellTriggerDirective } from './src/calendar-cell-trigger.directive';\nimport { RdxCalendarCellDirective } from './src/calendar-cell.directive';\nimport { RdxCalendarGridBodyDirective } from './src/calendar-grid-body.directive';\nimport { RdxCalendarGridHeadDirective } from './src/calendar-grid-head.directive';\nimport { RdxCalendarGridRowDirective } from './src/calendar-grid-row.directive';\nimport { RdxCalendarGridDirective } from './src/calendar-grid.directive';\nimport { RdxCalendarHeadCellDirective } from './src/calendar-head-cell.directive';\nimport { RdxCalendarHeaderDirective } from './src/calendar-header.directive';\nimport { RdxCalendarHeadingDirective } from './src/calendar-heading.directive';\nimport { RdxCalendarNextDirective } from './src/calendar-next.directive';\nimport { RdxCalendarPrevDirective } from './src/calendar-prev.directive';\nimport { RdxCalendarRootDirective } from './src/calendar-root.directive';\n\nconst _imports = [\n RdxCalendarCellTriggerDirective,\n RdxCalendarCellDirective,\n RdxCalendarGridBodyDirective,\n RdxCalendarGridHeadDirective,\n RdxCalendarGridRowDirective,\n RdxCalendarGridDirective,\n RdxCalendarHeadCellDirective,\n RdxCalendarHeaderDirective,\n RdxCalendarPrevDirective,\n RdxCalendarRootDirective,\n RdxCalendarHeadingDirective,\n RdxCalendarNextDirective\n];\n\n@NgModule({\n imports: [..._imports],\n exports: [..._imports]\n})\nexport class RdxCalendarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|