@nova-ui/bits
Version:
SolarWinds Nova Framework
88 lines (87 loc) • 3.91 kB
TypeScript
import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnDestroy, Renderer2, SimpleChanges } from "@angular/core";
import { FormBuilder, FormControl, FormGroup } from "@angular/forms";
import { Observable } from "rxjs";
import { FreeTypeQueryUtilsService } from "./helpers/freetype-query-utils.service";
import { CaretCoordinates, HelpEntry, HintEntry, QueryToken, RenderConfigurator, Tokenizer } from "./models";
import { SelectV2Component } from "../select-v2/select/select-v2.component";
import { ToastService } from "../toast/toast.service";
import * as i0 from "@angular/core";
export declare class FreetypeQueryBuilderComponent<T extends QueryToken> implements OnChanges, OnDestroy, AfterViewInit {
private renderer2;
private formBuilder;
private cd;
private toastService;
private utils;
private static pasteTextCommon;
private readonly KEY_ENTER_CODE;
private readonly KEY_ESC_CODE;
maxLength: number;
readonly: boolean;
placeholder: string;
value: string;
renderer: RenderConfigurator<T>;
tokenizer: Tokenizer<T>;
currentHelp: HelpEntry[];
cursorSetter$: Observable<any>;
helpItemSelected: EventEmitter<{
value: string;
}>;
currentValue: EventEmitter<{
value: string;
tokens: T[];
}>;
cursorPos: EventEmitter<number>;
cursorCoords: EventEmitter<CaretCoordinates>;
submitQuery: EventEmitter<any>;
querySelect: SelectV2Component;
messageTextarea: ElementRef;
messageTextareaHolder: ElementRef;
textHighlightOverlayHolder: ElementRef;
textHighlightOverlay: ElementRef;
private readonly ON_SCROLL_CALLBACK;
private readonly BASE_LINE;
private destroy$$;
private tokens;
private scrollValue;
private cursorPosition;
private bodyControl;
private focusedToken;
private lastHeight;
formGroup: FormGroup;
focusedTokenValue: string;
highlightModel: {
value: string;
tokens: T[];
};
inputHeight: number;
selectControl: FormControl;
constructor(renderer2: Renderer2, formBuilder: FormBuilder, cd: ChangeDetectorRef, toastService: ToastService, utils: FreeTypeQueryUtilsService);
ngOnChanges(changes: SimpleChanges): void;
ngAfterViewInit(): void;
private openOptions;
ngOnDestroy(): void;
onKeyDown($event: KeyboardEvent): void;
onDrop($event: DragEvent): void;
onKeyUp($event: KeyboardEvent): void;
onClick($event: MouseEvent): void;
itemSelected($event: {
newValue: HintEntry;
oldValue: HintEntry | undefined;
}): void;
private get textarea();
private get textareaHolder();
private clearNewLinesOnPaste;
private scrollToCursor;
private pasteTextFirefox;
private onTextAreaScroll;
private onValueChange;
private setCursorToPos;
private rerender;
private getFocusedTokenIndex;
private updateCursor;
private textAreaHeightChanged;
private registerListeners;
private clearListeners;
static ɵfac: i0.ɵɵFactoryDeclaration<FreetypeQueryBuilderComponent<any>, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<FreetypeQueryBuilderComponent<any>, "nui-freetype-query-builder", never, { "maxLength": { "alias": "maxLength"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "value": { "alias": "value"; "required": false; }; "renderer": { "alias": "renderer"; "required": false; }; "tokenizer": { "alias": "tokenizer"; "required": false; }; "currentHelp": { "alias": "currentHelp"; "required": false; }; "cursorSetter$": { "alias": "cursorSetter$"; "required": false; }; }, { "helpItemSelected": "helpItemSelected"; "currentValue": "currentValue"; "cursorPos": "cursorPos"; "cursorCoords": "cursorCoords"; "submitQuery": "submitQuery"; }, never, never, false, never>;
}