62 lines
1.7 KiB
TypeScript
62 lines
1.7 KiB
TypeScript
import { Observable } from 'rxjs';
|
|
import { ValidatorFn, AsyncValidatorFn } from '@angular/forms';
|
|
import { TagModel } from './core/tag-model';
|
|
export interface TagInputOptions {
|
|
separatorKeys: string[];
|
|
separatorKeyCodes: number[];
|
|
maxItems: number;
|
|
placeholder: string;
|
|
secondaryPlaceholder: string;
|
|
validators: ValidatorFn[];
|
|
asyncValidators: AsyncValidatorFn[];
|
|
onlyFromAutocomplete: boolean;
|
|
errorMessages: {
|
|
[key: string]: string;
|
|
};
|
|
theme: '';
|
|
onTextChangeDebounce: number;
|
|
inputId: string | null;
|
|
inputClass: string;
|
|
clearOnBlur: boolean;
|
|
hideForm: boolean;
|
|
addOnBlur: boolean;
|
|
addOnPaste: boolean;
|
|
pasteSplitPattern: string | RegExp;
|
|
blinkIfDupe: boolean;
|
|
removable: boolean;
|
|
editable: boolean;
|
|
allowDupes: boolean;
|
|
modelAsStrings: boolean;
|
|
trimTags: boolean;
|
|
ripple: boolean;
|
|
tabIndex: string;
|
|
disable: boolean;
|
|
dragZone: string;
|
|
onRemoving?: (tag: TagModel) => Observable<TagModel>;
|
|
onAdding?: (tag: TagModel) => Observable<TagModel>;
|
|
displayBy: string;
|
|
identifyBy: string;
|
|
animationDuration: {
|
|
enter: string;
|
|
leave: string;
|
|
};
|
|
}
|
|
export interface TagInputDropdownOptions {
|
|
displayBy: string;
|
|
identifyBy: string;
|
|
appendToBody: boolean;
|
|
offset: string;
|
|
focusFirstElement: boolean;
|
|
showDropdownIfEmpty: boolean;
|
|
minimumTextLength: number;
|
|
limitItemsTo: number;
|
|
keepOpen: boolean;
|
|
zIndex: number;
|
|
dynamicUpdate: boolean;
|
|
matchingFn: (value: string, target: TagModel) => boolean;
|
|
}
|
|
export declare const defaults: {
|
|
tagInput: TagInputOptions;
|
|
dropdown: TagInputDropdownOptions;
|
|
};
|