@i-cell/ids-angular 0.2.6 → 0.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/i-cell-ids-angular-avatar.mjs +2 -2
- package/fesm2022/i-cell-ids-angular-avatar.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-breadcrumb.mjs +2 -2
- package/fesm2022/i-cell-ids-angular-breadcrumb.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-checkbox.mjs +2 -2
- package/fesm2022/i-cell-ids-angular-checkbox.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-datepicker.mjs +2 -2
- package/fesm2022/i-cell-ids-angular-datepicker.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-dialog.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-forms.mjs +8 -8
- package/fesm2022/i-cell-ids-angular-forms.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-segmented-control-toggle.mjs +2 -2
- package/fesm2022/i-cell-ids-angular-segmented-control-toggle.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-segmented-control.mjs +2 -2
- package/fesm2022/i-cell-ids-angular-segmented-control.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-side-nav.mjs +29 -9
- package/fesm2022/i-cell-ids-angular-side-nav.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-switch.mjs +2 -2
- package/fesm2022/i-cell-ids-angular-switch.mjs.map +1 -1
- package/package.json +24 -24
- package/side-nav/index.d.ts +9 -5
|
@@ -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-days\" [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 '[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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i-cell-ids-angular-dialog.mjs","sources":["../../../projects/widgets/dialog/dialog-defaults.ts","../../../projects/widgets/dialog/dialog-header.directive.ts","../../../projects/widgets/dialog/dialog.component.ts","../../../projects/widgets/dialog/dialog.component.html","../../../projects/widgets/dialog/custom-dialog-base.ts","../../../projects/widgets/dialog/dialog.service.ts","../../../projects/widgets/dialog/i-cell-ids-angular-dialog.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsDialogDefaultConfig {\n size?: IdsSizeType,\n showCloseButton?: boolean,\n showBackdrop?: boolean,\n}\n\nexport const IDS_DIALOG_DEFAULT_CONFIG = new InjectionToken<IdsDialogDefaultConfig>(\n 'IDS_DIALOG_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_DIALOG_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_DIALOG_DEFAULT_CONFIG_FACTORY(): Required<IdsDialogDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n showCloseButton: false,\n showBackdrop: true,\n };\n}\n\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[idsDialogHeader]',\n standalone: true,\n})\nexport class IdsDialogHeaderDirective {\n public template = inject(TemplateRef);\n}\n","import { IDS_DIALOG_DEFAULT_CONFIG, IDS_DIALOG_DEFAULT_CONFIG_FACTORY, IdsDialogDefaultConfig } from './dialog-defaults';\nimport { IdsDialogHeaderDirective } from './dialog-header.directive';\n\nimport { OverlayContainer } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n computed,\n contentChild,\n inject,\n input,\n OnDestroy,\n} from '@angular/core';\nimport { ComponentBaseWithDefaults, IdsDetectScrollableDirective, IdsSizeType } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';\n\nconst defaultConfig = IDS_DIALOG_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'dialog[idsDialog]',\n imports: [\n IdsDetectScrollableDirective,\n IdsIconComponent,\n IdsIconButtonComponent,\n NgTemplateOutlet,\n ],\n templateUrl: './dialog.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'idsDialog',\n host: {\n '[attr.aria-labelledby]': '_titleId()',\n '(cancel)': '_onCancel($event)',\n '(close)': '_onNativeClose()',\n },\n})\nexport class IdsDialogComponent extends ComponentBaseWithDefaults<IdsDialogDefaultConfig> implements OnDestroy {\n protected override get _hostName(): string {\n return 'dialog';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_DIALOG_DEFAULT_CONFIG);\n\n public dialog = inject<ElementRef<HTMLDialogElement>>(ElementRef).nativeElement;\n\n private readonly _overlay = inject(OverlayContainer);\n private _overlayRoot?: HTMLElement | null;\n private _overlayPrevParent?: Node | null;\n\n protected _titleId = computed(() => `${this.id()}-title`);\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public mainTitle = input.required<string>();\n public subTitle = input<string>();\n public showCloseButton = input<boolean>(this._defaultConfig.showCloseButton);\n public showBackdrop = input<boolean>(this._defaultConfig.showBackdrop);\n\n protected _customHeader = contentChild(IdsDialogHeaderDirective);\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.showBackdrop() ? 'with-backdrop' : null,\n ]));\n\n protected _onCancel(event: Event): void {\n event.preventDefault();\n }\n\n public open(): void {\n this.dialog.showModal();\n\n const root = this._overlay.getContainerElement();\n if (root && root.parentNode !== this.dialog) {\n this._overlayRoot = root;\n this._overlayPrevParent = root.parentNode;\n this.dialog.appendChild(root);\n }\n }\n\n public close(): void {\n this.dialog.close();\n this._restoreOverlay();\n }\n\n protected _onNativeClose(): void {\n this._restoreOverlay();\n }\n\n public ngOnDestroy(): void {\n this._restoreOverlay();\n }\n\n private _restoreOverlay(): void {\n if (this._overlayRoot && this._overlayPrevParent) {\n try {\n this._overlayPrevParent.appendChild(this._overlayRoot);\n } catch { /* empty */ }\n }\n this._overlayRoot = null;\n this._overlayPrevParent = null;\n }\n}\n","<section class=\"ids-dialog-container\">\n <header class=\"ids-dialog-header\">\n @if (_customHeader()) {\n <ng-container [ngTemplateOutlet]=\"_customHeader()!.template\" />\n } @else {\n <div class=\"ids-dialog-header-default-content\">\n <h2 class=\"ids-dialog-title\" [id]=\"_titleId()\">{{ mainTitle() }}</h2>\n @if (subTitle()) {\n <h3 class=\"ids-dialog-subtitle\">{{ subTitle() }}</h3>\n }\n </div>\n }\n\n @if (showCloseButton()) {\n <button\n type=\"button\"\n class=\"ids-dialog-close-button\"\n idsIconButton\n appearance=\"standard\"\n size=\"compact\"\n variant=\"surface\"\n (click)=\"close()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"close\" />\n </button>\n }\n </header>\n <div class=\"ids-dialog-content\" [class.ids-dialog-content-scrollable]=\"scrollDetector.isScrollable()\">\n <div #scrollDetector=\"idsDetectScrollable\" idsDetectScrollable class=\"ids-dialog-content-overflow\">\n <ng-content select=\"[idsDialogContent]\" />\n </div>\n </div>\n <footer class=\"ids-dialog-actions\">\n <ng-content select=\"[idsDialogActions]\" />\n </footer>\n</section>\n","import { IdsDialogComponent } from './dialog.component';\n\nimport { AfterViewInit, Directive, OnDestroy, viewChild } from '@angular/core';\nimport { Subject, Subscription, fromEvent } from 'rxjs';\n\n@Directive({ standalone: true })\nexport abstract class IdsCustomDialogBase<ResultType = unknown> implements AfterViewInit, OnDestroy {\n public dialogResult = new Subject<ResultType | undefined>();\n\n protected _dialog = viewChild.required(IdsDialogComponent);\n\n private _closeSub?: Subscription;\n\n public ngAfterViewInit(): void {\n this._dialog().open();\n this._closeSub = fromEvent(this._dialog().dialog, 'close').subscribe(() => {\n this._setDialogResult();\n });\n }\n\n public ngOnDestroy(): void {\n this._closeSub?.unsubscribe();\n }\n\n public close(payload?: ResultType): void {\n this._closeSub?.unsubscribe();\n this._dialog().close();\n this._setDialogResult(payload);\n }\n\n private _setDialogResult(payload?: ResultType): void {\n this.dialogResult.next(payload);\n this.dialogResult.complete();\n }\n}\n","import { IdsCustomDialogBase } from './custom-dialog-base';\n\nimport { ApplicationRef, EnvironmentInjector, Injectable, Injector, Provider, Signal, StaticProvider, Type, createComponent, inject, DOCUMENT } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class IdsDialogService {\n private _appRef = inject(ApplicationRef);\n private _document = inject(DOCUMENT);\n private _injector = inject(EnvironmentInjector);\n\n public open<C extends IdsCustomDialogBase<R>, R = unknown>(\n component: Type<C>,\n options?: { providers?: (Provider | StaticProvider)[], inputs?: { [P in keyof C]?: C[P] extends Signal<infer T> ? T : C[P] } },\n ): Observable<R | undefined> {\n let elementInjector = undefined;\n\n if (options?.providers) {\n elementInjector = Injector.create({\n parent: this._injector,\n providers: options.providers,\n });\n }\n\n const createOptions = {\n environmentInjector: this._injector,\n ...(elementInjector && { elementInjector }),\n };\n const dialogRef = createComponent(component, createOptions);\n\n if (options?.inputs) {\n Object.keys(options.inputs).forEach((key) => dialogRef.setInput(key, options.inputs![key as keyof C]));\n }\n\n this._document.body.appendChild(dialogRef.location.nativeElement);\n\n this._appRef.attachView(dialogRef.hostView);\n\n const onClose = dialogRef.instance.dialogResult.asObservable();\n\n onClose.subscribe(() => {\n this._document.body.removeChild(dialogRef.location.nativeElement);\n dialogRef.destroy();\n },\n );\n\n return onClose;\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-dialog.mjs","sources":["../../../projects/widgets/dialog/dialog-defaults.ts","../../../projects/widgets/dialog/dialog-header.directive.ts","../../../projects/widgets/dialog/dialog.component.ts","../../../projects/widgets/dialog/dialog.component.html","../../../projects/widgets/dialog/custom-dialog-base.ts","../../../projects/widgets/dialog/dialog.service.ts","../../../projects/widgets/dialog/i-cell-ids-angular-dialog.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsDialogDefaultConfig {\n size?: IdsSizeType,\n showCloseButton?: boolean,\n showBackdrop?: boolean,\n}\n\nexport const IDS_DIALOG_DEFAULT_CONFIG = new InjectionToken<IdsDialogDefaultConfig>(\n 'IDS_DIALOG_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_DIALOG_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_DIALOG_DEFAULT_CONFIG_FACTORY(): Required<IdsDialogDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n showCloseButton: false,\n showBackdrop: true,\n };\n}\n\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[idsDialogHeader]',\n standalone: true,\n})\nexport class IdsDialogHeaderDirective {\n public template = inject(TemplateRef);\n}\n","import { IDS_DIALOG_DEFAULT_CONFIG, IDS_DIALOG_DEFAULT_CONFIG_FACTORY, IdsDialogDefaultConfig } from './dialog-defaults';\nimport { IdsDialogHeaderDirective } from './dialog-header.directive';\n\nimport { OverlayContainer } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n computed,\n contentChild,\n inject,\n input,\n OnDestroy,\n} from '@angular/core';\nimport { ComponentBaseWithDefaults, IdsDetectScrollableDirective, IdsSizeType } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';\n\nconst defaultConfig = IDS_DIALOG_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'dialog[idsDialog]',\n imports: [\n IdsDetectScrollableDirective,\n IdsIconComponent,\n IdsIconButtonComponent,\n NgTemplateOutlet,\n ],\n templateUrl: './dialog.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'idsDialog',\n host: {\n '[attr.aria-labelledby]': '_titleId()',\n '(cancel)': '_onCancel($event)',\n '(close)': '_onNativeClose()',\n },\n})\nexport class IdsDialogComponent extends ComponentBaseWithDefaults<IdsDialogDefaultConfig> implements OnDestroy {\n protected override get _hostName(): string {\n return 'dialog';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_DIALOG_DEFAULT_CONFIG);\n\n public dialog = inject<ElementRef<HTMLDialogElement>>(ElementRef).nativeElement;\n\n private readonly _overlay = inject(OverlayContainer);\n private _overlayRoot?: HTMLElement | null;\n private _overlayPrevParent?: Node | null;\n\n protected _titleId = computed(() => `${this.id()}-title`);\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public mainTitle = input.required<string>();\n public subTitle = input<string>();\n public showCloseButton = input<boolean>(this._defaultConfig.showCloseButton);\n public showBackdrop = input<boolean>(this._defaultConfig.showBackdrop);\n\n protected _customHeader = contentChild(IdsDialogHeaderDirective);\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.showBackdrop() ? 'with-backdrop' : null,\n ]));\n\n protected _onCancel(event: Event): void {\n event.preventDefault();\n }\n\n public open(): void {\n this.dialog.showModal();\n\n const root = this._overlay.getContainerElement();\n if (root && root.parentNode !== this.dialog) {\n this._overlayRoot = root;\n this._overlayPrevParent = root.parentNode;\n this.dialog.appendChild(root);\n }\n }\n\n public close(): void {\n this.dialog.close();\n this._restoreOverlay();\n }\n\n protected _onNativeClose(): void {\n this._restoreOverlay();\n }\n\n public ngOnDestroy(): void {\n this._restoreOverlay();\n }\n\n private _restoreOverlay(): void {\n if (this._overlayRoot && this._overlayPrevParent) {\n try {\n this._overlayPrevParent.appendChild(this._overlayRoot);\n } catch { /* empty */ }\n }\n this._overlayRoot = null;\n this._overlayPrevParent = null;\n }\n}\n","<section class=\"ids-dialog-container\">\n <header class=\"ids-dialog-header\">\n @if (_customHeader()) {\n <ng-container [ngTemplateOutlet]=\"_customHeader()!.template\" />\n } @else {\n <div class=\"ids-dialog-header-default-content\">\n <h2 class=\"ids-dialog-title\" [id]=\"_titleId()\">{{ mainTitle() }}</h2>\n @if (subTitle()) {\n <h3 class=\"ids-dialog-subtitle\">{{ subTitle() }}</h3>\n }\n </div>\n }\n\n @if (showCloseButton()) {\n <button\n type=\"button\"\n class=\"ids-dialog-close-button\"\n idsIconButton\n appearance=\"standard\"\n size=\"compact\"\n variant=\"surface\"\n (click)=\"close()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"close\" />\n </button>\n }\n </header>\n <div class=\"ids-dialog-content\" [class.ids-dialog-content-scrollable]=\"scrollDetector.isScrollable()\">\n <div #scrollDetector=\"idsDetectScrollable\" idsDetectScrollable class=\"ids-dialog-content-overflow\">\n <ng-content select=\"[idsDialogContent]\" />\n </div>\n </div>\n <footer class=\"ids-dialog-actions\">\n <ng-content select=\"[idsDialogActions]\" />\n </footer>\n</section>\n","import { IdsDialogComponent } from './dialog.component';\n\nimport { AfterViewInit, Directive, OnDestroy, viewChild } from '@angular/core';\nimport { Subject, Subscription, fromEvent } from 'rxjs';\n\n@Directive({ standalone: true })\nexport abstract class IdsCustomDialogBase<ResultType = unknown> implements AfterViewInit, OnDestroy {\n public dialogResult = new Subject<ResultType | undefined>();\n\n protected _dialog = viewChild.required(IdsDialogComponent);\n\n private _closeSub?: Subscription;\n\n public ngAfterViewInit(): void {\n this._dialog().open();\n this._closeSub = fromEvent(this._dialog().dialog, 'close').subscribe(() => {\n this._setDialogResult();\n });\n }\n\n public ngOnDestroy(): void {\n this._closeSub?.unsubscribe();\n }\n\n public close(payload?: ResultType): void {\n this._closeSub?.unsubscribe();\n this._dialog().close();\n this._setDialogResult(payload);\n }\n\n private _setDialogResult(payload?: ResultType): void {\n this.dialogResult.next(payload);\n this.dialogResult.complete();\n }\n}\n","import { IdsCustomDialogBase } from './custom-dialog-base';\n\nimport { ApplicationRef, EnvironmentInjector, Injectable, Injector, Provider, Signal, StaticProvider, Type, createComponent, inject, DOCUMENT } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class IdsDialogService {\n private _appRef = inject(ApplicationRef);\n private _document = inject(DOCUMENT);\n private _injector = inject(EnvironmentInjector);\n\n public open<C extends IdsCustomDialogBase<R>, R = unknown>(\n component: Type<C>,\n options?: { providers?: (Provider | StaticProvider)[], inputs?: { [P in keyof C]?: C[P] extends Signal<infer T> ? T : C[P] } },\n ): Observable<R | undefined> {\n let elementInjector = undefined;\n\n if (options?.providers) {\n elementInjector = Injector.create({\n parent: this._injector,\n providers: options.providers,\n });\n }\n\n const createOptions = {\n environmentInjector: this._injector,\n ...(elementInjector && { elementInjector }),\n };\n const dialogRef = createComponent(component, createOptions);\n\n if (options?.inputs) {\n Object.keys(options.inputs).forEach((key) => dialogRef.setInput(key, options.inputs![key as keyof C]));\n }\n\n this._document.body.appendChild(dialogRef.location.nativeElement);\n\n this._appRef.attachView(dialogRef.hostView);\n\n const onClose = dialogRef.instance.dialogResult.asObservable();\n\n onClose.subscribe(() => {\n this._document.body.removeChild(dialogRef.location.nativeElement);\n dialogRef.destroy();\n },\n );\n\n return onClose;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -478,11 +478,11 @@ class IdsErrorMessageComponent extends ComponentBase {
|
|
|
478
478
|
return messageOrFn instanceof Function ? messageOrFn() : messageOrFn;
|
|
479
479
|
}
|
|
480
480
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsErrorMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
481
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: IdsErrorMessageComponent, isStandalone: true, selector: "ids-error-message", queries: [{ propertyName: "_errorDefDirs", predicate: IdsErrorDefinitionDirective, isSignal: true }, { propertyName: "suffixes", predicate: IdsMessageSuffixDirective, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: IdsMessageDirective }], ngImport: i0, template: "<div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"
|
|
481
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: IdsErrorMessageComponent, isStandalone: true, selector: "ids-error-message", queries: [{ propertyName: "_errorDefDirs", predicate: IdsErrorDefinitionDirective, isSignal: true }, { propertyName: "suffixes", predicate: IdsMessageSuffixDirective, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: IdsMessageDirective }], ngImport: i0, template: "<div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"alert-circle-outline\" variant=\"error\" />\n </ng-content>\n</div>\n<div class=\"ids-message__text\">\n @let validationError = _validationError();\n @if (validationError) {\n @let messageString = _getValidationErrorMessage(validationError.message);\n {{ messageString }}\n }\n</div>\n@if (suffixes().length) {\n <div class=\"ids-message__suffix\">\n <ng-content select=\"[idsMessageSuffix]\" />\n </div>\n}\n", dependencies: [{ kind: "component", type: IdsIconComponent, selector: "ids-icon", inputs: ["size", "sizeCollection", "variant", "fontIcon", "svgIcon", "aria-hidden"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
482
482
|
}
|
|
483
483
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsErrorMessageComponent, decorators: [{
|
|
484
484
|
type: Component,
|
|
485
|
-
args: [{ selector: 'ids-error-message', imports: [IdsIconComponent], hostDirectives: [IdsMessageDirective], encapsulation: ViewEncapsulation.None, template: "<div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"
|
|
485
|
+
args: [{ selector: 'ids-error-message', imports: [IdsIconComponent], hostDirectives: [IdsMessageDirective], encapsulation: ViewEncapsulation.None, template: "<div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"alert-circle-outline\" variant=\"error\" />\n </ng-content>\n</div>\n<div class=\"ids-message__text\">\n @let validationError = _validationError();\n @if (validationError) {\n @let messageString = _getValidationErrorMessage(validationError.message);\n {{ messageString }}\n }\n</div>\n@if (suffixes().length) {\n <div class=\"ids-message__suffix\">\n <ng-content select=\"[idsMessageSuffix]\" />\n </div>\n}\n" }]
|
|
486
486
|
}], ctorParameters: () => [] });
|
|
487
487
|
|
|
488
488
|
class IdsMessagePrefixDirective {
|
|
@@ -530,11 +530,11 @@ class IdsSuccessMessageComponent extends ComponentBase {
|
|
|
530
530
|
return 'success-message';
|
|
531
531
|
}
|
|
532
532
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsSuccessMessageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
533
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: IdsSuccessMessageComponent, isStandalone: true, selector: "ids-success-message", queries: [{ propertyName: "suffixes", predicate: IdsMessageSuffixDirective, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: IdsMessageDirective }], ngImport: i0, template: "<div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"
|
|
533
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: IdsSuccessMessageComponent, isStandalone: true, selector: "ids-success-message", queries: [{ propertyName: "suffixes", predicate: IdsMessageSuffixDirective, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: IdsMessageDirective }], ngImport: i0, template: "<div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"done\" variant=\"success\" />\n </ng-content>\n</div>\n<div class=\"ids-message__text\">\n <ng-content />\n</div>\n@if (suffixes().length) {\n <div class=\"ids-message__suffix\">\n <ng-content select=\"[idsMessageSuffix]\" />\n </div>\n}\n", dependencies: [{ kind: "component", type: IdsIconComponent, selector: "ids-icon", inputs: ["size", "sizeCollection", "variant", "fontIcon", "svgIcon", "aria-hidden"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
534
534
|
}
|
|
535
535
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsSuccessMessageComponent, decorators: [{
|
|
536
536
|
type: Component,
|
|
537
|
-
args: [{ selector: 'ids-success-message', imports: [IdsIconComponent], hostDirectives: [IdsMessageDirective], encapsulation: ViewEncapsulation.None, template: "<div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"
|
|
537
|
+
args: [{ selector: 'ids-success-message', imports: [IdsIconComponent], hostDirectives: [IdsMessageDirective], encapsulation: ViewEncapsulation.None, template: "<div class=\"ids-message__prefix\">\n <ng-content select=\"[idsMessagePrefix]\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"done\" variant=\"success\" />\n </ng-content>\n</div>\n<div class=\"ids-message__text\">\n <ng-content />\n</div>\n@if (suffixes().length) {\n <div class=\"ids-message__suffix\">\n <ng-content select=\"[idsMessageSuffix]\" />\n </div>\n}\n" }]
|
|
538
538
|
}] });
|
|
539
539
|
|
|
540
540
|
const defaultConfig$1 = IDS_FORM_FIELD_DEFAULT_CONFIG_FACTORY();
|
|
@@ -802,11 +802,11 @@ class PseudoCheckboxComponent extends ComponentBase {
|
|
|
802
802
|
return 'pseudo-checkbox';
|
|
803
803
|
}
|
|
804
804
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: PseudoCheckboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
805
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: PseudoCheckboxComponent, isStandalone: true, selector: "ids-pseudo-checkbox", inputs: { checkboxState: { classPropertyName: "checkboxState", publicName: "checkboxState", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<div class=\"ids-pseudo-checkbox__input-wrapper\">\n <input\n type=\"checkbox\"\n [disabled]=\"disabled()\"\n [attr.aria-checked]=\"_isIndeterminate() ? 'mixed' : null\"\n [checked]=\"_isChecked()\"\n [indeterminate]=\"_isIndeterminate()\"\n (change)=\"$event.stopPropagation()\"\n />\n <div class=\"ids-pseudo-checkbox__icon\" aria-hidden=\"true\">\n @if (_isIndeterminate()) {\n <ids-icon fontIcon=\"
|
|
805
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: PseudoCheckboxComponent, isStandalone: true, selector: "ids-pseudo-checkbox", inputs: { checkboxState: { classPropertyName: "checkboxState", publicName: "checkboxState", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<div class=\"ids-pseudo-checkbox__input-wrapper\">\n <input\n type=\"checkbox\"\n [disabled]=\"disabled()\"\n [attr.aria-checked]=\"_isIndeterminate() ? 'mixed' : null\"\n [checked]=\"_isChecked()\"\n [indeterminate]=\"_isIndeterminate()\"\n (change)=\"$event.stopPropagation()\"\n />\n <div class=\"ids-pseudo-checkbox__icon\" aria-hidden=\"true\">\n @if (_isIndeterminate()) {\n <ids-icon fontIcon=\"remove\" aria-hidden=\"true\" />\n }\n @if (_isChecked()) {\n <ids-icon fontIcon=\"done\" aria-hidden=\"true\" />\n }\n </div>\n</div>\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 }); }
|
|
806
806
|
}
|
|
807
807
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: PseudoCheckboxComponent, decorators: [{
|
|
808
808
|
type: Component,
|
|
809
|
-
args: [{ selector: 'ids-pseudo-checkbox', imports: [IdsIconComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ids-pseudo-checkbox__input-wrapper\">\n <input\n type=\"checkbox\"\n [disabled]=\"disabled()\"\n [attr.aria-checked]=\"_isIndeterminate() ? 'mixed' : null\"\n [checked]=\"_isChecked()\"\n [indeterminate]=\"_isIndeterminate()\"\n (change)=\"$event.stopPropagation()\"\n />\n <div class=\"ids-pseudo-checkbox__icon\" aria-hidden=\"true\">\n @if (_isIndeterminate()) {\n <ids-icon fontIcon=\"
|
|
809
|
+
args: [{ selector: 'ids-pseudo-checkbox', imports: [IdsIconComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ids-pseudo-checkbox__input-wrapper\">\n <input\n type=\"checkbox\"\n [disabled]=\"disabled()\"\n [attr.aria-checked]=\"_isIndeterminate() ? 'mixed' : null\"\n [checked]=\"_isChecked()\"\n [indeterminate]=\"_isIndeterminate()\"\n (change)=\"$event.stopPropagation()\"\n />\n <div class=\"ids-pseudo-checkbox__icon\" aria-hidden=\"true\">\n @if (_isIndeterminate()) {\n <ids-icon fontIcon=\"remove\" aria-hidden=\"true\" />\n }\n @if (_isChecked()) {\n <ids-icon fontIcon=\"done\" aria-hidden=\"true\" />\n }\n </div>\n</div>\n" }]
|
|
810
810
|
}] });
|
|
811
811
|
|
|
812
812
|
class IdsOptionComponent extends ComponentBase {
|
|
@@ -910,7 +910,7 @@ class IdsOptionComponent extends ComponentBase {
|
|
|
910
910
|
provide: IDS_PSEUDO_CHECKBOX_PARENT,
|
|
911
911
|
useExisting: IdsOptionComponent,
|
|
912
912
|
},
|
|
913
|
-
], viewQueries: [{ propertyName: "_textElement", first: true, predicate: ["text"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (_multiSelect) {\n <ids-pseudo-checkbox aria-hidden=\"true\" [disabled]=\"_groupOrOptionIsDisabled()\" [checkboxState]=\"_pseudoCheckboxState()\" />\n}\n\n<div #text class=\"ids-option__text\"><ng-content /></div>\n\n@if (!_multiSelect && selected()) {\n <ids-icon fontIcon=\"
|
|
913
|
+
], viewQueries: [{ propertyName: "_textElement", first: true, predicate: ["text"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (_multiSelect) {\n <ids-pseudo-checkbox aria-hidden=\"true\" [disabled]=\"_groupOrOptionIsDisabled()\" [checkboxState]=\"_pseudoCheckboxState()\" />\n}\n\n<div #text class=\"ids-option__text\"><ng-content /></div>\n\n@if (!_multiSelect && selected()) {\n <ids-icon fontIcon=\"done\" />\n}\n", dependencies: [{ kind: "component", type: IdsIconComponent, selector: "ids-icon", inputs: ["size", "sizeCollection", "variant", "fontIcon", "svgIcon", "aria-hidden"] }, { kind: "component", type: PseudoCheckboxComponent, selector: "ids-pseudo-checkbox", inputs: ["checkboxState", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
914
914
|
}
|
|
915
915
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsOptionComponent, decorators: [{
|
|
916
916
|
type: Component,
|
|
@@ -928,7 +928,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
|
|
|
928
928
|
'[attr.aria-disabled]': 'disabled.toString()',
|
|
929
929
|
'(click)': 'selectViaInteraction()',
|
|
930
930
|
'(keydown)': '_handleKeydown($event)',
|
|
931
|
-
}, template: "@if (_multiSelect) {\n <ids-pseudo-checkbox aria-hidden=\"true\" [disabled]=\"_groupOrOptionIsDisabled()\" [checkboxState]=\"_pseudoCheckboxState()\" />\n}\n\n<div #text class=\"ids-option__text\"><ng-content /></div>\n\n@if (!_multiSelect && selected()) {\n <ids-icon fontIcon=\"
|
|
931
|
+
}, template: "@if (_multiSelect) {\n <ids-pseudo-checkbox aria-hidden=\"true\" [disabled]=\"_groupOrOptionIsDisabled()\" [checkboxState]=\"_pseudoCheckboxState()\" />\n}\n\n<div #text class=\"ids-option__text\"><ng-content /></div>\n\n@if (!_multiSelect && selected()) {\n <ids-icon fontIcon=\"done\" />\n}\n" }]
|
|
932
932
|
}], ctorParameters: () => [] });
|
|
933
933
|
function _countGroupLabelsBeforeOption(optionIndex, options, optionGroups) {
|
|
934
934
|
if (optionGroups.length) {
|