@bimeister/pupakit.forms
Version:
PupaKit Forms
76 lines (75 loc) • 4.27 kB
TypeScript
import { CdkOverlayOrigin, OverlayRef } from '@angular/cdk/overlay';
import { ElementRef, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';
import { NgControl } from '@angular/forms';
import { Nullable } from '@bimeister/utilities';
import { BehaviorSubject, Observable, Subscription } from 'rxjs';
import { SelectStateServiceDeclaration as SelectStateServiceInterface } from '../../../declarations/interfaces/select-state-service-declaration.interface';
import { OnChangeCallback } from '../../../declarations/types/on-change-callback.type';
import { OnTouchedCallback } from '../../../declarations/types/on-touched-callback.type';
import { SelectOuterValue } from '../../../declarations/types/select-outer-value.type';
import { SelectSize } from '../../../declarations/types/select-size.type';
import * as i0 from "@angular/core";
export declare class SelectStateService<T> implements SelectStateServiceInterface<T>, OnDestroy {
private readonly document;
private readonly currentSerializedValue$;
readonly currentValue$: Observable<T[]>;
private readonly subscription;
private readonly isMultiSelectionEnabled$;
private readonly isUnselectionEnabled$;
readonly isDisabled$: BehaviorSubject<boolean>;
readonly isExpanded$: BehaviorSubject<boolean>;
readonly control$: BehaviorSubject<Nullable<NgControl>>;
readonly isTouched$: BehaviorSubject<Nullable<boolean>>;
readonly isPatched$: BehaviorSubject<Nullable<boolean>>;
readonly isValid$: Observable<boolean>;
readonly isFilled$: BehaviorSubject<boolean>;
readonly withReset$: BehaviorSubject<boolean>;
readonly inline$: BehaviorSubject<boolean>;
readonly size$: BehaviorSubject<SelectSize>;
readonly isTriggerTouched$: BehaviorSubject<boolean>;
readonly invalidTooltipHideOnHover$: BehaviorSubject<boolean>;
readonly invalidTooltipDisabled$: BehaviorSubject<boolean>;
readonly invalidTooltip$: BehaviorSubject<Nullable<string>>;
readonly invalidTooltipContentTemplate$: BehaviorSubject<Nullable<TemplateRef<unknown>>>;
readonly placeholder$: BehaviorSubject<Nullable<string>>;
private readonly onChangeCallback$;
private readonly onTouchedCallback$;
readonly dropdownOverlayOrigin$: BehaviorSubject<CdkOverlayOrigin>;
private readonly dropdownTriggerButton$;
readonly dropdownOverlayRef$: BehaviorSubject<OverlayRef>;
readonly dropdownTriggerButtonWidthPx$: Observable<number>;
readonly resetOutput: EventEmitter<void>;
constructor(document: Document);
ngOnDestroy(): void;
setControlRef(control: NgControl): void;
collapse(): void;
open(): void;
toggleExpansion(): void;
defineDropdownTrigger(overlayOrigin: CdkOverlayOrigin, buttonElement: HTMLButtonElement): void;
defineDropdownOverlayRef(overlayRef: OverlayRef): void;
defineOnChangeCallback(onChange: OnChangeCallback<T[]>): void;
defineOnTouchedCallback(onTouched: OnTouchedCallback): void;
setMultiSelectionState(isEnabled: boolean): void;
setIsTriggerTouchedState(isTriggerTouched: boolean): void;
setUnselectionState(isEnabled: boolean): void;
setIsPatchedState(isPatched: boolean): void;
setPlaceholderState(placeholder: string): void;
setWithResetState(withReset: boolean): void;
setInlineState(inline: boolean): void;
setSizeState(size: SelectSize): void;
setInvalidTooltipHideOnHoverState(invalidTooltipHideOnHover: boolean): void;
setInvalidTooltipDisabledState(invalidTooltipDisabled: boolean): void;
setInvalidTooltipState(invalidTooltip: Nullable<string>): void;
setInvalidTooltipContentTemplateState(invalidTooltipContentTemplate: Nullable<TemplateRef<unknown>>): void;
setDisabledState(isDisabled: boolean): void;
processSelection(value: T): void;
setIsFilled(isFilled: boolean): void;
isPicked(value: T): Observable<boolean>;
setValue(value: SelectOuterValue<T>): void;
reset(): void;
processFocusInputContainer(inputElement: ElementRef<HTMLInputElement>): Subscription;
private listenOutsideEventsForClose;
private static getParsedValue;
static ɵfac: i0.ɵɵFactoryDeclaration<SelectStateService<any>, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<SelectStateService<any>>;
}