@i-cell/ids-angular 0.1.7 → 0.1.8
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/public-api.d.ts +1 -1
- package/core/utils/date.d.ts +24 -0
- package/core/utils/number.d.ts +4 -0
- package/datepicker/calendar/calendar-page.d.ts +26 -0
- package/datepicker/calendar/calendar.component.d.ts +40 -0
- package/datepicker/datepicker-defaults.d.ts +7 -0
- package/datepicker/datepicker-intl.d.ts +22 -0
- package/datepicker/datepicker-positions.d.ts +2 -0
- package/datepicker/datepicker.directive.d.ts +58 -0
- package/datepicker/day-selector/day-selector.component.d.ts +26 -0
- package/datepicker/index.d.ts +5 -0
- package/datepicker/month-selector/month-selector.component.d.ts +20 -0
- package/datepicker/public-api.d.ts +7 -0
- package/datepicker/tokens/date-formatter.d.ts +3 -0
- package/datepicker/tokens/date-parser.d.ts +3 -0
- package/datepicker/tokens/datepicker-view.d.ts +6 -0
- package/datepicker/trigger/datepicker-trigger.component.d.ts +12 -0
- package/datepicker/year-selector/year-selector.component.d.ts +20 -0
- package/fesm2022/i-cell-ids-angular-core.mjs +156 -13
- package/fesm2022/i-cell-ids-angular-core.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-datepicker.mjs +860 -0
- package/fesm2022/i-cell-ids-angular-datepicker.mjs.map +1 -0
- package/fesm2022/i-cell-ids-angular-forms.mjs +79 -66
- package/fesm2022/i-cell-ids-angular-forms.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-select.mjs +8 -63
- package/fesm2022/i-cell-ids-angular-select.mjs.map +1 -1
- package/forms/components/form-field/form-field-control.d.ts +41 -17
- package/forms/components/form-field/form-field.component.d.ts +2 -1
- package/forms/components/form-field/tokens/form-field-control.d.ts +1 -1
- package/forms/components/input/input.directive.d.ts +7 -36
- package/package.json +10 -6
- package/select/select.component.d.ts +8 -37
- package/core/utils/even-odd.d.ts +0 -2
package/core/public-api.d.ts
CHANGED
|
@@ -12,6 +12,6 @@ export * from './utils/class-prefix';
|
|
|
12
12
|
export * from './utils/coercion';
|
|
13
13
|
export * from './utils/compare';
|
|
14
14
|
export * from './utils/date';
|
|
15
|
-
export * from './utils/
|
|
15
|
+
export * from './utils/number';
|
|
16
16
|
export * from './utils/fallback-value';
|
|
17
17
|
export * from './utils/string';
|
package/core/utils/date.d.ts
CHANGED
|
@@ -1 +1,25 @@
|
|
|
1
|
+
export declare function isDate(value: unknown): value is Date;
|
|
1
2
|
export declare function isValidDate(value: unknown): value is Date;
|
|
3
|
+
export declare function getValidDateOrNull(value: unknown): Date | null;
|
|
4
|
+
export declare function equalDates(date1: Date | null, date2: Date | null): boolean;
|
|
5
|
+
export declare function compareDates(date1: Date, date2: Date): number;
|
|
6
|
+
export declare function clampDate(date: Date, min: Date | null, max: Date | null): Date;
|
|
7
|
+
export declare function invalidDate(): Date;
|
|
8
|
+
export declare function cloneDate(date: Date): Date;
|
|
9
|
+
export declare function parseDate(value: string, utc?: boolean): Date | null;
|
|
10
|
+
export declare function deserializeDate(value: unknown): Date | null;
|
|
11
|
+
export declare function formatDate(date: Date): string;
|
|
12
|
+
export declare function formatUTCDate(date: Date): string;
|
|
13
|
+
export declare function addDays(date: Date, days: number): Date;
|
|
14
|
+
export declare function addMonths(date: Date, months: number): Date;
|
|
15
|
+
export declare function addYears(date: Date, years: number): Date;
|
|
16
|
+
export declare function startOfDay(date: Date): Date;
|
|
17
|
+
export declare function endOfDay(date: Date): Date;
|
|
18
|
+
export declare function startOfWeek(weekDay: Date, offset: number): Date;
|
|
19
|
+
export declare function endOfWeek(weekDay: Date, offset: number): Date;
|
|
20
|
+
export declare function startOfMonth(date: Date): Date;
|
|
21
|
+
export declare function endOfMonth(date: Date): Date;
|
|
22
|
+
export declare function startOfYear(date: Date): Date;
|
|
23
|
+
export declare function endOfYear(date: Date): Date;
|
|
24
|
+
export declare function getDatesBetween(startDate: Date, endDate: Date): Date[];
|
|
25
|
+
export declare function createNormalizedDate(year: number, month: number, date: number): Date;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { IdsDatepickerIntl } from '../datepicker-intl';
|
|
2
|
+
import { AfterViewInit, ElementRef, Signal } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare abstract class IdsCalendarPage implements AfterViewInit {
|
|
5
|
+
private readonly _calendarButtonSelector;
|
|
6
|
+
abstract headerLabel: Signal<string>;
|
|
7
|
+
protected _element: ElementRef<any>;
|
|
8
|
+
private _injector;
|
|
9
|
+
private _cdRef;
|
|
10
|
+
protected _intl: IdsDatepickerIntl;
|
|
11
|
+
value: import("@angular/core").InputSignal<Date | null>;
|
|
12
|
+
focusedDate: import("@angular/core").ModelSignal<Date>;
|
|
13
|
+
min: import("@angular/core").InputSignal<Date | null>;
|
|
14
|
+
max: import("@angular/core").InputSignal<Date | null>;
|
|
15
|
+
selected: import("@angular/core").OutputEmitterRef<Date>;
|
|
16
|
+
abstract hasPreviousPage(): boolean;
|
|
17
|
+
abstract gotoPreviousPage(): void;
|
|
18
|
+
abstract hasNextPage(): boolean;
|
|
19
|
+
abstract gotoNextPage(): void;
|
|
20
|
+
protected readonly _today: Date;
|
|
21
|
+
constructor();
|
|
22
|
+
ngAfterViewInit(): void;
|
|
23
|
+
private _moveFocusToCurrent;
|
|
24
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IdsCalendarPage, never>;
|
|
25
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<IdsCalendarPage, never, never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "focusedDate": { "alias": "focusedDate"; "required": true; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; }, { "focusedDate": "focusedDateChange"; "selected": "selected"; }, never, never, true, never>;
|
|
26
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { IdsDatepickerViewType } from '../tokens/datepicker-view';
|
|
2
|
+
import { OnInit } from '@angular/core';
|
|
3
|
+
import { ComponentBaseWithDefaults, IdsSizeType } from '@i-cell/ids-angular/core';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/cdk/a11y";
|
|
6
|
+
export declare class IdsCalendarComponent extends ComponentBaseWithDefaults<object> implements OnInit {
|
|
7
|
+
protected readonly _defaultConfig: {};
|
|
8
|
+
protected get _hostName(): string;
|
|
9
|
+
private _cdRef;
|
|
10
|
+
private _intl;
|
|
11
|
+
value: import("@angular/core").InputSignal<Date | null>;
|
|
12
|
+
size: import("@angular/core").InputSignal<IdsSizeType>;
|
|
13
|
+
view: import("@angular/core").InputSignal<IdsDatepickerViewType>;
|
|
14
|
+
min: import("@angular/core").InputSignal<Date | null>;
|
|
15
|
+
max: import("@angular/core").InputSignal<Date | null>;
|
|
16
|
+
selected: import("@angular/core").OutputEmitterRef<Date>;
|
|
17
|
+
monthSelected: import("@angular/core").OutputEmitterRef<Date>;
|
|
18
|
+
yearSelected: import("@angular/core").OutputEmitterRef<Date>;
|
|
19
|
+
private _calendarPage;
|
|
20
|
+
protected _view: import("@angular/core").WritableSignal<IdsDatepickerViewType>;
|
|
21
|
+
protected _hostClasses: import("@angular/core").Signal<string>;
|
|
22
|
+
protected _headerButtonSize: import("@angular/core").Signal<IdsSizeType>;
|
|
23
|
+
protected _headerLabel: import("@angular/core").Signal<string>;
|
|
24
|
+
protected _prevPageLabel: import("@angular/core").Signal<string>;
|
|
25
|
+
protected _nextPageLabel: import("@angular/core").Signal<string>;
|
|
26
|
+
protected _switchViewLabel: import("@angular/core").Signal<string>;
|
|
27
|
+
protected _focusedDate: Date;
|
|
28
|
+
ngOnInit(): void;
|
|
29
|
+
protected _selectYear(selectedYear: Date): void;
|
|
30
|
+
protected _selectMonth(selectedMonth: Date): void;
|
|
31
|
+
protected _selectDate(date: Date): void;
|
|
32
|
+
protected _hasPrevPage(): boolean;
|
|
33
|
+
protected _gotoPrevPage(): void;
|
|
34
|
+
protected _hasNextPage(): boolean;
|
|
35
|
+
protected _gotoNextPage(): void;
|
|
36
|
+
protected _switchView(): void;
|
|
37
|
+
private _setFocusedDate;
|
|
38
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IdsCalendarComponent, never>;
|
|
39
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IdsCalendarComponent, "ids-calendar", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": true; "isSignal": true; }; "view": { "alias": "view"; "required": true; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; }, { "selected": "selected"; "monthSelected": "monthSelected"; "yearSelected": "yearSelected"; }, never, never, true, [{ directive: typeof i1.CdkTrapFocus; inputs: {}; outputs: {}; }]>;
|
|
40
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { IdsDatepickerViewType } from './tokens/datepicker-view';
|
|
2
|
+
import { InjectionToken } from '@angular/core';
|
|
3
|
+
export interface IdsDatepickerDefaultConfig {
|
|
4
|
+
view?: IdsDatepickerViewType;
|
|
5
|
+
}
|
|
6
|
+
export declare const IDS_DATEPICKER_DEFAULT_CONFIG: InjectionToken<IdsDatepickerDefaultConfig>;
|
|
7
|
+
export declare function IDS_DATEPICKER_DEFAULT_CONFIG_FACTORY(): Required<IdsDatepickerDefaultConfig>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Subject } from 'rxjs';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class IdsDatepickerIntl {
|
|
4
|
+
readonly changes: Subject<void>;
|
|
5
|
+
triggerButtonLabel: string;
|
|
6
|
+
prevMonthLabel: string;
|
|
7
|
+
nextMonthLabel: string;
|
|
8
|
+
prevYearLabel: string;
|
|
9
|
+
nextYearLabel: string;
|
|
10
|
+
prevYearsPageLabel: string;
|
|
11
|
+
nextYearsPageLabel: string;
|
|
12
|
+
switchToDaySelectorLabel: string;
|
|
13
|
+
switchToYearSelectorLabel: string;
|
|
14
|
+
getDayAriaLabel(date: Date): string | null;
|
|
15
|
+
getMonthLabel(date: Date): string | null;
|
|
16
|
+
getMonthAriaLabel(date: Date): string | null;
|
|
17
|
+
getDaySelectorHeaderLabel(date: Date): string | null;
|
|
18
|
+
getWeekdayHeaderLabel(date: Date): string | null;
|
|
19
|
+
protected _formatDate(date: unknown, dateFormat: Intl.DateTimeFormat): string | null;
|
|
20
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IdsDatepickerIntl, never>;
|
|
21
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<IdsDatepickerIntl>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { IdsDatepickerDefaultConfig } from './datepicker-defaults';
|
|
2
|
+
import { IdsDatepickerViewType } from './tokens/datepicker-view';
|
|
3
|
+
import { OnChanges, SimpleChanges } from '@angular/core';
|
|
4
|
+
import { AbstractControl, ControlValueAccessor, ValidationErrors, Validator } from '@angular/forms';
|
|
5
|
+
import { DirectiveBaseWithDefaults } from '@i-cell/ids-angular/core';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare class IdsDatepickerDirective extends DirectiveBaseWithDefaults<IdsDatepickerDefaultConfig> implements OnChanges, ControlValueAccessor, Validator {
|
|
8
|
+
protected _defaultConfig: Required<IdsDatepickerDefaultConfig>;
|
|
9
|
+
protected _hostClasses: import("@angular/core").WritableSignal<string>;
|
|
10
|
+
private _viewContainerRef;
|
|
11
|
+
private _elementRef;
|
|
12
|
+
private _parent;
|
|
13
|
+
private _overlay;
|
|
14
|
+
private _injector;
|
|
15
|
+
formatter: import("@angular/core").InputSignal<import("./tokens/date-formatter").IdsDateFormatterFn>;
|
|
16
|
+
parser: import("@angular/core").InputSignal<import("./tokens/date-parser").IdsDateParserFn>;
|
|
17
|
+
view: import("@angular/core").InputSignal<IdsDatepickerViewType>;
|
|
18
|
+
minDate: import("@angular/core").InputSignalWithTransform<Date | null, unknown>;
|
|
19
|
+
maxDate: import("@angular/core").InputSignalWithTransform<Date | null, unknown>;
|
|
20
|
+
private _inputChanges;
|
|
21
|
+
openedInput: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
22
|
+
private _opened;
|
|
23
|
+
opened: import("@angular/core").Signal<boolean>;
|
|
24
|
+
monthSelected: import("@angular/core").OutputEmitterRef<Date>;
|
|
25
|
+
yearSelected: import("@angular/core").OutputEmitterRef<Date>;
|
|
26
|
+
private _onChange;
|
|
27
|
+
private _onTouched;
|
|
28
|
+
private _onValidatorChange;
|
|
29
|
+
private _overlayRef;
|
|
30
|
+
private _componentRef;
|
|
31
|
+
private _scrollStrategy;
|
|
32
|
+
private _overlayCloseSub;
|
|
33
|
+
get value(): Date | null;
|
|
34
|
+
private _isValid;
|
|
35
|
+
private _dateFormatValidator;
|
|
36
|
+
private _minValidator;
|
|
37
|
+
private _maxValidator;
|
|
38
|
+
private _validator;
|
|
39
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
40
|
+
writeValue(obj: unknown): void;
|
|
41
|
+
registerOnChange(fn: () => void): void;
|
|
42
|
+
registerOnTouched(fn: () => void): void;
|
|
43
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
44
|
+
registerOnValidatorChange?(fn: () => void): void;
|
|
45
|
+
open(): void;
|
|
46
|
+
close(): void;
|
|
47
|
+
private _handleInput;
|
|
48
|
+
private _handleBlur;
|
|
49
|
+
private _handleKeydown;
|
|
50
|
+
private _isValidValue;
|
|
51
|
+
private _setInputValue;
|
|
52
|
+
private _getOverlayConfig;
|
|
53
|
+
private _disposeOverlay;
|
|
54
|
+
private _onOverlayClose;
|
|
55
|
+
private _onPageNavigationKeydown;
|
|
56
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IdsDatepickerDirective, never>;
|
|
57
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<IdsDatepickerDirective, "input[idsDatepicker]", ["idsDatepicker"], { "formatter": { "alias": "formatter"; "required": false; "isSignal": true; }; "parser": { "alias": "parser"; "required": false; "isSignal": true; }; "view": { "alias": "view"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "openedInput": { "alias": "opened"; "required": false; "isSignal": true; }; }, { "monthSelected": "monthSelected"; "yearSelected": "yearSelected"; }, never, never, true, never>;
|
|
58
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { IdsCalendarPage } from '../calendar/calendar-page';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class IdsDaySelectorComponent extends IdsCalendarPage {
|
|
4
|
+
headerLabel: import("@angular/core").Signal<string>;
|
|
5
|
+
protected _currentMonth: import("@angular/core").Signal<Date>;
|
|
6
|
+
protected _previousMonth: import("@angular/core").Signal<Date>;
|
|
7
|
+
protected _nextMonth: import("@angular/core").Signal<Date>;
|
|
8
|
+
protected _gridStartDate: import("@angular/core").Signal<Date>;
|
|
9
|
+
protected _gridEndDate: import("@angular/core").Signal<Date>;
|
|
10
|
+
protected _days: import("@angular/core").Signal<Date[]>;
|
|
11
|
+
protected _weekdayLabels: import("@angular/core").Signal<string[]>;
|
|
12
|
+
hasPreviousPage(): boolean;
|
|
13
|
+
gotoPreviousPage(): void;
|
|
14
|
+
hasNextPage(): boolean;
|
|
15
|
+
gotoNextPage(): void;
|
|
16
|
+
protected _selectDate(event: MouseEvent, date: Date): void;
|
|
17
|
+
protected _isDateInCurrentMonth(date: Date): boolean;
|
|
18
|
+
protected _isDateFocused(date: Date): boolean;
|
|
19
|
+
protected _isDateSelected(date: Date): boolean;
|
|
20
|
+
protected _isDateDisabled(date: Date): boolean;
|
|
21
|
+
protected _isDateToday(date: Date): boolean;
|
|
22
|
+
private _handleKeydown;
|
|
23
|
+
private _hasShiftModifierKey;
|
|
24
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IdsDaySelectorComponent, never>;
|
|
25
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IdsDaySelectorComponent, "ids-day-selector", never, {}, {}, never, never, true, never>;
|
|
26
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { IdsCalendarPage } from '../calendar/calendar-page';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class IdsMonthSelectorComponent extends IdsCalendarPage {
|
|
4
|
+
protected _focusedYear: import("@angular/core").Signal<number>;
|
|
5
|
+
protected _monthLabels: import("@angular/core").Signal<string[] | undefined>;
|
|
6
|
+
headerLabel: import("@angular/core").Signal<string>;
|
|
7
|
+
hasPreviousPage(): boolean;
|
|
8
|
+
gotoPreviousPage(): void;
|
|
9
|
+
hasNextPage(): boolean;
|
|
10
|
+
gotoNextPage(): void;
|
|
11
|
+
protected _selectMonth(event: MouseEvent, month: number): void;
|
|
12
|
+
protected _isMonthFocused(month: number): boolean;
|
|
13
|
+
protected _isMonthSelected(month: number): boolean;
|
|
14
|
+
protected _isCurrentMonth(month: number): boolean;
|
|
15
|
+
protected _isMonthDisabled(month: number): boolean;
|
|
16
|
+
protected _getMonthAsDate(month: number): Date;
|
|
17
|
+
private _handleKeydown;
|
|
18
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IdsMonthSelectorComponent, never>;
|
|
19
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IdsMonthSelectorComponent, "ids-month-selector", never, {}, {}, never, never, true, never>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './tokens/datepicker-view';
|
|
2
|
+
export * from './tokens/date-formatter';
|
|
3
|
+
export * from './tokens/date-parser';
|
|
4
|
+
export * from './trigger/datepicker-trigger.component';
|
|
5
|
+
export * from './datepicker-defaults';
|
|
6
|
+
export * from './datepicker-intl';
|
|
7
|
+
export * from './datepicker.directive';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IdsDatepickerIntl } from '../datepicker-intl';
|
|
2
|
+
import { IdsDatepickerDirective } from '../datepicker.directive';
|
|
3
|
+
import { IdsFormFieldComponent } from '@i-cell/ids-angular/forms';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class IdsDatepickerTriggerComponent {
|
|
6
|
+
protected _parent: IdsFormFieldComponent;
|
|
7
|
+
protected _intl: IdsDatepickerIntl;
|
|
8
|
+
datepicker: import("@angular/core").InputSignal<IdsDatepickerDirective>;
|
|
9
|
+
ariaLabel: import("@angular/core").InputSignal<string | null>;
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IdsDatepickerTriggerComponent, never>;
|
|
11
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IdsDatepickerTriggerComponent, "ids-datepicker-trigger", never, { "datepicker": { "alias": "for"; "required": true; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { IdsCalendarPage } from '../calendar/calendar-page';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class IdsYearSelectorComponent extends IdsCalendarPage {
|
|
4
|
+
private _firstYearOnPage;
|
|
5
|
+
protected _years: import("@angular/core").Signal<number[]>;
|
|
6
|
+
headerLabel: import("@angular/core").Signal<string>;
|
|
7
|
+
hasPreviousPage(): boolean;
|
|
8
|
+
gotoPreviousPage(): void;
|
|
9
|
+
hasNextPage(): boolean;
|
|
10
|
+
gotoNextPage(): void;
|
|
11
|
+
protected _selectYear(event: MouseEvent, year: number): void;
|
|
12
|
+
protected _isYearFocused(year: number): boolean;
|
|
13
|
+
protected _isYearSelected(year: number): boolean;
|
|
14
|
+
protected _isCurrentYear(year: number): boolean;
|
|
15
|
+
protected _isYearDisabled(year: number): boolean;
|
|
16
|
+
private _handleKeydown;
|
|
17
|
+
private _getFirstYearOffset;
|
|
18
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IdsYearSelectorComponent, never>;
|
|
19
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IdsYearSelectorComponent, "ids-year-selector", never, {}, {}, never, never, true, never>;
|
|
20
|
+
}
|
|
@@ -233,8 +233,162 @@ function coerceStringAttribute(value) {
|
|
|
233
233
|
return value ? String(value).trim() : '';
|
|
234
234
|
}
|
|
235
235
|
|
|
236
|
+
function isNumber(value) {
|
|
237
|
+
return typeof value === 'number' || value instanceof Number;
|
|
238
|
+
}
|
|
239
|
+
function isNumberEven(val) {
|
|
240
|
+
return val % 2 === 0;
|
|
241
|
+
}
|
|
242
|
+
function isNumberOdd(val) {
|
|
243
|
+
return val % 2 === 1;
|
|
244
|
+
}
|
|
245
|
+
function positiveModulus(num, divisor) {
|
|
246
|
+
return ((num % divisor) + divisor) % divisor;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
function isString(value) {
|
|
250
|
+
return typeof value == 'string' || value instanceof String;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
/* eslint-disable no-magic-numbers */
|
|
254
|
+
const ISO_8601_REGEXP = /^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|(?:(?:\+|-)\d{2}:\d{2}))?)?$/;
|
|
255
|
+
const weekLength = 7;
|
|
256
|
+
function padDigits(num) {
|
|
257
|
+
return num > 9 ? String(num) : `0${num}`;
|
|
258
|
+
}
|
|
259
|
+
function dayOfWeekWithOffset(weekDay, offset) {
|
|
260
|
+
return (weekLength + weekDay.getDay() - offset) % weekLength;
|
|
261
|
+
}
|
|
262
|
+
function isDate(value) {
|
|
263
|
+
return value instanceof Date;
|
|
264
|
+
}
|
|
236
265
|
function isValidDate(value) {
|
|
237
|
-
return value
|
|
266
|
+
return isDate(value) && !isNaN(value.getTime());
|
|
267
|
+
}
|
|
268
|
+
function getValidDateOrNull(value) {
|
|
269
|
+
return isValidDate(value) ? value : null;
|
|
270
|
+
}
|
|
271
|
+
function equalDates(date1, date2) {
|
|
272
|
+
// eslint-disable-next-line eqeqeq
|
|
273
|
+
return date1 && date2 ? Object.is(+startOfDay(date1), +startOfDay(date2)) : date1 == date2;
|
|
274
|
+
}
|
|
275
|
+
function compareDates(date1, date2) {
|
|
276
|
+
return Math.sign(+date1 - +date2);
|
|
277
|
+
}
|
|
278
|
+
function clampDate(date, min, max) {
|
|
279
|
+
if (!isValidDate(date)) {
|
|
280
|
+
return date;
|
|
281
|
+
}
|
|
282
|
+
const dateMillis = date.getTime();
|
|
283
|
+
const minDate = isValidDate(min) ? min.getTime() : dateMillis;
|
|
284
|
+
const maxDate = isValidDate(max) ? max.getTime() : dateMillis;
|
|
285
|
+
return new Date(Math.max(minDate, Math.min(dateMillis, maxDate)));
|
|
286
|
+
}
|
|
287
|
+
function invalidDate() {
|
|
288
|
+
return new Date(NaN);
|
|
289
|
+
}
|
|
290
|
+
function cloneDate(date) {
|
|
291
|
+
return new Date(date);
|
|
292
|
+
}
|
|
293
|
+
function parseDate(value, utc = false) {
|
|
294
|
+
if (!value) {
|
|
295
|
+
return null;
|
|
296
|
+
}
|
|
297
|
+
if (ISO_8601_REGEXP.test(value)) {
|
|
298
|
+
return new Date(utc ? value : `${value}T00:00:00`);
|
|
299
|
+
}
|
|
300
|
+
return invalidDate();
|
|
301
|
+
}
|
|
302
|
+
function deserializeDate(value) {
|
|
303
|
+
// Numeric timestamp
|
|
304
|
+
if (isNumber(value)) {
|
|
305
|
+
return new Date(value);
|
|
306
|
+
}
|
|
307
|
+
// Empty value -> null
|
|
308
|
+
if (!value) {
|
|
309
|
+
return null;
|
|
310
|
+
}
|
|
311
|
+
// value is a Date instance, nothing to process
|
|
312
|
+
if (isDate(value)) {
|
|
313
|
+
return value;
|
|
314
|
+
}
|
|
315
|
+
if (isString(value)) {
|
|
316
|
+
return parseDate(value);
|
|
317
|
+
}
|
|
318
|
+
return invalidDate();
|
|
319
|
+
}
|
|
320
|
+
function formatDate(date) {
|
|
321
|
+
const year = date.getFullYear();
|
|
322
|
+
const month = date.getMonth() + 1;
|
|
323
|
+
const day = date.getDate();
|
|
324
|
+
return `${year}-${padDigits(month)}-${padDigits(day)}`;
|
|
325
|
+
}
|
|
326
|
+
function formatUTCDate(date) {
|
|
327
|
+
return date.toISOString().split('T')[0];
|
|
328
|
+
}
|
|
329
|
+
function addDays(date, days) {
|
|
330
|
+
const clonedDate = cloneDate(date);
|
|
331
|
+
clonedDate.setDate(clonedDate.getDate() + days);
|
|
332
|
+
return clonedDate;
|
|
333
|
+
}
|
|
334
|
+
function addMonths(date, months) {
|
|
335
|
+
const newDate = new Date();
|
|
336
|
+
newDate.setFullYear(date.getFullYear(), date.getMonth() + months, date.getDate());
|
|
337
|
+
newDate.setHours(0, 0, 0, 0);
|
|
338
|
+
const newMonth = newDate.getMonth();
|
|
339
|
+
const desiredMonth = positiveModulus(date.getMonth() + months, 12);
|
|
340
|
+
if (newMonth !== desiredMonth) {
|
|
341
|
+
newDate.setDate(0);
|
|
342
|
+
}
|
|
343
|
+
return newDate;
|
|
344
|
+
}
|
|
345
|
+
function addYears(date, years) {
|
|
346
|
+
return addMonths(date, years * 12);
|
|
347
|
+
}
|
|
348
|
+
function startOfDay(date) {
|
|
349
|
+
const clonedDate = cloneDate(date);
|
|
350
|
+
clonedDate.setHours(0, 0, 0, 0);
|
|
351
|
+
return clonedDate;
|
|
352
|
+
}
|
|
353
|
+
function endOfDay(date) {
|
|
354
|
+
const clonedDate = cloneDate(date);
|
|
355
|
+
clonedDate.setHours(23, 59, 59, 999);
|
|
356
|
+
return clonedDate;
|
|
357
|
+
}
|
|
358
|
+
function startOfWeek(weekDay, offset) {
|
|
359
|
+
return addDays(weekDay, -dayOfWeekWithOffset(weekDay, offset));
|
|
360
|
+
}
|
|
361
|
+
function endOfWeek(weekDay, offset) {
|
|
362
|
+
return addDays(weekDay, 6 - dayOfWeekWithOffset(weekDay, offset));
|
|
363
|
+
}
|
|
364
|
+
function startOfMonth(date) {
|
|
365
|
+
return new Date(date.getFullYear(), date.getMonth(), 1);
|
|
366
|
+
}
|
|
367
|
+
function endOfMonth(date) {
|
|
368
|
+
return new Date(date.getFullYear(), date.getMonth() + 1, 0);
|
|
369
|
+
}
|
|
370
|
+
function startOfYear(date) {
|
|
371
|
+
return new Date(date.getFullYear(), 0, 1);
|
|
372
|
+
}
|
|
373
|
+
function endOfYear(date) {
|
|
374
|
+
return new Date(date.getFullYear(), 12, 0);
|
|
375
|
+
}
|
|
376
|
+
function getDatesBetween(startDate, endDate) {
|
|
377
|
+
if (!isValidDate(startDate) || !isValidDate(endDate)) {
|
|
378
|
+
return [];
|
|
379
|
+
}
|
|
380
|
+
let current = startOfDay(startDate);
|
|
381
|
+
const end = startOfDay(endDate);
|
|
382
|
+
const result = [];
|
|
383
|
+
while (current <= end) {
|
|
384
|
+
result.push(new Date(current));
|
|
385
|
+
current = addDays(current, 1);
|
|
386
|
+
}
|
|
387
|
+
return result;
|
|
388
|
+
}
|
|
389
|
+
function createNormalizedDate(year, month, date) {
|
|
390
|
+
const daysInMonth = new Date(year, month + 1, 0).getDate();
|
|
391
|
+
return new Date(year, month, Math.min(date, daysInMonth));
|
|
238
392
|
}
|
|
239
393
|
|
|
240
394
|
function compare(value1, value2) {
|
|
@@ -247,20 +401,9 @@ function compare(value1, value2) {
|
|
|
247
401
|
return String(value1).localeCompare(String(value2));
|
|
248
402
|
}
|
|
249
403
|
|
|
250
|
-
function isNumberEven(val) {
|
|
251
|
-
return val % 2 === 0;
|
|
252
|
-
}
|
|
253
|
-
function isNumberOdd(val) {
|
|
254
|
-
return val % 2 === 1;
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
function isString(value) {
|
|
258
|
-
return typeof value == 'string' || value instanceof String;
|
|
259
|
-
}
|
|
260
|
-
|
|
261
404
|
/**
|
|
262
405
|
* Generated bundle index. Do not edit.
|
|
263
406
|
*/
|
|
264
407
|
|
|
265
|
-
export { ComponentBase, ComponentBaseWithDefaults, DirectiveBase, DirectiveBaseWithDefaults, IdsDetectScrollableDirective, IdsExtendedHorizontalPosition, IdsExtendedPosition, IdsExtendedVerticalPosition, IdsHorizontalPosition, IdsOrientation, IdsPosition, IdsSentenceCasePipe, IdsSize, IdsSizeCollection, IdsVerticalPosition, ResizeObserverService, addClassPrefix, coerceBooleanAttribute, coerceNumberAttribute, coerceStringAttribute, compare, createClassList, fallbackValue, isNumberEven, isNumberOdd, isString, isTypeDerivedFrom, isValidDate };
|
|
408
|
+
export { ComponentBase, ComponentBaseWithDefaults, DirectiveBase, DirectiveBaseWithDefaults, IdsDetectScrollableDirective, IdsExtendedHorizontalPosition, IdsExtendedPosition, IdsExtendedVerticalPosition, IdsHorizontalPosition, IdsOrientation, IdsPosition, IdsSentenceCasePipe, IdsSize, IdsSizeCollection, IdsVerticalPosition, ResizeObserverService, addClassPrefix, addDays, addMonths, addYears, clampDate, cloneDate, coerceBooleanAttribute, coerceNumberAttribute, coerceStringAttribute, compare, compareDates, createClassList, createNormalizedDate, deserializeDate, endOfDay, endOfMonth, endOfWeek, endOfYear, equalDates, fallbackValue, formatDate, formatUTCDate, getDatesBetween, getValidDateOrNull, invalidDate, isDate, isNumber, isNumberEven, isNumberOdd, isString, isTypeDerivedFrom, isValidDate, parseDate, positiveModulus, startOfDay, startOfMonth, startOfWeek, startOfYear };
|
|
266
409
|
//# sourceMappingURL=i-cell-ids-angular-core.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i-cell-ids-angular-core.mjs","sources":["../../../projects/widgets/core/utils/class-prefix.ts","../../../projects/widgets/core/base-classes/directive-base.ts","../../../projects/widgets/core/utils/fallback-value.ts","../../../projects/widgets/core/base-classes/component-base.ts","../../../projects/widgets/core/services/resize-observer.service.ts","../../../projects/widgets/core/directives/detect-scrollable.directive.ts","../../../projects/widgets/core/pipes/sentence-case.pipe.ts","../../../projects/widgets/core/types/orientation.type.ts","../../../projects/widgets/core/types/position.type.ts","../../../projects/widgets/core/types/size-collection.type.ts","../../../projects/widgets/core/types/size.type.ts","../../../projects/widgets/core/utils/class.ts","../../../projects/widgets/core/utils/coercion.ts","../../../projects/widgets/core/utils/date.ts","../../../projects/widgets/core/utils/compare.ts","../../../projects/widgets/core/utils/even-odd.ts","../../../projects/widgets/core/utils/string.ts","../../../projects/widgets/core/i-cell-ids-angular-core.ts"],"sourcesContent":["export function addClassPrefix(\n hostClass: string,\n className: string | Array<string | null | undefined> | null | undefined,\n): string | null {\n if (className == null) {\n return null;\n }\n\n if (Array.isArray(className)) {\n if (className.some((item) => item == null)) {\n return null;\n }\n return `${hostClass}-${className.filter(Boolean).join('-')}`;\n }\n\n return `${hostClass}-${className}`;\n}\n\nexport function createClassList(\n hostClass: string,\n appendableClassNames: Array<string | Array<string | null | undefined> | null | undefined> = [],\n nonAppendableClassNames: Array<string | null> = [],\n): string {\n return [\n hostClass,\n ...appendableClassNames.map((className) => addClassPrefix(hostClass, className)),\n ...nonAppendableClassNames,\n ].filter(Boolean).join(' ');\n}\n","import { createClassList } from '../utils/class-prefix';\n\nimport { DestroyRef, Directive, inject, InjectionToken, Signal } from '@angular/core';\n\n@Directive({\n host: {\n '[class]': '_hostClasses()',\n },\n standalone: false,\n})\nexport abstract class DirectiveBase {\n protected get _hostName(): string {\n return '';\n }\n\n protected readonly _hostClassName = `ids-${this._hostName}`;\n\n protected readonly _destroyRef = inject(DestroyRef);\n\n protected abstract _hostClasses: Signal<string>;\n protected _getHostClasses(\n appendableClassNames: Array<string | Array<string | null | undefined> | null | undefined> = [],\n nonAppendableClassNames: Array<string | null> = [],\n ): string {\n return createClassList(this._hostClassName, appendableClassNames, nonAppendableClassNames);\n }\n\n protected _createHostError(message: string): Error {\n return new Error(`${this._hostClassName}: ${message}`);\n }\n}\n\nexport abstract class DirectiveBaseWithDefaults<D> extends DirectiveBase {\n protected abstract readonly _defaultConfig: D;\n\n protected _getDefaultConfig(defaultConfig: Required<D>, injectionToken: InjectionToken<D>): Required<D> {\n return {\n ...defaultConfig,\n ...inject(injectionToken, { optional: true }),\n };\n }\n}\n","export function fallbackValue<T>(value: T | undefined, fallbackValue: T): T {\n return value ? value : fallbackValue;\n}\n","import { DirectiveBase } from './directive-base';\n\nimport { fallbackValue } from '../utils/fallback-value';\n\nimport { Directive, inject, InjectionToken, input } from '@angular/core';\n\nlet nextUniqueId = 0;\n\n@Directive({\n host: {\n '[id]': 'id()',\n },\n standalone: false,\n})\nexport abstract class ComponentBase extends DirectiveBase {\n protected readonly _uniqueId = `${this._hostClassName}-${++nextUniqueId}`;\n\n public readonly id = input<string, string | undefined>(this._uniqueId, { transform: (val) => fallbackValue(val, this._uniqueId) });\n}\n\nexport abstract class ComponentBaseWithDefaults<D> extends ComponentBase {\n protected abstract readonly _defaultConfig: D;\n\n protected _getDefaultConfig(defaultConfig: Required<D>, injectionToken: InjectionToken<D>): Required<D> {\n return {\n ...defaultConfig,\n ...inject(injectionToken, { optional: true }),\n };\n }\n}\n","import { Injectable, NgZone, OnDestroy, inject } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ResizeObserverService implements OnDestroy {\n private _zone = inject(NgZone);\n\n private _observers = new Map<Element, Subject<ResizeObserverEntry>>();\n private _resizeObserver = new ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const observer = this._observers.get(entry.target);\n this._zone.run(() => observer?.next(entry));\n });\n });\n\n public observe(target: Element): Observable<ResizeObserverEntry> {\n if (this._observers.has(target)) {\n return this._observers.get(target)!.asObservable();\n }\n\n const newObserver = new Subject<ResizeObserverEntry>();\n\n this._observers.set(target, newObserver);\n this._resizeObserver.observe(target);\n\n return newObserver.asObservable();\n }\n\n public unobserve(target: Element): void {\n const observer = this._observers.get(target);\n\n if (observer) {\n observer.complete();\n this._observers.delete(target);\n }\n\n this._resizeObserver.unobserve(target);\n }\n\n public ngOnDestroy(): void {\n this._resizeObserver.disconnect();\n }\n}\n","import { ResizeObserverService } from '../services/resize-observer.service';\n\nimport { Directive, ElementRef, OnDestroy, OnInit, inject, signal } from '@angular/core';\n\n@Directive({\n selector: '[idsDetectScrollable]',\n standalone: true,\n exportAs: 'idsDetectScrollable',\n})\nexport class IdsDetectScrollableDirective implements OnInit, OnDestroy {\n private _hostElement = inject(ElementRef).nativeElement;\n private _resizeObserver = inject(ResizeObserverService);\n\n public isScrollable = signal(false);\n\n public ngOnInit(): void {\n this._resizeObserver.observe(this._hostElement).subscribe(() => {\n this.isScrollable.set(this._hostElement.scrollHeight > this._hostElement.clientHeight);\n },\n );\n }\n\n public ngOnDestroy(): void {\n this._resizeObserver.unobserve(this._hostElement);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'sentenceCase',\n standalone: true,\n})\nexport class IdsSentenceCasePipe implements PipeTransform {\n public transform(value: string): unknown {\n return value.charAt(0).toUpperCase().concat(value.substring(1));\n }\n\n}\n","export const IdsOrientation = {\n VERTICAL: 'vertical',\n HORIZONTAL: 'horizontal',\n} as const;\n\nexport type IdsOrientationType = (typeof IdsOrientation)[keyof typeof IdsOrientation];\n","export const IdsHorizontalPosition = {\n LEFT: 'left',\n RIGHT: 'right',\n} as const;\n\nexport type IdsHorizontalPositionType = (typeof IdsHorizontalPosition)[keyof typeof IdsHorizontalPosition];\n\nexport const IdsExtendedHorizontalPosition = {\n ...IdsHorizontalPosition,\n CENTER: 'center',\n} as const;\n\nexport type IdsExtendedHorizontalPositionType = (typeof IdsExtendedHorizontalPosition)[keyof typeof IdsExtendedHorizontalPosition];\n\nexport const IdsVerticalPosition = {\n TOP: 'top',\n BOTTOM: 'bottom',\n} as const;\n\nexport type IdsVerticalPositionType = (typeof IdsVerticalPosition)[keyof typeof IdsVerticalPosition];\n\nexport const IdsExtendedVerticalPosition = {\n ...IdsVerticalPosition,\n CENTER: 'center',\n} as const;\n\nexport type IdsExtendedVerticalPositionType = (typeof IdsExtendedVerticalPosition)[keyof typeof IdsExtendedVerticalPosition];\n\nexport const IdsPosition = {\n ...IdsHorizontalPosition,\n ...IdsVerticalPosition,\n} as const;\n\nexport type IdsPositionType = (typeof IdsPosition)[keyof typeof IdsPosition];\n\nexport type IdsPositionPairType = [IdsHorizontalPositionType, IdsVerticalPositionType];\n\nexport const IdsExtendedPosition = {\n ...IdsExtendedHorizontalPosition,\n ...IdsExtendedVerticalPosition,\n} as const;\n\nexport type IdsExtendedPositionType = (typeof IdsExtendedPosition)[keyof typeof IdsExtendedPosition];\n\nexport type IdsExtendedPositionPairType = [IdsExtendedHorizontalPositionType, IdsExtendedVerticalPositionType];\n","export const IdsSizeCollection = {\n SMALL: 'small',\n BIG: 'big',\n} as const;\n\nexport type IdsSizeCollectionType = (typeof IdsSizeCollection)[keyof typeof IdsSizeCollection];\n","export const IdsSize = {\n DENSE: 'dense',\n COMPACT: 'compact',\n COMFORTABLE: 'comfortable',\n SPACIOUS: 'spacious',\n} as const;\n\nexport type IdsSizeType = (typeof IdsSize)[keyof typeof IdsSize];\n","import { AbstractType, Type } from '@angular/core';\n\nexport function isTypeDerivedFrom<T1, T2>(type: Type<T1> | AbstractType<T1>, ancestorType: Type<T2> | AbstractType<T2>): boolean {\n if (!type || !ancestorType) {\n return false;\n }\n\n const superType = Object.getPrototypeOf(type);\n\n return superType === ancestorType || isTypeDerivedFrom(superType, ancestorType);\n}\n","/** Converts a bound attribute's value to a boolean. */\nexport function coerceBooleanAttribute(value: unknown): boolean {\n return value != null && `${value}` !== 'false';\n}\n\n/** Converts a bound attribute's value to a number. */\nexport function coerceNumberAttribute(value: unknown, fallbackValue = NaN): number {\n const isNumberValue = !isNaN(Number(value));\n return isNumberValue ? Number(value) : fallbackValue;\n}\n\n/** Converts a bound attribute's value to a string and trim. */\nexport function coerceStringAttribute(value: unknown): string {\n return value ? String(value).trim() : '';\n}\n","export function isValidDate(value: unknown): value is Date {\n return value instanceof Date && !isNaN(value.valueOf());\n}\n","import { isValidDate } from './date';\n\nexport function compare(value1: unknown, value2: unknown): number {\n if (Number.isFinite(value1) && Number.isFinite(value2)) {\n return Math.sign((value1 as number) - (value2 as number));\n }\n\n if (isValidDate(value1) && isValidDate(value2)) {\n return compare(value1.valueOf(), value2.valueOf());\n }\n\n return String(value1).localeCompare(String(value2));\n}\n","export function isNumberEven(val: number): boolean {\n return val % 2 === 0;\n}\n\nexport function isNumberOdd(val: number): boolean {\n return val % 2 === 1;\n}\n","export function isString(value: unknown): value is string {\n return typeof value == 'string' || value instanceof String;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"i-cell-ids-angular-core.mjs","sources":["../../../projects/widgets/core/utils/class-prefix.ts","../../../projects/widgets/core/base-classes/directive-base.ts","../../../projects/widgets/core/utils/fallback-value.ts","../../../projects/widgets/core/base-classes/component-base.ts","../../../projects/widgets/core/services/resize-observer.service.ts","../../../projects/widgets/core/directives/detect-scrollable.directive.ts","../../../projects/widgets/core/pipes/sentence-case.pipe.ts","../../../projects/widgets/core/types/orientation.type.ts","../../../projects/widgets/core/types/position.type.ts","../../../projects/widgets/core/types/size-collection.type.ts","../../../projects/widgets/core/types/size.type.ts","../../../projects/widgets/core/utils/class.ts","../../../projects/widgets/core/utils/coercion.ts","../../../projects/widgets/core/utils/number.ts","../../../projects/widgets/core/utils/string.ts","../../../projects/widgets/core/utils/date.ts","../../../projects/widgets/core/utils/compare.ts","../../../projects/widgets/core/i-cell-ids-angular-core.ts"],"sourcesContent":["export function addClassPrefix(\n hostClass: string,\n className: string | Array<string | null | undefined> | null | undefined,\n): string | null {\n if (className == null) {\n return null;\n }\n\n if (Array.isArray(className)) {\n if (className.some((item) => item == null)) {\n return null;\n }\n return `${hostClass}-${className.filter(Boolean).join('-')}`;\n }\n\n return `${hostClass}-${className}`;\n}\n\nexport function createClassList(\n hostClass: string,\n appendableClassNames: Array<string | Array<string | null | undefined> | null | undefined> = [],\n nonAppendableClassNames: Array<string | null> = [],\n): string {\n return [\n hostClass,\n ...appendableClassNames.map((className) => addClassPrefix(hostClass, className)),\n ...nonAppendableClassNames,\n ].filter(Boolean).join(' ');\n}\n","import { createClassList } from '../utils/class-prefix';\n\nimport { DestroyRef, Directive, inject, InjectionToken, Signal } from '@angular/core';\n\n@Directive({\n host: {\n '[class]': '_hostClasses()',\n },\n standalone: false,\n})\nexport abstract class DirectiveBase {\n protected get _hostName(): string {\n return '';\n }\n\n protected readonly _hostClassName = `ids-${this._hostName}`;\n\n protected readonly _destroyRef = inject(DestroyRef);\n\n protected abstract _hostClasses: Signal<string>;\n protected _getHostClasses(\n appendableClassNames: Array<string | Array<string | null | undefined> | null | undefined> = [],\n nonAppendableClassNames: Array<string | null> = [],\n ): string {\n return createClassList(this._hostClassName, appendableClassNames, nonAppendableClassNames);\n }\n\n protected _createHostError(message: string): Error {\n return new Error(`${this._hostClassName}: ${message}`);\n }\n}\n\nexport abstract class DirectiveBaseWithDefaults<D> extends DirectiveBase {\n protected abstract readonly _defaultConfig: D;\n\n protected _getDefaultConfig(defaultConfig: Required<D>, injectionToken: InjectionToken<D>): Required<D> {\n return {\n ...defaultConfig,\n ...inject(injectionToken, { optional: true }),\n };\n }\n}\n","export function fallbackValue<T>(value: T | undefined, fallbackValue: T): T {\n return value ? value : fallbackValue;\n}\n","import { DirectiveBase } from './directive-base';\n\nimport { fallbackValue } from '../utils/fallback-value';\n\nimport { Directive, inject, InjectionToken, input } from '@angular/core';\n\nlet nextUniqueId = 0;\n\n@Directive({\n host: {\n '[id]': 'id()',\n },\n standalone: false,\n})\nexport abstract class ComponentBase extends DirectiveBase {\n protected readonly _uniqueId = `${this._hostClassName}-${++nextUniqueId}`;\n\n public readonly id = input<string, string | undefined>(this._uniqueId, { transform: (val) => fallbackValue(val, this._uniqueId) });\n}\n\nexport abstract class ComponentBaseWithDefaults<D> extends ComponentBase {\n protected abstract readonly _defaultConfig: D;\n\n protected _getDefaultConfig(defaultConfig: Required<D>, injectionToken: InjectionToken<D>): Required<D> {\n return {\n ...defaultConfig,\n ...inject(injectionToken, { optional: true }),\n };\n }\n}\n","import { Injectable, NgZone, OnDestroy, inject } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ResizeObserverService implements OnDestroy {\n private _zone = inject(NgZone);\n\n private _observers = new Map<Element, Subject<ResizeObserverEntry>>();\n private _resizeObserver = new ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const observer = this._observers.get(entry.target);\n this._zone.run(() => observer?.next(entry));\n });\n });\n\n public observe(target: Element): Observable<ResizeObserverEntry> {\n if (this._observers.has(target)) {\n return this._observers.get(target)!.asObservable();\n }\n\n const newObserver = new Subject<ResizeObserverEntry>();\n\n this._observers.set(target, newObserver);\n this._resizeObserver.observe(target);\n\n return newObserver.asObservable();\n }\n\n public unobserve(target: Element): void {\n const observer = this._observers.get(target);\n\n if (observer) {\n observer.complete();\n this._observers.delete(target);\n }\n\n this._resizeObserver.unobserve(target);\n }\n\n public ngOnDestroy(): void {\n this._resizeObserver.disconnect();\n }\n}\n","import { ResizeObserverService } from '../services/resize-observer.service';\n\nimport { Directive, ElementRef, OnDestroy, OnInit, inject, signal } from '@angular/core';\n\n@Directive({\n selector: '[idsDetectScrollable]',\n standalone: true,\n exportAs: 'idsDetectScrollable',\n})\nexport class IdsDetectScrollableDirective implements OnInit, OnDestroy {\n private _hostElement = inject(ElementRef).nativeElement;\n private _resizeObserver = inject(ResizeObserverService);\n\n public isScrollable = signal(false);\n\n public ngOnInit(): void {\n this._resizeObserver.observe(this._hostElement).subscribe(() => {\n this.isScrollable.set(this._hostElement.scrollHeight > this._hostElement.clientHeight);\n },\n );\n }\n\n public ngOnDestroy(): void {\n this._resizeObserver.unobserve(this._hostElement);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'sentenceCase',\n standalone: true,\n})\nexport class IdsSentenceCasePipe implements PipeTransform {\n public transform(value: string): unknown {\n return value.charAt(0).toUpperCase().concat(value.substring(1));\n }\n\n}\n","export const IdsOrientation = {\n VERTICAL: 'vertical',\n HORIZONTAL: 'horizontal',\n} as const;\n\nexport type IdsOrientationType = (typeof IdsOrientation)[keyof typeof IdsOrientation];\n","export const IdsHorizontalPosition = {\n LEFT: 'left',\n RIGHT: 'right',\n} as const;\n\nexport type IdsHorizontalPositionType = (typeof IdsHorizontalPosition)[keyof typeof IdsHorizontalPosition];\n\nexport const IdsExtendedHorizontalPosition = {\n ...IdsHorizontalPosition,\n CENTER: 'center',\n} as const;\n\nexport type IdsExtendedHorizontalPositionType = (typeof IdsExtendedHorizontalPosition)[keyof typeof IdsExtendedHorizontalPosition];\n\nexport const IdsVerticalPosition = {\n TOP: 'top',\n BOTTOM: 'bottom',\n} as const;\n\nexport type IdsVerticalPositionType = (typeof IdsVerticalPosition)[keyof typeof IdsVerticalPosition];\n\nexport const IdsExtendedVerticalPosition = {\n ...IdsVerticalPosition,\n CENTER: 'center',\n} as const;\n\nexport type IdsExtendedVerticalPositionType = (typeof IdsExtendedVerticalPosition)[keyof typeof IdsExtendedVerticalPosition];\n\nexport const IdsPosition = {\n ...IdsHorizontalPosition,\n ...IdsVerticalPosition,\n} as const;\n\nexport type IdsPositionType = (typeof IdsPosition)[keyof typeof IdsPosition];\n\nexport type IdsPositionPairType = [IdsHorizontalPositionType, IdsVerticalPositionType];\n\nexport const IdsExtendedPosition = {\n ...IdsExtendedHorizontalPosition,\n ...IdsExtendedVerticalPosition,\n} as const;\n\nexport type IdsExtendedPositionType = (typeof IdsExtendedPosition)[keyof typeof IdsExtendedPosition];\n\nexport type IdsExtendedPositionPairType = [IdsExtendedHorizontalPositionType, IdsExtendedVerticalPositionType];\n","export const IdsSizeCollection = {\n SMALL: 'small',\n BIG: 'big',\n} as const;\n\nexport type IdsSizeCollectionType = (typeof IdsSizeCollection)[keyof typeof IdsSizeCollection];\n","export const IdsSize = {\n DENSE: 'dense',\n COMPACT: 'compact',\n COMFORTABLE: 'comfortable',\n SPACIOUS: 'spacious',\n} as const;\n\nexport type IdsSizeType = (typeof IdsSize)[keyof typeof IdsSize];\n","import { AbstractType, Type } from '@angular/core';\n\nexport function isTypeDerivedFrom<T1, T2>(type: Type<T1> | AbstractType<T1>, ancestorType: Type<T2> | AbstractType<T2>): boolean {\n if (!type || !ancestorType) {\n return false;\n }\n\n const superType = Object.getPrototypeOf(type);\n\n return superType === ancestorType || isTypeDerivedFrom(superType, ancestorType);\n}\n","/** Converts a bound attribute's value to a boolean. */\nexport function coerceBooleanAttribute(value: unknown): boolean {\n return value != null && `${value}` !== 'false';\n}\n\n/** Converts a bound attribute's value to a number. */\nexport function coerceNumberAttribute(value: unknown, fallbackValue = NaN): number {\n const isNumberValue = !isNaN(Number(value));\n return isNumberValue ? Number(value) : fallbackValue;\n}\n\n/** Converts a bound attribute's value to a string and trim. */\nexport function coerceStringAttribute(value: unknown): string {\n return value ? String(value).trim() : '';\n}\n","export function isNumber(value: unknown): value is number {\n return typeof value === 'number' || value instanceof Number;\n}\n\nexport function isNumberEven(val: number): boolean {\n return val % 2 === 0;\n}\n\nexport function isNumberOdd(val: number): boolean {\n return val % 2 === 1;\n}\n\nexport function positiveModulus(num: number, divisor: number): number {\n return ((num % divisor) + divisor) % divisor;\n}\n","export function isString(value: unknown): value is string {\n return typeof value == 'string' || value instanceof String;\n}\n","/* eslint-disable no-magic-numbers */\n\nimport { isNumber, positiveModulus } from './number';\nimport { isString } from './string';\n\nconst ISO_8601_REGEXP = /^\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|(?:(?:\\+|-)\\d{2}:\\d{2}))?)?$/;\n\nconst weekLength = 7;\n\nfunction padDigits(num: number): string {\n return num > 9 ? String(num) : `0${num}`;\n}\n\nfunction dayOfWeekWithOffset(weekDay: Date, offset: number): number {\n return (weekLength + weekDay.getDay() - offset) % weekLength;\n}\n\nexport function isDate(value: unknown): value is Date {\n return value instanceof Date;\n}\n\nexport function isValidDate(value: unknown): value is Date {\n return isDate(value) && !isNaN(value.getTime());\n}\n\nexport function getValidDateOrNull(value: unknown): Date | null {\n return isValidDate(value) ? value : null;\n}\n\nexport function equalDates(date1: Date | null, date2: Date | null): boolean {\n // eslint-disable-next-line eqeqeq\n return date1 && date2 ? Object.is(+startOfDay(date1), +startOfDay(date2)) : date1 == date2;\n}\n\nexport function compareDates(date1: Date, date2: Date): number {\n return Math.sign(+date1 - +date2);\n}\n\nexport function clampDate(date: Date, min: Date | null, max: Date | null): Date;\nexport function clampDate(date: Date | null, min: Date | null, max: Date | null): Date | null {\n if (!isValidDate(date)) {\n return date;\n }\n\n const dateMillis = date.getTime();\n const minDate = isValidDate(min) ? min.getTime() : dateMillis;\n const maxDate = isValidDate(max) ? max.getTime() : dateMillis;\n\n return new Date(Math.max(minDate, Math.min(dateMillis, maxDate)));\n}\n\nexport function invalidDate(): Date {\n return new Date(NaN);\n}\n\nexport function cloneDate(date: Date): Date {\n return new Date(date);\n}\n\nexport function parseDate(value: string, utc = false): Date | null {\n if (!value) {\n return null;\n }\n if (ISO_8601_REGEXP.test(value)) {\n return new Date(utc ? value : `${value}T00:00:00`);\n }\n return invalidDate();\n}\n\nexport function deserializeDate(value: unknown): Date | null {\n // Numeric timestamp\n if (isNumber(value)) {\n return new Date(value);\n }\n\n // Empty value -> null\n if (!value) {\n return null;\n }\n\n // value is a Date instance, nothing to process\n if (isDate(value)) {\n return value;\n }\n\n if (isString(value)) {\n return parseDate(value);\n }\n\n return invalidDate();\n}\n\nexport function formatDate(date: Date): string {\n const year = date.getFullYear();\n const month = date.getMonth() + 1;\n const day = date.getDate();\n\n return `${year}-${padDigits(month)}-${padDigits(day)}`;\n}\n\nexport function formatUTCDate(date: Date): string {\n return date.toISOString().split('T')[0];\n}\n\nexport function addDays(date: Date, days: number): Date {\n const clonedDate = cloneDate(date);\n clonedDate.setDate(clonedDate.getDate() + days);\n return clonedDate;\n}\n\nexport function addMonths(date: Date, months: number): Date {\n const newDate = new Date();\n newDate.setFullYear(date.getFullYear(), date.getMonth() + months, date.getDate());\n newDate.setHours(0, 0, 0, 0);\n\n const newMonth = newDate.getMonth();\n const desiredMonth = positiveModulus(date.getMonth() + months, 12);\n\n if (newMonth !== desiredMonth) {\n newDate.setDate(0);\n }\n\n return newDate;\n}\n\nexport function addYears(date: Date, years: number): Date {\n return addMonths(date, years * 12);\n}\n\nexport function startOfDay(date: Date): Date {\n const clonedDate = cloneDate(date);\n clonedDate.setHours(0, 0, 0, 0);\n return clonedDate;\n}\n\nexport function endOfDay(date: Date): Date {\n const clonedDate = cloneDate(date);\n clonedDate.setHours(23, 59, 59, 999);\n return clonedDate;\n}\n\nexport function startOfWeek(weekDay: Date, offset: number): Date {\n return addDays(weekDay, -dayOfWeekWithOffset(weekDay, offset));\n}\n\nexport function endOfWeek(weekDay: Date, offset: number): Date {\n return addDays(weekDay, 6 - dayOfWeekWithOffset(weekDay, offset));\n}\n\nexport function startOfMonth(date: Date): Date {\n return new Date(date.getFullYear(), date.getMonth(), 1);\n}\n\nexport function endOfMonth(date: Date): Date {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0);\n}\n\nexport function startOfYear(date: Date): Date {\n return new Date(date.getFullYear(), 0, 1);\n}\n\nexport function endOfYear(date: Date): Date {\n return new Date(date.getFullYear(), 12, 0);\n}\n\nexport function getDatesBetween(startDate: Date, endDate: Date): Date[] {\n if (!isValidDate(startDate) || !isValidDate(endDate)) {\n return [];\n }\n\n let current = startOfDay(startDate);\n const end = startOfDay(endDate);\n const result = [];\n\n while (current <= end) {\n result.push(new Date(current));\n current = addDays(current, 1);\n }\n\n return result;\n}\n\nexport function createNormalizedDate(year: number, month: number, date: number): Date {\n const daysInMonth = new Date(year, month + 1, 0).getDate();\n return new Date(year, month, Math.min(date, daysInMonth));\n}\n","import { isValidDate } from './date';\n\nexport function compare(value1: unknown, value2: unknown): number {\n if (Number.isFinite(value1) && Number.isFinite(value2)) {\n return Math.sign((value1 as number) - (value2 as number));\n }\n\n if (isValidDate(value1) && isValidDate(value2)) {\n return compare(value1.valueOf(), value2.valueOf());\n }\n\n return String(value1).localeCompare(String(value2));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|