mirror of
https://github.com/FlipsideCrypto/DefinitelyTyped.git
synced 2026-02-06 10:56:53 +00:00
Add definition for Rangy
This commit is contained in:
parent
52b0ea5c97
commit
e57adf88d6
95
rangy/rangy-tests.ts
Normal file
95
rangy/rangy-tests.ts
Normal file
@ -0,0 +1,95 @@
|
||||
/// <reference path="rangy.d.ts" />
|
||||
|
||||
declare function assertAny(a:any):any;
|
||||
declare function assertBoolean(b:boolean):any;
|
||||
declare function assertString(s:string):any;
|
||||
declare function assertRangyRange(r:RangyRange):any;
|
||||
declare function getRangyRange():RangyRange;
|
||||
|
||||
function testRangyStatic() {
|
||||
rangy.addInitListener((rangy:RangyStatic) => {
|
||||
});
|
||||
|
||||
rangy.createMissingNativeApi();
|
||||
rangy.shim();
|
||||
|
||||
let nativeRange:Range|TextRange = rangy.createNativeRange(document);
|
||||
nativeRange = rangy.createNativeRange(window);
|
||||
nativeRange = rangy.createNativeRange(new HTMLIFrameElement);
|
||||
nativeRange = rangy.createNativeRange();
|
||||
|
||||
let rangyRange:RangyRange = rangy.createRange(document);
|
||||
rangyRange = rangy.createRange(window);
|
||||
rangyRange = rangy.createRange(new HTMLIFrameElement);
|
||||
rangyRange = rangy.createRange();
|
||||
|
||||
rangyRange = rangy.createRangyRange(document);
|
||||
rangyRange = rangy.createRangyRange(window);
|
||||
rangyRange = rangy.createRangyRange(new HTMLIFrameElement);
|
||||
rangyRange = rangy.createRangyRange();
|
||||
|
||||
let nativeSelection:Selection = rangy.getNativeSelection(window);
|
||||
nativeSelection = rangy.getNativeSelection();
|
||||
|
||||
let rangySelection:RangySelection = rangy.getSelection();
|
||||
|
||||
let initialized:boolean = rangy.initialized;
|
||||
let supported:boolean = rangy.supported;
|
||||
}
|
||||
|
||||
function testRangyRange() {
|
||||
let rangyRange:RangyRange = rangy.createRange();
|
||||
|
||||
assertBoolean(rangyRange.canSurroundContents());
|
||||
rangyRange.collapseAfter(new Node);
|
||||
rangyRange.collapseBefore(new Node);
|
||||
rangyRange.collapseToPoint(new Node, 23);
|
||||
assertAny(rangyRange.compareNode(new Node));
|
||||
assertBoolean(rangyRange.containsNode(new Node, true));
|
||||
assertBoolean(rangyRange.containsNodeContents(new Node));
|
||||
assertBoolean(rangyRange.containsNodeText(new Node));
|
||||
assertBoolean(rangyRange.containsNodeText(new Node));
|
||||
assertBoolean(rangyRange.containsRange(rangyRange));
|
||||
assertBoolean(rangyRange.equals(rangyRange));
|
||||
let bookmark:{start:number, end:number} = rangyRange.getBookmark();
|
||||
bookmark = rangyRange.getBookmark(new Node);
|
||||
let doc:Document = rangyRange.getDocument();
|
||||
let nodes:Node[] = rangyRange.getNodes();
|
||||
nodes = rangyRange.getNodes([new Node]);
|
||||
nodes = rangyRange.getNodes([new Node], (node:Node) => true);
|
||||
assertString(rangyRange.inspect());
|
||||
assertRangyRange(rangyRange.intersection(rangyRange));
|
||||
assertBoolean(rangyRange.intersectsOrTouchesRange(rangyRange));
|
||||
assertBoolean(rangyRange.intersectsRange(rangyRange));
|
||||
assertBoolean(rangyRange.isValid());
|
||||
rangyRange.moveToBookmark({});
|
||||
rangyRange.normalizeBoundaries();
|
||||
rangyRange.refresh();
|
||||
rangyRange.select();
|
||||
rangyRange.setStartAndEnd(new Node, 23);
|
||||
rangyRange.setStartAndEnd(new Node, 23, 42);
|
||||
rangyRange.setStartAndEnd(new Node, 23, new Node, 42);
|
||||
rangyRange.splitBoundaries();
|
||||
assertString(rangyRange.toHtml());
|
||||
assertRangyRange(rangyRange.union(rangyRange));
|
||||
}
|
||||
|
||||
function testSelection() {
|
||||
let selection:RangySelection = rangy.getSelection();
|
||||
|
||||
selection.detach();
|
||||
let ranges:RangyRange[] = selection.getAllRanges();
|
||||
selection.getBookmark(new Node);
|
||||
let nativeTextRange:TextRange = selection.getNativeTextRange();
|
||||
assertString(selection.inspect());
|
||||
assertBoolean(selection.isBackwards());
|
||||
selection.moveToBookmark({});
|
||||
var nativeSelection:Selection = selection.nativeSelection;
|
||||
selection.refresh();
|
||||
selection.refresh(true);
|
||||
selection.restoreRanges({});
|
||||
var object:Object = selection.saveRanges();
|
||||
selection.setRanges(ranges);
|
||||
selection.setSingleRange(getRangyRange());
|
||||
assertString(selection.toHtml());
|
||||
}
|
||||
66
rangy/rangy.d.ts
vendored
Normal file
66
rangy/rangy.d.ts
vendored
Normal file
@ -0,0 +1,66 @@
|
||||
// Type definitions for Rangy
|
||||
// Project: https://github.com/timdown/rangy
|
||||
// Definitions by: Rudolph Gottesheim <http://www.midnight-design.at/>
|
||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
||||
|
||||
interface RangyRange extends Range {
|
||||
setStartAndEnd(startNode:Node, startOffset:number, endNode?:Node, endOffset?:number):any;
|
||||
setStartAndEnd(startNode:Node, startOffset:number, endOffset:number):any;
|
||||
canSurroundContents():boolean;
|
||||
isValid():boolean;
|
||||
toHtml():string;
|
||||
compareNode(node:Node):any;
|
||||
intersectsOrTouchesRange(range:RangyRange):boolean;
|
||||
intersectsRange(range:RangyRange):boolean;
|
||||
intersection(range:RangyRange):RangyRange;
|
||||
union(range:RangyRange):RangyRange;
|
||||
containsNode(node:Node, partial:boolean):boolean;
|
||||
containsNodeContents(node:Node):boolean;
|
||||
containsNodeText(node:Node):boolean;
|
||||
containsRange(range:RangyRange):boolean;
|
||||
splitBoundaries():any;
|
||||
normalizeBoundaries():any;
|
||||
collapseToPoint(node:Node, offset:number):any;
|
||||
collapseBefore(node:Node):any;
|
||||
collapseAfter(node:Node):any;
|
||||
getNodes(nodeTypes?:any[], filter?:(node:Node) => boolean):Node[];
|
||||
getBookmark(containerNode?:Node):{start:number, end:number};
|
||||
moveToBookmark(bookmark:Object):any;
|
||||
getDocument():Document;
|
||||
inspect():string;
|
||||
equals(range:RangyRange):boolean;
|
||||
refresh():any;
|
||||
select():any;
|
||||
}
|
||||
|
||||
interface RangySelection extends Selection {
|
||||
nativeSelection:Selection;
|
||||
isBackwards():boolean;
|
||||
refresh(checkForChanges?:boolean):any;
|
||||
toHtml():string;
|
||||
getAllRanges():RangyRange[];
|
||||
getNativeTextRange():TextRange;
|
||||
setSingleRange(range:RangyRange):any;
|
||||
setRanges(ranges:RangyRange[]):any;
|
||||
getBookmark(containerNode:Node):any;
|
||||
moveToBookmark(bookmark:Object):any;
|
||||
saveRanges():Object;
|
||||
restoreRanges(saved:Object):any;
|
||||
detach():any;
|
||||
inspect():string;
|
||||
}
|
||||
|
||||
interface RangyStatic {
|
||||
createNativeRange(doc?:Document|Window|HTMLIFrameElement):TextRange|Range;
|
||||
createRange(doc?:Document|Window|HTMLIFrameElement):RangyRange;
|
||||
createRangyRange(doc?:Document|Window|HTMLIFrameElement):RangyRange;
|
||||
getNativeSelection(win?:Window):Selection;
|
||||
getSelection():RangySelection;
|
||||
addInitListener(listener:(rangy:RangyStatic) => void):any;
|
||||
shim():any;
|
||||
createMissingNativeApi():any;
|
||||
initialized:boolean;
|
||||
supported:boolean;
|
||||
}
|
||||
|
||||
declare var rangy:RangyStatic;
|
||||
Loading…
Reference in New Issue
Block a user