@i-cell/ids-angular 0.2.23 → 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.
- package/fesm2022/i-cell-ids-angular-accordion.mjs +32 -32
- package/fesm2022/i-cell-ids-angular-accordion.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-avatar.mjs +18 -18
- package/fesm2022/i-cell-ids-angular-avatar.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-badge.mjs +27 -27
- package/fesm2022/i-cell-ids-angular-badge.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-breadcrumb.mjs +45 -45
- package/fesm2022/i-cell-ids-angular-breadcrumb.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-button.mjs +19 -19
- package/fesm2022/i-cell-ids-angular-button.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-card.mjs +38 -41
- package/fesm2022/i-cell-ids-angular-card.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-checkbox.mjs +45 -45
- package/fesm2022/i-cell-ids-angular-checkbox.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-chip.mjs +28 -28
- package/fesm2022/i-cell-ids-angular-chip.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-core.mjs +18 -20
- package/fesm2022/i-cell-ids-angular-core.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-datepicker.mjs +74 -74
- package/fesm2022/i-cell-ids-angular-datepicker.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-dialog.mjs +23 -23
- package/fesm2022/i-cell-ids-angular-dialog.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-divider.mjs +12 -12
- package/fesm2022/i-cell-ids-angular-divider.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-forms.mjs +1054 -830
- package/fesm2022/i-cell-ids-angular-forms.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-icon-button.mjs +15 -15
- package/fesm2022/i-cell-ids-angular-icon-button.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-icon.mjs +15 -15
- package/fesm2022/i-cell-ids-angular-icon.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-menu.mjs +18 -18
- package/fesm2022/i-cell-ids-angular-menu.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-notification.mjs +26 -26
- package/fesm2022/i-cell-ids-angular-notification.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-overlay-panel.mjs +18 -18
- package/fesm2022/i-cell-ids-angular-overlay-panel.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-paginator.mjs +34 -34
- package/fesm2022/i-cell-ids-angular-paginator.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-radio.mjs +32 -32
- package/fesm2022/i-cell-ids-angular-radio.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-segmented-control-toggle.mjs +34 -34
- package/fesm2022/i-cell-ids-angular-segmented-control-toggle.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-segmented-control.mjs +34 -34
- package/fesm2022/i-cell-ids-angular-segmented-control.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-select.mjs +29 -29
- package/fesm2022/i-cell-ids-angular-select.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-side-nav.mjs +41 -41
- package/fesm2022/i-cell-ids-angular-side-nav.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-side-sheet.mjs +29 -29
- package/fesm2022/i-cell-ids-angular-side-sheet.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-snackbar.mjs +30 -30
- package/fesm2022/i-cell-ids-angular-snackbar.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-spinner.mjs +10 -10
- package/fesm2022/i-cell-ids-angular-spinner.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-switch.mjs +36 -36
- package/fesm2022/i-cell-ids-angular-switch.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-tab.mjs +140 -30
- package/fesm2022/i-cell-ids-angular-tab.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-table.mjs +94 -94
- package/fesm2022/i-cell-ids-angular-table.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-tag.mjs +20 -20
- package/fesm2022/i-cell-ids-angular-tag.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-tooltip.mjs +32 -32
- package/fesm2022/i-cell-ids-angular-tooltip.mjs.map +1 -1
- package/package.json +60 -60
- package/{accordion/index.d.ts → types/i-cell-ids-angular-accordion.d.ts} +1 -1
- package/{avatar/index.d.ts → types/i-cell-ids-angular-avatar.d.ts} +1 -1
- package/{button/index.d.ts → types/i-cell-ids-angular-button.d.ts} +1 -1
- package/{card/index.d.ts → types/i-cell-ids-angular-card.d.ts} +2 -2
- package/{chip/index.d.ts → types/i-cell-ids-angular-chip.d.ts} +5 -5
- package/{core/index.d.ts → types/i-cell-ids-angular-core.d.ts} +2 -2
- package/{datepicker/index.d.ts → types/i-cell-ids-angular-datepicker.d.ts} +1 -1
- package/{divider/index.d.ts → types/i-cell-ids-angular-divider.d.ts} +2 -2
- package/{forms/index.d.ts → types/i-cell-ids-angular-forms.d.ts} +116 -96
- package/{icon-button/index.d.ts → types/i-cell-ids-angular-icon-button.d.ts} +2 -2
- package/{icon/index.d.ts → types/i-cell-ids-angular-icon.d.ts} +1 -1
- package/{menu/index.d.ts → types/i-cell-ids-angular-menu.d.ts} +1 -1
- package/{notification/index.d.ts → types/i-cell-ids-angular-notification.d.ts} +1 -1
- package/{paginator/index.d.ts → types/i-cell-ids-angular-paginator.d.ts} +1 -1
- package/{radio/index.d.ts → types/i-cell-ids-angular-radio.d.ts} +1 -1
- package/{segmented-control-toggle/index.d.ts → types/i-cell-ids-angular-segmented-control-toggle.d.ts} +1 -1
- package/{segmented-control/index.d.ts → types/i-cell-ids-angular-segmented-control.d.ts} +1 -1
- package/{snackbar/index.d.ts → types/i-cell-ids-angular-snackbar.d.ts} +3 -3
- package/{tab/index.d.ts → types/i-cell-ids-angular-tab.d.ts} +16 -3
- package/{tag/index.d.ts → types/i-cell-ids-angular-tag.d.ts} +1 -1
- /package/{badge/index.d.ts → types/i-cell-ids-angular-badge.d.ts} +0 -0
- /package/{breadcrumb/index.d.ts → types/i-cell-ids-angular-breadcrumb.d.ts} +0 -0
- /package/{checkbox/index.d.ts → types/i-cell-ids-angular-checkbox.d.ts} +0 -0
- /package/{dialog/index.d.ts → types/i-cell-ids-angular-dialog.d.ts} +0 -0
- /package/{overlay-panel/index.d.ts → types/i-cell-ids-angular-overlay-panel.d.ts} +0 -0
- /package/{select/index.d.ts → types/i-cell-ids-angular-select.d.ts} +0 -0
- /package/{side-nav/index.d.ts → types/i-cell-ids-angular-side-nav.d.ts} +0 -0
- /package/{side-sheet/index.d.ts → types/i-cell-ids-angular-side-sheet.d.ts} +0 -0
- /package/{spinner/index.d.ts → types/i-cell-ids-angular-spinner.d.ts} +0 -0
- /package/{switch/index.d.ts → types/i-cell-ids-angular-switch.d.ts} +0 -0
- /package/{table/index.d.ts → types/i-cell-ids-angular-table.d.ts} +0 -0
- /package/{tooltip/index.d.ts → types/i-cell-ids-angular-tooltip.d.ts} +0 -0
- /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: "
|
|
71
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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 ?
|
|
83
|
-
this.ariaLabel = input(null, ...(ngDevMode ?
|
|
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: "
|
|
87
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
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: "
|
|
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: "
|
|
135
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
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: "
|
|
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: "
|
|
229
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
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: "
|
|
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: "
|
|
346
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
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: "
|
|
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: "
|
|
462
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
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: "
|
|
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: "
|
|
573
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
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: "
|
|
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 ?
|
|
633
|
-
this.maxDate = input(null, ...(ngDevMode ?
|
|
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 ?
|
|
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(
|
|
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: "
|
|
819
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
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: "
|
|
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
|
|
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.
|