mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-04-07 17:17:23 +08:00
Merge pull request #4717 from stephenlautier/master
Added definitions for eq.js
This commit is contained in:
67
eq.js/eq.js.d.ts
vendored
Normal file
67
eq.js/eq.js.d.ts
vendored
Normal 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
28
eq.js/eq.js.tests.ts
Normal 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];
|
||||
Reference in New Issue
Block a user