Add typings to support angular ui tree callbacks

This commit is contained in:
Calvin Fernandez
2015-12-05 14:25:01 -05:00
parent cf1f8723e8
commit 7e4c025262
2 changed files with 133 additions and 0 deletions

View File

@@ -11,3 +11,72 @@ var treeNode2: AngularUITree.ITreeNode = {
nodes: [treeNode],
title: "test2"
};
// fake jquery node here so that we can pull a pretend
// angular scope element out of it
var dummyJQueryNode: ng.IAugmentedJQuery;
var fakeScope: (ng.IScope | AngularUITree.IParentTreeNodeScope) = dummyJQueryNode.scope();
(<AngularUITree.ITreeNodeScope> fakeScope).node = treeNode;
var treeNodeScope: AngularUITree.ITreeNodeScope = <AngularUITree.ITreeNodeScope> fakeScope;
(<AngularUITree.IParentTreeNodeScope> fakeScope).isParent = (nodeScope: AngularUITree.ITreeNodeScope) => {
return true;
};
var parentTreeNodeScope: AngularUITree.IParentTreeNodeScope = <AngularUITree.IParentTreeNodeScope> fakeScope;
var eventSourceInfo: AngularUITree.IEventSourceInfo = {
cloneModel: {},
nodeScope: treeNodeScope,
index: 0,
nodesScope: parentTreeNodeScope
};
var position: AngularUITree.IPosition = {
dirAx: 0,
dirX: 0,
dirY: 0,
distAxX: 0,
distAxY: 0,
distX: 0,
distY: 0,
lastDirX: 0,
lastDirY: 0,
lastX: 0,
lastY: 0,
moving: true,
nowX: 0,
nowY: 0,
offsetX: 0,
offsetY: 0,
startX: 0,
startY: 0
};
var eventInfo: AngularUITree.IEventInfo = {
source: eventSourceInfo,
dest: {
index: 0,
nodesScope: parentTreeNodeScope
},
elements: {},
pos: position
};
var acceptCallback: AngularUITree.IAcceptCallback = (source: AngularUITree.ITreeNodeScope,
destination: AngularUITree.ITreeNodeScope,
destinationIndex: number) => {
return false;
};
var droppedCallback: AngularUITree.IDroppedCallback = (eventInfo: AngularUITree.IEventInfo) => {
return;
};
var callbacks: AngularUITree.ICallbacks = {
accept: acceptCallback,
dropped: droppedCallback
};

View File

@@ -3,7 +3,71 @@
// Definitions by: Calvin Fernandez <https://github.com/CalvinFernandez>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/// <reference path='../angularjs/angular.d.ts' />
declare module AngularUITree {
interface IEventSourceInfo {
cloneModel: any;
index: number;
nodeScope: ITreeNodeScope;
nodesScope: ITreeNodeScope;
}
interface IPosition {
dirAx: number;
dirX: number;
dirY: number;
distAxX: number;
distAxY: number;
distX: number;
distY: number;
lastDirX: number;
lastDirY: number;
lastX: number;
lastY: number;
moving: boolean;
nowX: number;
nowY: number;
offsetX: number;
offsetY: number;
startX: number;
startY: number;
}
interface IEventInfo {
dest: {
index: number;
nodesScope: IParentTreeNodeScope;
};
elements: any;
pos: IPosition;
source: IEventSourceInfo;
}
interface IAcceptCallback {
(source: ITreeNodeScope, destination: ITreeNodeScope, destinationIndex: number): boolean;
}
interface IDroppedCallback {
(eventInfo: IEventInfo): void;
}
interface ICallbacks {
accept: IAcceptCallback;
dropped: IDroppedCallback;
}
/**
* Internal representation of node in the UI
*/
interface ITreeNodeScope extends ng.IScope {
node: ITreeNode;
}
interface IParentTreeNodeScope extends ITreeNodeScope {
isParent(nodeScope: ITreeNodeScope): boolean;
}
/**
* Node in list
*/