igniteui-webcomponents
Version:
Ignite UI for Web Components is a complete library of UI components, giving you the ability to build modern web applications using encapsulation and the concept of reusable components in a dependency-free approach.
166 lines (165 loc) • 6.87 kB
TypeScript
import { LitElement, type PropertyValues, type TemplateResult } from 'lit';
import type { ThemingController } from '../../theming/theming-controller.js';
import { type MaskSelection } from '../common/mixins/mask-behavior.js';
import type { DatePartDeltas } from './date-part.js';
export type { MaskSelection };
declare const IgcDateTimeInputBaseComponent_base: import("../common/mixins/constructor.js").AbstractConstructor<import("../common/mixins/mask-behavior.js").MaskBehaviorElementInterface> & import("../common/mixins/constructor.js").Constructor<import("../common/mixins/forms/types.js").FormRequiredInterface & import("../common/mixins/forms/types.js").FormAssociatedElementInterface> & typeof LitElement;
export declare abstract class IgcDateTimeInputBaseComponent extends IgcDateTimeInputBaseComponent_base {
protected abstract readonly _themes: ThemingController;
protected readonly _slots: import("../common/controllers/slot.js").SlotController<"invalid" | "prefix" | "[default]" | "helper-text" | "suffix" | "value-missing" | "custom-error" | "range-overflow" | "range-underflow">;
protected readonly _inputId: string;
protected readonly _input?: HTMLInputElement;
/**
* Externally supplied label elements forwarded by a composite host (e.g. `igc-date-picker`)
* so that the host's associated labels reach the inner native input. When set, these take
* precedence over the component's own `ElementInternals` labels.
*
* @hidden @internal
*/
_labelElements: ReadonlyArray<Element> | null;
/**
* Resolves the label elements applied to the native input as `aria-labelledby` targets,
* preferring forwarded labels over the component's own `ElementInternals` labels.
*
* @hidden @internal
*/
protected get _resolvedLabelElements(): ReadonlyArray<Element> | null;
protected get __validators(): import("../common/validators.js").Validator<import("./date-time-input.js").default>[];
private readonly _i18nController;
protected _min: Date | null;
protected _max: Date | null;
protected _defaultMask: string;
protected _defaultDisplayFormat: string;
protected _displayFormat?: string;
protected _inputFormat?: string;
protected get _targetDatePart(): unknown;
/**
* Whether the control will have outlined appearance.
*
* @attr
* @default false
*/
outlined: boolean;
/**
* The placeholder attribute of the control.
* @attr
*/
placeholder: string;
/**
* The label for the control.
* @attr
*/
label: string;
/**
* The date format to apply on the input.
* @attr input-format
*/
get inputFormat(): string;
set inputFormat(val: string);
/**
* The minimum value required for the input to remain valid.
* @attr
*/
set min(value: Date | string | null | undefined);
get min(): Date | null;
/**
* The maximum value required for the input to remain valid.
* @attr
*/
set max(value: Date | string | null | undefined);
get max(): Date | null;
/**
* Format to display the value in when not editing.
* Defaults to the locale format if not set.
* @attr display-format
*/
set displayFormat(value: string);
get displayFormat(): string;
/**
* Delta values used to increment or decrement each date part on step actions.
* All values default to `1`.
*/
spinDelta?: DatePartDeltas;
/**
* Sets whether to loop over the currently spun segment.
* @attr spin-loop
*/
spinLoop: boolean;
/**
* Gets/Sets the locale used for formatting the display value.
* @attr locale
*/
set locale(value: string);
get locale(): string;
constructor();
protected update(props: PropertyValues<this>): void;
private _handleResourceChange;
protected _handleDragLeave(): void;
protected _handleDragEnter(): void;
/**
* Handles wheel events for spinning date parts.
*/
protected _handleWheel(event: WheelEvent): Promise<void>;
/**
* Navigates to the previous or next date part.
*/
protected _navigateParts(direction: number): void;
/**
* Handles keyboard-triggered spinning (arrow up/down).
*/
protected _keyboardSpin(direction: 'up' | 'down'): Promise<void>;
/**
* Common logic for stepping up or down a date part.
* @internal
*/
protected _performStep(datePart: unknown, delta: number | undefined, isDecrement: boolean): void;
/**
* Updates the displayed mask value based on focus state.
* When focused, shows the editable mask. When unfocused, defers to the leaf's display formatter.
*/
protected _updateMaskDisplay(): void;
/**
* Checks if all mask positions are filled (no prompt characters remain).
*/
protected _isMaskComplete(): boolean;
/**
* Applies a mask pattern to the input, parsing the format string into date parts.
*/
protected _applyMask(formatString: string): void;
/**
* Updates the default display format based on current locale.
*/
private _updateDefaultDisplayFormat;
protected _initializeDefaultMask(): void;
/**
* Resolves the part names for the container based on the current state.
*/
protected _resolvePartNames(base: string): Record<string, boolean>;
/** Selects all the text inside the input. */
select(): void;
/** Sets focus on the control. */
focus(options?: FocusOptions): void;
/** Removes focus from the control. */
blur(): void;
/** Increments a date/time portion. */
stepUp(datePart?: unknown, delta?: number): void;
/** Decrements a date/time portion. */
stepDown(datePart?: unknown, delta?: number): void;
/** Clears the input element of user input. */
abstract clear(): void;
protected _renderInput(): TemplateResult;
protected render(): import("lit-html/directive.js").DirectiveResult<typeof import("lit-html/directives/cache.js").CacheDirective>;
protected abstract get _datePartDeltas(): DatePartDeltas;
protected abstract _buildMaskedValue(): string;
protected abstract _buildDisplayValue(): string;
protected abstract _syncValueFromMask(): void;
protected abstract _calculatePartNavigationPosition(value: string, direction: number): number;
protected abstract _calculateSpunValue(part: unknown, delta: number | undefined, isDecrement: boolean): unknown;
protected abstract _commitSpunValue(value: unknown): void;
protected abstract _setCurrentDateTime(): void;
protected abstract _handleFocus(): Promise<void>;
protected abstract _getDatePartAtCursor(): unknown;
protected abstract _getDefaultDatePart(): unknown;
abstract hasDateParts(): boolean;
abstract hasTimeParts(): boolean;
}