diff --git a/Definitions/jqueryui.d.ts b/Definitions/jqueryui.d.ts
index ffb7ccdc4..1f578fa04 100644
--- a/Definitions/jqueryui.d.ts
+++ b/Definitions/jqueryui.d.ts
@@ -1,92 +1,122 @@
-///
-
-// Partial typing for the jQueryUI library, version 1.8.x
-
-interface DraggableEventUIParam {
- helper: JQuery;
- position: { top: number; left: number;};
- offset: { top: number; left: number;};
-}
-
-interface DraggableEvent {
- (event: Event, ui: DraggableEventUIParam): void;
-}
-
-interface Draggable {
- // Options
- disabled?: bool;
- addClasses?: bool;
- appendTo?: any;
- axis?: string;
- cancel?: string;
- connectToSortable?: string;
- containment?: any;
- cursor?: string;
- cursorAt?: any;
- delay?: number;
- distance?: number;
- grid?: number[];
- handle?: any;
- helper?: any;
- iframeFix?: any;
- opacity?: number;
- refreshPositions?: bool;
- revert?: any;
- revertDuration?: number;
- scope?: string;
- scroll?: bool;
- scrollSensitivity?: number;
- scrollSpeed?: number;
- snap?: any;
- snapMode?: string;
- snapTolerance?: number;
- stack?: string;
- zIndex?: number;
- // Events
- create?: DraggableEvent;
- start?: DraggableEvent;
- drag?: DraggableEvent;
- stop?: DraggableEvent;
-}
-
-interface DroppableEventUIParam {
- draggable: JQuery;
- helper: JQuery;
- position: { top: number; left: number;};
- offset: { top: number; left: number;};
-}
-
-interface DroppableEvent {
- (event: Event, ui: DroppableEventUIParam): void;
-}
-
-interface Droppable {
- // Options
- disabled?: bool;
- accept?: any;
- activeClass?: string;
- greedy?: bool;
- hoverClass?: string;
- scope?: string;
- tolerance?: string;
- // Events
- create?: DroppableEvent;
- activate?: DroppableEvent;
- deactivate?: DroppableEvent;
- over?: DroppableEvent;
- out?: DroppableEvent;
- drop?: DroppableEvent;
-}
-
-interface JQuery {
- draggable(options: Draggable): JQuery;
- draggable(optionLiteral: string, options: Draggable): JQuery;
- draggable(optionLiteral: string, optionName: string, optionValue: any): JQuery;
- draggable(optionLiteral: string, optionName: string): any;
- // draggable(methodName: string): any;
- droppable(options: Droppable): JQuery;
- droppable(optionLiteral: string, options: Draggable): JQuery;
- droppable(optionLiteral: string, optionName: string, optionValue: any): JQuery;
- droppable(optionLiteral: string, optionName: string): any;
- droppable(methodName: string): any;
-}
+///
+
+// Partial typing for the jQueryUI library, version 1.8.x
+
+interface DraggableEventUIParam {
+ helper: JQuery;
+ position: { top: number; left: number;};
+ offset: { top: number; left: number;};
+}
+
+interface DraggableEvent {
+ (event: Event, ui: DraggableEventUIParam): void;
+}
+
+interface Draggable {
+ // Options
+ disabled?: bool;
+ addClasses?: bool;
+ appendTo?: any;
+ axis?: string;
+ cancel?: string;
+ connectToSortable?: string;
+ containment?: any;
+ cursor?: string;
+ cursorAt?: any;
+ delay?: number;
+ distance?: number;
+ grid?: number[];
+ handle?: any;
+ helper?: any;
+ iframeFix?: any;
+ opacity?: number;
+ refreshPositions?: bool;
+ revert?: any;
+ revertDuration?: number;
+ scope?: string;
+ scroll?: bool;
+ scrollSensitivity?: number;
+ scrollSpeed?: number;
+ snap?: any;
+ snapMode?: string;
+ snapTolerance?: number;
+ stack?: string;
+ zIndex?: number;
+ // Events
+ create?: DraggableEvent;
+ start?: DraggableEvent;
+ drag?: DraggableEvent;
+ stop?: DraggableEvent;
+}
+
+interface DroppableEventUIParam {
+ draggable: JQuery;
+ helper: JQuery;
+ position: { top: number; left: number;};
+ offset: { top: number; left: number;};
+}
+
+interface DroppableEvent {
+ (event: Event, ui: DroppableEventUIParam): void;
+}
+
+interface Droppable {
+ // Options
+ disabled?: bool;
+ accept?: any;
+ activeClass?: string;
+ greedy?: bool;
+ hoverClass?: string;
+ scope?: string;
+ tolerance?: string;
+ // Events
+ create?: DroppableEvent;
+ activate?: DroppableEvent;
+ deactivate?: DroppableEvent;
+ over?: DroppableEvent;
+ out?: DroppableEvent;
+ drop?: DroppableEvent;
+}
+
+interface JQueryDatePickerDefaults {
+ closeText: string;
+ prevText: string;
+ nextText: string;
+ currentText: string;
+ monthNames: string[];
+ monthNamesShort: string[];
+ dayNames: string[];
+ dayNamesShort: string[];
+ dayNamesMin: string[];
+ weekHeader: string;
+ dateFormat: string;
+ firstDay: number;
+ isRTL: bool;
+ showMonthAfterYear: bool;
+ yearSuffix: string;
+}
+
+interface JQueryDatePicker {
+ regional: any;
+ setDefaults(JQueryDatePickerDefaults);
+}
+
+interface JQuery {
+ draggable(options: Draggable): JQuery;
+ draggable(optionLiteral: string, options: Draggable): JQuery;
+ draggable(optionLiteral: string, optionName: string, optionValue: any): JQuery;
+ draggable(optionLiteral: string, optionName: string): any;
+ // draggable(methodName: string): any;
+ droppable(options: Droppable): JQuery;
+ droppable(optionLiteral: string, options: Draggable): JQuery;
+ droppable(optionLiteral: string, optionName: string, optionValue: any): JQuery;
+ droppable(optionLiteral: string, optionName: string): any;
+ droppable(methodName: string): any;
+
+ autocomplete(any): void;
+ datepicker(any): void;
+}
+
+interface JQueryStatic {
+ datepicker: JQueryDatePicker;
+}
diff --git a/Definitions/knockout.d.ts b/Definitions/knockout.d.ts
index 60b88f4c6..a8d4ee37f 100644
--- a/Definitions/knockout.d.ts
+++ b/Definitions/knockout.d.ts
@@ -1,46 +1,126 @@
-// Type definitions for Knockout 2.1.0
-// https://github.com/borisyankov/DefinitelyTyped
-
-interface KnockoutStatic {
-
- applyBindings(viewModel, rootNode);
- computed();
-}
-
-interface KnockoutUtilsStatic {
- arrayForEach(array, action);
- arrayIndexOf(array, item);
- arrayFirst(array, predicate, predicateOwner);
- arrayRemoveItem(array, itemToRemove);
- arrayGetDistinctValues(array);
- arrayMap(array, mapping);
- arrayFilter(array, predicate);
- arrayPushAll(array, valuesToPush);
- extend(target, source);
- emptyDomNode(domNode);
- moveCleanedNodesToContainerElement(nodes);
- setDomNodeChildren(domNode, childNodes);
- replaceDomNodes(nodeToReplaceOrNodeArray, newNodesArray);
- setOptionNodeSelectionState(optionNode, isSelected);
- stringTrim(str: string);
- stringTokenize(str: string, delimiter);
- stringStartsWith(str: string, startsWith);
- buildEvalWithinScopeFunction(expression, scopeLevels);
- domNodeIsContainedBy(node, containedByNode);
- domNodeIsAttachedToDocument(node);
- tagNameLower(element);
- registerEventHandler(element, eventType, handler);
- triggerEvent(element, eventType);
- unwrapObservable(value);
- toggleDomNodeCssClass(node, className, shouldHaveClass);
- setTextContent(element, textContent);
- ensureSelectElementIsRenderedCorrectly(selectElement);
- range(min, max);
- makeArray(arrayLikeObject);
- getFormFields(form, fieldName);
- parseJson(jsonString);
- stringifyJson(data, replacer, space);
- postJson(urlOrForm, data, options);
-}
-
+// Type definitions for Knockout 2.1.0
+// https://github.com/borisyankov/DefinitelyTyped
+
+interface KnockoutObservableArrayFunctions {
+ // General Array functions
+ indexOf(searchElement, fromIndex?: number): number;
+ slice(start: number, end?: number): any[];
+ splice(start: number): any[];
+ splice(start: number, deleteCount: number, ...items: any[]): any[];
+ pop();
+ push(...items: any[]): void;
+ shift();
+ unshift(...items: any[]): number;
+ reverse(): any[];
+ sort(): void;
+ sort(compareFunction): void;
+
+ // Ko specific
+ remove(item): any[];
+ removeAll(items: any[]): any[];
+ removeAll(): any[];
+
+ destroy(item): void;
+ destroyAll(items: any[]): void;
+ destroyAll(): void;
+}
+
+interface KnockoutObservableArray extends KnockoutObservableArrayFunctions {
+ (): any[];
+ (value: any[]): void;
+}
+
+interface KnockoutObservableArrayStatic {
+ (): KnockoutObservableArray;
+ fn: KnockoutObservableArrayFunctions;
+}
+
+interface KnockoutObservable {
+ (): any;
+ (value): void;
+
+ subscribe(func: Function): void;
+}
+
+interface KnockoutComputed extends KnockoutObservable {
+}
+
+interface KnockoutComputedDefine {
+ read(): any;
+ write(any);
+}
+
+interface KnockoutComputedStatic {
+ (): KnockoutComputed;
+ (func: Function): KnockoutComputed;
+ (def: KnockoutComputedDefine) : KnockoutComputed;
+}
+
+interface KnockoutBindingContext {
+ $parent: any;
+ $parents: any[];
+ $root: any;
+ $data: any;
+ $index?: number;
+ $parentContext?: KnockoutBindingContext;
+}
+
+interface KnockoutBindingHandler {
+ // TODO: Work out how to define bindingHandlers when not using all the args
+ // adding element?: any, etc doesnt work...
+ //init(element: any, valueAccessor: any, allBindingsAccessor: any, viewModel: any, bindingContext: KnockoutBindingContext) : void;
+ //update(element: any, valueAccessor: any, allBindingsAccessor: any, viewModel: any, bindingContext: KnockoutBindingContext) : void;
+ init: any;
+ update: any;
+}
+
+interface KnockoutBindingHandlers {
+ value: KnockoutBindingHandler;
+}
+
+interface KnockoutStatic {
+ utils: KnockoutUtilsStatic;
+ bindingHandlers: KnockoutBindingHandlers;
+ applyBindings(viewModel, rootNode?);
+ computed : KnockoutComputedStatic;
+ observableArray: KnockoutObservableArrayStatic;
+ observable(intial?): KnockoutObservable;
+}
+
+interface KnockoutUtilsStatic {
+ arrayForEach(array: any[], action);
+ arrayIndexOf(array: any[], item);
+ arrayFirst(array: any[], predicate, predicateOwner?);
+ arrayRemoveItem(array: any[], itemToRemove);
+ arrayGetDistinctValues(array: any[]);
+ arrayMap(array: any[], mapping);
+ arrayFilter(array: any[], predicate);
+ arrayPushAll(array: any[], valuesToPush);
+ extend(target, source);
+ emptyDomNode(domNode);
+ moveCleanedNodesToContainerElement(nodes);
+ setDomNodeChildren(domNode, childNodes);
+ replaceDomNodes(nodeToReplaceOrNodeArray, newNodesArray);
+ setOptionNodeSelectionState(optionNode, isSelected);
+ stringTrim(str: string);
+ stringTokenize(str: string, delimiter);
+ stringStartsWith(str: string, startsWith);
+ buildEvalWithinScopeFunction(expression, scopeLevels);
+ domNodeIsContainedBy(node, containedByNode);
+ domNodeIsAttachedToDocument(node);
+ tagNameLower(element);
+ registerEventHandler(element, eventType, handler);
+ triggerEvent(element, eventType);
+ unwrapObservable(value);
+ toggleDomNodeCssClass(node, className, shouldHaveClass);
+ setTextContent(element, textContent);
+ ensureSelectElementIsRenderedCorrectly(selectElement);
+ range(min, max);
+ makeArray(arrayLikeObject);
+ getFormFields(form, fieldName);
+ parseJson(jsonString);
+ stringifyJson(data, replacer, space);
+ postJson(urlOrForm, data, options);
+}
+
declare var ko: KnockoutStatic;
\ No newline at end of file