@wkly/datetime-picker 15.0.0 → 16.0.0

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.
@@ -1 +0,0 @@
1
- {"version":3,"file":"wkly-datetime-picker.mjs","sources":["../../../projects/wkly-datetime-picker.15/src/config.ts","../../../projects/wkly-datetime-picker.15/src/field.component.ts","../../../projects/wkly-datetime-picker.15/src/field.component.html","../../../projects/wkly-datetime-picker.15/src/picker.component.ts","../../../projects/wkly-datetime-picker.15/src/picker.component.html","../../../projects/wkly-datetime-picker.15/src/presentation.ts","../../../projects/wkly-datetime-picker.15/src/public-api.ts","../../../projects/wkly-datetime-picker.15/src/wkly-datetime-picker.ts"],"sourcesContent":["import {\n Directive,\n EventEmitter,\n InjectionToken,\n Input,\n Output,\n} from \"@angular/core\";\nimport { WklyWeekOffset } from \"@wkly/core\";\nimport {\n WklyCalendarAdapter,\n WklyDisabledDatePredicate,\n WklyDisabledTimePredicate,\n WklyHourCycle,\n WklyPickerValue,\n WklyRangeValidator,\n WklySelectionMode,\n WklyValidationError,\n WklyViewportPreset,\n WklyWeekLabelFormatter,\n WklyWeekLabelMode,\n} from \"@wkly/adapters\";\nimport {\n DEFAULT_OVERSCAN_WEEKS,\n WklyClock,\n WklyConfiguration,\n WklyCloseReason,\n WklyPickerInputs as WklyPickerInputsContract,\n WklyPickerOutputs as WklyPickerOutputsContract,\n WklyStrings,\n WklyTranslations,\n WklyViewportChange,\n WklyPickerInputsPropertyKeys,\n WklyPickerOutputsPropertyKeys,\n} from \"@wkly/presentation\";\nexport * from \"@wkly/presentation\";\nexport const WKLY_CLOCK = new InjectionToken<WklyClock>(\"WKLY_CLOCK\", {\n providedIn: \"root\",\n factory: () => ({ now: () => new Date() }),\n});\nexport const WKLY_CONFIG = new InjectionToken<WklyConfiguration>(\n \"WKLY_CONFIG\",\n { providedIn: \"root\", factory: () => ({}) },\n);\nexport const WKLY_LOCALIZATION = new InjectionToken<WklyStrings>(\n \"WKLY_LOCALIZATION\",\n { providedIn: \"root\", factory: () => ({}) },\n);\nexport const WKLY_TRANSLATIONS = new InjectionToken<WklyTranslations>(\n \"WKLY_TRANSLATIONS\",\n { providedIn: \"root\", factory: () => ({}) },\n);\n/** Shared public inputs/outputs inherited by the picker and both trigger directives. */\n// Inherited inputs need literal names in published decorator metadata.\n@Directive({\n inputs: [\n \"mode\",\n \"value\",\n \"calendarAdapter\",\n \"locale\",\n \"weekOffset\",\n \"viewportPreset\",\n \"hourCycle\",\n \"showSeconds\",\n \"minuteStep\",\n \"secondStep\",\n \"min\",\n \"max\",\n \"isDateDisabled\",\n \"isTimeDisabled\",\n \"rangeValidator\",\n \"allowRangeAcrossDisabled\",\n \"required\",\n \"disabled\",\n \"weekLabelMode\",\n \"weekLabelFormatter\",\n \"weekCacheSize\",\n \"overscanWeeks\",\n \"ariaLabel\",\n \"ariaDescribedBy\",\n \"initialEpochDay\",\n \"closeOnBackdrop\",\n \"validators\",\n \"translations\",\n ],\n outputs: [\n \"valueChange\",\n \"validationChange\",\n \"opened\",\n \"closed\",\n \"viewportChange\",\n \"viewModeChange\",\n ],\n})\nexport abstract class WklyPickerInputs\n implements WklyPickerInputsContract, WklyPickerOutputsContract\n{\n @Input() [WklyPickerInputsPropertyKeys.Mode]: WklySelectionMode = \"datetime\";\n @Input() [WklyPickerInputsPropertyKeys.Value]: WklyPickerValue = null;\n @Input() [WklyPickerInputsPropertyKeys.CalendarAdapter]!: WklyCalendarAdapter;\n @Input() [WklyPickerInputsPropertyKeys.Locale]: string = \"\";\n @Input() [WklyPickerInputsPropertyKeys.WeekOffset]: WklyWeekOffset | null =\n null;\n @Input() [WklyPickerInputsPropertyKeys.ViewportPreset]: WklyViewportPreset = {\n kind: \"full-month\",\n };\n @Input() [WklyPickerInputsPropertyKeys.HourCycle]: WklyHourCycle = \"locale\";\n @Input() [WklyPickerInputsPropertyKeys.ShowSeconds]: boolean = false;\n @Input() [WklyPickerInputsPropertyKeys.MinuteStep]: number = 1;\n @Input() [WklyPickerInputsPropertyKeys.SecondStep]: number = 1;\n @Input() [WklyPickerInputsPropertyKeys.Min]: string | null = null;\n @Input() [WklyPickerInputsPropertyKeys.Max]: string | null = null;\n @Input()\n [WklyPickerInputsPropertyKeys.IsDateDisabled]: WklyDisabledDatePredicate | null =\n null;\n @Input()\n [WklyPickerInputsPropertyKeys.IsTimeDisabled]: WklyDisabledTimePredicate | null =\n null;\n @Input()\n [WklyPickerInputsPropertyKeys.RangeValidator]: WklyRangeValidator | null =\n null;\n @Input() [WklyPickerInputsPropertyKeys.AllowRangeAcrossDisabled] = false;\n @Input() [WklyPickerInputsPropertyKeys.Required] = false;\n @Input() [WklyPickerInputsPropertyKeys.Disabled] = false;\n @Input() [WklyPickerInputsPropertyKeys.WeekLabelMode]: WklyWeekLabelMode =\n \"locale\";\n @Input()\n [WklyPickerInputsPropertyKeys.WeekLabelFormatter]: WklyWeekLabelFormatter | null =\n null;\n @Input() [WklyPickerInputsPropertyKeys.WeekCacheSize] = 256;\n @Input() [WklyPickerInputsPropertyKeys.OverscanWeeks] =\n DEFAULT_OVERSCAN_WEEKS;\n @Input() [WklyPickerInputsPropertyKeys.AriaLabel]: string | null = null;\n @Input() [WklyPickerInputsPropertyKeys.AriaDescribedBy]: string | null = null;\n @Input() [WklyPickerInputsPropertyKeys.InitialEpochDay]: number | null = null;\n @Input() [WklyPickerInputsPropertyKeys.CloseOnBackdrop] = true;\n @Input() [WklyPickerInputsPropertyKeys.Validators]: readonly ((\n value: WklyPickerValue,\n ) => WklyValidationError | null)[] = [];\n @Input()\n [WklyPickerInputsPropertyKeys.Translations]: WklyTranslations | null = null;\n @Output() [WklyPickerOutputsPropertyKeys.ValueChange] =\n new EventEmitter<WklyPickerValue>();\n @Output() [WklyPickerOutputsPropertyKeys.ValidationChange] = new EventEmitter<\n readonly WklyValidationError[]\n >(true);\n @Output() [WklyPickerOutputsPropertyKeys.Opened] = new EventEmitter<void>();\n @Output() [WklyPickerOutputsPropertyKeys.Closed] =\n new EventEmitter<WklyCloseReason>();\n @Output() [WklyPickerOutputsPropertyKeys.ViewportChange] =\n new EventEmitter<WklyViewportChange>(true);\n @Output() [WklyPickerOutputsPropertyKeys.ViewModeChange] = new EventEmitter<\n \"calendar\" | \"manual\"\n >();\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n} from \"@angular/core\";\nimport { floorMod } from \"@wkly/core\";\nimport { normalizeDigits } from \"@wkly/adapters\";\n@Component({\n selector: \"wkly-field\",\n templateUrl: \"./field.component.html\",\n styleUrls: [\"./field.component.css\"],\n})\nexport class WklyFieldComponent implements OnChanges, OnDestroy {\n @Input() value: number | null = 0;\n @Input() label = \"\";\n @Input() hideLabel = false;\n @Input() previousLabel = \"\";\n @Input() nextLabel = \"\";\n @Input() min = 0;\n @Input() max = 59;\n @Input() step = 1;\n @Input() locale = \"en-US\";\n @Input() disabled = false;\n @Input() invalid = false;\n @Input() labels: readonly string[] | null = null;\n @Output() valueChange = new EventEmitter<number | null>();\n @Output() complete = new EventEmitter<void>();\n private before: number | null = null;\n private touchY = 0;\n private touchSteps = 0;\n private touchChanged = false;\n private typed: string | null = null;\n private inputTimer: ReturnType<typeof setTimeout> | null = null;\n private wheelTimer: ReturnType<typeof setTimeout> | null = null;\n get display(): string {\n if (this.typed !== null) return this.typed;\n return this.value === null\n ? \"\"\n : this.labels\n ? this.labels[this.value - this.min] || String(this.value)\n : new Intl.NumberFormat(this.locale, {\n useGrouping: false,\n minimumIntegerDigits: this.max < 60 ? 2 : 1,\n }).format(this.value);\n }\n ngOnChanges(changes: any): void {\n if (changes.value && this.min < 0 && this.typed !== null) {\n const typedValue =\n this.typed === \"\" || this.typed === \"-\" ? null : Number(this.typed);\n if (this.value !== typedValue) {\n // External date edits replace a pending relative-day preview.\n this.cancelInput();\n this.typed = null;\n }\n }\n }\n ngOnDestroy(): void {\n this.cancelInput();\n if (this.wheelTimer !== null) clearTimeout(this.wheelTimer);\n }\n next(delta: number): number {\n const count = Math.floor((this.max - this.min) / this.step) + 1;\n return (\n this.min +\n floorMod(\n Math.floor(\n ((this.value === null ? this.min : this.value) - this.min) /\n this.step,\n ) + delta,\n count,\n ) *\n this.step\n );\n }\n neighbor(delta: number): string {\n const n = this.next(delta);\n return this.labels\n ? this.labels[n - this.min] || \"\"\n : new Intl.NumberFormat(this.locale, { useGrouping: false }).format(n);\n }\n stepBy(delta: number): void {\n if (this.disabled) return;\n this.scrollBy(delta);\n this.complete.emit();\n }\n begin(event: FocusEvent): void {\n this.before = this.value;\n (event.target as HTMLInputElement).select();\n }\n type(event: Event): void {\n if (this.disabled) return;\n const input = event.target as HTMLInputElement;\n const raw = input.value;\n const numeric = Array.from(raw).every(\n (character) => normalizeDigits(character).length === 1,\n );\n if (this.min < 0 && !this.labels) {\n // Preserve the sign while using the same locale digit normalization.\n const signed = raw\n .replace(/[\\u200e\\u200f\\u061c]/g, \"\")\n .replace(/\\u2212/g, \"-\");\n const digits = normalizeDigits(signed);\n this.typed = input.value = (signed.startsWith(\"-\") ? \"-\" : \"\") + digits;\n this.value =\n digits === \"\"\n ? null\n : Math.max(this.min, Math.min(this.max, Number(this.typed)));\n if (this.value !== null && Number(this.typed) !== this.value)\n this.typed = input.value = String(this.value);\n } else if (numeric) {\n const normalized = normalizeDigits(raw);\n this.typed = input.value =\n this.min >= 0 && this.max < 100 ? normalized.slice(-2) : normalized;\n this.value = this.typed === \"\" ? null : Number(this.typed);\n } else if (this.labels) {\n const search = raw.trim().toLocaleLowerCase(this.locale);\n this.typed = raw;\n const matches = this.labels\n .map((label, index) => ({ label, index }))\n .filter((item) =>\n item.label.toLocaleLowerCase(this.locale).includes(search),\n );\n this.value = matches.length === 1 ? this.min + matches[0].index : null;\n } else {\n this.typed = input.value = normalizeDigits(raw);\n this.value = this.typed === \"\" ? null : Number(this.typed);\n }\n this.valueChange.emit(this.value);\n this.cancelInput();\n if (!numeric && this.labels && this.value !== null) this.complete.emit();\n this.inputTimer = setTimeout(() => {\n this.inputTimer = null;\n this.typed = null;\n if (!this.disabled) this.complete.emit();\n }, 1000);\n }\n key(event: KeyboardEvent): void {\n if (event.key === \"Escape\") {\n event.preventDefault();\n event.stopPropagation();\n this.cancelInput();\n this.typed = null;\n this.value = this.before;\n this.valueChange.emit(this.before);\n (event.target as HTMLInputElement).value = this.display;\n (event.target as HTMLInputElement).blur();\n }\n if (event.key === \"Enter\") {\n event.preventDefault();\n event.stopPropagation();\n this.finish();\n }\n const delta =\n event.key === \"ArrowUp\"\n ? -1\n : event.key === \"ArrowDown\"\n ? 1\n : event.key === \"PageUp\"\n ? -5\n : event.key === \"PageDown\"\n ? 5\n : 0;\n if (delta) {\n event.preventDefault();\n this.stepBy(delta);\n }\n }\n finish(): void {\n this.cancelInput();\n this.typed = null;\n this.complete.emit();\n }\n wheel(event: WheelEvent): void {\n if (this.disabled || Math.abs(event.deltaY) < 1) return;\n event.preventDefault();\n this.scrollBy(event.deltaY > 0 ? 1 : -1);\n if (this.wheelTimer !== null) clearTimeout(this.wheelTimer);\n this.wheelTimer = setTimeout(() => {\n this.wheelTimer = null;\n this.complete.emit();\n }, 140);\n }\n touchStart(event: TouchEvent): void {\n this.touchY = event.touches[0].clientY;\n this.touchSteps = 0;\n this.touchChanged = false;\n }\n touchMove(event: TouchEvent): void {\n this.applyTouchY(event.touches[0].clientY);\n }\n touchEnd(event: TouchEvent): void {\n this.applyTouchY(event.changedTouches[0].clientY);\n if (this.touchChanged) this.complete.emit();\n this.touchChanged = false;\n }\n private cancelInput(): void {\n if (this.inputTimer !== null) clearTimeout(this.inputTimer);\n this.inputTimer = null;\n }\n private scrollBy(delta: number): void {\n if (this.disabled || !delta) return;\n this.cancelInput();\n this.typed = null;\n this.value = this.next(delta);\n this.valueChange.emit(this.value);\n }\n private applyTouchY(y: number): void {\n // Count total gesture steps so repeated move events do not duplicate changes.\n if (this.disabled) return;\n const delta = this.touchY - y;\n const steps =\n Math.abs(delta) > 16\n ? Math.sign(delta) * Math.max(1, Math.round(Math.abs(delta) / 40))\n : 0;\n const change = steps - this.touchSteps;\n if (!change) return;\n this.scrollBy(change);\n this.touchSteps = steps;\n this.touchChanged = true;\n }\n}\n","<div\n class=\"field\"\n (wheel)=\"wheel($event)\"\n (touchstart)=\"touchStart($event)\"\n (touchmove)=\"touchMove($event)\"\n (touchend)=\"touchEnd($event)\"\n (touchcancel)=\"touchEnd($event)\"\n>\n <span *ngIf=\"!hideLabel\" class=\"label\">{{ label }}</span>\n <button\n type=\"button\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"previousLabel || label + ': previous'\"\n (click)=\"stepBy(-1)\"\n >\n {{ neighbor(-1) }}\n </button>\n <input\n [attr.aria-label]=\"label\"\n [attr.aria-invalid]=\"invalid\"\n [disabled]=\"disabled\"\n [value]=\"display\"\n [attr.inputmode]=\"labels ? 'text' : min < 0 ? 'text' : 'numeric'\"\n autocomplete=\"off\"\n (focus)=\"begin($event)\"\n (input)=\"type($event)\"\n (blur)=\"finish()\"\n (keydown)=\"key($event)\"\n />\n <button\n type=\"button\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"nextLabel || label + ': next'\"\n (click)=\"stepBy(1)\"\n >\n {{ neighbor(1) }}\n </button>\n</div>\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n Inject,\n LOCALE_ID,\n OnChanges,\n OnDestroy,\n OnInit,\n PLATFORM_ID,\n ViewChild,\n} from \"@angular/core\";\nimport { getLocaleFirstDayOfWeek, isPlatformBrowser } from \"@angular/common\";\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from \"@angular/forms\";\nimport {\n absoluteWeekOf,\n createWeekGenerator,\n firstEpochDayOf,\n integer,\n WklyWeekGenerator,\n WklyWeekOffset,\n} from \"@wkly/core\";\nimport {\n decodeIso,\n error,\n resolveWeekOffset,\n validateSelection,\n WklyCalendarAdapter,\n WklyCalendarDate,\n WklyDateTime,\n WklyGregorianCalendarAdapter,\n WklyPickerValue,\n WklyValidationError,\n} from \"@wkly/adapters\";\nimport {\n draftDayDifference,\n setDraftDayDifference,\n calendarMonthBounds,\n resolveWklyTranslation,\n createWeekRows,\n validateDrafts,\n WklyDraft as Draft,\n WklyWeekRow as Row,\n} from \"@wkly/presentation\";\nimport {\n coerceBoolean,\n WKLY_CLOCK,\n WKLY_CONFIG,\n WKLY_LOCALIZATION,\n WKLY_TRANSLATIONS,\n WklyClock,\n WklyCloseReason,\n WklyConfiguration,\n WklyJumpOptions,\n WklyPickerInputs,\n WklyPickerInputsPropertyKeys,\n WklyPickerOutputsPropertyKeys,\n WklyStrings,\n WklyTranslations,\n} from \"./config\";\ndeclare class ResizeObserver {\n constructor(callback: () => void);\n observe(element: Element): void;\n disconnect(): void;\n}\n@Component({\n selector: \"wkly-datetime-picker\",\n templateUrl: \"./picker.component.html\",\n styleUrls: [\"../../wkly-datetime-picker/src/picker.component.css\"],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => WklyDateTimePickerComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => WklyDateTimePickerComponent),\n multi: true,\n },\n ],\n})\nexport class WklyDateTimePickerComponent\n extends WklyPickerInputs\n implements\n OnInit,\n OnChanges,\n AfterViewInit,\n OnDestroy,\n ControlValueAccessor,\n Validator\n{\n @ViewChild(\"scroller\") scroller?: ElementRef<HTMLElement>;\n presentation: \"inline\" | \"transient\" = \"inline\";\n viewMode: \"calendar\" | \"manual\" = \"calendar\";\n endView: \"date\" | \"days\" = \"date\";\n adapter!: WklyCalendarAdapter;\n effectiveLocale = \"en-US\";\n effectiveOffset: WklyWeekOffset = 0;\n effectiveHourCycle: \"h12\" | \"h24\" = \"h24\";\n direction = \"ltr\";\n rows: Row[] = [];\n weekdays: string[] = [];\n drafts: Draft[] = [];\n errors: readonly WklyValidationError[] = [];\n today = 0;\n focused = 0;\n anchorWeek = 0;\n firstWeek = 0;\n visibleCount = 6;\n rowHeight = 76;\n scrollHeight = 152076;\n paddingTop = 0;\n initialized = false;\n compact = false;\n readonly WklyPickerInputsPropertyKeys = WklyPickerInputsPropertyKeys;\n private baseWeek = 0;\n private firstSupportedDay = 0;\n private lastSupportedDay = 0;\n private firstSupportedWeek = 0;\n private lastSupportedWeek = 0;\n private generator!: WklyWeekGenerator;\n private initialMonth = \"\";\n private clipMonth = false;\n private browser = false;\n private observer?: ResizeObserver;\n private destroyed = false;\n private scrollEndTimer?: ReturnType<typeof setTimeout>;\n private snapPending = false;\n private onChange: (value: WklyPickerValue) => void = () => {};\n private onTouched: () => void = () => {};\n private validatorChanged: () => void = () => {};\n private configErrors: WklyValidationError[] = [];\n private pendingValue: WklyPickerValue = null;\n private emittedValue: string | null = null;\n private manualDateEndpoint = 0;\n constructor(\n @Inject(LOCALE_ID) private defaultLocale: string,\n @Inject(WKLY_CONFIG) private defaults: WklyConfiguration,\n @Inject(WKLY_CLOCK) private clock: WklyClock,\n @Inject(WKLY_LOCALIZATION) private strings: WklyStrings,\n @Inject(WKLY_TRANSLATIONS) private defaultTranslations: WklyTranslations,\n @Inject(PLATFORM_ID) platform: Object,\n private host: ElementRef<HTMLElement>,\n private changeDetector: ChangeDetectorRef,\n ) {\n super();\n this.browser = isPlatformBrowser(platform);\n }\n ngOnInit(): void {\n this.initialize();\n }\n ngOnChanges(changes: any): void {\n if (this.initialized) {\n if (\n Object.keys(changes).length === 1 &&\n changes[WklyPickerInputsPropertyKeys.Value] &&\n this.emittedValue ===\n JSON.stringify(this[WklyPickerInputsPropertyKeys.Value])\n ) {\n this.emittedValue = null;\n return;\n }\n const focus = this.focused;\n this.configure();\n if (\n changes[WklyPickerInputsPropertyKeys.Value] ||\n changes[WklyPickerInputsPropertyKeys.Mode] ||\n changes[WklyPickerInputsPropertyKeys.CalendarAdapter]\n ) {\n this.load(this[WklyPickerInputsPropertyKeys.Value]);\n this.position(this.focused, true);\n } else {\n this.check();\n if (changes[WklyPickerInputsPropertyKeys.ViewportPreset])\n this.position(focus, true);\n else this.scrollToEpochDay(focus);\n }\n }\n }\n initialize(): void {\n if (this.initialized) return;\n this.configure();\n const initialEpochDay = this[WklyPickerInputsPropertyKeys.InitialEpochDay];\n this.today = this.browser\n ? Math.floor(this.clock.now().getTime() / 86400000)\n : initialEpochDay === null\n ? 0\n : initialEpochDay;\n this.focused =\n initialEpochDay === null\n ? this.defaults.initialEpochDay === undefined\n ? this.today\n : this.defaults.initialEpochDay\n : initialEpochDay;\n this.load(this[WklyPickerInputsPropertyKeys.Value]);\n this.initialized = true;\n this.position(this.focused, true);\n }\n configure(): void {\n this.configErrors = [];\n [\n WklyPickerInputsPropertyKeys.ShowSeconds,\n WklyPickerInputsPropertyKeys.AllowRangeAcrossDisabled,\n WklyPickerInputsPropertyKeys.Required,\n WklyPickerInputsPropertyKeys.Disabled,\n WklyPickerInputsPropertyKeys.CloseOnBackdrop,\n ].forEach(\n (key) => ((this as any)[key] = coerceBoolean((this as any)[key])),\n );\n this.effectiveLocale =\n this[WklyPickerInputsPropertyKeys.Locale] ||\n this.defaults.locale ||\n this.defaultLocale;\n this.direction = /^(ar|he|fa|ur)(-|$)/.test(this.effectiveLocale)\n ? \"rtl\"\n : \"ltr\";\n this.adapter =\n this[WklyPickerInputsPropertyKeys.CalendarAdapter] ||\n new WklyGregorianCalendarAdapter(this.effectiveLocale);\n try {\n let firstDay: number | undefined;\n try {\n firstDay = getLocaleFirstDayOfWeek(this.effectiveLocale);\n } catch (_) {}\n this.effectiveOffset = resolveWeekOffset(\n this.effectiveLocale,\n this[WklyPickerInputsPropertyKeys.WeekOffset],\n this.defaults.weekOffset,\n firstDay,\n );\n integer(this[WklyPickerInputsPropertyKeys.WeekCacheSize]);\n integer(this[WklyPickerInputsPropertyKeys.OverscanWeeks]);\n if (\n this[WklyPickerInputsPropertyKeys.WeekCacheSize] < 0 ||\n this[WklyPickerInputsPropertyKeys.OverscanWeeks] < 0 ||\n this[WklyPickerInputsPropertyKeys.OverscanWeeks] > 50\n )\n throw new RangeError();\n if (\n ![\n \"datetime\",\n \"date\",\n \"time\",\n \"datetime-range\",\n \"date-range\",\n \"time-range\",\n ].includes(this[WklyPickerInputsPropertyKeys.Mode])\n )\n throw new RangeError();\n const preset = this[WklyPickerInputsPropertyKeys.ViewportPreset];\n if (preset.kind === \"weeks\") {\n integer(preset.visibleWeekCount);\n if (preset.visibleWeekCount < 1 || preset.visibleWeekCount > 52)\n throw new RangeError();\n }\n if (preset.kind === \"full-month-and-around\")\n for (const n of [\n preset.extraWeeksBefore || 0,\n preset.extraWeeksAfter || 0,\n ]) {\n integer(n);\n if (n < 0 || n > 52) throw new RangeError();\n }\n this.generator = createWeekGenerator({\n weekOffset: this.effectiveOffset,\n cacheSize: this[WklyPickerInputsPropertyKeys.WeekCacheSize],\n });\n } catch (_) {\n this.configErrors.push(\n error(\n \"configuration-error\",\n this[WklyPickerInputsPropertyKeys.WeekOffset],\n ),\n );\n this.generator = createWeekGenerator();\n this.effectiveOffset = 0;\n }\n this.setSupportedScrollRange();\n this.effectiveHourCycle =\n this[WklyPickerInputsPropertyKeys.HourCycle] === \"h12\"\n ? \"h12\"\n : this[WklyPickerInputsPropertyKeys.HourCycle] === \"locale\"\n ? new Intl.DateTimeFormat(this.effectiveLocale, {\n hour: \"numeric\",\n timeZone: \"UTC\",\n }).resolvedOptions().hour12\n ? \"h12\"\n : \"h24\"\n : \"h24\";\n this.weekdays = Array.from({ length: 7 }, (_, i) =>\n this.adapter.formatWeekday(this.effectiveOffset + i, \"short\"),\n );\n }\n private setSupportedScrollRange(): void {\n let [first, last] = this.adapter.supportedEpochDayRange;\n const [firstYear, lastYear] = this.adapter.supportedYearRange;\n const yearOf = (day: number) => this.adapter.epochDayToDate(day).year;\n if (yearOf(first) < firstYear) {\n let low = first,\n high = last;\n while (low < high) {\n const mid = Math.floor((low + high) / 2);\n if (yearOf(mid) < firstYear) low = mid + 1;\n else high = mid;\n }\n first = low;\n }\n if (yearOf(last) > lastYear) {\n let low = first,\n high = last;\n while (low < high) {\n const mid = Math.ceil((low + high) / 2);\n if (yearOf(mid) > lastYear) high = mid - 1;\n else low = mid;\n }\n last = low;\n }\n if (\n first > last ||\n yearOf(first) < firstYear ||\n yearOf(first) > lastYear ||\n yearOf(last) < firstYear ||\n yearOf(last) > lastYear\n )\n throw new RangeError(\"No supported days within the calendar year range\");\n this.firstSupportedDay = first;\n this.lastSupportedDay = last;\n this.firstSupportedWeek = absoluteWeekOf(first, this.effectiveOffset);\n this.lastSupportedWeek = absoluteWeekOf(last, this.effectiveOffset);\n }\n private clampFirstWeek(week: number): number {\n // Keep supported weeks inside the viewport; renderRows adds the buffer rows.\n const last = Math.max(\n this.firstSupportedWeek,\n this.lastSupportedWeek - this.visibleCount + 1,\n );\n return Math.max(this.firstSupportedWeek, Math.min(last, week));\n }\n ngAfterViewInit(): void {\n this.resetScroll();\n if (this.browser && typeof ResizeObserver !== \"undefined\") {\n this.observer = new ResizeObserver(() => {\n this.compact = this.host.nativeElement.clientWidth < 338;\n const row = this.host.nativeElement.querySelector(\n \".week-row\",\n ) as HTMLElement;\n // CSS heights and scrollTop use layout pixels; client rectangles include zoom.\n const height = row ? parseFloat(getComputedStyle(row).height) : 0;\n if (height && height !== this.rowHeight) {\n this.rowHeight = height;\n this.scrollHeight = this.rowHeight * 2001;\n this.renderRows();\n this.resetScroll();\n }\n });\n this.observer.observe(this.host.nativeElement);\n }\n }\n ngOnDestroy(): void {\n this.destroyed = true;\n if (this.observer) this.observer.disconnect();\n if (this.scrollEndTimer) clearTimeout(this.scrollEndTimer);\n if (this.generator) this.generator.clearCache();\n }\n t(key: string): string {\n return resolveWklyTranslation(\n key,\n this.effectiveLocale,\n this[WklyPickerInputsPropertyKeys.Translations] ||\n this.defaultTranslations,\n this.strings,\n );\n }\n get isRange(): boolean {\n return this[WklyPickerInputsPropertyKeys.Mode].endsWith(\"-range\");\n }\n get hasDate(): boolean {\n return !this[WklyPickerInputsPropertyKeys.Mode].startsWith(\"time\");\n }\n get hasTime(): boolean {\n return (\n this[WklyPickerInputsPropertyKeys.Mode] !== \"date\" &&\n this[WklyPickerInputsPropertyKeys.Mode] !== \"date-range\"\n );\n }\n get submitVisible(): boolean {\n return (\n this.presentation === \"transient\" &&\n (this[WklyPickerInputsPropertyKeys.Mode] !== \"date\" ||\n this.viewMode === \"manual\")\n );\n }\n get title(): string {\n try {\n const d = this.adapter.epochDayToDate(\n Math.max(\n this.firstSupportedDay,\n Math.min(\n this.lastSupportedDay,\n firstEpochDayOf(this.anchorWeek, this.effectiveOffset),\n ),\n ),\n );\n return this.adapter.formatMonth(d) + \" \" + this.adapter.formatYear(d);\n } catch (_) {\n return \"\";\n }\n }\n get canSubmit(): boolean {\n return (\n !this[WklyPickerInputsPropertyKeys.Disabled] &&\n !this.errors.length &&\n this.pendingValue !== null\n );\n }\n private blank(day: number): Draft {\n const safe = Math.max(\n this.firstSupportedDay,\n Math.min(this.lastSupportedDay, day),\n );\n return {\n date: this.adapter.epochDayToDate(safe),\n hour: 0,\n minute: 0,\n second: 0,\n present: false,\n };\n }\n load(value: WklyPickerValue): void {\n this.drafts = [this.blank(this.focused), this.blank(this.focused)];\n const validation = validateSelection(value, this, this.adapter);\n if (value !== null && !validation.length) {\n const values = typeof value === \"string\" ? [value] : value;\n values.forEach((v, i) => {\n const d = decodeIso(v);\n this.drafts[i] = {\n date: this.hasDate\n ? this.adapter.epochDayToDate(d.epochDay)\n : this.blank(this.today).date,\n hour: d.hour,\n minute: d.minute,\n second: d.second,\n present: true,\n };\n if (i === 0 && this.hasDate) this.focused = d.epochDay;\n });\n }\n if (validation.length) {\n this.pendingValue = null;\n this.report(validation);\n } else this.check();\n }\n writeValue(value: WklyPickerValue): void {\n this[WklyPickerInputsPropertyKeys.Value] = value;\n if (this.initialized) {\n this.load(value);\n this.position(this.focused, true);\n }\n }\n registerOnChange(fn: (value: WklyPickerValue) => void): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(disabled: boolean): void {\n this[WklyPickerInputsPropertyKeys.Disabled] = disabled;\n }\n validate(_control: AbstractControl): ValidationErrors | null {\n return this.errors.length ? { wkly: this.errors } : null;\n }\n registerOnValidatorChange(fn: () => void): void {\n this.validatorChanged = fn;\n }\n touched(): void {\n Promise.resolve().then(() => this.onTouched());\n }\n private report(errors: readonly WklyValidationError[]): void {\n const changed = JSON.stringify(this.errors) !== JSON.stringify(errors);\n this.errors = errors;\n if (changed) {\n this[WklyPickerOutputsPropertyKeys.ValidationChange].emit(errors);\n this.validatorChanged();\n }\n }\n check(): void {\n const result = validateDrafts({\n drafts: this.drafts,\n configErrors: this.configErrors,\n adapter: this.adapter,\n selection: this,\n mode: this[WklyPickerInputsPropertyKeys.Mode],\n isRange: this.isRange,\n hasDate: this.hasDate,\n hasTime: this.hasTime,\n showSeconds: this[WklyPickerInputsPropertyKeys.ShowSeconds],\n required: this[WklyPickerInputsPropertyKeys.Required],\n });\n this.pendingValue = result.pendingValue;\n this.report(result.errors);\n }\n trackDraft(index: number): number {\n // Endpoint controls keep their identity and focus when draft objects swap.\n return index;\n }\n private orderDrafts(): void {\n if (!this.isRange || !this.drafts.every((draft) => draft.present)) return;\n if (this.drafts.some((draft) => draft.unsupportedEpochDay !== undefined))\n return;\n try {\n const a = this.drafts[0],\n b = this.drafts[1];\n const key = (d: Draft) =>\n this.adapter.dateToEpochDay(d.date) * 86400 +\n (d.hour || 0) * 3600 +\n (d.minute || 0) * 60 +\n (d.second || 0);\n if (key(a) > key(b)) this.drafts = [b, a];\n } catch (_) {\n // Impossible or incomplete dates remain editable until corrected.\n }\n }\n finish(): void {\n if (this[WklyPickerInputsPropertyKeys.Disabled]) return;\n this.orderDrafts();\n if (this.viewMode === \"manual\" && this.hasDate) this.positionOnManualDate();\n this.check();\n if (this.presentation === \"inline\" && this.canSubmit) this.commit();\n }\n private commit(): void {\n if (!this.canSubmit) return;\n const next = this.pendingValue;\n if (\n JSON.stringify(next) !==\n JSON.stringify(this[WklyPickerInputsPropertyKeys.Value])\n ) {\n this[WklyPickerInputsPropertyKeys.Value] = next;\n this.emittedValue = JSON.stringify(next);\n this.onChange(next);\n this[WklyPickerOutputsPropertyKeys.ValueChange].emit(next);\n }\n this.onTouched();\n }\n submit(reason: WklyCloseReason = \"submit\"): void {\n this.check();\n if (!this.canSubmit) return;\n this.commit();\n if (this.presentation === \"transient\")\n this[WklyPickerOutputsPropertyKeys.Closed].emit(reason);\n }\n cancel(reason: WklyCloseReason = \"close-button\"): void {\n if (this[WklyPickerInputsPropertyKeys.Disabled]) return;\n this.load(this[WklyPickerInputsPropertyKeys.Value]);\n this.onTouched();\n this[WklyPickerOutputsPropertyKeys.Closed].emit(reason);\n }\n now(): void {\n if (this[WklyPickerInputsPropertyKeys.Disabled]) return;\n const n = this.clock.now();\n const day = Math.floor(n.getTime() / 86400000);\n this.drafts = [0, 1].map((index) => ({\n ...this.clockDraft(day, n),\n present: index === 0 || this.isRange,\n }));\n if (\n this.hasDate &&\n (day < this.firstSupportedDay || day > this.lastSupportedDay)\n ) {\n this.report([error(\"unsupported-adapter-date\", day)]);\n return;\n }\n this.focused = day;\n this.position(day, true);\n this.check();\n this.submit(\"now\");\n }\n private clockDraft(day: number, now: Date): Draft {\n return {\n ...this.blank(day),\n hour: now.getUTCHours(),\n minute:\n Math.floor(\n now.getUTCMinutes() / this[WklyPickerInputsPropertyKeys.MinuteStep],\n ) * this[WklyPickerInputsPropertyKeys.MinuteStep],\n second: this[WklyPickerInputsPropertyKeys.ShowSeconds]\n ? Math.floor(\n now.getUTCSeconds() / this[WklyPickerInputsPropertyKeys.SecondStep],\n ) * this[WklyPickerInputsPropertyKeys.SecondStep]\n : 0,\n };\n }\n private initializeManualRange(): void {\n if (\n !this.isRange ||\n !this.hasDate ||\n this.drafts.every((draft) => draft.present)\n )\n return;\n let seed = this.drafts.find((draft) => draft.present);\n if (!seed) {\n if (this[WklyPickerInputsPropertyKeys.Value] !== null) return;\n const now = this.clock.now();\n const initialEpochDay =\n this[WklyPickerInputsPropertyKeys.InitialEpochDay];\n const day =\n initialEpochDay === null\n ? this.defaults.initialEpochDay === undefined\n ? Math.floor(now.getTime() / 86400000)\n : this.defaults.initialEpochDay\n : initialEpochDay;\n seed = { ...this.clockDraft(day, now), present: true };\n }\n // Complete missing endpoints without replacing selected or invalid drafts.\n const initial = seed;\n this.drafts = this.drafts.map((draft) =>\n draft.present ? draft : { ...initial, date: { ...initial.date } },\n );\n this.finish();\n // Positioning renders before validation; refresh completion controls afterward.\n this.changeDetector.markForCheck();\n }\n toggleView(): void {\n if (this[WklyPickerInputsPropertyKeys.Disabled] || !this.hasDate) return;\n this.viewMode = this.viewMode === \"calendar\" ? \"manual\" : \"calendar\";\n if (this.viewMode === \"manual\") this.initializeManualRange();\n if (this.viewMode === \"calendar\") this.positionOnManualDate();\n this[WklyPickerOutputsPropertyKeys.ViewModeChange].emit(this.viewMode);\n if (this.viewMode === \"calendar\") setTimeout(() => this.resetScroll());\n }\n private positionOnManualDate(): void {\n const draft = this.drafts[this.manualDateEndpoint];\n if (!draft || !draft.present) return;\n try {\n // A valid day follows the selection. An impossible day keeps its draft\n // fields but still shows the chosen month in the calendar.\n const target = this.adapter.dateToEpochDay(draft.date);\n this.focused = target;\n this.position(target, true);\n } catch (_) {\n try {\n const first = this.adapter.dateToEpochDay({ ...draft.date, day: 1 });\n this.focused = first;\n this.position(first, true);\n } catch (_) {}\n }\n }\n months(draft: Draft): readonly string[] {\n try {\n return this.adapter.getMonths(draft.date.year).map((m) => m.label);\n } catch (_) {\n return [];\n }\n }\n monthCount(draft: Draft): number {\n return this.months(draft).length || 12;\n }\n get inDays(): number | null {\n return draftDayDifference(this.drafts, this.adapter);\n }\n get inDaysLabel(): string {\n const days = this.inDays;\n return this.t(\"inDays\").replace(\n /{{\\s*days\\s*}}/g,\n days === null\n ? this.t(\"daysUnavailable\")\n : new Intl.NumberFormat(this.effectiveLocale, {\n useGrouping: false,\n }).format(days),\n );\n }\n get resultingEndDate(): string {\n try {\n const draft = this.drafts[1];\n if (\n draft.unsupportedEpochDay !== undefined ||\n this.adapter.validateDate(draft.date).length\n )\n return \"\";\n return [\n this.adapter.formatDay(draft.date),\n this.adapter.formatMonth(draft.date),\n this.adapter.formatYear(draft.date),\n ].join(\" \");\n } catch (_) {\n return \"\";\n }\n }\n toggleEndView(view: \"date\" | \"days\"): void {\n if (this[WklyPickerInputsPropertyKeys.Disabled]) return;\n this.endView = view;\n }\n days(value: number | null): void {\n if (this[WklyPickerInputsPropertyKeys.Disabled]) return;\n this.manualDateEndpoint = 1;\n setDraftDayDifference(this.drafts, this.adapter, value);\n this.check();\n }\n field(index: number, field: string, value: number | null): void {\n if (this[WklyPickerInputsPropertyKeys.Disabled]) return;\n const draft = this.drafts[index];\n draft.present = true;\n if (field === \"day\" || field === \"year\" || field === \"month\") {\n this.manualDateEndpoint = index;\n delete draft.unsupportedEpochDay;\n let date = { ...draft.date, [field]: value } as WklyCalendarDate;\n if (field === \"month\") {\n let month;\n try {\n month = this.adapter\n .getMonths(date.year)\n .find((m) => m.month === value);\n } catch (_) {}\n date = { ...date, monthCode: month ? month.monthCode : \"\" };\n }\n if (field === \"year\" && value !== null) {\n try {\n const months = this.adapter.getMonths(value);\n const month = months.find((m) => m.monthCode === date.monthCode);\n if (month) date = { ...date, month: month.month };\n } catch (_) {}\n }\n draft.date = date;\n } else if (field === \"hour\" && this.effectiveHourCycle === \"h12\")\n draft.hour =\n value === null\n ? null\n : value >= 1 && value <= 12\n ? (value % 12) + ((draft.hour || 0) >= 12 ? 12 : 0)\n : 24 + value;\n else (draft as any)[field] = value;\n this.check();\n }\n displayHour(draft: Draft): number | null {\n return draft.hour === null\n ? null\n : this.effectiveHourCycle === \"h12\"\n ? draft.hour % 12 || 12\n : draft.hour;\n }\n period(index: number, period: \"am\" | \"pm\" | \"24\"): void {\n if (this[WklyPickerInputsPropertyKeys.Disabled]) return;\n if (period === \"24\") this.effectiveHourCycle = \"h24\";\n else {\n this.effectiveHourCycle = \"h12\";\n this.drafts[index].hour =\n ((this.drafts[index].hour || 0) % 12) + (period === \"pm\" ? 12 : 0);\n this.drafts[index].present = true;\n this.finish();\n }\n }\n selected(day: number): boolean {\n return this.drafts.some((d) => {\n try {\n return d.present && this.adapter.dateToEpochDay(d.date) === day;\n } catch (_) {\n return false;\n }\n });\n }\n inRange(day: number): boolean {\n if (!this.isRange || !this.drafts.every((d) => d.present)) return false;\n try {\n const a = this.adapter.dateToEpochDay(this.drafts[0].date),\n b = this.adapter.dateToEpochDay(this.drafts[1].date);\n return day > Math.min(a, b) && day < Math.max(a, b);\n } catch (_) {\n return false;\n }\n }\n dayDisabled(day: number): boolean {\n if (day < this.firstSupportedDay || day > this.lastSupportedDay)\n return true;\n try {\n const date = this.adapter.epochDayToDate(day);\n const isDateDisabled = this[WklyPickerInputsPropertyKeys.IsDateDisabled];\n if (\n isDateDisabled &&\n isDateDisabled(day, {\n mode: this[WklyPickerInputsPropertyKeys.Mode],\n endpoint: this.isRange\n ? this.drafts[0]?.present && !this.drafts[1]?.present\n ? \"end\"\n : \"start\"\n : \"single\",\n calendarDate: date,\n })\n )\n return true;\n const min = this[WklyPickerInputsPropertyKeys.Min];\n const max = this[WklyPickerInputsPropertyKeys.Max];\n if (min && day < decodeIso(min).epochDay) return true;\n if (max && day > decodeIso(max).epochDay) return true;\n return false;\n } catch (_) {\n return true;\n }\n }\n select(day: number): void {\n if (this[WklyPickerInputsPropertyKeys.Disabled] || this.dayDisabled(day))\n return;\n this.focused = day;\n const index =\n this.isRange && this.drafts[0].present && !this.drafts[1].present ? 1 : 0;\n if (this.isRange && index === 0) this.drafts[1].present = false;\n delete this.drafts[index].unsupportedEpochDay;\n this.drafts[index].date = this.adapter.epochDayToDate(day);\n this.drafts[index].present = true;\n this.orderDrafts();\n this.renderRows();\n this.finish();\n if (\n this.presentation === \"transient\" &&\n this[WklyPickerInputsPropertyKeys.Mode] === \"date\" &&\n this.viewMode === \"calendar\"\n )\n this.submit(\"auto-submit\");\n }\n key(event: KeyboardEvent, day: number): void {\n let delta = 0;\n if (event.key === \"ArrowLeft\") delta = -1;\n if (event.key === \"ArrowRight\") delta = 1;\n if (event.key === \"ArrowUp\") delta = -7;\n if (event.key === \"ArrowDown\") delta = 7;\n if (event.key === \"PageUp\")\n delta = -7 * (event.shiftKey ? this.visibleCount : 1);\n if (event.key === \"PageDown\")\n delta = 7 * (event.shiftKey ? this.visibleCount : 1);\n if (event.key === \"Home\") {\n event.preventDefault();\n this.scrollToEpochDay(this.today, { focus: true });\n }\n if (delta) {\n event.preventDefault();\n const target = day + delta;\n if (target >= this.firstSupportedDay && target <= this.lastSupportedDay)\n this.scrollToEpochDay(target, { focus: true });\n }\n }\n private position(\n day: number,\n preset = false,\n options: WklyJumpOptions = {},\n ): void {\n day = Math.max(\n this.firstSupportedDay,\n Math.min(this.lastSupportedDay, day),\n );\n this.anchorWeek = absoluteWeekOf(day, this.effectiveOffset);\n const viewportPreset = this[WklyPickerInputsPropertyKeys.ViewportPreset];\n this.clipMonth = preset && viewportPreset.kind === \"full-month\";\n if (preset && viewportPreset.kind !== \"weeks\") {\n const d = this.adapter.epochDayToDate(day);\n this.initialMonth = d.year + \"/\" + d.monthCode;\n const [start, end] = calendarMonthBounds(this.adapter, day);\n this.firstWeek = absoluteWeekOf(start, this.effectiveOffset);\n this.visibleCount =\n absoluteWeekOf(end, this.effectiveOffset) - this.firstWeek + 1;\n if (\n viewportPreset.kind === \"full-month-and-around\" &&\n !this.configErrors.length\n ) {\n const before = viewportPreset.extraWeeksBefore || 0,\n after = viewportPreset.extraWeeksAfter || 0;\n this.firstWeek -= before;\n this.visibleCount += before + after;\n }\n } else {\n if (viewportPreset.kind === \"weeks\")\n this.visibleCount = this.configErrors.length\n ? 6\n : viewportPreset.visibleWeekCount;\n this.firstWeek =\n this.anchorWeek -\n (options.align === \"start\"\n ? 0\n : options.align === \"end\"\n ? this.visibleCount - 1\n : Math.floor(this.visibleCount / 2));\n }\n this.firstWeek = this.clampFirstWeek(this.firstWeek);\n this.baseWeek = this.firstWeek - 1000;\n this.renderRows();\n // Apply the new runway before writing scrollTop or locating a focus target.\n this.changeDetector.detectChanges();\n this.resetScroll();\n }\n private resetScroll(): void {\n // Round week boundaries to avoid scrollTop truncation under CSS zoom.\n if (this.scroller)\n this.scroller.nativeElement.scrollTop = Math.round(1000 * this.rowHeight);\n }\n scroll(event: Event): void {\n const element = event.target as HTMLElement;\n this.snapPending = true;\n this.scheduleSnap();\n // Quantize displacement around the reset point, equally in both directions.\n const relativeRows = element.scrollTop / this.rowHeight - 1000;\n const index =\n 1000 + Math.sign(relativeRows) * Math.round(Math.abs(relativeRows));\n const requestedFirst = this.baseWeek + index;\n const first = this.clampFirstWeek(requestedFirst);\n if (requestedFirst !== first) {\n element.scrollTop = Math.round((first - this.baseWeek) * this.rowHeight);\n }\n if (first === this.firstWeek) return;\n this.clipMonth = false;\n this.firstWeek = first;\n this.anchorWeek = first + Math.floor(this.visibleCount / 2);\n if (index < 100 || index > 1900) {\n // Preserve signed displacement from this week; modulo turns fractional\n // rounding just below a boundary into almost a full row after rebasing.\n const offset =\n element.scrollTop - (first - this.baseWeek) * this.rowHeight;\n this.baseWeek = first - 1000;\n element.scrollTop = Math.round(1000 * this.rowHeight + offset);\n }\n this.renderRows();\n }\n private scheduleSnap(): void {\n if (this.scrollEndTimer) clearTimeout(this.scrollEndTimer);\n this.scrollEndTimer = setTimeout(() => this.snapWeek(), 200);\n }\n snapWeek(): void {\n if (this.scrollEndTimer) clearTimeout(this.scrollEndTimer);\n this.scrollEndTimer = undefined;\n if (!this.snapPending || !this.scroller) return;\n this.snapPending = false;\n // Align the current virtual week without rebuilding or rebasing its rows.\n const element = this.scroller.nativeElement;\n const target = Math.round(\n (this.firstWeek - this.baseWeek) * this.rowHeight,\n );\n if (element.scrollTop !== target) element.scrollTop = target;\n }\n private showFirstWeek(week: number): void {\n const first = this.clampFirstWeek(week);\n if (first === this.firstWeek) return;\n this.clipMonth = false;\n this.firstWeek = first;\n this.anchorWeek = first + Math.floor(this.visibleCount / 2);\n this.baseWeek = first - 1000;\n this.renderRows();\n this.resetScroll();\n }\n canMoveWeek(delta: number): boolean {\n return this.clampFirstWeek(this.firstWeek + delta) !== this.firstWeek;\n }\n moveWeek(delta: number): void {\n if (!this[WklyPickerInputsPropertyKeys.Disabled])\n this.showFirstWeek(this.firstWeek + delta);\n }\n private renderRows(): void {\n // Keep the virtual scroll offset here; row data is shared across Angular versions.\n const overscan = Math.max(\n 0,\n Math.min(50, this[WklyPickerInputsPropertyKeys.OverscanWeeks] || 0),\n );\n const start = this.firstWeek - overscan;\n this.paddingTop = (start - this.baseWeek) * this.rowHeight;\n this.rows = createWeekRows({\n generator: this.generator,\n adapter: this.adapter,\n startWeek: start,\n count: this.visibleCount + 2 * overscan,\n firstVisibleWeek: this.firstWeek,\n firstSupportedDay: this.firstSupportedDay,\n lastSupportedDay: this.lastSupportedDay,\n clipMonth: this.clipMonth,\n initialMonth: this.initialMonth,\n weekLabelMode: this[WklyPickerInputsPropertyKeys.WeekLabelMode],\n weekLabelFormatter:\n this[WklyPickerInputsPropertyKeys.WeekLabelFormatter] || null,\n isDayDisabled: (day) => this.dayDisabled(day),\n });\n this[WklyPickerOutputsPropertyKeys.ViewportChange].emit({\n firstVisibleAbsoluteWeek: this.firstWeek,\n lastVisibleAbsoluteWeek: this.firstWeek + this.visibleCount - 1,\n anchorAbsoluteWeek: this.anchorWeek,\n });\n }\n // Retain day DOM nodes and keyboard focus when row metadata is regenerated.\n trackCell(_i: number, cell: { epochDay: number }): number {\n return cell.epochDay;\n }\n trackRow(_i: number, row: Row): number {\n return row.week.absoluteWeek;\n }\n scrollToEpochDay(day: number, options: WklyJumpOptions = {}): void {\n integer(day);\n this.adapter.epochDayToDate(day);\n day = Math.max(\n this.firstSupportedDay,\n Math.min(this.lastSupportedDay, day),\n );\n // position renders synchronously; publish the tab stop before that render.\n if (options.focus) this.focused = day;\n this.position(day, false, options);\n if (options.select) this.select(day);\n if (options.focus) this.focusDay();\n }\n scrollToAbsoluteWeek(week: number, options: WklyJumpOptions = {}): void {\n // A boundary week can start before the adapter's first supported day.\n const first = firstEpochDayOf(week, this.effectiveOffset);\n this.scrollToEpochDay(\n week === this.firstSupportedWeek\n ? Math.max(first, this.firstSupportedDay)\n : first,\n options,\n );\n }\n scrollToCalendarDate(\n date: WklyCalendarDate,\n options: WklyJumpOptions = {},\n ): void {\n this.scrollToEpochDay(this.adapter.dateToEpochDay(date), options);\n }\n scrollToValue(value: string, options: WklyJumpOptions = {}): void {\n this.scrollToEpochDay(decodeIso(value).epochDay, options);\n }\n focusDay(): void {\n if (!this.browser) return;\n setTimeout(() => {\n if (this.destroyed) return;\n this.changeDetector.detectChanges();\n const day = this.host.nativeElement.querySelector(\n '[data-day=\"' + this.focused + '\"]',\n ) as HTMLElement;\n const fallback = this.host.nativeElement.querySelector(\n \"button:not(:disabled),input:not(:disabled)\",\n ) as HTMLElement;\n (day || fallback)?.focus({ preventScroll: true });\n });\n }\n}\n","<section\n class=\"wkly\"\n [attr.dir]=\"direction\"\n [attr.aria-label]=\"\n this[WklyPickerInputsPropertyKeys.AriaLabel] || 'Date and time picker'\n \"\n [attr.aria-describedby]=\"this[WklyPickerInputsPropertyKeys.AriaDescribedBy]\"\n (focusout)=\"touched()\"\n>\n <header class=\"toolbar\">\n <button\n *ngIf=\"hasDate\"\n type=\"button\"\n [disabled]=\"this[WklyPickerInputsPropertyKeys.Disabled]\"\n [attr.aria-label]=\"t(viewMode === 'calendar' ? 'manual' : 'calendar')\"\n (click)=\"toggleView()\"\n >\n {{ viewMode === \"calendar\" ? \"☷\" : \"▦\" }}\n </button>\n <span *ngIf=\"hasDate\" class=\"year-control\">{{ title }}</span>\n <span class=\"spacer\"></span\n ><button\n type=\"button\"\n class=\"now\"\n [disabled]=\"this[WklyPickerInputsPropertyKeys.Disabled]\"\n (click)=\"now()\"\n >\n {{ t(\"now\") }}\n </button>\n <button\n *ngIf=\"presentation === 'transient'\"\n type=\"button\"\n [disabled]=\"this[WklyPickerInputsPropertyKeys.Disabled]\"\n [attr.aria-label]=\"t('close')\"\n (click)=\"cancel()\"\n >\n ×\n </button>\n </header>\n <ng-container *ngIf=\"hasDate && viewMode === 'calendar'\">\n <div\n role=\"grid\"\n [attr.aria-label]=\"\n this[WklyPickerInputsPropertyKeys.AriaLabel] || 'Calendar'\n \"\n [attr.aria-multiselectable]=\"isRange\"\n >\n <div\n role=\"row\"\n class=\"week-head\"\n [class.no-label]=\"\n compact ||\n (this[WklyPickerInputsPropertyKeys.WeekLabelMode] === 'hidden' &&\n !this[WklyPickerInputsPropertyKeys.WeekLabelFormatter])\n \"\n >\n <span\n *ngIf=\"\n !compact &&\n (this[WklyPickerInputsPropertyKeys.WeekLabelMode] !== 'hidden' ||\n this[WklyPickerInputsPropertyKeys.WeekLabelFormatter])\n \"\n role=\"columnheader\"\n aria-label=\"Week\"\n ></span\n ><span *ngFor=\"let day of weekdays\" role=\"columnheader\">{{ day }}</span>\n </div>\n <div\n #scroller\n class=\"week-scroll\"\n [style.height.px]=\"visibleCount * rowHeight\"\n (scroll)=\"scroll($event)\"\n (scrollend)=\"snapWeek()\"\n >\n <div [style.height.px]=\"scrollHeight\" class=\"scroll-space\">\n <div class=\"rows\" [style.top.px]=\"paddingTop\">\n <div\n *ngFor=\"let row of rows; trackBy: trackRow\"\n role=\"row\"\n class=\"week-row\"\n [class.no-label]=\"\n compact ||\n (this[WklyPickerInputsPropertyKeys.WeekLabelMode] ===\n 'hidden' &&\n !this[WklyPickerInputsPropertyKeys.WeekLabelFormatter])\n \"\n >\n <span\n *ngIf=\"\n !compact &&\n (this[WklyPickerInputsPropertyKeys.WeekLabelMode] !==\n 'hidden' ||\n this[WklyPickerInputsPropertyKeys.WeekLabelFormatter])\n \"\n role=\"rowheader\"\n class=\"week-number\"\n >{{ row.label }}</span\n >\n <div\n *ngFor=\"\n let cell of row.cells;\n let dayIndex = index;\n trackBy: trackCell\n \"\n role=\"gridcell\"\n [attr.data-weekday-index]=\"dayIndex\"\n [attr.aria-colindex]=\"\n dayIndex +\n (compact ||\n (this[WklyPickerInputsPropertyKeys.WeekLabelMode] ===\n 'hidden' &&\n !this[WklyPickerInputsPropertyKeys.WeekLabelFormatter])\n ? 1\n : 2)\n \"\n [attr.aria-selected]=\"selected(cell.epochDay)\"\n [attr.aria-disabled]=\"\n cell.disabled || this[WklyPickerInputsPropertyKeys.Disabled]\n \"\n [class.range]=\"inRange(cell.epochDay)\"\n [class.hidden]=\"cell.hidden\"\n [class.odd-month]=\"cell.date && cell.date.month % 2 === 1\"\n >\n <span [class]=\"'annotation annotation--' + dayIndex\">{{\n cell.annotation\n }}</span>\n <button\n type=\"button\"\n class=\"day\"\n [attr.data-day]=\"cell.epochDay\"\n [attr.aria-label]=\"cell.accessible\"\n [attr.aria-current]=\"cell.epochDay === today ? 'date' : null\"\n [attr.aria-disabled]=\"\n cell.disabled || this[WklyPickerInputsPropertyKeys.Disabled]\n \"\n [attr.tabindex]=\"\n !cell.hidden && cell.epochDay === focused ? 0 : -1\n \"\n [class.selected]=\"selected(cell.epochDay)\"\n [class.today]=\"cell.epochDay === today\"\n (focus)=\"focused = cell.epochDay\"\n (click)=\"select(cell.epochDay)\"\n (keydown)=\"key($event, cell.epochDay)\"\n >\n {{ cell.label }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"week-navigation\">\n <button\n type=\"button\"\n [disabled]=\"\n this[WklyPickerInputsPropertyKeys.Disabled] || !canMoveWeek(-1)\n \"\n [attr.aria-label]=\"t('previous')\"\n (click)=\"moveWeek(-1)\"\n >\n ↑</button\n ><span>{{ title }}</span\n ><button\n type=\"button\"\n [disabled]=\"\n this[WklyPickerInputsPropertyKeys.Disabled] || !canMoveWeek(1)\n \"\n [attr.aria-label]=\"t('next')\"\n (click)=\"moveWeek(1)\"\n >\n ↓\n </button>\n </div>\n </ng-container>\n <ng-container\n *ngFor=\"let draft of drafts; let i = index; trackBy: trackDraft\"\n >\n <fieldset\n *ngIf=\"(i === 0 || isRange) && (hasTime || viewMode === 'manual')\"\n [disabled]=\"this[WklyPickerInputsPropertyKeys.Disabled]\"\n [attr.aria-label]=\"isRange ? t(i === 0 ? 'start' : 'end') : null\"\n >\n <legend *ngIf=\"isRange\">\n <ng-container\n *ngIf=\"\n i === 1 && hasDate && viewMode === 'manual';\n else endpointLabel\n \"\n >\n <span class=\"end-view-toggle\">\n <button\n type=\"button\"\n [disabled]=\"this[WklyPickerInputsPropertyKeys.Disabled]\"\n [attr.aria-pressed]=\"endView === 'date'\"\n (click)=\"toggleEndView('date')\"\n >\n {{ t(\"end\") }}\n </button>\n <button\n type=\"button\"\n [disabled]=\"this[WklyPickerInputsPropertyKeys.Disabled]\"\n [attr.aria-pressed]=\"endView === 'days'\"\n (click)=\"toggleEndView('days')\"\n >\n {{ inDaysLabel }}\n </button>\n </span>\n </ng-container>\n <ng-template #endpointLabel>{{\n t(i === 0 ? \"start\" : \"end\")\n }}</ng-template>\n </legend>\n <div\n *ngIf=\"\n i === 1 && hasDate && viewMode === 'manual' && endView === 'days'\n \"\n class=\"date-fields in-days-fields\"\n >\n <span class=\"resulting-end-date\" [attr.aria-label]=\"t('endDate')\">{{\n resultingEndDate\n }}</span>\n <wkly-field\n [label]=\"t('days')\"\n [hideLabel]=\"true\"\n [previousLabel]=\"t('daysPrevious')\"\n [nextLabel]=\"t('daysNext')\"\n [locale]=\"effectiveLocale\"\n [value]=\"inDays\"\n [min]=\"-9999\"\n [max]=\"9999\"\n [disabled]=\"this[WklyPickerInputsPropertyKeys.Disabled]\"\n [invalid]=\"!!errors.length\"\n (valueChange)=\"days($event)\"\n (complete)=\"finish()\"\n ></wkly-field>\n </div>\n <div\n *ngIf=\"\n hasDate && viewMode === 'manual' && (i === 0 || endView === 'date')\n \"\n class=\"date-fields\"\n >\n <wkly-field\n [label]=\"t('day')\"\n [locale]=\"effectiveLocale\"\n [value]=\"draft.date.day\"\n [min]=\"1\"\n [max]=\"31\"\n [disabled]=\"this[WklyPickerInputsPropertyKeys.Disabled]\"\n [invalid]=\"!!errors.length\"\n (valueChange)=\"field(i, 'day', $event)\"\n (complete)=\"finish()\"\n ></wkly-field>\n <wkly-field\n [label]=\"t('month')\"\n [locale]=\"effectiveLocale\"\n [value]=\"draft.date.month\"\n [min]=\"1\"\n [max]=\"monthCount(draft)\"\n [labels]=\"months(draft)\"\n [disabled]=\"this[WklyPickerInputsPropertyKeys.Disabled]\"\n [invalid]=\"!!errors.length\"\n (valueChange)=\"field(i, 'month', $event)\"\n (complete)=\"finish()\"\n ></wkly-field>\n <wkly-field\n [label]=\"t('year')\"\n [locale]=\"effectiveLocale\"\n [value]=\"draft.date.year\"\n [min]=\"adapter.supportedYearRange[0]\"\n [max]=\"adapter.supportedYearRange[1]\"\n [disabled]=\"this[WklyPickerInputsPropertyKeys.Disabled]\"\n [invalid]=\"!!errors.length\"\n (valueChange)=\"field(i, 'year', $event)\"\n (complete)=\"finish()\"\n ></wkly-field>\n </div>\n <div\n *ngIf=\"hasTime\"\n class=\"time-fields\"\n [class.seconds]=\"this[WklyPickerInputsPropertyKeys.ShowSeconds]\"\n >\n <wkly-field\n [label]=\"t('hour')\"\n [locale]=\"effectiveLocale\"\n [value]=\"displayHour(draft)\"\n [min]=\"effectiveHourCycle === 'h12' ? 1 : 0\"\n [max]=\"effectiveHourCycle === 'h12' ? 12 : 23\"\n [disabled]=\"this[WklyPickerInputsPropertyKeys.Disabled]\"\n [invalid]=\"!!errors.length\"\n (valueChange)=\"field(i, 'hour', $event)\"\n (complete)=\"finish()\"\n ></wkly-field>\n <wkly-field\n [label]=\"t('minute')\"\n [locale]=\"effectiveLocale\"\n [value]=\"draft.minute\"\n [max]=\"59\"\n [step]=\"\n this[WklyPickerInputsPropertyKeys.MinuteStep] > 0 &&\n 60 % this[WklyPickerInputsPropertyKeys.MinuteStep] === 0\n ? this[WklyPickerInputsPropertyKeys.MinuteStep]\n : 1\n \"\n [disabled]=\"this[WklyPickerInputsPropertyKeys.Disabled]\"\n [invalid]=\"!!errors.length\"\n (valueChange)=\"field(i, 'minute', $event)\"\n (complete)=\"finish()\"\n ></wkly-field>\n <wkly-field\n *ngIf=\"this[WklyPickerInputsPropertyKeys.ShowSeconds]\"\n [label]=\"t('second')\"\n [locale]=\"effectiveLocale\"\n [value]=\"draft.second\"\n [max]=\"59\"\n [step]=\"\n this[WklyPickerInputsPropertyKeys.SecondStep] > 0 &&\n 60 % this[WklyPickerInputsPropertyKeys.SecondStep] === 0\n ? this[WklyPickerInputsPropertyKeys.SecondStep]\n : 1\n \"\n [disabled]=\"this[WklyPickerInputsPropertyKeys.Disabled]\"\n [invalid]=\"!!errors.length\"\n (valueChange)=\"field(i, 'second', $event)\"\n (complete)=\"finish()\"\n ></wkly-field>\n <div class=\"period\">\n <button\n *ngIf=\"\n effectiveHourCycle === 'h12' ||\n this[WklyPickerInputsPropertyKeys.HourCycle] === 'switchable'\n \"\n type=\"button\"\n [disabled]=\"this[WklyPickerInputsPropertyKeys.Disabled]\"\n [attr.aria-pressed]=\"\n effectiveHourCycle === 'h12' && (draft.hour || 0) < 12\n \"\n (click)=\"period(i, 'am')\"\n >\n {{ t(\"am\") }}</button\n ><button\n type=\"button\"\n [disabled]=\"\n this[WklyPickerInputsPropertyKeys.Disabled] ||\n this[WklyPickerInputsPropertyKeys.HourCycle] !== 'switchable'\n \"\n [attr.aria-pressed]=\"effectiveHourCycle === 'h24'\"\n (click)=\"period(i, '24')\"\n >\n 24</button\n ><button\n *ngIf=\"\n effectiveHourCycle === 'h12' ||\n this[WklyPickerInputsPropertyKeys.HourCycle] === 'switchable'\n \"\n type=\"button\"\n [disabled]=\"this[WklyPickerInputsPropertyKeys.Disabled]\"\n [attr.aria-pressed]=\"\n effectiveHourCycle === 'h12' && (draft.hour || 0) >= 12\n \"\n (click)=\"period(i, 'pm')\"\n >\n {{ t(\"pm\") }}\n </button>\n </div>\n </div>\n </fieldset>\n </ng-container>\n <div class=\"validation\" role=\"status\" aria-live=\"polite\">\n <p *ngFor=\"let err of errors\">! {{ t(err.messageKey) }}</p>\n </div>\n <footer *ngIf=\"submitVisible\">\n <button\n type=\"button\"\n class=\"confirm\"\n [disabled]=\"!canSubmit\"\n (click)=\"submit()\"\n >\n {{ t(\"confirm\") }}\n </button>\n </footer>\n</section>\n","import {\n ApplicationRef,\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n ElementRef,\n forwardRef,\n HostListener,\n Inject,\n Injectable,\n Injector,\n OnChanges,\n OnDestroy,\n Optional,\n PLATFORM_ID,\n} from \"@angular/core\";\nimport { DOCUMENT, isPlatformBrowser } from \"@angular/common\";\nimport {\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from \"@angular/forms\";\nimport {\n validateSelection,\n WklyGregorianCalendarAdapter,\n WklyCalendarDate,\n WklyPickerValue,\n WklyValidationError,\n} from \"@wkly/adapters\";\nimport { Subscription } from \"rxjs\";\nimport {\n coerceBoolean,\n INPUT_NAMES,\n WklyCloseReason,\n WklyJumpOptions,\n WklyPickerInputs,\n WklyPickerInputsPropertyKeys,\n WklyPickerOutputsPropertyKeys,\n} from \"./config\";\nimport { WklyDateTimePickerComponent } from \"./picker.component\";\nexport interface WklyPresentationRef {\n readonly component: ComponentRef<WklyDateTimePickerComponent>;\n destroy(): void;\n}\n/** Native-dialog factory. Browser resources are allocated only by open(). */\n@Injectable({ providedIn: \"root\" })\nexport class WklyDateTimePickerDialogService {\n constructor(\n private resolver: ComponentFactoryResolver,\n private injector: Injector,\n private app: ApplicationRef,\n @Inject(DOCUMENT) private document: Document,\n @Inject(PLATFORM_ID) private platform: Object,\n ) {}\n open(\n trigger: HTMLElement,\n onCancel: (reason: WklyCloseReason) => void,\n backdrop = true,\n injector?: Injector,\n ): WklyPresentationRef {\n if (!isPlatformBrowser(this.platform))\n throw new Error(\"Picker presentations can only open in a browser\");\n const dialog = this.document.createElement(\n \"dialog\",\n ) as HTMLDialogElement & {\n showModal(): void;\n close(): void;\n };\n dialog.setAttribute(\"aria-label\", \"Date and time picker\");\n Object.assign(dialog.style, {\n padding: \"0\",\n border: \"0\",\n borderRadius: \"14px\",\n width: \"min(390px, 100vw)\",\n maxWidth: \"100vw\",\n maxHeight: \"94vh\",\n background: \"transparent\",\n });\n const component = this.resolver\n .resolveComponentFactory(WklyDateTimePickerComponent)\n .create(injector || this.injector);\n component.instance.presentation = \"transient\";\n dialog.appendChild(component.location.nativeElement);\n this.document.body.appendChild(dialog);\n this.app.attachView(component.hostView);\n const cancel = (event: Event) => {\n event.preventDefault();\n onCancel(\"escape\");\n };\n const click = (event: MouseEvent) => {\n if (backdrop && event.target === dialog) {\n const r = dialog.getBoundingClientRect();\n if (\n event.clientX < r.left ||\n event.clientX > r.right ||\n event.clientY < r.top ||\n event.clientY > r.bottom\n )\n onCancel(\"backdrop\");\n }\n };\n const keydown = (event: KeyboardEvent) => {\n if (event.key !== \"Tab\") return;\n const controls = Array.from(\n dialog.querySelectorAll<HTMLElement>(\n 'button:not(:disabled),input:not(:disabled),[tabindex=\"0\"]',\n ),\n ).filter(\n (el) =>\n el.tabIndex >= 0 &&\n el.getClientRects().length &&\n getComputedStyle(el).visibility !== \"hidden\",\n );\n const first = controls[0],\n last = controls[controls.length - 1];\n if (\n first &&\n (event.shiftKey\n ? this.document.activeElement === first\n : this.document.activeElement === last)\n ) {\n event.preventDefault();\n (event.shiftKey ? last : first).focus();\n }\n };\n dialog.addEventListener(\"cancel\", cancel);\n dialog.addEventListener(\"click\", click);\n dialog.addEventListener(\"keydown\", keydown);\n dialog.showModal();\n return {\n component,\n destroy: () => {\n dialog.removeEventListener(\"cancel\", cancel);\n dialog.removeEventListener(\"click\", click);\n dialog.removeEventListener(\"keydown\", keydown);\n dialog.close();\n this.app.detachView(component.hostView);\n component.destroy();\n dialog.remove();\n trigger.focus();\n },\n };\n }\n}\n/** Shared trigger lifecycle; optional presentation packages extend this class. */\n@Directive()\nexport abstract class WklyTriggerBase\n extends WklyPickerInputs\n implements ControlValueAccessor, Validator, OnChanges, OnDestroy\n{\n protected ref: WklyPresentationRef | null = null;\n protected subscriptions: Subscription[] = [];\n private errors: readonly WklyValidationError[] = [];\n private change: (value: WklyPickerValue) => void = () => {};\n private touched: () => void = () => {};\n private validation: () => void = () => {};\n constructor(protected element: ElementRef<HTMLElement>) {\n super();\n }\n protected abstract create(): WklyPresentationRef;\n @HostListener(\"click\") open(): void {\n if (this[WklyPickerInputsPropertyKeys.Disabled] || this.ref) return;\n this.ref = this.create();\n const picker = this.ref.component.instance;\n this.copy();\n this.subscriptions = [\n picker[WklyPickerOutputsPropertyKeys.ValueChange].subscribe((value) => {\n this[WklyPickerInputsPropertyKeys.Value] = value;\n this.change(value);\n this[WklyPickerOutputsPropertyKeys.ValueChange].emit(value);\n this.display();\n }),\n picker[WklyPickerOutputsPropertyKeys.ValidationChange].subscribe(\n (errors) => {\n this.errors = errors;\n this[WklyPickerOutputsPropertyKeys.ValidationChange].emit(errors);\n this.validation();\n },\n ),\n picker[WklyPickerOutputsPropertyKeys.Closed].subscribe((reason) =>\n this.close(reason),\n ),\n picker[WklyPickerOutputsPropertyKeys.ViewportChange].subscribe((value) =>\n this[WklyPickerOutputsPropertyKeys.ViewportChange].emit(value),\n ),\n picker[WklyPickerOutputsPropertyKeys.ViewModeChange].subscribe((value) =>\n this[WklyPickerOutputsPropertyKeys.ViewModeChange].emit(value),\n ),\n ];\n this.ref.component.changeDetectorRef.detectChanges();\n picker.focusDay();\n this[WklyPickerOutputsPropertyKeys.Opened].emit();\n }\n @HostListener(\"keydown\", [\"$event\"]) key(event: KeyboardEvent): void {\n if (\n event.key === \"Enter\" ||\n event.key === \" \" ||\n event.key === \"ArrowDown\"\n ) {\n event.preventDefault();\n this.open();\n }\n }\n @HostListener(\"blur\") blur(): void {\n this.touched();\n }\n close(reason: WklyCloseReason = \"programmatic\"): void {\n if (!this.ref) return;\n const ref = this.ref;\n this.ref = null;\n this.subscriptions.forEach((s) => s.unsubscribe());\n this.subscriptions = [];\n ref.destroy();\n this.touched();\n this[WklyPickerOutputsPropertyKeys.Closed].emit(reason);\n }\n ngOnChanges(): void {\n [\n WklyPickerInputsPropertyKeys.ShowSeconds,\n WklyPickerInputsPropertyKeys.AllowRangeAcrossDisabled,\n WklyPickerInputsPropertyKeys.Required,\n WklyPickerInputsPropertyKeys.Disabled,\n WklyPickerInputsPropertyKeys.CloseOnBackdrop,\n ].forEach(\n (key) => ((this as any)[key] = coerceBoolean((this as any)[key])),\n );\n this.checkValue();\n this.display();\n if (this.ref) {\n this.copy();\n this.ref.component.instance.ngOnChanges({\n [WklyPickerInputsPropertyKeys.Value]: true,\n });\n this.ref.component.changeDetectorRef.detectChanges();\n }\n }\n ngOnDestroy(): void {\n this.close();\n }\n private copy(): void {\n if (this.ref)\n for (const name of INPUT_NAMES)\n (this.ref.component.instance as any)[name] = (this as any)[name];\n }\n private display(): void {\n const host = this.element.nativeElement as HTMLInputElement;\n if (host.tagName === \"INPUT\") {\n host.readOnly = true;\n const value = this[WklyPickerInputsPropertyKeys.Value];\n host.value =\n value === null\n ? \"\"\n : typeof value === \"string\"\n ? value\n : value.join(\" — \");\n host.disabled = this[WklyPickerInputsPropertyKeys.Disabled];\n host.setAttribute(\"aria-haspopup\", \"dialog\");\n }\n }\n private checkValue(): void {\n this.errors = validateSelection(\n this[WklyPickerInputsPropertyKeys.Value],\n this,\n this[WklyPickerInputsPropertyKeys.CalendarAdapter] ||\n new WklyGregorianCalendarAdapter(\n this[WklyPickerInputsPropertyKeys.Locale] || \"en-US\",\n ),\n );\n this[WklyPickerOutputsPropertyKeys.ValidationChange].emit(this.errors);\n this.validation();\n }\n writeValue(value: WklyPickerValue): void {\n this[WklyPickerInputsPropertyKeys.Value] = value;\n this.checkValue();\n this.display();\n if (this.ref) this.ref.component.instance.writeValue(value);\n }\n registerOnChange(fn: (value: WklyPickerValue) => void): void {\n this.change = fn;\n }\n registerOnTouched(fn: () => void): void {\n this.touched = fn;\n }\n setDisabledState(value: boolean): void {\n this[WklyPickerInputsPropertyKeys.Disabled] = value;\n this.display();\n if (this.ref) this.ref.component.instance.setDisabledState(value);\n }\n validate(): ValidationErrors | null {\n return this.errors.length ? { wkly: this.errors } : null;\n }\n registerOnValidatorChange(fn: () => void): void {\n this.validation = fn;\n }\n scrollToEpochDay(day: number, options?: WklyJumpOptions): void {\n this.open();\n this.ref?.component.instance.scrollToEpochDay(day, options);\n }\n scrollToAbsoluteWeek(week: number, options?: WklyJumpOptions): void {\n this.open();\n this.ref?.component.instance.scrollToAbsoluteWeek(week, options);\n }\n scrollToCalendarDate(\n date: WklyCalendarDate,\n options?: WklyJumpOptions,\n ): void {\n this.open();\n this.ref?.component.instance.scrollToCalendarDate(date, options);\n }\n scrollToValue(value: string, options?: WklyJumpOptions): void {\n this.open();\n this.ref?.component.instance.scrollToValue(value, options);\n }\n}\n@Directive({\n selector: \"[wklyDateTimePickerDialog]\",\n exportAs: \"wklyDialog\",\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => WklyDateTimePickerDialogDirective),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => WklyDateTimePickerDialogDirective),\n multi: true,\n },\n ],\n})\nexport class WklyDateTimePickerDialogDirective extends WklyTriggerBase {\n constructor(\n element: ElementRef<HTMLElement>,\n private service: WklyDateTimePickerDialogService,\n private triggerInjector: Injector,\n ) {\n super(element);\n }\n protected create(): WklyPresentationRef {\n return this.service.open(\n this.element.nativeElement,\n (reason) => this.close(reason),\n this[WklyPickerInputsPropertyKeys.CloseOnBackdrop],\n this.triggerInjector,\n );\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { WklyDateTimePickerComponent } from \"./picker.component\";\nimport { WklyDateTimePickerDialogDirective } from \"./presentation\";\nimport { WklyFieldComponent } from \"./field.component\";\nexport * from \"./config\";\nexport { WklyDateTimePickerComponent } from \"./picker.component\";\nexport {\n WklyPresentationRef,\n WklyDateTimePickerDialogService,\n WklyTriggerBase,\n WklyDateTimePickerDialogDirective,\n} from \"./presentation\";\nexport { WklyFieldComponent } from \"./field.component\";\nexport {\n WklyPickerValue,\n WklyIsoString,\n WklyRangeValue,\n WklySelectionMode,\n WklyValidationError,\n WklyValidationErrorCode,\n WklyViewportPreset,\n WklyHourCycle,\n WklyEndpoint,\n WklyDisabledDatePredicate,\n WklyDisabledTimePredicate,\n WklyRangeValidator,\n WklyWeekLabelMode,\n WklyWeekLabelFormatter,\n} from \"@wkly/adapters\";\n@NgModule({\n imports: [CommonModule],\n declarations: [\n WklyDateTimePickerComponent,\n WklyDateTimePickerDialogDirective,\n WklyFieldComponent,\n ],\n entryComponents: [WklyDateTimePickerComponent],\n exports: [WklyDateTimePickerComponent, WklyDateTimePickerDialogDirective],\n})\nexport class WklyDateTimePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.WklyFieldComponent"],"mappings":"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"}
@@ -1,143 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { Injectable, forwardRef, Directive, NgModule } from '@angular/core';
3
- import { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
4
- import * as i1 from '@angular/cdk/overlay';
5
- import { OverlayModule } from '@angular/cdk/overlay';
6
- import { ComponentPortal } from '@angular/cdk/portal';
7
- import * as i2 from '@angular/cdk/a11y';
8
- import { WklyDateTimePickerComponent, WklyTriggerBase, WklyPickerInputsPropertyKeys, WklyDateTimePickerModule } from '@wkly/datetime-picker';
9
-
10
- class WklyDateTimePickerOverlayService {
11
- constructor(overlay, injector, traps) {
12
- this.overlay = overlay;
13
- this.injector = injector;
14
- this.traps = traps;
15
- }
16
- open(trigger, onCancel, backdrop = true, injector) {
17
- const overlay = this.overlay.create({
18
- width: "390px",
19
- maxWidth: "100vw",
20
- maxHeight: "94vh",
21
- hasBackdrop: true,
22
- backdropClass: "cdk-overlay-transparent-backdrop",
23
- scrollStrategy: this.overlay.scrollStrategies.block(),
24
- positionStrategy: this.overlay
25
- .position()
26
- .flexibleConnectedTo(trigger)
27
- .withPush(true)
28
- .withFlexibleDimensions(false)
29
- .withLockedPosition(true)
30
- .withPositions([
31
- {
32
- originX: "start",
33
- originY: "bottom",
34
- overlayX: "start",
35
- overlayY: "top",
36
- offsetY: 6,
37
- },
38
- {
39
- originX: "start",
40
- originY: "top",
41
- overlayX: "start",
42
- overlayY: "bottom",
43
- offsetY: -6,
44
- },
45
- ]),
46
- });
47
- const component = overlay.attach(new ComponentPortal(WklyDateTimePickerComponent, null, injector || this.injector));
48
- component.instance.presentation = "transient";
49
- overlay.overlayElement.setAttribute("role", "dialog");
50
- overlay.overlayElement.setAttribute("aria-modal", "true");
51
- overlay.overlayElement.setAttribute("aria-label", "Date and time picker");
52
- overlay.overlayElement.style.overflow = "auto";
53
- const trap = this.traps.create(overlay.overlayElement);
54
- const sub = overlay.backdropClick().subscribe(() => {
55
- if (backdrop)
56
- onCancel("backdrop");
57
- });
58
- const key = overlay.keydownEvents().subscribe((event) => {
59
- if (event.key === "Escape") {
60
- event.preventDefault();
61
- onCancel("escape");
62
- }
63
- });
64
- return {
65
- component,
66
- destroy: () => {
67
- sub.unsubscribe();
68
- key.unsubscribe();
69
- trap.destroy();
70
- overlay.dispose();
71
- trigger.focus();
72
- },
73
- };
74
- }
75
- }
76
- WklyDateTimePickerOverlayService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WklyDateTimePickerOverlayService, deps: [{ token: i1.Overlay }, { token: i0.Injector }, { token: i2.FocusTrapFactory }], target: i0.ɵɵFactoryTarget.Injectable });
77
- WklyDateTimePickerOverlayService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WklyDateTimePickerOverlayService, providedIn: "root" });
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WklyDateTimePickerOverlayService, decorators: [{
79
- type: Injectable,
80
- args: [{ providedIn: "root" }]
81
- }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.Injector }, { type: i2.FocusTrapFactory }]; } });
82
- class WklyDateTimePickerOverlayDirective extends WklyTriggerBase {
83
- constructor(element, service, triggerInjector) {
84
- super(element);
85
- this.service = service;
86
- this.triggerInjector = triggerInjector;
87
- }
88
- create() {
89
- return this.service.open(this.element.nativeElement, (reason) => this.close(reason), this[WklyPickerInputsPropertyKeys.CloseOnBackdrop], this.triggerInjector);
90
- }
91
- }
92
- WklyDateTimePickerOverlayDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WklyDateTimePickerOverlayDirective, deps: [{ token: i0.ElementRef }, { token: WklyDateTimePickerOverlayService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
93
- WklyDateTimePickerOverlayDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: WklyDateTimePickerOverlayDirective, selector: "[wklyDateTimePickerOverlay]", providers: [
94
- {
95
- provide: NG_VALUE_ACCESSOR,
96
- useExisting: forwardRef(() => WklyDateTimePickerOverlayDirective),
97
- multi: true,
98
- },
99
- {
100
- provide: NG_VALIDATORS,
101
- useExisting: forwardRef(() => WklyDateTimePickerOverlayDirective),
102
- multi: true,
103
- },
104
- ], exportAs: ["wklyOverlay"], usesInheritance: true, ngImport: i0 });
105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WklyDateTimePickerOverlayDirective, decorators: [{
106
- type: Directive,
107
- args: [{
108
- selector: "[wklyDateTimePickerOverlay]",
109
- exportAs: "wklyOverlay",
110
- providers: [
111
- {
112
- provide: NG_VALUE_ACCESSOR,
113
- useExisting: forwardRef(() => WklyDateTimePickerOverlayDirective),
114
- multi: true,
115
- },
116
- {
117
- provide: NG_VALIDATORS,
118
- useExisting: forwardRef(() => WklyDateTimePickerOverlayDirective),
119
- multi: true,
120
- },
121
- ],
122
- }]
123
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: WklyDateTimePickerOverlayService }, { type: i0.Injector }]; } });
124
- class WklyDateTimePickerOverlayModule {
125
- }
126
- WklyDateTimePickerOverlayModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WklyDateTimePickerOverlayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
127
- WklyDateTimePickerOverlayModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: WklyDateTimePickerOverlayModule, declarations: [WklyDateTimePickerOverlayDirective], imports: [OverlayModule, WklyDateTimePickerModule], exports: [WklyDateTimePickerOverlayDirective] });
128
- WklyDateTimePickerOverlayModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WklyDateTimePickerOverlayModule, imports: [OverlayModule, WklyDateTimePickerModule] });
129
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WklyDateTimePickerOverlayModule, decorators: [{
130
- type: NgModule,
131
- args: [{
132
- imports: [OverlayModule, WklyDateTimePickerModule],
133
- declarations: [WklyDateTimePickerOverlayDirective],
134
- exports: [WklyDateTimePickerOverlayDirective],
135
- }]
136
- }] });
137
-
138
- /**
139
- * Generated bundle index. Do not edit.
140
- */
141
-
142
- export { WklyDateTimePickerOverlayDirective, WklyDateTimePickerOverlayModule, WklyDateTimePickerOverlayService };
143
- //# sourceMappingURL=wkly-datetime-picker-cdk-overlay.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wkly-datetime-picker-cdk-overlay.mjs","sources":["../../../projects/wkly-datetime-picker.15/cdk-overlay/public-api.ts","../../../projects/wkly-datetime-picker.15/cdk-overlay/wkly-datetime-picker-cdk-overlay.ts"],"sourcesContent":["import {\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n forwardRef,\n Injectable,\n Injector,\n NgModule,\n} from \"@angular/core\";\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { Overlay, OverlayModule } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { FocusTrapFactory } from \"@angular/cdk/a11y\";\nimport {\n WklyDateTimePickerComponent,\n WklyDateTimePickerModule,\n WklyCloseReason,\n WklyPresentationRef,\n WklyTriggerBase,\n WklyPickerInputsPropertyKeys,\n} from \"@wkly/datetime-picker\";\n@Injectable({ providedIn: \"root\" })\nexport class WklyDateTimePickerOverlayService {\n constructor(\n private overlay: Overlay,\n private injector: Injector,\n private traps: FocusTrapFactory,\n ) {}\n open(\n trigger: HTMLElement,\n onCancel: (reason: WklyCloseReason) => void,\n backdrop = true,\n injector?: Injector,\n ): WklyPresentationRef {\n const overlay = this.overlay.create({\n width: \"390px\",\n maxWidth: \"100vw\",\n maxHeight: \"94vh\",\n hasBackdrop: true,\n backdropClass: \"cdk-overlay-transparent-backdrop\",\n scrollStrategy: this.overlay.scrollStrategies.block(),\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(trigger)\n .withPush(true)\n .withFlexibleDimensions(false)\n .withLockedPosition(true)\n .withPositions([\n {\n originX: \"start\",\n originY: \"bottom\",\n overlayX: \"start\",\n overlayY: \"top\",\n offsetY: 6,\n },\n {\n originX: \"start\",\n originY: \"top\",\n overlayX: \"start\",\n overlayY: \"bottom\",\n offsetY: -6,\n },\n ]),\n });\n const component = overlay.attach(\n new ComponentPortal(\n WklyDateTimePickerComponent,\n null,\n injector || this.injector,\n ),\n );\n component.instance.presentation = \"transient\";\n overlay.overlayElement.setAttribute(\"role\", \"dialog\");\n overlay.overlayElement.setAttribute(\"aria-modal\", \"true\");\n overlay.overlayElement.setAttribute(\"aria-label\", \"Date and time picker\");\n overlay.overlayElement.style.overflow = \"auto\";\n const trap = this.traps.create(overlay.overlayElement);\n const sub = overlay.backdropClick().subscribe(() => {\n if (backdrop) onCancel(\"backdrop\");\n });\n const key = overlay.keydownEvents().subscribe((event) => {\n if (event.key === \"Escape\") {\n event.preventDefault();\n onCancel(\"escape\");\n }\n });\n return {\n component,\n destroy: () => {\n sub.unsubscribe();\n key.unsubscribe();\n trap.destroy();\n overlay.dispose();\n trigger.focus();\n },\n };\n }\n}\n@Directive({\n selector: \"[wklyDateTimePickerOverlay]\",\n exportAs: \"wklyOverlay\",\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => WklyDateTimePickerOverlayDirective),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => WklyDateTimePickerOverlayDirective),\n multi: true,\n },\n ],\n})\nexport class WklyDateTimePickerOverlayDirective extends WklyTriggerBase {\n constructor(\n element: ElementRef<HTMLElement>,\n private service: WklyDateTimePickerOverlayService,\n private triggerInjector: Injector,\n ) {\n super(element);\n }\n protected create(): WklyPresentationRef {\n return this.service.open(\n this.element.nativeElement,\n (reason) => this.close(reason),\n this[WklyPickerInputsPropertyKeys.CloseOnBackdrop],\n this.triggerInjector,\n );\n }\n}\n@NgModule({\n imports: [OverlayModule, WklyDateTimePickerModule],\n declarations: [WklyDateTimePickerOverlayDirective],\n exports: [WklyDateTimePickerOverlayDirective],\n})\nexport class WklyDateTimePickerOverlayModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}