@bimeister/pupakit.forms
Version:
PupaKit Forms
60 lines (59 loc) • 3.15 kB
TypeScript
import { ElementRef, OnChanges } from '@angular/core';
import { NgControl } from '@angular/forms';
import { ComponentChanges } from '@bimeister/pupakit.common';
import { Nullable } from '@bimeister/utilities';
import { BehaviorSubject, Observable } from 'rxjs';
import { TextareaCounterVisibility } from '../../types/textarea-counter-visibility-mode.type';
import { TextareaSize } from '../../types/textarea-size.type';
import { InputBaseControlValueAccessor } from './input-base-control-value-accessor.abstract';
import * as i0 from "@angular/core";
export declare abstract class TextareaBase extends InputBaseControlValueAccessor<string> implements OnChanges {
protected readonly lineHeightSourceRef: ElementRef<HTMLTextAreaElement>;
protected readonly textareaElementRef: ElementRef<HTMLTextAreaElement>;
size: TextareaSize;
readonly size$: BehaviorSubject<TextareaSize>;
readonly placeholder: string;
readonly placeholder$: BehaviorSubject<string>;
readonly autocomplete: boolean;
readonly autocomplete$: BehaviorSubject<boolean>;
readonly isPatched: boolean;
readonly isPatched$: BehaviorSubject<boolean>;
minRows: number;
private readonly minRows$;
readonly minHeightPx$: Observable<number>;
maxRows: number;
private readonly maxRows$;
readonly maxHeightPx$: Observable<Nullable<number>>;
maxLength: Nullable<number>;
readonly maxLength$: BehaviorSubject<Nullable<number>>;
counterVisibility: TextareaCounterVisibility;
readonly counterVisibility$: BehaviorSubject<TextareaCounterVisibility>;
private readonly focus;
private readonly blur;
enterKeyPrevented: boolean;
readonly enterKeyPrevented$: BehaviorSubject<boolean>;
readonly isInvalid$: Observable<boolean>;
private readonly valueLength$;
readonly counterValue$: Observable<string>;
readonly isCounterVisible$: Observable<boolean>;
constructor(ngControl: NgControl);
protected setValue(value: Nullable<string>): void;
ngOnChanges(changes: ComponentChanges<this>): void;
emitFocusEvent(focusEvent: FocusEvent): void;
emitBlurEvent(blurEvent: FocusEvent): void;
preventEnterKeyEvent(event: MouseEvent): void;
focusOnTextareaElement(): void;
processMouseDown(event: MouseEvent): void;
private processSizeChange;
private processPlaceholderChange;
private processAutocompleteChange;
private processIsPatchedChange;
private processMaxLengthChange;
private processMaxRowsChange;
private processMinRowsChange;
private processCounterVisibilityChange;
private processEnterKeyDisabledChange;
private static getHeightPxByRowsCount;
static ɵfac: i0.ɵɵFactoryDeclaration<TextareaBase, [{ optional: true; }]>;
static ɵdir: i0.ɵɵDirectiveDeclaration<TextareaBase, never, never, { "size": "size"; "placeholder": "placeholder"; "autocomplete": "autocomplete"; "isPatched": "isPatched"; "minRows": "minRows"; "maxRows": "maxRows"; "maxLength": "maxLength"; "counterVisibility": "counterVisibility"; "enterKeyPrevented": "enterKeyPrevented"; }, { "focus": "focus"; "blur": "blur"; }, never, never, false>;
}