mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-08-11 12:30:18 +00:00
[semantic-ui-dropdown] Add type definitions. (#16931)
This commit is contained in:
committed by
Mohamed Hegazy
parent
524b072a5a
commit
9a529e3477
+852
@@ -0,0 +1,852 @@
|
||||
interface JQuery {
|
||||
dropdown: SemanticUI.Dropdown;
|
||||
}
|
||||
|
||||
declare namespace SemanticUI {
|
||||
// TODO: Should 'value'/'values' parameters be of type 'string' instead of 'any'?
|
||||
|
||||
interface Dropdown {
|
||||
settings: DropdownSettings;
|
||||
|
||||
/**
|
||||
* Recreates dropdown menu from select option values.
|
||||
*/
|
||||
(behavior: 'setup menu'): JQuery;
|
||||
/**
|
||||
* Refreshes all cached selectors and data
|
||||
*/
|
||||
(behavior: 'refresh'): JQuery;
|
||||
/**
|
||||
* Toggles current visibility of dropdown
|
||||
*/
|
||||
(behavior: 'toggle'): JQuery;
|
||||
/**
|
||||
* Shows dropdown
|
||||
*/
|
||||
(behavior: 'show'): JQuery;
|
||||
/**
|
||||
* Hides dropdown
|
||||
*/
|
||||
(behavior: 'hide'): JQuery;
|
||||
/**
|
||||
* Clears dropdown of selection
|
||||
*/
|
||||
(behavior: 'clear'): JQuery;
|
||||
/**
|
||||
* Hides all other dropdowns that is not current dropdown
|
||||
*/
|
||||
(behavior: 'hide others'): JQuery;
|
||||
/**
|
||||
* Restores dropdown text and value to its value on page load
|
||||
*/
|
||||
(behavior: 'restore defaults'): JQuery;
|
||||
/**
|
||||
* Restores dropdown text to its value on page load
|
||||
*/
|
||||
(behavior: 'restore default text'): JQuery;
|
||||
/**
|
||||
* Restores dropdown text to its prompt, placeholder text
|
||||
*/
|
||||
(behavior: 'restore placeholder text'): JQuery;
|
||||
/**
|
||||
* Restores dropdown value to its value on page load
|
||||
*/
|
||||
(behavior: 'restore default value'): JQuery;
|
||||
/**
|
||||
* Saves current text and value as new defaults (for use with restore)
|
||||
*/
|
||||
(behavior: 'save defaults'): JQuery;
|
||||
/**
|
||||
* Sets value as selected
|
||||
*/
|
||||
(behavior: 'set selected', value: any): JQuery;
|
||||
/**
|
||||
* Remove value from selected
|
||||
*/
|
||||
(behavior: 'remove selected', value: any): JQuery;
|
||||
/**
|
||||
* Adds a group of values as selected
|
||||
*/
|
||||
(behavior: 'set selected', values: any[]): JQuery;
|
||||
/**
|
||||
* Sets selected values to exactly specified values, removing current selection
|
||||
*/
|
||||
(behavior: 'set exactly', values: any[]): JQuery;
|
||||
/**
|
||||
* Sets dropdown text to a value
|
||||
*/
|
||||
(behavior: 'set text', text: string): JQuery;
|
||||
/**
|
||||
* Sets dropdown input to value (does not update display state)
|
||||
*/
|
||||
(behavior: 'set value', value: any): JQuery;
|
||||
/**
|
||||
* Returns current dropdown text
|
||||
*/
|
||||
(behavior: 'get text'): string;
|
||||
/**
|
||||
* Returns current dropdown input value
|
||||
*/
|
||||
(behavior: 'get value'): any;
|
||||
/**
|
||||
* Returns DOM element that matches a given input value
|
||||
*/
|
||||
(behavior: 'get item', value: any): JQuery;
|
||||
/**
|
||||
* Adds touch events to element
|
||||
*/
|
||||
(behavior: 'bind touch events'): JQuery;
|
||||
/**
|
||||
* Adds mouse events to element
|
||||
*/
|
||||
(behavior: 'bind mouse events'): JQuery;
|
||||
/**
|
||||
* Binds a click to document to determine if you click away from a dropdown
|
||||
*/
|
||||
(behavior: 'bind intent'): JQuery;
|
||||
/**
|
||||
* Unbinds document intent click
|
||||
*/
|
||||
(behavior: 'unbind intent'): JQuery;
|
||||
/**
|
||||
* Returns whether event occurred inside dropdown
|
||||
*/
|
||||
(behavior: 'determine intent'): boolean;
|
||||
/**
|
||||
* Triggers preset item selection action based on settings passing text/value
|
||||
*/
|
||||
(behavior: 'determine select action', text: string, value: any): JQuery;
|
||||
/**
|
||||
* Sets dropdown to active state
|
||||
*/
|
||||
(behavior: 'set active'): JQuery;
|
||||
/**
|
||||
* Sets dropdown to visible state
|
||||
*/
|
||||
(behavior: 'set visible'): JQuery;
|
||||
/**
|
||||
* Removes dropdown active state
|
||||
*/
|
||||
(behavior: 'remove active'): JQuery;
|
||||
/**
|
||||
* Removes dropdown visible state
|
||||
*/
|
||||
(behavior: 'remove visible'): JQuery;
|
||||
/**
|
||||
* Returns whether dropdown is a selection dropdown
|
||||
*/
|
||||
(behavior: 'is selection'): boolean;
|
||||
/**
|
||||
* Returns whether dropdown is animated
|
||||
*/
|
||||
(behavior: 'is animated'): boolean;
|
||||
/**
|
||||
* Returns whether dropdown is visible
|
||||
*/
|
||||
(behavior: 'is visible'): boolean;
|
||||
/**
|
||||
* Returns whether dropdown is hidden
|
||||
*/
|
||||
(behavior: 'is hidden'): boolean;
|
||||
/**
|
||||
* Returns dropdown value as set on page load
|
||||
*/
|
||||
(behavior: 'get default text'): string;
|
||||
/**
|
||||
* Returns placeholder text
|
||||
*/
|
||||
(behavior: 'get placeholder text'): string;
|
||||
(behavior: 'destroy'): JQuery;
|
||||
<K extends keyof DropdownSettings>(behavior: 'setting', name: K, value?: undefined): DropdownSettings[K];
|
||||
<K extends keyof DropdownSettings>(behavior: 'setting', name: K, value: DropdownSettings[K]): JQuery;
|
||||
(behavior: 'setting', value: DropdownSettings.Param): JQuery;
|
||||
(settings?: DropdownSettings.Param): JQuery;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see {@link http://semantic-ui.com/modules/dropdown.html#/settings}
|
||||
*/
|
||||
interface DropdownSettings extends Pick<DropdownSettings._Impl, keyof DropdownSettings._Impl> { }
|
||||
|
||||
namespace DropdownSettings {
|
||||
type Param = DropdownSettings | object;
|
||||
|
||||
interface _Impl {
|
||||
// region Frequently Used Settings
|
||||
|
||||
/**
|
||||
* Event used to trigger dropdown (Hover, Click, Custom Event)
|
||||
*
|
||||
* @default 'click'
|
||||
*/
|
||||
on: string;
|
||||
/**
|
||||
* When set to true will fire onChange even when the value a user select matches the currently selected value.
|
||||
*
|
||||
* @default false
|
||||
*/
|
||||
allowReselection: boolean;
|
||||
/**
|
||||
* Whether search selection should allow users to add their own selections, works for single or multi-select.
|
||||
*
|
||||
* @default false
|
||||
*/
|
||||
allowAdditions: boolean;
|
||||
/**
|
||||
* When disabled user additions will appear in the results menu using a specially formatted selection item formatted by templates.addition.
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
hideAdditions: boolean;
|
||||
/**
|
||||
* Sets a default action to occur. (See usage guide)
|
||||
*
|
||||
* @default 'activate'
|
||||
* @see {@link http://semantic-ui.com/modules/dropdown.html#/usage}
|
||||
*/
|
||||
action: 'activate' | 'select' | 'combo' | 'nothing' | 'hide' | ((this: JQuery, text: string, value: string | false, element: JQuery) => void);
|
||||
/**
|
||||
* The minimum characters for a search to begin showing results
|
||||
*
|
||||
* @default 1
|
||||
*/
|
||||
minCharacters: number;
|
||||
/**
|
||||
* When using search selection specifies how to match values.
|
||||
*
|
||||
* @default 'both'
|
||||
*/
|
||||
match: 'both' | 'value' | 'text';
|
||||
/**
|
||||
* Whether dropdown should select new option when using keyboard shortcuts. Setting to false will require enter or left click to confirm a choice.
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
selectOnKeydown: boolean;
|
||||
/**
|
||||
* Whether search selection will force currently selected choice when element is blurred.
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
forceSelection: boolean;
|
||||
/**
|
||||
* Whether menu items with sub-menus (categories) should be selectable
|
||||
*
|
||||
* @default false
|
||||
*/
|
||||
allowCategorySelection: boolean;
|
||||
/**
|
||||
* @default 'auto'
|
||||
*/
|
||||
placeholder: 'auto' | 'value' | false;
|
||||
|
||||
// endregion
|
||||
|
||||
// region Remote Settings
|
||||
|
||||
/**
|
||||
* Can be set to an object to specify API settings for retrieving remote selection menu content from an API endpoint
|
||||
*
|
||||
* @default false
|
||||
* @see {@link http://semantic-ui.com/behaviors/api.html}
|
||||
*/
|
||||
apiSettings: false | ApiSettings;
|
||||
/**
|
||||
* List mapping dropdown content to JSON Property when using API
|
||||
*/
|
||||
fields: Dropdown.FieldsSettings;
|
||||
/**
|
||||
* When enabled will automatically store selected name/value pairs in sessionStorage to preserve user selection on page refresh. Disabling will clear remote dropdown values on refresh.
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
saveRemoteData: boolean;
|
||||
/**
|
||||
* When set to true API will be expected to return the complete result set, which will then be filtered clientside to only display matching results.
|
||||
*
|
||||
* @default false
|
||||
* @since 2.2.8
|
||||
*/
|
||||
filterRemoteData: boolean;
|
||||
|
||||
// endregion
|
||||
|
||||
// region Multiple Select Settings
|
||||
|
||||
/**
|
||||
* Whether multiselect should use labels. Must be set to true when allowAdditions is true
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
useLabels: boolean;
|
||||
/**
|
||||
* When set to a number, sets the maximum number of selections
|
||||
*
|
||||
* @default false
|
||||
*/
|
||||
maxSelections: false | number;
|
||||
/**
|
||||
* Maximum glyph width, used to calculate search size. This is usually size of a "W" in your font in em
|
||||
*
|
||||
* @default 1.0714
|
||||
*/
|
||||
glyphWidth: number;
|
||||
/**
|
||||
* Allows customization of multi-select labels
|
||||
*/
|
||||
label: Dropdown.LabelSettings;
|
||||
|
||||
// endregion
|
||||
|
||||
// region Additional Settings
|
||||
|
||||
/**
|
||||
* When set to auto determines direction based on whether dropdown can fit on screen. Set to upward or downward to always force a direction.
|
||||
*
|
||||
* @default 'auto'
|
||||
*/
|
||||
direction: 'auto' | 'upward' | 'downward';
|
||||
/**
|
||||
* Whether dropdown should try to keep itself on screen by checking whether menus display position in its context (Default context is page).
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
keepOnScreen: boolean;
|
||||
/**
|
||||
* Element context to use when checking whether can show when keepOnScreen: true
|
||||
*
|
||||
* @default 'window'
|
||||
*/
|
||||
context: string | JQuery;
|
||||
/**
|
||||
* Specifying to "true" will use a fuzzy full text search, setting to "exact" will force the exact search to be matched somewhere in the string
|
||||
*
|
||||
* @default false
|
||||
*/
|
||||
fullTextSearch: boolean | 'exact';
|
||||
/**
|
||||
* Whether HTML included in dropdown values should be preserved. (Allows icons to show up in selected value)
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
preserveHTML: boolean;
|
||||
/**
|
||||
* Whether to sort values when creating a dropdown automatically from a select element.
|
||||
*
|
||||
* @default false
|
||||
*/
|
||||
sortSelect: boolean;
|
||||
/**
|
||||
* Whether to show dropdown menu automatically on element focus.
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
showOnFocus: boolean;
|
||||
/**
|
||||
* Whether to allow the element to be navigable by keyboard, by automatically creating a tabindex
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
allowTab: boolean;
|
||||
/**
|
||||
* Named transition to use when animating menu in and out.
|
||||
* Defaults to slide down or slide up depending on dropdown direction.
|
||||
* Fade and slide down are available without including ui transitions
|
||||
*
|
||||
* @default 'auto'
|
||||
* @see {@link http://semantic-ui.com/modules/transition.html}
|
||||
*/
|
||||
transition: 'auto' | string;
|
||||
/**
|
||||
* Duration of animation events
|
||||
*
|
||||
* @default 200
|
||||
*/
|
||||
duration: number;
|
||||
/**
|
||||
* The keycode used to represent keyboard shortcuts. To avoid issues with some foreign languages, you can pass false for comma delimiter's value
|
||||
*/
|
||||
keys: Dropdown.KeySettings;
|
||||
/**
|
||||
* Time in milliseconds to debounce show or hide behavior when on: hover is used, or when touch is used.
|
||||
*/
|
||||
delay: Dropdown.DelaySettings;
|
||||
|
||||
// endregion
|
||||
|
||||
// region Callbacks
|
||||
|
||||
/**
|
||||
* Is called after a dropdown value changes. Receives the name and value of selection and the active menu element
|
||||
*/
|
||||
onChange(this: JQuery, value: any, text: string, $choice: JQuery): void;
|
||||
/**
|
||||
* Is called after a dropdown selection is added using a multiple select dropdown, only receives the added value
|
||||
*/
|
||||
onAdd(this: JQuery, addedValue: any, addedText: string, $addedChoice: JQuery): void;
|
||||
/**
|
||||
* Is called after a dropdown selection is removed using a multiple select dropdown, only receives the removed value
|
||||
*/
|
||||
onRemove(this: JQuery, removedValue: any, removedText: string, $removedChoice: JQuery): void;
|
||||
/**
|
||||
* Allows you to modify a label before it is added. Expects the jQ DOM element for a label to be returned.
|
||||
*/
|
||||
onLabelCreate(this: JQuery, value: any, text: string): JQuery;
|
||||
/**
|
||||
* Called when a label is remove, return false; will prevent the label from being removed.
|
||||
*/
|
||||
onLabelRemove(this: JQuery, value: any): false | void;
|
||||
/**
|
||||
* Is called after a label is selected by a user
|
||||
*/
|
||||
onLabelSelect(this: JQuery, $selectedLabels: JQuery): void;
|
||||
/**
|
||||
* Is called after a dropdown is searched with no matching values
|
||||
*/
|
||||
onNoResults(this: JQuery, searchValue: any): void;
|
||||
/**
|
||||
* Is called before a dropdown is shown. If false is returned, dropdown will not be shown.
|
||||
*/
|
||||
onShow(this: JQuery): false | void;
|
||||
/**
|
||||
* Is called before a dropdown is hidden. If false is returned, dropdown will not be hidden.
|
||||
*/
|
||||
onHide(this: JQuery): false | void;
|
||||
|
||||
// endregion
|
||||
|
||||
// region DOM Settings
|
||||
|
||||
/**
|
||||
* You can specify site wide messages by modifying $.fn.dropdown.settings.message that will apply on any dropdown if it appears in the page.
|
||||
*/
|
||||
message: Dropdown.MessageSettings;
|
||||
selector: Dropdown.SelectorSettings;
|
||||
regExp: Dropdown.RegExpSettings;
|
||||
metadata: Dropdown.MetadataSettings;
|
||||
className: Dropdown.ClassNameSettings;
|
||||
|
||||
// endregion
|
||||
|
||||
// region Debug Settings
|
||||
|
||||
error: Dropdown.ErrorSettings;
|
||||
|
||||
// endregion
|
||||
|
||||
// region Component Settings
|
||||
|
||||
// region DOM Settings
|
||||
|
||||
/**
|
||||
* Event namespace. Makes sure module teardown does not effect other events attached to an element.
|
||||
*/
|
||||
namespace: string;
|
||||
|
||||
// endregion
|
||||
|
||||
// region Debug Settings
|
||||
|
||||
/**
|
||||
* Name used in log statements
|
||||
*/
|
||||
name: string;
|
||||
/**
|
||||
* Silences all console output including error messages, regardless of other debug settings.
|
||||
*/
|
||||
silent: boolean;
|
||||
/**
|
||||
* Debug output to console
|
||||
*/
|
||||
debug: boolean;
|
||||
/**
|
||||
* Show console.table output with performance metrics
|
||||
*/
|
||||
performance: boolean;
|
||||
/**
|
||||
* Debug output includes all internal behaviors
|
||||
*/
|
||||
verbose: boolean;
|
||||
|
||||
// endregion
|
||||
|
||||
// endregion
|
||||
}
|
||||
}
|
||||
|
||||
namespace Dropdown {
|
||||
interface FieldsSettings extends Pick<FieldsSettings._Impl, keyof FieldsSettings._Impl> { }
|
||||
|
||||
namespace FieldsSettings {
|
||||
type Param = FieldsSettings | object;
|
||||
|
||||
interface _Impl {
|
||||
/**
|
||||
* grouping for api results
|
||||
*
|
||||
* @default 'results'
|
||||
*/
|
||||
remoteValues: string;
|
||||
/**
|
||||
* grouping for all dropdown values
|
||||
*
|
||||
* @default 'values'
|
||||
*/
|
||||
values: string;
|
||||
/**
|
||||
* displayed dropdown text
|
||||
*
|
||||
* @default 'name'
|
||||
*/
|
||||
name: string;
|
||||
/**
|
||||
* actual dropdown value
|
||||
*
|
||||
* @default 'value'
|
||||
*/
|
||||
value: string;
|
||||
}
|
||||
}
|
||||
|
||||
interface LabelSettings extends Pick<LabelSettings._Impl, keyof LabelSettings._Impl> { }
|
||||
|
||||
namespace LabelSettings {
|
||||
type Param = LabelSettings | object;
|
||||
|
||||
interface _Impl {
|
||||
/**
|
||||
* @default 'horizontal flip'
|
||||
*/
|
||||
transition: string;
|
||||
/**
|
||||
* @default 200
|
||||
*/
|
||||
duration: number;
|
||||
/**
|
||||
* @default false
|
||||
*/
|
||||
variation: false | string;
|
||||
}
|
||||
}
|
||||
|
||||
interface KeySettings extends Pick<KeySettings._Impl, keyof KeySettings._Impl> { }
|
||||
|
||||
namespace KeySettings {
|
||||
type Param = KeySettings | object;
|
||||
|
||||
interface _Impl {
|
||||
/**
|
||||
* @default 8
|
||||
*/
|
||||
backspace: number;
|
||||
/**
|
||||
* @default 188
|
||||
*/
|
||||
delimiter: number | false;
|
||||
/**
|
||||
* @default 46
|
||||
*/
|
||||
deleteKey: number;
|
||||
/**
|
||||
* @default 13
|
||||
*/
|
||||
enter: number;
|
||||
/**
|
||||
* @default 27
|
||||
*/
|
||||
escape: number;
|
||||
/**
|
||||
* @default 33
|
||||
*/
|
||||
pageUp: number;
|
||||
/**
|
||||
* @default 34
|
||||
*/
|
||||
pageDown: number;
|
||||
/**
|
||||
* @default 37
|
||||
*/
|
||||
leftArrow: number;
|
||||
/**
|
||||
* @default 38
|
||||
*/
|
||||
upArrow: number;
|
||||
/**
|
||||
* @default 39
|
||||
*/
|
||||
rightArrow: number;
|
||||
/**
|
||||
* @default 40
|
||||
*/
|
||||
downArrow: number;
|
||||
}
|
||||
}
|
||||
|
||||
interface DelaySettings extends Pick<DelaySettings._Impl, keyof DelaySettings._Impl> { }
|
||||
|
||||
namespace DelaySettings {
|
||||
type Param = DelaySettings | object;
|
||||
|
||||
interface _Impl {
|
||||
/**
|
||||
* @default 300
|
||||
*/
|
||||
hide: number;
|
||||
/**
|
||||
* @default 200
|
||||
*/
|
||||
show: number;
|
||||
/**
|
||||
* @default 50
|
||||
*/
|
||||
search: number;
|
||||
/**
|
||||
* @default 50
|
||||
*/
|
||||
touch: number;
|
||||
}
|
||||
}
|
||||
|
||||
interface MessageSettings extends Pick<MessageSettings._Impl, keyof MessageSettings._Impl> { }
|
||||
|
||||
namespace MessageSettings {
|
||||
type Param = MessageSettings | object;
|
||||
|
||||
interface _Impl {
|
||||
/**
|
||||
* @default 'Add <b>{term}</b>'
|
||||
*/
|
||||
addResult: string;
|
||||
/**
|
||||
* @default '{count} selected'
|
||||
*/
|
||||
count: string;
|
||||
/**
|
||||
* @default 'Max {maxCount} selections'
|
||||
*/
|
||||
maxSelections: string;
|
||||
/**
|
||||
* 'No results found.'
|
||||
*/
|
||||
noResults: string;
|
||||
}
|
||||
}
|
||||
|
||||
interface SelectorSettings extends Pick<SelectorSettings._Impl, keyof SelectorSettings._Impl> { }
|
||||
|
||||
namespace SelectorSettings {
|
||||
type Param = SelectorSettings | object;
|
||||
|
||||
interface _Impl {
|
||||
/**
|
||||
* @default '.addition'
|
||||
*/
|
||||
addition: string;
|
||||
/**
|
||||
* @default '.ui.dropdown'
|
||||
*/
|
||||
dropdown: string;
|
||||
/**
|
||||
* @default '> .dropdown.icon'
|
||||
*/
|
||||
icon: string;
|
||||
/**
|
||||
* @default '> input[type="hidden"], > select'
|
||||
*/
|
||||
input: string;
|
||||
/**
|
||||
* @default '.item'
|
||||
*/
|
||||
item: string;
|
||||
/**
|
||||
* @default '> .label'
|
||||
*/
|
||||
label: string;
|
||||
/**
|
||||
* @default '> .label > .delete.icon'
|
||||
*/
|
||||
remove: string;
|
||||
/**
|
||||
* @default '.label'
|
||||
*/
|
||||
siblingLabel: string;
|
||||
/**
|
||||
* @default '.menu'
|
||||
*/
|
||||
menu: string;
|
||||
/**
|
||||
* @default '.message'
|
||||
*/
|
||||
message: string;
|
||||
/**
|
||||
* @default '.dropdown.icon'
|
||||
*/
|
||||
menuIcon: string;
|
||||
/**
|
||||
* @default 'input.search, .menu > .search > input'
|
||||
*/
|
||||
search: string;
|
||||
/**
|
||||
* @default '> .text:not(.icon)'
|
||||
*/
|
||||
text: string;
|
||||
}
|
||||
}
|
||||
|
||||
interface RegExpSettings extends Pick<RegExpSettings._Impl, keyof RegExpSettings._Impl> { }
|
||||
|
||||
namespace RegExpSettings {
|
||||
type Param = RegExpSettings | object;
|
||||
|
||||
interface _Impl {
|
||||
/**
|
||||
* @default /[-[\]{}()*+?.,\\^$|#\s]/g
|
||||
*/
|
||||
escape: RegExp;
|
||||
}
|
||||
}
|
||||
|
||||
interface MetadataSettings extends Pick<MetadataSettings._Impl, keyof MetadataSettings._Impl> { }
|
||||
|
||||
namespace MetadataSettings {
|
||||
type Param = MetadataSettings | object;
|
||||
|
||||
interface _Impl {
|
||||
/**
|
||||
* @default 'defaultText'
|
||||
*/
|
||||
defaultText: string;
|
||||
/**
|
||||
* @default 'defaultValue'
|
||||
*/
|
||||
defaultValue: string;
|
||||
/**
|
||||
* @default 'placeholderText'
|
||||
*/
|
||||
placeholderText: string;
|
||||
/**
|
||||
* @default 'text'
|
||||
*/
|
||||
text: string;
|
||||
/**
|
||||
* @default 'value'
|
||||
*/
|
||||
value: string;
|
||||
}
|
||||
}
|
||||
|
||||
interface ClassNameSettings extends Pick<ClassNameSettings._Impl, keyof ClassNameSettings._Impl> { }
|
||||
|
||||
namespace ClassNameSettings {
|
||||
type Param = ClassNameSettings | object;
|
||||
|
||||
interface _Impl {
|
||||
/**
|
||||
* @default 'active'
|
||||
*/
|
||||
active: string;
|
||||
/**
|
||||
* @default 'addition'
|
||||
*/
|
||||
addition: string;
|
||||
/**
|
||||
* @default 'animating'
|
||||
*/
|
||||
animating: string;
|
||||
/**
|
||||
* @default 'disabled'
|
||||
*/
|
||||
disabled: string;
|
||||
/**
|
||||
* @default 'ui dropdown'
|
||||
*/
|
||||
dropdown: string;
|
||||
/**
|
||||
* @default 'filtered'
|
||||
*/
|
||||
filtered: string;
|
||||
/**
|
||||
* @default 'hidden transition'
|
||||
*/
|
||||
hidden: string;
|
||||
/**
|
||||
* @default 'item'
|
||||
*/
|
||||
item: string;
|
||||
/**
|
||||
* @default 'ui label'
|
||||
*/
|
||||
label: string;
|
||||
/**
|
||||
* @default 'loading'
|
||||
*/
|
||||
loading: string;
|
||||
/**
|
||||
* @default 'menu'
|
||||
*/
|
||||
menu: string;
|
||||
/**
|
||||
* @default 'message'
|
||||
*/
|
||||
message: string;
|
||||
/**
|
||||
* @default 'multiple'
|
||||
*/
|
||||
multiple: string;
|
||||
/**
|
||||
* @default 'default'
|
||||
*/
|
||||
placeholder: string;
|
||||
/**
|
||||
* @default 'search'
|
||||
*/
|
||||
search: string;
|
||||
/**
|
||||
* @default 'selected'
|
||||
*/
|
||||
selected: string;
|
||||
/**
|
||||
* @default 'selection'
|
||||
*/
|
||||
selection: string;
|
||||
/**
|
||||
* @default 'upward'
|
||||
*/
|
||||
upward: string;
|
||||
/**
|
||||
* @default 'visible'
|
||||
*/
|
||||
visible: string;
|
||||
}
|
||||
}
|
||||
|
||||
interface ErrorSettings extends Pick<ErrorSettings._Impl, keyof ErrorSettings._Impl> { }
|
||||
|
||||
namespace ErrorSettings {
|
||||
type Param = ErrorSettings | object;
|
||||
|
||||
interface _Impl {
|
||||
/**
|
||||
* @default 'You called a dropdown action that was not defined'
|
||||
*/
|
||||
action: string;
|
||||
/**
|
||||
* @default 'Once a select has been initialized behaviors must be called on the created ui dropdown'
|
||||
*/
|
||||
alreadySetup: string;
|
||||
/**
|
||||
* @default 'Allowing user additions currently requires the use of labels.'
|
||||
*/
|
||||
labels: string;
|
||||
/**
|
||||
* @default 'The method you called is not defined.'
|
||||
*/
|
||||
method: string;
|
||||
/**
|
||||
* @default 'This module requires ui transitions <https: github.com="" semantic-org="" ui-transition="">'
|
||||
*/
|
||||
noTransition: string;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
// Type definitions for semantic-ui-dropdown 2.2
|
||||
// Project: http://www.semantic-ui.com
|
||||
// Definitions by: Leonard Thieu <https://github.com/leonard-thieu>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 2.2
|
||||
|
||||
/// <reference types="jquery" />
|
||||
/// <reference types="semantic-ui-api" />
|
||||
/// <reference path="global.d.ts" />
|
||||
|
||||
declare const dropdown: SemanticUI.Dropdown;
|
||||
export = dropdown;
|
||||
@@ -0,0 +1,208 @@
|
||||
function test_dropdown_static() {
|
||||
$.fn.dropdown.settings.error.method = 'method';
|
||||
$.fn.dropdown.settings.namespace = 'namespace';
|
||||
$.fn.dropdown.settings.name = 'name';
|
||||
$.fn.dropdown.settings.silent = false;
|
||||
$.fn.dropdown.settings.debug = true;
|
||||
$.fn.dropdown.settings.performance = true;
|
||||
$.fn.dropdown.settings.verbose = true;
|
||||
}
|
||||
|
||||
function test_dropdown() {
|
||||
const selector = '.ui.dropdown';
|
||||
$(selector).dropdown('setup menu') === $();
|
||||
$(selector).dropdown('refresh') === $();
|
||||
$(selector).dropdown('toggle') === $();
|
||||
$(selector).dropdown('show') === $();
|
||||
$(selector).dropdown('hide') === $();
|
||||
$(selector).dropdown('clear') === $();
|
||||
$(selector).dropdown('hide others') === $();
|
||||
$(selector).dropdown('restore defaults') === $();
|
||||
$(selector).dropdown('restore default text') === $();
|
||||
$(selector).dropdown('restore placeholder text') === $();
|
||||
$(selector).dropdown('restore default value') === $();
|
||||
$(selector).dropdown('save defaults') === $();
|
||||
$(selector).dropdown('set selected', 123) === $();
|
||||
$(selector).dropdown('remove selected', false) === $();
|
||||
$(selector).dropdown('set selected', ['456']) === $();
|
||||
$(selector).dropdown('set exactly', []) === $();
|
||||
$(selector).dropdown('set text', 'hello') === $();
|
||||
$(selector).dropdown('set value', 24) === $();
|
||||
$(selector).dropdown('get text') === 'text';
|
||||
$(selector).dropdown('get value') === {};
|
||||
$(selector).dropdown('get item', 'Pennsylvania') === $();
|
||||
$(selector).dropdown('bind touch events') === $();
|
||||
$(selector).dropdown('bind mouse events') === $();
|
||||
$(selector).dropdown('bind intent') === $();
|
||||
$(selector).dropdown('unbind intent') === $();
|
||||
$(selector).dropdown('determine intent') === true;
|
||||
$(selector).dropdown('determine select action', 'text', 90) === $();
|
||||
$(selector).dropdown('set active') === $();
|
||||
$(selector).dropdown('set visible') === $();
|
||||
$(selector).dropdown('remove active') === $();
|
||||
$(selector).dropdown('remove visible') === $();
|
||||
$(selector).dropdown('is selection') === false;
|
||||
$(selector).dropdown('is animated') === false;
|
||||
$(selector).dropdown('is visible') === false;
|
||||
$(selector).dropdown('is hidden') === false;
|
||||
$(selector).dropdown('get default text') === 'default text';
|
||||
$(selector).dropdown('get placeholder text') === 'placeholder text';
|
||||
$(selector).dropdown('destroy') === $();
|
||||
$(selector).dropdown('setting', 'debug', undefined) === false;
|
||||
$(selector).dropdown('setting', 'debug') === false;
|
||||
$(selector).dropdown('setting', 'debug', true) === $();
|
||||
$(selector).dropdown('setting', {
|
||||
namespace: 'namespace',
|
||||
name: 'name',
|
||||
silent: false,
|
||||
debug: true,
|
||||
performance: true,
|
||||
verbose: true
|
||||
}) === $();
|
||||
$(selector).dropdown({
|
||||
on: 'hover',
|
||||
allowReselection: true,
|
||||
allowAdditions: false,
|
||||
hideAdditions: true,
|
||||
action(text, value, element) {
|
||||
this === $();
|
||||
text === 'text';
|
||||
if (typeof value !== 'string') {
|
||||
value === false;
|
||||
}
|
||||
element === $();
|
||||
},
|
||||
minCharacters: 2,
|
||||
match: 'text',
|
||||
selectOnKeydown: false,
|
||||
forceSelection: true,
|
||||
allowCategorySelection: false,
|
||||
placeholder: 'value',
|
||||
apiSettings: {
|
||||
cache: 'local',
|
||||
throttleFirstRequest: true,
|
||||
loadingDuration: 20
|
||||
},
|
||||
fields: {
|
||||
remoteValues: 'remoteValues',
|
||||
values: 'values',
|
||||
name: 'name',
|
||||
value: 'value'
|
||||
},
|
||||
saveRemoteData: true,
|
||||
filterRemoteData: false,
|
||||
useLabels: true,
|
||||
maxSelections: 20,
|
||||
glyphWidth: 14,
|
||||
label: {
|
||||
transition: 'horizontal flip',
|
||||
duration: 200,
|
||||
variation: 'basic'
|
||||
},
|
||||
direction: 'downward',
|
||||
keepOnScreen: false,
|
||||
context: 'body',
|
||||
fullTextSearch: 'exact',
|
||||
preserveHTML: true,
|
||||
sortSelect: false,
|
||||
showOnFocus: true,
|
||||
allowTab: false,
|
||||
transition: 'auto',
|
||||
duration: 500,
|
||||
keys: {
|
||||
backspace: 8,
|
||||
delimiter: false,
|
||||
deleteKey: 46,
|
||||
enter: 13,
|
||||
escape: 27,
|
||||
pageUp: 33,
|
||||
pageDown: 34,
|
||||
leftArrow: 37,
|
||||
upArrow: 38,
|
||||
rightArrow: 30,
|
||||
downArrow: 40
|
||||
},
|
||||
delay: {
|
||||
hide: 300,
|
||||
show: 200,
|
||||
search: 50,
|
||||
touch: 50
|
||||
},
|
||||
onChange(value, text, $choice) {
|
||||
value === {};
|
||||
text === 'text';
|
||||
$choice === $();
|
||||
},
|
||||
onAdd(addedValue, addedText, $addedChoice) {
|
||||
addedValue === {};
|
||||
addedText === 'addedText';
|
||||
$addedChoice === $();
|
||||
},
|
||||
message: {
|
||||
addResult: 'addResult',
|
||||
count: 'count',
|
||||
maxSelections: 'maxSelections',
|
||||
noResults: 'noResults',
|
||||
},
|
||||
selector: {
|
||||
addition: 'addition',
|
||||
dropdown: 'dropdown',
|
||||
icon: 'icon',
|
||||
input: 'input',
|
||||
item: 'item',
|
||||
label: 'label',
|
||||
remove: 'remove',
|
||||
siblingLabel: 'siblingLabel',
|
||||
menu: 'menu',
|
||||
message: 'message',
|
||||
menuIcon: 'menuIcon',
|
||||
search: 'search',
|
||||
text: 'text',
|
||||
},
|
||||
regExp: {
|
||||
escape: /[-[\]{}()*+?.,\\^$|#\s]/g
|
||||
},
|
||||
metadata: {
|
||||
defaultText: 'defaultText',
|
||||
defaultValue: 'defaultValue',
|
||||
placeholderText: 'placeholderText',
|
||||
text: 'text',
|
||||
value: 'value',
|
||||
},
|
||||
className: {
|
||||
active: 'active',
|
||||
addition: 'addition',
|
||||
animating: 'animating',
|
||||
disabled: 'disabled',
|
||||
dropdown: 'dropdown',
|
||||
filtered: 'filtered',
|
||||
hidden: 'hidden',
|
||||
item: 'item',
|
||||
label: 'label',
|
||||
loading: 'loading',
|
||||
menu: 'menu',
|
||||
message: 'message',
|
||||
multiple: 'multiple',
|
||||
placeholder: 'placeholder',
|
||||
search: 'search',
|
||||
selected: 'selected',
|
||||
selection: 'selection',
|
||||
upward: 'upward',
|
||||
visible: 'visible',
|
||||
},
|
||||
error: {
|
||||
action: 'action',
|
||||
alreadySetup: 'alreadySetup',
|
||||
labels: 'labels',
|
||||
method: 'method',
|
||||
noTransition: 'noTransition'
|
||||
}
|
||||
}) === $();
|
||||
$(selector).dropdown() === $();
|
||||
}
|
||||
|
||||
import dropdown = require('semantic-ui-dropdown');
|
||||
|
||||
function test_module() {
|
||||
$.fn.dropdown = dropdown;
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": [
|
||||
"es6",
|
||||
"dom"
|
||||
],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"global.d.ts",
|
||||
"semantic-ui-dropdown-tests.ts"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"extends": "dtslint/dt.json",
|
||||
"rules": {
|
||||
"no-empty-interface": false,
|
||||
"unified-signatures": false
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user