@i-cell/ids-angular 0.2.24 → 0.2.25

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.
Files changed (98) hide show
  1. package/fesm2022/i-cell-ids-angular-accordion.mjs +32 -32
  2. package/fesm2022/i-cell-ids-angular-accordion.mjs.map +1 -1
  3. package/fesm2022/i-cell-ids-angular-avatar.mjs +18 -18
  4. package/fesm2022/i-cell-ids-angular-avatar.mjs.map +1 -1
  5. package/fesm2022/i-cell-ids-angular-badge.mjs +27 -27
  6. package/fesm2022/i-cell-ids-angular-badge.mjs.map +1 -1
  7. package/fesm2022/i-cell-ids-angular-breadcrumb.mjs +45 -45
  8. package/fesm2022/i-cell-ids-angular-breadcrumb.mjs.map +1 -1
  9. package/fesm2022/i-cell-ids-angular-button.mjs +19 -19
  10. package/fesm2022/i-cell-ids-angular-button.mjs.map +1 -1
  11. package/fesm2022/i-cell-ids-angular-card.mjs +38 -41
  12. package/fesm2022/i-cell-ids-angular-card.mjs.map +1 -1
  13. package/fesm2022/i-cell-ids-angular-checkbox.mjs +45 -45
  14. package/fesm2022/i-cell-ids-angular-checkbox.mjs.map +1 -1
  15. package/fesm2022/i-cell-ids-angular-chip.mjs +28 -28
  16. package/fesm2022/i-cell-ids-angular-chip.mjs.map +1 -1
  17. package/fesm2022/i-cell-ids-angular-core.mjs +18 -20
  18. package/fesm2022/i-cell-ids-angular-core.mjs.map +1 -1
  19. package/fesm2022/i-cell-ids-angular-datepicker.mjs +74 -74
  20. package/fesm2022/i-cell-ids-angular-datepicker.mjs.map +1 -1
  21. package/fesm2022/i-cell-ids-angular-dialog.mjs +23 -23
  22. package/fesm2022/i-cell-ids-angular-dialog.mjs.map +1 -1
  23. package/fesm2022/i-cell-ids-angular-divider.mjs +12 -12
  24. package/fesm2022/i-cell-ids-angular-divider.mjs.map +1 -1
  25. package/fesm2022/i-cell-ids-angular-forms.mjs +222 -222
  26. package/fesm2022/i-cell-ids-angular-forms.mjs.map +1 -1
  27. package/fesm2022/i-cell-ids-angular-icon-button.mjs +15 -15
  28. package/fesm2022/i-cell-ids-angular-icon-button.mjs.map +1 -1
  29. package/fesm2022/i-cell-ids-angular-icon.mjs +15 -15
  30. package/fesm2022/i-cell-ids-angular-icon.mjs.map +1 -1
  31. package/fesm2022/i-cell-ids-angular-menu.mjs +18 -18
  32. package/fesm2022/i-cell-ids-angular-menu.mjs.map +1 -1
  33. package/fesm2022/i-cell-ids-angular-notification.mjs +26 -26
  34. package/fesm2022/i-cell-ids-angular-notification.mjs.map +1 -1
  35. package/fesm2022/i-cell-ids-angular-overlay-panel.mjs +18 -18
  36. package/fesm2022/i-cell-ids-angular-overlay-panel.mjs.map +1 -1
  37. package/fesm2022/i-cell-ids-angular-paginator.mjs +34 -34
  38. package/fesm2022/i-cell-ids-angular-paginator.mjs.map +1 -1
  39. package/fesm2022/i-cell-ids-angular-radio.mjs +32 -32
  40. package/fesm2022/i-cell-ids-angular-radio.mjs.map +1 -1
  41. package/fesm2022/i-cell-ids-angular-segmented-control-toggle.mjs +34 -34
  42. package/fesm2022/i-cell-ids-angular-segmented-control-toggle.mjs.map +1 -1
  43. package/fesm2022/i-cell-ids-angular-segmented-control.mjs +34 -34
  44. package/fesm2022/i-cell-ids-angular-segmented-control.mjs.map +1 -1
  45. package/fesm2022/i-cell-ids-angular-select.mjs +29 -29
  46. package/fesm2022/i-cell-ids-angular-select.mjs.map +1 -1
  47. package/fesm2022/i-cell-ids-angular-side-nav.mjs +41 -41
  48. package/fesm2022/i-cell-ids-angular-side-nav.mjs.map +1 -1
  49. package/fesm2022/i-cell-ids-angular-side-sheet.mjs +29 -29
  50. package/fesm2022/i-cell-ids-angular-side-sheet.mjs.map +1 -1
  51. package/fesm2022/i-cell-ids-angular-snackbar.mjs +30 -30
  52. package/fesm2022/i-cell-ids-angular-snackbar.mjs.map +1 -1
  53. package/fesm2022/i-cell-ids-angular-spinner.mjs +10 -10
  54. package/fesm2022/i-cell-ids-angular-spinner.mjs.map +1 -1
  55. package/fesm2022/i-cell-ids-angular-switch.mjs +36 -36
  56. package/fesm2022/i-cell-ids-angular-switch.mjs.map +1 -1
  57. package/fesm2022/i-cell-ids-angular-tab.mjs +140 -30
  58. package/fesm2022/i-cell-ids-angular-tab.mjs.map +1 -1
  59. package/fesm2022/i-cell-ids-angular-table.mjs +94 -94
  60. package/fesm2022/i-cell-ids-angular-table.mjs.map +1 -1
  61. package/fesm2022/i-cell-ids-angular-tag.mjs +20 -20
  62. package/fesm2022/i-cell-ids-angular-tag.mjs.map +1 -1
  63. package/fesm2022/i-cell-ids-angular-tooltip.mjs +32 -32
  64. package/fesm2022/i-cell-ids-angular-tooltip.mjs.map +1 -1
  65. package/package.json +47 -47
  66. package/{accordion/index.d.ts → types/i-cell-ids-angular-accordion.d.ts} +1 -1
  67. package/{avatar/index.d.ts → types/i-cell-ids-angular-avatar.d.ts} +1 -1
  68. package/{button/index.d.ts → types/i-cell-ids-angular-button.d.ts} +1 -1
  69. package/{card/index.d.ts → types/i-cell-ids-angular-card.d.ts} +2 -2
  70. package/{chip/index.d.ts → types/i-cell-ids-angular-chip.d.ts} +5 -5
  71. package/{core/index.d.ts → types/i-cell-ids-angular-core.d.ts} +2 -2
  72. package/{datepicker/index.d.ts → types/i-cell-ids-angular-datepicker.d.ts} +1 -1
  73. package/{divider/index.d.ts → types/i-cell-ids-angular-divider.d.ts} +2 -2
  74. package/{icon-button/index.d.ts → types/i-cell-ids-angular-icon-button.d.ts} +2 -2
  75. package/{icon/index.d.ts → types/i-cell-ids-angular-icon.d.ts} +1 -1
  76. package/{menu/index.d.ts → types/i-cell-ids-angular-menu.d.ts} +1 -1
  77. package/{notification/index.d.ts → types/i-cell-ids-angular-notification.d.ts} +1 -1
  78. package/{paginator/index.d.ts → types/i-cell-ids-angular-paginator.d.ts} +1 -1
  79. package/{radio/index.d.ts → types/i-cell-ids-angular-radio.d.ts} +1 -1
  80. package/{segmented-control-toggle/index.d.ts → types/i-cell-ids-angular-segmented-control-toggle.d.ts} +1 -1
  81. package/{segmented-control/index.d.ts → types/i-cell-ids-angular-segmented-control.d.ts} +1 -1
  82. package/{snackbar/index.d.ts → types/i-cell-ids-angular-snackbar.d.ts} +3 -3
  83. package/{tab/index.d.ts → types/i-cell-ids-angular-tab.d.ts} +16 -3
  84. package/{tag/index.d.ts → types/i-cell-ids-angular-tag.d.ts} +1 -1
  85. /package/{badge/index.d.ts → types/i-cell-ids-angular-badge.d.ts} +0 -0
  86. /package/{breadcrumb/index.d.ts → types/i-cell-ids-angular-breadcrumb.d.ts} +0 -0
  87. /package/{checkbox/index.d.ts → types/i-cell-ids-angular-checkbox.d.ts} +0 -0
  88. /package/{dialog/index.d.ts → types/i-cell-ids-angular-dialog.d.ts} +0 -0
  89. /package/{forms/index.d.ts → types/i-cell-ids-angular-forms.d.ts} +0 -0
  90. /package/{overlay-panel/index.d.ts → types/i-cell-ids-angular-overlay-panel.d.ts} +0 -0
  91. /package/{select/index.d.ts → types/i-cell-ids-angular-select.d.ts} +0 -0
  92. /package/{side-nav/index.d.ts → types/i-cell-ids-angular-side-nav.d.ts} +0 -0
  93. /package/{side-sheet/index.d.ts → types/i-cell-ids-angular-side-sheet.d.ts} +0 -0
  94. /package/{spinner/index.d.ts → types/i-cell-ids-angular-spinner.d.ts} +0 -0
  95. /package/{switch/index.d.ts → types/i-cell-ids-angular-switch.d.ts} +0 -0
  96. /package/{table/index.d.ts → types/i-cell-ids-angular-table.d.ts} +0 -0
  97. /package/{tooltip/index.d.ts → types/i-cell-ids-angular-tooltip.d.ts} +0 -0
  98. /package/{index.d.ts → types/i-cell-ids-angular.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"i-cell-ids-angular-core.mjs","sources":["../../../projects/widgets/core/utils/class-prefix.ts","../../../projects/widgets/core/base-classes/directive-base.ts","../../../projects/widgets/core/utils/fallback-value.ts","../../../projects/widgets/core/base-classes/component-base.ts","../../../projects/widgets/core/services/resize-observer.service.ts","../../../projects/widgets/core/directives/detect-scrollable.directive.ts","../../../projects/widgets/core/pipes/sentence-case.pipe.ts","../../../projects/widgets/core/types/orientation.type.ts","../../../projects/widgets/core/types/position.type.ts","../../../projects/widgets/core/types/size-collection.type.ts","../../../projects/widgets/core/types/size.type.ts","../../../projects/widgets/core/utils/class.ts","../../../projects/widgets/core/utils/coercion.ts","../../../projects/widgets/core/utils/number.ts","../../../projects/widgets/core/utils/string.ts","../../../projects/widgets/core/utils/date.ts","../../../projects/widgets/core/utils/compare.ts","../../../projects/widgets/core/i-cell-ids-angular-core.ts"],"sourcesContent":["export function addClassPrefix(\n hostClass: string,\n className: string | Array<string | null | undefined> | null | undefined,\n): string | null {\n if (className == null) {\n return null;\n }\n\n if (Array.isArray(className)) {\n if (className.some((item) => item == null)) {\n return null;\n }\n return `${hostClass}-${className.filter(Boolean).join('-')}`;\n }\n\n return `${hostClass}-${className}`;\n}\n\nexport function createClassList(\n hostClass: string,\n appendableClassNames: Array<string | Array<string | null | undefined> | null | undefined> = [],\n nonAppendableClassNames: Array<string | null> = [],\n): string {\n return [\n hostClass,\n ...appendableClassNames.map((className) => addClassPrefix(hostClass, className)),\n ...nonAppendableClassNames,\n ].filter(Boolean).join(' ');\n}\n","import { createClassList } from '../utils/class-prefix';\n\nimport { DestroyRef, Directive, inject, InjectionToken, Signal } from '@angular/core';\n\n@Directive({\n host: {\n '[class]': '_hostClasses()',\n },\n standalone: false,\n})\nexport abstract class DirectiveBase {\n protected get _hostName(): string {\n return '';\n }\n\n protected readonly _hostClassName = `ids-${this._hostName}`;\n\n protected readonly _destroyRef = inject(DestroyRef);\n\n protected abstract _hostClasses: Signal<string>;\n protected _getHostClasses(\n appendableClassNames: Array<string | Array<string | null | undefined> | null | undefined> = [],\n nonAppendableClassNames: Array<string | null> = [],\n ): string {\n return createClassList(this._hostClassName, appendableClassNames, nonAppendableClassNames);\n }\n\n protected _createHostError(message: string): Error {\n return new Error(`${this._hostClassName}: ${message}`);\n }\n}\n\nexport abstract class DirectiveBaseWithDefaults<D> extends DirectiveBase {\n protected abstract readonly _defaultConfig: D;\n\n protected _getDefaultConfig(defaultConfig: Required<D>, injectionToken: InjectionToken<D>): Required<D> {\n return {\n ...defaultConfig,\n ...inject(injectionToken, { optional: true }),\n };\n }\n}\n","export function fallbackValue<T>(value: T | undefined, fallbackValue: T): T {\n return value ? value : fallbackValue;\n}\n","import { DirectiveBase } from './directive-base';\n\nimport { fallbackValue } from '../utils/fallback-value';\n\nimport { Directive, inject, InjectionToken, input } from '@angular/core';\n\nlet nextUniqueId = 0;\n\n@Directive({\n host: {\n '[id]': 'id()',\n },\n standalone: false,\n})\nexport abstract class ComponentBase extends DirectiveBase {\n protected readonly _uniqueId = `${this._hostClassName}-${++nextUniqueId}`;\n\n public readonly id = input<string, string | undefined>(this._uniqueId, { transform: (val) => fallbackValue(val, this._uniqueId) });\n}\n\nexport abstract class ComponentBaseWithDefaults<D> extends ComponentBase {\n protected abstract readonly _defaultConfig: D;\n\n protected _getDefaultConfig(defaultConfig: Required<D>, injectionToken: InjectionToken<D>): Required<D> {\n return {\n ...defaultConfig,\n ...inject(injectionToken, { optional: true }),\n };\n }\n}\n","import { Injectable, NgZone, OnDestroy, inject } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ResizeObserverService implements OnDestroy {\n private _zone = inject(NgZone);\n\n private _observers = new Map<Element, Subject<ResizeObserverEntry>>();\n private _resizeObserver = new ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const observer = this._observers.get(entry.target);\n this._zone.run(() => observer?.next(entry));\n });\n });\n\n public observe(target: Element): Observable<ResizeObserverEntry> {\n if (this._observers.has(target)) {\n return this._observers.get(target)!.asObservable();\n }\n\n const newObserver = new Subject<ResizeObserverEntry>();\n\n this._observers.set(target, newObserver);\n this._resizeObserver.observe(target);\n\n return newObserver.asObservable();\n }\n\n public unobserve(target: Element): void {\n const observer = this._observers.get(target);\n\n if (observer) {\n observer.complete();\n this._observers.delete(target);\n }\n\n this._resizeObserver.unobserve(target);\n }\n\n public ngOnDestroy(): void {\n this._resizeObserver.disconnect();\n }\n}\n","import { ResizeObserverService } from '../services/resize-observer.service';\n\nimport { Directive, ElementRef, OnDestroy, OnInit, inject, signal } from '@angular/core';\n\n@Directive({\n selector: '[idsDetectScrollable]',\n standalone: true,\n exportAs: 'idsDetectScrollable',\n})\nexport class IdsDetectScrollableDirective implements OnInit, OnDestroy {\n private _hostElement = inject(ElementRef).nativeElement;\n private _resizeObserver = inject(ResizeObserverService);\n\n public isScrollable = signal(false);\n\n public ngOnInit(): void {\n this._resizeObserver.observe(this._hostElement).subscribe(() => {\n this.isScrollable.set(this._hostElement.scrollHeight > this._hostElement.clientHeight);\n },\n );\n }\n\n public ngOnDestroy(): void {\n this._resizeObserver.unobserve(this._hostElement);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'sentenceCase',\n standalone: true,\n})\nexport class IdsSentenceCasePipe implements PipeTransform {\n public transform(value: string): unknown {\n return value.charAt(0).toUpperCase().concat(value.substring(1));\n }\n\n}\n","export const IdsOrientation = {\n VERTICAL: 'vertical',\n HORIZONTAL: 'horizontal',\n} as const;\n\nexport type IdsOrientationType = (typeof IdsOrientation)[keyof typeof IdsOrientation];\n","export const IdsHorizontalPosition = {\n LEFT: 'left',\n RIGHT: 'right',\n} as const;\n\nexport type IdsHorizontalPositionType = (typeof IdsHorizontalPosition)[keyof typeof IdsHorizontalPosition];\n\nexport const IdsExtendedHorizontalPosition = {\n ...IdsHorizontalPosition,\n CENTER: 'center',\n} as const;\n\nexport type IdsExtendedHorizontalPositionType = (typeof IdsExtendedHorizontalPosition)[keyof typeof IdsExtendedHorizontalPosition];\n\nexport const IdsVerticalPosition = {\n TOP: 'top',\n BOTTOM: 'bottom',\n} as const;\n\nexport type IdsVerticalPositionType = (typeof IdsVerticalPosition)[keyof typeof IdsVerticalPosition];\n\nexport const IdsExtendedVerticalPosition = {\n ...IdsVerticalPosition,\n CENTER: 'center',\n} as const;\n\nexport type IdsExtendedVerticalPositionType = (typeof IdsExtendedVerticalPosition)[keyof typeof IdsExtendedVerticalPosition];\n\nexport const IdsPosition = {\n ...IdsHorizontalPosition,\n ...IdsVerticalPosition,\n} as const;\n\nexport type IdsPositionType = (typeof IdsPosition)[keyof typeof IdsPosition];\n\nexport type IdsPositionPairType = [IdsHorizontalPositionType, IdsVerticalPositionType];\n\nexport const IdsExtendedPosition = {\n ...IdsExtendedHorizontalPosition,\n ...IdsExtendedVerticalPosition,\n} as const;\n\nexport type IdsExtendedPositionType = (typeof IdsExtendedPosition)[keyof typeof IdsExtendedPosition];\n\nexport type IdsExtendedPositionPairType = [IdsExtendedHorizontalPositionType, IdsExtendedVerticalPositionType];\n","export const IdsSizeCollection = {\n SMALL: 'small',\n BIG: 'big',\n} as const;\n\nexport type IdsSizeCollectionType = (typeof IdsSizeCollection)[keyof typeof IdsSizeCollection];\n","export const IdsSize = {\n DENSE: 'dense',\n COMPACT: 'compact',\n COMFORTABLE: 'comfortable',\n SPACIOUS: 'spacious',\n} as const;\n\nexport type IdsSizeType = (typeof IdsSize)[keyof typeof IdsSize];\n","import { AbstractType, Type } from '@angular/core';\n\nexport function isTypeDerivedFrom<T1, T2>(type: Type<T1> | AbstractType<T1>, ancestorType: Type<T2> | AbstractType<T2>): boolean {\n if (!type || !ancestorType) {\n return false;\n }\n\n const superType = Object.getPrototypeOf(type);\n\n return superType === ancestorType || isTypeDerivedFrom(superType, ancestorType);\n}\n","/** Converts a bound attribute's value to a boolean. */\nexport function coerceBooleanAttribute(value: unknown): boolean {\n return value != null && `${value}` !== 'false';\n}\n\n/** Converts a bound attribute's value to a number. */\nexport function coerceNumberAttribute(value: unknown, fallbackValue = NaN): number {\n const isNumberValue = !isNaN(Number(value));\n return isNumberValue ? Number(value) : fallbackValue;\n}\n\n/** Converts a bound attribute's value to a string and trim. */\nexport function coerceStringAttribute(value: unknown): string {\n return value ? String(value).trim() : '';\n}\n","export function isNumber(value: unknown): value is number {\n return typeof value === 'number' || value instanceof Number;\n}\n\nexport function isNumberEven(val: number): boolean {\n return val % 2 === 0;\n}\n\nexport function isNumberOdd(val: number): boolean {\n return val % 2 === 1;\n}\n\nexport function positiveModulus(num: number, divisor: number): number {\n return ((num % divisor) + divisor) % divisor;\n}\n","export function isString(value: unknown): value is string {\n return typeof value == 'string' || value instanceof String;\n}\n","/* eslint-disable no-magic-numbers */\n\nimport { isNumber, positiveModulus } from './number';\nimport { isString } from './string';\n\nconst ISO_8601_REGEXP = /^\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|(?:(?:\\+|-)\\d{2}:\\d{2}))?)?$/;\n\nconst weekLength = 7;\n\nfunction padDigits(num: number): string {\n return num > 9 ? String(num) : `0${num}`;\n}\n\nfunction dayOfWeekWithOffset(weekDay: Date, offset: number): number {\n return (weekLength + weekDay.getDay() - offset) % weekLength;\n}\n\nexport function isDate(value: unknown): value is Date {\n return value instanceof Date;\n}\n\nexport function isValidDate(value: unknown): value is Date {\n return isDate(value) && !isNaN(value.getTime());\n}\n\nexport function getValidDateOrNull(value: unknown): Date | null {\n return isValidDate(value) ? value : null;\n}\n\nexport function equalDates(date1: Date | null, date2: Date | null): boolean {\n // eslint-disable-next-line eqeqeq\n return date1 && date2 ? Object.is(+startOfDay(date1), +startOfDay(date2)) : date1 == date2;\n}\n\nexport function compareDates(date1: Date, date2: Date): number {\n return Math.sign(+date1 - +date2);\n}\n\nexport function clampDate(date: Date, min: Date | null, max: Date | null): Date;\nexport function clampDate(date: Date | null, min: Date | null, max: Date | null): Date | null {\n if (!isValidDate(date)) {\n return date;\n }\n\n const dateMillis = date.getTime();\n const minDate = isValidDate(min) ? min.getTime() : dateMillis;\n const maxDate = isValidDate(max) ? max.getTime() : dateMillis;\n\n return new Date(Math.max(minDate, Math.min(dateMillis, maxDate)));\n}\n\nexport function invalidDate(): Date {\n return new Date(NaN);\n}\n\nexport function cloneDate(date: Date): Date {\n return new Date(date);\n}\n\nexport function parseDate(value: string, utc = false): Date | null {\n if (!value) {\n return null;\n }\n if (ISO_8601_REGEXP.test(value)) {\n return new Date(utc ? value : `${value}T00:00:00`);\n }\n return invalidDate();\n}\n\nexport function deserializeDate(value: unknown): Date | null {\n // Numeric timestamp\n if (isNumber(value)) {\n return new Date(value);\n }\n\n // Empty value -> null\n if (!value) {\n return null;\n }\n\n // value is a Date instance, nothing to process\n if (isDate(value)) {\n return value;\n }\n\n if (isString(value)) {\n return parseDate(value);\n }\n\n return invalidDate();\n}\n\nexport function formatDate(date: Date): string {\n const year = date.getFullYear();\n const month = date.getMonth() + 1;\n const day = date.getDate();\n\n return `${year}-${padDigits(month)}-${padDigits(day)}`;\n}\n\nexport function formatUTCDate(date: Date): string {\n return date.toISOString().split('T')[0];\n}\n\nexport function addDays(date: Date, days: number): Date {\n const clonedDate = cloneDate(date);\n clonedDate.setDate(clonedDate.getDate() + days);\n return clonedDate;\n}\n\nexport function addMonths(date: Date, months: number): Date {\n const newDate = new Date();\n newDate.setFullYear(date.getFullYear(), date.getMonth() + months, date.getDate());\n newDate.setHours(0, 0, 0, 0);\n\n const newMonth = newDate.getMonth();\n const desiredMonth = positiveModulus(date.getMonth() + months, 12);\n\n if (newMonth !== desiredMonth) {\n newDate.setDate(0);\n }\n\n return newDate;\n}\n\nexport function addYears(date: Date, years: number): Date {\n return addMonths(date, years * 12);\n}\n\nexport function startOfDay(date: Date): Date {\n const clonedDate = cloneDate(date);\n clonedDate.setHours(0, 0, 0, 0);\n return clonedDate;\n}\n\nexport function endOfDay(date: Date): Date {\n const clonedDate = cloneDate(date);\n clonedDate.setHours(23, 59, 59, 999);\n return clonedDate;\n}\n\nexport function startOfWeek(weekDay: Date, offset: number): Date {\n return addDays(weekDay, -dayOfWeekWithOffset(weekDay, offset));\n}\n\nexport function endOfWeek(weekDay: Date, offset: number): Date {\n return addDays(weekDay, 6 - dayOfWeekWithOffset(weekDay, offset));\n}\n\nexport function startOfMonth(date: Date): Date {\n return new Date(date.getFullYear(), date.getMonth(), 1);\n}\n\nexport function endOfMonth(date: Date): Date {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0);\n}\n\nexport function startOfYear(date: Date): Date {\n return new Date(date.getFullYear(), 0, 1);\n}\n\nexport function endOfYear(date: Date): Date {\n return new Date(date.getFullYear(), 12, 0);\n}\n\nexport function getDatesBetween(startDate: Date, endDate: Date): Date[] {\n if (!isValidDate(startDate) || !isValidDate(endDate)) {\n return [];\n }\n\n let current = startOfDay(startDate);\n const end = startOfDay(endDate);\n const result = [];\n\n while (current <= end) {\n result.push(new Date(current));\n current = addDays(current, 1);\n }\n\n return result;\n}\n\nexport function createNormalizedDate(year: number, month: number, date: number): Date {\n const daysInMonth = new Date(year, month + 1, 0).getDate();\n return new Date(year, month, Math.min(date, daysInMonth));\n}\n","import { isValidDate } from './date';\n\nexport function compare(value1: unknown, value2: unknown): number {\n if (Number.isFinite(value1) && Number.isFinite(value2)) {\n return Math.sign((value1 as number) - (value2 as number));\n }\n\n if (isValidDate(value1) && isValidDate(value2)) {\n return compare(value1.valueOf(), value2.valueOf());\n }\n\n return String(value1).localeCompare(String(value2));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i-cell-ids-angular-core.mjs","sources":["../../../projects/widgets/core/utils/class-prefix.ts","../../../projects/widgets/core/base-classes/directive-base.ts","../../../projects/widgets/core/utils/fallback-value.ts","../../../projects/widgets/core/base-classes/component-base.ts","../../../projects/widgets/core/services/resize-observer.service.ts","../../../projects/widgets/core/directives/detect-scrollable.directive.ts","../../../projects/widgets/core/pipes/sentence-case.pipe.ts","../../../projects/widgets/core/types/orientation.type.ts","../../../projects/widgets/core/types/position.type.ts","../../../projects/widgets/core/types/size-collection.type.ts","../../../projects/widgets/core/types/size.type.ts","../../../projects/widgets/core/utils/class.ts","../../../projects/widgets/core/utils/coercion.ts","../../../projects/widgets/core/utils/number.ts","../../../projects/widgets/core/utils/string.ts","../../../projects/widgets/core/utils/date.ts","../../../projects/widgets/core/utils/compare.ts","../../../projects/widgets/core/i-cell-ids-angular-core.ts"],"sourcesContent":["export function addClassPrefix(\n hostClass: string,\n className: string | Array<string | null | undefined> | null | undefined,\n): string | null {\n if (className == null) {\n return null;\n }\n\n if (Array.isArray(className)) {\n if (className.some((item) => item == null)) {\n return null;\n }\n return `${hostClass}-${className.filter(Boolean).join('-')}`;\n }\n\n return `${hostClass}-${className}`;\n}\n\nexport function createClassList(\n hostClass: string,\n appendableClassNames: Array<string | Array<string | null | undefined> | null | undefined> = [],\n nonAppendableClassNames: Array<string | null> = [],\n): string {\n return [\n hostClass,\n ...appendableClassNames.map((className) => addClassPrefix(hostClass, className)),\n ...nonAppendableClassNames,\n ].filter(Boolean).join(' ');\n}\n","import { createClassList } from '../utils/class-prefix';\n\nimport { DestroyRef, Directive, inject, InjectionToken, Signal } from '@angular/core';\n\n@Directive({\n host: {\n '[class]': '_hostClasses()',\n },\n})\nexport abstract class DirectiveBase {\n protected get _hostName(): string {\n return '';\n }\n\n protected readonly _hostClassName = `ids-${this._hostName}`;\n\n protected readonly _destroyRef = inject(DestroyRef);\n\n protected abstract _hostClasses: Signal<string>;\n protected _getHostClasses(\n appendableClassNames: Array<string | Array<string | null | undefined> | null | undefined> = [],\n nonAppendableClassNames: Array<string | null> = [],\n ): string {\n return createClassList(this._hostClassName, appendableClassNames, nonAppendableClassNames);\n }\n\n protected _createHostError(message: string): Error {\n return new Error(`${this._hostClassName}: ${message}`);\n }\n}\n\nexport abstract class DirectiveBaseWithDefaults<D> extends DirectiveBase {\n protected abstract readonly _defaultConfig: D;\n\n protected _getDefaultConfig(defaultConfig: Required<D>, injectionToken: InjectionToken<D>): Required<D> {\n return {\n ...defaultConfig,\n ...inject(injectionToken, { optional: true }),\n };\n }\n}\n","export function fallbackValue<T>(value: T | undefined, fallbackValue: T): T {\n return value ? value : fallbackValue;\n}\n","import { DirectiveBase } from './directive-base';\n\nimport { fallbackValue } from '../utils/fallback-value';\n\nimport { Directive, inject, InjectionToken, input } from '@angular/core';\n\nlet nextUniqueId = 0;\n\n@Directive({\n host: {\n '[id]': 'id()',\n },\n})\nexport abstract class ComponentBase extends DirectiveBase {\n protected readonly _uniqueId = `${this._hostClassName}-${++nextUniqueId}`;\n\n public readonly id = input<string, string | undefined>(this._uniqueId, { transform: (val) => fallbackValue(val, this._uniqueId) });\n}\n\nexport abstract class ComponentBaseWithDefaults<D> extends ComponentBase {\n protected abstract readonly _defaultConfig: D;\n\n protected _getDefaultConfig(defaultConfig: Required<D>, injectionToken: InjectionToken<D>): Required<D> {\n return {\n ...defaultConfig,\n ...inject(injectionToken, { optional: true }),\n };\n }\n}\n","import { Injectable, NgZone, OnDestroy, inject } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ResizeObserverService implements OnDestroy {\n private _zone = inject(NgZone);\n\n private _observers = new Map<Element, Subject<ResizeObserverEntry>>();\n private _resizeObserver = new ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const observer = this._observers.get(entry.target);\n this._zone.run(() => observer?.next(entry));\n });\n });\n\n public observe(target: Element): Observable<ResizeObserverEntry> {\n if (this._observers.has(target)) {\n return this._observers.get(target)!.asObservable();\n }\n\n const newObserver = new Subject<ResizeObserverEntry>();\n\n this._observers.set(target, newObserver);\n this._resizeObserver.observe(target);\n\n return newObserver.asObservable();\n }\n\n public unobserve(target: Element): void {\n const observer = this._observers.get(target);\n\n if (observer) {\n observer.complete();\n this._observers.delete(target);\n }\n\n this._resizeObserver.unobserve(target);\n }\n\n public ngOnDestroy(): void {\n this._resizeObserver.disconnect();\n }\n}\n","import { ResizeObserverService } from '../services/resize-observer.service';\n\nimport { Directive, ElementRef, OnDestroy, OnInit, inject, signal } from '@angular/core';\n\n@Directive({\n selector: '[idsDetectScrollable]',\n standalone: true,\n exportAs: 'idsDetectScrollable',\n})\nexport class IdsDetectScrollableDirective implements OnInit, OnDestroy {\n private _hostElement = inject(ElementRef).nativeElement;\n private _resizeObserver = inject(ResizeObserverService);\n\n public isScrollable = signal(false);\n\n public ngOnInit(): void {\n this._resizeObserver.observe(this._hostElement).subscribe(() => {\n this.isScrollable.set(this._hostElement.scrollHeight > this._hostElement.clientHeight);\n },\n );\n }\n\n public ngOnDestroy(): void {\n this._resizeObserver.unobserve(this._hostElement);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'sentenceCase',\n standalone: true,\n})\nexport class IdsSentenceCasePipe implements PipeTransform {\n public transform(value: string): unknown {\n return value.charAt(0).toUpperCase().concat(value.substring(1));\n }\n\n}\n","export const IdsOrientation = {\n VERTICAL: 'vertical',\n HORIZONTAL: 'horizontal',\n} as const;\n\nexport type IdsOrientationType = (typeof IdsOrientation)[keyof typeof IdsOrientation];\n","export const IdsHorizontalPosition = {\n LEFT: 'left',\n RIGHT: 'right',\n} as const;\n\nexport type IdsHorizontalPositionType = (typeof IdsHorizontalPosition)[keyof typeof IdsHorizontalPosition];\n\nexport const IdsExtendedHorizontalPosition = {\n ...IdsHorizontalPosition,\n CENTER: 'center',\n} as const;\n\nexport type IdsExtendedHorizontalPositionType = (typeof IdsExtendedHorizontalPosition)[keyof typeof IdsExtendedHorizontalPosition];\n\nexport const IdsVerticalPosition = {\n TOP: 'top',\n BOTTOM: 'bottom',\n} as const;\n\nexport type IdsVerticalPositionType = (typeof IdsVerticalPosition)[keyof typeof IdsVerticalPosition];\n\nexport const IdsExtendedVerticalPosition = {\n ...IdsVerticalPosition,\n CENTER: 'center',\n} as const;\n\nexport type IdsExtendedVerticalPositionType = (typeof IdsExtendedVerticalPosition)[keyof typeof IdsExtendedVerticalPosition];\n\nexport const IdsPosition = {\n ...IdsHorizontalPosition,\n ...IdsVerticalPosition,\n} as const;\n\nexport type IdsPositionType = (typeof IdsPosition)[keyof typeof IdsPosition];\n\nexport type IdsPositionPairType = [IdsHorizontalPositionType, IdsVerticalPositionType];\n\nexport const IdsExtendedPosition = {\n ...IdsExtendedHorizontalPosition,\n ...IdsExtendedVerticalPosition,\n} as const;\n\nexport type IdsExtendedPositionType = (typeof IdsExtendedPosition)[keyof typeof IdsExtendedPosition];\n\nexport type IdsExtendedPositionPairType = [IdsExtendedHorizontalPositionType, IdsExtendedVerticalPositionType];\n","export const IdsSizeCollection = {\n SMALL: 'small',\n BIG: 'big',\n} as const;\n\nexport type IdsSizeCollectionType = (typeof IdsSizeCollection)[keyof typeof IdsSizeCollection];\n","export const IdsSize = {\n DENSE: 'dense',\n COMPACT: 'compact',\n COMFORTABLE: 'comfortable',\n SPACIOUS: 'spacious',\n} as const;\n\nexport type IdsSizeType = (typeof IdsSize)[keyof typeof IdsSize];\n","import { AbstractType, Type } from '@angular/core';\n\nexport function isTypeDerivedFrom<T1, T2>(type: Type<T1> | AbstractType<T1>, ancestorType: Type<T2> | AbstractType<T2>): boolean {\n if (!type || !ancestorType) {\n return false;\n }\n\n const superType = Object.getPrototypeOf(type);\n\n return superType === ancestorType || isTypeDerivedFrom(superType, ancestorType);\n}\n","/** Converts a bound attribute's value to a boolean. */\nexport function coerceBooleanAttribute(value: unknown): boolean {\n return value != null && `${value}` !== 'false';\n}\n\n/** Converts a bound attribute's value to a number. */\nexport function coerceNumberAttribute(value: unknown, fallbackValue = NaN): number {\n const isNumberValue = !isNaN(Number(value));\n return isNumberValue ? Number(value) : fallbackValue;\n}\n\n/** Converts a bound attribute's value to a string and trim. */\nexport function coerceStringAttribute(value: unknown): string {\n return value ? String(value).trim() : '';\n}\n","export function isNumber(value: unknown): value is number {\n return typeof value === 'number' || value instanceof Number;\n}\n\nexport function isNumberEven(val: number): boolean {\n return val % 2 === 0;\n}\n\nexport function isNumberOdd(val: number): boolean {\n return val % 2 === 1;\n}\n\nexport function positiveModulus(num: number, divisor: number): number {\n return ((num % divisor) + divisor) % divisor;\n}\n","export function isString(value: unknown): value is string {\n return typeof value == 'string' || value instanceof String;\n}\n","/* eslint-disable no-magic-numbers */\n\nimport { isNumber, positiveModulus } from './number';\nimport { isString } from './string';\n\nconst ISO_8601_REGEXP = /^\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|(?:(?:\\+|-)\\d{2}:\\d{2}))?)?$/;\n\nconst weekLength = 7;\n\nfunction padDigits(num: number): string {\n return num > 9 ? String(num) : `0${num}`;\n}\n\nfunction dayOfWeekWithOffset(weekDay: Date, offset: number): number {\n return (weekLength + weekDay.getDay() - offset) % weekLength;\n}\n\nexport function isDate(value: unknown): value is Date {\n return value instanceof Date;\n}\n\nexport function isValidDate(value: unknown): value is Date {\n return isDate(value) && !isNaN(value.getTime());\n}\n\nexport function getValidDateOrNull(value: unknown): Date | null {\n return isValidDate(value) ? value : null;\n}\n\nexport function equalDates(date1: Date | null, date2: Date | null): boolean {\n // eslint-disable-next-line eqeqeq\n return date1 && date2 ? Object.is(+startOfDay(date1), +startOfDay(date2)) : date1 == date2;\n}\n\nexport function compareDates(date1: Date, date2: Date): number {\n return Math.sign(+date1 - +date2);\n}\n\nexport function clampDate(date: Date, min: Date | null, max: Date | null): Date;\nexport function clampDate(date: Date | null, min: Date | null, max: Date | null): Date | null {\n if (!isValidDate(date)) {\n return date;\n }\n\n const dateMillis = date.getTime();\n const minDate = isValidDate(min) ? min.getTime() : dateMillis;\n const maxDate = isValidDate(max) ? max.getTime() : dateMillis;\n\n return new Date(Math.max(minDate, Math.min(dateMillis, maxDate)));\n}\n\nexport function invalidDate(): Date {\n return new Date(NaN);\n}\n\nexport function cloneDate(date: Date): Date {\n return new Date(date);\n}\n\nexport function parseDate(value: string, utc = false): Date | null {\n if (!value) {\n return null;\n }\n if (ISO_8601_REGEXP.test(value)) {\n return new Date(utc ? value : `${value}T00:00:00`);\n }\n return invalidDate();\n}\n\nexport function deserializeDate(value: unknown): Date | null {\n // Numeric timestamp\n if (isNumber(value)) {\n return new Date(value);\n }\n\n // Empty value -> null\n if (!value) {\n return null;\n }\n\n // value is a Date instance, nothing to process\n if (isDate(value)) {\n return value;\n }\n\n if (isString(value)) {\n return parseDate(value);\n }\n\n return invalidDate();\n}\n\nexport function formatDate(date: Date): string {\n const year = date.getFullYear();\n const month = date.getMonth() + 1;\n const day = date.getDate();\n\n return `${year}-${padDigits(month)}-${padDigits(day)}`;\n}\n\nexport function formatUTCDate(date: Date): string {\n return date.toISOString().split('T')[0];\n}\n\nexport function addDays(date: Date, days: number): Date {\n const clonedDate = cloneDate(date);\n clonedDate.setDate(clonedDate.getDate() + days);\n return clonedDate;\n}\n\nexport function addMonths(date: Date, months: number): Date {\n const newDate = new Date();\n newDate.setFullYear(date.getFullYear(), date.getMonth() + months, date.getDate());\n newDate.setHours(0, 0, 0, 0);\n\n const newMonth = newDate.getMonth();\n const desiredMonth = positiveModulus(date.getMonth() + months, 12);\n\n if (newMonth !== desiredMonth) {\n newDate.setDate(0);\n }\n\n return newDate;\n}\n\nexport function addYears(date: Date, years: number): Date {\n return addMonths(date, years * 12);\n}\n\nexport function startOfDay(date: Date): Date {\n const clonedDate = cloneDate(date);\n clonedDate.setHours(0, 0, 0, 0);\n return clonedDate;\n}\n\nexport function endOfDay(date: Date): Date {\n const clonedDate = cloneDate(date);\n clonedDate.setHours(23, 59, 59, 999);\n return clonedDate;\n}\n\nexport function startOfWeek(weekDay: Date, offset: number): Date {\n return addDays(weekDay, -dayOfWeekWithOffset(weekDay, offset));\n}\n\nexport function endOfWeek(weekDay: Date, offset: number): Date {\n return addDays(weekDay, 6 - dayOfWeekWithOffset(weekDay, offset));\n}\n\nexport function startOfMonth(date: Date): Date {\n return new Date(date.getFullYear(), date.getMonth(), 1);\n}\n\nexport function endOfMonth(date: Date): Date {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0);\n}\n\nexport function startOfYear(date: Date): Date {\n return new Date(date.getFullYear(), 0, 1);\n}\n\nexport function endOfYear(date: Date): Date {\n return new Date(date.getFullYear(), 12, 0);\n}\n\nexport function getDatesBetween(startDate: Date, endDate: Date): Date[] {\n if (!isValidDate(startDate) || !isValidDate(endDate)) {\n return [];\n }\n\n let current = startOfDay(startDate);\n const end = startOfDay(endDate);\n const result = [];\n\n while (current <= end) {\n result.push(new Date(current));\n current = addDays(current, 1);\n }\n\n return result;\n}\n\nexport function createNormalizedDate(year: number, month: number, date: number): Date {\n const daysInMonth = new Date(year, month + 1, 0).getDate();\n return new Date(year, month, Math.min(date, daysInMonth));\n}\n","import { isValidDate } from './date';\n\nexport function compare(value1: unknown, value2: unknown): number {\n if (Number.isFinite(value1) && Number.isFinite(value2)) {\n return Math.sign((value1 as number) - (value2 as number));\n }\n\n if (isValidDate(value1) && isValidDate(value2)) {\n return compare(value1.valueOf(), value2.valueOf());\n }\n\n return String(value1).localeCompare(String(value2));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -67,10 +67,10 @@ class IdsDatepickerIntl {
67
67
  _formatDate(date, dateFormat) {
68
68
  return isValidDate(date) ? dateFormat.format(date) : null;
69
69
  }
70
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsDatepickerIntl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
71
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsDatepickerIntl, providedIn: 'root' }); }
70
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: IdsDatepickerIntl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
71
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: IdsDatepickerIntl, providedIn: 'root' }); }
72
72
  }
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsDatepickerIntl, decorators: [{
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: IdsDatepickerIntl, decorators: [{
74
74
  type: Injectable,
75
75
  args: [{ providedIn: 'root' }]
76
76
  }] });
