import * as _angular_core from '@angular/core'; import { ElementRef } from '@angular/core'; import { ControlValueAccessor } from '@angular/forms'; import { WrDateFormat } from 'ngwr/date-adapter'; /** * Unified date / time / date-time picker. Same `` + popover skeleton * for every mode — the overlay content swaps based on `[mode]`: * * - `'date'` (default) — popover renders a calendar. Picking a date closes * the overlay. * - `'time'` — popover renders an `HH:MM[:SS]` stepper with optional AM/PM. * Stays open while editing; close with outside-click or Escape. * - `'datetime'` — popover stacks calendar + time stepper. Picking a date * does NOT close (the user typically wants to set the time next). * * Implements `ControlValueAccessor` — bind via `[(ngModel)]`, `[formControl]`, * or `formControlName`. Value type is `Date | null` for every mode. * * Parses the input on every keystroke (silently — only emits when valid) and * re-formats canonical on blur. Format is driven by {@link WrDateAdapter}: it * accepts both named keys (`'shortDate'`, `'mediumDateTime'`, …) and raw * token strings (`'dd.MM.yyyy'`, `'HH:mm'`). When `format` is left at the * default (`null`), the picker derives the right named key from `mode`: * `'date'` → `'shortDate'`, `'time'` → `'shortTime'`, `'datetime'` → * `'shortDateTime'`. * * @example * ```html * * * * * * * * * ``` * * @see https://ngwr.dev/components/date-picker */ declare class WrDatePicker implements ControlValueAccessor { /** Picker behavior — see class doc. @default 'date' */ readonly mode: _angular_core.InputSignal<"time" | "date" | "datetime">; /** * Format used for both display and parsing. When `null` (default), the * format is derived from `mode` (`shortDate` / `shortTime` / * `shortDateTime`). Pass a named key or raw token string to override. */ readonly format: _angular_core.InputSignal; /** Placeholder shown when the input is empty. */ readonly placeholder: _angular_core.InputSignal; /** Min selectable date (forwarded to the calendar). Ignored in `time` mode. */ readonly min: _angular_core.InputSignal; /** Max selectable date (forwarded to the calendar). Ignored in `time` mode. */ readonly max: _angular_core.InputSignal; /** Predicate to disable specific dates (forwarded to the calendar). Ignored in `time` mode. */ readonly dateFilter: _angular_core.InputSignal<((date: Date) => boolean) | null>; /** Time-panel 12 / 24-hour format. Applies in `time` + `datetime` modes. @default 'auto' */ readonly timeFormat: _angular_core.InputSignal<"auto" | "12h" | "24h">; /** Render the seconds column. Applies in `time` + `datetime` modes. @default false */ readonly showSeconds: _angular_core.InputSignalWithTransform; /** Minute / second step for the time panel. @default 1 */ readonly step: _angular_core.InputSignalWithTransform; /** Disable interaction. @default false */ readonly disabled: _angular_core.InputSignalWithTransform; /** Read-only — input not typeable, but the trigger icon still opens the overlay. @default false */ readonly readonly: _angular_core.InputSignalWithTransform; private readonly adapter; private readonly overlay; private readonly scrollStrategies; private readonly host; private readonly destroyRef; protected readonly inputEl: _angular_core.Signal>; /** The picked Date. Mirrored from the CVA. */ protected readonly value: _angular_core.WritableSignal; /** Text currently in the input (may be partial / invalid mid-type). */ protected readonly text: _angular_core.WritableSignal; private readonly disabledFromCva; protected readonly effectiveDisabled: _angular_core.Signal; /** Whether the popover is currently open. */ protected readonly overlayOpen: _angular_core.WritableSignal; /** Resolved format — falls back to a mode-appropriate default. */ protected readonly resolvedFormat: _angular_core.Signal; protected readonly isTime: _angular_core.Signal; protected readonly isDateTime: _angular_core.Signal; private readonly labelDate; private readonly labelTime; private readonly labelDateTime; protected readonly triggerLabel: _angular_core.Signal; protected readonly classes: _angular_core.Signal; private overlayRef; /** Live calendar ref while the date popover is open — lets the panel track * the typed value in real time (not just on reopen). */ private readonly dateRef; constructor(); private onChange; private onTouched; writeValue(value: Date | null): void; registerOnChange(fn: (value: Date | null) => void): void; registerOnTouched(fn: () => void): void; setDisabledState(isDisabled: boolean): void; protected onInput(event: Event): void; protected onBlur(): void; /** Called by the input's click — opens the overlay if it isn't open already. */ protected openOnInput(): void; protected toggleOverlay(): void; private openOverlay; private attachDate; private attachTime; private attachDateTime; private commit; private closeOverlay; private dispose; private isOutOfBounds; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } export { WrDatePicker };