vue-treeselectjs
Version:
Treeselect Vue Component
114 lines (113 loc) • 5.32 kB
TypeScript
import { DirectionType, ITreeselectParams, IconsType, OptionType, ValueInputType } from 'treeselectjs';
export type { IconsType, DirectionType, OptionType, TagsSortItem } from 'treeselectjs';
/** Value type for v-model and emitted events: single id, array of ids, or null/undefined. */
export type TreeselectValue = ValueInputType;
/**
* Keys from ITreeselectParams that are not exposed as Vue props.
* The component provides these internally (container, slot, callbacks).
*/
type TreeselectOmittedParams = 'parentHtmlContainer' | 'listSlotHtmlComponent' | 'inputCallback' | 'openCallback' | 'closeCallback' | 'nameChangeCallback' | 'searchCallback' | 'openCloseGroupCallback';
/**
* Props for the Vue Treeselect component.
* Mirrors ITreeselectParams except: uses `modelValue` instead of `value` for v-model,
* and omits container/slot/callback params (handled internally).
* @see ITreeselectParams in treeselectjs for full option descriptions
*/
export type VueTreeselectProps = Omit<ITreeselectParams, TreeselectOmittedParams | 'value'> & {
/** Bound value (v-model). Single id, array of ids, or null/undefined. */
modelValue?: TreeselectValue;
};
/**
* Vue 3 wrapper for treeselectjs: hierarchical single/multi select with tags and search.
* All options from ITreeselectParams are supported as props (except value → use modelValue).
* Emits: update:modelValue, input, open, close, name-change, search, open-close-group.
* @see https://github.com/dipson88/treeselectjs/tree/main/packages/vue-treeselectjs
* @see ITreeselectParams in treeselectjs for option details
*/
declare const _default: import('vue').DefineComponent<{
options?: OptionType[] | undefined;
openLevel?: number | undefined;
appendToBody?: boolean | undefined;
alwaysOpen?: boolean | undefined;
showTags?: boolean | undefined;
tagsCountText?: string | undefined;
tagsSortFn?: import('treeselectjs').TagsSortFnType | undefined;
clearable?: boolean | undefined;
searchable?: boolean | undefined;
placeholder?: string | undefined;
grouped?: boolean | undefined;
isGroupedValue?: boolean | undefined;
disabled?: boolean | undefined;
emptyText?: string | undefined;
staticList?: boolean | undefined;
id?: string | undefined;
ariaLabel?: string | undefined;
isSingleSelect?: boolean | undefined;
showCount?: boolean | undefined;
disabledBranchNode?: boolean | undefined;
direction?: DirectionType | undefined;
expandSelected?: boolean | undefined;
saveScrollPosition?: boolean | undefined;
isIndependentNodes?: boolean | undefined;
rtl?: boolean | undefined;
listClassName?: string | undefined;
isBoostedRendering?: boolean | undefined;
iconElements?: Partial<IconsType> | undefined;
modelValue?: ValueInputType;
}, {
treeselectContainerRef: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
treeselectAfterListSlotRef: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
'update:modelValue': (_value: TreeselectValue) => true;
input: (_value: TreeselectValue) => true;
open: (_value: TreeselectValue) => true;
close: (_value: TreeselectValue) => true;
'name-change': (_name: string) => true;
search: (_value: string) => true;
'open-close-group': (_payload: {
groupId: TreeselectValue;
isClosed: boolean;
}) => true;
}, string, import('vue').PublicProps, Readonly<{
options?: OptionType[] | undefined;
openLevel?: number | undefined;
appendToBody?: boolean | undefined;
alwaysOpen?: boolean | undefined;
showTags?: boolean | undefined;
tagsCountText?: string | undefined;
tagsSortFn?: import('treeselectjs').TagsSortFnType | undefined;
clearable?: boolean | undefined;
searchable?: boolean | undefined;
placeholder?: string | undefined;
grouped?: boolean | undefined;
isGroupedValue?: boolean | undefined;
disabled?: boolean | undefined;
emptyText?: string | undefined;
staticList?: boolean | undefined;
id?: string | undefined;
ariaLabel?: string | undefined;
isSingleSelect?: boolean | undefined;
showCount?: boolean | undefined;
disabledBranchNode?: boolean | undefined;
direction?: DirectionType | undefined;
expandSelected?: boolean | undefined;
saveScrollPosition?: boolean | undefined;
isIndependentNodes?: boolean | undefined;
rtl?: boolean | undefined;
listClassName?: string | undefined;
isBoostedRendering?: boolean | undefined;
iconElements?: Partial<IconsType> | undefined;
modelValue?: ValueInputType;
}> & Readonly<{
"onUpdate:modelValue"?: ((_value: ValueInputType) => any) | undefined;
onInput?: ((_value: ValueInputType) => any) | undefined;
onOpen?: ((_value: ValueInputType) => any) | undefined;
onClose?: ((_value: ValueInputType) => any) | undefined;
"onName-change"?: ((_name: string) => any) | undefined;
onSearch?: ((_value: string) => any) | undefined;
"onOpen-close-group"?: ((_payload: {
groupId: TreeselectValue;
isClosed: boolean;
}) => any) | undefined;
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
export default _default;