typescript-closure-tools
Version:
Command-line tools to convert closure-style JSDoc annotations to typescript, and to convert typescript sources to closure externs files
1,319 lines (1,145 loc) • 40.8 kB
TypeScript
// Type definitions for AppFramework 2.0
// Project: http://app-framework-software.intel.com/
// Definitions by: kyo_ago <https://github.com/kyo-ago>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
interface appFrameworkStatic {
/**
* This is the internal appframework object that gets extended and added on to it
* This is also the start of our query selector engine
* @param {String|Element|Object|Array} selector
* @param {String|Element|Object} [context]
*/
(selector: string, context?: any): appFrameworkCollection;
(collection: appFrameworkCollection): appFrameworkCollection;
(element: HTMLElement): appFrameworkCollection;
(htmlString: string): appFrameworkCollection;
(object: any): appFrameworkCollection;
/**
* Checks to see if the parameter is a $afm object
```
var foo=$('#header');
$.is$(foo);
```
* @param {Object} element
* @return {Boolean}
* @title $.is$(param)
*/
is$(obj: any): boolean;
/**
* Map takes in elements and executes a callback function on each and returns a collection
```
$.map([1,2],function(ind){return ind+1});
```
* @param {Array|Object} elements
* @param {Function} callback
* @return {Object} appframework object with elements in it
* @title $.map(elements,callback)
*/
map(collection: any[], fn: (item: any, index: number) => any): any[];
/**
* Iterates through elements and executes a callback. Returns if false
```
$.each([1,2],function(ind){console.log(ind);});
```
* @param {Array|Object} elements
* @param {Function} callback
* @return {Array} elements
* @title $.each(elements,callback)
*/
each(collection: any[], fn: (index: number, item: any) => any): void;
each(collection: any, fn: (key: string, value: any) => any): void;
/**
* Extends an object with additional arguments
```
$.extend({foo:'bar'});
$.extend(element,{foo:'bar'});
```
* @param {Object} [target] element
* @param any number of additional arguments
* @return {Object} [target]
* @title $.extend(target,{params})
*/
extend(target: any, ...sources: any[]): any;
/**
* Checks to see if the parameter is an array
```
var arr=[];
$.isArray(arr);
```
* @param {Object} element
* @return {Boolean}
* @example $.isArray([1]);
* @title $.isArray(param)
*/
isArray(object: any): boolean;
/**
* Checks to see if the parameter is a function
```
var func=function(){};
$.isFunction(func);
```
* @param {Object} element
* @return {Boolean}
* @title $.isFunction(param)
*/
isFunction(object: any): boolean;
/**
* Checks to see if the parameter is a object
```
var foo={bar:'bar'};
$.isObject(foo);
```
* @param {Object} element
* @return {Boolean}
* @title $.isObject(param)
*/
isObject(object: any): boolean;
/**
* Prototype for afm object. Also extens $.fn
*/
fn: Object;
/* AJAX settings */
ajaxSettings: appFrameworkAjaxSettings;
/**
* Execute a jsonP call, allowing cross domain scripting
* options.url - URL to call
* options.success - Success function to call
* options.error - Error function to call
```
$.jsonP({url:'mysite.php?callback=?&foo=bar',success:function(){},error:function(){}});
```
* @param {Object} options
* @title $.jsonP(options)
*/
jsonP(options: appFrameworkAjaxSettings): {};
/**
* Execute an Ajax call with the given options
* options.type - Type of request
* options.beforeSend - function to execute before sending the request
* options.success - success callback
* options.error - error callback
* options.complete - complete callback - callled with a success or error
* options.timeout - timeout to wait for the request
* options.url - URL to make request against
* options.contentType - HTTP Request Content Type
* options.headers - Object of headers to set
* options.dataType - Data type of request
* options.data - data to pass into request. $.param is called on objects
```
var opts={
type:"GET",
success:function(data){},
url:"mypage.php",
data:{bar:'bar'},
}
$.ajax(opts);
```
* @param {Object} options
* @title $.ajax(options)
*/
ajax(options: appFrameworkAjaxSettings): XMLHttpRequest;
/**
* Shorthand call to an Ajax GET request
```
$.get("mypage.php?foo=bar",function(data){});
```
* @param {String} url to hit
* @param {Function} success
* @title $.get(url,success)
*/
get(url: string, fn: (data: any, status?: string, xhr?: XMLHttpRequest) => void): XMLHttpRequest;
/**
* Shorthand call to an Ajax POST request
```
$.post("mypage.php",{bar:'bar'},function(data){});
```
* @param {String} url to hit
* @param {Object} [data] to pass in
* @param {Function} success
* @param {String} [dataType]
* @title $.post(url,[data],success,[dataType])
*/
post(url: string, fn: (data: any, status?: string, xhr?: XMLHttpRequest) => void, dataType?: string): XMLHttpRequest;
post(url: string, data: any, fn: (data: any, status?: string, xhr?: XMLHttpRequest) => void, dataType?: string): XMLHttpRequest;
/**
* Shorthand call to an Ajax request that expects a JSON response
```
$.getJSON("mypage.php",{bar:'bar'},function(data){});
```
* @param {String} url to hit
* @param {Object} [data]
* @param {Function} [success]
* @title $.getJSON(url,data,success)
*/
getJSON(url: string, fn: (data: any, status?: string, xhr?: XMLHttpRequest) => void): XMLHttpRequest;
getJSON(url: string, data: any, fn: (data: any, status: string, xhr: XMLHttpRequest) => void ): XMLHttpRequest;
/**
* Converts an object into a key/value par with an optional prefix. Used for converting objects to a query string
```
var obj={
foo:'foo',
bar:'bar'
}
var kvp=$.param(obj,'data');
```
* @param {Object} object
* @param {String} [prefix]
* @return {String} Key/value pair representation
* @title $.param(object,[prefix];
*/
param(object: any, prefix?: string): string;
/**
* Used for backwards compatibility. Uses native JSON.parse function
```
var obj=$.parseJSON("{\"bar\":\"bar\"}");
```
* @params {String} string
* @return {Object}
* @title $.parseJSON(string)
*/
parseJSON(str: string): any;
/**
* Helper function to convert XML into the DOM node representation
```
var xmlDoc=$.parseXML("<xml><foo>bar</foo></xml>");
```
* @param {String} string
* @return {Object} DOM nodes
* @title $.parseXML(string)
*/
parseXML(str: string): any;
/**
* Utility function to create a psuedo GUID
```
var id= $.uuid();
```
* @title $.uuid
*/
uuid(): string;
/**
* Gets the css matrix, or creates a fake one
```
$.getCssMatrix(domElement)
```
@returns matrix with postion
*/
getCssMatrix(node: HTMLElement): appFrameworkCssMatrix;
getCssMatrix(elem: appFrameworkCollection): appFrameworkCssMatrix;
/**
* $.create - a faster alertnative to $("<div id='main'>this is some text</div>");
```
$.create("div",{id:'main',innerHTML:'this is some text'});
$.create("<div id='main'>this is some text</div>");
```
* @param {String} DOM Element type or html
* @param [{Object}] properties to apply to the element
* @return {Object} Returns an appframework object
* @title $.create(type,[params])
*/
create(type: string, params?: any): appFrameworkCollection;
/**
* $.query - a faster alertnative to $("div");
```
$.query(".panel");
```
* @param {String} selector
* @param {Object} [context]
* @return {Object} Returns an appframework object
* @title $.query(selector,[context])
*/
query(selector: string, context?: any): appFrameworkCollection;
/**
* Creates a custom event to be used internally.
* @param {String} type
* @param {Object} [properties]
* @return {event} a custom event that can then be dispatched
* @title $.Event(type,props);
*/
Event(type: string, props: any): any;
/* The following are for events on objects */
/**
* Bind an event to an object instead of a DOM Node
```
$.bind(this,'event',function(){});
```
* @param {Object} object
* @param {String} event name
* @param {Function} function to execute
* @title $.bind(object,event,function);
*/
bind(object: any, event: string, fn: Function): void;
/**
* Trigger an event to an object instead of a DOM Node
```
$.trigger(this,'event',arguments);
```
* @param {Object} object
* @param {String} event name
* @param {Array} arguments
* @title $.trigger(object,event,argments);
*/
trigger(object: any, event: string, args?: any[]): void;
/**
* Unbind an event to an object instead of a DOM Node
```
$.unbind(this,'event',function(){});
```
* @param {Object} object
* @param {String} event name
* @param {Function} function to execute
* @title $.unbind(object,event,function);
*/
unbind(object: any, event: string, fn: Function): void;
/**
* Creates a proxy function so you can change the 'this' context in the function
* Update: now also allows multiple argument call or for you to pass your own arguments
```
var newObj={foo:bar}
$("#main").bind("click",$.proxy(function(evt){console.log(this)},newObj);
or
( $.proxy(function(foo, bar){console.log(this+foo+bar)}, newObj) )('foo', 'bar');
or
( $.proxy(function(foo, bar){console.log(this+foo+bar)}, newObj, ['foo', 'bar']) )();
```
* @param {Function} Callback
* @param {Object} Context
* @title $.proxy(callback,context);
*/
proxy(callback: Function, context: any): void;
/**
* Function to clean up node content to prevent memory leaks
```
$.cleanUpContent(node,itself,kill)
```
* @param {HTMLNode} node
* @param {Bool} kill itself
* @param {bool} Kill nodes
* @title $.cleanUpContent(node,itself,kill)
*/
cleanUpContent(node: HTMLElement, itself?: boolean, kill?: boolean): void;
/**
* This adds a command to execute in the JS stack, but is faster then setTimeout
```
$.asap(function,context,args)
```
* @param {Function} function
* @param {Object} context
* @param {Array} arguments
*/
asap(callback: Function, context?: any, args?: any[]): void;
/**
* this function executes javascript in HTML.
```
$.parseJS(content)
```
* @param {String|DOM} content
* @title $.parseJS(content);
*/
parseJS(content: string): void;
parseJS(content: HTMLElement): void;
/**
* Helper function to parse the user agent. Sets the following
* .os.webkit
* .os.android
* .os.ipad
* .os.iphone
* .os.webos
* .os.touchpad
* .os.blackberry
* .os.opera
* .os.fennec
* .os.ie
* .os.ieTouch
* .os.supportsTouch
* .os.playbook
* .feat.nativetouchScroll
* @api private
*/
os: {
webkit: boolean;
android: boolean;
androidICS: boolean;
ipad: boolean;
iphone: boolean;
ios7: boolean;
webos: boolean;
touchpad: boolean;
ios: boolean;
playbook: boolean;
blackberry: boolean;
blackberry10: boolean;
chrome: boolean;
opera: boolean;
fennec: boolean;
ie: boolean;
ieTouch: boolean;
supportsTouch: boolean;
};
feat: {
nativeTouchScroll: boolean;
cssPrefix: string;
cssTransformStart: string;
cssTransformEnd: string;
}
}
interface appFrameworkCollection {
reduce(callbackfn: (previousValue: appFrameworkCollection, currentValue: appFrameworkCollection, currentIndex: number, array: appFrameworkCollection[]) => appFrameworkCollection, initialValue?: appFrameworkCollection): appFrameworkCollection;
push(...items: appFrameworkCollection[]): number;
indexOf(searchElement: appFrameworkCollection, fromIndex?: number): number;
concat(...items: appFrameworkCollection[]): appFrameworkCollection[];
slice(start: number, end?: number): appFrameworkCollection[];
length: number;
/**
* This is a wrapper to $.map on the selected elements
```
$().map(function(){this.value+=ind});
```
* @param {Function} callback
* @return {Object} an appframework object
* @title $().map(function)
*/
map(fn: (index: number, item: any) => any): appFrameworkCollection;
/**
* Iterates through all elements and applys a callback function
```
$().each(function(){console.log(this.value)});
```
* @param {Function} callback
* @return {Object} an appframework object
* @title $().each(function)
*/
each(fn: (index: number, item: any) => any): appFrameworkCollection;
forEach(fn: (item: any, index: number) => any): void;
/**
* This is executed when DOMContentLoaded happens, or after if you've registered for it.
```
$(document).ready(function(){console.log('I'm ready');});
```
* @param {Function} callback
* @return {Object} an appframework object
* @title $().ready(function)
*/
ready(fn: Function): appFrameworkStatic;
/**
* Searches through the collection and reduces them to elements that match the selector
```
$("#foo").find('.bar');
$("#foo").find($('.bar'));
$("#foo").find($('.bar').get(0));
```
* @param {String|Object|Array} selector
* @return {Object} an appframework object filtered
* @title $().find(selector)
*/
find(selector: string): appFrameworkCollection;
/**
* Gets or sets the innerHTML for the collection.
* If used as a get, the first elements innerHTML is returned
```
$("#foo").html(); //gets the first elements html
$("#foo").html('new html');//sets the html
$("#foo").html('new html',false); //Do not do memory management cleanup
```
* @param {String} html to set
* @param {Bool} [cleanup] - set to false for performance tests and if you do not want to execute memory management cleanup
* @return {Object} an appframework object
* @title $().html([html])
*/
html(): string;
html(html: string): appFrameworkCollection;
html(html: string, cleanup: boolean): appFrameworkCollection;
/**
* Gets or sets the innerText for the collection.
* If used as a get, the first elements innerText is returned
```
$("#foo").text(); //gets the first elements text;
$("#foo").text('new text'); //sets the text
```
* @param {String} text to set
* @return {Object} an appframework object
* @title $().text([text])
*/
text(): string;
text(text: string): appFrameworkCollection;
/**
* Gets or sets a css property for the collection
* If used as a get, the first elements css property is returned
* This will add px to properties that need it.
```
$().css("background"); // Gets the first elements background
$().css("background","red") //Sets the elements background to red
```
* @param {String} attribute to get
* @param {String} value to set as
* @return {Object} an appframework object
* @title $().css(attribute,[value])
*/
css(property: string): any;
css(property: string, value: any): appFrameworkCollection;
css(properties: any): appFrameworkCollection;
/**
* Performs a css vendor specific transform:translate operation on the collection.
*
```
$("#main").cssTranslate('200px,0,0');
```
* @param {String} Transform values
* @return {Object} an appframework object
* @title $().vendorCss(value)
*/
vendorCss(transform: string): appFrameworkCollection;
/**
* Gets the computed style of CSS values
*
```
$("#main").computedStyle('display');
```
* @param {String} css property
* @return {Int|String|Float|} css vlaue
* @title $().computedStyle()
*/
computedStyle(css: string): appFrameworkCollection;
/**
* Sets the innerHTML of all elements to an empty string
```
$().empty();
```
* @return {Object} an appframework object
* @title $().empty()
*/
empty(): appFrameworkCollection;
/**
* Sets the elements display property to "none".
* This will also store the old property into an attribute for hide
```
$().hide();
```
* @return {Object} an appframework object
* @title $().hide()
*/
hide(): appFrameworkCollection;
/**
* Shows all the elements by setting the css display property
* We look to see if we were retaining an old style (like table-cell) and restore that, otherwise we set it to block
```
$().show();
```
* @return {Object} an appframework object
* @title $().show()
*/
show(): appFrameworkCollection;
/**
* Toggle the visibility of a div
```
$().toggle();
$().toggle(true); //force showing
```
* @param {Boolean} [show] -force the hiding or showing of the element
* @return {Object} an appframework object
* @title $().toggle([show])
*/
toggle(show?: boolean): appFrameworkCollection;
/**
* Gets or sets an elements value
* If used as a getter, we return the first elements value. If nothing is in the collection, we return undefined
```
$().value; //Gets the first elements value;
$().value="bar"; //Sets all elements value to bar
```
* @param {String} [value] to set
* @return {String|Object} A string as a getter, appframework object as a setter
* @title $().val([value])
*/
val(): string;
val(value: string): appFrameworkCollection;
/**
* Gets or sets an attribute on an element
* If used as a getter, we return the first elements value. If nothing is in the collection, we return undefined
```
$().attr("foo"); //Gets the first elements 'foo' attribute
$().attr("foo","bar");//Sets the elements 'foo' attribute to 'bar'
$().attr("foo",{bar:'bar'}) //Adds the object to an internal cache
```
* @param {String|Object} attribute to act upon. If it's an object (hashmap), it will set the attributes based off the kvp.
* @param {String|Array|Object|function} [value] to set
* @return {String|Object|Array|Function} If used as a getter, return the attribute value. If a setter, return an appframework object
* @title $().attr(attribute,[value])
*/
attr(attribute: string): any;
attr(attributeHash: Object): appFrameworkCollection;
attr(attribute: string, value: string): appFrameworkCollection;
attr(attribute: string, value: any): appFrameworkCollection;
/**
* Removes an attribute on the elements
```
$().removeAttr("foo");
```
* @param {String} attributes that can be space delimited
* @return {Object} appframework object
* @title $().removeAttr(attribute)
*/
removeAttr(attribute: string): appFrameworkCollection;
/**
* Gets or sets a property on an element
* If used as a getter, we return the first elements value. If nothing is in the collection, we return undefined
```
$().prop("foo"); //Gets the first elements 'foo' property
$().prop("foo","bar");//Sets the elements 'foo' property to 'bar'
$().prop("foo",{bar:'bar'}) //Adds the object to an internal cache
```
* @param {String|Object} property to act upon. If it's an object (hashmap), it will set the attributes based off the kvp.
* @param {String|Array|Object|function} [value] to set
* @return {String|Object|Array|Function} If used as a getter, return the property value. If a setter, return an appframework object
* @title $().prop(property,[value])
*/
prop(attribute: string): any;
prop(attributeHash: Object): appFrameworkCollection;
prop(attribute: string, value: string): appFrameworkCollection;
prop(attribute: string, value: any): appFrameworkCollection;
/**
* Removes a property on the elements
```
$().removeProp("foo");
```
* @param {String} properties that can be space delimited
* @return {Object} appframework object
* @title $().removeProp(attribute)
*/
removeProp(attribute: string): appFrameworkCollection;
/**
* Removes elements based off a selector
```
$().remove(); //Remove all
$().remove(".foo");//Remove off a string selector
var element=$("#foo").get(0);
$().remove(element); //Remove by an element
$().remove($(".foo")); //Remove by a collection
```
* @param {String|Object|Array} selector to filter against
* @return {Object} appframework object
* @title $().remove(selector)
*/
remove(): appFrameworkCollection;
remove(selector: string): appFrameworkCollection;
remove(element: HTMLElement): appFrameworkCollection;
remove(elements: any[]): appFrameworkCollection;
remove(elements: appFrameworkCollection): appFrameworkCollection;
/**
* Adds a css class to elements.
```
$().addClass("selected");
```
* @param {String} classes that are space delimited
* @return {Object} appframework object
* @title $().addClass(name)
*/
addClass(className: string): appFrameworkCollection;
/**
* Removes a css class from elements.
```
$().removeClass("foo"); //single class
$().removeClass("foo selected");//remove multiple classess
```
* @param {String} classes that are space delimited
* @return {Object} appframework object
* @title $().removeClass(name)
*/
removeClass(className: string): appFrameworkCollection;
/**
* Adds or removes a css class to elements.
```
$().toggleClass("selected");
```
* @param {String} classes that are space delimited
* @param {Boolean} [state] force toggle to add or remove classes
* @return {Object} appframework object
* @title $().toggleClass(name)
*/
toggleClass(name: string, state?: boolean): appFrameworkCollection;
/**
* Replaces a css class on elements.
```
$().replaceClass("on", "off");
```
* @param {String} classes that are space delimited
* @param {String} classes that are space delimited
* @return {Object} appframework object
* @title $().replaceClass(old, new)
*/
replaceClass(oldClassName: string, newClassName: string): appFrameworkCollection;
/**
* Checks to see if an element has a class.
```
$().hasClass('foo');
$().hasClass('foo',element);
```
* @param {String} class name to check against
* @param {Object} [element] to check against
* @return {Boolean}
* @title $().hasClass(name,[element])
*/
hasClass(className: string, element: HTMLElement): boolean;
/**
* Appends to the elements
* We boil everything down to an appframework object and then loop through that.
* If it's HTML, we create a dom element so we do not break event bindings.
* if it's a script tag, we evaluate it.
```
$().append("<div></div>"); //Creates the object from the string and appends it
$().append($("#foo")); //Append an object;
```
* @param {String|Object} Element/string to add
* @param {Boolean} [insert] insert or append
* @return {Object} appframework object
* @title $().append(element,[insert])
*/
append(content: any): appFrameworkCollection;
/**
* Appends the current collection to the selector
```
$().appendTo("#foo"); //Append an object;
```
* @param {String|Object} Selector to append to
* @param {Boolean} [insert] insert or append
* @title $().appendTo(element,[insert])
*/
appendTo(target: any): appFrameworkCollection;
/**
* Prepends the current collection to the selector
```
$().prependTo("#foo"); //Prepend an object;
```
* @param {String|Object} Selector to prepent to
* @title $().prependTo(element)
*/
prependTo(target: any): appFrameworkCollection;
/**
* Prepends to the elements
* This simply calls append and sets insert to true
```
$().prepend("<div></div>");//Creates the object from the string and appends it
$().prepend($("#foo")); //Prepends an object
```
* @param {String|Object} Element/string to add
* @return {Object} appframework object
* @title $().prepend(element)
*/
prepend(content: any): appFrameworkCollection;
/**
* Inserts collection before the target (adjacent)
```
$().insertBefore(af("#target"));
```
* @param {String|Object} Target
* @title $().insertBefore(target);
*/
insertBefore(target: any): appFrameworkCollection;
/**
* Inserts collection after the target (adjacent)
```
$().insertAfter(af("#target"));
```
* @param {String|Object} target
* @title $().insertAfter(target);
*/
insertAfter(target: any): void;
/**
* Returns the raw DOM element.
```
$().get(0); //returns the first element
$().get(2);// returns the third element
```
* @param {Int} [index]
* @return {Object} raw DOM element
* @title $().get([index])
*/
get(): HTMLElement[];
get(index: number): HTMLElement;
/**
* Returns the offset of the element, including traversing up the tree
```
$().offset();
```
* @return {Object} with left, top, width and height properties
* @title $().offset()
*/
offset(): {
left: number;
top: number;
right: number;
bottom: number;
width: number;
height: number;
};
/**
* returns the height of the element, including padding on IE
```
$().height();
```
* @return {string} height
* @title $().height()
*/
height(): string;
/**
* returns the width of the element, including padding on IE
```
$().width();
```
* @return {string} width
* @title $().width()
*/
width(): string;
/**
* Returns the parent nodes of the elements based off the selector
```
$("#foo").parent('.bar');
$("#foo").parent($('.bar'));
$("#foo").parent($('.bar').get(0));
```
* @param {String|Array|Object} [selector]
* @return {Object} appframework object with unique parents
* @title $().parent(selector)
*/
parent(selector?: any): appFrameworkCollection;
/**
* Returns the parents of the elements based off the selector (traversing up until html document)
```
$("#foo").parents('.bar');
$("#foo").parents($('.bar'));
$("#foo").parents($('.bar').get(0));
```
* @param {String|Array|Object} [selector]
* @return {Object} appframework object with unique parents
* @title $().parents(selector)
*/
parents(selector?: any): appFrameworkCollection;
/**
* Returns the child nodes of the elements based off the selector
```
$("#foo").children('.bar'); //Selector
$("#foo").children($('.bar')); //Objects
$("#foo").children($('.bar').get(0)); //Single element
```
* @param {String|Array|Object} [selector]
* @return {Object} appframework object with unique children
* @title $().children(selector)
*/
children(selector?: any): appFrameworkCollection;
/**
* Returns the siblings of the element based off the selector
```
$("#foo").siblings('.bar'); //Selector
$("#foo").siblings($('.bar')); //Objects
$("#foo").siblings($('.bar').get(0)); //Single element
```
* @param {String|Array|Object} [selector]
* @return {Object} appframework object with unique siblings
* @title $().siblings(selector)
*/
siblings(selector?: any): appFrameworkCollection;
/**
* Returns the closest element based off the selector and optional context
```
$("#foo").closest('.bar'); //Selector
$("#foo").closest($('.bar')); //Objects
$("#foo").closest($('.bar').get(0)); //Single element
```
* @param {String|Array|Object} selector
* @param {Object} [context]
* @return {Object} Returns an appframework object with the closest element based off the selector
* @title $().closest(selector,[context]);
*/
closest(selector?: any): appFrameworkCollection;
/**
* Filters elements based off the selector
```
$("#foo").filter('.bar'); //Selector
$("#foo").filter($('.bar')); //Objects
$("#foo").filter($('.bar').get(0)); //Single element
```
* @param {String|Array|Object} selector
* @return {Object} Returns an appframework object after the filter was run
* @title $().filter(selector);
*/
filter(selector?: any): appFrameworkCollection;
/**
* Basically the reverse of filter. Return all elements that do NOT match the selector
```
$("#foo").not('.bar'); //Selector
$("#foo").not($('.bar')); //Objects
$("#foo").not($('.bar').get(0)); //Single element
```
* @param {String|Array|Object} selector
* @return {Object} Returns an appframework object after the filter was run
* @title $().not(selector);
*/
not(selector?: any): appFrameworkCollection;
/**
* Gets or set data-* attribute parameters on elements (when a string)
* When used as a getter, it's only the first element
```
$().data("foo"); //Gets the data-foo attribute for the first element
$().data("foo","bar"); //Sets the data-foo attribute for all elements
$().data("foo",{bar:'bar'});//object as the data
```
* @param {String} key
* @param {String|Array|Object} value
* @return {String|Object} returns the value or appframework object
* @title $().data(key,[value]);
*/
data(attribute: string): any;
data(attribute: string, value: string): appFrameworkCollection;
data(attribute: string, value: any): appFrameworkCollection;
/**
* Rolls back the appframework elements when filters were applied
* This can be used after .not(), .filter(), .children(), .parent()
```
$().filter(".panel").end(); //This will return the collection BEFORE filter is applied
```
* @return {Object} returns the previous appframework object before filter was applied
* @title $().end();
*/
end(): appFrameworkCollection;
/**
* Clones the nodes in the collection.
```
$().clone();// Deep clone of all elements
$().clone(false); //Shallow clone
```
* @param {Boolean} [deep] - do a deep copy or not
* @return {Object} appframework object of cloned nodes
* @title $().clone();
*/
clone(deep?: boolean): appFrameworkCollection;
/**
* Returns the number of elements in the collection
```
$().size();
```
* @return {Int}
* @title $().size();
*/
size(): number;
/**
* Serailizes a form into a query string
```
$().serialize();
```
* @return {String}
* @title $().serialize()
*/
serialize(): string;
/* added in 1.2 */
/**
* Reduce the set of elements based off index
```
$().eq(index)
```
* @param {Int} index - Index to filter by. If negative, it will go back from the end
* @return {Object} appframework object
* @title $().eq(index)
*/
eq(index: number): appFrameworkCollection;
/**
* Returns the index of the selected element in the collection
```
$().index(elem)
```
* @param {String|Object} element to look for. Can be a selector or object
* @return integer - index of selected element
* @title $().index(elem)
*/
index(): number;
index(selector: any): number;
/**
* Returns boolean if the object is a type of the selector
```
$().is(selector)
```
* param {String|Object} selector to act upon
* @return boolean
* @title $().is(selector)
*/
is(selector: any): number;
/**
* Binds an event to each element in the collection and executes the callback
```
$().bind('click',function(){console.log('I clicked '+this.id);});
```
* @param {String|Object} event
* @param {Function} callback
* @return {Object} appframework object
* @title $().bind(event,callback)
*/
bind(eventHash: Object): appFrameworkCollection;
bind(eventName: string, fn: (e: Event) => any): appFrameworkCollection;
/**
* Unbinds an event to each element in the collection. If a callback is passed in, we remove just that one, otherwise we remove all callbacks for those events
```
$().unbind('click'); //Unbinds all click events
$().unbind('click',myFunc); //Unbinds myFunc
```
* @param {String|Object} event
* @param {Function} [callback]
* @return {Object} appframework object
* @title $().unbind(event,[callback]);
*/
unbind(eventHash: {}): appFrameworkCollection;
unbind(eventName?: string): appFrameworkCollection;
unbind(eventName: string, fn?: (e: Event) => any): appFrameworkCollection;
/**
* Binds an event to each element in the collection that will only execute once. When it executes, we remove the event listener then right away so it no longer happens
```
$().one('click',function(){console.log('I was clicked once');});
```
* @param {String|Object} event
* @param {Function} [callback]
* @return appframework object
* @title $().one(event,callback);
*/
one(eventHash: {}): appFrameworkCollection;
one(eventName: string, fn: (e: Event) => any): appFrameworkCollection;
/**
* Delegate an event based off the selector. The event will be registered at the parent level, but executes on the selector.
```
$("#div").delegate("p",'click',callback);
```
* @param {String|Array|Object} selector
* @param {String|Object} event
* @param {Function} callback
* @return {Object} appframework object
* @title $().delegate(selector,event,callback)
*/
delegate(selector: any, eventHash: {}): appFrameworkCollection;
delegate(selector: any, eventName: string, fn: (e: Event) => any): appFrameworkCollection;
/**
* Unbinds events that were registered through delegate. It acts upon the selector and event. If a callback is specified, it will remove that one, otherwise it removes all of them.
```
$("#div").undelegate("p",'click',callback);//Undelegates callback for the click event
$("#div").undelegate("p",'click');//Undelegates all click events
```
* @param {String|Array|Object} selector
* @param {String|Object} event
* @param {Function} callback
* @return {Object} appframework object
* @title $().undelegate(selector,event,[callback]);
*/
undelegate(selector: any, eventHash: {}): appFrameworkCollection;
undelegate(selector: any, eventName: string, fn: (e: Event) => any): appFrameworkCollection;
/**
* Similar to delegate, but the function parameter order is easier to understand.
* If selector is undefined or a function, we just call .bind, otherwise we use .delegate
```
$("#div").on("click","p",callback);
```
* @param {String|Array|Object} selector
* @param {String|Object} event
* @param {Function} callback
* @return {Object} appframework object
* @title $().on(event,selector,callback);
*/
on(eventHash: {}, selector?: any): appFrameworkCollection;
on(eventName: string, fn: (e: Event) => any): appFrameworkCollection;
on(eventName: string, selector: string, fn: (e: Event) => any): appFrameworkCollection;
/**
* Removes event listeners for .on()
* If selector is undefined or a function, we call unbind, otherwise it's undelegate
```
$().off("click","p",callback); //Remove callback function for click events
$().off("click","p") //Remove all click events
```
* @param {String|Object} event
* @param {String|Array|Object} selector
* @param {Sunction} callback
* @return {Object} appframework object
* @title $().off(event,selector,[callback])
*/
off(eventHash: {}, selector?: any): appFrameworkCollection;
off(eventName: string, fn: (e: Event) => any): appFrameworkCollection;
off(eventName: string, selector: string, fn: (e: Event) => any): appFrameworkCollection;
/**
This triggers an event to be dispatched. Usefull for emulating events, etc.
```
$().trigger("click",{foo:'bar'});//Trigger the click event and pass in data
```
* @param {String|Object} event
* @param {Object} [data]
* @return {Object} appframework object
* @title $().trigger(event,data);
*/
trigger(eventName: string, data?: any): appFrameworkCollection;
trigger(eventHash: {}, data?: any): appFrameworkCollection;
/**
custom events since people want to do $().click instead of $().bind("click")
*/
click(fn?: (e: Event) => any): appFrameworkCollection;
/**
custom events since people want to do $().keydown instead of $().bind("keydown")
*/
keydown(fn?: (e: Event) => any): appFrameworkCollection;
/**
custom events since people want to do $().keyup instead of $().bind("keyup")
*/
keyup(fn?: (e: Event) => any): appFrameworkCollection;
/**
custom events since people want to do $().keypress instead of $().bind("keypress")
*/
keypress(fn?: (e: Event) => any): appFrameworkCollection;
/**
custom events since people want to do $().submit instead of $().bind("submit")
*/
submit(fn?: (e: Event) => any): appFrameworkCollection;
/**
custom events since people want to do $().load instead of $().bind("load")
*/
load(fn?: (e: Event) => any): appFrameworkCollection;
/**
custom events since people want to do $().resize instead of $().bind("resize")
*/
resize(fn?: (e: Event) => any): appFrameworkCollection;
/**
custom events since people want to do $().change instead of $().bind("change")
*/
change(fn?: (e: Event) => any): appFrameworkCollection;
/**
custom events since people want to do $().select instead of $().bind("select")
*/
select(fn?: (e: Event) => any): appFrameworkCollection;
/**
custom events since people want to do $().error instead of $().bind("error")
*/
error(fn?: (e: Event) => any): appFrameworkCollection;
/**
custom events since people want to do $().focus instead of $().bind("focus")
*/
focus(fn?: (e: Event) => any): appFrameworkCollection;
/**
custom events since people want to do $().blur instead of $().bind("blur")
*/
blur(fn?: (e: Event) => any): appFrameworkCollection;
}
interface appFrameworkAjaxSettings {
type?: string;
beforeSend?: (xhr: XMLHttpRequest, settings: appFrameworkAjaxSettings) => boolean;
success?: (data: any, status: string, xhr: XMLHttpRequest) => void;
error?: (xhr: XMLHttpRequest, errorType: string, error: Error) => void;
complete?: (xhr: XMLHttpRequest, status: string) => void;
timeout?: number;
url?: string;
contentType?: string;
headers?: any;
dataType?: string;
data?: any;
context?: any;
crossDomain?: boolean;
}
interface appFrameworkCssMatrix {
a: number;
b: number;
c: number;
d: number;
e: number;
f: number;
}
declare var af: (fn: ($: appFrameworkStatic) => void) => void;
declare var $: appFrameworkStatic;