UNPKG

typescript-closure-tools

Version:

Command-line tools to convert closure-style JSDoc annotations to typescript, and to convert typescript sources to closure externs files

791 lines (756 loc) 27 kB
// Type definitions for jsTree v3.0.0 // Project: http://www.jstree.com/ // Definitions by: Adam Pluci�ski <https://github.com/adaskothebeast> // Definitions: https://github.com/borisyankov/DefinitelyTyped ///<reference path="../jquery/jquery.d.ts" /> interface JQueryStatic { /** * holds all jstree related functions and variables, * including the actual class and methods to create, * access and manipulate instances. * @property jstree * @type {JSTreeStatic} */ jstree?: JSTreeStatic; } interface JSTreeStatic { /** * specifies the jstree version in use * @property version * @type {string} */ version: string; /** * holds all the default options used when creating new instances * @property defaults * @type {JSTreeStaticDefaults} */ defaults: JSTreeStaticDefaults; /** * stores all loaded jstree plugins (used internally) */ plugins: any[]; /** * creates a jstree instance * @param el <DOMElement, jQuery, String> the element to create the instance on, can be jQuery extended or a selector * @param options {JSTreeOptions} options for this instance (extends `$.jstree.defaults`) * @returns {JSTree} the new instance */ create(el: any, options?: JSTreeStaticDefaults): JSTree; /** * the jstree class constructor, used only internally * @param id {number} this instance's index */ core(id: number): void; /** * get a reference to an existing instance * * __Examples__ * * $.jstree.reference('tree'); * $.jstree.reference('#tree'); * $.jstree.reference('branch'); * $.jstree.reference('#branch'); * * @param {String} selector * @returns {JSTree|null} the instance or `null` if not found */ reference(selector: string): JSTree; /** * get a reference to an existing instance * * __Examples__ * * $.jstree.reference(document.getElementByID('tree')); * $.jstree.reference(document.getElementByID('branch')); * * @param {HTMLElement} element * @returns {JSTree|null} the instance or `null` if not found */ reference(element: HTMLElement): JSTree; /** * get a reference to an existing instance * * __Examples__ * * $.jstree.reference($('#tree')); * $.jstree.reference($('#branch')); * * @param {JQuery} object * @returns {JSTree|null} the instance or `null` if not found */ reference(object: JQuery): JSTree; } interface JSTreeStaticDefaults { /** * configure which plugins will be active on an instance. * Should be an array of strings, where each element is a plugin name. * The default is [] */ plugins: string[]; /** * stores all defaults for the core */ core: JSTreeStaticDefaultsCore; /** * stores all defaults for the checkbox plugin */ checkbox?: JSTreeStaticDefaultsCheckbox; /** * stores all defaults for the contextmenu plugin */ contextmenu?: JSTreeStaticDefaultsContextMenu; /** * stores all defaults for the drag'n'drop plugin */ dnd?: JSTreeStaticDefaultsDragNDrop; /** * stores all defaults for the search plugin */ search?: JSTreeStaticDefaultsSearch; /** * the settings function used to sort the nodes. * It is executed in the tree's context, * accepts two nodes as arguments and should return 1 or -1. */ sort?: (x: any, y: any) => number; /** * stores all defaults for the state plugin */ state?: JSTreeStaticDefaultsState; /** * An object storing all types as key value pairs, * where the key is the type name and the value is an object * that could contain following keys (all optional). * max_children the maximum number of immediate children this node type can have. * Do not specify or set to -1 for unlimited. * max_depth the maximum number of nesting this node type can have. * A value of 1 would mean that the node can have children, but no grandchildren. * Do not specify or set to -1 for unlimited. * valid_children an array of node type strings, that nodes of this type can have as children. * Do not specify or set to -1 for no limits. * icon a string - can be a path to an icon or a className, if using an image * that is in the current directory use a ./ prefix, otherwise it will be detected as a class. * Omit to use the default icon from your theme. * There are two predefined types: * # represents the root of the tree, for example max_children would control the maximum number of root nodes. * default represents the default node - any settings here will be applied to all nodes that do not have a type specified. */ types?: any; } interface JSTreeStaticDefaultsCore { /** * data configuration */ data?: any; /** * configure the various strings used throughout the tree */ strings?: any; /** * */ check_callback?: (operation: string, node: any, node_parent: any, node_position: any) => boolean; /** * a callback called with a single object parameter in the instance's scope * when something goes wrong (operation prevented, ajax failed, etc) */ error: () => any; /** * the open / close animation duration in milliseconds * set this to false to disable the animation (default is 200) */ animation?: any; /** * a boolean indicating if multiple nodes can be selected */ multiple?: boolean; /** * theme configuration object */ themes?: JSTreeStaticDefaultsCoreThemes; /** * if left as true all parents of all selected nodes will be opened * once the tree loads (so that all selected nodes are visible to the user) */ expand_selected_onload?: boolean; } interface JSTreeStaticDefaultsCoreThemes { /** * the name of the theme to use (if left as false the default theme is used) */ name?: string; /** * the URL of the theme's CSS file, leave this as false if you have manually * included the theme CSS (recommended). * You can set this to true too which will try to autoload the theme. */ url?: string; /** * the location of all jstree themes - only used if url is set to true */ dir?: string; /** * a boolean indicating if connecting dots are shown */ dots?: boolean; /** * a boolean indicating if node icons are shown */ icons?: boolean; /** * a boolean indicating if the tree background is striped */ stripes?: boolean; /** * a string (or boolean false) specifying the theme * variant to use (if the theme supports variants) */ variant?: any; /** * a boolean specifying if a reponsive version of the theme should kick * in on smaller screens (if the theme supports it). Defaults to true. */ responsive?: boolean; } interface JSTreeStaticDefaultsCheckbox { /** * a boolean indicating if checkboxes should be visible * (can be changed at a later time using show_checkboxes() * and hide_checkboxes). Defaults to true. */ visible: boolean; /** * a boolean indicating if checkboxes should cascade down * and have an undetermined state. Defaults to true. */ three_state: boolean; /** * a boolean indicating if clicking anywhere on the node * should act as clicking on the checkbox. Defaults to true. */ whole_node: boolean; /** * a boolean indicating if the selected style of a node * should be kept, or removed. Defaults to true. */ keep_selected_style: boolean; } interface JSTreeStaticDefaultsContextMenu { /** * a boolean indicating if the node should be selected * when the context menu is invoked on it. Defaults to true. */ select_node: boolean; /** * a boolean indicating if the menu should be shown aligned * with the node. Defaults to true, otherwise the mouse coordinates are used. */ show_at_node: boolean; /** * an object of actions, or a function that accepts a node * and returns an object of actions available for that node * Each action consists of a key (a unique name) and a value which is an object with the following properties: * separator_before - a boolean indicating if there should be a separator before this item * separator_after - a boolean indicating if there should be a separator after this item * _disabled - a boolean indicating if this action should be disabled * label - a string - the name of the action * action - a function to be executed if this item is chosen */ items: any; } interface JSTreeStaticDefaultsDragNDrop { /** * a boolean indicating if a copy should be possible * while dragging (by pressint the meta key or Ctrl). Defaults to 'true'. */ copy: boolean; /** * a number indicating how long a node should remain hovered * while dragging to be opened. Defaults to 500. */ open_timeout: number; /** * a function invoked each time a node is about to be dragged, * invoked in the tree's scope and receives the nodes about to be dragged * as an argument (array) - return `false` to prevent dragging */ is_draggable: boolean; /** * a boolean indicating if checks should constantly be made * while the user is dragging the node (as opposed to checking only on drop), * default is `true` */ check_while_dragging: boolean; /** * a boolean indicating if nodes from this tree should only be copied * with dnd (as opposed to moved), default is `false` */ always_copy: boolean; } interface JSTreeStaticDefaultsSearch { /** * a jQuery-like AJAX config, which jstree uses * if a server should be queried for results. * A str (which is the search string) parameter will be added with the request. * The expected result is a JSON array with nodes that need to be opened * so that matching nodes will be revealed. Leave this setting as false to not query the server. */ ajax: any; /** * Indicates if the search should be fuzzy * or not (should chnd3 match child node 3). Default is true. */ fuzzy: boolean; /** * Indicates if the search should be case sensitive. Default is false. */ case_sensitive: boolean; /** * Indicates if the tree should be filtered to show only matching nodes * (keep in mind this can be a heavy on large trees in old browsers). Default is false. */ show_only_matches: boolean; /** * Indicates if all nodes opened to reveal the search result, * should be closed when the search is cleared or a new search is performed. Default is true. */ close_opened_onclear: boolean; /** * Indicates if only leaf nodes should be included in search results. Default is `false`. */ search_leaves_only: boolean; } interface JSTreeStaticDefaultsState { /** * A string for the key to use when saving the current tree * (change if using multiple trees in your project). Defaults to jstree. */ key: string; /** * A space separated list of events that trigger a state save. * Defaults to changed.jstree open_node.jstree close_node.jstree. */ events: string; /** * Time in milliseconds after which the state will expire. * Defaults to 'false' meaning - no expire. */ ttl: any; /** * A function that will be executed prior to restoring state * with one argument - the state object. Can be used * to clear unwanted parts of the state. */ filter: any; } interface JQuery { jstree(): JSTree; jstree(options: JSTreeStaticDefaults): JSTree; jstree(arg: boolean): JSTree; jstree(...args: any[]): JSTree; } interface JSTree extends JQuery { /** * destroy an instance */ destroy: () => void; /** * returns the jQuery extended instance container */ get_container: () => JQuery; /** * get the JSON representation of a node * (or the actual jQuery extended DOM node) * by using any input (child DOM element, ID string, selector, etc) */ get_node: (obj: any, as_dom?: boolean) => JQuery; /** * get the next visible node that is below the obj node. * If strict is set to true only sibling nodes are returned. */ get_next_dom: (obj:any,strict?:boolean) => JQuery; /** * get the previous visible node that is above the obj node. * If strict is set to true only sibling nodes are returned. */ get_prev_dom: (obj: any, strict?: boolean) => JQuery; /** * get the parent ID of a node */ get_parent: (obj: any) => string; /** * get a jQuery collection of all the children of a node (node must be rendered) */ get_children_dom: (obj: any) => JQuery; /** * checks if a node has children */ is_parent: (obj: any) => boolean; /** * checks if a node is loaded (its children are available) */ is_loaded: (obj: any) => boolean; /** * check if a node is currently loading (fetching children) */ is_loading: (obj: any) => boolean; /** * check if a node is opened */ is_open: (obj: any) => boolean; /** * check if a node is in a closed state */ is_closed: (obj: any) => boolean; /** * check if a node has no children */ is_leaf: (obj: any) => boolean; /** * loads a node (fetches its children using the core.data setting). * Multiple nodes can be passed to by using an array. * @param obj mixed * @param callback a function to be executed once loading is conplete, * the function is executed in the instance's scope and receives two arguments * the node and a boolean status */ load_node: (obj: any, callback: any) => boolean; /** * redraws all nodes that need to be redrawn or optionally - the whole tree * @param full if set to `true` all nodes are redrawn. */ redraw: (full?: boolean) => void; /** * opens a node, revaling its children. If the node is not loaded * it will be loaded and opened once ready. * @param obj the node to open * @param callback a function to execute once the node is opened * @param animation the animation duration in milliseconds when opening the node * (overrides the `core.animation` setting). Use `false` for no animation. */ open_node: (obj: any, callback?: any, animation?: any) => void; /** * opens a node, revaling its children. If the node is not loaded * it will be loaded and opened once ready. * @param obj the node to close * @param animation the animation duration in milliseconds when closing the node * (overrides the `core.animation` setting). Use `false` for no animation. */ close_node: (obj: any, animation?: any) => void; /** * toggles a node - closing it if it is open, opening it if it is closed */ toggle_node: (obj: any) => void; /** * opens all nodes within a node (or the tree), revaling their children. * If the node is not loaded it will be loaded and opened once ready. * @param obj the node to open recursively, omit to open all nodes in the tree * @param animation the animation duration in milliseconds when opening the nodes, the default is no animation * @param original_obj to the node that started the process (internal use) */ open_all: (obj?: any, animation?: number, original_obj?: any) => void; /** * closes all nodes within a node (or the tree), revaling their children * @param obj the node to close recursively, omit to close all nodes in the tree * @param animation the animation duration in milliseconds when closing the nodes, the default is no animation */ close_all: (obj?: any, animation?: number) => void; /** * checks if a node is disabled (not selectable) */ is_disabled: (obj: any) => boolean; /** * enables a node - so that it can be selected */ enable_node: (obj: any) => boolean; /** * disables a node - so that it can not be selected */ disable_node: (obj: any) => boolean; /** * select a node * @param obj an array can be used to select multiple nodes * @param supress_event if set to `true` the `changed.jstree` event won't be triggered * @param prevent_open if set to `true` parents of the selected node won't be opened */ select_node: (obj: any, supress_event?: boolean, prevent_open?: boolean) => void; /** * deselect a node * @param obj an array can be used to deselect multiple nodes * @param supress_event if set to `true` the `changed.jstree` event won't be triggered */ deselect_node: (obj: any, supress_event?: boolean) => void; /** * select all nodes in the tree * @param supress_event if set to `true` the `changed.jstree` event won't be triggered */ select_all: (supress_event?: boolean) => void; /** * deselect all selected nodes * @param supress_event if set to `true` the `changed.jstree` event won't be triggered */ deselect_all: (supress_event?: boolean) => void; /** * checks if a node is selected */ is_selected: (obj: any) => boolean; /** * get an array of all selected node IDs * @param full if set to `true` the returned array will consist of the full node objects, * otherwise - only IDs will be returned */ get_selected: (full?: any) => string[]; /** * refreshes the tree - all nodes are reloaded with calls to load_node. */ refresh: () => void; /** * set (change) the ID of a node * @param obj the node * @param id the new ID */ set_id: (obj: any, id: string) => void; /** * get the text value of a node */ get_text: (obj: any) => string; /** * gets a JSON representation of a node (or the whole tree) */ get_json: (obj?: any, options?: JSTreeGetJsonOptions) => any; /** * create a new node (do not confuse with load_node) * @param obj the parent node * @param node the data for the new node (a valid JSON object, or a simple string with the name) * @param pos the index at which to insert the node, "first" and "last" are also supported, default is "last" * @param callback a function to be called once the node is created * @param is_loaded internal argument indicating if the parent node was succesfully loaded * @returns the ID of the newly create node */ create_node: (obj?: any, node?: any, pos?: any, callback?: any, is_loaded?: boolean) => string; /** * set the text value of a node * @param obj the node, you can pass an array to rename multiple nodes to the same name * @param val the new text value */ rename_node: (obj: any, val: string) => boolean; /** * remove a node * @param obj the node, you can pass an array to delete multiple nodes */ delete_node: (obj: any) => boolean; /** * move a node to a new parent * @param obj the node to move, pass an array to move multiple nodes * @param par the new parent * @param pos the position to insert at ("first" and "last" are supported, as well as "before" and "after"), defaults to `0` * @param callback a function to call once the move is completed, receives 3 arguments - the node, the new parent and the position * @param internal parameter indicating if the parent node has been loaded */ move_node: (obj: any, par: any, pos?: any, callback?: any, internal?: boolean) => void; /** * copy a node to a new parent * @param obj the node to copy, pass an array to copy multiple nodes * @param par the new parent * @param pos the position to insert at ("first" and "last" are supported, as well as "before" and "after"), defaults to `0` * @param callback a function to call once the move is completed, receives 3 arguments - the node, the new parent and the position * @param internal parameter indicating if the parent node has been loaded */ copy_node: (obj: any, par: any, pos?: any, callback?: any, internal?: boolean) => void; /** * cut a node (a later call to paste(obj) would move the node) * @param obj multiple objects can be passed using an array */ cut: (obj: any) => void; /** * copy a node (a later call to paste(obj) would copy the node) * @param obj multiple objects can be passed using an array */ copy: (obj: any) => void; /** * get the current buffer (any nodes that are waiting for a paste operation) * @returns an object consisting of `mode` ("copy_node" or "move_node"), * `node` (an array of objects) and `inst` (the instance) */ get_buffer: () => any; /** * check if there is something in the buffer to paste */ can_paste: () => boolean; /** * copy or move the previously cut or copied nodes to a new parent * @param obj the new parent */ paste: (obj: any) => void; /** * put a node in edit mode (input field to rename the node) * @param obj * @param default_text the text to populate the input with (if omitted the node text value is used) */ edit: (obj: any, default_text?: string) => void; /** * changes the theme * @param theme_name the name of the new theme to apply * @param theme_url the location of the CSS file for this theme. * Omit or set to `false` if you manually included the file. * Set to `true` to autoload from the `core.themes.dir` directory. */ set_theme: (theme_name: string, theme_url?: any) => void; /** * gets the name of the currently applied theme name */ get_theme: () => string; /** * changes the theme variant (if the theme has variants) * @param variant_name the variant to apply (if `false` is used the current variant is removed) */ set_theme_variant: (variant_name: any) => void; /** * gets the name of the currently applied theme variant name */ get_theme_variant: () => string; /** * shows a striped background on the container (if the theme supports it) */ show_stripes: () => void; /** * hides the striped background on the container */ hide_stripes: () => void; /** * toggles the striped background on the container */ toggle_stripes: () => void; /** * shows the connecting dots (if the theme supports it) */ show_dots: () => void; /** * hides the connecting dots */ hide_dots: () => void; /** * toggles the connecting dots */ toggle_dots: () => void; /** * show the node icons */ show_icons: () => void; /** * hide the node icons */ hide_icons: () => void; /** * toggle the node icons */ toggle_icons: () => void; /** * set the node icon for a node * @param obj * @param icon the new icon - can be a path to an icon or a className, * if using an image that is in the current directory use a `./` prefix, * otherwise it will be detected as a class */ set_icon: (obj: any, icon: string) => void; /** * get the node icon for a node */ get_icon: (obj: any) => string; /** * hide the icon on an individual node */ hide_icon: (obj: any) => void; /** * show the icon on an individual node */ show_icon: (obj: any) => void; /** */ redraw_node: (obj: any, deep:boolean, is_callback:boolean) => any; activate_node: (obj: any, e: any) => any; /* * checkbox plugin: show the node checkbox icons */ show_checkboxes: () => void; /* * checkbox plugin: hide the node checkbox icons */ hide_checkboxes: () => void; /* * checkbox plugin: toggle the node icons */ toggle_checkboxes: () => void; /** * context menu plugin */ teardown: () => void; /** * context menu plugin: show the context menu for a node * @param obj the node * @param x the x-coordinate relative to the document to show the menu at * @param y the y-coordinate relative to the document to show the menu at */ show_contextmenu: (obj: any, x?: number, y?: number) => void; /** * search plugin: used to search the tree nodes for a given string * @param str the search string * @param skip_async if set to true server will not be queried even if configured */ search: (str: string, skip_async?: boolean) => void; /** * search plugin: used to clear the last search (removes classes and shows all nodes if filtering is on) */ clear_search: () => void; /** * state plugin: save the state */ save_state: () => void; /** * state plugin: restore the state from the user's computer */ restore_state: () => void; /** * state plugin: clear the state on the user's computer */ clear_state: () => void; /** * types plugin: used to retrieve the type settings object for a node * @param obj the node to find the rules for */ get_rules: (obj: any) => any; /** * types plugin: used to retrieve the type string or settings object for a node * @param obj the node to find the rules for * @param rules if set to `true` instead of a string the settings object will be returned */ get_type: (obj: any, rules?: any) => any; /** * types plugin: used to change a node's type * @param obj the node to change * @param type the new type */ set_type: (obj: any, type: string) => any; //bind(eventType: string, handler?: (event: any, data: JSTreeBindOptions) => any): JSTree; } interface JSTreeGetJsonOptions { /** * do not return state information */ no_state: boolean; /** * do not return ID */ no_id: boolean; /** * do not include children */ no_children: boolean; } interface JSTreeBindOptions { inst?: any; args?: any; rslt?: any; rlbk?: any; }