@@ -79,20 +79,20 @@ class IdsDatepickerTriggerComponent {
79
79
  constructor() {
80
80
  this._parent = inject(IdsFormFieldComponent);
81
81
  this._intl = inject(IdsDatepickerIntl);
82
- this.datepicker = input.required(...(ngDevMode ? [{ debugName: "datepicker", alias: 'for' }] : [{ alias: 'for' }]));
83
- this.ariaLabel = input(null, ...(ngDevMode ? [{ debugName: "ariaLabel", alias: 'aria-label' }] : [{ alias: 'aria-label' }]));
84
- this.size = input('dense', ...(ngDevMode ? [{ debugName: "size" }] : []));
82
+ this.datepicker = input.required({ ...(ngDevMode ? { debugName: "datepicker" } : /* istanbul ignore next */ {}), alias: 'for' });
83
+ this.ariaLabel = input(null, { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
84
+ this.size = input('dense', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
85
85
  }
86
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsDatepickerTriggerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
87
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.7", type: IdsDatepickerTriggerComponent, isStandalone: true, selector: "ids-datepicker-trigger", inputs: { datepicker: { classPropertyName: "datepicker", publicName: "for", isSignal: true, isRequired: true, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<button\n type=\"button\"\n idsIconButton\n allowCustomContent\n aria-haspopup=\"true\"\n [size]=\"size()\"\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 <ng-content select=\"[slot='icon']\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"calendar-month-outline\" [attr.alt]=\"ariaLabel() || _intl.triggerButtonLabel\" />\n </ng-content>\n</button>\n", dependencies: [{ kind: "component", type: IdsIconComponent, selector: "ids-icon", inputs: ["size", "sizeCollection", "variant", "fontIcon", "svgIcon", "aria-hidden"] }, { kind: "component", type: IdsIconButtonComponent, selector: "button[idsIconButton], a[idsIconButton]", inputs: ["appearance", "size", "variant", "disabled", "allowCustomContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
86
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: IdsDatepickerTriggerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
87
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.5", type: IdsDatepickerTriggerComponent, isStandalone: true, selector: "ids-datepicker-trigger", inputs: { datepicker: { classPropertyName: "datepicker", publicName: "for", isSignal: true, isRequired: true, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<button\n type=\"button\"\n idsIconButton\n allowCustomContent\n aria-haspopup=\"true\"\n [size]=\"size()\"\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 <ng-content select=\"[slot='icon']\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"calendar-month-outline\" [attr.alt]=\"ariaLabel() || _intl.triggerButtonLabel\" />\n </ng-content>\n</button>\n", dependencies: [{ kind: "component", type: IdsIconComponent, selector: "ids-icon", inputs: ["size", "sizeCollection", "variant", "fontIcon", "svgIcon", "aria-hidden"] }, { kind: "component", type: IdsIconButtonComponent, selector: "button[idsIconButton], a[idsIconButton]", inputs: ["appearance", "size", "variant", "disabled", "allowCustomContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
88
88
  }
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsDatepickerTriggerComponent, decorators: [{
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: IdsDatepickerTriggerComponent, decorators: [{
90
90
  type: Component,
91
91
  args: [{ selector: 'ids-datepicker-trigger', imports: [
92
92
  IdsIconComponent,
93
93
  IdsIconButtonComponent,
94
94
  ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n type=\"button\"\n idsIconButton\n allowCustomContent\n aria-haspopup=\"true\"\n [size]=\"size()\"\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 <ng-content select=\"[slot='icon']\">\n <ids-icon aria-hidden=\"true\" fontIcon=\"calendar-month-outline\" [attr.alt]=\"ariaLabel() || _intl.triggerButtonLabel\" />\n </ng-content>\n</button>\n" }]
95
- }] });
95
+ }], propDecorators: { datepicker: [{ type: i0.Input, args: [{ isSignal: true, alias: "for", required: true }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] } });
96
96
 
97
97
  const IDS_DATEPICKER_DEFAULT_CONFIG = new InjectionToken('IDS_DATEPICKER_DEFAULT_CONFIG', {
98
98
  providedIn: 'root',
@@ -111,10 +111,10 @@ class IdsCalendarPage {
111
111
  this._injector = inject(Injector);
112
112
  this._cdRef = inject(ChangeDetectorRef);
113
113
  this._intl = inject(IdsDatepickerIntl);
114
- this.value = input(null, ...(ngDevMode ? [{ debugName: "value" }] : []));
115
- this.focusedDate = model.required(...(ngDevMode ? [{ debugName: "focusedDate" }] : []));
116
- this.min = input(null, ...(ngDevMode ? [{ debugName: "min" }] : []));
117
- this.max = input(null, ...(ngDevMode ? [{ debugName: "max" }] : []));
114
+ this.value = input(null, ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
115
+ this.focusedDate = model.required(...(ngDevMode ? [{ debugName: "focusedDate" }] : /* istanbul ignore next */ []));
116
+ this.min = input(null, ...(ngDevMode ? [{ debugName: "min" }] : /* istanbul ignore next */ []));
117
+ this.max = input(null, ...(ngDevMode ? [{ debugName: "max" }] : /* istanbul ignore next */ []));
118
118
  this.selected = output();
119
119
  this._today = new Date();
120
120
  toObservable(this.focusedDate).pipe(takeUntilDestroyed()).subscribe(() => this._moveFocusToCurrent());
@@ -131,26 +131,26 @@ class IdsCalendarPage {
131
131
  }
132
132
  }, { injector: this._injector });
133
133
  }
134
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsCalendarPage, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
135
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.7", type: IdsCalendarPage, isStandalone: true, inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, focusedDate: { classPropertyName: "focusedDate", publicName: "focusedDate", isSignal: true, isRequired: true, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { focusedDate: "focusedDateChange", selected: "selected" }, ngImport: i0 }); }
134
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: IdsCalendarPage, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
135
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.5", type: IdsCalendarPage, isStandalone: true, inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, focusedDate: { classPropertyName: "focusedDate", publicName: "focusedDate", isSignal: true, isRequired: true, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { focusedDate: "focusedDateChange", selected: "selected" }, ngImport: i0 }); }
136
136
  }
137
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsCalendarPage, decorators: [{
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: IdsCalendarPage, decorators: [{
138
138
  type: Directive
139
- }], ctorParameters: () => [] });
139
+ }], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], focusedDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusedDate", required: true }] }, { type: i0.Output, args: ["focusedDateChange"] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], selected: [{ type: i0.Output, args: ["selected"] }] } });
140
140
 
141
141
  const firstDayOfWeekOffset = 1;
142
142
  const daysPerWeek = 7;
143
143
  class IdsDaySelectorComponent extends IdsCalendarPage {
144
144
  constructor() {
145
145
  super(...arguments);
146
- this.headerLabel = computed(() => (this._intl.getDaySelectorHeaderLabel(this._currentMonth()) ?? ''), ...(ngDevMode ? [{ debugName: "headerLabel" }] : []));
147
- this._currentMonth = computed(() => startOfMonth(this.focusedDate()), ...(ngDevMode ? [{ debugName: "_currentMonth" }] : []));
148
- this._previousMonth = computed(() => addMonths(this._currentMonth(), -1), ...(ngDevMode ? [{ debugName: "_previousMonth" }] : []));
149
- this._nextMonth = computed(() => addMonths(this._currentMonth(), 1), ...(ngDevMode ? [{ debugName: "_nextMonth" }] : []));
150
- this._gridStartDate = computed(() => startOfWeek(this._currentMonth(), firstDayOfWeekOffset), ...(ngDevMode ? [{ debugName: "_gridStartDate" }] : []));
151
- this._gridEndDate = computed(() => endOfWeek(endOfMonth(this._currentMonth()), firstDayOfWeekOffset), ...(ngDevMode ? [{ debugName: "_gridEndDate" }] : []));
152
- this._days = computed(() => getDatesBetween(this._gridStartDate(), this._gridEndDate()), ...(ngDevMode ? [{ debugName: "_days" }] : []));
153
- this._weekdayLabels = computed(() => this._days().slice(0, daysPerWeek).map((date) => this._intl.getWeekdayHeaderLabel(date) ?? ''), ...(ngDevMode ? [{ debugName: "_weekdayLabels" }] : []));
146
+ this.headerLabel = computed(() => (this._intl.getDaySelectorHeaderLabel(this._currentMonth()) ?? ''), ...(ngDevMode ? [{ debugName: "headerLabel" }] : /* istanbul ignore next */ []));
147
+ this._currentMonth = computed(() => startOfMonth(this.focusedDate()), ...(ngDevMode ? [{ debugName: "_currentMonth" }] : /* istanbul ignore next */ []));
148
+ this._previousMonth = computed(() => addMonths(this._currentMonth(), -1), ...(ngDevMode ? [{ debugName: "_previousMonth" }] : /* istanbul ignore next */ []));
149
+ this._nextMonth = computed(() => addMonths(this._currentMonth(), 1), ...(ngDevMode ? [{ debugName: "_nextMonth" }] : /* istanbul ignore next */ []));
150
+ this._gridStartDate = computed(() => startOfWeek(this._currentMonth(), firstDayOfWeekOffset), ...(ngDevMode ? [{ debugName: "_gridStartDate" }] : /* istanbul ignore next */ []));
151
+ this._gridEndDate = computed(() => endOfWeek(endOfMonth(this._currentMonth()), firstDayOfWeekOffset), ...(ngDevMode ? [{ debugName: "_gridEndDate" }] : /* istanbul ignore next */ []));
152
+ this._days = computed(() => getDatesBetween(this._gridStartDate(), this._gridEndDate()), ...(ngDevMode ? [{ debugName: "_days" }] : /* istanbul ignore next */ []));
153
+ this._weekdayLabels = computed(() => this._days().slice(0, daysPerWeek).map((date) => this._intl.getWeekdayHeaderLabel(date) ?? ''), ...(ngDevMode ? [{ debugName: "_weekdayLabels" }] : /* istanbul ignore next */ []));
154
154
  }
155
155
  hasPreviousPage() {
156
156
  const dayOnPrevPage = addDays(this._gridStartDate(), -1);
@@ -225,15 +225,15 @@ class IdsDaySelectorComponent extends IdsCalendarPage {
225
225
  _hasShiftModifierKey(event) {
226
226
  return event.shiftKey && !event.ctrlKey && !event.altKey && !event.metaKey;
227
227
  }
228
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsDaySelectorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
229
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: IdsDaySelectorComponent, isStandalone: true, selector: "ids-day-selector", host: { listeners: { "keydown": "_handleKeydown($event)" }, classAttribute: "ids-day-selector" }, providers: [
228
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: IdsDaySelectorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
229
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: IdsDaySelectorComponent, isStandalone: true, selector: "ids-day-selector", host: { listeners: { "keydown": "_handleKeydown($event)" }, classAttribute: "ids-day-selector" }, providers: [
230
230
  {
231
231
  provide: IdsCalendarPage,
232
232
  useExisting: IdsDaySelectorComponent,
233
233
  },
234
234
  ], usesInheritance: true, ngImport: i0, template: "<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", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
235
235
  }
236
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsDaySelectorComponent, decorators: [{
236
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: IdsDaySelectorComponent, decorators: [{
237
237
  type: Component,
238
238
  args: [{ selector: 'ids-day-selector', imports: [], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
239
239
  {
@@ -251,14 +251,14 @@ const lastMonth = 11;
251
251
  class IdsMonthSelectorComponent extends IdsCalendarPage {
252
252
  constructor() {
253
253
  super(...arguments);
254
- this._focusedYear = computed(() => this.focusedDate().getFullYear(), ...(ngDevMode ? [{ debugName: "_focusedYear" }] : []));
254
+ this._focusedYear = computed(() => this.focusedDate().getFullYear(), ...(ngDevMode ? [{ debugName: "_focusedYear" }] : /* istanbul ignore next */ []));
255
255
  this._monthLabels = toSignal(this._intl.changes.pipe(startWith(null), map(() => {
256
256
  const currentYear = new Date().getFullYear();
257
257
  const monthLabels = Array.from({ length: 12 })
258
258
  .map((nil, month) => this._intl.getMonthLabel(createNormalizedDate(currentYear, month, 1)) ?? '');
259
259
  return monthLabels;
260
260
  })));
261
- this.headerLabel = computed(() => String(this._focusedYear()), ...(ngDevMode ? [{ debugName: "headerLabel" }] : []));
261
+ this.headerLabel = computed(() => String(this._focusedYear()), ...(ngDevMode ? [{ debugName: "headerLabel" }] : /* istanbul ignore next */ []));
262
262
  }
263
263
  hasPreviousPage() {
264
264
  const min = this.min();
@@ -342,15 +342,15 @@ class IdsMonthSelectorComponent extends IdsCalendarPage {
342
342
  }
343
343
  this.focusedDate.set(clampDate(focusedDate, this.min(), this.max()));
344
344
  }
345
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsMonthSelectorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
346
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: IdsMonthSelectorComponent, isStandalone: true, selector: "ids-month-selector", host: { listeners: { "keydown": "_handleKeydown($event)" }, classAttribute: "ids-month-selector" }, providers: [
345
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: IdsMonthSelectorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
346
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: IdsMonthSelectorComponent, isStandalone: true, selector: "ids-month-selector", host: { listeners: { "keydown": "_handleKeydown($event)" }, classAttribute: "ids-month-selector" }, providers: [
347
347
  {
348
348
  provide: IdsCalendarPage,
349
349
  useExisting: IdsMonthSelectorComponent,
350
350
  },
351
351
  ], usesInheritance: true, ngImport: i0, template: "<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", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
352
352
  }
353
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsMonthSelectorComponent, decorators: [{
353
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: IdsMonthSelectorComponent, decorators: [{
354
354
  type: Component,
355
355
  args: [{ selector: 'ids-month-selector', imports: [], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
356
356
  {
@@ -373,13 +373,13 @@ class IdsYearSelectorComponent extends IdsCalendarPage {
373
373
  const firstYearOffset = this._getFirstYearOffset(focusedYear, this.min()?.getFullYear(), this.max()?.getFullYear());
374
374
  const firstYearOnPage = focusedYear - firstYearOffset;
375
375
  return firstYearOnPage;
376
- }, ...(ngDevMode ? [{ debugName: "_firstYearOnPage" }] : []));
376
+ }, ...(ngDevMode ? [{ debugName: "_firstYearOnPage" }] : /* istanbul ignore next */ []));
377
377
  this._years = computed(() => {
378
378
  const firstYearOnPage = this._firstYearOnPage();
379
379
  const years = Array.from({ length: yearsPerPage }).map((_nil, index) => firstYearOnPage + index);
380
380
  return years;
381
- }, ...(ngDevMode ? [{ debugName: "_years" }] : []));
382
- this.headerLabel = computed(() => `${this._years()[0]} - ${this._years().at(-1)}`, ...(ngDevMode ? [{ debugName: "headerLabel" }] : []));
381
+ }, ...(ngDevMode ? [{ debugName: "_years" }] : /* istanbul ignore next */ []));
382
+ this.headerLabel = computed(() => `${this._years()[0]} - ${this._years().at(-1)}`, ...(ngDevMode ? [{ debugName: "headerLabel" }] : /* istanbul ignore next */ []));
383
383
  }
384
384
  hasPreviousPage() {
385
385
  const min = Number.isFinite(this.min()?.getFullYear()) ? this.min().getFullYear() : Number.POSITIVE_INFINITY;
@@ -458,15 +458,15 @@ class IdsYearSelectorComponent extends IdsCalendarPage {
458
458
  const minMaxOffset = maxYear - yearsPerPage + 1 || minYear || 0;
459
459
  return positiveModulus(focusedYear - minMaxOffset, yearsPerPage);
460
460
  }
461
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsYearSelectorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
462
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: IdsYearSelectorComponent, isStandalone: true, selector: "ids-year-selector", host: { listeners: { "keydown": "_handleKeydown($event)" }, classAttribute: "ids-year-selector" }, providers: [
461
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: IdsYearSelectorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
462
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: IdsYearSelectorComponent, isStandalone: true, selector: "ids-year-selector", host: { listeners: { "keydown": "_handleKeydown($event)" }, classAttribute: "ids-year-selector" }, providers: [
463
463
  {
464
464
  provide: IdsCalendarPage,
465
465
  useExisting: IdsYearSelectorComponent,
466
466
  },
467
467
  ], usesInheritance: true, ngImport: i0, template: "<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", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
468
468
  }
469
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsYearSelectorComponent, decorators: [{
469
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: IdsYearSelectorComponent, decorators: [{
470
470
  type: Component,
471
471
  args: [{ selector: 'ids-year-selector', imports: [], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
472
472
  {
@@ -485,19 +485,19 @@ class IdsCalendarComponent extends ComponentBaseWithDefaults {
485
485
  this._defaultConfig = {};
486
486
  this._cdRef = inject(ChangeDetectorRef);
487
487
  this._intl = inject(IdsDatepickerIntl);
488
- this.value = input(null, ...(ngDevMode ? [{ debugName: "value" }] : []));
489
- this.size = input.required(...(ngDevMode ? [{ debugName: "size" }] : []));
490
- this.view = input.required(...(ngDevMode ? [{ debugName: "view" }] : []));
491
- this.min = input(null, ...(ngDevMode ? [{ debugName: "min" }] : []));
492
- this.max = input(null, ...(ngDevMode ? [{ debugName: "max" }] : []));
488
+ this.value = input(null, ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
489
+ this.size = input.required(...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
490
+ this.view = input.required(...(ngDevMode ? [{ debugName: "view" }] : /* istanbul ignore next */ []));
491
+ this.min = input(null, ...(ngDevMode ? [{ debugName: "min" }] : /* istanbul ignore next */ []));
492
+ this.max = input(null, ...(ngDevMode ? [{ debugName: "max" }] : /* istanbul ignore next */ []));
493
493
  this.selected = output();
494
494
  this.monthSelected = output();
495
495
  this.yearSelected = output();
496
- this._calendarPage = viewChild(IdsCalendarPage, ...(ngDevMode ? [{ debugName: "_calendarPage" }] : []));
497
- this._view = linkedSignal(() => this.view());
498
- this._hostClasses = computed(() => this._getHostClasses([this.size()]), ...(ngDevMode ? [{ debugName: "_hostClasses" }] : []));
499
- this._headerButtonSize = computed(() => (this.size() === IdsSize.DENSE ? IdsSize.COMPACT : this.size()), ...(ngDevMode ? [{ debugName: "_headerButtonSize" }] : []));
500
- this._headerLabel = computed(() => this._calendarPage()?.headerLabel() ?? '', ...(ngDevMode ? [{ debugName: "_headerLabel" }] : []));
496
+ this._calendarPage = viewChild(IdsCalendarPage, ...(ngDevMode ? [{ debugName: "_calendarPage" }] : /* istanbul ignore next */ []));
497
+ this._view = linkedSignal(() => this.view(), ...(ngDevMode ? [{ debugName: "_view" }] : /* istanbul ignore next */ []));
498
+ this._hostClasses = computed(() => this._getHostClasses([this.size()]), ...(ngDevMode ? [{ debugName: "_hostClasses" }] : /* istanbul ignore next */ []));
499
+ this._headerButtonSize = computed(() => (this.size() === IdsSize.DENSE ? IdsSize.COMPACT : this.size()), ...(ngDevMode ? [{ debugName: "_headerButtonSize" }] : /* istanbul ignore next */ []));
500
+ this._headerLabel = computed(() => this._calendarPage()?.headerLabel() ?? '', ...(ngDevMode ? [{ debugName: "_headerLabel" }] : /* istanbul ignore next */ []));
501
501
  this._prevPageLabel = computed(() => {
502
502
  switch (this._view()) {
503
503
  case IdsDatepickerView.DAY:
@@ -507,7 +507,7 @@ class IdsCalendarComponent extends ComponentBaseWithDefaults {
507
507
  case IdsDatepickerView.YEAR:
508
508
  return this._intl.prevYearsPageLabel;
509
509
  }
510
- }, ...(ngDevMode ? [{ debugName: "_prevPageLabel" }] : []));
510
+ }, ...(ngDevMode ? [{ debugName: "_prevPageLabel" }] : /* istanbul ignore next */ []));
511
511
  this._nextPageLabel = computed(() => {
512
512
  switch (this._view()) {
513
513
  case IdsDatepickerView.DAY:
@@ -517,8 +517,8 @@ class IdsCalendarComponent extends ComponentBaseWithDefaults {
517
517
  case IdsDatepickerView.YEAR:
518
518
  return this._intl.nextYearsPageLabel;
519
519
  }
520
- }, ...(ngDevMode ? [{ debugName: "_nextPageLabel" }] : []));
521
- this._switchViewLabel = computed(() => (this._view() === IdsDatepickerView.DAY ? this._intl.switchToYearSelectorLabel : this._intl.switchToDaySelectorLabel), ...(ngDevMode ? [{ debugName: "_switchViewLabel" }] : []));
520
+ }, ...(ngDevMode ? [{ debugName: "_nextPageLabel" }] : /* istanbul ignore next */ []));
521
+ this._switchViewLabel = computed(() => (this._view() === IdsDatepickerView.DAY ? this._intl.switchToYearSelectorLabel : this._intl.switchToDaySelectorLabel), ...(ngDevMode ? [{ debugName: "_switchViewLabel" }] : /* istanbul ignore next */ []));
522
522
  this._focusedDate = new Date();
523
523
  }
524
524
  get _hostName() {
@@ -569,10 +569,10 @@ class IdsCalendarComponent extends ComponentBaseWithDefaults {
569
569
  this._focusedDate = clampDate(safeValue, this.min(), this.max());
570
570
  this._cdRef.markForCheck();
571
571
  }
572
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsCalendarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
573
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: IdsCalendarComponent, isStandalone: true, selector: "ids-calendar", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: true, transformFunction: null }, view: { classPropertyName: "view", publicName: "view", isSignal: true, isRequired: true, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected", monthSelected: "monthSelected", yearSelected: "yearSelected" }, host: { classAttribute: "ids-calendar-surface" }, viewQueries: [{ propertyName: "_calendarPage", first: true, predicate: IdsCalendarPage, descendants: true, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: i1.CdkTrapFocus }], ngImport: i0, template: "<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", dependencies: [{ kind: "component", type: IdsButtonComponent, selector: "button[idsButton], a[idsButton]", inputs: ["appearance", "size", "variant", "disabled"] }, { kind: "component", type: IdsIconComponent, selector: "ids-icon", inputs: ["size", "sizeCollection", "variant", "fontIcon", "svgIcon", "aria-hidden"] }, { kind: "component", type: IdsIconButtonComponent, selector: "button[idsIconButton], a[idsIconButton]", inputs: ["appearance", "size", "variant", "disabled", "allowCustomContent"] }, { kind: "component", type: IdsDaySelectorComponent, selector: "ids-day-selector" }, { kind: "component", type: IdsMonthSelectorComponent, selector: "ids-month-selector" }, { kind: "component", type: IdsYearSelectorComponent, selector: "ids-year-selector" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
572
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: IdsCalendarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
573
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: IdsCalendarComponent, isStandalone: true, selector: "ids-calendar", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: true, transformFunction: null }, view: { classPropertyName: "view", publicName: "view", isSignal: true, isRequired: true, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected", monthSelected: "monthSelected", yearSelected: "yearSelected" }, host: { classAttribute: "ids-calendar-surface" }, viewQueries: [{ propertyName: "_calendarPage", first: true, predicate: IdsCalendarPage, descendants: true, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: i1.CdkTrapFocus }], ngImport: i0, template: "<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", dependencies: [{ kind: "component", type: IdsButtonComponent, selector: "button[idsButton], a[idsButton]", inputs: ["appearance", "size", "variant", "disabled"] }, { kind: "component", type: IdsIconComponent, selector: "ids-icon", inputs: ["size", "sizeCollection", "variant", "fontIcon", "svgIcon", "aria-hidden"] }, { kind: "component", type: IdsIconButtonComponent, selector: "button[idsIconButton], a[idsIconButton]", inputs: ["appearance", "size", "variant", "disabled", "allowCustomContent"] }, { kind: "component", type: IdsDaySelectorComponent, selector: "ids-day-selector" }, { kind: "component", type: IdsMonthSelectorComponent, selector: "ids-month-selector" }, { kind: "component", type: IdsYearSelectorComponent, selector: "ids-year-selector" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
574
574
  }
575
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsCalendarComponent, decorators: [{
575
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: IdsCalendarComponent, decorators: [{
576
576
  type: Component,
577
577
  args: [{ selector: 'ids-calendar', imports: [
578
578
  IdsButtonComponent,
@@ -584,7 +584,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
584
584
  ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [CdkTrapFocus], host: {
585
585
  'class': 'ids-calendar-surface',
586
586
  }, template: "<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" }]
587
- }] });
587
+ }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: true }] }], view: [{ type: i0.Input, args: [{ isSignal: true, alias: "view", required: true }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], selected: [{ type: i0.Output, args: ["selected"] }], monthSelected: [{ type: i0.Output, args: ["monthSelected"] }], yearSelected: [{ type: i0.Output, args: ["yearSelected"] }], _calendarPage: [{ type: i0.ViewChild, args: [i0.forwardRef(() => IdsCalendarPage), { isSignal: true }] }] } });
588
588
 
589
589
  const datepickerConnectedPositions = [
590
590
  {
@@ -620,17 +620,17 @@ class IdsDatepickerDirective extends DirectiveBaseWithDefaults {
620
620
  constructor() {
621
621
  super(...arguments);
622
622
  this._defaultConfig = this._getDefaultConfig(defaultConfig, IDS_DATEPICKER_DEFAULT_CONFIG);
623
- this._hostClasses = signal('', ...(ngDevMode ? [{ debugName: "_hostClasses" }] : []));
623
+ this._hostClasses = signal('', ...(ngDevMode ? [{ debugName: "_hostClasses" }] : /* istanbul ignore next */ []));
624
624
  this._viewContainerRef = inject(ViewContainerRef);
625
625
  this._elementRef = inject(ElementRef);
626
626
  this._parent = inject(IdsFormFieldComponent);
627
627
  this._overlay = inject(Overlay);
628
628
  this._injector = inject(Injector);
629
- this.formatter = input(inject(IDS_DATE_FORMATTER), ...(ngDevMode ? [{ debugName: "formatter" }] : []));
630
- this.parser = input(inject(IDS_DATE_PARSER), ...(ngDevMode ? [{ debugName: "parser" }] : []));
631
- this.view = input(this._defaultConfig.view, ...(ngDevMode ? [{ debugName: "view" }] : []));
632
- this.minDate = input(null, ...(ngDevMode ? [{ debugName: "minDate", transform: (value) => getValidDateOrNull(deserializeDate(value)) }] : [{ transform: (value) => getValidDateOrNull(deserializeDate(value)) }]));
633
- this.maxDate = input(null, ...(ngDevMode ? [{ debugName: "maxDate", transform: (value) => getValidDateOrNull(deserializeDate(value)) }] : [{ transform: (value) => getValidDateOrNull(deserializeDate(value)) }]));
629
+ this.formatter = input(inject(IDS_DATE_FORMATTER), ...(ngDevMode ? [{ debugName: "formatter" }] : /* istanbul ignore next */ []));
630
+ this.parser = input(inject(IDS_DATE_PARSER), ...(ngDevMode ? [{ debugName: "parser" }] : /* istanbul ignore next */ []));
631
+ this.view = input(this._defaultConfig.view, ...(ngDevMode ? [{ debugName: "view" }] : /* istanbul ignore next */ []));
632
+ this.minDate = input(null, { ...(ngDevMode ? { debugName: "minDate" } : /* istanbul ignore next */ {}), transform: (value) => getValidDateOrNull(deserializeDate(value)) });
633
+ this.maxDate = input(null, { ...(ngDevMode ? { debugName: "maxDate" } : /* istanbul ignore next */ {}), transform: (value) => getValidDateOrNull(deserializeDate(value)) });
634
634
  this._inputChanges = effect(() => {
635
635
  const min = this.minDate();
636
636
  const max = this.maxDate();
@@ -652,9 +652,9 @@ class IdsDatepickerDirective extends DirectiveBaseWithDefaults {
652
652
  if (size !== calendar.size()) {
653
653
  this._componentRef?.setInput('size', size);
654
654
  }
655
- }, ...(ngDevMode ? [{ debugName: "_inputChanges" }] : []));
656
- this.openedInput = input(false, ...(ngDevMode ? [{ debugName: "openedInput", transform: booleanAttribute, alias: 'opened' }] : [{ transform: booleanAttribute, alias: 'opened' }]));
657
- this._opened = signal(this.openedInput() ?? false, ...(ngDevMode ? [{ debugName: "_opened" }] : []));
655
+ }, ...(ngDevMode ? [{ debugName: "_inputChanges" }] : /* istanbul ignore next */ []));
656
+ this.openedInput = input(false, { ...(ngDevMode ? { debugName: "openedInput" } : /* istanbul ignore next */ {}), transform: booleanAttribute, alias: 'opened' });
657
+ this._opened = signal(this.openedInput() ?? false, ...(ngDevMode ? [{ debugName: "_opened" }] : /* istanbul ignore next */ []));
658
658
  this.opened = this._opened.asReadonly();
659
659
  this.monthSelected = output();
660
660
  this.yearSelected = output();
@@ -665,7 +665,7 @@ class IdsDatepickerDirective extends DirectiveBaseWithDefaults {
665
665
  this._componentRef = null;
666
666
  this._scrollStrategy = this._overlay.scrollStrategies.reposition();
667
667
  this._overlayCloseSub = Subscription.EMPTY;
668
- this._isValid = signal(false, ...(ngDevMode ? [{ debugName: "_isValid" }] : []));
668
+ this._isValid = signal(false, ...(ngDevMode ? [{ debugName: "_isValid" }] : /* istanbul ignore next */ []));
669
669
  this._dateFormatValidator = () => (this._isValid() ? null : { idsDateFormat: true });
670
670
  this._minValidator = () => {
671
671
  const current = getValidDateOrNull(deserializeDate(this.value));
@@ -753,8 +753,8 @@ class IdsDatepickerDirective extends DirectiveBaseWithDefaults {
753
753
  this._opened.set(false);
754
754
  afterNextRender(() => this._elementRef.nativeElement.focus(), { injector: this._injector });
755
755
  }
756
- _handleInput(value) {
757
- const parsed = this.parser()(value);
756
+ _handleInput(event) {
757
+ const parsed = this.parser()(event.target.value);
758
758
  this._isValid.set(this._isValidValue(parsed));
759
759
  const date = getValidDateOrNull(parsed);
760
760
  const valueChanged = !equalDates(date, this.value);
@@ -815,8 +815,8 @@ class IdsDatepickerDirective extends DirectiveBaseWithDefaults {
815
815
  'PageDown',
816
816
  ].includes(event.code)));
817
817
  }
818
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsDatepickerDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
819
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.7", type: IdsDatepickerDirective, isStandalone: true, selector: "input[idsDatepicker]", inputs: { formatter: { classPropertyName: "formatter", publicName: "formatter", isSignal: true, isRequired: false, transformFunction: null }, parser: { classPropertyName: "parser", publicName: "parser", isSignal: true, isRequired: false, transformFunction: null }, view: { classPropertyName: "view", publicName: "view", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, openedInput: { classPropertyName: "openedInput", publicName: "opened", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { monthSelected: "monthSelected", yearSelected: "yearSelected" }, host: { listeners: { "input": "_handleInput($event.target.value)", "blur": "_handleBlur()", "keydown": "_handleKeydown($event)" } }, providers: [
818
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: IdsDatepickerDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
819
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.5", type: IdsDatepickerDirective, isStandalone: true, selector: "input[idsDatepicker]", inputs: { formatter: { classPropertyName: "formatter", publicName: "formatter", isSignal: true, isRequired: false, transformFunction: null }, parser: { classPropertyName: "parser", publicName: "parser", isSignal: true, isRequired: false, transformFunction: null }, view: { classPropertyName: "view", publicName: "view", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, openedInput: { classPropertyName: "openedInput", publicName: "opened", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { monthSelected: "monthSelected", yearSelected: "yearSelected" }, host: { listeners: { "input": "_handleInput($event)", "blur": "_handleBlur()", "keydown": "_handleKeydown($event)" } }, providers: [
820
820
  {
821
821
  provide: NG_VALUE_ACCESSOR,
822
822
  useExisting: forwardRef(() => IdsDatepickerDirective),
@@ -829,7 +829,7 @@ class IdsDatepickerDirective extends DirectiveBaseWithDefaults {
829
829
  },
830
830
  ], exportAs: ["idsDatepicker"], usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
831
831
  }
832
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsDatepickerDirective, decorators: [{
832
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: IdsDatepickerDirective, decorators: [{
833
833
  type: Directive,
834
834
  args: [{
835
835
  selector: 'input[idsDatepicker]',
@@ -846,13 +846,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
846
846
  },
847
847
  ],
848
848
  host: {
849
- '(input)': '_handleInput($event.target.value)',
849
+ '(input)': '_handleInput($event)',
850
850
  '(blur)': '_handleBlur()',
851
851
  '(keydown)': '_handleKeydown($event)',
852
852
  },
853
853
  exportAs: 'idsDatepicker',
854
854
  }]
855
- }] });
855
+ }], propDecorators: { formatter: [{ type: i0.Input, args: [{ isSignal: true, alias: "formatter", required: false }] }], parser: [{ type: i0.Input, args: [{ isSignal: true, alias: "parser", required: false }] }], view: [{ type: i0.Input, args: [{ isSignal: true, alias: "view", required: false }] }], minDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "minDate", required: false }] }], maxDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxDate", required: false }] }], openedInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "opened", required: false }] }], monthSelected: [{ type: i0.Output, args: ["monthSelected"] }], yearSelected: [{ type: i0.Output, args: ["yearSelected"] }] } });
856
856
 
857
857
  /**
858
858
  * Generated bundle index. Do not edit.