mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
599 lines
18 KiB
TypeScript
599 lines
18 KiB
TypeScript
interface JQuery {
|
|
search: SemanticUI.Search;
|
|
}
|
|
|
|
declare namespace SemanticUI {
|
|
interface Search {
|
|
settings: SearchSettings;
|
|
|
|
/**
|
|
* Search for value currently set in search input
|
|
*/
|
|
(behavior: 'query', callback?: () => void): JQuery;
|
|
/**
|
|
* Displays message in search results with text, using template matching type
|
|
*/
|
|
(behavior: 'display message', text: string, type: string): JQuery;
|
|
/**
|
|
* Cancels current remote search query
|
|
*/
|
|
(behavior: 'cancel query'): JQuery;
|
|
/**
|
|
* Search local object for specified query and display results
|
|
*/
|
|
(behavior: 'search local', query: string): JQuery;
|
|
/**
|
|
* Whether has minimum characters
|
|
*/
|
|
(behavior: 'has minimum characters'): boolean;
|
|
/**
|
|
* Search remote endpoint for specified query and display results
|
|
*/
|
|
(behavior: 'search remote', query: string, callback?: () => void): JQuery;
|
|
/**
|
|
* Search object for specified query and return results
|
|
*/
|
|
(behavior: 'search object', query: string, object: any, searchFields: string[]): any;
|
|
/**
|
|
* Cancels current remote search request
|
|
*/
|
|
(behavior: 'cancel query'): JQuery;
|
|
/**
|
|
* Whether search is currently focused
|
|
*/
|
|
(behavior: 'is focused'): boolean;
|
|
/**
|
|
* Whether search results are visible
|
|
*/
|
|
(behavior: 'is visible'): boolean;
|
|
/**
|
|
* Whether search results are empty
|
|
*/
|
|
(behavior: 'is empty'): boolean;
|
|
/**
|
|
* Returns current search value
|
|
*/
|
|
(behavior: 'get value'): any;
|
|
/**
|
|
* Returns JSON object matching searched title or id (see above)
|
|
*/
|
|
(behavior: 'get result', value: any): any;
|
|
/**
|
|
* Sets search input to value
|
|
*/
|
|
(behavior: 'set value', value: any): JQuery;
|
|
/**
|
|
* Reads cached results for query
|
|
*/
|
|
(behavior: 'read cache', query: string): JQuery;
|
|
/**
|
|
* Clears value from cache, if no parameter passed clears all cache
|
|
*/
|
|
(behavior: 'clear cache', query?: string): JQuery;
|
|
/**
|
|
* Writes cached results for query
|
|
*/
|
|
(behavior: 'write cache', query: string): JQuery;
|
|
/**
|
|
* Adds HTML to results and displays
|
|
*/
|
|
(behavior: 'add results', html: string): JQuery;
|
|
/**
|
|
* Shows results container
|
|
*/
|
|
(behavior: 'show results', callback?: () => void): JQuery;
|
|
/**
|
|
* Hides results container
|
|
*/
|
|
(behavior: 'hide results', callback?: () => void): JQuery;
|
|
/**
|
|
* Generates results using parser specified by settings.template
|
|
*/
|
|
(behavior: 'generate results', response: any): JQuery;
|
|
/**
|
|
* Removes all events
|
|
*/
|
|
(behavior: 'destroy'): JQuery;
|
|
<K extends keyof SearchSettings>(behavior: 'setting', name: K, value?: undefined): SearchSettings._Impl[K];
|
|
<K extends keyof SearchSettings>(behavior: 'setting', name: K, value: SearchSettings._Impl[K]): JQuery;
|
|
(behavior: 'setting', value: SearchSettings): JQuery;
|
|
(settings?: SearchSettings): JQuery;
|
|
}
|
|
|
|
/**
|
|
* @see {@link http://semantic-ui.com/modules/search.html#/settings}
|
|
*/
|
|
type SearchSettings = SearchSettings.Param;
|
|
|
|
namespace SearchSettings {
|
|
type Param = (Pick<_Impl, 'apiSettings'> |
|
|
Pick<_Impl, 'type'> |
|
|
Pick<_Impl, 'minCharacters'> |
|
|
Pick<_Impl, 'transition'> |
|
|
Pick<_Impl, 'duration'> |
|
|
Pick<_Impl, 'maxResults'> |
|
|
Pick<_Impl, 'cache'> |
|
|
Pick<_Impl, 'source'> |
|
|
Pick<_Impl, 'selectFirstResult'> |
|
|
Pick<_Impl, 'showNoResults'> |
|
|
Pick<_Impl, 'searchFullText'> |
|
|
Pick<_Impl, 'fields'> |
|
|
Pick<_Impl, 'searchFields'> |
|
|
Pick<_Impl, 'hideDelay'> |
|
|
Pick<_Impl, 'searchDelay'> |
|
|
Pick<_Impl, 'easing'> |
|
|
Pick<_Impl, 'onSelect'> |
|
|
Pick<_Impl, 'onResultsAdd'> |
|
|
Pick<_Impl, 'onSearchQuery'> |
|
|
Pick<_Impl, 'onResults'> |
|
|
Pick<_Impl, 'onResultsOpen'> |
|
|
Pick<_Impl, 'onResultsClose'> |
|
|
Pick<_Impl, 'templates'> |
|
|
Pick<_Impl, 'regExp'> |
|
|
Pick<_Impl, 'selector'> |
|
|
Pick<_Impl, 'metadata'> |
|
|
Pick<_Impl, 'className'> |
|
|
Pick<_Impl, 'error'> |
|
|
Pick<_Impl, 'namespace'> |
|
|
Pick<_Impl, 'name'> |
|
|
Pick<_Impl, 'silent'> |
|
|
Pick<_Impl, 'debug'> |
|
|
Pick<_Impl, 'performance'> |
|
|
Pick<_Impl, 'verbose'>) &
|
|
Partial<Pick<_Impl, keyof _Impl>>;
|
|
|
|
interface _Impl {
|
|
type: string;
|
|
|
|
// region Behavior
|
|
|
|
/**
|
|
* Settings for API call.
|
|
*
|
|
* @see {@link http://semantic-ui.com/behaviors/api.html#/usage}
|
|
*/
|
|
apiSettings: ApiSettings;
|
|
/**
|
|
* Minimum characters to query for results
|
|
*
|
|
* @default 1
|
|
*/
|
|
minCharacters: number;
|
|
/**
|
|
* Named transition to use when animating menu in and out. Fade and slide down are available without including ui transitions
|
|
*
|
|
* @default 'fade'
|
|
* @see {@link http://semantic-ui.com/modules/transition.html}
|
|
*/
|
|
transition: string;
|
|
/**
|
|
* Duration of animation events
|
|
*
|
|
* @default 300
|
|
*/
|
|
duration: number;
|
|
/**
|
|
* Maximum results to display when using local and simple search, maximum category count for category search
|
|
*
|
|
* @default 7
|
|
*/
|
|
maxResults: number;
|
|
/**
|
|
* Caches results locally to avoid requerying server
|
|
*
|
|
* @default true
|
|
*/
|
|
cache: boolean;
|
|
/**
|
|
* Specify a Javascript object which will be searched locally
|
|
*
|
|
* @default false
|
|
*/
|
|
source: false | any;
|
|
/**
|
|
* Whether the search should automatically select the first search result after searching
|
|
*
|
|
* @default false
|
|
*/
|
|
selectFirstResult: boolean;
|
|
/**
|
|
* Whether a "no results" message should be shown if no results are found. (These messages can be modified using the template object specified below)
|
|
*
|
|
* @default false
|
|
*/
|
|
showNoResults: boolean;
|
|
/**
|
|
* Return local results that match anywhere inside your content
|
|
*
|
|
* @default true
|
|
*/
|
|
searchFullText: boolean;
|
|
/**
|
|
* List mapping display content to JSON property, either with API or source.
|
|
*/
|
|
fields: Search.FieldsSettings;
|
|
/**
|
|
* Specify object properties inside local source object which will be searched
|
|
*/
|
|
searchFields: string[];
|
|
/**
|
|
* Delay before hiding results after search blur
|
|
*
|
|
* @default 0
|
|
*/
|
|
hideDelay: number;
|
|
/**
|
|
* Delay before querying results on inputchange
|
|
*
|
|
* @default 100
|
|
*/
|
|
searchDelay: number;
|
|
/**
|
|
* Easing equation when using fallback Javascript animation
|
|
*
|
|
* @default 'easeOutExpo'
|
|
*/
|
|
easing: string;
|
|
|
|
// endregion
|
|
|
|
// region Callbacks
|
|
|
|
/**
|
|
* Callback on element selection by user.
|
|
* The first parameter includes the filtered response results for that element.
|
|
* The function should return false to prevent default action (closing search results and selecting value).
|
|
*/
|
|
onSelect(this: JQuery, result: any, response: any): false | void;
|
|
/**
|
|
* Callback after processing element template to add HTML to results. Function should return false to prevent default actions.
|
|
*/
|
|
onResultsAdd(this: JQuery, html: string): false | void;
|
|
/**
|
|
* Callback on search query
|
|
*/
|
|
onSearchQuery(this: JQuery, query: string): void;
|
|
/**
|
|
* Callback on server response
|
|
*/
|
|
onResults(this: JQuery, response: any): void;
|
|
/**
|
|
* Callback when results are opened
|
|
*/
|
|
onResultsOpen(this: JQuery): void;
|
|
/**
|
|
* Callback when results are closed
|
|
*/
|
|
onResultsClose(this: JQuery): void;
|
|
|
|
// endregion
|
|
|
|
// region Templates
|
|
|
|
templates: Search.TemplatesSettings;
|
|
|
|
// endregion
|
|
|
|
// region DOM Settings
|
|
|
|
/**
|
|
* Regular expressions used for matching
|
|
*/
|
|
regExp: Search.RegExpSettings;
|
|
/**
|
|
* Selectors used to find parts of a module
|
|
*/
|
|
selector: Search.SelectorSettings;
|
|
/**
|
|
* HTML5 metadata attributes used internally
|
|
*/
|
|
metadata: Search.MetadataSettings;
|
|
/**
|
|
* Class names used to determine element state
|
|
*/
|
|
className: Search.ClassNameSettings;
|
|
|
|
// endregion
|
|
|
|
// region Debug Settings
|
|
|
|
error: Search.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 Search {
|
|
type FieldsSettings = FieldsSettings.Param;
|
|
|
|
namespace FieldsSettings {
|
|
type Param = (Pick<_Impl, 'categories'> |
|
|
Pick<_Impl, 'categoryName'> |
|
|
Pick<_Impl, 'categoryResults'> |
|
|
Pick<_Impl, 'description'> |
|
|
Pick<_Impl, 'image'> |
|
|
Pick<_Impl, 'price'> |
|
|
Pick<_Impl, 'results'> |
|
|
Pick<_Impl, 'title'> |
|
|
Pick<_Impl, 'action'> |
|
|
Pick<_Impl, 'actionText'> |
|
|
Pick<_Impl, 'actionURL'>) &
|
|
Partial<Pick<_Impl, keyof _Impl>>;
|
|
|
|
interface _Impl {
|
|
/**
|
|
* array of categories (category view)
|
|
*
|
|
* @default 'results'
|
|
*/
|
|
categories: string;
|
|
/**
|
|
* name of category (category view)
|
|
*
|
|
* @default 'name'
|
|
*/
|
|
categoryName: string;
|
|
/**
|
|
* array of results (category view)
|
|
*
|
|
* @default 'results'
|
|
*/
|
|
categoryResults: string;
|
|
/**
|
|
* result description
|
|
*
|
|
* @default 'description'
|
|
*/
|
|
description: string;
|
|
/**
|
|
* result image
|
|
*
|
|
* @default 'image'
|
|
*/
|
|
image: string;
|
|
/**
|
|
* result price
|
|
*
|
|
* @default 'price'
|
|
*/
|
|
price: string;
|
|
/**
|
|
* array of results (standard)
|
|
*
|
|
* @default 'results'
|
|
*/
|
|
results: string;
|
|
/**
|
|
* result title
|
|
*
|
|
* @default 'title'
|
|
*/
|
|
title: string;
|
|
/**
|
|
* "view more" object name
|
|
*
|
|
* @default 'action'
|
|
*/
|
|
action: string;
|
|
/**
|
|
* "view more" text
|
|
*
|
|
* @default 'text'
|
|
*/
|
|
actionText: string;
|
|
/**
|
|
* "view more" url
|
|
*
|
|
* @default 'url'
|
|
*/
|
|
actionURL: string;
|
|
}
|
|
}
|
|
|
|
type TemplatesSettings = TemplatesSettings.Param;
|
|
|
|
namespace TemplatesSettings {
|
|
type Param = (Pick<_Impl, 'escape'> |
|
|
Pick<_Impl, 'message'> |
|
|
Pick<_Impl, 'category'> |
|
|
Pick<_Impl, 'standard'>) &
|
|
Partial<Pick<_Impl, keyof _Impl>>;
|
|
|
|
interface _Impl {
|
|
escape(string: string): string;
|
|
message(message: string, type: string): string;
|
|
category(response: any): string;
|
|
standard(response: any): string;
|
|
}
|
|
}
|
|
|
|
type RegExpSettings = RegExpSettings.Param;
|
|
|
|
namespace RegExpSettings {
|
|
type Param = (Pick<_Impl, 'escape'> |
|
|
Pick<_Impl, 'beginsWith'>) &
|
|
Partial<Pick<_Impl, keyof _Impl>>;
|
|
|
|
interface _Impl {
|
|
/**
|
|
* @default /[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g
|
|
*/
|
|
escape: RegExp;
|
|
/**
|
|
* @default '(?:\s|^)'
|
|
*/
|
|
beginsWith: string;
|
|
}
|
|
}
|
|
|
|
type SelectorSettings = SelectorSettings.Param;
|
|
|
|
namespace SelectorSettings {
|
|
type Param = (Pick<_Impl, 'prompt'> |
|
|
Pick<_Impl, 'searchButton'> |
|
|
Pick<_Impl, 'results'> |
|
|
Pick<_Impl, 'category'> |
|
|
Pick<_Impl, 'result'>) &
|
|
Partial<Pick<_Impl, keyof _Impl>>;
|
|
|
|
interface _Impl {
|
|
/**
|
|
* @default '.prompt'
|
|
*/
|
|
prompt: string;
|
|
/**
|
|
* @default '.search.button'
|
|
*/
|
|
searchButton: string;
|
|
/**
|
|
* @default '.results'
|
|
*/
|
|
results: string;
|
|
/**
|
|
* @default '.category'
|
|
*/
|
|
category: string;
|
|
/**
|
|
* @default '.result'
|
|
*/
|
|
result: string;
|
|
}
|
|
}
|
|
|
|
type MetadataSettings = MetadataSettings.Param;
|
|
|
|
namespace MetadataSettings {
|
|
type Param = (Pick<_Impl, 'cache'> |
|
|
Pick<_Impl, 'results'>) &
|
|
Partial<Pick<_Impl, keyof _Impl>>;
|
|
|
|
interface _Impl {
|
|
/**
|
|
* @default 'cache'
|
|
*/
|
|
cache: string;
|
|
/**
|
|
* @default 'results'
|
|
*/
|
|
results: string;
|
|
}
|
|
}
|
|
|
|
type ClassNameSettings = ClassNameSettings.Param;
|
|
|
|
namespace ClassNameSettings {
|
|
type Param = (Pick<_Impl, 'active'> |
|
|
Pick<_Impl, 'empty'> |
|
|
Pick<_Impl, 'focus'> |
|
|
Pick<_Impl, 'loading'> |
|
|
Pick<_Impl, 'pressed'>) &
|
|
Partial<Pick<_Impl, keyof _Impl>>;
|
|
|
|
interface _Impl {
|
|
/**
|
|
* @default 'active'
|
|
*/
|
|
active: string;
|
|
/**
|
|
* @default 'empty'
|
|
*/
|
|
empty: string;
|
|
/**
|
|
* @default 'focus'
|
|
*/
|
|
focus: string;
|
|
/**
|
|
* @default 'loading'
|
|
*/
|
|
loading: string;
|
|
/**
|
|
* @default 'down'
|
|
*/
|
|
pressed: string;
|
|
}
|
|
}
|
|
|
|
type ErrorSettings = ErrorSettings.Param;
|
|
|
|
namespace ErrorSettings {
|
|
type Param = (Pick<_Impl, 'source'> |
|
|
Pick<_Impl, 'noResults'> |
|
|
Pick<_Impl, 'logging'> |
|
|
Pick<_Impl, 'noTemplate'> |
|
|
Pick<_Impl, 'serverError'> |
|
|
Pick<_Impl, 'maxResults'> |
|
|
Pick<_Impl, 'method'>) &
|
|
Partial<Pick<_Impl, keyof _Impl>>;
|
|
|
|
interface _Impl {
|
|
/**
|
|
* @default 'Cannot search. No source used, and Semantic API module was not included'
|
|
*/
|
|
source: string;
|
|
/**
|
|
* @default 'Your search returned no results'
|
|
*/
|
|
noResults: string;
|
|
/**
|
|
* @default 'Error in debug logging, exiting.'
|
|
*/
|
|
logging: string;
|
|
/**
|
|
* @default 'A valid template name was not specified.'
|
|
*/
|
|
noTemplate: string;
|
|
/**
|
|
* @default 'There was an issue with querying the server.'
|
|
*/
|
|
serverError: string;
|
|
/**
|
|
* @default 'Results must be an array to use maxResults setting'
|
|
*/
|
|
maxResults: string;
|
|
/**
|
|
* @default 'The method you called is not defined.'
|
|
*/
|
|
method: string;
|
|
}
|
|
}
|
|
}
|
|
}
|