ngxsmk-datepicker 3.0.3 → 3.0.4
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/README.md +81 -87
- package/fesm2022/ngxsmk-datepicker.mjs +1521 -1094
- package/package.json +1 -1
- package/types/ngxsmk-datepicker.d.ts +110 -7
- package/CHANGELOG.md +0 -1338
- package/LICENSE +0 -21
- package/MIGRATION.md +0 -1818
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ngxsmk-datepicker",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.4",
|
|
4
4
|
"description": "Lightweight, accessible date and range picker for Angular 17+. Standalone component, Signals, SSR and zoneless-ready, Luxon-based i18n and timezones.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Sachin Dilshan",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { EventEmitter, ElementRef, AfterViewInit, OnDestroy, TemplateRef, InjectionToken, EffectRef, Signal, OnInit, OnChanges, SimpleChanges } from '@angular/core';
|
|
3
|
-
import { ControlValueAccessor, NgControl } from '@angular/forms';
|
|
3
|
+
import { ControlValueAccessor, NgControl, ValidatorFn } from '@angular/forms';
|
|
4
4
|
import { Subject } from 'rxjs';
|
|
5
5
|
|
|
6
6
|
declare function getStartOfDay(d: Date): Date;
|
|
@@ -541,7 +541,7 @@ declare class NgxsmkDatepickerContentComponent {
|
|
|
541
541
|
event: TouchEvent;
|
|
542
542
|
day: Date | null;
|
|
543
543
|
}>;
|
|
544
|
-
viewModeChange: EventEmitter<"year" | "
|
|
544
|
+
viewModeChange: EventEmitter<"year" | "decade" | "month" | "timeline" | "time-slider">;
|
|
545
545
|
changeYear: EventEmitter<number>;
|
|
546
546
|
yearClick: EventEmitter<number>;
|
|
547
547
|
changeDecade: EventEmitter<number>;
|
|
@@ -909,6 +909,7 @@ declare class NgxsmkDatepickerComponent implements OnInit, OnChanges, OnDestroy,
|
|
|
909
909
|
/** Emits when asyncDateFilter rejects; the previous disabled set is kept. */
|
|
910
910
|
readonly asyncDateFilterError: i0.OutputEmitterRef<unknown>;
|
|
911
911
|
readonly showRanges: i0.InputSignal<boolean>;
|
|
912
|
+
readonly showPresets: i0.InputSignal<boolean>;
|
|
912
913
|
showTime: boolean;
|
|
913
914
|
timeOnly: boolean;
|
|
914
915
|
readonly timeRangeMode: i0.InputSignal<boolean>;
|
|
@@ -919,8 +920,15 @@ declare class NgxsmkDatepickerComponent implements OnInit, OnChanges, OnDestroy,
|
|
|
919
920
|
showSeconds: boolean;
|
|
920
921
|
holidayProvider: HolidayProvider | null;
|
|
921
922
|
disableHolidays: boolean;
|
|
922
|
-
|
|
923
|
-
|
|
923
|
+
private _disabledDates;
|
|
924
|
+
set disabledDates(val: (string | Date)[] | null | undefined);
|
|
925
|
+
get disabledDates(): (string | Date)[];
|
|
926
|
+
private _disabledRanges;
|
|
927
|
+
set disabledRanges(val: Array<{
|
|
928
|
+
start: Date | string;
|
|
929
|
+
end: Date | string;
|
|
930
|
+
}> | null | undefined);
|
|
931
|
+
get disabledRanges(): Array<{
|
|
924
932
|
start: Date | string;
|
|
925
933
|
end: Date | string;
|
|
926
934
|
}>;
|
|
@@ -1478,6 +1486,9 @@ declare class NgxsmkDatepickerComponent implements OnInit, OnChanges, OnDestroy,
|
|
|
1478
1486
|
private _cachedIsHolidayMemo;
|
|
1479
1487
|
private _cachedGetHolidayLabelMemo;
|
|
1480
1488
|
private _memoDependencies;
|
|
1489
|
+
private _disabledDatesTimestamps;
|
|
1490
|
+
private _parsedDisabledRanges;
|
|
1491
|
+
private _syncDisabledDatesCache;
|
|
1481
1492
|
private _updateMemoSignals;
|
|
1482
1493
|
private passiveTouchListeners;
|
|
1483
1494
|
get isInlineMode(): boolean;
|
|
@@ -1961,6 +1972,7 @@ declare class NgxsmkDatepickerComponent implements OnInit, OnChanges, OnDestroy,
|
|
|
1961
1972
|
private applyTypedDate;
|
|
1962
1973
|
private generateTimeOptions;
|
|
1963
1974
|
private generateLocaleData;
|
|
1975
|
+
private _getDefaultPresets;
|
|
1964
1976
|
private updateRangesArray;
|
|
1965
1977
|
setTimezone(tz: string): void;
|
|
1966
1978
|
checkAndEmitInvalidRange(start: Date, end: Date): boolean;
|
|
@@ -2239,7 +2251,7 @@ declare class NgxsmkDatepickerComponent implements OnInit, OnChanges, OnDestroy,
|
|
|
2239
2251
|
private isIonicEnvironment;
|
|
2240
2252
|
private removeFocusTrap;
|
|
2241
2253
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgxsmkDatepickerComponent, never>;
|
|
2242
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NgxsmkDatepickerComponent, "ngxsmk-datepicker", never, { "mode": { "alias": "mode"; "required": false; }; "calendarViewMode": { "alias": "calendarViewMode"; "required": false; }; "isInvalidDate": { "alias": "isInvalidDate"; "required": false; }; "asyncDateFilter": { "alias": "asyncDateFilter"; "required": false; }; "showRanges": { "alias": "showRanges"; "required": false; "isSignal": true; }; "showTime": { "alias": "showTime"; "required": false; }; "timeOnly": { "alias": "timeOnly"; "required": false; }; "timeRangeMode": { "alias": "timeRangeMode"; "required": false; "isSignal": true; }; "showCalendarButton": { "alias": "showCalendarButton"; "required": false; }; "minuteInterval": { "alias": "minuteInterval"; "required": false; }; "use24Hour": { "alias": "use24Hour"; "required": false; }; "secondInterval": { "alias": "secondInterval"; "required": false; }; "showSeconds": { "alias": "showSeconds"; "required": false; }; "holidayProvider": { "alias": "holidayProvider"; "required": false; }; "disableHolidays": { "alias": "disableHolidays"; "required": false; }; "disabledDates": { "alias": "disabledDates"; "required": false; }; "disabledRanges": { "alias": "disabledRanges"; "required": false; }; "recurringPattern": { "alias": "recurringPattern"; "required": false; }; "dateTemplate": { "alias": "dateTemplate"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; }; "inline": { "alias": "inline"; "required": false; }; "responsive": { "alias": "responsive"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; "name": { "alias": "name"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "translations": { "alias": "translations"; "required": false; }; "translationService": { "alias": "translationService"; "required": false; }; "clearLabel": { "alias": "clearLabel"; "required": false; }; "closeLabel": { "alias": "closeLabel"; "required": false; }; "prevMonthAriaLabel": { "alias": "prevMonthAriaLabel"; "required": false; }; "nextMonthAriaLabel": { "alias": "nextMonthAriaLabel"; "required": false; }; "clearAriaLabel": { "alias": "clearAriaLabel"; "required": false; }; "closeAriaLabel": { "alias": "closeAriaLabel"; "required": false; }; "weekStart": { "alias": "weekStart"; "required": false; }; "yearRange": { "alias": "yearRange"; "required": false; }; "timezone": { "alias": "timezone"; "required": false; }; "showOtherMonths": { "alias": "showOtherMonths"; "required": false; }; "hooks": { "alias": "hooks"; "required": false; }; "enableKeyboardShortcuts": { "alias": "enableKeyboardShortcuts"; "required": false; }; "customShortcuts": { "alias": "customShortcuts"; "required": false; }; "autoApplyClose": { "alias": "autoApplyClose"; "required": false; "isSignal": true; }; "allowSameDay": { "alias": "allowSameDay"; "required": false; "isSignal": true; }; "displayFormat": { "alias": "displayFormat"; "required": false; }; "allowTyping": { "alias": "allowTyping"; "required": false; }; "inputMask": { "alias": "inputMask"; "required": false; }; "enableNaturalLanguage": { "alias": "enableNaturalLanguage"; "required": false; }; "naturalLanguagePreviewTemplate": { "alias": "naturalLanguagePreviewTemplate"; "required": false; "isSignal": true; }; "calendars": { "alias": "calendars"; "required": false; }; "rangePresetFactory": { "alias": "rangePresetFactory"; "required": false; }; "showTimezoneSelector": { "alias": "showTimezoneSelector"; "required": false; "isSignal": true; }; "defaultTimezone": { "alias": "defaultTimezone"; "required": false; }; "calendarCount": { "alias": "calendarCount"; "required": false; }; "calendarLayout": { "alias": "calendarLayout"; "required": false; }; "changeActiveMonthOnSelection": { "alias": "changeActiveMonthOnSelection"; "required": false; }; "showWeekNumbers": { "alias": "showWeekNumbers"; "required": false; }; "weekNumberLabel": { "alias": "weekNumberLabel"; "required": false; }; "secondaryCalendar": { "alias": "secondaryCalendar"; "required": false; }; "dayMetadata": { "alias": "dayMetadata"; "required": false; }; "calendarHeaderTemplate": { "alias": "calendarHeaderTemplate"; "required": false; }; "calendarFooterTemplate": { "alias": "calendarFooterTemplate"; "required": false; }; "defaultMonthOffset": { "alias": "defaultMonthOffset"; "required": false; }; "syncScroll": { "alias": "syncScroll"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; }; "useNativePicker": { "alias": "useNativePicker"; "required": false; }; "enableHapticFeedback": { "alias": "enableHapticFeedback"; "required": false; "isSignal": true; }; "mobileModalStyle": { "alias": "mobileModalStyle"; "required": false; }; "mobileTimePickerStyle": { "alias": "mobileTimePickerStyle"; "required": false; }; "enablePullToRefresh": { "alias": "enablePullToRefresh"; "required": false; "isSignal": true; }; "mobileTheme": { "alias": "mobileTheme"; "required": false; "isSignal": true; }; "enableVoiceInput": { "alias": "enableVoiceInput"; "required": false; }; "autoDetectMobile": { "alias": "autoDetectMobile"; "required": false; }; "disableFocusTrap": { "alias": "disableFocusTrap"; "required": false; "isSignal": true; }; "appendToBody": { "alias": "appendToBody"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; }; "field": { "alias": "field"; "required": false; }; "startAt": { "alias": "startAt"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "dateFormatPattern": { "alias": "dateFormatPattern"; "required": false; }; "animationConfig": { "alias": "animationConfig"; "required": false; }; "rtl": { "alias": "rtl"; "required": false; }; "classes": { "alias": "classes"; "required": false; "isSignal": true; }; "disabledState": { "alias": "disabledState"; "required": false; }; "required": { "alias": "required"; "required": false; }; "errorState": { "alias": "errorState"; "required": false; }; "userAriaDescribedBy": { "alias": "userAriaDescribedBy"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "ranges": { "alias": "ranges"; "required": false; }; "comparisonRange": { "alias": "comparisonRange"; "required": false; "isSignal": true; }; }, { "asyncDateFilterLoading": "asyncDateFilterLoading"; "asyncDateFilterError": "asyncDateFilterError"; "naturalLanguageResolved": "naturalLanguageResolved"; "invalidRange": "invalidRange"; "timezoneChange": "timezoneChange"; "valueChange": "valueChange"; "action": "action"; "validationError": "validationError"; }, never, never, true, never>;
|
|
2254
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgxsmkDatepickerComponent, "ngxsmk-datepicker", never, { "mode": { "alias": "mode"; "required": false; }; "calendarViewMode": { "alias": "calendarViewMode"; "required": false; }; "isInvalidDate": { "alias": "isInvalidDate"; "required": false; }; "asyncDateFilter": { "alias": "asyncDateFilter"; "required": false; }; "showRanges": { "alias": "showRanges"; "required": false; "isSignal": true; }; "showPresets": { "alias": "showPresets"; "required": false; "isSignal": true; }; "showTime": { "alias": "showTime"; "required": false; }; "timeOnly": { "alias": "timeOnly"; "required": false; }; "timeRangeMode": { "alias": "timeRangeMode"; "required": false; "isSignal": true; }; "showCalendarButton": { "alias": "showCalendarButton"; "required": false; }; "minuteInterval": { "alias": "minuteInterval"; "required": false; }; "use24Hour": { "alias": "use24Hour"; "required": false; }; "secondInterval": { "alias": "secondInterval"; "required": false; }; "showSeconds": { "alias": "showSeconds"; "required": false; }; "holidayProvider": { "alias": "holidayProvider"; "required": false; }; "disableHolidays": { "alias": "disableHolidays"; "required": false; }; "disabledDates": { "alias": "disabledDates"; "required": false; }; "disabledRanges": { "alias": "disabledRanges"; "required": false; }; "recurringPattern": { "alias": "recurringPattern"; "required": false; }; "dateTemplate": { "alias": "dateTemplate"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; }; "inline": { "alias": "inline"; "required": false; }; "responsive": { "alias": "responsive"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; "name": { "alias": "name"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "translations": { "alias": "translations"; "required": false; }; "translationService": { "alias": "translationService"; "required": false; }; "clearLabel": { "alias": "clearLabel"; "required": false; }; "closeLabel": { "alias": "closeLabel"; "required": false; }; "prevMonthAriaLabel": { "alias": "prevMonthAriaLabel"; "required": false; }; "nextMonthAriaLabel": { "alias": "nextMonthAriaLabel"; "required": false; }; "clearAriaLabel": { "alias": "clearAriaLabel"; "required": false; }; "closeAriaLabel": { "alias": "closeAriaLabel"; "required": false; }; "weekStart": { "alias": "weekStart"; "required": false; }; "yearRange": { "alias": "yearRange"; "required": false; }; "timezone": { "alias": "timezone"; "required": false; }; "showOtherMonths": { "alias": "showOtherMonths"; "required": false; }; "hooks": { "alias": "hooks"; "required": false; }; "enableKeyboardShortcuts": { "alias": "enableKeyboardShortcuts"; "required": false; }; "customShortcuts": { "alias": "customShortcuts"; "required": false; }; "autoApplyClose": { "alias": "autoApplyClose"; "required": false; "isSignal": true; }; "allowSameDay": { "alias": "allowSameDay"; "required": false; "isSignal": true; }; "displayFormat": { "alias": "displayFormat"; "required": false; }; "allowTyping": { "alias": "allowTyping"; "required": false; }; "inputMask": { "alias": "inputMask"; "required": false; }; "enableNaturalLanguage": { "alias": "enableNaturalLanguage"; "required": false; }; "naturalLanguagePreviewTemplate": { "alias": "naturalLanguagePreviewTemplate"; "required": false; "isSignal": true; }; "calendars": { "alias": "calendars"; "required": false; }; "rangePresetFactory": { "alias": "rangePresetFactory"; "required": false; }; "showTimezoneSelector": { "alias": "showTimezoneSelector"; "required": false; "isSignal": true; }; "defaultTimezone": { "alias": "defaultTimezone"; "required": false; }; "calendarCount": { "alias": "calendarCount"; "required": false; }; "calendarLayout": { "alias": "calendarLayout"; "required": false; }; "changeActiveMonthOnSelection": { "alias": "changeActiveMonthOnSelection"; "required": false; }; "showWeekNumbers": { "alias": "showWeekNumbers"; "required": false; }; "weekNumberLabel": { "alias": "weekNumberLabel"; "required": false; }; "secondaryCalendar": { "alias": "secondaryCalendar"; "required": false; }; "dayMetadata": { "alias": "dayMetadata"; "required": false; }; "calendarHeaderTemplate": { "alias": "calendarHeaderTemplate"; "required": false; }; "calendarFooterTemplate": { "alias": "calendarFooterTemplate"; "required": false; }; "defaultMonthOffset": { "alias": "defaultMonthOffset"; "required": false; }; "syncScroll": { "alias": "syncScroll"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; }; "useNativePicker": { "alias": "useNativePicker"; "required": false; }; "enableHapticFeedback": { "alias": "enableHapticFeedback"; "required": false; "isSignal": true; }; "mobileModalStyle": { "alias": "mobileModalStyle"; "required": false; }; "mobileTimePickerStyle": { "alias": "mobileTimePickerStyle"; "required": false; }; "enablePullToRefresh": { "alias": "enablePullToRefresh"; "required": false; "isSignal": true; }; "mobileTheme": { "alias": "mobileTheme"; "required": false; "isSignal": true; }; "enableVoiceInput": { "alias": "enableVoiceInput"; "required": false; }; "autoDetectMobile": { "alias": "autoDetectMobile"; "required": false; }; "disableFocusTrap": { "alias": "disableFocusTrap"; "required": false; "isSignal": true; }; "appendToBody": { "alias": "appendToBody"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; }; "field": { "alias": "field"; "required": false; }; "startAt": { "alias": "startAt"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "dateFormatPattern": { "alias": "dateFormatPattern"; "required": false; }; "animationConfig": { "alias": "animationConfig"; "required": false; }; "rtl": { "alias": "rtl"; "required": false; }; "classes": { "alias": "classes"; "required": false; "isSignal": true; }; "disabledState": { "alias": "disabledState"; "required": false; }; "required": { "alias": "required"; "required": false; }; "errorState": { "alias": "errorState"; "required": false; }; "userAriaDescribedBy": { "alias": "userAriaDescribedBy"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "ranges": { "alias": "ranges"; "required": false; }; "comparisonRange": { "alias": "comparisonRange"; "required": false; "isSignal": true; }; }, { "asyncDateFilterLoading": "asyncDateFilterLoading"; "asyncDateFilterError": "asyncDateFilterError"; "naturalLanguageResolved": "naturalLanguageResolved"; "invalidRange": "invalidRange"; "timezoneChange": "timezoneChange"; "valueChange": "valueChange"; "action": "action"; "validationError": "validationError"; }, never, never, true, never>;
|
|
2243
2255
|
static ngAcceptInputType_changeActiveMonthOnSelection: unknown;
|
|
2244
2256
|
static ngAcceptInputType_showWeekNumbers: unknown;
|
|
2245
2257
|
}
|
|
@@ -2689,5 +2701,96 @@ declare class HapticFeedbackService {
|
|
|
2689
2701
|
static ɵprov: i0.ɵɵInjectableDeclaration<HapticFeedbackService>;
|
|
2690
2702
|
}
|
|
2691
2703
|
|
|
2692
|
-
|
|
2693
|
-
|
|
2704
|
+
interface OverlayPositionOptions {
|
|
2705
|
+
alignment?: 'left' | 'right' | 'center';
|
|
2706
|
+
offset?: number;
|
|
2707
|
+
flipOnCollision?: boolean;
|
|
2708
|
+
minWidth?: number;
|
|
2709
|
+
viewportWidth?: number;
|
|
2710
|
+
viewportHeight?: number;
|
|
2711
|
+
}
|
|
2712
|
+
interface CalculatedOverlayPosition {
|
|
2713
|
+
top: number;
|
|
2714
|
+
left: number;
|
|
2715
|
+
placement: 'bottom' | 'top';
|
|
2716
|
+
width?: number;
|
|
2717
|
+
}
|
|
2718
|
+
declare class DatepickerOverlayService {
|
|
2719
|
+
private readonly platformId;
|
|
2720
|
+
private readonly isBrowser;
|
|
2721
|
+
/**
|
|
2722
|
+
* Calculates the best position for an overlay popover relative to a trigger anchor.
|
|
2723
|
+
* Handles viewport collision detection and automatic top/bottom flip.
|
|
2724
|
+
*/
|
|
2725
|
+
calculatePosition(anchor: HTMLElement | DOMRect, popover: HTMLElement | {
|
|
2726
|
+
width: number;
|
|
2727
|
+
height: number;
|
|
2728
|
+
}, options?: OverlayPositionOptions): CalculatedOverlayPosition;
|
|
2729
|
+
/**
|
|
2730
|
+
* Applies calculated position styles to a target popover element.
|
|
2731
|
+
*/
|
|
2732
|
+
applyPosition(popover: HTMLElement, position: CalculatedOverlayPosition, appendToBody?: boolean): void;
|
|
2733
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DatepickerOverlayService, never>;
|
|
2734
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DatepickerOverlayService>;
|
|
2735
|
+
}
|
|
2736
|
+
|
|
2737
|
+
type DynamicDateInput = Date | string | null | undefined | (() => Date | string | null | undefined);
|
|
2738
|
+
/**
|
|
2739
|
+
* Validates that the selected date or date range is on or after the specified minimum date.
|
|
2740
|
+
*
|
|
2741
|
+
* @param minDate - The minimum date bound, as a Date, string, or function returning a Date/string.
|
|
2742
|
+
* @returns An Angular ValidatorFn.
|
|
2743
|
+
*
|
|
2744
|
+
* @example
|
|
2745
|
+
* ```typescript
|
|
2746
|
+
* const control = new FormControl(new Date(), ngxsmkMinDateValidator(new Date(2025, 0, 1)));
|
|
2747
|
+
* ```
|
|
2748
|
+
*/
|
|
2749
|
+
declare function ngxsmkMinDateValidator(minDate: DynamicDateInput): ValidatorFn;
|
|
2750
|
+
/**
|
|
2751
|
+
* Validates that the selected date or date range is on or before the specified maximum date.
|
|
2752
|
+
*
|
|
2753
|
+
* @param maxDate - The maximum date bound, as a Date, string, or function returning a Date/string.
|
|
2754
|
+
* @returns An Angular ValidatorFn.
|
|
2755
|
+
*
|
|
2756
|
+
* @example
|
|
2757
|
+
* ```typescript
|
|
2758
|
+
* const control = new FormControl(new Date(), ngxsmkMaxDateValidator(new Date(2026, 11, 31)));
|
|
2759
|
+
* ```
|
|
2760
|
+
*/
|
|
2761
|
+
declare function ngxsmkMaxDateValidator(maxDate: DynamicDateInput): ValidatorFn;
|
|
2762
|
+
interface DateRangeValidatorOptions {
|
|
2763
|
+
/** Minimum number of days in the range (inclusive). */
|
|
2764
|
+
minDays?: number;
|
|
2765
|
+
/** Maximum number of days in the range (inclusive). */
|
|
2766
|
+
maxDays?: number;
|
|
2767
|
+
/** When true, validates that both start and end dates are selected. */
|
|
2768
|
+
requireBoth?: boolean;
|
|
2769
|
+
}
|
|
2770
|
+
/**
|
|
2771
|
+
* Validates range constraints (minimum duration, maximum duration, and complete range requirements).
|
|
2772
|
+
*
|
|
2773
|
+
* @param options - Configuration options for range validation.
|
|
2774
|
+
* @returns An Angular ValidatorFn.
|
|
2775
|
+
*
|
|
2776
|
+
* @example
|
|
2777
|
+
* ```typescript
|
|
2778
|
+
* const control = new FormControl(null, ngxsmkDateRangeValidator({ minDays: 2, maxDays: 14, requireBoth: true }));
|
|
2779
|
+
* ```
|
|
2780
|
+
*/
|
|
2781
|
+
declare function ngxsmkDateRangeValidator(options?: DateRangeValidatorOptions): ValidatorFn;
|
|
2782
|
+
/**
|
|
2783
|
+
* Validates that the selected date (or dates within a range/multiple selection) does not fall on a blocked or disabled date.
|
|
2784
|
+
*
|
|
2785
|
+
* @param blocked - Array of blocked dates/strings, or a predicate function returning true if date is blocked.
|
|
2786
|
+
* @returns An Angular ValidatorFn.
|
|
2787
|
+
*
|
|
2788
|
+
* @example
|
|
2789
|
+
* ```typescript
|
|
2790
|
+
* const control = new FormControl(null, ngxsmkBlockedDatesValidator([new Date(2026, 11, 25)]));
|
|
2791
|
+
* ```
|
|
2792
|
+
*/
|
|
2793
|
+
declare function ngxsmkBlockedDatesValidator(blocked: (Date | string)[] | ((date: Date) => boolean)): ValidatorFn;
|
|
2794
|
+
|
|
2795
|
+
export { AriaLiveService, CustomDateFormatService, CustomSelectComponent, DATEPICKER_CONFIG, DEFAULT_ANIMATION_CONFIG, DEFAULT_DATEPICKER_CONFIG, DatePresetsService, DatepickerOverlayService, DefaultTranslationService, FieldSyncService, FocusTrapService, HapticFeedbackService, LocaleRegistryService, NativeDateAdapter, NgxsmkDatepickerComponent, NgxsmkDatepickerModule, ThemeBuilderService, TranslationRegistryService, addMonths, convertTimezone, exportToCsv, exportToIcs, exportToJson, formatDateInCalendarSystem, formatDateWithTimezone, formatLocaleNumber, generateDecadeGrid, generateMonthOptions, generateTimeOptions, generateWeekDays, generateYearGrid, generateYearOptions, get24Hour, getEndOfDay, getEndOfMonth, getFirstDayOfWeek, getISOWeekNumber, getSecondaryDayLabel, getStartOfDay, getStartOfMonth, getTimezoneOffset, importFromCsv, importFromIcs, importFromJson, isSameDay, isValidTimezone, ngxsmkBlockedDatesValidator, ngxsmkDateRangeValidator, ngxsmkMaxDateValidator, ngxsmkMinDateValidator, normalizeDate, parseDateWithTimezone, processDateRanges, provideDatepickerConfig, subtractDays, update12HourState };
|
|
2796
|
+
export type { AnimationConfig, CalculatedOverlayPosition, CalendarSystem, DateAdapter, DateFormatHook, DateInput, DatePreset, DateRange, DateRangeValidatorOptions, DatepickerConfig, DatepickerHooks, DatepickerTheme, DatepickerTranslations, DatepickerValue, DayCellRenderHook, DayMetadata, DayMetadataProvider, DynamicDateInput, EventHook, ExportOptions, HolidayProvider, KeyboardShortcutContext, KeyboardShortcutHelp, KeyboardShortcutHook, LocaleData, OverlayPositionOptions, PartialDatepickerTranslations, SignalFormField, SignalFormFieldConfig, TranslationService, ValidationHook };
|