tom-select
Version:
Tom Select is a versatile and dynamic <select> UI control. Forked from Selectize.js to provide a framework agnostic autocomplete widget with native-feeling keyboard navigation, it's useful for tagging, contact lists, country selectors, etc.
97 lines (80 loc) • 2.98 kB
text/typescript
import { TomCreateFilter, TomCreate, TomLoadCallback, TomTemplates, TomOption } from './index.ts';
import { TPluginItem, TPluginHash } from '../contrib/microplugin.ts';
import { type Sort as SifterSort, type SortFn as SifterSortFn } from '@orchidjs/sifter';
export type TomSettings = {
options ?: any[],
optgroups ?: any[],
items ?: string[],
plugins : string[]|TPluginItem[]|TPluginHash,
delimiter : string,
splitOn : RegExp|string, // regexp or string for splitting up values from a paste command
persist : boolean,
diacritics : boolean,
create : boolean|TomCreate,
createOnBlur : boolean,
createFilter : RegExp|string|TomCreateFilter,
highlight : boolean,
openOnFocus : boolean,
shouldOpen : boolean,
maxOptions : number,
maxItems : null|number,
hideSelected : boolean,
duplicates : boolean,
addPrecedence : boolean,
selectOnTab : boolean,
preload : boolean|string,
allowEmptyOption : boolean,
closeAfterSelect : boolean,
refreshThrottle : number,
loadThrottle : number,
loadingClass : string,
dataAttr : string, //'data-data',
optgroupField : string,
valueField : string,
labelField : string,
disabledField : string,
optgroupLabelField : string,
optgroupValueField : string,
lockOptgroupOrder : boolean,
sortField : string|SifterSort[]|SifterSortFn,
searchField : string[],
searchConjunction : string,
nesting : boolean,
mode : string,
wrapperClass : string,
controlClass : string,
dropdownClass : string,
dropdownContentClass : string,
itemClass : string,
optionClass : string,
dropdownParent : string,
controlInput : string|HTMLInputElement,
copyClassesToDropdown : boolean,
placeholder : string,
hidePlaceholder : boolean,
load : (value:string, callback:TomLoadCallback) => void,
score ?: (query:string) => () => any,
shouldLoad : (query:string) => boolean,
onInitialize : () => void,
onChange : (value:string|number) => void,
onItemAdd : (value:string|number,item:HTMLDivElement) => void,
onItemRemove : (value:string|number,item:HTMLDivElement) => void,
onClear : () => void,
onOptionAdd : (value:string|number,data:TomOption) => void,
onOptionRemove : (value:string|number) => void,
onOptionClear : () => void,
onOptionGroupAdd : (value:string|number,data:TomOption) => void,
onOptionGroupRemove : (value:string|number) => void,
onOptionGroupClear : () => void,
onDropdownOpen : (dropdown:HTMLDivElement) => void,
onDropdownClose : (dropdown:HTMLDivElement) => void,
onType : (str:string) => void,
onLoad : (options:TomOption[],optgroups:TomOption[]) => void,
onFocus : () => void,
onBlur : () => void,
onDelete : (values:string[], evt:KeyboardEvent|MouseEvent) => boolean,
render : TomTemplates,
// virtual scroll plugin
firstUrl : (query:string)=>any
shouldLoadMore : () => boolean,
};