Merge pull request #4717 from stephenlautier/master

Added definitions for eq.js
This commit is contained in:
Horiuchi_H
2015-06-25 11:28:04 +09:00
2 changed files with 95 additions and 0 deletions

67
eq.js/eq.js.d.ts vendored Normal file
View File

@@ -0,0 +1,67 @@
// Type definitions for eq.js
// Project: https://github.com/Snugug/eq.js
// Definitions by: Stephen Lautier <https://github.com/stephenlautier>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
declare var eqjs: eq.EqjsStatic;
// Support AMD require
declare module 'eqjs' {
export = eqjs;
}
declare module eq {
type AvailableElementType = HTMLElement|HTMLElement[]|NodeList|JQuery;
interface EqjsStatic {
/**
* List of all nodes.
*/
nodes: EqjsNodesTable;
/**
* Number of nodes in eqjs.nodes.
*/
nodesLength: number;
/**
* Runs through all nodes and finds their widths and points
* @param nodes
* @param callback function to use as a callback once query and nodeWrites have finished
*/
query(nodes: AvailableElementType, callback?: Function): void;
/**
* Refreshes the list of nodes for eqjs to work with
*/
refreshNodes(): void;
/**
* Sorts a simple object (key: value) by value and returns a sorted object.
* @param obj e.g. "small: 380, medium: 490, large: 600"
* @returns {}
*/
sortObj(obj: string): EqjsKeyValuePair[];
/**
* Runs through all nodes and writes their eq status.
* @param nodes An array or NodeList of nodes to query
* @returns {}
*/
nodeWrites(nodes?: AvailableElementType): void;
}
interface EqjsKeyValuePair {
key: string;
value: number;
}
interface EqjsNodesTable {
[index: number]: HTMLElement;
}
}
// Support jQuery selectors.
interface JQuery { }

28
eq.js/eq.js.tests.ts Normal file
View File

@@ -0,0 +1,28 @@
/// <reference path="eqjs.d.ts" />
/// <reference path="../jquery/jquery.d.ts" />
var nodes = document.getElementsByClassName(".test-container");
var node = document.getElementById("#test-container");
var $nodes = $(".selector");
eqjs.query(node);
eqjs.query(node, () => { });
eqjs.query(nodes);
eqjs.query($nodes);
var nodesCount: number = eqjs.nodesLength;
eqjs.refreshNodes();
eqjs.nodeWrites();
eqjs.nodeWrites(node);
eqjs.nodeWrites(nodes);
eqjs.nodeWrites($nodes);
var sortMap = eqjs.sortObj("small: 380, medium: 490, large: 600");
var sortFirstKey = sortMap[0].key;
var sortFirstValue = sortMap[0].value;
var nodesMap = eqjs.nodes;
var ele: HTMLElement = nodesMap[1];