diff --git a/dojo-typings/build.gradle b/dojo-typings/build.gradle --- a/dojo-typings/build.gradle +++ b/dojo-typings/build.gradle @@ -49,12 +49,20 @@ npmPackMeta { } } +task npmPackTypings(type: Copy) { + dependsOn typings + + npmPackContents.dependsOn it + + from typescript.typingsDir + into npm.packageDir +} + task printVersion { doLast { println "packageName: ${npmPackMeta.metadata.get().name}"; println "version: $version"; println "target: $typescript.compilerOptions.target"; println "module: $typescript.compilerOptions.module"; - println "symbols: $symbols"; } } \ No newline at end of file diff --git a/dojo-typings/src/main/typings/dgrid/dgrid.d.ts b/dojo-typings/src/main/typings/dgrid/dgrid.d.ts new file mode 100644 --- /dev/null +++ b/dojo-typings/src/main/typings/dgrid/dgrid.d.ts @@ -0,0 +1,753 @@ +/// <reference path="../dstore/dstore.d.ts" /> + +declare module dgrid { + export interface Constructor<T, U> extends dojo._base.DeclareConstructor<T> { + new (kwArgs?: U, srcNodeRef?: HTMLElement | string): T; + + createSubclass<T1, U1, T2, U2, T3, U3, T4, U4, X>(mixins: [Constructor<T1, U1>, Constructor<T2, U2>, Constructor<T3, U3>, Constructor<T4, U4>], props: X): Constructor<T & T1 & T2 & T3 & T4 & X, U & U1 & U2 & U3 & T4>; + createSubclass<T1, U1, T2, U2, T3, U3, X>(mixins: [Constructor<T1, U1>, Constructor<T2, U2>, Constructor<T3, U3>], props: X): Constructor<T & T1 & T2 & T3 & X, U & U1 & U2 & U3>; + createSubclass<T1, U1, T2, U2, X>(mixins: [Constructor<T1, U1>, Constructor<T2, U2>], props: X): Constructor<T & T1 & T2 & X, U & U1 & U2>; + createSubclass<T1, U1, X>(mixins: [Constructor<T1, U1>], props: X): Constructor<T & T1 & X, U & U1>; + createSubclass<T1, U1, X>(mixins: Constructor<T1, U1>, props: X): Constructor<T & T1 & X, U & U1>; + createSubclass<T1, U1, T2, U2, T3, U3, T4, U4>(mixins: [Constructor<T1, U1>, Constructor<T2, U2>, Constructor<T3, U3>, Constructor<T4, U4>]): Constructor<T & T1 & T2 & T3 & T4, U & U1 & U2 & U3 & T4>; + createSubclass<T1, U1, T2, U2, T3, U3>(mixins: [Constructor<T1, U1>, Constructor<T2, U2>, Constructor<T3, U3>]): Constructor<T & T1 & T2 & T3, U & U1 & U2 & U3>; + createSubclass<T1, U1, T2, U2>(mixins: [Constructor<T1, U1>, Constructor<T2, U2>]): Constructor<T & T1 & T2, U & U1 & U2>; + createSubclass<T1, U1>(mixins: [Constructor<T1, U1>]): Constructor<T & T1, U & U1>; + createSubclass<T1, U1>(mixins: Constructor<T1, U1>): Constructor<T & T1, U & U1>; + createSubclass<X>(mixins: any, props: X): Constructor<T & X, U>; + } +} + +declare module 'dgrid/CellSelection' { + import Selection = require('dgrid/Selection'); + import Grid = require('dgrid/Grid'); + + interface CellSelection extends Selection { + isSelected(target: Grid.CellArg, columnId?: string): boolean; + clearSelection(): void; + } + + interface CellSelectionConstructor extends dgrid.Constructor<CellSelection, Selection.KwArgs> {} + + const CellSelection: CellSelectionConstructor; + + export = CellSelection; +} + +declare module 'dgrid/ColumnSet' { + import Grid = require('dgrid/Grid'); + + interface ColumnSet { + styleColumnSet(columnsetId: string, css: string): dojo.Handle; + } + + module ColumnSet { + export interface KwArgs extends Grid.KwArgs { + columnSets?: Array<Array<Grid.Column>>; + } + } + + interface ColumnSetConstructor extends dgrid.Constructor<ColumnSet, ColumnSet.KwArgs> {} + + const ColumnSet: ColumnSetConstructor; + + export = ColumnSet; +} + +declare module 'dgrid/Editor' { + import Grid = require('dgrid/Grid'); + import OnDemandGrid = require('dgrid/OnDemandGrid'); + + interface Editor { + edit(cell: Grid.Cell<any> | HTMLElement | Event): void; + } + + module Editor { + export interface Column extends Grid.Column { + autoSave?: boolean; + autoSelect?: boolean; + dismissOnEnter?: boolean; + editor?: string | dojo._base.DeclareConstructor<any>; + editOn?: string; + editorArgs?: Object; + + canEdit?(object: any, value: any): boolean; + } + export type ColumnSpec = { [key: string]: Column | string; } | Column[]; + export interface KwArgs extends OnDemandGrid.KwArgs { + columns?: ColumnSpec; + subRows?: Array<Column[]>; + } + } + + interface EditorConstructor extends dgrid.Constructor<Editor, Editor.KwArgs> {} + + const Editor: EditorConstructor; + + export = Editor; +} + +declare module 'dgrid/Grid' { + import List = require('dgrid/List'); + + interface Grid extends List { + columns: { [ key: string ]: Grid.Column } | Array<Grid.Column>; + hasNeutralSort: boolean; + cellNavigation: boolean; + formatterScope: any; + + column(target: any): Grid.Column; + cell(target: Grid.CellArg, columnId?: string): Grid.Cell<any>; + left(target: Grid.Cell<any> | Grid.CellArg, steps?: number): Grid.Cell<any>; + right(target: Grid.Cell<any> | Grid.CellArg, steps?: number): Grid.Cell<any>; + styleColumn(columnId: string, css: string): dojo.Handle; + updateSortArrow(sort: any, updateSort?: boolean): void; + } + + module Grid { + export type CellArg = List.RowArg; + export interface Cell<T> { + row: List.Row<T>; + column: Column; + element: HTMLElement; + } + export interface Column { + field?: string; + id?: string | number; + label?: string; + className?: string; + colSpan?: number; + rowSpan?: number; + sortable?: boolean; + formatter?: string | Formatter; + + get?(item: any): any; + set?(item: any): any; + renderCell?(object: any, value: any, node: HTMLElement): (HTMLElement | void); + renderHeaderCell?(node: HTMLElement): (HTMLElement | void); + } + export type ColumnSpec = { [key: string]: Column | string; } | Column[]; + export type Formatter = (value: any, object: any) => string; + export interface KwArgs extends List.KwArgs { + columns?: ColumnSpec; + subRows?: Array<Column[]>; + formatterScope?: any; + hasNeutralSort?: boolean; + cellNavigation?: boolean; + } + } + + interface GridConstructor extends dgrid.Constructor<Grid, Grid.KwArgs> { + appendIfNode(parent: HTMLElement, subNode?: any): void; + } + + const Grid: GridConstructor; + + export = Grid; +} + +declare module 'dgrid/GridFromHtml' { + import Grid = require('dgrid/Grid'); + + interface GridFromHtml extends Grid {} + + interface GridFromHtmlConstructor extends dgrid.Constructor<GridFromHtml, Grid.KwArgs> { + utils: { + getBoolFromAttr(node: Node, attr: string): boolean; + getNumFromAttr(node: Node, attr: string): number; + getPropsFromNode(node: Node): any; + getColumnFromCell(node: Node): Grid.Column; + }; + } + + const GridFromHtml: GridFromHtmlConstructor; + + export = GridFromHtml; +} + +declare module 'dgrid/GridWithColumnSetsFromHtml' { + import Grid = require('dgrid/Grid'); + import GridFromHtml = require('dgrid/GridFromHtml'); + import ColumnSet = require('dgrid/ColumnSet'); + + interface GridWithColumnSetsFromHtml extends GridFromHtml, ColumnSet {} + + module GridWithColumnSetsFromHtml { + export interface KwArgs extends Grid.KwArgs, ColumnSet.KwArgs {} + } + + interface GridWithColumnSetsFromHtmlConstructor extends dgrid.Constructor<GridWithColumnSetsFromHtml, GridWithColumnSetsFromHtml.KwArgs> {} + + const GridWithColumnSetsFromHtml: GridWithColumnSetsFromHtmlConstructor; + + export = GridWithColumnSetsFromHtml; +} + +declare module 'dgrid/Keyboard' { + interface Keyboard { + cellNavigation: boolean; + pageSkip: number; + keyMap: Keyboard.KeyMap; + headerKeyMap: Keyboard.KeyMap; + + addKeyHandler(key: number, callback: Function, isHeader?: boolean): dojo.Handle; + focus(target: any): void; + focusHeader(target: any): void; + } + + module Keyboard { + export interface KeyMap { + [ key: number ]: Function; + } + + export interface KwArgs { + cellNavigation?: boolean; + pageSkip?: number; + keyMap?: KeyMap; + headerKeyMap?: KeyMap; + } + } + + interface KeyboardConstructor extends dgrid.Constructor<Keyboard, Keyboard.KwArgs> { + defaultHeaderKeyMap: Keyboard.KeyMap; + defaultKeyMap: Keyboard.KeyMap; + + moveFocusVertical: (event: KeyboardEvent, steps: number) => void; + } + + const Keyboard: KeyboardConstructor; + + export = Keyboard; +} + +declare module 'dgrid/List' { + interface List { + id: string; + + readonly domNode: HTMLElement; + + tabableHeader: boolean; + showHeader: boolean; + showFooter: boolean; + maintainOddEven: boolean; + cleanAddedRules: boolean; + addUiClasses: boolean; + highlightDuration: number; + resizeThrottleDelay: number; + resizeThrottleMethod: List.ThrottleMethod; + sort: any; + + params: any; + + create(params: any, srcNodeRef?: HTMLElement): void; + buildRendering(): void; + postCreate(): void; + + postMixInProperties(): void; + + get(key: string): any; + + set(key: string, value: any): this; + set(kwArgs: any): this; + + addCssRule(selector: string, css: string): dojo.Handle; + adjustRowIndices(firstRow: HTMLElement): void; + cleanup(): void; + configStructure(): void; + destroy(): void; + down(row: List.Row<any> | List.RowArg, steps?: number): List.Row<any>; + getScrollPosition(): { x: number; y: number; }; + highlightRow(rowElement: HTMLElement | List.Row<any>, delay?: number): void; + insertRow(object: any, parent: HTMLElement, beforeNode: Node, i: number, options?: any): HTMLElement; + + on(type: string | dojo.ExtensionEvent, listener: EventListener): dojo.Handle; + + _onNotification(rows?: any[], object?: any, from?: number, to?: number): void; + refresh(): void; + removeRow(rowElement: any, preserveDom?: boolean): void; + renderArray(results: any[], beforeNode?: Node, options?: any): HTMLElement; + renderHeader(): void; + renderRow(value: any, options?: Object): HTMLElement; + + row(target: List.RowArg): List.Row<any>; + resize(): void; + scrollTo(options: { x?: number; y?: number; }): void; + startup(): void; + up(row: List.Row<any> | List.RowArg, steps?: number): List.Row<any>; + } + + module List { + export type RowArg = Event | HTMLElement | Object | string | number; + export interface Row<T> { + id: string; + data: T; + element: HTMLElement; + + remove(): void; + } + + export interface KwArgs { + tabableHeader?: boolean; + showHeader?: boolean; + showFooter?: boolean; + maintainOddEven?: boolean; + cleanAddedRules?: boolean; + addUiClasses?: boolean; + highlightDuration?: number; + resizeThrottleDelay?: number; + resizeThrottleMethod?: ThrottleMethod; + sort?: any; + } + + export type ThrottleFunction = (callback: Function, delay: number) => Function; + export type ThrottleMethod = 'debounce' | 'throttle' | 'throttleDelayed' | ThrottleFunction; + } + + interface ListConstructor extends dgrid.Constructor<List, List.KwArgs> {} + + const List: ListConstructor; + + export = List; +} + +declare module 'dgrid/OnDemandGrid' { + import Grid = require('dgrid/Grid'); + import OnDemandList = require('dgrid/OnDemandList'); + + interface OnDemandGrid extends Grid, OnDemandList { + refresh(options?: any): dojo.promise.Promise<any[]>; + } + + module OnDemandGrid { + export interface KwArgs extends Grid.KwArgs, OnDemandList.KwArgs {} + } + + interface OnDemandGridConstructor extends dgrid.Constructor<OnDemandGrid, OnDemandGrid.KwArgs> {} + + const OnDemandGrid: OnDemandGridConstructor; + export = OnDemandGrid; +} + +declare module 'dgrid/OnDemandList' { + import List = require('dgrid/List'); + import StoreMixin = require('dgrid/_StoreMixin'); + + interface OnDemandList extends List, StoreMixin { + refresh(options?: any): dojo.promise.Promise<any[]>; + } + + module OnDemandList { + export interface KwArgs extends List.KwArgs, StoreMixin.KwArgs { + minRowsPerPage?: number; + maxRowsPerPage?: number; + maxEmptySpace?: number; + bufferRows?: number; + farOffRemoval?: number; + queryRowsOverlap?: number; + pagingMethod?: string; + pagingDelay?: number; + keepScrollPosition?: boolean; + rowHeight?: number; + } + } + + interface OnDemandListConstructor extends dgrid.Constructor<OnDemandList, OnDemandList.KwArgs> {} + + const OnDemandList: OnDemandListConstructor; + + export = OnDemandList; +} + +declare module 'dgrid/Selection' { + import List = require('dgrid/List'); + + interface Selection { + selectionMode: Selection.Mode; + selection: { [key: string]: boolean; }; + + select(row: List.Row<any> | List.RowArg, toRow?: List.Row<any> | List.RowArg, value?: boolean): void; + deselect(row: List.Row<any> | List.RowArg, toRow?: List.Row<any> | List.RowArg): void; + clearSelection(exceptId?: any, dontResetLastSelected?: boolean): void; + selectAll(): void; + isSelected(row: List.Row<any> | List.RowArg): boolean; + } + + module Selection { + export type Mode = 'none' | 'multiple' | 'single' | 'extended'; + export interface KwArgs { + selectionDelegate?: string; + selectionEvents?: string; + selectionTouchEvents?: string; + deselectOnRefresh?: boolean; + allowSelectAll?: boolean; + selectionMode?: Mode; + allowTextSelection?: boolean; + } + } + + interface SelectionConstructor extends dgrid.Constructor<Selection, Selection.KwArgs> {} + + const Selection: SelectionConstructor; + + export = Selection; +} + +declare module 'dgrid/Selector' { + import Selection = require('dgrid/Selection'); + + export = Selection; +} + +declare module 'dgrid/_StoreMixin' { + interface StoreMixin { + get(key: string): any; + + revert(): void; + save(): dojo.promise.Promise<{ [ key: string ]: any; }>; + updateDirty(id: string, field: string, value: any): void; + } + + module StoreMixin { + export interface KwArgs { + collection?: dstore.Collection<any>; + shouldTrackCollection?: boolean; + getBeforePut?: boolean; + noDataMessage?: string; + loadingMessage?: string; + } + } + + interface StoreMixinConstructor extends dgrid.Constructor<StoreMixin, StoreMixin.KwArgs> {} + + const StoreMixin: StoreMixinConstructor; + + export = StoreMixin; +} + +declare module 'dgrid/Tree' { + import List = require('dgrid/List'); + import Grid = require('dgrid/Grid'); + + interface Tree { + expand(target: List.Row<any> | List.RowArg, expand?: boolean): dojo.promise.Promise<any>; + shouldExpand(row: List.Row<any>, level: number, previouslyExpanded: boolean): boolean; + } + + module Tree { + export interface Column extends Grid.Column { + expandOn?: string; + renderExpando?: boolean | RenderExpando; + } + export type ColumnSpec = { [key: string]: Column | string; } | Column[]; + export interface KwArgs extends Grid.KwArgs { + columns?: ColumnSpec; + subRows?: Array<Column[]>; + collapseOnRefresh?: boolean; + enableTreeTransitions?: boolean; + treeIndentWidth?: number; + } + export type RenderExpando = (level: number, mayHaveChildren: boolean, expanded: boolean, item: any) => HTMLElement; + } + + interface TreeConstructor extends dgrid.Constructor<Tree, Tree.KwArgs> {} + + const Tree: TreeConstructor; + + export = Tree; +} + +declare module 'dgrid/extensions/ColumnHider' { + import List = require('dgrid/List'); + import Grid = require('dgrid/Grid'); + + interface ColumnHider { + columns: { [ key: string ]: ColumnHider.Column }; + + column(target: any): ColumnHider.Column; + cell(target: Grid.CellArg, columnId?: string): ColumnHider.Cell<any>; + left(target: ColumnHider.Cell<any> | Grid.CellArg, steps?: number): ColumnHider.Cell<any>; + right(target: ColumnHider.Cell<any> | Grid.CellArg, steps?: number): ColumnHider.Cell<any>; + + toggleColumnHiddenState(id: string, hidden?: boolean): void; + } + + module ColumnHider { + export interface Cell<T> { + row: List.Row<T>; + column: Column; + element: HTMLElement; + } + export interface Column extends Grid.Column { + hidden?: boolean; + unhidable?: boolean; + } + export type ColumnSpec = { [key: string]: Column | string; } | Column[]; + export interface KwArgs extends Grid.KwArgs { + columns?: ColumnSpec; + } + } + + interface ColumnHiderConstructor extends dgrid.Constructor<ColumnHider, ColumnHider.KwArgs> {} + + const ColumnHider: ColumnHiderConstructor; + + export = ColumnHider; +} + +declare module 'dgrid/extensions/ColumnReorder' { + import List = require('dgrid/List'); + import Grid = require('dgrid/Grid'); + + interface ColumnReorder { + columnDndConstructor: Function; + } + + module ColumnReorder { + export interface ColumnDndSource extends dojo.dnd.Source {} + export interface ColumnDndSourceConstructor extends dojo._base.DeclareConstructor<ColumnDndSource> {} + + export interface Cell<T> { + row: List.Row<T>; + column: Column; + element: HTMLElement; + } + export interface Column extends Grid.Column { + reorderable?: boolean; + } + export type ColumnSpec = { [key: string]: Column | string; } | Column[]; + export interface KwArgs extends Grid.KwArgs { + columnDndConstructor?: Function; + columns?: ColumnSpec; + subRows?: Array<Column[]>; + } + } + + interface ColumnReorderConstructor extends dgrid.Constructor<ColumnReorder, ColumnReorder.KwArgs> { + ColumnDndSource: ColumnReorder.ColumnDndSourceConstructor; + } + + const ColumnReorder: ColumnReorderConstructor; + + export = ColumnReorder; +} + +declare module 'dgrid/extensions/ColumnResizer' { + import List = require('dgrid/List'); + import Grid = require('dgrid/Grid'); + + interface ColumnResizer { + adjustLastColumn: boolean; + minWidth: number; + + resizeColumnWidth(columnId: string, width: number): void; + } + + module ColumnResizer { + export interface Cell<T> { + row: List.Row<T>; + column: Column; + element: HTMLElement; + } + export interface Column extends Grid.Column { + resizable?: boolean; + width?: number; + } + export type ColumnSpec = { [key: string]: Column | string; } | Column[]; + export interface KwArgs extends Grid.KwArgs { + adjustLastColumn?: boolean; + minWidth?: number; + columns?: ColumnSpec; + subRows?: Array<Column[]>; + } + } + interface ColumnResizerConstructor extends dgrid.Constructor<ColumnResizer, ColumnResizer.KwArgs> {} + + const ColumnResizer: ColumnResizerConstructor; + + export = ColumnResizer; +} + +declare module 'dgrid/extensions/CompoundColumns' { + import List = require('dgrid/List'); + import Grid = require('dgrid/Grid'); + + interface CompoundColumns { + adjustLastColumn: boolean; + minWidth: number; + + resizeColumnWidth(columnId: string, width: number): void; + } + + module CompoundColumns { + export interface Cell<T> { + row: List.Row<T>; + column: Column; + element: HTMLElement; + } + export interface Column extends Grid.Column { + children?: Column[]; + showChildHeaders?: boolean; + } + export type ColumnSpec = { [key: string]: Column | string; } | Column[]; + export interface KwArgs extends Grid.KwArgs { + adjustLastColumn?: boolean; + minWidth?: number; + columns?: ColumnSpec; + subRows?: Array<Column[]>; + } + } + + interface CompoundColumnsConstructor extends dgrid.Constructor<CompoundColumns, CompoundColumns.KwArgs> {} + + const CompoundColumns: CompoundColumnsConstructor; + + export = CompoundColumns; +} + +declare module 'dgrid/extensions/DijitRegistry' { + interface DijitRegistry { + minSize: number; + maxSize: number; + layoutPriority: number; + showTitle: boolean; + + buildRendering(): void; + destroyRecursive(): void; + getChildren(): any[]; + getParent(): any; + isLeftToRight(): boolean; + placeAt(reference: any, position?: string | number): any; + resize(dim?: dojo.DomGeometryWidthHeight): void; + watch(...args: any[]): void; + } + + module DijitRegistry { + export interface KwArgs { + minSize?: number; + maxSize?: number; + layoutPriority?: number; + showTitle?: boolean; + } + } + + interface DijitRegistryConstructor extends dgrid.Constructor<DijitRegistry, DijitRegistry.KwArgs> {} + + const DijitRegistry: DijitRegistryConstructor; + + export = DijitRegistry; +} + +declare module 'dgrid/extensions/DnD' { + import List = require('dgrid/List'); + + interface Dnd { + dndSourceType: string; + dndParams: any; + dndConstructor: Function; + } + + module Dnd { + export interface GridSource extends dojo.dnd.Source { + grid: List; + } + export interface GridSourceConstructor extends dojo._base.DeclareConstructor<GridSource> {} + + export interface KwArgs { + dndSourceType?: string; + dndParams?: any; + dndConstructor?: Function; + } + } + + interface DndConstructor extends dgrid.Constructor<Dnd, Dnd.KwArgs> { + GridSource: Dnd.GridSource; + } + + const Dnd: DndConstructor; + + export = Dnd; +} + +declare module 'dgrid/extensions/Pagination' { + import StoreMixin = require('dgrid/_StoreMixin'); + + interface Pagination extends StoreMixin { + rowsPerPage: number; + pagingTextBox: boolean; + previousNextArrows: boolean; + firstLastArrows: boolean; + pagingLinks: number; + pageSizeOptions: number[]; + showLoadingMessage: boolean; + i18nPagination: any; + + gotoPage(page: number): dojo.promise.Promise<any>; + } + + module Pagination { + export interface KwArgs extends StoreMixin.KwArgs { + rowsPerPage?: number; + pagingTextBox?: boolean; + previousNextArrows?: boolean; + firstLastArrows?: boolean; + pagingLinks?: number; + pageSizeOptions?: number[]; + showLoadingMessage?: boolean; + i18nPagination?: any; + } + } + + interface PaginationConstructor extends dgrid.Constructor<Pagination, Pagination.KwArgs> {} + + const Pagination: PaginationConstructor; + + export = Pagination; +} + +declare module 'dgrid/extensions/SingleQuery' { + import StoreMixin = require('dgrid/_StoreMixin'); + export = StoreMixin; +} + +declare module 'dgrid/util/has-css3' { + import dojoHas = require('dojo/has'); + export = dojoHas; +} + +declare module 'dgrid/util/misc' { + module util { + export let defaultDelay: number; + export function throttle<T extends Function>(callback: T, context?: any, delay?: number): T; + export function throttleDelayed<T extends Function>(callback: T, context?: any, delay?: number): T; + export function debounce<T extends Function>(callback: T, context?: any, delay?: number): T; + export function each<T, U>(arrayOrObject: T[], callback: (this: U, item: T, index: number, arrayOrObject: T[]) => void, context: U): void; + export function each<T>(arrayOrObject: T[], callback: (item: T, index: number, arrayOrObject: T[]) => void): void; + export function each<T>(arrayOrObject: {}, callback: (this: T, item: any, index: number, arrayOrObject: {}) => void, context: T): void; + export function each(arrayOrObject: {}, callback: (item: any, index: number, arrayOrObject: {}) => void): void; + + export interface CssRuleHandle extends dojo.Handle { + get(prop: string): string; + set(prop: string, value: string): void; + } + + export function addCssRule(selector: string, css: string): CssRuleHandle; + export function escapeCssIdentifier(id: string, replace?: string): void; + } + + export = util; +} + +declare module 'dgrid/util/touch' { + module touch { + export let tapRadius: number; + export let dbltapTime: number; + + export function selector(selector: string, type: string | dojo.ExtensionEvent, children?: boolean): dojo.ExtensionEvent; + export function countCurrentTouches(event: Event, node: Element): number; + + export function tap(target: Element, listener: dojo.EventListener): dojo.Handle; + export function dbltap(target: Element, listener: dojo.EventListener): dojo.Handle; + } + + export = touch; +} diff --git a/dojo-typings/src/main/typings/dgrid/index.d.ts b/dojo-typings/src/main/typings/dgrid/index.d.ts new file mode 100644 --- /dev/null +++ b/dojo-typings/src/main/typings/dgrid/index.d.ts @@ -0,0 +1,1 @@ +/// <reference path="dgrid.d.ts" /> diff --git a/dojo-typings/src/main/typings/dijit/form.d.ts b/dojo-typings/src/main/typings/dijit/form.d.ts --- a/dojo-typings/src/main/typings/dijit/form.d.ts +++ b/dojo-typings/src/main/typings/dijit/form.d.ts @@ -123,11 +123,11 @@ declare namespace dijit { reset(): void; labelFunc(item: T, store: dojo.store.api.Store<T, Q, O>): string; - set(name: 'value', value: string): this; - set(name: 'item', value: T): this; - set(name: 'disabled', value: boolean): this; - set(name: string, value: any): this; - set(values: Object): this; + // set(name: 'value', value: string): this; + // set(name: 'item', value: T): this; + // set(name: 'disabled', value: boolean): this; + // set(name: string, value: any): this; + // set(values: Object): this; } /* dijit/form/_ButtonMixin */ @@ -214,8 +214,8 @@ declare namespace dijit { */ handleKey(evt: KeyboardEvent): boolean; - set(name: string, value: any): this; - set(values: Object): this; + // set(name: string, value: any): this; + // set(values: Object): this; } interface _ComboBoxMenuConstructor extends _WidgetBaseConstructor<_ComboBoxMenu<any>> { @@ -271,9 +271,9 @@ declare namespace dijit { selectLastNode(): void; getHighlightedOption(): HTMLElement; - set(name: 'value', value: Object): this; - set(name: string, value: any): this; - set(values: Object): this; + // set(name: 'value', value: Object): this; + // set(name: string, value: any): this; + // set(values: Object): this; } /* dijit/form/_DateTimeTextBox */ @@ -361,15 +361,15 @@ declare namespace dijit { */ _isInvalidDate(value: Date): boolean; - get(name: 'displayedValue'): string; - get(name: string): any; + // get(name: 'displayedValue'): string; + // get(name: string): any; - set(name: 'displayedValue', value: string): this; - set(name: 'dropDownDefaultValue', value: Date): this; - set(name: 'value', value: Date | string): this; - set(name: 'constraints', value: DateTimeConstraints): this; - set(name: string, value: any): this; - set(values: Object): this; + // set(name: 'displayedValue', value: string): this; + // set(name: 'dropDownDefaultValue', value: Date): this; + // set(name: 'value', value: Date | string): this; + // set(name: 'constraints', value: DateTimeConstraints): this; + // set(name: string, value: any): this; + // set(values: Object): this; } interface _DateTimeTextBoxConstructor<T extends _WidgetBase> extends _WidgetBaseConstructor<_DateTimeTextBox<T>> { } @@ -707,8 +707,8 @@ declare namespace dijit { */ _layoutHackIE7(): void; - set(name: string, value: any): this; - set(values: Object): this; + // set(name: string, value: any): this; + // set(values: Object): this; } interface _FormValueWidgetConstructor extends _WidgetBaseConstructor<_FormValueWidget> { } @@ -720,9 +720,9 @@ declare namespace dijit { setValue(value: string): void; postMixInProperties(): void; - set(name: 'value', value: string): this; - set(name: string, value: any): this; - set(values: Object): this; + // set(name: 'value', value: string): this; + // set(name: string, value: any): this; + // set(values: Object): this; } interface _FormWidgetConstructor extends _WidgetBaseConstructor<_FormWidget> { } @@ -803,9 +803,9 @@ declare namespace dijit { destroy(preserveDom?: boolean): void; - set(name: 'disabled', value: boolean): this; - set(name: string, value: any): this; - set(values: Object): this; + // set(name: 'disabled', value: boolean): this; + // set(name: string, value: any): this; + // set(values: Object): this; } /* dijit/form/_ListBase */ @@ -839,9 +839,9 @@ declare namespace dijit { */ selectPreviousNode(): void; - set(name: 'selected', value: HTMLElement): this; - set(name: string, value: any): this; - set(values: Object): this; + // set(name: 'selected', value: HTMLElement): this; + // set(name: string, value: any): this; + // set(values: Object): this; } /* dijit/form/_ListMouseMixin */ @@ -950,9 +950,9 @@ declare namespace dijit { postMixInProperties(): void; - set(name: 'list', value: string): this; - set(name: string, value: any): this; - set(values: Object): this; + // set(name: 'list', value: string): this; + // set(name: string, value: any): this; + // set(values: Object): this; } /* dijit/form/_Spinner */ @@ -1136,12 +1136,12 @@ declare namespace dijit { onClick(e: MouseEvent): boolean | void; - set(name: 'showLabel', value: boolean): this; - set(name: 'value', value: string): this; - set(name: 'name', value: string): this; - set(name: 'label', value: string): this; - set(name: string, value: any): this; - set(values: Object): this; + // set(name: 'showLabel', value: boolean): this; + // set(name: 'value', value: string): this; + // set(name: 'name', value: string): this; + // set(name: 'label', value: string): this; + // set(name: string, value: any): this; + // set(values: Object): this; } interface ButtonConstructor extends _WidgetBaseConstructor<Button> { } @@ -1154,9 +1154,9 @@ declare namespace dijit { postMixInProperties(): void; value: string; - set(name: 'value', value: string | boolean): this; - set(name: string, value: any): this; - set(values: Object): this; + // set(name: 'value', value: string | boolean): this; + // set(name: string, value: any): this; + // set(values: Object): this; } interface CheckBoxConstructor extends _WidgetBaseConstructor<CheckBox> { } @@ -1164,8 +1164,8 @@ declare namespace dijit { /* dijit/form/ComboBox */ interface ComboBox<T extends Object, Q extends dojo.store.api.BaseQueryType, O extends dojo.store.api.QueryOptions, C extends Constraints> extends ValidationTextBox<C>, ComboBoxMixin<T, Q, O> { - set(name: string, value: any): this; - set(values: Object): this; + // set(name: string, value: any): this; + // set(values: Object): this; } interface ComboBoxConstructor extends _WidgetBaseConstructor<ComboBox<any, any, any, any>> { @@ -1327,10 +1327,10 @@ declare namespace dijit { _openResultList(results: T[], query: Q, options: O): void; undo(): void; - set(name: 'displayedValue', value: string): this; - set(name: 'item', value: T): this; - set(name: string, value: any): this; - set(values: Object): this; + // set(name: 'displayedValue', value: string): this; + // set(name: 'item', value: T): this; + // set(name: string, value: any): this; + // set(values: Object): this; } interface FilteringSelectConstructor extends _WidgetBaseConstructor<FilteringSelect<any, any, any, any>> { @@ -1807,15 +1807,15 @@ declare namespace dijit { /* dijit/form/TextBox */ interface TextBox extends _FormValueWidget, _TextBoxMixin<Constraints> { - set(name: 'displayedValue', value: string): this; - set(name: 'disabled', value: boolean): this; - set(name: 'value', value: string): this; - set(name: string, value: any): this; - set(values: Object): this; + // set(name: 'displayedValue', value: string): this; + // set(name: 'disabled', value: boolean): this; + // set(name: 'value', value: string): this; + // set(name: string, value: any): this; + // set(values: Object): this; - get(name: 'displayedValue'): string; - get(name: 'value'): string; - get(name: string): any; + // get(name: 'displayedValue'): string; + // get(name: 'value'): string; + // get(name: string): any; } interface TextBoxConstructor extends _WidgetBaseConstructor<TextBox> { } @@ -1827,9 +1827,9 @@ declare namespace dijit { setChecked(checked: boolean): void; - set(name: 'checked', value: boolean): this; - set(name: string, value: any): this; - set(values: Object): this; + // set(name: 'checked', value: boolean): this; + // set(name: string, value: any): this; + // set(values: Object): this; } interface ToggleButtonConstructor extends _WidgetBaseConstructor<ToggleButton> { } @@ -1867,19 +1867,19 @@ declare namespace dijit { destroy(preserveDom?: boolean): void; - set(name: 'constraints', value: Constraints): this; - set(name: 'disabled', value: boolean): this; - set(name: 'message', value: string): this; - set(name: 'pattern', value: string | ConstraintsToRegExpString<C>): this; - set(name: 'regExp', value: string): this; - set(name: 'regExpGen', value: Constraints): this; - set(name: 'required', value: boolean): this; - set(name: 'value', value: string): this; - set(name: string, value: any): this; - set(values: Object): this; + // set(name: 'constraints', value: Constraints): this; + // set(name: 'disabled', value: boolean): this; + // set(name: 'message', value: string): this; + // set(name: 'pattern', value: string | ConstraintsToRegExpString<C>): this; + // set(name: 'regExp', value: string): this; + // set(name: 'regExpGen', value: Constraints): this; + // set(name: 'required', value: boolean): this; + // set(name: 'value', value: string): this; + // set(name: string, value: any): this; + // set(values: Object): this; - get(name: 'pattern'): string | ConstraintsToRegExpString<C>; - get(name: string): any; + // get(name: 'pattern'): string | ConstraintsToRegExpString<C>; + // get(name: string): any; } interface ValidationTextBoxConstructor extends _WidgetBaseConstructor<ValidationTextBox<Constraints>> { diff --git a/dojo-typings/src/main/typings/dstore/dstore.d.ts b/dojo-typings/src/main/typings/dstore/dstore.d.ts new file mode 100644 --- /dev/null +++ b/dojo-typings/src/main/typings/dstore/dstore.d.ts @@ -0,0 +1,312 @@ +/// <reference path="../dojo/index.d.ts" /> + +declare module dstore { + export interface FetchArray<T> extends Array<T> { + totalLength: number; + } + + export interface FetchPromise<T> extends dojo.promise.Promise<T> { + totalLength: dojo.promise.Promise<number>; + } + + export interface ChangeEvent<T> { + id: any; + index?: number; + previousIndex?: number; + target: T; + totalLength: number; + type: string; + } + + export interface Collection<T> { + idProperty: string; + Model: { new (...args: any[]): T; }; + tracking?: { remove(): void; }; + + add(object: T, options?: {}): dojo.promise.Promise<T>; + emit(eventName: string, event: ChangeEvent<T>): boolean; + fetch(): dstore.FetchPromise<T[]>; + fetchRange(kwArgs: { start?: number; end?: number; }): dstore.FetchPromise<T[]>; + filter(query: string | {} | { (item: T, index: number): boolean; }): this; + forEach(callback: (item: T, index: number) => void, thisObject?: any): dojo.promise.Promise<T[]>; + get(id: any): dojo.promise.Promise<T>; + getIdentity(object: T): any; + on(eventName: string, listener: (event: ChangeEvent<T>) => void): dojo.Handle; + put(object: T, options?: {}): dojo.promise.Promise<T>; + remove(id: any): dojo.promise.Promise<Object>; + sort(property: string | { (a: T, b: T): number; }, descending?: boolean): this; + track?(): this; + } + + export interface SyncCollection<T> extends Collection<T> { + addSync(object: T, options?: {}): T; + fetchSync(): dstore.FetchArray<T>; + fetchRangeSync(kwArgs: { start?: number; end?: number; }): dstore.FetchArray<T>; + filter(query: string | {} | { (item: T, index: number): boolean; }): this; + getSync(id: any): T; + putSync(object: T, options?: {}): T; + removeSync(id: any): boolean; + sort(property: string | { (a: T, b: T): number; }, descending?: boolean): this; + track?(): this; + } +} + +declare module 'dstore/Cache' { + import Store = require('dstore/Store'); + + interface Cache<T> extends Store<T> { + cachingStore: dstore.Collection<T>; + evict(id: any): void; + } + + module Cache { + export interface Constructor extends dojo._base.DeclareConstructor<Cache<any>> { + new <T>(kwArgs?: Cache.KwArgs<T>): Cache<T>; + } + + export interface KwArgs<T> extends Store.KwArgs { + cachingStore?: dstore.Collection<T>; + } + } + + const Cache: Cache.Constructor; + + export = Cache; +} + +declare module 'dstore/legacy/DstoreAdapter' { + import Store = require('dstore/Store'); + + interface DstoreAdapter<T> { + constructor(collection: dstore.Collection<T>): DstoreAdapter<T>; + get(id: any): any; + put(object: T, options?: {}): any; + remove(id: any): any; + query(query: any, options?: {}): any; + } + + module DstoreAdapter { + export interface Constructor extends dojo._base.DeclareConstructor<DstoreAdapter<any>> { + new <T>(store: Store<T>): DstoreAdapter<Store<T>>; + } + } + + const DstoreAdapter: DstoreAdapter.Constructor; + export = DstoreAdapter; +} + +declare module 'dstore/Memory' { + import Store = require('dstore/Store'); + + interface Memory<T> extends Store<T>, dstore.SyncCollection<T> { + data: T[]; + + addSync(object: T, options?: {}): T; + fetchSync(): dstore.FetchArray<T>; + fetchRangeSync(kwArgs: { start?: number; end?: number; }): dstore.FetchArray<T>; + filter(query: string | {} | { (item: T, index: number): boolean; }): this; + getSync(id: any): T; + putSync(object: T, options?: {}): T; + removeSync(id: any): boolean; + setData(data: T[]): void; + sort(property: string | { (a: T, b: T): number; }, descending?: boolean): this; + track(): this; + remove(id: any): dojo.promise.Promise<{}>; + } + + module Memory { + export interface Constructor extends dojo._base.DeclareConstructor<Memory<any>> { + new <T>(kwArgs?: Memory.KwArgs<T>): Memory<T>; + } + + export interface KwArgs<T> extends Store.KwArgs { + data?: T[]; + } + } + + const Memory: Memory.Constructor; + + export = Memory; +} + +declare module 'dstore/Trackable' { + interface Trackable<T> { + currentRange: any[]; + track(): this; + } + + module Trackable { + export interface Constructor extends dojo._base.DeclareConstructor<Trackable<any>> { + new <T>(...args: any[]): Trackable<T>; + } + } + + const Trackable: Trackable.Constructor; + + export = Trackable; +} + +declare module 'dstore/Tree' { + interface Tree<T> { + mayHaveChildren(object: T): boolean; + getRootCollection(): dstore.Collection<T>; + getChildren(object: T): dstore.Collection<T>; + } + + module Tree { + export interface Constructor extends dojo._base.DeclareConstructor<Tree<any>> { + new <T>(...args: any[]): Tree<T>; + } + } + + const Tree: Tree.Constructor; + + export = Tree; +} + +declare module 'dstore/Promised' { + import * as Promise from 'dojo/promise/Promise'; + + interface Promised<T> { + get(id: any): Promise<T>; + put(object: T, options?: {}): Promise<T>; + add(object: T, options?: {}): Promise<T>; + remove(id: any): Promise<boolean>; + fetch(): dstore.FetchPromise<T>; + fetchRange(args: { start?: number; end?: number; }): dstore.FetchPromise<T>; + } + + module Promised { + export interface Constructor extends dojo._base.DeclareConstructor<Promised<any>> { + new <T>(...args: any[]): Promised<T>; + } + } + + const Promised: Promised.Constructor; + + export = Promised; +} + +declare module 'dstore/SimpleQuery' { + interface SimpleQuery<T> { + } + + module SimpleQuery { + export interface Constructor extends dojo._base.DeclareConstructor<SimpleQuery<any>> { + new <T>(...args: any[]): SimpleQuery<T>; + } + } + + const SimpleQuery: SimpleQuery.Constructor; + + export = SimpleQuery; +} + +declare module 'dstore/Request' { + import Store = require('dstore/Store'); + + interface Request<T> extends Store<T> { + headers: {}; + parse: (serializedObject: string) => {}; + target: string; + ascendingPrefix: string; + descendingPrefix: string; + accepts: string; + + track(): this; + } + + module Request { + export interface Constructor extends dojo._base.DeclareConstructor<Request<any>> { + new <T>(kwArgs?: Request.KwArgs): Request<T>; + } + export interface KwArgs extends Store.KwArgs { + headers?: typeof Request.prototype.headers; + parse?: typeof Request.prototype.parse; + target?: typeof Request.prototype.target; + ascendingPrefix?: typeof Request.prototype.ascendingPrefix; + descendingPrefix?: typeof Request.prototype.descendingPrefix; + accepts?: typeof Request.prototype.accepts; + } + } + + const Request: Request.Constructor; + + export = Request; +} + +declare module 'dstore/RequestMemory' { + import Request = require('dstore/Request'); + import Cache = require('dstore/Cache'); + + interface RequestMemory<T> extends Request<T>, Cache<T> { + cachingStore: dstore.Collection<T>; + evict(id: any): void; + + track(): this; + } + + module RequestMemory { + export interface Constructor extends dojo._base.DeclareConstructor<RequestMemory<any>> { + new <T>(kwArgs?: RequestMemory.KwArgs<T>): RequestMemory<T>; + } + + export interface KwArgs<T> extends Request.KwArgs, Cache.KwArgs<T> {} + } + + const RequestMemory: RequestMemory.Constructor; + + export = RequestMemory; +} + +declare module 'dstore/Rest' { + import Request = require('dstore/Request'); + + interface Rest<T> extends Request<T> {} + + module Rest { + export interface Constructor extends dojo._base.DeclareConstructor<Rest<any>> { + new <T>(kwArgs?: Request.KwArgs): Rest<T>; + } + } + + const Rest: Rest.Constructor; + + export = Rest; +} + +declare module 'dstore/Store' { + interface Store<T> extends dstore.Collection<T> { + idProperty: string; + Model: { new (...args: any[]): T; }; + total: dojo.promise.Promise<number>; + + add(object: T, options?: {}): dojo.promise.Promise<T>; + emit(eventName: string, event: dstore.ChangeEvent<T>): boolean; + fetch(): dstore.FetchPromise<T[]>; + fetchRange(kwArgs: { start?: number; end?: number; }): dstore.FetchPromise<T[]>; + filter(query: string | {} | { (item: T, index: number): boolean; }): this; + forEach(callback: (item: T, index: number) => void, thisObject?: any): dojo.promise.Promise<T[]>; + get(id: any): dojo.promise.Promise<T>; + getIdentity(object: T): any; + on(eventName: string, listener: (event: dstore.ChangeEvent<T>) => void): dojo.Handle; + put(object: T, options?: {}): dojo.promise.Promise<T>; + remove(id: any): dojo.promise.Promise<{}>; + sort(property: string | { (a: T, b: T): number; }, descending?: boolean): this; + } + + module Store { + export interface Constructor extends dojo._base.DeclareConstructor<Store<any>> { + new <T>(kwArgs?: Store.KwArgs): Store<T>; + } + + export interface KwArgs { + idProperty?: typeof Store.prototype.idProperty; + Model?: typeof Store.prototype.Model; + } + } + + const Store: Store.Constructor; + + export = Store; +} diff --git a/dojo-typings/src/main/typings/dstore/index.d.ts b/dojo-typings/src/main/typings/dstore/index.d.ts new file mode 100644 --- /dev/null +++ b/dojo-typings/src/main/typings/dstore/index.d.ts @@ -0,0 +1,1 @@ +/// <reference path="dstore.d.ts" /> diff --git a/dojo-typings/src/main/typings/index.d.ts b/dojo-typings/src/main/typings/index.d.ts new file mode 100644 --- /dev/null +++ b/dojo-typings/src/main/typings/index.d.ts @@ -0,0 +1,3 @@ +/// <reference path="dojo/modules.d.ts" /> +/// <reference path="dijit/modules.d.ts" /> + diff --git a/dojo-typings/src/test/tsconfig.json b/dojo-typings/src/test/tsconfig.json --- a/dojo-typings/src/test/tsconfig.json +++ b/dojo-typings/src/test/tsconfig.json @@ -10,8 +10,7 @@ ], "types": [ "requirejs", - "../main/typings/dojo/modules", - "../main/typings/dijit/modules" + "../main/typings" ], "module": "ESNext", "target": "ESNext"