@i-cell/ids-angular 0.2.10 → 0.2.12
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/datepicker/index.d.ts +3 -3
- package/fesm2022/i-cell-ids-angular-datepicker.mjs +3 -2
- package/fesm2022/i-cell-ids-angular-datepicker.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-menu.mjs +4 -38
- package/fesm2022/i-cell-ids-angular-menu.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-overlay-panel.mjs +30 -19
- package/fesm2022/i-cell-ids-angular-overlay-panel.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-paginator.mjs +2 -2
- package/fesm2022/i-cell-ids-angular-paginator.mjs.map +1 -1
- package/menu/index.d.ts +2 -13
- package/overlay-panel/index.d.ts +10 -4
- package/package.json +32 -32
package/datepicker/index.d.ts
CHANGED
|
@@ -86,9 +86,9 @@ declare class IdsDatepickerDirective extends DirectiveBaseWithDefaults<IdsDatepi
|
|
|
86
86
|
registerOnValidatorChange?(fn: () => void): void;
|
|
87
87
|
open(): void;
|
|
88
88
|
close(): void;
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
89
|
+
protected _handleInput(value: string): void;
|
|
90
|
+
protected _handleBlur(): void;
|
|
91
|
+
protected _handleKeydown(event: KeyboardEvent): void;
|
|
92
92
|
private _isValidValue;
|
|
93
93
|
private _setInputValue;
|
|
94
94
|
private _getOverlayConfig;
|
|
@@ -734,6 +734,8 @@ class IdsDatepickerDirective extends DirectiveBaseWithDefaults {
|
|
|
734
734
|
this._componentRef.instance.selected.subscribe((selectedDate) => {
|
|
735
735
|
this._onChange(selectedDate);
|
|
736
736
|
this._setInputValue(this.value);
|
|
737
|
+
this._isValid.set(this._isValidValue(this.value));
|
|
738
|
+
this._parent.controlDir()?.control?.updateValueAndValidity();
|
|
737
739
|
this.close();
|
|
738
740
|
});
|
|
739
741
|
this._componentRef.instance.monthSelected.subscribe((selectedMonth) => this.monthSelected.emit(selectedMonth));
|
|
@@ -813,7 +815,7 @@ class IdsDatepickerDirective extends DirectiveBaseWithDefaults {
|
|
|
813
815
|
].includes(event.code)));
|
|
814
816
|
}
|
|
815
817
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsDatepickerDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
816
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.7", type: IdsDatepickerDirective, isStandalone: true, selector: "input[idsDatepicker]", inputs: { formatter: { classPropertyName: "formatter", publicName: "formatter", isSignal: true, isRequired: false, transformFunction: null }, parser: { classPropertyName: "parser", publicName: "parser", isSignal: true, isRequired: false, transformFunction: null }, view: { classPropertyName: "view", publicName: "view", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, openedInput: { classPropertyName: "openedInput", publicName: "opened", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { monthSelected: "monthSelected", yearSelected: "yearSelected" }, host: { listeners: { "input": "_handleInput($event.target.value)", "blur": "_handleBlur()", "keydown": "_handleKeydown($event)" }
|
|
818
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.7", type: IdsDatepickerDirective, isStandalone: true, selector: "input[idsDatepicker]", inputs: { formatter: { classPropertyName: "formatter", publicName: "formatter", isSignal: true, isRequired: false, transformFunction: null }, parser: { classPropertyName: "parser", publicName: "parser", isSignal: true, isRequired: false, transformFunction: null }, view: { classPropertyName: "view", publicName: "view", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, openedInput: { classPropertyName: "openedInput", publicName: "opened", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { monthSelected: "monthSelected", yearSelected: "yearSelected" }, host: { listeners: { "input": "_handleInput($event.target.value)", "blur": "_handleBlur()", "keydown": "_handleKeydown($event)" } }, providers: [
|
|
817
819
|
{
|
|
818
820
|
provide: NG_VALUE_ACCESSOR,
|
|
819
821
|
useExisting: forwardRef(() => IdsDatepickerDirective),
|
|
@@ -843,7 +845,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
|
|
|
843
845
|
},
|
|
844
846
|
],
|
|
845
847
|
host: {
|
|
846
|
-
'[disabled]': 'disabled',
|
|
847
848
|
'(input)': '_handleInput($event.target.value)',
|
|
848
849
|
'(blur)': '_handleBlur()',
|
|
849
850
|
'(keydown)': '_handleKeydown($event)',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i-cell-ids-angular-datepicker.mjs","sources":["../../../projects/widgets/datepicker/tokens/datepicker-view.ts","../../../projects/widgets/datepicker/tokens/date-formatter.ts","../../../projects/widgets/datepicker/tokens/date-parser.ts","../../../projects/widgets/datepicker/datepicker-intl.ts","../../../projects/widgets/datepicker/trigger/datepicker-trigger.component.ts","../../../projects/widgets/datepicker/trigger/datepicker-trigger.component.html","../../../projects/widgets/datepicker/datepicker-defaults.ts","../../../projects/widgets/datepicker/calendar/calendar-page.ts","../../../projects/widgets/datepicker/day-selector/day-selector.component.ts","../../../projects/widgets/datepicker/day-selector/day-selector.component.html","../../../projects/widgets/datepicker/month-selector/month-selector.component.ts","../../../projects/widgets/datepicker/month-selector/month-selector.component.html","../../../projects/widgets/datepicker/year-selector/year-selector.component.ts","../../../projects/widgets/datepicker/year-selector/year-selector.component.html","../../../projects/widgets/datepicker/calendar/calendar.component.ts","../../../projects/widgets/datepicker/calendar/calendar.component.html","../../../projects/widgets/datepicker/datepicker-positions.ts","../../../projects/widgets/datepicker/datepicker.directive.ts","../../../projects/widgets/datepicker/i-cell-ids-angular-datepicker.ts"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const IdsDatepickerView = {\n DAY: 'day',\n MONTH: 'month',\n YEAR: 'year',\n} as const;\n\nexport type IdsDatepickerViewType = (typeof IdsDatepickerView)[keyof typeof IdsDatepickerView];\n","import { InjectionToken } from '@angular/core';\nimport { formatDate } from '@i-cell/ids-angular/core';\n\nexport type IdsDateFormatterFn = (date: Date) => string;\n\nexport const IDS_DATE_FORMATTER = new InjectionToken<IdsDateFormatterFn>('idsDateFormatter', {\n providedIn: 'root',\n factory: (): IdsDateFormatterFn => formatDate,\n});\n","import { InjectionToken } from '@angular/core';\nimport { parseDate } from '@i-cell/ids-angular/core';\n\nexport type IdsDateParserFn = (value: string, utc?: boolean) => Date | null;\n\nexport const IDS_DATE_PARSER = new InjectionToken<IdsDateParserFn>('idsDateParser', {\n providedIn: 'root',\n factory: (): IdsDateParserFn => parseDate,\n});\n","import { Injectable } from '@angular/core';\nimport { isValidDate } from '@i-cell/ids-angular/core';\nimport { Subject } from 'rxjs';\n\nconst dayAriaLabelFormat = new Intl.DateTimeFormat('en-GB', { year: 'numeric', month: 'long', day: 'numeric' });\nconst monthLabelFormat = new Intl.DateTimeFormat('en-GB', { month: 'short' });\nconst monthAriaLabelFormat = new Intl.DateTimeFormat('en-GB', { year: 'numeric', month: 'long' });\nconst daySelectorHeaderLabelFormat = new Intl.DateTimeFormat('en-GB', { year: 'numeric', month: 'long' });\nconst weekdayLabelFormat = new Intl.DateTimeFormat('en-GB', { weekday: 'narrow' });\n\n@Injectable({ providedIn: 'root' })\nexport class IdsDatepickerIntl {\n public readonly changes: Subject<void> = new Subject<void>();\n\n public triggerButtonLabel = 'Open calendar';\n\n public prevMonthLabel = 'Previous month';\n public nextMonthLabel = 'Next month';\n\n public prevYearLabel = 'Previous year';\n public nextYearLabel = 'Next year';\n\n public prevYearsPageLabel = 'Previous 24 years';\n public nextYearsPageLabel = 'Next 24 years';\n\n public switchToDaySelectorLabel = 'Choose date';\n public switchToYearSelectorLabel = 'Choose year and month';\n\n public getDayAriaLabel(date: Date): string | null {\n return this._formatDate(date, dayAriaLabelFormat);\n }\n\n public getMonthLabel(date: Date): string | null {\n return this._formatDate(date, monthLabelFormat);\n }\n\n public getMonthAriaLabel(date: Date): string | null {\n return this._formatDate(date, monthAriaLabelFormat);\n }\n\n public getDaySelectorHeaderLabel(date: Date): string | null {\n return this._formatDate(date, daySelectorHeaderLabelFormat);\n }\n\n public getWeekdayHeaderLabel(date: Date): string | null {\n return this._formatDate(date, weekdayLabelFormat);\n }\n\n protected _formatDate(date: unknown, dateFormat: Intl.DateTimeFormat): string | null {\n return isValidDate(date) ? dateFormat.format(date) : null;\n }\n}\n","import { IdsDatepickerIntl } from '../datepicker-intl';\nimport { IdsDatepickerDirective } from '../datepicker.directive';\n\nimport { ChangeDetectionStrategy, Component, inject, input, ViewEncapsulation } from '@angular/core';\nimport { IdsFormFieldComponent } from '@i-cell/ids-angular/forms';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';\n\n@Component({\n selector: 'ids-datepicker-trigger',\n imports: [\n IdsIconComponent,\n IdsIconButtonComponent,\n ],\n templateUrl: './datepicker-trigger.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IdsDatepickerTriggerComponent {\n protected _parent = inject(IdsFormFieldComponent);\n protected _intl = inject(IdsDatepickerIntl);\n\n public datepicker = input.required<IdsDatepickerDirective>({ alias: 'for' });\n public ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n}\n","<button\n type=\"button\"\n idsIconButton\n aria-haspopup=\"true\"\n [size]=\"'dense'\"\n [variant]=\"'surface'\"\n [disabled]=\"_parent.disabled()\"\n [attr.aria-label]=\"ariaLabel() || _intl.triggerButtonLabel\"\n [attr.aria-expanded]=\"datepicker() ? datepicker().opened() : null\"\n (click)=\"datepicker().open()\"\n>\n <ids-icon aria-hidden=\"true\" fontIcon=\"calendar-month-outline\" [attr.alt]=\"ariaLabel() || _intl.triggerButtonLabel\" />\n</button>\n","import { IdsDatepickerView, IdsDatepickerViewType } from './tokens/datepicker-view';\n\nimport { InjectionToken } from '@angular/core';\n\nexport interface IdsDatepickerDefaultConfig {\n view?: IdsDatepickerViewType,\n}\n\nexport const IDS_DATEPICKER_DEFAULT_CONFIG = new InjectionToken<IdsDatepickerDefaultConfig>(\n 'IDS_DATEPICKER_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_DATEPICKER_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_DATEPICKER_DEFAULT_CONFIG_FACTORY(): Required<IdsDatepickerDefaultConfig> {\n return {\n view: IdsDatepickerView.DAY,\n };\n}\n\n","import { IdsDatepickerIntl } from '../datepicker-intl';\n\nimport { afterNextRender, AfterViewInit, ChangeDetectorRef, Directive, ElementRef, inject, Injector, input, model, output, Signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\n\n@Directive()\nexport abstract class IdsCalendarPage implements AfterViewInit {\n private readonly _calendarButtonSelector = '.ids-calendar-button-focused';\n public abstract headerLabel: Signal<string>;\n\n protected _element = inject(ElementRef);\n private _injector = inject(Injector);\n private _cdRef = inject(ChangeDetectorRef);\n protected _intl = inject(IdsDatepickerIntl);\n\n public value = input<Date | null>(null);\n public focusedDate = model.required<Date>();\n public min = input<Date | null>(null);\n public max = input<Date | null>(null);\n\n public selected = output<Date>();\n\n public abstract hasPreviousPage(): boolean;\n public abstract gotoPreviousPage(): void;\n public abstract hasNextPage(): boolean;\n public abstract gotoNextPage(): void;\n\n protected readonly _today = new Date();\n\n constructor() {\n toObservable(this.focusedDate).pipe(takeUntilDestroyed()).subscribe(() => this._moveFocusToCurrent());\n this._intl.changes.pipe(takeUntilDestroyed()).subscribe(() => this._cdRef.markForCheck());\n }\n\n public ngAfterViewInit(): void {\n this._moveFocusToCurrent();\n }\n\n private _moveFocusToCurrent(): void {\n afterNextRender(() => {\n const focusedDayButton = this._element.nativeElement.querySelector(this._calendarButtonSelector) as HTMLButtonElement;\n if (focusedDayButton) {\n focusedDayButton.focus();\n }\n }, { injector: this._injector });\n }\n}\n","import { IdsCalendarPage } from '../calendar/calendar-page';\n\nimport { ChangeDetectionStrategy, Component, computed, ViewEncapsulation } from '@angular/core';\nimport { addDays, addMonths, addYears, clampDate, compareDates, endOfMonth, endOfWeek, equalDates, getDatesBetween, isValidDate, startOfMonth, startOfWeek } from '@i-cell/ids-angular/core';\n\nconst firstDayOfWeekOffset = 1;\nconst daysPerWeek = 7;\n\n@Component({\n selector: 'ids-day-selector',\n imports: [],\n templateUrl: './day-selector.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: IdsCalendarPage,\n useExisting: IdsDaySelectorComponent,\n },\n ],\n host: {\n 'class': 'ids-day-selector',\n '(keydown)': '_handleKeydown($event)',\n },\n})\nexport class IdsDaySelectorComponent extends IdsCalendarPage {\n public override headerLabel = computed<string>(() => (this._intl.getDaySelectorHeaderLabel(this._currentMonth()) ?? ''));\n\n protected _currentMonth = computed<Date>(() => startOfMonth(this.focusedDate()));\n protected _previousMonth = computed<Date>(() => addMonths(this._currentMonth(), -1));\n protected _nextMonth = computed<Date>(() => addMonths(this._currentMonth(), 1));\n\n protected _gridStartDate = computed(() => startOfWeek(this._currentMonth(), firstDayOfWeekOffset));\n protected _gridEndDate = computed(() => endOfWeek(endOfMonth(this._currentMonth()), firstDayOfWeekOffset));\n protected _days = computed(() => getDatesBetween(this._gridStartDate(), this._gridEndDate()));\n\n protected _weekdayLabels = computed<string[]>(() =>\n this._days().slice(0, daysPerWeek).map((date: Date) => this._intl.getWeekdayHeaderLabel(date) ?? ''));\n\n public override hasPreviousPage(): boolean {\n const dayOnPrevPage = addDays(this._gridStartDate(), -1);\n const min = this.min() ?? dayOnPrevPage;\n\n return compareDates(dayOnPrevPage, min) > -1;\n }\n\n public override gotoPreviousPage(): void {\n const current = this._currentMonth();\n this.focusedDate.set(new Date(current.getFullYear(), current.getMonth(), 0));\n }\n\n public override hasNextPage(): boolean {\n const dayOnNextPage = addDays(this._gridEndDate(), 1);\n const max = this.max() ?? dayOnNextPage;\n\n return compareDates(dayOnNextPage, max) < 1;\n }\n\n public override gotoNextPage(): void {\n const current = this._currentMonth();\n this.focusedDate.set(new Date(current.getFullYear(), current.getMonth() + 1, 1));\n }\n\n protected _selectDate(event: MouseEvent, date: Date): void {\n event.stopPropagation();\n event.preventDefault();\n this.selected.emit(date);\n }\n\n protected _isDateInCurrentMonth(date: Date): boolean {\n return date.getMonth() === this._currentMonth().getMonth();\n }\n\n protected _isDateFocused(date: Date): boolean {\n return equalDates(date, this.focusedDate());\n }\n\n protected _isDateSelected(date: Date): boolean {\n return equalDates(date, this.value());\n }\n\n protected _isDateDisabled(date: Date): boolean {\n const min = this.min();\n const max = this.max();\n\n return (isValidDate(min) && compareDates(date, min) === -1) || (isValidDate(max) && compareDates(date, max) === 1);\n }\n\n protected _isDateToday(date: Date): boolean {\n return equalDates(date, this._today);\n }\n\n private _handleKeydown(event: KeyboardEvent): void {\n let focusedDate = this.focusedDate();\n\n switch (event.code) {\n case 'ArrowUp':\n\n focusedDate = addDays(focusedDate, -daysPerWeek);\n break;\n case 'ArrowDown':\n\n focusedDate = addDays(focusedDate, daysPerWeek);\n break;\n case 'ArrowLeft':\n focusedDate = addDays(focusedDate, -1);\n break;\n case 'ArrowRight':\n focusedDate = addDays(focusedDate, 1);\n break;\n case 'Home':\n focusedDate = startOfWeek(focusedDate, firstDayOfWeekOffset);\n break;\n case 'End':\n focusedDate = endOfWeek(focusedDate, firstDayOfWeekOffset);\n break;\n case 'PageUp':\n focusedDate = this._hasShiftModifierKey(event) ? addYears(focusedDate, -1) : addMonths(focusedDate, -1);\n break;\n case 'PageDown':\n focusedDate = this._hasShiftModifierKey(event) ? addYears(focusedDate, 1) : addMonths(focusedDate, 1);\n break;\n }\n\n this.focusedDate.set(clampDate(focusedDate, this.min(), this.max()));\n }\n\n private _hasShiftModifierKey(event: KeyboardEvent): boolean {\n return event.shiftKey && !event.ctrlKey && !event.altKey && !event.metaKey;\n }\n}\n","<div class=\"ids-day-selector__days-grid ids-calendar-grid\">\n @for (label of _weekdayLabels(); track $index) {\n <div class=\"ids-calendar-cell\">\n <span class=\"ids-day-selector__header--label ids-calendar-weekday-label\">{{ label }}</span>\n </div>\n }\n @for (day of _days(); track $index) {\n @let dayLabel = day.getDate();\n @let isSelected = _isDateSelected(day);\n @let isFocused = _isDateFocused(day);\n @let isToday = _isDateToday(day);\n @let isDisabled = _isDateDisabled(day) || !_isDateInCurrentMonth(day);\n @let tabIndex = isFocused ? 0 : -1;\n @let ariaLabel = _intl.getDayAriaLabel(day);\n <div class=\"ids-calendar-cell\" [class.ids-calendar-cell-selected]=\"isSelected\">\n <button\n type=\"button\"\n class=\"ids-day-selector__day-button ids-calendar-button\"\n [attr.disabled]=\"isDisabled || null\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-pressed]=\"isSelected\"\n [attr.aria-current]=\"isToday\"\n [tabIndex]=\"tabIndex\"\n [class.ids-calendar-button-today]=\"isToday\"\n [class.ids-calendar-button-selected]=\"isSelected\"\n [class.ids-calendar-button-focused]=\"isFocused\"\n (click)=\"_selectDate($event, day)\"\n >{{ dayLabel }}</button>\n </div>\n }\n</div>\n","import { IdsCalendarPage } from '../calendar/calendar-page';\n\nimport { ChangeDetectionStrategy, Component, computed, ViewEncapsulation } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { addMonths, addYears, clampDate, compareDates, createNormalizedDate, endOfMonth, isValidDate, startOfMonth } from '@i-cell/ids-angular/core';\nimport { map, startWith } from 'rxjs';\n\nconst monthsPerRow = 4;\nconst lastMonth = 11;\n\n@Component({\n selector: 'ids-month-selector',\n imports: [],\n templateUrl: './month-selector.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: IdsCalendarPage,\n useExisting: IdsMonthSelectorComponent,\n },\n ],\n host: {\n 'class': 'ids-month-selector',\n '(keydown)': '_handleKeydown($event)',\n },\n})\nexport class IdsMonthSelectorComponent extends IdsCalendarPage {\n protected _focusedYear = computed<number>(() => this.focusedDate().getFullYear());\n\n protected _monthLabels = toSignal(this._intl.changes.pipe(startWith(null), map(() => {\n const currentYear = new Date().getFullYear();\n const monthLabels = Array.from({ length: 12 })\n .map((nil, month) => this._intl.getMonthLabel(createNormalizedDate(currentYear, month, 1)) ?? '');\n return monthLabels;\n })));\n\n public override headerLabel = computed<string>(() => String(this._focusedYear()));\n\n public override hasPreviousPage(): boolean {\n const min = this.min();\n\n if (!isValidDate(min)) {\n return true;\n }\n\n const startOfYear = createNormalizedDate(this._focusedYear(), 0, 1);\n\n return compareDates(min, startOfYear) === -1;\n }\n\n public override gotoPreviousPage(): void {\n this.focusedDate.set(createNormalizedDate(this._focusedYear() - 1, lastMonth, 1));\n }\n\n public override hasNextPage(): boolean {\n const max = this.max();\n\n if (!isValidDate(max)) {\n return true;\n }\n\n // eslint-disable-next-line no-magic-numbers\n const endOfYear = createNormalizedDate(this._focusedYear(), 11, 31);\n\n return compareDates(max, endOfYear) === 1;\n }\n\n public override gotoNextPage(): void {\n this.focusedDate.set(createNormalizedDate(this._focusedYear() + 1, 0, 1));\n }\n\n protected _selectMonth(event: MouseEvent, month: number): void {\n event.stopPropagation();\n event.preventDefault();\n\n const currentFocusedDate = this.focusedDate();\n const nextFocusedDate = createNormalizedDate(currentFocusedDate.getFullYear(), month, currentFocusedDate.getDate());\n\n this.selected.emit(clampDate(nextFocusedDate, this.min(), this.max()));\n }\n\n protected _isMonthFocused(month: number): boolean {\n return month === this.focusedDate().getMonth();\n }\n\n protected _isMonthSelected(month: number): boolean {\n const selectedYear = this.value()?.getFullYear();\n const selectedMonth = this.value()?.getMonth();\n\n return this._focusedYear() === selectedYear && month === selectedMonth;\n }\n\n protected _isCurrentMonth(month: number): boolean {\n return this._focusedYear() === this._today.getFullYear() && month === this._today.getMonth();\n }\n\n protected _isMonthDisabled(month: number): boolean {\n const min = this.min();\n const max = this.max();\n const monthAsDate = new Date(this._focusedYear(), month, 1);\n\n return (isValidDate(min) && compareDates(endOfMonth(monthAsDate), startOfMonth(min)) === -1) ||\n (isValidDate(max) && compareDates(monthAsDate, endOfMonth(max)) === 1);\n }\n\n protected _getMonthAsDate(month: number): Date {\n return createNormalizedDate(this._focusedYear(), month, 1);\n }\n\n private _handleKeydown(event: KeyboardEvent): void {\n let focusedDate = this.focusedDate();\n\n switch (event.code) {\n case 'ArrowUp':\n focusedDate = addMonths(focusedDate, -monthsPerRow);\n break;\n case 'ArrowDown':\n focusedDate = addMonths(focusedDate, monthsPerRow);\n break;\n case 'ArrowLeft':\n focusedDate = addMonths(focusedDate, -1);\n break;\n case 'ArrowRight':\n focusedDate = addMonths(focusedDate, 1);\n break;\n case 'Home':\n focusedDate = new Date(focusedDate.getFullYear(), 0, focusedDate.getDate());\n break;\n case 'End':\n // eslint-disable-next-line no-magic-numbers\n focusedDate = new Date(focusedDate.getFullYear(), 11, focusedDate.getDate());\n break;\n case 'PageUp':\n focusedDate = addYears(focusedDate, -1);\n break;\n case 'PageDown':\n focusedDate = addYears(focusedDate, 1);\n break;\n }\n\n this.focusedDate.set(clampDate(focusedDate, this.min(), this.max()));\n }\n}\n","<div class=\"ids-month-selector__months-grid ids-calendar-grid\">\n @for (monthLabel of _monthLabels(); track $index; let month = $index) {\n @let isSelected = _isMonthSelected(month);\n @let isFocused = _isMonthFocused(month);\n @let isCurrentMonth = _isCurrentMonth(month);\n @let tabIndex = isFocused ? 0 : -1;\n @let isDisabled = _isMonthDisabled(month);\n @let ariaLabel = _intl.getMonthAriaLabel(_getMonthAsDate(month));\n <div class=\"ids-calendar-cell\">\n <button\n type=\"button\"\n class=\"ids-month-selector__month-button ids-calendar-button\"\n [attr.disabled]=\"isDisabled || null\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-pressed]=\"isSelected\"\n [attr.aria-current]=\"isCurrentMonth\"\n [tabIndex]=\"tabIndex\"\n [class.ids-month-selector__month-button--current-month]=\"isCurrentMonth\"\n [class.ids-calendar-button-selected]=\"isSelected\"\n [class.ids-calendar-button-focused]=\"isFocused\"\n (click)=\"_selectMonth($event, month)\"\n >{{ monthLabel }}</button>\n </div>\n }\n</div>\n","import { IdsCalendarPage } from '../calendar/calendar-page';\n\nimport { ChangeDetectionStrategy, Component, computed, ViewEncapsulation } from '@angular/core';\nimport { addYears, clampDate, createNormalizedDate, isValidDate, positiveModulus } from '@i-cell/ids-angular/core';\n\nconst yearsPerRow = 4;\nconst yearsPerPage = 24;\n\n@Component({\n selector: 'ids-year-selector',\n imports: [],\n templateUrl: './year-selector.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: IdsCalendarPage,\n useExisting: IdsYearSelectorComponent,\n },\n ],\n host: {\n 'class': 'ids-year-selector',\n '(keydown)': '_handleKeydown($event)',\n },\n})\nexport class IdsYearSelectorComponent extends IdsCalendarPage {\n private _firstYearOnPage = computed(() => {\n const focusedYear = this.focusedDate().getFullYear();\n const firstYearOffset = this._getFirstYearOffset(focusedYear, this.min()?.getFullYear(), this.max()?.getFullYear());\n const firstYearOnPage = focusedYear - firstYearOffset;\n\n return firstYearOnPage;\n });\n\n protected _years = computed(() => {\n const firstYearOnPage = this._firstYearOnPage();\n const years = Array.from({ length: yearsPerPage }).map((_nil, index) => firstYearOnPage + index);\n\n return years;\n });\n\n public override headerLabel = computed<string>(() => `${this._years()[0]} - ${this._years().at(-1)}`);\n\n public override hasPreviousPage(): boolean {\n const min = Number.isFinite(this.min()?.getFullYear()) ? this.min()!.getFullYear() : Number.POSITIVE_INFINITY;\n const firstYearOnPage = Number.isFinite(this._firstYearOnPage()) ? this._firstYearOnPage() : Number.NEGATIVE_INFINITY;\n\n return firstYearOnPage > min;\n }\n\n public override gotoPreviousPage(): void {\n const firstYearOnPage = this._firstYearOnPage();\n const currentFocusedDate = this.focusedDate();\n this.focusedDate.set(createNormalizedDate(firstYearOnPage - 1, currentFocusedDate.getMonth(), currentFocusedDate.getDate()));\n }\n\n public override hasNextPage(): boolean {\n const max = Number.isFinite(this.max()?.getFullYear()) ? this.max()!.getFullYear() : Number.NEGATIVE_INFINITY;\n const lastYearOnPage = Number.isFinite(this._firstYearOnPage()) ? this._firstYearOnPage() + yearsPerPage - 1 : Number.POSITIVE_INFINITY;\n\n return lastYearOnPage < max;\n }\n\n public override gotoNextPage(): void {\n const firstYearOnPage = this._firstYearOnPage();\n const currentFocusedDate = this.focusedDate();\n this.focusedDate.set(\n createNormalizedDate(firstYearOnPage + yearsPerPage, currentFocusedDate.getMonth(), currentFocusedDate.getDate()));\n }\n\n protected _selectYear(event: MouseEvent, year: number): void {\n event.stopPropagation();\n event.preventDefault();\n\n const currentFocusedDate = this.focusedDate();\n const nextFocusedDate = createNormalizedDate(year, currentFocusedDate.getMonth(), currentFocusedDate.getDate());\n\n this.selected.emit(clampDate(nextFocusedDate, this.min(), this.max()));\n }\n\n protected _isYearFocused(year: number): boolean {\n return year === this.focusedDate().getFullYear();\n }\n\n protected _isYearSelected(year: number): boolean {\n return year === this.value()?.getFullYear();\n }\n\n protected _isCurrentYear(year: number): boolean {\n return year === new Date().getFullYear();\n }\n\n protected _isYearDisabled(year: number): boolean {\n const min = this.min();\n const max = this.max();\n\n return (isValidDate(min) && year < min.getFullYear()) || (isValidDate(max) && year > max.getFullYear());\n }\n\n private _handleKeydown(event: KeyboardEvent): void {\n let focusedDate = this.focusedDate();\n\n switch (event.code) {\n case 'ArrowUp':\n focusedDate = addYears(focusedDate, -yearsPerRow);\n break;\n case 'ArrowDown':\n focusedDate = addYears(focusedDate, yearsPerRow);\n break;\n case 'ArrowLeft':\n focusedDate = addYears(focusedDate, -1);\n break;\n case 'ArrowRight':\n focusedDate = addYears(focusedDate, 1);\n break;\n case 'Home':\n focusedDate = new Date(this._years()[0], focusedDate.getMonth(), focusedDate.getDate());\n break;\n case 'End':\n focusedDate = new Date(this._years().at(-1)!, focusedDate.getMonth(), focusedDate.getDate());\n break;\n case 'PageUp':\n focusedDate = addYears(focusedDate, -yearsPerPage);\n break;\n case 'PageDown':\n focusedDate = addYears(focusedDate, yearsPerPage);\n break;\n }\n\n this.focusedDate.set(clampDate(focusedDate, this.min(), this.max()));\n }\n\n private _getFirstYearOffset(focusedYear: number, minYear?: number, maxYear: number = (yearsPerPage - 1)): number {\n // If we have a max year we calculate an offset so that the max year will be the last in the years list\n // Otherwise if we have a min year we calculate an offset so that the min year will be the first in the years list\n const minMaxOffset = maxYear - yearsPerPage + 1 || minYear || 0;\n return positiveModulus(focusedYear - minMaxOffset, yearsPerPage);\n }\n}\n","<div class=\"ids-year-selector__years-grid ids-calendar-grid\">\n @for (year of _years(); track $index) {\n @let isSelected = _isYearSelected(year);\n @let isFocused = _isYearFocused(year);\n @let isCurrentYear = _isCurrentYear(year);\n @let tabIndex = isFocused ? 0 : -1;\n @let isDisabled = _isYearDisabled(year);\n <div class=\"ids-calendar-cell\">\n <button\n type=\"button\"\n class=\"ids-year-selector__year-button ids-calendar-button\"\n [attr.disabled]=\"isDisabled || null\"\n [attr.aria-pressed]=\"isSelected\"\n [attr.aria-current]=\"isCurrentYear\"\n [tabIndex]=\"tabIndex\"\n [class.ids-year-selector__year-button--current-year]=\"isCurrentYear\"\n [class.ids-calendar-button-selected]=\"isSelected\"\n [class.ids-calendar-button-focused]=\"isFocused\"\n (click)=\"_selectYear($event, year)\"\n >{{ year }}</button>\n </div>\n }\n</div>\n","import { IdsCalendarPage } from './calendar-page';\n\nimport { IdsDatepickerIntl } from '../datepicker-intl';\nimport { IdsDaySelectorComponent } from '../day-selector/day-selector.component';\nimport { IdsMonthSelectorComponent } from '../month-selector/month-selector.component';\nimport { IdsDatepickerView, IdsDatepickerViewType } from '../tokens/datepicker-view';\nimport { IdsYearSelectorComponent } from '../year-selector/year-selector.component';\n\nimport { CdkTrapFocus } from '@angular/cdk/a11y';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, inject, input, linkedSignal, OnInit, output, viewChild, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { IdsButtonComponent } from '@i-cell/ids-angular/button';\nimport { clampDate, ComponentBaseWithDefaults, IdsSize, IdsSizeType, isValidDate, startOfMonth, startOfYear } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';\n\n@Component({\n selector: 'ids-calendar',\n imports: [\n IdsButtonComponent,\n IdsIconComponent,\n IdsIconButtonComponent,\n IdsDaySelectorComponent,\n IdsMonthSelectorComponent,\n IdsYearSelectorComponent,\n ],\n templateUrl: './calendar.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [CdkTrapFocus],\n host: {\n 'class': 'ids-calendar-surface',\n },\n})\nexport class IdsCalendarComponent extends ComponentBaseWithDefaults<object> implements OnInit {\n protected readonly _defaultConfig = {};\n protected override get _hostName(): string {\n return 'calendar';\n }\n\n private _cdRef = inject(ChangeDetectorRef);\n private _intl = inject(IdsDatepickerIntl);\n\n public value = input<Date | null>(null);\n public size = input.required<IdsSizeType>();\n public view = input.required<IdsDatepickerViewType>();\n public min = input<Date | null>(null);\n public max = input<Date | null>(null);\n\n public selected = output<Date>();\n public monthSelected = output<Date>();\n public yearSelected = output<Date>();\n\n private _calendarPage = viewChild(IdsCalendarPage);\n\n protected _view = linkedSignal(() => this.view());\n\n protected _hostClasses = computed(() => this._getHostClasses([this.size()]));\n\n protected _headerButtonSize = computed(() => (this.size() === IdsSize.DENSE ? IdsSize.COMPACT : this.size()));\n protected _headerLabel = computed<string>(() => this._calendarPage()?.headerLabel() ?? '');\n\n protected _prevPageLabel = computed<string>(() => {\n switch (this._view()) {\n case IdsDatepickerView.DAY:\n return this._intl.prevMonthLabel;\n case IdsDatepickerView.MONTH:\n return this._intl.prevYearLabel;\n case IdsDatepickerView.YEAR:\n return this._intl.prevYearsPageLabel;\n }\n });\n\n protected _nextPageLabel = computed<string>(() => {\n switch (this._view()) {\n case IdsDatepickerView.DAY:\n return this._intl.nextMonthLabel;\n case IdsDatepickerView.MONTH:\n return this._intl.nextYearLabel;\n case IdsDatepickerView.YEAR:\n return this._intl.nextYearsPageLabel;\n }\n });\n\n protected _switchViewLabel = computed<string>(() => (\n this._view() === IdsDatepickerView.DAY ? this._intl.switchToYearSelectorLabel : this._intl.switchToDaySelectorLabel\n ));\n\n protected _focusedDate: Date = new Date();\n\n public ngOnInit(): void {\n this._intl.changes.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => this._cdRef.markForCheck());\n this._setFocusedDate(this.value());\n }\n\n protected _selectYear(selectedYear: Date): void {\n this._setFocusedDate(selectedYear);\n this.yearSelected.emit(startOfYear(selectedYear));\n this._view.set(IdsDatepickerView.MONTH);\n }\n\n protected _selectMonth(selectedMonth: Date): void {\n this._setFocusedDate(selectedMonth);\n this.monthSelected.emit(startOfMonth(selectedMonth));\n this._view.set(IdsDatepickerView.DAY);\n }\n\n protected _selectDate(date: Date): void {\n this.selected.emit(date);\n }\n\n protected _hasPrevPage(): boolean {\n return this._calendarPage()?.hasPreviousPage() ?? true;\n }\n\n protected _gotoPrevPage(): void {\n this._calendarPage()!.gotoPreviousPage();\n }\n\n protected _hasNextPage(): boolean {\n return this._calendarPage()?.hasNextPage() ?? true;\n }\n\n protected _gotoNextPage(): void {\n this._calendarPage()!.gotoNextPage();\n }\n\n protected _switchView(): void {\n switch (this._view()) {\n case IdsDatepickerView.DAY:\n this._view.set(IdsDatepickerView.YEAR);\n break;\n case IdsDatepickerView.YEAR:\n case IdsDatepickerView.MONTH:\n this._view.set(IdsDatepickerView.DAY);\n break;\n }\n }\n\n private _setFocusedDate(date: Date | null): void {\n const safeValue = isValidDate(date) ? date : new Date();\n this._focusedDate = clampDate(safeValue, this.min(), this.max());\n this._cdRef.markForCheck();\n }\n}\n","<div class=\"ids-calendar__header\">\n <button\n type=\"button\"\n idsIconButton\n [size]=\"_headerButtonSize()\"\n [variant]=\"'surface'\"\n [appearance]=\"'standard'\"\n [disabled]=\"!_hasPrevPage()\"\n [attr.aria-label]=\"_prevPageLabel()\"\n (click)=\"_gotoPrevPage()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"chevron-left\" [sizeCollection]=\"'big'\" />\n </button>\n <button\n type=\"button\"\n idsButton\n [size]=\"_headerButtonSize()\"\n [variant]=\"'surface'\"\n [appearance]=\"'text'\"\n [attr.aria-label]=\"_switchViewLabel()\"\n [attr.aria-description]=\"_headerLabel()\"\n (click)=\"_switchView()\"\n >\n {{ _headerLabel() }}\n <ids-icon icon-trailing aria-hidden=\"true\" alt=\"\" fontIcon=\"chevron-down\" />\n </button>\n <button\n type=\"button\"\n idsIconButton\n [size]=\"_headerButtonSize()\"\n [variant]=\"'surface'\"\n [appearance]=\"'standard'\"\n [disabled]=\"!_hasNextPage()\"\n [attr.aria-label]=\"_nextPageLabel()\"\n (click)=\"_gotoNextPage()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"chevron-right\" />\n </button>\n</div>\n@switch (_view()) {\n @case ('day') {\n <ids-day-selector [value]=\"value()\" [min]=\"min()\" [max]=\"max()\" [(focusedDate)]=\"_focusedDate\" (selected)=\"_selectDate($event)\" />\n }\n @case ('month') {\n <ids-month-selector [value]=\"value()\" [min]=\"min()\" [max]=\"max()\" [(focusedDate)]=\"_focusedDate\" (selected)=\"_selectMonth($event)\" />\n }\n @case ('year') {\n <ids-year-selector [value]=\"value()\" [min]=\"min()\" [max]=\"max()\" [(focusedDate)]=\"_focusedDate\" (selected)=\"_selectYear($event)\" />\n }\n}\n","import { ConnectedPosition } from '@angular/cdk/overlay';\n\nexport const datepickerConnectedPositions: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n panelClass: 'ids-datepicker-calendar-above',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n panelClass: 'ids-datepicker-calendar-above',\n },\n];\n","import { IdsCalendarComponent } from './calendar/calendar.component';\nimport { IDS_DATEPICKER_DEFAULT_CONFIG, IDS_DATEPICKER_DEFAULT_CONFIG_FACTORY, IdsDatepickerDefaultConfig } from './datepicker-defaults';\nimport { datepickerConnectedPositions } from './datepicker-positions';\nimport { IDS_DATE_FORMATTER } from './tokens/date-formatter';\nimport { IDS_DATE_PARSER } from './tokens/date-parser';\nimport { IdsDatepickerViewType } from './tokens/datepicker-view';\n\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { afterNextRender, booleanAttribute, ComponentRef, Directive, effect, ElementRef, forwardRef, inject, Injector, input, OnChanges, output, signal, SimpleChanges, ViewContainerRef } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn, Validators } from '@angular/forms';\nimport { compareDates, deserializeDate, DirectiveBaseWithDefaults, equalDates, getValidDateOrNull, isValidDate } from '@i-cell/ids-angular/core';\nimport { IdsFormFieldComponent } from '@i-cell/ids-angular/forms';\nimport { filter, merge, Observable, Subscription } from 'rxjs';\n\nconst defaultConfig = IDS_DATEPICKER_DEFAULT_CONFIG_FACTORY();\n\n@Directive({\n selector: 'input[idsDatepicker]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IdsDatepickerDirective),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => IdsDatepickerDirective),\n multi: true,\n },\n ],\n host: {\n '[disabled]': 'disabled',\n '(input)': '_handleInput($event.target.value)',\n '(blur)': '_handleBlur()',\n '(keydown)': '_handleKeydown($event)',\n },\n exportAs: 'idsDatepicker',\n})\nexport class IdsDatepickerDirective extends DirectiveBaseWithDefaults<IdsDatepickerDefaultConfig>\n implements OnChanges, ControlValueAccessor, Validator {\n\n protected override _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_DATEPICKER_DEFAULT_CONFIG);\n protected override _hostClasses = signal('');\n\n private _viewContainerRef = inject(ViewContainerRef);\n private _elementRef = inject(ElementRef);\n private _parent = inject(IdsFormFieldComponent);\n private _overlay = inject(Overlay);\n private _injector = inject(Injector);\n\n public formatter = input(inject(IDS_DATE_FORMATTER));\n public parser = input(inject(IDS_DATE_PARSER));\n\n public view = input<IdsDatepickerViewType>(this._defaultConfig.view);\n public minDate = input(null, { transform: (value: unknown) => getValidDateOrNull(deserializeDate(value)) });\n public maxDate = input(null, { transform: (value: unknown) => getValidDateOrNull(deserializeDate(value)) });\n\n private _inputChanges = effect(() => {\n const min = this.minDate();\n const max = this.maxDate();\n const view = this.view();\n const size = this._parent.size();\n const calendar = this._componentRef?.instance;\n\n if (!calendar) {\n return;\n }\n\n if (!equalDates(min, calendar.min())) {\n this._componentRef?.setInput('min', min);\n }\n if (!equalDates(max, calendar.max())) {\n this._componentRef?.setInput('max', max);\n }\n if (view !== calendar.view()) {\n this._componentRef?.setInput('view', view);\n }\n if (size !== calendar.size()) {\n this._componentRef?.setInput('size', size);\n }\n });\n\n public openedInput = input<boolean, unknown>(false, { transform: booleanAttribute, alias: 'opened' });\n private _opened = signal(this.openedInput() ?? false);\n public opened = this._opened.asReadonly();\n\n public monthSelected = output<Date>();\n public yearSelected = output<Date>();\n\n private _onChange: (value: unknown) => void = () => {};\n private _onTouched: () => void = () => {};\n private _onValidatorChange: () => void = () => {};\n\n private _overlayRef: OverlayRef | null = null;\n private _componentRef: ComponentRef<IdsCalendarComponent> | null = null;\n private _scrollStrategy = this._overlay.scrollStrategies.reposition();\n\n private _overlayCloseSub = Subscription.EMPTY;\n\n public get value(): Date | null {\n return deserializeDate(this._parent.controlDir()?.value);\n }\n\n private _isValid = signal(false);\n\n private _dateFormatValidator: ValidatorFn = (): ValidationErrors | null => (this._isValid() ? null : { idsDateFormat: true });\n\n private _minValidator: ValidatorFn = (): ValidationErrors | null => {\n const current = getValidDateOrNull(deserializeDate(this.value));\n const min = this.minDate();\n return !min || !current || compareDates(min, current) <= 0 ? null : { 'idsDateMin': { min, current } };\n };\n\n private _maxValidator: ValidatorFn = (): ValidationErrors | null => {\n const current = getValidDateOrNull(deserializeDate(this.value));\n const max = this.maxDate();\n return !max || !current || compareDates(max, current) >= 0 ? null : { 'idsDateMax': { max, current } };\n };\n\n // eslint-disable-next-line @stylistic/js/array-bracket-newline, @stylistic/js/array-element-newline\n private _validator = Validators.compose([this._dateFormatValidator, this._minValidator, this._maxValidator]) as ValidatorFn;\n\n public ngOnChanges(changes: SimpleChanges): void {\n if ('opened' in changes) {\n if (this.openedInput()) {\n this.open();\n } else {\n this.close();\n }\n }\n if (('minDate' in changes && !changes['minDate'].firstChange) || ('maxDate' in changes && !changes['maxDate'].firstChange)) {\n this._onValidatorChange();\n }\n }\n\n // #region Value accessor implementation\n public writeValue(obj: unknown): void {\n this._isValid.set(this._isValidValue(deserializeDate(obj)));\n this._setInputValue(obj);\n }\n\n public registerOnChange(fn: () => void): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n // #endregion\n\n // #region Validator implementation\n public validate(control: AbstractControl): ValidationErrors | null {\n return this._validator(control);\n }\n\n public registerOnValidatorChange?(fn: () => void): void {\n this._onValidatorChange = fn;\n }\n // #endregion\n\n public open(): void {\n if (this.opened() || this._parent.disabled()) {\n return;\n }\n\n this._overlayRef = this._overlay.create(this._getOverlayConfig());\n\n this._overlayCloseSub = this._onOverlayClose(this._overlayRef).subscribe((event) => {\n event?.preventDefault();\n this.close();\n });\n this._onPageNavigationKeydown(this._overlayRef).subscribe((event) => event?.preventDefault());\n\n this._componentRef = this._overlayRef.attach(new ComponentPortal(IdsCalendarComponent, this._viewContainerRef));\n this._componentRef.setInput('value', this.value);\n this._componentRef.setInput('min', this.minDate());\n this._componentRef.setInput('max', this.maxDate());\n this._componentRef.setInput('view', this.view());\n this._componentRef.setInput('size', this._parent.size());\n\n this._componentRef.instance.selected.subscribe((selectedDate: Date) => {\n this._onChange(selectedDate);\n this._setInputValue(this.value);\n this.close();\n });\n this._componentRef.instance.monthSelected.subscribe((selectedMonth: Date) => this.monthSelected.emit(selectedMonth));\n this._componentRef.instance.yearSelected.subscribe((selectedYear: Date) => this.yearSelected.emit(selectedYear));\n\n this._opened.set(true);\n }\n\n public close(): void {\n if (!this._opened()) {\n return;\n }\n\n this._overlayCloseSub.unsubscribe();\n this._overlayCloseSub = Subscription.EMPTY;\n\n this._disposeOverlay();\n\n this._opened.set(false);\n\n afterNextRender(() => this._elementRef.nativeElement.focus(), { injector: this._injector });\n }\n\n private _handleInput(value: string): void {\n const parsed = this.parser()(value);\n\n this._isValid.set(this._isValidValue(parsed));\n\n const date = getValidDateOrNull(parsed);\n const valueChanged = !equalDates(date, this.value);\n\n if (!date || valueChanged) {\n this._onChange(date);\n }\n }\n\n private _handleBlur(): void {\n this._onTouched();\n }\n\n private _handleKeydown(event: KeyboardEvent): void {\n if (event.code === 'ArrowDown' && event.altKey && !event.ctrlKey && !event.shiftKey && !event.metaKey) {\n this.open();\n }\n }\n\n private _isValidValue(value: unknown): boolean {\n return !value || isValidDate(value);\n }\n\n private _setInputValue(value: unknown): void {\n this._elementRef.nativeElement.value = isValidDate(value) ? this.formatter()(value) : '';\n }\n\n private _getOverlayConfig(): OverlayConfig {\n const overlayViewportMargin = 8;\n const positionStrategy = this._overlay\n .position()\n .flexibleConnectedTo(this._parent.getConnectedOverlayOrigin())\n .withTransformOriginOn('.mat-datepicker-content')\n .withFlexibleDimensions(false)\n .withViewportMargin(overlayViewportMargin)\n .withLockedPosition()\n .withPositions(datepickerConnectedPositions);\n\n return {\n positionStrategy,\n hasBackdrop: true,\n backdropClass: [],\n direction: 'ltr',\n scrollStrategy: this._scrollStrategy,\n panelClass: 'ids-datepicker-panel',\n };\n }\n\n private _disposeOverlay(): void {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = null;\n this._componentRef = null;\n }\n }\n\n private _onOverlayClose(overlayRef: OverlayRef): Observable<MouseEvent | KeyboardEvent | void> {\n return merge(\n overlayRef.backdropClick(),\n overlayRef.detachments(),\n overlayRef.keydownEvents().pipe(filter((event) => event.code === 'Escape' && !hasModifierKey(event))),\n );\n }\n\n private _onPageNavigationKeydown(overlayRef: OverlayRef): Observable<KeyboardEvent> {\n return overlayRef.keydownEvents().pipe(filter((event) => [\n 'ArrowUp',\n 'ArrowDown',\n 'ArrowLeft',\n 'ArrowRight',\n 'PageUp',\n 'PageDown',\n ].includes(event.code)));\n }\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-datepicker.mjs","sources":["../../../projects/widgets/datepicker/tokens/datepicker-view.ts","../../../projects/widgets/datepicker/tokens/date-formatter.ts","../../../projects/widgets/datepicker/tokens/date-parser.ts","../../../projects/widgets/datepicker/datepicker-intl.ts","../../../projects/widgets/datepicker/trigger/datepicker-trigger.component.ts","../../../projects/widgets/datepicker/trigger/datepicker-trigger.component.html","../../../projects/widgets/datepicker/datepicker-defaults.ts","../../../projects/widgets/datepicker/calendar/calendar-page.ts","../../../projects/widgets/datepicker/day-selector/day-selector.component.ts","../../../projects/widgets/datepicker/day-selector/day-selector.component.html","../../../projects/widgets/datepicker/month-selector/month-selector.component.ts","../../../projects/widgets/datepicker/month-selector/month-selector.component.html","../../../projects/widgets/datepicker/year-selector/year-selector.component.ts","../../../projects/widgets/datepicker/year-selector/year-selector.component.html","../../../projects/widgets/datepicker/calendar/calendar.component.ts","../../../projects/widgets/datepicker/calendar/calendar.component.html","../../../projects/widgets/datepicker/datepicker-positions.ts","../../../projects/widgets/datepicker/datepicker.directive.ts","../../../projects/widgets/datepicker/i-cell-ids-angular-datepicker.ts"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const IdsDatepickerView = {\n DAY: 'day',\n MONTH: 'month',\n YEAR: 'year',\n} as const;\n\nexport type IdsDatepickerViewType = (typeof IdsDatepickerView)[keyof typeof IdsDatepickerView];\n","import { InjectionToken } from '@angular/core';\nimport { formatDate } from '@i-cell/ids-angular/core';\n\nexport type IdsDateFormatterFn = (date: Date) => string;\n\nexport const IDS_DATE_FORMATTER = new InjectionToken<IdsDateFormatterFn>('idsDateFormatter', {\n providedIn: 'root',\n factory: (): IdsDateFormatterFn => formatDate,\n});\n","import { InjectionToken } from '@angular/core';\nimport { parseDate } from '@i-cell/ids-angular/core';\n\nexport type IdsDateParserFn = (value: string, utc?: boolean) => Date | null;\n\nexport const IDS_DATE_PARSER = new InjectionToken<IdsDateParserFn>('idsDateParser', {\n providedIn: 'root',\n factory: (): IdsDateParserFn => parseDate,\n});\n","import { Injectable } from '@angular/core';\nimport { isValidDate } from '@i-cell/ids-angular/core';\nimport { Subject } from 'rxjs';\n\nconst dayAriaLabelFormat = new Intl.DateTimeFormat('en-GB', { year: 'numeric', month: 'long', day: 'numeric' });\nconst monthLabelFormat = new Intl.DateTimeFormat('en-GB', { month: 'short' });\nconst monthAriaLabelFormat = new Intl.DateTimeFormat('en-GB', { year: 'numeric', month: 'long' });\nconst daySelectorHeaderLabelFormat = new Intl.DateTimeFormat('en-GB', { year: 'numeric', month: 'long' });\nconst weekdayLabelFormat = new Intl.DateTimeFormat('en-GB', { weekday: 'narrow' });\n\n@Injectable({ providedIn: 'root' })\nexport class IdsDatepickerIntl {\n public readonly changes: Subject<void> = new Subject<void>();\n\n public triggerButtonLabel = 'Open calendar';\n\n public prevMonthLabel = 'Previous month';\n public nextMonthLabel = 'Next month';\n\n public prevYearLabel = 'Previous year';\n public nextYearLabel = 'Next year';\n\n public prevYearsPageLabel = 'Previous 24 years';\n public nextYearsPageLabel = 'Next 24 years';\n\n public switchToDaySelectorLabel = 'Choose date';\n public switchToYearSelectorLabel = 'Choose year and month';\n\n public getDayAriaLabel(date: Date): string | null {\n return this._formatDate(date, dayAriaLabelFormat);\n }\n\n public getMonthLabel(date: Date): string | null {\n return this._formatDate(date, monthLabelFormat);\n }\n\n public getMonthAriaLabel(date: Date): string | null {\n return this._formatDate(date, monthAriaLabelFormat);\n }\n\n public getDaySelectorHeaderLabel(date: Date): string | null {\n return this._formatDate(date, daySelectorHeaderLabelFormat);\n }\n\n public getWeekdayHeaderLabel(date: Date): string | null {\n return this._formatDate(date, weekdayLabelFormat);\n }\n\n protected _formatDate(date: unknown, dateFormat: Intl.DateTimeFormat): string | null {\n return isValidDate(date) ? dateFormat.format(date) : null;\n }\n}\n","import { IdsDatepickerIntl } from '../datepicker-intl';\nimport { IdsDatepickerDirective } from '../datepicker.directive';\n\nimport { ChangeDetectionStrategy, Component, inject, input, ViewEncapsulation } from '@angular/core';\nimport { IdsFormFieldComponent } from '@i-cell/ids-angular/forms';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';\n\n@Component({\n selector: 'ids-datepicker-trigger',\n imports: [\n IdsIconComponent,\n IdsIconButtonComponent,\n ],\n templateUrl: './datepicker-trigger.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IdsDatepickerTriggerComponent {\n protected _parent = inject(IdsFormFieldComponent);\n protected _intl = inject(IdsDatepickerIntl);\n\n public datepicker = input.required<IdsDatepickerDirective>({ alias: 'for' });\n public ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n}\n","<button\n type=\"button\"\n idsIconButton\n aria-haspopup=\"true\"\n [size]=\"'dense'\"\n [variant]=\"'surface'\"\n [disabled]=\"_parent.disabled()\"\n [attr.aria-label]=\"ariaLabel() || _intl.triggerButtonLabel\"\n [attr.aria-expanded]=\"datepicker() ? datepicker().opened() : null\"\n (click)=\"datepicker().open()\"\n>\n <ids-icon aria-hidden=\"true\" fontIcon=\"calendar-month-outline\" [attr.alt]=\"ariaLabel() || _intl.triggerButtonLabel\" />\n</button>\n","import { IdsDatepickerView, IdsDatepickerViewType } from './tokens/datepicker-view';\n\nimport { InjectionToken } from '@angular/core';\n\nexport interface IdsDatepickerDefaultConfig {\n view?: IdsDatepickerViewType,\n}\n\nexport const IDS_DATEPICKER_DEFAULT_CONFIG = new InjectionToken<IdsDatepickerDefaultConfig>(\n 'IDS_DATEPICKER_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_DATEPICKER_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_DATEPICKER_DEFAULT_CONFIG_FACTORY(): Required<IdsDatepickerDefaultConfig> {\n return {\n view: IdsDatepickerView.DAY,\n };\n}\n\n","import { IdsDatepickerIntl } from '../datepicker-intl';\n\nimport { afterNextRender, AfterViewInit, ChangeDetectorRef, Directive, ElementRef, inject, Injector, input, model, output, Signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\n\n@Directive()\nexport abstract class IdsCalendarPage implements AfterViewInit {\n private readonly _calendarButtonSelector = '.ids-calendar-button-focused';\n public abstract headerLabel: Signal<string>;\n\n protected _element = inject(ElementRef);\n private _injector = inject(Injector);\n private _cdRef = inject(ChangeDetectorRef);\n protected _intl = inject(IdsDatepickerIntl);\n\n public value = input<Date | null>(null);\n public focusedDate = model.required<Date>();\n public min = input<Date | null>(null);\n public max = input<Date | null>(null);\n\n public selected = output<Date>();\n\n public abstract hasPreviousPage(): boolean;\n public abstract gotoPreviousPage(): void;\n public abstract hasNextPage(): boolean;\n public abstract gotoNextPage(): void;\n\n protected readonly _today = new Date();\n\n constructor() {\n toObservable(this.focusedDate).pipe(takeUntilDestroyed()).subscribe(() => this._moveFocusToCurrent());\n this._intl.changes.pipe(takeUntilDestroyed()).subscribe(() => this._cdRef.markForCheck());\n }\n\n public ngAfterViewInit(): void {\n this._moveFocusToCurrent();\n }\n\n private _moveFocusToCurrent(): void {\n afterNextRender(() => {\n const focusedDayButton = this._element.nativeElement.querySelector(this._calendarButtonSelector) as HTMLButtonElement;\n if (focusedDayButton) {\n focusedDayButton.focus();\n }\n }, { injector: this._injector });\n }\n}\n","import { IdsCalendarPage } from '../calendar/calendar-page';\n\nimport { ChangeDetectionStrategy, Component, computed, ViewEncapsulation } from '@angular/core';\nimport { addDays, addMonths, addYears, clampDate, compareDates, endOfMonth, endOfWeek, equalDates, getDatesBetween, isValidDate, startOfMonth, startOfWeek } from '@i-cell/ids-angular/core';\n\nconst firstDayOfWeekOffset = 1;\nconst daysPerWeek = 7;\n\n@Component({\n selector: 'ids-day-selector',\n imports: [],\n templateUrl: './day-selector.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: IdsCalendarPage,\n useExisting: IdsDaySelectorComponent,\n },\n ],\n host: {\n 'class': 'ids-day-selector',\n '(keydown)': '_handleKeydown($event)',\n },\n})\nexport class IdsDaySelectorComponent extends IdsCalendarPage {\n public override headerLabel = computed<string>(() => (this._intl.getDaySelectorHeaderLabel(this._currentMonth()) ?? ''));\n\n protected _currentMonth = computed<Date>(() => startOfMonth(this.focusedDate()));\n protected _previousMonth = computed<Date>(() => addMonths(this._currentMonth(), -1));\n protected _nextMonth = computed<Date>(() => addMonths(this._currentMonth(), 1));\n\n protected _gridStartDate = computed(() => startOfWeek(this._currentMonth(), firstDayOfWeekOffset));\n protected _gridEndDate = computed(() => endOfWeek(endOfMonth(this._currentMonth()), firstDayOfWeekOffset));\n protected _days = computed(() => getDatesBetween(this._gridStartDate(), this._gridEndDate()));\n\n protected _weekdayLabels = computed<string[]>(() =>\n this._days().slice(0, daysPerWeek).map((date: Date) => this._intl.getWeekdayHeaderLabel(date) ?? ''));\n\n public override hasPreviousPage(): boolean {\n const dayOnPrevPage = addDays(this._gridStartDate(), -1);\n const min = this.min() ?? dayOnPrevPage;\n\n return compareDates(dayOnPrevPage, min) > -1;\n }\n\n public override gotoPreviousPage(): void {\n const current = this._currentMonth();\n this.focusedDate.set(new Date(current.getFullYear(), current.getMonth(), 0));\n }\n\n public override hasNextPage(): boolean {\n const dayOnNextPage = addDays(this._gridEndDate(), 1);\n const max = this.max() ?? dayOnNextPage;\n\n return compareDates(dayOnNextPage, max) < 1;\n }\n\n public override gotoNextPage(): void {\n const current = this._currentMonth();\n this.focusedDate.set(new Date(current.getFullYear(), current.getMonth() + 1, 1));\n }\n\n protected _selectDate(event: MouseEvent, date: Date): void {\n event.stopPropagation();\n event.preventDefault();\n this.selected.emit(date);\n }\n\n protected _isDateInCurrentMonth(date: Date): boolean {\n return date.getMonth() === this._currentMonth().getMonth();\n }\n\n protected _isDateFocused(date: Date): boolean {\n return equalDates(date, this.focusedDate());\n }\n\n protected _isDateSelected(date: Date): boolean {\n return equalDates(date, this.value());\n }\n\n protected _isDateDisabled(date: Date): boolean {\n const min = this.min();\n const max = this.max();\n\n return (isValidDate(min) && compareDates(date, min) === -1) || (isValidDate(max) && compareDates(date, max) === 1);\n }\n\n protected _isDateToday(date: Date): boolean {\n return equalDates(date, this._today);\n }\n\n private _handleKeydown(event: KeyboardEvent): void {\n let focusedDate = this.focusedDate();\n\n switch (event.code) {\n case 'ArrowUp':\n\n focusedDate = addDays(focusedDate, -daysPerWeek);\n break;\n case 'ArrowDown':\n\n focusedDate = addDays(focusedDate, daysPerWeek);\n break;\n case 'ArrowLeft':\n focusedDate = addDays(focusedDate, -1);\n break;\n case 'ArrowRight':\n focusedDate = addDays(focusedDate, 1);\n break;\n case 'Home':\n focusedDate = startOfWeek(focusedDate, firstDayOfWeekOffset);\n break;\n case 'End':\n focusedDate = endOfWeek(focusedDate, firstDayOfWeekOffset);\n break;\n case 'PageUp':\n focusedDate = this._hasShiftModifierKey(event) ? addYears(focusedDate, -1) : addMonths(focusedDate, -1);\n break;\n case 'PageDown':\n focusedDate = this._hasShiftModifierKey(event) ? addYears(focusedDate, 1) : addMonths(focusedDate, 1);\n break;\n }\n\n this.focusedDate.set(clampDate(focusedDate, this.min(), this.max()));\n }\n\n private _hasShiftModifierKey(event: KeyboardEvent): boolean {\n return event.shiftKey && !event.ctrlKey && !event.altKey && !event.metaKey;\n }\n}\n","<div class=\"ids-day-selector__days-grid ids-calendar-grid\">\n @for (label of _weekdayLabels(); track $index) {\n <div class=\"ids-calendar-cell\">\n <span class=\"ids-day-selector__header--label ids-calendar-weekday-label\">{{ label }}</span>\n </div>\n }\n @for (day of _days(); track $index) {\n @let dayLabel = day.getDate();\n @let isSelected = _isDateSelected(day);\n @let isFocused = _isDateFocused(day);\n @let isToday = _isDateToday(day);\n @let isDisabled = _isDateDisabled(day) || !_isDateInCurrentMonth(day);\n @let tabIndex = isFocused ? 0 : -1;\n @let ariaLabel = _intl.getDayAriaLabel(day);\n <div class=\"ids-calendar-cell\" [class.ids-calendar-cell-selected]=\"isSelected\">\n <button\n type=\"button\"\n class=\"ids-day-selector__day-button ids-calendar-button\"\n [attr.disabled]=\"isDisabled || null\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-pressed]=\"isSelected\"\n [attr.aria-current]=\"isToday\"\n [tabIndex]=\"tabIndex\"\n [class.ids-calendar-button-today]=\"isToday\"\n [class.ids-calendar-button-selected]=\"isSelected\"\n [class.ids-calendar-button-focused]=\"isFocused\"\n (click)=\"_selectDate($event, day)\"\n >{{ dayLabel }}</button>\n </div>\n }\n</div>\n","import { IdsCalendarPage } from '../calendar/calendar-page';\n\nimport { ChangeDetectionStrategy, Component, computed, ViewEncapsulation } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { addMonths, addYears, clampDate, compareDates, createNormalizedDate, endOfMonth, isValidDate, startOfMonth } from '@i-cell/ids-angular/core';\nimport { map, startWith } from 'rxjs';\n\nconst monthsPerRow = 4;\nconst lastMonth = 11;\n\n@Component({\n selector: 'ids-month-selector',\n imports: [],\n templateUrl: './month-selector.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: IdsCalendarPage,\n useExisting: IdsMonthSelectorComponent,\n },\n ],\n host: {\n 'class': 'ids-month-selector',\n '(keydown)': '_handleKeydown($event)',\n },\n})\nexport class IdsMonthSelectorComponent extends IdsCalendarPage {\n protected _focusedYear = computed<number>(() => this.focusedDate().getFullYear());\n\n protected _monthLabels = toSignal(this._intl.changes.pipe(startWith(null), map(() => {\n const currentYear = new Date().getFullYear();\n const monthLabels = Array.from({ length: 12 })\n .map((nil, month) => this._intl.getMonthLabel(createNormalizedDate(currentYear, month, 1)) ?? '');\n return monthLabels;\n })));\n\n public override headerLabel = computed<string>(() => String(this._focusedYear()));\n\n public override hasPreviousPage(): boolean {\n const min = this.min();\n\n if (!isValidDate(min)) {\n return true;\n }\n\n const startOfYear = createNormalizedDate(this._focusedYear(), 0, 1);\n\n return compareDates(min, startOfYear) === -1;\n }\n\n public override gotoPreviousPage(): void {\n this.focusedDate.set(createNormalizedDate(this._focusedYear() - 1, lastMonth, 1));\n }\n\n public override hasNextPage(): boolean {\n const max = this.max();\n\n if (!isValidDate(max)) {\n return true;\n }\n\n // eslint-disable-next-line no-magic-numbers\n const endOfYear = createNormalizedDate(this._focusedYear(), 11, 31);\n\n return compareDates(max, endOfYear) === 1;\n }\n\n public override gotoNextPage(): void {\n this.focusedDate.set(createNormalizedDate(this._focusedYear() + 1, 0, 1));\n }\n\n protected _selectMonth(event: MouseEvent, month: number): void {\n event.stopPropagation();\n event.preventDefault();\n\n const currentFocusedDate = this.focusedDate();\n const nextFocusedDate = createNormalizedDate(currentFocusedDate.getFullYear(), month, currentFocusedDate.getDate());\n\n this.selected.emit(clampDate(nextFocusedDate, this.min(), this.max()));\n }\n\n protected _isMonthFocused(month: number): boolean {\n return month === this.focusedDate().getMonth();\n }\n\n protected _isMonthSelected(month: number): boolean {\n const selectedYear = this.value()?.getFullYear();\n const selectedMonth = this.value()?.getMonth();\n\n return this._focusedYear() === selectedYear && month === selectedMonth;\n }\n\n protected _isCurrentMonth(month: number): boolean {\n return this._focusedYear() === this._today.getFullYear() && month === this._today.getMonth();\n }\n\n protected _isMonthDisabled(month: number): boolean {\n const min = this.min();\n const max = this.max();\n const monthAsDate = new Date(this._focusedYear(), month, 1);\n\n return (isValidDate(min) && compareDates(endOfMonth(monthAsDate), startOfMonth(min)) === -1) ||\n (isValidDate(max) && compareDates(monthAsDate, endOfMonth(max)) === 1);\n }\n\n protected _getMonthAsDate(month: number): Date {\n return createNormalizedDate(this._focusedYear(), month, 1);\n }\n\n private _handleKeydown(event: KeyboardEvent): void {\n let focusedDate = this.focusedDate();\n\n switch (event.code) {\n case 'ArrowUp':\n focusedDate = addMonths(focusedDate, -monthsPerRow);\n break;\n case 'ArrowDown':\n focusedDate = addMonths(focusedDate, monthsPerRow);\n break;\n case 'ArrowLeft':\n focusedDate = addMonths(focusedDate, -1);\n break;\n case 'ArrowRight':\n focusedDate = addMonths(focusedDate, 1);\n break;\n case 'Home':\n focusedDate = new Date(focusedDate.getFullYear(), 0, focusedDate.getDate());\n break;\n case 'End':\n // eslint-disable-next-line no-magic-numbers\n focusedDate = new Date(focusedDate.getFullYear(), 11, focusedDate.getDate());\n break;\n case 'PageUp':\n focusedDate = addYears(focusedDate, -1);\n break;\n case 'PageDown':\n focusedDate = addYears(focusedDate, 1);\n break;\n }\n\n this.focusedDate.set(clampDate(focusedDate, this.min(), this.max()));\n }\n}\n","<div class=\"ids-month-selector__months-grid ids-calendar-grid\">\n @for (monthLabel of _monthLabels(); track $index; let month = $index) {\n @let isSelected = _isMonthSelected(month);\n @let isFocused = _isMonthFocused(month);\n @let isCurrentMonth = _isCurrentMonth(month);\n @let tabIndex = isFocused ? 0 : -1;\n @let isDisabled = _isMonthDisabled(month);\n @let ariaLabel = _intl.getMonthAriaLabel(_getMonthAsDate(month));\n <div class=\"ids-calendar-cell\">\n <button\n type=\"button\"\n class=\"ids-month-selector__month-button ids-calendar-button\"\n [attr.disabled]=\"isDisabled || null\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-pressed]=\"isSelected\"\n [attr.aria-current]=\"isCurrentMonth\"\n [tabIndex]=\"tabIndex\"\n [class.ids-month-selector__month-button--current-month]=\"isCurrentMonth\"\n [class.ids-calendar-button-selected]=\"isSelected\"\n [class.ids-calendar-button-focused]=\"isFocused\"\n (click)=\"_selectMonth($event, month)\"\n >{{ monthLabel }}</button>\n </div>\n }\n</div>\n","import { IdsCalendarPage } from '../calendar/calendar-page';\n\nimport { ChangeDetectionStrategy, Component, computed, ViewEncapsulation } from '@angular/core';\nimport { addYears, clampDate, createNormalizedDate, isValidDate, positiveModulus } from '@i-cell/ids-angular/core';\n\nconst yearsPerRow = 4;\nconst yearsPerPage = 24;\n\n@Component({\n selector: 'ids-year-selector',\n imports: [],\n templateUrl: './year-selector.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: IdsCalendarPage,\n useExisting: IdsYearSelectorComponent,\n },\n ],\n host: {\n 'class': 'ids-year-selector',\n '(keydown)': '_handleKeydown($event)',\n },\n})\nexport class IdsYearSelectorComponent extends IdsCalendarPage {\n private _firstYearOnPage = computed(() => {\n const focusedYear = this.focusedDate().getFullYear();\n const firstYearOffset = this._getFirstYearOffset(focusedYear, this.min()?.getFullYear(), this.max()?.getFullYear());\n const firstYearOnPage = focusedYear - firstYearOffset;\n\n return firstYearOnPage;\n });\n\n protected _years = computed(() => {\n const firstYearOnPage = this._firstYearOnPage();\n const years = Array.from({ length: yearsPerPage }).map((_nil, index) => firstYearOnPage + index);\n\n return years;\n });\n\n public override headerLabel = computed<string>(() => `${this._years()[0]} - ${this._years().at(-1)}`);\n\n public override hasPreviousPage(): boolean {\n const min = Number.isFinite(this.min()?.getFullYear()) ? this.min()!.getFullYear() : Number.POSITIVE_INFINITY;\n const firstYearOnPage = Number.isFinite(this._firstYearOnPage()) ? this._firstYearOnPage() : Number.NEGATIVE_INFINITY;\n\n return firstYearOnPage > min;\n }\n\n public override gotoPreviousPage(): void {\n const firstYearOnPage = this._firstYearOnPage();\n const currentFocusedDate = this.focusedDate();\n this.focusedDate.set(createNormalizedDate(firstYearOnPage - 1, currentFocusedDate.getMonth(), currentFocusedDate.getDate()));\n }\n\n public override hasNextPage(): boolean {\n const max = Number.isFinite(this.max()?.getFullYear()) ? this.max()!.getFullYear() : Number.NEGATIVE_INFINITY;\n const lastYearOnPage = Number.isFinite(this._firstYearOnPage()) ? this._firstYearOnPage() + yearsPerPage - 1 : Number.POSITIVE_INFINITY;\n\n return lastYearOnPage < max;\n }\n\n public override gotoNextPage(): void {\n const firstYearOnPage = this._firstYearOnPage();\n const currentFocusedDate = this.focusedDate();\n this.focusedDate.set(\n createNormalizedDate(firstYearOnPage + yearsPerPage, currentFocusedDate.getMonth(), currentFocusedDate.getDate()));\n }\n\n protected _selectYear(event: MouseEvent, year: number): void {\n event.stopPropagation();\n event.preventDefault();\n\n const currentFocusedDate = this.focusedDate();\n const nextFocusedDate = createNormalizedDate(year, currentFocusedDate.getMonth(), currentFocusedDate.getDate());\n\n this.selected.emit(clampDate(nextFocusedDate, this.min(), this.max()));\n }\n\n protected _isYearFocused(year: number): boolean {\n return year === this.focusedDate().getFullYear();\n }\n\n protected _isYearSelected(year: number): boolean {\n return year === this.value()?.getFullYear();\n }\n\n protected _isCurrentYear(year: number): boolean {\n return year === new Date().getFullYear();\n }\n\n protected _isYearDisabled(year: number): boolean {\n const min = this.min();\n const max = this.max();\n\n return (isValidDate(min) && year < min.getFullYear()) || (isValidDate(max) && year > max.getFullYear());\n }\n\n private _handleKeydown(event: KeyboardEvent): void {\n let focusedDate = this.focusedDate();\n\n switch (event.code) {\n case 'ArrowUp':\n focusedDate = addYears(focusedDate, -yearsPerRow);\n break;\n case 'ArrowDown':\n focusedDate = addYears(focusedDate, yearsPerRow);\n break;\n case 'ArrowLeft':\n focusedDate = addYears(focusedDate, -1);\n break;\n case 'ArrowRight':\n focusedDate = addYears(focusedDate, 1);\n break;\n case 'Home':\n focusedDate = new Date(this._years()[0], focusedDate.getMonth(), focusedDate.getDate());\n break;\n case 'End':\n focusedDate = new Date(this._years().at(-1)!, focusedDate.getMonth(), focusedDate.getDate());\n break;\n case 'PageUp':\n focusedDate = addYears(focusedDate, -yearsPerPage);\n break;\n case 'PageDown':\n focusedDate = addYears(focusedDate, yearsPerPage);\n break;\n }\n\n this.focusedDate.set(clampDate(focusedDate, this.min(), this.max()));\n }\n\n private _getFirstYearOffset(focusedYear: number, minYear?: number, maxYear: number = (yearsPerPage - 1)): number {\n // If we have a max year we calculate an offset so that the max year will be the last in the years list\n // Otherwise if we have a min year we calculate an offset so that the min year will be the first in the years list\n const minMaxOffset = maxYear - yearsPerPage + 1 || minYear || 0;\n return positiveModulus(focusedYear - minMaxOffset, yearsPerPage);\n }\n}\n","<div class=\"ids-year-selector__years-grid ids-calendar-grid\">\n @for (year of _years(); track $index) {\n @let isSelected = _isYearSelected(year);\n @let isFocused = _isYearFocused(year);\n @let isCurrentYear = _isCurrentYear(year);\n @let tabIndex = isFocused ? 0 : -1;\n @let isDisabled = _isYearDisabled(year);\n <div class=\"ids-calendar-cell\">\n <button\n type=\"button\"\n class=\"ids-year-selector__year-button ids-calendar-button\"\n [attr.disabled]=\"isDisabled || null\"\n [attr.aria-pressed]=\"isSelected\"\n [attr.aria-current]=\"isCurrentYear\"\n [tabIndex]=\"tabIndex\"\n [class.ids-year-selector__year-button--current-year]=\"isCurrentYear\"\n [class.ids-calendar-button-selected]=\"isSelected\"\n [class.ids-calendar-button-focused]=\"isFocused\"\n (click)=\"_selectYear($event, year)\"\n >{{ year }}</button>\n </div>\n }\n</div>\n","import { IdsCalendarPage } from './calendar-page';\n\nimport { IdsDatepickerIntl } from '../datepicker-intl';\nimport { IdsDaySelectorComponent } from '../day-selector/day-selector.component';\nimport { IdsMonthSelectorComponent } from '../month-selector/month-selector.component';\nimport { IdsDatepickerView, IdsDatepickerViewType } from '../tokens/datepicker-view';\nimport { IdsYearSelectorComponent } from '../year-selector/year-selector.component';\n\nimport { CdkTrapFocus } from '@angular/cdk/a11y';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, inject, input, linkedSignal, OnInit, output, viewChild, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { IdsButtonComponent } from '@i-cell/ids-angular/button';\nimport { clampDate, ComponentBaseWithDefaults, IdsSize, IdsSizeType, isValidDate, startOfMonth, startOfYear } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';\n\n@Component({\n selector: 'ids-calendar',\n imports: [\n IdsButtonComponent,\n IdsIconComponent,\n IdsIconButtonComponent,\n IdsDaySelectorComponent,\n IdsMonthSelectorComponent,\n IdsYearSelectorComponent,\n ],\n templateUrl: './calendar.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [CdkTrapFocus],\n host: {\n 'class': 'ids-calendar-surface',\n },\n})\nexport class IdsCalendarComponent extends ComponentBaseWithDefaults<object> implements OnInit {\n protected readonly _defaultConfig = {};\n protected override get _hostName(): string {\n return 'calendar';\n }\n\n private _cdRef = inject(ChangeDetectorRef);\n private _intl = inject(IdsDatepickerIntl);\n\n public value = input<Date | null>(null);\n public size = input.required<IdsSizeType>();\n public view = input.required<IdsDatepickerViewType>();\n public min = input<Date | null>(null);\n public max = input<Date | null>(null);\n\n public selected = output<Date>();\n public monthSelected = output<Date>();\n public yearSelected = output<Date>();\n\n private _calendarPage = viewChild(IdsCalendarPage);\n\n protected _view = linkedSignal(() => this.view());\n\n protected _hostClasses = computed(() => this._getHostClasses([this.size()]));\n\n protected _headerButtonSize = computed(() => (this.size() === IdsSize.DENSE ? IdsSize.COMPACT : this.size()));\n protected _headerLabel = computed<string>(() => this._calendarPage()?.headerLabel() ?? '');\n\n protected _prevPageLabel = computed<string>(() => {\n switch (this._view()) {\n case IdsDatepickerView.DAY:\n return this._intl.prevMonthLabel;\n case IdsDatepickerView.MONTH:\n return this._intl.prevYearLabel;\n case IdsDatepickerView.YEAR:\n return this._intl.prevYearsPageLabel;\n }\n });\n\n protected _nextPageLabel = computed<string>(() => {\n switch (this._view()) {\n case IdsDatepickerView.DAY:\n return this._intl.nextMonthLabel;\n case IdsDatepickerView.MONTH:\n return this._intl.nextYearLabel;\n case IdsDatepickerView.YEAR:\n return this._intl.nextYearsPageLabel;\n }\n });\n\n protected _switchViewLabel = computed<string>(() => (\n this._view() === IdsDatepickerView.DAY ? this._intl.switchToYearSelectorLabel : this._intl.switchToDaySelectorLabel\n ));\n\n protected _focusedDate: Date = new Date();\n\n public ngOnInit(): void {\n this._intl.changes.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => this._cdRef.markForCheck());\n this._setFocusedDate(this.value());\n }\n\n protected _selectYear(selectedYear: Date): void {\n this._setFocusedDate(selectedYear);\n this.yearSelected.emit(startOfYear(selectedYear));\n this._view.set(IdsDatepickerView.MONTH);\n }\n\n protected _selectMonth(selectedMonth: Date): void {\n this._setFocusedDate(selectedMonth);\n this.monthSelected.emit(startOfMonth(selectedMonth));\n this._view.set(IdsDatepickerView.DAY);\n }\n\n protected _selectDate(date: Date): void {\n this.selected.emit(date);\n }\n\n protected _hasPrevPage(): boolean {\n return this._calendarPage()?.hasPreviousPage() ?? true;\n }\n\n protected _gotoPrevPage(): void {\n this._calendarPage()!.gotoPreviousPage();\n }\n\n protected _hasNextPage(): boolean {\n return this._calendarPage()?.hasNextPage() ?? true;\n }\n\n protected _gotoNextPage(): void {\n this._calendarPage()!.gotoNextPage();\n }\n\n protected _switchView(): void {\n switch (this._view()) {\n case IdsDatepickerView.DAY:\n this._view.set(IdsDatepickerView.YEAR);\n break;\n case IdsDatepickerView.YEAR:\n case IdsDatepickerView.MONTH:\n this._view.set(IdsDatepickerView.DAY);\n break;\n }\n }\n\n private _setFocusedDate(date: Date | null): void {\n const safeValue = isValidDate(date) ? date : new Date();\n this._focusedDate = clampDate(safeValue, this.min(), this.max());\n this._cdRef.markForCheck();\n }\n}\n","<div class=\"ids-calendar__header\">\n <button\n type=\"button\"\n idsIconButton\n [size]=\"_headerButtonSize()\"\n [variant]=\"'surface'\"\n [appearance]=\"'standard'\"\n [disabled]=\"!_hasPrevPage()\"\n [attr.aria-label]=\"_prevPageLabel()\"\n (click)=\"_gotoPrevPage()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"chevron-left\" [sizeCollection]=\"'big'\" />\n </button>\n <button\n type=\"button\"\n idsButton\n [size]=\"_headerButtonSize()\"\n [variant]=\"'surface'\"\n [appearance]=\"'text'\"\n [attr.aria-label]=\"_switchViewLabel()\"\n [attr.aria-description]=\"_headerLabel()\"\n (click)=\"_switchView()\"\n >\n {{ _headerLabel() }}\n <ids-icon icon-trailing aria-hidden=\"true\" alt=\"\" fontIcon=\"chevron-down\" />\n </button>\n <button\n type=\"button\"\n idsIconButton\n [size]=\"_headerButtonSize()\"\n [variant]=\"'surface'\"\n [appearance]=\"'standard'\"\n [disabled]=\"!_hasNextPage()\"\n [attr.aria-label]=\"_nextPageLabel()\"\n (click)=\"_gotoNextPage()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"chevron-right\" />\n </button>\n</div>\n@switch (_view()) {\n @case ('day') {\n <ids-day-selector [value]=\"value()\" [min]=\"min()\" [max]=\"max()\" [(focusedDate)]=\"_focusedDate\" (selected)=\"_selectDate($event)\" />\n }\n @case ('month') {\n <ids-month-selector [value]=\"value()\" [min]=\"min()\" [max]=\"max()\" [(focusedDate)]=\"_focusedDate\" (selected)=\"_selectMonth($event)\" />\n }\n @case ('year') {\n <ids-year-selector [value]=\"value()\" [min]=\"min()\" [max]=\"max()\" [(focusedDate)]=\"_focusedDate\" (selected)=\"_selectYear($event)\" />\n }\n}\n","import { ConnectedPosition } from '@angular/cdk/overlay';\n\nexport const datepickerConnectedPositions: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n panelClass: 'ids-datepicker-calendar-above',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n panelClass: 'ids-datepicker-calendar-above',\n },\n];\n","import { IdsCalendarComponent } from './calendar/calendar.component';\nimport { IDS_DATEPICKER_DEFAULT_CONFIG, IDS_DATEPICKER_DEFAULT_CONFIG_FACTORY, IdsDatepickerDefaultConfig } from './datepicker-defaults';\nimport { datepickerConnectedPositions } from './datepicker-positions';\nimport { IDS_DATE_FORMATTER } from './tokens/date-formatter';\nimport { IDS_DATE_PARSER } from './tokens/date-parser';\nimport { IdsDatepickerViewType } from './tokens/datepicker-view';\n\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { afterNextRender, booleanAttribute, ComponentRef, Directive, effect, ElementRef, forwardRef, inject, Injector, input, OnChanges, output, signal, SimpleChanges, ViewContainerRef } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn, Validators } from '@angular/forms';\nimport { compareDates, deserializeDate, DirectiveBaseWithDefaults, equalDates, getValidDateOrNull, isValidDate } from '@i-cell/ids-angular/core';\nimport { IdsFormFieldComponent } from '@i-cell/ids-angular/forms';\nimport { filter, merge, Observable, Subscription } from 'rxjs';\n\nconst defaultConfig = IDS_DATEPICKER_DEFAULT_CONFIG_FACTORY();\n\n@Directive({\n selector: 'input[idsDatepicker]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IdsDatepickerDirective),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => IdsDatepickerDirective),\n multi: true,\n },\n ],\n host: {\n '(input)': '_handleInput($event.target.value)',\n '(blur)': '_handleBlur()',\n '(keydown)': '_handleKeydown($event)',\n },\n exportAs: 'idsDatepicker',\n})\nexport class IdsDatepickerDirective extends DirectiveBaseWithDefaults<IdsDatepickerDefaultConfig>\n implements OnChanges, ControlValueAccessor, Validator {\n\n protected override _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_DATEPICKER_DEFAULT_CONFIG);\n protected override _hostClasses = signal('');\n\n private _viewContainerRef = inject(ViewContainerRef);\n private _elementRef = inject(ElementRef);\n private _parent = inject(IdsFormFieldComponent);\n private _overlay = inject(Overlay);\n private _injector = inject(Injector);\n\n public formatter = input(inject(IDS_DATE_FORMATTER));\n public parser = input(inject(IDS_DATE_PARSER));\n\n public view = input<IdsDatepickerViewType>(this._defaultConfig.view);\n public minDate = input(null, { transform: (value: unknown) => getValidDateOrNull(deserializeDate(value)) });\n public maxDate = input(null, { transform: (value: unknown) => getValidDateOrNull(deserializeDate(value)) });\n\n private _inputChanges = effect(() => {\n const min = this.minDate();\n const max = this.maxDate();\n const view = this.view();\n const size = this._parent.size();\n const calendar = this._componentRef?.instance;\n\n if (!calendar) {\n return;\n }\n\n if (!equalDates(min, calendar.min())) {\n this._componentRef?.setInput('min', min);\n }\n if (!equalDates(max, calendar.max())) {\n this._componentRef?.setInput('max', max);\n }\n if (view !== calendar.view()) {\n this._componentRef?.setInput('view', view);\n }\n if (size !== calendar.size()) {\n this._componentRef?.setInput('size', size);\n }\n });\n\n public openedInput = input<boolean, unknown>(false, { transform: booleanAttribute, alias: 'opened' });\n private _opened = signal(this.openedInput() ?? false);\n public opened = this._opened.asReadonly();\n\n public monthSelected = output<Date>();\n public yearSelected = output<Date>();\n\n private _onChange: (value: unknown) => void = () => {};\n private _onTouched: () => void = () => {};\n private _onValidatorChange: () => void = () => {};\n\n private _overlayRef: OverlayRef | null = null;\n private _componentRef: ComponentRef<IdsCalendarComponent> | null = null;\n private _scrollStrategy = this._overlay.scrollStrategies.reposition();\n\n private _overlayCloseSub = Subscription.EMPTY;\n\n public get value(): Date | null {\n return deserializeDate(this._parent.controlDir()?.value);\n }\n\n private _isValid = signal(false);\n\n private _dateFormatValidator: ValidatorFn = (): ValidationErrors | null => (this._isValid() ? null : { idsDateFormat: true });\n\n private _minValidator: ValidatorFn = (): ValidationErrors | null => {\n const current = getValidDateOrNull(deserializeDate(this.value));\n const min = this.minDate();\n return !min || !current || compareDates(min, current) <= 0 ? null : { 'idsDateMin': { min, current } };\n };\n\n private _maxValidator: ValidatorFn = (): ValidationErrors | null => {\n const current = getValidDateOrNull(deserializeDate(this.value));\n const max = this.maxDate();\n return !max || !current || compareDates(max, current) >= 0 ? null : { 'idsDateMax': { max, current } };\n };\n\n // eslint-disable-next-line @stylistic/js/array-bracket-newline, @stylistic/js/array-element-newline\n private _validator = Validators.compose([this._dateFormatValidator, this._minValidator, this._maxValidator]) as ValidatorFn;\n\n public ngOnChanges(changes: SimpleChanges): void {\n if ('opened' in changes) {\n if (this.openedInput()) {\n this.open();\n } else {\n this.close();\n }\n }\n if (('minDate' in changes && !changes['minDate'].firstChange) || ('maxDate' in changes && !changes['maxDate'].firstChange)) {\n this._onValidatorChange();\n }\n }\n\n // #region Value accessor implementation\n public writeValue(obj: unknown): void {\n this._isValid.set(this._isValidValue(deserializeDate(obj)));\n this._setInputValue(obj);\n }\n\n public registerOnChange(fn: () => void): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n // #endregion\n\n // #region Validator implementation\n public validate(control: AbstractControl): ValidationErrors | null {\n return this._validator(control);\n }\n\n public registerOnValidatorChange?(fn: () => void): void {\n this._onValidatorChange = fn;\n }\n // #endregion\n\n public open(): void {\n if (this.opened() || this._parent.disabled()) {\n return;\n }\n\n this._overlayRef = this._overlay.create(this._getOverlayConfig());\n\n this._overlayCloseSub = this._onOverlayClose(this._overlayRef).subscribe((event) => {\n event?.preventDefault();\n this.close();\n });\n this._onPageNavigationKeydown(this._overlayRef).subscribe((event) => event?.preventDefault());\n\n this._componentRef = this._overlayRef.attach(new ComponentPortal(IdsCalendarComponent, this._viewContainerRef));\n this._componentRef.setInput('value', this.value);\n this._componentRef.setInput('min', this.minDate());\n this._componentRef.setInput('max', this.maxDate());\n this._componentRef.setInput('view', this.view());\n this._componentRef.setInput('size', this._parent.size());\n\n this._componentRef.instance.selected.subscribe((selectedDate: Date) => {\n this._onChange(selectedDate);\n this._setInputValue(this.value);\n this._isValid.set(this._isValidValue(this.value));\n this._parent.controlDir()?.control?.updateValueAndValidity();\n this.close();\n });\n this._componentRef.instance.monthSelected.subscribe((selectedMonth: Date) => this.monthSelected.emit(selectedMonth));\n this._componentRef.instance.yearSelected.subscribe((selectedYear: Date) => this.yearSelected.emit(selectedYear));\n\n this._opened.set(true);\n }\n\n public close(): void {\n if (!this._opened()) {\n return;\n }\n\n this._overlayCloseSub.unsubscribe();\n this._overlayCloseSub = Subscription.EMPTY;\n\n this._disposeOverlay();\n\n this._opened.set(false);\n\n afterNextRender(() => this._elementRef.nativeElement.focus(), { injector: this._injector });\n }\n\n protected _handleInput(value: string): void {\n const parsed = this.parser()(value);\n this._isValid.set(this._isValidValue(parsed));\n\n const date = getValidDateOrNull(parsed);\n const valueChanged = !equalDates(date, this.value);\n\n if (!date || valueChanged) {\n this._onChange(date);\n }\n }\n\n protected _handleBlur(): void {\n this._onTouched();\n }\n\n protected _handleKeydown(event: KeyboardEvent): void {\n if (event.code === 'ArrowDown' && event.altKey && !event.ctrlKey && !event.shiftKey && !event.metaKey) {\n this.open();\n }\n }\n\n private _isValidValue(value: unknown): boolean {\n return !value || isValidDate(value);\n }\n\n private _setInputValue(value: unknown): void {\n this._elementRef.nativeElement.value = isValidDate(value) ? this.formatter()(value) : '';\n }\n\n private _getOverlayConfig(): OverlayConfig {\n const overlayViewportMargin = 8;\n const positionStrategy = this._overlay\n .position()\n .flexibleConnectedTo(this._parent.getConnectedOverlayOrigin())\n .withTransformOriginOn('.mat-datepicker-content')\n .withFlexibleDimensions(false)\n .withViewportMargin(overlayViewportMargin)\n .withLockedPosition()\n .withPositions(datepickerConnectedPositions);\n\n return {\n positionStrategy,\n hasBackdrop: true,\n backdropClass: [],\n direction: 'ltr',\n scrollStrategy: this._scrollStrategy,\n panelClass: 'ids-datepicker-panel',\n };\n }\n\n private _disposeOverlay(): void {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = null;\n this._componentRef = null;\n }\n }\n\n private _onOverlayClose(overlayRef: OverlayRef): Observable<MouseEvent | KeyboardEvent | void> {\n return merge(\n overlayRef.backdropClick(),\n overlayRef.detachments(),\n overlayRef.keydownEvents().pipe(filter((event) => event.code === 'Escape' && !hasModifierKey(event))),\n );\n }\n\n private _onPageNavigationKeydown(overlayRef: OverlayRef): Observable<KeyboardEvent> {\n return overlayRef.keydownEvents().pipe(filter((event) => [\n 'ArrowUp',\n 'ArrowDown',\n 'ArrowLeft',\n 'ArrowRight',\n 'PageUp',\n 'PageDown',\n ].includes(event.code)));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,44 +1,10 @@
|
|
|
1
|
-
import * as i1 from '@angular/cdk/menu';
|
|
2
|
-
import { CdkMenuTrigger, CdkMenuItem } from '@angular/cdk/menu';
|
|
3
1
|
import * as i0 from '@angular/core';
|
|
4
|
-
import {
|
|
2
|
+
import { InjectionToken, inject, ElementRef, input, contentChildren, computed, effect, ChangeDetectionStrategy, ViewEncapsulation, Component, contentChild, Directive } from '@angular/core';
|
|
5
3
|
import { IdsSize, ComponentBaseWithDefaults, coerceBooleanAttribute } from '@i-cell/ids-angular/core';
|
|
4
|
+
import * as i1 from '@angular/cdk/menu';
|
|
5
|
+
import { CdkMenuItem } from '@angular/cdk/menu';
|
|
6
6
|
import { RouterLink } from '@angular/router';
|
|
7
7
|
|
|
8
|
-
class IdsActionMenuTriggerDirective {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.menuTrigger = inject(CdkMenuTrigger);
|
|
11
|
-
}
|
|
12
|
-
get isOpen() {
|
|
13
|
-
return !!this.menuTrigger.isOpen();
|
|
14
|
-
}
|
|
15
|
-
open() {
|
|
16
|
-
this.menuTrigger.open();
|
|
17
|
-
}
|
|
18
|
-
close() {
|
|
19
|
-
this.menuTrigger.close();
|
|
20
|
-
}
|
|
21
|
-
toggle() {
|
|
22
|
-
this.menuTrigger.toggle();
|
|
23
|
-
}
|
|
24
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsActionMenuTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
25
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.7", type: IdsActionMenuTriggerDirective, isStandalone: true, selector: "button[idsActionMenuTriggerFor]", exportAs: ["idsActionMenuTrigger"], hostDirectives: [{ directive: i1.CdkMenuTrigger, inputs: ["cdkMenuTriggerFor", "idsActionMenuTriggerFor"] }], ngImport: i0 }); }
|
|
26
|
-
}
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsActionMenuTriggerDirective, decorators: [{
|
|
28
|
-
type: Directive,
|
|
29
|
-
args: [{
|
|
30
|
-
selector: 'button[idsActionMenuTriggerFor]',
|
|
31
|
-
standalone: true,
|
|
32
|
-
hostDirectives: [
|
|
33
|
-
{
|
|
34
|
-
directive: CdkMenuTrigger,
|
|
35
|
-
inputs: ['cdkMenuTriggerFor: idsActionMenuTriggerFor'],
|
|
36
|
-
},
|
|
37
|
-
],
|
|
38
|
-
exportAs: 'idsActionMenuTrigger',
|
|
39
|
-
}]
|
|
40
|
-
}] });
|
|
41
|
-
|
|
42
8
|
const IdsMenuItemAppearance = {
|
|
43
9
|
FILLED: 'filled',
|
|
44
10
|
TEXT: 'text',
|
|
@@ -150,5 +116,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
|
|
|
150
116
|
* Generated bundle index. Do not edit.
|
|
151
117
|
*/
|
|
152
118
|
|
|
153
|
-
export { IDS_MENU_ITEM_DEFAULT_CONFIG, IDS_MENU_ITEM_DEFAULT_CONFIG_FACTORY,
|
|
119
|
+
export { IDS_MENU_ITEM_DEFAULT_CONFIG, IDS_MENU_ITEM_DEFAULT_CONFIG_FACTORY, IdsActiveIndicatorDirective, IdsMenuItemAppearance, IdsMenuItemComponent, IdsMenuItemVariant };
|
|
154
120
|
//# sourceMappingURL=i-cell-ids-angular-menu.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i-cell-ids-angular-menu.mjs","sources":["../../../projects/widgets/menu/action-menu/action-menu-trigger.directive.ts","../../../projects/widgets/menu/menu-item/types/menu-item-appearance.type.ts","../../../projects/widgets/menu/menu-item/types/menu-item-variant.type.ts","../../../projects/widgets/menu/menu-item/menu-item-defaults.ts","../../../projects/widgets/menu/menu-item/menu-item.component.ts","../../../projects/widgets/menu/menu-item/menu-item.component.html","../../../projects/widgets/menu/active-indicator/active-indicator.directive.ts","../../../projects/widgets/menu/i-cell-ids-angular-menu.ts"],"sourcesContent":["import { CdkMenuTrigger } from '@angular/cdk/menu';\nimport { Directive, inject } from '@angular/core';\n\n@Directive({\n selector: 'button[idsActionMenuTriggerFor]',\n standalone: true,\n hostDirectives: [\n {\n directive: CdkMenuTrigger,\n inputs: ['cdkMenuTriggerFor: idsActionMenuTriggerFor'],\n },\n ],\n exportAs: 'idsActionMenuTrigger',\n})\nexport class IdsActionMenuTriggerDirective {\n public menuTrigger = inject(CdkMenuTrigger);\n\n get isOpen(): boolean {\n return !!this.menuTrigger.isOpen();\n }\n\n public open(): void {\n this.menuTrigger.open();\n }\n\n public close(): void {\n this.menuTrigger.close();\n }\n\n public toggle(): void {\n this.menuTrigger.toggle();\n }\n}\n","export const IdsMenuItemAppearance = {\n FILLED: 'filled',\n TEXT: 'text',\n} as const;\n\nexport type IdsMenuItemAppearanceType = (typeof IdsMenuItemAppearance)[keyof typeof IdsMenuItemAppearance];\n","export const IdsMenuItemVariant = {\n SURFACE: 'surface',\n LIGHT: 'light',\n} as const;\n\nexport type IdsMenuItemVariantType = (typeof IdsMenuItemVariant)[keyof typeof IdsMenuItemVariant];\n","import { IdsMenuItemAppearance, IdsMenuItemAppearanceType } from './types/menu-item-appearance.type';\nimport { IdsMenuItemVariant, IdsMenuItemVariantType } from './types/menu-item-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsMenuItemDefaultConfig {\n appearance?: IdsMenuItemAppearanceType,\n size?: IdsSizeType,\n variant?: IdsMenuItemVariantType,\n showLabel?: boolean,\n}\n\nexport const IDS_MENU_ITEM_DEFAULT_CONFIG = new InjectionToken<IdsMenuItemDefaultConfig>(\n 'IDS_MENU_ITEM_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_MENU_ITEM_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_MENU_ITEM_DEFAULT_CONFIG_FACTORY(): Required<IdsMenuItemDefaultConfig> {\n return {\n appearance: IdsMenuItemAppearance.TEXT,\n size: IdsSize.COMPACT,\n variant: IdsMenuItemVariant.SURFACE,\n showLabel: true,\n };\n}\n\n","import { IDS_MENU_ITEM_DEFAULT_CONFIG, IDS_MENU_ITEM_DEFAULT_CONFIG_FACTORY, IdsMenuItemDefaultConfig } from './menu-item-defaults';\nimport { IdsMenuItemAppearanceType } from './types/menu-item-appearance.type';\nimport { IdsMenuItemVariantType } from './types/menu-item-variant.type';\n\nimport { CdkMenuItem } from '@angular/cdk/menu';\nimport { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation, computed, contentChildren, effect, inject, input } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { ComponentBaseWithDefaults, IdsSizeType, coerceBooleanAttribute } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\nconst defaultConfig = IDS_MENU_ITEM_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'button[idsMenuItem],a[idsMenuItem]',\n imports: [],\n hostDirectives: [CdkMenuItem],\n templateUrl: './menu-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[type]': 'buttonType',\n '[attr.disabled]': 'disabled() ? \"\" : null',\n '[attr.aria-disabled]': 'disabled() || null',\n },\n})\nexport class IdsMenuItemComponent extends ComponentBaseWithDefaults<IdsMenuItemDefaultConfig> {\n protected override get _hostName(): string {\n return 'menu-item';\n }\n\n private _hostElement = inject<ElementRef<HTMLElement>>(ElementRef<HTMLElement>).nativeElement;\n private _routerLink = inject(RouterLink, { optional: true, self: true });\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_MENU_ITEM_DEFAULT_CONFIG);\n\n public label = input<string>();\n public appearance = input<IdsMenuItemAppearanceType>(this._defaultConfig.appearance);\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsMenuItemVariantType>(this._defaultConfig.variant);\n public disabled = input(false, { transform: coerceBooleanAttribute });\n\n protected _iconLeading = contentChildren<IdsIconComponent>('[icon-leading]');\n protected _iconTrailing = contentChildren<IdsIconComponent>('[icon-trailing]');\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.appearance(),\n this.size(),\n this.variant(),\n this.disabled() ? 'disabled' : null,\n !this.label() ? 'no-label' : null,\n ]));\n\n private get _buttonType(): string | null {\n return this._hostElement.tagName === 'BUTTON' ? 'button' : null;\n }\n\n constructor() {\n super();\n\n effect(() => {\n if (this._buttonType) {\n return;\n }\n\n const link = this._hostElement as HTMLAnchorElement;\n\n if (this.disabled()) {\n this._disableLink(link);\n } else {\n this._enableLink(link);\n }\n });\n }\n\n private _disableLink(link: HTMLAnchorElement): void {\n if (!this._routerLink) {\n link.setAttribute('data-href', link.href);\n }\n link.removeAttribute('href');\n }\n\n private _enableLink(link: HTMLAnchorElement): void {\n const prevHref = this._routerLink?.href ?? link.getAttribute('data-href') ?? '';\n\n if (prevHref) {\n link.href = prevHref;\n link.removeAttribute('data-href');\n }\n }\n}\n","@if (_iconLeading()) {\n <ng-content select=\"ids-icon[icon-leading]\" />\n}\n@if (label()) {\n <div class=\"ids-menu-item-label--wrapper\"><span class=\"ids-menu-item-label\">{{ label() }}</span></div>\n}\n\n@if (_iconTrailing()) {\n <ng-content select=\"ids-icon[icon-trailing]\" />\n}\n","import { IdsMenuItemComponent } from '../menu-item/menu-item.component';\n\nimport { contentChild, Directive, input } from '@angular/core';\n\n@Directive({\n selector: '[idsActiveIndicator]',\n host: {\n '[class.ids-active-indicator]': 'true',\n '[class.ids-active-indicator--active]': 'active()',\n },\n})\nexport class IdsActiveIndicatorDirective {\n private _menuItem = contentChild.required(IdsMenuItemComponent);\n\n public active = input.required<boolean>();\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-menu.mjs","sources":["../../../projects/widgets/menu/menu-item/types/menu-item-appearance.type.ts","../../../projects/widgets/menu/menu-item/types/menu-item-variant.type.ts","../../../projects/widgets/menu/menu-item/menu-item-defaults.ts","../../../projects/widgets/menu/menu-item/menu-item.component.ts","../../../projects/widgets/menu/menu-item/menu-item.component.html","../../../projects/widgets/menu/active-indicator/active-indicator.directive.ts","../../../projects/widgets/menu/i-cell-ids-angular-menu.ts"],"sourcesContent":["export const IdsMenuItemAppearance = {\n FILLED: 'filled',\n TEXT: 'text',\n} as const;\n\nexport type IdsMenuItemAppearanceType = (typeof IdsMenuItemAppearance)[keyof typeof IdsMenuItemAppearance];\n","export const IdsMenuItemVariant = {\n SURFACE: 'surface',\n LIGHT: 'light',\n} as const;\n\nexport type IdsMenuItemVariantType = (typeof IdsMenuItemVariant)[keyof typeof IdsMenuItemVariant];\n","import { IdsMenuItemAppearance, IdsMenuItemAppearanceType } from './types/menu-item-appearance.type';\nimport { IdsMenuItemVariant, IdsMenuItemVariantType } from './types/menu-item-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsMenuItemDefaultConfig {\n appearance?: IdsMenuItemAppearanceType,\n size?: IdsSizeType,\n variant?: IdsMenuItemVariantType,\n showLabel?: boolean,\n}\n\nexport const IDS_MENU_ITEM_DEFAULT_CONFIG = new InjectionToken<IdsMenuItemDefaultConfig>(\n 'IDS_MENU_ITEM_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_MENU_ITEM_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_MENU_ITEM_DEFAULT_CONFIG_FACTORY(): Required<IdsMenuItemDefaultConfig> {\n return {\n appearance: IdsMenuItemAppearance.TEXT,\n size: IdsSize.COMPACT,\n variant: IdsMenuItemVariant.SURFACE,\n showLabel: true,\n };\n}\n\n","import { IDS_MENU_ITEM_DEFAULT_CONFIG, IDS_MENU_ITEM_DEFAULT_CONFIG_FACTORY, IdsMenuItemDefaultConfig } from './menu-item-defaults';\nimport { IdsMenuItemAppearanceType } from './types/menu-item-appearance.type';\nimport { IdsMenuItemVariantType } from './types/menu-item-variant.type';\n\nimport { CdkMenuItem } from '@angular/cdk/menu';\nimport { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation, computed, contentChildren, effect, inject, input } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { ComponentBaseWithDefaults, IdsSizeType, coerceBooleanAttribute } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\nconst defaultConfig = IDS_MENU_ITEM_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'button[idsMenuItem],a[idsMenuItem]',\n imports: [],\n hostDirectives: [CdkMenuItem],\n templateUrl: './menu-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[type]': 'buttonType',\n '[attr.disabled]': 'disabled() ? \"\" : null',\n '[attr.aria-disabled]': 'disabled() || null',\n },\n})\nexport class IdsMenuItemComponent extends ComponentBaseWithDefaults<IdsMenuItemDefaultConfig> {\n protected override get _hostName(): string {\n return 'menu-item';\n }\n\n private _hostElement = inject<ElementRef<HTMLElement>>(ElementRef<HTMLElement>).nativeElement;\n private _routerLink = inject(RouterLink, { optional: true, self: true });\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_MENU_ITEM_DEFAULT_CONFIG);\n\n public label = input<string>();\n public appearance = input<IdsMenuItemAppearanceType>(this._defaultConfig.appearance);\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsMenuItemVariantType>(this._defaultConfig.variant);\n public disabled = input(false, { transform: coerceBooleanAttribute });\n\n protected _iconLeading = contentChildren<IdsIconComponent>('[icon-leading]');\n protected _iconTrailing = contentChildren<IdsIconComponent>('[icon-trailing]');\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.appearance(),\n this.size(),\n this.variant(),\n this.disabled() ? 'disabled' : null,\n !this.label() ? 'no-label' : null,\n ]));\n\n private get _buttonType(): string | null {\n return this._hostElement.tagName === 'BUTTON' ? 'button' : null;\n }\n\n constructor() {\n super();\n\n effect(() => {\n if (this._buttonType) {\n return;\n }\n\n const link = this._hostElement as HTMLAnchorElement;\n\n if (this.disabled()) {\n this._disableLink(link);\n } else {\n this._enableLink(link);\n }\n });\n }\n\n private _disableLink(link: HTMLAnchorElement): void {\n if (!this._routerLink) {\n link.setAttribute('data-href', link.href);\n }\n link.removeAttribute('href');\n }\n\n private _enableLink(link: HTMLAnchorElement): void {\n const prevHref = this._routerLink?.href ?? link.getAttribute('data-href') ?? '';\n\n if (prevHref) {\n link.href = prevHref;\n link.removeAttribute('data-href');\n }\n }\n}\n","@if (_iconLeading()) {\n <ng-content select=\"ids-icon[icon-leading]\" />\n}\n@if (label()) {\n <div class=\"ids-menu-item-label--wrapper\"><span class=\"ids-menu-item-label\">{{ label() }}</span></div>\n}\n\n@if (_iconTrailing()) {\n <ng-content select=\"ids-icon[icon-trailing]\" />\n}\n","import { IdsMenuItemComponent } from '../menu-item/menu-item.component';\n\nimport { contentChild, Directive, input } from '@angular/core';\n\n@Directive({\n selector: '[idsActiveIndicator]',\n host: {\n '[class.ids-active-indicator]': 'true',\n '[class.ids-active-indicator--active]': 'active()',\n },\n})\nexport class IdsActiveIndicatorDirective {\n private _menuItem = contentChild.required(IdsMenuItemComponent);\n\n public active = input.required<boolean>();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, input,
|
|
2
|
+
import { InjectionToken, input, output, contentChild, computed, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
|
|
3
3
|
import { IdsSize, ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';
|
|
4
|
-
import * as
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
4
|
+
import * as i2 from '@angular/cdk/a11y';
|
|
5
|
+
import { A11yModule } from '@angular/cdk/a11y';
|
|
6
|
+
import { CdkMenu } from '@angular/cdk/menu';
|
|
7
|
+
import * as i1 from '@angular/cdk/overlay';
|
|
8
|
+
import { OverlayModule } from '@angular/cdk/overlay';
|
|
9
|
+
import { NgClass } from '@angular/common';
|
|
7
10
|
|
|
8
11
|
const IdsOverlayPanelAppearance = {
|
|
9
12
|
FILLED: 'filled',
|
|
@@ -33,35 +36,43 @@ class IdsOverlayPanelComponent extends ComponentBaseWithDefaults {
|
|
|
33
36
|
constructor() {
|
|
34
37
|
super(...arguments);
|
|
35
38
|
this._defaultConfig = this._getDefaultConfig(defaultConfig, IDS_OVERLAY_PANEL_DEFAULT_CONFIG);
|
|
39
|
+
this.open = input(false, ...(ngDevMode ? [{ debugName: "open" }] : []));
|
|
40
|
+
this.origin = input.required(...(ngDevMode ? [{ debugName: "origin" }] : []));
|
|
41
|
+
this.closed = output();
|
|
36
42
|
this.appearance = input(this._defaultConfig.appearance, ...(ngDevMode ? [{ debugName: "appearance" }] : []));
|
|
37
43
|
this.size = input(this._defaultConfig.size, ...(ngDevMode ? [{ debugName: "size" }] : []));
|
|
38
44
|
this.variant = input(this._defaultConfig.variant, ...(ngDevMode ? [{ debugName: "variant" }] : []));
|
|
39
|
-
this.
|
|
40
|
-
this.
|
|
45
|
+
this._cdkMenu = contentChild(CdkMenu, ...(ngDevMode ? [{ debugName: "_cdkMenu", descendants: true }] : [{ descendants: true }]));
|
|
46
|
+
this._hasCdkMenu = computed(() => !!this._cdkMenu(), ...(ngDevMode ? [{ debugName: "_hasCdkMenu" }] : []));
|
|
47
|
+
this._panelClasses = computed(() => this._getHostClasses([
|
|
41
48
|
this.appearance(),
|
|
42
49
|
this.size(),
|
|
43
50
|
this.variant(),
|
|
44
|
-
|
|
51
|
+
this._hasCdkMenu() ? 'has-menu' : null,
|
|
52
|
+
]), ...(ngDevMode ? [{ debugName: "_panelClasses" }] : []));
|
|
53
|
+
this._hostClasses = computed(() => '', ...(ngDevMode ? [{ debugName: "_hostClasses" }] : []));
|
|
45
54
|
}
|
|
46
55
|
get _hostName() {
|
|
47
56
|
return 'overlay-panel';
|
|
48
57
|
}
|
|
58
|
+
_handleOverlayOutsideClick() {
|
|
59
|
+
if (this.open()) {
|
|
60
|
+
this.closed.emit();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
_handleDetach() {
|
|
64
|
+
this.closed.emit();
|
|
65
|
+
}
|
|
49
66
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsOverlayPanelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
50
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.1.7", type: IdsOverlayPanelComponent, isStandalone: true, selector: "ids-overlay-panel
|
|
67
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.1.7", type: IdsOverlayPanelComponent, isStandalone: true, selector: "ids-overlay-panel", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, origin: { classPropertyName: "origin", publicName: "origin", isSignal: true, isRequired: true, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, queries: [{ propertyName: "_cdkMenu", first: true, predicate: CdkMenu, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin()\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPanelClass]=\"_hostClasses()\"\n (overlayOutsideClick)=\"_handleOverlayOutsideClick()\"\n (detach)=\"_handleDetach()\"\n>\n <div\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n [ngClass]=\"_panelClasses()\"\n >\n <ng-content/>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
51
68
|
}
|
|
52
69
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsOverlayPanelComponent, decorators: [{
|
|
53
70
|
type: Component,
|
|
54
|
-
args: [{
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
CdkTargetMenuAim,
|
|
60
|
-
],
|
|
61
|
-
template: '<ng-content />',
|
|
62
|
-
encapsulation: ViewEncapsulation.None,
|
|
63
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
64
|
-
}]
|
|
71
|
+
args: [{ selector: 'ids-overlay-panel', imports: [
|
|
72
|
+
OverlayModule,
|
|
73
|
+
A11yModule,
|
|
74
|
+
NgClass,
|
|
75
|
+
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin()\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPanelClass]=\"_hostClasses()\"\n (overlayOutsideClick)=\"_handleOverlayOutsideClick()\"\n (detach)=\"_handleDetach()\"\n>\n <div\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n [ngClass]=\"_panelClasses()\"\n >\n <ng-content/>\n </div>\n</ng-template>\n" }]
|
|
65
76
|
}] });
|
|
66
77
|
|
|
67
78
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i-cell-ids-angular-overlay-panel.mjs","sources":["../../../projects/widgets/overlay-panel/types/overlay-panel-appearance.type.ts","../../../projects/widgets/overlay-panel/types/overlay-panel-variant.type.ts","../../../projects/widgets/overlay-panel/overlay-panel-defaults.ts","../../../projects/widgets/overlay-panel/overlay-panel.component.ts","../../../projects/widgets/overlay-panel/i-cell-ids-angular-overlay-panel.ts"],"sourcesContent":["export const IdsOverlayPanelAppearance = {\n FILLED: 'filled',\n OUTLINED: 'outlined',\n ELEVATED: 'elevated',\n} as const;\n\nexport type IdsOverlayPanelAppearanceType = (typeof IdsOverlayPanelAppearance)[keyof typeof IdsOverlayPanelAppearance];\n","export const IdsOverlayPanelVariant = {\n SURFACE: 'surface',\n LIGHT: 'light',\n} as const;\n\nexport type IdsOverlayPanelVariantType = (typeof IdsOverlayPanelVariant)[keyof typeof IdsOverlayPanelVariant];\n","import { IdsOverlayPanelAppearance, IdsOverlayPanelAppearanceType } from './types/overlay-panel-appearance.type';\nimport { IdsOverlayPanelVariant, IdsOverlayPanelVariantType } from './types/overlay-panel-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsOverlayPanelDefaultConfig {\n appearance?: IdsOverlayPanelAppearanceType,\n size?: IdsSizeType,\n variant?: IdsOverlayPanelVariantType,\n}\n\nexport const IDS_OVERLAY_PANEL_DEFAULT_CONFIG = new InjectionToken<IdsOverlayPanelDefaultConfig>(\n 'IDS_OVERLAY_PANEL_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY(): Required<IdsOverlayPanelDefaultConfig> {\n return {\n appearance: IdsOverlayPanelAppearance.FILLED,\n size: IdsSize.COMPACT,\n variant: IdsOverlayPanelVariant.LIGHT,\n };\n}\n\n","import {
|
|
1
|
+
{"version":3,"file":"i-cell-ids-angular-overlay-panel.mjs","sources":["../../../projects/widgets/overlay-panel/types/overlay-panel-appearance.type.ts","../../../projects/widgets/overlay-panel/types/overlay-panel-variant.type.ts","../../../projects/widgets/overlay-panel/overlay-panel-defaults.ts","../../../projects/widgets/overlay-panel/overlay-panel.component.ts","../../../projects/widgets/overlay-panel/overlay-panel.component.html","../../../projects/widgets/overlay-panel/i-cell-ids-angular-overlay-panel.ts"],"sourcesContent":["export const IdsOverlayPanelAppearance = {\n FILLED: 'filled',\n OUTLINED: 'outlined',\n ELEVATED: 'elevated',\n} as const;\n\nexport type IdsOverlayPanelAppearanceType = (typeof IdsOverlayPanelAppearance)[keyof typeof IdsOverlayPanelAppearance];\n","export const IdsOverlayPanelVariant = {\n SURFACE: 'surface',\n LIGHT: 'light',\n} as const;\n\nexport type IdsOverlayPanelVariantType = (typeof IdsOverlayPanelVariant)[keyof typeof IdsOverlayPanelVariant];\n","import { IdsOverlayPanelAppearance, IdsOverlayPanelAppearanceType } from './types/overlay-panel-appearance.type';\nimport { IdsOverlayPanelVariant, IdsOverlayPanelVariantType } from './types/overlay-panel-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsOverlayPanelDefaultConfig {\n appearance?: IdsOverlayPanelAppearanceType,\n size?: IdsSizeType,\n variant?: IdsOverlayPanelVariantType,\n}\n\nexport const IDS_OVERLAY_PANEL_DEFAULT_CONFIG = new InjectionToken<IdsOverlayPanelDefaultConfig>(\n 'IDS_OVERLAY_PANEL_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY(): Required<IdsOverlayPanelDefaultConfig> {\n return {\n appearance: IdsOverlayPanelAppearance.FILLED,\n size: IdsSize.COMPACT,\n variant: IdsOverlayPanelVariant.LIGHT,\n };\n}\n\n","import {\n IDS_OVERLAY_PANEL_DEFAULT_CONFIG,\n IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY,\n IdsOverlayPanelDefaultConfig,\n} from './overlay-panel-defaults';\nimport { IdsOverlayPanelAppearanceType } from './types/overlay-panel-appearance.type';\nimport { IdsOverlayPanelVariantType } from './types/overlay-panel-variant.type';\n\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { CdkMenu } from '@angular/cdk/menu';\nimport { OverlayModule, CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n input, output, computed, contentChild,\n} from '@angular/core';\nimport { IdsSizeType, ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-overlay-panel',\n imports: [\n OverlayModule,\n A11yModule,\n NgClass,\n ],\n templateUrl: './overlay-panel.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class IdsOverlayPanelComponent extends ComponentBaseWithDefaults<IdsOverlayPanelDefaultConfig> {\n protected override get _hostName(): string {\n return 'overlay-panel';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_OVERLAY_PANEL_DEFAULT_CONFIG);\n\n public open = input<boolean>(false);\n public origin = input.required<CdkOverlayOrigin>();\n public closed = output<void>();\n\n public appearance = input<IdsOverlayPanelAppearanceType>(this._defaultConfig.appearance);\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsOverlayPanelVariantType>(this._defaultConfig.variant);\n\n private _cdkMenu = contentChild(CdkMenu, { descendants: true });\n\n protected _hasCdkMenu = computed(() => !!this._cdkMenu());\n\n protected _handleOverlayOutsideClick(): void {\n if (this.open()) {\n this.closed.emit();\n }\n }\n\n protected _handleDetach(): void {\n this.closed.emit();\n }\n\n protected _panelClasses = computed(() => this._getHostClasses([\n this.appearance(),\n this.size(),\n this.variant(),\n this._hasCdkMenu() ? 'has-menu' : null,\n ]),\n );\n\n protected _hostClasses = computed(() => '');\n}\n","<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin()\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPanelClass]=\"_hostClasses()\"\n (overlayOutsideClick)=\"_handleOverlayOutsideClick()\"\n (detach)=\"_handleDetach()\"\n>\n <div\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n [ngClass]=\"_panelClasses()\"\n >\n <ng-content/>\n </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -302,13 +302,13 @@ class IdsPaginatorComponent extends ComponentBaseWithDefaults {
|
|
|
302
302
|
});
|
|
303
303
|
}
|
|
304
304
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsPaginatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
305
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: IdsPaginatorComponent, isStandalone: true, selector: "ids-paginator", inputs: { pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, pageSizeOptions: { classPropertyName: "pageSizeOptions", publicName: "pageSizeOptions", isSignal: true, isRequired: false, transformFunction: null }, showFirstLastButton: { classPropertyName: "showFirstLastButton", publicName: "showFirstLastButton", isSignal: true, isRequired: false, transformFunction: null }, showPrevNextLabel: { classPropertyName: "showPrevNextLabel", publicName: "showPrevNextLabel", isSignal: true, isRequired: false, transformFunction: null }, showPageInfo: { classPropertyName: "showPageInfo", publicName: "showPageInfo", isSignal: true, isRequired: false, transformFunction: null }, showPageButtons: { classPropertyName: "showPageButtons", publicName: "showPageButtons", isSignal: true, isRequired: false, transformFunction: null }, showAllPages: { classPropertyName: "showAllPages", publicName: "showAllPages", isSignal: true, isRequired: false, transformFunction: null }, maxDisplayedItemCount: { classPropertyName: "maxDisplayedItemCount", publicName: "maxDisplayedItemCount", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, pageButtonAppearance: { classPropertyName: "pageButtonAppearance", publicName: "pageButtonAppearance", isSignal: true, isRequired: false, transformFunction: null }, length: { classPropertyName: "length", publicName: "length", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, compactLayout: { classPropertyName: "compactLayout", publicName: "compactLayout", isSignal: true, isRequired: false, transformFunction: null }, pageIndex: { classPropertyName: "pageIndex", publicName: "pageIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pageIndex: "pageIndexChange", pageChanged: "pageChanged" }, host: { listeners: { "keydown": "_handleKeyDown($event)" } }, usesInheritance: true, ngImport: i0, template: "<nav class=\"ids-paginator__navigation-container\">\n @if (showFirstLastButton()) {\n <button\n type=\"button\"\n class=\"ids-paginator__page-button-arrow first\"\n [class]=\"_pageButtonClasses()\"\n [disabled]=\"_isPreviousButtonDisabled()\"\n [attr.aria-label]=\"_intl.firstPageAriaLabel\"\n (click)=\"stepFirstPage()\"\n >\n <ids-icon fontIcon=\"chevron-double-left\" [size]=\"size()\" />\n </button>\n }\n\n <button\n type=\"button\"\n class=\"ids-paginator__page-button-arrow previous\"\n [class]=\"_pageButtonClasses()\"\n [disabled]=\"_isPreviousButtonDisabled()\"\n [attr.aria-label]=\"_intl.previousPageAriaLabel\"\n (click)=\"stepPreviousPage()\"\n >\n <ids-icon fontIcon=\"chevron-left\" [size]=\"size()\" />\n @if (showPrevNextLabel() && compactLayout()) {\n <span class=\"ids-paginator__page-button-arrow__label\">{{ _intl.previousPageLabel }}</span>\n }\n </button>\n\n @if (showPageButtons() && !compactLayout()) {\n <ul class=\"ids-paginator__page-button-container\">\n @for (pageButtonLabel of _pageButtonLabels(); track pageButtonLabel) {\n <li>\n @if (pageButtonLabel === \"tl\" || pageButtonLabel === \"tr\") {\n <button type=\"button\" disabled class=\"ids-paginator__page-button-truncation\" [class]=\"_pageButtonClasses()\">\n <ids-icon fontIcon=\"more-
|
|
305
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: IdsPaginatorComponent, isStandalone: true, selector: "ids-paginator", inputs: { pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, pageSizeOptions: { classPropertyName: "pageSizeOptions", publicName: "pageSizeOptions", isSignal: true, isRequired: false, transformFunction: null }, showFirstLastButton: { classPropertyName: "showFirstLastButton", publicName: "showFirstLastButton", isSignal: true, isRequired: false, transformFunction: null }, showPrevNextLabel: { classPropertyName: "showPrevNextLabel", publicName: "showPrevNextLabel", isSignal: true, isRequired: false, transformFunction: null }, showPageInfo: { classPropertyName: "showPageInfo", publicName: "showPageInfo", isSignal: true, isRequired: false, transformFunction: null }, showPageButtons: { classPropertyName: "showPageButtons", publicName: "showPageButtons", isSignal: true, isRequired: false, transformFunction: null }, showAllPages: { classPropertyName: "showAllPages", publicName: "showAllPages", isSignal: true, isRequired: false, transformFunction: null }, maxDisplayedItemCount: { classPropertyName: "maxDisplayedItemCount", publicName: "maxDisplayedItemCount", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, pageButtonAppearance: { classPropertyName: "pageButtonAppearance", publicName: "pageButtonAppearance", isSignal: true, isRequired: false, transformFunction: null }, length: { classPropertyName: "length", publicName: "length", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, compactLayout: { classPropertyName: "compactLayout", publicName: "compactLayout", isSignal: true, isRequired: false, transformFunction: null }, pageIndex: { classPropertyName: "pageIndex", publicName: "pageIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pageIndex: "pageIndexChange", pageChanged: "pageChanged" }, host: { listeners: { "keydown": "_handleKeyDown($event)" } }, usesInheritance: true, ngImport: i0, template: "<nav class=\"ids-paginator__navigation-container\">\n @if (showFirstLastButton()) {\n <button\n type=\"button\"\n class=\"ids-paginator__page-button-arrow first\"\n [class]=\"_pageButtonClasses()\"\n [disabled]=\"_isPreviousButtonDisabled()\"\n [attr.aria-label]=\"_intl.firstPageAriaLabel\"\n (click)=\"stepFirstPage()\"\n >\n <ids-icon fontIcon=\"chevron-double-left\" [size]=\"size()\" />\n </button>\n }\n\n <button\n type=\"button\"\n class=\"ids-paginator__page-button-arrow previous\"\n [class]=\"_pageButtonClasses()\"\n [disabled]=\"_isPreviousButtonDisabled()\"\n [attr.aria-label]=\"_intl.previousPageAriaLabel\"\n (click)=\"stepPreviousPage()\"\n >\n <ids-icon fontIcon=\"chevron-left\" [size]=\"size()\" />\n @if (showPrevNextLabel() && compactLayout()) {\n <span class=\"ids-paginator__page-button-arrow__label\">{{ _intl.previousPageLabel }}</span>\n }\n </button>\n\n @if (showPageButtons() && !compactLayout()) {\n <ul class=\"ids-paginator__page-button-container\">\n @for (pageButtonLabel of _pageButtonLabels(); track pageButtonLabel) {\n <li>\n @if (pageButtonLabel === \"tl\" || pageButtonLabel === \"tr\") {\n <button type=\"button\" disabled class=\"ids-paginator__page-button-truncation\" [class]=\"_pageButtonClasses()\">\n <ids-icon fontIcon=\"more-horiz\" [size]=\"size()\" />\n </button>\n } @else {\n <button\n #pageButtonElement\n type=\"button\"\n class=\"ids-paginator__page-button\"\n [id]=\"_pageButtonIdPrefix() + pageButtonLabel\"\n [disabled]=\"disabled()\"\n [class]=\"_pageButtonClasses()\"\n [class.active]=\"+pageButtonLabel === _pageIndex() + 1\"\n [attr.aria-label]=\"_intl.getPageAriaLabel(pageButtonLabel)\"\n [attr.aria-current]=\"+pageButtonLabel === _pageIndex() + 1 ? 'page' : null\"\n (click)=\"stepPage(+pageButtonLabel - 1)\"\n >\n <span>{{ pageButtonLabel }}</span>\n </button>\n }\n </li>\n }\n </ul>\n }\n\n <button\n type=\"button\"\n class=\"ids-paginator__page-button-arrow next\"\n [class]=\"_pageButtonClasses()\"\n [disabled]=\"_isNextButtonDisabled()\"\n [attr.aria-label]=\"_intl.nextPageAriaLabel\"\n (click)=\"stepNextPage()\"\n >\n @if (showPrevNextLabel() && compactLayout()) {\n <span class=\"ids-paginator__page-button-arrow__label\">{{ _intl.nextPageLabel }}</span>\n }\n <ids-icon fontIcon=\"chevron-right\" [size]=\"size()\" />\n </button>\n\n @if (showFirstLastButton()) {\n <button\n type=\"button\"\n class=\"ids-paginator__page-button-arrow last\"\n [class]=\"_pageButtonClasses()\"\n [disabled]=\"_isNextButtonDisabled()\"\n [attr.aria-label]=\"_intl.lastPageAriaLabel\"\n (click)=\"stepLastPage()\"\n >\n <ids-icon fontIcon=\"chevron-double-right\" [size]=\"size()\" />\n </button>\n }\n\n <span class=\"ids-paginator__help-text\" [class.sr-only]=\"!showPageInfo()\">{{\n _intl.getRangeLabel(_pageIndex(), _safePageSizeData().safePageSize, length())\n }}</span>\n</nav>\n", dependencies: [{ kind: "component", type: IdsIconComponent, selector: "ids-icon", inputs: ["size", "sizeCollection", "variant", "fontIcon", "svgIcon", "aria-hidden"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
306
306
|
}
|
|
307
307
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsPaginatorComponent, decorators: [{
|
|
308
308
|
type: Component,
|
|
309
309
|
args: [{ selector: 'ids-paginator', imports: [IdsIconComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
310
310
|
'(keydown)': '_handleKeyDown($event)',
|
|
311
|
-
}, template: "<nav class=\"ids-paginator__navigation-container\">\n @if (showFirstLastButton()) {\n <button\n type=\"button\"\n class=\"ids-paginator__page-button-arrow first\"\n [class]=\"_pageButtonClasses()\"\n [disabled]=\"_isPreviousButtonDisabled()\"\n [attr.aria-label]=\"_intl.firstPageAriaLabel\"\n (click)=\"stepFirstPage()\"\n >\n <ids-icon fontIcon=\"chevron-double-left\" [size]=\"size()\" />\n </button>\n }\n\n <button\n type=\"button\"\n class=\"ids-paginator__page-button-arrow previous\"\n [class]=\"_pageButtonClasses()\"\n [disabled]=\"_isPreviousButtonDisabled()\"\n [attr.aria-label]=\"_intl.previousPageAriaLabel\"\n (click)=\"stepPreviousPage()\"\n >\n <ids-icon fontIcon=\"chevron-left\" [size]=\"size()\" />\n @if (showPrevNextLabel() && compactLayout()) {\n <span class=\"ids-paginator__page-button-arrow__label\">{{ _intl.previousPageLabel }}</span>\n }\n </button>\n\n @if (showPageButtons() && !compactLayout()) {\n <ul class=\"ids-paginator__page-button-container\">\n @for (pageButtonLabel of _pageButtonLabels(); track pageButtonLabel) {\n <li>\n @if (pageButtonLabel === \"tl\" || pageButtonLabel === \"tr\") {\n <button type=\"button\" disabled class=\"ids-paginator__page-button-truncation\" [class]=\"_pageButtonClasses()\">\n <ids-icon fontIcon=\"more-
|
|
311
|
+
}, template: "<nav class=\"ids-paginator__navigation-container\">\n @if (showFirstLastButton()) {\n <button\n type=\"button\"\n class=\"ids-paginator__page-button-arrow first\"\n [class]=\"_pageButtonClasses()\"\n [disabled]=\"_isPreviousButtonDisabled()\"\n [attr.aria-label]=\"_intl.firstPageAriaLabel\"\n (click)=\"stepFirstPage()\"\n >\n <ids-icon fontIcon=\"chevron-double-left\" [size]=\"size()\" />\n </button>\n }\n\n <button\n type=\"button\"\n class=\"ids-paginator__page-button-arrow previous\"\n [class]=\"_pageButtonClasses()\"\n [disabled]=\"_isPreviousButtonDisabled()\"\n [attr.aria-label]=\"_intl.previousPageAriaLabel\"\n (click)=\"stepPreviousPage()\"\n >\n <ids-icon fontIcon=\"chevron-left\" [size]=\"size()\" />\n @if (showPrevNextLabel() && compactLayout()) {\n <span class=\"ids-paginator__page-button-arrow__label\">{{ _intl.previousPageLabel }}</span>\n }\n </button>\n\n @if (showPageButtons() && !compactLayout()) {\n <ul class=\"ids-paginator__page-button-container\">\n @for (pageButtonLabel of _pageButtonLabels(); track pageButtonLabel) {\n <li>\n @if (pageButtonLabel === \"tl\" || pageButtonLabel === \"tr\") {\n <button type=\"button\" disabled class=\"ids-paginator__page-button-truncation\" [class]=\"_pageButtonClasses()\">\n <ids-icon fontIcon=\"more-horiz\" [size]=\"size()\" />\n </button>\n } @else {\n <button\n #pageButtonElement\n type=\"button\"\n class=\"ids-paginator__page-button\"\n [id]=\"_pageButtonIdPrefix() + pageButtonLabel\"\n [disabled]=\"disabled()\"\n [class]=\"_pageButtonClasses()\"\n [class.active]=\"+pageButtonLabel === _pageIndex() + 1\"\n [attr.aria-label]=\"_intl.getPageAriaLabel(pageButtonLabel)\"\n [attr.aria-current]=\"+pageButtonLabel === _pageIndex() + 1 ? 'page' : null\"\n (click)=\"stepPage(+pageButtonLabel - 1)\"\n >\n <span>{{ pageButtonLabel }}</span>\n </button>\n }\n </li>\n }\n </ul>\n }\n\n <button\n type=\"button\"\n class=\"ids-paginator__page-button-arrow next\"\n [class]=\"_pageButtonClasses()\"\n [disabled]=\"_isNextButtonDisabled()\"\n [attr.aria-label]=\"_intl.nextPageAriaLabel\"\n (click)=\"stepNextPage()\"\n >\n @if (showPrevNextLabel() && compactLayout()) {\n <span class=\"ids-paginator__page-button-arrow__label\">{{ _intl.nextPageLabel }}</span>\n }\n <ids-icon fontIcon=\"chevron-right\" [size]=\"size()\" />\n </button>\n\n @if (showFirstLastButton()) {\n <button\n type=\"button\"\n class=\"ids-paginator__page-button-arrow last\"\n [class]=\"_pageButtonClasses()\"\n [disabled]=\"_isNextButtonDisabled()\"\n [attr.aria-label]=\"_intl.lastPageAriaLabel\"\n (click)=\"stepLastPage()\"\n >\n <ids-icon fontIcon=\"chevron-double-right\" [size]=\"size()\" />\n </button>\n }\n\n <span class=\"ids-paginator__help-text\" [class.sr-only]=\"!showPageInfo()\">{{\n _intl.getRangeLabel(_pageIndex(), _safePageSizeData().safePageSize, length())\n }}</span>\n</nav>\n" }]
|
|
312
312
|
}], ctorParameters: () => [] });
|
|
313
313
|
|
|
314
314
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i-cell-ids-angular-paginator.mjs","sources":["../../../projects/widgets/paginator/types/paginator-appearance.type.ts","../../../projects/widgets/paginator/types/paginator-events.class.ts","../../../projects/widgets/paginator/types/paginator-variant.type.ts","../../../projects/widgets/paginator/paginator-defaults.ts","../../../projects/widgets/paginator/paginator-intl.ts","../../../projects/widgets/paginator/paginator.component.ts","../../../projects/widgets/paginator/paginator.component.html","../../../projects/widgets/paginator/i-cell-ids-angular-paginator.ts"],"sourcesContent":["export const IdsPaginatorPageButtonAppearance = {\n PLAIN: 'plain',\n} as const;\n\nexport type IdsPaginatorPageButtonAppearanceType = (typeof IdsPaginatorPageButtonAppearance)[keyof typeof IdsPaginatorPageButtonAppearance];\n","export class IdsPaginatorPageChangeEvent {\n public pageIndex!: number;\n public previousPageIndex?: number;\n public pageSize!: number;\n public length!: number;\n}\n","export const IdsPaginatorVariant = {\n PRIMARY: 'primary',\n SECONDARY: 'secondary',\n SURFACE: 'surface',\n LIGHT: 'light',\n} as const;\n\nexport type IdsPaginatorVariantType = (typeof IdsPaginatorVariant)[keyof typeof IdsPaginatorVariant];\n","/* eslint-disable no-magic-numbers */\nimport { IdsPaginatorPageButtonAppearance, IdsPaginatorPageButtonAppearanceType } from './types/paginator-appearance.type';\nimport { IdsPaginatorVariant, IdsPaginatorVariantType } from './types/paginator-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSizeType, IdsSize } from '@i-cell/ids-angular/core';\n\nexport const DEFAULT_PAGE_SIZE = 10;\nexport const MAX_DISPLAYED_ITEM_COUNT = 7;\n\nexport interface IdsPaginatorDefaultConfig {\n pageSize?: number\n pageSizeOptions?: number[]\n showFirstLastButton?: boolean\n showPrevNextLabel?: boolean\n showPageInfo?: boolean\n showPageButtons?: boolean\n showAllPages?: boolean\n maxDisplayedItemCount?: number\n size?: IdsSizeType\n variant?: IdsPaginatorVariantType\n pageButtonAppearance?: IdsPaginatorPageButtonAppearanceType\n debounceTime: number\n}\n\nexport const IDS_PAGINATOR_DEFAULT_CONFIG = new InjectionToken<IdsPaginatorDefaultConfig>(\n 'IDS_PAGINATOR_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_PAGINATOR_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_PAGINATOR_DEFAULT_CONFIG_FACTORY(): Required<IdsPaginatorDefaultConfig> {\n return {\n pageSize: DEFAULT_PAGE_SIZE,\n pageSizeOptions: [\n 10,\n 20,\n 50,\n 100,\n ],\n showFirstLastButton: true,\n showPrevNextLabel: false,\n showPageInfo: true,\n showPageButtons: true,\n showAllPages: false,\n maxDisplayedItemCount: MAX_DISPLAYED_ITEM_COUNT,\n size: IdsSize.COMPACT,\n variant: IdsPaginatorVariant.SURFACE,\n pageButtonAppearance: IdsPaginatorPageButtonAppearance.PLAIN,\n debounceTime: 300,\n };\n}\n","import { Injectable, Optional, SkipSelf } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class IdsPaginatorIntl {\n public readonly changes: Subject<void> = new Subject<void>();\n\n public nextPageLabel = 'Next';\n public previousPageLabel = 'Previous';\n public nextPageAriaLabel = 'Go to next page';\n public previousPageAriaLabel = 'Go to previous page';\n public firstPageAriaLabel = 'Go to first page';\n public lastPageAriaLabel = 'Go to last page';\n\n public getPageAriaLabel = (page: string): string => `Go to page ${page}`;\n\n public getRangeLabel = (page: number, pageSize: number, length: number): string => {\n if (length === 0 || pageSize === 0) {\n return 'Page 0 of 0';\n }\n\n const maxPageCount = Math.ceil(length / pageSize);\n\n return `Page ${page + 1} of ${maxPageCount}`;\n };\n}\n\n/** @docs-private */\nexport function IDS_PAGINATOR_INTL_PROVIDER_FACTORY(parentIntl?: IdsPaginatorIntl): IdsPaginatorIntl {\n return parentIntl || new IdsPaginatorIntl();\n}\n\n/** @docs-private */\nexport const IDS_PAGINATOR_INTL_PROVIDER = {\n // If there is already an IdsPaginatorIntl available, use that. Otherwise, provide a new one.\n provide: IdsPaginatorIntl,\n deps: [\n [\n new Optional(),\n new SkipSelf(),\n IdsPaginatorIntl,\n ],\n ],\n useFactory: IDS_PAGINATOR_INTL_PROVIDER_FACTORY,\n};\n","import { DEFAULT_PAGE_SIZE, IDS_PAGINATOR_DEFAULT_CONFIG, IDS_PAGINATOR_DEFAULT_CONFIG_FACTORY, IdsPaginatorDefaultConfig } from './paginator-defaults';\nimport { IdsPaginatorIntl } from './paginator-intl';\nimport { IdsPaginatorPageButtonAppearanceType } from './types/paginator-appearance.type';\nimport { IdsPaginatorPageChangeEvent } from './types/paginator-events.class';\nimport { IdsPaginatorVariantType } from './types/paginator-variant.type';\n\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, effect, ElementRef, inject, input, isDevMode, model, output, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { createClassList, isNumberEven, IdsSizeType, coerceNumberAttribute, ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { debounceTime, Subject } from 'rxjs';\n\nconst defaultConfig = IDS_PAGINATOR_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-paginator',\n imports: [IdsIconComponent],\n templateUrl: './paginator.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '(keydown)': '_handleKeyDown($event)',\n },\n})\nexport class IdsPaginatorComponent extends ComponentBaseWithDefaults<IdsPaginatorDefaultConfig> {\n protected override get _hostName(): string {\n return 'paginator';\n }\n\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n private readonly _hostElementRef = inject(ElementRef);\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_PAGINATOR_DEFAULT_CONFIG);\n\n private _pageEventDebouncer = new Subject<IdsPaginatorPageChangeEvent>();\n\n protected readonly _intl = inject(IdsPaginatorIntl);\n\n public pageSize = input<number, unknown>(this._defaultConfig.pageSize, { transform: coerceNumberAttribute });\n public pageSizeOptions = input<number[]>(this._defaultConfig.pageSizeOptions);\n public showFirstLastButton = input<boolean>(this._defaultConfig.showFirstLastButton);\n public showPrevNextLabel = input<boolean>(this._defaultConfig.showPrevNextLabel);\n public showPageInfo = input<boolean>(this._defaultConfig.showPageInfo);\n public showPageButtons = input<boolean>(this._defaultConfig.showPageButtons);\n public showAllPages = input<boolean>(this._defaultConfig.showAllPages);\n public maxDisplayedItemCount = input<number>(this._defaultConfig.maxDisplayedItemCount);\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsPaginatorVariantType>(this._defaultConfig.variant);\n public pageButtonAppearance = input<IdsPaginatorPageButtonAppearanceType>(this._defaultConfig.pageButtonAppearance);\n /** The total number of items that are being paginated. */\n public length = input.required<number, number>({ transform: coerceNumberAttribute });\n public disabled = input<boolean>(false);\n public compactLayout = input<boolean>(false);\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.variant(),\n this.compactLayout() ? 'compact-layout' : null,\n ]));\n\n protected _pageButtonClasses = computed(() => createClassList('ids-paginator__page-button', [this.pageButtonAppearance()]));\n\n protected _safePageSizeData = computed(() => this._getSafePageSizeData(this.pageSizeOptions(), this.pageSize()));\n protected _pageButtonIdPrefix = computed(() => `${this.id()}__page-button-`);\n\n /**\n * The index (0 based!) of the currently selected page.\n *\n * Usage note (!):\n * In case paging initiates an async process to update the data and an error occurs the pageIndex needs to be reset to the previous value from the outside.\n * If `pageIndex` is only 1-way bound (input) the model signal's value won't be updated, it needs 2-way binding!\n * Possible cause: https://github.com/angular/angular/issues/57124\n */\n public pageIndex = model(0);\n\n private _pageIndexValidation = effect(() => {\n const pageIndex = this._pageIndex();\n const numberOfPages = this._numberOfPages();\n if (pageIndex > 0 && numberOfPages < (pageIndex + 1)) {\n this.stepPage(0);\n }\n });\n\n protected _pageIndex = computed(() => Math.max(coerceNumberAttribute(this.pageIndex()) || 0, 0));\n\n private _numberOfPages = computed(() => {\n if (!this.pageSize()) {\n return 0;\n }\n return Math.ceil(this.length() / this.pageSize());\n });\n\n private _hasPreviousPage = computed(() =>\n this._pageIndex() >= 1 && this.pageSize() !== 0,\n );\n\n private _hasNextPage = computed(() => {\n const maxPageIndex = this._numberOfPages() - 1;\n return this._pageIndex() < maxPageIndex && this.pageSize() !== 0;\n });\n\n protected _isPreviousButtonDisabled = computed(() => this.disabled() || !this._hasPreviousPage());\n protected _isNextButtonDisabled = computed(() => this.disabled() || !this._hasNextPage());\n\n // eslint-disable-next-line arrow-body-style\n protected _pageButtonLabels = computed<string[]>(() => {\n return this.compactLayout()\n ? []\n : this._getPageButtonLabels(\n this._pageIndex(), this._numberOfPages(), this.showAllPages(), this.maxDisplayedItemCount(), this.showPageButtons(),\n );\n });\n\n public pageChanged = output<IdsPaginatorPageChangeEvent>();\n\n private _handleKeyDown(event: KeyboardEvent): void {\n event.stopPropagation();\n // eslint-disable-next-line @stylistic/js/array-bracket-newline, @stylistic/js/array-element-newline\n const navigationKeys = ['ArrowLeft', 'ArrowRight', 'PageDown', 'PageUp', 'Home', 'End'];\n\n switch (event.key) {\n case 'ArrowLeft':\n case 'PageDown':\n event.preventDefault();\n this.stepPreviousPage();\n break;\n case 'ArrowRight':\n case 'PageUp':\n event.preventDefault();\n this.stepNextPage();\n break;\n case 'Home':\n event.preventDefault();\n this.stepFirstPage();\n break;\n case 'End':\n event.preventDefault();\n this.stepLastPage();\n break;\n default:\n break;\n }\n\n if (event.key !== 'Tab' && navigationKeys.includes(event.key)) {\n const pageButtonId = `${this._pageButtonIdPrefix()}${this._pageIndex() + 1}`; // after navigation pageIndex is new value now\n const button = this._hostElementRef.nativeElement.querySelector(`button#${pageButtonId}`);\n button?.focus();\n }\n }\n\n constructor() {\n super();\n\n this._intl.changes.pipe(\n takeUntilDestroyed(this._destroyRef),\n ).subscribe(() => this._changeDetectorRef.markForCheck());\n\n this._pageEventDebouncer.pipe(\n debounceTime(this._defaultConfig.debounceTime),\n takeUntilDestroyed(this._destroyRef),\n ).subscribe((pageEvent) => {\n this.pageChanged.emit(pageEvent);\n });\n }\n\n private _getSafePageSizeData(\n pageSizeOptions: number[],\n pageSize: number,\n ): { safePageSizeOptions: number[], safePageSize: number } {\n if (isDevMode() && (!pageSize || pageSize < 0)) {\n throw this._createHostError('invalid pageSize value. Must be a number and greater than 0');\n }\n\n const safePageSizeOptions = pageSizeOptions.slice();\n if (isDevMode() && !safePageSizeOptions.includes(pageSize)) {\n throw this._createHostError('invalid pageSize. pageSizeOptions not includes pageSize. Use an item from pageSizeOptions.');\n }\n safePageSizeOptions.sort((a, b) => a - b);\n const safePageSize: number = safePageSizeOptions.length !== 0 ? safePageSizeOptions[0] : DEFAULT_PAGE_SIZE;\n\n return {\n safePageSize,\n safePageSizeOptions,\n };\n }\n\n private _getPageButtonLabels(\n pageIndex: number, numberOfPages: number, showAllPages: boolean, maxDisplayedItemCount: number, enabled: boolean,\n ): string[] {\n const allPages = [...Array(numberOfPages).keys()].map((item) => (item + 1).toString());\n if (!enabled) {\n return [];\n }\n if (showAllPages || numberOfPages <= maxDisplayedItemCount) {\n return allPages;\n }\n\n return this._getTruncatedPageLabels(allPages, pageIndex, maxDisplayedItemCount);\n }\n\n private _getTruncatedPageLabels(\n allPages: string[],\n pageIndex: number,\n maxDisplayedItemCount: number,\n ): string[] {\n if (isDevMode() && isNumberEven(maxDisplayedItemCount)) {\n throw this._createHostError('maxDisplayedItemCount should be an odd number');\n }\n const center = Math.ceil(maxDisplayedItemCount / 2);\n const actualPage = pageIndex + 1;\n const lastPage = +(allPages.at(-1)!);\n const isTruncatedRight = actualPage <= center;\n const isTruncatedBoth = actualPage > center && actualPage <= lastPage - center;\n const isTruncatedLeft = actualPage > lastPage - center;\n\n if (isTruncatedRight) {\n const x = maxDisplayedItemCount - 2; // 2 = 1 last page, 1 truncation\n return [\n ...allPages.slice(0, x),\n 'tr',\n lastPage.toString(),\n ];\n }\n\n if (isTruncatedBoth) {\n // eslint-disable-next-line no-magic-numbers\n const x = (maxDisplayedItemCount - 5) / 2; // 5 = 1 fist page + 1 last page + 2 truncation + 1 actual page\n return [\n '1',\n 'tl',\n ...allPages.slice(pageIndex - x, pageIndex + x + 1),\n 'tr',\n lastPage.toString(),\n ];\n }\n\n if (isTruncatedLeft) {\n const x = maxDisplayedItemCount - 2; // 2 = 1 last page, 1 truncation\n return [\n '1',\n 'tl',\n ...allPages.slice(lastPage - x),\n ];\n }\n\n return [];\n }\n\n public stepNextPage(): void {\n if (!this._hasNextPage()) {\n return;\n }\n this.stepPage(this._pageIndex() + 1);\n }\n\n public stepPreviousPage(): void {\n if (!this._hasPreviousPage()) {\n return;\n }\n this.stepPage(this._pageIndex() - 1);\n }\n\n public stepFirstPage(): void {\n if (!this._hasPreviousPage()) {\n return;\n }\n this.stepPage(0);\n }\n\n public stepLastPage(): void {\n if (!this._hasNextPage()) {\n return;\n }\n this.stepPage(this._numberOfPages() - 1);\n }\n\n public stepPage(pageIndex: number): void {\n const previousPageIndex = this._pageIndex();\n this.pageIndex.set(pageIndex);\n this._debouncePageEvent(previousPageIndex, pageIndex);\n }\n\n private _debouncePageEvent(previousPageIndex: number, pageIndex: number): void {\n this._pageEventDebouncer.next({\n previousPageIndex,\n pageIndex,\n pageSize: this.pageSize(),\n length: this.length(),\n });\n }\n}\n","<nav class=\"ids-paginator__navigation-container\">\n @if (showFirstLastButton()) {\n <button\n type=\"button\"\n class=\"ids-paginator__page-button-arrow first\"\n [class]=\"_pageButtonClasses()\"\n [disabled]=\"_isPreviousButtonDisabled()\"\n [attr.aria-label]=\"_intl.firstPageAriaLabel\"\n (click)=\"stepFirstPage()\"\n >\n <ids-icon fontIcon=\"chevron-double-left\" [size]=\"size()\" />\n </button>\n }\n\n <button\n type=\"button\"\n class=\"ids-paginator__page-button-arrow previous\"\n [class]=\"_pageButtonClasses()\"\n [disabled]=\"_isPreviousButtonDisabled()\"\n [attr.aria-label]=\"_intl.previousPageAriaLabel\"\n (click)=\"stepPreviousPage()\"\n >\n <ids-icon fontIcon=\"chevron-left\" [size]=\"size()\" />\n @if (showPrevNextLabel() && compactLayout()) {\n <span class=\"ids-paginator__page-button-arrow__label\">{{ _intl.previousPageLabel }}</span>\n }\n </button>\n\n @if (showPageButtons() && !compactLayout()) {\n <ul class=\"ids-paginator__page-button-container\">\n @for (pageButtonLabel of _pageButtonLabels(); track pageButtonLabel) {\n <li>\n @if (pageButtonLabel === \"tl\" || pageButtonLabel === \"tr\") {\n <button type=\"button\" disabled class=\"ids-paginator__page-button-truncation\" [class]=\"_pageButtonClasses()\">\n <ids-icon fontIcon=\"more-horizontal\" [size]=\"size()\" />\n </button>\n } @else {\n <button\n #pageButtonElement\n type=\"button\"\n class=\"ids-paginator__page-button\"\n [id]=\"_pageButtonIdPrefix() + pageButtonLabel\"\n [disabled]=\"disabled()\"\n [class]=\"_pageButtonClasses()\"\n [class.active]=\"+pageButtonLabel === _pageIndex() + 1\"\n [attr.aria-label]=\"_intl.getPageAriaLabel(pageButtonLabel)\"\n [attr.aria-current]=\"+pageButtonLabel === _pageIndex() + 1 ? 'page' : null\"\n (click)=\"stepPage(+pageButtonLabel - 1)\"\n >\n <span>{{ pageButtonLabel }}</span>\n </button>\n }\n </li>\n }\n </ul>\n }\n\n <button\n type=\"button\"\n class=\"ids-paginator__page-button-arrow next\"\n [class]=\"_pageButtonClasses()\"\n [disabled]=\"_isNextButtonDisabled()\"\n [attr.aria-label]=\"_intl.nextPageAriaLabel\"\n (click)=\"stepNextPage()\"\n >\n @if (showPrevNextLabel() && compactLayout()) {\n <span class=\"ids-paginator__page-button-arrow__label\">{{ _intl.nextPageLabel }}</span>\n }\n <ids-icon fontIcon=\"chevron-right\" [size]=\"size()\" />\n </button>\n\n @if (showFirstLastButton()) {\n <button\n type=\"button\"\n class=\"ids-paginator__page-button-arrow last\"\n [class]=\"_pageButtonClasses()\"\n [disabled]=\"_isNextButtonDisabled()\"\n [attr.aria-label]=\"_intl.lastPageAriaLabel\"\n (click)=\"stepLastPage()\"\n >\n <ids-icon fontIcon=\"chevron-double-right\" [size]=\"size()\" />\n </button>\n }\n\n <span class=\"ids-paginator__help-text\" [class.sr-only]=\"!showPageInfo()\">{{\n _intl.getRangeLabel(_pageIndex(), _safePageSizeData().safePageSize, length())\n }}</span>\n</nav>\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-paginator.mjs","sources":["../../../projects/widgets/paginator/types/paginator-appearance.type.ts","../../../projects/widgets/paginator/types/paginator-events.class.ts","../../../projects/widgets/paginator/types/paginator-variant.type.ts","../../../projects/widgets/paginator/paginator-defaults.ts","../../../projects/widgets/paginator/paginator-intl.ts","../../../projects/widgets/paginator/paginator.component.ts","../../../projects/widgets/paginator/paginator.component.html","../../../projects/widgets/paginator/i-cell-ids-angular-paginator.ts"],"sourcesContent":["export const IdsPaginatorPageButtonAppearance = {\n PLAIN: 'plain',\n} as const;\n\nexport type IdsPaginatorPageButtonAppearanceType = (typeof IdsPaginatorPageButtonAppearance)[keyof typeof IdsPaginatorPageButtonAppearance];\n","export class IdsPaginatorPageChangeEvent {\n public pageIndex!: number;\n public previousPageIndex?: number;\n public pageSize!: number;\n public length!: number;\n}\n","export const IdsPaginatorVariant = {\n PRIMARY: 'primary',\n SECONDARY: 'secondary',\n SURFACE: 'surface',\n LIGHT: 'light',\n} as const;\n\nexport type IdsPaginatorVariantType = (typeof IdsPaginatorVariant)[keyof typeof IdsPaginatorVariant];\n","/* eslint-disable no-magic-numbers */\nimport { IdsPaginatorPageButtonAppearance, IdsPaginatorPageButtonAppearanceType } from './types/paginator-appearance.type';\nimport { IdsPaginatorVariant, IdsPaginatorVariantType } from './types/paginator-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSizeType, IdsSize } from '@i-cell/ids-angular/core';\n\nexport const DEFAULT_PAGE_SIZE = 10;\nexport const MAX_DISPLAYED_ITEM_COUNT = 7;\n\nexport interface IdsPaginatorDefaultConfig {\n pageSize?: number\n pageSizeOptions?: number[]\n showFirstLastButton?: boolean\n showPrevNextLabel?: boolean\n showPageInfo?: boolean\n showPageButtons?: boolean\n showAllPages?: boolean\n maxDisplayedItemCount?: number\n size?: IdsSizeType\n variant?: IdsPaginatorVariantType\n pageButtonAppearance?: IdsPaginatorPageButtonAppearanceType\n debounceTime: number\n}\n\nexport const IDS_PAGINATOR_DEFAULT_CONFIG = new InjectionToken<IdsPaginatorDefaultConfig>(\n 'IDS_PAGINATOR_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_PAGINATOR_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_PAGINATOR_DEFAULT_CONFIG_FACTORY(): Required<IdsPaginatorDefaultConfig> {\n return {\n pageSize: DEFAULT_PAGE_SIZE,\n pageSizeOptions: [\n 10,\n 20,\n 50,\n 100,\n ],\n showFirstLastButton: true,\n showPrevNextLabel: false,\n showPageInfo: true,\n showPageButtons: true,\n showAllPages: false,\n maxDisplayedItemCount: MAX_DISPLAYED_ITEM_COUNT,\n size: IdsSize.COMPACT,\n variant: IdsPaginatorVariant.SURFACE,\n pageButtonAppearance: IdsPaginatorPageButtonAppearance.PLAIN,\n debounceTime: 300,\n };\n}\n","import { Injectable, Optional, SkipSelf } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class IdsPaginatorIntl {\n public readonly changes: Subject<void> = new Subject<void>();\n\n public nextPageLabel = 'Next';\n public previousPageLabel = 'Previous';\n public nextPageAriaLabel = 'Go to next page';\n public previousPageAriaLabel = 'Go to previous page';\n public firstPageAriaLabel = 'Go to first page';\n public lastPageAriaLabel = 'Go to last page';\n\n public getPageAriaLabel = (page: string): string => `Go to page ${page}`;\n\n public getRangeLabel = (page: number, pageSize: number, length: number): string => {\n if (length === 0 || pageSize === 0) {\n return 'Page 0 of 0';\n }\n\n const maxPageCount = Math.ceil(length / pageSize);\n\n return `Page ${page + 1} of ${maxPageCount}`;\n };\n}\n\n/** @docs-private */\nexport function IDS_PAGINATOR_INTL_PROVIDER_FACTORY(parentIntl?: IdsPaginatorIntl): IdsPaginatorIntl {\n return parentIntl || new IdsPaginatorIntl();\n}\n\n/** @docs-private */\nexport const IDS_PAGINATOR_INTL_PROVIDER = {\n // If there is already an IdsPaginatorIntl available, use that. Otherwise, provide a new one.\n provide: IdsPaginatorIntl,\n deps: [\n [\n new Optional(),\n new SkipSelf(),\n IdsPaginatorIntl,\n ],\n ],\n useFactory: IDS_PAGINATOR_INTL_PROVIDER_FACTORY,\n};\n","import { DEFAULT_PAGE_SIZE, IDS_PAGINATOR_DEFAULT_CONFIG, IDS_PAGINATOR_DEFAULT_CONFIG_FACTORY, IdsPaginatorDefaultConfig } from './paginator-defaults';\nimport { IdsPaginatorIntl } from './paginator-intl';\nimport { IdsPaginatorPageButtonAppearanceType } from './types/paginator-appearance.type';\nimport { IdsPaginatorPageChangeEvent } from './types/paginator-events.class';\nimport { IdsPaginatorVariantType } from './types/paginator-variant.type';\n\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, effect, ElementRef, inject, input, isDevMode, model, output, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { createClassList, isNumberEven, IdsSizeType, coerceNumberAttribute, ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { debounceTime, Subject } from 'rxjs';\n\nconst defaultConfig = IDS_PAGINATOR_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-paginator',\n imports: [IdsIconComponent],\n templateUrl: './paginator.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '(keydown)': '_handleKeyDown($event)',\n },\n})\nexport class IdsPaginatorComponent extends ComponentBaseWithDefaults<IdsPaginatorDefaultConfig> {\n protected override get _hostName(): string {\n return 'paginator';\n }\n\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n private readonly _hostElementRef = inject(ElementRef);\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_PAGINATOR_DEFAULT_CONFIG);\n\n private _pageEventDebouncer = new Subject<IdsPaginatorPageChangeEvent>();\n\n protected readonly _intl = inject(IdsPaginatorIntl);\n\n public pageSize = input<number, unknown>(this._defaultConfig.pageSize, { transform: coerceNumberAttribute });\n public pageSizeOptions = input<number[]>(this._defaultConfig.pageSizeOptions);\n public showFirstLastButton = input<boolean>(this._defaultConfig.showFirstLastButton);\n public showPrevNextLabel = input<boolean>(this._defaultConfig.showPrevNextLabel);\n public showPageInfo = input<boolean>(this._defaultConfig.showPageInfo);\n public showPageButtons = input<boolean>(this._defaultConfig.showPageButtons);\n public showAllPages = input<boolean>(this._defaultConfig.showAllPages);\n public maxDisplayedItemCount = input<number>(this._defaultConfig.maxDisplayedItemCount);\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public variant = input<IdsPaginatorVariantType>(this._defaultConfig.variant);\n public pageButtonAppearance = input<IdsPaginatorPageButtonAppearanceType>(this._defaultConfig.pageButtonAppearance);\n /** The total number of items that are being paginated. */\n public length = input.required<number, number>({ transform: coerceNumberAttribute });\n public disabled = input<boolean>(false);\n public compactLayout = input<boolean>(false);\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.variant(),\n this.compactLayout() ? 'compact-layout' : null,\n ]));\n\n protected _pageButtonClasses = computed(() => createClassList('ids-paginator__page-button', [this.pageButtonAppearance()]));\n\n protected _safePageSizeData = computed(() => this._getSafePageSizeData(this.pageSizeOptions(), this.pageSize()));\n protected _pageButtonIdPrefix = computed(() => `${this.id()}__page-button-`);\n\n /**\n * The index (0 based!) of the currently selected page.\n *\n * Usage note (!):\n * In case paging initiates an async process to update the data and an error occurs the pageIndex needs to be reset to the previous value from the outside.\n * If `pageIndex` is only 1-way bound (input) the model signal's value won't be updated, it needs 2-way binding!\n * Possible cause: https://github.com/angular/angular/issues/57124\n */\n public pageIndex = model(0);\n\n private _pageIndexValidation = effect(() => {\n const pageIndex = this._pageIndex();\n const numberOfPages = this._numberOfPages();\n if (pageIndex > 0 && numberOfPages < (pageIndex + 1)) {\n this.stepPage(0);\n }\n });\n\n protected _pageIndex = computed(() => Math.max(coerceNumberAttribute(this.pageIndex()) || 0, 0));\n\n private _numberOfPages = computed(() => {\n if (!this.pageSize()) {\n return 0;\n }\n return Math.ceil(this.length() / this.pageSize());\n });\n\n private _hasPreviousPage = computed(() =>\n this._pageIndex() >= 1 && this.pageSize() !== 0,\n );\n\n private _hasNextPage = computed(() => {\n const maxPageIndex = this._numberOfPages() - 1;\n return this._pageIndex() < maxPageIndex && this.pageSize() !== 0;\n });\n\n protected _isPreviousButtonDisabled = computed(() => this.disabled() || !this._hasPreviousPage());\n protected _isNextButtonDisabled = computed(() => this.disabled() || !this._hasNextPage());\n\n // eslint-disable-next-line arrow-body-style\n protected _pageButtonLabels = computed<string[]>(() => {\n return this.compactLayout()\n ? []\n : this._getPageButtonLabels(\n this._pageIndex(), this._numberOfPages(), this.showAllPages(), this.maxDisplayedItemCount(), this.showPageButtons(),\n );\n });\n\n public pageChanged = output<IdsPaginatorPageChangeEvent>();\n\n private _handleKeyDown(event: KeyboardEvent): void {\n event.stopPropagation();\n // eslint-disable-next-line @stylistic/js/array-bracket-newline, @stylistic/js/array-element-newline\n const navigationKeys = ['ArrowLeft', 'ArrowRight', 'PageDown', 'PageUp', 'Home', 'End'];\n\n switch (event.key) {\n case 'ArrowLeft':\n case 'PageDown':\n event.preventDefault();\n this.stepPreviousPage();\n break;\n case 'ArrowRight':\n case 'PageUp':\n event.preventDefault();\n this.stepNextPage();\n break;\n case 'Home':\n event.preventDefault();\n this.stepFirstPage();\n break;\n case 'End':\n event.preventDefault();\n this.stepLastPage();\n break;\n default:\n break;\n }\n\n if (event.key !== 'Tab' && navigationKeys.includes(event.key)) {\n const pageButtonId = `${this._pageButtonIdPrefix()}${this._pageIndex() + 1}`; // after navigation pageIndex is new value now\n const button = this._hostElementRef.nativeElement.querySelector(`button#${pageButtonId}`);\n button?.focus();\n }\n }\n\n constructor() {\n super();\n\n this._intl.changes.pipe(\n takeUntilDestroyed(this._destroyRef),\n ).subscribe(() => this._changeDetectorRef.markForCheck());\n\n this._pageEventDebouncer.pipe(\n debounceTime(this._defaultConfig.debounceTime),\n takeUntilDestroyed(this._destroyRef),\n ).subscribe((pageEvent) => {\n this.pageChanged.emit(pageEvent);\n });\n }\n\n private _getSafePageSizeData(\n pageSizeOptions: number[],\n pageSize: number,\n ): { safePageSizeOptions: number[], safePageSize: number } {\n if (isDevMode() && (!pageSize || pageSize < 0)) {\n throw this._createHostError('invalid pageSize value. Must be a number and greater than 0');\n }\n\n const safePageSizeOptions = pageSizeOptions.slice();\n if (isDevMode() && !safePageSizeOptions.includes(pageSize)) {\n throw this._createHostError('invalid pageSize. pageSizeOptions not includes pageSize. Use an item from pageSizeOptions.');\n }\n safePageSizeOptions.sort((a, b) => a - b);\n const safePageSize: number = safePageSizeOptions.length !== 0 ? safePageSizeOptions[0] : DEFAULT_PAGE_SIZE;\n\n return {\n safePageSize,\n safePageSizeOptions,\n };\n }\n\n private _getPageButtonLabels(\n pageIndex: number, numberOfPages: number, showAllPages: boolean, maxDisplayedItemCount: number, enabled: boolean,\n ): string[] {\n const allPages = [...Array(numberOfPages).keys()].map((item) => (item + 1).toString());\n if (!enabled) {\n return [];\n }\n if (showAllPages || numberOfPages <= maxDisplayedItemCount) {\n return allPages;\n }\n\n return this._getTruncatedPageLabels(allPages, pageIndex, maxDisplayedItemCount);\n }\n\n private _getTruncatedPageLabels(\n allPages: string[],\n pageIndex: number,\n maxDisplayedItemCount: number,\n ): string[] {\n if (isDevMode() && isNumberEven(maxDisplayedItemCount)) {\n throw this._createHostError('maxDisplayedItemCount should be an odd number');\n }\n const center = Math.ceil(maxDisplayedItemCount / 2);\n const actualPage = pageIndex + 1;\n const lastPage = +(allPages.at(-1)!);\n const isTruncatedRight = actualPage <= center;\n const isTruncatedBoth = actualPage > center && actualPage <= lastPage - center;\n const isTruncatedLeft = actualPage > lastPage - center;\n\n if (isTruncatedRight) {\n const x = maxDisplayedItemCount - 2; // 2 = 1 last page, 1 truncation\n return [\n ...allPages.slice(0, x),\n 'tr',\n lastPage.toString(),\n ];\n }\n\n if (isTruncatedBoth) {\n // eslint-disable-next-line no-magic-numbers\n const x = (maxDisplayedItemCount - 5) / 2; // 5 = 1 fist page + 1 last page + 2 truncation + 1 actual page\n return [\n '1',\n 'tl',\n ...allPages.slice(pageIndex - x, pageIndex + x + 1),\n 'tr',\n lastPage.toString(),\n ];\n }\n\n if (isTruncatedLeft) {\n const x = maxDisplayedItemCount - 2; // 2 = 1 last page, 1 truncation\n return [\n '1',\n 'tl',\n ...allPages.slice(lastPage - x),\n ];\n }\n\n return [];\n }\n\n public stepNextPage(): void {\n if (!this._hasNextPage()) {\n return;\n }\n this.stepPage(this._pageIndex() + 1);\n }\n\n public stepPreviousPage(): void {\n if (!this._hasPreviousPage()) {\n return;\n }\n this.stepPage(this._pageIndex() - 1);\n }\n\n public stepFirstPage(): void {\n if (!this._hasPreviousPage()) {\n return;\n }\n this.stepPage(0);\n }\n\n public stepLastPage(): void {\n if (!this._hasNextPage()) {\n return;\n }\n this.stepPage(this._numberOfPages() - 1);\n }\n\n public stepPage(pageIndex: number): void {\n const previousPageIndex = this._pageIndex();\n this.pageIndex.set(pageIndex);\n this._debouncePageEvent(previousPageIndex, pageIndex);\n }\n\n private _debouncePageEvent(previousPageIndex: number, pageIndex: number): void {\n this._pageEventDebouncer.next({\n previousPageIndex,\n pageIndex,\n pageSize: this.pageSize(),\n length: this.length(),\n });\n }\n}\n","<nav class=\"ids-paginator__navigation-container\">\n @if (showFirstLastButton()) {\n <button\n type=\"button\"\n class=\"ids-paginator__page-button-arrow first\"\n [class]=\"_pageButtonClasses()\"\n [disabled]=\"_isPreviousButtonDisabled()\"\n [attr.aria-label]=\"_intl.firstPageAriaLabel\"\n (click)=\"stepFirstPage()\"\n >\n <ids-icon fontIcon=\"chevron-double-left\" [size]=\"size()\" />\n </button>\n }\n\n <button\n type=\"button\"\n class=\"ids-paginator__page-button-arrow previous\"\n [class]=\"_pageButtonClasses()\"\n [disabled]=\"_isPreviousButtonDisabled()\"\n [attr.aria-label]=\"_intl.previousPageAriaLabel\"\n (click)=\"stepPreviousPage()\"\n >\n <ids-icon fontIcon=\"chevron-left\" [size]=\"size()\" />\n @if (showPrevNextLabel() && compactLayout()) {\n <span class=\"ids-paginator__page-button-arrow__label\">{{ _intl.previousPageLabel }}</span>\n }\n </button>\n\n @if (showPageButtons() && !compactLayout()) {\n <ul class=\"ids-paginator__page-button-container\">\n @for (pageButtonLabel of _pageButtonLabels(); track pageButtonLabel) {\n <li>\n @if (pageButtonLabel === \"tl\" || pageButtonLabel === \"tr\") {\n <button type=\"button\" disabled class=\"ids-paginator__page-button-truncation\" [class]=\"_pageButtonClasses()\">\n <ids-icon fontIcon=\"more-horiz\" [size]=\"size()\" />\n </button>\n } @else {\n <button\n #pageButtonElement\n type=\"button\"\n class=\"ids-paginator__page-button\"\n [id]=\"_pageButtonIdPrefix() + pageButtonLabel\"\n [disabled]=\"disabled()\"\n [class]=\"_pageButtonClasses()\"\n [class.active]=\"+pageButtonLabel === _pageIndex() + 1\"\n [attr.aria-label]=\"_intl.getPageAriaLabel(pageButtonLabel)\"\n [attr.aria-current]=\"+pageButtonLabel === _pageIndex() + 1 ? 'page' : null\"\n (click)=\"stepPage(+pageButtonLabel - 1)\"\n >\n <span>{{ pageButtonLabel }}</span>\n </button>\n }\n </li>\n }\n </ul>\n }\n\n <button\n type=\"button\"\n class=\"ids-paginator__page-button-arrow next\"\n [class]=\"_pageButtonClasses()\"\n [disabled]=\"_isNextButtonDisabled()\"\n [attr.aria-label]=\"_intl.nextPageAriaLabel\"\n (click)=\"stepNextPage()\"\n >\n @if (showPrevNextLabel() && compactLayout()) {\n <span class=\"ids-paginator__page-button-arrow__label\">{{ _intl.nextPageLabel }}</span>\n }\n <ids-icon fontIcon=\"chevron-right\" [size]=\"size()\" />\n </button>\n\n @if (showFirstLastButton()) {\n <button\n type=\"button\"\n class=\"ids-paginator__page-button-arrow last\"\n [class]=\"_pageButtonClasses()\"\n [disabled]=\"_isNextButtonDisabled()\"\n [attr.aria-label]=\"_intl.lastPageAriaLabel\"\n (click)=\"stepLastPage()\"\n >\n <ids-icon fontIcon=\"chevron-double-right\" [size]=\"size()\" />\n </button>\n }\n\n <span class=\"ids-paginator__help-text\" [class.sr-only]=\"!showPageInfo()\">{{\n _intl.getRangeLabel(_pageIndex(), _safePageSizeData().safePageSize, length())\n }}</span>\n</nav>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/menu/index.d.ts
CHANGED
|
@@ -1,19 +1,8 @@
|
|
|
1
|
-
import * as i1 from '@angular/cdk/menu';
|
|
2
|
-
import { CdkMenuTrigger } from '@angular/cdk/menu';
|
|
3
1
|
import * as _angular_core from '@angular/core';
|
|
4
2
|
import { InjectionToken } from '@angular/core';
|
|
5
3
|
import { IdsSizeType, ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';
|
|
6
4
|
import { IdsIconComponent } from '@i-cell/ids-angular/icon';
|
|
7
|
-
|
|
8
|
-
declare class IdsActionMenuTriggerDirective {
|
|
9
|
-
menuTrigger: CdkMenuTrigger;
|
|
10
|
-
get isOpen(): boolean;
|
|
11
|
-
open(): void;
|
|
12
|
-
close(): void;
|
|
13
|
-
toggle(): void;
|
|
14
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<IdsActionMenuTriggerDirective, never>;
|
|
15
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<IdsActionMenuTriggerDirective, "button[idsActionMenuTriggerFor]", ["idsActionMenuTrigger"], {}, {}, never, never, true, [{ directive: typeof i1.CdkMenuTrigger; inputs: { "cdkMenuTriggerFor": "idsActionMenuTriggerFor"; }; outputs: {}; }]>;
|
|
16
|
-
}
|
|
5
|
+
import * as i1 from '@angular/cdk/menu';
|
|
17
6
|
|
|
18
7
|
declare class IdsActiveIndicatorDirective {
|
|
19
8
|
private _menuItem;
|
|
@@ -64,5 +53,5 @@ declare class IdsMenuItemComponent extends ComponentBaseWithDefaults<IdsMenuItem
|
|
|
64
53
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<IdsMenuItemComponent, "button[idsMenuItem],a[idsMenuItem]", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, ["_iconLeading", "_iconTrailing"], ["ids-icon[icon-leading]", "ids-icon[icon-trailing]"], true, [{ directive: typeof i1.CdkMenuItem; inputs: {}; outputs: {}; }]>;
|
|
65
54
|
}
|
|
66
55
|
|
|
67
|
-
export { IDS_MENU_ITEM_DEFAULT_CONFIG, IDS_MENU_ITEM_DEFAULT_CONFIG_FACTORY,
|
|
56
|
+
export { IDS_MENU_ITEM_DEFAULT_CONFIG, IDS_MENU_ITEM_DEFAULT_CONFIG_FACTORY, IdsActiveIndicatorDirective, IdsMenuItemAppearance, IdsMenuItemComponent, IdsMenuItemVariant };
|
|
68
57
|
export type { IdsMenuItemAppearanceType, IdsMenuItemDefaultConfig, IdsMenuItemVariantType };
|
package/overlay-panel/index.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { InjectionToken } from '@angular/core';
|
|
3
3
|
import { IdsSizeType, ComponentBaseWithDefaults } from '@i-cell/ids-angular/core';
|
|
4
|
-
import {
|
|
5
|
-
import * as i1 from '@angular/cdk/menu';
|
|
4
|
+
import { CdkOverlayOrigin } from '@angular/cdk/overlay';
|
|
6
5
|
|
|
7
6
|
declare const IdsOverlayPanelAppearance: {
|
|
8
7
|
readonly FILLED: "filled";
|
|
@@ -28,13 +27,20 @@ declare function IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY(): Required<IdsOverlay
|
|
|
28
27
|
declare class IdsOverlayPanelComponent extends ComponentBaseWithDefaults<IdsOverlayPanelDefaultConfig> {
|
|
29
28
|
protected get _hostName(): string;
|
|
30
29
|
protected readonly _defaultConfig: Required<IdsOverlayPanelDefaultConfig>;
|
|
30
|
+
open: _angular_core.InputSignal<boolean>;
|
|
31
|
+
origin: _angular_core.InputSignal<CdkOverlayOrigin>;
|
|
32
|
+
closed: _angular_core.OutputEmitterRef<void>;
|
|
31
33
|
appearance: _angular_core.InputSignal<IdsOverlayPanelAppearanceType>;
|
|
32
34
|
size: _angular_core.InputSignal<IdsSizeType>;
|
|
33
35
|
variant: _angular_core.InputSignal<IdsOverlayPanelVariantType>;
|
|
34
|
-
|
|
36
|
+
private _cdkMenu;
|
|
37
|
+
protected _hasCdkMenu: _angular_core.Signal<boolean>;
|
|
38
|
+
protected _handleOverlayOutsideClick(): void;
|
|
39
|
+
protected _handleDetach(): void;
|
|
40
|
+
protected _panelClasses: _angular_core.Signal<string>;
|
|
35
41
|
protected _hostClasses: _angular_core.Signal<string>;
|
|
36
42
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<IdsOverlayPanelComponent, never>;
|
|
37
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<IdsOverlayPanelComponent, "ids-overlay-panel
|
|
43
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<IdsOverlayPanelComponent, "ids-overlay-panel", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "origin": { "alias": "origin"; "required": true; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, ["_cdkMenu"], ["*"], true, never>;
|
|
38
44
|
}
|
|
39
45
|
|
|
40
46
|
export { IDS_OVERLAY_PANEL_DEFAULT_CONFIG, IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY, IdsOverlayPanelAppearance, IdsOverlayPanelComponent, IdsOverlayPanelVariant };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@i-cell/ids-angular",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.12",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "i-Cell Design System UI Kit components for Angular",
|
|
6
6
|
"publishConfig": {
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"@angular/forms": "^20.1.7",
|
|
33
33
|
"@angular/platform-browser": "^20.1.7",
|
|
34
34
|
"@angular/router": "^20.1.7",
|
|
35
|
-
"@i-cell/ids-styles": "^0.0.
|
|
35
|
+
"@i-cell/ids-styles": "^0.0.53"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"tslib": "^2.3.0"
|
|
@@ -56,10 +56,22 @@
|
|
|
56
56
|
"types": "./badge/index.d.ts",
|
|
57
57
|
"default": "./fesm2022/i-cell-ids-angular-badge.mjs"
|
|
58
58
|
},
|
|
59
|
+
"./avatar": {
|
|
60
|
+
"types": "./avatar/index.d.ts",
|
|
61
|
+
"default": "./fesm2022/i-cell-ids-angular-avatar.mjs"
|
|
62
|
+
},
|
|
63
|
+
"./breadcrumb": {
|
|
64
|
+
"types": "./breadcrumb/index.d.ts",
|
|
65
|
+
"default": "./fesm2022/i-cell-ids-angular-breadcrumb.mjs"
|
|
66
|
+
},
|
|
59
67
|
"./button": {
|
|
60
68
|
"types": "./button/index.d.ts",
|
|
61
69
|
"default": "./fesm2022/i-cell-ids-angular-button.mjs"
|
|
62
70
|
},
|
|
71
|
+
"./card": {
|
|
72
|
+
"types": "./card/index.d.ts",
|
|
73
|
+
"default": "./fesm2022/i-cell-ids-angular-card.mjs"
|
|
74
|
+
},
|
|
63
75
|
"./checkbox": {
|
|
64
76
|
"types": "./checkbox/index.d.ts",
|
|
65
77
|
"default": "./fesm2022/i-cell-ids-angular-checkbox.mjs"
|
|
@@ -68,41 +80,29 @@
|
|
|
68
80
|
"types": "./chip/index.d.ts",
|
|
69
81
|
"default": "./fesm2022/i-cell-ids-angular-chip.mjs"
|
|
70
82
|
},
|
|
71
|
-
"./breadcrumb": {
|
|
72
|
-
"types": "./breadcrumb/index.d.ts",
|
|
73
|
-
"default": "./fesm2022/i-cell-ids-angular-breadcrumb.mjs"
|
|
74
|
-
},
|
|
75
|
-
"./card": {
|
|
76
|
-
"types": "./card/index.d.ts",
|
|
77
|
-
"default": "./fesm2022/i-cell-ids-angular-card.mjs"
|
|
78
|
-
},
|
|
79
|
-
"./avatar": {
|
|
80
|
-
"types": "./avatar/index.d.ts",
|
|
81
|
-
"default": "./fesm2022/i-cell-ids-angular-avatar.mjs"
|
|
82
|
-
},
|
|
83
83
|
"./core": {
|
|
84
84
|
"types": "./core/index.d.ts",
|
|
85
85
|
"default": "./fesm2022/i-cell-ids-angular-core.mjs"
|
|
86
86
|
},
|
|
87
|
-
"./forms": {
|
|
88
|
-
"types": "./forms/index.d.ts",
|
|
89
|
-
"default": "./fesm2022/i-cell-ids-angular-forms.mjs"
|
|
90
|
-
},
|
|
91
87
|
"./datepicker": {
|
|
92
88
|
"types": "./datepicker/index.d.ts",
|
|
93
89
|
"default": "./fesm2022/i-cell-ids-angular-datepicker.mjs"
|
|
94
90
|
},
|
|
95
|
-
"./
|
|
96
|
-
"types": "./
|
|
97
|
-
"default": "./fesm2022/i-cell-ids-angular-
|
|
91
|
+
"./dialog": {
|
|
92
|
+
"types": "./dialog/index.d.ts",
|
|
93
|
+
"default": "./fesm2022/i-cell-ids-angular-dialog.mjs"
|
|
98
94
|
},
|
|
99
95
|
"./divider": {
|
|
100
96
|
"types": "./divider/index.d.ts",
|
|
101
97
|
"default": "./fesm2022/i-cell-ids-angular-divider.mjs"
|
|
102
98
|
},
|
|
103
|
-
"./
|
|
104
|
-
"types": "./
|
|
105
|
-
"default": "./fesm2022/i-cell-ids-angular-
|
|
99
|
+
"./forms": {
|
|
100
|
+
"types": "./forms/index.d.ts",
|
|
101
|
+
"default": "./fesm2022/i-cell-ids-angular-forms.mjs"
|
|
102
|
+
},
|
|
103
|
+
"./icon": {
|
|
104
|
+
"types": "./icon/index.d.ts",
|
|
105
|
+
"default": "./fesm2022/i-cell-ids-angular-icon.mjs"
|
|
106
106
|
},
|
|
107
107
|
"./icon-button": {
|
|
108
108
|
"types": "./icon-button/index.d.ts",
|
|
@@ -116,6 +116,10 @@
|
|
|
116
116
|
"types": "./notification/index.d.ts",
|
|
117
117
|
"default": "./fesm2022/i-cell-ids-angular-notification.mjs"
|
|
118
118
|
},
|
|
119
|
+
"./overlay-panel": {
|
|
120
|
+
"types": "./overlay-panel/index.d.ts",
|
|
121
|
+
"default": "./fesm2022/i-cell-ids-angular-overlay-panel.mjs"
|
|
122
|
+
},
|
|
119
123
|
"./paginator": {
|
|
120
124
|
"types": "./paginator/index.d.ts",
|
|
121
125
|
"default": "./fesm2022/i-cell-ids-angular-paginator.mjs"
|
|
@@ -128,10 +132,6 @@
|
|
|
128
132
|
"types": "./segmented-control/index.d.ts",
|
|
129
133
|
"default": "./fesm2022/i-cell-ids-angular-segmented-control.mjs"
|
|
130
134
|
},
|
|
131
|
-
"./overlay-panel": {
|
|
132
|
-
"types": "./overlay-panel/index.d.ts",
|
|
133
|
-
"default": "./fesm2022/i-cell-ids-angular-overlay-panel.mjs"
|
|
134
|
-
},
|
|
135
135
|
"./segmented-control-toggle": {
|
|
136
136
|
"types": "./segmented-control-toggle/index.d.ts",
|
|
137
137
|
"default": "./fesm2022/i-cell-ids-angular-segmented-control-toggle.mjs"
|
|
@@ -144,6 +144,10 @@
|
|
|
144
144
|
"types": "./side-nav/index.d.ts",
|
|
145
145
|
"default": "./fesm2022/i-cell-ids-angular-side-nav.mjs"
|
|
146
146
|
},
|
|
147
|
+
"./side-sheet": {
|
|
148
|
+
"types": "./side-sheet/index.d.ts",
|
|
149
|
+
"default": "./fesm2022/i-cell-ids-angular-side-sheet.mjs"
|
|
150
|
+
},
|
|
147
151
|
"./snackbar": {
|
|
148
152
|
"types": "./snackbar/index.d.ts",
|
|
149
153
|
"default": "./fesm2022/i-cell-ids-angular-snackbar.mjs"
|
|
@@ -164,10 +168,6 @@
|
|
|
164
168
|
"types": "./table/index.d.ts",
|
|
165
169
|
"default": "./fesm2022/i-cell-ids-angular-table.mjs"
|
|
166
170
|
},
|
|
167
|
-
"./side-sheet": {
|
|
168
|
-
"types": "./side-sheet/index.d.ts",
|
|
169
|
-
"default": "./fesm2022/i-cell-ids-angular-side-sheet.mjs"
|
|
170
|
-
},
|
|
171
171
|
"./tag": {
|
|
172
172
|
"types": "./tag/index.d.ts",
|
|
173
173
|
"default": "./fesm2022/i-cell-ids-angular-tag.mjs"
|