svantic
Version:
A set of Fomantic-UI components for Svelte framework
292 lines (241 loc) • 7.2 kB
TypeScript
import type { SvelteComponentTyped } from 'svelte/internal'
import type { Loading, Attach, Size, Speed, Wide } from '../../variations'
import type { Module } from '../utils'
import type Settings from './settings'
import type Header from './header.svelte'
import type Menu from './menu.svelte'
import type Item from './item.svelte'
import type Divider from './divider.svelte'
import type Text from './text.svelte'
import type { MountEvent } from '../../common'
// declare type Type =
// | 'selection'
// | 'search'
// | 'clearable'
// | 'multiple'
// | 'floating'
// | 'labeled'
// | 'icon'
// | 'labeled icon'
// | 'button'
// | 'inline'
// | 'pointing'
// | 'simple'
// | ''
declare type Height = 'long' | 'very long'
export interface DropdownProps extends Module<Settings> {
as?: 'div' | 'select'
selection?: boolean
search?: boolean
clearable?: boolean
multiple?: string | boolean
floating?: boolean
labeled?: boolean
icon?: boolean
button?: boolean
inline?: boolean
pointing?: boolean
simple?: boolean
size?: Size
column?: Wide
active?: boolean
disabled?: boolean
loading?: boolean
error?: boolean
speed?: Speed
height?: Height
menuDirection?: Attach
loaderStyle?: Loading
link?: boolean
item?: boolean
long?: boolean
basic?: boolean
fluid?: boolean
label?: boolean
toggle?: boolean
primary?: boolean
compact?: boolean
circular?: boolean
positive?: boolean
negative?: boolean
tertiary?: boolean
inverted?: boolean
secondary?: boolean
scrolling?: boolean
}
type DropdownEvents = MountEvent<HTMLDivElement | HTMLSelectElement>
/**
* @description Svantic Dropdown
*/
declare class Dropdown extends SvelteComponentTyped<
DropdownProps,
DropdownEvents
> {
static Select: new () => Dropdown
static Header: new () => Header
static Divider: new () => Divider
static Menu: new () => Menu
static Item: new () => Item
static Text: new () => Text
mounted(callback: () => void): void
setSettings(settings: Settings): this
/**
*@description Recreates dropdown menu from passed values. values should be an object with the following structure: { values: [ {value, text, name} ] }.
*/
setupMenu(values: any[]): void
/**
*@description Changes dropdown to use new values
*/
changeValues(values: any[]): void
/**
*@description Refreshes all cached selectors and data
*/
refresh(): void
/**
*@description Toggles current visibility of dropdown
*/
toggle(): void
/**
*@description Shows dropdown. If a function is provided to callback, it's called after the dropdown-menu is shown. Set preventFocus to true if you don't want the dropdown field to focus after the menu is shown
*/
show(callback: () => any, preventFocus: boolean): void
/**
*@description Hides dropdown. If a function is provided to callback, it's called after the dropdown-menu is hidden. Set preventBlur to true if you don't want the dropdown field to blur after the menu is hidden
*/
hide(callback: () => any, preventBlur: boolean): void
/**
*@description Clears dropdown of selection. Set preventChangeTrigger to true to omit the change event (default: false).
*/
clear(preventChangeTrigger: boolean): void
/**
*@description Hides all other dropdowns that is not current dropdown
*/
hideOthers(): void
/**
*@description Restores dropdown text and value to its value on page load. Set preventChangeTrigger to true to omit the change event (default: false).
*/
restoreDefaults(preventChangeTrigger: boolean): void
/**
*@description Restores dropdown text to its value on page load
*/
restoreDefaultText(): void
/**
*@description Restores dropdown text to its prompt, placeholder text
*/
restorePlaceholderText(): void
/**
*@description Restores dropdown value to its value on page load
*/
restoreDefaultValue(): void
/**
*@description Saves current text and value as new defaults (for use with restore)
*/
saveDefaults(): void
/**
*@description Sets value as selected or Adds a group of values as selected
*/
setSelected(...args: any[]): void
/**
*@description Remove value from selected
*/
removeSelected(value: any): void
/**
*@description Adds a group of values as selected
*/
setSelected([value1, value2]): void
/**
*@description Sets selected values to exactly specified values, removing current selection
*/
setExactly(...args: any[]): void
/**
*@description Sets dropdown text to a value
*/
setText(text: string): void
/**
*@description Sets dropdown input to value (does not update display state). text and $selected are used internally and can be ignored. Set preventChangeTrigger to true to omit the change event
*/
setValue(
value: any,
text: any,
$selected: any,
preventChangeTrigger: boolean
): void
/**
*@description Returns current dropdown text
*/
getText(): Promise<string>
/**
*@description Returns current dropdown input value
*/
getValue(): Promise<any>
/**
*@description Returns DOM element that matches a given input value
*/
getItem(value: any): Promise<HTMLElement>
/**
*@description Adds touch events to element
*/
bindTouchEvents(): void
/**
*@description Adds mouse events to element
*/
bindMouseEvents(): void
/**
*@description Binds a click to document to determine if you click away from a dropdown
*/
bindIntent(): void
/**
*@description Unbinds document intent click
*/
unbindIntent(): void
/**
*@description Returns whether event occurred inside dropdown
*/
determineEventInModule(): void
/**
*@description Triggers preset item selection action based on settings passing text/value
*/
determineSelectAction(text: string, value: any): void
/**
*@description Sets dropdown to active state
*/
setActive(): void
/**
*@description Sets dropdown to visible state
*/
setVisible(): void
/**
*@description Removes dropdown active state
*/
removeActive(): void
/**
*@description Removes dropdown visible state
*/
removeVisible(): void
/**
*@description Returns whether dropdown is a selection dropdown
*/
isSelection(): Promise<boolean>
/**
*@description Returns whether dropdown is animated
*/
isAnimated(): Promise<boolean>
/**
*@description Returns whether dropdown is visible
*/
isVisible(): Promise<boolean>
/**
*@description Returns whether dropdown is hidden
*/
isHidden(): Promise<boolean>
/**
*@description Returns dropdown value as set on page load
*/
getDefaultText(): Promise<string>
/**
*@description Returns placeholder text
*/
getPlaceholderText(): Promise<string>
ready(): Promise<void>
}
export default Dropdown