diff --git a/amqplib/amqplib-0.3.d.ts b/amqplib/amqplib-0.3.d.ts new file mode 100644 index 0000000000..3138f7494e --- /dev/null +++ b/amqplib/amqplib-0.3.d.ts @@ -0,0 +1,219 @@ +// Type definitions for amqplib 0.3.x +// Project: https://github.com/squaremo/amqp.node +// Definitions by: Michael Nahkies , Ab Reitsma +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// +/// + +declare module "amqplib/properties" { + namespace Replies { + interface Empty { + } + interface AssertQueue { + queue: string; + messageCount: number; + consumerCount: number; + } + interface PurgeQueue { + messageCount: number; + } + interface DeleteQueue { + messageCount: number; + } + interface AssertExchange { + exchange: string; + } + interface Consume { + consumerTag: string; + } + } + + namespace Options { + interface AssertQueue { + exclusive?: boolean; + durable?: boolean; + autoDelete?: boolean; + arguments?: any; + messageTtl?: number; + expires?: number; + deadLetterExchange?: string; + deadLetterRoutingKey?: string; + maxLength?: number; + } + interface DeleteQueue { + ifUnused?: boolean; + ifEmpty?: boolean; + } + interface AssertExchange { + durable?: boolean; + internal?: boolean; + autoDelete?: boolean; + alternateExchange?: string; + arguments?: any; + } + interface DeleteExchange { + ifUnused?: boolean; + } + interface Publish { + expiration?: string; + userId?: string; + CC?: string | string[]; + + mandatory?: boolean; + persistent?: boolean; + deliveryMode?: boolean | number; + BCC?: string | string[]; + + contentType?: string; + contentEncoding?: string; + headers?: any; + priority?: number; + correlationId?: string; + replyTo?: string; + messageId?: string; + timestamp?: number; + type?: string; + appId?: string; + } + interface Consume { + consumerTag?: string; + noLocal?: boolean; + noAck?: boolean; + exclusive?: boolean; + priority?: number; + arguments?: any; + } + interface Get { + noAck?: boolean; + } + } + + interface Message { + content: Buffer; + fields: any; + properties: any; + } +} + +declare module "amqplib" { + + import events = require("events"); + import when = require("when"); + import shared = require("amqplib/properties") + export import Replies = shared.Replies; + export import Options = shared.Options; + export import Message = shared.Message; + + interface Connection extends events.EventEmitter { + close(): when.Promise; + createChannel(): when.Promise; + createConfirmChannel(): when.Promise; + } + + interface Channel extends events.EventEmitter { + close(): when.Promise; + + assertQueue(queue: string, options?: Options.AssertQueue): when.Promise; + checkQueue(queue: string): when.Promise; + + deleteQueue(queue: string, options?: Options.DeleteQueue): when.Promise; + purgeQueue(queue: string): when.Promise; + + bindQueue(queue: string, source: string, pattern: string, args?: any): when.Promise; + unbindQueue(queue: string, source: string, pattern: string, args?: any): when.Promise; + + assertExchange(exchange: string, type: string, options?: Options.AssertExchange): when.Promise; + checkExchange(exchange: string): when.Promise; + + deleteExchange(exchange: string, options?: Options.DeleteExchange): when.Promise; + + bindExchange(destination: string, source: string, pattern: string, args?: any): when.Promise; + unbindExchange(destination: string, source: string, pattern: string, args?: any): when.Promise; + + publish(exchange: string, routingKey: string, content: Buffer, options?: Options.Publish): boolean; + sendToQueue(queue: string, content: Buffer, options?: Options.Publish): boolean; + + consume(queue: string, onMessage: (msg: Message) => any, options?: Options.Consume): when.Promise; + + cancel(consumerTag: string): when.Promise; + get(queue: string, options?: Options.Get): when.Promise; + + ack(message: Message, allUpTo?: boolean): void; + ackAll(): void; + + nack(message: Message, allUpTo?: boolean, requeue?: boolean): void; + nackAll(requeue?: boolean): void; + reject(message: Message, requeue?: boolean): void; + + prefetch(count: number, global?: boolean): when.Promise; + recover(): when.Promise; + } + + function connect(url: string, socketOptions?: any): when.Promise; +} + +declare module "amqplib/callback_api" { + + import events = require("events"); + import shared = require("amqplib/properties") + export import Replies = shared.Replies; + export import Options = shared.Options; + export import Message = shared.Message; + + interface Connection extends events.EventEmitter { + close(callback?: (err: any) => void): void; + createChannel(callback: (err: any, channel: Channel) => void): void; + createConfirmChannel(callback: (err: any, confirmChannel: ConfirmChannel) => void): void; + } + + interface Channel extends events.EventEmitter { + close(callback: (err: any) => void): void; + + assertQueue(queue?: string, options?: Options.AssertQueue, callback?: (err:any, ok: Replies.AssertQueue) => void): void; + checkQueue(queue: string, callback?: (err: any, ok: Replies.AssertQueue) => void): void; + + deleteQueue(queue: string, options?: Options.DeleteQueue, callback?: (err:any, ok: Replies.DeleteQueue) => void): void; + purgeQueue(queue: string, callback?: (err:any, ok: Replies.PurgeQueue) => void): void; + + bindQueue(queue: string, source: string, pattern: string, args?: any, callback?: (err: any, ok: Replies.Empty) => void): void; + unbindQueue(queue: string, source: string, pattern: string, args?: any, callback?: (err: any, ok: Replies.Empty) => void): void; + + assertExchange(exchange: string, type: string, options?: Options.AssertExchange, callback?: (err: any, ok: Replies.AssertExchange) => void): void; + checkExchange(exchange: string, callback?: (err: any, ok: Replies.Empty) => void): void; + + deleteExchange(exchange: string, options?: Options.DeleteExchange, callback?: (err: any, ok: Replies.Empty) => void): void; + + bindExchange(destination: string, source: string, pattern: string, args?: any, callback?: (err: any, ok: Replies.Empty) => void): void; + unbindExchange(destination: string, source: string, pattern: string, args?: any, callback?: (err: any, ok: Replies.Empty) => void): void; + + publish(exchange: string, routingKey: string, content: Buffer, options?: Options.Publish): boolean; + sendToQueue(queue: string, content: Buffer, options?: Options.Publish): boolean; + + consume(queue: string, onMessage: (msg: Message) => any, options?: Options.Consume, callback?: (err: any, ok: Replies.Consume) => void): void; + + cancel(consumerTag: string, callback?: (err: any, ok: Replies.Empty) => void): void; + get(queue: string, options?: Options.Get, callback?: (err: any, ok: Message | boolean) => void): void; + + ack(message: Message, allUpTo?: boolean): void; + ackAll(): void; + + nack(message: Message, allUpTo?: boolean, requeue?: boolean): void; + nackAll(requeue?: boolean): void; + reject(message: Message, requeue?: boolean): void; + + prefetch(count: number, global?: boolean): void; + recover(callback?: (err: any, ok: Replies.Empty) => void): void; + } + + interface ConfirmChannel extends Channel { + publish(exchange: string, routingKey: string, content: Buffer, options?: Options.Publish, callback?: (err: any, ok: Replies.Empty) => void): boolean; + sendToQueue(queue: string, content: Buffer, options?: Options.Publish, callback?: (err: any, ok: Replies.Empty) => void): boolean; + + waitForConfirms(callback?: (err: any) => void): void; + } + + function connect(callback: (err: any, connection: Connection) => void): void; + function connect(url: string, callback: (err: any, connection: Connection) => void): void; + function connect(url: string, socketOptions: any, callback: (err: any, connection: Connection) => void): void; +} diff --git a/amqplib/amqplib-tests.ts b/amqplib/amqplib-tests.ts index 07b9ec5402..b17128653a 100644 --- a/amqplib/amqplib-tests.ts +++ b/amqplib/amqplib-tests.ts @@ -1,44 +1,42 @@ - - // promise api tests -import amqp = require("amqplib"); +import amqp = require('amqplib'); -var msg = "Hello World"; +var msg = 'Hello World'; // test promise api -amqp.connect("amqp://localhost") +amqp.connect('amqp://localhost') .then(connection => { return connection.createChannel() - .tap(channel => channel.checkQueue("myQueue")) - .then(channel => channel.sendToQueue("myQueue", new Buffer(msg))) - .ensure(() => connection.close()); + .tap(channel => channel.checkQueue('myQueue')) + .then(channel => channel.sendToQueue('myQueue', new Buffer(msg))) + .finally(() => connection.close()); }); -amqp.connect("amqp://localhost") +amqp.connect('amqp://localhost') .then(connection => { return connection.createChannel() - .tap(channel => channel.checkQueue("myQueue")) - .then(channel => channel.consume("myQueue", newMsg => console.log("New Message: " + newMsg.content.toString()))) - .ensure(() => connection.close()); + .tap(channel => channel.checkQueue('myQueue')) + .then(channel => channel.consume('myQueue', newMsg => console.log('New Message: ' + newMsg.content.toString()))) + .finally(() => connection.close()); }); // test promise api properties var amqpMessage: amqp.Message; -amqpMessage.properties.contentType = "application/json"; +amqpMessage.properties.contentType = 'application/json'; var amqpAssertExchangeOptions: amqp.Options.AssertExchange; var anqpAssertExchangeReplies: amqp.Replies.AssertExchange; // callback api tests -import amqpcb = require("amqplib/callback_api"); +import amqpcb = require('amqplib/callback_api'); -amqpcb.connect("amqp://localhost", (err, connection) => { +amqpcb.connect('amqp://localhost', (err, connection) => { if(!err) { connection.createChannel((err, channel) => { if (!err) { - channel.assertQueue("myQueue", {}, (err, ok) => { + channel.assertQueue('myQueue', {}, (err, ok) => { if(!err) { - channel.sendToQueue("myQueue", new Buffer(msg)); + channel.sendToQueue('myQueue', new Buffer(msg)); } }); } @@ -46,13 +44,13 @@ amqpcb.connect("amqp://localhost", (err, connection) => { } }); -amqpcb.connect("amqp://localhost", (err, connection) => { +amqpcb.connect('amqp://localhost', (err, connection) => { if(!err) { connection.createChannel((err, channel) => { if (!err) { - channel.assertQueue("myQueue", {}, (err, ok) => { + channel.assertQueue('myQueue', {}, (err, ok) => { if(!err) { - channel.consume("myQueue", newMsg => console.log("New Message: " + newMsg.content.toString())); + channel.consume('myQueue', newMsg => console.log('New Message: ' + newMsg.content.toString())); } }); } @@ -62,6 +60,6 @@ amqpcb.connect("amqp://localhost", (err, connection) => { // test callback api properties var amqpcbMessage: amqpcb.Message; -amqpcbMessage.properties.contentType = "application/json"; +amqpcbMessage.properties.contentType = 'application/json'; var amqpcbAssertExchangeOptions: amqpcb.Options.AssertExchange; -var anqpcbAssertExchangeReplies: amqpcb.Replies.AssertExchange; \ No newline at end of file +var anqpcbAssertExchangeReplies: amqpcb.Replies.AssertExchange; diff --git a/amqplib/index.d.ts b/amqplib/index.d.ts index 3138f7494e..b406e00ac0 100644 --- a/amqplib/index.d.ts +++ b/amqplib/index.d.ts @@ -1,13 +1,76 @@ -// Type definitions for amqplib 0.3.x +// Type definitions for amqplib 0.5.x // Project: https://github.com/squaremo/amqp.node -// Definitions by: Michael Nahkies , Ab Reitsma +// Definitions by: Michael Nahkies , Ab Reitsma , Nicolás Fantone // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -/// /// -declare module "amqplib/properties" { - namespace Replies { +declare module 'amqplib' { + import * as Promise from 'bluebird'; + import * as events from 'events'; + import shared = require('amqplib/properties'); + + export import Replies = shared.Replies; + export import Options = shared.Options; + export import Message = shared.Message; + + export interface Connection extends events.EventEmitter { + close(): Promise; + createChannel(): Promise; + createConfirmChannel(): Promise; + } + + export interface Channel extends events.EventEmitter { + close(): Promise; + + assertQueue(queue: string, options?: Options.AssertQueue): Promise; + checkQueue(queue: string): Promise; + + deleteQueue(queue: string, options?: Options.DeleteQueue): Promise; + purgeQueue(queue: string): Promise; + + bindQueue(queue: string, source: string, pattern: string, args?: any): Promise; + unbindQueue(queue: string, source: string, pattern: string, args?: any): Promise; + + assertExchange(exchange: string, type: string, options?: Options.AssertExchange): Promise; + checkExchange(exchange: string): Promise; + + deleteExchange(exchange: string, options?: Options.DeleteExchange): Promise; + + bindExchange(destination: string, source: string, pattern: string, args?: any): Promise; + unbindExchange(destination: string, source: string, pattern: string, args?: any): Promise; + + publish(exchange: string, routingKey: string, content: Buffer, options?: Options.Publish): boolean; + sendToQueue(queue: string, content: Buffer, options?: Options.Publish): boolean; + + consume(queue: string, onMessage: (msg: Message) => any, options?: Options.Consume): Promise; + + cancel(consumerTag: string): Promise; + get(queue: string, options?: Options.Get): Promise; + + ack(message: Message, allUpTo?: boolean): void; + ackAll(): void; + + nack(message: Message, allUpTo?: boolean, requeue?: boolean): void; + nackAll(requeue?: boolean): void; + reject(message: Message, requeue?: boolean): void; + + prefetch(count: number, global?: boolean): Promise; + recover(): Promise; + } + + export interface ConfirmChannel extends Channel { + publish(exchange:string, routingKey:string, content:Buffer, options?:Options.Publish, callback?:(err:any, ok:Replies.Empty) => void):boolean; + sendToQueue(queue:string, content:Buffer, options?:Options.Publish, callback?:(err:any, ok:Replies.Empty) => void):boolean; + + waitForConfirms(): Promise; + } + + export function connect(url: string, socketOptions?: any): Promise; +} + +declare module 'amqplib/properties' { + export namespace Replies { interface Empty { } interface AssertQueue { @@ -29,7 +92,7 @@ declare module "amqplib/properties" { } } - namespace Options { + export namespace Options { interface AssertQueue { exclusive?: boolean; durable?: boolean; @@ -40,6 +103,7 @@ declare module "amqplib/properties" { deadLetterExchange?: string; deadLetterRoutingKey?: string; maxLength?: number; + maxPriority?: number; } interface DeleteQueue { ifUnused?: boolean; @@ -56,7 +120,7 @@ declare module "amqplib/properties" { ifUnused?: boolean; } interface Publish { - expiration?: string; + expiration?: string | number; userId?: string; CC?: string | string[]; @@ -89,92 +153,35 @@ declare module "amqplib/properties" { } } - interface Message { + export interface Message { content: Buffer; fields: any; properties: any; } } -declare module "amqplib" { +declare module 'amqplib/callback_api' { + import events = require('events'); + import shared = require('amqplib/properties') - import events = require("events"); - import when = require("when"); - import shared = require("amqplib/properties") export import Replies = shared.Replies; export import Options = shared.Options; export import Message = shared.Message; - interface Connection extends events.EventEmitter { - close(): when.Promise; - createChannel(): when.Promise; - createConfirmChannel(): when.Promise; - } - - interface Channel extends events.EventEmitter { - close(): when.Promise; - - assertQueue(queue: string, options?: Options.AssertQueue): when.Promise; - checkQueue(queue: string): when.Promise; - - deleteQueue(queue: string, options?: Options.DeleteQueue): when.Promise; - purgeQueue(queue: string): when.Promise; - - bindQueue(queue: string, source: string, pattern: string, args?: any): when.Promise; - unbindQueue(queue: string, source: string, pattern: string, args?: any): when.Promise; - - assertExchange(exchange: string, type: string, options?: Options.AssertExchange): when.Promise; - checkExchange(exchange: string): when.Promise; - - deleteExchange(exchange: string, options?: Options.DeleteExchange): when.Promise; - - bindExchange(destination: string, source: string, pattern: string, args?: any): when.Promise; - unbindExchange(destination: string, source: string, pattern: string, args?: any): when.Promise; - - publish(exchange: string, routingKey: string, content: Buffer, options?: Options.Publish): boolean; - sendToQueue(queue: string, content: Buffer, options?: Options.Publish): boolean; - - consume(queue: string, onMessage: (msg: Message) => any, options?: Options.Consume): when.Promise; - - cancel(consumerTag: string): when.Promise; - get(queue: string, options?: Options.Get): when.Promise; - - ack(message: Message, allUpTo?: boolean): void; - ackAll(): void; - - nack(message: Message, allUpTo?: boolean, requeue?: boolean): void; - nackAll(requeue?: boolean): void; - reject(message: Message, requeue?: boolean): void; - - prefetch(count: number, global?: boolean): when.Promise; - recover(): when.Promise; - } - - function connect(url: string, socketOptions?: any): when.Promise; -} - -declare module "amqplib/callback_api" { - - import events = require("events"); - import shared = require("amqplib/properties") - export import Replies = shared.Replies; - export import Options = shared.Options; - export import Message = shared.Message; - - interface Connection extends events.EventEmitter { + export interface Connection extends events.EventEmitter { close(callback?: (err: any) => void): void; createChannel(callback: (err: any, channel: Channel) => void): void; createConfirmChannel(callback: (err: any, confirmChannel: ConfirmChannel) => void): void; } - interface Channel extends events.EventEmitter { + export interface Channel extends events.EventEmitter { close(callback: (err: any) => void): void; - assertQueue(queue?: string, options?: Options.AssertQueue, callback?: (err:any, ok: Replies.AssertQueue) => void): void; + assertQueue(queue?: string, options?: Options.AssertQueue, callback?: (err: any, ok: Replies.AssertQueue) => void): void; checkQueue(queue: string, callback?: (err: any, ok: Replies.AssertQueue) => void): void; - deleteQueue(queue: string, options?: Options.DeleteQueue, callback?: (err:any, ok: Replies.DeleteQueue) => void): void; - purgeQueue(queue: string, callback?: (err:any, ok: Replies.PurgeQueue) => void): void; + deleteQueue(queue: string, options?: Options.DeleteQueue, callback?: (err: any, ok: Replies.DeleteQueue) => void): void; + purgeQueue(queue: string, callback?: (err: any, ok: Replies.PurgeQueue) => void): void; bindQueue(queue: string, source: string, pattern: string, args?: any, callback?: (err: any, ok: Replies.Empty) => void): void; unbindQueue(queue: string, source: string, pattern: string, args?: any, callback?: (err: any, ok: Replies.Empty) => void): void; @@ -206,14 +213,14 @@ declare module "amqplib/callback_api" { recover(callback?: (err: any, ok: Replies.Empty) => void): void; } - interface ConfirmChannel extends Channel { + export interface ConfirmChannel extends Channel { publish(exchange: string, routingKey: string, content: Buffer, options?: Options.Publish, callback?: (err: any, ok: Replies.Empty) => void): boolean; sendToQueue(queue: string, content: Buffer, options?: Options.Publish, callback?: (err: any, ok: Replies.Empty) => void): boolean; waitForConfirms(callback?: (err: any) => void): void; } - function connect(callback: (err: any, connection: Connection) => void): void; - function connect(url: string, callback: (err: any, connection: Connection) => void): void; - function connect(url: string, socketOptions: any, callback: (err: any, connection: Connection) => void): void; + export function connect(callback: (err: any, connection: Connection) => void): void; + export function connect(url: string, callback: (err: any, connection: Connection) => void): void; + export function connect(url: string, socketOptions: any, callback: (err: any, connection: Connection) => void): void; } diff --git a/angular-animate/tsconfig.json b/angular-animate/tsconfig.json index 81f1a4a364..a76d9cbdb5 100644 --- a/angular-animate/tsconfig.json +++ b/angular-animate/tsconfig.json @@ -13,6 +13,6 @@ ], "types": [], "noEmit": true, - "forceConsistentCasingInFileNames": false + "forceConsistentCasingInFileNames": true } } \ No newline at end of file diff --git a/angular-clipboard/angular-clipboard-tests.ts b/angular-clipboard/angular-clipboard-tests.ts new file mode 100644 index 0000000000..ccb1c7ce9a --- /dev/null +++ b/angular-clipboard/angular-clipboard-tests.ts @@ -0,0 +1,14 @@ +/// +/// + +import * as angular from "angular"; +import {ClipboardService} from "angular-clipboard"; + +const app = angular.module('testModule', ['angular-clipboard']); +app.controller('TestController', ($scope: ng.IScope, clipboard: ClipboardService) => { + $scope['testCopy'] = () => { + if (clipboard.supported) { + clipboard.copyText('hiiiiiii'); + } + }; +}); diff --git a/angular-clipboard/index.d.ts b/angular-clipboard/index.d.ts new file mode 100644 index 0000000000..bb2d93ce49 --- /dev/null +++ b/angular-clipboard/index.d.ts @@ -0,0 +1,20 @@ +// Type definitions for angular-clipboard v1.5 +// Project: https://github.com/omichelsen/angular-clipboard +// Definitions by: Bradford Wagner +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/** + * Definition of the Clipboard Service + */ +export interface ClipboardService { + /** + * tells us whether or not angular-clipboard is supported + */ + supported: boolean; + + /** + * copies text to a clipboard + * @param text the text to be copied to the clipboard + */ + copyText(text: string): void; +} diff --git a/angular-clipboard/tsconfig.json b/angular-clipboard/tsconfig.json new file mode 100644 index 0000000000..1f69b1e8fa --- /dev/null +++ b/angular-clipboard/tsconfig.json @@ -0,0 +1,19 @@ +{ + "files": [ + "index.d.ts", + "angular-clipboard-tests.ts" + ], + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + } +} diff --git a/angular-cookies/tsconfig.json b/angular-cookies/tsconfig.json index 81f1a4a364..a76d9cbdb5 100644 --- a/angular-cookies/tsconfig.json +++ b/angular-cookies/tsconfig.json @@ -13,6 +13,6 @@ ], "types": [], "noEmit": true, - "forceConsistentCasingInFileNames": false + "forceConsistentCasingInFileNames": true } } \ No newline at end of file diff --git a/angular-deferred-bootstrap/tsconfig.json b/angular-deferred-bootstrap/tsconfig.json index aa3c166f61..cd3ad35519 100644 --- a/angular-deferred-bootstrap/tsconfig.json +++ b/angular-deferred-bootstrap/tsconfig.json @@ -14,6 +14,6 @@ ], "types": [], "noEmit": true, - "forceConsistentCasingInFileNames": false + "forceConsistentCasingInFileNames": true } } \ No newline at end of file diff --git a/angular-gettext/index.d.ts b/angular-gettext/index.d.ts index 380ef1d8b7..224f5032e0 100644 --- a/angular-gettext/index.d.ts +++ b/angular-gettext/index.d.ts @@ -1,73 +1,79 @@ -// Type definitions for angular-gettext v2.1.0 +// Type definitions for angular-gettext v2.1.0 // Project: https://angular-gettext.rocketeer.be/ // Definitions by: Ákos Lukács // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /// -declare namespace angular.gettext { - interface gettextCatalog { - ////////////// - /// Fields /// - ////////////// - - /** (default: false): Whether or not to prefix untranslated strings with [MISSING]: or a custom prefix. */ - debug: boolean; - /** (default: [MISSING]:): Custom prefix for untranslated strings. */ - debugPrefix: string; - /** (default: false): Whether or not to wrap all processed text with markers.Example output: [Welcome] */ - showTranslatedMarkers: boolean; - /** (default: [): Custom prefix to mark strings that have been run through angular-gettext. */ - translatedMarkerPrefix: string; - /** (default: ]): Custom suffix to mark strings that have been run through angular-gettext. */ - translatedMarkerSuffix: string; - /** An object of loaded translation strings.Shouldn't be used directly. */ - strings: {}; - /** The default language, in which you're application is written. This defaults to English and it's generally a bad idea to use anything else: if your language has different pluralization rules you'll end up with incorrect translations. Deprecated - * @deprecreated - */ - baseLanguage: string; +import * as angular from 'angular'; - /////////////// - /// Methods /// - /////////////// +declare module 'angular' { + export namespace gettext { + interface gettextCatalog { - /** Sets the current language and makes sure that all translations get updated correctly. */ - setCurrentLanguage(lang: string): void; + ////////////// + /// Fields /// + ////////////// - /** Returns the current language. */ - getCurrentLanguage(): string; + /** (default: false): Whether or not to prefix untranslated strings with [MISSING]: or a custom prefix. */ + debug: boolean; + /** (default: [MISSING]:): Custom prefix for untranslated strings. */ + debugPrefix: string; + /** (default: false): Whether or not to wrap all processed text with markers.Example output: [Welcome] */ + showTranslatedMarkers: boolean; + /** (default: [): Custom prefix to mark strings that have been run through angular-gettext. */ + translatedMarkerPrefix: string; + /** (default: ]): Custom suffix to mark strings that have been run through angular-gettext. */ + translatedMarkerSuffix: string; + /** An object of loaded translation strings.Shouldn't be used directly. */ + strings: {}; + /** The default language, in which you're application is written. This defaults to English and it's generally a bad idea to use anything else: if your language has different pluralization rules you'll end up with incorrect translations. Deprecated + * @deprecreated + */ + baseLanguage: string; - /** Processes an object of string definitions. More details https://angular-gettext.rocketeer.be/dev-guide/manual-setstrings/ - * @param language A language code. - * @param strings A dictionary of strings. The format of this dictionary is: - * - Keys: Singular English strings (as defined in the source files) - * - Values: Either a single string for signular-only strings or an array of plural forms. - */ - setStrings(language: string, strings: { [key: string]: string|string[] }): void; - /** Get the correct pluralized (but untranslated) string for the value of n. */ - getStringForm(string: string, n: number): string; + /////////////// + /// Methods /// + /////////////// - /** Translate a string with the given scope. Uses Angular.JS interpolation, so something like this will do what you expect: - * var hello = gettextCatalog.getString("Hello {{name}}!", { name: "Ruben" }); - * // var hello will be "Hallo Ruben!" in Dutch. - * The scope parameter is optional: pass null (or don't pass anything) if you're not using it: this skips interpolation and is a lot faster. - */ - getString(string: string, scope?: any, context?: string): string; + /** Sets the current language and makes sure that all translations get updated correctly. */ + setCurrentLanguage(lang: string): void; - /** Translate a plural string with the given context. */ - getPlural(n: number, string: string, stringPlural: string, context?: any): string; + /** Returns the current language. */ + getCurrentLanguage(): string; - /** Load a set of translation strings from a given URL.This should be a JSON catalog generated with grunt-angular-gettext. More details https://angular-gettext.rocketeer.be/dev-guide/lazy-loading/ */ - loadRemote(url: string): ng.IHttpPromise; - } + /** Processes an object of string definitions. More details https://angular-gettext.rocketeer.be/dev-guide/manual-setstrings/ + * @param language A language code. + * @param strings A dictionary of strings. The format of this dictionary is: + * - Keys: Singular English strings (as defined in the source files) + * - Values: Either a single string for signular-only strings or an array of plural forms. + */ + setStrings(language: string, strings: { [key: string]: string|string[] }): void; - /** If you have text that should be translated in your JavaScript code, wrap it with a call to a function named gettext. This module provides an injectable function to do so */ - interface gettextFunction { - (dummyString: string): string; + /** Get the correct pluralized (but untranslated) string for the value of n. */ + getStringForm(string: string, n: number): string; + + /** Translate a string with the given scope. Uses Angular.JS interpolation, so something like this will do what you expect: + * var hello = gettextCatalog.getString("Hello {{name}}!", { name: "Ruben" }); + * // var hello will be "Hallo Ruben!" in Dutch. + * The scope parameter is optional: pass null (or don't pass anything) if you're not using it: this skips interpolation and is a lot faster. + */ + getString(string: string, scope?: any, context?: string): string; + + /** Translate a plural string with the given context. */ + getPlural(n: number, string: string, stringPlural: string, context?: any): string; + + /** Load a set of translation strings from a given URL.This should be a JSON catalog generated with grunt-angular-gettext. More details https://angular-gettext.rocketeer.be/dev-guide/lazy-loading/ */ + loadRemote(url: string): ng.IHttpPromise; + } + + /** If you have text that should be translated in your JavaScript code, wrap it with a call to a function named gettext. This module provides an injectable function to do so */ + interface gettextFunction { + (dummyString: string): string; + } } } diff --git a/angular-mocks/tsconfig.json b/angular-mocks/tsconfig.json index b53af4d397..68a8f53b3c 100644 --- a/angular-mocks/tsconfig.json +++ b/angular-mocks/tsconfig.json @@ -15,6 +15,6 @@ ], "types": [], "noEmit": true, - "forceConsistentCasingInFileNames": false + "forceConsistentCasingInFileNames": true } } \ No newline at end of file diff --git a/angular-permission/angular-permission-tests.ts b/angular-permission/angular-permission-tests.ts index 4f3a35f5df..051ace69b8 100644 --- a/angular-permission/angular-permission-tests.ts +++ b/angular-permission/angular-permission-tests.ts @@ -66,7 +66,7 @@ angular PermissionStore.removePermissionDefinition('user'); - let permissions: Array = PermissionStore.getStore(); + let permissions = PermissionStore.getStore(); }); @@ -90,5 +90,5 @@ angular RoleStore.removeRoleDefinition('user'); - let roles: Array = RoleStore.getStore(); + let roles = RoleStore.getStore(); }); diff --git a/angular-permission/index.d.ts b/angular-permission/index.d.ts index 0b8d06f32a..28781cb5df 100644 --- a/angular-permission/index.d.ts +++ b/angular-permission/index.d.ts @@ -30,8 +30,8 @@ declare module 'angular' { * @param validationFunction {Function} Function used to validate if permission is valid */ definePermission( - name: string, - validationFunction: (permission?: string, transitionProperties?: TransitionProperties) => boolean | angular.IPromise + permissionName: string, + validationFunction: PermissionValidationFunction ): void; /** @@ -43,10 +43,14 @@ declare module 'angular' { * @param validationFunction {Function} Function used to validate if permission is valid */ defineManyPermissions( - permissions: string[], - validationFunction: (permission?: string, transitionProperties?: TransitionProperties) => boolean | angular.IPromise + permissionNames: string[], + validationFunction: PermissionValidationFunction ): void; + /** + * Removes all permissions + * @method + */ clearStore(): void; /** @@ -55,7 +59,7 @@ declare module 'angular' { * * @param permissionName {String} Name of defined permission */ - removePermissionDefinition(permission: string): void; + removePermissionDefinition(permissionName: string): void; /** * Checks if permission exists @@ -66,13 +70,21 @@ declare module 'angular' { */ hasPermissionDefinition(permissionName: string): boolean; + /** + * Returns permission by it's name + * @method + * + * @returns {permission.Permission} Permissions definition object + */ + getPermissionDefinition(permissionName: string): Permission; + /** * Returns all permissions * @method * * @returns {Object} Permissions collection */ - getStore(): Permission[]; + getStore(): { [permissionName: string]: Permission }; } export interface RoleStore { @@ -85,8 +97,8 @@ declare module 'angular' { * @param [validationFunction] {Function} Function used to validate if permissions in role are valid */ defineRole( - role: string, - permissions: Array, + roleName: string, + permissions: string[], validationFunction: RoleValidationFunction ): void; @@ -97,7 +109,10 @@ declare module 'angular' { * @param roleName {String} Name of defined role * @param permissions {Array} Set of permission names */ - defineRole(role: string, permissions: Array): void; + defineRole( + roleName: string, + permissions: string[] + ): void; /** * Checks if role is defined in store @@ -106,7 +121,7 @@ declare module 'angular' { * @param roleName {String} Name of role * @returns {Boolean} */ - hasRoleDefinition(role: string): boolean; + hasRoleDefinition(roleName: string): boolean; /** * Returns role definition object by it's name @@ -136,27 +151,31 @@ declare module 'angular' { * * @returns {Object} Defined roles collection */ - getStore(): Role[]; + getStore(): { [roleName: string]: Role }; } export interface Role { roleName: string; permissionNames: string[]; validationFunction?: RoleValidationFunction; + validateRole: () => angular.IPromise; } export interface Permission { permissionName: string; validationFunction?: PermissionValidationFunction; + validatePermission: () => angular.IPromise; } - interface RoleValidationFunction { - (permission?: string, transitionProperties?: TransitionProperties): boolean | angular.IPromise; - } + export type RoleValidationFunction = ( + roleName?: string, + transitionProperties?: TransitionProperties + ) => boolean | angular.IPromise; - interface PermissionValidationFunction { - (permission?: string, transitionProperties?: TransitionProperties): boolean | angular.IPromise; - } + export type PermissionValidationFunction = ( + permissionName?: string, + transitionProperties?: TransitionProperties + ) => boolean | angular.IPromise; export interface IPermissionState extends angular.ui.IState { data?: any | DataWithPermissions; @@ -164,8 +183,8 @@ declare module 'angular' { export interface DataWithPermissions { permissions?: { - only?: (() => void) | Array | angular.IPromise; - except?: (() => void) | Array | angular.IPromise; + only?: (() => void) | string | string[] | angular.IPromise; + except?: (() => void) | string | string[] | angular.IPromise; redirectTo: string | (() => string) | (() => PermissionRedirectConfigation) | { [index: string]: PermissionRedirectConfigation } }; } diff --git a/angular-promise-tracker/angular-promise-tracker-tests.ts b/angular-promise-tracker/angular-promise-tracker-tests.ts new file mode 100644 index 0000000000..82f9e66c06 --- /dev/null +++ b/angular-promise-tracker/angular-promise-tracker-tests.ts @@ -0,0 +1,20 @@ +angular.module('promise-tracker-tests', []).run(['$q', 'promiseTracker', + ($q: angular.IQService, promiseTracker: angular.promisetracker.PromiseTrackerService) => { + const trackerWithoutOptions = promiseTracker(); + + const options = { + activationDelay: 10, + minDuration: 500 + } as angular.promisetracker.PromiseTrackerOptions; + const trackerWithOptions = promiseTracker(options); + + const isActive: boolean = trackerWithOptions.active(); + const tracking: boolean = trackerWithOptions.tracking(); + const trackingCount: number = trackerWithOptions.trackingCount(); + trackerWithOptions.cancel(); + + const createdPromise: angular.IDeferred = trackerWithOptions.createPromise(); + + const promiseToAdd = $q.defer().promise; + const addedPromise: angular.IDeferred = trackerWithOptions.addPromise(promiseToAdd); +}]); diff --git a/angular-promise-tracker/index.d.ts b/angular-promise-tracker/index.d.ts new file mode 100644 index 0000000000..c00f36e77c --- /dev/null +++ b/angular-promise-tracker/index.d.ts @@ -0,0 +1,30 @@ +// Type definitions for angular-promise-tracker 2.2.2 +// Project: https://github.com/ajoslin/angular-promise-tracker +// Definitions by: Rufus Linke +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +import * as angular from 'angular'; + +declare module 'angular' { + export namespace promisetracker { + interface PromiseTrackerOptions { + activationDelay: number; + minDuration: number; + } + + interface PromiseTracker { + active(): boolean; + tracking(): boolean; + trackingCount(): number; + addPromise(promise: angular.IPromise): angular.IDeferred; + createPromise(): angular.IDeferred; + cancel(): void; + } + + interface PromiseTrackerService { + (options?: PromiseTrackerOptions): PromiseTracker; + } + } +} diff --git a/angular-promise-tracker/tsconfig.json b/angular-promise-tracker/tsconfig.json new file mode 100644 index 0000000000..266a8adf90 --- /dev/null +++ b/angular-promise-tracker/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "angular-promise-tracker-tests.ts" + ] +} diff --git a/angular-q-spread/tsconfig.json b/angular-q-spread/tsconfig.json index 90110b0e9f..3461eaa2db 100644 --- a/angular-q-spread/tsconfig.json +++ b/angular-q-spread/tsconfig.json @@ -14,6 +14,6 @@ ], "types": [], "noEmit": true, - "forceConsistentCasingInFileNames": false + "forceConsistentCasingInFileNames": true } } \ No newline at end of file diff --git a/angular-resource/tsconfig.json b/angular-resource/tsconfig.json index fe51bc7293..6bff757b93 100644 --- a/angular-resource/tsconfig.json +++ b/angular-resource/tsconfig.json @@ -14,6 +14,6 @@ ], "types": [], "noEmit": true, - "forceConsistentCasingInFileNames": false + "forceConsistentCasingInFileNames": true } } \ No newline at end of file diff --git a/angular-route/tsconfig.json b/angular-route/tsconfig.json index 96c224daaf..3301b843a3 100644 --- a/angular-route/tsconfig.json +++ b/angular-route/tsconfig.json @@ -14,6 +14,6 @@ ], "types": [], "noEmit": true, - "forceConsistentCasingInFileNames": false + "forceConsistentCasingInFileNames": true } } \ No newline at end of file diff --git a/angular-sanitize/tsconfig.json b/angular-sanitize/tsconfig.json index c029bece36..96bc483afb 100644 --- a/angular-sanitize/tsconfig.json +++ b/angular-sanitize/tsconfig.json @@ -14,6 +14,6 @@ ], "types": [], "noEmit": true, - "forceConsistentCasingInFileNames": false + "forceConsistentCasingInFileNames": true } } \ No newline at end of file diff --git a/angular-ui-router-default/angular-ui-router-default-tests.ts b/angular-ui-router-default/angular-ui-router-default-tests.ts index 2b6bfbe61e..95229f68cd 100644 --- a/angular-ui-router-default/angular-ui-router-default-tests.ts +++ b/angular-ui-router-default/angular-ui-router-default-tests.ts @@ -1,10 +1,11 @@ -/// +import * as angular from "angular"; +import { ui } from "angular"; angular.module("test", [ "ui.router", "ui.router.default" ]) - .config(function($stateProvider: angular.ui.IStateProvider) { + .config(function($stateProvider: ui.IStateProvider) { $stateProvider .state('concrete', { // no abstract or default diff --git a/angular-ui-router-default/angular-ui-router-default.d.ts b/angular-ui-router-default/angular-ui-router-default.d.ts deleted file mode 100644 index 9d102681cf..0000000000 --- a/angular-ui-router-default/angular-ui-router-default.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -// Type definitions for angular-ui-router-default 0.5+ -// Project: https://github.com/nonplus/angular-ui-router-default -// Definitions by: Stepan Riha -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -/// - -declare namespace angular.ui { - export type StateDefaultSpecifier = string - | ((...args: any[]) => string) - | ((...args: any[]) => ng.IPromise) - | (string | ((...args: any[]) => string))[] - | (string | ((...args: any[]) => ng.IPromise))[]; - interface IState { - default?: StateDefaultSpecifier - } -} diff --git a/angular-ui-router-default/index.d.ts b/angular-ui-router-default/index.d.ts new file mode 100644 index 0000000000..76e4db23e0 --- /dev/null +++ b/angular-ui-router-default/index.d.ts @@ -0,0 +1,19 @@ +// Type definitions for angular-ui-router-default 0.5+ +// Project: https://github.com/nonplus/angular-ui-router-default +// Definitions by: Stepan Riha +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +import * as aur from "angular-ui-router"; + +declare module "angular" { + namespace ui { + export type StateDefaultSpecifier = string + | ((...args: any[]) => string) + | ((...args: any[]) => ng.IPromise) + | (string | ((...args: any[]) => string))[] + | (string | ((...args: any[]) => ng.IPromise))[]; + interface IState { + default?: StateDefaultSpecifier + } + } +} diff --git a/angular-ui-router-default/tsconfig.json b/angular-ui-router-default/tsconfig.json new file mode 100644 index 0000000000..b4a462b3c9 --- /dev/null +++ b/angular-ui-router-default/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "angular-ui-router-default-tests.ts" + ] +} \ No newline at end of file diff --git a/angular-ui-router-uib-modal/angular-ui-router-uib-modal-tests.ts b/angular-ui-router-uib-modal/angular-ui-router-uib-modal-tests.ts index 3f14b2a40f..2ca6e18806 100644 --- a/angular-ui-router-uib-modal/angular-ui-router-uib-modal-tests.ts +++ b/angular-ui-router-uib-modal/angular-ui-router-uib-modal-tests.ts @@ -1,5 +1,3 @@ -/// - angular.module("test", [ "ui.bootstrap", "ui.router", diff --git a/angular-ui-router-uib-modal/angular-ui-router-uib-modal.d.ts b/angular-ui-router-uib-modal/index.d.ts similarity index 64% rename from angular-ui-router-uib-modal/angular-ui-router-uib-modal.d.ts rename to angular-ui-router-uib-modal/index.d.ts index 598fe964fe..29e963fc6e 100644 --- a/angular-ui-router-uib-modal/angular-ui-router-uib-modal.d.ts +++ b/angular-ui-router-uib-modal/index.d.ts @@ -3,10 +3,12 @@ // Definitions by: Stepan Riha // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -/// +import * as auir from "angular-ui-router"; -declare namespace angular.ui { - interface IState { - modal?: boolean | string[]; +declare module "angular" { + namespace ui { + interface IState { + modal?: boolean | string[]; + } } } diff --git a/angular-ui-router-uib-modal/tsconfig.json b/angular-ui-router-uib-modal/tsconfig.json new file mode 100644 index 0000000000..08dbd4d4cf --- /dev/null +++ b/angular-ui-router-uib-modal/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "angular-ui-router-uib-modal-tests.ts" + ] +} \ No newline at end of file diff --git a/angular-websocket/tsconfig.json b/angular-websocket/tsconfig.json index 7579a1591c..a340f7ffbd 100644 --- a/angular-websocket/tsconfig.json +++ b/angular-websocket/tsconfig.json @@ -14,6 +14,6 @@ ], "types": [], "noEmit": true, - "forceConsistentCasingInFileNames": false + "forceConsistentCasingInFileNames": true } } \ No newline at end of file diff --git a/angular-xeditable/tsconfig.json b/angular-xeditable/tsconfig.json index e9a9c10c51..e81407b730 100644 --- a/angular-xeditable/tsconfig.json +++ b/angular-xeditable/tsconfig.json @@ -14,6 +14,6 @@ ], "types": [], "noEmit": true, - "forceConsistentCasingInFileNames": false + "forceConsistentCasingInFileNames": true } } \ No newline at end of file diff --git a/angular/tsconfig.json b/angular/tsconfig.json index ea2099d486..e0d792766a 100644 --- a/angular/tsconfig.json +++ b/angular/tsconfig.json @@ -14,6 +14,6 @@ ], "types": [], "noEmit": true, - "forceConsistentCasingInFileNames": false + "forceConsistentCasingInFileNames": true } } \ No newline at end of file diff --git a/arbiter/Arbiter-tests.ts b/arbiter/arbiter-tests.ts similarity index 100% rename from arbiter/Arbiter-tests.ts rename to arbiter/arbiter-tests.ts diff --git a/async-polling/async-polling-tests.ts b/async-polling/async-polling-tests.ts index ec9e5200f2..82adc0299e 100644 --- a/async-polling/async-polling-tests.ts +++ b/async-polling/async-polling-tests.ts @@ -1,6 +1,4 @@ -/// - -import * as AsyncPolling from "async-polling"; +import AsyncPolling = require("async-polling"); // Tests based on examples in https://github.com/cGuille/async-polling#readme diff --git a/async-polling/async-polling.d.ts b/async-polling/async-polling.d.ts deleted file mode 100644 index 579d041e37..0000000000 --- a/async-polling/async-polling.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -// Type definitions for AsyncPolling -// Project: https://github.com/cGuille/async-polling -// Definitions by: Zlatko Andonovski -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -declare module "async-polling" { - module AsyncPolling { - export type EventName = "run"|"start"|"error"|"result"|"end"|"schedule"|"stop"; - } - - function AsyncPolling(pollingFunc: (end: (err?: Error, result?: Result) => any) => any, delay: number): { - run: () => any; - stop: () => any; - on: (eventName: AsyncPolling.EventName, listener: Function) => any; - } - - export = AsyncPolling; -} \ No newline at end of file diff --git a/async-polling/index.d.ts b/async-polling/index.d.ts new file mode 100644 index 0000000000..640c863874 --- /dev/null +++ b/async-polling/index.d.ts @@ -0,0 +1,16 @@ +// Type definitions for AsyncPolling +// Project: https://github.com/cGuille/async-polling +// Definitions by: Zlatko Andonovski +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +declare namespace AsyncPolling { + export type EventName = "run"|"start"|"error"|"result"|"end"|"schedule"|"stop"; +} + +declare function AsyncPolling(pollingFunc: (end: (err?: Error, result?: Result) => any) => any, delay: number): { + run: () => any; + stop: () => any; + on: (eventName: AsyncPolling.EventName, listener: Function) => any; +} + +export = AsyncPolling; \ No newline at end of file diff --git a/async-polling/tsconfig.json b/async-polling/tsconfig.json new file mode 100644 index 0000000000..0611af7c76 --- /dev/null +++ b/async-polling/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": false, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "async-polling-tests.ts" + ] +} \ No newline at end of file diff --git a/awesomplete/awesomplete-tests.ts b/awesomplete/awesomplete-tests.ts index 8132ad4555..11abfdcba0 100644 --- a/awesomplete/awesomplete-tests.ts +++ b/awesomplete/awesomplete-tests.ts @@ -1,5 +1,3 @@ -/// - var input = document.getElementById("myinput"); new Awesomplete(input, {list: "#mylist"}); diff --git a/awesomplete/awesomplete.d.ts b/awesomplete/index.d.ts similarity index 100% rename from awesomplete/awesomplete.d.ts rename to awesomplete/index.d.ts diff --git a/awesomplete/tsconfig.json b/awesomplete/tsconfig.json new file mode 100644 index 0000000000..d76ee637ec --- /dev/null +++ b/awesomplete/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": false, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "awesomplete-tests.ts" + ] +} \ No newline at end of file diff --git a/aws-sdk/aws-sdk-tests.ts b/aws-sdk/aws-sdk-tests.ts index 7d3b7a5c2c..5188a3e725 100644 --- a/aws-sdk/aws-sdk-tests.ts +++ b/aws-sdk/aws-sdk-tests.ts @@ -381,3 +381,42 @@ dynamoDBDocClient.query( else console.log(data); // successful response } ); + +var kinesis = new AWS.Kinesis(); + +var putRecordParam = { + Data: new Buffer('...') || 'STRING_VALUE', /* required */ + PartitionKey: 'STRING_VALUE', /* required */ + StreamName: 'STRING_VALUE', /* required */ + ExplicitHashKey: 'STRING_VALUE', + SequenceNumberForOrdering: 'STRING_VALUE' +}; +kinesis.putRecord(putRecordParam, function(err, data) { + if (err) console.log(err, err.stack); // an error occurred + else console.log(data); // successful response +}); + +var putRecordParams = { + Records: [ /* required */ + { + Data: new Buffer('...') || 'STRING_VALUE', /* required */ + PartitionKey: 'STRING_VALUE', /* required */ + ExplicitHashKey: 'STRING_VALUE' + }, + /* more items */ + ], + StreamName: 'STRING_VALUE' /* required */ +}; +kinesis.putRecords(putRecordParams, function(err, data) { + if (err) console.log(err, err.stack); // an error occurred + else console.log(data); // successful response +}); + +var increaseStreamRetentionPeriodParams = { + RetentionPeriodHours: 0, /* required */ + StreamName: 'STRING_VALUE' /* required */ +}; +kinesis.increaseStreamRetentionPeriod(increaseStreamRetentionPeriodParams, function(err, data) { + if (err) console.log(err, err.stack); // an error occurred + else console.log(data); // successful response +}); \ No newline at end of file diff --git a/aws-sdk/index.d.ts b/aws-sdk/index.d.ts index 7d70edf939..031047490f 100644 --- a/aws-sdk/index.d.ts +++ b/aws-sdk/index.d.ts @@ -1,6 +1,6 @@ // Type definitions for aws-sdk // Project: https://github.com/aws/aws-sdk-js -// Definitions by: midknight41 +// Definitions by: midknight41 , Casper Skydt // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // Imported from: https://github.com/soywiz/typescript-node-definitions/aws-sdk.d.ts @@ -335,6 +335,56 @@ export declare class SNS { publish(request: Sns.PublishRequest, callback: (err: any, data: any) => void): void; } +export class Kinesis { + constructor(options?: any); + endpoint: Endpoint; + + putRecord(params: KINESIS.PutRecordParams, callback: (error: Error, data: KINESIS.PutRecordResult) => void): void; + putRecords(params: KINESIS.PutRecordsParams, callback: (error: Error, data: KINESIS.PutRecordsResult) => void): void; + increaseStreamRetentionPeriod(params: KINESIS.IncreaseStreamRetentionPeriodParams, callback: (error: Error, data: any) => void): void; + } + + export module KINESIS { + export interface Record { + Data: Buffer | string | Blob; + PartitionKey: string; + ExplicitHashKey?: string; + } + + export interface RecordResult { + SequenceNumber: string; + ShardId: string; + ErrorCode: string; + ErrorMessage: string; + } + + export interface PutRecordParams extends Record { + StreamName: string; + SequenceNumberForOrdering?: string; + } + + export interface PutRecordResult { + ShardId: string; + SequenceNumber: string; + } + + export interface PutRecordsParams { + StreamName: string; + Records: Record[]; + } + + export interface PutRecordsResult { + FailedRecordCount: number; + Records: RecordResult[] + } + + export interface IncreaseStreamRetentionPeriodParams { + RetentionPeriodHours: number; + StreamName: string; + } + } + + export declare class SWF { constructor(options?: any); endpoint: Endpoint; @@ -616,8 +666,8 @@ export module CloudFormation { ResourceTypes?: string[]; OnFailure?: string[]; // cannot specify both DisableRollback and OnFailure // DO_NOTHING | ROLLBACK | DELETE - StackPolicyBody?: string[]; // cannot specify both StackPolicyBody and StackPolicyURL - StackPolicyURL?: string[]; // cannot specify both StackPolicyBody and StackPolicyURL + StackPolicyBody?: string; // cannot specify both StackPolicyBody and StackPolicyURL + StackPolicyURL?: string; // cannot specify both StackPolicyBody and StackPolicyURL Tags?: CloudFormation.Tag[]; } diff --git a/aws-serverless-express/aws-serverless-express-tests.ts b/aws-serverless-express/aws-serverless-express-tests.ts index 6a0d7694d9..c46056ed25 100644 --- a/aws-serverless-express/aws-serverless-express-tests.ts +++ b/aws-serverless-express/aws-serverless-express-tests.ts @@ -1,5 +1,4 @@ -/// -/// +/// import * as awsServerlessExpress from 'aws-serverless-express'; import * as express from 'express'; diff --git a/aws-serverless-express/aws-serverless-express.d.ts b/aws-serverless-express/aws-serverless-express.d.ts deleted file mode 100644 index 50aa0e1a0b..0000000000 --- a/aws-serverless-express/aws-serverless-express.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -// Type definitions for aws-serverless-express -// Project: https://github.com/awslabs/aws-serverless-express -// Definitions by: Ben Speakman -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -/// -/// - -declare module 'aws-serverless-express' { - - import * as http from 'http'; - import * as lambda from 'aws-lambda'; - - export function createServer( - requestListener: (request: http.IncomingMessage, response: http.ServerResponse) => http.Server, - serverListenCallback?: () => any - ): http.Server; - - export function proxy( - server: http.Server, - event: any, - context: lambda.Context - ): void; -} diff --git a/aws-serverless-express/index.d.ts b/aws-serverless-express/index.d.ts new file mode 100644 index 0000000000..e4601e6ccd --- /dev/null +++ b/aws-serverless-express/index.d.ts @@ -0,0 +1,19 @@ +// Type definitions for aws-serverless-express +// Project: https://github.com/awslabs/aws-serverless-express +// Definitions by: Ben Speakman +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// +import * as http from 'http'; +import * as lambda from 'aws-lambda'; + +export function createServer( + requestListener: (request: http.IncomingMessage, response: http.ServerResponse) => http.Server, + serverListenCallback?: () => any +): http.Server; + +export function proxy( + server: http.Server, + event: any, + context: lambda.Context +): void; \ No newline at end of file diff --git a/aws-serverless-express/tsconfig.json b/aws-serverless-express/tsconfig.json new file mode 100644 index 0000000000..7b42b1f538 --- /dev/null +++ b/aws-serverless-express/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "aws-serverless-express-tests.ts" + ] +} \ No newline at end of file diff --git a/bases/bases-tests.ts b/bases/bases-tests.ts index 5414b18764..85aa71406e 100644 --- a/bases/bases-tests.ts +++ b/bases/bases-tests.ts @@ -1,10 +1,9 @@ -/// import * as bases from 'bases'; - -let bs16String: string = bases.toBase(200, 16); // => 'c8' -let bs62String: string = bases.toBase(99999, 62); // => 'q0T' -let customBaseString: string = bases.toAlphabet(300, 'aAbBcC'); // => 'Abba' - -let frombs16Int: number = bases.fromBase('c8', 16); // => 200 -let frombs62Int: number = bases.fromBase('q0T', 62); // => 99999 -let customBaseInt: number = bases.fromAlphabet('Abba', 'aAbBcC'); // => 300 + +let bs16String: string = bases.toBase(200, 16); // => 'c8' +let bs62String: string = bases.toBase(99999, 62); // => 'q0T' +let customBaseString: string = bases.toAlphabet(300, 'aAbBcC'); // => 'Abba' + +let frombs16Int: number = bases.fromBase('c8', 16); // => 200 +let frombs62Int: number = bases.fromBase('q0T', 62); // => 99999 +let customBaseInt: number = bases.fromAlphabet('Abba', 'aAbBcC'); // => 300 diff --git a/bases/bases.d.ts b/bases/bases.d.ts deleted file mode 100644 index 2e62cf685a..0000000000 --- a/bases/bases.d.ts +++ /dev/null @@ -1,22 +0,0 @@ -// Type definitions for bases 0.2.1 -// Project: https://github.com/aseemk/bases.js -// Definitions by: Hari Krishna -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -declare module "bases" { - export function toAlphabet(num: number, alphabet: string): string; - - export function fromAlphabet(str: string, alphabet: string): number; - - export function toBase(num: number, base: number): string; - - export function fromBase(str: string, base:number): number; - - export let KNOWN_ALPHABETS: any; - - export let NUMERALS: string; - - export let LETTERS_LOWERCASE: string; - - export let LETTERS_UPPERCASE: string; -} diff --git a/bases/index.d.ts b/bases/index.d.ts new file mode 100644 index 0000000000..2111daddf6 --- /dev/null +++ b/bases/index.d.ts @@ -0,0 +1,20 @@ +// Type definitions for bases 0.2.1 +// Project: https://github.com/aseemk/bases.js +// Definitions by: Hari Krishna +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export function toAlphabet(num: number, alphabet: string): string; + +export function fromAlphabet(str: string, alphabet: string): number; + +export function toBase(num: number, base: number): string; + +export function fromBase(str: string, base:number): number; + +export let KNOWN_ALPHABETS: any; + +export let NUMERALS: string; + +export let LETTERS_LOWERCASE: string; + +export let LETTERS_UPPERCASE: string; diff --git a/bases/tsconfig.json b/bases/tsconfig.json new file mode 100644 index 0000000000..a8df7c46d9 --- /dev/null +++ b/bases/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "bases-tests.ts" + ] +} \ No newline at end of file diff --git a/bind-ponyfill/bind-ponyfill-tests.ts b/bind-ponyfill/bind-ponyfill-tests.ts new file mode 100644 index 0000000000..8c5ba7ec05 --- /dev/null +++ b/bind-ponyfill/bind-ponyfill-tests.ts @@ -0,0 +1,8 @@ +import ponyBind = require('bind-ponyfill'); + +let boundFn: Function; + +boundFn = ponyBind(() => { console.log(this); }, 'Hello world!'); +boundFn = ponyBind((...args: Array) => { console.log(this, ...args); }, 'Hello world!', 'arg1'); +boundFn = ponyBind((...args: Array) => { console.log(this, ...args); }, 'Hello world!', 'arg1', 'arg2'); +boundFn = ponyBind((arg1: string, arg2: number) => { console.log(this, arg1, arg2); }, 'Hello world!', 'arg1', 2); \ No newline at end of file diff --git a/bind-ponyfill/index.d.ts b/bind-ponyfill/index.d.ts new file mode 100644 index 0000000000..8fb2227627 --- /dev/null +++ b/bind-ponyfill/index.d.ts @@ -0,0 +1,7 @@ +// Type definitions for bind-ponyfill 0.1.0 +// Project: https://www.npmjs.com/package/bind-ponyfill +// Definitions by: Steve Jenkins +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +declare function ponyBind(fn: Function, that: any, ...args: Array): Function; +export = ponyBind; \ No newline at end of file diff --git a/bind-ponyfill/tsconfig.json b/bind-ponyfill/tsconfig.json new file mode 100644 index 0000000000..44c1eca54a --- /dev/null +++ b/bind-ponyfill/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "bind-ponyfill-tests.ts" + ] +} diff --git a/bonjour/bonjour-tests.ts b/bonjour/bonjour-tests.ts index b97794b071..1ae8a218fe 100644 --- a/bonjour/bonjour-tests.ts +++ b/bonjour/bonjour-tests.ts @@ -1,4 +1,3 @@ -/// import * as bonjour from 'bonjour'; var bonjourOptions: bonjour.BonjourOptions; diff --git a/bonjour/bonjour.d.ts b/bonjour/bonjour.d.ts deleted file mode 100644 index 0ffd9f1171..0000000000 --- a/bonjour/bonjour.d.ts +++ /dev/null @@ -1,71 +0,0 @@ -// Type definitions for bonjour v3.5.0 -// Project: https://github.com/watson/bonjour -// Definitions by: Quentin Lampin -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -declare module "bonjour" { - export interface BonjourOptions { - multicast?: boolean; - interface?: string; - port?: number; - ip?: string; - ttl?: number; - loopback?: boolean; - reuseAddr?: boolean; - } - - export interface BrowserOptions { - type?: string; - subtypes?: string[]; - protocol?: string; - txt?: Object; - } - - export interface ServiceOptions { - name: string; - host?: string; - port: number; - type: string; - subtypes?: string[]; - protocol?: 'udp'|'tcp'; - txt?: Object; - } - - export interface Service { - name: string; - type: string; - subtypes: string[]; - protocol: string; - host: string; - port: number; - fqdn: string; - rawTxt: Object; - txt: Object; - published: boolean; - - stop: (cb: ()=>any) => void; - start: () => void; - } - - export class Bonjour { - - constructor(opts: BonjourOptions); - publish(options: ServiceOptions):Service; - unpublishAll(cb: ()=>any): void; - find(options:BrowserOptions, onUp: ()=>any): Browser; - findOne(options:any, cb: (service: Service)=>any): Browser; - destroy():void; - } - - export class Browser { - services: Service[]; - - start():void; - update():void; - stop():void; - } - - export function find(options: BrowserOptions, onUp?: ()=>any): Browser; - export function findOne(options: BrowserOptions): Browser; - -} diff --git a/bonjour/index.d.ts b/bonjour/index.d.ts new file mode 100644 index 0000000000..0eb5b584c0 --- /dev/null +++ b/bonjour/index.d.ts @@ -0,0 +1,68 @@ +// Type definitions for bonjour v3.5.0 +// Project: https://github.com/watson/bonjour +// Definitions by: Quentin Lampin +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export interface BonjourOptions { + multicast?: boolean; + interface?: string; + port?: number; + ip?: string; + ttl?: number; + loopback?: boolean; + reuseAddr?: boolean; +} + +export interface BrowserOptions { + type?: string; + subtypes?: string[]; + protocol?: string; + txt?: Object; +} + +export interface ServiceOptions { + name: string; + host?: string; + port: number; + type: string; + subtypes?: string[]; + protocol?: 'udp'|'tcp'; + txt?: Object; +} + +export interface Service { + name: string; + type: string; + subtypes: string[]; + protocol: string; + host: string; + port: number; + fqdn: string; + rawTxt: Object; + txt: Object; + published: boolean; + + stop: (cb: ()=>any) => void; + start: () => void; +} + +export class Bonjour { + + constructor(opts: BonjourOptions); + publish(options: ServiceOptions):Service; + unpublishAll(cb: ()=>any): void; + find(options:BrowserOptions, onUp: ()=>any): Browser; + findOne(options:any, cb: (service: Service)=>any): Browser; + destroy():void; +} + +export class Browser { + services: Service[]; + + start():void; + update():void; + stop():void; +} + +export function find(options: BrowserOptions, onUp?: ()=>any): Browser; +export function findOne(options: BrowserOptions): Browser; diff --git a/bonjour/tsconfig.json b/bonjour/tsconfig.json new file mode 100644 index 0000000000..07715bfe01 --- /dev/null +++ b/bonjour/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "bonjour-tests.ts" + ] +} \ No newline at end of file diff --git a/bootstrap-datepicker/index.d.ts b/bootstrap-datepicker/index.d.ts index 1f9fd065d2..a692b663bb 100644 --- a/bootstrap-datepicker/index.d.ts +++ b/bootstrap-datepicker/index.d.ts @@ -12,7 +12,7 @@ * “w” (week), “m” (month), and “y” (year). * * See online docs for more info: - * http://bootstrap-datepicker.readthedocs.org/en/release/options.html + * https://bootstrap-datepicker.readthedocs.io/en/latest/options.html */ interface DatepickerOptions { format?: string | DatepickerCustomFormatOptions; @@ -37,6 +37,11 @@ interface DatepickerOptions { orientation?: string; assumeNearbyYear?: any; viewMode?: string; + templates?: any; + zIndexOffset?: number; + showOnFocus?: boolean; + immediateUpdates?: boolean; + title?: string; } interface DatepickerCustomFormatOptions { diff --git a/bootstrap-table/bootstrap-table-tests.ts b/bootstrap-table/bootstrap-table-tests.ts new file mode 100644 index 0000000000..6336ba4f8d --- /dev/null +++ b/bootstrap-table/bootstrap-table-tests.ts @@ -0,0 +1 @@ +$().bootstrapTable({}); diff --git a/bootstrap-table/bootstrap-table.d.ts b/bootstrap-table/index.d.ts similarity index 87% rename from bootstrap-table/bootstrap-table.d.ts rename to bootstrap-table/index.d.ts index d0356dff84..5ed1b5e529 100644 --- a/bootstrap-table/bootstrap-table.d.ts +++ b/bootstrap-table/index.d.ts @@ -3,7 +3,7 @@ // Definitions by: Talat Baig // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -/// +/// interface JQuery { bootstrapTable(options?: any): JQuery; diff --git a/bootstrap-table/tsconfig.json b/bootstrap-table/tsconfig.json new file mode 100644 index 0000000000..ad183f608a --- /dev/null +++ b/bootstrap-table/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "bootstrap-table-tests.ts" + ] +} \ No newline at end of file diff --git a/browser-resolve/tsconfig.json b/browser-resolve/tsconfig.json index 937a2406b8..d708711572 100644 --- a/browser-resolve/tsconfig.json +++ b/browser-resolve/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { "module": "commonjs", - "target": "es5", + "target": "es6", "noImplicitAny": true, "strictNullChecks": false, "baseUrl": "../", diff --git a/bunyan/bunyan-tests.ts b/bunyan/bunyan-tests.ts index c609901b0a..06fce4b410 100644 --- a/bunyan/bunyan-tests.ts +++ b/bunyan/bunyan-tests.ts @@ -26,6 +26,7 @@ level = bunyan.resolveLevel(bunyan.FATAL); var options:bunyan.LoggerOptions = { name: 'test-logger', + serializers: bunyan.stdSerializers, streams: [{ type: 'stream', stream: process.stdout, diff --git a/bunyan/index.d.ts b/bunyan/index.d.ts index 79aa9e5f20..2983d8bb62 100644 --- a/bunyan/index.d.ts +++ b/bunyan/index.d.ts @@ -21,7 +21,7 @@ declare class Logger extends EventEmitter { levels(name: number | string, value: number | string): void; fields: any; - src:boolean; + src:boolean; trace(error: Error, format?: any, ...params: any[]): void; trace(buffer: Buffer, format?: any, ...params: any[]): void; @@ -54,7 +54,7 @@ interface LoggerOptions { streams?: Stream[]; level?: string | number; stream?: NodeJS.WritableStream; - serializers?: Serializers; + serializers?: Serializers | StdSerializers; src?: boolean; } diff --git a/bwip-js/bwip-js-tests.ts b/bwip-js/bwip-js-tests.ts index 71601f111a..29cc419d2c 100644 --- a/bwip-js/bwip-js-tests.ts +++ b/bwip-js/bwip-js-tests.ts @@ -1,7 +1,3 @@ -/// -/// -'use strict'; - import * as bwipjs from 'bwip-js'; import * as http from 'http'; import * as fs from 'fs'; @@ -13,7 +9,7 @@ bwipjs.loadFont('Inconsolata', 108, http.createServer(function(req, res) { // If the url does not begin /?bcid= then 404. Otherwise, we end up // returning 400 on requests like favicon.ico. - if (req.url.indexOf('/?bcid=') != 0) { + if (req.url!.indexOf('/?bcid=') != 0) { res.writeHead(404, { 'Content-Type':'text/plain' }); res.end('BWIPJS: Unknown request format.', 'utf8'); } else { diff --git a/bwip-js/bwip-js.d.ts b/bwip-js/bwip-js.d.ts deleted file mode 100644 index 0f40b5771e..0000000000 --- a/bwip-js/bwip-js.d.ts +++ /dev/null @@ -1,86 +0,0 @@ -// Type definitions for bwip-js 1.1.1 -// Project: https://github.com/metafloor/bwip-js -// Definitions by: TANAKA Koichi -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -/// - -declare module 'bwip-js' { - import {IncomingMessage as Request, ServerResponse as Response} from 'http'; - - module BwipJs { - export function loadFont(fontName:string, sizeMulti: number, fontFile: string): void; - export function toBuffer(opts: ToBufferOptions, callback:(err: string|Error, png: Buffer) => void): void; - interface ToBufferOptions { - bcid: string; - text: string; - - parse?: boolean; - parsefunc?: boolean; - - height?: number; - width?: number; - - scaleX?: number; - scaleY?: number; - scale?: number; - - rotate?: 'N'|'R'|'L'|'I'; - - paddingwidth?: number; - paddingheight?: number; - - monochrome?: boolean; - alttext?: boolean; - - includetext?: boolean; - textfont?: string; - textsize?: number; - textgaps?: number; - - textxalign?:'offleft'|'left'|'center'|'right'|'offright'|'justify'; - textyalign?:'below'|'center'|'above'; - textxoffset?: number; - textyoffset?: number; - - showborder?: boolean; - borderwidth?: number; - borderleft?: number; - borderright?: number; - bordertop?: number; - boraderbottom?: number; - - barcolor?: string; - backgroundcolor?: string; - bordercolor?: string; - textcolor?: string; - - addontextxoffset?: number; - addontextyoffset?: number; - addontextfont?: string; - addontextsize?: number; - - guardwhitespace?: boolean; - guardwidth?: number; - guardheight?: number; - guardleftpos?: number; - guardrightpos?: number; - guardleftypos?: number; - guardrightypos?: number; - - sizelimit?: number; - - includecheck?: boolean; - includecheckintext?: boolean; - - inkspread?: number; - inkspreadh?: number; - inkspreadv?: number; - } - } - - - function BwipJs(req: Request, res: Response, opts?:BwipJs.ToBufferOptions): void; - - export = BwipJs; -} diff --git a/bwip-js/index.d.ts b/bwip-js/index.d.ts new file mode 100644 index 0000000000..9c37fa6e44 --- /dev/null +++ b/bwip-js/index.d.ts @@ -0,0 +1,83 @@ +// Type definitions for bwip-js 1.1.1 +// Project: https://github.com/metafloor/bwip-js +// Definitions by: TANAKA Koichi +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +import {IncomingMessage as Request, ServerResponse as Response} from 'http'; + +declare namespace BwipJs { + export function loadFont(fontName:string, sizeMulti: number, fontFile: string): void; + export function toBuffer(opts: ToBufferOptions, callback:(err: string|Error, png: Buffer) => void): void; + interface ToBufferOptions { + bcid: string; + text: string; + + parse?: boolean; + parsefunc?: boolean; + + height?: number; + width?: number; + + scaleX?: number; + scaleY?: number; + scale?: number; + + rotate?: 'N'|'R'|'L'|'I'; + + paddingwidth?: number; + paddingheight?: number; + + monochrome?: boolean; + alttext?: boolean; + + includetext?: boolean; + textfont?: string; + textsize?: number; + textgaps?: number; + + textxalign?:'offleft'|'left'|'center'|'right'|'offright'|'justify'; + textyalign?:'below'|'center'|'above'; + textxoffset?: number; + textyoffset?: number; + + showborder?: boolean; + borderwidth?: number; + borderleft?: number; + borderright?: number; + bordertop?: number; + boraderbottom?: number; + + barcolor?: string; + backgroundcolor?: string; + bordercolor?: string; + textcolor?: string; + + addontextxoffset?: number; + addontextyoffset?: number; + addontextfont?: string; + addontextsize?: number; + + guardwhitespace?: boolean; + guardwidth?: number; + guardheight?: number; + guardleftpos?: number; + guardrightpos?: number; + guardleftypos?: number; + guardrightypos?: number; + + sizelimit?: number; + + includecheck?: boolean; + includecheckintext?: boolean; + + inkspread?: number; + inkspreadh?: number; + inkspreadv?: number; + } +} + +declare function BwipJs(req: Request, res: Response, opts?:BwipJs.ToBufferOptions): void; + +export = BwipJs; diff --git a/bwip-js/tsconfig.json b/bwip-js/tsconfig.json new file mode 100644 index 0000000000..33e3e21f35 --- /dev/null +++ b/bwip-js/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "bwip-js-tests.ts" + ] +} \ No newline at end of file diff --git a/camo/camo-tests.ts b/camo/camo-tests.ts index 31354dc945..6830133f8f 100644 --- a/camo/camo-tests.ts +++ b/camo/camo-tests.ts @@ -1,4 +1,3 @@ - import { connect, Document as CamoDocument, @@ -16,7 +15,7 @@ connect("mongodb://user:password@localhost:27017/database?authSource=admin").the dateCreated?: Date; } - class User extends CamoDocument { + class User extends CamoDocument { private name: SchemaTypeExtended = String; private password: SchemaTypeExtended = String; private friends: SchemaTypeExtended = [String]; diff --git a/camo/index.d.ts b/camo/index.d.ts index 168765f136..325a1c3b95 100644 --- a/camo/index.d.ts +++ b/camo/index.d.ts @@ -1,137 +1,322 @@ -// Type definitions for camo v0.11.4 +// Type definitions for camo v0.12.2 // Project: https://github.com/scottwrobinson/camo // Definitions by: Lucas Matías Ciruzzi // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +declare module "camo" { + /** + * Connect function + * + * @export + * @param {string} uri Connection URI + * @returns {Promise} + */ + export function connect (uri: string): Promise; -type TypeOrArray = Type | Type[]; + type TypeOrArrayOfType = Type | Type[]; -/** - * Supported type constructors for document properties - */ -export type SchemaTypeConstructor = - TypeOrArray | - TypeOrArray | - TypeOrArray | - TypeOrArray | - TypeOrArray | - TypeOrArray; + /** + * Supported type constructors for document properties + */ + export type SchemaTypeConstructor = + TypeOrArrayOfType | + TypeOrArrayOfType | + TypeOrArrayOfType | + TypeOrArrayOfType | + TypeOrArrayOfType | + TypeOrArrayOfType | + TypeOrArrayOfType; -/** - * Supported types for document properties - */ -export type SchemaType = TypeOrArray; + /** + * Supported types for document properties + */ + export type SchemaType = TypeOrArrayOfType; + + /** + * Document property with options + */ + export interface SchemaTypeOptions { + /** + * Type of data + */ + type: SchemaTypeConstructor; + /** + * Default value + */ + default?: Type; + /** + * Min value (only with Number) + */ + min?: number; + /** + * Max value (only with Number) + */ + max?: number; + /** + * Posible options + */ + choices?: Type[]; + /** + * RegEx to match value + */ + match?: RegExp; + /** + * Validation function. + * + * @param {Type} value Value taken. + * @returns {boolean} true (validation ok) or false (validation wrong). + */ + validate?(value: Type): boolean; + /** + * Unique value (like ids) + */ + unique?: boolean; + /** + * Required field + */ + required?: boolean; + } + + /** + * Document property type or options + */ + export type SchemaTypeExtended = SchemaTypeConstructor | SchemaTypeOptions; + + /** + * Schema passed to Document.create() + */ + export interface DocumentSchema { + /** + * Index signature + */ + [property: string]: SchemaType; + /** + * Document id + */ + _id?: string; + } + + /** + * findOneAndUpdate method options. + * + * @interface findOneAndUpdateOptions + */ + export interface FindOneAndUpdateOptions { + /** + * Return a new document if one is not found with the given query. + * + * @type {boolean} + */ + upsert?: boolean; + } + + /** + * findOne method options. + * + * @interface FindOneOptions + */ + export interface FindOneOptions { + /** + * Find all or no references. + * Pass an array of field names to only populate the specified references. + * + * @type {(boolean | string[])} + */ + populate?: boolean | string[]; + } + + /** + * find method options. + * + * @interface FindOptions + */ + export interface FindOptions { + /** + * Find all or no references. + * Pass an array of field names to only populate the specified references. + * + * @type {(boolean | string[])} + */ + populate?: boolean | string[]; + /** + * Sort the documents by the given field(s). + * + * @type {TypeOrArrayOfType} + */ + sort?: TypeOrArrayOfType; + /** + * Limits the number of documents returned. + * + * @type {number} + */ + limit?: number; + /** + * Skips the given number of documents and returns the rest. + * + * @type {number} + */ + skip?: number; + } + + /** + * Camo document + */ + export class Document { + /** + * Index signature + */ + [property: string]: SchemaTypeExtended | string | Document | Function; + /** + * Static method to define the collection name. + * + * @protected + * @static + * @returns {string} The collection name. + */ + protected static collectionName(): string; + /** + * Sets the schema (to be used on the constructor). + * + * @protected + * @template Schema + * @param {Schema} schema + */ + protected schema(schema: Schema): void; + /** + * Creates a camo document instance. + * + * @static + * @template StaticSchema + * @param {StaticSchema} schema Base schema to create a document. + * @returns {DocumentInstance} A camo document instance. + */ + public static create(schema: StaticSchema): Document; + /** + * Saves the document instance to the database. + * + * @returns {Promise} + */ + public save(): Promise; + /** + * Return the first document found, even if multiple documents match the query. + * + * @static + * @template StaticSchema + * @param {*} query Find query. + * @param {FindOneOptions} options findOne method options. + * @returns {Promise} + */ + public static findOne(query: any, options?: FindOneOptions): Promise; + /** + * Return all documents matching the query. + * + * @static + * @template StaticSchema + * @param {*} query Find query. + * @param {FindOptions} options + * @returns {Promise} + */ + public static find(query: any, options?: FindOptions): Promise; + /** + * Find and update (or insert) a document in one atomic operation (atomic for MongoDB only). + * + * @static + * @template StaticSchema + * @param {*} query Find query. + * @param {Schema} values Values to set. + * @param {FindOneAndUpdateOptions} options findOneAndUpdate method options. + * @returns {Promise} + */ + public static findOneAndUpdate(query: any, values: StaticSchema, options?: FindOneAndUpdateOptions): Promise; + /** + * Removes documents from the database. + * Should only be used on an instantiated document with a valid id. + * + * @returns {Promise} Number of deleted documents. + */ + public delete(): Promise; + /** + * Removes the first document found, even if multiple documents match the query. + * + * @static + * @param {*} query Delete query. + * @returns {Promise} Number of deleted documents. + */ + public static deleteOne(query: any): Promise; + /** + * Removes all documents matching the query. + * + * @static + * @param {*} query Delete query. + * @returns {Promise} Number of deleted documents. + */ + public static deleteMany(query: any): Promise; + /** + * Find the first document and delete it. + * + * @static + * @param {*} query Delete query. + * @param {*} options Database Options for findOneAndDelete method. + * @returns {Promise} Number of deleted documents. + */ + public static findOneAndDelete(query: any, options?: any): Promise; + /** + * Number of matching documents without retrieving all the data. + * + * @static + * @param {*} query Count query. + * @returns {Promise} + */ + public static count(query: any): Promise; + /** + * pre-validate hook. + * + * @protected + * @returns {Promise} + */ + protected preValidate(): Promise; + /** + * post-validate hook. + * + * @protected + * @returns {Promise} + */ + protected postValidate(): Promise; + /** + * pre-save hook. + * + * @protected + * @returns {Promise} + */ + protected preSave(): Promise; + /** + * post-save hook. + * + * @protected + * @returns {Promise} + */ + protected postSave(): Promise; + /** + * pre-delete hook. + * + * @protected + * @returns {Promise} + */ + protected preDelete(): Promise; + /** + * post-delete hook. + * + * @protected + * @returns {Promise} + */ + protected postDelete(): Promise; + /** + * Serialized document to just the data, which includes nested and referenced data. + * + * @returns {*} + */ + public toJSON(): any; + } -/** - * Document property with options - */ -export interface SchemaTypeOptions { - /** - * Type of data - */ - type: SchemaTypeConstructor; - /** - * Default value - */ - default?: Type; - /** - * Min value (only with Number) - */ - min?: number; - /** - * Max value (only with Number) - */ - max?: number; - /** - * Posible options - */ - choices?: Type[]; - /** - * RegEx to match value - */ - match?: RegExp; - /** - * Validation function - * - * @param value Value taken - * @returns true (validation ok) or false (validation wrong) - */ - validate?(value: Type): boolean; - /** - * Unique value (like ids) - */ - unique?: boolean; - /** - * Required field - */ - required?: boolean; } - -/** - * Document property type or options - */ -export type SchemaTypeExtended = SchemaTypeConstructor | SchemaTypeOptions; - -/** - * Schema passed to Document.create() - */ -interface DocumentSchema { - /** - * Index signature - */ - [property: string]: SchemaType; - /** - * Document id - */ - _id?: string; -} - -/** - * Camo document instance - */ -declare class DocumentInstance { - public save(): Promise; - public loadOne(): Promise; - public loadMany(): Promise; - public delete(): Promise; - public deleteOne(): Promise; - public deleteMany(): Promise; - public loadOneAndDelete(): Promise; - public count(): Promise; - public preValidate(): Promise; - public postValidate(): Promise; - public preSave(): Promise; - public postSave(): Promise; - public preDelete(): Promise; - public postDelete(): Promise; -} - -/** - * Camo document - */ -export declare class Document { - /** - * Index signature - */ - [property: string]: SchemaTypeExtended | string | DocumentInstance; - /** - * Static method to define the collection name - * - * @returns The collection name - */ - static collectionName(): string; - /** - * Creates a camo document instance - * - * @returns A camo document instance - */ - static create(schema: Schema): DocumentInstance; -} - -/** - * Connect function - * - * @param uri Connection URI - */ -export declare function connect(uri: string): Promise; diff --git a/cassandra-driver/tsconfig.json b/cassandra-driver/tsconfig.json index 0dec57214f..10b7ab8253 100644 --- a/cassandra-driver/tsconfig.json +++ b/cassandra-driver/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { "module": "commonjs", - "target": "es5", + "target": "es6", "noImplicitAny": true, "strictNullChecks": false, "baseUrl": "../", @@ -14,6 +14,6 @@ }, "files": [ "index.d.ts", - "cassandra-driver.tests.ts" + "cassandra-driver-tests.ts" ] } \ No newline at end of file diff --git a/cbor/cbor-tests.ts b/cbor/cbor-tests.ts new file mode 100644 index 0000000000..4fb153956a --- /dev/null +++ b/cbor/cbor-tests.ts @@ -0,0 +1,65 @@ +/// +/// + +import cbor = require('cbor'); +import assert = require('assert'); +import fs = require('fs'); + +var encoded = cbor.encode(true); // returns +cbor.decodeFirst(encoded, function(error, obj) { + // error != null if there was an error + // obj is the unpacked object + assert.ok(obj === true); +}); + +// Use integers as keys? +var m = new Map(); +m.set(1, 2); +encoded = cbor.encode(m); // + +var d = new cbor.Decoder(); +d.on('data', function(obj: any) { + console.log(obj); +}); + +var s = fs.createReadStream('foo'); +s.pipe(d); + +var d2 = new cbor.Decoder({ input: '00', encoding: 'hex' }); +d.on('data', function(obj: any) { + console.log(obj); +}); + +try { + console.log(cbor.decodeFirstSync('02')); // 2 + console.log(cbor.decodeAllSync('0202')); // [2, 2] +} catch (e) { + // throws on invalid input +} + +class Bar { + three: number; + constructor() { + this.three = 3; + } +} +const enc = new cbor.Encoder() +enc.addSemanticType(Bar, (encoder, b) => { + encoder.pushAny(b.three); +}) + +class Foo { + one: number; + two: string; +} +const d3 = new cbor.Decoder({ + tags: { + 64000: (val) => { + // check val to make sure it's an Array as expected, etc. + const foo = new Foo(); + foo.one = val[0]; + foo.two = val[1]; + return foo; + } + } +}) diff --git a/cbor/index.d.ts b/cbor/index.d.ts new file mode 100644 index 0000000000..897b6f0629 --- /dev/null +++ b/cbor/index.d.ts @@ -0,0 +1,36 @@ +// Type definitions for cbor 2.0.2 +// Project: https://github.com/hildjj/node-cbor +// Definitions by: Jeffery Grajkowski +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +import stream = require("stream"); + +export function decode(input: Buffer | string): any; +export function decodeAll(input: Buffer | string, callback: (error: any, objs: any[]) => void): void; +export function decodeAllSync(input: Buffer | string): any[]; +export function decodeFirst(input: Buffer | string, callback: (error: any, obj: any) => void): void; +export function decodeFirstSync(input: Buffer | string): any; +export function encode(input: any): Buffer; + +export class Decoder extends stream.Transform { + constructor(params?: { + input?: Buffer | string; + encoding?: string; + tags?: {[tag: number]: (val: any[]) => any} + }); +} + +export class Encoder extends stream.Transform { + constructor(); + addSemanticType(type: new (...args: any[]) => T, encodeFunction: (encoder: Encoder, t: T) => void): void; + pushAny(input: any): void; +} + +export namespace leveldb { + export function decode(input: Buffer | string): any[]; + export function encode(input: any): Buffer; + export const buffer: boolean; + export const name: string; +} diff --git a/cbor/tsconfig.json b/cbor/tsconfig.json new file mode 100644 index 0000000000..79e9a54ef0 --- /dev/null +++ b/cbor/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "cbor-tests.ts" + ] +} diff --git a/chai-spies/chai-spies-tests.ts b/chai-spies/chai-spies-tests.ts new file mode 100644 index 0000000000..7ac0610e4d --- /dev/null +++ b/chai-spies/chai-spies-tests.ts @@ -0,0 +1,135 @@ +/// +/// + +import * as chai from 'chai'; +import * as spies from 'chai-spies'; +import * as Mocha from 'mocha'; + +function original(): void { + // do something cool +} + +let ee = { + on(name: string, fn: () => void) { + } +}; + +let spiedFn = chai.spy(original); + +// then use in place of original +ee.on('some event', spiedFn); + +// or use without original +let spy_again = chai.spy(); +ee.on('some other event', spy_again); + +// or you can track an object's method +let array = [ 1, 2, 3 ]; +chai.spy.on(array, 'push'); + +// or you can track multiple object's methods +chai.spy.on(array, 'push', 'pop'); + +array.push(5); + +// and you can reset the object calls +// array.push.reset(); + +// or you can create spy object +let object = chai.spy.object([ 'push', 'pop' ]); +object.push(5); + +// or you create spy which returns static value +spiedFn = chai.spy.returns(true); + +spiedFn(); // true + + +let should = chai.should() + , expect = chai.expect; + +const spy = chai.spy(); + +// .spy + +expect(spy).to.be.spy; +spy.should.be.spy; + +// .called + +expect(spy).to.have.been.called(); +spy.should.have.been.called(); + +// .with +const spyStringArg = chai.spy((arg: string) => arg); +spyStringArg('foo'); +expect(spyStringArg).to.have.been.called.with('foo'); +spyStringArg.should.have.been.called.with('foo'); + +const spyTwoStringArgsAndOneNumber = chai.spy((arg1: string, arg2: string, arg3: number) => arg3); +spyTwoStringArgsAndOneNumber('foo', 'bar', 1); +expect(spyTwoStringArgsAndOneNumber).to.have.been.called.with('bar', 'foo'); +spyTwoStringArgsAndOneNumber.should.have.been.called.with('bar', 'foo'); + +// .with.exactly +const spyTwoStringArgs = chai.spy((arg1: string, arg2: string) => arg1); +spyTwoStringArgs('', ''); +spyTwoStringArgs('foo', 'bar'); +expect(spyTwoStringArgs).to.have.been.called.with.exactly('foo', 'bar'); +spyTwoStringArgs.should.have.been.called.with.exactly('foo', 'bar'); + +// .always.with +const spyThreeAnyArgs = chai.spy((arg1: any, arg2: any, arg3: any) => arg1); +spyThreeAnyArgs('foo', null, null); +spyThreeAnyArgs('foo', 'bar', null); +spyThreeAnyArgs(1, 2, 'foo'); +expect(spy).to.have.been.called.always.with('foo'); +spy.should.have.been.called.always.with('foo'); + +// .always.with.exactly +spyStringArg('foo'); +spyStringArg('foo'); +expect(spyStringArg).to.have.been.called.always.with.exactly('foo'); +spyStringArg.should.have.been.called.always.with.exactly('foo'); + +// .once +expect(spy).to.have.been.called.once; +expect(spy).to.not.have.been.called.once; +spy.should.have.been.called.once; +spy.should.not.have.been.called.once; + +// .twice +expect(spy).to.have.been.called.twice; +expect(spy).to.not.have.been.called.twice; +spy.should.have.been.called.twice; +spy.should.not.have.been.called.twice; + +// .exactly(n) +expect(spy).to.have.been.called.exactly(3); +expect(spy).to.not.have.been.called.exactly(3); +spy.should.have.been.called.exactly(3); +spy.should.not.have.been.called.exactly(3); + +// .min(n) / .at.least(n) +expect(spy).to.have.been.called.min(3); +expect(spy).to.not.have.been.called.at.least(3); +spy.should.have.been.called.at.least(3); +spy.should.not.have.been.called.min(3); + +// .max(n) / .at.most(n) +expect(spy).to.have.been.called.max(3); +expect(spy).to.not.have.been.called.at.most(3); +spy.should.have.been.called.at.most(3); +spy.should.not.have.been.called.max(3); + +// .above(n) / .gt(n) +expect(spy).to.have.been.called.above(3); +expect(spy).to.not.have.been.called.gt(3); +spy.should.have.been.called.gt(3); +spy.should.not.have.been.called.above(3); + +// .below(n) / .lt(n) +expect(spy).to.have.been.called.below(3); +expect(spy).to.not.have.been.called.lt(3); +spy.should.have.been.called.lt(3); +spy.should.not.have.been.called.below(3); \ No newline at end of file diff --git a/chai-spies/index.d.ts b/chai-spies/index.d.ts new file mode 100644 index 0000000000..ffed6e594b --- /dev/null +++ b/chai-spies/index.d.ts @@ -0,0 +1,411 @@ +// Type definitions for chai-spies +// Project: https://github.com/chaijs/chai-spies +// Definitions by: Ilya Kuznetsov +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +declare namespace Chai { + interface ChaiStatic { + spy: ChaiSpies.Spy; + } + + interface Assertion { + /** + * ####.spy + * Asserts that object is a spy. + * ```ts + * expect(spy).to.be.spy; + * spy.should.be.spy; + * ``` + */ + spy: Assertion; + + /** + * ####.called + * Assert that a spy has been called. Negation passes through. + * ```ts + * expect(spy).to.have.been.called(); + * spy.should.have.been.called(); + * ``` + * Note that ```called``` can be used as a chainable method. + */ + called: ChaiSpies.Called; + } +} + +declare namespace ChaiSpies { + + interface Spy { + /** + * #### chai.spy (function) + * + * Wraps a function in a proxy function. All calls will pass through to the original function. + * ```ts + * function original() {} + * var spy = chai.spy(original) + * , e_spy = chai.spy(); + * ``` + * @param fn function to spy on. @default ```function () {}``` + * @returns function to actually call + */ + (): SpyFunc0Proxy; + (fn: SpyFunc0): SpyFunc0Proxy; + (fn: SpyFunc1): SpyFunc1Proxy; + (fn: SpyFunc2): SpyFunc2Proxy; + (fn: SpyFunc3): SpyFunc3Proxy; + (fn: SpyFunc4): SpyFunc4Proxy; + (fn: SpyFunc5): SpyFunc5Proxy; + (fn: SpyFunc6): SpyFunc6Proxy; + (fn: SpyFunc7): SpyFunc7Proxy; + (fn: SpyFunc8): SpyFunc8Proxy; + (fn: SpyFunc9): SpyFunc9Proxy; + (fn: SpyFunc10): SpyFunc10Proxy; + (name: string, fn: SpyFunc0): SpyFunc0Proxy; + (name: string, fn: SpyFunc1): SpyFunc1Proxy; + (name: string, fn: SpyFunc2): SpyFunc2Proxy; + (name: string, fn: SpyFunc3): SpyFunc3Proxy; + (name: string, fn: SpyFunc4): SpyFunc4Proxy; + (name: string, fn: SpyFunc5): SpyFunc5Proxy; + (name: string, fn: SpyFunc6): SpyFunc6Proxy; + (name: string, fn: SpyFunc7): SpyFunc7Proxy; + (name: string, fn: SpyFunc8): SpyFunc8Proxy; + (name: string, fn: SpyFunc9): SpyFunc9Proxy; + (name: string, fn: SpyFunc10): SpyFunc10Proxy; + + /** + * #### chai.spy.on (function) + * + * Wraps an object method into spy. All calls will pass through to the original function. + * ```ts + * var spy = chai.spy.on(Array, 'isArray'); + * ``` + * @param {Object} object + * @param {String} method name to spy on + * @returns function to actually call + */ + on(object: Object, ...methodNames: string[]): any; + + /** + * #### chai.spy.object (function) + * + * Creates an object with spied methods. + * ```ts + * var object = chai.spy.object('Array', [ 'push', 'pop' ]); + * ``` + * @param {String} [name] object name + * @param {String[]|Object} method names or method definitions + * @returns object with spied methods + */ + object(name: string, methods: string[]): any; + object(methods: string[]): any; + object(name: string, methods: T): T; + object(methods: T): T; + + /** + * #### chai.spy.returns (function) + * + * Creates a spy which returns static value. + *```ts + * var method = chai.spy.returns(true); + *``` + * @param {*} value static value which is returned by spy + * @returns new spy function which returns static value + * @api public + */ + + returns(value: T): SpyFunc0Proxy; + } + + interface Called { + (): Chai.Assertion; + with: With; + always: Always; + + /** + * ####.once + * Assert that a spy has been called exactly once. + * ```ts + * expect(spy).to.have.been.called.once; + * expect(spy).to.not.have.been.called.once; + * spy.should.have.been.called.once; + * spy.should.not.have.been.called.once; + * ``` + */ + once: Chai.Assertion; + + /** + * ####.twice + * Assert that a spy has been called exactly twice. + * ```ts + * expect(spy).to.have.been.called.twice; + * expect(spy).to.not.have.been.called.twice; + * spy.should.have.been.called.twice; + * spy.should.not.have.been.called.twice; + * ``` + */ + twice: Chai.Assertion; + + /** + * ####.exactly(n) + * Assert that a spy has been called exactly ```n``` times. + * ```ts + * expect(spy).to.have.been.called.exactly(3); + * expect(spy).to.not.have.been.called.exactly(3); + * spy.should.have.been.called.exactly(3); + * spy.should.not.have.been.called.exactly(3); + * ``` + */ + exactly(n: number): Chai.Assertion; + + /** + * ####.min(n) / .at.least(n) + * Assert that a spy has been called minimum of ```n``` times. + * ```ts + * expect(spy).to.have.been.called.min(3); + * expect(spy).to.not.have.been.called.at.least(3); + * spy.should.have.been.called.at.least(3); + * spy.should.not.have.been.called.min(3); + * ``` + */ + min(n: number): Chai.Assertion; + + /** + * ####.max(n) / .at.most(n) + * Assert that a spy has been called maximum of ```n``` times. + * ```ts + * expect(spy).to.have.been.called.max(3); + * expect(spy).to.not.have.been.called.at.most(3); + * spy.should.have.been.called.at.most(3); + * spy.should.not.have.been.called.max(3); + * ``` + */ + max(n: number): Chai.Assertion; + + at: At; + /** + * ####.above(n) / .gt(n) + * Assert that a spy has been called more than ```n``` times. + * ```ts + * expect(spy).to.have.been.called.above(3); + * spy.should.not.have.been.called.above(3); + * ``` + */ + above(n: number): Chai.Assertion; + + /** + * ####.above(n) / .gt(n) + * Assert that a spy has been called more than ```n``` times. + * ```ts + * expect(spy).to.have.been.called.gt(3); + * spy.should.not.have.been.called.gt(3); + * ``` + */ + gt(n: number): Chai.Assertion; + + /** + * ####.below(n) / .lt(n) + * Assert that a spy has been called fewer than ```n``` times. + * ```ts + * expect(spy).to.have.been.called.below(3); + * spy.should.not.have.been.called.below(3); + * ``` + */ + below(n: number): Chai.Assertion; + + /** + * ####.below(n) / .lt(n) + * Assert that a spy has been called fewer than ```n``` times. + * ```ts + * expect(spy).to.have.been.called.lt(3); + * spy.should.not.have.been.called.lt(3); + * ``` + */ + lt(n: number): Chai.Assertion; + } + + interface With { + /** + * ####.with + * Assert that a spy has been called with a given argument at least once, even if more arguments were provided. + * ```ts + * spy('foo'); + * expect(spy).to.have.been.called.with('foo'); + * spy.should.have.been.called.with('foo'); + * ``` + * Will also pass for ```spy('foo', 'bar')``` and ```spy(); spy('foo')```. + * If used with multiple arguments, assert that a spy has been called with all the given arguments at least once. + * ```ts + * spy('foo', 'bar', 1); + * expect(spy).to.have.been.called.with('bar', 'foo'); + * spy.should.have.been.called.with('bar', 'foo'); + * ``` + */ + (a: any, b?: any, c?: any, d?: any, e?: any, f?: any, g?: any, h?: any, i?: any, j?: any): Chai.Assertion; + + /** + * ####.with.exactly + * Similar to .with, but will pass only if the list of arguments is exactly the same as the one provided. + * ```ts + * spy(); + * spy('foo', 'bar'); + * expect(spy).to.have.been.called.with.exactly('foo', 'bar'); + * spy.should.have.been.called.with.exactly('foo', 'bar'); + * ``` + * Will not pass for ```spy('foo')```, ```spy('bar')```, ```spy('bar'); spy('foo')```, ```spy('foo'); spy('bar')```, ```spy('bar', 'foo')``` or ```spy('foo', 'bar', 1)```. + * Can be used for calls with a single argument too. + */ + + exactly(a?: any, b?: any, c?: any, d?: any, e?: any, f?: any, g?: any, h?: any, i?: any, j?: any): Chai.Assertion; + } + + interface Always { + with: AlwaysWith; + } + + interface AlwaysWith { + /** + * ####.always.with + * Assert that every time the spy has been called the argument list contained the given arguments. + * ```ts + * spy('foo'); + * spy('foo', 'bar'); + * spy(1, 2, 'foo'); + * expect(spy).to.have.been.called.always.with('foo'); + * spy.should.have.been.called.always.with('foo'); + * ``` + */ + (a: any, b?: any, c?: any, d?: any, e?: any, f?: any, g?: any, h?: any, i?: any, j?: any): Chai.Assertion; + + /** + * ####.always.with.exactly + * Assert that the spy has never been called with a different list of arguments than the one provided. + * ```ts + * spy('foo'); + * spy('foo'); + * expect(spy).to.have.been.called.always.with.exactly('foo'); + * spy.should.have.been.called.always.with.exactly('foo'); + * ``` + */ + exactly(a?: any, b?: any, c?: any, d?: any, e?: any, f?: any, g?: any, h?: any, i?: any, j?: any): Chai.Assertion; + } + + interface At { + /** + * ####.min(n) / .at.least(n) + * Assert that a spy has been called minimum of ```n``` times. + * ```ts + * expect(spy).to.have.been.called.min(3); + * expect(spy).to.not.have.been.called.at.least(3); + * spy.should.have.been.called.at.least(3); + * spy.should.not.have.been.called.min(3); + * ``` + */ + least(n: number): Chai.Assertion; + + /** + * ####.max(n) / .at.most(n) + * Assert that a spy has been called maximum of ```n``` times. + * ```ts + * expect(spy).to.have.been.called.max(3); + * expect(spy).to.not.have.been.called.at.most(3); + * spy.should.have.been.called.at.most(3); + * spy.should.not.have.been.called.max(3); + * ``` + */ + most(n: number): Chai.Assertion; + } + + interface Resetable { + /** + * #### proxy.reset (function) + * + * Resets __spy object parameters for instantiation and reuse + * @returns proxy spy object + */ + reset(): this; + } + + interface SpyFunc0 { + (): R; + } + + interface SpyFunc1 { + (a: A1): R; + } + + interface SpyFunc2 { + (a: A1, b: A2): R; + } + + interface SpyFunc3 { + (a: A1, b: A2, c: A3): R; + } + + interface SpyFunc4 { + (a: A1, b: A2, c: A3, d: A4): R; + } + + interface SpyFunc5 { + (a: A1, b: A2, c: A3, d: A4, e: A5): R; + } + + interface SpyFunc6 { + (a: A1, b: A2, c: A3, d: A4, e: A5, f: A6): R; + } + + interface SpyFunc7 { + (a: A1, b: A2, c: A3, d: A4, e: A5, f: A6, g: A7): R; + } + + interface SpyFunc8 { + (a: A1, b: A2, c: A3, d: A4, e: A5, f: A6, g: A7, h: A8): R; + } + + interface SpyFunc9 { + (a: A1, b: A2, c: A3, d: A4, e: A5, f: A6, g: A7, h: A8, i: A9): R; + } + + interface SpyFunc10 { + (a: A1, b: A2, c: A3, d: A4, e: A5, f: A6, g: A7, h: A8, i: A9, j: A10): R; + } + + interface SpyFunc0Proxy extends SpyFunc0, Resetable { + } + + interface SpyFunc1Proxy extends SpyFunc1, Resetable { + } + + interface SpyFunc2Proxy extends SpyFunc2, Resetable { + } + + interface SpyFunc3Proxy extends SpyFunc3, Resetable { + } + + interface SpyFunc4Proxy extends SpyFunc4, Resetable { + } + + interface SpyFunc5Proxy extends SpyFunc5, Resetable { + } + + interface SpyFunc6Proxy extends SpyFunc6, Resetable { + } + + interface SpyFunc7Proxy extends SpyFunc7, Resetable { + } + + interface SpyFunc8Proxy extends SpyFunc8, Resetable { + } + + interface SpyFunc9Proxy extends SpyFunc9, Resetable { + } + + interface SpyFunc10Proxy extends SpyFunc10, Resetable { + } +} + +declare var spies: ChaiSpies.Spy; + +declare module "chai-spies" { + export = spies; +} diff --git a/chai-spies/tsconfig.json b/chai-spies/tsconfig.json new file mode 100644 index 0000000000..91c115a7a5 --- /dev/null +++ b/chai-spies/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "chai-spies-tests.ts" + ] +} \ No newline at end of file diff --git a/chart.js/index.d.ts b/chart.js/index.d.ts index 9bf41eeaae..e9186035c7 100644 --- a/chart.js/index.d.ts +++ b/chart.js/index.d.ts @@ -392,7 +392,7 @@ interface RadialLinearScale { } declare class Chart { - constructor (context: CanvasRenderingContext2D, options: ChartConfiguration); + constructor (context: CanvasRenderingContext2D | HTMLCanvasElement, options: ChartConfiguration); config: ChartConfiguration; destroy: () => {}; update: (duration?: any, lazy?: any) => {}; diff --git a/chocolatechipjs/index.d.ts b/chocolatechipjs/index.d.ts index 9ac2ae8c52..f1e0701e39 100644 --- a/chocolatechipjs/index.d.ts +++ b/chocolatechipjs/index.d.ts @@ -1359,10 +1359,6 @@ interface fetch { }): Promise; } -interface XMLHttpRequest { - responseURL: string; -} - /** * Headers Interface. This defines the methods exposed by the Headers object. */ diff --git a/chunked-dc/chunked-dc-tests.ts b/chunked-dc/chunked-dc-tests.ts index 304d26e952..8e1ee9f00f 100644 --- a/chunked-dc/chunked-dc-tests.ts +++ b/chunked-dc/chunked-dc-tests.ts @@ -1,5 +1,3 @@ -/// - // Chunker let chunker = new Chunker(1337, Uint8Array.of(1,2,3), 2); diff --git a/chunked-dc/chunked-dc.tscparams b/chunked-dc/chunked-dc.tscparams deleted file mode 100644 index ed262d8039..0000000000 --- a/chunked-dc/chunked-dc.tscparams +++ /dev/null @@ -1 +0,0 @@ ---target es2015 --noImplicitAny diff --git a/chunked-dc/chunked-dc.d.ts b/chunked-dc/index.d.ts similarity index 100% rename from chunked-dc/chunked-dc.d.ts rename to chunked-dc/index.d.ts diff --git a/chunked-dc/tsconfig.json b/chunked-dc/tsconfig.json new file mode 100644 index 0000000000..d2791d64e6 --- /dev/null +++ b/chunked-dc/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "chunked-dc-tests.ts" + ] +} \ No newline at end of file diff --git a/clipboard-js/clipboard-js-tests.ts b/clipboard-js/clipboard-js-tests.ts index 93adfda3a5..ef1bfbdf5d 100644 --- a/clipboard-js/clipboard-js-tests.ts +++ b/clipboard-js/clipboard-js-tests.ts @@ -1,5 +1,3 @@ -/// - clipboard.copy("Hello World"); clipboard.copy(document.body).then(() => console.log("success")); diff --git a/clipboard-js/clipboard-js.d.ts b/clipboard-js/index.d.ts similarity index 88% rename from clipboard-js/clipboard-js.d.ts rename to clipboard-js/index.d.ts index fafc44ef36..8c71b8ed7e 100644 --- a/clipboard-js/clipboard-js.d.ts +++ b/clipboard-js/index.d.ts @@ -13,6 +13,5 @@ declare namespace clipboard { declare var clipboard: clipboard.IClipboardJsStatic; -declare module 'clipboard-js' { - export = clipboard; -} +export = clipboard; +export as namespace clipboard; diff --git a/clipboard-js/tsconfig.json b/clipboard-js/tsconfig.json new file mode 100644 index 0000000000..ffd1667f40 --- /dev/null +++ b/clipboard-js/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "clipboard-js-tests.ts" + ] +} \ No newline at end of file diff --git a/clipboard/clipboard-tests.ts b/clipboard/clipboard-tests.ts index c6c7b756cb..7521c651dd 100644 --- a/clipboard/clipboard-tests.ts +++ b/clipboard/clipboard-tests.ts @@ -1,4 +1,4 @@ - +import * as Clipboard from 'clipboard'; var cb1 = new Clipboard('.btn'); var cb2 = new Clipboard(document.getElementById('id'), { diff --git a/clipboard/index.d.ts b/clipboard/index.d.ts index d4b014e2f3..0757eb1208 100644 --- a/clipboard/index.d.ts +++ b/clipboard/index.d.ts @@ -3,54 +3,56 @@ // Definitions by: Andrei Kurosh // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -declare class Clipboard { - constructor(selector: (string | Element | NodeListOf), options?: ClipboardOptions); - - /** - * Subscribes to events that indicate the result of a copy/cut operation. - * @param type {String} Event type ('success' or 'error'). - * @param handler Callback function. - */ - on(type: "success", handler: (e: ClipboardEvent) => void): this; - on(type: "error", handler: (e: ClipboardEvent) => void): this; - on(type: string, handler: (e: ClipboardEvent) => void): this; - - /** - * Clears all event bindings. - */ - destroy(): void; -} - -interface ClipboardOptions { - /** - * Overwrites default command ('cut' or 'copy'). - * @param {Element} elem Current element - * @returns {String} Only 'cut' or 'copy'. - */ - action?: (elem: Element) => string; - - /** - * Overwrites default target input element. - * @param {Element} elem Current element - * @returns {Element} element to use. - */ - target?: (elem: Element) => Element; - - /** - * Returns the explicit text to copy. - * @param {Element} elem Current element - * @returns {String} Text to be copied. - */ - text?: (elem: Element) => string; -} - -interface ClipboardEvent { - action: string; - text: string; - trigger: Element; - clearSelection(): void; -} - declare module 'clipboard' { + class Clipboard { + constructor(selector: (string | Element | NodeListOf), options?: Clipboard.Options); + + /** + * Subscribes to events that indicate the result of a copy/cut operation. + * @param type {String} Event type ('success' or 'error'). + * @param handler Callback function. + */ + on(type: "success", handler: (e: Clipboard.Event) => void): this; + on(type: "error", handler: (e: Clipboard.Event) => void): this; + on(type: string, handler: (e: Clipboard.Event) => void): this; + + /** + * Clears all event bindings. + */ + destroy(): void; + } + + namespace Clipboard { + interface Options { + /** + * Overwrites default command ('cut' or 'copy'). + * @param {Element} elem Current element + * @returns {String} Only 'cut' or 'copy'. + */ + action?: (elem: Element) => string; + + /** + * Overwrites default target input element. + * @param {Element} elem Current element + * @returns {Element} element to use. + */ + target?: (elem: Element) => Element; + + /** + * Returns the explicit text to copy. + * @param {Element} elem Current element + * @returns {String} Text to be copied. + */ + text?: (elem: Element) => string; + } + + interface Event { + action: string; + text: string; + trigger: Element; + clearSelection(): void; + } + } + export = Clipboard; } diff --git a/code/code-tests.ts b/code/code-tests.ts new file mode 100644 index 0000000000..ea956c6c2c --- /dev/null +++ b/code/code-tests.ts @@ -0,0 +1,162 @@ +import { expect, settings, fail, count, incomplete, thrownAt } from "code"; + +expect(10).to.be.above(5); +expect("abc").to.be.a.string(); +expect([1, 2]).to.be.an.array(); +expect(20).to.be.at.least(20); +expect("abc").to.have.length(3); +expect("abc").to.be.a.string().and.contain(["a", "b"]); +expect(6).to.be.in.range(5, 6); + +expect(10).to.not.be.above(20); +expect([1, 2, 3]).to.shallow.include(3); +expect([1, 1, 2]).to.only.include([1, 2]); +expect([1, 2]).to.once.include([1, 2]); +expect([1, 2, 3]).to.part.include([1, 4]); + +expect(10, "Age").to.be.above(5); + +const func = function () { return arguments; }; +expect(func()).to.be.arguments(); + +expect([1, 2]).to.be.an.array(); + +expect(true).to.be.a.boolean(); + +expect(new Date()).to.be.a.date(); + +const err = new Error("Oops an error occured."); +expect(err).to.be.an.error(); +expect(err).to.be.an.error(Error); +expect(err).to.be.an.error("Oops an error occured."); +expect(err).to.be.an.error(Error, /occured/); + +expect(function () { }).to.be.a.function(); + +expect(123).to.be.a.number(); + +expect(/abc/).to.be.a.regexp(); + +expect("abc").to.be.a.string(); + +expect({ a: "1" }).to.be.an.object(); + +expect(true).to.be.true(); + +expect(false).to.be.false(); + +expect(null).to.be.null(); + +expect(undefined).to.be.undefined(); + +expect("abc").to.include("ab"); +expect("abc").to.only.include("abc"); +expect("aaa").to.only.include("a"); +expect("abc").to.once.include("b"); +expect("abc").to.include(["a", "c"]); +expect("abc").to.part.include(["a", "d"]); + +expect([1, 2, 3]).to.include(1); +expect([{ a: 1 }]).to.include({ a: 1 }); +expect([1, 2, 3]).to.include([1, 2]); +expect([{ a: 1 }]).to.include([{ a: 1 }]); +expect([1, 1, 2]).to.only.include([1, 2]); +expect([1, 2]).to.once.include([1, 2]); +expect([1, 2, 3]).to.part.include([1, 4]); +expect([[1], [2]]).to.include([[1]]); + +interface TestType { + a: number; + b?: number; + c?: number; + d?: number; +} + +interface TestType2 { + a: number[]; + b?: number[]; + c: number[]; +} + +expect({ a: 1, b: 2, c: 3 }).to.include("a"); +expect({ a: 1, b: 2, c: 3 }).to.include(["a", "c"]); +expect({ a: 1, b: 2, c: 3 }).to.only.include(["a", "b", "c"]); +expect({ a: 1, b: 2, c: 3 }).to.include({ a: 1 }); +expect({ a: 1, b: 2, c: 3 }).to.include({ a: 1 }); +expect({ a: 1, b: 2, c: 3 }).to.include({ a: 1, c: 3 }); +expect({ a: 1, b: 2, c: 3 }).to.part.include({ a: 1, d: 4 }); +expect({ a: 1, b: 2, c: 3 }).to.part.include({ a: 1, d: 4 }); +expect({ a: 1, b: 2, c: 3 }).to.only.include({ a: 1, b: 2, c: 3 }); +expect({ a: [1], b: [2], c: [3] }).to.include({ a: [1], c: [3] }); +expect({ a: [1], b: [2], c: [3] }).to.include({ a: [1], c: [3] }); + +expect("https://example.org/secure").to.startWith("https://"); + +expect("http://example.org/relative").to.endWith("/relative"); + +expect(4).to.exist(); +expect(null).to.not.exist(); + +expect("abc").to.be.empty(); + +expect("abcd").to.have.length(4); + +expect(5).to.equal(5); +expect({ a: 1 }).to.equal({ a: 1 }); + +expect(Object.create(null)).to.equal({}, { prototype: false }); + +expect(5).to.shallow.equal(5); +expect({ a: 1 }).to.shallow.equal({ a: 1 }); + +expect(10).to.be.above(5); + +expect(10).to.be.at.least(10); + +expect(10).to.be.below(20); + +expect(10).to.be.at.most(10); + +expect(10).to.be.within(10, 20); +expect(20).to.be.within(10, 20); + +expect(15).to.be.between(10, 20); + +expect(10).to.be.about(9, 1); + +expect(new Date()).to.be.an.instanceof(Date); + +expect("a5").to.match(/\w\d/); +expect(["abc", "def"]).to.match(/^[\w\d,]*$/); +expect(1).to.match(/^\d$/); + +expect("x").to.satisfy(value => value === "x"); + +class CustomError extends Error { + call: (message: string) => Error; +} + +const throws = function () { + + throw new CustomError("Oh no!"); +}; + +expect(throws).to.throw(CustomError, "Oh no!"); + +fail("This should not occur"); + +expect(count()).to.be.a.number(); + +expect(incomplete()).to.be.null().and.not.be.an.array(); + +const error = thrownAt(new Error("oops")); +expect(error).to.not.be.undefined(); +expect(error.column).to.exist(); + +const foo = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; +settings.truncateMessages = false; +expect(foo).to.equal([]); + +const bar = Object.create(null); +settings.comparePrototypes = false; +expect(bar).to.equal({}); diff --git a/code/index.d.ts b/code/index.d.ts new file mode 100644 index 0000000000..174215f5d8 --- /dev/null +++ b/code/index.d.ts @@ -0,0 +1,188 @@ +// Type definitions for code 4.0.0 +// Project: https://github.com/hapijs/code +// Definitions by: Prashant Tiwari +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/** Generates an assertion object. */ +export function expect(value: T | T[], prefix?: string): AssertionChain; +/** Makes the test fail with the given message. */ +export function fail(message: string): void; +/** Returns the total number of assertions created using the expect() method. */ +export function count(): number; +/** Returns an array of the locations where incomplete assertions were declared or null if no incomplete assertions found. */ +export function incomplete(): Array | null; +/** Returns the filename, line number, and column number of where the error was created. */ +export function thrownAt(error?: Error): CodeError; +/** Configure code. */ +export const settings: Settings; + +type AssertionChain = Assertion & Expectation; + +interface Assertion extends Grammar, Flags { } + +interface Expectation extends Types, Values { } + +interface Grammar { + /** Connecting word. */ + a: AssertionChain; + /** Connecting word. */ + an: AssertionChain; + /** Connecting word. */ + and: AssertionChain; + /** Connecting word. */ + at: AssertionChain; + /** Connecting word. */ + be: AssertionChain; + /** Connecting word. */ + have: AssertionChain; + /** Connecting word. */ + in: AssertionChain; + /** Connecting word. */ + to: AssertionChain; +} + +interface Flags { + /** Inverses the expected result of any assertion */ + not: AssertionChain; + /** + * Requires that inclusion matches appear only once in the provided value. + * Used by include(). + */ + once: AssertionChain; + /** + * Requires that only the provided elements appear in the provided value. + * Used by include(). + */ + only: AssertionChain; + /** + * Allows a partial match when asserting inclusion + * Used by include(). Defaults to false. + */ + part: AssertionChain; + /** + * Performs a comparison using strict equality (===). + * Code defaults to deep comparison. Used by equal() and include(). + */ + shallow: AssertionChain; +} + +interface Types { + /** Asserts that the reference value is an arguments object. */ + arguments(): AssertionChain; + /** Asserts that the reference value is an Array. */ + array(): AssertionChain; + /** Asserts that the reference value is a boolean. */ + boolean(): AssertionChain; + /** Asserts that the reference value is a Buffer. */ + buffer(): AssertionChain; + /** Asserts that the reference value is a Date. */ + date(): AssertionChain; + /** Asserts that the reference value is an error. */ + error(type?: Object, message?: string | RegExp): AssertionChain; + /** Asserts that the reference value is a function. */ + function(): AssertionChain; + /** Asserts that the reference value is a number. */ + number(): AssertionChain; + /** Asserts that the reference value is a RegExp. */ + regexp(): AssertionChain; + /** Asserts that the reference value is a string. */ + string(): AssertionChain; + /** Asserts that the reference value is an object (excluding array, buffer, or other native objects). */ + object(): AssertionChain; +} + +interface Values { + /** Asserts that the reference value is true. */ + true(): AssertionChain; + /** Asserts that the reference value is false. */ + false(): AssertionChain; + /** Asserts that the reference value is null. */ + null(): AssertionChain; + /** Asserts that the reference value is undefined. */ + undefined(): AssertionChain; + /** Asserts that the reference value (a string, array, or object) includes the provided values. */ + include(values: string | string[] | T | T[]): AssertionChain; + /** Asserts that the reference value (a string, array, or object) includes the provided values. */ + includes(values: string | string[] | T | T[]): AssertionChain; + /** Asserts that the reference value (a string, array, or object) includes the provided values. */ + contain(values: string | string[] | T | T[]): AssertionChain; + /** Asserts that the reference value (a string, array, or object) includes the provided values. */ + contains(values: string | string[] | T | T[]): AssertionChain; + /** Asserts that the reference value (a string) starts with the provided value. */ + startWith(value: string): AssertionChain; + /** Asserts that the reference value (a string) starts with the provided value. */ + startsWith(value: string): AssertionChain; + /** Asserts that the reference value (a string) ends with the provided value. */ + endWith(value: string): AssertionChain; + /** Asserts that the reference value (a string) ends with the provided value. */ + endsWith(value: string): AssertionChain; + /** Asserts that the reference value exists (not null or undefined). */ + exist(): AssertionChain; + /** Asserts that the reference value exists (not null or undefined). */ + exists(): AssertionChain; + /** Asserts that the reference value has a length property equal to zero or an object with no keys. */ + empty(): AssertionChain; + /** Asserts that the reference value has a length property matching the provided size or an object with the specified number of keys. */ + length(size: number): AssertionChain; + /** Asserts that the reference value equals the provided value. */ + equal(value: T, options?: any): AssertionChain; + /** Asserts that the reference value equals the provided value. */ + equals(value: T, options?: any): AssertionChain; + /** Asserts that the reference value is greater than (>) the provided value. */ + above(value: T): AssertionChain; + /** Asserts that the reference value is greater than (>) the provided value. */ + greaterThan(value: T): AssertionChain; + /** Asserts that the reference value is at least (>=) the provided value. */ + least(value: T): AssertionChain; + /** Asserts that the reference value is at least (>=) the provided value. */ + min(value: T): AssertionChain; + /** Asserts that the reference value is less than (<) the provided value. */ + below(value: T): AssertionChain; + /** Asserts that the reference value is less than (<) the provided value. */ + lessThan(value: T): AssertionChain; + /** Asserts that the reference value is at most (<=) the provided value. */ + most(value: T): AssertionChain; + /** Asserts that the reference value is at most (<=) the provided value. */ + max(value: T): AssertionChain; + /** Asserts that the reference value is within (from <= value <= to) the provided values. */ + within(from: T, to: T): AssertionChain; + /** Asserts that the reference value is within (from <= value <= to) the provided values. */ + range(from: T, to: T): AssertionChain; + /** Asserts that the reference value is between but not equal (from < value < to) the provided values. */ + between(from: T, to: T): AssertionChain; + /** Asserts that the reference value is about the provided value within a delta margin of difference. */ + about(value: number, delta: number): AssertionChain; + /** Asserts that the reference value has the provided instanceof value. */ + instanceof(type: Object): AssertionChain; + /** Asserts that the reference value has the provided instanceof value. */ + instanceOf(type: Object): AssertionChain; + /** Asserts that the reference value's toString() representation matches the provided regular expression. */ + match(regex: RegExp): AssertionChain; + /** Asserts that the reference value's toString() representation matches the provided regular expression. */ + matches(regex: RegExp): AssertionChain; + /** Asserts that the reference value satisfies the provided validator function. */ + satisfy(validator: (value: T) => boolean): AssertionChain; + /** Asserts that the reference value satisfies the provided validator function. */ + satisfies(validator: (value: T) => boolean): AssertionChain; + /** Asserts that the function reference value throws an exception when called. */ + throw(type: Object, message: string | RegExp): AssertionChain; +} + +interface Settings { + /** + * Truncate long assertion error messages for readability? + * Defaults to true. + */ + truncateMessages?: boolean; + /** + * Ignore object prototypes when doing a deep comparison? + * Defaults to false. + */ + comparePrototypes?: boolean; +} + +interface CodeError { + filename: string; + line: string; + column: string; +} diff --git a/code/tsconfig.json b/code/tsconfig.json new file mode 100644 index 0000000000..d0299c6345 --- /dev/null +++ b/code/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "code-tests.ts" + ] +} \ No newline at end of file diff --git a/codemirror/index.d.ts b/codemirror/index.d.ts index 708b32812e..83c45e93ab 100644 --- a/codemirror/index.d.ts +++ b/codemirror/index.d.ts @@ -393,8 +393,8 @@ declare namespace CodeMirror { /** Fired whenever a line is (re-)rendered to the DOM. Fired right after the DOM element is built, before it is added to the document. The handler may mess with the style of the resulting element, or add event handlers, but should not try to change the state of the editor. */ - on(eventName: 'renderLine', handler: (instance: CodeMirror.Editor, line: number, element: HTMLElement) => void ): void; - off(eventName: 'renderLine', handler: (instance: CodeMirror.Editor, line: number, element: HTMLElement) => void ): void; + on(eventName: 'renderLine', handler: (instance: CodeMirror.Editor, line: CodeMirror.LineHandle, element: HTMLElement) => void ): void; + off(eventName: 'renderLine', handler: (instance: CodeMirror.Editor, line: CodeMirror.LineHandle, element: HTMLElement) => void ): void; /** Expose the state object, so that the Editor.state.completionActive property is reachable*/ state: any; @@ -1240,4 +1240,3 @@ declare namespace CodeMirror { } } } - diff --git a/cookiejs/tsconfig.json b/cookiejs/tsconfig.json index 49aa749ae4..76d537c57c 100644 --- a/cookiejs/tsconfig.json +++ b/cookiejs/tsconfig.json @@ -5,11 +5,11 @@ "noImplicitAny": true, "strictNullChecks": false, "baseUrl": "../", - "typesSearchPaths": [ + "typeRoots": [ "../" ], + "types": [], "noEmit": true, - "forceConsistentCasingInFileNames": true, "forceConsistentCasingInFileNames": true }, "files": [ diff --git a/copy-webpack-plugin/copy-webpack-plugin-tests.ts b/copy-webpack-plugin/copy-webpack-plugin-tests.ts new file mode 100644 index 0000000000..022a734261 --- /dev/null +++ b/copy-webpack-plugin/copy-webpack-plugin-tests.ts @@ -0,0 +1,72 @@ +import { Configuration } from 'webpack' +import * as CopyWebpackPlugin from 'copy-webpack-plugin' + +const c: Configuration = { + plugins: [ + new CopyWebpackPlugin([ + // {output}/file.txt + { from: 'from/file.txt' }, + + // {output}/to/file.txt + { from: 'from/file.txt', to: 'to/file.txt' }, + + // {output}/to/directory/file.txt + { from: 'from/file.txt', to: 'to/directory' }, + + // Copy directory contents to {output}/ + { from: 'from/directory' }, + + // Copy directory contents to {output}/to/directory/ + { from: 'from/directory', to: 'to/directory' }, + + // Copy glob results to /absolute/path/ + { from: 'from/directory/**/*', to: '/absolute/path' }, + + // Copy glob results (with dot files) to /absolute/path/ + { + from: { + glob:'from/directory/**/*', + dot: true, + }, + to: '/absolute/path' + }, + + // Copy glob results, relative to context + { + context: 'from/directory', + from: '**/*', + to: '/absolute/path' + }, + + // {output}/file/without/extension + { + from: 'path/to/file.txt', + to: 'file/without/extension', + toType: 'file' + }, + + // {output}/directory/with/extension.ext/file.txt + { + from: 'path/to/file.txt', + to: 'directory/with/extension.ext', + toType: 'dir' + }, + ], { + ignore: [ + // Doesn't copy any files with a txt extension + '*.txt', + + // Doesn't copy any file, even if they start with a dot + '**/*', + + // Doesn't copy any file, except if they start with a dot + { glob: '**/*', dot: false } + ], + + // By default, we only copy modified files during + // a watch or webpack-dev-server build. Setting this + // to `true` copies all files. + copyUnmodified: true, + }) + ] +} diff --git a/copy-webpack-plugin/index.d.ts b/copy-webpack-plugin/index.d.ts new file mode 100644 index 0000000000..11a3a30dd9 --- /dev/null +++ b/copy-webpack-plugin/index.d.ts @@ -0,0 +1,59 @@ +// Type definitions for copy-webpack-plugin v4.0.0 +// Project: https://github.com/kevlened/copy-webpack-plugin +// Definitions by: flying-sheep +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +import { Plugin } from 'webpack' +import { IOptions } from 'minimatch' + +interface MiniMatchGlob extends IOptions { + glob: string +} + +interface CopyPattern { + /** File source path or glob */ + from: string | MiniMatchGlob + /** + * Path or webpack file-loader patterns. defaults: + * output root if `from` is file or dir. + * resolved glob path if `from` is glob. + */ + to?: string + /** + * How to interpret `to`. defaults: + * 'file' if to has extension or from is file. + * 'dir' if from is directory, to has no extension or ends in '/'. + * 'template' if to contains a template pattern. + */ + toType?: 'file' | 'dir' | 'template' + /** A path that determines how to interpret the `from` path. (default: `compiler.options.context`) */ + context?: string + /** + * Removes all directory references and only copies file names. + * + * If files have the same name, the result is non-deterministic. (default: `false`) + */ + flatten?: boolean + /** Additional globs to ignore for this pattern. (default: `[]`) */ + ignore?: Array + /** Function that modifies file contents before writing to webpack. (default: `(content, path) => content`) */ + transform?: (content: string, path: string) => string + /** Overwrites files already in `compilation.assets` (usually added by other plugins; default: `false`) */ + force?: boolean +} + +interface CopyWebpackPluginConfiguration { + /** Array of globs to ignore. (applied to from; default: `[]`) */ + ignore?: Array + /** Copies files, regardless of modification when using `watch` or `webpack-dev-server`. All files are copied on first build, regardless of this option. (default: `false`) */ + copyUnmodified?: boolean + /** Debug level. warning: only warnings, info/true: file location and read info, debug: very detailed debugging info. (default: `'warning'`) */ + debug?: 'warning' | 'info'|true | 'debug' +} + +interface CopyWebpackPlugin { + new (patterns?: CopyPattern[], options?: CopyWebpackPluginConfiguration): Plugin +} + +declare const copyWebpackPlugin: CopyWebpackPlugin +export = copyWebpackPlugin diff --git a/copy-webpack-plugin/tsconfig.json b/copy-webpack-plugin/tsconfig.json new file mode 100644 index 0000000000..1d8d63e8ac --- /dev/null +++ b/copy-webpack-plugin/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "copy-webpack-plugin-tests.ts" + ] +} diff --git a/cordova-plugin-battery-status/tsconfig.json b/cordova-plugin-battery-status/tsconfig.json index b781800488..0ba34b4eaf 100644 --- a/cordova-plugin-battery-status/tsconfig.json +++ b/cordova-plugin-battery-status/tsconfig.json @@ -4,7 +4,8 @@ "target": "es6", "noImplicitAny": false, "strictNullChecks": false, - "noEmit": true + "noEmit": true, + "forceConsistentCasingInFileNames": true }, "files": [ "index.d.ts", diff --git a/cordova-plugin-camera/tsconfig.json b/cordova-plugin-camera/tsconfig.json index fd82d2283c..4bcb17e701 100644 --- a/cordova-plugin-camera/tsconfig.json +++ b/cordova-plugin-camera/tsconfig.json @@ -4,7 +4,8 @@ "target": "es6", "noImplicitAny": false, "strictNullChecks": false, - "noEmit": true + "noEmit": true, + "forceConsistentCasingInFileNames": true }, "files": [ "index.d.ts", diff --git a/cordova-plugin-contacts/tsconfig.json b/cordova-plugin-contacts/tsconfig.json index 150cbbc01b..e7622317a1 100644 --- a/cordova-plugin-contacts/tsconfig.json +++ b/cordova-plugin-contacts/tsconfig.json @@ -4,7 +4,8 @@ "target": "es6", "noImplicitAny": false, "strictNullChecks": false, - "noEmit": true + "noEmit": true, + "forceConsistentCasingInFileNames": true }, "files": [ "index.d.ts", diff --git a/cordova-plugin-device-motion/tsconfig.json b/cordova-plugin-device-motion/tsconfig.json index 38d054da74..8fdea1bb00 100644 --- a/cordova-plugin-device-motion/tsconfig.json +++ b/cordova-plugin-device-motion/tsconfig.json @@ -4,7 +4,8 @@ "target": "es6", "noImplicitAny": false, "strictNullChecks": false, - "noEmit": true + "noEmit": true, + "forceConsistentCasingInFileNames": true }, "files": [ "index.d.ts", diff --git a/cordova-plugin-device/tsconfig.json b/cordova-plugin-device/tsconfig.json index 2382a3c48b..a7004ed713 100644 --- a/cordova-plugin-device/tsconfig.json +++ b/cordova-plugin-device/tsconfig.json @@ -4,7 +4,8 @@ "target": "es6", "noImplicitAny": false, "strictNullChecks": false, - "noEmit": true + "noEmit": true, + "forceConsistentCasingInFileNames": true }, "files": [ "index.d.ts", diff --git a/cordova-plugin-dialogs/tsconfig.json b/cordova-plugin-dialogs/tsconfig.json index 8a06fc75a3..66e676d30c 100644 --- a/cordova-plugin-dialogs/tsconfig.json +++ b/cordova-plugin-dialogs/tsconfig.json @@ -4,7 +4,8 @@ "target": "es6", "noImplicitAny": false, "strictNullChecks": false, - "noEmit": true + "noEmit": true, + "forceConsistentCasingInFileNames": true }, "files": [ "index.d.ts", diff --git a/cordova-plugin-file/tsconfig.json b/cordova-plugin-file/tsconfig.json index 62e93d809e..52446e1912 100644 --- a/cordova-plugin-file/tsconfig.json +++ b/cordova-plugin-file/tsconfig.json @@ -9,7 +9,8 @@ "../" ], "types": [], - "noEmit": true + "noEmit": true, + "forceConsistentCasingInFileNames": true }, "files": [ "index.d.ts", diff --git a/cordova-plugin-globalization/tsconfig.json b/cordova-plugin-globalization/tsconfig.json index c743a2a3ee..1f61009199 100644 --- a/cordova-plugin-globalization/tsconfig.json +++ b/cordova-plugin-globalization/tsconfig.json @@ -4,7 +4,8 @@ "target": "es6", "noImplicitAny": false, "strictNullChecks": false, - "noEmit": true + "noEmit": true, + "forceConsistentCasingInFileNames": true }, "files": [ "index.d.ts", diff --git a/cordova-plugin-inappbrowser/tsconfig.json b/cordova-plugin-inappbrowser/tsconfig.json index 171d99407e..d26ba0222f 100644 --- a/cordova-plugin-inappbrowser/tsconfig.json +++ b/cordova-plugin-inappbrowser/tsconfig.json @@ -4,7 +4,8 @@ "target": "es6", "noImplicitAny": false, "strictNullChecks": false, - "noEmit": true + "noEmit": true, + "forceConsistentCasingInFileNames": true }, "files": [ "index.d.ts", diff --git a/cordova-plugin-keyboard/tsconfig.json b/cordova-plugin-keyboard/tsconfig.json index 00a8c3f7c5..d2f26294bc 100644 --- a/cordova-plugin-keyboard/tsconfig.json +++ b/cordova-plugin-keyboard/tsconfig.json @@ -4,7 +4,8 @@ "target": "es6", "noImplicitAny": false, "strictNullChecks": false, - "noEmit": true + "noEmit": true, + "forceConsistentCasingInFileNames": true }, "files": [ "index.d.ts", diff --git a/cordova-plugin-media/tsconfig.json b/cordova-plugin-media/tsconfig.json index 7875dd04a0..d9fc3553b5 100644 --- a/cordova-plugin-media/tsconfig.json +++ b/cordova-plugin-media/tsconfig.json @@ -4,7 +4,8 @@ "target": "es6", "noImplicitAny": false, "strictNullChecks": false, - "noEmit": true + "noEmit": true, + "forceConsistentCasingInFileNames": true }, "files": [ "index.d.ts", diff --git a/cordova-plugin-splashscreen/tsconfig.json b/cordova-plugin-splashscreen/tsconfig.json index 032aed70bc..43e60dcd63 100644 --- a/cordova-plugin-splashscreen/tsconfig.json +++ b/cordova-plugin-splashscreen/tsconfig.json @@ -4,7 +4,8 @@ "target": "es6", "noImplicitAny": false, "strictNullChecks": false, - "noEmit": true + "noEmit": true, + "forceConsistentCasingInFileNames": true }, "files": [ "index.d.ts", diff --git a/cordova-plugin-statusbar/tsconfig.json b/cordova-plugin-statusbar/tsconfig.json index c464e89096..99f1b831a0 100644 --- a/cordova-plugin-statusbar/tsconfig.json +++ b/cordova-plugin-statusbar/tsconfig.json @@ -4,7 +4,8 @@ "target": "es6", "noImplicitAny": false, "strictNullChecks": false, - "noEmit": true + "noEmit": true, + "forceConsistentCasingInFileNames": true }, "files": [ "index.d.ts", diff --git a/cordova-plugin-vibration/tsconfig.json b/cordova-plugin-vibration/tsconfig.json index 8835563a00..65aa81393a 100644 --- a/cordova-plugin-vibration/tsconfig.json +++ b/cordova-plugin-vibration/tsconfig.json @@ -4,7 +4,8 @@ "target": "es6", "noImplicitAny": false, "strictNullChecks": false, - "noEmit": true + "noEmit": true, + "forceConsistentCasingInFileNames": true }, "files": [ "index.d.ts", diff --git a/cordova-plugin-websql/tsconfig.json b/cordova-plugin-websql/tsconfig.json index 36e7e41481..7bace33807 100644 --- a/cordova-plugin-websql/tsconfig.json +++ b/cordova-plugin-websql/tsconfig.json @@ -4,7 +4,8 @@ "target": "es6", "noImplicitAny": false, "strictNullChecks": false, - "noEmit": true + "noEmit": true, + "forceConsistentCasingInFileNames": true }, "files": [ "index.d.ts", diff --git a/cordova/tsconfig.json b/cordova/tsconfig.json index 417dadb8b6..afe8d4ba45 100644 --- a/cordova/tsconfig.json +++ b/cordova/tsconfig.json @@ -9,7 +9,8 @@ "../" ], "types": [], - "noEmit": true + "noEmit": true, + "forceConsistentCasingInFileNames": true }, "files": [ "index.d.ts", diff --git a/d3-geo/d3-geo-tests.ts b/d3-geo/d3-geo-tests.ts index 2e9f3e8719..b0c2adbb79 100644 --- a/d3-geo/d3-geo-tests.ts +++ b/d3-geo/d3-geo-tests.ts @@ -293,6 +293,12 @@ let multiString: GeoJSON.MultiLineString = graticuleGenerator(); let lines: GeoJSON.LineString[] = graticuleGenerator.lines(); let polygon2: GeoJSON.Polygon = graticuleGenerator.outline(); +// geoGraticule10() ===================================================== + +// test convenience function: + +multiString = d3Geo.geoGraticule10(); + // ---------------------------------------------------------------------- // Raw Projections // ---------------------------------------------------------------------- @@ -360,7 +366,7 @@ let clipAngle: number = constructedProjection.clipAngle(); constructedProjection = constructedProjection.clipAngle(null); constructedProjection = constructedProjection.clipAngle(45); -let clipExtent: [[number, number], [number, number]] = constructedProjection.clipExtent(); +let clipExtent: [[number, number], [number, number]] | null = constructedProjection.clipExtent(); constructedProjection = constructedProjection.clipExtent(null); constructedProjection = constructedProjection.clipExtent([[0, 0], [1, 1]]); @@ -416,14 +422,27 @@ conicConformal = conicConformal.fitSize([960, 500], samplePolygon); // inherited // GeoPath Generator // ---------------------------------------------------------------------- +let minimalRenderingContextMockUp: d3Geo.GeoContext = { + beginPath: () => { return; }, + moveTo: (x: number, y: number) => { return; }, + lineTo: (x: number, y: number) => { return; }, + arc: (x, y, radius, startAngle, endAngle) => { return; }, + closePath: () => { return; } +}; + // Create geoPath Generator ============================================= let geoPathCanvas: d3Geo.GeoPath; geoPathCanvas = d3Geo.geoPath(); +geoPathCanvas = d3Geo.geoPath(null); +geoPathCanvas = d3Geo.geoPath(null, null); +geoPathCanvas = d3Geo.geoPath(d3Geo.geoAzimuthalEqualArea()); +geoPathCanvas = d3Geo.geoPath(d3Geo.geoAzimuthalEqualArea(), minimalRenderingContextMockUp); let geoPathSVG: d3Geo.GeoPath>; geoPathSVG = d3Geo.geoPath>(); - +geoPathSVG = d3Geo.geoPath>(d3Geo.geoAzimuthalEqualArea()); +geoPathSVG = d3Geo.geoPath>(d3Geo.geoAzimuthalEqualArea(), null); // Configure geoPath Generator ========================================== // projection(...) ------------------------------------------------------ @@ -440,14 +459,8 @@ let geoPathConicProjection: d3Geo.GeoConicProjection = geoPathSVG.projection { return; }, - moveTo: (x: number, y: number) => { return; }, - lineTo: (x: number, y: number) => { return; }, - arc: (x, y, radius, startAngle, endAngle) => { return; }, - closePath: () => { return; } -}); +// minimal context interface (mockup) +geoPathCanvas = geoPathCanvas.context(minimalRenderingContextMockUp); let geoPathContext: d3Geo.GeoContext = geoPathCanvas.context(); @@ -461,13 +474,13 @@ let canvasContext: CanvasRenderingContext2D; geoPathCanvas = geoPathCanvas.context(canvasContext); canvasContext = geoPathCanvas.context(); -// canvasContext = geoPathSimple.context(); // fails without casting to CanvasRenderingContext2D -// canvasContext = geoPathSimple.context(); // fails as SampleProperties does not extend GeoCanvas +// canvasContext = geoPathCanvas.context(); // fails without casting to CanvasRenderingContext2D +// canvasContext = geoPathCanvas.context(); // fails as SampleProperties does not extend GeoCanvas // pointRadius(...) ------------------------------------------------------ geoPathCanvas = geoPathCanvas.pointRadius(5); -let geoPathCanvasPointRadiusAccessor: (this: any, d: d3Geo.GeoPermissibleObjects, ...args: any[]) => number = geoPathCanvas.pointRadius(); +let geoPathCanvasPointRadiusAccessor: ((this: any, d: d3Geo.GeoPermissibleObjects, ...args: any[]) => number) | number = geoPathCanvas.pointRadius(); geoPathSVG = geoPathSVG.pointRadius(function (datum) { let that: SVGPathElement = this; @@ -475,9 +488,9 @@ geoPathSVG = geoPathSVG.pointRadius(function (datum) { return datum.properties.name === 'Alabama' ? 10 : 15; }); -let geoPathSVGPointRadiusAccessor: (this: SVGPathElement, d: d3Geo.ExtendedFeature, ...args: any[]) => number = geoPathSVG.pointRadius(); -// let geoPathSVGPointRadiusAccessorWrong1: (this: SVGCircleElement, d: d3Geo.ExtendedFeature, ...args: any[]) => number = geoPathSVG.pointRadius(); // fails, mismatch in this context -// let geoPathSVGPointRadiusAccessorWrong2: (this: SVGPathElement, d: d3Geo.GeoGeometryObjects, ...args: any[]) => number = geoPathSVG.pointRadius(); // fails, mismatch in object datum type +let geoPathSVGPointRadiusAccessor: number | ((this: SVGPathElement, d: d3Geo.ExtendedFeature, ...args: any[]) => number) = geoPathSVG.pointRadius(); +// let geoPathSVGPointRadiusAccessorWrong1: number | ((this: SVGCircleElement, d: d3Geo.ExtendedFeature, ...args: any[]) => number) = geoPathSVG.pointRadius(); // fails, mismatch in this context +// let geoPathSVGPointRadiusAccessorWrong2: number | ((this: SVGPathElement, d: d3Geo.GeoGeometryObjects, ...args: any[]) => number) = geoPathSVG.pointRadius(); // fails, mismatch in object datum type // Use geoPath Generator ================================================ @@ -549,33 +562,8 @@ let svgCircleWrong: Selection; // svgPathWrong.attr('d', geoPathSVG); // fails, mismatch in datum type -// ---------------------------------------------------------------------- -// geoClipExtent -// ---------------------------------------------------------------------- -let geoClipExtent: d3Geo.GeoExtent = d3Geo.geoClipExtent(); -// extent(...) ---------------------------------------------------------- - -let extent2: [[number, number], [number, number]] = geoClipExtent.extent(); -geoClipExtent = geoClipExtent.extent([[0, 0], [960, 500]]); - -// stream(...) ---------------------------------------------------------- - -let stream: d3Geo.GeoStream; -stream = geoClipExtent.stream(stream); - -// ---------------------------------------------------------------------- -// Stream interface -// ---------------------------------------------------------------------- - -stream.point(0, 0); -stream.point(0, 0, 0); -stream.lineStart(); -stream.lineEnd(); -stream.polygonStart(); -stream.polygonEnd(); -stream.sphere(); // ---------------------------------------------------------------------- // Context interface @@ -611,6 +599,57 @@ customTransformProto = { let t: { stream: (s: d3Geo.GeoStream) => (CustomTranformProto & d3Geo.GeoStream) } = d3Geo.geoTransform(customTransformProto); + +// geoIdentity() ======================================================== + +let identityTransform: d3Geo.GeoIdentityTranform; + +identityTransform = d3Geo.geoIdentity(); + +scale = identityTransform.scale(); +identityTransform = identityTransform.scale(2); + +translate = identityTransform.translate(); +identityTransform = identityTransform.translate([10, 10]); + +clipExtent = identityTransform.clipExtent(); +identityTransform = identityTransform.clipExtent(null); +identityTransform = identityTransform.clipExtent([[0, 0], [100, 100]]); + +identityTransform = identityTransform.fitExtent([[0, 0], [960, 500]], samplePolygon); +identityTransform = identityTransform.fitExtent([[0, 0], [960, 500]], sampleSphere); +identityTransform = identityTransform.fitExtent([[0, 0], [960, 500]], sampleGeometryCollection); +identityTransform = identityTransform.fitExtent([[0, 0], [960, 500]], sampleExtendedGeometryCollection); +identityTransform = identityTransform.fitExtent([[0, 0], [960, 500]], sampleFeature); +identityTransform = identityTransform.fitExtent([[0, 0], [960, 500]], sampleExtendedFeature1); +identityTransform = identityTransform.fitExtent([[0, 0], [960, 500]], sampleExtendedFeature2); +identityTransform = identityTransform.fitExtent([[0, 0], [960, 500]], sampleFeatureCollection); +identityTransform = identityTransform.fitExtent([[0, 0], [960, 500]], sampleExtendedFeatureCollection); + +identityTransform = identityTransform.fitSize([960, 500], samplePolygon); +identityTransform = identityTransform.fitSize([960, 500], sampleSphere); +identityTransform = identityTransform.fitSize([960, 500], sampleGeometryCollection); +identityTransform = identityTransform.fitSize([960, 500], sampleExtendedGeometryCollection); +identityTransform = identityTransform.fitSize([960, 500], sampleFeature); +identityTransform = identityTransform.fitSize([960, 500], sampleExtendedFeature1); +identityTransform = identityTransform.fitSize([960, 500], sampleExtendedFeature2); +identityTransform = identityTransform.fitSize([960, 500], sampleFeatureCollection); +identityTransform = identityTransform.fitSize([960, 500], sampleExtendedFeatureCollection); + + +// ---------------------------------------------------------------------- +// Stream interface +// ---------------------------------------------------------------------- +let stream: d3Geo.GeoStream; + +stream.point(0, 0); +stream.point(0, 0, 0); +stream.lineStart(); +stream.lineEnd(); +stream.polygonStart(); +stream.polygonEnd(); +stream.sphere(); + // geoStream(...) ======================================================== d3Geo.geoStream(samplePolygon, stream); diff --git a/d3-geo/index.d.ts b/d3-geo/index.d.ts index 94e48bd810..f3222ce20e 100644 --- a/d3-geo/index.d.ts +++ b/d3-geo/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for D3JS d3-geo module v1.2.4 +// Type definitions for D3JS d3-geo module v1.3.1 // Project: https://github.com/d3/d3-geo/ // Definitions by: Hugues Stefanski , Tom Wanzek , Alex Ford , Boris Yankov // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped @@ -14,6 +14,9 @@ * beyond the GeoJSON geometries. */ export interface GeoSphere { + /** + * Sphere geometry type + */ type: 'Sphere'; } @@ -62,43 +65,165 @@ export type GeoPermissibleObjects = GeoGeometryObjects | ExtendedGeometryCollect // Spherical Math // ---------------------------------------------------------------------- -/**Returns the spherical area of the specified GeoJSON feature in steradians. */ +/** + * Returns the spherical area of the specified feature in steradians. + * (See also path.area, which computes the projected planar area.) + * + * @param feature A geographic feature supported by d3-geo (An extension of GeoJSON feature). + */ export function geoArea(feature: ExtendedFeature): number; +/** + * Returns the spherical area of the specified feature collection in steradians. + * (See also path.area, which computes the projected planar area.) + * + * @param feature A geographic feature collection supported by d3-geo (An extension of GeoJSON feature). + */ export function geoArea(feature: ExtendedFeatureCollection>): number; +/** + * Returns the spherical area of the specified GeoJson Geometry Object or GeoSphere object in steradians. + * (See also path.area, which computes the projected planar area.) + * + * @param feature A GeoJson Geometry Object or GeoSphere object supported by d3-geo (An extension of GeoJSON). + */ export function geoArea(feature: GeoGeometryObjects): number; +/** + * Returns the spherical area of the specified geographic geometry collection in steradians. + * (See also path.area, which computes the projected planar area.) + * + * @param feature A geographic geometry collection supported by d3-geo (An extension of GeoJSON geometry collection). + */ export function geoArea(feature: ExtendedGeometryCollection): number; -/**Returns the spherical bounding box for the specified GeoJSON feature. The bounding box is represented by a two-dimensional array: [[left, bottom], [right, top]], where left is the minimum longitude, bottom is the minimum latitude, right is maximum longitude, and top is the maximum latitude. All coordinates are given in degrees. */ +/** + * Returns the spherical bounding box for the specified feature. The bounding box is represented by a two-dimensional array: [[left, bottom], [right, top]], + * where left is the minimum longitude, bottom is the minimum latitude, right is maximum longitude, and top is the maximum latitude. All coordinates are given in degrees. + * (Note that in projected planar coordinates, the minimum latitude is typically the maximum y-value, and the maximum latitude is typically the minimum y-value.) + * + * @param feature A geographic feature supported by d3-geo (An extension of GeoJSON feature). + */ export function geoBounds(feature: ExtendedFeature): [[number, number], [number, number]]; +/** + * Returns the spherical bounding box for the specified feature collection. The bounding box is represented by a two-dimensional array: [[left, bottom], [right, top]], + * where left is the minimum longitude, bottom is the minimum latitude, right is maximum longitude, and top is the maximum latitude. All coordinates are given in degrees. + * (Note that in projected planar coordinates, the minimum latitude is typically the maximum y-value, and the maximum latitude is typically the minimum y-value.) + * + * @param feature A geographic feature collection supported by d3-geo (An extension of GeoJSON feature). + */ export function geoBounds(feature: ExtendedFeatureCollection>): [[number, number], [number, number]]; +/** + * Returns the spherical bounding box for the specified GeoJson Geometry Object or GeoSphere object. The bounding box is represented by a two-dimensional array: [[left, bottom], [right, top]], + * where left is the minimum longitude, bottom is the minimum latitude, right is maximum longitude, and top is the maximum latitude. All coordinates are given in degrees. + * (Note that in projected planar coordinates, the minimum latitude is typically the maximum y-value, and the maximum latitude is typically the minimum y-value.) + * + * @param feature A GeoJson Geometry Object or GeoSphere object supported by d3-geo (An extension of GeoJSON). + */ export function geoBounds(feature: GeoGeometryObjects): [[number, number], [number, number]]; +/** + * Returns the spherical bounding box for the specified geometry collection. The bounding box is represented by a two-dimensional array: [[left, bottom], [right, top]], + * where left is the minimum longitude, bottom is the minimum latitude, right is maximum longitude, and top is the maximum latitude. All coordinates are given in degrees. + * (Note that in projected planar coordinates, the minimum latitude is typically the maximum y-value, and the maximum latitude is typically the minimum y-value.) + * + * @param feature A geographic geometry collection supported by d3-geo (An extension of GeoJSON geometry collection). + */ export function geoBounds(feature: ExtendedGeometryCollection): [[number, number], [number, number]]; -/**Returns the spherical centroid of the specified GeoJSON feature. See also path.centroid, which computes the projected planar centroid.*/ +/** + * Returns the spherical centroid of the specified feature in steradians. + * (See also path.centroid, which computes the projected planar centroid.) + * + * @param feature A geographic feature supported by d3-geo (An extension of GeoJSON feature). + */ export function geoCentroid(feature: ExtendedFeature): [number, number]; +/** + * Returns the spherical centroid of the specified feature collection in steradians. + * (See also path.centroid, which computes the projected planar centroid.) + * + * @param feature A geographic feature collection supported by d3-geo (An extension of GeoJSON feature). + */ export function geoCentroid(feature: ExtendedFeatureCollection>): [number, number]; +/** + * Returns the spherical centroid of the specified GeoJson Geometry Object or GeoSphere object in steradians. + * (See also path.centroid, which computes the projected planar centroid.) + * + * @param feature A GeoJson Geometry Object or GeoSphere object supported by d3-geo (An extension of GeoJSON). + */ export function geoCentroid(feature: GeoGeometryObjects): [number, number]; +/** + * Returns the spherical centroid of the specified geographic geometry collection in steradians. + * (See also path.centroid, which computes the projected planar centroid.) + * + * @param feature A geographic geometry collection supported by d3-geo (An extension of GeoJSON geometry collection). + */ export function geoCentroid(feature: ExtendedGeometryCollection): [number, number]; -/**Returns the great-arc distance in radians between the two points a and b. Each point must be specified as a two-element array [longitude, latitude] in degrees. */ +/** + * Returns the great-arc distance in radians between the two points a and b. + * Each point must be specified as a two-element array [longitude, latitude] in degrees. + * + * @param a Point specified as a two-element array [longitude, latitude] in degrees. + * @param b Point specified as a two-element array [longitude, latitude] in degrees. + */ export function geoDistance(a: [number, number], b: [number, number]): number; -/**Returns the great-arc length of the specified GeoJSON feature in radians.*/ +/** + * Returns the great-arc length of the specified feature in radians. + * + * @param feature A geographic feature supported by d3-geo (An extension of GeoJSON feature). + */ export function geoLength(feature: ExtendedFeature): number; +/** + * Returns the great-arc length of the specified feature collection in radians. + * + * @param feature A geographic feature collection supported by d3-geo (An extension of GeoJSON feature). + */ export function geoLength(feature: ExtendedFeatureCollection>): number; +/** + * Returns the great-arc length of the specified GeoJson Geometry Object or GeoSphere object in radians. + * +* @param feature A GeoJson Geometry Object or GeoSphere object supported by d3-geo (An extension of GeoJSON). + */ export function geoLength(feature: GeoGeometryObjects): number; +/** + * Returns the great-arc length of the specified geographic geometry collection in radians. + * + * @param feature A geographic geometry collection supported by d3-geo (An extension of GeoJSON geometry collection). + */ export function geoLength(feature: ExtendedGeometryCollection): number; -/**Returns an interpolator function given two points a and b. Each point must be specified as a two-element array [longitude, latitude] in degrees. */ +/** + * Returns an interpolator function given two points a and b. + * Each point must be specified as a two-element array [longitude, latitude] in degrees. + * + * @param a Point specified as a two-element array [longitude, latitude] in degrees. + * @param b Point specified as a two-element array [longitude, latitude] in degrees. + */ export function geoInterpolate(a: [number, number], b: [number, number]): (t: number) => [number, number]; - +/** + * A Geo Rotation + */ export interface GeoRotation { + /** + * Returns a new array [longitude, latitude] in degrees representing the rotated point of the given point. + * + * @param point The point must be specified as a two-element array [longitude, latitude] in degrees. + */ (point: [number, number]): [number, number]; + + /** + * Returns a new array [longitude, latitude] in degrees representing the point of the given rotated point; the inverse of rotation. + * + * @param point The rotated point must be specified as a two-element array [longitude, latitude] in degrees. + */ invert(point: [number, number]): [number, number]; } -/**Returns a rotation function for the given angles, which must be a two- or three-element array of numbers [lambda, phi, gamma] specifying the rotation angles in degrees about each spherical axis. */ +/** + * Returns a rotation function for the given angles. + * + * @param angles A two- or three-element array of numbers [lambda, phi, gamma] specifying the rotation angles in degrees about each spherical axis. + * (These correspond to yaw, pitch and roll.) If the rotation angle gamma is omitted, it defaults to 0. + */ export function geoRotation(angles: [number, number] | [number, number, number]): GeoRotation; @@ -108,251 +233,1215 @@ export function geoRotation(angles: [number, number] | [number, number, number]) // geoCircle ============================================================ +/** + * A new circle generator + * + * The first generic corresponds to the "this"-context within which the geo circle generator will be invoked. + * + * The second generic corresponds to the type of the Datum which will be passed into the geo circle generator. + */ export interface GeoCircleGenerator { - /**Returns a new GeoJSON geometry object of type “Polygon” approximating a circle on the surface of a sphere, with the current center, radius and precision. */ + /** + * Returns a new GeoJSON geometry object of type “Polygon” approximating a circle on the surface of a sphere, + * with the current center, radius and precision. Any arguments are passed to the accessors. + */ (this: This, d?: Datum, ...args: any[]): GeoJSON.Polygon; + + /** + * Returns the current center accessor, which defaults to a function returning [0, 0]. + */ center(): ((this: This, d: Datum, ...args: any[]) => [number, number]); + /** + * Sets the circle center to the specified point [longitude, latitude] in degrees, and returns this circle generator. + * + * @param center Center point specified as [longitude, latitude] in degrees. + */ center(center: [number, number]): this; + /** + * Sets the circle center to the specified center point accessor function, and returns this circle generator. + * + * @param center An accessor function which will be invoked whenever a circle is generated, being passed any arguments passed to the circle generator. + * It returns the center point specified as [longitude, latitude] in degrees. + */ center(center: ((this: This, d: Datum, ...args: any[]) => [number, number])): this; + /** + * Returns the current radius accessor, which defaults to a function returning 90. + */ radius(): ((this: This, d: Datum, ...args: any[]) => number); + /** + * Sets the circle radius to the specified angle in degrees, and returns this circle generator. + * + * @param radius Circle radius as the specified angle in degrees. + */ radius(radius: number): this; + /** + * Sets the circle radius to the specified radius accessor function, and returns this circle generator. + * + * @param radius An accessor function which will be invoked whenever a circle is generated, being passed any arguments passed to the circle generator. + * It returns the radius as the specified angle in degrees. + */ radius(radius: ((this: This, d: Datum, ...args: any[]) => number)): this; + /** + * Returns the current precision accessor, which defaults to a function returning 6. + */ precision(): ((this: This, d: Datum, ...args: any[]) => number); + /** + * Sets the circle precision to the specified angle in degrees, and returns this circle generator. + * + * Small circles do not follow great arcs and thus the generated polygon is only an approximation. + * Specifying a smaller precision angle improves the accuracy of the approximate polygon, but also increase the cost to generate and render it. + * + * @param precision Precision as specified angle in degrees. + */ precision(precision: number): this; + /** + * Sets the circle precision to the precision accessor function, and returns this circle generator. + * + * Small circles do not follow great arcs and thus the generated polygon is only an approximation. + * Specifying a smaller precision angle improves the accuracy of the approximate polygon, but also increase the cost to generate and render it. + * + * @param precision An accessor function which will be invoked whenever a circle is generated, being passed any arguments passed to the circle generator. + * It returns the precision as the specified angle in degrees. + */ precision(precision: (this: This, d: Datum, ...args: any[]) => number): this; } +/** + * Returns a new geo circle generator + */ export function geoCircle(): GeoCircleGenerator; +/** + * Returns a new geo circle generator + * + * The generic corresponds to the data type of the first argument passed into the geo circle generator and its accessor functions. + */ export function geoCircle(): GeoCircleGenerator; +/** + * Returns a new geo circle generator + * + * The first generic corresponds to the "this" context within which the geo circle generator and its accessors will be invoked. + * + * The second generic corresponds to the data type of the first argument passed into the geo circle generator and its accessor functions. + */ export function geoCircle(): GeoCircleGenerator; // geoGraticule ============================================================ +/** + * A Feature generator for graticules: a uniform grid of meridians and parallels for showing projection distortion. + * The default graticule has meridians and parallels every 10° between ±80° latitude; for the polar regions, there are meridians every 90°. + */ export interface GeoGraticuleGenerator { - /**Returns a GeoJSON MultiLineString geometry object representing all meridians and parallels for this graticule. */ + /** + * Returns a GeoJSON MultiLineString geometry object representing all meridians and parallels for this graticule. + */ (): GeoJSON.MultiLineString; + /** + * Returns an array of GeoJSON LineString geometry objects, one for each meridian or parallel for this graticule. + */ lines(): GeoJSON.LineString[]; + + /** + * Returns a GeoJSON Polygon geometry object representing the outline of this graticule, i.e. along the meridians and parallels defining its extent. + */ outline(): GeoJSON.Polygon; + + /** + * Returns the current minor extent, which defaults to ⟨⟨-180°, -80° - ε⟩, ⟨180°, 80° + ε⟩⟩. + */ extent(): [[number, number], [number, number]]; + /** + * Sets the major and minor extents of this graticule. + * + * @param extent Extent to use for major and minor extent of graticule. + */ extent(extent: [[number, number], [number, number]]): this; + + /** + * Returns the current major extent, which defaults to ⟨⟨-180°, -90° + ε⟩, ⟨180°, 90° - ε⟩⟩. + */ extentMajor(): [[number, number], [number, number]]; + /** + * Sets the major extent of this graticule. + * + * @param extent Major extent of graticule. + */ extentMajor(extent: [[number, number], [number, number]]): this; + + /** + * Returns the current minor extent, which defaults to ⟨⟨-180°, -80° - ε⟩, ⟨180°, 80° + ε⟩⟩. + */ extentMinor(): [[number, number], [number, number]]; + /** + * Sets the minor extent of this graticule. + * + * @param extent Minor extent of graticule. + */ extentMinor(extent: [[number, number], [number, number]]): this; + + /** + * Returns the current minor step, which defaults to ⟨10°, 10°⟩. + */ step(): [number, number]; + /** + * Sets the major and minor step for this graticule + * + * @param step Major and minor step to use for this graticule. + */ step(step: [number, number]): this; + + /** + * Returns the current major step, which defaults to ⟨90°, 360°⟩. + */ stepMajor(): [number, number]; + /** + * Sets the major step for this graticule. + * + * @param step Major step. + */ stepMajor(step: [number, number]): this; + + /** + * Returns the current major step, which defaults to ⟨10°, 10°⟩. + */ stepMinor(): [number, number]; + /** + * Sets the minor step for this graticule. + * + * @param step Minor step. + */ stepMinor(step: [number, number]): this; + + /** + * Returns the current precision, which defaults to 2.5°. + */ precision(): number; + /** + * Sets the precision for this graticule, in degrees. + * + * @param angle Precision in degrees. + */ precision(angle: number): this; } +/** + * Constructs a feature generator for creating graticules: a uniform grid of meridians and parallels for showing projection distortion. + * The default graticule has meridians and parallels every 10° between ±80° latitude; for the polar regions, there are meridians every 90°. + */ export function geoGraticule(): GeoGraticuleGenerator; +/** + * A convenience method for directly generating the default 10° global graticule as a GeoJSON MultiLineString geometry object. + */ +export function geoGraticule10(): GeoJSON.MultiLineString; + // ---------------------------------------------------------------------- // Projections // ---------------------------------------------------------------------- +/** + * A D3 geo stream. D3 transforms geometry using a sequence of function calls, rather than materializing intermediate representations, to minimize overhead. + * Streams must implement several methods to receive input geometry. Streams are inherently stateful; the meaning of a point depends on whether the point is inside of a line, + * and likewise a line is distinguished from a ring by a polygon. Despite the name “stream”, these method calls are currently synchronous. + */ export interface GeoStream { + /** + * Indicates the end of a line or ring. Within a polygon, indicates the end of a ring. + * Unlike GeoJSON, the redundant closing coordinate of a ring is not indicated via point, and instead is implied via lineEnd within a polygon. + */ lineEnd(): void; + + /** + * Indicates the start of a line or ring. Within a polygon, indicates the start of a ring. The first ring of a polygon is the exterior ring, and is typically clockwise. + * Any subsequent rings indicate holes in the polygon, and are typically counterclockwise. + */ lineStart(): void; + + /** + * Indicates a point with the specified coordinates x and y (and optionally z). The coordinate system is unspecified and implementation-dependent; + * for example, projection streams require spherical coordinates in degrees as input. Outside the context of a polygon or line, + * a point indicates a point geometry object (Point or MultiPoint). Within a line or polygon ring, the point indicates a control point. + * + * @param x x-coordinate of point. + * @param y y-coordinate of point. + * @param z Optional z-coordinate of point. + */ point(x: number, y: number, z?: number): void; + + /** + * Indicates the end of a polygon. + */ polygonEnd(): void; + + /** + * Indicates the start of a polygon. The first line of a polygon indicates the exterior ring, and any subsequent lines indicate interior holes. + */ polygonStart(): void; + + /** + * Indicates the sphere (the globe; the unit sphere centered at ⟨0,0,0⟩). + */ sphere?(): void; } -export interface GeoStreamWrapper { - stream(stream: GeoStream): GeoStream; -} +// geoStream(...) ======================================================= + +/** + * Streams the specified GeoJSON object to the specified projection stream. While both features and geometry objects are supported as input, + * the stream interface only describes the geometry, and thus additional feature properties are not visible to streams. + * + * @param object + * @param stream A projection stream. + */ +export function geoStream(object: ExtendedFeature, stream: GeoStream): void; + +/** + * Streams the specified GeoJSON object to the specified projection stream. While both features and geometry objects are supported as input, + * the stream interface only describes the geometry, and thus additional feature properties are not visible to streams. + * + * @param object + * @param stream A projection stream. + */ +export function geoStream(object: ExtendedFeatureCollection>, stream: GeoStream): void; + +/** + * Streams the specified GeoJSON object to the specified projection stream. While both features and geometry objects are supported as input, + * the stream interface only describes the geometry, and thus additional feature properties are not visible to streams. + * + * @param object + * @param stream A projection stream. + */ +export function geoStream(object: GeoGeometryObjects, stream: GeoStream): void; + +/** + * Streams the specified GeoJSON object to the specified projection stream. While both features and geometry objects are supported as input, + * the stream interface only describes the geometry, and thus additional feature properties are not visible to streams. + * + * @param object + * @param stream A projection stream. + */ +export function geoStream(object: ExtendedGeometryCollection, stream: GeoStream): void; + + + +// ---------------------------------------------------------------------- +// Projections +// ---------------------------------------------------------------------- + + + + +/** + * Raw projections are point transformation functions that are used to implement custom projections; they typically passed to d3.geoProjection or d3.geoProjectionMutator. + * They are exposed here to facilitate the derivation of related projections. + * Raw projections take spherical coordinates [lambda, phi] in radians (not degrees!) and return a point [x, y], typically in the unit square centered around the origin. + */ export interface GeoRawProjection { - (longitude: number, latitude: number): [number, number]; + /** + * Projects the specified point [lambda, phi] in radians, returning a new point [x, y] in unitless coordinates. + * @param lambda Spherical lambda coordinate in radians. + * @param phi Spherical phi coordinate in radians. + */ + (lambda: number, phi: number): [number, number]; + + /** + * Inverts the projected point [x, y] in unitless coordinates, returning an unprojected point in spherical coordinates [lambda, phi] in radians. + * @param x x-coordinate (unitless). + * @param y y-coordinate (unitless). + */ invert?(x: number, y: number): [number, number]; } +/** + * An object implementing a stream method + */ +export interface GeoStreamWrapper { + /** + * Returns a projection stream for the specified output stream. Any input geometry is projected before being streamed to the output stream. + * A typical projection involves several geometry transformations: the input geometry is first converted to radians, rotated on three axes, + * clipped to the small circle or cut along the antimeridian, and lastly projected to the plane with adaptive resampling, scale and translation. + * + * @param stream An input stream + */ + stream(stream: GeoStream): GeoStream; +} +/** + * A Geographic Projection to transform spherical polygonal geometry to planar polygonal geometry. + * D3 provides implementations of several classes of standard projections: + * + * - Azimuthal + * - Composite + * - Conic + * - Cylindrical + * + * For many more projections, see d3-geo-projection. You can implement custom projections using d3.geoProjection or d3.geoProjectionMutator. + */ export interface GeoProjection extends GeoStreamWrapper { - /**Returns a new array x, y representing the projected point of the given point. The point must be specified as a two-element array [longitude, latitude] in degrees. */ + /** + * Returns a new array [x, y] (typically in pixels) representing the projected point of the given point. + * The point must be specified as a two-element array [longitude, latitude] in degrees. + * May return null if the specified point has no defined projected position, such as when the point is outside the clipping bounds of the projection. + * + * @param point A point specified as a two-dimensional array [longitude, latitude] in degrees. + */ (point: [number, number]): [number, number] | null; + /** + * Returns the current center of the projection, which defaults to ⟨0°,0°⟩. + */ center(): [number, number]; + /** + * Sets the projection’s center to the specified center, + * a two-element array of longitude and latitude in degrees and returns the projection. + * The default is ⟨0°,0°⟩. + * + * @param point A point specified as a two-dimensional array [longitude, latitude] in degrees. + */ center(point: [number, number]): this; + /** + * Returns the current clip angle which defaults to null. + * + * null switches to antimeridian cutting rather than small-circle clipping. + */ clipAngle(): number | null; + /** + * Switches to antimeridian cutting rather than small-circle clipping. + * + * @param angle Set to null to switch to antimeridian cutting. + */ clipAngle(angle: null): this; + /** + * Sets the projection’s clipping circle radius to the specified angle in degrees and returns the projection. + * Small-circle clipping is independent of viewport clipping via projection.clipExtent. + * + * @param angle Angle in degrees. + */ clipAngle(angle: number): this; + /** + * Returns the current viewport clip extent which defaults to null. + */ clipExtent(): [[number, number], [number, number]] | null; + /** + * Sets the clip extent to null and returns the projection. + * With a clip extent of null, no viewport clipping is performed. + * + * Viewport clipping is independent of small-circle clipping via projection.clipAngle. + * + * @param extent Set to null to disable viewport clipping. + */ clipExtent(extent: null): this; + /** + * Sets the projection’s viewport clip extent to the specified bounds in pixels and returns the projection. + * The extent bounds are specified as an array [[x₀, y₀], [x₁, y₁]], where x₀ is the left-side of the viewport, y₀ is the top, x₁ is the right and y₁ is the bottom. + * + * Viewport clipping is independent of small-circle clipping via projection.clipAngle. + * + * @param extent The extent bounds are specified as an array [[x₀, y₀], [x₁, y₁]], where x₀ is the left-side of the viewport, y₀ is the top, x₁ is the right and y₁ is the bottom. + */ clipExtent(extent: [[number, number], [number, number]]): this; - /**Sets the projection’s scale and translate to fit the specified GeoJSON object in the center of the given extent. */ + /** + * Sets the projection’s scale and translate to fit the specified geographic feature in the center of the given extent. + * Returns the projection. + * + * Any clip extent is ignored when determining the new scale and translate. The precision used to compute the bounding box of the given object is computed at an effective scale of 150. + * + * @param extent The extent, specified as an array [[x₀, y₀], [x₁, y₁]], where x₀ is the left side of the bounding box, y₀ is the top, x₁ is the right and y₁ is the bottom. + * @param object A geographic feature supported by d3-geo (An extension of GeoJSON feature). + */ fitExtent(extent: [[number, number], [number, number]], object: ExtendedFeature): this; + /** + * Sets the projection’s scale and translate to fit the specified geographic feature collection in the center of the given extent. + * Returns the projection. + * + * Any clip extent is ignored when determining the new scale and translate. The precision used to compute the bounding box of the given object is computed at an effective scale of 150. + * + * @param extent The extent, specified as an array [[x₀, y₀], [x₁, y₁]], where x₀ is the left side of the bounding box, y₀ is the top, x₁ is the right and y₁ is the bottom. + * @param object A geographic feature collection supported by d3-geo (An extension of GeoJSON feature collection). + */ fitExtent(extent: [[number, number], [number, number]], object: ExtendedFeatureCollection>): this; + /** + * Sets the projection’s scale and translate to fit the specified geographic geometry object in the center of the given extent. + * Returns the projection. + * + * Any clip extent is ignored when determining the new scale and translate. The precision used to compute the bounding box of the given object is computed at an effective scale of 150. + * + * @param extent The extent, specified as an array [[x₀, y₀], [x₁, y₁]], where x₀ is the left side of the bounding box, y₀ is the top, x₁ is the right and y₁ is the bottom. + * @param object A GeoJson Geometry Object or GeoSphere object supported by d3-geo (An extension of GeoJSON). + */ fitExtent(extent: [[number, number], [number, number]], object: GeoGeometryObjects): this; + /** + * Sets the projection’s scale and translate to fit the specified geographic geometry collection in the center of the given extent. + * Returns the projection. + * + * Any clip extent is ignored when determining the new scale and translate. The precision used to compute the bounding box of the given object is computed at an effective scale of 150. + * + * @param extent The extent, specified as an array [[x₀, y₀], [x₁, y₁]], where x₀ is the left side of the bounding box, y₀ is the top, x₁ is the right and y₁ is the bottom. + * @param object A geographic geometry collection supported by d3-geo (An extension of GeoJSON geometry collection). + */ fitExtent(extent: [[number, number], [number, number]], object: ExtendedGeometryCollection): this; - /**A convenience method for projection.fitExtent where the top-left corner of the extent is [0,0]. */ + /** + * Sets the projection’s scale and translate to fit the specified geographic feature in the center of an extent with the given size and top-left corner of [0, 0]. + * Returns the projection. + * + * Any clip extent is ignored when determining the new scale and translate. The precision used to compute the bounding box of the given object is computed at an effective scale of 150. + * + * @param size The size of the extent, specified as an array [width, height]. + * @param object A geographic feature supported by d3-geo (An extension of GeoJSON feature). + */ fitSize(size: [number, number], object: ExtendedFeature): this; + /** + * Sets the projection’s scale and translate to fit the specified geographic feature collection in the center of an extent with the given size and top-left corner of [0, 0]. + * Returns the projection. + * + * Any clip extent is ignored when determining the new scale and translate. The precision used to compute the bounding box of the given object is computed at an effective scale of 150. + * + * @param size The size of the extent, specified as an array [width, height]. + * @param object A geographic feature collection supported by d3-geo (An extension of GeoJSON feature collection). + */ fitSize(size: [number, number], object: ExtendedFeatureCollection>): this; + /** + * Sets the projection’s scale and translate to fit the specified geographic geometry object in the center of an extent with the given size and top-left corner of [0, 0]. + * Returns the projection. + * + * Any clip extent is ignored when determining the new scale and translate. The precision used to compute the bounding box of the given object is computed at an effective scale of 150. + * + * @param size The size of the extent, specified as an array [width, height]. + * @param object A GeoJson Geometry Object or GeoSphere object supported by d3-geo (An extension of GeoJSON). + */ fitSize(size: [number, number], object: GeoGeometryObjects): this; + /** + * Sets the projection’s scale and translate to fit the specified geographic geometry collection in the center of an extent with the given size and top-left corner of [0, 0]. + * Returns the projection. + * + * Any clip extent is ignored when determining the new scale and translate. The precision used to compute the bounding box of the given object is computed at an effective scale of 150. + * + * @param size The size of the extent, specified as an array [width, height]. + * @param object A geographic geometry collection supported by d3-geo (An extension of GeoJSON geometry collection). + */ fitSize(size: [number, number], object: ExtendedGeometryCollection): this; - /**Returns a new array [longitude, latitude] in degrees representing the unprojected point of the given projected point. */ + /** + * Returns a new array [longitude, latitude] in degrees representing the unprojected point of the given projected point. + * May return null if the specified point has no defined projected position, such as when the point is outside the clipping bounds of the projection. + * + * @param point The projected point, specified as a two-element array [x, y] (typically in pixels). + */ invert?(point: [number, number]): [number, number] | null; + /** + * Returns the projection’s current resampling precision which defaults to square root of 0.5. + * This value corresponds to the Douglas–Peucker distance. + */ precision(): number; + /** + * Sets the threshold for the projection’s adaptive resampling to the specified value in pixels and returns the projection. + * This value corresponds to the Douglas–Peucker distance. + * + * @param precision A numeric value in pixels to use as the threshold for the projection’s adaptive resampling. + */ precision(precision: number): this; + /** + * Returns the current rotation [lambda, phi, gamma] specifying the rotation angles in degrees about each spherical axis. + * (These correspond to yaw, pitch and roll.) which defaults [0, 0, 0]. + */ rotate(): [number, number, number]; + /** + * Sets the projection’s three-axis rotation to the specified angles, which must be a two- or three-element array of numbers. + * + * @param angles A two- or three-element array of numbers [lambda, phi, gamma] specifying the rotation angles in degrees about each spherical axis. + * (These correspond to yaw, pitch and roll.) If the rotation angle gamma is omitted, it defaults to 0. + */ rotate(angles: [number, number] | [number, number, number]): this; + /** + * Returns the current scale factor; the default scale is projection-specific. + * + * The scale factor corresponds linearly to the distance between projected points; however, absolute scale factors are not equivalent across projections. + */ scale(): number; + /** + * Sets the projection’s scale factor to the specified value and returns the projection. + * The scale factor corresponds linearly to the distance between projected points; however, absolute scale factors are not equivalent across projections. + * + * @param scale Scale factor to be used for the projection; the default scale is projection-specific. + */ scale(scale: number): this; + /** + * Returns the current translation offset which defaults to [480, 250] and places ⟨0°,0°⟩ at the center of a 960×500 area. + * The translation offset determines the pixel coordinates of the projection’s center. + */ translate(): [number, number]; + /** + * Sets the projection’s translation offset to the specified two-element array [tx, ty] and returns the projection. + * The translation offset determines the pixel coordinates of the projection’s center. The default translation offset places ⟨0°,0°⟩ at the center of a 960×500 area. + * + * @param point A two-element array [tx, ty] specifying the translation offset. The default translation offset of defaults to [480, 250] places ⟨0°,0°⟩ at the center of a 960×500 area. + */ translate(point: [number, number]): this; } +/** + * A Conic Projection + */ export interface GeoConicProjection extends GeoProjection { - parallels(value: [number, number]): this; + + /** + * Return the standard parallels for the conic projection in degrees. + */ parallels(): [number, number]; + /** + * Set the standard parallels for the conic projection in degrees and return the projection. + * + * @param value A two-dimensional array representing the standard parallels in degrees. + */ + parallels(value: [number, number]): this; + } // geoPath ============================================================== +/** + * A minimal rendering context for a GeoPath generator. The minimum implemented + * methods are a subset of the CanvasRenderingContext2D API. + * + * For reference to the CanvasRenderingContext2D see https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D + */ export interface GeoContext { + + /** + * Adds an arc to the path with center point (x, y) and radius r starting at startAngle and ending at endAngle. + * The arc is drawn in clockwise directio by default. + * + * @param x x-coordinate of arc center point. + * @param y y-coordinate of arc center point. + * @param radius Radius of arc. + * @param startAngle The starting angle of the arc, measured clockwise from the positive x axis and expressed in radians. + * @param endAngle The end angle of the arc, measured clockwise from the positive x axis and expressed in radians. + * @param anticlockwise Optional boolean flag, if true the arc is drawn counter-clockwise between the two angles. + */ arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean): void; + + /** + * Start a new path by emptying the list of sub-paths. + */ beginPath(): void; + + /** + * Causes the point of the pen to move back to the start of the current sub-path. + * It tries to draw a straight line from the current point to the start. + * If the shape has already been closed or has only one point, this function does nothing. + */ closePath(): void; + + /** + * Connects the last point in the sub-path to the x, y coordinates with a straight line (but does not actually draw it). + * + * @param x The x-coordinate for the end of the line. + * @param y The y-coordinate for the end of the line. + */ lineTo(x: number, y: number): void; + + /** + * Move the starting point of a new sub-path to the (x, y) coordinates. + * + * @param x The x-coordinate for the new starting point. + * @param y The y-coordinate for the new starting point. + */ moveTo(x: number, y: number): void; } +/** + * A Geo Path generator + * + * The first generic corresponds to the "this"-context within which the geo path generator will be invoked. This could be e.g. the DOMElement bound to "this" when using selection.attr("d", ...) with the path generator. + * + * The second generic corresponds to the type of the DatumObject which will be passed into the geo path generator for rendering. + */ export interface GeoPath { - (this: This, object: DatumObject, ...args: any[]): string; + /** + * Renders the given object, which may be any GeoJSON feature or geometry object: + * + * + Point - a single position. + * + MultiPoint - an array of positions. + * + LineString - an array of positions forming a continuous line. + * + MultiLineString - an array of arrays of positions forming several lines. + * + Polygon - an array of arrays of positions forming a polygon (possibly with holes). + * + MultiPolygon - a multidimensional array of positions forming multiple polygons. + * + GeometryCollection - an array of geometry objects. + * + Feature - a feature containing one of the above geometry objects. + * + FeatureCollection - an array of feature objects. + * + * The type Sphere is also supported, which is useful for rendering the outline of the globe; a sphere has no coordinates. + * + * + * Any additional arguments are passed along to the pointRadius accessor. + * + * If the rendering context is null, the function returns an SVG Path string, otherwise the function renders to the current context. + * + * Separate path elements are typically slower than a single path element. However, distinct path elements are useful for styling and interation (e.g., click or mouseover). + * Canvas rendering (see path.context) is typically faster than SVG, but requires more effort to implement styling and interaction. + * + * The first generic type of the GeoPath generator used, must correspond to the "this" context bound to the function upon invocation. + * + * @param object An object to be rendered. + */ + (this: This, object: DatumObject, ...args: any[]): string | undefined; + /** + * Returns the projected planar area (typically in square pixels) for the specified GeoJSON object. + * Point, MultiPoint, LineString and MultiLineString features have zero area. For Polygon and MultiPolygon features, + * this method first computes the area of the exterior ring, and then subtracts the area of any interior holes. + * This method observes any clipping performed by the projection; see projection.clipAngle and projection.clipExtent. + * + * @param An object for which the area is to be calculated. + */ area(object: DatumObject): number; + + /** + * Returns the projected planar bounding box (typically in pixels) for the specified GeoJSON object. + * The bounding box is represented by a two-dimensional array: [[x₀, y₀], [x₁, y₁]], where x₀ is the minimum x-coordinate, y₀ is the minimum y-coordinate, + * x₁ is maximum x-coordinate, and y₁ is the maximum y-coordinate. + * + * This is handy for, say, zooming in to a particular feature. (Note that in projected planar coordinates, + * the minimum latitude is typically the maximum y-value, and the maximum latitude is typically the minimum y-value.) + * This method observes any clipping performed by the projection; see projection.clipAngle and projection.clipExtent. + * + * @param An object for which the bounds are to be calculated. + */ bounds(object: DatumObject): [[number, number], [number, number]]; + + /** + * Returns the projected planar centroid (typically in pixels) for the specified GeoJSON object. + * This is handy for, say, labeling state or county boundaries, or displaying a symbol map. + * For example, a noncontiguous cartogram might scale each state around its centroid. + * This method observes any clipping performed by the projection; see projection.clipAngle and projection.clipExtent. + * + * @param An object for which the centroid is to be calculated. + */ centroid(object: DatumObject): [number, number]; - context(): C | null; - context(context: GeoContext | null): this; + + /** + * Returns the current render context which defaults to null. + * + * Use the generic to cast the return type of the rendering context, if it is known for a specific application. + */ + context(): C; + + /** + * Set the current rendering context to null and return the path generator. + * The path generator will return an SVG path string; + * + * @param context Null to remove the current rendering context, if any. + */ + context(context: null): this; + + /** + * Set the current rendering context and return the path generator. + * The path generator will render to the specified context. + * + * @param context Rendering context to be used by the path generator. + * The context must at least implement GeoContext, a subset of the CanvasRenderingContext2D API. + */ + context(context: GeoContext): this; /** * Get the current projection. The generic parameter can be used to cast the result to the * correct, known type of the projection, e.g. GeoProjection or GeoConicProjection. Otherwise, * the return type defaults to the minimum type requirement for a projection which * can be passed into a GeoPath. + * + * Use the generic to cast the return type of the projection, if it is known for a specific application. */ - projection

(): P | null; + projection

(): P; /** - * Set the projection to the identity projection + * Set the projection to the identity projection. + * + * @param projection Use null to set the identity projection. */ projection(projection: null): this; /** - * Set the projection to be used with the geo path generator. + * Set the current projection to be used with the geo path generator. + * + * The given projection is typically one of D3’s built-in geographic projections; + * however, any object that exposes a projection.stream function can be used, enabling the use of custom projections. + * See D3’s transforms for more examples of arbitrary geometric transformations. + * + * @param projection A projection. */ projection(projection: GeoProjection): this; /** * Set the projection to be used with the geo path generator to a custom projection. * Custom projections must minimally contain a stream method. + * + * The given projection is typically one of D3’s built-in geographic projections; + * however, any object that exposes a projection.stream function can be used, enabling the use of custom projections. + * See D3’s transforms for more examples of arbitrary geometric transformations. + * + * @param projection A wrapper object exposing, at a minimum a "stream" method to be used for custom projections. */ projection(projection: GeoStreamWrapper): this; - pointRadius(): (this: This, object: DatumObject, ...args: any[]) => number; + /** + * Returns the current radius or radius accessor used to determine the radius for the display of Point and MultiPoint features. + * The default is a constant radius of 4.5. + */ + pointRadius(): ((this: This, object: DatumObject, ...args: any[]) => number) | number; + + /** + * Sets the radius used to display Point and MultiPoint features to the specified number and return the geo path generator. + * + * @param value Fixed radius value. + */ pointRadius(value: number): this; + + /** + * Sets the radius used to display Point and MultiPoint features to use the specified radius accessor function. + * + * While the radius is commonly specified as a number constant, it may also be specified as a function which is computed per feature, + * being passed the any arguments passed to the path generator. For example, if your GeoJSON data has additional properties, + * you might access those properties inside the radius function to vary the point size; + * alternatively, you could d3.symbol and a projection for greater flexibility. + * + * @param value A value accessor function for the radius which is evaluated for each path to be rendered. The value accessor function is invoked within the "this" context in which the path generator is used. + * It is passed the object to be rendered, and any additional arguments which have been passed into the call to the render function of the path generator. + */ pointRadius(value: (this: This, object: DatumObject, ...args: any[]) => number): this; } -export function geoPath(): GeoPath; -export function geoPath(): GeoPath; -export function geoPath(): GeoPath; +/** + * Creates a new geographic path generator. + * + * The default projection is the null projection. The null projection represents the identity transformation, i.e. + * the input geometry is not projected and is instead rendered directly in raw coordinates. + * This can be useful for fast rendering of pre-projected geometry, or for fast rendering of the equirectangular projection. + * + * The default context is null, which implies that the path generator will return an SVG path string. + * + * @param projection An (optional) current projection to be used. Typically this is one of D3’s built-in geographic projections; + * however, any object that exposes a projection.stream function can be used, enabling the use of custom projections. + * See D3’s transforms for more examples of arbitrary geometric transformations. Setting the projection to "null" uses the identity projection. The default value is "null", the identity projection. + * @param context An (optional) rendering context to be used. If a context is provided, it must at least implement the interface described by GeoContext, a subset of the CanvasRenderingContext2D API. + * Setting the context to "null" means that the path generator will return an SVG path string representing the to be rendered object. The default is "null". + */ +export function geoPath(projection?: GeoProjection | GeoStreamWrapper | null, context?: GeoContext | null): GeoPath; +/** + * Creates a new geographic path generator with the default settings. + * + * The default projection is the null projection. The null projection represents the identity transformation: + * the input geometry is not projected and is instead rendered directly in raw coordinates. + * This can be useful for fast rendering of pre-projected geometry, or for fast rendering of the equirectangular projection. + * + * The default context is null, which implies that the path generator will return an SVG path string. + * + * The generic corresponds to the type of the DatumObject which will be passed into the geo path generator for rendering + * + * @param projection An (optional) current projection to be used. Typically this is one of D3’s built-in geographic projections; + * however, any object that exposes a projection.stream function can be used, enabling the use of custom projections. + * See D3’s transforms for more examples of arbitrary geometric transformations. Setting the projection to "null" uses the identity projection. The default value is "null", the identity projection. + * @param context An (optional) rendering context to be used. If a context is provided, it must at least implement the interface described by GeoContext, a subset of the CanvasRenderingContext2D API. + * Setting the context to "null" means that the path generator will return an SVG path string representing the to be rendered object. The default is "null". + */ +export function geoPath(projection?: GeoProjection | GeoStreamWrapper | null, context?: GeoContext | null): GeoPath; +/** + * Creates a new geographic path generator with the default settings. + * + * The default projection is the null projection. The null projection represents the identity transformation: + * the input geometry is not projected and is instead rendered directly in raw coordinates. + * This can be useful for fast rendering of pre-projected geometry, or for fast rendering of the equirectangular projection. + * + * The default context is null, which implies that the path generator will return an SVG path string. + * + * The first generic corresponds to the "this"-context within which the geo path generator will be invoked. This could be e.g. the DOMElement bound to "this" when using selection.attr("d", ...) with the path generator. + * + * The second generic corresponds to the type of the DatumObject which will be passed into the geo path generator for rendering. + * + * @param projection An (optional) current projection to be used. Typically this is one of D3’s built-in geographic projections; + * however, any object that exposes a projection.stream function can be used, enabling the use of custom projections. + * See D3’s transforms for more examples of arbitrary geometric transformations. Setting the projection to "null" uses the identity projection. The default value is "null", the identity projection. + * @param context An (optional) rendering context to be used. If a context is provided, it must at least implement the interface described by GeoContext, a subset of the CanvasRenderingContext2D API. + * Setting the context to "null" means that the path generator will return an SVG path string representing the to be rendered object. The default is "null". + */ +export function geoPath(projection?: GeoProjection | GeoStreamWrapper | null, context?: GeoContext | null): GeoPath; + -// Raw Projections ======================================================== -export function geoAzimuthalEqualAreaRaw(): GeoRawProjection; -export function geoAzimuthalEquidistantRaw(): GeoRawProjection; -export function geoConicConformalRaw(phi0: number, phi1: number): GeoRawProjection; -export function geoConicEqualAreaRaw(phi0: number, phi1: number): GeoRawProjection; -export function geoConicEquidistantRaw(phi0: number, phi1: number): GeoRawProjection; -export function geoEquirectangularRaw(): GeoRawProjection; -export function geoGnomonicRaw(): GeoRawProjection; -export function geoMercatorRaw(): GeoRawProjection; -export function geoOrthographicRaw(): GeoRawProjection; -export function geoStereographicRaw(): GeoRawProjection; -export function geoTransverseMercatorRaw(): GeoRawProjection; // geoProjection ========================================================== +/** + * Constructs a new projection from the specified raw projection, project. + * The project function takes the longitude and latitude of a given point in radians, + * often referred to as lambda (λ) and phi (φ), and returns a two-element array [x, y] representing its unit projection. + * The project function does not need to scale or translate the point, as these are applied automatically by projection.scale, projection.translate, and projection.center. + * Likewise, the project function does not need to perform any spherical rotation, as projection.rotate is applied prior to projection. + * + * If the project function exposes an invert method, the returned projection will also expose projection.invert. + */ export function geoProjection(project: GeoRawProjection): GeoProjection; // geoProjectionMutator ==================================================== +/** + * Constructs a new projection from the specified raw projection factory and returns a mutate function to call whenever the raw projection changes. + * The factory must return a raw projection. The returned mutate function returns the wrapped projection. + * + * When creating a mutable projection, the mutate function is typically not exposed. + */ export function geoProjectionMutator(factory: (...args: any[]) => GeoRawProjection): () => GeoProjection; -// Pre-Defined Projections ================================================= +// Pre-Defined Projections and Raw Projections ============================= -export function geoAlbers(): GeoConicProjection; -export function geoAlbersUsa(): GeoProjection; +// Azimuthal Projections --------------------------------------------------- + +/** + * The azimuthal equal-area projection. + */ export function geoAzimuthalEqualArea(): GeoProjection; + +/** + * The raw azimuthal equal-area projection. + */ +export function geoAzimuthalEqualAreaRaw(): GeoRawProjection; + +/** + * The azimuthal equidistant projection. + */ export function geoAzimuthalEquidistant(): GeoProjection; -export function geoConicConformal(): GeoConicProjection; -export function geoConicEqualArea(): GeoConicProjection; -export function geoConicEquidistant(): GeoConicProjection; -export function geoEquirectangular(): GeoProjection; +/** + * The raw azimuthal equidistant projection. + */ +export function geoAzimuthalEquidistantRaw(): GeoRawProjection; + +/** + * The gnomonic projection. + */ export function geoGnomonic(): GeoProjection; -export function geoMercator(): GeoProjection; + +/** + * The raw gnomonic projection. + */ +export function geoGnomonicRaw(): GeoRawProjection; + +/** + * The orthographic projection. + */ export function geoOrthographic(): GeoProjection; + +/** + * The raw orthographic projection. + */ +export function geoOrthographicRaw(): GeoRawProjection; + +/** + * The stereographic projection. + */ export function geoStereographic(): GeoProjection; +/** + * The raw stereographic projection. + */ +export function geoStereographicRaw(): GeoRawProjection; + +// Composite Projections --------------------------------------------------- + +/** + * A U.S.-centric composite projection of three d3.geoConicEqualArea projections: d3.geoAlbers is used for the lower forty-eight states, + * and separate conic equal-area projections are used for Alaska and Hawaii. Note that the scale for Alaska is diminished: it is projected at 0.35× its true relative area. + * + * Composite consist of several projections that are composed into a single display. The constituent projections have fixed clip, center and rotation, + * and thus composite projections do not support projection.center, projection.rotate, projection.clipAngle, or projection.clipExtent. + */ +export function geoAlbersUsa(): GeoProjection; + +// Conic Projections ------------------------------------------------------- + +/** + * The Albers’ equal area-conic projection. This is a U.S.-centric configuration of d3.geoConicEqualArea. + */ +export function geoAlbers(): GeoConicProjection; + +/** + * The conic conformal projection. The parallels default to [30°, 30°] resulting in flat top. + */ +export function geoConicConformal(): GeoConicProjection; + +/** + * The raw conic conformal projection. + */ +export function geoConicConformalRaw(phi0: number, phi1: number): GeoRawProjection; + +/** + * The Albers’ equal-area conic projection. + */ +export function geoConicEqualArea(): GeoConicProjection; + +/** + * The raw Albers’ equal-area conic projection. + */ +export function geoConicEqualAreaRaw(phi0: number, phi1: number): GeoRawProjection; + +/** + * The conic equidistant projection. + */ +export function geoConicEquidistant(): GeoConicProjection; + +/** + * The raw conic equidistant projection. + */ +export function geoConicEquidistantRaw(phi0: number, phi1: number): GeoRawProjection; + +// Cylindrical Projections ------------------------------------------------ + +/** + * The equirectangular (plate carrée) projection. + */ +export function geoEquirectangular(): GeoProjection; + +/** + * The raw equirectangular (plate carrée) projection. + */ +export function geoEquirectangularRaw(): GeoRawProjection; + +/** + * The spherical Mercator projection. + * Defines a default projection.clipExtent such that the world is projected to a square, clipped to approximately ±85° latitude. + */ +export function geoMercator(): GeoProjection; +/** + * The raw spherical Mercator projection. + */ +export function geoMercatorRaw(): GeoRawProjection; + +/** + * The transverse spherical Mercator projection. + * Defines a default projection.clipExtent such that the world is projected to a square, clipped to approximately ±85° latitude. + */ export function geoTransverseMercator(): GeoProjection; -// geoClipExtent ============================================================= - -export interface GeoExtent { - extent(): [[number, number], [number, number]]; - extent(extent: [[number, number], [number, number]]): this; - stream(stream: GeoStream): GeoStream; -} - - -export function geoClipExtent(): GeoExtent; +/** + * The raw transverse spherical Mercator projection. + */ +export function geoTransverseMercatorRaw(): GeoRawProjection; // ---------------------------------------------------------------------- -// Projection Streams +// Projection Transforms // ---------------------------------------------------------------------- // geoTransform(...) ==================================================== +/** + * A Prototype interface which serves as a template for the implementation of a geometric transform using geoTransform(...) + * It serves as a reference for the custom methods which can be passed into geoTransform as argument to crete a generalized + * transform projection. + */ export interface GeoTransformPrototype { + /** + * Indicates the end of a line or ring. Within a polygon, indicates the end of a ring. + * Unlike GeoJSON, the redundant closing coordinate of a ring is not indicated via point, and instead is implied via lineEnd within a polygon. + */ lineEnd?(this: this & { stream: GeoStream }): void; + /** + * Indicates the start of a line or ring. Within a polygon, indicates the start of a ring. The first ring of a polygon is the exterior ring, and is typically clockwise. + * Any subsequent rings indicate holes in the polygon, and are typically counterclockwise. + */ lineStart?(this: this & { stream: GeoStream }): void; + /** + * Indicates a point with the specified coordinates x and y (and optionally z). The coordinate system is unspecified and implementation-dependent; + * for example, projection streams require spherical coordinates in degrees as input. Outside the context of a polygon or line, + * a point indicates a point geometry object (Point or MultiPoint). Within a line or polygon ring, the point indicates a control point. + * + * @param x x-coordinate of point. + * @param y y-coordinate of point. + * @param z Optional z-coordinate of point. + */ point?(this: this & { stream: GeoStream }, x: number, y: number, z?: number): void; + /** + * Indicates the end of a polygon. + */ polygonEnd?(this: this & { stream: GeoStream }): void; + /** + * Indicates the start of a polygon. The first line of a polygon indicates the exterior ring, and any subsequent lines indicate interior holes. + */ polygonStart?(this: this & { stream: GeoStream }): void; + /** + * Indicates the sphere (the globe; the unit sphere centered at ⟨0,0,0⟩). + */ sphere?(this: this & { stream: GeoStream }): void; } + // TODO: Review whether GeoStreamWrapper should be included into return value union type, i.e. ({ stream: (s: GeoStream) => (T & GeoStream & GeoStreamWrapper)})? // It probably should be omitted for purposes of this API. The stream method added to (T & GeoStream) is more of a private member used internally to // implement the Transform factory -export function geoTransform(prototype: T): { stream: (s: GeoStream) => (T & GeoStream) }; -// geoStream(...) ======================================================= +/** + * Defines an arbitrary transform using the methods defined on the specified methods object. + * Any undefined methods will use pass-through methods that propagate inputs to the output stream. + * + * @param methods An object with custom method implementations, which are used to create a transform projection. + */ +export function geoTransform(methods: T): { stream: (s: GeoStream) => (T & GeoStream) }; -export function geoStream(object: ExtendedFeature, stream: GeoStream): void; -export function geoStream(object: ExtendedFeatureCollection>, stream: GeoStream): void; -export function geoStream(object: GeoGeometryObjects, stream: GeoStream): void; -export function geoStream(object: ExtendedGeometryCollection, stream: GeoStream): void; +// geoIdentity() ================================================================= + +/** + * Geo Identity Transform + */ +export interface GeoIdentityTranform extends GeoStreamWrapper { + + /** + * Returns the current viewport clip extent which defaults to null. + */ + clipExtent(): [[number, number], [number, number]] | null; + /** + * Sets the clip extent to null and returns the projection. + * With a clip extent of null, no viewport clipping is performed. + * + * Viewport clipping is independent of small-circle clipping via projection.clipAngle. + * + * @param extent Set to null to disable viewport clipping. + */ + clipExtent(extent: null): this; + /** + * Sets the projection’s viewport clip extent to the specified bounds in pixels and returns the projection. + * The extent bounds are specified as an array [[x₀, y₀], [x₁, y₁]], where x₀ is the left-side of the viewport, y₀ is the top, x₁ is the right and y₁ is the bottom. + * + * Viewport clipping is independent of small-circle clipping via projection.clipAngle. + * + * @param extent The extent bounds are specified as an array [[x₀, y₀], [x₁, y₁]], where x₀ is the left-side of the viewport, y₀ is the top, x₁ is the right and y₁ is the bottom. + */ + clipExtent(extent: [[number, number], [number, number]]): this; + + /** + * Sets the projection’s scale and translate to fit the specified geographic feature in the center of the given extent. + * Returns the projection. + * + * Any clip extent is ignored when determining the new scale and translate. The precision used to compute the bounding box of the given object is computed at an effective scale of 150. + * + * @param extent The extent, specified as an array [[x₀, y₀], [x₁, y₁]], where x₀ is the left side of the bounding box, y₀ is the top, x₁ is the right and y₁ is the bottom. + * @param object A geographic feature supported by d3-geo (An extension of GeoJSON feature). + */ + fitExtent(extent: [[number, number], [number, number]], object: ExtendedFeature): this; + /** + * Sets the projection’s scale and translate to fit the specified geographic feature collection in the center of the given extent. + * Returns the projection. + * + * Any clip extent is ignored when determining the new scale and translate. The precision used to compute the bounding box of the given object is computed at an effective scale of 150. + * + * @param extent The extent, specified as an array [[x₀, y₀], [x₁, y₁]], where x₀ is the left side of the bounding box, y₀ is the top, x₁ is the right and y₁ is the bottom. + * @param object A geographic feature collection supported by d3-geo (An extension of GeoJSON feature collection). + */ + fitExtent(extent: [[number, number], [number, number]], object: ExtendedFeatureCollection>): this; + /** + * Sets the projection’s scale and translate to fit the specified geographic geometry object in the center of the given extent. + * Returns the projection. + * + * Any clip extent is ignored when determining the new scale and translate. The precision used to compute the bounding box of the given object is computed at an effective scale of 150. + * + * @param extent The extent, specified as an array [[x₀, y₀], [x₁, y₁]], where x₀ is the left side of the bounding box, y₀ is the top, x₁ is the right and y₁ is the bottom. + * @param object A GeoJson Geometry Object or GeoSphere object supported by d3-geo (An extension of GeoJSON). + */ + fitExtent(extent: [[number, number], [number, number]], object: GeoGeometryObjects): this; + /** + * Sets the projection’s scale and translate to fit the specified geographic geometry collection in the center of the given extent. + * Returns the projection. + * + * Any clip extent is ignored when determining the new scale and translate. The precision used to compute the bounding box of the given object is computed at an effective scale of 150. + * + * @param extent The extent, specified as an array [[x₀, y₀], [x₁, y₁]], where x₀ is the left side of the bounding box, y₀ is the top, x₁ is the right and y₁ is the bottom. + * @param object A geographic geometry collection supported by d3-geo (An extension of GeoJSON geometry collection). + */ + fitExtent(extent: [[number, number], [number, number]], object: ExtendedGeometryCollection): this; + + + /** + * Sets the projection’s scale and translate to fit the specified geographic feature in the center of an extent with the given size and top-left corner of [0, 0]. + * Returns the projection. + * + * Any clip extent is ignored when determining the new scale and translate. The precision used to compute the bounding box of the given object is computed at an effective scale of 150. + * + * @param size The size of the extent, specified as an array [width, height]. + * @param object A geographic feature supported by d3-geo (An extension of GeoJSON feature). + */ + fitSize(size: [number, number], object: ExtendedFeature): this; + /** + * Sets the projection’s scale and translate to fit the specified geographic feature collection in the center of an extent with the given size and top-left corner of [0, 0]. + * Returns the projection. + * + * Any clip extent is ignored when determining the new scale and translate. The precision used to compute the bounding box of the given object is computed at an effective scale of 150. + * + * @param size The size of the extent, specified as an array [width, height]. + * @param object A geographic feature collection supported by d3-geo (An extension of GeoJSON feature collection). + */ + fitSize(size: [number, number], object: ExtendedFeatureCollection>): this; + /** + * Sets the projection’s scale and translate to fit the specified geographic geometry object in the center of an extent with the given size and top-left corner of [0, 0]. + * Returns the projection. + * + * Any clip extent is ignored when determining the new scale and translate. The precision used to compute the bounding box of the given object is computed at an effective scale of 150. + * + * @param size The size of the extent, specified as an array [width, height]. + * @param object A GeoJson Geometry Object or GeoSphere object supported by d3-geo (An extension of GeoJSON). + */ + fitSize(size: [number, number], object: GeoGeometryObjects): this; + /** + * Sets the projection’s scale and translate to fit the specified geographic geometry collection in the center of an extent with the given size and top-left corner of [0, 0]. + * Returns the projection. + * + * Any clip extent is ignored when determining the new scale and translate. The precision used to compute the bounding box of the given object is computed at an effective scale of 150. + * + * @param size The size of the extent, specified as an array [width, height]. + * @param object A geographic geometry collection supported by d3-geo (An extension of GeoJSON geometry collection). + */ + fitSize(size: [number, number], object: ExtendedGeometryCollection): this; + + + /** + * Returns the current scale factor. + * + * The scale factor corresponds linearly to the distance between projected points; however, absolute scale factors are not equivalent across projections. + */ + scale(): number; + /** + * Sets the projection’s scale factor to the specified value and returns the projection. + * The scale factor corresponds linearly to the distance between projected points; however, absolute scale factors are not equivalent across projections. + * + * @param scale Scale factor to be used for the projection. + */ + scale(scale: number): this; + + /** + * Returns the current translation offset. + * The translation offset determines the pixel coordinates of the projection’s center. + */ + translate(): [number, number]; + /** + * Sets the projection’s translation offset to the specified two-element array [tx, ty] and returns the projection. + * The translation offset determines the pixel coordinates of the projection’s center. + * + * @param point A two-element array [tx, ty] specifying the translation offset. + */ + translate(point: [number, number]): this; +} + +/** + * Returns the identity transform which can be used to scale, translate and clip planar geometry. + */ +export function geoIdentity(): GeoIdentityTranform; diff --git a/d3/index.d.ts b/d3/index.d.ts index 0fb15d3a76..bb5fb17b96 100644 --- a/d3/index.d.ts +++ b/d3/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for D3JS d3 standard bundle v4.2 +// Type definitions for D3JS d3 standard bundle v4.3 // Project: https://github.com/d3/d3 // Definitions by: Tom Wanzek , Alex Ford , Boris Yankov // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped diff --git a/d3/package.json b/d3/package.json index 2eeba93e38..e06dc77245 100644 --- a/d3/package.json +++ b/d3/package.json @@ -12,7 +12,7 @@ "@types/d3-ease": "1.0", "@types/d3-force": "1.0", "@types/d3-format": "1.0", - "@types/d3-geo": "1.2", + "@types/d3-geo": "1.3", "@types/d3-hierarchy": "1.0", "@types/d3-interpolate": "1.1", "@types/d3-path": "1.0", @@ -28,7 +28,7 @@ "@types/d3-time-format": "2.0", "@types/d3-timer": "1.0", "@types/d3-transition": "1.0", - "@types/d3-voronoi": "1.0", + "@types/d3-voronoi": "1.1", "@types/d3-zoom": "1.0" } } diff --git a/dat-gui/index.d.ts b/dat-gui/index.d.ts index 5a902b228b..7d1e2147d7 100644 --- a/dat-gui/index.d.ts +++ b/dat-gui/index.d.ts @@ -1,7 +1,7 @@ -// Type definitions for dat.GUI v0.5 +// Type definitions for dat.GUI v0.6.1 // Project: https://github.com/dataarts/dat.gui -// Definitions by: Satoru Kimura -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// Definitions by: Satoru Kimura , ZongJing Lu +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped declare namespace dat { export class GUI { @@ -23,11 +23,40 @@ declare namespace dat { addColor(target: Object, propName:string, rgba: number[]): GUIController; // rgb or rgba addColor(target: Object, propName:string, hsv:{h:number; s:number; v:number}): GUIController; + remove(controller: GUIController): void; + destroy(): void; + addFolder(propName:string): GUI; - close(): void; open(): void; - remember(target: Object): void; + close(): void; + + remember(target: Object, ...additionalTargets: Object[]): void; + getRoot(): GUI; + + getSaveObject(): Object; + save(): void; + saveAs(presetName:string): void; + revert(gui:GUI): void; + + listen(controller: GUIController): void; + updateDisplay(): void; + + // gui properties in dat/gui/GUI.js + parent(): GUI; + scrollable(): boolean; + autoPlace(): boolean; + preset(): string; + preset(s: string): void; + width(): number; + width(n: number): void; + name(): string; + name(s: string): void; + closed(): boolean; + closed(b: boolean): void; + load(): Object; + useLocalStorage(): boolean; + useLocalStorage(b: boolean): void; } export interface GUIParams{ @@ -41,17 +70,28 @@ declare namespace dat { export class GUIController { destroy(): void; - fire(): GUIController; - getValue(): any; - isModified(): boolean; - listen(): GUIController; - min(n: number): GUIController; - remove(target: GUIController): void; - setValue(value: any): GUIController; - step(n: number): GUIController; - updateDisplay(): void; + // Controller onChange: (value?: any) => void; onFinishChange: (value?: any) => void; + + setValue(value: any): GUIController; + getValue(): any; + updateDisplay(): void; + isModified(): boolean; + + // NumberController + min(n: number): GUIController; + max(n: number): GUIController; + step(n: number): GUIController; + + // FunctionController + fire(): GUIController; + + // augmentController in dat/gui/GUI.js + options(option:any):GUIController; + name(s: string): GUIController; + listen(): GUIController; + remove(): GUIController; } } diff --git a/deep-assign/deep-assign-tests.ts b/deep-assign/deep-assign-tests.ts new file mode 100644 index 0000000000..f38a1fc378 --- /dev/null +++ b/deep-assign/deep-assign-tests.ts @@ -0,0 +1,10 @@ +import * as deepAssign from 'deep-assign'; + +deepAssign({a: 1}); +deepAssign({a: 1}, {b: 2}); +deepAssign({a: 1, b: {c: 2}}, {b: {e: 33}, x: 11}); +deepAssign({}, {a: 1}, {b: 2}, {c: 3}); +deepAssign({}, {a: 1}, {b: 2}, {c: 3}, {d: 4}); +deepAssign({}, {a: 1}, {b: 2}, {c: 3}, {d: 4}, {e: 5}); +deepAssign({}, {a: 1}, {b: 2}, {c: 3}, {d: 4}, {e: 5}, {f: 6}); +deepAssign({}, {a: 1}, {b: 2}, {c: 3}, {d: 4}, {e: 5}, {f: 6}, {g: 7}); diff --git a/deep-assign/index.d.ts b/deep-assign/index.d.ts new file mode 100644 index 0000000000..46d4cf09f2 --- /dev/null +++ b/deep-assign/index.d.ts @@ -0,0 +1,77 @@ +// Type definitions for clone 0.1.11 +// Project: https://github.com/sindresorhus/deep-assign +// Definitions by: Ionut Costica +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/** + * Pretty much just returns the target object + * @param target Base object + */ +declare function deepAssign(target: T): T; +/** + * Deeply assigns all the properties of the source object to the + * target object + * @param target Base object + * @param source Extending object + */ +declare function deepAssign(target: T, source: U): T & U; +/** + * Deeply assigns all the properties of the source objects to the + * target object + * @param target Base object + * @param source1 First extending object + * @param source2 Second extending object + */ +declare function deepAssign(target: T, source1: U, source2: V): T & U & V; +/** + * Deeply assigns all the properties of the source objects to the + * target object + * @param target Base object + * @param source1 First extending object + * @param source2 Second extending object + * @param source3 Third extending object + */ +declare function deepAssign(target: T, source1: U, source2: V, source3: W): T & U & V & W; +/** + * Deeply assigns all the properties of the source objects to the + * target object + * @param target Base object + * @param source1 First extending object + * @param source2 Second extending object + * @param source3 Third extending object + * @param source4 Fourth extending object + */ +declare function deepAssign(target: T, source1: U, source2: V, source3: W, source4: X): T & U & V & W & X; +/** + * Deeply assigns all the properties of the source objects to the + * target object + * @param target Base object + * @param source1 First extending object + * @param source2 Second extending object + * @param source3 Third extending object + * @param source4 Fourth extending object + * @param source5 Fifth extending object + */ +declare function deepAssign(target: T, source1: U, source2: V, source3: W, source4: X, source5: Y): T & U & V & W & X & Y; +/** + * Deeply assigns all the properties of the source objects to the + * target object + * @param target Base object + * @param source1 First extending object + * @param source2 Second extending object + * @param source3 Third extending object + * @param source4 Fourth extending object + * @param source5 Fifth extending object + * @param source6 Sixth extending object + */ +declare function deepAssign(target: T, source1: U, source2: V, source3: W, source4: X, source5: Y, source6: Z): T & U & V & W & X & Y & Z; +/** + * Deeply assigns all the properties of the source objects to the + * target object + * @param target Base object + * @param sources Extending objects + */ +declare function deepAssign(target: any, ...sources: any[]): any; + +declare namespace deepAssign {} +export = deepAssign; diff --git a/deep-assign/tsconfig.json b/deep-assign/tsconfig.json new file mode 100644 index 0000000000..5f80a3df8f --- /dev/null +++ b/deep-assign/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "deep-assign-tests.ts" + ] +} diff --git a/deku/deku-tests.ts b/deku/deku-tests.ts new file mode 100644 index 0000000000..d123c7b8f7 --- /dev/null +++ b/deku/deku-tests.ts @@ -0,0 +1,208 @@ +// Example from deku/examples/basic +(function (){ + const {h, createApp} = deku + + function view(state = { count: 0 }, dispatch: Function){ + return ( + h('div', {}, [ + h('div', {}, 'Counter: ' + state.count), + h('button', {onClick: increment(dispatch)}, 'Increment'), + h('button', {onClick: decrement(dispatch)}, 'Decrement') + ]) + ) + } + + function increment(dispatch: Function){ + return () => dispatch({ + type: 'INCREMENT' + }) + } + + function decrement(dispatch: Function){ + return () => dispatch({ + type: 'DECREMENT' + }) + } + + let render = createApp(document.body) + + function main(state: any){ + let vnode = view(state, (action: any) => main({ count: 0 })) + + render(vnode) + } + + main({ count: 0 }) +})(); + +// Example from deku/docs/api/create-app +(function (){ + const {createApp, element} = deku + + const App = ({ props = { size: 'medium' } }) => { + return element('div', { class: `size-${ props.size }` }) + } + + const render = createApp(document.body) + + render(element(App, { size: 'small' })) + + render(element(App, { size: 'large' })) +})(); + +// Example from deku/docs/api/string +(function (){ + const { h } = deku + + const html = deku.string.render(h('div', {}, [ + h('header'), + h('sidebar'), + h('app'), + ])) +})(); + +// Example from deku/docs/api/element +(function (){ + const { element } = deku + + // Native elements + element('div', { class: 'greeting' }, [ + element('span', {}, ['Hello']) + ]) + + // Components + let App = { + render: ({ props = { name: '' } }) => element('div', {}, `Hello ${ props.name }!`) + } + + element(App, { name: 'Tom' }) +})(); + +// deku.createApp +(function (){ + const { createApp, element } = deku + + let render: Function = createApp(document.body) + + render(element('div')) + + render = createApp(document.body, (action: any) => { + render(element('div')) + }) + + render(element('div')) +})(); + +// deku.dom +(function (){ + const { dom, element } = deku + + let el: HTMLElement = dom.create(element('div'), '0.0', ()=>{}, {}) + + const update: (DOMElement: HTMLElement, action: any) => HTMLElement = dom.update(()=>{}, {}) + + el = update(el, {}) +})(); + +// deku.string +(function (){ + const { element } = deku + + let html: string = deku.string.render(element('div')) + + html = deku.string.render(element('div'), {}) +})(); + +// deku.element +(function (){ + const { element } = deku + + let v: deku.VirtualElement = element('div') + + v = element('div', {}) + + v = element('div', {}, []) + + v = element('div', {}, ['foo', 0, 'bar']) + + v = element('div', {}, 'foo') + + v = element('div', {}, 0) + + v = element('div', {}, 'foo', 'bar') + + let Component = { + render({}){ + return element('div') + } + } + + v = element(Component) + + v = element(Component, {}) + + v = element(Component, {}, []) +})(); + +// deku.diff +(function (){ + const { diff, element } = deku + + const { Actions } = diff + + let diffs: any[] = diff.diffNode(element('div'), element('span')) + + let actions: deku.diff.Actions[] = [ + Actions.setAttribute('class', 'foo', 'bar'), + Actions.removeAttribute('foo', {}), + Actions.insertChild({}, 0, '0.0'), + Actions.removeChild(0), + Actions.updateChild(0, []), + Actions.updateChildren([]), + Actions.insertBefore(0), + Actions.replaceNode({}, {}, '0.0'), + Actions.removeNode({}), + Actions.sameNode(), + Actions.updateThunk({}, {}, '0.0') + ] + + actions.forEach(action => { + Actions.case({ + setAttribute: (name: string, value: any, previousValue: any) => { + }, + _: () => { + } + }, action) + }) +})(); + +// deku.vnode +(function (){ + const { vnode, element } = deku + + let v: deku.VirtualElement = vnode.create('div') + + v = vnode.createTextElement('foo') + + const Component = { + render({}){ + return element('div') + } + } + + v = vnode.createThunkElement(Component.render, '', Component, [], {}) + + v = vnode.createEmptyElement() + + let b: boolean = vnode.isThunk(v) + + b = vnode.isText(v) + + b = vnode.isEmpty(v) + + b = vnode.isSameThunk(v, v) + + let path: string = vnode.createPath('0', '1', '2', '3') + + path = vnode.createPath(0, 1, 2, 3) +})(); diff --git a/deku/index.d.ts b/deku/index.d.ts new file mode 100644 index 0000000000..ff5a68f8bb --- /dev/null +++ b/deku/index.d.ts @@ -0,0 +1,136 @@ +// Type definitions for deku v2.0 +// Project: https://github.com/anthonyshort/deku +// Definitions by: Sho Fuji +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export = deku; +export as namespace deku; + +declare namespace deku { + + interface VirtualElement { + type: string; + } + + /** + * Create a DOM renderer using a container element. + * Everything will be rendered inside of that container. + * Returns a function that accepts new state that can replace what is currently rendered. + */ + function createApp(el: HTMLElement, dispatch?: Dispatch): Render; + + namespace dom { + /** + * Create a real DOM element from a virtual element, recursively looping down. + * When it finds custom elements it will render them, cache them, and keep going, + * so they are treated like any other native element. + */ + function create(vnode: VirtualElement, path: string, dispatch: Dispatch, context: C): HTMLElement; + + /** + * Modify a DOM element given an array of actions. + */ + function update(dispatch: Dispatch, context: C): (DOMElement: HTMLElement, action: A) => HTMLElement; + } + + namespace string { + /** + * Render a virtual element to a string. You can pass in an option state context object that will be given to all components. + */ + function render(vnode: VirtualElement): string; + function render(vnode: VirtualElement, context: C): string; + } + + /** + * This function lets us create virtual nodes using a simple syntax. + * It is compatible with JSX transforms so you can use JSX to write nodes that will compile to this function. + */ + function element(type: string): VirtualElement; + function element(type: string, attributes: A, ...children: any[]): VirtualElement; + + function element(type: Thunk): VirtualElement; + function element(type: Thunk, attributes: A, ...children: any[]): VirtualElement; + + var h: typeof element; + + namespace diff { + /** + * Compare two virtual nodes and return an array of changes to turn the left into the right. + */ + function diffNode(prevNode: VirtualElement, nextNode: VirtualElement): any[]; + + class Actions { + private _keys: string[]; + private _name: string; + + static setAttribute(a: string, b: any, c: any): Actions; + static removeAttribute(a: string, b: any): Actions; + static insertChild(a: any, b: number, c: string): Actions; + static removeChild(a: number): Actions; + static updateChild(a: number, b: any[]): Actions; + static updateChildren(a: any[]): Actions; + static insertBefore(a: number): Actions; + static replaceNode(a: any, b: any, c: string): Actions; + static removeNode(a: any): Actions; + static sameNode(): Actions; + static updateThunk(a: any, b: any, c: string): Actions; + + static case(pat: any, action: Actions): any; + } + } + + namespace vnode { + var create: typeof element; + + /** + * Text nodes are stored as objects to keep things simple + */ + function createTextElement(text: string): VirtualElement; + + /** + * Lazily-rendered virtual nodes + */ + function createThunkElement(fn: (model: Model) => VirtualElement, key: string, props: P, children: T[], options: O): VirtualElement; + + function createEmptyElement(): VirtualElement; + + function isThunk(vnode: VirtualElement): boolean; + + function isText(vnode: VirtualElement): boolean; + + function isEmpty(vnode: VirtualElement): boolean; + + function isSameThunk(prevNode: VirtualElement, nextNode: VirtualElement): boolean; + + // function isValidAttribute(value: A): boolean; + + /** + * Create a node path, eg. (23,5,2,4) => '23.5.2.4' + */ + function createPath(...paths: (number|string)[]): string; + } +} + +interface Model { + props?: any, + children?: any[], + path?: string, + dispatch?: Dispatch, + context?: any +} + +interface Component { + render: (model: Model) => deku.VirtualElement; + onCreate?: (model: Model) => any; + onUpdate?: (model: Model) => any; + onRemove?: (model: Model) => any; +} + +/** + * Thunk object passed to `element` + */ +type Thunk = Component | ((model: Model) => deku.VirtualElement); + +type Render = (vnode: deku.VirtualElement, context?: any) => void; + +type Dispatch = (action: any) => any; diff --git a/deku/tsconfig.json b/deku/tsconfig.json new file mode 100644 index 0000000000..3a18954e88 --- /dev/null +++ b/deku/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "deku-tests.ts" + ] +} diff --git a/dojo/index.d.ts b/dojo/index.d.ts index 11f8a27fbb..b3af7dd779 100644 --- a/dojo/index.d.ts +++ b/dojo/index.d.ts @@ -3,9 +3,6 @@ // Definitions by: Michael Van Sickle // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -declare function define(dependencies: String[], factory: Function): any; -declare function require(config?:Object, dependencies?: String[], callback?: Function): any; - declare namespace dojox.dtl { interface __StringArgs { } interface __ObjectArgs { } @@ -16124,8 +16121,12 @@ declare namespace dojo { */ interface instrumentation{(Deferred: any): void} + interface Thenable { + then(onFulfilled?: (value?: T) => Thenable | U, onRejected?: (error?: Error) => Thenable | U): Thenable; + } + interface Callback { - (arg: T): U|Promise; + (arg: T): U|Thenable; } /** @@ -16136,7 +16137,7 @@ declare namespace dojo { * instances of this class. * */ - interface Promise { + interface Promise extends Thenable { /** * Add a callback to be invoked when the promise is resolved * or rejected. @@ -28291,6 +28292,10 @@ declare module "dojo/promise/Promise" { interface Promise extends dojo.promise.Promise { } export = Promise; } +declare module "dojo/promise/Thenable" { + interface Thenable extends dojo.promise.Thenable { } + export = Thenable; +} declare module "dojo/rpc/JsonpService" { var exp: typeof dojo.rpc.JsonpService export=exp; diff --git a/dotenv/dotenv-tests.ts b/dotenv/dotenv-tests.ts index ea54a99b6d..3d9af0f52e 100644 --- a/dotenv/dotenv-tests.ts +++ b/dotenv/dotenv-tests.ts @@ -1,15 +1,19 @@ - - import dotenv = require('dotenv'); -dotenv.config({ +// typically, result will be an Object +let env = dotenv.config({ silent: true }); +// ... but it might also be `false` +let result = dotenv.config({ + path: '.non-existing-env' +}); + dotenv.config({ path: '.env' -}) +}); dotenv.config({ encoding: 'utf8' -}) \ No newline at end of file +}); diff --git a/dotenv/index.d.ts b/dotenv/index.d.ts index 7391133781..a326ceaa58 100644 --- a/dotenv/index.d.ts +++ b/dotenv/index.d.ts @@ -1,12 +1,35 @@ // Type definitions for dotenv 2.0.0 // Project: https://github.com/motdotla/dotenv -// Definitions by: Jussi Kinnula -// Definitions: https://github.com/jussikinnula/DefinitelyTyped +// Definitions by: Jussi Kinnula , Borek Bernard +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -export function config(options?: dotenvOptions): boolean; +/** + * Loads `.env` into `process.env`. + * + * @param options + * @return Object Object with the parsed keys and values, e.g., 'KEY=value' becomes { KEY: 'value' } + */ +export function config(options?: DotenvOptions): Object | false; -interface dotenvOptions { +export interface DotenvOptions { + /** + * Dotenv outputs a warning to your console if missing a .env file. Suppress this warning using silent. + * + * @default false + */ silent?: boolean; + + /** + * You can specify a custom path if your file containing environment variables is named or located differently. + * + * @default '.env' + */ path?: string; + + /** + * You may specify the encoding of your file containing environment variables using this option. + * + * @default 'utf8' + */ encoding?: string; } diff --git a/dotenv/tsconfig.json b/dotenv/tsconfig.json index bbd1c438e6..fcecbfabaf 100644 --- a/dotenv/tsconfig.json +++ b/dotenv/tsconfig.json @@ -3,7 +3,7 @@ "module": "commonjs", "target": "es6", "noImplicitAny": true, - "strictNullChecks": false, + "strictNullChecks": true, "baseUrl": "../", "typeRoots": [ "../" @@ -16,4 +16,4 @@ "index.d.ts", "dotenv-tests.ts" ] -} \ No newline at end of file +} diff --git a/easeljs/index.d.ts b/easeljs/index.d.ts index a0dc7b566f..a5916a56f2 100644 --- a/easeljs/index.d.ts +++ b/easeljs/index.d.ts @@ -623,6 +623,7 @@ declare namespace createjs { primary: boolean; rawX: number; rawY: number; + relatedTarget: DisplayObject; stageX: number; stageY: number; mouseMoveOutside: boolean; diff --git a/ej.web.all/ej.web.all-tests.ts b/ej.web.all/ej.web.all-tests.ts index 389d152c44..faf5a48e0f 100644 --- a/ej.web.all/ej.web.all-tests.ts +++ b/ej.web.all/ej.web.all-tests.ts @@ -2,7 +2,7 @@ /// - + module AccordionComponent { $(function () { var sample = new ej.Accordion($("#basicAccordion"), { @@ -247,63 +247,6 @@ module ChartComponent { - - -module circulargaugecomponent { - $(function () { - var circularsample = new ej.datavisualization.CircularGauge($("#CircularGauge"), { - enableAnimation: false, - isResponsive: true, - backgroundColor: "transparent", width: 500, - scales: [{ - showRanges: true, - startAngle: 122, sweepAngle: 296, radius: 130, showScaleBar: true, size: 1, maximum: 120, majorIntervalValue: 20, minorIntervalValue: 10, - border: { - width: 0.5, - }, - pointers: [{ - value: 60, - showBackNeedle: true, - backNeedleLength: 20, - length: 95, - width: 7, - pointerCap: { radius: 12 } - }], - ticks: [{ - type: "major", - distanceFromScale: 2, - height: 16, - width: 1, color: "#8c8c8c" - }, { type: "minor", height: 8, width: 1, distanceFromScale: 2, color: "#8c8c8c" }], - labels: [{ - color: "#8c8c8c" - }], - ranges: [{ - distanceFromScale: -30, - startValue: 0, - endValue: 70 - }, { - distanceFromScale: -30, - startValue: 70, - endValue: 110, - backgroundColor: "#fc0606", - border: { color: "#fc0606" } - }, - { - distanceFromScale: -30, - startValue: 110, - endValue: 120, - backgroundColor: "#f5b43f", - border: { color: "#f5b43f" } - }] - }] - }); - }); -} - - - - module ColorPickerComponent { $(function () { var colorSample = new ej.ColorPicker($("#colorpick"), { @@ -1027,357 +970,9 @@ module PDFViewerComponent { -module PivotChartOlap { - $(function () { - var sample = new ej.PivotChart($("#PivotChart"),{ - dataSource: { - data: "http://bi.syncfusion.com/olap/msmdpump.dll", - catalog: "Adventure Works DW 2008 SE", - cube: "Adventure Works", - rows: [ - { - fieldName: "[Date].[Fiscal]" - } - ], - columns: [ - { - fieldName: "[Customer].[Customer Geography]" - } - ], - values: [ - { - measures: [ - { - fieldName: "[Measures].[Internet Sales Amount]" - } - ], - axis: "columns" - } - ], - filters:[] - }, - isResponsive: true, - commonSeriesOptions: { - enableAnimation: true, - type: "column", tooltip: { visible: true } - }, - size: { height: "460px", width: "950px" }, - primaryXAxis: { title: { text: "Date - Fiscal" }, labelRotation: 0 }, - primaryYAxis: { title: { text: "Internet Sales Amount" } }, - legend: { visible: true, rowCount: 2 } - }); - }); -} -var pivot_dataset = [ - { Amount: 100, Country: "Canada", Date: "FY 2005", Product: "Bike", Quantity: 2, State: "Alberta" }, - { Amount: 200, Country: "Canada", Date: "FY 2006", Product: "Van", Quantity: 3, State: "British Columbia" }, - { Amount: 300, Country: "Canada", Date: "FY 2007", Product: "Car", Quantity: 4, State: "Brunswick" }, - { Amount: 150, Country: "Canada", Date: "FY 2008", Product: "Bike", Quantity: 3, State: "Manitoba" }, - { Amount: 200, Country: "Canada", Date: "FY 2006", Product: "Car", Quantity: 4, State: "Ontario" }, - { Amount: 100, Country: "Canada", Date: "FY 2007", Product: "Van", Quantity: 1, State: "Quebec" }, - { Amount: 200, Country: "France", Date: "FY 2005", Product: "Bike", Quantity: 2, State: "Charente-Maritime" }, - { Amount: 250, Country: "France", Date: "FY 2006", Product: "Van", Quantity: 4, State: "Essonne" }, - { Amount: 300, Country: "France", Date: "FY 2007", Product: "Car", Quantity: 3, State: "Garonne (Haute)" }, - { Amount: 150, Country: "France", Date: "FY 2008", Product: "Van", Quantity: 2, State: "Gers" }, - { Amount: 200, Country: "Germany", Date: "FY 2006", Product: "Van", Quantity: 3, State: "Bayern" }, - { Amount: 250, Country: "Germany", Date: "FY 2007", Product: "Car", Quantity: 3, State: "Brandenburg" }, - { Amount: 150, Country: "Germany", Date: "FY 2008", Product: "Car", Quantity: 4, State: "Hamburg" }, - { Amount: 200, Country: "Germany", Date: "FY 2008", Product: "Bike", Quantity: 4, State: "Hessen" }, - { Amount: 150, Country: "Germany", Date: "FY 2007", Product: "Van", Quantity: 3, State: "Nordrhein-Westfalen" }, - { Amount: 100, Country: "Germany", Date: "FY 2005", Product: "Bike", Quantity: 2, State: "Saarland" }, - { Amount: 150, Country: "United Kingdom", Date: "FY 2008", Product: "Bike", Quantity: 5, State: "England" }, - { Amount: 250, Country: "United States", Date: "FY 2007", Product: "Car", Quantity: 4, State: "Alabama" }, - { Amount: 200, Country: "United States", Date: "FY 2005", Product: "Van", Quantity: 4, State: "California" }, - { Amount: 100, Country: "United States", Date: "FY 2006", Product: "Bike", Quantity: 2, State: "Colorado" }, - { Amount: 150, Country: "United States", Date: "FY 2008", Product: "Car", Quantity: 3, State: "New Mexico" }, - { Amount: 200, Country: "United States", Date: "FY 2005", Product: "Bike", Quantity: 4, State: "New York" }, - { Amount: 250, Country: "United States", Date: "FY 2008", Product: "Car", Quantity: 3, State: "North Carolina" }, - { Amount: 300, Country: "United States", Date: "FY 2007", Product: "Van", Quantity: 4, State: "South Carolina" } -] - -module PivotChartRelational { - - $(function () { - var sample = new ej.PivotChart($("#PivotChart"),{ - dataSource: { - data: pivot_dataset, - rows: [ - { - fieldName: "Country", - fieldCaption: "Country" - }, - { - fieldName: "State", - fieldCaption: "State" - }, - { - fieldName: "Date", - fieldCaption: "Date" - } - ], - columns: [ - { - fieldName: "Product", - fieldCaption: "Product" - } - ], - values: [ - { - fieldName: "Amount", - fieldCaption: "Amount" - } - ], - filters:[] - }, - isResponsive: true, - commonSeriesOptions: { - enableAnimation: true, - type: "column", tooltip: { visible: true } - }, - size: { height: "460px", width: "950px" }, - primaryYAxis: { title: { text: "Amount" } }, - legend: { visible: true } - }); - }); -} - - - -module PivotGaugeOlap { - - $(function () { - var sample = new ej.PivotGauge($("#PivotGauge"),{ - dataSource: { - data: "http://bi.syncfusion.com/olap/msmdpump.dll", - catalog: "Adventure Works DW 2008 SE", - cube: "Adventure Works", - rows: [ - { - fieldName: "[Date].[Fiscal]", - filterItems: { filterType: "include", values: ["[Date].[Fiscal].[Fiscal Year].&[2004]"] } - }, - ], - columns: [ - { - fieldName: "[Customer].[Customer Geography]" - } - ], - values: [ - { - measures: [ - { - fieldName: "[Measures].[Internet Sales Amount]" - }, - { - fieldName: "[Measures].[Internet Revenue Status]" - }, - { - fieldName: "[Measures].[Internet Revenue Trend]" - }, - { - fieldName: "[Measures].[Internet Revenue Goal]" - }, - ], - axis: "columns" - } - ], - filters:[] - }, - enableTooltip: true, isResponsive: true, - backgroundColor: "transparent", - labelFormatSettings: { decimalPlaces: 2 }, - scales: [{ - showRanges: true, - radius: 150, showScaleBar: true, size: 1, - border: { - width: 0.5 - }, - showIndicators: true, showLabels: true, - pointers: [{ - showBackNeedle: true, - backNeedleLength: 20, - length: 120, - width: 7 - }, - { - type: "marker", - markerType: "diamond", - distanceFromScale: 5, - placement: "center", - backgroundColor: "#29A4D9", - length: 25, - width: 15 - }], - ticks: [{ - type: "major", - distanceFromScale: 2, - height: 16, - width: 1, color: "#8c8c8c" - }, - { - type: "minor", - height: 6, - width: 1, - distanceFromScale: 2, - color: "#8c8c8c" - }], - labels: [{ - color: "#8c8c8c" - }], - ranges: [{ - distanceFromScale: -5, - backgroundColor: "#fc0606", - border: { color: "#fc0606" } - }, - { - distanceFromScale: -5 - }], - customLabels: [{ - position: { x: 180, y: 290 }, - font: { size: "10px", fontFamily: "Segoe UI", fontStyle: "Normal" }, color: "#666666" - }, - { - position: { x: 180, y: 320 }, - font: { size: "10px", fontFamily: "Segoe UI", fontStyle: "Normal" }, color: "#666666" - }, - { - position: { x: 180, y: 150 }, - font: { size: "12px", fontFamily: "Segoe UI", fontStyle: "Normal" }, color: "#666666" - }] - }] - }); - }); -} - - - -var pivot_dataset = [ - { Amount: 100, Country: "Canada", Date: "FY 2005", Product: "Bike", Quantity: 2, State: "Alberta" }, - { Amount: 200, Country: "Canada", Date: "FY 2006", Product: "Van", Quantity: 3, State: "British Columbia" }, - { Amount: 300, Country: "Canada", Date: "FY 2007", Product: "Car", Quantity: 4, State: "Brunswick" }, - { Amount: 150, Country: "Canada", Date: "FY 2008", Product: "Bike", Quantity: 3, State: "Manitoba" }, - { Amount: 200, Country: "Canada", Date: "FY 2006", Product: "Car", Quantity: 4, State: "Ontario" }, - { Amount: 100, Country: "Canada", Date: "FY 2007", Product: "Van", Quantity: 1, State: "Quebec" }, - { Amount: 200, Country: "France", Date: "FY 2005", Product: "Bike", Quantity: 2, State: "Charente-Maritime" }, - { Amount: 250, Country: "France", Date: "FY 2006", Product: "Van", Quantity: 4, State: "Essonne" }, - { Amount: 300, Country: "France", Date: "FY 2007", Product: "Car", Quantity: 3, State: "Garonne (Haute)" }, - { Amount: 150, Country: "France", Date: "FY 2008", Product: "Van", Quantity: 2, State: "Gers" }, - { Amount: 200, Country: "Germany", Date: "FY 2006", Product: "Van", Quantity: 3, State: "Bayern" }, - { Amount: 250, Country: "Germany", Date: "FY 2007", Product: "Car", Quantity: 3, State: "Brandenburg" }, - { Amount: 150, Country: "Germany", Date: "FY 2008", Product: "Car", Quantity: 4, State: "Hamburg" }, - { Amount: 200, Country: "Germany", Date: "FY 2008", Product: "Bike", Quantity: 4, State: "Hessen" }, - { Amount: 150, Country: "Germany", Date: "FY 2007", Product: "Van", Quantity: 3, State: "Nordrhein-Westfalen" }, - { Amount: 100, Country: "Germany", Date: "FY 2005", Product: "Bike", Quantity: 2, State: "Saarland" }, - { Amount: 150, Country: "United Kingdom", Date: "FY 2008", Product: "Bike", Quantity: 5, State: "England" }, - { Amount: 250, Country: "United States", Date: "FY 2007", Product: "Car", Quantity: 4, State: "Alabama" }, - { Amount: 200, Country: "United States", Date: "FY 2005", Product: "Van", Quantity: 4, State: "California" }, - { Amount: 100, Country: "United States", Date: "FY 2006", Product: "Bike", Quantity: 2, State: "Colorado" }, - { Amount: 150, Country: "United States", Date: "FY 2008", Product: "Car", Quantity: 3, State: "New Mexico" }, - { Amount: 200, Country: "United States", Date: "FY 2005", Product: "Bike", Quantity: 4, State: "New York" }, - { Amount: 250, Country: "United States", Date: "FY 2008", Product: "Car", Quantity: 3, State: "North Carolina" }, - { Amount: 300, Country: "United States", Date: "FY 2007", Product: "Van", Quantity: 4, State: "South Carolina" } -] - -module PivotGaugeRelational { - $(function () { - var sample = new ej.PivotGauge($("#PivotGauge"),{ - dataSource: { - data: pivot_dataset, - rows: [ - { - fieldName: "Country", - fieldCaption: "Country" - }, - { - fieldName: "State", - fieldCaption: "State" - } - ], - columns: [ - { - fieldName: "Product", - fieldCaption: "Product" - } - ], - values: [ - { - fieldName: "Amount", - fieldCaption: "Amount" - }, - { - fieldName: "Quantity", - fieldCaption: "Quantity" - } - ] - }, - enableTooltip: true, isResponsive: true, - backgroundColor: "transparent", - labelFormatSettings: { decimalPlaces: 2 }, - scales: [{ - showRanges: true, - radius: 150, showScaleBar: true, size: 1, - border: { - width: 0.5 - }, - showIndicators: true, showLabels: true, - pointers: [{ - showBackNeedle: true, - backNeedleLength: 20, - length: 120, - width: 7 - }, - { - type: "marker", - markerType: "diamond", - distanceFromScale: 5, - placement: "center", - backgroundColor: "#29A4D9", - length: 25, - width: 15 - }], - ticks: [{ - type: "major", - distanceFromScale: 2, - height: 16, - width: 1, color: "#8c8c8c" - }, - { - type: "minor", - height: 6, - width: 1, - distanceFromScale: 2, - color: "#8c8c8c" - }], - labels: [{ - color: "#8c8c8c" - }], - ranges: [{ - distanceFromScale: -5, - backgroundColor: "#fc0606", - border: { color: "#fc0606" } - }, - { - distanceFromScale: -5 - }], - customLabels: [{ - position: { x: 180, y: 290 }, - font: { size: "10px", fontFamily: "Segoe UI", fontStyle: "Normal" }, color: "#666666" - }, - { - position: { x: 180, y: 320 }, - font: { size: "10px", fontFamily: "Segoe UI", fontStyle: "Normal" }, color: "#666666" - }, - { - position: { x: 180, y: 150 }, - font: { size: "12px", fontFamily: "Segoe UI", fontStyle: "Normal" }, color: "#666666" - }] - }] - }); - }); -} diff --git a/ej.web.all/index.d.ts b/ej.web.all/index.d.ts index 85eb18fe46..71d773d5b7 100644 --- a/ej.web.all/index.d.ts +++ b/ej.web.all/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for ej.web.all v14.3.0.49 +// Type definitions for ej.web.all v14.3.0.52 // Project: http://help.syncfusion.com/js/typescript // Definitions by: Syncfusion // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped @@ -7,7 +7,7 @@ /*! * filename: ej.web.all.d.ts -* version : 14.3.0.49 +* version : 14.3.0.52 * Copyright Syncfusion Inc. 2001 - 2016. All rights reserved. * Use of this code is subject to the terms of our license. * A copy of the current license can be obtained at any time by e-mailing @@ -34,7 +34,8 @@ declare module ej { function cancelEvent(): string; function copyObject(): string; function createObject(nameSpace: string, value: Object, initIn: any): JQuery; - function createObject(element : any , eventEmitter :any, model : any): any; + function createObject(element: any, eventEmitter: any, model: any): any; + function setCulture(culture: string): void; function getObject(element :string, model :any ): T; function defineClass(className: string, constructor:any, proto: Object, replace: boolean): Object; function destroyWidgets(element: Object): void; @@ -500,10 +501,15 @@ declare module ej { Overlay, Slide } + enum SortOrder{ + Ascending, + Descending + } class Draggable extends ej.Widget { static fn: Draggable; constructor(element: JQuery, options?: Draggable.Model); constructor(element: Element, options?: Draggable.Model); + static Locale: any; model:Draggable.Model; defaults:Draggable.Model; @@ -662,6 +668,7 @@ class Droppable extends ej.Widget { static fn: Droppable; constructor(element: JQuery, options?: Droppable.Model); constructor(element: Element, options?: Droppable.Model); + static Locale: any; model:Droppable.Model; defaults:Droppable.Model; @@ -756,6 +763,7 @@ class Resizable extends ej.Widget { static fn: Resizable; constructor(element: JQuery, options?: Resizable.Model); constructor(element: Element, options?: Resizable.Model); + static Locale: any; model:Resizable.Model; defaults:Resizable.Model; @@ -930,6 +938,7 @@ class Scroller extends ej.Widget { static fn: Scroller; constructor(element: JQuery, options?: Scroller.Model); constructor(element: Element, options?: Scroller.Model); + static Locale: any; model:Scroller.Model; defaults:Scroller.Model; @@ -963,15 +972,21 @@ class Scroller extends ej.Widget { */ refresh(): void; - /** Scroller moves to given pixel in X (left) position. We can also specify the animation speed,in which the scroller has to move while re-positioning it. + /** Horizontal scroller moves to given pixel from its origin position. We can also specify the animation speed,in which the scroller has to move while re-positioning it. + * @param {number|string} Horizontal scroller moves to the specified pixel. + * @param {boolean} Specifies to enable/disable the animation. + * @param {number} Specifies the animation speed when scrolling, if animation is enabled. * @returns {void} */ - scrollX(): void; + scrollX(pixel: number|string, disableAnimation: boolean, animationSpeed: number): void; - /** Scroller moves to given pixel in Y (top) position. We can also specify the animation speed,in which the scroller has to move while re-positioning it. + /** Vertical scroller moves to given pixel from its origin position. We can also specify the animation speed,in which the scroller has to move while re-positioning it. + * @param {number|string} Vertical scroller moves to the specified pixel. + * @param {boolean} Specifies to enable/disable the animation. + * @param {number} Specifies the animation speed when scrolling, if animation is enabled. * @returns {void} */ - scrollY(): void; + scrollY(pixel: number|string, disableAnimation: boolean, animationSpeed: number): void; } export module Scroller{ @@ -1053,12 +1068,21 @@ export interface Model { /** Fires when Scroller control is destroyed. */ destroy? (e: DestroyEventArgs): void; + /** Fires when a thumb point is moved along the touch surface. */ + thumbMove? (e: ThumbMoveEventArgs): void; + + /** Fires when a thumb point is placed on the touch surface. */ + thumbStart? (e: ThumbStartEventArgs): void; + + /** Fires when a thumb point is removed from the touch surface. */ + thumbEnd? (e: ThumbEndEventArgs): void; + + /** It fires whenever the mouse wheel is rotated either in upwards or downwards. */ + wheelMove? (e: WheelMoveEventArgs): void; + /** It will fire when mouse trackball has been start to wheel. */ wheelStart? (e: WheelStartEventArgs): void; - /** It fires whenever the mouse wheel is rotated either in upwards or downwards */ - wheelMove? (e: WheelMoveEventArgs): void; - /** It will fire when mouse trackball has been stop to wheel. */ wheelStop? (e: WheelStopEventArgs): void; } @@ -1089,7 +1113,53 @@ export interface DestroyEventArgs { type?: string; } -export interface WheelStartEventArgs { +export interface ThumbMoveEventArgs { + + /** if the event should be canceled; otherwise, false. + */ + cancel?: boolean; + + /** returns the scroller model + */ + model?: ej.Scroller.Model; + + /** returns the original event name and its event properties of the current event. + */ + originalEvent?: any; + + /** returns the current data related to the event. + */ + scrollData?: any; + + /** returns the name of the event. + */ + type?: string; +} + +export interface ThumbStartEventArgs { + + /** if the event should be canceled; otherwise, false. + */ + cancel?: boolean; + + /** returns the scroller model + */ + model?: ej.Scroller.Model; + + /** returns the original event name and its event properties of the current event. + */ + originalEvent?: any; + + /** returns the current data related to the event. + */ + scrollData?: any; + + /** returns the name of the event. + */ + type?: string; +} + +export interface ThumbEndEventArgs { /** if the event should be canceled; otherwise, false. */ @@ -1127,6 +1197,29 @@ export interface WheelMoveEventArgs { originalEvent?: any; } +export interface WheelStartEventArgs { + + /** if the event should be canceled; otherwise, false. + */ + cancel?: boolean; + + /** returns the scroller model + */ + model?: ej.Scroller.Model; + + /** returns the original event name and its event properties of the current event. + */ + originalEvent?: any; + + /** returns the current data related to the event. + */ + scrollData?: any; + + /** returns the name of the event. + */ + type?: string; +} + export interface WheelStopEventArgs { /** if the event should be canceled; otherwise, false. @@ -1151,6 +1244,7 @@ class Accordion extends ej.Widget { static fn: Accordion; constructor(element: JQuery, options?: Accordion.Model); constructor(element: Element, options?: Accordion.Model); + static Locale: any; model:Accordion.Model; defaults:Accordion.Model; @@ -1248,7 +1342,7 @@ export interface Model { /** Accordion headers can be expanded and collapsed on keyboard action. * @Default {true} */ - allowKeyboardNavigation?: boolean; + allowKeyboardNavigation?: Boolean; /** To set the Accordion headers Collapse Speed. * @Default {300} @@ -1262,7 +1356,7 @@ export interface Model { /** Sets the root CSS class for Accordion theme, which is used customize. */ - cssClass?: string; + cssClass?: String; /** Allows you to set the custom header Icon. It accepts two key values “header”, ”selectedHeader”. * @Default {{ header: e-collapse, selectedHeader: e-expand }} @@ -1277,12 +1371,12 @@ export interface Model { /** Specifies the animation behavior in accordion. * @Default {true} */ - enableAnimation?: boolean; + enableAnimation?: Boolean; /** With this enabled property, you can enable or disable the Accordion. * @Default {true} */ - enabled?: boolean; + enabled?: Boolean; /** Used to enable the disabled items in accordion. * @Default {[]} @@ -1292,22 +1386,22 @@ export interface Model { /** Multiple content panels to activate at a time. * @Default {false} */ - enableMultipleOpen?: boolean; + enableMultipleOpen?: Boolean; /** Save current model value to browser cookies for maintaining states. When refreshing the accordion control page, the model value is applied from browser cookies or HTML 5local storage. * @Default {false} */ - enablePersistence?: boolean; + enablePersistence?: Boolean; /** Display headers and panel text from right-to-left. * @Default {false} */ - enableRTL?: boolean; + enableRTL?: Boolean; /** The events API binds the action for activating the accordion header. Users can activate the header by using mouse actions such as mouse-over, mouse-up, mouse-down, and soon. * @Default {click} */ - events?: string; + events?: String; /** To set the Accordion headers Expand Speed. * @Default {300} @@ -1346,7 +1440,7 @@ export interface Model { /** Used to determines the close button visibility an each accordion items. This close button helps to remove the accordion item from the control. * @Default {false} */ - showCloseButton?: boolean; + showCloseButton?: Boolean; /** Displays rounded corner borders on the Accordion control's panels and headers. * @Default {false} @@ -1611,15 +1705,15 @@ export interface AjaxSettings { /** It specifies, whether to enable or disable asynchronous request. */ - async?: boolean; + async?: Boolean; /** It specifies the page will be cached in the web browser. */ - cache?: boolean; + cache?: Boolean; /** It specifies the type of data is send in the query string. */ - contentType?: string; + contentType?: String; /** It specifies the data as an object, will be passed in the query string. */ @@ -1627,22 +1721,22 @@ export interface AjaxSettings { /** It specifies the type of data that you're expecting back from the response. */ - dataType?: string; + dataType?: String; /** It specifies the HTTP request type. */ - type?: string; + type?: String; } export interface CustomIcon { /** This class name set to collapsing header. */ - header?: string; + header?: String; /** This class name set to expanded (active) header. */ - selectedHeader?: string; + selectedHeader?: String; } enum HeightAdjustMode{ @@ -1663,6 +1757,7 @@ class Autocomplete extends ej.Widget { static fn: Autocomplete; constructor(element: JQuery, options?: Autocomplete.Model); constructor(element: Element, options?: Autocomplete.Model); + static Locale: any; model:Autocomplete.Model; defaults:Autocomplete.Model; @@ -1730,17 +1825,17 @@ export interface Model { /** Customize "Add New" text (label) to be added in the autocomplete popup list for the entered text when there are no suggestions for it. * @Default {Add New} */ - addNewText?: boolean; + addNewText?: Boolean; /** Allows new values to be added to the autocomplete input other than the values in the suggestion list. Normally, when there are no suggestions it will display “No suggestions” label in the popup. * @Default {false} */ - allowAddNew?: boolean; + allowAddNew?: Boolean; /** Enables or disables the sorting of suggestion list item. The default sort order is ascending order. You customize sort order. * @Default {true} */ - allowSorting?: boolean; + allowSorting?: Boolean; /** Enables or disables selecting the animation style for the popup list. Animation types can be selected through either of the following options, * @Default {slide} @@ -1750,17 +1845,17 @@ export interface Model { /** To focus the items in the suggestion list when the popup is shown. By default first item will be focused. * @Default {false} */ - autoFocus?: boolean; + autoFocus?: Boolean; /** Enables or disables the case sensitive search. * @Default {false} */ - caseSensitiveSearch?: boolean; + caseSensitiveSearch?: Boolean; /** The root class for the Autocomplete textbox widget which helps in customizing its theme. * @Default {””} */ - cssClass?: string; + cssClass?: String; /** The data source contains the list of data for the suggestions list. It can be a string array or JSON array. * @Default {null} @@ -1770,42 +1865,42 @@ export interface Model { /** The time delay (in milliseconds) after which the suggestion popup will be shown. * @Default {200} */ - delaySuggestionTimeout?: number; + delaySuggestionTimeout?: Number; /** The special character which acts as a separator for the given words for multi-mode search i.e. the text after the delimiter are considered as a separate word or query for search operation. * @Default {’,’} */ - delimiterChar?: string; + delimiterChar?: String; /** The text to be displayed in the popup when there are no suggestions available for the entered text. * @Default {“No suggestions”} */ - emptyResultText?: string; + emptyResultText?: String; /** Fills the autocomplete textbox with the first matched item from the suggestion list automatically based on the entered text when enabled. * @Default {false} */ - enableAutoFill?: boolean; + enableAutoFill?: Boolean; /** Enables or disables the Autocomplete textbox widget. * @Default {true} */ - enabled?: boolean; + enabled?: Boolean; /** Enables or disables displaying the duplicate names present in the search result. * @Default {false} */ - enableDistinct?: boolean; + enableDistinct?: Boolean; /** Allows the current model values to be saved in local storage or browser cookies for state maintenance when it is set to true. While refreshing the page, it retains the model value from browser cookies or local storage. * @Default {false} */ - enablePersistence?: boolean; + enablePersistence?: Boolean; /** Displays the Autocomplete widget’s content from right to left when enabled. * @Default {false} */ - enableRTL?: boolean; + enableRTL?: Boolean; /** Mapping fields for the suggestion items of the Autocomplete textbox widget. * @Default {null} @@ -1815,27 +1910,27 @@ export interface Model { /** Specifies the search filter type. There are several types of search filter available such as ‘startswith’, ‘contains’, ‘endswith’, ‘lessthan’, ‘lessthanorequal’, ‘greaterthan’, ‘greaterthanorequal’, ‘equal’, ‘notequal’. * @Default {ej.filterType.StartsWith} */ - filterType?: string; + filterType?: String; /** The height of the Autocomplete textbox. * @Default {null} */ - height?: string; + height?: String; /** The search text can be highlighted in the AutoComplete suggestion list when enabled. * @Default {false} */ - highlightSearch?: boolean; + highlightSearch?: Boolean; /** Number of items to be displayed in the suggestion list. * @Default {0} */ - itemsCount?: number; + itemsCount?: Number; /** Minimum number of character to be entered in the Autocomplete textbox to show the suggestion list. * @Default {1} */ - minCharacter?: number; + minCharacter?: Number; /** An Autocomplete column collection can be defined and customized through the multiColumnSettings property.Column's header, field, and stringFormat can be define via multiColumnSettings properties. */ @@ -1849,12 +1944,12 @@ export interface Model { /** The height of the suggestion list. * @Default {“152px”} */ - popupHeight?: string; + popupHeight?: String; /** The width of the suggestion list. * @Default {“auto”} */ - popupWidth?: string; + popupWidth?: String; /** The query to retrieve the data from the data source. * @Default {null} @@ -1864,36 +1959,36 @@ export interface Model { /** Indicates that the autocomplete textbox values can only be readable. * @Default {false} */ - readOnly?: boolean; + readOnly?: Boolean; /** Sets the value for the Autocomplete textbox based on the given input key value. */ - selectValueByKey?: number; + selectValueByKey?: Number; /** Enables or disables showing the message when there are no suggestions for the entered text. * @Default {true} */ - showEmptyResultText?: boolean; + showEmptyResultText?: Boolean; /** Enables or disables the loading icon to intimate the searching operation. The loading icon is visible when there is a time delay to perform the search. * @Default {true} */ - showLoadingIcon?: boolean; + showLoadingIcon?: Boolean; /** Enables the showPopup button in autocomplete textbox. When the showPopup button is clicked, it displays all the available data from the data source. * @Default {false} */ - showPopupButton?: boolean; + showPopupButton?: Boolean; /** Enables or disables rounded corner. * @Default {false} */ - showRoundedCorner?: boolean; + showRoundedCorner?: Boolean; /** Enables or disables reset icon to clear the textbox values. * @Default {false} */ - showResetIcon?: boolean; + showResetIcon?: Boolean; /** Sort order specifies whether the suggestion list values has to be displayed in ascending or descending order. * @Default {ej.SortOrder.Ascending} @@ -1903,7 +1998,7 @@ export interface Model { /** The template to display the suggestion list items with customized appearance. * @Default {null} */ - template?: string; + template?: String; /** The jQuery validation error message to be displayed on form validation. * @Default {null} @@ -1918,22 +2013,22 @@ export interface Model { /** The value to be displayed in the autocomplete textbox. * @Default {null} */ - value?: string; + value?: String; /** Enables or disables the visibility of the autocomplete textbox. * @Default {true} */ - visible?: boolean; + visible?: Boolean; /** The text to be displayed when the value of the autocomplete textbox is empty. * @Default {null} */ - watermarkText?: string; + watermarkText?: String; /** The width of the Autocomplete textbox. * @Default {null} */ - width?: string; + width?: String; /** Triggers when the AJAX requests Begins. */ actionBegin? (e: ActionBeginEventArgs): void; @@ -1988,7 +2083,7 @@ export interface ChangeEventArgs { /** Set this option to true to cancel the event. */ - cancel?: boolean; + cancel?: Boolean; /** Instance of the autocomplete model object. */ @@ -1996,11 +2091,11 @@ export interface ChangeEventArgs { /** Name of the event. */ - type?: string; + type?: String; /** Value of the autocomplete textbox. */ - value?: string; + value?: String; } export interface CloseEventArgs { @@ -2015,7 +2110,7 @@ export interface CloseEventArgs { /** Name of the event. */ - type?: string; + type?: String; } export interface CreateEventArgs { @@ -2163,7 +2258,7 @@ export interface MultiColumnSettingsColumn { /** Gets or sets a value that indicates to render the multicolumn with custom theme. */ - cssClass?: string; + cssClass?: String; /** Specifies the search data type. There are four types of data types available such as string, ‘number’, ‘boolean’ and ‘date’. * @Default {ej.Type.String} @@ -2245,6 +2340,7 @@ class Button extends ej.Widget { static fn: Button; constructor(element: JQuery, options?: Button.Model); constructor(element: Element, options?: Button.Model); + static Locale: any; model:Button.Model; defaults:Button.Model; @@ -2460,6 +2556,7 @@ class Captcha extends ej.Widget { static fn: Captcha; constructor(element: JQuery, options?: Captcha.Model); constructor(element: Element, options?: Captcha.Model); + static Locale: any; model:Captcha.Model; defaults:Captcha.Model; } @@ -2690,6 +2787,7 @@ class ListBox extends ej.Widget { static fn: ListBox; constructor(element: JQuery, options?: ListBox.Model); constructor(element: Element, options?: ListBox.Model); + static Locale: any; model:ListBox.Model; defaults:ListBox.Model; @@ -2723,10 +2821,10 @@ class ListBox extends ej.Widget { disable(): void; /** Disables a list item by passing the item text as parameter. - * @param {string} Text of the listbox item to be disabled. + * @param {String} Text of the listbox item to be disabled. * @returns {void} */ - disableItem(text: string): void; + disableItem(text: String): void; /** Disables a list Item using its index value. * @param {number} Index of the listbox item to be disabled. @@ -2818,10 +2916,10 @@ class ListBox extends ej.Widget { moveUp(): void; /** Refreshes the ListBox widget. - * @param {boolean} Refreshes both the datasource and the dimensions of the ListBox widget when the parameter is passed as true, otherwise only the ListBox dimensions will be refreshed. + * @param {Boolean} Refreshes both the datasource and the dimensions of the ListBox widget when the parameter is passed as true, otherwise only the ListBox dimensions will be refreshed. * @returns {void} */ - refresh(refreshData: boolean): void; + refresh(refreshData: Boolean): void; /** Removes all the list items from listbox. * @returns {void} @@ -2857,10 +2955,10 @@ class ListBox extends ej.Widget { selectItemByText(text: string): void; /** Selects list item using its value property. - * @param {string} Value of the listbox item to be selected. + * @param {String} Value of the listbox item to be selected. * @returns {void} */ - selectItemByValue(value: string): void; + selectItemByValue(value: String): void; /** Selects list item using its index value. * @param {number} Index of the listbox item to be selected. @@ -2950,16 +3048,16 @@ class ListBox extends ej.Widget { hideItemsByValues(values: Array): void; /** Shows a hidden list item using its value. - * @param {string} Value of the listbox item to be shown. + * @param {String} Value of the listbox item to be shown. * @returns {void} */ - showItemByValue(value: string): void; + showItemByValue(value: String): void; /** Hide a list item using its value. - * @param {string} Value of the listbox item to be hidden. + * @param {String} Value of the listbox item to be hidden. * @returns {void} */ - hideItemByValue(value: string): void; + hideItemByValue(value: String): void; /** Shows a hidden list item using its index value. * @param {number} Index of the listbox item to be shown. @@ -3216,7 +3314,7 @@ export interface ActionBeforeSuccessEventArgs { /** Name of the event. */ - type?: string; + type?: String; /** List of actual object. */ @@ -3228,7 +3326,7 @@ export interface ActionBeforeSuccessEventArgs { /** Set this option to true to cancel the event. */ - cancel?: boolean; + cancel?: Boolean; /** List of array object */ @@ -3247,7 +3345,7 @@ export interface ChangeEventArgs { /** Name of the event. */ - type?: string; + type?: String; /** List item object. */ @@ -3259,31 +3357,31 @@ export interface ChangeEventArgs { /** List item’s index. */ - index?: number; + index?: Number; /** Set this option to true to cancel the event. */ - cancel?: boolean; + cancel?: Boolean; /** Boolean value based on whether the list item is checked or not. */ - isChecked?: boolean; + isChecked?: Boolean; /** Boolean value based on whether the list item is selected or not. */ - isSelected?: boolean; + isSelected?: Boolean; /** Boolean value based on the list item is enabled or not. */ - isEnabled?: boolean; + isEnabled?: Boolean; /** List item’s text (label). */ - text?: string; + text?: String; /** List item’s value. */ - value?: string; + value?: String; } export interface CheckChangeEventArgs { @@ -3294,7 +3392,7 @@ export interface CheckChangeEventArgs { /** Name of the event. */ - type?: string; + type?: String; /** List item object. */ @@ -3306,31 +3404,31 @@ export interface CheckChangeEventArgs { /** List item’s index. */ - index?: number; + index?: Number; /** Set this option to true to cancel the event. */ - cancel?: boolean; + cancel?: Boolean; /** Boolean value based on whether the list item is checked or not. */ - isChecked?: boolean; + isChecked?: Boolean; /** Boolean value based on whether the list item is selected or not. */ - isSelected?: boolean; + isSelected?: Boolean; /** Boolean value based on the list item is enabled or not. */ - isEnabled?: boolean; + isEnabled?: Boolean; /** List item’s text (label). */ - text?: string; + text?: String; /** List item’s value. */ - value?: string; + value?: String; } export interface CreateEventArgs { @@ -3345,7 +3443,7 @@ export interface CreateEventArgs { /** Set this option to true to cancel the event. */ - cancel?: boolean; + cancel?: Boolean; } export interface DestroyEventArgs { @@ -3356,11 +3454,11 @@ export interface DestroyEventArgs { /** Name of the event. */ - type?: string; + type?: String; /** Set this option to true to cancel the event. */ - cancel?: boolean; + cancel?: Boolean; } export interface FocusInEventArgs { @@ -3371,11 +3469,11 @@ export interface FocusInEventArgs { /** Name of the event. */ - type?: string; + type?: String; /** Set this option to true to cancel the event. */ - cancel?: boolean; + cancel?: Boolean; } export interface FocusOutEventArgs { @@ -3386,11 +3484,11 @@ export interface FocusOutEventArgs { /** Name of the event. */ - type?: string; + type?: String; /** Set this option to true to cancel the event. */ - cancel?: boolean; + cancel?: Boolean; } export interface ItemDragEventArgs { @@ -3401,11 +3499,11 @@ export interface ItemDragEventArgs { /** Name of the event. */ - type?: string; + type?: String; /** Set this option to true to cancel the event. */ - cancel?: boolean; + cancel?: Boolean; /** The Datasource of the listbox. */ @@ -3413,27 +3511,27 @@ export interface ItemDragEventArgs { /** List item’s index. */ - index?: number; + index?: Number; /** Boolean value based on whether the list item is checked or not. */ - isChecked?: boolean; + isChecked?: Boolean; /** Boolean value based on whether the list item is selected or not. */ - isSelected?: boolean; + isSelected?: Boolean; /** Boolean value based on whether the list item is enabled or not. */ - isEnabled?: boolean; + isEnabled?: Boolean; /** List item’s text (label). */ - text?: string; + text?: String; /** List item’s value. */ - value?: string; + value?: String; } export interface ItemDragStartEventArgs { @@ -3444,11 +3542,11 @@ export interface ItemDragStartEventArgs { /** Name of the event. */ - type?: string; + type?: String; /** Set this option to true to cancel the event. */ - cancel?: boolean; + cancel?: Boolean; /** The Datasource of the listbox. */ @@ -3456,27 +3554,27 @@ export interface ItemDragStartEventArgs { /** List item’s index. */ - index?: number; + index?: Number; /** Boolean value based on whether the list item is checked or not. */ - isChecked?: boolean; + isChecked?: Boolean; /** Boolean value based on whether the list item is selected or not. */ - isSelected?: boolean; + isSelected?: Boolean; /** Boolean value based on whether the list item is enabled or not. */ - isEnabled?: boolean; + isEnabled?: Boolean; /** List item’s text (label). */ - text?: string; + text?: String; /** List item’s value. */ - value?: string; + value?: String; } export interface ItemDragStopEventArgs { @@ -3487,11 +3585,11 @@ export interface ItemDragStopEventArgs { /** Name of the event. */ - type?: string; + type?: String; /** Set this option to true to cancel the event. */ - cancel?: boolean; + cancel?: Boolean; /** The Datasource of the listbox. */ @@ -3499,27 +3597,27 @@ export interface ItemDragStopEventArgs { /** List item’s index. */ - index?: number; + index?: Number; /** Boolean value based on whether the list item is checked or not. */ - isChecked?: boolean; + isChecked?: Boolean; /** Boolean value based on whether the list item is selected or not. */ - isSelected?: boolean; + isSelected?: Boolean; /** Boolean value based on whether the list item is enabled or not. */ - isEnabled?: boolean; + isEnabled?: Boolean; /** List item’s text (label). */ - text?: string; + text?: String; /** List item’s value. */ - value?: string; + value?: String; } export interface ItemDropEventArgs { @@ -3530,11 +3628,11 @@ export interface ItemDropEventArgs { /** Name of the event. */ - type?: string; + type?: String; /** Set this option to true to cancel the event. */ - cancel?: boolean; + cancel?: Boolean; /** The Datasource of the listbox. */ @@ -3542,27 +3640,27 @@ export interface ItemDropEventArgs { /** List item’s index. */ - index?: number; + index?: Number; /** Boolean value based on whether the list item is checked or not. */ - isChecked?: boolean; + isChecked?: Boolean; /** Boolean value based on whether the list item is selected or not. */ - isSelected?: boolean; + isSelected?: Boolean; /** Boolean value based on whether the list item is enabled or not. */ - isEnabled?: boolean; + isEnabled?: Boolean; /** List item’s text (label). */ - text?: string; + text?: String; /** List item’s value. */ - value?: string; + value?: String; } export interface SelectEventArgs { @@ -3573,7 +3671,7 @@ export interface SelectEventArgs { /** Name of the event. */ - type?: string; + type?: String; /** List item object. */ @@ -3585,31 +3683,31 @@ export interface SelectEventArgs { /** List item’s index. */ - index?: number; + index?: Number; /** Set this option to true to cancel the event. */ - cancel?: boolean; + cancel?: Boolean; /** Boolean value based on whether the list item is checked or not. */ - isChecked?: boolean; + isChecked?: Boolean; /** Boolean value based on whether the list item is selected or not. */ - isSelected?: boolean; + isSelected?: Boolean; /** Boolean value based on the list item is enabled or not. */ - isEnabled?: boolean; + isEnabled?: Boolean; /** List item’s text (label). */ - text?: string; + text?: String; /** List item’s value. */ - value?: string; + value?: String; } export interface UnselectEventArgs { @@ -3620,7 +3718,7 @@ export interface UnselectEventArgs { /** Name of the event. */ - type?: string; + type?: String; /** List item object. */ @@ -3632,31 +3730,31 @@ export interface UnselectEventArgs { /** List item’s index. */ - index?: number; + index?: Number; /** Set this option to true to cancel the event. */ - cancel?: boolean; + cancel?: Boolean; /** Boolean value based on whether the list item is checked or not. */ - isChecked?: boolean; + isChecked?: Boolean; /** Boolean value based on whether the list item is selected or not. */ - isSelected?: boolean; + isSelected?: Boolean; /** Boolean value based on the list item is enabled or not. */ - isEnabled?: boolean; + isEnabled?: Boolean; /** List item’s text (label). */ - text?: string; + text?: String; /** List item’s value. */ - value?: string; + value?: String; } export interface Fields { @@ -3711,6 +3809,7 @@ class Calculate { static fn: Calculate; constructor(element: JQuery, options?: Calculate.Model); constructor(element: Element, options?: Calculate.Model); + static Locale: any; model:Calculate.Model; defaults:Calculate.Model; @@ -3773,6 +3872,7 @@ class CheckBox extends ej.Widget { static fn: CheckBox; constructor(element: JQuery, options?: CheckBox.Model); constructor(element: Element, options?: CheckBox.Model); + static Locale: any; model:CheckBox.Model; defaults:CheckBox.Model; @@ -3997,6 +4097,7 @@ class ColorPicker extends ej.Widget { static fn: ColorPicker; constructor(element: JQuery, options?: ColorPicker.Model); constructor(element: Element, options?: ColorPicker.Model); + static Locale: any; model:ColorPicker.Model; defaults:ColorPicker.Model; @@ -4431,6 +4532,7 @@ class FileExplorer extends ej.Widget { static fn: FileExplorer; constructor(element: JQuery, options?: FileExplorer.Model); constructor(element: Element, options?: FileExplorer.Model); + static Locale: any; model:FileExplorer.Model; defaults:FileExplorer.Model; @@ -4497,6 +4599,11 @@ export interface Model { */ allowDragAndDrop?: boolean; + /** Gets or sets a value that indicates whether to enable keyboard support for FileExplorer actions. + * @Default {true} + */ + allowKeyboardNavigation?: boolean; + /** The FileExplorer allows to select multiple files by enabling the allowMultiSelection property. You can perform multi selection by pressing the Ctrl key or Shift key. * @Default {true} */ @@ -4626,12 +4733,12 @@ export interface Model { showNavigationPane?: boolean; /** The tools property is used to configure and group required toolbar items in FileExplorer control. - * @Default {{ creation: [NewFolder], navigation: [Back, Forward, Upward], addressBar: [Addressbar], editing: [Refresh, Upload, Delete, Rename, Download], copyPaste: [Cut, Copy, Paste], getProperties: [Details], searchBar: [Searchbar], layout: [Layout]}} + * @Default {{ creation: [NewFolder], navigation: [Back, Forward, Upward], addressBar: [Addressbar], editing: [Refresh, Upload, Delete, Rename, Download], copyPaste: [Cut, Copy, Paste], getProperties: [Details], searchBar: [Searchbar], layout: [Layout], sortBy: [SortBy]}} */ tools?: any; /** The toolsList property is used to arrange the toolbar items in the FileExplorer control. - * @Default {[layout, creation, navigation, addressBar, editing, copyPaste, getProperties, searchBar]} + * @Default {[layout, creation, navigation, addressBar, editing, copyPaste, sortBy, getProperties, searchBar]} */ toolsList?: Array; @@ -4689,6 +4796,9 @@ export interface Model { /** Fires after loading the requested image from server. Using this event, you can get the details of loaded image. */ getImage? (e: GetImageEventArgs): void; + /** Fires when keydown in FileExplorer control. */ + keydown? (e: KeydownEventArgs): void; + /** Fires when the file view type is changed. */ layoutChange? (e: LayoutChangeEventArgs): void; } @@ -5078,6 +5188,41 @@ export interface GetImageEventArgs { type?: string; } +export interface KeydownEventArgs { + + /** Set to true when the event has to be canceled, else false. + */ + cancel?: boolean; + + /** returns the downed key keyCode value + */ + keyCode?: number; + + /** returns altKey value. + */ + altKey?: boolean; + + /** returns shiftKey value. + */ + shiftKey?: boolean; + + /** returns ctrlKey value. + */ + ctrlKey?: boolean; + + /** returns the event object. + */ + originalArgs?: any; + + /** returns the FileExplorer model. + */ + model?: ej.FileExplorer.Model; + + /** returns the name of the event. + */ + type?: string; +} + export interface LayoutChangeEventArgs { /** Set to true when the event has to be canceled, else false. @@ -5100,7 +5245,7 @@ export interface LayoutChangeEventArgs { export interface ContextMenuSettings { /** The items property is used to configure and group the required ContextMenu items in FileExplorer control. - * @Default {{% highlight javascript %}{navbar: [NewFolder, Upload, |, Delete, Rename, |, Cut, Copy, Paste, |, Getinfo],cwd: [Refresh, Paste,|, Sortby, |, NewFolder, Upload, |, Getinfo],files: [Open, Download, |, Upload, |, Delete, Rename, |, Cut, Copy, Paste, |, OpenFolderLocation, Getinfo]}{% endhighlight %}} + * @Default {{% highlight javascript %}{navbar: [NewFolder, Upload, |, Delete, Rename, |, Cut, Copy, Paste, |, Getinfo],cwd: [Refresh, Paste,|, SortBy, |, NewFolder, Upload, |, Getinfo],files: [Open, Download, |, Upload, |, Delete, Rename, |, Cut, Copy, Paste, |, OpenFolderLocation, Getinfo]}{% endhighlight %}} */ items?: any; @@ -5182,6 +5327,7 @@ class DatePicker extends ej.Widget { static fn: DatePicker; constructor(element: JQuery, options?: DatePicker.Model); constructor(element: Element, options?: DatePicker.Model); + static Locale: any; model:DatePicker.Model; defaults:DatePicker.Model; @@ -5796,6 +5942,7 @@ class DateTimePicker extends ej.Widget { static fn: DateTimePicker; constructor(element: JQuery, options?: DateTimePicker.Model); constructor(element: Element, options?: DateTimePicker.Model); + static Locale: any; model:DateTimePicker.Model; defaults:DateTimePicker.Model; @@ -6264,6 +6411,7 @@ class Dialog extends ej.Widget { static fn: Dialog; constructor(element: JQuery, options?: Dialog.Model); constructor(element: Element, options?: Dialog.Model); + static Locale: any; model:Dialog.Model; defaults:Dialog.Model; @@ -6345,15 +6493,15 @@ export interface Model { /** Adds action buttons like close, minimize, pin, maximize in the dialog header. */ - actionButtons?: string[]; + actionButtons?: String[]; /** Enables or disables draggable. */ - allowDraggable?: boolean; + allowDraggable?: Boolean; /** Enables or disables keyboard interaction. */ - allowKeyboardNavigation?: boolean; + allowKeyboardNavigation?: Boolean; /** Customizes the Dialog widget animations. The Dialog widget can be animated while opening and closing the dialog. In order to customize animation effects, you need to set “enableAnimation” as true. It contains the following sub properties. */ @@ -6361,79 +6509,79 @@ export interface Model { /** Closes the dialog widget on pressing the ESC key when it is set to true. */ - closeOnEscape?: boolean; + closeOnEscape?: Boolean; /** The selector for the container element. If the property is set, then dialog will append to the selected element and it is restricted to move only within the specified container element. */ - containment?: string; + containment?: String; /** The content type to load the dialog content at run time. The possible values are null, AJAX, iframe and image. When it is null (default value), the content inside dialog element will be displayed as content and when it is not null, the content will be loaded from the URL specified in the contentUrl property. */ - contentType?: string; + contentType?: String; /** The URL to load the dialog content (such as AJAX, image, and iframe). In order to load content from URL, you need to set contentType as ‘ajax’ or ‘iframe’ or ‘image’. */ - contentUrl?: string; + contentUrl?: String; /** The root class for the Dialog widget to customize the existing theme. */ - cssClass?: string; + cssClass?: String; /** Enable or disables animation when the dialog is opened or closed. */ - enableAnimation?: boolean; + enableAnimation?: Boolean; /** Enables or disables the Dialog widget. */ - enabled?: boolean; + enabled?: Boolean; /** Enable or disables modal dialog. The modal dialog acts like a child window that is displayed on top of the main window/screen and disables the main window interaction until it is closed. */ - enableModal?: boolean; + enableModal?: Boolean; /** Allows the current model values to be saved in local storage or browser cookies for state maintenance when it is set to true. */ - enablePersistence?: boolean; + enablePersistence?: Boolean; /** Allows the dialog to be resized. The dialog cannot be resized less than the minimum height, width values and greater than the maximum height and width. */ - enableResize?: boolean; + enableResize?: Boolean; /** Displays dialog content from right to left when set to true. */ - enableRTL?: boolean; + enableRTL?: Boolean; /** The CSS class name to display the favicon in the dialog header. In order to display favicon, you need to set showHeader as true since the favicon will be displayed in the dialog header. */ - faviconCSS?: string; + faviconCSS?: String; /** Sets the height for the dialog widget. It accepts both string and integer values. For example, it can accepts values like “auto”, “100%”, “100px” as string type and “100”, “500” as integer type. */ - height?: string|number; + height?: String|Number; /** Enable or disables responsive behavior. */ - isResponsive?: boolean; + isResponsive?: Boolean; /** Set the localization culture for Dialog Widget. */ - locale?: number; + locale?: Number; /** Sets the maximum height for the dialog widget. */ - maxHeight?: number; + maxHeight?: Number; /** Sets the maximum width for the dialog widget. */ - maxWidth?: number; + maxWidth?: Number; /** Sets the minimum height for the dialog widget. */ - minHeight?: number; + minHeight?: Number; /** Sets the minimum width for the dialog widget. */ - minWidth?: number; + minWidth?: Number; /** Displays the Dialog widget at the given X and Y position. */ @@ -6441,23 +6589,23 @@ export interface Model { /** Shows or hides the dialog header. */ - showHeader?: boolean; + showHeader?: Boolean; /** The Dialog widget can be opened by default i.e. on initialization, when it is set to true. */ - showOnInit?: boolean; + showOnInit?: Boolean; /** Enables or disables the rounder corner. */ - showRoundedCorner?: boolean; + showRoundedCorner?: Boolean; /** The selector for the container element. If this property is set, the dialog will be displayed (positioned) based on its container. */ - target?: string; + target?: String; /** The title text to be displayed in the dialog header. In order to set title, you need to set showHeader as true since the title will be displayed in the dialog header. */ - title?: string; + title?: String; /** Add or configure the tooltip text for actionButtons in the dialog header. */ @@ -6465,19 +6613,19 @@ export interface Model { /** Sets the height for the dialog widget. It accepts both string and integer values. For example, it can accepts values like “auto”, “100%”, “100px” as string type and “100”, “500” as integer type. */ - width?: string|number; + width?: String|Number; /** Sets the z-index value for the Dialog widget. */ - zIndex?: number; + zIndex?: Number; /** Sets the Footer for the Dialog widget. */ - showFooter?: boolean; + showFooter?: Boolean; /** Sets the FooterTemplate for the Dialog widget. */ - footerTemplateId?: string; + footerTemplateId?: String; /** This event is triggered before the dialog widgets gets open. */ beforeOpen? (e: BeforeOpenEventArgs): void; @@ -6546,7 +6694,7 @@ export interface BeforeOpenEventArgs { /** Name of the event */ - type?: string; + type?: String; } export interface AjaxErrorEventArgs { @@ -6638,7 +6786,7 @@ export interface CloseEventArgs { /** Name of the event */ - type?: string; + type?: String; } export interface ContentLoadEventArgs { @@ -6653,11 +6801,11 @@ export interface ContentLoadEventArgs { /** Name of the event. */ - type?: string; + type?: String; /** URL of the content. */ - URL?: string; + URL?: String; /** Content type */ @@ -6808,7 +6956,7 @@ export interface ResizeStopEventArgs { /** Set this option to true to cancel the event. */ - cancel?: boolean; + cancel?: Boolean; /** Instance of the dialog model object. */ @@ -6816,7 +6964,7 @@ export interface ResizeStopEventArgs { /** Name of the event */ - type?: string; + type?: String; /** Current event object. */ @@ -6877,10 +7025,149 @@ export interface ActionButtonClickEventArgs { } } +class DocumentEditor extends ej.Widget { + static fn: DocumentEditor; + constructor(element: JQuery, options?: DocumentEditor.Model); + constructor(element: Element, options?: DocumentEditor.Model); + static Locale: any; + model:DocumentEditor.Model; + defaults:DocumentEditor.Model; + + /** Loads the document from specified path using web API provided by importUrl. + * @param {String} Specifies the file path. + * @returns {void} + */ + load(Path: String): void; + + /** Gets the page number of current selection in the document. + * @returns {void} + */ + getCurrentPageNumber(): void; + + /** Gets the total number of pages in the document. + * @returns {void} + */ + getPageCount(): void; + + /** Gets the current zoom factor value of the document container. + * @returns {void} + */ + getZoomFactor(): void; + + /** Scales the document container with the specified zoom factor. The range of zoom factor should be 0.10 to 5.00. + * @returns {void} + */ + setZoomFactor(): void; + + /** Prints the document content as page by page. + * @returns {void} + */ + print(): void; + + /** Finds the first occurrence of specified text from current selection and highlights the result. If the document end is reached, find operation will occur from the document start position. + * @param {String} Specifies the text to search in a document. + * @returns {void} + */ + find(Text: String): void; +} +export module DocumentEditor{ + +export interface Model { + + /** Gets or sets an object that indicates initialization of importing and exporting documents in document editor. + */ + importExportSettings?: ImportExportSettings; + + /** Triggers when the document changes. */ + onDocumentChange? (e: OnDocumentChangeEventArgs): void; + + /** Triggers when the selection changes. */ + onSelectionChange? (e: OnSelectionChangeEventArgs): void; + + /** Triggers when the zoom factor changes. */ + onZoomFactorChange? (e: OnZoomFactorChangeEventArgs): void; + + /** Triggers when the hyperlink is clicked. */ + onRequestNavigate? (e: OnRequestNavigateEventArgs): void; +} + +export interface OnDocumentChangeEventArgs { + + /** True, if the event should be canceled; otherwise, false. + */ + cancel?: boolean; + + /** Returns the document editor model. + */ + model?: any; + + /** Returns the name of the event. + */ + type?: string; +} + +export interface OnSelectionChangeEventArgs { + + /** True, if the event should be canceled; otherwise, false. + */ + cancel?: boolean; + + /** Returns the document editor model. + */ + model?: any; + + /** Returns the name of the event. + */ + type?: string; +} + +export interface OnZoomFactorChangeEventArgs { + + /** True, if the event should be canceled; otherwise, false. + */ + cancel?: boolean; + + /** Returns the document editor model. + */ + model?: any; + + /** Returns the name of the event. + */ + type?: string; +} + +export interface OnRequestNavigateEventArgs { + + /** true, if the event should be canceled; otherwise, false. + */ + cancel?: boolean; + + /** Returns the document editor model. + */ + model?: any; + + /** Returns the link type and navigation link. + */ + hyperlink?: any; + + /** Returns the name of the event. + */ + type?: string; +} + +export interface ImportExportSettings { + + /** Gets or sets URL of Web API that should be used to parse the document while loading. + */ + importUrl?: string; +} +} + class DropDownList extends ej.Widget { static fn: DropDownList; constructor(element: JQuery, options?: DropDownList.Model); constructor(element: Element, options?: DropDownList.Model); + static Locale: any; model:DropDownList.Model; defaults:DropDownList.Model; @@ -7178,7 +7465,7 @@ export interface Model { showRoundedCorner?: boolean; /** When the enableSorting property value is set to true, this property helps to sort the items either in ascending or descending order - * @Default {ej.sortOrder.Ascending} + * @Default {ej.SortOrder.Ascending} */ sortOrder?: ej.SortOrder|string; @@ -7845,13 +8132,6 @@ Delimiter, // can select multiple items and it's show's like visual box in textbox VisualMode, } -enum SortOrder -{ -// Sort the data in ascending order -Ascending, -//Sort the data in descending order -Descending, -} enum VirtualScrollMode { // The data is loaded only to the corresponding page (display items). When scrolling some other position, it enables the load on demand with the DropDownList. @@ -7864,6 +8144,7 @@ class Tooltip extends ej.Widget { static fn: Tooltip; constructor(element: JQuery, options?: Tooltip.Model); constructor(element: Element, options?: Tooltip.Model); + static Locale: any; model:Tooltip.Model; defaults:Tooltip.Model; @@ -8319,6 +8600,7 @@ class Editor extends ej.Widget { static fn: Editor; constructor(element: JQuery, options?: Editor.Model); constructor(element: Element, options?: Editor.Model); + static Locale: any; model:Editor.Model; defaults:Editor.Model; @@ -8390,14 +8672,14 @@ export interface Model { groupSize?: string; /** It provides the options to get the customized character to separate the digits. If not set, the separator defined by the current culture. - * @Default {null} + * @Default {Based on the culture} */ groupSeparator?: string; /** Specifies the height of the editor. * @Default {30} */ - height?: number|string; + height?: string; /** It allows to define the characteristics of the Editors control. It will helps to extend the capability of an HTML element. * @Default {{}} @@ -8475,13 +8757,14 @@ export interface Model { value?: number|string; /** Specifies the watermark text to editor. + * @Default {Based on the culture.} */ watermarkText?: string; /** Specifies the width of the editor. * @Default {143} */ - width?: number|string; + width?: string; /** Fires after Editor control value is changed. */ change? (e: ChangeEventArgs): void; @@ -8595,6 +8878,7 @@ class ListView extends ej.Widget { static fn: ListView; constructor(element: JQuery, options?: ListView.Model); constructor(element: Element, options?: ListView.Model); + static Locale: any; model:ListView.Model; defaults:ListView.Model; @@ -8805,7 +9089,7 @@ export interface Model { /** Specifies the height. * @Default {null} */ - height?: string|number; + height?: String|Number; /** Specifies whether to retain the selection of the item. * @Default {false} @@ -8845,7 +9129,7 @@ export interface Model { /** Specifies the width. * @Default {null} */ - width?: string|number; + width?: String|Number; /** Event triggers before the AJAX request happens. */ ajaxBeforeLoad? (e: AjaxBeforeLoadEventArgs): void; @@ -8869,7 +9153,7 @@ export interface Model { mouseDown? (e: MouseDownEventArgs): void; /** Event triggers when mouse up happens on the item. */ - mouseUP? (e: MouseUPEventArgs): void; + mouseUp? (e: MouseUpEventArgs): void; } export interface AjaxBeforeLoadEventArgs { @@ -9049,7 +9333,7 @@ export interface MouseDownEventArgs { checkedItemsText?: string; } -export interface MouseUPEventArgs { +export interface MouseUpEventArgs { /** returns true if the event should be canceled; otherwise, false. */ @@ -9097,6 +9381,7 @@ class MaskEdit extends ej.Widget { static fn: MaskEdit; constructor(element: JQuery, options?: MaskEdit.Model); constructor(element: Element, options?: MaskEdit.Model); + static Locale: any; model:MaskEdit.Model; defaults:MaskEdit.Model; @@ -9496,6 +9781,7 @@ class Menu extends ej.Widget { static fn: Menu; constructor(element: JQuery, options?: Menu.Model); constructor(element: Element, options?: Menu.Model); + static Locale: any; model:Menu.Model; defaults:Menu.Model; @@ -9970,6 +10256,7 @@ class Pager extends ej.Widget { static fn: Pager; constructor(element: JQuery, options?: Pager.Model); constructor(element: Element, options?: Pager.Model); + static Locale: any; model:Pager.Model; defaults:Pager.Model; @@ -9990,61 +10277,61 @@ export interface Model { /** Gets or sets a value that indicates whether to display the custom text message in Pager. */ - customText?: string; + customText?: String; /** Gets or sets a value that indicates whether to define which page to display currently in pager. * @Default {1} */ - currentPage?: number; + currentPage?: Number; /** Gets or sets a value that indicates whether to display the external Message in Pager. * @Default {false} */ - enableExternalMessage?: boolean; + enableExternalMessage?: Boolean; /** Gets or sets a value that indicates whether to pass the current page information as a query string along with the URL while navigating to other page. * @Default {false} */ - enableQueryString?: boolean; + enableQueryString?: Boolean; /** Align content in the pager control from right to left by setting the property as true. * @Default {false} */ - enableRTL?: boolean; + enableRTL?: Boolean; /** Gets or sets a value that indicates whether to display the external Message in Pager. */ - externalMessage?: string; + externalMessage?: String; /** Gets or sets a value that indicates whether to customizing the user interface (UI) as locale-specific in order to display regional data i.e. in a language and culture specific to a particular country or region. * @Default {en-US} */ - locale?: string; + locale?: String; /** Gets or sets a value that indicates whether to define the number of pages displayed in the pager for navigation. * @Default {10} */ - pageCount?: number; + pageCount?: Number; /** Gets or sets a value that indicates whether to define the number of records displayed per page. * @Default {12} */ - pageSize?: number; + pageSize?: Number; /** Get or sets a value of total number of pages in the pager. The totalPages value is calculated based on page size and total records. * @Default {null} */ - totalPages?: number; + totalPages?: Number; /** Get the value of total number of records which is bound to a data item. * @Default {null} */ - totalRecordsCount?: number; + totalRecordsCount?: Number; /** Shows or hides the current page information in pager footer. * @Default {true} */ - showPageInfo?: boolean; + showPageInfo?: Boolean; /** Triggered when pager numeric item is clicked in pager control. */ click? (e: ClickEventArgs): void; @@ -10078,6 +10365,7 @@ class ProgressBar extends ej.Widget { static fn: ProgressBar; constructor(element: JQuery, options?: ProgressBar.Model); constructor(element: Element, options?: ProgressBar.Model); + static Locale: any; model:ProgressBar.Model; defaults:ProgressBar.Model; @@ -10295,6 +10583,7 @@ class RadioButton extends ej.Widget { static fn: RadioButton; constructor(element: JQuery, options?: RadioButton.Model); constructor(element: Element, options?: RadioButton.Model); + static Locale: any; model:RadioButton.Model; defaults:RadioButton.Model; @@ -10481,6 +10770,7 @@ class Rating extends ej.Widget { static fn: Rating; constructor(element: JQuery, options?: Rating.Model); constructor(element: Element, options?: Rating.Model); + static Locale: any; model:Rating.Model; defaults:Rating.Model; @@ -10771,6 +11061,7 @@ class Ribbon extends ej.Widget { static fn: Ribbon; constructor(element: JQuery, options?: Ribbon.Model); constructor(element: Element, options?: Ribbon.Model); + static Locale: any; model:Ribbon.Model; defaults:Ribbon.Model; @@ -10836,9 +11127,9 @@ class Ribbon extends ej.Widget { /** Gets text of the given index tab in the ribbon control. * @param {number} index of the tab item. - * @returns {string} + * @returns {String} */ - getTabText(index: number): string; + getTabText(index: number): String; /** Hides the given text tab in the ribbon control. * @param {string} text of the tab item. @@ -10848,15 +11139,15 @@ class Ribbon extends ej.Widget { /** Checks whether the given text tab in the ribbon control is enabled or not. * @param {string} text of the tab item. - * @returns {boolean} + * @returns {Boolean} */ - isEnable(text: string): boolean; + isEnable(text: string): Boolean; /** Checks whether the given text tab in the ribbon control is visible or not. * @param {string} text of the tab item. - * @returns {boolean} + * @returns {Boolean} */ - isVisible(text: string): boolean; + isVisible(text: string): Boolean; /** Removes the given index tab item from the ribbon control. * @param {number} index of tab item. @@ -11889,6 +12180,7 @@ class Kanban extends ej.Widget { static fn: Kanban; constructor(element: JQuery, options?: Kanban.Model); constructor(element: Element, options?: Kanban.Model); + static Locale: any; model:Kanban.Model; defaults:Kanban.Model; @@ -11935,14 +12227,14 @@ class Kanban extends ej.Widget { /** Get the column details based on the given header text in Kanban. * @param {string} Pass the header text of the column to get the corresponding column object - * @returns {string} + * @returns {String} */ - getColumnByHeaderText(headerText: string): string; + getColumnByHeaderText(headerText: string): String; /** Get the table details based on the given header table in Kanban. - * @returns {string} + * @returns {String} */ - getHeaderTable(): string; + getHeaderTable(): String; /** Hide columns from the Kanban based on the header text * @param {Array|string} you can pass either array of header text of various columns or a header text of a column to hide @@ -12168,7 +12460,7 @@ export interface Model { /** To perform kanban functionalities with touch interaction. * @Default {true} */ - enableTouch?: boolean; + enableTouch?: Boolean; /** Align content in the Kanban control align from right to left by setting the property as true. * @Default {false} @@ -12252,7 +12544,7 @@ export interface Model { /** Gets or sets a value that indicates whether to customizing the user interface (UI) as locale-specific in order to display regional data i.e. in a language and culture specific to a particular country or region. * @Default {en-US} */ - locale?: string; + locale?: String; /** Triggered for every Kanban action before its starts. */ actionBegin? (e: ActionBeginEventArgs): void; @@ -12749,7 +13041,7 @@ export interface ContextMenuSettingsCustomMenuItem { /** Gets the template to render custom context menu item. * @Default {null} */ - template?: string; + template?: String; } export interface ContextMenuSettings { @@ -12915,7 +13207,7 @@ export interface EditSettings { /** This specifies the id of the template which is require to be edited using the Dialog Box. * @Default {null} */ - dialogTemplate?: string; + dialogTemplate?: String; /** Get or sets an object that indicates whether to customize the editMode of the Kanban. * @Default {ej.Kanban.EditMode.Dialog} @@ -12930,7 +13222,7 @@ export interface EditSettings { /** This specifies the id of the template which is require to be edited using the External edit form. * @Default {null} */ - externalFormTemplate?: string; + externalFormTemplate?: String; /** This specifies to set the position of an External edit form either in the right or bottom of the Kanban. * @Default {ej.Kanban.FormPosition.Bottom} @@ -13168,6 +13460,7 @@ class Rotator extends ej.Widget { static fn: Rotator; constructor(element: JQuery, options?: Rotator.Model); constructor(element: Element, options?: Rotator.Model); + static Locale: any; model:Rotator.Model; defaults:Rotator.Model; @@ -13585,6 +13878,7 @@ class RTE extends ej.Widget { static fn: RTE; constructor(element: JQuery, options?: RTE.Model); constructor(element: Element, options?: RTE.Model); + static Locale: any; model:RTE.Model; defaults:RTE.Model; @@ -14356,6 +14650,7 @@ class Slider extends ej.Widget { static fn: Slider; constructor(element: JQuery, options?: Slider.Model); constructor(element: Element, options?: Slider.Model); + static Locale: any; model:Slider.Model; defaults:Slider.Model; @@ -14374,7 +14669,7 @@ class Slider extends ej.Widget { */ getValue(): number; - /** To set value to slider handle.By defaut animation is false while set the value. If you want to enable the animation, pass the enableAnimation as true to this method. + /** To set value to slider handle.By default animation is false while set the value. If you want to enable the animation, pass the enableAnimation as true to this method. * @returns {void} */ setValue(): void; @@ -14686,6 +14981,7 @@ class SplitButton extends ej.Widget { static fn: SplitButton; constructor(element: JQuery, options?: SplitButton.Model); constructor(element: Element, options?: SplitButton.Model); + static Locale: any; model:SplitButton.Model; defaults:SplitButton.Model; @@ -14931,11 +15227,11 @@ export interface ItemMouseOutEvent { /** return the menu item id */ - ID?: string; + ID?: String; /** return the clicked menu item text */ - Text?: string; + Text?: String; } export interface ItemMouseOverEventArgs { @@ -14965,11 +15261,11 @@ export interface ItemMouseOverEvent { /** return the menu item id */ - ID?: string; + ID?: String; /** return the clicked menu item text */ - Text?: string; + Text?: String; } export interface ItemSelectedEventArgs { @@ -14996,11 +15292,11 @@ export interface ItemSelectedEventArgs { /** return the menu id */ - menuId?: string; + menuId?: String; /** return the clicked menu item text */ - menuText?: string; + menuText?: String; } export interface OpenEventArgs { @@ -15034,6 +15330,7 @@ class Splitter extends ej.Widget { static fn: Splitter; constructor(element: JQuery, options?: Splitter.Model); constructor(element: Element, options?: Splitter.Model); + static Locale: any; model:Splitter.Model; defaults:Splitter.Model; @@ -15259,6 +15556,7 @@ class Tab extends ej.Widget { static fn: Tab; constructor(element: JQuery, options?: Tab.Model); constructor(element: Element, options?: Tab.Model); + static Locale: any; model:Tab.Model; defaults:Tab.Model; @@ -15830,6 +16128,7 @@ class TagCloud extends ej.Widget { static fn: TagCloud; constructor(element: JQuery, options?: TagCloud.Model); constructor(element: Element, options?: TagCloud.Model); + static Locale: any; model:TagCloud.Model; defaults:TagCloud.Model; @@ -16067,6 +16366,7 @@ class TimePicker extends ej.Widget { static fn: TimePicker; constructor(element: JQuery, options?: TimePicker.Model); constructor(element: Element, options?: TimePicker.Model); + static Locale: any; model:TimePicker.Model; defaults:TimePicker.Model; @@ -16471,6 +16771,7 @@ class ToggleButton extends ej.Widget { static fn: ToggleButton; constructor(element: JQuery, options?: ToggleButton.Model); constructor(element: Element, options?: ToggleButton.Model); + static Locale: any; model:ToggleButton.Model; defaults:ToggleButton.Model; @@ -16678,6 +16979,7 @@ class Toolbar extends ej.Widget { static fn: Toolbar; constructor(element: JQuery, options?: Toolbar.Model); constructor(element: Element, options?: Toolbar.Model); + static Locale: any; model:Toolbar.Model; defaults:Toolbar.Model; @@ -17023,6 +17325,7 @@ class TreeView extends ej.Widget { static fn: TreeView; constructor(element: JQuery, options?: TreeView.Model); constructor(element: Element, options?: TreeView.Model); + static Locale: any; model:TreeView.Model; defaults:TreeView.Model; @@ -17051,11 +17354,12 @@ class TreeView extends ej.Widget { */ checkNode(element: string|any): void; - /** This method is used to collapse all nodes in TreeView control. If you want to collapse all nodes up to the specific level in TreeView control then we need to pass level as argument to this method. + /** This method is used to collapse all nodes in TreeView control. If you want to collapse all nodes up to the specific level in TreeView control then we need to pass levelUntil as argument to this method. * @param {number} TreeView nodes will collapse until the given level + * @param {boolean} Weather exclude the hidden nodes of TreeView while collapse all nodes * @returns {void} */ - collapseAll(levelUntil?: number): void; + collapseAll(levelUntil?: number, excludeHiddenNodes?: boolean): void; /** To collapse a particular node in TreeView. * @param {string|any} ID of TreeView node|object of TreeView node @@ -17081,11 +17385,12 @@ class TreeView extends ej.Widget { */ ensureVisible(element: string|any): boolean; - /** This method is used to expand all nodes in TreeView control. If you want to expand all nodes up to the specific level in TreeView control then we need to pass level as argument to this method. + /** This method is used to expand all nodes in TreeView control. If you want to expand all nodes up to the specific level in TreeView control then we need to pass levelUntil as argument to this method. * @param {number} TreeView nodes will expand until the given level + * @param {boolean} Weather exclude the hidden nodes of TreeView while expand all nodes * @returns {void} */ - expandAll(levelUntil?: number): void; + expandAll(levelUntil?: number, excludeHiddenNodes?: boolean): void; /** To expandNode particular node in TreeView. * @param {string|any} ID of TreeView node/object of TreeView node @@ -18089,11 +18394,11 @@ export interface NodeClickEventArgs { */ currentElement?: any; - /** returns the id of current element + /** returns the id of currently clicked TreeView node */ id?: string; - /** returns the parentId of current element + /** returns the parentId of currently clicked TreeView node */ parentId?: string; } @@ -18616,11 +18921,11 @@ export interface Fields { /** Specifies the node to be in expanded state. */ - expanded?: boolean; + expanded?: string; /** Its allow us to indicate whether the node has child or not in load on demand */ - hasChild?: boolean; + hasChild?: string; /** Specifies the HTML Attributes to "li" item list. */ @@ -18640,7 +18945,7 @@ export interface Fields { /** If its true Checkbox node will be checked when rendered with checkbox. */ - isChecked?: boolean; + isChecked?: string; /** Specifies the link attribute to “a” tag in item list. */ @@ -18656,7 +18961,7 @@ export interface Fields { /** Allow us to specify the node to be in selected state */ - selected?: boolean; + selected?: string; /** Specifies the sprite CSS class to "li" item list. */ @@ -18696,6 +19001,7 @@ class Uploadbox extends ej.Widget { static fn: Uploadbox; constructor(element: JQuery, options?: Uploadbox.Model); constructor(element: Element, options?: Uploadbox.Model); + static Locale: any; model:Uploadbox.Model; defaults:Uploadbox.Model; @@ -18874,7 +19180,7 @@ export interface Model { /** Fires when the file upload progress is completed. */ complete? (e: CompleteEventArgs): void; - /** Fires when the file upload progress is successed. */ + /** Fires when the file upload progress is succeeded. */ success? (e: SuccessEventArgs): void; /** Fires when the Uploadbox control is created. */ @@ -19198,6 +19504,7 @@ class WaitingPopup extends ej.Widget { static fn: WaitingPopup; constructor(element: JQuery, options?: WaitingPopup.Model); constructor(element: Element, options?: WaitingPopup.Model); + static Locale: any; model:WaitingPopup.Model; defaults:WaitingPopup.Model; @@ -19302,6 +19609,7 @@ class Grid extends ej.Widget { static fn: Grid; constructor(element: JQuery, options?: Grid.Model); constructor(element: Element, options?: Grid.Model); + static Locale: any; model:Grid.Model; defaults:Grid.Model; @@ -19344,22 +19652,22 @@ class Grid extends ej.Widget { cancelEditCell(): void; /** It is used to clear all the cell selection. - * @returns {boolean} + * @returns {Boolean} */ - clearCellSelection(): boolean; + clearCellSelection(): Boolean; /** It is used to clear specified cell selection based on the rowIndex and columnIndex provided. * @param {number} It is used to pass the row index of the cell * @param {number} It is used to pass the column index of the cell. - * @returns {boolean} + * @returns {Boolean} */ - clearCellSelection(rowIndex: number, columnIndex: number): boolean; + clearCellSelection(rowIndex: number, columnIndex: number): Boolean; /** It is used to clear all the row selection or at specific row selection based on the index provided. * @param {number} optional If index of the column is specified then it will remove the selection from the particular column else it will clears all of the column selection - * @returns {boolean} + * @returns {Boolean} */ - clearColumnSelection(index?: number): boolean; + clearColumnSelection(index?: number): Boolean; /** It is used to clear all the filtering done. * @param {string} If field of the column is specified then it will clear the particular filtering column @@ -19374,9 +19682,9 @@ class Grid extends ej.Widget { /** Clear all the row selection or at specific row selection based on the index provided * @param {number} optional If index of the row is specified then it will remove the selection from the particular row else it will clears all of the row selection - * @returns {boolean} + * @returns {Boolean} */ - clearSelection(index?: number): boolean; + clearSelection(index?: number): Boolean; /** Clear the sorting from columns in the grid * @returns {void} @@ -19516,9 +19824,9 @@ class Grid extends ej.Widget { /** Get the column index of the given field in grid. * @param {string} Pass the field name of the column to get the corresponding column index - * @returns {number} + * @returns {Number} */ - getColumnIndexByField(fieldName: string): number; + getColumnIndexByField(fieldName: string): Number; /** Get the content div element of grid. * @returns {HTMLElement} @@ -19526,9 +19834,9 @@ class Grid extends ej.Widget { getContent(): HTMLElement; /** Get the content table element of grid - * @returns {HTMLElement} + * @returns {Array} */ - getContentTable(): HTMLElement; + getContentTable(): Array; /** Get the data of currently edited cell value in "batch" edit mode * @returns {any} @@ -19536,9 +19844,9 @@ class Grid extends ej.Widget { getCurrentEditCellData(): any; /** Get the current page index in grid pager. - * @returns {number} + * @returns {Number} */ - getCurrentIndex(): number; + getCurrentIndex(): Number; /** Get the current page data source of grid. * @returns {Array} @@ -19547,9 +19855,9 @@ class Grid extends ej.Widget { /** Get the column field name from the given header text in grid. * @param {string} Pass header text of the column to get its corresponding field name - * @returns {string} + * @returns {String} */ - getFieldNameByHeaderText(headerText: string): string; + getFieldNameByHeaderText(headerText: string): String; /** Get the filter bar of grid * @returns {HTMLElement} @@ -19583,9 +19891,9 @@ class Grid extends ej.Widget { /** Get the column header text from the given field name in grid. * @param {string} Pass field name of the column to get its corresponding header text - * @returns {string} + * @returns {String} */ - getHeaderTextByFieldName(field: string): string; + getHeaderTextByFieldName(field: string): String; /** Get the names of all the hidden column collections in grid. * @returns {Array} @@ -19594,9 +19902,9 @@ class Grid extends ej.Widget { /** Get the row index based on the given tr element in grid. * @param {JQuery} Pass the tr element in grid content to get its row index - * @returns {number} + * @returns {Number} */ - getIndexByRow($tr: JQuery): number; + getIndexByRow($tr: JQuery): Number; /** Get the pager of grid. * @returns {HTMLElement} @@ -19616,9 +19924,9 @@ class Grid extends ej.Widget { getRowByIndex(from: number, to: number): HTMLElement; /** Get the row height of grid. - * @returns {number} + * @returns {Number} */ - getRowHeight(): number; + getRowHeight(): Number; /** Get the rows(tr element)of grid which is displayed in the current page. * @returns {HTMLElement} @@ -19626,21 +19934,21 @@ class Grid extends ej.Widget { getRows(): HTMLElement; /** Get the scroller object of grid. - * @returns {any} + * @returns {ej.Scroller} */ - getScrollObject(): any; + getScrollObject(): ej.Scroller; /** Get the selected records details in grid. - * @returns {void} + * @returns {Array} */ - getSelectedRecords(): void; + getSelectedRecords(): Array; /** Get the calculated summary values of JSON data passed to it * @param {any} Pass Summary Column details * @param {any} Pass JSON Array for which its field values to be calculated - * @returns {number} + * @returns {Number} */ - getSummaryValues(summaryCol: any, summaryData: any): number; + getSummaryValues(summaryCol: any, summaryData: any): Number; /** Get the names of all the visible column collections in grid * @returns {Array} @@ -19727,9 +20035,9 @@ class Grid extends ej.Widget { rowHeightRefresh(): void; /** Save the particular edited cell in grid. - * @returns {boolean} + * @returns {Boolean} */ - saveCell(): boolean; + saveCell(): Boolean; /** We can prevent the client side cellSave event triggering by passing the preventSaveEvent argument as true. * @param {boolean} optionalIf we pass preventSaveEvent as true, it prevents the client side cellSave event triggering @@ -19770,9 +20078,9 @@ class Grid extends ej.Widget { /** Select the specified columns in grid based on Index provided. * @param {number} It is used to set the starting index of column for selecting columns. * @param {number} optionalIt is used to set the ending index of column for selecting columns. - * @returns {boolean} + * @returns {Boolean} */ - selectColumns(columnIndex: number, toIndex?: number): boolean; + selectColumns(columnIndex: number, toIndex?: number): Boolean; /** Select rows in grid. * @param {number} It is used to set the starting index of row for selecting rows. @@ -19808,6 +20116,12 @@ class Grid extends ej.Widget { */ setCellValue(Index: number, fieldName: string, value: any): void; + /** The grid rows has to be rendered as detail view in mobile mode based on given value. + * @param {number} It is used to render grid rows as details view in mobile mode. + * @returns {void} + */ + setPhoneModeMaxWidth(Index: number): void; + /** Set validation to a field during editing. * @param {string} Specify the field name of the column to set validation rules * @param {any} Specify the validation rules for the field @@ -19859,86 +20173,86 @@ export interface Model { /** Gets or sets a value that indicates whether to customizing cell based on our needs. * @Default {false} */ - allowCellMerging?: boolean; + allowCellMerging?: Boolean; /** Gets or sets a value that indicates whether to enable dynamic grouping behavior. Grouping can be done by drag on drop desired columns to grid’s GroupDropArea. This can be further customized through “groupSettings” property. * @Default {false} */ - allowGrouping?: boolean; + allowGrouping?: Boolean; /** Gets or sets a value that indicates whether to enable keyboard support for performing grid actions. selectionType – Gets or sets a value that indicates whether to enable single row or multiple rows selection behavior in grid. Multiple selection can be done through by holding CTRL and clicking the grid rows * @Default {true} */ - allowKeyboardNavigation?: boolean; + allowKeyboardNavigation?: Boolean; /** Gets or sets a value that indicates whether to enable dynamic filtering behavior on grid. Filtering can be used to limit the records displayed using required criteria and this can be further customized through “filterSettings” property * @Default {false} */ - allowFiltering?: boolean; + allowFiltering?: Boolean; /** Gets or sets a value that indicates whether to enable the dynamic sorting behavior on grid data. Sorting can be done through clicking on particular column header. * @Default {false} */ - allowSorting?: boolean; + allowSorting?: Boolean; /** Gets or sets a value that indicates whether to enable multi columns sorting behavior in grid. Sort multiple columns by holding CTRL and click on the corresponding column header. * @Default {false} */ - allowMultiSorting?: boolean; + allowMultiSorting?: Boolean; /** This specifies the grid to show the paginated data. Also enables pager control at the bottom of grid for dynamic navigation through data source. Paging can be further customized through “pageSettings” property. * @Default {false} */ - allowPaging?: boolean; + allowPaging?: Boolean; /** Gets or sets a value that indicates whether to enable the columns reordering behavior in the grid. Reordering can be done through by drag and drop the particular column from one index to another index within the grid. * @Default {false} */ - allowReordering?: boolean; + allowReordering?: Boolean; /** Gets or sets a value that indicates whether the column is non resizable. Column width is set automatically based on the content or header text which is large. * @Default {false} */ - allowResizeToFit?: boolean; + allowResizeToFit?: Boolean; /** Gets or sets a value that indicates whether to enable dynamic resizable of columns. Resize the width of the columns by simply click and move the particular column header line * @Default {false} */ - allowResizing?: boolean; + allowResizing?: Boolean; /** Gets or sets a value that indicates whether to enable the rows reordering in Grid and drag & drop rows between multiple Grid. * @Default {false} */ - allowRowDragAndDrop?: boolean; + allowRowDragAndDrop?: Boolean; /** Gets or sets a value that indicates whether to enable the scrollbar in the grid and view the records by scroll through the grid manually * @Default {false} */ - allowScrolling?: boolean; + allowScrolling?: Boolean; /** Gets or sets a value that indicates whether to enable dynamic searching behavior in grid. Currently search box can be enabled through “toolbarSettings” * @Default {false} */ - allowSearching?: boolean; + allowSearching?: Boolean; /** Gets or sets a value that indicates whether user can select rows on grid. On enabling feature, selected row will be highlighted. * @Default {true} */ - allowSelection?: boolean; + allowSelection?: Boolean; /** Gets or sets a value that indicates whether the Content will wrap to the next line if the content exceeds the boundary of the Column Cells. * @Default {false} */ - allowTextWrap?: boolean; + allowTextWrap?: Boolean; /** Gets or sets a value that indicates whether to enable the multiple exporting behavior on grid data. * @Default {false} */ - allowMultipleExporting?: boolean; + allowMultipleExporting?: Boolean; /** Gets or sets a value that indicates to define common width for all the columns in the grid. */ - commonWidth?: number; + commonWidth?: Number; /** Gets or sets a value that indicates to enable the visibility of the grid lines. * @Default {ej.Grid.GridLines.Both} @@ -19966,7 +20280,7 @@ export interface Model { /** Gets or sets a value that indicates to render the grid with custom theme. */ - cssClass?: string; + cssClass?: String; /** Gets or sets the data to render the grid with records * @Default {null} @@ -19976,7 +20290,7 @@ export interface Model { /** This specifies the grid to add the details row for the corresponding master row * @Default {null} */ - detailsTemplate?: string; + detailsTemplate?: String; /** Gets or sets an object that indicates whether to customize the editing behavior of the grid. */ @@ -19985,42 +20299,42 @@ export interface Model { /** Gets or sets a value that indicates whether to enable the alternative rows differentiation in the grid records based on corresponding theme. * @Default {true} */ - enableAltRow?: boolean; + enableAltRow?: Boolean; /** Gets or sets a value that indicates whether to enable the save action in the grid through row selection * @Default {true} */ - enableAutoSaveOnSelectionChange?: boolean; + enableAutoSaveOnSelectionChange?: Boolean; /** Gets or sets a value that indicates whether to enable mouse over effect on the corresponding column header cell of the grid * @Default {false} */ - enableHeaderHover?: boolean; + enableHeaderHover?: Boolean; /** Gets or sets a value that indicates whether to persist the grid model state in page using applicable medium i.e., HTML5 localStorage or cookies * @Default {false} */ - enablePersistence?: boolean; + enablePersistence?: Boolean; /** Gets or sets a value that indicates whether the grid rows has to be rendered as detail view in mobile mode * @Default {false} */ - enableResponsiveRow?: boolean; + enableResponsiveRow?: Boolean; /** Gets or sets a value that indicates whether to enable mouse over effect on corresponding grid row. * @Default {true} */ - enableRowHover?: boolean; + enableRowHover?: Boolean; /** Align content in the grid control from right to left by setting the property as true. * @Default {false} */ - enableRTL?: boolean; + enableRTL?: Boolean; /** To Disable the mouse swipe property as false. * @Default {true} */ - enableTouch?: boolean; + enableTouch?: Boolean; /** Gets or sets an object that indicates whether to customize the filtering behavior of the grid */ @@ -20033,7 +20347,7 @@ export interface Model { /** Gets or sets a value that indicates whether the grid design has be to made responsive. * @Default {false} */ - isResponsive?: boolean; + isResponsive?: Boolean; /** This specifies to change the key in keyboard interaction to grid control * @Default {null} @@ -20043,12 +20357,12 @@ export interface Model { /** Gets or sets a value that indicates whether to customizing the user interface (UI) as locale-specific in order to display regional data i.e. in a language and culture specific to a particular country or region. * @Default {en-US} */ - locale?: string; + locale?: String; /** Gets or sets a value that indicates whether to set the minimum width of the responsive grid while isResponsive property is true and enableResponsiveRow property is set as false. * @Default {0} */ - minWidth?: number; + minWidth?: Number; /** Gets or sets an object that indicates whether to modify the pager default configuration. */ @@ -20059,14 +20373,14 @@ export interface Model { */ query?: any; - /** Gets or sets an object that indicates whether to modify the resizing behaviour. + /** Gets or sets an object that indicates whether to modify the resizing behavior. */ resizeSettings?: ResizeSettings; /** Gets or sets a value that indicates to render the grid with template rows. The template row must be a table row. That table row must have the JavaScript render binding format ({{:columnName}}) then the grid data source binds the data to the corresponding table row of the template. * @Default {null} */ - rowTemplate?: string; + rowTemplate?: String; /** Gets or sets an object that indicates whether to customize the drag and drop behavior of the grid rows */ @@ -20084,7 +20398,12 @@ export interface Model { /** Gets or sets a value that indicates to select the row while initializing the grid * @Default {-1} */ - selectedRowIndex?: number; + selectedRowIndex?: Number; + + /** Gets or sets a value that indicates the selected rows in grid + * @Default {[]} + */ + selectedRowIndices?: Array; /** This property is used to configure the selection behavior of the grid. */ @@ -20102,17 +20421,17 @@ export interface Model { /** Gets or sets a value that indicates whether to enable column chooser on grid. On enabling feature able to show/hide grid columns * @Default {false} */ - showColumnChooser?: boolean; + showColumnChooser?: Boolean; /** Gets or sets a value that indicates stacked header should be shown on grid layout when the property “stackedHeaderRows” is set. * @Default {false} */ - showStackedHeader?: boolean; + showStackedHeader?: Boolean; /** Gets or sets a value that indicates summary rows should be shown on grid layout when the property “summaryRows” is set * @Default {false} */ - showSummary?: boolean; + showSummary?: Boolean; /** Gets or sets a value that indicates whether to customize the sorting behavior of the grid. */ @@ -21954,27 +22273,27 @@ export interface Column { /** Gets or sets a value that indicates whether to enable editing behavior for particular column. * @Default {true} */ - allowEditing?: boolean; + allowEditing?: Boolean; /** Gets or sets a value that indicates whether to enable dynamic filtering behavior for particular column. * @Default {true} */ - allowFiltering?: boolean; + allowFiltering?: Boolean; /** Gets or sets a value that indicates whether to enable dynamic grouping behavior for particular column. * @Default {true} */ - allowGrouping?: boolean; + allowGrouping?: Boolean; /** Gets or sets a value that indicates whether to enable dynamic sorting behavior for particular column. * @Default {true} */ - allowSorting?: boolean; + allowSorting?: Boolean; /** Gets or sets a value that indicates whether to enable dynamic resizable for particular column. * @Default {true} */ - allowResizing?: boolean; + allowResizing?: Boolean; /** Gets or sets an object that indicates to define a command column in the grid. * @Default {[]} @@ -21983,7 +22302,7 @@ export interface Column { /** Gets or sets a value that indicates to provide custom CSS for an individual column. */ - cssClass?: string; + cssClass?: String; /** Gets or sets a value that indicates the attribute values to the td element of a particular column */ @@ -21996,17 +22315,17 @@ export interface Column { /** Gets or sets a value that indicates to display the specified default value while adding a new record to the grid */ - defaultValue?: string|number|boolean|Date; + defaultValue?: String|Number|Boolean|Date; /** Gets or sets a value that indicates to render the grid content and header with an HTML elements * @Default {false} */ - disableHtmlEncode?: boolean; + disableHtmlEncode?: Boolean; /** Gets or sets a value that indicates to display a column value as checkbox or string * @Default {true} */ - displayAsCheckBox?: boolean; + displayAsCheckBox?: Boolean; /** Gets or sets a value that indicates to customize ejNumericTextbox of an editable column. See editingType */ @@ -22022,32 +22341,37 @@ export interface Column { */ editType?: ej.Grid.EditingType|string; + /** Gets or sets a value that indicates to groups the column based on its column format. + * @Default {false} + */ + enableGroupByFormat?: Boolean; + /** Gets or sets a value that indicates to display the columns in the grid mapping with column name of the dataSource. */ - field?: string; + field?: String; /** Gets or sets a value that indicates to define foreign key field name of the grid datasource. * @Default {null} */ - foreignKeyField?: string; + foreignKeyField?: String; /** Gets or sets a value that indicates to bind the field which is in foreign column datasource based on the foreignKeyField * @Default {null} */ - foreignKeyValue?: string; + foreignKeyValue?: String; /** Gets or sets a value that indicates the format for the text applied on the column */ - format?: string; + format?: String; /** Gets or sets a value that indicates to add the template within the header element of the particular column. * @Default {null} */ - headerTemplateID?: string; + headerTemplateID?: String; /** Gets or sets a value that indicates to display the title of that particular column. */ - headerText?: string; + headerText?: String; /** This defines the text alignment of a particular column header cell value. See headerTextAlign * @Default {ej.TextAlign.Left} @@ -22057,32 +22381,32 @@ export interface Column { /** You can use this property to freeze selected columns in grid at the time of scrolling. * @Default {false} */ - isFrozen?: boolean; + isFrozen?: Boolean; /** Gets or sets a value that indicates the column has an identity in the database. * @Default {false} */ - isIdentity?: boolean; + isIdentity?: Boolean; /** Gets or sets a value that indicates the column is act as a primary key(read-only) of the grid. The editing is performed based on the primary key column * @Default {false} */ - isPrimaryKey?: boolean; + isPrimaryKey?: Boolean; /** Gets or sets a value that indicates the order of Column that are to be hidden or visible when Grid element is in responsive mode and could not occupy all columns. * @Default {null} */ - priority?: number; + priority?: Number; /** Used to hide the particular column in column chooser by giving value as false. * @Default {true} */ - showInColumnChooser?: boolean; + showInColumnChooser?: Boolean; /** Gets or sets a value that indicates whether to enables column template for a particular column. * @Default {false} */ - template?: boolean|string; + template?: Boolean|String; /** Gets or sets a value that indicates to align the text within the column. See textAlign * @Default {ej.TextAlign.Left} @@ -22095,7 +22419,7 @@ export interface Column { /** Gets or sets a value that indicates to specify the data type of the specified columns. */ - type?: string; + type?: String; /** Gets or sets a value that indicates to define constraints for saving data to the database. */ @@ -22104,11 +22428,11 @@ export interface Column { /** Gets or sets a value that indicates whether this column is visible in the grid. * @Default {true} */ - visible?: boolean; + visible?: Boolean; /** Gets or sets a value that indicates to define the width for a particular column in the grid. */ - width?: number; + width?: Number; } export interface ContextMenuSettingsSubContextMenu { @@ -22139,7 +22463,7 @@ export interface ContextMenuSettings { /** Gets or sets a value that indicates whether to enable the context menu action in the grid. * @Default {false} */ - enableContextMenu?: boolean; + enableContextMenu?: Boolean; /** Used to get or set the subMenu to the corresponding custom context menu item. */ @@ -22148,7 +22472,7 @@ export interface ContextMenuSettings { /** Gets or sets a value that indicates whether to disable the default context menu items in the grid. * @Default {false} */ - disableDefaultItems?: boolean; + disableDefaultItems?: Boolean; } export interface EditSettings { @@ -22156,27 +22480,27 @@ export interface EditSettings { /** Gets or sets a value that indicates whether to enable insert action in the editing mode. * @Default {false} */ - allowAdding?: boolean; + allowAdding?: Boolean; /** Gets or sets a value that indicates whether to enable the delete action in the editing mode. * @Default {false} */ - allowDeleting?: boolean; + allowDeleting?: Boolean; /** Gets or sets a value that indicates whether to enable the edit action in the editing mode. * @Default {false} */ - allowEditing?: boolean; + allowEditing?: Boolean; /** Gets or sets a value that indicates whether to enable the editing action while double click on the record * @Default {true} */ - allowEditOnDblClick?: boolean; + allowEditOnDblClick?: Boolean; /** This specifies the id of the template. This template can be used to display the data that you require to be edited using the Dialog Box * @Default {null} */ - dialogEditorTemplateID?: string; + dialogEditorTemplateID?: String; /** Gets or sets a value that indicates whether to define the mode of editing See editMode * @Default {ej.Grid.EditMode.Normal} @@ -22186,7 +22510,7 @@ export interface EditSettings { /** This specifies the id of the template. This template can be used to display the data that you require to be edited using the External edit form * @Default {null} */ - externalFormTemplateID?: string; + externalFormTemplateID?: String; /** This specifies to set the position of an External edit form either in the top-right or bottom-left of the grid * @Default {ej.Grid.FormPosition.BottomLeft} @@ -22196,7 +22520,7 @@ export interface EditSettings { /** This specifies the id of the template. This template can be used to display the data that you require to be edited using the Inline edit form * @Default {null} */ - inlineFormTemplateID?: string; + inlineFormTemplateID?: String; /** This specifies to set the position of an adding new row either in the top or bottom of the grid * @Default {ej.Grid.RowPosition.Top} @@ -22206,22 +22530,22 @@ export interface EditSettings { /** Gets or sets a value that indicates whether the confirm dialog has to be shown while saving or discarding the batch changes * @Default {true} */ - showConfirmDialog?: boolean; + showConfirmDialog?: Boolean; /** Gets or sets a value that indicates whether the confirm dialog has to be shown while deleting record * @Default {false} */ - showDeleteConfirmDialog?: boolean; + showDeleteConfirmDialog?: Boolean; /** Gets or sets a value that indicates whether the title for edit form is different from the primarykey column. * @Default {null} */ - titleColumn?: string; + titleColumn?: String; /** Gets or sets a value that indicates whether to display the add new form by default in the grid. * @Default {false} */ - showAddNewRow?: boolean; + showAddNewRow?: Boolean; } export interface FilterSettingsFilteredColumn { @@ -22248,7 +22572,7 @@ export interface FilterSettings { /** Gets or sets a value that indicates to perform the filter operation with case sensitive in excel styled filter menu mode * @Default {false} */ - enableCaseSensitivity?: boolean; + enableCaseSensitivity?: Boolean; /** This specifies the grid to starts the filter action while typing in the filterBar or after pressing the enter key. based on the filterBarMode. See filterBarMode * @Default {ej.Grid.FilterBarMode.Immediate} @@ -22268,17 +22592,17 @@ export interface FilterSettings { /** Gets or sets a value that indicates the maximum number of filter choices that can be showed in the excel styled filter menu. * @Default {1000} */ - maxFilterChoices?: number; + maxFilterChoices?: Number; /** This specifies the grid to show the filter text within the grid pager itself. * @Default {true} */ - showFilterBarMessage?: boolean; + showFilterBarMessage?: Boolean; /** Gets or sets a value that indicates whether to enable the predicate options in the filtering menu * @Default {false} */ - showPredicate?: boolean; + showPredicate?: Boolean; } export interface GroupSettings { @@ -22286,12 +22610,12 @@ export interface GroupSettings { /** Gets or sets a value that customize the group caption format. * @Default {null} */ - captionFormat?: string; + captionFormat?: String; /** Gets or sets a value that indicates whether to enable animation button option in the group drop area of the grid. * @Default {false} */ - enableDropAreaAutoSizing?: boolean; + enableDropAreaAutoSizing?: Boolean; /** Gets or sets a value that indicates whether to add grouped columns programmatically at initial load * @Default {[]} @@ -22301,22 +22625,22 @@ export interface GroupSettings { /** Gets or sets a value that indicates whether to show the group drop area just above the column header. It can be used to avoid ungrouping the already grouped column using groupSettings. * @Default {true} */ - showDropArea?: boolean; + showDropArea?: Boolean; /** Gets or sets a value that indicates whether to hide the grouped columns from the grid * @Default {false} */ - showGroupedColumn?: boolean; + showGroupedColumn?: Boolean; /** Gets or sets a value that indicates whether to show the group button image(toggle button)in the column header and also in the grouped column in the group drop area . It can be used to group/ungroup the columns by click on the toggle button. * @Default {false} */ - showToggleButton?: boolean; + showToggleButton?: Boolean; /** Gets or sets a value that indicates whether to enable the close button in the grouped column which is in the group drop area to ungroup the grouped column * @Default {false} */ - showUngroupButton?: boolean; + showUngroupButton?: Boolean; } export interface PageSettings { @@ -22324,47 +22648,47 @@ export interface PageSettings { /** Gets or sets a value that indicates whether to define which page to display currently in the grid * @Default {1} */ - currentPage?: number; + currentPage?: Number; /** Gets or sets a value that indicates whether to pass the current page information as a query string along with the URL while navigating to other page. * @Default {false} */ - enableQueryString?: boolean; + enableQueryString?: Boolean; /** Gets or sets a value that indicates whether to enables pager template for the grid. * @Default {false} */ - enableTemplates?: boolean; + enableTemplates?: Boolean; /** Gets or sets a value that indicates whether to define the number of pages displayed in the pager for navigation * @Default {8} */ - pageCount?: number; + pageCount?: Number; /** Gets or sets a value that indicates whether to define the number of records displayed per page * @Default {12} */ - pageSize?: number; + pageSize?: Number; /** Gets or sets a value that indicates whether to enables default pager for the grid. * @Default {false} */ - showDefaults?: boolean; + showDefaults?: Boolean; /** Gets or sets a value that indicates to add the template as a pager template for grid. * @Default {null} */ - template?: string; + template?: String; /** Get the value of total number of pages in the grid. The totalPages value is calculated based on page size and total records of grid * @Default {null} */ - totalPages?: number; + totalPages?: Number; /** Get the value of total number of records which is bound to the grid. The totalRecordsCount value is calculated based on dataSource bound to the grid. * @Default {null} */ - totalRecordsCount?: number; + totalRecordsCount?: Number; /** Gets or sets a value that indicates whether to define the number of pages to print * @Default {ej.Grid.PrintMode.AllPages} @@ -22374,7 +22698,7 @@ export interface PageSettings { export interface ResizeSettings { - /** Gets or sets a value that indicates whether to define the mode of resizing.Accepting types are "normal", "nextcolumn" and "control". + /** Gets or sets a value that indicates whether to define the mode of resizing. * @Default {ej.Grid.ResizeMode.Normal} */ resizeMode?: ej.Grid.ResizeMode|string; @@ -22425,7 +22749,7 @@ export interface SelectionSettings { /** Gets or sets a value that indicates whether to enable the toggle selection behavior for row, cell and column. * @Default {false} */ - enableToggle?: boolean; + enableToggle?: Boolean; /** Gets or sets a value that indicates whether to add the default selection actions as a selection mode.See selectionMode * @Default {[row]} @@ -22438,27 +22762,27 @@ export interface ScrollSettings { /** This specify the grid to to view data that you require without buffering the entire load of a huge database * @Default {false} */ - allowVirtualScrolling?: boolean; + allowVirtualScrolling?: Boolean; /** This specify the grid to enable/disable touch control for scrolling. * @Default {true} */ - enableTouchScroll?: boolean; + enableTouchScroll?: Boolean; /** This specify the grid to freeze particular columns at the time of scrolling. * @Default {0} */ - frozenColumns?: number; + frozenColumns?: Number; /** This specify the grid to freeze particular rows at the time of scrolling. * @Default {0} */ - frozenRows?: number; + frozenRows?: Number; /** This specify the grid to show the vertical scroll bar, to scroll and view the grid contents. * @Default {0} */ - height?: string|number; + height?: String|Number; /** This is used to define the mode of virtual scrolling in grid. See virtualScrollMode * @Default {ej.Grid.VirtualScrollMode.Normal} @@ -22468,28 +22792,28 @@ export interface ScrollSettings { /** This is used to enable the enhanced virtual scrolling in Grid. * @Default {false} */ - enableVirtualization?: boolean; + enableVirtualization?: Boolean; /** This specify the grid to show the horizontal scroll bar, to scroll and view the grid contents * @Default {250} */ - width?: string|number; + width?: String|Number; /** This specify the scroll down pixel of mouse wheel, to scroll mouse wheel and view the grid contents. * @Default {57} */ - scrollOneStepBy?: number; + scrollOneStepBy?: Number; } export interface SortSettingsSortedColumn { /** Gets or sets a value that indicates whether to define the direction to sort the column. */ - direction?: string; + direction?: String; /** Gets or sets a value that indicates whether to define the field name of the column to be sort */ - field?: string; + field?: String; } export interface SortSettings { @@ -22509,17 +22833,17 @@ export interface StackedHeaderRowsStackedHeaderColumn { /** Gets or sets a value that indicates class to the corresponding stackedHeaderColumn. * @Default {null} */ - cssClass?: string; + cssClass?: String; /** Gets or sets a value that indicates the header text for the particular stacked header column. * @Default {null} */ - headerText?: string; + headerText?: String; /** Gets or sets a value that indicates the text alignment of the corresponding headerText. * @Default {ej.TextAlign.Left} */ - textAlign?: string; + textAlign?: String; } export interface StackedHeaderRow { @@ -22535,32 +22859,32 @@ export interface SummaryRowsSummaryColumn { /** Gets or sets a value that indicates the text displayed in the summary column as a value * @Default {null} */ - customSummaryValue?: string; + customSummaryValue?: String; /** This specifies summary column used to perform the summary calculation * @Default {null} */ - dataMember?: string; + dataMember?: String; /** Gets or sets a value that indicates to define the target column at which to display the summary. * @Default {null} */ - displayColumn?: string; + displayColumn?: String; /** Gets or sets a value that indicates the format for the text applied on the column * @Default {null} */ - format?: string; + format?: String; /** Gets or sets a value that indicates the text displayed before the summary column value * @Default {null} */ - prefix?: string; + prefix?: String; /** Gets or sets a value that indicates the text displayed after the summary column value * @Default {null} */ - suffix?: string; + suffix?: String; /** Gets or sets a value that indicates the type of calculations to be performed for the corresponding summary column * @Default {[]} @@ -22570,7 +22894,7 @@ export interface SummaryRowsSummaryColumn { /** Gets or sets a value that indicates to add the template for the summary value of dataMember given. * @Default {null} */ - template?: string; + template?: String; } export interface SummaryRow { @@ -22578,17 +22902,17 @@ export interface SummaryRow { /** Gets or sets a value that indicates whether to show the summary value within the group caption area for the corresponding summary column while grouping the column * @Default {false} */ - showCaptionSummary?: boolean; + showCaptionSummary?: Boolean; /** Gets or sets a value that indicates whether to show the group summary value for the corresponding summary column while grouping a column * @Default {false} */ - showGroupSummary?: boolean; + showGroupSummary?: Boolean; /** Gets or sets a value that indicates whether to show the total summary value the for the corresponding summary column. The summary row is added after the grid content. * @Default {true} */ - showTotalSummary?: boolean; + showTotalSummary?: Boolean; /** Gets or sets a value that indicates whether to add summary columns into the summary rows. * @Default {[]} @@ -22597,12 +22921,12 @@ export interface SummaryRow { /** This specifies the grid to show the title for the summary rows. */ - title?: string; + title?: String; /** This specifies the grid to show the title of summary row in the specified column. * @Default {null} */ - titleColumn?: string; + titleColumn?: String; } export interface TextWrapSettings { @@ -22623,7 +22947,7 @@ export interface ToolbarSettings { /** Gets or sets a value that indicates whether to enable toolbar in the grid. * @Default {false} */ - showToolbar?: boolean; + showToolbar?: Boolean; /** Gets or sets a value that indicates whether to add the default editing actions as a toolbar items * @Default {[]} @@ -22868,6 +23192,7 @@ class Sparkline extends ej.Widget { static fn: Sparkline; constructor(element: JQuery, options?: Sparkline.Model); constructor(element: Element, options?: Sparkline.Model); + static Locale: any; model:Sparkline.Model; defaults:Sparkline.Model; @@ -23464,20 +23789,21 @@ class PivotGrid extends ej.Widget { static fn: PivotGrid; constructor(element: JQuery, options?: PivotGrid.Model); constructor(element: Element, options?: PivotGrid.Model); + static Locale: any; model:PivotGrid.Model; defaults:PivotGrid.Model; - /** Perform an asynchronous HTTP (AJAX) request. + /** Performs an asynchronous HTTP (AJAX) request. * @returns {void} */ doAjaxPost(): void; - /** Perform an asynchronous HTTP (FullPost) submit. + /** Performs an asynchronous HTTP (FullPost) submit. * @returns {void} */ doPostBack(): void; - /** Exports the PivotGrid to an appropriate format based on the parameter passed. + /** Exports the PivotGrid to the specified format. * @returns {void} */ exportPivotGrid(): void; @@ -23487,11 +23813,61 @@ class PivotGrid extends ej.Widget { */ refreshPagedPivotGrid(): void; - /** This function is helps to update or refresh the PivotGrid with modified data source in client-mode. + /** This function refreshes the PivotGrid with modified data input in client-mode. * @returns {void} */ refreshPivotGrid(): void; + /** This function re-renders the control with the report available at that instant. + * @returns {void} + */ + refreshControl(): void; + + /** This function returns the height of all rows and width each and every column. + * @returns {void} + */ + calculateCellWidths(): void; + + /** This function creates the conditional formatting dialog to apply conditional formatting for PivotGrid control. + * @returns {void} + */ + createConditionalDialog(): void; + + /** This function saves the current report to the database/local storage. + * @returns {void} + */ + saveReport(): void; + + /** This function loads the specified report from the database/local storage. + * @returns {void} + */ + loadReport(): void; + + /** This function reconstructs the JSON data formed for rendering PivotGrid in excel-like layout format. + * @returns {void} + */ + excelLikeLayout(): void; + + /** Returns the OlapReport string maintained along with the axis elements information. + * @returns {void} + */ + getOlapReport(): void; + + /** Sets the OlapReport string along with the axis information. + * @returns {void} + */ + setOlapReport(): void; + + /** Returns the JSON records formed to render the control. + * @returns {void} + */ + getJSONRecords(): void; + + /** Sets the JSON records formed to render the control. + * @returns {void} + */ + setJSONRecords(): void; + /** This function allows user to change the caption of the Pivot Item (name displayed in UI) on-demand for relational datasource in client-mode. * @returns {void} */ @@ -23507,51 +23883,51 @@ export module PivotGrid{ export interface Model { /** Sets the mode for the PivotGrid widget for binding either OLAP or relational data source. - * @Default {ej.PivotGrid.AnalysisMode.Olap} + * @Default {ej.Pivot.AnalysisMode.Pivot} */ - analysisMode?: ej.PivotGrid.AnalysisMode|string; + analysisMode?: ej.Pivot.AnalysisMode|string; /** Specifies the CSS class to PivotGrid to achieve custom theme. * @Default {“”} */ cssClass?: string; - /** Contains the serialized OlapReport at that instant. - * @Default {“”} - */ - currentReport?: string; - /** Initializes the data source for the PivotGrid widget, when it functions completely on client-side. * @Default {{}} */ dataSource?: DataSource; - /** Used to bind the drilled members by default through report. - * @Default {[]} + /** Object that holds the settings of frozen headers. + * @Default {{}} */ - drilledItems?: Array; + frozenHeaderSettings?: FrozenHeaderSettings; - /** Object utilized to pass additional information between client-end and service-end. + /** Object utilized to pass additional information between client-end and service-end on operating the control in server mode. * @Default {null} */ customObject?: any; + /** Allows the user to collapsed the specified members in each field by default. + * @Default {null} + */ + collapsedMembers?: any; + /** Allows the user to access each cell on mouse right-click. * @Default {false} */ enableCellContext?: boolean; - /** Enables the cell selection for a specified range of value cells. And, the individual row/column cells can be selected by clicking its headers. + /** Enables the cell selection for a specific range of value cells. * @Default {false} */ enableCellSelection?: boolean; - /** Enables the Drill-Through feature which retrieves the raw items that are used to create a specified cell in PivotGrid. This is only applicable in server mode component. + /** Enables the Drill-Through feature which retrieves the raw items that are used to create the specific cell in PivotGrid. This is only applicable in server mode component. * @Default {false} */ enableDrillThrough?: boolean; - /** Allows user to get the cell details in JSON format when double clicking the cell. + /** Allows user to get the cell details in JSON format on double clicking the cell. * @Default {false} */ enableCellDoubleClick?: boolean; @@ -23561,12 +23937,12 @@ export interface Model { */ enableCellEditing?: boolean; - /** Collapses the Pivot Items along rows and columns by default. It works only for relational data source. + /** Collapses the Pivot items along rows and columns by default. It works only for relational data source. * @Default {false} */ enableCollapseByDefault?: boolean; - /** Enables the display of grand total for all the columns. + /** Enables/Disables the display of grand total for all the columns. * @Default {true} */ enableColumnGrandTotal?: boolean; @@ -23581,12 +23957,12 @@ export interface Model { */ enableDeferUpdate?: boolean; - /** Enables the display of GroupingBar allowing you to filter, sort and remove fields obtained from relational datasource. + /** Enables the display of GroupingBar allowing you to filter, sort and remove fields obtained from datasource. * @Default {false} */ enableGroupingBar?: boolean; - /** Enables the display of grand total for rows and columns. + /** Enables/Disables the display of grand total for rows and columns. * @Default {true} */ enableGrandTotal?: boolean; @@ -23596,7 +23972,7 @@ export interface Model { */ enableJSONRendering?: boolean; - /** Enables rendering of PivotGrid widget along with the PivotTable Field List, which allows UI operation. + /** Enables rendering of PivotGrid widget along with the PivotTable Field List, which allows UI operations. * @Default {true} */ enablePivotFieldList?: boolean; @@ -23621,32 +23997,36 @@ export interface Model { */ enableToolTipAnimation?: boolean; + /** Allows the user to adjust the width of the columns dynamically. + * @Default {false} + */ + enableColumnResizing?: boolean; + /** Allows the user to view large amount of data through virtual scrolling. * @Default {false} */ enableVirtualScrolling?: boolean; + /** Allows the user to view large amount of data by applying paging. + * @Default {false} + */ + enablePaging?: boolean; + /** Allows the user to configure hyperlink settings of PivotGrid control. * @Default {{}} */ hyperlinkSettings?: HyperlinkSettings; - /** This is used for identifying whether the member is Named Set or not. - * @Default {false} - */ - isNamedSets?: boolean; - /** Allows the user to enable PivotGrid’s responsiveness in the browser layout. * @Default {false} */ isResponsive?: boolean; /** Contains the serialized JSON string which renders PivotGrid. - * @Default {“”} */ jsonRecords?: string; - /** Sets the summary layout for PivotGrid. Following are the ways in which summary can be positioned: normal summary (bottom), top summary, no summary and excel-like summary. + /** Sets the summary layout for PivotGrid.Following are the ways in which summary can be positioned: normal summary (bottom), top summary, no summary and excel-like summary. * @Default {ej.PivotGrid.Layout.Normal} */ layout?: ej.PivotGrid.Layout|string; @@ -23657,9 +24037,9 @@ export interface Model { locale?: string; /** Sets the mode for the PivotGrid widget for binding data source either in server-side or client-side. - * @Default {ej.PivotGrid.OperationalMode.ClientMode} + * @Default {ej.Pivot.OperationalMode.ClientMode} */ - operationalMode?: ej.PivotGrid.OperationalMode|string; + operationalMode?: ej.Pivot.OperationalMode|string; /** Allows the user to set custom name for the methods at service-end, communicated during AJAX post. * @Default {{}} @@ -23718,114 +24098,74 @@ export interface Model { /** Triggers when the hyperlink of value cell is clicked. */ valueCellHyperlinkClick? (e: ValueCellHyperlinkClickEventArgs): void; + + /** Triggers before saving the current report to database. */ + saveReport? (e: SaveReportEventArgs): void; + + /** Triggers before loading a report from database. */ + loadReport? (e: LoadReportEventArgs): void; + + /** Triggers before performing exporting in pivot grid. */ + beforeExport? (e: BeforeExportEventArgs): void; + + /** Triggers before editing the cells. */ + cellEdit? (e: CellEditEventArgs): void; } export interface AfterServiceInvokeEventArgs { - /** return the current action of PivotGrid control. + /** returns the current action of PivotGrid control. */ action?: string; - /** return the custom object bounds with PivotGrid control. + /** returns the custom object bound with PivotGrid control. */ customObject?: any; - /** return the outer HTML of PivotGrid control. + /** returns the HTML element of PivotGrid control. */ - element?: string; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the PivotGrid model - */ - model?: ej.PivotGrid.Model; - - /** returns the name of the event - */ - type?: string; + element?: any; } export interface BeforeServiceInvokeEventArgs { - /** return the current action of PivotGrid control. + /** returns the current action of PivotGrid control. */ action?: string; - /** return the custom object bounds with PivotGrid control. + /** returns the custom object bound with PivotGrid control. */ customObject?: any; - /** return the outer HTML of PivotGrid control. + /** returns the HTML element of PivotGrid control. */ - element?: string; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the PivotGrid model - */ - model?: ej.PivotGrid.Model; - - /** returns the name of the event - */ - type?: string; + element?: any; } export interface BeforePivotEnginePopulateEventArgs { /** returns the PivotGrid object */ - pivotObject?: any; - - /** returns the PivotGrid model - */ - model?: ej.PivotGrid.Model; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the name of the event - */ - type?: string; + pivotGridObject?: any; } export interface CellDoubleClickEventArgs { - /** return the JSON details of the double clicked cell. + /** returns the JSON details of the double clicked cell. */ - selectedData?: any; + selectedData?: Array; - /** return the custom object bounds with PivotGrid widget. + /** returns the custom object bound with PivotGrid control. */ customObject?: any; - /** return the outer HTML of PivotGrid control. + /** returns the HTML element of PivotGrid control. */ - element?: string; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the PivotGrid model - */ - model?: ej.PivotGrid.Model; - - /** returns the name of the event - */ - type?: string; + element?: any; } export interface CellContextEventArgs { - /** returns the original event args. - */ - args?: any; - /** returns the cell position (row index and column index) in table. */ cellPosition?: string; @@ -23834,78 +24174,66 @@ export interface CellContextEventArgs { */ cellType?: string; - /** returns the serialized data of the header cells. + /** returns the content of the cell. */ - rowData?: string; + cellValue?: string; /** returns the unique name of levels/members. */ uniqueName?: string; + + /** returns the role of the cell in PivotGrid. + */ + role?: string; + + /** returns JSON record corresponding to the selected cell. + */ + rawdata?: any; + + /** returns the original event object. + */ + args?: any; } export interface CellSelectionEventArgs { - /** returns the original event args. + /** returns the JSON records of the selected range of cells. */ - args?: any; + JSONRecords?: any; - /** Returns the selected cell values. + /** Returns the row headers corresponding to the selected value cells. */ - cellvalue?: any; + rowheader?: any; - /** Returns the selected value cells row headers. + /** Returns the column headers corresponding to the selected value cells. */ - rowheaders?: any; + columnheader?: any; - /** Returns the selected value cells column headers. + /** Returns the information about the measure associated with the selected cell. */ - colheaders?: any; - - /** Returns the selected value cells measure. - */ - measure?: any; - - /** Return the row and column measure count. - */ - measureValue?: any; + measureCount?: string; } export interface ColumnHeaderHyperlinkClickEventArgs { - /** returns the original event args. + /** returns the information about the clicked cell */ args?: any; - /** returns the cell position (row index and column index) in table. + /** returns the HTML element of the control. */ - cellPosition?: string; + element?: any; - /** returns the type of the cell. + /** returns the custom object bound to the control. */ - cellType?: string; - - /** returns the serialized data of the header cells. - */ - rowData?: string; - - /** returns the unique name of levels/members. - */ - uniqueName?: string; + customObject?: any; } export interface DrillSuccessEventArgs { - /** if the event should be canceled; otherwise, false. + /** returns the HTML element of the control. */ - cancel?: boolean; - - /** returns the PivotGrid model - */ - model?: ej.PivotGrid.Model; - - /** returns the name of the event - */ - type?: string; + args?: any; } export interface DrillThroughEventArgs { @@ -23914,241 +24242,192 @@ export interface DrillThroughEventArgs { */ data?: any; - /** return the outer HTML of PivotGrid control. + /** returns the HTML element of PivotGrid control. */ - element?: string; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the PivotGrid model - */ - model?: ej.PivotGrid.Model; - - /** returns the name of the event - */ - type?: string; + element?: any; } export interface LoadEventArgs { - /** returns the original event args. - */ - args?: any; - - /** returns the current action of PivotGrid control. - */ - action?: string; - - /** returns the custom object bounded with the control. + /** returns the custom object bound with the control. */ customObject?: any; - /** returns the HTML of PivotGrid control. + /** returns the HTML element of PivotGrid control. */ - element?: string; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the PivotGrid model. - */ - model?: ej.PivotGrid.Model; - - /** returns the name of the event. - */ - type?: string; + element?: any; } export interface RenderCompleteEventArgs { - /** returns the original event args. - */ - args?: any; - /** returns the current action of PivotGrid control. */ action?: string; - /** returns the custom object bounded with the control. + /** returns the custom object bound with the control. */ customObject?: any; - /** returns the HTML of PivotGrid control. + /** returns the HTML element of PivotGrid control. */ - element?: string; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the PivotGrid model. - */ - model?: ej.PivotGrid.Model; - - /** returns the name of the event. - */ - type?: string; + element?: any; } export interface RenderFailureEventArgs { - /** returns the original event args. - */ - args?: any; - /** returns the current action of PivotGrid control. */ action?: string; - /** returns the custom object bounded with the control. + /** returns the custom object bound with the control. */ customObject?: any; - /** returns the HTML of PivotGrid control. + /** returns the HTML element of PivotGrid control. */ - element?: string; + element?: any; /** returns the error message with error code. */ - message?: any; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the PivotGrid model. - */ - model?: ej.PivotGrid.Model; - - /** returns the name of the event. - */ - type?: string; + message?: string; } export interface RenderSuccessEventArgs { - /** returns the original event args. - */ - args?: any; - /** returns the current action of PivotGrid control. */ action?: string; - /** returns the custom object bounded with the control. + /** returns the custom object bound with the control. */ customObject?: any; - /** returns the HTML of PivotGrid control. + /** returns the HTML element of PivotGrid control. */ - element?: string; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the PivotGrid model. - */ - model?: ej.PivotGrid.Model; - - /** returns the name of the event. - */ - type?: string; + element?: any; } export interface RowHeaderHyperlinkClickEventArgs { - /** returns the original event args. + /** returns the information about the clicked cell */ args?: any; - /** returns the cell position (row index and column index) in table. + /** returns the HTML element of the control. */ - cellPosition?: string; + element?: any; - /** returns the type of the cell. + /** returns the custom object bound to the control. */ - cellType?: string; - - /** returns the serialized data of the header cells. - */ - rowData?: string; - - /** returns the unique name of levels/members. - */ - uniqueName?: string; + customObject?: any; } export interface SummaryCellHyperlinkClickEventArgs { - /** returns the original event args. + /** returns the information about the clicked cell */ args?: any; - /** returns the cell position (row index and column index) in table. + /** returns the HTML element of the control. */ - cellPosition?: string; + element?: any; - /** returns the type of the cell. + /** returns the custom object bound to the control. */ - cellType?: string; - - /** returns the serialized data of the header cells. - */ - rowData?: string; - - /** returns the unique name of levels/members. - */ - uniqueName?: string; + customObject?: any; } export interface ValueCellHyperlinkClickEventArgs { - /** returns the original event args. + /** returns the information about the clicked cell */ args?: any; - /** returns the cell position (row index and column index) in table. + /** returns the HTML element of the control. */ - cellPosition?: string; + element?: any; - /** returns the type of the cell. + /** returns the custom object bound to the control. */ - cellType?: string; + customObject?: any; +} - /** returns the serialized data of the header cells. - */ - rowData?: string; +export interface SaveReportEventArgs { - /** returns the unique name of levels/members. + /** returns the report to be stored in database. */ - uniqueName?: string; + report?: any; +} + +export interface LoadReportEventArgs { + + /** returns the PivotGrid object. + */ + targetControl?: any; + + /** returns whether the control is bound with OLAP or Relational data source. + */ + dataModel?: string; +} + +export interface BeforeExportEventArgs { + + /** contains the url of the service responsible for exporting. + */ + url?: string; + + /** contains the name of the exporting file. + */ + fileName?: string; +} + +export interface CellEditEventArgs { + + /** contains the array of cells selected for editing. + */ + editCellsInfo?: Array; } export interface DataSourceColumnsAdvancedFilter { - /** Allows the user to provide level unique name to do advanced filtering (excel-like) for OLAP data source in client-mode. + /** Allows the user to provide level unique name to perform advanced filtering. */ name?: string; - /** Allows the user to set the operator for label filtering to do advanced filtering (excel-like) for OLAP data source in client-mode. + /** Allows the user to set the operator to perform Label Filtering. + * @Default {none} */ labelFilterOperator?: string; - /** Allows the user to set the operator for value filtering to do advanced filtering (excel-like) for OLAP data source in client-mode. + /** Allows the user to set the operator to perform Value Filtering. + * @Default {none} */ valueFilterOperator?: string; - /** Allows the user to set the filtering type while doing advanced filtering (excel-like) for OLAP data source in client-mode. + /** Allows the user to set the filtering type while performing advanced filtering. */ advancedFilterType?: string; - /** Allows the user to holds the filter value in advanced filtering (excel-like) option for OLAP data source in client-mode. + /** In case of value filtering, this property contains the measure name to which the filter is applied. */ - values?: string; + measure?: string; + + /** Allows the user to hold the filter operand values in advanced filtering. + */ + values?: Array; +} + +export interface DataSourceColumnsFilterItems { + + /** Sets the type of filter whether to include/exclude the mentioned values. + * @Default {ej.PivotAnalysis.FilterType.Exclude} + */ + filterType?: ej.PivotAnalysis.FilterType|string; + + /** Contains the collection of items to be included/excluded among the field members. + * @Default {[]} + */ + values?: Array; } export interface DataSourceColumn { @@ -24157,7 +24436,7 @@ export interface DataSourceColumn { */ fieldName?: string; - /** Allows the user to set the display name for an item. + /** Allows the user to set the display caption for an item. */ fieldCaption?: string; @@ -24166,33 +24445,72 @@ export interface DataSourceColumn { */ advancedFilter?: Array; - /** Allows the user to enable the usage of named set items in respective axis. This is only applicable for OLAP datasource. + /** Allows the user to indicate whether the added item is a named set or not. * @Default {false} */ isNamedSets?: boolean; + + /** Shows/Hides the sub-total of the field in PivotGrid. + * @Default {true} + */ + showSubTotal?: boolean; + + /** Allows the user to set the sorting order of the members of the field. + * @Default {ej.PivotAnalysis.SortOrder.Ascending} + */ + sortOrder?: ej.PivotAnalysis.SortOrder|string; + + /** Contains the list of members need to be drilled down by default in the field. + * @Default {[]} + */ + drilledItems?: Array; + + /** Applies filter to the field members. + * @Default {null} + */ + filterItems?: DataSourceColumnsFilterItems; } export interface DataSourceRowsAdvancedFilter { - /** Allows the user to provide level unique name to do advanced filtering (excel-like) for OLAP data source in client-mode. + /** Allows the user to provide level unique name to perform advanced filtering. */ name?: string; - /** Allows the user to set the operator for label filtering to do advanced filtering (excel-like) for OLAP data source in client-mode. + /** Allows the user to set the operator to perform Label Filtering. + * @Default {none} */ labelFilterOperator?: string; - /** Allows the user to set the operator for value filtering to do advanced filtering (excel-like) for OLAP data source in client-mode. + /** Allows the user to set the operator to perform Value Filtering. + * @Default {none} */ valueFilterOperator?: string; - /** Allows the user to set the filtering type while doing advanced filtering (excel-like) for OLAP data source in client-mode. + /** Allows the user to set the filtering type while performing advanced filtering. */ advancedFilterType?: string; - /** Allows the user to holds the filter value in advanced filtering (excel-like) option for OLAP data source in client-mode. + /** In case of value filtering, this property contains the measure name to which the filter is applied. */ - values?: string; + measure?: string; + + /** Allows the user to hold the filter operand values in advanced filtering. + */ + values?: Array; +} + +export interface DataSourceRowsFilterItems { + + /** Sets the type of filter whether to include/exclude the mentioned values. + * @Default {ej.PivotAnalysis.FilterType.Exclude} + */ + filterType?: ej.PivotAnalysis.FilterType|string; + + /** Contains the collection of items to be included/excluded among the field members. + * @Default {[]} + */ + values?: Array; } export interface DataSourceRow { @@ -24201,7 +24519,7 @@ export interface DataSourceRow { */ fieldName?: string; - /** Allows the user to set the display name for an item. + /** Allows the user to set the display caption for an item. */ fieldCaption?: string; @@ -24210,42 +24528,95 @@ export interface DataSourceRow { */ advancedFilter?: Array; - /** Allows the user to enable the usage of named set items in respective axis. This is only applicable for OLAP datasource. + /** Allows the user to indicate whether the added item is a named set or not. * @Default {false} */ isNamedSets?: boolean; + + /** Shows/Hides the sub-total of the field. + * @Default {true} + */ + showSubTotal?: boolean; + + /** Allows the user to set the sorting order of the members of the field. + * @Default {ej.PivotAnalysis.SortOrder.Ascending} + */ + sortOrder?: ej.PivotAnalysis.SortOrder|string; + + /** Contains the list of members need to be drilled down by default in the field. + * @Default {[]} + */ + drilledItems?: Array; + + /** Applies filter to the field members. + * @Default {null} + */ + filterItems?: DataSourceRowsFilterItems; +} + +export interface DataSourceValuesMeasure { + + /** Allows the user to bind the measure from OLAP datasource by using its unique name as field name. + */ + fieldName?: string; } export interface DataSourceValue { - /** This holds the measures unique name to bind them from the Cube. - * @Default {[]} - */ - measures?: Array; - - /** Allows to set the axis name to place the measures items. - * @Default {“”} - */ - axis?: string; - - /** Allows the user to bind the item by using its unique name as field name. + /** Allows the user to bind the item by using its unique name as field name for Relational datasource. */ fieldName?: string; - /** Allows the user to set the display name for an item. + /** Allows the user to set the display caption for an item for Relational datasource. */ fieldCaption?: string; - /** Allows the user to create new fields by enabling the calculated field option for relational data source at client-side. + /** This holds the list of unique names of measures to bind them from the OLAP cube. + * @Default {[]} + */ + measures?: Array; + + /** Allows to set the axis name to place the measures items. + * @Default {rows} + */ + axis?: string; + + /** Indicates whether the field is a calculated field or not with Relational datasource. * @Default {false} */ isCalculatedField?: boolean; - /** Allows the user to apply the formula as an expression in-order to create new field using calculated field option (in code-behind) for relational data source at client-side. + /** Allows to set the type of PivotGrid summary calculation for the value field with Relational datasource. + * @Default {ej.PivotAnalysis.SummaryType.Sum} + */ + summaryType?: ej.PivotAnalysis.SummaryType|string; + + /** Allows to set the format of the values. + */ + format?: string; + + /** This property sets type of display of date. + */ + formatString?: string; + + /** Allows to set the formula for calculation of values for calculated members in Relational datasource. */ formula?: string; } +export interface DataSourceFiltersFilterItems { + + /** Sets the type of filter whether to include/exclude the mentioned values. + * @Default {ej.PivotAnalysis.FilterType.Exclude} + */ + filterType?: ej.PivotAnalysis.FilterType|string; + + /** Contains the collection of items to be included/excluded among the field members. + * @Default {[]} + */ + values?: Array; +} + export interface DataSourceFilter { /** Allows the user to bind the item by using its unique name as field name. @@ -24256,35 +24627,43 @@ export interface DataSourceFilter { */ fieldCaption?: string; - /** Allows the user to enable the usage of named set items in respective axis. This is only applicable for OLAP datasource. - * @Default {false} + /** Applies filter to the field members. + * @Default {null} */ - isNamedSets?: boolean; + filterItems?: DataSourceFiltersFilterItems; +} + +export interface DataSourcePagerOptions { + + /** Allows to set the number of categorical columns to be displayed in each page on applying paging. + * @Default {0} + */ + categoricalPageSize?: number; + + /** Allows to set the number of series rows to be displayed in each page on applying paging. + * @Default {0} + */ + seriesPageSize?: number; + + /** Allows to set the page number in categorical axis to be loaded by default. + * @Default {1} + */ + categoricalCurrentPage?: number; + + /** Allows to set the page number in series axis to be loaded by default. + * @Default {1} + */ + seriesCurrentPage?: number; } export interface DataSource { - /** Contains the database name as string type to fetch the data from the given connection string. - * @Default {“”} - */ - catalog?: string; - - /** Lists out the items to be arranged in column section of PivotGrid. + /** Lists out the items to be arranged in columns section of PivotGrid. * @Default {[]} */ columns?: Array; - /** Contains the respective Cube name from database as string type. - * @Default {“”} - */ - cube?: string; - - /** Provides the raw data source for the PivotGrid. - * @Default {null} - */ - data?: any; - - /** Lists out the items to be arranged in row section of PivotGrid. + /** Lists out the items to be arranged in rows section of PivotGrid. * @Default {[]} */ rows?: Array; @@ -24294,15 +24673,57 @@ export interface DataSource { */ values?: Array; - /** Allows user to filter the members (by its name and values) by enable the advanced filtering (excel-like) option for OLAP data source in client-mode. + /** Lists out the items which supports filtering of values without displaying the members in UI in PivotGrid. + * @Default {[]} + */ + filters?: Array; + + /** Contains the respective cube name from OLAP database as string type. + * @Default {“”} + */ + cube?: string; + + /** Provides the raw data source for the PivotGrid. + * @Default {null} + */ + data?: any; + + /** In connection with an OLAP database, this property contains the database name as string to fetch the data from the given connection string. + * @Default {“”} + */ + catalog?: string; + + /** Allows user to filter the members (by its name and values) through advanced filtering (excel-like) option for OLAP data source in client-mode. * @Default {false} */ enableAdvancedFilter?: boolean; - /** Lists out the items which supports filtering of values in PivotGrid. - * @Default {[]} + /** Sets a name to the report bound to the control. */ - filters?: Array; + reportName?: string; + + /** Allows to set the page size and current page number for each axis on applying paging. + * @Default {{}} + */ + pagerOptions?: DataSourcePagerOptions; +} + +export interface FrozenHeaderSettings { + + /** Allows the user to freeze the row headers alone on scrolling the horizontal scroll bar. + * @Default {false} + */ + enableFrozenRowHeaders?: boolean; + + /** Allows the user to freeze the column headers alone on scrolling the vertical scroll bar. + * @Default {false} + */ + enableFrozenColumnHeaders?: boolean; + + /** Allows the user to freeze both the row headers and column headers on scrolling. + * @Default {false} + */ + enableFrozenHeaders?: boolean; } export interface HyperlinkSettings { @@ -24330,77 +24751,97 @@ export interface HyperlinkSettings { export interface ServiceMethodSettings { - /** Allows the user to set the custom name for the service method that's responsible for drill up/down operation in PivotGrid. + /** Allows the user to set the custom name for the service method responsible for drill up/down operation in PivotGrid. * @Default {DrillGrid} */ drillDown?: string; - /** Allows the user to set the custom name for the service method that’s responsible for exporting. + /** Allows the user to set the custom name for the service method responsible for exporting. * @Default {Export} */ exportPivotGrid?: string; - /** Allows the user to set the custom name for the service method that’s responsible for performing server-side actions on defer update. + /** Allows the user to set the custom name for the service method responsible for performing server-side actions on defer update. * @Default {DeferUpdate} */ deferUpdate?: string; - /** Allows the user to set the custom name for the service method that’s responsible to getting the values for the tree-view inside filter dialog. + /** Allows the user to set the custom name for the service method responsible for getting the values for the tree-view inside filter dialog. * @Default {FetchMembers} */ fetchMembers?: string; - /** Allows the user to set the custom name for the service method that's responsible for filtering operation in PivotGrid. + /** Allows the user to set the custom name for the service method responsible for filtering operation in PivotGrid. * @Default {Filtering} */ filtering?: string; - /** Allows the user to set the custom name for the service method that's responsible for initializing PivotGrid. + /** Allows the user to set the custom name for the service method responsible for initializing PivotGrid. * @Default {InitializeGrid} */ initialize?: string; - /** Allows the user to set the custom name for the service method that's responsible for the server-side action, on dropping a node into Field List. + /** Allows the user to set the custom name for the service method responsible for the server-side action, on dropping a node from Field List. * @Default {NodeDropped} */ nodeDropped?: string; - /** Allows the user to set the custom name for the service method that’s responsible for the server-side action on changing the checked state of a node in Field List. + /** Allows the user to set the custom name for the service method responsible for the server-side action on changing the checked state of a node in Field List. * @Default {NodeStateModified} */ nodeStateModified?: string; - /** Allows the user to set the custom name for the service method that's responsible for performing paging operation in PivotGrid. + /** Allows the user to set the custom name for the service method responsible for performing paging operation in PivotGrid. * @Default {Paging} */ paging?: string; - /** Allows the user to set the custom name for the service method that's responsible for sorting operation in PivotGrid. + /** Allows the user to set the custom name for the service method responsible for sorting operation in PivotGrid. * @Default {Sorting} */ sorting?: string; - /** Allows the user to set the custom name for the service method that’s responsible for expanding members inside member editor. + /** Allows the user to set the custom name for the service method responsible for expanding members inside member editor. * @Default {MemberExpanded} */ memberExpand?: string; - /** Allows the user to set the custom name for the service method that’s responsible for write-back operation in OLAP Cube. This is only applicable in server-side component. + /** Allows the user to set the custom name for the service method responsible for editing the cells. + * @Default {CellEditing} + */ + cellEditing?: string; + + /** Allows the user to set the custom name for the service method responsible for saving the current report to database. + * @Default {SaveReport} + */ + saveReport?: string; + + /** Allows the user to set the custom name for the service method responsible for loading a report from database. + * @Default {LoadReportFromDB} + */ + loadReport?: string; + + /** Allows the user to set the custom name for the service method responsible for adding a calculated field to the report. + * @Default {CalculatedField} + */ + calculatedField?: string; + + /** Allows the user to set the custom name for the service method responsible for performing drill through operation. + * @Default {DrillThroughHierarchies} + */ + drillThroughHierarchies?: string; + + /** Allows the user to set the custom name for the service method responsible for performing drill through operation in data table. + * @Default {DrillThroughDataTable} + */ + drillThroughDataTable?: string; + + /** Allows the user to set the custom name for the service method responsible for write-back operation in OLAP Cube. This is only applicable in server-side component. * @Default {WriteBack} */ writeBack?: string; } -enum AnalysisMode{ - - ///To bind an OLAP data source to PivotGrid. - OLAP, - - ///To bind a relational data source to PivotGrid. - Relational -} - - enum Layout{ ///To set normal summary layout in PivotGrid. @@ -24416,29 +24857,83 @@ enum Layout{ ExcelLikeLayout } - -enum OperationalMode{ - - ///To bind data source completely from client-side. - ClientMode, - - ///To bind data source completely from server-side. - ServerMode } - +module Pivot +{ +enum AnalysisMode +{ +//To bind an OLAP data source to PivotGrid. +OLAP, +//To bind a relational data source to PivotGrid. +Pivot, +} +} +module PivotAnalysis +{ +enum SortOrder +{ +//Sorts the members of the field in ascending order. +Ascending, +//Sorts the members of the field in descending order. +Descending, +//Displays the members without sorting in any order. +None, +} +} +module PivotAnalysis +{ +enum FilterType +{ +//Excludes the specified values among the members of the field. +Exclude, +//Includes the specified values alone among the members of the field. +Include, +} +} +module PivotAnalysis +{ +enum SummaryType +{ +//Calculates the summary as the total of all values. +Sum, +//Displays the average of all values as the summaries. +Average, +//Displays the count of items in summaries. +Count, +//Displays the minimum value of all the items in the summary. +Min, +//Displays the maximum value of all the items in the summary. +Max, +} +} +module Pivot +{ +enum OperationalMode +{ +//To bind data source completely from client-side. +ClientMode, +//To bind data source completely from server-side. +ServerMode, +} } class PivotSchemaDesigner extends ej.Widget { static fn: PivotSchemaDesigner; constructor(element: JQuery, options?: PivotSchemaDesigner.Model); constructor(element: Element, options?: PivotSchemaDesigner.Model); + static Locale: any; model:PivotSchemaDesigner.Model; defaults:PivotSchemaDesigner.Model; - /** Perform an asynchronous HTTP (AJAX) request. + /** Performs an asynchronous HTTP (AJAX) request. * @returns {void} */ doAjaxPost(): void; + + /** Re-renders the control with the data source bound to the pivot control at that instant. + * @returns {void} + */ + refreshControl(): void; } export module PivotSchemaDesigner{ @@ -24454,7 +24949,7 @@ export interface Model { */ customObject?: any; - /** For ASP.NET and MVC Wrapper, Pivots Schema Designer will be initialized and rendered empty initially. Once PivotGrid widget is rendered completely, Pivots Schema Designer will just be populated with data source by setting this property to “true”. + /** For ASP.NET and MVC Wrapper, PivotSchemaDesigner will be initialized and rendered empty initially. Once the connected pivot control widget is rendered completely, PivotSchemaDesigner will just be populated with data source by setting this property to “true”. * @Default {false} */ enableWrapper?: boolean; @@ -24464,26 +24959,16 @@ export interface Model { */ enableRTL?: boolean; - /** Allows the user to view the KPI elements in tree-view inside PivotTable Field List. This is only applicable for OLAP datasource. - * @Default {false} + /** Sets the visibility of OLAP elements in PivotTable Field List. This is only applicable for OLAP datasource. + * @Default {null} */ - showKPI?: boolean; + olap?: Olap; - /** Allows the user to view the named sets in tree-view inside PivotTable Field List. This is only applicable for OLAP datasource. - * @Default {false} - */ - showNamedSets?: boolean; - - /** Allows the user to restrict drag and drop operation within the PivotTable Field List. + /** Allows the user to enable/disable drag and drop operations within the PivotTable Field List. * @Default {true} */ enableDragDrop?: boolean; - /** Allows the user to set the list of filters in filter section. - * @Default {newArray()} - */ - filters?: Array; - /** Sets the height for PivotSchemaDesigner. * @Default {“”} */ @@ -24494,31 +24979,11 @@ export interface Model { */ locale?: string; - /** Allows the user to set list of PivotCalculations in values section. - * @Default {newArray()} - */ - pivotCalculations?: Array; - - /** Allows the user to set the list of PivotItems in column section. - * @Default {newArray()} - */ - pivotColumns?: Array; - /** Sets the Pivot control bound with this PivotSchemaDesigner. * @Default {null} */ pivotControl?: any; - /** Allows the user to set the list of PivotItems in row section. - * @Default {newArray()} - */ - pivotRows?: Array; - - /** Allows the user to arrange the fields inside Field List of PivotSchemaDesigner. - * @Default {newArray()} - */ - pivotTableFields?: Array; - /** Allows the user to set custom name for the methods at service-end, communicated during AJAX post. * @Default {{}} */ @@ -24534,6 +24999,11 @@ export interface Model { */ width?: string; + /** Sets the layout for PivotSchemaDesigner. + * @Default {ej.PivotSchemaDesigner.Layouts.Excel} + */ + layout?: ej.PivotSchemaDesigner.Layouts|string; + /** Triggers when it reaches client-side after any AJAX request. */ afterServiceInvoke? (e: AfterServiceInvokeEventArgs): void; @@ -24546,61 +25016,37 @@ export interface Model { export interface AfterServiceInvokeEventArgs { - /** return the current action of PivotSchemaDesigner control. + /** returns the current action of PivotSchemaDesigner control. */ action?: string; - /** return the custom object bounds with PivotSchemaDesigner control. + /** returns the custom object bound with PivotSchemaDesigner control. */ customObject?: any; - /** return the outer HTML of PivotSchemaDesigner control. + /** returns the HTML element of PivotSchemaDesigner control. */ - element?: string; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the PivotSchemaDesigner model - */ - model?: ej.PivotSchemaDesigner.Model; - - /** returns the name of the event - */ - type?: string; + element?: any; } export interface BeforeServiceInvokeEventArgs { - /** return the current action of PivotSchemaDesigner control. + /** returns the current action of PivotSchemaDesigner control. */ action?: string; - /** return the custom object bounds with PivotSchemaDesigner control. + /** returns the custom object bound with PivotSchemaDesigner control. */ customObject?: any; - /** return the outer HTML of PivotSchemaDesigner control. + /** returns the HTML element of PivotSchemaDesigner control. */ - element?: string; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the PivotSchemaDesigner model - */ - model?: ej.PivotSchemaDesigner.Model; - - /** returns the name of the event - */ - type?: string; + element?: any; } export interface DragMoveEventArgs { - /** return the HTML of the dragged field from PivotSchemaDesigner. + /** returns the HTML element of the dragged field from PivotSchemaDesigner. */ dragTarget?: any; @@ -24614,47 +25060,74 @@ export interface DragMoveEventArgs { /** returns the PivotSchemaDesigner model */ - model?: ej.PivotSchemaDesigner.Model; + model?: any; +} + +export interface Olap { + + /** Allows the user to view the KPI elements in tree-view inside PivotTable Field List. This is only applicable for OLAP datasource. + * @Default {false} + */ + showKPI?: boolean; + + /** Allows the user to view the named sets in tree-view inside PivotTable Field List. This is only applicable for OLAP datasource. + * @Default {false} + */ + showNamedSets?: boolean; } export interface ServiceMethod { - /** Allows the user to set the custom name for the service method that’s responsible for getting the values for the tree-view inside filter dialog. + /** Allows the user to set the custom name for the service method responsible for getting the values for the tree-view inside filter dialog. * @Default {FetchMembers} */ fetchMembers?: string; - /** Allows the user to set the custom name for the service method that’s responsible for filtering operation in Field List. + /** Allows the user to set the custom name for the service method responsible for filtering operation in Field List. * @Default {Filtering} */ filtering?: string; - /** Allows the user to set the custom name for the service method that’s responsible for the server-side action, on expanding members in Field List. + /** Allows the user to set the custom name for the service method responsible for the server-side action, on expanding members in Field List. * @Default {MemberExpanded} */ memberExpand?: string; - /** Allows the user to set the custom name for the service method that’s responsible for the server-side action, on dropping a node into Field List. + /** Allows the user to set the custom name for the service method responsible for the server-side action, on dropping a node into Field List. * @Default {NodeDropped} */ nodeDropped?: string; - /** Allows the user to set the custom name for the service method that’s responsible for the server-side action on changing the checked state of a node in Field List. + /** Allows the user to set the custom name for the service method responsible for the server-side action on changing the checked state of a node in Field List. * @Default {NodeStateModified} */ nodeStateModified?: string; - /** Allows the user to set the custom name for the service method that’s responsible for remove operation in Field List. + /** Allows the user to set the custom name for the service method responsible for button removing operation in Field List. * @Default {RemoveButton} */ removeButton?: string; } + +enum Layouts{ + + ///To set the layout as same in the Excel. + Excel, + + ///To set normal layout for Field List. + Normal, + + ///To set layout with the axes one above the other. + OneByOne +} + } class PivotPager extends ej.Widget { static fn: PivotPager; constructor(element: JQuery, options?: PivotPager.Model); constructor(element: Element, options?: PivotPager.Model); + static Locale: any; model:PivotPager.Model; defaults:PivotPager.Model; @@ -24721,10 +25194,11 @@ class PivotChart extends ej.Widget { static fn: PivotChart; constructor(element: JQuery, options?: PivotChart.Model); constructor(element: Element, options?: PivotChart.Model); + static Locale: any; model:PivotChart.Model; defaults:PivotChart.Model; - /** Perform an asynchronous HTTP (AJAX) request. + /** Performs an asynchronous HTTP (AJAX) request. * @returns {void} */ doAjaxPost(): void; @@ -24734,12 +25208,12 @@ class PivotChart extends ej.Widget { */ doPostBack(): void; - /** Exports the PivotChart to an appropriate format based on the parameter passed. + /** Exports the PivotChart to the format specified in the parameter. * @returns {void} */ exportPivotChart(): void; - /** This function receives the JSON formatted datasource to render the PivotChart control. + /** This function renders the PivotChart control with the JSON formatted datasource. * @returns {void} */ renderChartFromJSON(): void; @@ -24748,15 +25222,60 @@ class PivotChart extends ej.Widget { * @returns {void} */ renderControlSuccess(): void; + + /** Returns the OlapReport string maintained along with the axis elements information. + * @returns {void} + */ + getOlapReport(): void; + + /** Sets the OlapReport string along with the axis information and maintains it in a property. + * @returns {void} + */ + setOlapReport(): void; + + /** Returns the JSON records formed to render the control. + * @returns {void} + */ + getJSONRecords(): void; + + /** Sets the JSON records to render the control. + * @returns {void} + */ + setJSONRecords(): void; + + /** Returns the PivotEngine formed to render the control. + * @returns {void} + */ + getPivotEngine(): void; + + /** Sets the PivotEngine required to render the control. + * @returns {void} + */ + setPivotEngine(): void; + + /** Re-renders the control with the data source at the instant. + * @returns {void} + */ + refreshControl(): void; + + /** Renders the control with the pivot engine obtained from olap cube. + * @returns {void} + */ + generateJSON(): void; + + /** Navigates to the specified page number in specified axis. + * @returns {void} + */ + refreshPagedPivotChart(): void; } export module PivotChart{ export interface Model { /** Sets the mode for the PivotChart widget for binding either OLAP or Relational data source. - * @Default {ej.PivotChart.AnalysisMode.Olap} + * @Default {ej.Pivot.AnalysisMode.Pivot} */ - analysisMode?: any; + analysisMode?: ej.Pivot.AnalysisMode|string; /** Specifies the CSS class to PivotChart to achieve custom theme. * @Default {“”} @@ -24766,19 +25285,14 @@ export interface Model { /** Options available to configure the properties of entire series. You can also override the options for specific series by using series collection. * @Default {{}} */ - commonSeriesOptions?: any; - - /** Contains the serialized OlapReport at that instant, that is, current OlapReport. - * @Default {“”} - */ - currentReport?: string; + commonSeriesOptions?: CommonSeriesOptions; /** Initializes the data source for the PivotChart widget, when it functions completely on client-side. * @Default {{}} */ dataSource?: DataSource; - /** Object utilized to pass additional information between client-end and service-end. + /** Object utilized to pass additional information between client-end and service-end on operating the control in server mode. * @Default {{}} */ customObject?: any; @@ -24798,7 +25312,7 @@ export interface Model { */ isResponsive?: boolean; - /** Options available to customize the legend items and its title. + /** Lets the user to customize the legend items and their labels. * @Default {{}} */ legend?: any; @@ -24809,9 +25323,9 @@ export interface Model { locale?: string; /** Sets the mode for the PivotChart widget for binding data source either in server-side or client-side. - * @Default {ej.PivotChart.OperationalMode.ClientMode} + * @Default {ej.Pivot.OperationalMode.ClientMode} */ - operationalMode?: any; + operationalMode?: ej.Pivot.OperationalMode|string; /** This is a horizontal axis that contains options to configure axis and it is the primary x axis for all the series in series array. To override x axis for particular series, create an axis object by providing unique name by using name property and add it to axes array. Then, assign the name to the series’s xAxisName property to link both axis and series. * @Default {{}} @@ -24833,12 +25347,12 @@ export interface Model { */ serviceMethodSettings?: ServiceMethodSettings; - /** Options to customize the Chart size. + /** Options to customize the size of the PivotChart control. * @Default {{}} */ size?: any; - /** Connects the service using the specified URL for any server updates. + /** Connects the service using the specified URL for any server updates on operating the control in server mode. * @Default {“”} */ url?: string; @@ -24852,7 +25366,7 @@ export interface Model { /** Triggers before any AJAX request is passed from PivotChart to service methods. */ beforeServiceInvoke? (e: BeforeServiceInvokeEventArgs): void; - /** Triggers when drill up/down happens in PivotChart control. */ + /** Triggers on performing drill up/down in PivotChart control. */ drillSuccess? (e: DrillSuccessEventArgs): void; /** Triggers when PivotChart widget completes all operations at client-side after any AJAX request. */ @@ -24867,183 +25381,128 @@ export interface Model { export interface LoadEventArgs { - /** return the current action of PivotChart control. + /** returns the current action of PivotChart control. */ action?: string; - /** return the custom object bounds with PivotChart control. + /** returns the custom object bound with PivotChart control. */ customObject?: any; - /** return the outer HTML of PivotChart control. + /** returns the HTML element of PivotChart control. */ - element?: string; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the PivotChart model. - */ - model?: ej.PivotChart.Model; - - /** returns the name of the event. - */ - type?: string; + element?: any; } export interface AfterServiceInvokeEventArgs { - /** return the current action of PivotChart control. + /** returns the current action of PivotChart control. */ action?: string; - /** return the custom object bounds with PivotChart control. + /** returns the custom object bound with PivotChart control. */ customObject?: any; - /** return the outer HTML of PivotChart control. + /** returns the HTML element of PivotChart control. */ - element?: string; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the PivotChart model. - */ - model?: ej.PivotChart.Model; - - /** returns the name of the event. - */ - type?: string; + element?: any; } export interface BeforeServiceInvokeEventArgs { - /** return the current action of PivotChart control. + /** returns the current action of PivotChart control. */ action?: string; - /** return the custom object bounds with PivotChart control. + /** returns the custom object bound with PivotChart control. */ customObject?: any; - /** return the outer HTML of PivotChart control. + /** returns the HTML element of PivotChart control. */ - element?: string; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the PivotChart model. - */ - model?: ej.PivotChart.Model; - - /** returns the name of the event. - */ - type?: string; + element?: any; } export interface DrillSuccessEventArgs { - /** if the event should be canceled; otherwise, false. + /** returns the current instance of PivotChart. */ - cancel?: boolean; + chartObj?: any; - /** returns the PivotChart model. + /** returns the drill action of PivotChart. */ - model?: ej.PivotChart.Model; + drillAction?: string; - /** returns the name of the event. + /** contains the name of the member drilled. */ - type?: string; + drilledMember?: string; + + /** returns the event object. + */ + event?: any; } export interface RenderCompleteEventArgs { - /** return the current action of PivotChart control. + /** returns the current action of PivotChart control. */ action?: string; - /** return the custom object bounds with PivotChart control. + /** returns the custom object bound with PivotChart control. */ customObject?: any; - /** return the outer HTML of PivotChart control. + /** returns the HTML element of PivotChart control. */ - element?: string; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the PivotChart model. - */ - model?: ej.PivotChart.Model; - - /** returns the name of the event. - */ - type?: string; + element?: any; } export interface RenderFailureEventArgs { - /** return the current action of PivotChart control. + /** returns the current action of PivotChart control. */ action?: string; - /** return the custom object bounds with PivotChart control. + /** returns the custom object bound with PivotChart control. */ customObject?: any; - /** return the error stack trace of the original exception. + /** returns the HTML element of PivotChart control. */ - message?: any; + element?: any; - /** return the outer HTML of PivotChart control. + /** returns the error stack trace of the original exception. */ - element?: string; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the PivotChart model. - */ - model?: ej.PivotChart.Model; - - /** returns the name of the event. - */ - type?: string; + message?: string; } export interface RenderSuccessEventArgs { - /** return the current action of PivotChart control. + /** returns the current instance of PivotChart. */ - action?: string; + args?: any; +} - /** return the custom object bounds with PivotChart control. - */ - customObject?: any; +export interface CommonSeriesOptions { - /** return the outer HTML of PivotChart control. + /** Allows the user to set the specific chart type for PivotChart widget. + * @Default {ej.PivotChart.ChartTypes.Column} */ - element?: string; + type?: ej.PivotChart.ChartTypes|string; +} - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; +export interface DataSourceColumnsFilterItems { - /** returns the PivotChart model. + /** Sets the type of filter whether to include/exclude the mentioned values. + * @Default {ej.PivotAnalysis.FilterType.Exclude} */ - model?: ej.PivotChart.Model; + filterType?: ej.PivotAnalysis.FilterType|string; - /** returns the name of the event. + /** Contains the collection of items to be included/excluded among the field members. + * @Default {[]} */ - type?: string; + values?: Array; } export interface DataSourceColumn { @@ -25052,14 +25511,37 @@ export interface DataSourceColumn { */ fieldName?: string; - /** Allows the user to set the display name for an item. + /** Allows the user to set the display caption for an item. */ fieldCaption?: string; - /** Allows the user to enable the usage of named set items in respective axis. This is only applicable for OLAP datasource. + /** Allows the user to indicate whether the added item is a named set or not. * @Default {false} */ isNamedSets?: boolean; + + /** Allows the user to set the sorting order of the members of the field. + * @Default {ej.PivotAnalysis.SortOrder.Ascending} + */ + sortOrder?: ej.PivotAnalysis.SortOrder|string; + + /** Applies filter to the field members. + * @Default {null} + */ + filterItems?: DataSourceColumnsFilterItems; +} + +export interface DataSourceRowsFilterItems { + + /** Sets the type of filter whether to include/exclude the mentioned values. + * @Default {ej.PivotAnalysis.FilterType.Exclude} + */ + filterType?: ej.PivotAnalysis.FilterType|string; + + /** Contains the collection of items to be included/excluded among the field members. + * @Default {[]} + */ + values?: Array; } export interface DataSourceRow { @@ -25068,35 +25550,792 @@ export interface DataSourceRow { */ fieldName?: string; - /** Allows the user to set the display name for an item. + /** Allows the user to set the display caption for an item. */ fieldCaption?: string; - /** Allows the user to enable the usage of named set items in respective axis. This is only applicable for OLAP datasource. + /** Allows the user to indicate whether the added item is a named set or not. * @Default {false} */ isNamedSets?: boolean; + + /** Allows the user to set the sorting order of the members of the field. + * @Default {ej.PivotAnalysis.SortOrder.Ascending} + */ + sortOrder?: ej.PivotAnalysis.SortOrder|string; + + /** Applies filter to the field members. + * @Default {null} + */ + filterItems?: DataSourceRowsFilterItems; +} + +export interface DataSourceValuesMeasure { + + /** Allows the user to bind the measure from OLAP datasource by using its unique name as field name. + */ + fieldName?: string; } export interface DataSourceValue { - /** This holds the measures unique name to bind them from the Cube. + /** Allows the user to bind the item by using its unique name as field name for Relational datasource. + */ + fieldName?: string; + + /** Allows the user to set the display caption for an item for Relational datasource. + */ + fieldCaption?: string; + + /** This holds the list of unique names of measures to bind them from the OLAP cube. * @Default {[]} */ - measures?: Array; + measures?: Array; /** Allows to set the axis name to place the measures items. - * @Default {“”} + * @Default {rows} */ axis?: string; + /** Indicates whether the field is a calculated field or not with Relational datasource. + * @Default {false} + */ + isCalculatedField?: boolean; + + /** Allows to set the formula for calculation of values for calculated members in Relational datasource. + */ + formula?: string; +} + +export interface DataSourceFiltersFilterItems { + + /** Sets the type of filter whether to include/exclude the mentioned values. + * @Default {ej.PivotAnalysis.FilterType.Exclude} + */ + filterType?: ej.PivotAnalysis.FilterType|string; + + /** Contains the collection of items to be included/excluded among the field members. + * @Default {[]} + */ + values?: Array; +} + +export interface DataSourceFilter { + /** Allows the user to bind the item by using its unique name as field name. */ fieldName?: string; - /** Allows the user to set the display name for an item. + /** Applies filter to the field members. + * @Default {null} + */ + filterItems?: DataSourceFiltersFilterItems; +} + +export interface DataSource { + + /** Contains the respective cube name from OLAP database as string type. + * @Default {“”} + */ + cube?: string; + + /** Provides the raw data source for the PivotChart. + * @Default {null} + */ + data?: any; + + /** In connection with an OLAP database, this property contains the database name as string to fetch the data from the given connection string. + * @Default {“”} + */ + catalog?: string; + + /** Lists out the items to be displayed as series of PivotChart. + * @Default {[]} + */ + columns?: Array; + + /** Lists out the items to be displayed as segments of PivotChart. + * @Default {[]} + */ + rows?: Array; + + /** Lists out the items supports calculation in PivotChart. + * @Default {[]} + */ + values?: Array; + + /** Lists out the items which supports filtering of values without displaying the members in UI in PivotChart. + * @Default {[]} + */ + filters?: Array; +} + +export interface ServiceMethodSettings { + + /** Allows the user to set the custom name for the service method responsible for drilling up/down operation in PivotChart. + * @Default {DrillChart} + */ + drillDown?: string; + + /** Allows the user to set the custom name for the service method responsible for exporting. + * @Default {Export} + */ + exportPivotChart?: string; + + /** Allows the user to set the custom name for the service method responsible for initializing PivotChart. + * @Default {InitializeChart} + */ + initialize?: string; + + /** Allows the user to set the custom name for the service method responsible for navigating between pages in paged PivotChart. + * @Default {Paging} + */ + paging?: string; +} + +enum ChartTypes{ + + ///To render a Line type PivotChart. + Line, + + ///To render a Spline type PivotChart. + Spline, + + ///To render a Column type PivotChart. + Column, + + ///To render an Area type PivotChart. + Area, + + ///To render a SplineArea type PivotChart. + SplineArea, + + ///To render a StepLine type PivotChart. + StepLine, + + ///To render a StepArea type PivotChart. + StepArea, + + ///To render a Pie type PivotChart. + Pie, + + ///To render a Bar type PivotChart. + Bar, + + ///To render a StackingArea type PivotChart. + StackingArea, + + ///To render a StackingColumn type PivotChart. + StackingColumn, + + ///To render a StackingBar type PivotChart. + StackingBar, + + ///To render a Pyramid type PivotChart. + Pyramid, + + ///To render a Funnel type PivotChart. + Funnel, + + ///To render a Doughnut type PivotChart. + Doughnut, + + ///To render a Scatter type PivotChart. + Scatter, + + ///To render a Bubble type PivotChart. + Bubble +} + +} + +class PivotClient extends ej.Widget { + static fn: PivotClient; + constructor(element: JQuery, options?: PivotClient.Model); + constructor(element: Element, options?: PivotClient.Model); + static Locale: any; + model:PivotClient.Model; + defaults:PivotClient.Model; + + /** Performs an asynchronous HTTP (AJAX) request. + * @returns {void} + */ + doAjaxPost(): void; + + /** Performs an asynchronous HTTP (FullPost) submit. + * @returns {void} + */ + doPostBack(): void; + + /** Navigates to the specified page in specified axis. + * @returns {void} + */ + refreshPagedPivotClient(): void; + + /** Updates the PivotClient component with the JSON data fetched from the service on navigating between pages. + * @returns {void} + */ + refreshPagedPivotClientSuccess(): void; + + /** Renders the PivotChart and PivotGrid with the JSON data provided. + * @returns {void} + */ + generateJSON(): void; + + /** Re-renders the control with the report at that instant. + * @returns {void} + */ + refreshControl(): void; + + /** Returns the OlapReport string maintained along with the axis elements information. + * @returns {void} + */ + getOlapReport(): void; + + /** Sets the OlapReport string along with the axis information and maintains it in a property. + * @returns {void} + */ + setOlapReport(): void; + + /** Returns the JSON records formed to render the control. + * @returns {void} + */ + getJSONRecords(): void; + + /** Sets the JSON records formed to render the control to a property. + * @returns {void} + */ + setJSONRecords(): void; +} +export module PivotClient{ + +export interface Model { + + /** Sets the mode for the PivotClient widget for binding either OLAP or Relational data source. + * @Default {ej.Pivot.AnalysisMode.Pivot} + */ + analysisMode?: ej.Pivot.AnalysisMode|string; + + /** Allows the user to set the specific chart type for PivotChart inside PivotClient widget. + * @Default {ej.PivotChart.ChartTypes.Column} + */ + chartType?: ej.PivotChart.ChartTypes|string; + + /** Allows the user to set the content on exporting the PivotClient widget. + * @Default {ej.PivotClient.ClientExportMode.ChartAndGrid} + */ + clientExportMode?: ej.PivotClient.ClientExportMode|string; + + /** Specifies the CSS class to PivotClient to achieve custom theme. + * @Default {“”} + */ + cssClass?: string; + + /** Object utilized to pass additional information between client-end and service-end when the control functions in server-mode. + * @Default {{}} + */ + customObject?: any; + + /** Initializes the data source for the PivotClient widget, when it functions completely on client-side. + * @Default {{}} + */ + dataSource?: DataSource; + + /** Allows the user to customize the widget's layout and appearance. + * @Default {{}} + */ + displaySettings?: DisplaySettings; + + /** Enables the advanced filtering options Value Filtering, Label Filtering and Sorting for each dimensions on binding OLAP data in server mode. + * @Default {false} + */ + enableAdvancedFilter?: boolean; + + /** Allows the user to refresh the control on-demand and not during every UI operation. + * @Default {false} + */ + enableDeferUpdate?: boolean; + + /** Lets the user to save and load reports in a customized way with the help of events. + * @Default {false} + */ + enableLocalStorage?: boolean; + + /** Allows the user to enable paging for both the PivotChart and PivotGrid components for the ease of viewing large data. + * @Default {false} + */ + enablePaging?: boolean; + + /** Allows the user to include the PivotTreeMap component as one of the chart types. + * @Default {false} + */ + enablePivotTreeMap?: boolean; + + /** Allows the user to view the layout of PivotClient from right to left. + * @Default {false} + */ + enableRTL?: boolean; + + /** Enables/disables the visibility of measure group selector drop-down in Cube Browser. + * @Default {false} + */ + enableMeasureGroups?: boolean; + + /** Allows the user to enable virtual scrolling for both the PivotChart and PivotGrid components for the ease of viewing large data. + * @Default {false} + */ + enableVirtualScrolling?: boolean; + + /** Enables/Disables paging in Member Editor for viewing the large count of members in pages. + * @Default {false} + */ + enableMemberEditorPaging?: boolean; + + /** Allows the user to set the number of members to be displayed in each page of Member Editor on applying paging in it. + * @Default {100} + */ + memberEditorPageSize?: number; + + /** Sets the summary layout for PivotGrid. Following are the ways in which summary can be positioned: normal summary (bottom), top summary, no summary and excel-like summary. + * @Default {ej.PivotGrid.Layout.Normal} + */ + gridLayout?: ej.PivotGrid.Layout|string; + + /** Allows the user to set the localized language for the widget. + * @Default {en-US} + */ + locale?: string; + + /** Sets the mode for the PivotClient widget for binding data source either in server-side or client-side. + * @Default {ej.Pivot.OperationalMode.ClientMode} + */ + operationalMode?: ej.Pivot.OperationalMode|string; + + /** Allows the user to set custom name for the methods at service-end, communicated during AJAX post. + * @Default {{}} + */ + serviceMethodSettings?: ServiceMethodSettings; + + /** Sets the title for PivotClient widget. + */ + title?: string; + + /** Connects the service using the specified URL for any server updates. + */ + url?: string; + + /** Triggers when it reaches client-side after any AJAX request. */ + afterServiceInvoke? (e: AfterServiceInvokeEventArgs): void; + + /** Triggers before any AJAX request is passed from client-side to service methods. */ + beforeServiceInvoke? (e: BeforeServiceInvokeEventArgs): void; + + /** Triggers before saving the current collection of reports. */ + saveReport? (e: SaveReportEventArgs): void; + + /** Triggers before loading a saved collection of reports. */ + loadReport? (e: LoadReportEventArgs): void; + + /** Triggers before fetching the report collection from storage. */ + fetchReport? (e: FetchReportEventArgs): void; + + /** Triggers before exporting the control. */ + beforeExport? (e: BeforeExportEventArgs): void; + + /** Triggers before rendering the PivotChart. */ + chartLoad? (e: ChartLoadEventArgs): void; + + /** Triggers before rendering the PivotTreeMap. */ + treeMapLoad? (e: TreeMapLoadEventArgs): void; + + /** Triggers while we initiate loading of the widget. */ + load? (e: LoadEventArgs): void; + + /** Triggers when PivotClient widget completes all operations at client-end after any AJAX request. */ + renderComplete? (e: RenderCompleteEventArgs): void; + + /** Triggers when any error occurred during AJAX request. */ + renderFailure? (e: RenderFailureEventArgs): void; + + /** Triggers when PivotClient successfully completes rendering. */ + renderSuccess? (e: RenderSuccessEventArgs): void; +} + +export interface AfterServiceInvokeEventArgs { + + /** returns the current action of PivotClient control. + */ + action?: string; + + /** returns the custom object bounds with PivotClient control. + */ + customObject?: any; + + /** returns the HTML element of PivotClient control. + */ + element?: any; +} + +export interface BeforeServiceInvokeEventArgs { + + /** returns the current action of PivotClient control. + */ + action?: string; + + /** returns the custom object bounds with PivotClient control. + */ + customObject?: any; + + /** returns the HTML element of PivotClient control. + */ + element?: any; +} + +export interface SaveReportEventArgs { + + /** returns the current instance of PivotClient control. + */ + targetControl?: any; + + /** returns the object which holds the necessary parameters required for saving the report collection. + */ + saveReportSetting?: any; +} + +export interface LoadReportEventArgs { + + /** returns the current instance of PivotClient control. + */ + targetControl?: any; + + /** returns the object which holds the necessary parameters required for loading a report collection from database. + */ + loadReportSetting?: any; +} + +export interface FetchReportEventArgs { + + /** returns the current instance of PivotClient control. + */ + targetControl?: any; + + /** returns the object which holds the necessary parameters required for fetching the report names stored in database. + */ + fetchReportSetting?: any; +} + +export interface BeforeExportEventArgs { + + /** holds the url of the service method responsible for exporting the PivotClient control. + */ + url?: string; + + /** holds the name of the file to be exported. + */ + fileName?: string; +} + +export interface ChartLoadEventArgs { + + /** returns the current action of PivotChart control. + */ + action?: string; + + /** returns the custom object bound with PivotChart control. + */ + customObject?: any; + + /** returns the HTML element of PivotChart control. + */ + element?: any; +} + +export interface TreeMapLoadEventArgs { + + /** returns the current action of PivotTreeMap control. + */ + action?: string; + + /** returns the custom object bound with PivotTreeMap control. + */ + customObject?: any; + + /** returns the HTML element of PivotTreeMap control. + */ + element?: any; +} + +export interface LoadEventArgs { + + /** returns the HTML element of PivotClient component. + */ + element?: any; + + /** returns the custom object bound with PivotTreeMap control. + */ + customObject?: any; +} + +export interface RenderCompleteEventArgs { + + /** returns the HTML element of PivotClient component. + */ + element?: any; + + /** returns the custom object bound with PivotTreeMap control. + */ + customObject?: any; +} + +export interface RenderFailureEventArgs { + + /** returns the custom object bound with the control. + */ + customObject?: any; + + /** returns the HTML element of PivotClient control. + */ + element?: any; + + /** returns the error message with error code. + */ + message?: string; +} + +export interface RenderSuccessEventArgs { + + /** returns the object of PivotClient control at that instant. + */ + args?: any; +} + +export interface DataSourceColumnsAdvancedFilter { + + /** Allows the user to provide level unique name to perform advanced filtering. + */ + name?: string; + + /** Allows the user to set the operator to perform Label Filtering. + * @Default {none} + */ + labelFilterOperator?: string; + + /** Allows the user to set the operator to perform Value Filtering. + * @Default {none} + */ + valueFilterOperator?: string; + + /** Allows the user to set the filtering type while performing advanced filtering. + */ + advancedFilterType?: string; + + /** In case of value filtering, this property contains the measure name to which the filter is applied. + */ + measure?: string; + + /** Allows the user to hold the filter operand values in advanced filtering. + */ + values?: Array; +} + +export interface DataSourceColumnsFilterItems { + + /** Sets the type of filter whether to include/exclude the mentioned values. + * @Default {ej.PivotAnalysis.FilterType.Exclude} + */ + filterType?: ej.PivotAnalysis.FilterType|string; + + /** Contains the collection of items to be included/excluded among the field members. + * @Default {[]} + */ + values?: Array; +} + +export interface DataSourceColumn { + + /** Allows the user to bind the item by using its unique name as field name. + */ + fieldName?: string; + + /** Allows the user to set the display caption for an item. */ fieldCaption?: string; + + /** Allows the user to filter the report by default using advanced filtering (excel-like) option for OLAP data source in client-mode. + * @Default {[]} + */ + advancedFilter?: Array; + + /** Allows the user to indicate whether the added item is a named set or not. + * @Default {false} + */ + isNamedSets?: boolean; + + /** Shows/Hides the sub-total of the field in PivotGrid. + * @Default {true} + */ + showSubTotal?: boolean; + + /** Allows the user to set the sorting order of the members of the field. + * @Default {ej.PivotAnalysis.SortOrder.Ascending} + */ + sortOrder?: ej.PivotAnalysis.SortOrder|string; + + /** Contains the list of members need to be drilled down by default in the field. + * @Default {[]} + */ + drilledItems?: Array; + + /** Applies filter to the field members. + * @Default {null} + */ + filterItems?: DataSourceColumnsFilterItems; +} + +export interface DataSourceRowsAdvancedFilter { + + /** Allows the user to provide level unique name to perform advanced filtering. + */ + name?: string; + + /** Allows the user to set the operator to perform Label Filtering. + * @Default {none} + */ + labelFilterOperator?: string; + + /** Allows the user to set the operator to perform Value Filtering. + * @Default {none} + */ + valueFilterOperator?: string; + + /** Allows the user to set the filtering type while performing advanced filtering. + */ + advancedFilterType?: string; + + /** In case of value filtering, this property contains the measure name to which the filter is applied. + */ + measure?: string; + + /** Allows the user to hold the filter operand values in advanced filtering. + */ + values?: Array; +} + +export interface DataSourceRowsFilterItems { + + /** Sets the type of filter whether to include/exclude the mentioned values. + * @Default {ej.PivotAnalysis.FilterType.Exclude} + */ + filterType?: ej.PivotAnalysis.FilterType|string; + + /** Contains the collection of items to be included/excluded among the field members. + * @Default {[]} + */ + values?: Array; +} + +export interface DataSourceRow { + + /** Allows the user to bind the item by using its unique name as field name. + */ + fieldName?: string; + + /** Allows the user to set the display caption for an item. + */ + fieldCaption?: string; + + /** Allows the user to filter the report by default using advanced filtering (excel-like) option for OLAP data source in client-mode. + * @Default {[]} + */ + advancedFilter?: Array; + + /** Allows the user to indicate whether the added item is a named set or not. + * @Default {false} + */ + isNamedSets?: boolean; + + /** Shows/Hides the sub-total of the field. + * @Default {true} + */ + showSubTotal?: boolean; + + /** Allows the user to set the sorting order of the members of the field. + * @Default {ej.PivotAnalysis.SortOrder.Ascending} + */ + sortOrder?: ej.PivotAnalysis.SortOrder|string; + + /** Contains the list of members need to be drilled down by default in the field. + * @Default {[]} + */ + drilledItems?: Array; + + /** Applies filter to the field members. + * @Default {null} + */ + filterItems?: DataSourceRowsFilterItems; +} + +export interface DataSourceValuesMeasure { + + /** Allows the user to bind the measure from OLAP datasource by using its unique name as field name. + */ + fieldName?: string; +} + +export interface DataSourceValue { + + /** Allows the user to bind the item by using its unique name as field name for Relational datasource. + */ + fieldName?: string; + + /** Allows the user to set the display caption for an item for Relational datasource. + */ + fieldCaption?: string; + + /** This holds the list of unique names of measures to bind them from the OLAP cube. + * @Default {[]} + */ + measures?: Array; + + /** Allows to set the axis name to place the measures items. + * @Default {rows} + */ + axis?: string; + + /** Indicates whether the field is a calculated field or not with Relational datasource. + * @Default {false} + */ + isCalculatedField?: boolean; + + /** Allows to set the type of PivotGrid summary calculation for the value field with Relational datasource. + * @Default {ej.PivotAnalysis.SummaryType.Sum} + */ + summaryType?: ej.PivotAnalysis.SummaryType|string; + + /** Allows to set the format of the values. + */ + format?: string; + + /** This property sets type of display of date. + */ + formatString?: string; + + /** Allows to set the formula for calculation of values for calculated members in Relational datasource. + */ + formula?: string; +} + +export interface DataSourceFiltersFilterItems { + + /** Sets the type of filter whether to include/exclude the mentioned values. + * @Default {ej.PivotAnalysis.FilterType.Exclude} + */ + filterType?: ej.PivotAnalysis.FilterType|string; + + /** Contains the collection of items to be included/excluded among the field members. + * @Default {[]} + */ + values?: Array; } export interface DataSourceFilter { @@ -25109,368 +26348,105 @@ export interface DataSourceFilter { */ fieldCaption?: string; - /** Allows the user to enable the usage of named set items in respective axis. This is only applicable for OLAP datasource. - * @Default {false} + /** Applies filter to the field members. + * @Default {null} */ - isNamedSets?: boolean; + filterItems?: DataSourceFiltersFilterItems; +} + +export interface DataSourcePagerOptions { + + /** Allows to set the number of categorical columns to be displayed in each page on applying paging. + * @Default {0} + */ + categoricalPageSize?: number; + + /** Allows to set the number of series rows to be displayed in each page on applying paging. + * @Default {0} + */ + seriesPageSize?: number; + + /** Allows to set the page number in categorical axis to be loaded by default. + * @Default {1} + */ + categoricalCurrentPage?: number; + + /** Allows to set the page number in series axis to be loaded by default. + * @Default {1} + */ + seriesCurrentPage?: number; } export interface DataSource { - /** Contains the database name as string type to fetch the data from the given connection string. - * @Default {“”} - */ - catalog?: string; - - /** Lists out the items to be arranged in column section of PivotChart. + /** Lists out the items to be arranged in columns section of PivotClient. * @Default {[]} */ columns?: Array; - /** Contains the respective Cube name from database as string type. - * @Default {“”} - */ - cube?: string; - - /** Provides the raw data source for the PivotChart. - * @Default {null} - */ - data?: any; - - /** Lists out the items to be arranged in row section of PivotChart. + /** Lists out the items to be arranged in rows section of PivotClient. * @Default {[]} */ rows?: Array; - /** Lists out the items which supports calculation in PivotChart. + /** Lists out the items which supports calculation in PivotClient. * @Default {[]} */ values?: Array; - /** Lists out the items which supports filtering of values in PivotChart. + /** Lists out the items which supports filtering of values without displaying the members in UI in PivotClient. * @Default {[]} */ filters?: Array; -} -export interface ServiceMethodSettings { - - /** Allows the user to set the custom name for the service method that’s responsible for drilling up/down operation in PivotChart. - * @Default {DrillChart} - */ - drillDown?: string; - - /** Allows the user to set the custom name for the service method that’s responsible for exporting. - * @Default {Export} - */ - exportPivotChart?: string; - - /** Allows the user to set the custom name for the service method that’s responsible for initializing PivotChart. - * @Default {InitializeChart} - */ - initialize?: string; -} -} - -class PivotClient extends ej.Widget { - static fn: PivotClient; - constructor(element: JQuery, options?: PivotClient.Model); - constructor(element: Element, options?: PivotClient.Model); - model:PivotClient.Model; - defaults:PivotClient.Model; - - /** Perform an asynchronous HTTP (AJAX) request. - * @returns {void} - */ - doAjaxPost(): void; - - /** Perform an asynchronous HTTP (FullPost) submit. - * @returns {void} - */ - doPostBack(): void; -} -export module PivotClient{ - -export interface Model { - - /** Allows the user to set the specific chart type for PivotChart. - * @Default {ej.PivotChart.ChartTypes.Column} - */ - chartType?: ej.PivotChart.ChartTypes|string; - - /** Sets the mode to export the OLAP visualization components such as PivotChart and PivotGrid in PivotClient. Based on the option, either Chart or Grid or both gets exported. - * @Default {ej.PivotClient.ClientExportMode.ChartAndGrid} - */ - clientExportMode?: string; - - /** Specifies the CSS class to PivotClient to achieve custom theme. + /** Contains the respective cube name from OLAP database as string type. * @Default {“”} */ - cssClass?: string; + cube?: string; - /** Object utilized to pass additional information between client-end and service-end. - * @Default {{}} - */ - customObject?: any; - - /** Allows the user to customize the widgets layout and appearance. - * @Default {{}} - */ - displaySettings?: DisplaySettings; - - /** Allows the user to refresh the control on-demand and not during every UI operation. - * @Default {false} - */ - enableDeferUpdate?: boolean; - - /** Allows the user to view the layout of PivotClient from right to left. - * @Default {false} - */ - enableRTL?: boolean; - - /** Enables/disables the visibility of measure group selector drop-down in Cube Browser. - * @Default {false} - */ - enableMeasureGroups?: boolean; - - /** Sets the summary layout for PivotGrid. Following are the ways in which summary can be positioned: normal summary (bottom), top summary, no summary and excel-like summary. - * @Default {ej.PivotGrid.Layout.Normal} - */ - gridLayout?: ej.PivotGrid.Layout|string; - - /** Allows the user to set the localized language for the widget. - * @Default {en-US} - */ - locale?: string; - - /** Allows the user to set custom name for the methods at service-end, communicated during AJAX post. - * @Default {{}} - */ - serviceMethodSettings?: ServiceMethodSettings; - - /** Sets the title for PivotClient widget. + /** Provides the raw data source for the PivotClient. * @Default {null} */ - title?: string; + data?: any; - /** Connects the service using the specified URL for any server updates. - * @Default {null} + /** In connection with an OLAP database, this property contains the database name as string to fetch the data from the given connection string. + * @Default {“”} */ - url?: string; + catalog?: string; - /** Triggers when it reaches client-side after any AJAX request. */ - afterServiceInvoke? (e: AfterServiceInvokeEventArgs): void; - - /** Triggers before any AJAX request is passed from PivotClient to service methods. */ - beforeServiceInvoke? (e: BeforeServiceInvokeEventArgs): void; - - /** Triggers before rendering the PivotChart. */ - chartLoad? (e: ChartLoadEventArgs): void; - - /** Triggers while we initiate loading of the widget. */ - load? (e: LoadEventArgs): void; - - /** Triggers when PivotClient widget completes all operations at client-end after any AJAX request. */ - renderComplete? (e: RenderCompleteEventArgs): void; - - /** Triggers when any error occurred during AJAX request. */ - renderFailure? (e: RenderFailureEventArgs): void; - - /** Triggers when PivotClient successfully reaches client-side after any AJAX request. */ - renderSuccess? (e: RenderSuccessEventArgs): void; -} - -export interface AfterServiceInvokeEventArgs { - - /** return the current action of PivotClient control. + /** Allows user to filter the members (by its name and values) through advanced filtering (excel-like) option for OLAP data source in client-mode. + * @Default {false} */ - action?: string; + enableAdvancedFilter?: boolean; - /** return the custom object bounds with PivotClient control. + /** Sets a name to the report bound to the control. */ - customObject?: any; + reportName?: string; - /** return the outer HTML of PivotClient control. + /** Allows to set the page size and current page number for each axis on applying paging. + * @Default {{}} */ - element?: string; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the PivotClient model. - */ - model?: ej.PivotClient.Model; - - /** returns the name of the event. - */ - type?: string; -} - -export interface BeforeServiceInvokeEventArgs { - - /** return the current action of PivotClient control. - */ - action?: string; - - /** return the custom object bounds with PivotClient control. - */ - customObject?: any; - - /** return the outer HTML of PivotClient control. - */ - element?: string; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the PivotClient model. - */ - model?: ej.PivotClient.Model; - - /** returns the name of the event. - */ - type?: string; -} - -export interface ChartLoadEventArgs { - - /** return the current action of PivotChart control. - */ - action?: string; - - /** return the custom object bounds with PivotChart control. - */ - customObject?: any; - - /** return the outer HTML of PivotChart control. - */ - element?: string; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the PivotChart model. - */ - model?: ej.PivotClient.Model; - - /** returns the name of the event. - */ - type?: string; -} - -export interface LoadEventArgs { - - /** returns the outer HTML of PivotClient component. - */ - element?: string; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the PivotClient model. - */ - model?: ej.PivotClient.Model; - - /** returns the name of the event. - */ - type?: string; -} - -export interface RenderCompleteEventArgs { - - /** returns the custom object bounded with the control. - */ - customObject?: any; - - /** returns the outer HTML of PivotClient control. - */ - element?: string; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the PivotClient model. - */ - model?: ej.PivotClient.Model; - - /** returns the name of the event. - */ - type?: string; -} - -export interface RenderFailureEventArgs { - - /** returns the custom object bounded with the control. - */ - customObject?: any; - - /** returns the outer HTML of PivotClient control. - */ - element?: string; - - /** returns the error message with error code. - */ - message?: any; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the PivotClient model. - */ - model?: ej.PivotClient.Model; - - /** returns the name of the event. - */ - type?: string; -} - -export interface RenderSuccessEventArgs { - - /** returns the custom object bounded with the control. - */ - customObject?: any; - - /** returns the outer HTML of PivotClient control. - */ - element?: string; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the PivotClient model. - */ - model?: ej.PivotClient.Model; - - /** returns the name of the event. - */ - type?: string; + pagerOptions?: DataSourcePagerOptions; } export interface DisplaySettings { - /** Let’s the user to customize the display of PivotChart and PivotGrid widgets, either in tab view or in tile view. + /** Lets the user to customize the display of PivotChart and PivotGrid widgets, either in tabs or tiles. * @Default {ej.PivotClient.ControlPlacement.Tab} */ controlPlacement?: ej.PivotClient.ControlPlacement|string; - /** Let’s the user to set either Chart or Grid as the start-up widget. + /** Lets the user to set either Chart or Grid as the start-up widget. * @Default {ej.PivotClient.DefaultView.Grid} */ defaultView?: ej.PivotClient.DefaultView|string; - /** Enables/disables the full screen view of PivotChart and PivotGrid in PivotClient. + /** Lets the user to have an option for switching to full screen view of PivotChart and PivotGrid from default view in PivotClient. * @Default {false} */ enableFullScreen?: boolean; - /** Enhances the space for PivotGrid and PivotChart, by hiding Cube Browser and Axis Element Builder. + /** Enables an option to enhance the space for PivotGrid and PivotChart by hiding Cube Browser and Axis Element Builder. * @Default {false} */ enableTogglePanel?: boolean; @@ -25488,103 +26464,121 @@ export interface DisplaySettings { export interface ServiceMethodSettings { - /** Allows the user to set the custom name for the service method that’s responsible for updating the entire report and widget, while changing the Cube. + /** Allows the user to set the custom name for the service method responsible for updating the entire report and widget, while changing the Cube. * @Default {CubeChanged} */ cubeChanged?: string; - /** Allows the user to set the custom name for the service method that’s responsible for exporting. + /** Allows the user to set the custom name for the service method responsible for exporting. * @Default {Export} */ exportPivotClient?: string; - /** Allows the user to set the custom name for the service method that’s responsible to get the members, for the tree-view inside member-editor dialog. + /** Allows the user to set the custom name for the service method responsible to get the members for the tree-view, inside member-editor dialog. * @Default {FetchMemberTreeNodes} */ fetchMemberTreeNodes?: string; - /** Allows the user to set the custom name for the service method that’s responsible for fetching the report names from the database. + /** Allows the user to set the custom name for the service method responsible for fetching the report names from the database. * @Default {FetchReportListFromDB} */ fetchReportList?: string; - /** Allows the user to set the custom name for the service method that’s responsible for updating report while filtering members. + /** Allows the user to set the custom name for the service method responsible for updating report while filtering members. * @Default {FilterElement} */ filterElement?: string; - /** Allows the user to set the custom name for the service method that’s responsible for initializing PivotClient. + /** Allows the user to set the custom name for the service method responsible for initializing PivotClient. * @Default {InitializeClient} */ initialize?: string; - /** Allows the user to set the custom name for the service method that’s responsible for loading the report collection from the database. + /** Allows the user to set the custom name for the service method responsible for loading a report collection from the database. * @Default {LoadReportFromDB} */ loadReport?: string; - /** Allows the user to set the custom name for the service method that’s responsible for retrieving the MDX query for the current report. + /** Allows the user to set the custom name for the service method responsible for retrieving the MDX query for the current report. * @Default {GetMDXQuery} */ mdxQuery?: string; - /** Allows the user to set the custom name for the service method that’s responsible for updating the tree-view inside Cube Browser, while changing the measure group. + /** Allows the user to set the custom name for the service method responsible for updating the tree-view inside Cube Browser, while changing the measure group. * @Default {MeasureGroupChanged} */ measureGroupChanged?: string; - /** Allows the user to set the custom name for the service method that’s responsible to get the child members, on tree-view node expansion. + /** Allows the user to set the custom name for the service method responsible to get the child members, on tree-view node expansion. * @Default {MemberExpanded} */ memberExpand?: string; - /** Allows the user to set the custom name for the service method that’s responsible for updating report while dropping a node/SplitButton inside Axis Element Builder. + /** Allows the user to set the custom name for the service method responsible for updating report while dropping a node/SplitButton inside Axis Element Builder. * @Default {NodeDropped} */ nodeDropped?: string; - /** Allows the user to set the custom name for the service method that’s responsible for updating report while removing SplitButton from Axis Element Builder. + /** Allows the user to set the custom name for the service method responsible for updating report while removing SplitButton from Axis Element Builder. * @Default {RemoveSplitButton} */ removeSplitButton?: string; - /** Allows the user to set the custom name for the service method that’s responsible for saving the report collection to database. + /** Allows the user to set the custom name for the service method responsible for saving the report collection to database. * @Default {SaveReportToDB} */ saveReport?: string; - /** Allows the user to set the custom name for the service method that’s responsible for toggling the elements in row and column axes. + /** Allows the user to set the custom name for the service method responsible for toggling the elements in row and column axes. * @Default {ToggleAxis} */ toggleAxis?: string; - /** Allows the user to set the custom name for the service method that’s responsible for any toolbar operation. + /** Allows the user to set the custom name for the service method responsible for all the toolbar operations. * @Default {ToolbarOperations} */ toolbarServices?: string; - /** Allows the user to set the custom name for the service method that’s responsible for updating report collection. + /** Allows the user to set the custom name for the service method responsible for updating report collection. * @Default {UpdateReport} */ updateReport?: string; + + /** Allows the user to set the custom name for the service method responsible on navigating between pages in paged PivotClient. + * @Default {Paging} + */ + paging?: string; } +enum ClientExportMode{ + + ///Exports both the PivotChart and PivotGrid on exporting. + ChartAndGrid, + + ///Exports the PivotChart control alone on exporting. + ChartOnly, + + ///Exports the PivotGrid control alone on exporting. + GridOnly +} + + enum ControlPlacement{ - ///To display PivotChart and PivotGrid widgets in tab view. + ///Displays PivotChart and PivotGrid widgets in separate tabs. Tab, - ///To display PivotChart and PivotGrid widgets within the same view, one below the other. + ///Displays PivotChart and PivotGrid widgets one above the other. Tile } enum DefaultView{ - ///To set PivotChart as a default control in view when the PivotClient widget is loaded for the first time. + ///To set PivotChart as a default control in view. Chart, - ///To set PivotGrid as a default control in view when the PivotClient widget is loaded for the first time. + ///To set PivotGrid as a default control in view. Grid } @@ -25601,56 +26595,17 @@ enum DisplayMode{ ChartAndGrid } -} -module PivotChart -{ -enum ChartTypes -{ -//To render a Line type for PivotChart. -Line, -//To render a Spline type for PivotChart. -Spline, -//To render a Column type for PivotChart. -Column, -//To render a Area type for PivotChart. -Area, -//To render a SplineArea type for PivotChart. -SplineArea, -//To render a StepLine type for PivotChart. -StepLine, -//To render a StepArea type for PivotChart. -StepArea, -//To render a Pie type for PivotChart. -Pie, -//To render a Bar type for PivotChart. -Bar, -//To render a StackingArea type for PivotChart. -StackingArea, -//To render a StackingColumn type for PivotChart. -StackingColumn, -//To render a StackingBar type for PivotChart. -StackingBar, -//To render a Pyramid type for PivotChart. -Pyramid, -//To render a Funnel type for PivotChart. -Funnel, -//To render a Doughnut type for PivotChart. -Doughnut, -//To render a Scatter type for PivotChart. -Scatter, -//To render a Bubble type for PivotChart. -Bubble, -} } class PivotGauge extends ej.Widget { static fn: PivotGauge; constructor(element: JQuery, options?: PivotGauge.Model); constructor(element: Element, options?: PivotGauge.Model); + static Locale: any; model:PivotGauge.Model; defaults:PivotGauge.Model; - /** Perform an asynchronous HTTP (AJAX) request. + /** Performs an asynchronous HTTP (AJAX) request. * @returns {void} */ doAjaxPost(): void; @@ -25660,36 +26615,56 @@ class PivotGauge extends ej.Widget { */ refresh(): void; - /** This function removes the KPI related images from PivotGauge. + /** This function removes the KPI related images from PivotGauge on binding OLAP datasource. * @returns {void} */ removeImg(): void; - /** This function receives the JSON formatted datasource to render the PivotGauge control. + /** This function receives the JSON formatted datasource and renders the PivotGauge control. * @returns {void} */ renderControlFromJSON(): void; + + /** Returns the OlapReport string maintained along with the axis elements information. + * @returns {void} + */ + getOlapReport(): void; + + /** Sets the OlapReport string along with the axis information and maintains it in a property. + * @returns {void} + */ + setOlapReport(): void; + + /** Returns the JSON records formed to render the control. + * @returns {void} + */ + getJSONRecords(): void; + + /** Sets the JSON records to render the control. + * @returns {void} + */ + setJSONRecords(): void; + + /** Returns the JSON records required to render the PivotGauge on performing any action with OLAP data source. + * @returns {void} + */ + getJSONData(): void; } export module PivotGauge{ export interface Model { - /** Specifies the background color of pivot gauge. - * @Default {null} - */ - backgroundColor?: string; - - /** Sets the number of column count to arrange the PivotGauge's. + /** Sets the number of columns to arrange the Pivot Gauges. * @Default {0} */ columnsCount?: number; - /** Specify the CSS class to PivotGauge to achieve custom theme. + /** Specifies the CSS class to PivotGauge to achieve custom theme. * @Default {“”} */ cssClass?: string; - /** Object utilized to pass additional information between client-end and service-end. + /** Object utilized to pass additional information between client-end and service-end on operating in server mode. * @Default {{}} */ customObject?: any; @@ -25699,6 +26674,11 @@ export interface Model { */ dataSource?: DataSource; + /** Enables/disables the animation of pointer in PivotGauge. + * @Default {false} + */ + enableAnimation?: boolean; + /** Enables/disables tooltip visibility in PivotGauge. * @Default {false} */ @@ -25724,7 +26704,7 @@ export interface Model { */ locale?: string; - /** Sets the number of row count to arrange the PivotGauge's. + /** Sets the number of rows to arrange the Pivot Gauges. * @Default {0} */ rowsCount?: number; @@ -25744,17 +26724,30 @@ export interface Model { */ showHeaderLabel?: boolean; - /** Connects the service using the specified URL for any server updates. + /** Connects the service using the specified URL for any server updates on server mode operation. * @Default {“”} */ url?: string; + /** Sets the mode for the PivotGauge widget for binding either OLAP or Relational data source. + * @Default {ej.Pivot.AnalysisMode.Pivot} + */ + analysisMode?: ej.Pivot.AnalysisMode|string; + + /** Sets the mode for the PivotGauge widget for binding data source either in server-side or client-side. + * @Default {ej.Pivot.OperationalMode.ClientMode} + */ + operationalMode?: ej.Pivot.OperationalMode|string; + /** Triggers when it reaches client-side after any AJAX request. */ afterServiceInvoke? (e: AfterServiceInvokeEventArgs): void; /** Triggers before any AJAX request is passed from PivotGauge to service methods. */ beforeServiceInvoke? (e: BeforeServiceInvokeEventArgs): void; + /** Triggers before populating the pivot engine on operating in client mode. */ + beforePivotEnginePopulate? (e: BeforePivotEnginePopulateEventArgs): void; + /** Triggers when PivotGauge started loading at client-side. */ load? (e: LoadEventArgs): void; @@ -25770,148 +26763,100 @@ export interface Model { export interface AfterServiceInvokeEventArgs { - /** return the current action of PivotGauge control. - */ - action?: string; - - /** return the custom object bounds with PivotGauge control. + /** returns the custom object bound with PivotGauge control. */ customObject?: any; - /** return the outer HTML of PivotGauge control. + /** returns the HTML element of PivotGauge control. */ - element?: string; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the PivotGauge model. - */ - model?: ej.PivotGauge.Model; - - /** returns the name of the event. - */ - type?: string; + element?: any; } export interface BeforeServiceInvokeEventArgs { - /** return the current action of PivotGauge control. - */ - action?: string; - - /** return the custom object bounds with PivotGauge control. + /** returns the custom object bound with PivotGauge control. */ customObject?: any; - /** return the outer HTML of PivotGauge control. + /** returns the HTML element of PivotGauge control. */ - element?: string; + element?: any; +} - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; +export interface BeforePivotEnginePopulateEventArgs { - /** returns the PivotGauge model. + /** returns the current instance of PivotGauge control. */ - model?: ej.PivotGauge.Model; - - /** returns the name of the event. - */ - type?: string; + gaugeObject?: any; } export interface LoadEventArgs { - /** if the event should be canceled; otherwise, false. + /** returns the current action of PivotGauge control. */ - cancel?: boolean; + action?: string; - /** returns the PivotGauge model. + /** returns the model of PivotGauge control. */ - model?: ej.PivotGauge.Model; + model?: any; - /** returns the name of the event. + /** returns the HTML element of the widget. */ - type?: string; + element?: any; + + /** returns the custom object bound to the control. + */ + customObject?: any; } export interface RenderCompleteEventArgs { - /** returns the outer HTML of PivotGauge control. - */ - element?: string; - - /** returns the custom object bounded with the control. + /** returns the custom object bound with PivotGauge control. */ customObject?: any; - /** if the event should be canceled; otherwise, false. + /** returns the HTML element of PivotGauge control. */ - cancel?: boolean; - - /** returns the PivotGauge model. - */ - model?: ej.PivotGauge.Model; - - /** returns the name of the event. - */ - type?: string; + element?: any; } export interface RenderFailureEventArgs { - /** returns the outer HTML of PivotGauge control. + /** returns the HTML element of PivotGauge control. */ - element?: string; + element?: any; - /** returns the custom object bounded with the control. + /** returns the custom object bound with the control. */ customObject?: any; /** returns the error message with error code. */ - message?: any; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the PivotGauge model. - */ - model?: ej.PivotGauge.Model; - - /** returns the name of the event. - */ - type?: string; - - /** returns the JSON formatted response while error occurs. - */ - responseJSON?: any; + message?: string; } export interface RenderSuccessEventArgs { - /** returns the outer HTML of PivotGauge control. + /** returns the HTML element of PivotGauge control. */ - element?: string; + element?: any; - /** returns the custom object bounded with the control. + /** returns the custom object bound with the control. */ customObject?: any; +} - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; +export interface DataSourceColumnsFilterItems { - /** returns the PivotGauge model. + /** Sets the type of filter whether to include/exclude the mentioned values. + * @Default {ej.PivotAnalysis.FilterType.Exclude} */ - model?: ej.PivotGauge.Model; + filterType?: ej.PivotAnalysis.FilterType|string; - /** returns the name of the event. + /** Contains the collection of items to be included/excluded among the field members. + * @Default {[]} */ - type?: string; + values?: Array; } export interface DataSourceColumn { @@ -25920,24 +26865,20 @@ export interface DataSourceColumn { */ fieldName?: string; - /** Allows the user to set the display name for an item. + /** Applies filter to the field members. + * @Default {null} */ - fieldCaption?: string; - - /** Allows the user to enable the usage of named set items in respective axis. This is only applicable for OLAP datasource. - * @Default {false} - */ - isNamedSets?: boolean; + filterItems?: DataSourceColumnsFilterItems; } export interface DataSourceRowsFilterItems { - /** Allows the user to set the type of filtering for an item. - * @Default {exclude} + /** Sets the type of filter whether to include/exclude the mentioned values. + * @Default {ej.PivotAnalysis.FilterType.Exclude} */ - filterType?: string; + filterType?: ej.PivotAnalysis.FilterType|string; - /** Allows the user to set the values for filtering an item. + /** Contains the collection of items to be included/excluded among the field members. * @Default {[]} */ values?: Array; @@ -25949,40 +26890,60 @@ export interface DataSourceRow { */ fieldName?: string; - /** Allows the user to set the display name for an item. - */ - fieldCaption?: string; - - /** Allows the user to set the filtering values name for an item. + /** Applies filter to the field members. * @Default {null} */ filterItems?: DataSourceRowsFilterItems; +} - /** Allows the user to enable the usage of named set items in respective axis. This is only applicable for OLAP datasource. - * @Default {false} +export interface DataSourceValuesMeasure { + + /** Allows the user to bind the measure from OLAP datasource by using its unique name as field name. */ - isNamedSets?: boolean; + fieldName?: string; } export interface DataSourceValue { - /** This holds the measures unique name to bind them from the Cube. - * @Default {[]} - */ - measures?: Array; - - /** Allows to set the axis name to place the measures items. - * @Default {“”} - */ - axis?: string; - - /** Allows the user to bind the item by using its unique name as field name. + /** Allows the user to bind the item by using its unique name as field name for Relational datasource. */ fieldName?: string; - /** Allows the user to set the display name for an item. + /** Allows the user to set the display caption for an item for Relational datasource. */ fieldCaption?: string; + + /** This holds the list of unique names of measures to bind them from the OLAP cube. + * @Default {[]} + */ + measures?: Array; + + /** Allows to set the axis name to place the measures items. + * @Default {rows} + */ + axis?: string; + + /** Indicates whether the field is a calculated field or not with Relational datasource. + * @Default {false} + */ + isCalculatedField?: boolean; + + /** Allows to set the formula for calculation of values for calculated members in Relational datasource. + */ + formula?: string; +} + +export interface DataSourceFiltersFilterItems { + + /** Sets the type of filter whether to include/exclude the mentioned values. + * @Default {ej.PivotAnalysis.FilterType.Exclude} + */ + filterType?: ej.PivotAnalysis.FilterType|string; + + /** Contains the collection of items to be included/excluded among the field members. + * @Default {[]} + */ + values?: Array; } export interface DataSourceFilter { @@ -25991,29 +26952,15 @@ export interface DataSourceFilter { */ fieldName?: string; - /** Allows the user to set the display name for an item. + /** Applies filter to the field members. + * @Default {null} */ - fieldCaption?: string; - - /** Allows the user to enable the usage of named set items in respective axis. This is only applicable for OLAP datasource. - * @Default {false} - */ - isNamedSets?: boolean; + filterItems?: DataSourceFiltersFilterItems; } export interface DataSource { - /** Contains the database name as string type to fetch the data from the given connection string. - * @Default {“”} - */ - catalog?: string; - - /** Lists out the items to be arranged in column section of PivotGauge. - * @Default {[]} - */ - columns?: Array; - - /** Contains the respective Cube name from database as string type. + /** Contains the respective cube name from OLAP database as string type. * @Default {“”} */ cube?: string; @@ -26023,17 +26970,27 @@ export interface DataSource { */ data?: any; - /** Lists out the items to be arranged in row section of PivotGauge. + /** In connection with an OLAP database, this property contains the database name as string to fetch the data from the given connection string. + * @Default {“”} + */ + catalog?: string; + + /** Lists out the items to bind in columns section. + * @Default {[]} + */ + columns?: Array; + + /** Lists out the items to bind in rows section. * @Default {[]} */ rows?: Array; - /** Lists out the items which supports calculation in PivotGauge. + /** Lists out the items supports calculation in PivotGauge. * @Default {[]} */ values?: Array; - /** Lists out the items which supports filtering of values in PivotGauge. + /** Lists out the items which supports filtering of values without displaying the members in UI in PivotGauge. * @Default {[]} */ filters?: Array; @@ -26046,7 +27003,7 @@ export interface LabelFormatSettings { */ numberFormat?: ej.PivotGauge.NumberFormat|string; - /** Allows you to change the position of a digit on the right-hand side of the decimal point for label value. + /** Allows you to set the number of digits displayed after decimal point. * @Default {5} */ decimalPlaces?: number; @@ -26062,7 +27019,7 @@ export interface LabelFormatSettings { export interface ServiceMethodSettings { - /** Allows the user to set the custom name for the service method that’s responsible for initializing PivotGauge. + /** Allows the user to set the custom name for the service method responsible for initializing PivotGauge. * @Default {InitializeGauge} */ initialize?: string; @@ -26098,18 +27055,39 @@ class PivotTreeMap extends ej.Widget { static fn: PivotTreeMap; constructor(element: JQuery, options?: PivotTreeMap.Model); constructor(element: Element, options?: PivotTreeMap.Model); + static Locale: any; model:PivotTreeMap.Model; defaults:PivotTreeMap.Model; - /** Perform an asynchronous HTTP (AJAX) request. + /** Performs an asynchronous HTTP (AJAX) request. * @returns {void} */ doAjaxPost(): void; - /** Perform an asynchronous HTTP (FullPost) submit. + /** Returns the OlapReport string maintained along with the axis elements information. * @returns {void} */ - doPostBack(): void; + getOlapReport(): void; + + /** Sets the OlapReport string along with the axis information and maintains it in a property. + * @returns {void} + */ + setOlapReport(): void; + + /** Returns the JSON records formed to render the control. + * @returns {void} + */ + getJSONRecords(): void; + + /** Sets the JSON records to render the control. + * @returns {void} + */ + setJSONRecords(): void; + + /** Renders the control with the pivot engine obtained from OLAP cube. + * @returns {void} + */ + generateJSON(): void; /** This function receives the JSON formatted datasource to render the PivotTreeMap control. * @returns {void} @@ -26130,11 +27108,6 @@ export interface Model { */ cssClass?: string; - /** Contains the serialized Report at that instant, that is, current Report. - * @Default {“”} - */ - currentReport?: string; - /** Initializes the data source for the PivotTreeMap widget, when it functions completely on client-side. * @Default {{}} */ @@ -26145,11 +27118,6 @@ export interface Model { */ customObject?: any; - /** Allows the user to view the layout of PivotTreeMap from right to left. - * @Default {false} - */ - enableRTL?: boolean; - /** Allows the user to enable PivotTreeMap’s responsiveness in the browser layout. * @Default {false} */ @@ -26161,9 +27129,9 @@ export interface Model { locale?: string; /** Sets the mode for the PivotTreeMap widget for binding data source either in server-side or client-side. - * @Default {ej.PivotTreeMap.OperationalMode.ClientMode} + * @Default {ej.Pivot.OperationalMode.ClientMode} */ - operationalMode?: any; + operationalMode?: ej.Pivot.OperationalMode|string; /** Allows the user to set custom name for the methods at service-end, communicated on AJAX post. * @Default {{}} @@ -26181,6 +27149,12 @@ export interface Model { /** Triggers before any AJAX request is passed from PivotTreeMap to service methods. */ beforeServiceInvoke? (e: BeforeServiceInvokeEventArgs): void; + /** Triggers when PivotTreeMap starts to render. */ + load? (e: LoadEventArgs): void; + + /** Triggers before populating the pivot engine from datasource. */ + beforePivotEnginePopulate? (e: BeforePivotEnginePopulateEventArgs): void; + /** Triggers when drill up/down happens in PivotTreeMap control. And it returns the outer HTML of PivotTreeMap control. */ drillSuccess? (e: DrillSuccessEventArgs): void; @@ -26196,144 +27170,118 @@ export interface Model { export interface AfterServiceInvokeEventArgs { - /** return the current action of PivotTreeMap control. + /** returns the current action of PivotTreeMap control. */ action?: string; - /** return the custom object bounds with PivotTreeMap control. + /** returns the custom object bound with PivotTreeMap control. */ customObject?: any; - /** return the outer HTML of PivotTreeMap control. + /** returns the HTML element of PivotTreeMap control. */ - element?: string; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the PivotTreeMap model. - */ - model?: ej.PivotTreeMap.Model; - - /** returns the name of the event. - */ - type?: string; + element?: any; } export interface BeforeServiceInvokeEventArgs { - /** return the current action of PivotTreeMap control. + /** returns the current action of PivotTreeMap control. */ action?: string; - /** return the custom object bounds with PivotTreeMap control. + /** returns the custom object bound with PivotTreeMap control. */ customObject?: any; - /** return the outer HTML of PivotTreeMap control. + /** returns the HTML element of PivotTreeMap control. */ - element?: string; + element?: any; +} - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; +export interface LoadEventArgs { - /** returns the PivotTreeMap model. + /** returns the current action of PivotTreeMap control. */ - model?: ej.PivotTreeMap.Model; + action?: string; - /** returns the name of the event. + /** returns the custom object bound with PivotTreeMap control. */ - type?: string; + customObject?: any; + + /** returns the HTML element of PivotTreeMap control. + */ + element?: any; +} + +export interface BeforePivotEnginePopulateEventArgs { + + /** returns the current instance of PivotTreeMap control. + */ + treeMapObject?: any; } export interface DrillSuccessEventArgs { + + /** return the HTML element of PivotTreeMap control. + */ + element?: any; } export interface RenderCompleteEventArgs { - /** return the current action of PivotTreeMap control. + /** returns the current action of PivotTreeMap control. */ action?: string; - /** return the custom object bounds with PivotTreeMap control. + /** returns the custom object bound with PivotTreeMap control. */ customObject?: any; - /** return the outer HTML of PivotTreeMap control. + /** returns the HTML element of PivotTreeMap control. */ - element?: string; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the PivotTreeMap model. - */ - model?: ej.PivotTreeMap.Model; - - /** returns the name of the event. - */ - type?: string; + element?: any; } export interface RenderFailureEventArgs { - /** return the current action of PivotTreeMap control. + /** returns the current action of PivotTreeMap control. */ action?: string; - /** return the custom object bounds with PivotTreeMap control. + /** returns the custom object bound with PivotTreeMap control. */ customObject?: any; - /** return the error stack trace of the original exception. + /** returns the HTML element of PivotTreeMap control. */ - message?: any; + element?: any; - /** return the outer HTML of PivotTreeMap control. + /** returns the error stack trace of the original exception. */ - element?: string; - - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; - - /** returns the PivotTreeMap model. - */ - model?: ej.PivotTreeMap.Model; - - /** returns the name of the event. - */ - type?: string; + message?: string; } export interface RenderSuccessEventArgs { - /** return the current action of PivotTreeMap control. + /** returns the current action of PivotTreeMap control. */ action?: string; - /** return the custom object bounds with PivotTreeMap control. + /** returns the custom object bound with PivotTreeMap control. */ customObject?: any; - /** return the outer HTML of PivotTreeMap control. + /** returns the HTML element of PivotTreeMap control. */ - element?: string; + element?: any; +} - /** if the event should be canceled; otherwise, false. - */ - cancel?: boolean; +export interface DataSourceColumnsFilterItems { - /** returns the PivotTreeMap model. + /** Contains the collection of items to be excluded among the field members. + * @Default {[]} */ - model?: ej.PivotTreeMap.Model; - - /** returns the name of the event. - */ - type?: string; + values?: Array; } export interface DataSourceColumn { @@ -26342,14 +27290,23 @@ export interface DataSourceColumn { */ fieldName?: string; - /** Allows the user to set the display name for an item. - */ - fieldCaption?: string; - - /** Allows the user to enable the usage of named set items in respective axis. This is only applicable for OLAP datasource. + /** Allows the user to indicate whether the added item is a named set or not. * @Default {false} */ isNamedSets?: boolean; + + /** Applies filter to the field members. + * @Default {null} + */ + filterItems?: DataSourceColumnsFilterItems; +} + +export interface DataSourceRowsFilterItems { + + /** Contains the collection of items to be excluded among the field members. + * @Default {[]} + */ + values?: Array; } export interface DataSourceRow { @@ -26358,35 +27315,43 @@ export interface DataSourceRow { */ fieldName?: string; - /** Allows the user to set the display name for an item. - */ - fieldCaption?: string; - - /** Allows the user to enable the usage of named set items in respective axis. This is only applicable for OLAP datasource. + /** Allows the user to indicate whether the added item is a named set or not. * @Default {false} */ isNamedSets?: boolean; + + /** Applies filter to the field members. + * @Default {null} + */ + filterItems?: DataSourceRowsFilterItems; +} + +export interface DataSourceValuesMeasure { + + /** Allows the user to bind the measure from OLAP datasource by using its unique name as field name. + */ + fieldName?: string; } export interface DataSourceValue { - /** This holds the measures unique name to bind them from the Cube. + /** This holds the list of unique names of measures to bind them from the OLAP cube. * @Default {[]} */ - measures?: Array; + measures?: Array; /** Allows to set the axis name to place the measures items. - * @Default {“”} + * @Default {rows} */ axis?: string; +} - /** Allows the user to bind the item by using its unique name as field name. - */ - fieldName?: string; +export interface DataSourceFiltersFilterItems { - /** Allows the user to set the display name for an item. + /** Contains the collection of items to be excluded among the field members. + * @Default {[]} */ - fieldCaption?: string; + values?: Array; } export interface DataSourceFilter { @@ -26395,49 +27360,45 @@ export interface DataSourceFilter { */ fieldName?: string; - /** Allows the user to set the display name for an item. + /** Applies filter to the field members. + * @Default {null} */ - fieldCaption?: string; - - /** Allows the user to enable the usage of named set items in respective axis. This is only applicable for OLAP datasource. - * @Default {false} - */ - isNamedSets?: boolean; + filterItems?: DataSourceFiltersFilterItems; } export interface DataSource { - /** Contains the database name as string type to fetch the data from the given connection string. - * @Default {“”} - */ - catalog?: string; - - /** Lists out the items to be arranged in column section of PivotTreeMap. - * @Default {[]} - */ - columns?: Array; - - /** Contains the respective Cube name from database as string type. - * @Default {“”} - */ - cube?: string; - /** Provides the raw data source for the PivotTreeMap. * @Default {null} */ data?: any; - /** Lists out the items to be arranged in row section of PivotTreeMap. + /** Contains the respective cube name from OLAP database as string type. + * @Default {“”} + */ + cube?: string; + + /** In connection with an OLAP database, this property contains the database name as string to fetch the data from the given connection string. + * @Default {“”} + */ + catalog?: string; + + /** Lists out the items to be displayed as series of PivotTreeMap. + * @Default {[]} + */ + columns?: Array; + + /** Lists out the items to be displayed as segments of PivotTreeMap. * @Default {[]} */ rows?: Array; - /** Lists out the items which supports calculation in PivotTreeMap. + /** Lists out the items supports calculation in PivotTreeMap. * @Default {[]} */ values?: Array; - /** Lists out the items which supports filtering of values in PivotTreeMap. + /** Lists out the items which supports filtering of values without displaying the members in UI in PivotTreeMap. * @Default {[]} */ filters?: Array; @@ -26445,12 +27406,12 @@ export interface DataSource { export interface ServiceMethodSettings { - /** Allows the user to set the custom name for the service method that’s responsible for initializing PivotTreeMap. + /** Allows the user to set the custom name for the service method responsible for initializing PivotTreeMap. * @Default {InitializeTreemap} */ initialize?: string; - /** Allows the user to set the custom name for the service method that’s responsible for drilling up/down operation in PivotTreeMap. + /** Allows the user to set the custom name for the service method responsible for drilling up/down operation in PivotTreeMap. * @Default {DrillTreeMap} */ drillDown?: string; @@ -26461,6 +27422,7 @@ class Schedule extends ej.Widget { static fn: Schedule; constructor(element: JQuery, options?: Schedule.Model); constructor(element: Element, options?: Schedule.Model); + static Locale: any; model:Schedule.Model; defaults:Schedule.Model; @@ -26540,6 +27502,11 @@ class Schedule extends ej.Widget { * @returns {void} */ refreshAppointments(): void; + + /** Passes the server-side action and data to the client-side for rendering the modified appointment list on the Schedule control. + * @returns {void} + */ + notifyChanges(): void; } export module Schedule{ @@ -28176,6 +29143,7 @@ class RecurrenceEditor extends ej.Widget { static fn: RecurrenceEditor; constructor(element: JQuery, options?: RecurrenceEditor.Model); constructor(element: Element, options?: RecurrenceEditor.Model); + static Locale: any; model:RecurrenceEditor.Model; defaults:RecurrenceEditor.Model; @@ -28283,6 +29251,7 @@ class Gantt extends ej.Widget { static fn: Gantt; constructor(element: JQuery, options?: Gantt.Model); constructor(element: Element, options?: Gantt.Model); + static Locale: any; model:Gantt.Model; defaults:Gantt.Model; @@ -28301,10 +29270,10 @@ class Gantt extends ej.Widget { selectCells(Indexes: Array, preservePreviousSelectedCell: boolean): void; /** Positions the splitter by the specified column index. - * @param {number} Set the splitter position based on column index. + * @param {Number} Set the splitter position based on column index. * @returns {void} */ - setSplitterIndex(index: number): void; + setSplitterIndex(index: Number): void; /** To cancel the edited state of an item in Gantt * @returns {void} @@ -28332,10 +29301,10 @@ class Gantt extends ej.Widget { expandAllItems(): void; /** To expand and collapse an item in Gantt using item's ID - * @param {number} Expand or Collapse a record based on task id. + * @param {Number} Expand or Collapse a record based on task id. * @returns {void} */ - expandCollapseRecord(taskId: number): void; + expandCollapseRecord(taskId: Number): void; /** To hide the column by using header text * @param {string} you can pass a header text of a column to hide @@ -28619,6 +29588,21 @@ export interface Model { */ parentTaskbarTemplate?: string; + /** Specifies the nature of a task for caluculating the work, and it can fixed duration, fixed work and fixed resource unit + * @Default {ej.Gantt.TaskType.FixedUnit} + */ + taskType?: ej.Gantt.TaskType|string; + + /** Specifies the unit for the work involved in a task and it can be day, hour or minute + * @Default {ej.Gantt.WorkUnit.Hour} + */ + workUnit?: ej.Gantt.WorkUnit|string; + + /** Specifies the task scheduling mode for a project and this will be set to all the tasks available in the project + * @Default {ej.Gantt.TaskSchedulingMode.Auto} + */ + taskSchedulingMode?: ej.Gantt.TaskSchedulingMode|string; + /** Specifies the row selection type. * @Default {ej.Gantt.SelectionType.Single} */ @@ -28628,6 +29612,23 @@ export interface Model { */ parentProgressbarBackground?: string; + /** Specifies the mapping property path for resource's percent effort involved in a task in datasource + */ + resourceUnitMapping?: string; + + /** Specifies the mapping property path for the task description in datasource + */ + notesMapping?: string; + + /** Specifies the mapping property path for the task scheuling mode for a task in datasource + * @Default {auto} + */ + taskSchedulingModeMapping?: string; + + /** Specifies the mapping property path for task duration unit in datasoruce + */ + durationUnitMapping?: string; + /** Specifies the background of parent taskbar in Gantt */ parentTaskbarBackground?: string; @@ -28673,6 +29674,11 @@ export interface Model { */ renderBaseline?: boolean; + /** Enables or disables the schedule date validation while connecting a manually scheduled task with predecessor + * @Default {false} + */ + validateManaulTasksOnLinking?: boolean; + /** Specifies the mapping property name for resource ID in resource Collection in Gantt */ resourceIdMapping?: string; @@ -29205,7 +30211,7 @@ export interface CollapsedEventArgs { /** Returns the row index of collapsed record. */ - recordIndex?: number; + recordIndex?: Number; /** Returns the data of collapsed record. */ @@ -29228,7 +30234,7 @@ export interface CollapsingEventArgs { /** Returns the row index of collapsing record. */ - recordIndex?: number; + recordIndex?: Number; /** Returns the data of edited cell record.. */ @@ -29753,6 +30759,45 @@ enum BeginEditAction{ } +enum TaskType{ + + ///Resource unit reamins constant while editing the work and duration values. + FixedUnit, + + ///Work value of a task remains constant while editing duration and resoruce unit values. + FixedWork, + + ///Duration value remains constant while editing work and resoruce unit values. + FixedDuration +} + + +enum WorkUnit{ + + ///Dislays the work involved in a task in days. + Day, + + ///Dislays the work involved in a task in hours. + Hour, + + ///Dislays the work involved in a task in minutes + Minute +} + + +enum TaskSchedulingMode{ + + ///All the tasks in the project will be displayed in auto scheduled mode, where the tasks are scheduled automatically over non-working days and holidays. + Auto, + + ///All the tasks in the project will be displayed in manually scheduled mode. + Manual, + + ///Project consists of tasks with both auto and manually scheduled modes, based on the datasource values + Custom +} + + enum SelectionType{ ///you can select a single row. @@ -29842,6 +30887,7 @@ class ReportViewer extends ej.Widget { static fn: ReportViewer; constructor(element: JQuery, options?: ReportViewer.Model); constructor(element: Element, options?: ReportViewer.Model); + static Locale: any; model:ReportViewer.Model; defaults:ReportViewer.Model; @@ -29927,7 +30973,7 @@ export interface Model { /** Enables or disables the page cache of report. * @Default {false} */ - enablePageCache?: boolean; + enablePageCache?: Boolean; /** Specifies the export settings. */ @@ -29936,12 +30982,12 @@ export interface Model { /** When set to true, adapts the report layout to fit the screen size of devices on which it renders. * @Default {true} */ - isResponsive?: boolean; + isResponsive?: Boolean; /** Specifies the locale for report viewer. * @Default {en-US} */ - locale?: string; + locale?: String; /** Specifies the page settings. */ @@ -29955,7 +31001,7 @@ export interface Model { /** Enables and disables the print mode. * @Default {false} */ - printMode?: boolean; + printMode?: Boolean; /** Specifies the print option of the report. * @Default {ej.ReportViewer.PrintOptions.Default} @@ -29975,17 +31021,17 @@ export interface Model { /** Gets or sets the path of the report file. * @Default {empty} */ - reportPath?: string; + reportPath?: String; /** Gets or sets the reports server URL. * @Default {empty} */ - reportServerUrl?: string; + reportServerUrl?: String; /** Specifies the report Web API service URL. * @Default {empty} */ - reportServiceUrl?: string; + reportServiceUrl?: String; /** Specifies the toolbar settings. */ @@ -29994,7 +31040,7 @@ export interface Model { /** Gets or sets the zoom factor for report viewer. * @Default {1} */ - zoomFactor?: number; + zoomFactor?: Number; /** Fires when the report viewer is destroyed successfully.If you want to perform any operation after destroying the reportviewer control,you can make use of the destroy event. */ destroy? (e: DestroyEventArgs): void; @@ -30162,7 +31208,7 @@ export interface DataSource { /** Gets or sets the name of the data source. * @Default {empty} */ - name?: string; + name?: String; /** Gets or sets the values of data source. * @Default {[]} @@ -30211,17 +31257,17 @@ export interface Parameter { /** Gets or sets the name of the parameter. * @Default {empty} */ - name?: string; + name?: String; /** Gets or sets whether the parameter allows nullable value or not. * @Default {false} */ - nullable?: boolean; + nullable?: Boolean; /** Gets or sets the prompt message associated with the specified parameter. * @Default {empty} */ - prompt?: string; + prompt?: String; /** Gets or sets the parameter values. * @Default {[]} @@ -30234,7 +31280,7 @@ export interface ToolbarSettings { /** Fires when user click on toolbar item in the toolbar. * @Default {empty} */ - click?: string; + click?: String; /** Specifies the toolbar items. * @Default {ej.ReportViewer.ToolbarItems.All} @@ -30244,17 +31290,17 @@ export interface ToolbarSettings { /** Shows or hides the toolbar. * @Default {true} */ - showToolbar?: boolean; + showToolbar?: Boolean; /** Shows or hides the tooltip of toolbar items. * @Default {true} */ - showTooltip?: boolean; + showTooltip?: Boolean; /** Specifies the toolbar template ID. * @Default {empty} */ - templateId?: string; + templateId?: String; } enum ExportOptions{ @@ -30478,6 +31524,7 @@ class TreeGrid extends ej.Widget { static fn: TreeGrid; constructor(element: JQuery, options?: TreeGrid.Model); constructor(element: Element, options?: TreeGrid.Model); + static Locale: any; model:TreeGrid.Model; defaults:TreeGrid.Model; @@ -30706,7 +31753,7 @@ export interface Model { */ isResponsive?: boolean; - /** Specifies the name of the field in the dataSource, which contains the parent’s id. This is necessary to form a parent-child hierarchy, if the dataSource contains self-referential data. + /** Specifies the name of the field in the dataSource, which contains the parent's id. This is necessary to form a parent-child hierarchy, if the dataSource contains self-referential data. */ parentIdMapping?: string; @@ -30738,22 +31785,16 @@ export interface Model { */ selectedRowIndex?: number; - /** Specifies the type of selection whether to select row or cell. - * @Default {ej.TreeGrid.SelectionMode.Row} + /** Specifies the settings for row and cell selection. */ - selectionMode?: ej.TreeGrid.SelectionMode|string; - - /** Specifies the type of selection whether to select single row or multiple rows. - * @Default {ej.TreeGrid.SelectionType.Single} - */ - selectionType?: ej.TreeGrid.SelectionType|string; + selectionSettings?: SelectionSettings; /** Enables/disables the options for inserting , deleting and renaming columns. * @Default {false} */ showColumnOptions?: boolean; - /** Controls the visibility of the menu button, which is displayed on the column header. Clicking on this button will show a popup menu. When you choose “Columns” item from this popup, a list box with column names will be shown, from which you can select/deselect a column name to control the visibility of the respective columns. + /** Controls the visibility of the menu button, which is displayed on the column header. Clicking on this button will show a popup menu. When you choose Columns item from this popup, a list box with column names will be shown, from which you can select/deselect a column name to control the visibility of the respective columns. * @Default {false} */ showColumnChooser?: boolean; @@ -31604,6 +32645,11 @@ export interface Column { */ headerText?: string; + /** Enables or disables the checkbox visibility in a column to make it as a checkbox column + * @Default {false} + */ + showCheckbox?: boolean; + /** Controls the visibility of the column. * @Default {true} */ @@ -31611,7 +32657,7 @@ export interface Column { /** Specifies the header template value for the column header */ - headerTemplateID?: string; + headerTemplateID?: String; /** Specifies the display format of a column * @Default {null} @@ -31640,7 +32686,7 @@ export interface Column { /** Specifies the template for the TreeGrid column */ - templateID?: string; + templateID?: String; /** Enables or disables the ability to edit a row or cell. * @Default {false} @@ -31763,6 +32809,29 @@ export interface PageSettings { template?: string; } +export interface SelectionSettings { + + /** Specifies the type of selection whether to select row or cell. + * @Default {ej.TreeGrid.SelectionMode.Row} + */ + selectionMode?: ej.TreeGrid.SelectionMode|string; + + /** Specifies the type of selection whether single, multiple or checkbox. + * @Default {ej.TreeGrid.SelectionType.Single} + */ + selectionType?: ej.TreeGrid.SelectionType|string; + + /** Enables or disables the selection by hierarchy in check box selection + * @Default {true} + */ + enableHierarchySelection?: boolean; + + /** Toggles the visibility of the checkbox in column header, using which all the check boxes can be selected or unselected. + * @Default {true} + */ + enableSelectAll?: boolean; +} + export interface SizeSettings { /** Height of the TreeGrid. @@ -31887,7 +32956,10 @@ enum SelectionType{ Single, ///you can select a multiple row. - Multiple + Multiple, + + ///you can select rows using checkbox. + Checkbox } } @@ -31896,6 +32968,7 @@ class GroupButton extends ej.Widget { static fn: GroupButton; constructor(element: JQuery, options?: GroupButton.Model); constructor(element: Element, options?: GroupButton.Model); + static Locale: any; model:GroupButton.Model; defaults:GroupButton.Model; @@ -31956,14 +33029,14 @@ class GroupButton extends ej.Widget { hideItem(element: JQuery): void; /** Returns the disabled state of the specified element button element in GroupButton as Boolean. - * @returns {boolean} + * @returns {Boolean} */ - isDisabled(): boolean; + isDisabled(): Boolean; /** Returns the state of the specified button element as Boolean. - * @returns {boolean} + * @returns {Boolean} */ - isSelected(): boolean; + isSelected(): Boolean; /** Public method used to select the specified button element from the ejGroupButton control. * @param {JQuery} Specific button element @@ -32229,6 +33302,7 @@ class NavigationDrawer extends ej.Widget { static fn: NavigationDrawer; constructor(element: JQuery, options?: NavigationDrawer.Model); constructor(element: Element, options?: NavigationDrawer.Model); + static Locale: any; model:NavigationDrawer.Model; defaults:NavigationDrawer.Model; @@ -32358,6 +33432,7 @@ class RadialMenu extends ej.Widget { static fn: RadialMenu; constructor(element: JQuery, options?: RadialMenu.Model); constructor(element: Element, options?: RadialMenu.Model); + static Locale: any; model:RadialMenu.Model; defaults:RadialMenu.Model; @@ -32506,7 +33581,7 @@ export interface ClickEventArgs { /** returns the name of item */ - itemName?: string; + itemName?: String; } export interface OpenEventArgs { @@ -32605,6 +33680,7 @@ class Tile extends ej.Widget { static fn: Tile; constructor(element: JQuery, options?: Tile.Model); constructor(element: Element, options?: Tile.Model); + static Locale: any; model:Tile.Model; defaults:Tile.Model; @@ -32945,10 +34021,227 @@ enum TileSize{ } +class Signature extends ej.Widget { + static fn: Signature; + constructor(element: JQuery, options?: Signature.Model); + constructor(element: Element, options?: Signature.Model); + static Locale: any; + model:Signature.Model; + defaults:Signature.Model; + + /** Clears the strokes in the signature. + * @returns {void} + */ + clear(): void; + + /** Destroys the signature widget. + * @returns {void} + */ + destroy(): void; + + /** Disables the signature widget. + * @returns {void} + */ + disable(): void; + + /** Enables the signature widget. + * @returns {void} + */ + enable(): void; + + /** Hides the signature widget. + * @returns {void} + */ + hide(): void; + + /** redo the last drawn stroke of the signature + * @returns {void} + */ + redo(): void; + + /** used to save the drawn image. + * @returns {void} + */ + save(): void; + + /** Used to Show the signature widget, if it is already hided. + * @returns {void} + */ + show(): void; + + /** undo the last drawn stroke of the signature. + * @returns {void} + */ + undo(): void; +} +export module Signature{ + +export interface Model { + + /** This property is used to set the background color for the signature. + * @Default {#ffffff} + */ + backgroundColor?: string; + + /** This property is used to set the background image for the signature. + */ + backgroundImage?: string; + + /** Enables or disables the Signature textbox widget. + * @Default {true} + */ + enabled?: Boolean; + + /** Sets the height of the Signature control. + * @Default {100%} + */ + height?: string; + + /** Enables/disables responsive support for the signature control (i.e) maintain the signature drawing during the window resizing time. + * @Default {false} + */ + isResponsive?: Boolean; + + /** Allows the type of the image format to be saved when the signature image is saved. + */ + saveImageFormat?: ej.Signature.SaveImageFormat|string; + + /** Allows the signature image to be saved along with its background. + * @Default {false} + */ + saveWithBackground?: Boolean; + + /** Enables or disables rounded corner. + * @Default {true} + */ + showRoundedCorner?: Boolean; + + /** Sets the stroke color for the stroke of the signature. + * @Default {#000000} + */ + strokeColor?: string; + + /** Sets the stroke width for the stroke of the signature. + * @Default {2} + */ + strokeWidth?: Number; + + /** Sets the width of the Signature control. + * @Default {100%} + */ + width?: string; + + /** Triggers when the stroke is changed. */ + change? (e: ChangeEventArgs): void; + + /** Triggered when the pointer is clicked or touched in the signature canvas. */ + mouseDown? (e: MouseDownEventArgs): void; + + /** Triggered when the pointer is moved in the signature canvas. */ + mouseMove? (e: MouseMoveEventArgs): void; + + /** Triggered when the pointer is released after click or touch in the signature canvas. */ + mouseUp? (e: MouseUpEventArgs): void; +} + +export interface ChangeEventArgs { + + /** Set this option to true to cancel the event. + */ + cancel?: Boolean; + + /** Instance of the signature model object. + */ + model?: any; + + /** Name of the event. + */ + type?: String; + + /** Gives the last stored image + */ + lastImage?: String; +} + +export interface MouseDownEventArgs { + + /** Set this option to true to cancel the event. + */ + cancel?: Boolean; + + /** Instance of the signature model object. + */ + model?: any; + + /** Name of the event. + */ + type?: String; + + /** returns all the event values + */ + value?: any; +} + +export interface MouseMoveEventArgs { + + /** Set this option to true to cancel the event. + */ + cancel?: Boolean; + + /** Instance of the signature model object. + */ + model?: any; + + /** Name of the event. + */ + type?: String; + + /** returns all the event values + */ + value?: any; +} + +export interface MouseUpEventArgs { + + /** Set this option to true to cancel the event. + */ + cancel?: Boolean; + + /** Instance of the signature model object. + */ + model?: any; + + /** Name of the event. + */ + type?: String; + + /** returns all the event values + */ + value?: any; +} + +enum SaveImageFormat{ + + ///To save the signature image with PNG format only. + PNG, + + ///To save the signature image with JPG format only. + JPG, + + ///To save the signature image with BMP format only. + BMP, + + ///To save the signature image with TIFF format only. + TIFF +} + +} + class RadialSlider extends ej.Widget { static fn: RadialSlider; constructor(element: JQuery, options?: RadialSlider.Model); constructor(element: Element, options?: RadialSlider.Model); + static Locale: any; model:RadialSlider.Model; defaults:RadialSlider.Model; @@ -32969,66 +34262,66 @@ export interface Model { /** To show the RadialSlider in initial render. * @Default {false} */ - autoOpen?: boolean; + autoOpen?: Boolean; /** Sets the root class for RadialSlider theme. This cssClass API helps to use custom skinning option for RadialSlider control. By defining the root class using this API, we need to include this root class in CSS. */ - cssClass?: string; + cssClass?: String; /** To enable Animation for Radial Slider. * @Default {true} */ - enableAnimation?: boolean; + enableAnimation?: Boolean; /** Enable/Disable the Roundoff property of RadialSlider * @Default {true} */ - enableRoundOff?: boolean; + enableRoundOff?: Boolean; /** Specifies the endAngle value for radial slider circle. * @Default {360} */ - endAngle?: number; + endAngle?: Number; /** Specifies the inline for label show or not on given radius. * @Default {false} */ - inline?: boolean; + inline?: Boolean; /** Specifies innerCircleImageClass, using this property we can give images for center radial circle through CSS classes. * @Default {null} */ - innerCircleImageClass?: string; + innerCircleImageClass?: String; /** Specifies the file name of center circle icon * @Default {null} */ - innerCircleImageUrl?: string; + innerCircleImageUrl?: String; /** Specifies the Space between the radial slider element and the label. * @Default {30} */ - labelSpace?: number; + labelSpace?: Number; /** Specifies the radius of radial slider * @Default {200} */ - radius?: number; + radius?: Number; /** To show the RadialSlider inner circle. * @Default {true} */ - showInnerCircle?: boolean; + showInnerCircle?: Boolean; /** Specifies the endAngle value for radial slider circle. * @Default {0} */ - startAngle?: number; + startAngle?: Number; /** Specifies the strokeWidth for customize the needle, outer circle and inner circle. * @Default {2} */ - strokeWidth?: number; + strokeWidth?: Number; /** Specifies the ticks value of radial slider */ @@ -33037,7 +34330,7 @@ export interface Model { /** Specifies the value of radial slider * @Default {10} */ - value?: number; + value?: Number; /** Event triggers when the change occurs. */ change? (e: ChangeEventArgs): void; @@ -33070,7 +34363,7 @@ export interface ChangeEventArgs { /** returns the initial value of Radial slider */ - oldValue?: number; + oldValue?: Number; /** returns the name of the event */ @@ -33078,7 +34371,7 @@ export interface ChangeEventArgs { /** returns the current value of the Radial slider */ - value?: number; + value?: Number; } export interface CreateEventArgs { @@ -33108,7 +34401,7 @@ export interface MouseoverEventArgs { /** returns the value selected */ - selectedValue?: number; + selectedValue?: Number; /** returns the name of the event */ @@ -33116,7 +34409,7 @@ export interface MouseoverEventArgs { /** returns the current value selected in Radial slider */ - value?: number; + value?: Number; } export interface SlideEventArgs { @@ -33131,7 +34424,7 @@ export interface SlideEventArgs { /** returns the value selected in Radial slider */ - selectedValue?: number; + selectedValue?: Number; /** returns the name of the event */ @@ -33139,7 +34432,7 @@ export interface SlideEventArgs { /** returns the currently selected value */ - value?: number; + value?: Number; } export interface StartEventArgs { @@ -33158,7 +34451,7 @@ export interface StartEventArgs { /** returns the current value selected in Radial slider */ - value?: number; + value?: Number; } export interface StopEventArgs { @@ -33177,7 +34470,7 @@ export interface StopEventArgs { /** returns the current value selected in Radial slider */ - value?: number; + value?: Number; } } @@ -33185,15 +34478,16 @@ class Spreadsheet extends ej.Widget { static fn: Spreadsheet; constructor(element: JQuery, options?: Spreadsheet.Model); constructor(element: Element, options?: Spreadsheet.Model); + static Locale: any; model:Spreadsheet.Model; defaults:Spreadsheet.Model; /** This method is used to add custom formulas in Spreadsheet. - * @param {string} Pass the name of the formula. - * @param {string} Pass the name of the function. + * @param {String} Pass the name of the formula. + * @param {String} Pass the name of the function. * @returns {void} */ - addCustomFormula(formulaName: string, functionName: string): void; + addCustomFormula(formulaName: String, functionName: String): void; /** This method is used to add a new sheet in the last position of the sheet container. * @returns {void} @@ -33308,9 +34602,9 @@ class Spreadsheet extends ej.Widget { getActiveCellElem(sheetIdx?: number): HTMLElement; /** This method is used to get the current active sheet index in Spreadsheet. - * @returns {number} + * @returns {Number} */ - getActiveSheetIndex(): number; + getActiveSheetIndex(): Number; /** This method is used to get the auto fill element in Spreadsheet. * @returns {HTMLElement} @@ -33327,21 +34621,21 @@ class Spreadsheet extends ej.Widget { /** This method is used to get the data settings in the Spreadsheet. * @param {number} Pass the sheet index. - * @returns {number} + * @returns {Number} */ - getDataSettings(sheetIdx: number): number; + getDataSettings(sheetIdx: number): Number; /** This method is used to get the frozen columns index in the Spreadsheet. * @param {number} Pass the sheet index. - * @returns {number} + * @returns {Number} */ - getFrozenColumns(sheetIdx: number): number; + getFrozenColumns(sheetIdx: number): Number; /** This method is used to get the frozen row index in Spreadsheet. * @param {number} Pass the sheet index. - * @returns {number} + * @returns {Number} */ - getFrozenRows(sheetIdx: number): number; + getFrozenRows(sheetIdx: number): Number; /** This method is used to get the hyperlink data as object from the specified cell in Spreadsheet. * @param {HTMLElement} Pass the DOM element to get hyperlink @@ -33498,11 +34792,11 @@ class Spreadsheet extends ej.Widget { refreshSpreadsheet(): void; /** This method is used to remove custom formulae in Spreadsheet. - * @param {string} Pass the name of the formula. - * @param {string} Pass the name of the function. + * @param {String} Pass the name of the formula. + * @param {String} Pass the name of the function. * @returns {void} */ - removeCustomFormula(formulaName: string, functionName: string): void; + removeCustomFormula(formulaName: String, functionName: String): void; /** This method is used to remove the hyperlink from selected cells of current sheet. * @param {string} Hyperlink remove from the specified range. @@ -33817,14 +35111,14 @@ export interface XLComment { editComment(targetCell: any): void; /** This method is used to find the next comment from the active cell in Spreadsheet. - * @returns {boolean} + * @returns {Boolean} */ - findNextComment(): boolean; + findNextComment(): Boolean; /** This method is used to find the previous comment from the active cell in Spreadsheet. - * @returns {boolean} + * @returns {Boolean} */ - findPrevComment(): boolean; + findPrevComment(): Boolean; /** This method is used to get comment data for the specified cell. * @param {HTMLElement} Pass the DOM element to get comment data as object. @@ -33908,9 +35202,9 @@ export interface XLEdit { * @param {number} Pass the column index to get the property value. * @param {string} Optional. Pass the property name that you want("value", "value2", "type", "cFormatRule", "range", "thousandSeparator", "rule", "format", "border", "picture", "chart", "calcValue", "align", "hyperlink", "formats", "borders", "tformats", "tborders", "isFilterHeader", "filterState", "tableName", "comment", "formatStr", "decimalPlaces", "cellType"). * @param {number} Optional. Pass the index of the sheet. - * @returns {any|string|Array} + * @returns {any|String|Array} */ - getPropertyValue(rowIdx: number,colIdx: number,prop: string,sheetIdx: number): any|string|Array; + getPropertyValue(rowIdx: number,colIdx: number,prop: string,sheetIdx: number): any|String|Array; /** This method is used to get the property value in specified cell in Spreadsheet. * @param {HTMLElement} Pass the cell element to get property value. @@ -34071,10 +35365,10 @@ export interface XLPivot { createPivotTable(range: string,location: string,name: string,settings: any,pvt: any): void; /** This method is used to delete the pivot table which is selected. - * @param {string} Pass the name of the pivot table. + * @param {String} Pass the name of the pivot table. * @returns {void} */ - deletePivotTable(pivotName: string): void; + deletePivotTable(pivotName: String): void; /** This method is used to refresh data in pivot table. * @param {string} Optional. Pass the name of the pivot table. @@ -34101,15 +35395,15 @@ export interface XLResize { /** This method is used to get the column width of the specified column index in the Spreadsheet. * @param {number} Pass the column index. - * @returns {number} + * @returns {Number} */ - getColWidth(colIdx: number): number; + getColWidth(colIdx: number): Number; /** This method is used to get the row height of the specified row index in the Spreadsheet. * @param {number} Pass the row index which you want to find its height. - * @returns {number} + * @returns {Number} */ - getRowHeight(rowIdx: number): number; + getRowHeight(rowIdx: number): Number; /** This method is used to set the column width of the specified column index in the Spreadsheet. * @param {number} Pass the column index. @@ -34278,162 +35572,162 @@ export interface Model { /** Gets or sets an active sheet index in the Spreadsheet. By defining this value, you can specify which sheet should be active in workbook. * @Default {1} */ - activeSheetIndex?: number; + activeSheetIndex?: Number; /** Gets or sets a value that indicates whether to enable or disable auto rendering of cell type in the Spreadsheet. * @Default {false} */ - allowAutoCellType?: boolean; + allowAutoCellType?: Boolean; /** Gets or sets a value that indicates whether to enable or disable auto fill feature in the Spreadsheet. * @Default {true} */ - allowAutoFill?: boolean; + allowAutoFill?: Boolean; /** Gets or sets a value that indicates whether to enable or disable auto sum feature in the Spreadsheet. * @Default {true} */ - allowAutoSum?: boolean; + allowAutoSum?: Boolean; /** Gets or sets a value that indicates whether to enable or disable cell format feature in the Spreadsheet. By enabling this, you can customize styles and number formats. * @Default {true} */ - allowCellFormatting?: boolean; + allowCellFormatting?: Boolean; /** Gets or sets a value that indicates whether to enable or disable cell type feature in the Spreadsheet. * @Default {false} */ - allowCellType?: boolean; + allowCellType?: Boolean; /** Gets or sets a value that indicates whether to enable or disable chart feature in the Spreadsheet. By enabling this feature, you can create and customize charts in Spreadsheet. * @Default {true} */ - allowCharts?: boolean; + allowCharts?: Boolean; /** Gets or sets a value that indicates whether to enable or disable clipboard feature in the Spreadsheet. By enabling this feature, you can perform cut/copy and paste operations in Spreadsheet. * @Default {true} */ - allowClipboard?: boolean; + allowClipboard?: Boolean; /** Gets or sets a value that indicates whether to enable or disable comment feature in the Spreadsheet. By enabling this, you can add/delete/modify comments in Spreadsheet. * @Default {true} */ - allowComments?: boolean; + allowComments?: Boolean; /** Gets or sets a value that indicates whether to enable or disable Conditional Format feature in the Spreadsheet. By enabling this, you can apply formatting to the selected range of cells based on the provided conditions (Greater than, Less than, Equal, Between, Contains, etc.). * @Default {true} */ - allowConditionalFormats?: boolean; + allowConditionalFormats?: Boolean; /** Gets or sets a value that indicates whether to enable or disable data validation feature in the Spreadsheet. * @Default {true} */ - allowDataValidation?: boolean; + allowDataValidation?: Boolean; /** Gets or sets a value that indicates whether to enable or disable the delete action in the Spreadsheet. By enabling this feature, you can delete existing rows, columns, cells and sheet. * @Default {true} */ - allowDelete?: boolean; + allowDelete?: Boolean; /** Gets or sets a value that indicates whether to enable or disable drag and drop feature in the Spreadsheet. * @Default {true} */ - allowDragAndDrop?: boolean; + allowDragAndDrop?: Boolean; /** Gets or sets a value that indicates whether to enable or disable the edit action in the Spreadsheet. * @Default {true} */ - allowEditing?: boolean; + allowEditing?: Boolean; /** Gets or sets a value that indicates whether to enable or disable filtering feature in the Spreadsheet. Filtering can be used to limit the data displayed using required criteria. * @Default {true} */ - allowFiltering?: boolean; + allowFiltering?: Boolean; /** Gets or sets a value that indicates whether to enable or disable table feature in the Spreadsheet. By enabling this, you can render table in selected range. * @Default {true} */ - allowFormatAsTable?: boolean; + allowFormatAsTable?: Boolean; /** Get or sets a value that indicates whether to enable or disable format painter feature in the Spreadsheet. By enabling this feature, you can copy the format from the selected range and apply it to another range. * @Default {true} */ - allowFormatPainter?: boolean; + allowFormatPainter?: Boolean; /** Gets or sets a value that indicates whether to enable or disable formula bar in the Spreadsheet. * @Default {true} */ - allowFormulaBar?: boolean; + allowFormulaBar?: Boolean; /** Gets or sets a value that indicates whether to enable or disable freeze pane support in Spreadsheet. After enabling this feature, you can use freeze top row, freeze first column and freeze panes options. * @Default {true} */ - allowFreezing?: boolean; + allowFreezing?: Boolean; /** Gets or sets a value that indicates whether to enable or disable hyperlink feature in the Spreadsheet. By enabling this feature, you can add hyperlink which is used to easily navigate to the cell reference from one sheet to another or a web page. * @Default {true} */ - allowHyperlink?: boolean; + allowHyperlink?: Boolean; /** Gets or sets a value that indicates whether to enable or disable import feature in the Spreadsheet. By enabling this feature, you can open existing Spreadsheet documents. * @Default {true} */ - allowImport?: boolean; + allowImport?: Boolean; /** Gets or sets a value that indicates whether to enable or disable the insert action in the Spreadsheet. By enabling this feature, you can insert new rows, columns, cells and sheet. * @Default {true} */ - allowInsert?: boolean; + allowInsert?: Boolean; /** Gets or sets a value that indicates whether to enable or disable keyboard navigation feature in the Spreadsheet. * @Default {true} */ - allowKeyboardNavigation?: boolean; + allowKeyboardNavigation?: Boolean; /** Gets or sets a value that indicates whether to enable or disable lock cell feature in the Spreadsheet. * @Default {true} */ - allowLockCell?: boolean; + allowLockCell?: Boolean; /** Gets or sets a value that indicates whether to enable or disable merge feature in the Spreadsheet. * @Default {true} */ - allowMerging?: boolean; + allowMerging?: Boolean; /** Gets or sets a value that indicates whether to enable or disable resizing feature in the Spreadsheet. By enabling this feature, you can change the column width and row height by dragging its header boundaries. * @Default {true} */ - allowResizing?: boolean; + allowResizing?: Boolean; /** Gets or sets a value that indicates whether to enable or disable find and replace feature in the Spreadsheet. By enabling this, you can easily find and replace a specific value in the sheet or workbook. By using goto behavior, you can select and highlight all cells that contains specific data or data types. * @Default {true} */ - allowSearching?: boolean; + allowSearching?: Boolean; /** Gets or sets a value that indicates whether to enable or disable selection in the Spreadsheet. By enabling this feature, selected items will be highlighted. * @Default {true} */ - allowSelection?: boolean; + allowSelection?: Boolean; /** Gets or sets a value that indicates whether to enable the sorting feature in the Spreadsheet. * @Default {true} */ - allowSorting?: boolean; + allowSorting?: Boolean; /** Gets or sets a value that indicates whether to enable or disable undo and redo feature in the Spreadsheet. * @Default {true} */ - allowUndoRedo?: boolean; + allowUndoRedo?: Boolean; /** Gets or sets a value that indicates whether to enable or disable wrap text feature in the Spreadsheet. By enabling this, cell content can wrap to the next line, if the cell content exceeds the boundary of the cell. * @Default {true} */ - allowWrap?: boolean; + allowWrap?: Boolean; /** Gets or sets a value that indicates to define the width of the activation panel in Spreadsheet. * @Default {300} */ - apWidth?: number; + apWidth?: Number; /** Gets or sets an object that indicates to customize the auto fill behavior in the Spreadsheet. */ @@ -34446,16 +35740,16 @@ export interface Model { /** Gets or sets a value that defines the number of columns displayed in the sheet. * @Default {21} */ - columnCount?: number; + columnCount?: Number; /** Gets or sets a value that indicates to define the common width for each column in the Spreadsheet. * @Default {64} */ - columnWidth?: number; + columnWidth?: Number; - /** Gets or sets a value to add root css class for customizing Spreadsheet skins. + /** Gets or sets a value to add root CSS class for customizing Spreadsheet skins. */ - cssClass?: string; + cssClass?: String; /** Gets or sets a value that indicates custom formulas in Spreadsheet. * @Default {[]} @@ -34465,17 +35759,17 @@ export interface Model { /** Gets or sets a value that indicates whether to enable or disable context menu in the Spreadsheet. * @Default {true} */ - enableContextMenu?: boolean; + enableContextMenu?: Boolean; /** Gets or sets a value that indicates whether to enable or disable pivot table in the Spreadsheet. * @Default {false} */ - enablePivotTable?: boolean; + enablePivotTable?: Boolean; /** Gets or sets a value that indicates whether to enable or disable touch support in the Spreadsheet. * @Default {true} */ - enableTouch?: boolean; + enableTouch?: Boolean; /** Gets or sets an object that indicates to customize the exporting behavior in Spreadsheet. */ @@ -34492,7 +35786,7 @@ export interface Model { /** Gets or sets a value that indicates whether to customizing the user interface (UI) as locale-specific in order to display regional data (i.e.) in a language and culture specific to a particular country or region. * @Default {en-US} */ - locale?: string; + locale?: String; /** Gets or sets an object that indicates to customize the picture behavior in the Spreadsheet. */ @@ -34509,12 +35803,12 @@ export interface Model { /** Gets or sets a value that indicates whether to define the number of rows to be displayed in the sheet. * @Default {20} */ - rowCount?: number; + rowCount?: Number; /** Gets or sets a value that indicates to define the common height for each row in the sheet. * @Default {20} */ - rowHeight?: number; + rowHeight?: Number; /** Gets or sets an object that indicates to customize the scroll options in the Spreadsheet. */ @@ -34527,7 +35821,7 @@ export interface Model { /** Gets or sets a value that indicates to define the number of sheets to be created at the initial load. * @Default {1} */ - sheetCount?: number; + sheetCount?: Number; /** Gets or sets an object that indicates to customize the sheet behavior in Spreadsheet. */ @@ -34536,22 +35830,22 @@ export interface Model { /** Gets or sets a value that indicates whether to show or hide pager in the Spreadsheet. * @Default {true} */ - showPager?: boolean; + showPager?: Boolean; /** Gets or sets a value that indicates whether to show or hide ribbon in the Spreadsheet. * @Default {true} */ - showRibbon?: boolean; + showRibbon?: Boolean; /** This is used to set the number of undo-redo steps in the Spreadsheet. * @Default {20} */ - undoRedoStep?: number; + undoRedoStep?: Number; /** Define the username for the Spreadsheet which is displayed in comment. * @Default {User Name} */ - userName?: string; + userName?: String; /** Triggered for every action before its starts. */ actionBegin? (e: ActionBeginEventArgs): void; @@ -34794,7 +36088,7 @@ export interface BeforeBatchSaveEventArgs { /** Returns the sheet index. */ - sheetIdx?: number; + sheetIdx?: Number; /** Returns the query, primary key,batch changes for the data Source. */ @@ -35024,7 +36318,7 @@ export interface CellFormattingEventArgs { */ Cell?: number; - /** Returns the name of the css theme. + /** Returns the name of the CSS theme. */ cssClass?: string; @@ -35076,11 +36370,11 @@ export interface CellSaveEventArgs { /** Returns the index of the row. */ - rowIndex?: number; + rowIndex?: Number; /** Returns the index of the column. */ - colIndex?: number; + colIndex?: Number; /** Returns the Spreadsheet model. */ @@ -35111,7 +36405,7 @@ export interface CellSelectedEventArgs { /** Returns the active sheet index. */ - sheetIdx?: number; + sheetIdx?: Number; /** Returns the selected range. */ @@ -35596,7 +36890,7 @@ export interface AutoFillSettings { /** Gets or sets a value that indicates to enable or disable auto fill options in the Spreadsheet. * @Default {true} */ - showFillOptions?: boolean; + showFillOptions?: Boolean; } export interface ChartSettings { @@ -35604,12 +36898,12 @@ export interface ChartSettings { /** Gets or sets a value that defines the chart height in Spreadsheet. * @Default {220} */ - height?: number; + height?: Number; /** Gets or sets a value that defines the chart width in the Spreadsheet. * @Default {440} */ - width?: number; + width?: Number; } export interface ExportSettings { @@ -35617,27 +36911,27 @@ export interface ExportSettings { /** Gets or sets a value that indicates whether to enable or disable save feature in Spreadsheet. By enabling this feature, you can save existing Spreadsheet. * @Default {true} */ - allowExporting?: boolean; + allowExporting?: Boolean; /** Gets or sets a value that indicates to define csvUrl for export to CSV format. * @Default {null} */ - csvUrl?: string; + csvUrl?: String; /** Gets or sets a value that indicates to define excelUrl for export to excel format. * @Default {null} */ - excelUrl?: string; + excelUrl?: String; /** Gets or sets a value that indicates to define password while export to excel format. * @Default {null} */ - password?: string; + password?: String; - /** Gets or sets a value that indicates to define pdfUrl for export to pdf format. + /** Gets or sets a value that indicates to define pdfUrl for export to PDF format. * @Default {null} */ - pdfUrl?: string; + pdfUrl?: String; } export interface FormatSettings { @@ -35645,37 +36939,37 @@ export interface FormatSettings { /** Gets or sets a value that indicates whether to enable or disable cell border feature in the Spreadsheet. * @Default {true} */ - allowCellBorder?: boolean; + allowCellBorder?: Boolean; /** Gets or sets a value that indicates whether to enable or disable decimal places in the Spreadsheet. * @Default {true} */ - allowDecimalPlaces?: boolean; + allowDecimalPlaces?: Boolean; /** Gets or sets a value that indicates whether to enable or disable font family feature in Spreadsheet. * @Default {true} */ - allowFontFamily?: boolean; + allowFontFamily?: Boolean; } export interface ImportSettings { /** Sets import mapper to perform import feature in Spreadsheet. */ - importMapper?: string; + importMapper?: String; /** Gets or sets a value that indicates whether to enable or disable import while initial loading. * @Default {false} */ - importOnLoad?: boolean; + importOnLoad?: Boolean; /** Sets import URL to access the online files in the Spreadsheet. */ - importUrl?: string; + importUrl?: String; /** Gets or sets a value that indicates to define password while importing in the Spreadsheet. */ - password?: string; + password?: String; } export interface PictureSettings { @@ -35683,17 +36977,17 @@ export interface PictureSettings { /** Gets or sets a value that indicates whether to enable or disable picture feature in Spreadsheet. By enabling this, you can add pictures in Spreadsheet. * @Default {true} */ - allowPictures?: boolean; + allowPictures?: Boolean; /** Gets or sets a value that indicates to define height to picture in the Spreadsheet. * @Default {220} */ - height?: number; + height?: Number; /** Gets or sets a value that indicates to define width to picture in the Spreadsheet. * @Default {440} */ - width?: number; + width?: Number; } export interface PrintSettings { @@ -35701,17 +36995,17 @@ export interface PrintSettings { /** Gets or sets a value that indicates whether to enable or disable page setup support for printing in Spreadsheet. * @Default {true} */ - allowPageSetup?: boolean; + allowPageSetup?: Boolean; /** Gets or sets a value that indicates whether to enable or disable page size support for printing in Spreadsheet. * @Default {false} */ - allowPageSize?: boolean; + allowPageSize?: Boolean; /** Gets or sets a value that indicates whether to enable or disable print feature in the Spreadsheet. * @Default {true} */ - allowPrinting?: boolean; + allowPrinting?: Boolean; } export interface RibbonSettingsApplicationTabMenuSettings { @@ -35719,9 +37013,9 @@ export interface RibbonSettingsApplicationTabMenuSettings { /** Gets or sets a value that indicates whether to enable or disable isAppend property in ribbon settings. * @Default {false} */ - isAppend?: boolean; + isAppend?: Boolean; - /** Specifies the data source to append in applicationtab. + /** Specifies the data source to append in application tab. * @Default {[]} */ dataSource?: Array; @@ -35751,27 +37045,27 @@ export interface ScrollSettings { /** Gets or sets a value that indicates whether to enable or disable scrolling in Spreadsheet. * @Default {true} */ - allowScrolling?: boolean; + allowScrolling?: Boolean; /** Gets or sets a value that indicates whether to enable or disable sheet on demand. By enabling this, it render only the active sheet element while paging remaining sheets are created one by one. * @Default {false} */ - allowSheetOnDemand?: boolean; + allowSheetOnDemand?: Boolean; /** Gets or sets a value that indicates whether to enable or disable virtual scrolling feature in the Spreadsheet. * @Default {true} */ - allowVirtualScrolling?: boolean; + allowVirtualScrolling?: Boolean; /** Gets or sets the value that indicates to define the height of spreadsheet. * @Default {100%} */ - height?: number|string; + height?: Number|String; /** Gets or sets the value that indicates whether to enable or disable responsive mode in the Spreadsheet. * @Default {true} */ - isResponsive?: boolean; + isResponsive?: Boolean; /** Gets or sets a value that indicates to set scroll mode in Spreadsheet. It has two scroll modes, Normal and Infinite. * @Default {ej.Spreadsheet.scrollMode.Infinite} @@ -35781,24 +37075,24 @@ export interface ScrollSettings { /** Gets or sets the value that indicates to define the height of the spreadsheet. * @Default {100%} */ - width?: number|string; + width?: Number|String; } export interface SelectionSettings { /** Gets or sets a value that indicates to define active cell in spreadsheet. */ - activeCell?: string; + activeCell?: String; /** Gets or sets a value that indicates to define animation time while selection in the Spreadsheet. * @Default {0.001} */ - animationTime?: number; + animationTime?: Number; /** Gets or sets a value that indicates to enable or disable animation while selection. * @Default {false} */ - enableAnimation?: boolean; + enableAnimation?: Boolean; /** Gets or sets a value that indicates to set selection type in Spreadsheet. It has three types which are Column, Row and Default. * @Default {ej.Spreadsheet.SelectionType.Default} @@ -35819,11 +37113,11 @@ export interface SheetsBorder { /** Specifies border color for range of cells in Spreadsheet. */ - color?: string; + color?: String; /** To apply border for the specified range of cell. */ - range?: string; + range?: String; } export interface SheetsCFormatRule { @@ -35843,7 +37137,7 @@ export interface SheetsCFormatRule { /** Specifies the range for conditional formatting in Spreadsheet. */ - range?: string; + range?: String; } export interface SheetsRangeSetting { @@ -35860,7 +37154,7 @@ export interface SheetsRangeSetting { /** Specifies the primary key for the datasource in Spreadsheet. */ - primaryKey?: string; + primaryKey?: String; /** Specifies the query for the datasource in Spreadsheet. * @Default {null} @@ -35870,12 +37164,12 @@ export interface SheetsRangeSetting { /** Gets or sets a value that indicates whether to enable or disable the datasource header in Spreadsheet. * @Default {false} */ - showHeader?: boolean; + showHeader?: Boolean; /** Specifies the start cell for the datasource range in Spreadsheet. * @Default {A1} */ - startCell?: string; + startCell?: String; } export interface SheetsRowsCellsComment { @@ -35883,49 +37177,49 @@ export interface SheetsRowsCellsComment { /** Get or sets the value that indicates whether to show or hide comments in Spreadsheet. * @Default {false} */ - isVisible?: boolean; + isVisible?: Boolean; /** Specifies the value for the comment in Spreadsheet. */ - value?: string; + value?: String; } export interface SheetsRowsCellsFormat { /** Specifies the type of the format in Spreadsheet. */ - type?: string; + type?: String; } export interface SheetsRowsCellsHyperlink { /** Specifies the web address for the hyperlink of a cell. */ - webAddr?: string; + webAddr?: String; /** Specifies the cell address for the hyperlink of a cell. */ - cellAddr?: string; + cellAddr?: String; /** Specifies the sheet index to which the cell is referred. * @Default {1} */ - sheetIndex?: number; + sheetIndex?: Number; } export interface SheetsRowsCellsStyle { /** Specifies the background color of a cell in the Spreadsheet. */ - backgroundColor?: string; + backgroundColor?: String; /** Specifies the font color of a cell in the Spreadsheet. */ - color?: string; + color?: String; /** Specifies the font weight of a cell in the Spreadsheet. */ - fontWeight?: string; + fontWeight?: String; } export interface SheetsRowsCell { @@ -35948,7 +37242,7 @@ export interface SheetsRowsCell { /** Specifies the index of a cell in Spreadsheet. * @Default {0} */ - index?: number; + index?: Number; /** Specifies the styles of a cell in Spreadsheet. * @Default {null} @@ -35957,7 +37251,7 @@ export interface SheetsRowsCell { /** Specifies the value for a cell in Spreadsheet. */ - value?: string; + value?: String; } export interface SheetsRow { @@ -35965,7 +37259,7 @@ export interface SheetsRow { /** Gets or sets the height of a row in Spreadsheet. * @Default {20} */ - height?: number; + height?: Number; /** Specifies the cells of a row in Spreadsheet. * @Default {[]} @@ -35975,7 +37269,7 @@ export interface SheetsRow { /** Gets or sets the index of a row in Spreadsheet. * @Default {0} */ - index?: number; + index?: Number; } export interface Sheet { @@ -35993,12 +37287,12 @@ export interface Sheet { /** Gets or sets a value that indicates to define column count in the Spreadsheet. * @Default {21} */ - colCount?: number; + colCount?: Number; /** Gets or sets a value that indicates to define column width in the Spreadsheet. * @Default {64} */ - columnWidth?: number; + columnWidth?: Number; /** Gets or sets the data to render the Spreadsheet. * @Default {null} @@ -36008,7 +37302,7 @@ export interface Sheet { /** Gets or sets a value that indicates whether to enable or disable field as column header in the Spreadsheet. * @Default {false} */ - fieldAsColumnHeader?: boolean; + fieldAsColumnHeader?: Boolean; /** Specifies the header styles for the headers in datasource range. * @Default {null} @@ -36032,7 +37326,7 @@ export interface Sheet { /** Specifies the primary key for the datasource in Spreadsheet. */ - primaryKey?: string; + primaryKey?: String; /** Specifies the query for the dataSource in Spreadsheet. * @Default {null} @@ -36047,7 +37341,7 @@ export interface Sheet { /** Gets or sets a value that indicates to define row count in the Spreadsheet. * @Default {20} */ - rowCount?: number; + rowCount?: Number; /** Specifies the rows for a sheet in Spreadsheet. * @Default {[]} @@ -36057,22 +37351,22 @@ export interface Sheet { /** Gets or sets a value that indicates whether to show or hide grid lines in the Spreadsheet. * @Default {true} */ - showGridlines?: boolean; + showGridlines?: Boolean; /** Gets or sets a value that indicates whether to enable or disable the datasource header in Spreadsheet. * @Default {false} */ - showHeader?: boolean; + showHeader?: Boolean; /** Gets or sets a value that indicates whether to show or hide headings in the Spreadsheet. * @Default {true} */ - showHeadings?: boolean; + showHeadings?: Boolean; /** Specifies the start cell for the datasource range in Spreadsheet. * @Default {A1} */ - startCell?: string; + startCell?: String; } enum AutoFillOptions{ @@ -36210,6 +37504,7 @@ class PdfViewer extends ej.Widget { static fn: PdfViewer; constructor(element: JQuery, options?: PdfViewer.Model); constructor(element: Element, options?: PdfViewer.Model); + static Locale: any; model:PdfViewer.Model; defaults:PdfViewer.Model; @@ -36294,7 +37589,7 @@ export interface Model { /** Specifies the locale information of the PDF viewer. */ - locale?: string; + locale?: String; /** Specifies the toolbar settings. */ @@ -36306,19 +37601,19 @@ export interface Model { /** Sets the PDF Web API service URL */ - serviceUrl?: string; + serviceUrl?: String; /** Gets the total number of pages in PDF document. */ - pageCount?: number; + pageCount?: Number; /** Gets the number of the page being displayed in the PDF Viewer. */ - currentPageNumber?: number; + currentPageNumber?: Number; /** Gets the current zoom percentage of the PDF document in viewer. */ - zoomPercentage?: number; + zoomPercentage?: Number; /** Specifies the location of the supporting PDF service */ @@ -36330,7 +37625,7 @@ export interface Model { /** Enables or disables the responsive support for PDF Viewer control during the window resizing time. */ - isResponsive?: boolean; + isResponsive?: Boolean; /** Gets the name of the PDF document which loaded in the ejPdfViewer control for downloading. */ @@ -36483,7 +37778,7 @@ export interface ToolbarSettings { /** Shows or hides the tooltip of the toolbar items. */ - showToolTip?: boolean; + showToolTip?: Boolean; } enum ToolbarItems{ @@ -36529,6 +37824,490 @@ enum LinkTarget{ } +class SpellCheck extends ej.Widget { + static fn: SpellCheck; + constructor(element: JQuery, options?: SpellCheck.Model); + constructor(element: Element, options?: SpellCheck.Model); + static Locale: any; + model:SpellCheck.Model; + defaults:SpellCheck.Model; + + /** Open the dialog to correct the spelling of the target content. + * @returns {void} + */ + showInDialog(): void; + + /** Highlighting the error word in the target area itself and correct the spelling using the context menu. + * @returns {void} + */ + validate(): void; + + /** To get the error word highlighted string by passing the given input sentence. + * @param {string} Content to be spell check + * @param {string} Class name that contains style value to highlight the error word + * @returns {void} + */ + spellCheck(targetSentence: string, misspellWordCss: string): void; + + /** To ignore all the error word occurrences from the given input sentence. + * @param {string} Error word to ignore from the target content + * @param {string} Content to perform the ignore all operation + * @returns {void} + */ + ignoreAll(word: string, targetSentence: string): void; + + /** To ignore the error word once from the given input sentence. + * @param {string} Error word to ignore from the target content + * @param {string} Content to perform the ignore operation + * @param {number} Index of the error word present in the target content + * @returns {void} + */ + ignore(word: string, targetSentence: string, index: number): void; + + /** To change the error word once from the given input sentence. + * @param {string} Error word to change from the target content + * @param {string} Content to perform the change operation + * @param {string} Word to replace with the error word + * @param {number} Index of the error word present in the target content + * @returns {void} + */ + change(word: string, targetSentence: string, changeWord: string, index: number): void; + + /** To change all the error word occurrences from the given input sentence. + * @param {string} Error word to change from the target content + * @param {string} Content to perform the change all operation + * @param {string} Word to replace with the error word + * @returns {void} + */ + changeAll(word: string, targetSentence: string, changeWord: string): void; + + /** To add the words into the custom dictionary. + * @param {string} Word to add into the dictionary file + * @returns {void} + */ + addToDictionary(customWord: string): void; +} +export module SpellCheck{ + +export interface Model { + + /** It includes the service method path to find the error words and its suggestions also adding the custom word into the custom dictionary. + */ + dictionarySettings?: DictionarySettings; + + /** To display the error word in a customized style. + * @Default {e-errorword} + */ + misspellWordCss?: string; + + /** Sets the specific culture to the SpellCheck. + * @Default {en-US} + */ + locale?: string; + + /** To set the maximum suggestion display count. + * @Default {6} + */ + maxSuggestionCount?: number; + + /** To ignore the words from the error word consideration. + * @Default {[]} + */ + ignoreWords?: Array; + + /** Holds all options related to the context menu settings of SpellCheck. + */ + contextMenuSettings?: ContextMenuSettings; + + /** It helps to ignore the uppercase, mixed case words, alpha numeric words, file path and email addresses based on the property values. + */ + ignoreSettings?: IgnoreSettings; + + /** Triggers on the success of AJAX call request. */ + actionSuccess? (e: ActionSuccessEventArgs): void; + + /** Triggers on the AJAX call request beginning. */ + actionBegin? (e: ActionBeginEventArgs): void; + + /** Triggers when the AJAX call request failure. */ + actionFailure? (e: ActionFailureEventArgs): void; + + /** Triggers when the dialog mode spell check starting. */ + start? (e: StartEventArgs): void; + + /** Triggers when the spell check operations completed through dialog mode. */ + complete? (e: CompleteEventArgs): void; + + /** Triggers before context menu opening. */ + contextOpen? (e: ContextOpenEventArgs): void; + + /** Triggers when the context menu item clicked. */ + contextClick? (e: ContextClickEventArgs): void; + + /** Triggers before the spell check dialog opens. */ + dialogBeforeOpen? (e: DialogBeforeOpenEventArgs): void; + + /** Triggers after the spell check dialog opens. */ + dialogOpen? (e: DialogOpenEventArgs): void; + + /** Triggers when the spell check dialog closed. */ + dialogClose? (e: DialogCloseEventArgs): void; + + /** Triggers when the spell check control performing the spell check operations such as ignore, ignoreAll, change, changeAll and addToDictionary. */ + validating? (e: ValidatingEventArgs): void; +} + +export interface ActionSuccessEventArgs { + + /** Returns the error word highlighted string. + */ + resultHTML?: string; + + /** Returns the error word details of the given input. + */ + errorWordDetails?: any; + + /** Returns the request type value. + */ + requestType?: string; + + /** Returns the cancel option value. + */ + cancel?: boolean; + + /** Returns the SpellCheck model. + */ + model?: ej.SpellCheck.Model; + + /** Returns the name of the event. + */ + type?: string; +} + +export interface ActionBeginEventArgs { + + /** Returns the input string. + */ + targetSentence?: string; + + /** Returns the misspellWordCss class name. + */ + misspellWordCss?: string; + + /** Returns the request type value. + */ + requestType?: string; + + /** Returns the cancel option value. + */ + cancel?: boolean; + + /** Returns the SpellCheck model. + */ + model?: ej.SpellCheck.Model; + + /** Returns the name of the event. + */ + type?: string; +} + +export interface ActionFailureEventArgs { + + /** Returns AJAX request failure error message. + */ + errorMessage?: string; + + /** Returns the request type value. + */ + requestType?: string; + + /** Returns the cancel option value. + */ + cancel?: boolean; + + /** Returns the SpellCheck model. + */ + model?: ej.SpellCheck.Model; + + /** Returns the name of the event. + */ + type?: string; +} + +export interface StartEventArgs { + + /** Returns the input string. + */ + targetSentence?: string; + + /** Returns the error words details. + */ + errorWords?: any; + + /** Returns the request type value. + */ + requestType?: string; + + /** Returns the cancel option value. + */ + cancel?: boolean; + + /** Returns the SpellCheck model. + */ + model?: ej.SpellCheck.Model; + + /** Returns the name of the event. + */ + type?: string; +} + +export interface CompleteEventArgs { + + /** Returns the error word highlighted string. + */ + resultHTML?: string; + + /** Returns the request type value. + */ + requestType?: string; + + /** Returns the cancel option value. + */ + cancel?: boolean; + + /** Returns the SpellCheck model. + */ + model?: ej.SpellCheck.Model; + + /** Returns the name of the event. + */ + type?: string; +} + +export interface ContextOpenEventArgs { + + /** Returns the selected error word. + */ + selectedErrorWord?: string; + + /** Returns the request type value. + */ + requestType?: string; + + /** Returns the cancel option value. + */ + cancel?: boolean; + + /** Returns the SpellCheck model. + */ + model?: ej.SpellCheck.Model; + + /** Returns the name of the event. + */ + type?: string; +} + +export interface ContextClickEventArgs { + + /** Returns the selected error word. + */ + selectedValue?: string; + + /** Returns the selected option in the context menu. + */ + selectedOption?: string; + + /** Returns the input string. + */ + targetContent?: string; + + /** Returns the request type value. + */ + requestType?: string; + + /** Returns the cancel option value. + */ + cancel?: boolean; + + /** Returns the SpellCheck model. + */ + model?: ej.SpellCheck.Model; + + /** Returns the name of the event. + */ + type?: string; +} + +export interface DialogBeforeOpenEventArgs { + + /** Returns the spell check window details. + */ + spellCheckDialog?: any; + + /** Returns the request type value. + */ + requestType?: string; + + /** Returns the cancel option value. + */ + cancel?: boolean; + + /** Returns the SpellCheck model. + */ + model?: ej.SpellCheck.Model; + + /** Returns the name of the event. + */ + type?: string; +} + +export interface DialogOpenEventArgs { + + /** Returns the target input. + */ + targetText?: string; + + /** Returns the request type value. + */ + requestType?: string; + + /** Returns the cancel option value. + */ + cancel?: boolean; + + /** Returns the SpellCheck model. + */ + model?: ej.SpellCheck.Model; + + /** Returns the name of the event. + */ + type?: string; +} + +export interface DialogCloseEventArgs { + + /** Returns the error corrected string. + */ + updatedText?: string; + + /** Returns the request type value. + */ + requestType?: string; + + /** Returns the cancel option value. + */ + cancel?: boolean; + + /** Returns the SpellCheck model. + */ + model?: ej.SpellCheck.Model; + + /** Returns the name of the event. + */ + type?: string; +} + +export interface ValidatingEventArgs { + + /** Returns the cancel option value. + */ + cancel?: boolean; + + /** Returns the error word to ignore. + */ + ignoreWord?: string; + + /** Returns the target content. + */ + targetContent?: string; + + /** Returns the index of an error word. + */ + index?: number; + + /** Returns the SpellCheck model. + */ + model?: ej.SpellCheck.Model; + + /** Returns the validating request type. + */ + requestType?: string; + + /** Returns the name of the event. + */ + type?: string; + + /** Returns the error word to change. + */ + changeableWord?: string; + + /** Returns the change word to replace the error word. + */ + changeWord?: string; + + /** Returns the custom word to add into dictionary file. + */ + customWord?: string; +} + +export interface DictionarySettings { + + /** The dictionaryUrl option accepts string, which is the method path to find the error words and get the suggestions to correct the errors. + */ + dictionaryUrl?: string; + + /** The customDictionaryUrl option accepts string, which is the method path to add the error word into the custom dictionary. + */ + customDictionaryUrl?: string; +} + +export interface ContextMenuSettings { + + /** When set to true, enables the context menu options available for the SpellCheck. + * @Default {true} + */ + enable?: boolean; + + /** Contains all the default context menu options that are applicable for SpellCheck. It also supports adding custom menu items. All the SpellCheck related context menu items are grouped under this menu collection. + * @Default {{% highlight javascript %}[{ id: IgnoreAll, text: Ignore All },{ id: AddToDictionary, text: Add To Dictionary }]{% endhighlight %}} + */ + menuItems?: Array; +} + +export interface IgnoreSettings { + + /** When set to true, ignoring the alphanumeric words from the error word consideration. + * @Default {true} + */ + ignoreAlphaNumericWords?: string; + + /** When set to true, ignoring the Email address from the error word consideration. + * @Default {true} + */ + ignoreEmailAddress?: boolean; + + /** When set to true, ignoring the MixedCase words from the error word consideration. + * @Default {true} + */ + ignoreMixedCaseWords?: boolean; + + /** When set to true, ignoring the UpperCase words from the error word consideration. + * @Default {true} + */ + ignoreUpperCase?: boolean; + + /** When set to true, ignoring the Url from the error word consideration. + * @Default {true} + */ + ignoreUrl?: boolean; + + /** When set to true, ignoring the file address path from the error word consideration. + * @Default {true} + */ + ignoreFileNames?: boolean; +} +} + } declare module ej.datavisualization { @@ -36536,6 +38315,7 @@ class SymbolPalette extends ej.Widget { static fn: SymbolPalette; constructor(element: JQuery, options?: SymbolPalette.Model); constructor(element: Element, options?: SymbolPalette.Model); + static Locale: any; model:SymbolPalette.Model; defaults:SymbolPalette.Model; } @@ -36546,12 +38326,12 @@ export interface Model { /** Defines whether the symbols can be dragged from palette or not * @Default {true} */ - allowDrag?: boolean; + allowDrag?: Boolean; /** Customizes the style of the symbol palette * @Default {e-symbolpalette} */ - cssClass?: string; + cssClass?: String; /** Defines the default properties of nodes and connectors */ @@ -36560,27 +38340,27 @@ export interface Model { /** Sets the Id of the diagram, over which the symbols will be dropped * @Default {null} */ - diagramId?: string; + diagramId?: String; /** Sets the height of the palette headers * @Default {30} */ - headerHeight?: number; + headerHeight?: Number; /** Defines the height of the symbol palette * @Default {400} */ - height?: number; + height?: Number; /** Defines the height of the palette items * @Default {50} */ - paletteItemHeight?: number; + paletteItemHeight?: Number; /** Defines the width of the palette items * @Default {50} */ - paletteItemWidth?: number; + paletteItemWidth?: Number; /** An array of JSON objects, where each object represents a node/connector * @Default {[]} @@ -36590,7 +38370,7 @@ export interface Model { /** Defines the preview height of the symbols * @Default {100} */ - previewHeight?: number; + previewHeight?: Number; /** Defines the offset value to be left between the mouse cursor and symbol previews * @Default {(110, 110)} @@ -36600,17 +38380,17 @@ export interface Model { /** Defines the width of the symbol previews * @Default {100} */ - previewWidth?: number; + previewWidth?: Number; /** Enable or disable the palette item text * @Default {true} */ - showPaletteItemText?: boolean; + showPaletteItemText?: Boolean; /** The width of the palette * @Default {250} */ - width?: number; + width?: Number; /** Triggers when a palette item is selected or unselected */ selectionChange? (e: SelectionChangeEventArgs): void; @@ -36620,7 +38400,7 @@ export interface SelectionChangeEventArgs { /** returns whether an element is selected or unselected */ - changeType?: string; + changeType?: String; /** returns the node or connector that is selected or unselected */ @@ -36663,6 +38443,7 @@ class LinearGauge extends ej.Widget { static fn: LinearGauge; constructor(element: JQuery, options?: LinearGauge.Model); constructor(element: Element, options?: LinearGauge.Model); + static Locale: any; model:LinearGauge.Model; defaults:LinearGauge.Model; @@ -37168,7 +38949,7 @@ export interface Model { /** Specifies the scales * @Default {null} */ - scales?: Scales; + scales?: Array; /** Specifies the theme for Linear gauge. See LinearGauge.Themes * @Default {flatlight} @@ -38402,7 +40183,7 @@ export interface ScalesTick { width?: number; } -export interface Scales { +export interface Scale { /** Specifies the backgroundColor of the Scale. * @Default {null} @@ -38699,6 +40480,7 @@ class CircularGauge extends ej.Widget { static fn: CircularGauge; constructor(element: JQuery, options?: CircularGauge.Model); constructor(element: Element, options?: CircularGauge.Model); + static Locale: any; model:CircularGauge.Model; defaults:CircularGauge.Model; @@ -39204,7 +40986,7 @@ export interface Model { /** Specify the pointers, ticks, labels, indicators, ranges of circular gauge * @Default {null} */ - scales?: Scales; + scales?: Array; /** Specify the theme of circular gauge. * @Default {flatlight} @@ -40389,7 +42171,7 @@ export interface ScalesTick { width?: number; } -export interface Scales { +export interface Scale { /** Specify backgroundColor for the scale of circular gauge * @Default {null} @@ -40710,6 +42492,7 @@ class DigitalGauge extends ej.Widget { static fn: DigitalGauge; constructor(element: JQuery, options?: DigitalGauge.Model); constructor(element: Element, options?: DigitalGauge.Model); + static Locale: any; model:DigitalGauge.Model; defaults:DigitalGauge.Model; @@ -40778,7 +42561,7 @@ export interface Model { /** Specifies the items for the DigitalGauge. * @Default {null} */ - items?: Items; + items?: Array; /** Specifies the matrixSegmentData for the DigitalGauge. */ @@ -40840,7 +42623,7 @@ export interface InitEventArgs { /** returns the name of the event */ - type?: string; + type?: String; } export interface ItemRenderingEventArgs { @@ -40867,7 +42650,7 @@ export interface ItemRenderingEventArgs { /** returns the name of the event */ - type?: string; + type?: String; } export interface LoadEventArgs { @@ -40894,7 +42677,7 @@ export interface LoadEventArgs { /** returns the name of the event */ - type?: string; + type?: String; } export interface RenderCompleteEventArgs { @@ -40921,7 +42704,7 @@ export interface RenderCompleteEventArgs { /** returns the name of the event */ - type?: string; + type?: String; } export interface Frame { @@ -41029,7 +42812,7 @@ export interface ItemsSegmentSettings { width?: number; } -export interface Items { +export interface Item { /** Specifies the Character settings for the DigitalGauge. * @Default {null} @@ -41129,6 +42912,7 @@ class Chart extends ej.Widget { static fn: Chart; constructor(element: JQuery, options?: Chart.Model); constructor(element: Element, options?: Chart.Model); + static Locale: any; model:Chart.Model; defaults:Chart.Model; @@ -41429,11 +43213,11 @@ export interface AxesLabelRenderingEventArgs { /** Formatted text of the respective label. You can also add custom text to the label. */ - LabelText?: string; + LabelText?: String; /** Actual value of the label. */ - LabelValue?: string; + LabelValue?: String; /** Set this option to true to cancel the event. */ @@ -42735,6 +44519,11 @@ export interface CommonSeriesOptionsMarkerDataLabelFont { */ opacity?: number; + /** Font color of the data label text. + * @Default {null} + */ + color?: string; + /** Font size of the data label. * @Default {12px} */ @@ -42771,6 +44560,16 @@ export interface CommonSeriesOptionsMarkerDataLabel { */ angle?: number; + /** Maximum label width of the data label. + * @Default {null} + */ + maximumLabelWidth?: number; + + /** Enable the wrap option to the data label. + * @Default {false} + */ + enableWrap?: boolean; + /** Options for customizing the border of the data label. */ border?: CommonSeriesOptionsMarkerDataLabelBorder; @@ -42879,6 +44678,29 @@ export interface CommonSeriesOptionsMarker { visible?: boolean; } +export interface CommonSeriesOptionsCornerRadius { + + /** Specifies the radius for the top left corner. + * @Default {0} + */ + topLeft?: number; + + /** Specifies the radius for the top right corner. + * @Default {0} + */ + topRight?: number; + + /** Specifies the radius for the bottom left corner. + * @Default {0} + */ + bottomLeft?: number; + + /** Specifies the radius for the bottom right corner. + * @Default {0} + */ + bottomRight?: number; +} + export interface CommonSeriesOptionsTooltipBorder { /** Border color of the tooltip. @@ -43263,6 +45085,11 @@ export interface CommonSeriesOptions { */ border?: CommonSeriesOptionsBorder; + /** To render the column and bar type series in rectangle/cylinder shape. See ColumnFacet + * @Default {rectangle} + */ + columnFacet?: ej.datavisualization.Chart.ColumnFacet|string; + /** Relative width of the columns in column type series. Value ranges from 0 to 1. Width also depends upon columnSpacing property. * @Default {0.7} */ @@ -43424,6 +45251,10 @@ export interface CommonSeriesOptions { */ startAngle?: number; + /** Options for customizing the corner radius. cornerRadius property also takes the numeric input and applies it for all the four corners of the column. + */ + cornerRadius?: CommonSeriesOptionsCornerRadius; + /** Options for customizing the tooltip of chart. */ tooltip?: CommonSeriesOptionsTooltip; @@ -43473,7 +45304,7 @@ export interface CommonSeriesOptions { */ close?: string; - /** zOrder of the series. + /** Z-order of the series. * @Default {0} */ zOrder?: number; @@ -43513,6 +45344,51 @@ export interface CommonSeriesOptions { selectionSettings?: CommonSeriesOptionsSelectionSettings; } +export interface CrosshairTrackballTooltipSettingsBorder { + + /** Border width of the trackball tooltip. + * @Default {null} + */ + width?: number; + + /** Border color of the trackball tooltip. + * @Default {null} + */ + color?: string; +} + +export interface CrosshairTrackballTooltipSettings { + + /** Options for customizing the trackball tooltip border. + */ + border?: CrosshairTrackballTooltipSettingsBorder; + + /** Background color of the trackball tooltip. + * @Default {null} + */ + fill?: string; + + /** Rounded corner x value of the trackball tooltip. + * @Default {3} + */ + rx?: number; + + /** Rounded corner y value of the trackball tooltip. + * @Default {3} + */ + ry?: number; + + /** Opacity value of the trackball tooltip. + * @Default {1} + */ + opacity?: number; + + /** Specifies the mode of the trackball tooltip. + * @Default {float. See CrosshairMode} + */ + mode?: ej.datavisualization.Chart.CrosshairMode|string; +} + export interface CrosshairMarkerBorder { /** Border width of the marker. @@ -43570,6 +45446,10 @@ export interface CrosshairLine { export interface Crosshair { + /** Options for customizing the trackball tooltip. + */ + trackballTooltipSettings?: CrosshairTrackballTooltipSettings; + /** Options for customizing the marker in crosshair. */ marker?: CrosshairMarker; @@ -44243,6 +46123,107 @@ export interface PrimaryXAxisRange { interval?: number; } +export interface PrimaryXAxisMultiLevelLabelsFont { + + /** Font color of the multi level labels text. + * @Default {null} + */ + color?: string; + + /** Font family of the multi level labels text. + * @Default {Segoe UI} + */ + fontFamily?: string; + + /** Font style of the multi level labels text. + * @Default {Normal} + */ + fontStyle?: ej.datavisualization.Chart.FontStyle|string; + + /** Font weight of the multi level label text. + * @Default {regular} + */ + fontWeight?: string; + + /** Opacity of the multi level label text. + * @Default {1} + */ + opacity?: number; + + /** Font size of the multi level label text. + * @Default {12px} + */ + size?: string; +} + +export interface PrimaryXAxisMultiLevelLabelsBorder { + + /** Border color of the multi level labels. + * @Default {null} + */ + color?: string; + + /** Border width of the multi level labels. + * @Default {1} + */ + width?: number; + + /** Border type of the multi level labels. + * @Default {rectangle. See Type} + */ + type?: ej.datavisualization.Chart.MultiLevelLabelsBorderType|string; +} + +export interface PrimaryXAxisMultiLevelLabel { + + /** Visibility of the multi level labels. + * @Default {false} + */ + visible?: boolean; + + /** Text of the multi level labels. + */ + text?: string; + + /** Starting value of the multi level labels. + * @Default {null} + */ + start?: number; + + /** Ending value of the multi level labels. + * @Default {null} + */ + end?: number; + + /** Specifies the level of multi level labels. + * @Default {0} + */ + level?: number; + + /** Specifies the maximum width of the text in multi level labels. + * @Default {null} + */ + maximumTextWidth?: number; + + /** Specifies the alignment of the text in multi level labels. + * @Default {center. See TextAlignment} + */ + textAlignment?: ej.datavisualization.Chart.TextAlignment|string; + + /** Specifies the handling of text over flow in multi level labels. + * @Default {center. See TextOverflow} + */ + textOverflow?: ej.datavisualization.Chart.TextOverflow|string; + + /** Options for customizing the font of the text. + */ + font?: PrimaryXAxisMultiLevelLabelsFont; + + /** Options for customizing the border of the series. + */ + border?: PrimaryXAxisMultiLevelLabelsBorder; +} + export interface PrimaryXAxisStripLineFont { /** Font color of the strip line text. @@ -44333,6 +46314,19 @@ export interface PrimaryXAxisStripLine { zIndex?: ej.datavisualization.Chart.ZIndex|string; } +export interface PrimaryXAxisLabelBorder { + + /** Specifies the color of the label border. + * @Default {null} + */ + color?: string; + + /** Specifies the width of the label border. + * @Default {1} + */ + width?: number; +} + export interface PrimaryXAxisTitleFont { /** Font family of the title text. @@ -44385,6 +46379,21 @@ export interface PrimaryXAxisTitle { * @Default {true} */ visible?: boolean; + + /** offset value for axis title. + * @Default {0} + */ + offset?: number; + + /** Specifies the position of the axis title. + * @Default {outside. See Position} + */ + position?: ej.datavisualization.Chart.LabelPosition|string; + + /** Specifies the position of the axis title. + * @Default {center. See Alignment} + */ + alignment?: ej.datavisualization.Chart.TextAlignment|string; } export interface PrimaryXAxis { @@ -44431,6 +46440,11 @@ export interface PrimaryXAxis { */ desiredIntervals?: number; + /** Specifies the placement of labels. + * @Default {ej.datavisualization.Chart.LabelPlacement.BetweenTicks. See LabelPlacement} + */ + labelPlacement?: ej.datavisualization.Chart.LabelPlacement|string; + /** Specifies the position of labels at the edge of the axis. * @Default {ej.datavisualization.Chart.EdgeLabelPlacement.None. See EdgeLabelPlacement} */ @@ -44470,6 +46484,11 @@ export interface PrimaryXAxis { */ labelPosition?: ej.datavisualization.Chart.LabelPosition|string; + /** Specifies the position of the axis labels. + * @Default {center. See Alignment} + */ + alignment?: ej.datavisualization.Chart.LabelAlignment|string; + /** Angle in degrees to rotate the axis labels. * @Default {null} */ @@ -44540,6 +46559,11 @@ export interface PrimaryXAxis { */ roundingPlaces?: number; + /** Options for customizing the multi level labels. + * @Default {[ ]} + */ + multiLevelLabels?: Array; + /** Options for customizing the strip lines. * @Default {[ ]} */ @@ -44550,6 +46574,10 @@ export interface PrimaryXAxis { */ tickLinesPosition?: ej.datavisualization.Chart.TickLinesPosition|string; + /** Options for customizing the border of the labels. + */ + labelBorder?: PrimaryXAxisLabelBorder; + /** Options for customizing the axis title. */ title?: PrimaryXAxisTitle; @@ -44771,6 +46799,107 @@ export interface PrimaryYAxisRange { interval?: number; } +export interface PrimaryYAxisMultiLevelLabelsFont { + + /** Font color of the multi level labels text. + * @Default {null} + */ + color?: string; + + /** Font family of the multi level labels text. + * @Default {Segoe UI} + */ + fontFamily?: string; + + /** Font style of the multi level labels text. + * @Default {Normal} + */ + fontStyle?: ej.datavisualization.Chart.FontStyle|string; + + /** Font weight of the multi level label text. + * @Default {regular} + */ + fontWeight?: string; + + /** Opacity of the multi level label text. + * @Default {1} + */ + opacity?: number; + + /** Font size of the multi level label text. + * @Default {12px} + */ + size?: string; +} + +export interface PrimaryYAxisMultiLevelLabelsBorder { + + /** Border color of the multi level labels. + * @Default {null} + */ + color?: string; + + /** Border width of the multi level labels. + * @Default {1} + */ + width?: number; + + /** Border type of the multi level labels. + * @Default {rectangle. See Type} + */ + type?: ej.datavisualization.Chart.MultiLevelLabelsBorderType|string; +} + +export interface PrimaryYAxisMultiLevelLabel { + + /** Visibility of the multi level labels. + * @Default {false} + */ + visible?: boolean; + + /** Text of the multi level labels. + */ + text?: string; + + /** Starting value of the multi level labels. + * @Default {null} + */ + start?: number; + + /** Ending value of the multi level labels. + * @Default {null} + */ + end?: number; + + /** Specifies the level of multi level labels. + * @Default {0} + */ + level?: number; + + /** Specifies the maximum width of the text in multi level labels. + * @Default {null} + */ + maximumTextWidth?: number; + + /** Specifies the alignment of the text in multi level labels. + * @Default {center. See TextAlignment} + */ + textAlignment?: ej.datavisualization.Chart.TextAlignment|string; + + /** Specifies the handling of text over flow in multi level labels. + * @Default {center. See TextOverflow} + */ + textOverflow?: ej.datavisualization.Chart.TextOverflow|string; + + /** Options for customizing the font of the text. + */ + font?: PrimaryYAxisMultiLevelLabelsFont; + + /** Options for customizing the border of the series. + */ + border?: PrimaryYAxisMultiLevelLabelsBorder; +} + export interface PrimaryYAxisStripLineFont { /** Font color of the strip line text. @@ -44861,6 +46990,19 @@ export interface PrimaryYAxisStripLine { zIndex?: ej.datavisualization.Chart.ZIndex|string; } +export interface PrimaryYAxisLabelBorder { + + /** Specifies the color of the label border. + * @Default {null} + */ + color?: string; + + /** Specifies the width of the label border. + * @Default {1} + */ + width?: number; +} + export interface PrimaryYAxisTitleFont { /** Font family of the title text. @@ -44913,6 +47055,21 @@ export interface PrimaryYAxisTitle { * @Default {true} */ visible?: boolean; + + /** offset value for axis title. + * @Default {0} + */ + offset?: number; + + /** Specifies the position of the axis title. + * @Default {outside. See Position} + */ + position?: ej.datavisualization.Chart.LabelPosition|string; + + /** Specifies the position of the axis title. + * @Default {center. See Alignment} + */ + alignment?: ej.datavisualization.Chart.TextAlignment|string; } export interface PrimaryYAxis { @@ -44944,6 +47101,11 @@ export interface PrimaryYAxis { */ desiredIntervals?: number; + /** Specifies the placement of labels. + * @Default {ej.datavisualization.Chart.LabelPlacement.BetweenTicks. See LabelPlacement} + */ + labelPlacement?: ej.datavisualization.Chart.LabelPlacement|string; + /** Specifies the position of labels at the edge of the axis. * @Default {ej.datavisualization.Chart.EdgeLabelPlacement.None. See EdgeLabelPlacement} */ @@ -44983,6 +47145,11 @@ export interface PrimaryYAxis { */ labelPosition?: ej.datavisualization.Chart.LabelPosition|string; + /** Specifies the position of the axis labels. + * @Default {center. See Alignment} + */ + alignment?: ej.datavisualization.Chart.LabelAlignment|string; + /** Logarithmic base value. This is applicable only for logarithmic axis. * @Default {10} */ @@ -45058,6 +47225,11 @@ export interface PrimaryYAxis { */ rowSpan?: number; + /** Options for customizing the multi level labels. + * @Default {[ ]} + */ + multiLevelLabels?: Array; + /** Options for customizing the strip lines. * @Default {[ ]} */ @@ -45068,6 +47240,10 @@ export interface PrimaryYAxis { */ tickLinesPosition?: ej.datavisualization.Chart.TickLinesPosition|string; + /** Options for customizing the border of the labels. + */ + labelBorder?: PrimaryYAxisLabelBorder; + /** Options for customizing the axis title. */ title?: PrimaryYAxisTitle; @@ -45223,6 +47399,11 @@ export interface SeriesMarkerDataLabelFont { */ fontFamily?: string; + /** Font color of the data label text. + * @Default {null} + */ + color?: string; + /** Font style of the data label. * @Default {normal. See FontStyle} */ @@ -45274,6 +47455,16 @@ export interface SeriesMarkerDataLabel { */ angle?: number; + /** Maximum label width of the data label. + * @Default {null} + */ + maximumLabelWidth?: number; + + /** Enable the wrap option to the data label. + * @Default {false} + */ + enableWrap?: boolean; + /** Options for customizing the border of the data label. */ border?: SeriesMarkerDataLabelBorder; @@ -45838,6 +48029,29 @@ export interface SeriesPoint { y?: number; } +export interface SeriesCornerRadius { + + /** Specifies the radius for the top left corner. + * @Default {0} + */ + topLeft?: number; + + /** Specifies the radius for the top right corner. + * @Default {0} + */ + topRight?: number; + + /** Specifies the radius for the bottom left corner. + * @Default {0} + */ + bottomLeft?: number; + + /** Specifies the radius for the bottom right corner. + * @Default {0} + */ + bottomRight?: number; +} + export interface SeriesTooltipBorder { /** Border Color of the tooltip. @@ -46079,6 +48293,11 @@ export interface Series { */ bullFillColor?: string; + /** To render the column and bar type series in rectangle/cylinder shape. See ColumnFacet + * @Default {rectangle} + */ + columnFacet?: ej.datavisualization.Chart.ColumnFacet|string; + /** Relative width of the columns in column type series. Value ranges from 0 to 1. Width also depends upon columnSpacing property. * @Default {0.7} */ @@ -46111,7 +48330,7 @@ export interface Series { /** Type of series to be drawn in radar or polar series. * @Default {line. See DrawType} */ - drawType?: boolean; + drawType?: ej.datavisualization.Chart.DrawType|string; /** Enable/disable the animation of series. * @Default {false} @@ -46261,6 +48480,10 @@ export interface Series { */ startAngle?: number; + /** Options for customizing the corner radius. cornerRadius property also takes the numeric input and applies it for all the four corners of the column. + */ + cornerRadius?: SeriesCornerRadius; + /** Options for customizing the tooltip of chart. */ tooltip?: SeriesTooltip; @@ -46325,7 +48548,7 @@ export interface Series { */ pointColorMappingName?: string; - /** zOrder of the series. + /** Z-order of the series. * @Default {0} */ zOrder?: number; @@ -46646,6 +48869,16 @@ Pixel, } module Chart { +enum ColumnFacet +{ +//string +Rectangle, +//string +Cylinder, +} +} +module Chart +{ enum DrawType { //string @@ -46962,6 +49195,16 @@ Y, } module Chart { +enum CrosshairMode +{ +//string +Float, +//string +Grouping, +} +} +module Chart +{ enum CrosshairType { //string @@ -47012,6 +49255,16 @@ WrapAndTrim, } module Chart { +enum LabelPlacement +{ +//string +OnTicks, +//string +BetweenTicks, +} +} +module Chart +{ enum EdgeLabelPlacement { //string @@ -47066,6 +49319,18 @@ MultipleRows, } module Chart { +enum LabelAlignment +{ +//string +Near, +//string +Far, +//string +Center, +} +} +module Chart +{ enum RangePadding { //string @@ -47080,6 +49345,22 @@ Round, } module Chart { +enum MultiLevelLabelsBorderType +{ +//string +Rectangle, +//string +None, +//string +WithoutTopAndBottom, +//string +Brace, +//string +CurlyBrace, +} +} +module Chart +{ enum TextAlignment { //string @@ -47155,6 +49436,7 @@ class RangeNavigator extends ej.Widget { static fn: RangeNavigator; constructor(element: JQuery, options?: RangeNavigator.Model); constructor(element: Element, options?: RangeNavigator.Model); + static Locale: any; model:RangeNavigator.Model; defaults:RangeNavigator.Model; @@ -48269,6 +50551,7 @@ class BulletGraph extends ej.Widget { static fn: BulletGraph; constructor(element: JQuery, options?: BulletGraph.Model); constructor(element: Element, options?: BulletGraph.Model); + static Locale: any; model:BulletGraph.Model; defaults:BulletGraph.Model; @@ -49308,6 +51591,7 @@ class Barcode extends ej.Widget { static fn: Barcode; constructor(element: JQuery, options?: Barcode.Model); constructor(element: Element, options?: Barcode.Model); + static Locale: any; model:Barcode.Model; defaults:Barcode.Model; @@ -49462,6 +51746,7 @@ class Map extends ej.Widget { static fn: Map; constructor(element: JQuery, options?: Map.Model); constructor(element: Element, options?: Map.Model); + static Locale: any; model:Map.Model; defaults:Map.Model; @@ -49703,6 +51988,36 @@ export interface NavigationControl { orientation?: ej.datavisualization.Map.LabelOrientation|string; } +export interface LayersBubbleSettingsColorMappingsRangeColorMapping { + + /** Start range colorMappings in the bubble layer. + * @Default {null} + */ + from?: number; + + /** End range colorMappings in the bubble layer. + * @Default {null} + */ + to?: number; + + /** GradientColors in the bubble layer of map. + */ + gradientColors?: Array; + + /** Color of the bubble layer. + * @Default {null} + */ + color?: string; +} + +export interface LayersBubbleSettingsColorMappings { + + /** Specifies the range colorMappings in the bubble layer. + * @Default {null} + */ + rangeColorMapping?: Array; +} + export interface LayersBubbleSettings { /** Specifies the bubble Opacity value of bubbles for shape layer in map @@ -49718,7 +52033,7 @@ export interface LayersBubbleSettings { /** Specifies the colorMappings of the shape layer in map * @Default {null} */ - colorMappings?: any; + colorMappings?: LayersBubbleSettingsColorMappings; /** Specifies the bubble color valuePath of the shape layer in map * @Default {null} @@ -49761,7 +52076,7 @@ export interface LayersLabelSettings { /** enable or disable the enableSmartLabel property * @Default {false} */ - enableSmartLabel?: boolean; + enableSmartLabel?: Boolean; /** set the labelLength property * @Default {'2'} @@ -50245,6 +52560,7 @@ class TreeMap extends ej.Widget { static fn: TreeMap; constructor(element: JQuery, options?: TreeMap.Model); constructor(element: Element, options?: TreeMap.Model); + static Locale: any; model:TreeMap.Model; defaults:TreeMap.Model; @@ -50516,7 +52832,7 @@ export interface LegendSettings { */ template?: string; - /** Specifies the mode for legendSettings whether defaul or interactive mode + /** Specifies the mode for legendSettings whether default or interactive mode * @Default {default} */ mode?: string; @@ -50776,6 +53092,7 @@ class Diagram extends ej.Widget { static fn: Diagram; constructor(element: JQuery, options?: Diagram.Model); constructor(element: Element, options?: Diagram.Model); + static Locale: any; model:Diagram.Model; defaults:Diagram.Model; @@ -50841,6 +53158,11 @@ class Diagram extends ej.Widget { */ clear(): void; + /** Clears the actions which is recorded to perform undo/redo operation in the diagram. + * @returns {void} + */ + clearHistory(): void; + /** Remove the current selection in diagram * @returns {void} */ @@ -50857,10 +53179,10 @@ class Diagram extends ej.Widget { cut(): void; /** Export the diagram as downloadable files or as data - * @param {Diagram.Options} options to export the desired region of diagram to the desired formats.NameTypeDescriptionfileNamestringname of the file to be downloaded.formatstringformat of the exported file/data. See [File Formats](/js/api/global#fileformats).modestringto set whether to export diagram as a file or as raw data. See [Export Modes](/js/api/global#exportmodes).regionstringto set the region of the diagram to be exported. See [Region](/js/api/global#region).boundsobjectto export any custom region of diagram.marginobjectto set margin to the exported data. - * @returns {string} + * @param {Diagram.Options} options to export the desired region of diagram to the desired formats.NameTypeDescriptionfileNamestringname of the file to be downloaded.formatstringformat of the exported file/data. See [File Formats](/api/js/global#fileformats).modestringto set whether to export diagram as a file or as raw data. See [Export Modes](/api/js/global#exportmodes).regionstringto set the region of the diagram to be exported. See [Region](/api/js/global#region).boundsobjectto export any custom region of diagram.marginobjectto set margin to the exported data. + * @returns {String} */ - exportDiagram(options?: Diagram.Options): string; + exportDiagram(options?: Diagram.Options): String; /** Read a node/connector object by its name * @param {string} name of the node/connector that is to be identified @@ -50869,8 +53191,8 @@ class Diagram extends ej.Widget { findNode(name: string): any; /** Fit the diagram content into diagram viewport - * @param {string} to set the mode of fit to command. See [Fit Mode](/js/api/global#fitmode) - * @param {string} to set whether the region to be fit will be based on diagram elements or page settings [Region](/js/api/global#region) + * @param {string} to set the mode of fit to command. See [Fit Mode](/api/js/global#fitmode) + * @param {string} to set whether the region to be fit will be based on diagram elements or page settings [Region](/api/js/global#region) * @param {any} to set the required margin * @returns {void} */ @@ -51093,15 +53415,15 @@ export interface Options { */ fileName?: string; - /** format of the exported file/data. See [File Formats](/js/api/global#fileformats). + /** format of the exported file/data. See [File Formats](/api/js/global#fileformats). */ format?: string; - /** to set whether to export diagram as a file or as raw data. See [Export Modes](/js/api/global#exportmodes). + /** to set whether to export diagram as a file or as raw data. See [Export Modes](/api/js/global#exportmodes). */ mode?: string; - /** to set the region of the diagram to be exported. See [Region](/js/api/global#region). + /** to set the region of the diagram to be exported. See [Region](/api/js/global#region). */ region?: string; @@ -51119,11 +53441,11 @@ export interface Model { /** Defines the background color of diagram elements * @Default {transparent} */ - backgroundColor?: string; + backgroundColor?: String; /** Defines the path of the background image of diagram elements */ - backgroundImage?: string; + backgroundImage?: String; /** Sets the direction of line bridges. * @Default {ej.datavisualization.Diagram.BridgeDirection.Top} @@ -51170,17 +53492,17 @@ export interface Model { /** Enables or disables auto scroll in diagram * @Default {true} */ - enableAutoScroll?: boolean; + enableAutoScroll?: Boolean; /** Enables or disables diagram context menu * @Default {true} */ - enableContextMenu?: boolean; + enableContextMenu?: Boolean; /** Specifies the height of the diagram * @Default {null} */ - height?: string; + height?: String; /** Customizes the undo redo functionality */ @@ -51193,7 +53515,7 @@ export interface Model { /** Defines the current culture of diagram * @Default {en-US} */ - locale?: string; + locale?: String; /** Array of JSON objects where each object represents a node * @Default {[]} @@ -51220,7 +53542,7 @@ export interface Model { /** Enables or disables tooltip of diagram * @Default {true} */ - showTooltip?: boolean; + showTooltip?: Boolean; /** Defines the gridlines and defines how and when the objects have to be snapped */ @@ -51239,12 +53561,12 @@ export interface Model { /** Specifies the width of the diagram * @Default {null} */ - width?: string; + width?: String; /** Sets the factor by which we can zoom in or zoom out * @Default {0.2} */ - zoomFactor?: number; + zoomFactor?: Number; /** Triggers When auto scroll is changed */ autoScrollChange? (e: AutoScrollChangeEventArgs): void; @@ -51288,6 +53610,9 @@ export interface Model { /** Triggers when a symbol is dragged and dropped from symbol palette to drawing area */ drop? (e: DropEventArgs): void; + /** Triggers when editor got focus at the time of node's label or text node editing. */ + editorFocusChange? (e: EditorFocusChangeEventArgs): void; + /** Triggers when a child is added to or removed from a group */ groupChange? (e: GroupChangeEventArgs): void; @@ -51339,6 +53664,10 @@ export interface AutoScrollChangeEventArgs { /** Returns the delay between subsequent auto scrolls */ delay?: string; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface ClickEventArgs { @@ -51366,6 +53695,10 @@ export interface ClickEventArgs { /** parameter returns the actual click event arguments that explains which button is clicked */ event?: any; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface ConnectionChangeEventArgs { @@ -51385,6 +53718,10 @@ export interface ConnectionChangeEventArgs { /** parameter defines whether to cancel the change or not */ cancel?: boolean; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface ConnectorCollectionChangeEventArgs { @@ -51400,6 +53737,14 @@ export interface ConnectorCollectionChangeEventArgs { /** parameter defines whether to cancel the collection change or not */ cancel?: boolean; + + /** triggers before and after adding the connector in the diagram which can be differentiated through `state` argument. We can cancel the event only before adding the connector. + */ + state?: string; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface ConnectorSourceChangeEventArgs { @@ -51427,6 +53772,10 @@ export interface ConnectorSourceChangeEventArgs { /** parameter defines whether to cancel the change or not */ cancel?: boolean; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface ConnectorTargetChangeEventArgs { @@ -51454,6 +53803,10 @@ export interface ConnectorTargetChangeEventArgs { /** parameter defines whether to cancel the change or not */ cancel?: boolean; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface ContextMenuBeforeOpenEventArgs { @@ -51469,6 +53822,10 @@ export interface ContextMenuBeforeOpenEventArgs { /** parameter returns the object that was clicked */ target?: any; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface ContextMenuClickEventArgs { @@ -51496,6 +53853,10 @@ export interface ContextMenuClickEventArgs { /** parameter defines whether to execute the click event or not */ canExecute?: boolean; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface DoubleClickEventArgs { @@ -51507,6 +53868,10 @@ export interface DoubleClickEventArgs { /** parameter returns the selected object */ element?: any; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface DragEventArgs { @@ -51530,6 +53895,10 @@ export interface DragEventArgs { /** parameter returns whether or not to cancel the drag event */ cancel?: boolean; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface DragEnterEventArgs { @@ -51541,6 +53910,10 @@ export interface DragEnterEventArgs { /** parameter returns whether to add or remove the symbol from diagram */ cancel?: boolean; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface DragLeaveEventArgs { @@ -51548,6 +53921,10 @@ export interface DragLeaveEventArgs { /** parameter returns the node or connector that is dragged outside of the diagram */ element?: any; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface DragOverEventArgs { @@ -51575,6 +53952,10 @@ export interface DragOverEventArgs { /** parameter returns whether or not to cancel the dragOver event */ cancel?: boolean; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface DropEventArgs { @@ -51597,7 +53978,14 @@ export interface DropEventArgs { /** parameter returns the enum which defines the type of the source */ - sourceType?: string; + sourceType?: String; + + /** parameter returns the id of the diagram + */ + diagramId?: string; +} + +export interface EditorFocusChangeEventArgs { } export interface GroupChangeEventArgs { @@ -51617,6 +54005,10 @@ export interface GroupChangeEventArgs { /** parameter returns the cause of group change("group", unGroup") */ cause?: string; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface HistoryChangeEventArgs { @@ -51628,6 +54020,10 @@ export interface HistoryChangeEventArgs { /** A collection of objects that are changed in the last undo/redo */ Source?: Array; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface ItemClickEventArgs { @@ -51647,6 +54043,10 @@ export interface ItemClickEventArgs { /** parameter returns the actual click event arguments that explains which button is clicked */ event?: any; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface MouseEnterEventArgs { @@ -51662,6 +54062,10 @@ export interface MouseEnterEventArgs { /** parameter returns the target object over which the selected object is dragged */ target?: any; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface MouseLeaveEventArgs { @@ -51677,6 +54081,10 @@ export interface MouseLeaveEventArgs { /** parameter returns the target object over which the selected object is dragged */ target?: any; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface MouseOverEventArgs { @@ -51692,6 +54100,10 @@ export interface MouseOverEventArgs { /** parameter returns the object over which the element is being dragged. */ target?: any; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface NodeCollectionChangeEventArgs { @@ -51707,6 +54119,14 @@ export interface NodeCollectionChangeEventArgs { /** parameter defines whether to cancel the collection change or not */ cancel?: boolean; + + /** triggers before and after adding the node in the diagram which can be differentiated through `state` argument. We can cancel the event only before adding the node + */ + state?: string; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface PropertyChangeEventArgs { @@ -51717,7 +54137,7 @@ export interface PropertyChangeEventArgs { /** parameter returns the action is nudge or not */ - cause?: string; + cause?: String; /** parameter returns the new value of the node property that is being changed */ @@ -51730,6 +54150,10 @@ export interface PropertyChangeEventArgs { /** parameter returns the name of the property that is changed */ propertyName?: string; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface RotationChangeEventArgs { @@ -51749,6 +54173,10 @@ export interface RotationChangeEventArgs { /** parameter to specify whether or not to cancel the event */ cancel?: boolean; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface ScrollChangeEventArgs { @@ -51760,6 +54188,10 @@ export interface ScrollChangeEventArgs { /** parameter returns the previous zoom value, horizontal and vertical scroll offsets. */ oldValues?: any; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface SegmentChangeEventArgs { @@ -51779,6 +54211,10 @@ export interface SegmentChangeEventArgs { /** parameter to specify whether or not to cancel the event */ cancel?: boolean; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface SelectionChangeEventArgs { @@ -51806,6 +54242,14 @@ export interface SelectionChangeEventArgs { /** parameter to specify whether or not to cancel the selection change event */ cancel?: boolean; + + /** triggers before and after adding the selection to the object in the diagram which can be differentiated through `state` argument. We can cancel the event only before the selection of the object. + */ + state?: string; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface SizeChangeEventArgs { @@ -51833,6 +54277,10 @@ export interface SizeChangeEventArgs { /** parameter returns the difference between new and old value */ offset?: any; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface TextChangeEventArgs { @@ -51848,6 +54296,10 @@ export interface TextChangeEventArgs { /** parameter returns the keyCode of the key entered */ keyCode?: string; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface CreateEventArgs { @@ -51859,6 +54311,10 @@ export interface CreateEventArgs { /** Returns the name of the event */ type?: string; + + /** parameter returns the id of the diagram + */ + diagramId?: string; } export interface BackgroundImage { @@ -51867,16 +54323,6 @@ export interface BackgroundImage { * @Default {ej.datavisualization.Diagram.ImageAlignment.XMidYMid} */ alignment?: ej.datavisualization.Diagram.ImageAlignment |string; - - /** Defines how the background image should be scaled/stretched - * @Default {ej.datavisualization.Diagram.ScaleConstraints.Meet} - */ - scale?: ej.datavisualization.Diagram.ScaleConstraints |string; - - /** Sets the source path of the background image - * @Default {null} - */ - source?: string; } export interface CommandManagerCommandsGesture { @@ -51953,42 +54399,42 @@ export interface ConnectorsLabel { /** Enables/disables the bold style * @Default {false} */ - bold?: boolean; + bold?: Boolean; /** Sets the border color of the label * @Default {transparent} */ - borderColor?: string; + borderColor?: String; /** Sets the border width of the label * @Default {0} */ - borderWidth?: number; + borderWidth?: Number; /** Defines whether the label should be aligned within the connector boundaries * @Default {true} */ - boundaryConstraints?: boolean; + boundaryConstraints?: Boolean; /** Sets the fill color of the text area * @Default {transparent} */ - fillColor?: string; + fillColor?: String; /** Sets the font color of the text * @Default {black} */ - fontColor?: string; + fontColor?: String; /** Sets the font family of the text * @Default {Arial} */ - fontFamily?: string; + fontFamily?: String; /** Defines the font size of the text * @Default {12} */ - fontSize?: number; + fontSize?: Number; /** Sets the horizontal alignment of the label. * @Default {ej.datavisualization.Diagram.HorizontalAlignment.Center} @@ -51998,7 +54444,7 @@ export interface ConnectorsLabel { /** Enables/disables the italic style * @Default {false} */ - italic?: boolean; + italic?: Boolean; /** Gets whether the label is currently being edited or not. * @Default {ej.datavisualization.Diagram.LabelEditMode.Edit} @@ -52007,7 +54453,7 @@ export interface ConnectorsLabel { /** Sets the unique identifier of the label */ - name?: string; + name?: String; /** Sets the fraction/ratio(relative to connector) that defines the position of the label * @Default {ej.datavisualization.Diagram.Point(0.5, 0.5)} @@ -52022,12 +54468,12 @@ export interface ConnectorsLabel { /** Defines the transparency of labels * @Default {1} */ - opacity?: number; + opacity?: Number; /** Defines whether the label is editable or not * @Default {false} */ - readOnly?: boolean; + readOnly?: Boolean; /** Defines whether the label should be positioned whether relative to segments or connector boundaries * @Default {ej.datavisualization.Diagram.LabelRelativeMode.SegmentPath} @@ -52037,16 +54483,16 @@ export interface ConnectorsLabel { /** Defines the angle to which the label needs to be rotated * @Default {0} */ - rotateAngle?: number; + rotateAngle?: Number; /** Sets the position of the label with respect to the total segment length * @Default {0.5} */ - segmentOffset?: string; + segmentOffset?: String; /** Defines the label text */ - text?: string; + text?: String; /** Defines how to align the text inside the label. * @Default {ej.datavisualization.Diagram.TextAlign.Center} @@ -52066,12 +54512,12 @@ export interface ConnectorsLabel { /** Enables or disables the visibility of the label * @Default {true} */ - visible?: boolean; + visible?: Boolean; /** Sets the width of the label(the maximum value of label width and the connector width will be considered as label width) * @Default {50} */ - width?: number; + width?: Number; /** Defines how the label text needs to be wrapped. * @Default {ej.datavisualization.Diagram.TextWrapping.WrapWithOverflow} @@ -52083,12 +54529,12 @@ export interface ConnectorsSegment { /** Sets the direction of orthogonal segment */ - direction?: string; + direction?: String; /** Describes the length of orthogonal segment * @Default {undefined} */ - length?: number; + length?: Number; /** Describes the end point of bezier/straight segment * @Default {Diagram.Point()} @@ -52121,6 +54567,41 @@ export interface ConnectorsSegment { vector2?: any; } +export interface ConnectorsShapeMultiplicitySource { + + /** Defines the source label to connector. Applicable, if the connector is of type "UML" + * @Default {true} + */ + optional?: boolean; + + /** Defines the source label to connector. Applicable, if the connector is of type "UML" + * @Default {null} + */ + lowerBounds?: Number; + + /** Defines the source label to connector. Applicable, if the connector is of type "UML" + * @Default {null} + */ + upperBounds?: Number; +} + +export interface ConnectorsShapeMultiplicity { + + /** Sets the type of the multiplicity. Applicable, if the connector is of type "classifier" + * @Default {ej.datavisualization.Diagram.Multiplicity.OneToOne} + */ + type?: ej.datavisualization.Diagram.Multiplicity|string; + + /** Defines the source label to connector. Applicable, if the connector is of type "UML" + */ + source?: ConnectorsShapeMultiplicitySource; + + /** Defines the target label to connector. Applicable, if the connector is of type "UML" + * @Default {true} + */ + target?: ej.datavisualization.Diagram.ConnectorsShapeMultiplicitySource|string; +} + export interface ConnectorsShape { /** Sets the type of the connector @@ -52151,11 +54632,12 @@ export interface ConnectorsShape { /** Defines the role of the connector in a UML Class Diagram. Applicable, if the type of the connector is "classifier". * @Default {ej.datavisualization.Diagram.ClassifierShapes.Association} */ - relationship?: string; + relationship?: ej.datavisualization.Diagram.ClassifierShapes|string; - /** Defines the multiplicity of a relationship in UML class diagram + /** Defines the multiplicity option of the connector + * @Default {null} */ - multiplicity?: string; + multiplicity?: ConnectorsShapeMultiplicity; } export interface ConnectorsSourceDecorator { @@ -52163,26 +54645,26 @@ export interface ConnectorsSourceDecorator { /** Sets the border color of the source decorator * @Default {black} */ - borderColor?: string; + borderColor?: String; /** Sets the border width of the decorator * @Default {1} */ - borderWidth?: number; + borderWidth?: Number; /** Sets the fill color of the source decorator * @Default {black} */ - fillColor?: string; + fillColor?: String; /** Sets the height of the source decorator * @Default {8} */ - height?: number; + height?: Number; /** Defines the custom shape of the source decorator */ - pathData?: string; + pathData?: String; /** Defines the shape of the source decorator. * @Default {ej.datavisualization.Diagram.DecoratorShapes.Arrow} @@ -52192,7 +54674,7 @@ export interface ConnectorsSourceDecorator { /** Defines the width of the source decorator * @Default {8} */ - width?: number; + width?: Number; } export interface ConnectorsSourcePoint { @@ -52200,12 +54682,12 @@ export interface ConnectorsSourcePoint { /** Defines the x-coordinate of a position * @Default {0} */ - x?: number; + x?: Number; /** Defines the y-coordinate of a position * @Default {0} */ - y?: number; + y?: Number; } export interface ConnectorsTargetDecorator { @@ -52213,21 +54695,21 @@ export interface ConnectorsTargetDecorator { /** Sets the border color of the decorator * @Default {black} */ - borderColor?: string; + borderColor?: String; /** Sets the color with which the decorator will be filled * @Default {black} */ - fillColor?: string; + fillColor?: String; /** Defines the height of the target decorator * @Default {8} */ - height?: number; + height?: Number; /** Defines the custom shape of the target decorator */ - pathData?: string; + pathData?: String; /** Defines the shape of the target decorator. * @Default {ej.datavisualization.Diagram.DecoratorShapes.Arrow} @@ -52237,7 +54719,7 @@ export interface ConnectorsTargetDecorator { /** Defines the width of the target decorator * @Default {8} */ - width?: number; + width?: Number; } export interface Connector { @@ -52250,7 +54732,7 @@ export interface Connector { /** Defines the width of the line bridges * @Default {10} */ - bridgeSpace?: number; + bridgeSpace?: Number; /** Enables or disables the behaviors of connectors. * @Default {ej.datavisualization.Diagram.ConnectorConstraints.Default} @@ -52260,11 +54742,11 @@ export interface Connector { /** Defines the radius of the rounded corner * @Default {0} */ - cornerRadius?: number; + cornerRadius?: Number; /** Configures the styles of shapes */ - cssClass?: string; + cssClass?: String; /** Sets the horizontal alignment of the connector. Applicable, if the parent of the connector is a container. * @Default {ej.datavisualization.Diagram.HorizontalAlignment.Left} @@ -52279,50 +54761,50 @@ export interface Connector { /** Sets the stroke color of the connector * @Default {black} */ - lineColor?: string; + lineColor?: String; /** Sets the pattern of dashes and gaps used to stroke the path of the connector */ - lineDashArray?: string; + lineDashArray?: String; /** Defines the padding value to ease the interaction with connectors * @Default {10} */ - lineHitPadding?: number; + lineHitPadding?: Number; /** Sets the width of the line * @Default {1} */ - lineWidth?: number; + lineWidth?: Number; /** Defines the minimum space to be left between the bottom of parent bounds and the connector. Applicable, if the parent is a container. * @Default {0} */ - marginBottom?: number; + marginBottom?: Number; /** Defines the minimum space to be left between the left of parent bounds and the connector. Applicable, if the parent is a container. * @Default {0} */ - marginLeft?: number; + marginLeft?: Number; /** Defines the minimum space to be left between the right of parent bounds and the connector. Applicable, if the parent is a container. * @Default {0} */ - marginRight?: number; + marginRight?: Number; /** Defines the minimum space to be left between the top of parent bounds and the connector. Applicable, if the parent is a container. * @Default {0} */ - marginTop?: number; + marginTop?: Number; /** Sets a unique name for the connector */ - name?: string; + name?: String; /** Defines the transparency of the connector * @Default {1} */ - opacity?: number; + opacity?: Number; /** Defines the size and preview size of the node to add that to symbol palette. To explore palette item, refer Palette Item * @Default {null} @@ -52331,7 +54813,7 @@ export interface Connector { /** Sets the parent name of the connector. */ - parent?: string; + parent?: String; /** An array of JSON objects where each object represents a segment * @Default {[ { type:straight } ]} @@ -52350,12 +54832,12 @@ export interface Connector { /** Sets the source node of the connector */ - sourceNode?: string; + sourceNode?: String; /** Defines the space to be left between the source node and the source point of a connector * @Default {0} */ - sourcePadding?: number; + sourcePadding?: Number; /** Describes the start point of the connector * @Default {ej.datavisualization.Diagram.Point()} @@ -52364,7 +54846,7 @@ export interface Connector { /** Sets the source port of the connector */ - sourcePort?: string; + sourcePort?: String; /** Defines the target decorator of the connector * @Default {{ shape:arrow, width: 8, height:8, borderColor:black, fillColor:black }} @@ -52373,12 +54855,12 @@ export interface Connector { /** Sets the target node of the connector */ - targetNode?: string; + targetNode?: String; /** Defines the space to be left between the target node and the target point of the connector * @Default {0} */ - targetPadding?: number; + targetPadding?: Number; /** Describes the end point of the connector * @Default {ej.datavisualization.Diagram.Point()} @@ -52387,7 +54869,7 @@ export interface Connector { /** Sets the targetPort of the connector */ - targetPort?: string; + targetPort?: String; /** Defines the tooltip that should be shown when the mouse hovers over connector. For tooltip properties, refer Tooltip * @Default {null} @@ -52402,12 +54884,12 @@ export interface Connector { /** Enables or disables the visibility of connector * @Default {true} */ - visible?: boolean; + visible?: Boolean; /** Sets the z-index of the connector * @Default {0} */ - zOrder?: number; + zOrder?: Number; } export interface ContextMenu { @@ -52420,7 +54902,7 @@ export interface ContextMenu { /** To set whether to display the default context menu items or not * @Default {false} */ - showCustomMenuItemsOnly?: boolean; + showCustomMenuItemsOnly?: Boolean; } export interface DataSourceSettings { @@ -52432,26 +54914,26 @@ export interface DataSourceSettings { /** Sets the unique id of the data source items */ - id?: string; + id?: String; /** Defines the parent id of the data source item * @Default {''} */ - parent?: string; + parent?: String; /** Describes query to retrieve a set of data from the specified datasource * @Default {null} */ - query?: string; + query?: String; /** Sets the unique id of the root data source item */ - root?: string; + root?: String; /** Describes the name of the table on which the specified query has to be executed * @Default {null} */ - tableName?: string; + tableName?: String; } export interface DefaultSettings { @@ -52495,6 +54977,16 @@ export interface HistoryManager { */ redo?: Function; + /** The redoStack property is used to get the number of redo actions to be stored on the history manager. Its an read-only property and the collection should not be modified. + * @Default {[]} + */ + redoStack?: Array; + + /** The stackLimit property used to restrict the undo and redo actions to a certain limit. + * @Default {null} + */ + stackLimit?: Number; + /** A method that starts to group the changes to revert/restore them in a single undo or redo */ startGroupAction?: Function; @@ -52502,6 +54994,11 @@ export interface HistoryManager { /** Defines what should be happened while trying to revert a custom change */ undo?: Function; + + /** The undoStack property is used to get the number of undo actions to be stored on the history manager. Its an read-only property and the collection should not be modified. + * @Default {[]} + */ + undoStack?: Array; } export interface Layout { @@ -52513,7 +55010,7 @@ export interface Layout { /** Defines the fixed node with reference to which, the layout will be arranged and fixed node will not be repositioned */ - fixedNode?: string; + fixedNode?: String; /** Customizes the orientation of trees/sub trees. For orientations, see Chart Orientations. For chart types, see Chart Types * @Default {null} @@ -52523,7 +55020,7 @@ export interface Layout { /** Sets the space to be horizontally left between nodes * @Default {30} */ - horizontalSpacing?: number; + horizontalSpacing?: Number; /** Defines the space to be left between layout bounds and layout. * @Default {ej.datavisualization.Diagram.Margin()} @@ -52553,7 +55050,7 @@ export interface Layout { /** Sets the space to be vertically left between nodes * @Default {30} */ - verticalSpacing?: number; + verticalSpacing?: Number; } export interface NodesAnnotation { @@ -52561,7 +55058,7 @@ export interface NodesAnnotation { /** Sets the angle between the BPMN shape and the annotation * @Default {0} */ - angle?: number; + angle?: Number; /** Sets the direction of the text annotation * @Default {ej.datavisualization.Diagram.BPMNAnnotationDirections.Left} @@ -52571,37 +55068,37 @@ export interface NodesAnnotation { /** Sets the height of the text annotation * @Default {20} */ - height?: number; + height?: Number; /** Sets the distance between the BPMN shape and the annotation * @Default {0} */ - length?: number; + length?: Number; /** Defines the additional information about the flow object in a BPMN Process */ - text?: string; + text?: String; /** Sets the width of the text annotation * @Default {20} */ - width?: number; + width?: Number; } export interface NodesClassAttribute { /** Sets the name of the attribute */ - name?: string; + name?: String; /** Sets the data type of attribute */ - type?: string; + type?: String; /** Defines the visibility of the attribute * @Default {ej.datavisualization.Diagram.ScopeValueDefaults.Public} */ - scope?: string; + scope?: String; } export interface NodesClassMethod { @@ -52609,14 +55106,14 @@ export interface NodesClassMethod { /** Sets the visibility of the method. * @Default {ej.datavisualization.Diagram.ScopeValueDefaults.Public} */ - scope?: string; + scope?: String; } export interface NodesClass { /** Sets the name of class. */ - name?: string; + name?: String; /** Defines the collection of attributes * @Default {[]} @@ -52629,12 +55126,60 @@ export interface NodesClass { methods?: Array; } +export interface NodesCollapseIcon { + + /** Sets the border color for collapse icon of node + * @Default {black} + */ + borderColor?: String; + + /** Sets the border width for collapse icon of node + * @Default {1} + */ + borderWidth?: Number; + + /** Sets the fill color for collapse icon of node + * @Default {white} + */ + fillColor?: String; + + /** Defines the height for collapse icon of node + * @Default {15} + */ + height?: Number; + + /** Sets the horizontal alignment of the icon. + * @Default {ej.datavisualization.Diagram.HorizontalAlignment.Center} + */ + horizontalAlignment?: ej.datavisualization.Diagram.HorizontalAlignment|string; + + /** To set the margin for the collapse icon of node + * @Default {ej.datavisualization.Diagram.Margin()} + */ + margin?: any; + + /** Sets the fraction/ratio(relative to node) that defines the position of the icon + * @Default {ej.datavisualization.Diagram.Point(0.5, 1)} + */ + offset?: any; + + /** Defines the shape of the collapsed state of the node. + * @Default {ej.datavisualization.Diagram.IconShapes.None} + */ + shape?: ej.datavisualization.Diagram.IconShapes|string; + + /** Sets the vertical alignment of the icon. + * @Default {ej.datavisualization.Diagram.VerticalAlignment.Center} + */ + verticalAlignment?: ej.datavisualization.Diagram.VerticalAlignment|string; +} + export interface NodesContainer { /** Defines the orientation of the container. Applicable, if the group is a container. * @Default {vertical} */ - orientation?: string; + orientation?: String; /** Sets the type of the container. Applicable if the group is a container. * @Default {ej.datavisualization.Diagram.ContainerType.Canvas} @@ -52652,21 +55197,21 @@ export interface NodesData { /** Defines whether the BPMN data object is a collection or not * @Default {false} */ - collection?: boolean; + collection?: Boolean; } export interface NodesEnumerationMember { /** Sets the name of the enumeration member */ - name?: string; + name?: String; } export interface NodesEnumeration { /** Sets the name of the Enumeration */ - name?: string; + name?: String; /** Defines the collection of enumeration members * @Default {[]} @@ -52674,6 +55219,54 @@ export interface NodesEnumeration { members?: Array; } +export interface NodesExpandIcon { + + /** Sets the border color for expand icon of node + * @Default {black} + */ + borderColor?: String; + + /** Sets the border width for expand icon of node + * @Default {1} + */ + borderWidth?: Number; + + /** Sets the fill color for expand icon of node + * @Default {white} + */ + fillColor?: String; + + /** Defines the height for expand icon of node + * @Default {15} + */ + height?: Number; + + /** Sets the horizontal alignment of the icon. + * @Default {ej.datavisualization.Diagram.HorizontalAlignment.Center} + */ + horizontalAlignment?: ej.datavisualization.Diagram.HorizontalAlignment|string; + + /** To set the margin for the expand icon of node + * @Default {ej.datavisualization.Diagram.Margin()} + */ + margin?: any; + + /** Sets the fraction/ratio(relative to node) that defines the position of the icon + * @Default {ej.datavisualization.Diagram.Point(0.5, 1)} + */ + offset?: any; + + /** Defines the shape of the expanded state of the node. + * @Default {ej.datavisualization.Diagram.IconShapes.None} + */ + shape?: ej.datavisualization.Diagram.IconShapes|string; + + /** Sets the vertical alignment of the icon. + * @Default {ej.datavisualization.Diagram.VerticalAlignment.Center} + */ + verticalAlignment?: ej.datavisualization.Diagram.VerticalAlignment|string; +} + export interface NodesGradientLinearGradient { /** Defines the different colors and the region of color transitions @@ -52684,22 +55277,22 @@ export interface NodesGradientLinearGradient { /** Defines the left most position(relative to node) of the rectangular region that needs to be painted * @Default {0} */ - x1?: number; + x1?: Number; /** Defines the right most position(relative to node) of the rectangular region that needs to be painted * @Default {0} */ - x2?: number; + x2?: Number; /** Defines the top most position(relative to node) of the rectangular region that needs to be painted * @Default {0} */ - y1?: number; + y1?: Number; /** Defines the bottom most position(relative to node) of the rectangular region that needs to be painted * @Default {0} */ - y2?: number; + y2?: Number; } export interface NodesGradientRadialGradient { @@ -52707,22 +55300,22 @@ export interface NodesGradientRadialGradient { /** Defines the position of the outermost circle * @Default {0} */ - cx?: number; + cx?: Number; /** Defines the outer most circle of the radial gradient * @Default {0} */ - cy?: number; + cy?: Number; /** Defines the innermost circle of the radial gradient * @Default {0} */ - fx?: number; + fx?: Number; /** Defines the innermost circle of the radial gradient * @Default {0} */ - fy?: number; + fy?: Number; /** Defines the different colors and the region of color transitions. * @Default {[]} @@ -52734,17 +55327,17 @@ export interface NodesGradientStop { /** Sets the color to be filled over the specified region */ - color?: string; + color?: String; /** Sets the position where the previous color transition ends and a new color transition starts * @Default {0} */ - offset?: number; + offset?: Number; /** Describes the transparency level of the region * @Default {1} */ - opacity?: number; + opacity?: Number; } export interface NodesGradient { @@ -52766,29 +55359,29 @@ export interface NodesInterfaceAttribute { /** Sets the name of the attribute */ - name?: string; + name?: String; /** Sets the type of the attribute */ - type?: string; + type?: String; /** Sets the visibility of the attribute */ - scope?: string; + scope?: String; } export interface NodesInterfaceMethod { /** Sets the visibility of the method */ - scope?: string; + scope?: String; } export interface NodesInterface { /** Sets the name of the interface */ - name?: string; + name?: String; /** Defines a collection of attributes of the interface * @Default {[]} @@ -52806,37 +55399,37 @@ export interface NodesLabel { /** Enables/disables the bold style * @Default {false} */ - bold?: boolean; + bold?: Boolean; /** Sets the border color of the label * @Default {transparent} */ - borderColor?: string; + borderColor?: String; /** Sets the border width of the label * @Default {0} */ - borderWidth?: number; + borderWidth?: Number; /** Sets the fill color of the text area * @Default {transparent} */ - fillColor?: string; + fillColor?: String; /** Sets the font color of the text * @Default {black} */ - fontColor?: string; + fontColor?: String; /** Sets the font family of the text * @Default {Arial} */ - fontFamily?: string; + fontFamily?: String; /** Defines the font size of the text * @Default {12} */ - fontSize?: number; + fontSize?: Number; /** Sets the horizontal alignment of the label. * @Default {ej.datavisualization.Diagram.HorizontalAlignment.Center} @@ -52846,7 +55439,7 @@ export interface NodesLabel { /** Enables/disables the italic style * @Default {false} */ - italic?: boolean; + italic?: Boolean; /** To set the margin of the label * @Default {ej.datavisualization.Diagram.Margin()} @@ -52860,7 +55453,7 @@ export interface NodesLabel { /** Sets the unique identifier of the label */ - name?: string; + name?: String; /** Sets the fraction/ratio(relative to node) that defines the position of the label * @Default {ej.datavisualization.Diagram.Point(0.5, 0.5)} @@ -52870,21 +55463,21 @@ export interface NodesLabel { /** Defines the transparency of the labels * @Default {1} */ - opacity?: number; + opacity?: Number; /** Defines whether the label is editable or not * @Default {false} */ - readOnly?: boolean; + readOnly?: Boolean; /** Defines the angle to which the label needs to be rotated * @Default {0} */ - rotateAngle?: number; + rotateAngle?: Number; /** Defines the label text */ - text?: string; + text?: String; /** Defines how to align the text inside the label. * @Default {ej.datavisualization.Diagram.TextAlign.Center} @@ -52904,12 +55497,12 @@ export interface NodesLabel { /** Enables or disables the visibility of the label * @Default {true} */ - visible?: boolean; + visible?: Boolean; /** Sets the width of the label(the maximum value of label width and the node width will be considered as label width) * @Default {50} */ - width?: number; + width?: Number; /** Defines how the label text needs to be wrapped. * @Default {ej.datavisualization.Diagram.TextWrapping.WrapWithOverflow} @@ -52947,7 +55540,7 @@ export interface NodesLane { /** Defines the fill color of the lane * @Default {white} */ - fillColor?: string; + fillColor?: String; /** Defines the header of the lane * @Default {{ text: Function, fontSize: 11 }} @@ -52957,16 +55550,16 @@ export interface NodesLane { /** Defines the object as a lane * @Default {false} */ - isLane?: boolean; + isLane?: Boolean; /** Sets the unique identifier of the lane */ - name?: string; + name?: String; /** Sets the orientation of the lane. * @Default {vertical} */ - orientation?: string; + orientation?: String; } export interface NodesPaletteItem { @@ -52974,12 +55567,12 @@ export interface NodesPaletteItem { /** Defines whether the symbol should be drawn at its actual size regardless of precedence factors or not * @Default {true} */ - enableScale?: boolean; + enableScale?: Boolean; /** Defines the height of the symbol * @Default {0} */ - height?: number; + height?: Number; /** Defines the margin of the symbol item * @Default {{ left: 4, right: 4, top: 4, bottom: 4 }} @@ -52989,17 +55582,17 @@ export interface NodesPaletteItem { /** Defines the preview height of the symbol * @Default {undefined} */ - previewHeight?: number; + previewHeight?: Number; /** Defines the preview width of the symbol * @Default {undefined} */ - previewWidth?: number; + previewWidth?: Number; /** Defines the width of the symbol * @Default {0} */ - width?: number; + width?: Number; } export interface NodesPhase { @@ -53012,36 +55605,36 @@ export interface NodesPhase { /** Defines the line color of the splitter that splits adjacent phases. * @Default {#606060} */ - lineColor?: string; + lineColor?: String; /** Sets the dash array that used to stroke the phase splitter * @Default {3,3} */ - lineDashArray?: string; + lineDashArray?: String; /** Sets the lineWidth of the phase * @Default {1} */ - lineWidth?: number; + lineWidth?: Number; /** Sets the unique identifier of the phase */ - name?: string; + name?: String; /** Sets the length of the smaller region(phase) of a swimlane * @Default {100} */ - offset?: number; + offset?: Number; /** Sets the orientation of the phase * @Default {horizontal} */ - orientation?: string; + orientation?: String; /** Sets the type of the object as phase * @Default {phase} */ - type?: string; + type?: String; } export interface NodesPort { @@ -53049,17 +55642,17 @@ export interface NodesPort { /** Sets the border color of the port * @Default {#1a1a1a} */ - borderColor?: string; + borderColor?: String; /** Sets the stroke width of the port * @Default {1} */ - borderWidth?: number; + borderWidth?: Number; /** Defines the space to be left between the port bounds and its incoming and outgoing connections. * @Default {0} */ - connectorPadding?: number; + connectorPadding?: Number; /** Defines whether connections can be created with the port * @Default {ej.datavisualization.Diagram.PortConstraints.Connect} @@ -53069,11 +55662,11 @@ export interface NodesPort { /** Sets the fill color of the port * @Default {white} */ - fillColor?: string; + fillColor?: String; /** Sets the unique identifier of the port */ - name?: string; + name?: String; /** Defines the position of the port as fraction/ ratio relative to node * @Default {ej.datavisualization.Diagram.Point(0, 0)} @@ -53082,7 +55675,7 @@ export interface NodesPort { /** Defines the path data to draw the port. Applicable, if the port shape is path. */ - pathData?: string; + pathData?: String; /** Defines the shape of the port. * @Default {ej.datavisualization.Diagram.PortShapes.Square} @@ -53092,7 +55685,7 @@ export interface NodesPort { /** Defines the size of the port * @Default {8} */ - size?: number; + size?: Number; /** Defines when the port should be visible. * @Default {ej.datavisualization.Diagram.PortVisibility.Default} @@ -53105,17 +55698,17 @@ export interface NodesShadow { /** Defines the angle of the shadow relative to node * @Default {45} */ - angle?: number; + angle?: Number; /** Sets the distance to move the shadow relative to node * @Default {5} */ - distance?: number; + distance?: Number; /** Defines the opaque of the shadow * @Default {0.7} */ - opacity?: number; + opacity?: Number; } export interface NodesSubProcess { @@ -53123,7 +55716,7 @@ export interface NodesSubProcess { /** Defines whether the BPMN sub process is without any prescribed order or not * @Default {false} */ - adhoc?: boolean; + adhoc?: Boolean; /** Sets the boundary of the BPMN process * @Default {ej.datavisualization.Diagram.BPMNBoundary.Default} @@ -53133,12 +55726,12 @@ export interface NodesSubProcess { /** Sets whether the BPMN subprocess is triggered as a compensation of a specific activity * @Default {false} */ - compensation?: boolean; + compensation?: Boolean; /** Sets whether the BPMN subprocess is triggered as a collapsed of a specific activity * @Default {true} */ - collapsed?: boolean; + collapsed?: Boolean; /** Sets the type of the event by which the sub-process will be triggered * @Default {ej.datavisualization.Diagram.BPMNEvents.Start} @@ -53154,6 +55747,11 @@ export interface NodesSubProcess { */ loop?: ej.datavisualization.Diagram.BPMNLoops|string; + /** Defines the children for BPMN's SubProcess + * @Default {[]} + */ + Processes?: Array; + /** Defines the type of the event trigger * @Default {ej.datavisualization.Diagram.BPMNTriggers.Message} */ @@ -53170,12 +55768,12 @@ export interface NodesTask { /** To set whether the task is a global task or not * @Default {false} */ - call?: boolean; + call?: Boolean; /** Sets whether the task is triggered as a compensation of another specific activity * @Default {false} */ - compensation?: boolean; + compensation?: Boolean; /** Sets the loop type of a BPMN task. * @Default {ej.datavisualization.Diagram.BPMNLoops.None} @@ -53208,21 +55806,21 @@ export interface Node { /** Sets the border color of node * @Default {black} */ - borderColor?: string; + borderColor?: String; /** Sets the pattern of dashes and gaps to stroke the border */ - borderDashArray?: string; + borderDashArray?: String; /** Sets the border width of the node * @Default {1} */ - borderWidth?: number; + borderWidth?: Number; /** Defines whether the group can be ungrouped or not * @Default {true} */ - canUngroup?: boolean; + canUngroup?: Boolean; /** Array of JSON objects where each object represents a child node/connector * @Default {[]} @@ -53239,10 +55837,14 @@ export interface Node { */ class?: NodesClass; + /** Defines the state of the node is collapsed. + */ + collapseIcon?: NodesCollapseIcon; + /** Defines the distance to be left between a node and its connections(In coming and out going connections). * @Default {0} */ - connectorPadding?: number; + connectorPadding?: Number; /** Enables or disables the default behaviors of the node. * @Default {ej.datavisualization.Diagram.NodeConstraints.Default} @@ -53257,11 +55859,11 @@ export interface Node { /** Defines the corner radius of rectangular shapes. * @Default {0} */ - cornerRadius?: number; + cornerRadius?: Number; /** Configures the styles of shapes */ - cssClass?: string; + cssClass?: String; /** Defines the BPMN data object */ @@ -53280,12 +55882,16 @@ export interface Node { /** Defines whether the node can be automatically arranged using layout or not * @Default {false} */ - excludeFromLayout?: boolean; + excludeFromLayout?: Boolean; + + /** Defines the state of the node is expanded or collapsed. + */ + expandIcon?: NodesExpandIcon; /** Defines the fill color of the node * @Default {white} */ - fillColor?: string; + fillColor?: String; /** Sets the type of the BPMN Gateway. Applicable, if the node is a BPMN gateway. * @Default {ej.datavisualization.Diagram.BPMNGateways.None} @@ -53309,7 +55915,7 @@ export interface Node { /** Defines the height of the node * @Default {0} */ - height?: number; + height?: Number; /** Sets the horizontal alignment of the node. Applicable, if the parent of the node is a container. * @Default {ej.datavisualization.Diagram.HorizontalAlignment.Left} @@ -53329,12 +55935,12 @@ export interface Node { /** Defines whether the sub tree of the node is expanded or collapsed * @Default {true} */ - isExpanded?: boolean; + isExpanded?: Boolean; /** Sets the node as a swimlane * @Default {false} */ - isSwimlane?: boolean; + isSwimlane?: Boolean; /** A collection of objects where each object represents a label * @Default {[]} @@ -53349,66 +55955,66 @@ export interface Node { /** Defines the minimum space to be left between the bottom of parent bounds and the node. Applicable, if the parent is a container. * @Default {0} */ - marginBottom?: number; + marginBottom?: Number; /** Defines the minimum space to be left between the left of parent bounds and the node. Applicable, if the parent is a container. * @Default {0} */ - marginLeft?: number; + marginLeft?: Number; /** Defines the minimum space to be left between the right of the parent bounds and the node. Applicable, if the parent is a container. * @Default {0} */ - marginRight?: number; + marginRight?: Number; /** Defines the minimum space to be left between the top of parent bounds and the node. Applicable, if the parent is a container. * @Default {0} */ - marginTop?: number; + marginTop?: Number; /** Defines the maximum height limit of the node * @Default {0} */ - maxHeight?: number; + maxHeight?: Number; /** Defines the maximum width limit of the node * @Default {0} */ - maxWidth?: number; + maxWidth?: Number; /** Defines the minimum height limit of the node * @Default {0} */ - minHeight?: number; + minHeight?: Number; /** Defines the minimum width limit of the node * @Default {0} */ - minWidth?: number; + minWidth?: Number; /** Sets the unique identifier of the node */ - name?: string; + name?: String; /** Defines the position of the node on X-Axis * @Default {0} */ - offsetX?: number; + offsetX?: Number; /** Defines the position of the node on Y-Axis * @Default {0} */ - offsetY?: number; + offsetY?: Number; /** Defines the opaque of the node * @Default {1} */ - opacity?: number; + opacity?: Number; /** Defines the orientation of nodes. Applicable, if the node is a swimlane. * @Default {vertical} */ - orientation?: string; + orientation?: String; /** A read only collection of outgoing connectors/edges of the node * @Default {[]} @@ -53418,22 +56024,22 @@ export interface Node { /** Defines the minimum padding value to be left between the bottom most position of a group and its children. Applicable, if the group is a container. * @Default {0} */ - paddingBottom?: number; + paddingBottom?: Number; /** Defines the minimum padding value to be left between the left most position of a group and its children. Applicable, if the group is a container. * @Default {0} */ - paddingLeft?: number; + paddingLeft?: Number; /** Defines the minimum padding value to be left between the right most position of a group and its children. Applicable, if the group is a container. * @Default {0} */ - paddingRight?: number; + paddingRight?: Number; /** Defines the minimum padding value to be left between the top most position of a group and its children. Applicable, if the group is a container. * @Default {0} */ - paddingTop?: number; + paddingTop?: Number; /** Defines the size and preview size of the node to add that to symbol palette * @Default {null} @@ -53442,11 +56048,11 @@ export interface Node { /** Sets the name of the parent group */ - parent?: string; + parent?: String; /** Sets the path geometry that defines the shape of a path node */ - pathData?: string; + pathData?: String; /** An array of objects, where each object represents a smaller region(phase) of a swimlane. * @Default {[]} @@ -53456,7 +56062,7 @@ export interface Node { /** Sets the height of the phase headers * @Default {0} */ - phaseSize?: number; + phaseSize?: Number; /** Sets the ratio/ fractional value relative to node, based on which the node will be transformed(positioning, scaling and rotation) * @Default {ej.datavisualization.Diagram.Points(0.5,0.5)} @@ -53476,12 +56082,7 @@ export interface Node { /** Sets the angle to which the node should be rotated * @Default {0} */ - rotateAngle?: number; - - /** Defines how the node should be scaled/stretched - * @Default {ej.datavisualization.Diagram.ScaleConstraints.Meet} - */ - scale?: ej.datavisualization.Diagram.ScaleConstraints |string; + rotateAngle?: Number; /** Defines the opacity and the position of shadow * @Default {ej.datavisualization.Diagram.Shadow()} @@ -53495,7 +56096,7 @@ export interface Node { /** Sets the source path of the image. Applicable, if the type of the node is image. */ - source?: string; + source?: String; /** Defines the sub process of a BPMN Activity. Applicable, if the type of the BPMN activity is sub process. * @Default {ej.datavisualization.Diagram.BPMNSubProcess()} @@ -53509,7 +56110,7 @@ export interface Node { /** Sets the id of svg/html templates. Applicable, if the node is HTML or native. */ - templateId?: string; + templateId?: String; /** Defines the textBlock of a text node * @Default {null} @@ -53539,17 +56140,17 @@ export interface Node { /** Defines the visibility of the node * @Default {true} */ - visible?: boolean; + visible?: Boolean; /** Defines the width of the node * @Default {0} */ - width?: number; + width?: Number; /** Defines the z-index of the node * @Default {0} */ - zOrder?: number; + zOrder?: Number; } export interface PageSettings { @@ -53562,32 +56163,32 @@ export interface PageSettings { /** Sets whether multiple pages can be created to fit all nodes and connectors * @Default {false} */ - multiplePage?: boolean; + multiplePage?: Boolean; /** Defines the background color of diagram pages * @Default {#ffffff} */ - pageBackgroundColor?: string; + pageBackgroundColor?: String; /** Defines the page border color * @Default {#565656} */ - pageBorderColor?: string; + pageBorderColor?: String; /** Sets the border width of diagram pages * @Default {0} */ - pageBorderWidth?: number; + pageBorderWidth?: Number; /** Defines the height of a page * @Default {null} */ - pageHeight?: number; + pageHeight?: Number; /** Defines the page margin * @Default {24} */ - pageMargin?: number; + pageMargin?: Number; /** Sets the orientation of the page. * @Default {ej.datavisualization.Diagram.PageOrientations.Portrait} @@ -53597,7 +56198,7 @@ export interface PageSettings { /** Defines the height of a diagram page * @Default {null} */ - pageWidth?: number; + pageWidth?: Number; /** Defines the scrollable area of diagram. Applicable, if the scroll limit is "limited". * @Default {null} @@ -53617,7 +56218,7 @@ export interface PageSettings { /** Enables or disables the page breaks * @Default {false} */ - showPageBreak?: boolean; + showPageBreak?: Boolean; } export interface ScrollSettings { @@ -53625,12 +56226,12 @@ export interface ScrollSettings { /** Allows to read the zoom value of diagram * @Default {0} */ - currentZoom?: number; + currentZoom?: Number; /** Sets the horizontal scroll offset * @Default {0} */ - horizontalOffset?: number; + horizontalOffset?: Number; /** Allows to extend the scrollable region that is based on the scroll limit * @Default {{left: 0, right: 0, top:0, bottom: 0}} @@ -53640,17 +56241,17 @@ export interface ScrollSettings { /** Sets the vertical scroll offset * @Default {0} */ - verticalOffset?: number; + verticalOffset?: Number; /** Allows to read the view port height of the diagram * @Default {0} */ - viewPortHeight?: number; + viewPortHeight?: Number; /** Allows to read the view port width of the diagram * @Default {0} */ - viewPortWidth?: number; + viewPortWidth?: Number; } export interface SelectedItemsUserHandle { @@ -53658,26 +56259,26 @@ export interface SelectedItemsUserHandle { /** Defines the background color of the user handle * @Default {#2382c3} */ - backgroundColor?: string; + backgroundColor?: String; /** Sets the border color of the user handle * @Default {transparent} */ - borderColor?: string; + borderColor?: String; /** Defines whether the user handle should be added, when more than one element is selected * @Default {false} */ - enableMultiSelection?: boolean; + enableMultiSelection?: Boolean; /** Sets the stroke color of the user handle * @Default {transparent} */ - pathColor?: string; + pathColor?: String; /** Defines the custom shape of the user handle */ - pathData?: string; + pathData?: String; /** Defines the position of the user handle * @Default {ej.datavisualization.Diagram.UserHandlePositions.BottomCenter} @@ -53687,7 +56288,7 @@ export interface SelectedItemsUserHandle { /** Defines the size of the user handle * @Default {8} */ - size?: number; + size?: Number; /** Defines the interactive behaviors of the user handle */ @@ -53696,7 +56297,7 @@ export interface SelectedItemsUserHandle { /** Defines the visibility of the user handle * @Default {true} */ - visible?: boolean; + visible?: Boolean; } export interface SelectedItems { @@ -53719,22 +56320,22 @@ export interface SelectedItems { /** Sets the height of the selected items * @Default {0} */ - height?: number; + height?: Number; /** Sets the x position of the selector * @Default {0} */ - offsetX?: number; + offsetX?: Number; /** Sets the y position of the selector * @Default {0} */ - offsetY?: number; + offsetY?: Number; /** Sets the angle to rotate the selected items * @Default {0} */ - rotateAngle?: number; + rotateAngle?: Number; /** Sets the angle to rotate the selected items. For tooltip properties, refer Tooltip * @Default {ej.datavisualization.Diagram.Tooltip()} @@ -53749,7 +56350,7 @@ export interface SelectedItems { /** Sets the width of the selected items * @Default {0} */ - width?: number; + width?: Number; } export interface SnapSettingsHorizontalGridLines { @@ -53757,11 +56358,11 @@ export interface SnapSettingsHorizontalGridLines { /** Defines the line color of horizontal grid lines * @Default {lightgray} */ - lineColor?: string; + lineColor?: String; /** Specifies the pattern of dashes and gaps used to stroke horizontal grid lines */ - lineDashArray?: string; + lineDashArray?: String; /** A pattern of lines and gaps that defines a set of horizontal gridlines * @Default {[1.25, 18.75, 0.25, 19.75, 0.25, 19.75, 0.25, 19.75, 0.25, 19.75]} @@ -53779,11 +56380,11 @@ export interface SnapSettingsVerticalGridLines { /** Defines the line color of horizontal grid lines * @Default {lightgray} */ - lineColor?: string; + lineColor?: String; /** Specifies the pattern of dashes and gaps used to stroke horizontal grid lines */ - lineDashArray?: string; + lineDashArray?: String; /** A pattern of lines and gaps that defines a set of horizontal gridlines * @Default {[1.25, 18.75, 0.25, 19.75, 0.25, 19.75, 0.25, 19.75, 0.25, 19.75]} @@ -53801,7 +56402,7 @@ export interface SnapSettings { /** Enables or disables snapping nodes/connectors to objects * @Default {true} */ - enableSnapToObject?: boolean; + enableSnapToObject?: Boolean; /** Defines the appearance of horizontal gridlines */ @@ -53810,7 +56411,7 @@ export interface SnapSettings { /** Defines the angle by which the object needs to be snapped * @Default {5} */ - snapAngle?: number; + snapAngle?: Number; /** Defines and sets the snapConstraints */ @@ -53819,7 +56420,7 @@ export interface SnapSettings { /** Defines the minimum distance between the selected object and the nearest object * @Default {5} */ - snapObjectDistance?: number; + snapObjectDistance?: Number; /** Defines the appearance of horizontal gridlines */ @@ -53857,7 +56458,7 @@ export interface Tooltip { /** Sets the svg/html template to be bound with tooltip */ - templateId?: string; + templateId?: String; } } module Diagram @@ -53888,18 +56489,6 @@ XMaxYMax, } module Diagram { -enum ScaleConstraints -{ -//Used to scale the image non-uniformly to the given width/height -None, -//Used to scale the image uniformly so that it fits the viewport -Meet, -//Used to scale the image uniformly to the maximum -Slice, -} -} -module Diagram -{ enum BridgeDirection { //Used to set the direction of line bridges as left @@ -54048,6 +56637,8 @@ DragLabel, InheritBridging, //Enables user interaction to the connector PointerEvents, +//Enables the contrast between clean edges of connector over rendering speed and geometric precision +CrispEdges, //Enables all constraints Default, } @@ -54158,6 +56749,42 @@ Default, } module Diagram { +enum ClassifierShapes +{ +//Used to define a Class +Class, +//Used to define an Interface +Interface, +//Used to define an Enumeration +Enumeration, +//Used to notate association in UML Class Diagram +Association, +//Used to notate aggregation in a UML Class Diagram +Aggregation, +//Used to notate composition in a UML Class Diagram +Composition, +//Used to notate dependency in a UML Class Diagram +Dependency, +//Used to notate inheritance in a UML Class Diagram +Inheritance, +} +} +module Diagram +{ +enum Multiplicity +{ +//Each entity instance is related to a single instance of another entity +OneToOne, +//An entity instance can be related to multiple instances of the other entities +OneToMany, +//Multiple instances of an entity can be related to a single instance of the other entity +ManyToOne, +//The entity instances can be related to multiple instances of each other +ManyToMany, +} +} +module Diagram +{ enum DecoratorShapes { //Used to set decorator shape as none @@ -54206,6 +56833,8 @@ PannableY, Pannable, //Enables/Disables undo actions Undoable, +//Enables/Disables the sharp edges +CrispEdges, //Enables all Constraints Default, } @@ -54264,14 +56893,22 @@ Bottom, } module Diagram { -enum ClassifierShapes +enum IconShapes { -//Used to define a Class -Class, -//Used to define an Interface -Interface, -//Used to define an Enumeration -Enumeration, +//Used to set collapse icon shape as none +None, +//Used to set collapse icon shape as Arrow(Up/Down) +Arrow, +//Used to set collapse icon shape as Plus +Plus, +//Used to set collapse icon shape as Minus +Minus, +//Used to set collapse icon shape as path +Path, +//Used to set icon shape as template +Template, +//Used to set icon shape as image +Image, } } module Diagram @@ -54318,6 +56955,8 @@ AllowPan, AspectRatio, //Enables the user interaction with the node PointerEvents, +//Enables contrast between clean edges for the node over rendering speed and geometric precision +CrispEdges, //Enables all node constraints Default, } @@ -54440,6 +57079,8 @@ enum PortConstraints None, //Enables connections with connector Connect, +//Enables to create the connection when mouse hover on the port. +ConnectOnDrag, } } module Diagram @@ -54747,6 +57388,7 @@ class HeatMap extends ej.Widget { static fn: HeatMap; constructor(element: JQuery, options?: HeatMap.Model); constructor(element: Element, options?: HeatMap.Model); + static Locale: any; model:HeatMap.Model; defaults:HeatMap.Model; } @@ -54767,7 +57409,7 @@ export interface Model { /** Specifies the name of the heat map. * @Default {null} */ - id?: number; + id?: Number; /** Specifies the source data of the heat map. * @Default {[]} @@ -54782,12 +57424,12 @@ export interface Model { /** Specifies can enable responsive mode or not for heat map. * @Default {false} */ - isResponsive?: boolean; + isResponsive?: Boolean; /** Specifies whether the virtualization can be enable or not. * @Default {false} */ - enableVirtualization?: boolean; + enableVirtualization?: Boolean; /** Specifies the default column properties for all the column style not specified in column properties. * @Default {[]} @@ -54892,7 +57534,7 @@ export interface HeatMapCell { /** Specifies whether the cell color can be visible or not. * @Default {true} */ - showColor?: boolean; + showColor?: Boolean; } export interface DefaultColumnStyle { @@ -54904,11 +57546,11 @@ export interface DefaultColumnStyle { /** Specifies the template id of the heat map column header. */ - headerTemplateID?: string; + headerTemplateID?: String; /** Specifies the template id of all individual cell data of the heat map. */ - templateID?: string; + templateID?: String; } export interface ItemsMappingColumnStyle { @@ -54916,7 +57558,7 @@ export interface ItemsMappingColumnStyle { /** Specifies the width of the heat map column. * @Default {0} */ - width?: number; + width?: Number; /** Specifies the text align mode of the heat map column. * @Default {ej.HeatMap.TextAlign.Center} @@ -55019,16 +57661,16 @@ export interface ColorMappingCollectionLabel { /** Enables/disables the bold style of the heat map label. * @Default {false} */ - bold?: boolean; + bold?: Boolean; /** Enables/disables the italic style of the heat map label. * @Default {false} */ - italic?: boolean; + italic?: Boolean; /** specifies the text value of the heat map label. */ - text?: string; + text?: String; /** Specifies the text style of the heat map label. * @Default {ej.HeatMap.TextDecoration.None} @@ -55038,17 +57680,17 @@ export interface ColorMappingCollectionLabel { /** Specifies the font size of the heat map label. * @Default {10} */ - fontSize?: number; + fontSize?: Number; /** Specifies the font family of the heat map label. * @Default {Arial} */ - fontFamily?: string; + fontFamily?: String; /** Specifies the font color of the heat map label. * @Default {black} */ - fontColor?: string; + fontColor?: String; } export interface ColorMappingCollection { @@ -55056,12 +57698,12 @@ export interface ColorMappingCollection { /** Specifies the color of the heat map column data. * @Default {white} */ - color?: string; + color?: String; /** Specifies the color values of the heat map column data. * @Default {0} */ - value?: number; + value?: Number; /** Specifies the label properties of the heat map color. * @Default {null} @@ -55098,6 +57740,7 @@ class HeatMapLegend extends ej.Widget { static fn: HeatMapLegend; constructor(element: JQuery, options?: HeatMapLegend.Model); constructor(element: Element, options?: HeatMapLegend.Model); + static Locale: any; model:HeatMapLegend.Model; defaults:HeatMapLegend.Model; } @@ -55118,12 +57761,12 @@ export interface Model { /** Specifies can enable responsive mode or not for heatmap legend. * @Default {false} */ - isResponsive?: boolean; + isResponsive?: Boolean; /** Specifies whether the cell label can be shown or not. * @Default {false} */ - showLabel?: boolean; + showLabel?: Boolean; /** Specifies the color values of the column data. * @Default {[]} @@ -55146,16 +57789,16 @@ export interface ColorMappingCollectionLabel { /** Enables/disables the bold style of the heatmap legend label. * @Default {false} */ - bold?: boolean; + bold?: Boolean; /** Enables/disables the italic style of the heatmap legend label. * @Default {false} */ - italic?: boolean; + italic?: Boolean; /** specifies the text value of the heatmap legend label. */ - text?: string; + text?: String; /** Specifies the text style of the heatmap legend label. * @Default {ej.HeatMap.TextDecoration.None} @@ -55165,17 +57808,17 @@ export interface ColorMappingCollectionLabel { /** Specifies the font size of the heatmap legend label. * @Default {10} */ - fontSize?: number; + fontSize?: Number; /** Specifies the font family of the heatmap legend label. * @Default {Arial} */ - fontFamily?: string; + fontFamily?: String; /** Specifies the font color of the heatmap legend label. * @Default {black} */ - fontColor?: string; + fontColor?: String; } export interface ColorMappingCollection { @@ -55183,12 +57826,12 @@ export interface ColorMappingCollection { /** Specifies the color of the heatmap legend data. * @Default {white} */ - color?: string; + color?: String; /** Specifies the color values of the heatmap legend column data. * @Default {0} */ - value?: number; + value?: Number; /** Specifies the label properties of the heatmap legend color. * @Default {null} @@ -55221,6 +57864,7 @@ class Sparkline extends ej.Widget { static fn: Sparkline; constructor(element: JQuery, options?: Sparkline.Model); constructor(element: Element, options?: Sparkline.Model); + static Locale: any; model:Sparkline.Model; defaults:Sparkline.Model; @@ -55817,6 +58461,7 @@ class Overview extends ej.Widget { static fn: Overview; constructor(element: JQuery, options?: Overview.Model); constructor(element: Element, options?: Overview.Model); + static Locale: any; model:Overview.Model; defaults:Overview.Model; } @@ -55827,17 +58472,17 @@ export interface Model { /** The sourceId property of overview should be set with the corresponding Diagram ID for you need the overall view. * @Default {null} */ - sourceID?: string; + sourceID?: String; /** Defines the height of the overview * @Default {400} */ - height?: number; + height?: Number; /** Defines the width of the overview * @Default {250} */ - width?: number; + width?: Number; } } @@ -55934,6 +58579,11 @@ ejDigitalGauge(options?: ej.datavisualization.DigitalGauge.Model): JQuery; ejDigitalGauge(memberName: any, value?: any, param?: any): any; data(key: "ejDigitalGauge"): ej.datavisualization.DigitalGauge; +ejDocumentEditor(): JQuery; +ejDocumentEditor(options?: ej.DocumentEditor.Model): JQuery; +ejDocumentEditor(memberName: any, value?: any, param?: any): any; +data(key: "ejDocumentEditor"): ej.DocumentEditor; + ejDraggable(): JQuery; ejDraggable(options?: ej.Draggable.Model): JQuery; ejDraggable(memberName: any, value?: any, param?: any): any; @@ -56139,6 +58789,11 @@ ejScroller(options?: ej.Scroller.Model): JQuery; ejScroller(memberName: any, value?: any, param?: any): any; data(key: "ejScroller"): ej.Scroller; +ejSignature(): JQuery; +ejSignature(options?: ej.Signature.Model): JQuery; +ejSignature(memberName: any, value?: any, param?: any): any; +data(key: "ejSignature"): ej.Signature; + ejSlider(): JQuery; ejSlider(options?: ej.Slider.Model): JQuery; ejSlider(memberName: any, value?: any, param?: any): any; @@ -56149,6 +58804,11 @@ ejSparkline(options?: ej.datavisualization.Sparkline.Model): JQuery; ejSparkline(memberName: any, value?: any, param?: any): any; data(key: "ejSparkline"): ej.datavisualization.Sparkline; +ejSpellCheck(): JQuery; +ejSpellCheck(options?: ej.SpellCheck.Model): JQuery; +ejSpellCheck(memberName: any, value?: any, param?: any): any; +data(key: "ejSpellCheck"): ej.SpellCheck; + ejSplitButton(): JQuery; ejSplitButton(options?: ej.SplitButton.Model): JQuery; ejSplitButton(memberName: any, value?: any, param?: any): any; @@ -56234,3 +58894,4 @@ ejWaitingPopup(options?: ej.WaitingPopup.Model): JQuery; ejWaitingPopup(memberName: any, value?: any, param?: any): any; data(key: "ejWaitingPopup"): ej.WaitingPopup; } + diff --git a/ejson/ejson-tests.ts b/ejson/ejson-tests.ts index ef9b940bb8..1902849b3d 100644 --- a/ejson/ejson-tests.ts +++ b/ejson/ejson-tests.ts @@ -1,8 +1,6 @@ -/// - import { - clone as importedClone, - parse as importedParse, + clone as importedClone, + parse as importedParse, stringify as importedStringify, toJSONValue as importedToJSONValue, fromJSONValue as importedFromJSONValue, diff --git a/ejson/ejson.d.ts b/ejson/ejson.d.ts deleted file mode 100644 index 029222239c..0000000000 --- a/ejson/ejson.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -// Type definitions for ejson v2.1.2 -// Project: https://www.npmjs.com/package/ejson -// Definitions by: Shantanu Bhadoria -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - - -declare module "ejson" { - interface StringifyOptions { - canonical: boolean; - indent: boolean|number|string; - } - - interface CloneOptions { - keyOrderSensitive: boolean; - } - - function clone(obj: T): T; - function parse(str: string): any; - function stringify(obj: any, options?: StringifyOptions): string; - - function toJSONValue(obj: any): string; - function fromJSONValue(obj: string): any; - function isBinary(value: any): boolean; - function newBinary(len: number): Uint8Array; - function equals(a: any, b: any, options?: CloneOptions): boolean; -} diff --git a/ejson/index.d.ts b/ejson/index.d.ts new file mode 100644 index 0000000000..d2882646eb --- /dev/null +++ b/ejson/index.d.ts @@ -0,0 +1,23 @@ +// Type definitions for ejson v2.1.2 +// Project: https://www.npmjs.com/package/ejson +// Definitions by: Shantanu Bhadoria +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +interface StringifyOptions { + canonical: boolean; + indent: boolean|number|string; +} + +interface CloneOptions { + keyOrderSensitive: boolean; +} + +export function clone(obj: T): T; +export function parse(str: string): any; +export function stringify(obj: any, options?: StringifyOptions): string; + +export function toJSONValue(obj: any): string; +export function fromJSONValue(obj: string): any; +export function isBinary(value: any): boolean; +export function newBinary(len: number): Uint8Array; +export function equals(a: any, b: any, options?: CloneOptions): boolean; diff --git a/ejson/tsconfig.json b/ejson/tsconfig.json new file mode 100644 index 0000000000..45ff41e26b --- /dev/null +++ b/ejson/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "ejson-tests.ts" + ] +} \ No newline at end of file diff --git a/electron/index.d.ts b/electron/index.d.ts index d39710189b..c0797775a2 100644 --- a/electron/index.d.ts +++ b/electron/index.d.ts @@ -2850,7 +2850,7 @@ declare namespace Electron { interface StringProtocolCallback extends ProtocolCallback { (str: string): void; (obj: { - data: Buffer, + data: string, mimeType: string, charset?: string }): void; diff --git a/event-to-promise/event-to-promise-tests.ts b/event-to-promise/event-to-promise-tests.ts new file mode 100644 index 0000000000..2b99ddc62f --- /dev/null +++ b/event-to-promise/event-to-promise-tests.ts @@ -0,0 +1,21 @@ +import { EventEmitter } from 'events' + +import * as eventToPromise from 'event-to-promise' + + +{ + const ee = new EventEmitter() + const ep = eventToPromise(ee, 'custom') + + ep.then(console.log) + ee.emit('custom') +} + + +{ + const et = new EventTarget() + const tp = eventToPromise.multi(et, ['custom']) + + tp.then(console.log) + et.dispatchEvent(new Event('custom')) +} diff --git a/event-to-promise/index.d.ts b/event-to-promise/index.d.ts new file mode 100644 index 0000000000..aa491f0b0e --- /dev/null +++ b/event-to-promise/index.d.ts @@ -0,0 +1,45 @@ +// Type definitions for event-to-promise v0.7.0 +// Project: https://github.com/JsCommunity/event-to-promise +// Definitions by: flying-sheep +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +import { EventEmitter } from 'events' + +type EventSource = EventEmitter | EventTarget + +interface EventToPromiseOptions { + /** If true, all parameters of the emitted events are put in an array which is used to resolve/reject the promise. (default: `false`) */ + array?: boolean, + /** The name of the event which rejects the promise. (default: `'error'`) */ + error?: string, + /** Whether the error event should be ignored and not reject the promise. (default: `false`) */ + ignoreErrors?: boolean, +} + +/** + * Wait for one event. The first parameter of the emitted event is used to resolve/reject the promise. + * + * @param emitter The event emitter you want to watch an event on. + * @param event The name of the event you want to watch. + * @param options An `Object` controlling advanced options. + * @return The returned promise has a `cancel()` method which can be used to remove the event listeners. Note that the promise will never settled if canceled. + */ +declare function eventToPromise(emitter: EventSource, event: string, options?: EventToPromiseOptions): Promise; + +declare namespace eventToPromise { + /** + * Wait for one of multiple events. The array of all the parameters of the emitted event is used to resolve/reject the promise. + * + * The array also has an event property indicating which event has been emitted. + * + * @param emitter The event emitter you want to watch an event on. + * @param successEvents The names of the events which resolve the promise. + * @param errorEvents The names of the events which reject the promise. (default: `['error']`) + * @return The returned promise has a `cancel()` method which can be used to remove the event listeners. Note that the promise will never settled if canceled. + */ + export function multi(emitter: EventSource, successEvents: string[], errorEvents?: string[]): Promise; +} + +export = eventToPromise diff --git a/event-to-promise/tsconfig.json b/event-to-promise/tsconfig.json new file mode 100644 index 0000000000..d5fd4f1e8e --- /dev/null +++ b/event-to-promise/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": false, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "event-to-promise-tests.ts" + ] +} diff --git a/express-brute/index.d.ts b/express-brute/index.d.ts index 3f0c3927b9..b6a60d4247 100644 --- a/express-brute/index.d.ts +++ b/express-brute/index.d.ts @@ -7,58 +7,6 @@ import express = require("express"); -/** - * @summary Options for {@link MemoryStore} class. - * @interface - */ -interface MemoryStoreOptions { - /** - * @summary Key prefix. - * @type {string} - */ - prefix: string; -} - -/** - * @summary Options for {@link ExpressBrute#getMiddleware} class. - * @interface - */ -interface ExpressBruteMiddleware { - /** - * @summary Allows you to override the value of failCallback for this middleware. - * @type {Function} - */ - failCallback: Function; - - /** - * @summary Disregard IP address when matching requests if set to true. Defaults to false. - * @type {boolean} - */ - ignoreIP: boolean; - - /** - * @summary Key. - * @type {any} - */ - key: any; -} - -/** - * @summary Options for {@link ExpressBrute} class. - * @interface - */ -interface ExpressBruteOptions { - freeRetries?: number; - proxyDepth?: number; - attachResetToRequest?: boolean; - refreshTimeoutOnRequest?: boolean; - minWait?: number; - maxWait?: number; - lifetime?: number; - failCallback?: (req: express.Request, res: express.Response, next: Function, nextValidRequestDate: any) => void; - handleStoreError?: any; -} - /** * @summary Middleware. * @class @@ -69,20 +17,13 @@ declare class ExpressBrute { * @constructor * @param {any} store The store. */ - constructor(store: any, options?: ExpressBruteOptions); + constructor(store: any, options?: ExpressBrute.Options); /** * @summary Generates middleware that will bounce requests with the same key and IP address that happen faster than the current wait time by calling failCallback. * @param {Object} options The options. */ - getMiddleware(options: ExpressBruteMiddleware): express.RequestHandler; - - /** - * @summary Uses the current proxy trust settings to get the current IP from a request object. - * @param {Request} request The HTTP request. - * @return {RequestHandler} The Request handler. - */ - getIPFromRequest(request: express.Request): express.RequestHandler; + getMiddleware(options: ExpressBrute.Middleware): express.RequestHandler; /** * @summary Middleware that will bounce requests that happen faster than the current wait time by calling failCallback. @@ -104,6 +45,81 @@ declare class ExpressBrute { } declare namespace ExpressBrute { + /** + * @summary Options for {@link MemoryStore} class. + * @interface + */ + export interface MemoryStoreOptions { + /** + * @summary Key prefix. + * @type {string} + */ + prefix: string; + } + + /** + * @summary Options for {@link ExpressBrute#getMiddleware} class. + * @interface + */ + export interface Middleware { + /** + * @summary Allows you to override the value of failCallback for this middleware. + * @type {Function} + */ + failCallback: Function; + + /** + * @summary Disregard IP address when matching requests if set to true. Defaults to false. + * @type {boolean} + */ + ignoreIP: boolean; + + /** + * @summary Key. + * @type {any} + */ + key: any; + } + + /** + * @summary Options for {@link ExpressBrute} class. + * @interface + */ + export interface Options { + /** + * @summary The number of retires the user has before they need to start waiting (default: 2) + */ + freeRetries?: number; + /** + * @summary Specify whether or not a simplified reset method should be attached at req.brute.reset. The simplified method takes only a callback, and resets all ExpressBrute middleware that was called on the current request. If multiple instances of ExpressBrute have middleware on the same request, only those with attachResetToRequest set to true will be reset (default: true) + */ + attachResetToRequest?: boolean; + /** + * @summary Defines whether the lifetime counts from the time of the last request that ExpressBrute didn't prevent for a given IP (true) or from of that IP's first request (false). Useful for allowing limits over fixed periods of time, for example: a limited number of requests per day. (Default: true). + */ + refreshTimeoutOnRequest?: boolean; + /** + * @summary The initial wait time (in milliseconds) after the user runs out of retries (default: 500 milliseconds) + */ + minWait?: number; + /** + * @summary The maximum amount of time (in milliseconds) between requests the user needs to wait (default: 15 minutes). The wait for a given request is determined by adding the time the user needed to wait for the previous two requests. + */ + maxWait?: number; + /** + * @summary The length of time (in seconds since the last request) to remember the number of requests that have been made by an IP. By default it will be set to maxWait * the number of attempts before you hit maxWait to discourage simply waiting for the lifetime to expire before resuming an attack. With default values this is about 6 hours. + */ + lifetime?: number; + /** + * @summary Gets called with (req, res, next, nextValidRequestDate) when a request is rejected (default: ExpressBrute.FailForbidden) + */ + failCallback?: (req: express.Request, res: express.Response, next: Function, nextValidRequestDate: any) => void; + /** + * @summary Gets called whenever an error occurs with the persistent store from which ExpressBrute cannot recover. It is passed an object containing the properties message (a description of the message), parent (the error raised by the session store), and [key, ip] or [req, res, next] depending on whether or the error occurs during reset or in the middleware itself. + */ + handleStoreError?: any; + } + /** * @summary In-memory store. * @class diff --git a/express-serve-static-core/index.d.ts b/express-serve-static-core/index.d.ts index 92f27d5df8..932b8075b1 100644 --- a/express-serve-static-core/index.d.ts +++ b/express-serve-static-core/index.d.ts @@ -5,1101 +5,1101 @@ // This extracts the core definitions from express to prevent a circular dependency between express and serve-static /// -declare namespace Express { - - // These open interfaces may be extended in an application-specific manner via declaration merging. - // See for example method-override.d.ts (https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/method-override/method-override.d.ts) - export interface Request { } - export interface Response { } - export interface Application { } -} - -declare module "express-serve-static-core" { - import * as http from "http"; - - interface NextFunction { - (err?: any): void; - } - - interface RequestHandler { - (req: Request, res: Response, next: NextFunction): any; - } - - interface ErrorRequestHandler { - (err: any, req: Request, res: Response, next: NextFunction): any; - } - - type PathParams = string | RegExp | (string | RegExp)[]; - - type RequestHandlerParams = RequestHandler | ErrorRequestHandler | (RequestHandler | ErrorRequestHandler)[]; - - interface IRouterMatcher { - (path: PathParams, ...handlers: RequestHandler[]): T; - (path: PathParams, ...handlers: RequestHandlerParams[]): T; - } - - interface IRouterHandler { - (...handlers: RequestHandler[]): T; - (...handlers: RequestHandlerParams[]): T; - } - - interface IRouter extends RequestHandler { - /** - * Map the given param placeholder `name`(s) to the given callback(s). - * - * Parameter mapping is used to provide pre-conditions to routes - * which use normalized placeholders. For example a _:user_id_ parameter - * could automatically load a user's information from the database without - * any additional code, - * - * The callback uses the samesignature as middleware, the only differencing - * being that the value of the placeholder is passed, in this case the _id_ - * of the user. Once the `next()` function is invoked, just like middleware - * it will continue on to execute the route, or subsequent parameter functions. - * - * app.param('user_id', function(req, res, next, id){ - * User.find(id, function(err, user){ - * if (err) { - * next(err); - * } else if (user) { - * req.user = user; - * next(); - * } else { - * next(new Error('failed to load user')); - * } - * }); - * }); - * - * @param name - * @param fn - */ - param(name: string, handler: RequestParamHandler): this; - // Alternatively, you can pass only a callback, in which case you have the opportunity to alter the app.param() API - // deprecated since express 4.11.0 - param(callback: (name: string, matcher: RegExp) => RequestParamHandler): this; - - /** - * Special-cased "all" method, applying the given route `path`, - * middleware, and callback to _every_ HTTP method. - * - * @param path - * @param fn - */ - all: IRouterMatcher; - get: IRouterMatcher; - post: IRouterMatcher; - put: IRouterMatcher; - delete: IRouterMatcher; - patch: IRouterMatcher; - options: IRouterMatcher; - head: IRouterMatcher; - - checkout: IRouterMatcher; - copy: IRouterMatcher; - lock: IRouterMatcher; - merge: IRouterMatcher; - mkactivity: IRouterMatcher; - mkcol: IRouterMatcher; - move: IRouterMatcher; - "m-search": IRouterMatcher; - notify: IRouterMatcher; - purge: IRouterMatcher; - report: IRouterMatcher; - search: IRouterMatcher; - subscribe: IRouterMatcher; - trace: IRouterMatcher; - unlock: IRouterMatcher; - unsubscribe: IRouterMatcher; - - use: IRouterHandler & IRouterMatcher; - - route(prefix: PathParams): IRoute; - /** - * Stack of configured routes - */ - stack: any[]; - } - - interface IRoute { - path: string; - stack: any; - all: IRouterHandler; - get: IRouterHandler; - post: IRouterHandler; - put: IRouterHandler; - delete: IRouterHandler; - patch: IRouterHandler; - options: IRouterHandler; - head: IRouterHandler; - - checkout: IRouterHandler; - copy: IRouterHandler; - lock: IRouterHandler; - merge: IRouterHandler; - mkactivity: IRouterHandler; - mkcol: IRouterHandler; - move: IRouterHandler; - "m-search": IRouterHandler; - notify: IRouterHandler; - purge: IRouterHandler; - report: IRouterHandler; - search: IRouterHandler; - subscribe: IRouterHandler; - trace: IRouterHandler; - unlock: IRouterHandler; - unsubscribe: IRouterHandler - } - - export interface Router extends IRouter { } - - interface CookieOptions { - maxAge?: number; - signed?: boolean; - expires?: Date | boolean; - httpOnly?: boolean; - path?: string; - domain?: string; - secure?: boolean | 'auto'; - } - - interface Errback { (err: Error): void; } - - interface Request extends http.IncomingMessage, Express.Request { - - /** - * Return request header. - * - * The `Referrer` header field is special-cased, - * both `Referrer` and `Referer` are interchangeable. - * - * Examples: - * - * req.get('Content-Type'); - * // => "text/plain" - * - * req.get('content-type'); - * // => "text/plain" - * - * req.get('Something'); - * // => undefined - * - * Aliased as `req.header()`. - * - * @param name - */ - get(name: string): string; - - header(name: string): string; - - headers: { [key: string]: string; }; - - /** - * Check if the given `type(s)` is acceptable, returning - * the best match when true, otherwise `undefined`, in which - * case you should respond with 406 "Not Acceptable". - * - * The `type` value may be a single mime type string - * such as "application/json", the extension name - * such as "json", a comma-delimted list such as "json, html, text/plain", - * or an array `["json", "html", "text/plain"]`. When a list - * or array is given the _best_ match, if any is returned. - * - * Examples: - * - * // Accept: text/html - * req.accepts('html'); - * // => "html" - * - * // Accept: text/*, application/json - * req.accepts('html'); - * // => "html" - * req.accepts('text/html'); - * // => "text/html" - * req.accepts('json, text'); - * // => "json" - * req.accepts('application/json'); - * // => "application/json" - * - * // Accept: text/*, application/json - * req.accepts('image/png'); - * req.accepts('png'); - * // => undefined - * - * // Accept: text/*;q=.5, application/json - * req.accepts(['html', 'json']); - * req.accepts('html, json'); - * // => "json" - */ - accepts(): string[]; - accepts(type: string): string | boolean; - accepts(type: string[]): string | boolean; - accepts(...type: string[]): string | boolean; - - /** - * Returns the first accepted charset of the specified character sets, - * based on the request's Accept-Charset HTTP header field. - * If none of the specified charsets is accepted, returns false. - * - * For more information, or if you have issues or concerns, see accepts. - * @param charset - */ - acceptsCharsets(): string[]; - acceptsCharsets(charset: string): string | boolean; - acceptsCharsets(charset: string[]): string | boolean; - acceptsCharsets(...charset: string[]): string | boolean; - - /** - * Returns the first accepted encoding of the specified encodings, - * based on the request's Accept-Encoding HTTP header field. - * If none of the specified encodings is accepted, returns false. - * - * For more information, or if you have issues or concerns, see accepts. - * @param encoding - */ - acceptsEncodings(): string[]; - acceptsEncodings(encoding: string): string | boolean; - acceptsEncodings(encoding: string[]): string | boolean; - acceptsEncodings(...encoding: string[]): string | boolean; - - /** - * Returns the first accepted language of the specified languages, - * based on the request's Accept-Language HTTP header field. - * If none of the specified languages is accepted, returns false. - * - * For more information, or if you have issues or concerns, see accepts. - * - * @param lang - */ - acceptsLanguages(): string[]; - acceptsLanguages(lang: string): string | boolean; - acceptsLanguages(lang: string[]): string | boolean; - acceptsLanguages(...lang: string[]): string | boolean; - - /** - * Parse Range header field, - * capping to the given `size`. - * - * Unspecified ranges such as "0-" require - * knowledge of your resource length. In - * the case of a byte range this is of course - * the total number of bytes. If the Range - * header field is not given `null` is returned, - * `-1` when unsatisfiable, `-2` when syntactically invalid. - * - * NOTE: remember that ranges are inclusive, so - * for example "Range: users=0-3" should respond - * with 4 users when available, not 3. - * - * @param size - */ - range(size: number): any[]; - - /** - * Return an array of Accepted media types - * ordered from highest quality to lowest. - */ - accepted: MediaType[]; - - /** - * @deprecated Use either req.params, req.body or req.query, as applicable. - * - * Return the value of param `name` when present or `defaultValue`. - * - * - Checks route placeholders, ex: _/user/:id_ - * - Checks body params, ex: id=12, {"id":12} - * - Checks query string params, ex: ?id=12 - * - * To utilize request bodies, `req.body` - * should be an object. This can be done by using - * the `connect.bodyParser()` middleware. - * - * @param name - * @param defaultValue - */ - param(name: string, defaultValue?: any): string; - - /** - * Check if the incoming request contains the "Content-Type" - * header field, and it contains the give mime `type`. - * - * Examples: - * - * // With Content-Type: text/html; charset=utf-8 - * req.is('html'); - * req.is('text/html'); - * req.is('text/*'); - * // => true - * - * // When Content-Type is application/json - * req.is('json'); - * req.is('application/json'); - * req.is('application/*'); - * // => true - * - * req.is('html'); - * // => false - * - * @param type - */ - is(type: string): boolean; - - /** - * Return the protocol string "http" or "https" - * when requested with TLS. When the "trust proxy" - * setting is enabled the "X-Forwarded-Proto" header - * field will be trusted. If you're running behind - * a reverse proxy that supplies https for you this - * may be enabled. - */ - protocol: string; - - /** - * Short-hand for: - * - * req.protocol == 'https' - */ - secure: boolean; - - /** - * Return the remote address, or when - * "trust proxy" is `true` return - * the upstream addr. - */ - ip: string; - - /** - * When "trust proxy" is `true`, parse - * the "X-Forwarded-For" ip address list. - * - * For example if the value were "client, proxy1, proxy2" - * you would receive the array `["client", "proxy1", "proxy2"]` - * where "proxy2" is the furthest down-stream. - */ - ips: string[]; - - /** - * Return subdomains as an array. - * - * Subdomains are the dot-separated parts of the host before the main domain of - * the app. By default, the domain of the app is assumed to be the last two - * parts of the host. This can be changed by setting "subdomain offset". - * - * For example, if the domain is "tobi.ferrets.example.com": - * If "subdomain offset" is not set, req.subdomains is `["ferrets", "tobi"]`. - * If "subdomain offset" is 3, req.subdomains is `["tobi"]`. - */ - subdomains: string[]; - - /** - * Short-hand for `url.parse(req.url).pathname`. - */ - path: string; - - /** - * Parse the "Host" header field hostname. - */ - hostname: string; - - /** - * @deprecated Use hostname instead. - */ - host: string; - - /** - * Check if the request is fresh, aka - * Last-Modified and/or the ETag - * still match. - */ - fresh: boolean; - - /** - * Check if the request is stale, aka - * "Last-Modified" and / or the "ETag" for the - * resource has changed. - */ - stale: boolean; - - /** - * Check if the request was an _XMLHttpRequest_. - */ - xhr: boolean; - - //body: { username: string; password: string; remember: boolean; title: string; }; - body: any; - - //cookies: { string; remember: boolean; }; - cookies: any; - - method: string; - - params: any; - - /** - * Clear cookie `name`. - * - * @param name - * @param options - */ - clearCookie(name: string, options?: any): Response; - - query: any; - - route: any; - - signedCookies: any; - - originalUrl: string; - - url: string; - - baseUrl: string; - - app: Application; - } - - interface MediaType { - value: string; - quality: number; - type: string; - subtype: string; - } - - interface Send { - (status: number, body?: any): Response; - (body?: any): Response; - } - - interface Response extends http.ServerResponse, Express.Response { - /** - * Set status `code`. - * - * @param code - */ - status(code: number): Response; - - /** - * Set the response HTTP status code to `statusCode` and send its string representation as the response body. - * @link http://expressjs.com/4x/api.html#res.sendStatus - * - * Examples: - * - * res.sendStatus(200); // equivalent to res.status(200).send('OK') - * res.sendStatus(403); // equivalent to res.status(403).send('Forbidden') - * res.sendStatus(404); // equivalent to res.status(404).send('Not Found') - * res.sendStatus(500); // equivalent to res.status(500).send('Internal Server Error') - * - * @param code - */ - sendStatus(code: number): Response; - - /** - * Set Link header field with the given `links`. - * - * Examples: - * - * res.links({ - * next: 'http://api.example.com/users?page=2', - * last: 'http://api.example.com/users?page=5' - * }); - * - * @param links - */ - links(links: any): Response; - - /** - * Send a response. - * - * Examples: - * - * res.send(new Buffer('wahoo')); - * res.send({ some: 'json' }); - * res.send('

some html

'); - * res.send(404, 'Sorry, cant find that'); - * res.send(404); - */ - send: Send; - - /** - * Send JSON response. - * - * Examples: - * - * res.json(null); - * res.json({ user: 'tj' }); - * res.json(500, 'oh noes!'); - * res.json(404, 'I dont have that'); - */ - json: Send; - - /** - * Send JSON response with JSONP callback support. - * - * Examples: - * - * res.jsonp(null); - * res.jsonp({ user: 'tj' }); - * res.jsonp(500, 'oh noes!'); - * res.jsonp(404, 'I dont have that'); - */ - jsonp: Send; - - /** - * Transfer the file at the given `path`. - * - * Automatically sets the _Content-Type_ response header field. - * The callback `fn(err)` is invoked when the transfer is complete - * or when an error occurs. Be sure to check `res.sentHeader` - * if you wish to attempt responding, as the header and some data - * may have already been transferred. - * - * Options: - * - * - `maxAge` defaulting to 0 (can be string converted by `ms`) - * - `root` root directory for relative filenames - * - `headers` object of headers to serve with file - * - `dotfiles` serve dotfiles, defaulting to false; can be `"allow"` to send them - * - * Other options are passed along to `send`. - * - * Examples: - * - * The following example illustrates how `res.sendFile()` may - * be used as an alternative for the `static()` middleware for - * dynamic situations. The code backing `res.sendFile()` is actually - * the same code, so HTTP cache support etc is identical. - * - * app.get('/user/:uid/photos/:file', function(req, res){ - * var uid = req.params.uid - * , file = req.params.file; - * - * req.user.mayViewFilesFrom(uid, function(yes){ - * if (yes) { - * res.sendFile('/uploads/' + uid + '/' + file); - * } else { - * res.send(403, 'Sorry! you cant see that.'); - * } - * }); - * }); - * - * @api public - */ - sendFile(path: string): void; - sendFile(path: string, options: any): void; - sendFile(path: string, fn: Errback): void; - sendFile(path: string, options: any, fn: Errback): void; - - /** - * @deprecated Use sendFile instead. - */ - sendfile(path: string): void; - /** - * @deprecated Use sendFile instead. - */ - sendfile(path: string, options: any): void; - /** - * @deprecated Use sendFile instead. - */ - sendfile(path: string, fn: Errback): void; - /** - * @deprecated Use sendFile instead. - */ - sendfile(path: string, options: any, fn: Errback): void; - - /** - * Transfer the file at the given `path` as an attachment. - * - * Optionally providing an alternate attachment `filename`, - * and optional callback `fn(err)`. The callback is invoked - * when the data transfer is complete, or when an error has - * ocurred. Be sure to check `res.headerSent` if you plan to respond. - * - * This method uses `res.sendfile()`. - */ - download(path: string): void; - download(path: string, filename: string): void; - download(path: string, fn: Errback): void; - download(path: string, filename: string, fn: Errback): void; - - /** - * Set _Content-Type_ response header with `type` through `mime.lookup()` - * when it does not contain "/", or set the Content-Type to `type` otherwise. - * - * Examples: - * - * res.type('.html'); - * res.type('html'); - * res.type('json'); - * res.type('application/json'); - * res.type('png'); - * - * @param type - */ - contentType(type: string): Response; - - /** - * Set _Content-Type_ response header with `type` through `mime.lookup()` - * when it does not contain "/", or set the Content-Type to `type` otherwise. - * - * Examples: - * - * res.type('.html'); - * res.type('html'); - * res.type('json'); - * res.type('application/json'); - * res.type('png'); - * - * @param type - */ - type(type: string): Response; - - /** - * Respond to the Acceptable formats using an `obj` - * of mime-type callbacks. - * - * This method uses `req.accepted`, an array of - * acceptable types ordered by their quality values. - * When "Accept" is not present the _first_ callback - * is invoked, otherwise the first match is used. When - * no match is performed the server responds with - * 406 "Not Acceptable". - * - * Content-Type is set for you, however if you choose - * you may alter this within the callback using `res.type()` - * or `res.set('Content-Type', ...)`. - * - * res.format({ - * 'text/plain': function(){ - * res.send('hey'); - * }, - * - * 'text/html': function(){ - * res.send('

hey

'); - * }, - * - * 'appliation/json': function(){ - * res.send({ message: 'hey' }); - * } - * }); - * - * In addition to canonicalized MIME types you may - * also use extnames mapped to these types: - * - * res.format({ - * text: function(){ - * res.send('hey'); - * }, - * - * html: function(){ - * res.send('

hey

'); - * }, - * - * json: function(){ - * res.send({ message: 'hey' }); - * } - * }); - * - * By default Express passes an `Error` - * with a `.status` of 406 to `next(err)` - * if a match is not made. If you provide - * a `.default` callback it will be invoked - * instead. - * - * @param obj - */ - format(obj: any): Response; - - /** - * Set _Content-Disposition_ header to _attachment_ with optional `filename`. - * - * @param filename - */ - attachment(filename?: string): Response; - - /** - * Set header `field` to `val`, or pass - * an object of header fields. - * - * Examples: - * - * res.set('Foo', ['bar', 'baz']); - * res.set('Accept', 'application/json'); - * res.set({ Accept: 'text/plain', 'X-API-Key': 'tobi' }); - * - * Aliased as `res.header()`. - */ - set(field: any): Response; - set(field: string, value?: string): Response; - - header(field: any): Response; - header(field: string, value?: string): Response; - - // Property indicating if HTTP headers has been sent for the response. - headersSent: boolean; - - /** - * Get value for header `field`. - * - * @param field - */ - get(field: string): string; - - /** - * Clear cookie `name`. - * - * @param name - * @param options - */ - clearCookie(name: string, options?: any): Response; - - /** - * Set cookie `name` to `val`, with the given `options`. - * - * Options: - * - * - `maxAge` max-age in milliseconds, converted to `expires` - * - `signed` sign the cookie - * - `path` defaults to "/" - * - * Examples: - * - * // "Remember Me" for 15 minutes - * res.cookie('rememberme', '1', { expires: new Date(Date.now() + 900000), httpOnly: true }); - * - * // save as above - * res.cookie('rememberme', '1', { maxAge: 900000, httpOnly: true }) - */ - cookie(name: string, val: string, options: CookieOptions): Response; - cookie(name: string, val: any, options: CookieOptions): Response; - cookie(name: string, val: any): Response; - - /** - * Set the location header to `url`. - * - * The given `url` can also be the name of a mapped url, for - * example by default express supports "back" which redirects - * to the _Referrer_ or _Referer_ headers or "/". - * - * Examples: - * - * res.location('/foo/bar').; - * res.location('http://example.com'); - * res.location('../login'); // /blog/post/1 -> /blog/login - * - * Mounting: - * - * When an application is mounted and `res.location()` - * is given a path that does _not_ lead with "/" it becomes - * relative to the mount-point. For example if the application - * is mounted at "/blog", the following would become "/blog/login". - * - * res.location('login'); - * - * While the leading slash would result in a location of "/login": - * - * res.location('/login'); - * - * @param url - */ - location(url: string): Response; - - /** - * Redirect to the given `url` with optional response `status` - * defaulting to 302. - * - * The resulting `url` is determined by `res.location()`, so - * it will play nicely with mounted apps, relative paths, - * `"back"` etc. - * - * Examples: - * - * res.redirect('/foo/bar'); - * res.redirect('http://example.com'); - * res.redirect(301, 'http://example.com'); - * res.redirect('http://example.com', 301); - * res.redirect('../login'); // /blog/post/1 -> /blog/login - */ - redirect(url: string): void; - redirect(status: number, url: string): void; - redirect(url: string, status: number): void; - - /** - * Render `view` with the given `options` and optional callback `fn`. - * When a callback function is given a response will _not_ be made - * automatically, otherwise a response of _200_ and _text/html_ is given. - * - * Options: - * - * - `cache` boolean hinting to the engine it should cache - * - `filename` filename of the view being rendered - */ - render(view: string, options?: Object, callback?: (err: Error, html: string) => void): void; - render(view: string, callback?: (err: Error, html: string) => void): void; - - locals: any; - - charset: string; - - /** - * Adds the field to the Vary response header, if it is not there already. - * Examples: - * - * res.vary('User-Agent').render('docs'); - * - */ - vary(field: string): Response; - } - - interface Handler extends RequestHandler { } - - interface RequestParamHandler { - (req: Request, res: Response, next: NextFunction, value: any, name: string): any; - } - - interface Application extends IRouter, Express.Application { - /** - * Express instance itself is a request handler, which could be invoked without - * third argument. - */ - (req: Request, res: Response): any; - - /** - * Initialize the server. - * - * - setup default configuration - * - setup default middleware - * - setup route reflection methods - */ - init(): void; - - /** - * Initialize application configuration. - */ - defaultConfiguration(): void; - - /** - * Register the given template engine callback `fn` - * as `ext`. - * - * By default will `require()` the engine based on the - * file extension. For example if you try to render - * a "foo.jade" file Express will invoke the following internally: - * - * app.engine('jade', require('jade').__express); - * - * For engines that do not provide `.__express` out of the box, - * or if you wish to "map" a different extension to the template engine - * you may use this method. For example mapping the EJS template engine to - * ".html" files: - * - * app.engine('html', require('ejs').renderFile); - * - * In this case EJS provides a `.renderFile()` method with - * the same signature that Express expects: `(path, options, callback)`, - * though note that it aliases this method as `ejs.__express` internally - * so if you're using ".ejs" extensions you dont need to do anything. - * - * Some template engines do not follow this convention, the - * [Consolidate.js](https://github.com/visionmedia/consolidate.js) - * library was created to map all of node's popular template - * engines to follow this convention, thus allowing them to - * work seamlessly within Express. - */ - engine(ext: string, fn: Function): Application; - - /** - * Assign `setting` to `val`, or return `setting`'s value. - * - * app.set('foo', 'bar'); - * app.get('foo'); - * // => "bar" - * app.set('foo', ['bar', 'baz']); - * app.get('foo'); - * // => ["bar", "baz"] - * - * Mounted servers inherit their parent server's settings. - * - * @param setting - * @param val - */ - set(setting: string, val: any): Application; - get: {(name: string): any;} & IRouterMatcher; - - param(name: string | string[], handler: RequestParamHandler): this; - // Alternatively, you can pass only a callback, in which case you have the opportunity to alter the app.param() API - param(callback: (name: string, matcher: RegExp) => RequestParamHandler): this; - - /** - * Return the app's absolute pathname - * based on the parent(s) that have - * mounted it. - * - * For example if the application was - * mounted as "/admin", which itself - * was mounted as "/blog" then the - * return value would be "/blog/admin". - */ - path(): string; - - /** - * Check if `setting` is enabled (truthy). - * - * app.enabled('foo') - * // => false - * - * app.enable('foo') - * app.enabled('foo') - * // => true - */ - enabled(setting: string): boolean; - - /** - * Check if `setting` is disabled. - * - * app.disabled('foo') - * // => true - * - * app.enable('foo') - * app.disabled('foo') - * // => false - * - * @param setting - */ - disabled(setting: string): boolean; - - /** - * Enable `setting`. - * - * @param setting - */ - enable(setting: string): Application; - - /** - * Disable `setting`. - * - * @param setting - */ - disable(setting: string): Application; - - /** - * Configure callback for zero or more envs, - * when no `env` is specified that callback will - * be invoked for all environments. Any combination - * can be used multiple times, in any order desired. - * - * Examples: - * - * app.configure(function(){ - * // executed for all envs - * }); - * - * app.configure('stage', function(){ - * // executed staging env - * }); - * - * app.configure('stage', 'production', function(){ - * // executed for stage and production - * }); - * - * Note: - * - * These callbacks are invoked immediately, and - * are effectively sugar for the following: - * - * var env = process.env.NODE_ENV || 'development'; - * - * switch (env) { - * case 'development': - * ... - * break; - * case 'stage': - * ... - * break; - * case 'production': - * ... - * break; - * } - * - * @param env - * @param fn - */ - configure(fn: Function): Application; - configure(env0: string, fn: Function): Application; - configure(env0: string, env1: string, fn: Function): Application; - configure(env0: string, env1: string, env2: string, fn: Function): Application; - configure(env0: string, env1: string, env2: string, env3: string, fn: Function): Application; - configure(env0: string, env1: string, env2: string, env3: string, env4: string, fn: Function): Application; - - /** - * Render the given view `name` name with `options` - * and a callback accepting an error and the - * rendered template string. - * - * Example: - * - * app.render('email', { name: 'Tobi' }, function(err, html){ - * // ... - * }) - * - * @param name - * @param options or fn - * @param fn - */ - render(name: string, options?: Object, callback?: (err: Error, html: string) => void): void; - render(name: string, callback: (err: Error, html: string) => void): void; - - - /** - * Listen for connections. - * - * A node `http.Server` is returned, with this - * application (which is a `Function`) as its - * callback. If you wish to create both an HTTP - * and HTTPS server you may do so with the "http" - * and "https" modules as shown here: - * - * var http = require('http') - * , https = require('https') - * , express = require('express') - * , app = express(); - * - * http.createServer(app).listen(80); - * https.createServer({ ... }, app).listen(443); - */ - listen(port: number, hostname: string, backlog: number, callback?: Function): http.Server; - listen(port: number, hostname: string, callback?: Function): http.Server; - listen(port: number, callback?: Function): http.Server; - listen(path: string, callback?: Function): http.Server; - listen(handle: any, listeningListener?: Function): http.Server; - - router: string; - - settings: any; - - resource: any; - - map: any; - - locals: any; - - /** - * The app.routes object houses all of the routes defined mapped by the - * associated HTTP verb. This object may be used for introspection - * capabilities, for example Express uses this internally not only for - * routing but to provide default OPTIONS behaviour unless app.options() - * is used. Your application or framework may also remove routes by - * simply by removing them from this object. - */ - routes: any; - - /** - * Used to get all registered routes in Express Application - */ - _router: any; - } - - interface Express extends Application { - request: Request; - - response: Response; +declare global { + namespace Express { + + // These open interfaces may be extended in an application-specific manner via declaration merging. + // See for example method-override.d.ts (https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/method-override/method-override.d.ts) + export interface Request { } + export interface Response { } + export interface Application { } } } + +import * as http from "http"; + +interface NextFunction { + (err?: any): void; +} + +interface RequestHandler { + (req: Request, res: Response, next: NextFunction): any; +} + +interface ErrorRequestHandler { + (err: any, req: Request, res: Response, next: NextFunction): any; +} + +type PathParams = string | RegExp | (string | RegExp)[]; + +type RequestHandlerParams = RequestHandler | ErrorRequestHandler | (RequestHandler | ErrorRequestHandler)[]; + +interface IRouterMatcher { + (path: PathParams, ...handlers: RequestHandler[]): T; + (path: PathParams, ...handlers: RequestHandlerParams[]): T; +} + +interface IRouterHandler { + (...handlers: RequestHandler[]): T; + (...handlers: RequestHandlerParams[]): T; +} + +interface IRouter extends RequestHandler { + /** + * Map the given param placeholder `name`(s) to the given callback(s). + * + * Parameter mapping is used to provide pre-conditions to routes + * which use normalized placeholders. For example a _:user_id_ parameter + * could automatically load a user's information from the database without + * any additional code, + * + * The callback uses the samesignature as middleware, the only differencing + * being that the value of the placeholder is passed, in this case the _id_ + * of the user. Once the `next()` function is invoked, just like middleware + * it will continue on to execute the route, or subsequent parameter functions. + * + * app.param('user_id', function(req, res, next, id){ + * User.find(id, function(err, user){ + * if (err) { + * next(err); + * } else if (user) { + * req.user = user; + * next(); + * } else { + * next(new Error('failed to load user')); + * } + * }); + * }); + * + * @param name + * @param fn + */ + param(name: string, handler: RequestParamHandler): this; + // Alternatively, you can pass only a callback, in which case you have the opportunity to alter the app.param() API + // deprecated since express 4.11.0 + param(callback: (name: string, matcher: RegExp) => RequestParamHandler): this; + + /** + * Special-cased "all" method, applying the given route `path`, + * middleware, and callback to _every_ HTTP method. + * + * @param path + * @param fn + */ + all: IRouterMatcher; + get: IRouterMatcher; + post: IRouterMatcher; + put: IRouterMatcher; + delete: IRouterMatcher; + patch: IRouterMatcher; + options: IRouterMatcher; + head: IRouterMatcher; + + checkout: IRouterMatcher; + copy: IRouterMatcher; + lock: IRouterMatcher; + merge: IRouterMatcher; + mkactivity: IRouterMatcher; + mkcol: IRouterMatcher; + move: IRouterMatcher; + "m-search": IRouterMatcher; + notify: IRouterMatcher; + purge: IRouterMatcher; + report: IRouterMatcher; + search: IRouterMatcher; + subscribe: IRouterMatcher; + trace: IRouterMatcher; + unlock: IRouterMatcher; + unsubscribe: IRouterMatcher; + + use: IRouterHandler & IRouterMatcher; + + route(prefix: PathParams): IRoute; + /** + * Stack of configured routes + */ + stack: any[]; +} + +interface IRoute { + path: string; + stack: any; + all: IRouterHandler; + get: IRouterHandler; + post: IRouterHandler; + put: IRouterHandler; + delete: IRouterHandler; + patch: IRouterHandler; + options: IRouterHandler; + head: IRouterHandler; + + checkout: IRouterHandler; + copy: IRouterHandler; + lock: IRouterHandler; + merge: IRouterHandler; + mkactivity: IRouterHandler; + mkcol: IRouterHandler; + move: IRouterHandler; + "m-search": IRouterHandler; + notify: IRouterHandler; + purge: IRouterHandler; + report: IRouterHandler; + search: IRouterHandler; + subscribe: IRouterHandler; + trace: IRouterHandler; + unlock: IRouterHandler; + unsubscribe: IRouterHandler +} + +export interface Router extends IRouter { } + +interface CookieOptions { + maxAge?: number; + signed?: boolean; + expires?: Date | boolean; + httpOnly?: boolean; + path?: string; + domain?: string; + secure?: boolean | 'auto'; +} + +interface Errback { (err: Error): void; } + +interface Request extends http.IncomingMessage, Express.Request { + + /** + * Return request header. + * + * The `Referrer` header field is special-cased, + * both `Referrer` and `Referer` are interchangeable. + * + * Examples: + * + * req.get('Content-Type'); + * // => "text/plain" + * + * req.get('content-type'); + * // => "text/plain" + * + * req.get('Something'); + * // => undefined + * + * Aliased as `req.header()`. + * + * @param name + */ + get(name: string): string; + + header(name: string): string; + + headers: { [key: string]: string; }; + + /** + * Check if the given `type(s)` is acceptable, returning + * the best match when true, otherwise `undefined`, in which + * case you should respond with 406 "Not Acceptable". + * + * The `type` value may be a single mime type string + * such as "application/json", the extension name + * such as "json", a comma-delimted list such as "json, html, text/plain", + * or an array `["json", "html", "text/plain"]`. When a list + * or array is given the _best_ match, if any is returned. + * + * Examples: + * + * // Accept: text/html + * req.accepts('html'); + * // => "html" + * + * // Accept: text/*, application/json + * req.accepts('html'); + * // => "html" + * req.accepts('text/html'); + * // => "text/html" + * req.accepts('json, text'); + * // => "json" + * req.accepts('application/json'); + * // => "application/json" + * + * // Accept: text/*, application/json + * req.accepts('image/png'); + * req.accepts('png'); + * // => undefined + * + * // Accept: text/*;q=.5, application/json + * req.accepts(['html', 'json']); + * req.accepts('html, json'); + * // => "json" + */ + accepts(): string[]; + accepts(type: string): string | boolean; + accepts(type: string[]): string | boolean; + accepts(...type: string[]): string | boolean; + + /** + * Returns the first accepted charset of the specified character sets, + * based on the request's Accept-Charset HTTP header field. + * If none of the specified charsets is accepted, returns false. + * + * For more information, or if you have issues or concerns, see accepts. + * @param charset + */ + acceptsCharsets(): string[]; + acceptsCharsets(charset: string): string | boolean; + acceptsCharsets(charset: string[]): string | boolean; + acceptsCharsets(...charset: string[]): string | boolean; + + /** + * Returns the first accepted encoding of the specified encodings, + * based on the request's Accept-Encoding HTTP header field. + * If none of the specified encodings is accepted, returns false. + * + * For more information, or if you have issues or concerns, see accepts. + * @param encoding + */ + acceptsEncodings(): string[]; + acceptsEncodings(encoding: string): string | boolean; + acceptsEncodings(encoding: string[]): string | boolean; + acceptsEncodings(...encoding: string[]): string | boolean; + + /** + * Returns the first accepted language of the specified languages, + * based on the request's Accept-Language HTTP header field. + * If none of the specified languages is accepted, returns false. + * + * For more information, or if you have issues or concerns, see accepts. + * + * @param lang + */ + acceptsLanguages(): string[]; + acceptsLanguages(lang: string): string | boolean; + acceptsLanguages(lang: string[]): string | boolean; + acceptsLanguages(...lang: string[]): string | boolean; + + /** + * Parse Range header field, + * capping to the given `size`. + * + * Unspecified ranges such as "0-" require + * knowledge of your resource length. In + * the case of a byte range this is of course + * the total number of bytes. If the Range + * header field is not given `null` is returned, + * `-1` when unsatisfiable, `-2` when syntactically invalid. + * + * NOTE: remember that ranges are inclusive, so + * for example "Range: users=0-3" should respond + * with 4 users when available, not 3. + * + * @param size + */ + range(size: number): any[]; + + /** + * Return an array of Accepted media types + * ordered from highest quality to lowest. + */ + accepted: MediaType[]; + + /** + * @deprecated Use either req.params, req.body or req.query, as applicable. + * + * Return the value of param `name` when present or `defaultValue`. + * + * - Checks route placeholders, ex: _/user/:id_ + * - Checks body params, ex: id=12, {"id":12} + * - Checks query string params, ex: ?id=12 + * + * To utilize request bodies, `req.body` + * should be an object. This can be done by using + * the `connect.bodyParser()` middleware. + * + * @param name + * @param defaultValue + */ + param(name: string, defaultValue?: any): string; + + /** + * Check if the incoming request contains the "Content-Type" + * header field, and it contains the give mime `type`. + * + * Examples: + * + * // With Content-Type: text/html; charset=utf-8 + * req.is('html'); + * req.is('text/html'); + * req.is('text/*'); + * // => true + * + * // When Content-Type is application/json + * req.is('json'); + * req.is('application/json'); + * req.is('application/*'); + * // => true + * + * req.is('html'); + * // => false + * + * @param type + */ + is(type: string): boolean; + + /** + * Return the protocol string "http" or "https" + * when requested with TLS. When the "trust proxy" + * setting is enabled the "X-Forwarded-Proto" header + * field will be trusted. If you're running behind + * a reverse proxy that supplies https for you this + * may be enabled. + */ + protocol: string; + + /** + * Short-hand for: + * + * req.protocol == 'https' + */ + secure: boolean; + + /** + * Return the remote address, or when + * "trust proxy" is `true` return + * the upstream addr. + */ + ip: string; + + /** + * When "trust proxy" is `true`, parse + * the "X-Forwarded-For" ip address list. + * + * For example if the value were "client, proxy1, proxy2" + * you would receive the array `["client", "proxy1", "proxy2"]` + * where "proxy2" is the furthest down-stream. + */ + ips: string[]; + + /** + * Return subdomains as an array. + * + * Subdomains are the dot-separated parts of the host before the main domain of + * the app. By default, the domain of the app is assumed to be the last two + * parts of the host. This can be changed by setting "subdomain offset". + * + * For example, if the domain is "tobi.ferrets.example.com": + * If "subdomain offset" is not set, req.subdomains is `["ferrets", "tobi"]`. + * If "subdomain offset" is 3, req.subdomains is `["tobi"]`. + */ + subdomains: string[]; + + /** + * Short-hand for `url.parse(req.url).pathname`. + */ + path: string; + + /** + * Parse the "Host" header field hostname. + */ + hostname: string; + + /** + * @deprecated Use hostname instead. + */ + host: string; + + /** + * Check if the request is fresh, aka + * Last-Modified and/or the ETag + * still match. + */ + fresh: boolean; + + /** + * Check if the request is stale, aka + * "Last-Modified" and / or the "ETag" for the + * resource has changed. + */ + stale: boolean; + + /** + * Check if the request was an _XMLHttpRequest_. + */ + xhr: boolean; + + //body: { username: string; password: string; remember: boolean; title: string; }; + body: any; + + //cookies: { string; remember: boolean; }; + cookies: any; + + method: string; + + params: any; + + /** + * Clear cookie `name`. + * + * @param name + * @param options + */ + clearCookie(name: string, options?: any): Response; + + query: any; + + route: any; + + signedCookies: any; + + originalUrl: string; + + url: string; + + baseUrl: string; + + app: Application; +} + +interface MediaType { + value: string; + quality: number; + type: string; + subtype: string; +} + +interface Send { + (status: number, body?: any): Response; + (body?: any): Response; +} + +interface Response extends http.ServerResponse, Express.Response { + /** + * Set status `code`. + * + * @param code + */ + status(code: number): Response; + + /** + * Set the response HTTP status code to `statusCode` and send its string representation as the response body. + * @link http://expressjs.com/4x/api.html#res.sendStatus + * + * Examples: + * + * res.sendStatus(200); // equivalent to res.status(200).send('OK') + * res.sendStatus(403); // equivalent to res.status(403).send('Forbidden') + * res.sendStatus(404); // equivalent to res.status(404).send('Not Found') + * res.sendStatus(500); // equivalent to res.status(500).send('Internal Server Error') + * + * @param code + */ + sendStatus(code: number): Response; + + /** + * Set Link header field with the given `links`. + * + * Examples: + * + * res.links({ + * next: 'http://api.example.com/users?page=2', + * last: 'http://api.example.com/users?page=5' + * }); + * + * @param links + */ + links(links: any): Response; + + /** + * Send a response. + * + * Examples: + * + * res.send(new Buffer('wahoo')); + * res.send({ some: 'json' }); + * res.send('

some html

'); + * res.send(404, 'Sorry, cant find that'); + * res.send(404); + */ + send: Send; + + /** + * Send JSON response. + * + * Examples: + * + * res.json(null); + * res.json({ user: 'tj' }); + * res.json(500, 'oh noes!'); + * res.json(404, 'I dont have that'); + */ + json: Send; + + /** + * Send JSON response with JSONP callback support. + * + * Examples: + * + * res.jsonp(null); + * res.jsonp({ user: 'tj' }); + * res.jsonp(500, 'oh noes!'); + * res.jsonp(404, 'I dont have that'); + */ + jsonp: Send; + + /** + * Transfer the file at the given `path`. + * + * Automatically sets the _Content-Type_ response header field. + * The callback `fn(err)` is invoked when the transfer is complete + * or when an error occurs. Be sure to check `res.sentHeader` + * if you wish to attempt responding, as the header and some data + * may have already been transferred. + * + * Options: + * + * - `maxAge` defaulting to 0 (can be string converted by `ms`) + * - `root` root directory for relative filenames + * - `headers` object of headers to serve with file + * - `dotfiles` serve dotfiles, defaulting to false; can be `"allow"` to send them + * + * Other options are passed along to `send`. + * + * Examples: + * + * The following example illustrates how `res.sendFile()` may + * be used as an alternative for the `static()` middleware for + * dynamic situations. The code backing `res.sendFile()` is actually + * the same code, so HTTP cache support etc is identical. + * + * app.get('/user/:uid/photos/:file', function(req, res){ + * var uid = req.params.uid + * , file = req.params.file; + * + * req.user.mayViewFilesFrom(uid, function(yes){ + * if (yes) { + * res.sendFile('/uploads/' + uid + '/' + file); + * } else { + * res.send(403, 'Sorry! you cant see that.'); + * } + * }); + * }); + * + * @api public + */ + sendFile(path: string): void; + sendFile(path: string, options: any): void; + sendFile(path: string, fn: Errback): void; + sendFile(path: string, options: any, fn: Errback): void; + + /** + * @deprecated Use sendFile instead. + */ + sendfile(path: string): void; + /** + * @deprecated Use sendFile instead. + */ + sendfile(path: string, options: any): void; + /** + * @deprecated Use sendFile instead. + */ + sendfile(path: string, fn: Errback): void; + /** + * @deprecated Use sendFile instead. + */ + sendfile(path: string, options: any, fn: Errback): void; + + /** + * Transfer the file at the given `path` as an attachment. + * + * Optionally providing an alternate attachment `filename`, + * and optional callback `fn(err)`. The callback is invoked + * when the data transfer is complete, or when an error has + * ocurred. Be sure to check `res.headerSent` if you plan to respond. + * + * This method uses `res.sendfile()`. + */ + download(path: string): void; + download(path: string, filename: string): void; + download(path: string, fn: Errback): void; + download(path: string, filename: string, fn: Errback): void; + + /** + * Set _Content-Type_ response header with `type` through `mime.lookup()` + * when it does not contain "/", or set the Content-Type to `type` otherwise. + * + * Examples: + * + * res.type('.html'); + * res.type('html'); + * res.type('json'); + * res.type('application/json'); + * res.type('png'); + * + * @param type + */ + contentType(type: string): Response; + + /** + * Set _Content-Type_ response header with `type` through `mime.lookup()` + * when it does not contain "/", or set the Content-Type to `type` otherwise. + * + * Examples: + * + * res.type('.html'); + * res.type('html'); + * res.type('json'); + * res.type('application/json'); + * res.type('png'); + * + * @param type + */ + type(type: string): Response; + + /** + * Respond to the Acceptable formats using an `obj` + * of mime-type callbacks. + * + * This method uses `req.accepted`, an array of + * acceptable types ordered by their quality values. + * When "Accept" is not present the _first_ callback + * is invoked, otherwise the first match is used. When + * no match is performed the server responds with + * 406 "Not Acceptable". + * + * Content-Type is set for you, however if you choose + * you may alter this within the callback using `res.type()` + * or `res.set('Content-Type', ...)`. + * + * res.format({ + * 'text/plain': function(){ + * res.send('hey'); + * }, + * + * 'text/html': function(){ + * res.send('

hey

'); + * }, + * + * 'appliation/json': function(){ + * res.send({ message: 'hey' }); + * } + * }); + * + * In addition to canonicalized MIME types you may + * also use extnames mapped to these types: + * + * res.format({ + * text: function(){ + * res.send('hey'); + * }, + * + * html: function(){ + * res.send('

hey

'); + * }, + * + * json: function(){ + * res.send({ message: 'hey' }); + * } + * }); + * + * By default Express passes an `Error` + * with a `.status` of 406 to `next(err)` + * if a match is not made. If you provide + * a `.default` callback it will be invoked + * instead. + * + * @param obj + */ + format(obj: any): Response; + + /** + * Set _Content-Disposition_ header to _attachment_ with optional `filename`. + * + * @param filename + */ + attachment(filename?: string): Response; + + /** + * Set header `field` to `val`, or pass + * an object of header fields. + * + * Examples: + * + * res.set('Foo', ['bar', 'baz']); + * res.set('Accept', 'application/json'); + * res.set({ Accept: 'text/plain', 'X-API-Key': 'tobi' }); + * + * Aliased as `res.header()`. + */ + set(field: any): Response; + set(field: string, value?: string): Response; + + header(field: any): Response; + header(field: string, value?: string): Response; + + // Property indicating if HTTP headers has been sent for the response. + headersSent: boolean; + + /** + * Get value for header `field`. + * + * @param field + */ + get(field: string): string; + + /** + * Clear cookie `name`. + * + * @param name + * @param options + */ + clearCookie(name: string, options?: any): Response; + + /** + * Set cookie `name` to `val`, with the given `options`. + * + * Options: + * + * - `maxAge` max-age in milliseconds, converted to `expires` + * - `signed` sign the cookie + * - `path` defaults to "/" + * + * Examples: + * + * // "Remember Me" for 15 minutes + * res.cookie('rememberme', '1', { expires: new Date(Date.now() + 900000), httpOnly: true }); + * + * // save as above + * res.cookie('rememberme', '1', { maxAge: 900000, httpOnly: true }) + */ + cookie(name: string, val: string, options: CookieOptions): Response; + cookie(name: string, val: any, options: CookieOptions): Response; + cookie(name: string, val: any): Response; + + /** + * Set the location header to `url`. + * + * The given `url` can also be the name of a mapped url, for + * example by default express supports "back" which redirects + * to the _Referrer_ or _Referer_ headers or "/". + * + * Examples: + * + * res.location('/foo/bar').; + * res.location('http://example.com'); + * res.location('../login'); // /blog/post/1 -> /blog/login + * + * Mounting: + * + * When an application is mounted and `res.location()` + * is given a path that does _not_ lead with "/" it becomes + * relative to the mount-point. For example if the application + * is mounted at "/blog", the following would become "/blog/login". + * + * res.location('login'); + * + * While the leading slash would result in a location of "/login": + * + * res.location('/login'); + * + * @param url + */ + location(url: string): Response; + + /** + * Redirect to the given `url` with optional response `status` + * defaulting to 302. + * + * The resulting `url` is determined by `res.location()`, so + * it will play nicely with mounted apps, relative paths, + * `"back"` etc. + * + * Examples: + * + * res.redirect('/foo/bar'); + * res.redirect('http://example.com'); + * res.redirect(301, 'http://example.com'); + * res.redirect('http://example.com', 301); + * res.redirect('../login'); // /blog/post/1 -> /blog/login + */ + redirect(url: string): void; + redirect(status: number, url: string): void; + redirect(url: string, status: number): void; + + /** + * Render `view` with the given `options` and optional callback `fn`. + * When a callback function is given a response will _not_ be made + * automatically, otherwise a response of _200_ and _text/html_ is given. + * + * Options: + * + * - `cache` boolean hinting to the engine it should cache + * - `filename` filename of the view being rendered + */ + render(view: string, options?: Object, callback?: (err: Error, html: string) => void): void; + render(view: string, callback?: (err: Error, html: string) => void): void; + + locals: any; + + charset: string; + + /** + * Adds the field to the Vary response header, if it is not there already. + * Examples: + * + * res.vary('User-Agent').render('docs'); + * + */ + vary(field: string): Response; +} + +interface Handler extends RequestHandler { } + +interface RequestParamHandler { + (req: Request, res: Response, next: NextFunction, value: any, name: string): any; +} + +interface Application extends IRouter, Express.Application { + /** + * Express instance itself is a request handler, which could be invoked without + * third argument. + */ + (req: Request, res: Response): any; + + /** + * Initialize the server. + * + * - setup default configuration + * - setup default middleware + * - setup route reflection methods + */ + init(): void; + + /** + * Initialize application configuration. + */ + defaultConfiguration(): void; + + /** + * Register the given template engine callback `fn` + * as `ext`. + * + * By default will `require()` the engine based on the + * file extension. For example if you try to render + * a "foo.jade" file Express will invoke the following internally: + * + * app.engine('jade', require('jade').__express); + * + * For engines that do not provide `.__express` out of the box, + * or if you wish to "map" a different extension to the template engine + * you may use this method. For example mapping the EJS template engine to + * ".html" files: + * + * app.engine('html', require('ejs').renderFile); + * + * In this case EJS provides a `.renderFile()` method with + * the same signature that Express expects: `(path, options, callback)`, + * though note that it aliases this method as `ejs.__express` internally + * so if you're using ".ejs" extensions you dont need to do anything. + * + * Some template engines do not follow this convention, the + * [Consolidate.js](https://github.com/visionmedia/consolidate.js) + * library was created to map all of node's popular template + * engines to follow this convention, thus allowing them to + * work seamlessly within Express. + */ + engine(ext: string, fn: Function): Application; + + /** + * Assign `setting` to `val`, or return `setting`'s value. + * + * app.set('foo', 'bar'); + * app.get('foo'); + * // => "bar" + * app.set('foo', ['bar', 'baz']); + * app.get('foo'); + * // => ["bar", "baz"] + * + * Mounted servers inherit their parent server's settings. + * + * @param setting + * @param val + */ + set(setting: string, val: any): Application; + get: { (name: string): any; } & IRouterMatcher; + + param(name: string | string[], handler: RequestParamHandler): this; + // Alternatively, you can pass only a callback, in which case you have the opportunity to alter the app.param() API + param(callback: (name: string, matcher: RegExp) => RequestParamHandler): this; + + /** + * Return the app's absolute pathname + * based on the parent(s) that have + * mounted it. + * + * For example if the application was + * mounted as "/admin", which itself + * was mounted as "/blog" then the + * return value would be "/blog/admin". + */ + path(): string; + + /** + * Check if `setting` is enabled (truthy). + * + * app.enabled('foo') + * // => false + * + * app.enable('foo') + * app.enabled('foo') + * // => true + */ + enabled(setting: string): boolean; + + /** + * Check if `setting` is disabled. + * + * app.disabled('foo') + * // => true + * + * app.enable('foo') + * app.disabled('foo') + * // => false + * + * @param setting + */ + disabled(setting: string): boolean; + + /** + * Enable `setting`. + * + * @param setting + */ + enable(setting: string): Application; + + /** + * Disable `setting`. + * + * @param setting + */ + disable(setting: string): Application; + + /** + * Configure callback for zero or more envs, + * when no `env` is specified that callback will + * be invoked for all environments. Any combination + * can be used multiple times, in any order desired. + * + * Examples: + * + * app.configure(function(){ + * // executed for all envs + * }); + * + * app.configure('stage', function(){ + * // executed staging env + * }); + * + * app.configure('stage', 'production', function(){ + * // executed for stage and production + * }); + * + * Note: + * + * These callbacks are invoked immediately, and + * are effectively sugar for the following: + * + * var env = process.env.NODE_ENV || 'development'; + * + * switch (env) { + * case 'development': + * ... + * break; + * case 'stage': + * ... + * break; + * case 'production': + * ... + * break; + * } + * + * @param env + * @param fn + */ + configure(fn: Function): Application; + configure(env0: string, fn: Function): Application; + configure(env0: string, env1: string, fn: Function): Application; + configure(env0: string, env1: string, env2: string, fn: Function): Application; + configure(env0: string, env1: string, env2: string, env3: string, fn: Function): Application; + configure(env0: string, env1: string, env2: string, env3: string, env4: string, fn: Function): Application; + + /** + * Render the given view `name` name with `options` + * and a callback accepting an error and the + * rendered template string. + * + * Example: + * + * app.render('email', { name: 'Tobi' }, function(err, html){ + * // ... + * }) + * + * @param name + * @param options or fn + * @param fn + */ + render(name: string, options?: Object, callback?: (err: Error, html: string) => void): void; + render(name: string, callback: (err: Error, html: string) => void): void; + + + /** + * Listen for connections. + * + * A node `http.Server` is returned, with this + * application (which is a `Function`) as its + * callback. If you wish to create both an HTTP + * and HTTPS server you may do so with the "http" + * and "https" modules as shown here: + * + * var http = require('http') + * , https = require('https') + * , express = require('express') + * , app = express(); + * + * http.createServer(app).listen(80); + * https.createServer({ ... }, app).listen(443); + */ + listen(port: number, hostname: string, backlog: number, callback?: Function): http.Server; + listen(port: number, hostname: string, callback?: Function): http.Server; + listen(port: number, callback?: Function): http.Server; + listen(path: string, callback?: Function): http.Server; + listen(handle: any, listeningListener?: Function): http.Server; + + router: string; + + settings: any; + + resource: any; + + map: any; + + locals: any; + + /** + * The app.routes object houses all of the routes defined mapped by the + * associated HTTP verb. This object may be used for introspection + * capabilities, for example Express uses this internally not only for + * routing but to provide default OPTIONS behaviour unless app.options() + * is used. Your application or framework may also remove routes by + * simply by removing them from this object. + */ + routes: any; + + /** + * Used to get all registered routes in Express Application + */ + _router: any; +} + +interface Express extends Application { + request: Request; + + response: Response; +} \ No newline at end of file diff --git a/extjs/ExtJS-tests.ts b/extjs/extjs-tests.ts similarity index 100% rename from extjs/ExtJS-tests.ts rename to extjs/extjs-tests.ts diff --git a/filesaver/FileSaver-tests.ts b/file-saver/FileSaver-tests.ts similarity index 100% rename from filesaver/FileSaver-tests.ts rename to file-saver/FileSaver-tests.ts diff --git a/filesaver/index.d.ts b/file-saver/index.d.ts similarity index 79% rename from filesaver/index.d.ts rename to file-saver/index.d.ts index 534ce4fe1c..31188a0c7a 100644 --- a/filesaver/index.d.ts +++ b/file-saver/index.d.ts @@ -20,13 +20,13 @@ interface FileSaver { * @summary File name. * @type {DOMString} */ - filename: string, + filename: string, - /** - * @summary Disable Unicode text encoding hints or not. - * @type {boolean} - */ - disableAutoBOM?: boolean + /** + * @summary Disable Unicode text encoding hints or not. + * @type {boolean} + */ + disableAutoBOM?: boolean ): void } diff --git a/filesaver/tsconfig.json b/file-saver/tsconfig.json similarity index 100% rename from filesaver/tsconfig.json rename to file-saver/tsconfig.json diff --git a/fossil-delta/fossil-delta-tests.ts b/fossil-delta/fossil-delta-tests.ts index 113757c677..f3a7635a7c 100644 --- a/fossil-delta/fossil-delta-tests.ts +++ b/fossil-delta/fossil-delta-tests.ts @@ -1,4 +1,3 @@ -/// import * as fossilDelta from "fossil-delta"; var origin = new Array(1,2,3); diff --git a/fossil-delta/fossil-delta.d.ts b/fossil-delta/fossil-delta.d.ts deleted file mode 100644 index fddb8f50af..0000000000 --- a/fossil-delta/fossil-delta.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -// Type definitions for fossil-delta 0.2.5 -// Project: https://github.com/dchest/fossil-delta-js -// Definitions by: Endel Dreyer -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -/// -declare module "fossil-delta" { - type ByteArray = Array | Uint8Array | Buffer; - - export function create(origin: ByteArray, target: ByteArray): Array; - export function apply(origin: ByteArray, delta: Array): Array; - export function outputSize(delta: Array): number; -} diff --git a/fossil-delta/index.d.ts b/fossil-delta/index.d.ts new file mode 100644 index 0000000000..c72e914df6 --- /dev/null +++ b/fossil-delta/index.d.ts @@ -0,0 +1,12 @@ +// Type definitions for fossil-delta 0.2.5 +// Project: https://github.com/dchest/fossil-delta-js +// Definitions by: Endel Dreyer +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +type ByteArray = Array | Uint8Array | Buffer; + +export function create(origin: ByteArray, target: ByteArray): Array; +export function apply(origin: ByteArray, delta: Array): Array; +export function outputSize(delta: Array): number; diff --git a/fossil-delta/tsconfig.json b/fossil-delta/tsconfig.json new file mode 100644 index 0000000000..434d0761b7 --- /dev/null +++ b/fossil-delta/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "fossil-delta-tests.ts" + ] +} \ No newline at end of file diff --git a/gl-matrix/gl-matrix-tests.ts b/gl-matrix/gl-matrix-tests.ts index a7ea76f353..5df2220f72 100644 --- a/gl-matrix/gl-matrix-tests.ts +++ b/gl-matrix/gl-matrix-tests.ts @@ -1,5 +1,3 @@ - - // common import {vec2, mat2, mat3, mat4, vec3, vec4, mat2d, quat} from "gl-matrix"; @@ -345,3 +343,352 @@ outQuat = quat.fromMat3(outQuat, mat3A); outQuat = quat.calculateW(outQuat, quatA); outBool = quat.exactEquals(quatA, quatB); outBool = quat.equals(quatA, quatB); + +// common +import _vec2 = require('gl-matrix/src/gl-matrix/vec2'); +import _vec3 = require('gl-matrix/src/gl-matrix/vec3'); +import _vec4 = require('gl-matrix/src/gl-matrix/vec4'); +import _mat2 = require('gl-matrix/src/gl-matrix/mat2'); +import _mat2d = require('gl-matrix/src/gl-matrix/mat2d'); +import _mat3 = require('gl-matrix/src/gl-matrix/mat3'); +import _mat4 = require('gl-matrix/src/gl-matrix/mat4'); +import _quat = require('gl-matrix/src/gl-matrix/quat'); + +vecArray = new Float32Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]); + +vec2A = _vec2.fromValues(1, 2); +vec2B = _vec2.fromValues(3, 4); +vec3A = _vec3.fromValues(1, 2, 3); +vec3B = _vec3.fromValues(3, 4, 5); +vec4A = _vec4.fromValues(1, 2, 3, 4); +vec4B = _vec4.fromValues(3, 4, 5, 6); +mat2A = _mat2.fromValues(1, 2, 3, 4); +mat2B = _mat2.fromValues(1, 2, 3, 4); +mat2dA = _mat2d.fromValues(1, 2, 3, 4, 5, 6); +mat2dB = _mat2d.fromValues(1, 2, 3, 4, 5, 6); +mat3A = _mat3.fromValues(1, 2, 3, 4, 5, 6, 7, 8, 9); +mat3B = _mat3.fromValues(1, 2, 3, 4, 5, 6, 7, 8, 9); +mat4A = _mat4.fromValues(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16); +mat4B = _mat4.fromValues(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16); +quatA = _quat.fromValues(1, 2, 3, 4); +quatB = _quat.fromValues(5, 6, 7, 8); + +outVec2 = _vec2.create(); +outVec3 = _vec3.create(); +outVec4 = _vec4.create(); +outMat2 = _mat2.create(); +outMat2d = _mat2d.create(); +outMat3 = _mat3.create(); +outMat4 = _mat4.create(); +outQuat = _quat.create(); + +// _vec2 +outVec2 = _vec2.create(); +outVec2 = _vec2.clone(vec2A); +outVec2 = _vec2.fromValues(1, 2); +outVec2 = _vec2.copy(outVec2, vec2A); +outVec2 = _vec2.set(outVec2, 1, 2); +outVec2 = _vec2.add(outVec2, vec2A, vec2B); +outVec2 = _vec2.subtract(outVec2, vec2A, vec2B); +outVec2 = _vec2.sub(outVec2, vec2A, vec2B); +outVec2 = _vec2.multiply(outVec2, vec2A, vec2B); +outVec2 = _vec2.mul(outVec2, vec2A, vec2B); +outVec2 = _vec2.divide(outVec2, vec2A, vec2B); +outVec2 = _vec2.div(outVec2, vec2A, vec2B); +outVec2 = _vec2.ceil(outVec2, vec2A); +outVec2 = _vec2.floor(outVec2, vec2A); +outVec2 = _vec2.min(outVec2, vec2A, vec2B); +outVec2 = _vec2.max(outVec2, vec2A, vec2B); +outVec2 = _vec2.round(outVec2, vec2A); +outVec2 = _vec2.scale(outVec2, vec2A, 2); +outVec2 = _vec2.scaleAndAdd(outVec2, vec2A, vec2B, 0.5); +outVal = _vec2.distance(vec2A, vec2B); +outVal = _vec2.dist(vec2A, vec2B); +outVal = _vec2.squaredDistance(vec2A, vec2B); +outVal = _vec2.sqrDist(vec2A, vec2B); +outVal = _vec2.length(vec2A); +outVal = _vec2.len(vec2A); +outVal = _vec2.squaredLength(vec2A); +outVal = _vec2.sqrLen(vec2A); +outVec2 = _vec2.negate(outVec2, vec2A); +outVec2 = _vec2.inverse(outVec2, vec2A); +outVec2 = _vec2.normalize(outVec2, vec2A); +outVal = _vec2.dot(vec2A, vec2B); +outVec2 = _vec2.cross(outVec2, vec2A, vec2B); +outVec2 = _vec2.lerp(outVec2, vec2A, vec2B, 0.5); +outVec2 = _vec2.random(outVec2); +outVec2 = _vec2.random(outVec2, 5.0); +outVec2 = _vec2.transformMat2(outVec2, vec2A, mat2A); +outVec2 = _vec2.transformMat2d(outVec2, vec2A, mat2dA); +outVec2 = _vec2.transformMat3(outVec2, vec2A, mat3A); +outVec2 = _vec2.transformMat4(outVec2, vec2A, mat4A); +vecArray = _vec2.forEach(vecArray, 0, 0, 0, _vec2.normalize); +outStr = _vec2.str(vec2A); +outBool = _vec2.exactEquals(vec2A, vec2B); +outBool = _vec2.equals(vec2A, vec2B); +outVec2 = _vec2.add(outVec2, [0, 1], [2, 3]); // test one method with number array input + +// _vec3 +outVec3 = _vec3.create(); +outVec3 = _vec3.clone(vec3A); +outVec3 = _vec3.fromValues(1, 2, 3); +outVec3 = _vec3.copy(outVec3, vec3A); +outVec3 = _vec3.set(outVec3, 1, 2, 3); +outVec3 = _vec3.add(outVec3, vec3A, vec3B); +outVec3 = _vec3.subtract(outVec3, vec3A, vec3B); +outVec3 = _vec3.sub(outVec3, vec3A, vec3B); +outVec3 = _vec3.multiply(outVec3, vec3A, vec3B); +outVec3 = _vec3.mul(outVec3, vec3A, vec3B); +outVec3 = _vec3.divide(outVec3, vec3A, vec3B); +outVec3 = _vec3.div(outVec3, vec3A, vec3B); +outVec3 = _vec3.ceil(outVec3, vec3A); +outVec3 = _vec3.floor(outVec3, vec3A); +outVec3 = _vec3.min(outVec3, vec3A, vec3B); +outVec3 = _vec3.max(outVec3, vec3A, vec3B); +outVec3 = _vec3.round(outVec3, vec3A); +outVec3 = _vec3.scale(outVec3, vec3A, 2); +outVec3 = _vec3.scaleAndAdd(outVec3, vec3A, vec3B, 0.5); +outVal = _vec3.distance(vec3A, vec3B); +outVal = _vec3.dist(vec3A, vec3B); +outVal = _vec3.squaredDistance(vec3A, vec3B); +outVal = _vec3.sqrDist(vec3A, vec3B); +outVal = _vec3.length(vec3A); +outVal = _vec3.len(vec3A); +outVal = _vec3.squaredLength(vec3A); +outVal = _vec3.sqrLen(vec3A); +outVec3 = _vec3.negate(outVec3, vec3A); +outVec3 = _vec3.inverse(outVec3, vec3A); +outVec3 = _vec3.normalize(outVec3, vec3A); +outVal = _vec3.dot(vec3A, vec3B); +outVec3 = _vec3.cross(outVec3, vec3A, vec3B); +outVec3 = _vec3.lerp(outVec3, vec3A, vec3B, 0.5); +outVec3 = _vec3.hermite(outVec3, vec3A, vec3B, vec3A, vec3B, 0.5); +outVec3 = _vec3.bezier(outVec3, vec3A, vec3B, vec3A, vec3B, 0.5); +outVec3 = _vec3.random(outVec3); +outVec3 = _vec3.random(outVec3, 5.0); +outVec3 = _vec3.transformMat3(outVec3, vec3A, mat3A); +outVec3 = _vec3.transformMat4(outVec3, vec3A, mat4A); +outVec3 = _vec3.transformQuat(outVec3, vec3A, quatA); +outVec3 = _vec3.rotateX(outVec3, vec3A, vec3B, Math.PI); +outVec3 = _vec3.rotateY(outVec3, vec3A, vec3B, Math.PI); +outVec3 = _vec3.rotateZ(outVec3, vec3A, vec3B, Math.PI); +vecArray = _vec3.forEach(vecArray, 0, 0, 0, _vec3.normalize); +outVal = _vec3.angle(vec3A, vec3B); +outStr = _vec3.str(vec3A); +outBool = _vec3.exactEquals(vec3A, vec3B); +outBool = _vec3.equals(vec3A, vec3B); +outVec3 = _vec3.add(outVec3, [0, 1, 2], [3, 4, 5]); // test one method with number array input + +// _vec4 +outVec4 = _vec4.create(); +outVec4 = _vec4.clone(vec4A); +outVec4 = _vec4.fromValues(1, 2, 3, 4); +outVec4 = _vec4.copy(outVec4, vec4A); +outVec4 = _vec4.set(outVec4, 1, 2, 3, 4); +outVec4 = _vec4.add(outVec4, vec4A, vec4B); +outVec4 = _vec4.subtract(outVec4, vec4A, vec4B); +outVec4 = _vec4.sub(outVec4, vec4A, vec4B); +outVec4 = _vec4.multiply(outVec4, vec4A, vec4B); +outVec4 = _vec4.mul(outVec4, vec4A, vec4B); +outVec4 = _vec4.divide(outVec4, vec4A, vec4B); +outVec4 = _vec4.div(outVec4, vec4A, vec4B); +outVec4 = _vec4.ceil(outVec4, vec4A); +outVec4 = _vec4.floor(outVec4, vec4A); +outVec4 = _vec4.min(outVec4, vec4A, vec4B); +outVec4 = _vec4.max(outVec4, vec4A, vec4B); +outVec4 = _vec4.scale(outVec4, vec4A, 2); +outVec4 = _vec4.scaleAndAdd(outVec4, vec4A, vec4B, 0.5); +outVal = _vec4.distance(vec4A, vec4B); +outVal = _vec4.dist(vec4A, vec4B); +outVal = _vec4.squaredDistance(vec4A, vec4B); +outVal = _vec4.sqrDist(vec4A, vec4B); +outVal = _vec4.length(vec4A); +outVal = _vec4.len(vec4A); +outVal = _vec4.squaredLength(vec4A); +outVal = _vec4.sqrLen(vec4A); +outVec4 = _vec4.negate(outVec4, vec4A); +outVec4 = _vec4.inverse(outVec4, vec4A); +outVec4 = _vec4.normalize(outVec4, vec4A); +outVal = _vec4.dot(vec4A, vec4B); +outVec4 = _vec4.lerp(outVec4, vec4A, vec4B, 0.5); +outVec4 = _vec4.random(outVec4); +outVec4 = _vec4.random(outVec4, 5.0); +outVec4 = _vec4.transformMat4(outVec4, vec4A, mat4A); +outVec4 = _vec4.transformQuat(outVec4, vec4A, quatA); +vecArray = _vec4.forEach(vecArray, 0, 0, 0, _vec4.normalize); +outStr = _vec4.str(vec4A); +outBool = _vec4.exactEquals(vec4A, vec4B); +outBool = _vec4.equals(vec4A, vec4B); +outVec4 = _vec4.add(outVec4, [0, 1, 2, 3], [4, 5, 6, 7]); // test one method with number array input + +// _mat2 +outMat2 = _mat2.create(); +outMat2 = _mat2.clone(mat2A); +outMat2 = _mat2.copy(outMat2, mat2A); +outMat2 = _mat2.identity(outMat2); +outMat2 = _mat2.fromValues(1, 2, 3, 4); +outMat2 = _mat2.set(outMat2, 1, 2, 3, 4); +outMat2 = _mat2.transpose(outMat2, mat2A); +outMat2 = _mat2.invert(outMat2, mat2A); +outMat2 = _mat2.adjoint(outMat2, mat2A); +outVal = _mat2.determinant(mat2A); +outMat2 = _mat2.multiply(outMat2, mat2A, mat2B); +outMat2 = _mat2.mul(outMat2, mat2A, mat2B); +outMat2 = _mat2.rotate(outMat2, mat2A, Math.PI * 0.5); +outMat2 = _mat2.scale(outMat2, mat2A, vec2A); +outMat2 = _mat2.fromRotation(outMat2, 0.5); +outMat2 = _mat2.fromScaling(outMat2, vec2A); +outStr = _mat2.str(mat2A); +outVal = _mat2.frob(mat2A); +var L = _mat2.create(); +var D = _mat2.create(); +var U = _mat2.create(); +outMat2 = _mat2.LDU(L, D, U, mat2A); +outMat2 = _mat2.add(outMat2, mat2A, mat2B); +outMat2 = _mat2.subtract(outMat2, mat2A, mat2B); +outMat2 = _mat2.sub(outMat2, mat2A, mat2B); +outBool = _mat2.exactEquals(mat2A, mat2B); +outBool = _mat2.equals(mat2A, mat2B); +outMat2 = _mat2.multiplyScalar (outMat2, mat2A, 2); +outMat2 = _mat2.multiplyScalarAndAdd (outMat2, mat2A, mat2B, 2); + +// _mat2d +outMat2d = _mat2d.create(); +outMat2d = _mat2d.clone(mat2dA); +outMat2d = _mat2d.copy(outMat2d, mat2dA); +outMat2d = _mat2d.identity(outMat2d); +outMat2d = _mat2d.fromValues(1, 2, 3, 4, 5, 6); +outMat2d = _mat2d.set(outMat2d, 1, 2, 3, 4, 5, 6); +outMat2d = _mat2d.invert(outMat2d, mat2dA); +outVal = _mat2d.determinant(mat2dA); +outMat2d = _mat2d.multiply(outMat2d, mat2dA, mat2dB); +outMat2d = _mat2d.mul(outMat2d, mat2dA, mat2dB); +outMat2d = _mat2d.rotate(outMat2d, mat2dA, Math.PI * 0.5); +outMat2d = _mat2d.scale(outMat2d, mat2dA, vec2A); +outMat2d = _mat2d.translate(outMat2d, mat2dA, vec2A); +outMat2d = _mat2d.fromRotation(outMat2d, 0.5); +outMat2d = _mat2d.fromScaling(outMat2d, vec2A); +outMat2d = _mat2d.fromTranslation(outMat2d, vec2A); +outStr = _mat2d.str(mat2dA); +outVal = _mat2d.frob(mat2dA); +outMat2d = _mat2d.add(outMat2d, mat2dA, mat2dB); +outMat2d = _mat2d.subtract(outMat2d, mat2dA, mat2dB); +outMat2d = _mat2d.sub(outMat2d, mat2dA, mat2dB); +outMat2d = _mat2d.multiplyScalar (outMat2d, mat2dA, 2); +outMat2d = _mat2d.multiplyScalarAndAdd (outMat2d, mat2dA, mat2dB, 2); +outBool = _mat2d.exactEquals(mat2dA, mat2dB); +outBool = _mat2d.equals(mat2dA, mat2dB); + +// _mat3 +outMat3 = _mat3.create(); +outMat3 = _mat3.fromMat4(outMat3, mat4A); +outMat3 = _mat3.clone(mat3A); +outMat3 = _mat3.copy(outMat3, mat3A); +outMat3 = _mat3.fromValues(1, 2, 3, 4, 5, 6, 7, 8, 9); +outMat3 = _mat3.set(outMat3, 1, 2, 3, 4, 5, 6, 7, 8, 9); +outMat3 = _mat3.identity(outMat3); +outMat3 = _mat3.transpose(outMat3, mat3A); +outMat3 = _mat3.invert(outMat3, mat3A); +outMat3 = _mat3.adjoint(outMat3, mat3A); +outVal = _mat3.determinant(mat3A); +outMat3 = _mat3.multiply(outMat3, mat3A, mat3B); +outMat3 = _mat3.mul(outMat3, mat3A, mat3B); +outMat3 = _mat3.translate(outMat3, mat3A, vec3A); +outMat3 = _mat3.rotate(outMat3, mat3A, Math.PI/2); +outMat3 = _mat3.scale(outMat3, mat3A, vec2A); +outMat3 = _mat3.fromTranslation(outMat3, vec2A); +outMat3 = _mat3.fromRotation(outMat3, Math.PI); +outMat3 = _mat3.fromScaling(outMat3, vec2A); +outMat3 = _mat3.fromMat2d(outMat3, mat2dA); +outMat3 = _mat3.fromQuat(outMat3, quatA); +outMat3 = _mat3.normalFromMat4(outMat3, mat4A); +outStr = _mat3.str(mat3A); +outVal = _mat3.frob(mat3A); +outMat3 = _mat3.add(outMat3, mat3A, mat3B); +outMat3 = _mat3.subtract(outMat3, mat3A, mat3B); +outMat3 = _mat3.sub(outMat3, mat3A, mat3B); +outMat3 = _mat3.multiplyScalar (outMat3, mat3A, 2); +outMat3 = _mat3.multiplyScalarAndAdd (outMat3, mat3A, mat3B, 2); +outBool = _mat3.exactEquals(mat3A, mat3B); +outBool = _mat3.equals(mat3A, mat3B); + +//_mat4 +outMat4 = _mat4.create(); +outMat4 = _mat4.clone(mat4A); +outMat4 = _mat4.copy(outMat4, mat4A); +outMat4 = _mat4.fromValues(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16); +outMat4 = _mat4.set(outMat4, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16); +outMat4 = _mat4.identity(outMat4); +outMat4 = _mat4.transpose(outMat4, mat4A); +outMat4 = _mat4.invert(outMat4, mat4A); +outMat4 = _mat4.adjoint(outMat4, mat4A); +outVal = _mat4.determinant(mat4A); +outMat4 = _mat4.multiply(outMat4, mat4A, mat4B); +outMat4 = _mat4.mul(outMat4, mat4A, mat4B); +outMat4 = _mat4.translate(outMat4, mat4A, vec3A); +outMat4 = _mat4.scale(outMat4, mat4A, vec3A); +outMat4 = _mat4.rotate(outMat4, mat4A, Math.PI, vec3A); +outMat4 = _mat4.rotateX(outMat4, mat4A, Math.PI); +outMat4 = _mat4.rotateY(outMat4, mat4A, Math.PI); +outMat4 = _mat4.rotateZ(outMat4, mat4A, Math.PI); +outMat4 = _mat4.fromTranslation(outMat4, vec3A); +outMat4 = _mat4.fromRotation(outMat4, Math.PI, vec3A); +outMat4 = _mat4.fromScaling(outMat4, vec3A); +outMat4 = _mat4.fromXRotation(outMat4, Math.PI); +outMat4 = _mat4.fromYRotation(outMat4, Math.PI); +outMat4 = _mat4.fromZRotation(outMat4, Math.PI); +outMat4 = _mat4.fromRotationTranslation(outMat4, quatA, vec3A); +outVec3 = _mat4.getTranslation(outVec3, mat4A) +outQuat = _mat4.getRotation(outQuat, mat4A) +outMat4 = _mat4.fromRotationTranslationScale(outMat4, quatA, vec3A, vec3B); +outMat4 = _mat4.fromRotationTranslationScaleOrigin(outMat4, quatA, vec3A, vec3B, vec3A); +outMat4 = _mat4.fromQuat(outMat4, quatB); +outMat4 = _mat4.frustum(outMat4, -1, 1, -1, 1, -1, 1); +outMat4 = _mat4.perspective(outMat4, Math.PI, 1, 0, 1); +outMat4 = _mat4.perspectiveFromFieldOfView(outMat4, {upDegrees:Math.PI, downDegrees:-Math.PI, leftDegrees:-Math.PI, rightDegrees:Math.PI}, 1, 0); +outMat4 = _mat4.ortho(outMat4, -1, 1, -1, 1, -1, 1); +outMat4 = _mat4.lookAt(outMat4, vec3A, vec3B, vec3A); +outStr = _mat4.str(mat4A); +outVal = _mat4.frob(mat4A); +outMat4 = _mat4.add(outMat4, mat4A, mat4B); +outMat4 = _mat4.subtract(outMat4, mat4A, mat4B); +outMat4 = _mat4.sub(outMat4, mat4A, mat4B); +outMat4 = _mat4.multiplyScalar (outMat4, mat4A, 2); +outMat4 = _mat4.multiplyScalarAndAdd (outMat4, mat4A, mat4B, 2); +outBool = _mat4.exactEquals(mat4A, mat4B); +outBool = _mat4.equals(mat4A, mat4B); + +// _quat +var deg90 = Math.PI / 2; +outQuat = _quat.create(); +outQuat = _quat.clone(quatA); +outQuat = _quat.fromValues(1, 2, 3, 4); +outQuat = _quat.copy(outQuat, quatA); +outQuat = _quat.set(outQuat, 1, 2, 3, 4); +outQuat = _quat.identity(outQuat); +outQuat = _quat.rotationTo(outQuat, vec3A, vec3B); +outQuat = _quat.setAxes(outQuat, vec3A, vec3B, vec3A); +outQuat = _quat.setAxisAngle(outQuat, vec3A, Math.PI * 0.5); +outVal = _quat.getAxisAngle (outVec3, quatA); +outQuat = _quat.add(outQuat, quatA, quatB); +outQuat = _quat.multiply(outQuat, quatA, quatB); +outQuat = _quat.mul(outQuat, quatA, quatB); +outQuat = _quat.scale(outQuat, quatA, 2); +outVal = _quat.length(quatA); +outVal = _quat.len(quatA); +outVal = _quat.squaredLength(quatA); +outVal = _quat.sqrLen(quatA); +outQuat = _quat.normalize(outQuat, quatA); +outVal = _quat.dot(quatA, quatB); +outQuat = _quat.lerp(outQuat, quatA, quatB, 0.5); +outQuat = _quat.slerp(outQuat, quatA, quatB, 0.5); +outQuat = _quat.invert(outQuat, quatA); +outQuat = _quat.conjugate(outQuat, quatA); +outStr = _quat.str(quatA); +outQuat = _quat.rotateX(outQuat, quatA, deg90); +outQuat = _quat.rotateY(outQuat, quatA, deg90); +outQuat = _quat.rotateZ(outQuat, quatA, deg90); +outQuat = _quat.fromMat3(outQuat, mat3A); +outQuat = _quat.calculateW(outQuat, quatA); +outBool = _quat.exactEquals(quatA, quatB); +outBool = _quat.equals(quatA, quatB); diff --git a/gl-matrix/index.d.ts b/gl-matrix/index.d.ts index 2edbbd8bb5..b8a6694e40 100644 --- a/gl-matrix/index.d.ts +++ b/gl-matrix/index.d.ts @@ -3,3042 +3,3084 @@ // Definitions by: Mattijs Kneppers , based on definitions by Tat // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -// vec2 -export class vec2 extends Float32Array { - private typeVec2: number; +declare module 'gl-matrix' { + // vec2 + export class vec2 extends Float32Array { + private typeVec2: number; - /** - * Creates a new, empty vec2 - * - * @returns a new 2D vector - */ - public static create(): vec2; + /** + * Creates a new, empty vec2 + * + * @returns a new 2D vector + */ + public static create(): vec2; - /** - * Creates a new vec2 initialized with values from an existing vector - * - * @param a a vector to clone - * @returns a new 2D vector - */ - public static clone(a: vec2 | number[]): vec2; + /** + * Creates a new vec2 initialized with values from an existing vector + * + * @param a a vector to clone + * @returns a new 2D vector + */ + public static clone(a: vec2 | number[]): vec2; - /** - * Creates a new vec2 initialized with the given values - * - * @param x X component - * @param y Y component - * @returns a new 2D vector - */ - public static fromValues(x: number, y: number): vec2; + /** + * Creates a new vec2 initialized with the given values + * + * @param x X component + * @param y Y component + * @returns a new 2D vector + */ + public static fromValues(x: number, y: number): vec2; - /** - * Copy the values from one vec2 to another - * - * @param out the receiving vector - * @param a the source vector - * @returns out - */ - public static copy(out: vec2, a: vec2 | number[]): vec2; + /** + * Copy the values from one vec2 to another + * + * @param out the receiving vector + * @param a the source vector + * @returns out + */ + public static copy(out: vec2, a: vec2 | number[]): vec2; - /** - * Set the components of a vec2 to the given values - * - * @param out the receiving vector - * @param x X component - * @param y Y component - * @returns out - */ - public static set(out: vec2, x: number, y: number): vec2; + /** + * Set the components of a vec2 to the given values + * + * @param out the receiving vector + * @param x X component + * @param y Y component + * @returns out + */ + public static set(out: vec2, x: number, y: number): vec2; - /** - * Adds two vec2's - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static add(out: vec2, a: vec2 | number[], b: vec2 | number[]): vec2; + /** + * Adds two vec2's + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static add(out: vec2, a: vec2 | number[], b: vec2 | number[]): vec2; - /** - * Subtracts vector b from vector a - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static subtract(out: vec2, a: vec2 | number[], b: vec2 | number[]): vec2; + /** + * Subtracts vector b from vector a + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static subtract(out: vec2, a: vec2 | number[], b: vec2 | number[]): vec2; - /** - * Subtracts vector b from vector a - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static sub(out: vec2, a: vec2 | number[], b: vec2 | number[]): vec2; + /** + * Subtracts vector b from vector a + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static sub(out: vec2, a: vec2 | number[], b: vec2 | number[]): vec2; - /** - * Multiplies two vec2's - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static multiply(out: vec2, a: vec2 | number[], b: vec2 | number[]): vec2; + /** + * Multiplies two vec2's + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static multiply(out: vec2, a: vec2 | number[], b: vec2 | number[]): vec2; - /** - * Multiplies two vec2's - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static mul(out: vec2, a: vec2 | number[], b: vec2 | number[]): vec2; + /** + * Multiplies two vec2's + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static mul(out: vec2, a: vec2 | number[], b: vec2 | number[]): vec2; - /** - * Divides two vec2's - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static divide(out: vec2, a: vec2 | number[], b: vec2 | number[]): vec2; + /** + * Divides two vec2's + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static divide(out: vec2, a: vec2 | number[], b: vec2 | number[]): vec2; - /** - * Divides two vec2's - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static div(out: vec2, a: vec2 | number[], b: vec2 | number[]): vec2; + /** + * Divides two vec2's + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static div(out: vec2, a: vec2 | number[], b: vec2 | number[]): vec2; - /** - * Math.ceil the components of a vec2 - * - * @param {vec2} out the receiving vector - * @param {vec2} a vector to ceil - * @returns {vec2} out - */ - public static ceil(out: vec2, a: vec2 | number[]): vec2; + /** + * Math.ceil the components of a vec2 + * + * @param {vec2} out the receiving vector + * @param {vec2} a vector to ceil + * @returns {vec2} out + */ + public static ceil(out: vec2, a: vec2 | number[]): vec2; - /** - * Math.floor the components of a vec2 - * - * @param {vec2} out the receiving vector - * @param {vec2} a vector to floor - * @returns {vec2} out - */ - public static floor (out: vec2, a: vec2 | number[]): vec2; + /** + * Math.floor the components of a vec2 + * + * @param {vec2} out the receiving vector + * @param {vec2} a vector to floor + * @returns {vec2} out + */ + public static floor (out: vec2, a: vec2 | number[]): vec2; - /** - * Returns the minimum of two vec2's - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static min(out: vec2, a: vec2 | number[], b: vec2 | number[]): vec2; + /** + * Returns the minimum of two vec2's + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static min(out: vec2, a: vec2 | number[], b: vec2 | number[]): vec2; - /** - * Returns the maximum of two vec2's - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static max(out: vec2, a: vec2 | number[], b: vec2 | number[]): vec2; + /** + * Returns the maximum of two vec2's + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static max(out: vec2, a: vec2 | number[], b: vec2 | number[]): vec2; - /** - * Math.round the components of a vec2 - * - * @param {vec2} out the receiving vector - * @param {vec2} a vector to round - * @returns {vec2} out - */ - public static round(out: vec2, a: vec2 | number[]): vec2; + /** + * Math.round the components of a vec2 + * + * @param {vec2} out the receiving vector + * @param {vec2} a vector to round + * @returns {vec2} out + */ + public static round(out: vec2, a: vec2 | number[]): vec2; - /** - * Scales a vec2 by a scalar number - * - * @param out the receiving vector - * @param a the vector to scale - * @param b amount to scale the vector by - * @returns out - */ - public static scale(out: vec2, a: vec2 | number[], b: number): vec2; + /** + * Scales a vec2 by a scalar number + * + * @param out the receiving vector + * @param a the vector to scale + * @param b amount to scale the vector by + * @returns out + */ + public static scale(out: vec2, a: vec2 | number[], b: number): vec2; - /** - * Adds two vec2's after scaling the second operand by a scalar value - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @param scale the amount to scale b by before adding - * @returns out - */ - public static scaleAndAdd(out: vec2, a: vec2 | number[], b: vec2 | number[], scale: number): vec2; + /** + * Adds two vec2's after scaling the second operand by a scalar value + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @param scale the amount to scale b by before adding + * @returns out + */ + public static scaleAndAdd(out: vec2, a: vec2 | number[], b: vec2 | number[], scale: number): vec2; - /** - * Calculates the euclidian distance between two vec2's - * - * @param a the first operand - * @param b the second operand - * @returns distance between a and b - */ - public static distance(a: vec2 | number[], b: vec2 | number[]): number; + /** + * Calculates the euclidian distance between two vec2's + * + * @param a the first operand + * @param b the second operand + * @returns distance between a and b + */ + public static distance(a: vec2 | number[], b: vec2 | number[]): number; - /** - * Calculates the euclidian distance between two vec2's - * - * @param a the first operand - * @param b the second operand - * @returns distance between a and b - */ - public static dist(a: vec2 | number[], b: vec2 | number[]): number; + /** + * Calculates the euclidian distance between two vec2's + * + * @param a the first operand + * @param b the second operand + * @returns distance between a and b + */ + public static dist(a: vec2 | number[], b: vec2 | number[]): number; - /** - * Calculates the squared euclidian distance between two vec2's - * - * @param a the first operand - * @param b the second operand - * @returns squared distance between a and b - */ - public static squaredDistance(a: vec2 | number[], b: vec2 | number[]): number; + /** + * Calculates the squared euclidian distance between two vec2's + * + * @param a the first operand + * @param b the second operand + * @returns squared distance between a and b + */ + public static squaredDistance(a: vec2 | number[], b: vec2 | number[]): number; - /** - * Calculates the squared euclidian distance between two vec2's - * - * @param a the first operand - * @param b the second operand - * @returns squared distance between a and b - */ - public static sqrDist(a: vec2 | number[], b: vec2 | number[]): number; + /** + * Calculates the squared euclidian distance between two vec2's + * + * @param a the first operand + * @param b the second operand + * @returns squared distance between a and b + */ + public static sqrDist(a: vec2 | number[], b: vec2 | number[]): number; - /** - * Calculates the length of a vec2 - * - * @param a vector to calculate length of - * @returns length of a - */ - public static length(a: vec2 | number[]): number; + /** + * Calculates the length of a vec2 + * + * @param a vector to calculate length of + * @returns length of a + */ + public static length(a: vec2 | number[]): number; - /** - * Calculates the length of a vec2 - * - * @param a vector to calculate length of - * @returns length of a - */ - public static len(a: vec2 | number[]): number; + /** + * Calculates the length of a vec2 + * + * @param a vector to calculate length of + * @returns length of a + */ + public static len(a: vec2 | number[]): number; - /** - * Calculates the squared length of a vec2 - * - * @param a vector to calculate squared length of - * @returns squared length of a - */ - public static squaredLength(a: vec2 | number[]): number; + /** + * Calculates the squared length of a vec2 + * + * @param a vector to calculate squared length of + * @returns squared length of a + */ + public static squaredLength(a: vec2 | number[]): number; - /** - * Calculates the squared length of a vec2 - * - * @param a vector to calculate squared length of - * @returns squared length of a - */ - public static sqrLen(a: vec2 | number[]): number; + /** + * Calculates the squared length of a vec2 + * + * @param a vector to calculate squared length of + * @returns squared length of a + */ + public static sqrLen(a: vec2 | number[]): number; - /** - * Negates the components of a vec2 - * - * @param out the receiving vector - * @param a vector to negate - * @returns out - */ - public static negate(out: vec2, a: vec2 | number[]): vec2; + /** + * Negates the components of a vec2 + * + * @param out the receiving vector + * @param a vector to negate + * @returns out + */ + public static negate(out: vec2, a: vec2 | number[]): vec2; - /** - * Returns the inverse of the components of a vec2 - * - * @param out the receiving vector - * @param a vector to invert - * @returns out - */ - public static inverse(out: vec2, a: vec2 | number[]): vec2; + /** + * Returns the inverse of the components of a vec2 + * + * @param out the receiving vector + * @param a vector to invert + * @returns out + */ + public static inverse(out: vec2, a: vec2 | number[]): vec2; - /** - * Normalize a vec2 - * - * @param out the receiving vector - * @param a vector to normalize - * @returns out - */ - public static normalize(out: vec2, a: vec2 | number[]): vec2; + /** + * Normalize a vec2 + * + * @param out the receiving vector + * @param a vector to normalize + * @returns out + */ + public static normalize(out: vec2, a: vec2 | number[]): vec2; - /** - * Calculates the dot product of two vec2's - * - * @param a the first operand - * @param b the second operand - * @returns dot product of a and b - */ - public static dot(a: vec2 | number[], b: vec2 | number[]): number; + /** + * Calculates the dot product of two vec2's + * + * @param a the first operand + * @param b the second operand + * @returns dot product of a and b + */ + public static dot(a: vec2 | number[], b: vec2 | number[]): number; - /** - * Computes the cross product of two vec2's - * Note that the cross product must by definition produce a 3D vector - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static cross(out: vec2, a: vec2 | number[], b: vec2 | number[]): vec2; + /** + * Computes the cross product of two vec2's + * Note that the cross product must by definition produce a 3D vector + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static cross(out: vec2, a: vec2 | number[], b: vec2 | number[]): vec2; - /** - * Performs a linear interpolation between two vec2's - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @param t interpolation amount between the two inputs - * @returns out - */ - public static lerp(out: vec2, a: vec2 | number[], b: vec2 | number[], t: number): vec2; + /** + * Performs a linear interpolation between two vec2's + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @param t interpolation amount between the two inputs + * @returns out + */ + public static lerp(out: vec2, a: vec2 | number[], b: vec2 | number[], t: number): vec2; - /** - * Generates a random unit vector - * - * @param out the receiving vector - * @returns out - */ - public static random(out: vec2): vec2; + /** + * Generates a random unit vector + * + * @param out the receiving vector + * @returns out + */ + public static random(out: vec2): vec2; - /** - * Generates a random vector with the given scale - * - * @param out the receiving vector - * @param scale Length of the resulting vector. If ommitted, a unit vector will be returned - * @returns out - */ - public static random(out: vec2, scale: number): vec2; + /** + * Generates a random vector with the given scale + * + * @param out the receiving vector + * @param scale Length of the resulting vector. If ommitted, a unit vector will be returned + * @returns out + */ + public static random(out: vec2, scale: number): vec2; - /** - * Transforms the vec2 with a mat2 - * - * @param out the receiving vector - * @param a the vector to transform - * @param m matrix to transform with - * @returns out - */ - public static transformMat2(out: vec2, a: vec2 | number[], m: mat2): vec2; + /** + * Transforms the vec2 with a mat2 + * + * @param out the receiving vector + * @param a the vector to transform + * @param m matrix to transform with + * @returns out + */ + public static transformMat2(out: vec2, a: vec2 | number[], m: mat2): vec2; - /** - * Transforms the vec2 with a mat2d - * - * @param out the receiving vector - * @param a the vector to transform - * @param m matrix to transform with - * @returns out - */ - public static transformMat2d(out: vec2, a: vec2 | number[], m: mat2d): vec2; + /** + * Transforms the vec2 with a mat2d + * + * @param out the receiving vector + * @param a the vector to transform + * @param m matrix to transform with + * @returns out + */ + public static transformMat2d(out: vec2, a: vec2 | number[], m: mat2d): vec2; - /** - * Transforms the vec2 with a mat3 - * 3rd vector component is implicitly '1' - * - * @param out the receiving vector - * @param a the vector to transform - * @param m matrix to transform with - * @returns out - */ - public static transformMat3(out: vec2, a: vec2 | number[], m: mat3): vec2; + /** + * Transforms the vec2 with a mat3 + * 3rd vector component is implicitly '1' + * + * @param out the receiving vector + * @param a the vector to transform + * @param m matrix to transform with + * @returns out + */ + public static transformMat3(out: vec2, a: vec2 | number[], m: mat3): vec2; - /** - * Transforms the vec2 with a mat4 - * 3rd vector component is implicitly '0' - * 4th vector component is implicitly '1' - * - * @param out the receiving vector - * @param a the vector to transform - * @param m matrix to transform with - * @returns out - */ - public static transformMat4(out: vec2, a: vec2 | number[], m: mat4): vec2; + /** + * Transforms the vec2 with a mat4 + * 3rd vector component is implicitly '0' + * 4th vector component is implicitly '1' + * + * @param out the receiving vector + * @param a the vector to transform + * @param m matrix to transform with + * @returns out + */ + public static transformMat4(out: vec2, a: vec2 | number[], m: mat4): vec2; - /** - * Perform some operation over an array of vec2s. - * - * @param a the array of vectors to iterate over - * @param stride Number of elements between the start of each vec2. If 0 assumes tightly packed - * @param offset Number of elements to skip at the beginning of the array - * @param count Number of vec2s to iterate over. If 0 iterates over entire array - * @param fn Function to call for each vector in the array - * @param arg additional argument to pass to fn - * @returns a - */ - public static forEach(a: Float32Array, stride: number, offset: number, count: number, - fn: (a: vec2 | number[], b: vec2 | number[], arg: any) => void, arg: any): Float32Array; + /** + * Perform some operation over an array of vec2s. + * + * @param a the array of vectors to iterate over + * @param stride Number of elements between the start of each vec2. If 0 assumes tightly packed + * @param offset Number of elements to skip at the beginning of the array + * @param count Number of vec2s to iterate over. If 0 iterates over entire array + * @param fn Function to call for each vector in the array + * @param arg additional argument to pass to fn + * @returns a + */ + public static forEach(a: Float32Array, stride: number, offset: number, count: number, + fn: (a: vec2 | number[], b: vec2 | number[], arg: any) => void, arg: any): Float32Array; - /** - * Perform some operation over an array of vec2s. - * - * @param a the array of vectors to iterate over - * @param stride Number of elements between the start of each vec2. If 0 assumes tightly packed - * @param offset Number of elements to skip at the beginning of the array - * @param count Number of vec2s to iterate over. If 0 iterates over entire array - * @param fn Function to call for each vector in the array - * @returns a - */ - public static forEach(a: Float32Array, stride: number, offset: number, count: number, - fn: (a: vec2 | number[], b: vec2 | number[]) => void): Float32Array; + /** + * Perform some operation over an array of vec2s. + * + * @param a the array of vectors to iterate over + * @param stride Number of elements between the start of each vec2. If 0 assumes tightly packed + * @param offset Number of elements to skip at the beginning of the array + * @param count Number of vec2s to iterate over. If 0 iterates over entire array + * @param fn Function to call for each vector in the array + * @returns a + */ + public static forEach(a: Float32Array, stride: number, offset: number, count: number, + fn: (a: vec2 | number[], b: vec2 | number[]) => void): Float32Array; - /** - * Returns a string representation of a vector - * - * @param a vector to represent as a string - * @returns string representation of the vector - */ - public static str(a: vec2 | number[]): string; + /** + * Returns a string representation of a vector + * + * @param a vector to represent as a string + * @returns string representation of the vector + */ + public static str(a: vec2 | number[]): string; - /** - * Returns whether or not the vectors exactly have the same elements in the same position (when compared with ===) - * - * @param {vec2} a The first vector. - * @param {vec2} b The second vector. - * @returns {boolean} True if the vectors are equal, false otherwise. - */ - public static exactEquals (a: vec2 | number[], b: vec2 | number[]): boolean; + /** + * Returns whether or not the vectors exactly have the same elements in the same position (when compared with ===) + * + * @param {vec2} a The first vector. + * @param {vec2} b The second vector. + * @returns {boolean} True if the vectors are equal, false otherwise. + */ + public static exactEquals (a: vec2 | number[], b: vec2 | number[]): boolean; - /** - * Returns whether or not the vectors have approximately the same elements in the same position. - * - * @param {vec2} a The first vector. - * @param {vec2} b The second vector. - * @returns {boolean} True if the vectors are equal, false otherwise. - */ - public static equals (a: vec2 | number[], b: vec2 | number[]): boolean; + /** + * Returns whether or not the vectors have approximately the same elements in the same position. + * + * @param {vec2} a The first vector. + * @param {vec2} b The second vector. + * @returns {boolean} True if the vectors are equal, false otherwise. + */ + public static equals (a: vec2 | number[], b: vec2 | number[]): boolean; + } + + // vec3 + export class vec3 extends Float32Array { + private typeVec3: number; + + /** + * Creates a new, empty vec3 + * + * @returns a new 3D vector + */ + public static create(): vec3; + + /** + * Creates a new vec3 initialized with values from an existing vector + * + * @param a vector to clone + * @returns a new 3D vector + */ + public static clone(a: vec3 | number[]): vec3; + + /** + * Creates a new vec3 initialized with the given values + * + * @param x X component + * @param y Y component + * @param z Z component + * @returns a new 3D vector + */ + public static fromValues(x: number, y: number, z: number): vec3; + + /** + * Copy the values from one vec3 to another + * + * @param out the receiving vector + * @param a the source vector + * @returns out + */ + public static copy(out: vec3, a: vec3 | number[]): vec3; + + /** + * Set the components of a vec3 to the given values + * + * @param out the receiving vector + * @param x X component + * @param y Y component + * @param z Z component + * @returns out + */ + public static set(out: vec3, x: number, y: number, z: number): vec3; + + /** + * Adds two vec3's + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static add(out: vec3, a: vec3 | number[], b: vec3 | number[]): vec3; + + /** + * Subtracts vector b from vector a + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static subtract(out: vec3, a: vec3 | number[], b: vec3 | number[]): vec3; + + /** + * Subtracts vector b from vector a + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static sub(out: vec3, a: vec3 | number[], b: vec3 | number[]): vec3 + + /** + * Multiplies two vec3's + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static multiply(out: vec3, a: vec3 | number[], b: vec3 | number[]): vec3; + + /** + * Multiplies two vec3's + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static mul(out: vec3, a: vec3 | number[], b: vec3 | number[]): vec3; + + /** + * Divides two vec3's + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static divide(out: vec3, a: vec3 | number[], b: vec3 | number[]): vec3; + + /** + * Divides two vec3's + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static div(out: vec3, a: vec3 | number[], b: vec3 | number[]): vec3; + + /** + * Math.ceil the components of a vec3 + * + * @param {vec3} out the receiving vector + * @param {vec3} a vector to ceil + * @returns {vec3} out + */ + public static ceil (out: vec3, a: vec3 | number[]): vec3; + + /** + * Math.floor the components of a vec3 + * + * @param {vec3} out the receiving vector + * @param {vec3} a vector to floor + * @returns {vec3} out + */ + public static floor (out: vec3, a: vec3 | number[]): vec3; + + /** + * Returns the minimum of two vec3's + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static min(out: vec3, a: vec3 | number[], b: vec3 | number[]): vec3; + + /** + * Returns the maximum of two vec3's + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static max(out: vec3, a: vec3 | number[], b: vec3 | number[]): vec3; + + /** + * Math.round the components of a vec3 + * + * @param {vec3} out the receiving vector + * @param {vec3} a vector to round + * @returns {vec3} out + */ + public static round (out: vec3, a: vec3 | number[]): vec3 + + /** + * Scales a vec3 by a scalar number + * + * @param out the receiving vector + * @param a the vector to scale + * @param b amount to scale the vector by + * @returns out + */ + public static scale(out: vec3, a: vec3 | number[], b: number): vec3; + + /** + * Adds two vec3's after scaling the second operand by a scalar value + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @param scale the amount to scale b by before adding + * @returns out + */ + public static scaleAndAdd(out: vec3, a: vec3 | number[], b: vec3 | number[], scale: number): vec3; + + /** + * Calculates the euclidian distance between two vec3's + * + * @param a the first operand + * @param b the second operand + * @returns distance between a and b + */ + public static distance(a: vec3 | number[], b: vec3 | number[]): number; + + /** + * Calculates the euclidian distance between two vec3's + * + * @param a the first operand + * @param b the second operand + * @returns distance between a and b + */ + public static dist(a: vec3 | number[], b: vec3 | number[]): number; + + /** + * Calculates the squared euclidian distance between two vec3's + * + * @param a the first operand + * @param b the second operand + * @returns squared distance between a and b + */ + public static squaredDistance(a: vec3 | number[], b: vec3 | number[]): number; + + /** + * Calculates the squared euclidian distance between two vec3's + * + * @param a the first operand + * @param b the second operand + * @returns squared distance between a and b + */ + public static sqrDist(a: vec3 | number[], b: vec3 | number[]): number; + + /** + * Calculates the length of a vec3 + * + * @param a vector to calculate length of + * @returns length of a + */ + public static length(a: vec3 | number[]): number; + + /** + * Calculates the length of a vec3 + * + * @param a vector to calculate length of + * @returns length of a + */ + public static len(a: vec3 | number[]): number; + + /** + * Calculates the squared length of a vec3 + * + * @param a vector to calculate squared length of + * @returns squared length of a + */ + public static squaredLength(a: vec3 | number[]): number; + + /** + * Calculates the squared length of a vec3 + * + * @param a vector to calculate squared length of + * @returns squared length of a + */ + public static sqrLen(a: vec3 | number[]): number; + + /** + * Negates the components of a vec3 + * + * @param out the receiving vector + * @param a vector to negate + * @returns out + */ + public static negate(out: vec3, a: vec3 | number[]): vec3; + + /** + * Returns the inverse of the components of a vec3 + * + * @param out the receiving vector + * @param a vector to invert + * @returns out + */ + public static inverse(out: vec3, a: vec3 | number[]): vec3; + + /** + * Normalize a vec3 + * + * @param out the receiving vector + * @param a vector to normalize + * @returns out + */ + public static normalize(out: vec3, a: vec3 | number[]): vec3; + + /** + * Calculates the dot product of two vec3's + * + * @param a the first operand + * @param b the second operand + * @returns dot product of a and b + */ + public static dot(a: vec3 | number[], b: vec3 | number[]): number; + + /** + * Computes the cross product of two vec3's + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static cross(out: vec3, a: vec3 | number[], b: vec3 | number[]): vec3; + + /** + * Performs a linear interpolation between two vec3's + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @param t interpolation amount between the two inputs + * @returns out + */ + public static lerp(out: vec3, a: vec3 | number[], b: vec3 | number[], t: number): vec3; + + /** + * Performs a hermite interpolation with two control points + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @param {vec3} c the third operand + * @param {vec3} d the fourth operand + * @param {number} t interpolation amount between the two inputs + * @returns {vec3} out + */ + public static hermite (out: vec3, a: vec3 | number[], b: vec3 | number[], c: vec3 | number[], d: vec3 | number[], t: number): vec3; + + /** + * Performs a bezier interpolation with two control points + * + * @param {vec3} out the receiving vector + * @param {vec3} a the first operand + * @param {vec3} b the second operand + * @param {vec3} c the third operand + * @param {vec3} d the fourth operand + * @param {number} t interpolation amount between the two inputs + * @returns {vec3} out + */ + public static bezier (out: vec3, a: vec3 | number[], b: vec3 | number[], c: vec3 | number[], d: vec3 | number[], t: number): vec3; + + /** + * Generates a random unit vector + * + * @param out the receiving vector + * @returns out + */ + public static random(out: vec3): vec3; + + /** + * Generates a random vector with the given scale + * + * @param out the receiving vector + * @param [scale] Length of the resulting vector. If omitted, a unit vector will be returned + * @returns out + */ + public static random(out: vec3, scale: number): vec3; + + /** + * Transforms the vec3 with a mat3. + * + * @param out the receiving vector + * @param a the vector to transform + * @param m the 3x3 matrix to transform with + * @returns out + */ + public static transformMat3(out: vec3, a: vec3 | number[], m: mat3): vec3; + + /** + * Transforms the vec3 with a mat4. + * 4th vector component is implicitly '1' + * + * @param out the receiving vector + * @param a the vector to transform + * @param m matrix to transform with + * @returns out + */ + public static transformMat4(out: vec3, a: vec3 | number[], m: mat4): vec3; + + /** + * Transforms the vec3 with a quat + * + * @param out the receiving vector + * @param a the vector to transform + * @param q quaternion to transform with + * @returns out + */ + public static transformQuat(out: vec3, a: vec3 | number[], q: quat): vec3; + + + /** + * Rotate a 3D vector around the x-axis + * @param out The receiving vec3 + * @param a The vec3 point to rotate + * @param b The origin of the rotation + * @param c The angle of rotation + * @returns out + */ + public static rotateX(out: vec3, a: vec3 | number[], b: vec3 | number[], c: number): vec3; + + /** + * Rotate a 3D vector around the y-axis + * @param out The receiving vec3 + * @param a The vec3 point to rotate + * @param b The origin of the rotation + * @param c The angle of rotation + * @returns out + */ + public static rotateY(out: vec3, a: vec3 | number[], b: vec3 | number[], c: number): vec3; + + /** + * Rotate a 3D vector around the z-axis + * @param out The receiving vec3 + * @param a The vec3 point to rotate + * @param b The origin of the rotation + * @param c The angle of rotation + * @returns out + */ + public static rotateZ(out: vec3, a: vec3 | number[], b: vec3 | number[], c: number): vec3; + + /** + * Perform some operation over an array of vec3s. + * + * @param a the array of vectors to iterate over + * @param stride Number of elements between the start of each vec3. If 0 assumes tightly packed + * @param offset Number of elements to skip at the beginning of the array + * @param count Number of vec3s to iterate over. If 0 iterates over entire array + * @param fn Function to call for each vector in the array + * @param arg additional argument to pass to fn + * @returns a + * @function + */ + public static forEach(a: Float32Array, stride: number, offset: number, count: number, + fn: (a: vec3 | number[], b: vec3 | number[], arg: any) => void, arg: any): Float32Array; + + /** + * Perform some operation over an array of vec3s. + * + * @param a the array of vectors to iterate over + * @param stride Number of elements between the start of each vec3. If 0 assumes tightly packed + * @param offset Number of elements to skip at the beginning of the array + * @param count Number of vec3s to iterate over. If 0 iterates over entire array + * @param fn Function to call for each vector in the array + * @returns a + * @function + */ + public static forEach(a: Float32Array, stride: number, offset: number, count: number, + fn: (a: vec3 | number[], b: vec3 | number[]) => void): Float32Array; + + /** + * Get the angle between two 3D vectors + * @param a The first operand + * @param b The second operand + * @returns The angle in radians + */ + public static angle(a: vec3 | number[], b: vec3 | number[]): number; + + /** + * Returns a string representation of a vector + * + * @param a vector to represent as a string + * @returns string representation of the vector + */ + public static str(a: vec3 | number[]): string; + + /** + * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===) + * + * @param {vec3} a The first vector. + * @param {vec3} b The second vector. + * @returns {boolean} True if the vectors are equal, false otherwise. + */ + public static exactEquals (a: vec3 | number[], b: vec3 | number[]): boolean + + /** + * Returns whether or not the vectors have approximately the same elements in the same position. + * + * @param {vec3} a The first vector. + * @param {vec3} b The second vector. + * @returns {boolean} True if the vectors are equal, false otherwise. + */ + public static equals (a: vec3 | number[], b: vec3 | number[]): boolean + } + + // vec4 + export class vec4 extends Float32Array { + private typeVec3: number; + + /** + * Creates a new, empty vec4 + * + * @returns a new 4D vector + */ + public static create(): vec4; + + /** + * Creates a new vec4 initialized with values from an existing vector + * + * @param a vector to clone + * @returns a new 4D vector + */ + public static clone(a: vec4 | number[]): vec4; + + /** + * Creates a new vec4 initialized with the given values + * + * @param x X component + * @param y Y component + * @param z Z component + * @param w W component + * @returns a new 4D vector + */ + public static fromValues(x: number, y: number, z: number, w: number): vec4; + + /** + * Copy the values from one vec4 to another + * + * @param out the receiving vector + * @param a the source vector + * @returns out + */ + public static copy(out: vec4, a: vec4 | number[]): vec4; + + /** + * Set the components of a vec4 to the given values + * + * @param out the receiving vector + * @param x X component + * @param y Y component + * @param z Z component + * @param w W component + * @returns out + */ + public static set(out: vec4, x: number, y: number, z: number, w: number): vec4; + + /** + * Adds two vec4's + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static add(out: vec4, a: vec4 | number[], b: vec4 | number[]): vec4; + + /** + * Subtracts vector b from vector a + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static subtract(out: vec4, a: vec4 | number[], b: vec4 | number[]): vec4; + + /** + * Subtracts vector b from vector a + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static sub(out: vec4, a: vec4 | number[], b: vec4 | number[]): vec4; + + /** + * Multiplies two vec4's + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static multiply(out: vec4, a: vec4 | number[], b: vec4 | number[]): vec4; + + /** + * Multiplies two vec4's + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static mul(out: vec4, a: vec4 | number[], b: vec4 | number[]): vec4; + + /** + * Divides two vec4's + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static divide(out: vec4, a: vec4 | number[], b: vec4 | number[]): vec4; + + /** + * Divides two vec4's + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static div(out: vec4, a: vec4 | number[], b: vec4 | number[]): vec4; + + /** + * Math.ceil the components of a vec4 + * + * @param {vec4} out the receiving vector + * @param {vec4} a vector to ceil + * @returns {vec4} out + */ + public static ceil (out: vec4, a: vec4 | number[]): vec4; + + /** + * Math.floor the components of a vec4 + * + * @param {vec4} out the receiving vector + * @param {vec4} a vector to floor + * @returns {vec4} out + */ + public static floor (out: vec4, a: vec4 | number[]): vec4; + + /** + * Returns the minimum of two vec4's + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static min(out: vec4, a: vec4 | number[], b: vec4 | number[]): vec4; + + /** + * Returns the maximum of two vec4's + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static max(out: vec4, a: vec4 | number[], b: vec4 | number[]): vec4; + + /** + * Math.round the components of a vec4 + * + * @param {vec4} out the receiving vector + * @param {vec4} a vector to round + * @returns {vec4} out + */ + public static round (out: vec4, a: vec4 | number[]): vec4; + + /** + * Scales a vec4 by a scalar number + * + * @param out the receiving vector + * @param a the vector to scale + * @param b amount to scale the vector by + * @returns out + */ + public static scale(out: vec4, a: vec4 | number[], b: number): vec4; + + /** + * Adds two vec4's after scaling the second operand by a scalar value + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @param scale the amount to scale b by before adding + * @returns out + */ + public static scaleAndAdd(out: vec4, a: vec4 | number[], b: vec4 | number[], scale: number): vec4; + + /** + * Calculates the euclidian distance between two vec4's + * + * @param a the first operand + * @param b the second operand + * @returns distance between a and b + */ + public static distance(a: vec4 | number[], b: vec4 | number[]): number; + + /** + * Calculates the euclidian distance between two vec4's + * + * @param a the first operand + * @param b the second operand + * @returns distance between a and b + */ + public static dist(a: vec4 | number[], b: vec4 | number[]): number; + + /** + * Calculates the squared euclidian distance between two vec4's + * + * @param a the first operand + * @param b the second operand + * @returns squared distance between a and b + */ + public static squaredDistance(a: vec4 | number[], b: vec4 | number[]): number; + + /** + * Calculates the squared euclidian distance between two vec4's + * + * @param a the first operand + * @param b the second operand + * @returns squared distance between a and b + */ + public static sqrDist(a: vec4 | number[], b: vec4 | number[]): number; + + /** + * Calculates the length of a vec4 + * + * @param a vector to calculate length of + * @returns length of a + */ + public static length(a: vec4 | number[]): number; + + /** + * Calculates the length of a vec4 + * + * @param a vector to calculate length of + * @returns length of a + */ + public static len(a: vec4 | number[]): number; + + /** + * Calculates the squared length of a vec4 + * + * @param a vector to calculate squared length of + * @returns squared length of a + */ + public static squaredLength(a: vec4 | number[]): number; + + /** + * Calculates the squared length of a vec4 + * + * @param a vector to calculate squared length of + * @returns squared length of a + */ + public static sqrLen(a: vec4 | number[]): number; + + /** + * Negates the components of a vec4 + * + * @param out the receiving vector + * @param a vector to negate + * @returns out + */ + public static negate(out: vec4, a: vec4 | number[]): vec4; + + /** + * Returns the inverse of the components of a vec4 + * + * @param out the receiving vector + * @param a vector to invert + * @returns out + */ + public static inverse(out: vec4, a: vec4 | number[]): vec4; + + /** + * Normalize a vec4 + * + * @param out the receiving vector + * @param a vector to normalize + * @returns out + */ + public static normalize(out: vec4, a: vec4 | number[]): vec4; + + /** + * Calculates the dot product of two vec4's + * + * @param a the first operand + * @param b the second operand + * @returns dot product of a and b + */ + public static dot(a: vec4 | number[], b: vec4 | number[]): number; + + /** + * Performs a linear interpolation between two vec4's + * + * @param out the receiving vector + * @param a the first operand + * @param b the second operand + * @param t interpolation amount between the two inputs + * @returns out + */ + public static lerp(out: vec4, a: vec4 | number[], b: vec4 | number[], t: number): vec4; + + /** + * Generates a random unit vector + * + * @param out the receiving vector + * @returns out + */ + public static random(out: vec4): vec4; + + /** + * Generates a random vector with the given scale + * + * @param out the receiving vector + * @param scale length of the resulting vector. If ommitted, a unit vector will be returned + * @returns out + */ + public static random(out: vec4, scale: number): vec4; + + /** + * Transforms the vec4 with a mat4. + * + * @param out the receiving vector + * @param a the vector to transform + * @param m matrix to transform with + * @returns out + */ + public static transformMat4(out: vec4, a: vec4 | number[], m: mat4): vec4; + + /** + * Transforms the vec4 with a quat + * + * @param out the receiving vector + * @param a the vector to transform + * @param q quaternion to transform with + * @returns out + */ + + public static transformQuat(out: vec4, a: vec4 | number[], q: quat): vec4; + + /** + * Perform some operation over an array of vec4s. + * + * @param a the array of vectors to iterate over + * @param stride Number of elements between the start of each vec4. If 0 assumes tightly packed + * @param offset Number of elements to skip at the beginning of the array + * @param count Number of vec4s to iterate over. If 0 iterates over entire array + * @param fn Function to call for each vector in the array + * @param arg additional argument to pass to fn + * @returns a + * @function + */ + public static forEach(a: Float32Array, stride: number, offset: number, count: number, + fn: (a: vec4 | number[], b: vec4 | number[], arg: any) => void, arg: any): Float32Array; + + /** + * Perform some operation over an array of vec4s. + * + * @param a the array of vectors to iterate over + * @param stride Number of elements between the start of each vec4. If 0 assumes tightly packed + * @param offset Number of elements to skip at the beginning of the array + * @param count Number of vec4s to iterate over. If 0 iterates over entire array + * @param fn Function to call for each vector in the array + * @returns a + * @function + */ + public static forEach(a: Float32Array, stride: number, offset: number, count: number, + fn: (a: vec4 | number[], b: vec4 | number[]) => void): Float32Array; + + /** + * Returns a string representation of a vector + * + * @param a vector to represent as a string + * @returns string representation of the vector + */ + public static str(a: vec4 | number[]): string; + + /** + * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===) + * + * @param {vec4} a The first vector. + * @param {vec4} b The second vector. + * @returns {boolean} True if the vectors are equal, false otherwise. + */ + public static exactEquals (a: vec4 | number[], b: vec4 | number[]): boolean; + + /** + * Returns whether or not the vectors have approximately the same elements in the same position. + * + * @param {vec4} a The first vector. + * @param {vec4} b The second vector. + * @returns {boolean} True if the vectors are equal, false otherwise. + */ + public static equals (a: vec4 | number[], b: vec4 | number[]): boolean; + } + + // mat2 + export class mat2 extends Float32Array { + private typeMat2: number; + + /** + * Creates a new identity mat2 + * + * @returns a new 2x2 matrix + */ + public static create(): mat2; + + /** + * Creates a new mat2 initialized with values from an existing matrix + * + * @param a matrix to clone + * @returns a new 2x2 matrix + */ + public static clone(a: mat2): mat2; + + /** + * Copy the values from one mat2 to another + * + * @param out the receiving matrix + * @param a the source matrix + * @returns out + */ + public static copy(out: mat2, a: mat2): mat2; + + /** + * Set a mat2 to the identity matrix + * + * @param out the receiving matrix + * @returns out + */ + public static identity(out: mat2): mat2; + + /** + * Create a new mat2 with the given values + * + * @param {number} m00 Component in column 0, row 0 position (index 0) + * @param {number} m01 Component in column 0, row 1 position (index 1) + * @param {number} m10 Component in column 1, row 0 position (index 2) + * @param {number} m11 Component in column 1, row 1 position (index 3) + * @returns {mat2} out A new 2x2 matrix + */ + public static fromValues(m00: number, m01: number, m10: number, m11: number): mat2; + + /** + * Set the components of a mat2 to the given values + * + * @param {mat2} out the receiving matrix + * @param {number} m00 Component in column 0, row 0 position (index 0) + * @param {number} m01 Component in column 0, row 1 position (index 1) + * @param {number} m10 Component in column 1, row 0 position (index 2) + * @param {number} m11 Component in column 1, row 1 position (index 3) + * @returns {mat2} out + */ + public static set(out: mat2, m00: number, m01: number, m10: number, m11: number): mat2; + + /** + * Transpose the values of a mat2 + * + * @param out the receiving matrix + * @param a the source matrix + * @returns out + */ + public static transpose(out: mat2, a: mat2): mat2; + + /** + * Inverts a mat2 + * + * @param out the receiving matrix + * @param a the source matrix + * @returns out + */ + public static invert(out: mat2, a: mat2): mat2; + + /** + * Calculates the adjugate of a mat2 + * + * @param out the receiving matrix + * @param a the source matrix + * @returns out + */ + public static adjoint(out: mat2, a: mat2): mat2; + + /** + * Calculates the determinant of a mat2 + * + * @param a the source matrix + * @returns determinant of a + */ + public static determinant(a: mat2): number; + + /** + * Multiplies two mat2's + * + * @param out the receiving matrix + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static multiply(out: mat2, a: mat2, b: mat2): mat2; + + /** + * Multiplies two mat2's + * + * @param out the receiving matrix + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static mul(out: mat2, a: mat2, b: mat2): mat2; + + /** + * Rotates a mat2 by the given angle + * + * @param out the receiving matrix + * @param a the matrix to rotate + * @param rad the angle to rotate the matrix by + * @returns out + */ + public static rotate(out: mat2, a: mat2, rad: number): mat2; + + /** + * Scales the mat2 by the dimensions in the given vec2 + * + * @param out the receiving matrix + * @param a the matrix to rotate + * @param v the vec2 to scale the matrix by + * @returns out + **/ + public static scale(out: mat2, a: mat2, v: vec2 | number[]): mat2; + + /** + * Creates a matrix from a given angle + * This is equivalent to (but much faster than): + * + * mat2.identity(dest); + * mat2.rotate(dest, dest, rad); + * + * @param {mat2} out mat2 receiving operation result + * @param {number} rad the angle to rotate the matrix by + * @returns {mat2} out + */ + public static fromRotation(out: mat2, rad: number): mat2; + + /** + * Creates a matrix from a vector scaling + * This is equivalent to (but much faster than): + * + * mat2.identity(dest); + * mat2.scale(dest, dest, vec); + * + * @param {mat2} out mat2 receiving operation result + * @param {vec2} v Scaling vector + * @returns {mat2} out + */ + public static fromScaling(out: mat2, v: vec2 | number[]): mat2; + + /** + * Returns a string representation of a mat2 + * + * @param a matrix to represent as a string + * @returns string representation of the matrix + */ + public static str(a: mat2): string; + + /** + * Returns Frobenius norm of a mat2 + * + * @param a the matrix to calculate Frobenius norm of + * @returns Frobenius norm + */ + public static frob(a: mat2): number; + + /** + * Returns L, D and U matrices (Lower triangular, Diagonal and Upper triangular) by factorizing the input matrix + * @param L the lower triangular matrix + * @param D the diagonal matrix + * @param U the upper triangular matrix + * @param a the input matrix to factorize + */ + public static LDU(L: mat2, D: mat2, U: mat2, a: mat2): mat2; + + /** + * Adds two mat2's + * + * @param {mat2} out the receiving matrix + * @param {mat2} a the first operand + * @param {mat2} b the second operand + * @returns {mat2} out + */ + public static add(out: mat2, a: mat2, b: mat2): mat2; + + /** + * Subtracts matrix b from matrix a + * + * @param {mat2} out the receiving matrix + * @param {mat2} a the first operand + * @param {mat2} b the second operand + * @returns {mat2} out + */ + public static subtract (out: mat2, a: mat2, b: mat2): mat2; + + /** + * Subtracts matrix b from matrix a + * + * @param {mat2} out the receiving matrix + * @param {mat2} a the first operand + * @param {mat2} b the second operand + * @returns {mat2} out + */ + public static sub (out: mat2, a: mat2, b: mat2): mat2; + + /** + * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===) + * + * @param {mat2} a The first matrix. + * @param {mat2} b The second matrix. + * @returns {boolean} True if the matrices are equal, false otherwise. + */ + public static exactEquals (a: mat2, b: mat2): boolean; + + /** + * Returns whether or not the matrices have approximately the same elements in the same position. + * + * @param {mat2} a The first matrix. + * @param {mat2} b The second matrix. + * @returns {boolean} True if the matrices are equal, false otherwise. + */ + public static equals (a: mat2, b: mat2): boolean; + + /** + * Multiply each element of the matrix by a scalar. + * + * @param {mat2} out the receiving matrix + * @param {mat2} a the matrix to scale + * @param {number} b amount to scale the matrix's elements by + * @returns {mat2} out + */ + public static multiplyScalar (out: mat2, a: mat2, b: number): mat2 + + /** + * Adds two mat2's after multiplying each element of the second operand by a scalar value. + * + * @param {mat2} out the receiving vector + * @param {mat2} a the first operand + * @param {mat2} b the second operand + * @param {number} scale the amount to scale b's elements by before adding + * @returns {mat2} out + */ + public static multiplyScalarAndAdd (out: mat2, a: mat2, b: mat2, scale: number): mat2 + + + + } + + // mat2d + export class mat2d extends Float32Array { + private typeMat2d: number; + + /** + * Creates a new identity mat2d + * + * @returns a new 2x3 matrix + */ + public static create(): mat2d; + + /** + * Creates a new mat2d initialized with values from an existing matrix + * + * @param a matrix to clone + * @returns a new 2x3 matrix + */ + public static clone(a: mat2d): mat2d; + + /** + * Copy the values from one mat2d to another + * + * @param out the receiving matrix + * @param a the source matrix + * @returns out + */ + public static copy(out: mat2d, a: mat2d): mat2d; + + /** + * Set a mat2d to the identity matrix + * + * @param out the receiving matrix + * @returns out + */ + public static identity(out: mat2d): mat2d; + + /** + * Create a new mat2d with the given values + * + * @param {number} a Component A (index 0) + * @param {number} b Component B (index 1) + * @param {number} c Component C (index 2) + * @param {number} d Component D (index 3) + * @param {number} tx Component TX (index 4) + * @param {number} ty Component TY (index 5) + * @returns {mat2d} A new mat2d + */ + public static fromValues (a: number, b: number, c: number, d: number, tx: number, ty: number): mat2d + + + /** + * Set the components of a mat2d to the given values + * + * @param {mat2d} out the receiving matrix + * @param {number} a Component A (index 0) + * @param {number} b Component B (index 1) + * @param {number} c Component C (index 2) + * @param {number} d Component D (index 3) + * @param {number} tx Component TX (index 4) + * @param {number} ty Component TY (index 5) + * @returns {mat2d} out + */ + public static set (out: mat2d, a: number, b: number, c: number, d: number, tx: number, ty: number): mat2d + + /** + * Inverts a mat2d + * + * @param out the receiving matrix + * @param a the source matrix + * @returns out + */ + public static invert(out: mat2d, a: mat2d): mat2d; + + /** + * Calculates the determinant of a mat2d + * + * @param a the source matrix + * @returns determinant of a + */ + public static determinant(a: mat2d): number; + + /** + * Multiplies two mat2d's + * + * @param out the receiving matrix + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static multiply(out: mat2d, a: mat2d, b: mat2d): mat2d; + + /** + * Multiplies two mat2d's + * + * @param out the receiving matrix + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static mul(out: mat2d, a: mat2d, b: mat2d): mat2d; + + /** + * Rotates a mat2d by the given angle + * + * @param out the receiving matrix + * @param a the matrix to rotate + * @param rad the angle to rotate the matrix by + * @returns out + */ + public static rotate(out: mat2d, a: mat2d, rad: number): mat2d; + + /** + * Scales the mat2d by the dimensions in the given vec2 + * + * @param out the receiving matrix + * @param a the matrix to translate + * @param v the vec2 to scale the matrix by + * @returns out + **/ + public static scale(out: mat2d, a: mat2d, v: vec2 | number[]): mat2d; + + /** + * Translates the mat2d by the dimensions in the given vec2 + * + * @param out the receiving matrix + * @param a the matrix to translate + * @param v the vec2 to translate the matrix by + * @returns out + **/ + public static translate(out: mat2d, a: mat2d, v: vec2 | number[]): mat2d; + + /** + * Creates a matrix from a given angle + * This is equivalent to (but much faster than): + * + * mat2d.identity(dest); + * mat2d.rotate(dest, dest, rad); + * + * @param {mat2d} out mat2d receiving operation result + * @param {number} rad the angle to rotate the matrix by + * @returns {mat2d} out + */ + public static fromRotation (out: mat2d, rad: number): mat2d; + + /** + * Creates a matrix from a vector scaling + * This is equivalent to (but much faster than): + * + * mat2d.identity(dest); + * mat2d.scale(dest, dest, vec); + * + * @param {mat2d} out mat2d receiving operation result + * @param {vec2} v Scaling vector + * @returns {mat2d} out + */ + public static fromScaling (out: mat2d, v: vec2 | number[]): mat2d; + + /** + * Creates a matrix from a vector translation + * This is equivalent to (but much faster than): + * + * mat2d.identity(dest); + * mat2d.translate(dest, dest, vec); + * + * @param {mat2d} out mat2d receiving operation result + * @param {vec2} v Translation vector + * @returns {mat2d} out + */ + public static fromTranslation (out: mat2d, v: vec2 | number[]): mat2d + + /** + * Returns a string representation of a mat2d + * + * @param a matrix to represent as a string + * @returns string representation of the matrix + */ + public static str(a: mat2d): string; + + /** + * Returns Frobenius norm of a mat2d + * + * @param a the matrix to calculate Frobenius norm of + * @returns Frobenius norm + */ + public static frob(a: mat2d): number; + + /** + * Adds two mat2d's + * + * @param {mat2d} out the receiving matrix + * @param {mat2d} a the first operand + * @param {mat2d} b the second operand + * @returns {mat2d} out + */ + public static add (out: mat2d, a: mat2d, b: mat2d): mat2d + + /** + * Subtracts matrix b from matrix a + * + * @param {mat2d} out the receiving matrix + * @param {mat2d} a the first operand + * @param {mat2d} b the second operand + * @returns {mat2d} out + */ + public static subtract(out: mat2d, a: mat2d, b: mat2d): mat2d + + /** + * Subtracts matrix b from matrix a + * + * @param {mat2d} out the receiving matrix + * @param {mat2d} a the first operand + * @param {mat2d} b the second operand + * @returns {mat2d} out + */ + public static sub(out: mat2d, a: mat2d, b: mat2d): mat2d + + /** + * Multiply each element of the matrix by a scalar. + * + * @param {mat2d} out the receiving matrix + * @param {mat2d} a the matrix to scale + * @param {number} b amount to scale the matrix's elements by + * @returns {mat2d} out + */ + public static multiplyScalar (out: mat2d, a: mat2d, b: number): mat2d; + + /** + * Adds two mat2d's after multiplying each element of the second operand by a scalar value. + * + * @param {mat2d} out the receiving vector + * @param {mat2d} a the first operand + * @param {mat2d} b the second operand + * @param {number} scale the amount to scale b's elements by before adding + * @returns {mat2d} out + */ + public static multiplyScalarAndAdd (out: mat2d, a: mat2d, b: mat2d, scale: number): mat2d + + /** + * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===) + * + * @param {mat2d} a The first matrix. + * @param {mat2d} b The second matrix. + * @returns {boolean} True if the matrices are equal, false otherwise. + */ + public static exactEquals (a: mat2d, b: mat2d): boolean; + + /** + * Returns whether or not the matrices have approximately the same elements in the same position. + * + * @param {mat2d} a The first matrix. + * @param {mat2d} b The second matrix. + * @returns {boolean} True if the matrices are equal, false otherwise. + */ + public static equals (a: mat2d, b: mat2d): boolean + } + + // mat3 + export class mat3 extends Float32Array { + private typeMat3: number; + + /** + * Creates a new identity mat3 + * + * @returns a new 3x3 matrix + */ + public static create(): mat3; + + /** + * Copies the upper-left 3x3 values into the given mat3. + * + * @param {mat3} out the receiving 3x3 matrix + * @param {mat4} a the source 4x4 matrix + * @returns {mat3} out + */ + public static fromMat4(out: mat3, a: mat4): mat3 + + /** + * Creates a new mat3 initialized with values from an existing matrix + * + * @param a matrix to clone + * @returns a new 3x3 matrix + */ + public static clone(a: mat3): mat3; + + /** + * Copy the values from one mat3 to another + * + * @param out the receiving matrix + * @param a the source matrix + * @returns out + */ + public static copy(out: mat3, a: mat3): mat3; + + /** + * Create a new mat3 with the given values + * + * @param {number} m00 Component in column 0, row 0 position (index 0) + * @param {number} m01 Component in column 0, row 1 position (index 1) + * @param {number} m02 Component in column 0, row 2 position (index 2) + * @param {number} m10 Component in column 1, row 0 position (index 3) + * @param {number} m11 Component in column 1, row 1 position (index 4) + * @param {number} m12 Component in column 1, row 2 position (index 5) + * @param {number} m20 Component in column 2, row 0 position (index 6) + * @param {number} m21 Component in column 2, row 1 position (index 7) + * @param {number} m22 Component in column 2, row 2 position (index 8) + * @returns {mat3} A new mat3 + */ + public static fromValues(m00: number, m01: number, m02: number, m10: number, m11: number, m12: number, m20: number, m21: number, m22: number): mat3; + + + /** + * Set the components of a mat3 to the given values + * + * @param {mat3} out the receiving matrix + * @param {number} m00 Component in column 0, row 0 position (index 0) + * @param {number} m01 Component in column 0, row 1 position (index 1) + * @param {number} m02 Component in column 0, row 2 position (index 2) + * @param {number} m10 Component in column 1, row 0 position (index 3) + * @param {number} m11 Component in column 1, row 1 position (index 4) + * @param {number} m12 Component in column 1, row 2 position (index 5) + * @param {number} m20 Component in column 2, row 0 position (index 6) + * @param {number} m21 Component in column 2, row 1 position (index 7) + * @param {number} m22 Component in column 2, row 2 position (index 8) + * @returns {mat3} out + */ + public static set(out: mat3, m00: number, m01: number, m02: number, m10: number, m11: number, m12: number, m20: number, m21: number, m22: number): mat3 + + /** + * Set a mat3 to the identity matrix + * + * @param out the receiving matrix + * @returns out + */ + public static identity(out: mat3): mat3; + + /** + * Transpose the values of a mat3 + * + * @param out the receiving matrix + * @param a the source matrix + * @returns out + */ + public static transpose(out: mat3, a: mat3): mat3; + + /** + * Inverts a mat3 + * + * @param out the receiving matrix + * @param a the source matrix + * @returns out + */ + public static invert(out: mat3, a: mat3): mat3; + + /** + * Calculates the adjugate of a mat3 + * + * @param out the receiving matrix + * @param a the source matrix + * @returns out + */ + public static adjoint(out: mat3, a: mat3): mat3; + + /** + * Calculates the determinant of a mat3 + * + * @param a the source matrix + * @returns determinant of a + */ + public static determinant(a: mat3): number; + + /** + * Multiplies two mat3's + * + * @param out the receiving matrix + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static multiply(out: mat3, a: mat3, b: mat3): mat3; + + /** + * Multiplies two mat3's + * + * @param out the receiving matrix + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static mul(out: mat3, a: mat3, b: mat3): mat3; + + + /** + * Translate a mat3 by the given vector + * + * @param out the receiving matrix + * @param a the matrix to translate + * @param v vector to translate by + * @returns out + */ + public static translate(out: mat3, a: mat3, v: vec3 | number[]): mat3; + + /** + * Rotates a mat3 by the given angle + * + * @param out the receiving matrix + * @param a the matrix to rotate + * @param rad the angle to rotate the matrix by + * @returns out + */ + public static rotate(out: mat3, a: mat3, rad: number): mat3; + + /** + * Scales the mat3 by the dimensions in the given vec2 + * + * @param out the receiving matrix + * @param a the matrix to rotate + * @param v the vec2 to scale the matrix by + * @returns out + **/ + public static scale(out: mat3, a: mat3, v: vec2 | number[]): mat3; + + /** + * Creates a matrix from a vector translation + * This is equivalent to (but much faster than): + * + * mat3.identity(dest); + * mat3.translate(dest, dest, vec); + * + * @param {mat3} out mat3 receiving operation result + * @param {vec2} v Translation vector + * @returns {mat3} out + */ + public static fromTranslation(out: mat3, v: vec2 | number[]): mat3 + + /** + * Creates a matrix from a given angle + * This is equivalent to (but much faster than): + * + * mat3.identity(dest); + * mat3.rotate(dest, dest, rad); + * + * @param {mat3} out mat3 receiving operation result + * @param {number} rad the angle to rotate the matrix by + * @returns {mat3} out + */ + public static fromRotation(out: mat3, rad: number): mat3 + + /** + * Creates a matrix from a vector scaling + * This is equivalent to (but much faster than): + * + * mat3.identity(dest); + * mat3.scale(dest, dest, vec); + * + * @param {mat3} out mat3 receiving operation result + * @param {vec2} v Scaling vector + * @returns {mat3} out + */ + public static fromScaling(out: mat3, v: vec2 | number[]): mat3 + + /** + * Copies the values from a mat2d into a mat3 + * + * @param out the receiving matrix + * @param {mat2d} a the matrix to copy + * @returns out + **/ + public static fromMat2d(out: mat3, a: mat2d): mat3; + + /** + * Calculates a 3x3 matrix from the given quaternion + * + * @param out mat3 receiving operation result + * @param q Quaternion to create matrix from + * + * @returns out + */ + public static fromQuat(out: mat3, q: quat): mat3; + + /** + * Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix + * + * @param out mat3 receiving operation result + * @param a Mat4 to derive the normal matrix from + * + * @returns out + */ + public static normalFromMat4(out: mat3, a: mat4): mat3; + + /** + * Returns a string representation of a mat3 + * + * @param mat matrix to represent as a string + * @returns string representation of the matrix + */ + public static str(mat: mat3): string; + + /** + * Returns Frobenius norm of a mat3 + * + * @param a the matrix to calculate Frobenius norm of + * @returns Frobenius norm + */ + public static frob(a: mat3): number; + + /** + * Adds two mat3's + * + * @param {mat3} out the receiving matrix + * @param {mat3} a the first operand + * @param {mat3} b the second operand + * @returns {mat3} out + */ + public static add(out: mat3, a: mat3, b: mat3): mat3 + + /** + * Subtracts matrix b from matrix a + * + * @param {mat3} out the receiving matrix + * @param {mat3} a the first operand + * @param {mat3} b the second operand + * @returns {mat3} out + */ + public static subtract(out: mat3, a: mat3, b: mat3): mat3 + + /** + * Subtracts matrix b from matrix a + * + * @param {mat3} out the receiving matrix + * @param {mat3} a the first operand + * @param {mat3} b the second operand + * @returns {mat3} out + */ + public static sub(out: mat3, a: mat3, b: mat3): mat3 + + /** + * Multiply each element of the matrix by a scalar. + * + * @param {mat3} out the receiving matrix + * @param {mat3} a the matrix to scale + * @param {number} b amount to scale the matrix's elements by + * @returns {mat3} out + */ + public static multiplyScalar(out: mat3, a: mat3, b: number): mat3 + + /** + * Adds two mat3's after multiplying each element of the second operand by a scalar value. + * + * @param {mat3} out the receiving vector + * @param {mat3} a the first operand + * @param {mat3} b the second operand + * @param {number} scale the amount to scale b's elements by before adding + * @returns {mat3} out + */ + public static multiplyScalarAndAdd(out: mat3, a: mat3, b: mat3, scale: number): mat3 + + /** + * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===) + * + * @param {mat3} a The first matrix. + * @param {mat3} b The second matrix. + * @returns {boolean} True if the matrices are equal, false otherwise. + */ + public static exactEquals(a: mat3, b: mat3): boolean; + + /** + * Returns whether or not the matrices have approximately the same elements in the same position. + * + * @param {mat3} a The first matrix. + * @param {mat3} b The second matrix. + * @returns {boolean} True if the matrices are equal, false otherwise. + */ + public static equals(a: mat3, b: mat3): boolean + } + + // mat4 + export class mat4 extends Float32Array { + private typeMat4: number; + + /** + * Creates a new identity mat4 + * + * @returns a new 4x4 matrix + */ + public static create(): mat4; + + /** + * Creates a new mat4 initialized with values from an existing matrix + * + * @param a matrix to clone + * @returns a new 4x4 matrix + */ + public static clone(a: mat4): mat4; + + /** + * Copy the values from one mat4 to another + * + * @param out the receiving matrix + * @param a the source matrix + * @returns out + */ + public static copy(out: mat4, a: mat4): mat4; + + + /** + * Create a new mat4 with the given values + * + * @param {number} m00 Component in column 0, row 0 position (index 0) + * @param {number} m01 Component in column 0, row 1 position (index 1) + * @param {number} m02 Component in column 0, row 2 position (index 2) + * @param {number} m03 Component in column 0, row 3 position (index 3) + * @param {number} m10 Component in column 1, row 0 position (index 4) + * @param {number} m11 Component in column 1, row 1 position (index 5) + * @param {number} m12 Component in column 1, row 2 position (index 6) + * @param {number} m13 Component in column 1, row 3 position (index 7) + * @param {number} m20 Component in column 2, row 0 position (index 8) + * @param {number} m21 Component in column 2, row 1 position (index 9) + * @param {number} m22 Component in column 2, row 2 position (index 10) + * @param {number} m23 Component in column 2, row 3 position (index 11) + * @param {number} m30 Component in column 3, row 0 position (index 12) + * @param {number} m31 Component in column 3, row 1 position (index 13) + * @param {number} m32 Component in column 3, row 2 position (index 14) + * @param {number} m33 Component in column 3, row 3 position (index 15) + * @returns {mat4} A new mat4 + */ + public static fromValues(m00: number, m01: number, m02: number, m03: number, m10: number, m11: number, m12: number, m13: number, m20: number, m21: number, m22: number, m23: number, m30: number, m31: number, m32: number, m33: number): mat4; + + /** + * Set the components of a mat4 to the given values + * + * @param {mat4} out the receiving matrix + * @param {number} m00 Component in column 0, row 0 position (index 0) + * @param {number} m01 Component in column 0, row 1 position (index 1) + * @param {number} m02 Component in column 0, row 2 position (index 2) + * @param {number} m03 Component in column 0, row 3 position (index 3) + * @param {number} m10 Component in column 1, row 0 position (index 4) + * @param {number} m11 Component in column 1, row 1 position (index 5) + * @param {number} m12 Component in column 1, row 2 position (index 6) + * @param {number} m13 Component in column 1, row 3 position (index 7) + * @param {number} m20 Component in column 2, row 0 position (index 8) + * @param {number} m21 Component in column 2, row 1 position (index 9) + * @param {number} m22 Component in column 2, row 2 position (index 10) + * @param {number} m23 Component in column 2, row 3 position (index 11) + * @param {number} m30 Component in column 3, row 0 position (index 12) + * @param {number} m31 Component in column 3, row 1 position (index 13) + * @param {number} m32 Component in column 3, row 2 position (index 14) + * @param {number} m33 Component in column 3, row 3 position (index 15) + * @returns {mat4} out + */ + public static set(out: mat4, m00: number, m01: number, m02: number, m03: number, m10: number, m11: number, m12: number, m13: number, m20: number, m21: number, m22: number, m23: number, m30: number, m31: number, m32: number, m33: number): mat4; + + /** + * Set a mat4 to the identity matrix + * + * @param out the receiving matrix + * @returns out + */ + public static identity(out: mat4): mat4; + + /** + * Transpose the values of a mat4 + * + * @param out the receiving matrix + * @param a the source matrix + * @returns out + */ + public static transpose(out: mat4, a: mat4): mat4; + + /** + * Inverts a mat4 + * + * @param out the receiving matrix + * @param a the source matrix + * @returns out + */ + public static invert(out: mat4, a: mat4): mat4; + + /** + * Calculates the adjugate of a mat4 + * + * @param out the receiving matrix + * @param a the source matrix + * @returns out + */ + public static adjoint(out: mat4, a: mat4): mat4; + + /** + * Calculates the determinant of a mat4 + * + * @param a the source matrix + * @returns determinant of a + */ + public static determinant(a: mat4): number; + + /** + * Multiplies two mat4's + * + * @param out the receiving matrix + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static multiply(out: mat4, a: mat4, b: mat4): mat4; + + /** + * Multiplies two mat4's + * + * @param out the receiving matrix + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static mul(out: mat4, a: mat4, b: mat4): mat4; + + /** + * Translate a mat4 by the given vector + * + * @param out the receiving matrix + * @param a the matrix to translate + * @param v vector to translate by + * @returns out + */ + public static translate(out: mat4, a: mat4, v: vec3 | number[]): mat4; + + /** + * Scales the mat4 by the dimensions in the given vec3 + * + * @param out the receiving matrix + * @param a the matrix to scale + * @param v the vec3 to scale the matrix by + * @returns out + **/ + public static scale(out: mat4, a: mat4, v: vec3 | number[]): mat4; + + /** + * Rotates a mat4 by the given angle + * + * @param out the receiving matrix + * @param a the matrix to rotate + * @param rad the angle to rotate the matrix by + * @param axis the axis to rotate around + * @returns out + */ + public static rotate(out: mat4, a: mat4, rad: number, axis: vec3 | number[]): mat4; + + /** + * Rotates a matrix by the given angle around the X axis + * + * @param out the receiving matrix + * @param a the matrix to rotate + * @param rad the angle to rotate the matrix by + * @returns out + */ + public static rotateX(out: mat4, a: mat4, rad: number): mat4; + + /** + * Rotates a matrix by the given angle around the Y axis + * + * @param out the receiving matrix + * @param a the matrix to rotate + * @param rad the angle to rotate the matrix by + * @returns out + */ + public static rotateY(out: mat4, a: mat4, rad: number): mat4; + + /** + * Rotates a matrix by the given angle around the Z axis + * + * @param out the receiving matrix + * @param a the matrix to rotate + * @param rad the angle to rotate the matrix by + * @returns out + */ + public static rotateZ(out: mat4, a: mat4, rad: number): mat4; + + /** + * Creates a matrix from a vector translation + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.translate(dest, dest, vec); + * + * @param {mat4} out mat4 receiving operation result + * @param {vec3} v Translation vector + * @returns {mat4} out + */ + public static fromTranslation(out: mat4, v: vec3 | number[]): mat4 + + /** + * Creates a matrix from a vector scaling + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.scale(dest, dest, vec); + * + * @param {mat4} out mat4 receiving operation result + * @param {vec3} v Scaling vector + * @returns {mat4} out + */ + public static fromScaling(out: mat4, v: vec3 | number[]): mat4 + + /** + * Creates a matrix from a given angle around a given axis + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.rotate(dest, dest, rad, axis); + * + * @param {mat4} out mat4 receiving operation result + * @param {number} rad the angle to rotate the matrix by + * @param {vec3} axis the axis to rotate around + * @returns {mat4} out + */ + public static fromRotation(out: mat4, rad: number, axis: vec3 | number[]): mat4 + + /** + * Creates a matrix from the given angle around the X axis + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.rotateX(dest, dest, rad); + * + * @param {mat4} out mat4 receiving operation result + * @param {number} rad the angle to rotate the matrix by + * @returns {mat4} out + */ + public static fromXRotation(out: mat4, rad: number): mat4 + + /** + * Creates a matrix from the given angle around the Y axis + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.rotateY(dest, dest, rad); + * + * @param {mat4} out mat4 receiving operation result + * @param {number} rad the angle to rotate the matrix by + * @returns {mat4} out + */ + public static fromYRotation(out: mat4, rad: number): mat4 + + + /** + * Creates a matrix from the given angle around the Z axis + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.rotateZ(dest, dest, rad); + * + * @param {mat4} out mat4 receiving operation result + * @param {number} rad the angle to rotate the matrix by + * @returns {mat4} out + */ + public static fromZRotation(out: mat4, rad: number): mat4 + + /** + * Creates a matrix from a quaternion rotation and vector translation + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.translate(dest, vec); + * var quatMat = mat4.create(); + * quat4.toMat4(quat, quatMat); + * mat4.multiply(dest, quatMat); + * + * @param out mat4 receiving operation result + * @param q Rotation quaternion + * @param v Translation vector + * @returns out + */ + public static fromRotationTranslation(out: mat4, q: quat, v: vec3 | number[]): mat4; + + /** + * Returns the translation vector component of a transformation + * matrix. If a matrix is built with fromRotationTranslation, + * the returned vector will be the same as the translation vector + * originally supplied. + * @param {vec3} out Vector to receive translation component + * @param {mat4} mat Matrix to be decomposed (input) + * @return {vec3} out + */ + public static getTranslation(out: vec3, mat: mat4): vec3; + + /** + * Returns a quaternion representing the rotational component + * of a transformation matrix. If a matrix is built with + * fromRotationTranslation, the returned quaternion will be the + * same as the quaternion originally supplied. + * @param {quat} out Quaternion to receive the rotation component + * @param {mat4} mat Matrix to be decomposed (input) + * @return {quat} out + */ + public static getRotation(out: quat, mat: mat4): quat; + + /** + * Creates a matrix from a quaternion rotation, vector translation and vector scale + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.translate(dest, vec); + * var quatMat = mat4.create(); + * quat4.toMat4(quat, quatMat); + * mat4.multiply(dest, quatMat); + * mat4.scale(dest, scale) + * + * @param out mat4 receiving operation result + * @param q Rotation quaternion + * @param v Translation vector + * @param s Scaling vector + * @returns out + */ + public static fromRotationTranslationScale(out: mat4, q: quat, v: vec3 | number[], s: vec3 | number[]): mat4; + + /** + * Creates a matrix from a quaternion rotation, vector translation and vector scale, rotating and scaling around the given origin + * This is equivalent to (but much faster than): + * + * mat4.identity(dest); + * mat4.translate(dest, vec); + * mat4.translate(dest, origin); + * var quatMat = mat4.create(); + * quat4.toMat4(quat, quatMat); + * mat4.multiply(dest, quatMat); + * mat4.scale(dest, scale) + * mat4.translate(dest, negativeOrigin); + * + * @param {mat4} out mat4 receiving operation result + * @param {quat} q Rotation quaternion + * @param {vec3} v Translation vector + * @param {vec3} s Scaling vector + * @param {vec3} o The origin vector around which to scale and rotate + * @returns {mat4} out + */ + public static fromRotationTranslationScaleOrigin(out: mat4, q: quat, v: vec3 | number[], s: vec3 | number[], o: vec3 | number[]): mat4 + + /** + * Calculates a 4x4 matrix from the given quaternion + * + * @param {mat4} out mat4 receiving operation result + * @param {quat} q Quaternion to create matrix from + * + * @returns {mat4} out + */ + public static fromQuat(out: mat4, q: quat): mat4 + + /** + * Generates a frustum matrix with the given bounds + * + * @param out mat4 frustum matrix will be written into + * @param left Left bound of the frustum + * @param right Right bound of the frustum + * @param bottom Bottom bound of the frustum + * @param top Top bound of the frustum + * @param near Near bound of the frustum + * @param far Far bound of the frustum + * @returns out + */ + public static frustum(out: mat4, left: number, right: number, + bottom: number, top: number, near: number, far: number): mat4; + + /** + * Generates a perspective projection matrix with the given bounds + * + * @param out mat4 frustum matrix will be written into + * @param fovy Vertical field of view in radians + * @param aspect Aspect ratio. typically viewport width/height + * @param near Near bound of the frustum + * @param far Far bound of the frustum + * @returns out + */ + public static perspective(out: mat4, fovy: number, aspect: number, + near: number, far: number): mat4; + + /** + * Generates a perspective projection matrix with the given field of view. + * This is primarily useful for generating projection matrices to be used + * with the still experimental WebVR API. + * + * @param {mat4} out mat4 frustum matrix will be written into + * @param {Object} fov Object containing the following values: upDegrees, downDegrees, leftDegrees, rightDegrees + * @param {number} near Near bound of the frustum + * @param {number} far Far bound of the frustum + * @returns {mat4} out + */ + public static perspectiveFromFieldOfView(out: mat4, + fov:{upDegrees: number, downDegrees: number, leftDegrees: number, rightDegrees: number}, + near: number, far: number): mat4 + + /** + * Generates a orthogonal projection matrix with the given bounds + * + * @param out mat4 frustum matrix will be written into + * @param left Left bound of the frustum + * @param right Right bound of the frustum + * @param bottom Bottom bound of the frustum + * @param top Top bound of the frustum + * @param near Near bound of the frustum + * @param far Far bound of the frustum + * @returns out + */ + public static ortho(out: mat4, left: number, right: number, + bottom: number, top: number, near: number, far: number): mat4; + + /** + * Generates a look-at matrix with the given eye position, focal point, and up axis + * + * @param out mat4 frustum matrix will be written into + * @param eye Position of the viewer + * @param center Point the viewer is looking at + * @param up vec3 pointing up + * @returns out + */ + public static lookAt(out: mat4, eye: vec3 | number[], center: vec3 | number[], up: vec3 | number[]): mat4; + + /** + * Returns a string representation of a mat4 + * + * @param mat matrix to represent as a string + * @returns string representation of the matrix + */ + public static str(mat: mat4): string; + + /** + * Returns Frobenius norm of a mat4 + * + * @param a the matrix to calculate Frobenius norm of + * @returns Frobenius norm + */ + public static frob(a: mat4): number; + + /** + * Adds two mat4's + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the first operand + * @param {mat4} b the second operand + * @returns {mat4} out + */ + public static add(out: mat4, a: mat4, b: mat4): mat4 + + /** + * Subtracts matrix b from matrix a + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the first operand + * @param {mat4} b the second operand + * @returns {mat4} out + */ + public static subtract(out: mat4, a: mat4, b: mat4): mat4 + + /** + * Subtracts matrix b from matrix a + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the first operand + * @param {mat4} b the second operand + * @returns {mat4} out + */ + public static sub(out: mat4, a: mat4, b: mat4): mat4 + + /** + * Multiply each element of the matrix by a scalar. + * + * @param {mat4} out the receiving matrix + * @param {mat4} a the matrix to scale + * @param {number} b amount to scale the matrix's elements by + * @returns {mat4} out + */ + public static multiplyScalar(out: mat4, a: mat4, b: number): mat4 + + /** + * Adds two mat4's after multiplying each element of the second operand by a scalar value. + * + * @param {mat4} out the receiving vector + * @param {mat4} a the first operand + * @param {mat4} b the second operand + * @param {number} scale the amount to scale b's elements by before adding + * @returns {mat4} out + */ + public static multiplyScalarAndAdd (out: mat4, a: mat4, b: mat4, scale: number): mat4 + + /** + * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===) + * + * @param {mat4} a The first matrix. + * @param {mat4} b The second matrix. + * @returns {boolean} True if the matrices are equal, false otherwise. + */ + public static exactEquals (a: mat4, b: mat4): boolean + + /** + * Returns whether or not the matrices have approximately the same elements in the same position. + * + * @param {mat4} a The first matrix. + * @param {mat4} b The second matrix. + * @returns {boolean} True if the matrices are equal, false otherwise. + */ + public static equals (a: mat4, b: mat4): boolean + + } + + // quat + export class quat extends Float32Array { + private typeQuat: number; + + /** + * Creates a new identity quat + * + * @returns a new quaternion + */ + public static create(): quat; + + /** + * Creates a new quat initialized with values from an existing quaternion + * + * @param a quaternion to clone + * @returns a new quaternion + * @function + */ + public static clone(a: quat): quat; + + /** + * Creates a new quat initialized with the given values + * + * @param x X component + * @param y Y component + * @param z Z component + * @param w W component + * @returns a new quaternion + * @function + */ + public static fromValues(x: number, y: number, z: number, w: number): quat; + + /** + * Copy the values from one quat to another + * + * @param out the receiving quaternion + * @param a the source quaternion + * @returns out + * @function + */ + public static copy(out: quat, a: quat): quat; + + /** + * Set the components of a quat to the given values + * + * @param out the receiving quaternion + * @param x X component + * @param y Y component + * @param z Z component + * @param w W component + * @returns out + * @function + */ + public static set(out: quat, x: number, y: number, z: number, w: number): quat; + + /** + * Set a quat to the identity quaternion + * + * @param out the receiving quaternion + * @returns out + */ + public static identity(out: quat): quat; + + /** + * Sets a quaternion to represent the shortest rotation from one + * vector to another. + * + * Both vectors are assumed to be unit length. + * + * @param {quat} out the receiving quaternion. + * @param {vec3} a the initial vector + * @param {vec3} b the destination vector + * @returns {quat} out + */ + public static rotationTo (out: quat, a: vec3 | number[], b: vec3 | number[]): quat; + + /** + * Sets the specified quaternion with values corresponding to the given + * axes. Each axis is a vec3 and is expected to be unit length and + * perpendicular to all other specified axes. + * + * @param {vec3} view the vector representing the viewing direction + * @param {vec3} right the vector representing the local "right" direction + * @param {vec3} up the vector representing the local "up" direction + * @returns {quat} out + */ + public static setAxes (out: quat, view: vec3 | number[], right: vec3 | number[], up: vec3 | number[]): quat + + + + /** + * Sets a quat from the given angle and rotation axis, + * then returns it. + * + * @param out the receiving quaternion + * @param axis the axis around which to rotate + * @param rad the angle in radians + * @returns out + **/ + public static setAxisAngle(out: quat, axis: vec3 | number[], rad: number): quat; + + /** + * Gets the rotation axis and angle for a given + * quaternion. If a quaternion is created with + * setAxisAngle, this method will return the same + * values as providied in the original parameter list + * OR functionally equivalent values. + * Example: The quaternion formed by axis [0, 0, 1] and + * angle -90 is the same as the quaternion formed by + * [0, 0, 1] and 270. This method favors the latter. + * @param {vec3} out_axis Vector receiving the axis of rotation + * @param {quat} q Quaternion to be decomposed + * @return {number} Angle, in radians, of the rotation + */ + public static getAxisAngle (out_axis: vec3 | number[], q: quat): number + + /** + * Adds two quat's + * + * @param out the receiving quaternion + * @param a the first operand + * @param b the second operand + * @returns out + * @function + */ + public static add(out: quat, a: quat, b: quat): quat; + + /** + * Multiplies two quat's + * + * @param out the receiving quaternion + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static multiply(out: quat, a: quat, b: quat): quat; + + /** + * Multiplies two quat's + * + * @param out the receiving quaternion + * @param a the first operand + * @param b the second operand + * @returns out + */ + public static mul(out: quat, a: quat, b: quat): quat; + + /** + * Scales a quat by a scalar number + * + * @param out the receiving vector + * @param a the vector to scale + * @param b amount to scale the vector by + * @returns out + * @function + */ + public static scale(out: quat, a: quat, b: number): quat; + + /** + * Calculates the length of a quat + * + * @param a vector to calculate length of + * @returns length of a + * @function + */ + public static length(a: quat): number; + + /** + * Calculates the length of a quat + * + * @param a vector to calculate length of + * @returns length of a + * @function + */ + public static len(a: quat): number; + + /** + * Calculates the squared length of a quat + * + * @param a vector to calculate squared length of + * @returns squared length of a + * @function + */ + public static squaredLength(a: quat): number; + + /** + * Calculates the squared length of a quat + * + * @param a vector to calculate squared length of + * @returns squared length of a + * @function + */ + public static sqrLen(a: quat): number; + + /** + * Normalize a quat + * + * @param out the receiving quaternion + * @param a quaternion to normalize + * @returns out + * @function + */ + public static normalize(out: quat, a: quat): quat; + + /** + * Calculates the dot product of two quat's + * + * @param a the first operand + * @param b the second operand + * @returns dot product of a and b + * @function + */ + public static dot(a: quat, b: quat): number; + + /** + * Performs a linear interpolation between two quat's + * + * @param out the receiving quaternion + * @param a the first operand + * @param b the second operand + * @param t interpolation amount between the two inputs + * @returns out + * @function + */ + public static lerp(out: quat, a: quat, b: quat, t: number): quat; + + /** + * Performs a spherical linear interpolation between two quat + * + * @param out the receiving quaternion + * @param a the first operand + * @param b the second operand + * @param t interpolation amount between the two inputs + * @returns out + */ + public static slerp(out: quat, a: quat, b: quat, t: number): quat; + + /** + * Performs a spherical linear interpolation with two control points + * + * @param {quat} out the receiving quaternion + * @param {quat} a the first operand + * @param {quat} b the second operand + * @param {quat} c the third operand + * @param {quat} d the fourth operand + * @param {number} t interpolation amount + * @returns {quat} out + */ + public static sqlerp(out: quat, a: quat, b: quat, c: quat, d: quat, t: number): quat; + + /** + * Calculates the inverse of a quat + * + * @param out the receiving quaternion + * @param a quat to calculate inverse of + * @returns out + */ + public static invert(out: quat, a: quat): quat; + + /** + * Calculates the conjugate of a quat + * If the quaternion is normalized, this function is faster than quat.inverse and produces the same result. + * + * @param out the receiving quaternion + * @param a quat to calculate conjugate of + * @returns out + */ + public static conjugate(out: quat, a: quat): quat; + + /** + * Returns a string representation of a quaternion + * + * @param a quat to represent as a string + * @returns string representation of the quat + */ + public static str(a: quat): string; + + /** + * Rotates a quaternion by the given angle about the X axis + * + * @param out quat receiving operation result + * @param a quat to rotate + * @param rad angle (in radians) to rotate + * @returns out + */ + public static rotateX(out: quat, a: quat, rad: number): quat; + + /** + * Rotates a quaternion by the given angle about the Y axis + * + * @param out quat receiving operation result + * @param a quat to rotate + * @param rad angle (in radians) to rotate + * @returns out + */ + public static rotateY(out: quat, a: quat, rad: number): quat; + + /** + * Rotates a quaternion by the given angle about the Z axis + * + * @param out quat receiving operation result + * @param a quat to rotate + * @param rad angle (in radians) to rotate + * @returns out + */ + public static rotateZ(out: quat, a: quat, rad: number): quat; + + /** + * Creates a quaternion from the given 3x3 rotation matrix. + * + * NOTE: The resultant quaternion is not normalized, so you should be sure + * to renormalize the quaternion yourself where necessary. + * + * @param out the receiving quaternion + * @param m rotation matrix + * @returns out + * @function + */ + public static fromMat3(out: quat, m: mat3): quat; + + /** + * Sets the specified quaternion with values corresponding to the given + * axes. Each axis is a vec3 and is expected to be unit length and + * perpendicular to all other specified axes. + * + * @param out the receiving quat + * @param view the vector representing the viewing direction + * @param right the vector representing the local "right" direction + * @param up the vector representing the local "up" direction + * @returns out + */ + public static setAxes(out: quat, view: vec3 | number[], right: vec3 | number[], up: vec3 | number[]): quat; + + /** + * Sets a quaternion to represent the shortest rotation from one + * vector to another. + * + * Both vectors are assumed to be unit length. + * + * @param out the receiving quaternion. + * @param a the initial vector + * @param b the destination vector + * @returns out + */ + public static rotationTo(out: quat, a: vec3 | number[], b: vec3 | number[]): quat; + + /** + * Calculates the W component of a quat from the X, Y, and Z components. + * Assumes that quaternion is 1 unit in length. + * Any existing W component will be ignored. + * + * @param out the receiving quaternion + * @param a quat to calculate W component of + * @returns out + */ + public static calculateW(out: quat, a: quat): quat; + + /** + * Returns whether or not the quaternions have exactly the same elements in the same position (when compared with ===) + * + * @param {quat} a The first vector. + * @param {quat} b The second vector. + * @returns {boolean} True if the quaternions are equal, false otherwise. + */ + public static exactEquals (a: quat, b: quat): boolean; + + /** + * Returns whether or not the quaternions have approximately the same elements in the same position. + * + * @param {quat} a The first vector. + * @param {quat} b The second vector. + * @returns {boolean} True if the quaternions are equal, false otherwise. + */ + public static equals (a: quat, b: quat): boolean; + } } -// vec3 -export class vec3 extends Float32Array { - private typeVec3: number; - - /** - * Creates a new, empty vec3 - * - * @returns a new 3D vector - */ - public static create(): vec3; - - /** - * Creates a new vec3 initialized with values from an existing vector - * - * @param a vector to clone - * @returns a new 3D vector - */ - public static clone(a: vec3 | number[]): vec3; - - /** - * Creates a new vec3 initialized with the given values - * - * @param x X component - * @param y Y component - * @param z Z component - * @returns a new 3D vector - */ - public static fromValues(x: number, y: number, z: number): vec3; - - /** - * Copy the values from one vec3 to another - * - * @param out the receiving vector - * @param a the source vector - * @returns out - */ - public static copy(out: vec3, a: vec3 | number[]): vec3; - - /** - * Set the components of a vec3 to the given values - * - * @param out the receiving vector - * @param x X component - * @param y Y component - * @param z Z component - * @returns out - */ - public static set(out: vec3, x: number, y: number, z: number): vec3; - - /** - * Adds two vec3's - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static add(out: vec3, a: vec3 | number[], b: vec3 | number[]): vec3; - - /** - * Subtracts vector b from vector a - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static subtract(out: vec3, a: vec3 | number[], b: vec3 | number[]): vec3; - - /** - * Subtracts vector b from vector a - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static sub(out: vec3, a: vec3 | number[], b: vec3 | number[]): vec3 - - /** - * Multiplies two vec3's - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static multiply(out: vec3, a: vec3 | number[], b: vec3 | number[]): vec3; - - /** - * Multiplies two vec3's - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static mul(out: vec3, a: vec3 | number[], b: vec3 | number[]): vec3; - - /** - * Divides two vec3's - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static divide(out: vec3, a: vec3 | number[], b: vec3 | number[]): vec3; - - /** - * Divides two vec3's - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static div(out: vec3, a: vec3 | number[], b: vec3 | number[]): vec3; - - /** - * Math.ceil the components of a vec3 - * - * @param {vec3} out the receiving vector - * @param {vec3} a vector to ceil - * @returns {vec3} out - */ - public static ceil (out: vec3, a: vec3 | number[]): vec3; - - /** - * Math.floor the components of a vec3 - * - * @param {vec3} out the receiving vector - * @param {vec3} a vector to floor - * @returns {vec3} out - */ - public static floor (out: vec3, a: vec3 | number[]): vec3; - - /** - * Returns the minimum of two vec3's - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static min(out: vec3, a: vec3 | number[], b: vec3 | number[]): vec3; - - /** - * Returns the maximum of two vec3's - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static max(out: vec3, a: vec3 | number[], b: vec3 | number[]): vec3; - - /** - * Math.round the components of a vec3 - * - * @param {vec3} out the receiving vector - * @param {vec3} a vector to round - * @returns {vec3} out - */ - public static round (out: vec3, a: vec3 | number[]): vec3 - - /** - * Scales a vec3 by a scalar number - * - * @param out the receiving vector - * @param a the vector to scale - * @param b amount to scale the vector by - * @returns out - */ - public static scale(out: vec3, a: vec3 | number[], b: number): vec3; - - /** - * Adds two vec3's after scaling the second operand by a scalar value - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @param scale the amount to scale b by before adding - * @returns out - */ - public static scaleAndAdd(out: vec3, a: vec3 | number[], b: vec3 | number[], scale: number): vec3; - - /** - * Calculates the euclidian distance between two vec3's - * - * @param a the first operand - * @param b the second operand - * @returns distance between a and b - */ - public static distance(a: vec3 | number[], b: vec3 | number[]): number; - - /** - * Calculates the euclidian distance between two vec3's - * - * @param a the first operand - * @param b the second operand - * @returns distance between a and b - */ - public static dist(a: vec3 | number[], b: vec3 | number[]): number; - - /** - * Calculates the squared euclidian distance between two vec3's - * - * @param a the first operand - * @param b the second operand - * @returns squared distance between a and b - */ - public static squaredDistance(a: vec3 | number[], b: vec3 | number[]): number; - - /** - * Calculates the squared euclidian distance between two vec3's - * - * @param a the first operand - * @param b the second operand - * @returns squared distance between a and b - */ - public static sqrDist(a: vec3 | number[], b: vec3 | number[]): number; - - /** - * Calculates the length of a vec3 - * - * @param a vector to calculate length of - * @returns length of a - */ - public static length(a: vec3 | number[]): number; - - /** - * Calculates the length of a vec3 - * - * @param a vector to calculate length of - * @returns length of a - */ - public static len(a: vec3 | number[]): number; - - /** - * Calculates the squared length of a vec3 - * - * @param a vector to calculate squared length of - * @returns squared length of a - */ - public static squaredLength(a: vec3 | number[]): number; - - /** - * Calculates the squared length of a vec3 - * - * @param a vector to calculate squared length of - * @returns squared length of a - */ - public static sqrLen(a: vec3 | number[]): number; - - /** - * Negates the components of a vec3 - * - * @param out the receiving vector - * @param a vector to negate - * @returns out - */ - public static negate(out: vec3, a: vec3 | number[]): vec3; - - /** - * Returns the inverse of the components of a vec3 - * - * @param out the receiving vector - * @param a vector to invert - * @returns out - */ - public static inverse(out: vec3, a: vec3 | number[]): vec3; - - /** - * Normalize a vec3 - * - * @param out the receiving vector - * @param a vector to normalize - * @returns out - */ - public static normalize(out: vec3, a: vec3 | number[]): vec3; - - /** - * Calculates the dot product of two vec3's - * - * @param a the first operand - * @param b the second operand - * @returns dot product of a and b - */ - public static dot(a: vec3 | number[], b: vec3 | number[]): number; - - /** - * Computes the cross product of two vec3's - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static cross(out: vec3, a: vec3 | number[], b: vec3 | number[]): vec3; - - /** - * Performs a linear interpolation between two vec3's - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @param t interpolation amount between the two inputs - * @returns out - */ - public static lerp(out: vec3, a: vec3 | number[], b: vec3 | number[], t: number): vec3; - - /** - * Performs a hermite interpolation with two control points - * - * @param {vec3} out the receiving vector - * @param {vec3} a the first operand - * @param {vec3} b the second operand - * @param {vec3} c the third operand - * @param {vec3} d the fourth operand - * @param {number} t interpolation amount between the two inputs - * @returns {vec3} out - */ - public static hermite (out: vec3, a: vec3 | number[], b: vec3 | number[], c: vec3 | number[], d: vec3 | number[], t: number): vec3; - - /** - * Performs a bezier interpolation with two control points - * - * @param {vec3} out the receiving vector - * @param {vec3} a the first operand - * @param {vec3} b the second operand - * @param {vec3} c the third operand - * @param {vec3} d the fourth operand - * @param {number} t interpolation amount between the two inputs - * @returns {vec3} out - */ - public static bezier (out: vec3, a: vec3 | number[], b: vec3 | number[], c: vec3 | number[], d: vec3 | number[], t: number): vec3; - - /** - * Generates a random unit vector - * - * @param out the receiving vector - * @returns out - */ - public static random(out: vec3): vec3; - - /** - * Generates a random vector with the given scale - * - * @param out the receiving vector - * @param [scale] Length of the resulting vector. If omitted, a unit vector will be returned - * @returns out - */ - public static random(out: vec3, scale: number): vec3; - - /** - * Transforms the vec3 with a mat3. - * - * @param out the receiving vector - * @param a the vector to transform - * @param m the 3x3 matrix to transform with - * @returns out - */ - public static transformMat3(out: vec3, a: vec3 | number[], m: mat3): vec3; - - /** - * Transforms the vec3 with a mat4. - * 4th vector component is implicitly '1' - * - * @param out the receiving vector - * @param a the vector to transform - * @param m matrix to transform with - * @returns out - */ - public static transformMat4(out: vec3, a: vec3 | number[], m: mat4): vec3; - - /** - * Transforms the vec3 with a quat - * - * @param out the receiving vector - * @param a the vector to transform - * @param q quaternion to transform with - * @returns out - */ - public static transformQuat(out: vec3, a: vec3 | number[], q: quat): vec3; - - - /** - * Rotate a 3D vector around the x-axis - * @param out The receiving vec3 - * @param a The vec3 point to rotate - * @param b The origin of the rotation - * @param c The angle of rotation - * @returns out - */ - public static rotateX(out: vec3, a: vec3 | number[], b: vec3 | number[], c: number): vec3; - - /** - * Rotate a 3D vector around the y-axis - * @param out The receiving vec3 - * @param a The vec3 point to rotate - * @param b The origin of the rotation - * @param c The angle of rotation - * @returns out - */ - public static rotateY(out: vec3, a: vec3 | number[], b: vec3 | number[], c: number): vec3; - - /** - * Rotate a 3D vector around the z-axis - * @param out The receiving vec3 - * @param a The vec3 point to rotate - * @param b The origin of the rotation - * @param c The angle of rotation - * @returns out - */ - public static rotateZ(out: vec3, a: vec3 | number[], b: vec3 | number[], c: number): vec3; - - /** - * Perform some operation over an array of vec3s. - * - * @param a the array of vectors to iterate over - * @param stride Number of elements between the start of each vec3. If 0 assumes tightly packed - * @param offset Number of elements to skip at the beginning of the array - * @param count Number of vec3s to iterate over. If 0 iterates over entire array - * @param fn Function to call for each vector in the array - * @param arg additional argument to pass to fn - * @returns a - * @function - */ - public static forEach(a: Float32Array, stride: number, offset: number, count: number, - fn: (a: vec3 | number[], b: vec3 | number[], arg: any) => void, arg: any): Float32Array; - - /** - * Perform some operation over an array of vec3s. - * - * @param a the array of vectors to iterate over - * @param stride Number of elements between the start of each vec3. If 0 assumes tightly packed - * @param offset Number of elements to skip at the beginning of the array - * @param count Number of vec3s to iterate over. If 0 iterates over entire array - * @param fn Function to call for each vector in the array - * @returns a - * @function - */ - public static forEach(a: Float32Array, stride: number, offset: number, count: number, - fn: (a: vec3 | number[], b: vec3 | number[]) => void): Float32Array; - - /** - * Get the angle between two 3D vectors - * @param a The first operand - * @param b The second operand - * @returns The angle in radians - */ - public static angle(a: vec3 | number[], b: vec3 | number[]): number; - - /** - * Returns a string representation of a vector - * - * @param a vector to represent as a string - * @returns string representation of the vector - */ - public static str(a: vec3 | number[]): string; - - /** - * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===) - * - * @param {vec3} a The first vector. - * @param {vec3} b The second vector. - * @returns {boolean} True if the vectors are equal, false otherwise. - */ - public static exactEquals (a: vec3 | number[], b: vec3 | number[]): boolean - - /** - * Returns whether or not the vectors have approximately the same elements in the same position. - * - * @param {vec3} a The first vector. - * @param {vec3} b The second vector. - * @returns {boolean} True if the vectors are equal, false otherwise. - */ - public static equals (a: vec3 | number[], b: vec3 | number[]): boolean +declare module 'gl-matrix/src/gl-matrix/vec2' { + import { vec2 } from 'gl-matrix'; + export = vec2; } -// vec4 -export class vec4 extends Float32Array { - private typeVec3: number; - - /** - * Creates a new, empty vec4 - * - * @returns a new 4D vector - */ - public static create(): vec4; - - /** - * Creates a new vec4 initialized with values from an existing vector - * - * @param a vector to clone - * @returns a new 4D vector - */ - public static clone(a: vec4 | number[]): vec4; - - /** - * Creates a new vec4 initialized with the given values - * - * @param x X component - * @param y Y component - * @param z Z component - * @param w W component - * @returns a new 4D vector - */ - public static fromValues(x: number, y: number, z: number, w: number): vec4; - - /** - * Copy the values from one vec4 to another - * - * @param out the receiving vector - * @param a the source vector - * @returns out - */ - public static copy(out: vec4, a: vec4 | number[]): vec4; - - /** - * Set the components of a vec4 to the given values - * - * @param out the receiving vector - * @param x X component - * @param y Y component - * @param z Z component - * @param w W component - * @returns out - */ - public static set(out: vec4, x: number, y: number, z: number, w: number): vec4; - - /** - * Adds two vec4's - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static add(out: vec4, a: vec4 | number[], b: vec4 | number[]): vec4; - - /** - * Subtracts vector b from vector a - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static subtract(out: vec4, a: vec4 | number[], b: vec4 | number[]): vec4; - - /** - * Subtracts vector b from vector a - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static sub(out: vec4, a: vec4 | number[], b: vec4 | number[]): vec4; - - /** - * Multiplies two vec4's - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static multiply(out: vec4, a: vec4 | number[], b: vec4 | number[]): vec4; - - /** - * Multiplies two vec4's - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static mul(out: vec4, a: vec4 | number[], b: vec4 | number[]): vec4; - - /** - * Divides two vec4's - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static divide(out: vec4, a: vec4 | number[], b: vec4 | number[]): vec4; - - /** - * Divides two vec4's - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static div(out: vec4, a: vec4 | number[], b: vec4 | number[]): vec4; - - /** - * Math.ceil the components of a vec4 - * - * @param {vec4} out the receiving vector - * @param {vec4} a vector to ceil - * @returns {vec4} out - */ - public static ceil (out: vec4, a: vec4 | number[]): vec4; - - /** - * Math.floor the components of a vec4 - * - * @param {vec4} out the receiving vector - * @param {vec4} a vector to floor - * @returns {vec4} out - */ - public static floor (out: vec4, a: vec4 | number[]): vec4; - - /** - * Returns the minimum of two vec4's - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static min(out: vec4, a: vec4 | number[], b: vec4 | number[]): vec4; - - /** - * Returns the maximum of two vec4's - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static max(out: vec4, a: vec4 | number[], b: vec4 | number[]): vec4; - - /** - * Math.round the components of a vec4 - * - * @param {vec4} out the receiving vector - * @param {vec4} a vector to round - * @returns {vec4} out - */ - public static round (out: vec4, a: vec4 | number[]): vec4; - - /** - * Scales a vec4 by a scalar number - * - * @param out the receiving vector - * @param a the vector to scale - * @param b amount to scale the vector by - * @returns out - */ - public static scale(out: vec4, a: vec4 | number[], b: number): vec4; - - /** - * Adds two vec4's after scaling the second operand by a scalar value - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @param scale the amount to scale b by before adding - * @returns out - */ - public static scaleAndAdd(out: vec4, a: vec4 | number[], b: vec4 | number[], scale: number): vec4; - - /** - * Calculates the euclidian distance between two vec4's - * - * @param a the first operand - * @param b the second operand - * @returns distance between a and b - */ - public static distance(a: vec4 | number[], b: vec4 | number[]): number; - - /** - * Calculates the euclidian distance between two vec4's - * - * @param a the first operand - * @param b the second operand - * @returns distance between a and b - */ - public static dist(a: vec4 | number[], b: vec4 | number[]): number; - - /** - * Calculates the squared euclidian distance between two vec4's - * - * @param a the first operand - * @param b the second operand - * @returns squared distance between a and b - */ - public static squaredDistance(a: vec4 | number[], b: vec4 | number[]): number; - - /** - * Calculates the squared euclidian distance between two vec4's - * - * @param a the first operand - * @param b the second operand - * @returns squared distance between a and b - */ - public static sqrDist(a: vec4 | number[], b: vec4 | number[]): number; - - /** - * Calculates the length of a vec4 - * - * @param a vector to calculate length of - * @returns length of a - */ - public static length(a: vec4 | number[]): number; - - /** - * Calculates the length of a vec4 - * - * @param a vector to calculate length of - * @returns length of a - */ - public static len(a: vec4 | number[]): number; - - /** - * Calculates the squared length of a vec4 - * - * @param a vector to calculate squared length of - * @returns squared length of a - */ - public static squaredLength(a: vec4 | number[]): number; - - /** - * Calculates the squared length of a vec4 - * - * @param a vector to calculate squared length of - * @returns squared length of a - */ - public static sqrLen(a: vec4 | number[]): number; - - /** - * Negates the components of a vec4 - * - * @param out the receiving vector - * @param a vector to negate - * @returns out - */ - public static negate(out: vec4, a: vec4 | number[]): vec4; - - /** - * Returns the inverse of the components of a vec4 - * - * @param out the receiving vector - * @param a vector to invert - * @returns out - */ - public static inverse(out: vec4, a: vec4 | number[]): vec4; - - /** - * Normalize a vec4 - * - * @param out the receiving vector - * @param a vector to normalize - * @returns out - */ - public static normalize(out: vec4, a: vec4 | number[]): vec4; - - /** - * Calculates the dot product of two vec4's - * - * @param a the first operand - * @param b the second operand - * @returns dot product of a and b - */ - public static dot(a: vec4 | number[], b: vec4 | number[]): number; - - /** - * Performs a linear interpolation between two vec4's - * - * @param out the receiving vector - * @param a the first operand - * @param b the second operand - * @param t interpolation amount between the two inputs - * @returns out - */ - public static lerp(out: vec4, a: vec4 | number[], b: vec4 | number[], t: number): vec4; - - /** - * Generates a random unit vector - * - * @param out the receiving vector - * @returns out - */ - public static random(out: vec4): vec4; - - /** - * Generates a random vector with the given scale - * - * @param out the receiving vector - * @param scale length of the resulting vector. If ommitted, a unit vector will be returned - * @returns out - */ - public static random(out: vec4, scale: number): vec4; - - /** - * Transforms the vec4 with a mat4. - * - * @param out the receiving vector - * @param a the vector to transform - * @param m matrix to transform with - * @returns out - */ - public static transformMat4(out: vec4, a: vec4 | number[], m: mat4): vec4; - - /** - * Transforms the vec4 with a quat - * - * @param out the receiving vector - * @param a the vector to transform - * @param q quaternion to transform with - * @returns out - */ - - public static transformQuat(out: vec4, a: vec4 | number[], q: quat): vec4; - - /** - * Perform some operation over an array of vec4s. - * - * @param a the array of vectors to iterate over - * @param stride Number of elements between the start of each vec4. If 0 assumes tightly packed - * @param offset Number of elements to skip at the beginning of the array - * @param count Number of vec4s to iterate over. If 0 iterates over entire array - * @param fn Function to call for each vector in the array - * @param arg additional argument to pass to fn - * @returns a - * @function - */ - public static forEach(a: Float32Array, stride: number, offset: number, count: number, - fn: (a: vec4 | number[], b: vec4 | number[], arg: any) => void, arg: any): Float32Array; - - /** - * Perform some operation over an array of vec4s. - * - * @param a the array of vectors to iterate over - * @param stride Number of elements between the start of each vec4. If 0 assumes tightly packed - * @param offset Number of elements to skip at the beginning of the array - * @param count Number of vec4s to iterate over. If 0 iterates over entire array - * @param fn Function to call for each vector in the array - * @returns a - * @function - */ - public static forEach(a: Float32Array, stride: number, offset: number, count: number, - fn: (a: vec4 | number[], b: vec4 | number[]) => void): Float32Array; - - /** - * Returns a string representation of a vector - * - * @param a vector to represent as a string - * @returns string representation of the vector - */ - public static str(a: vec4 | number[]): string; - - /** - * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===) - * - * @param {vec4} a The first vector. - * @param {vec4} b The second vector. - * @returns {boolean} True if the vectors are equal, false otherwise. - */ - public static exactEquals (a: vec4 | number[], b: vec4 | number[]): boolean; - - /** - * Returns whether or not the vectors have approximately the same elements in the same position. - * - * @param {vec4} a The first vector. - * @param {vec4} b The second vector. - * @returns {boolean} True if the vectors are equal, false otherwise. - */ - public static equals (a: vec4 | number[], b: vec4 | number[]): boolean; +declare module 'gl-matrix/src/gl-matrix/vec3' { + import { vec3 } from 'gl-matrix'; + export = vec3; } -// mat2 -export class mat2 extends Float32Array { - private typeMat2: number; - - /** - * Creates a new identity mat2 - * - * @returns a new 2x2 matrix - */ - public static create(): mat2; - - /** - * Creates a new mat2 initialized with values from an existing matrix - * - * @param a matrix to clone - * @returns a new 2x2 matrix - */ - public static clone(a: mat2): mat2; - - /** - * Copy the values from one mat2 to another - * - * @param out the receiving matrix - * @param a the source matrix - * @returns out - */ - public static copy(out: mat2, a: mat2): mat2; - - /** - * Set a mat2 to the identity matrix - * - * @param out the receiving matrix - * @returns out - */ - public static identity(out: mat2): mat2; - - /** - * Create a new mat2 with the given values - * - * @param {number} m00 Component in column 0, row 0 position (index 0) - * @param {number} m01 Component in column 0, row 1 position (index 1) - * @param {number} m10 Component in column 1, row 0 position (index 2) - * @param {number} m11 Component in column 1, row 1 position (index 3) - * @returns {mat2} out A new 2x2 matrix - */ - public static fromValues(m00: number, m01: number, m10: number, m11: number): mat2; - - /** - * Set the components of a mat2 to the given values - * - * @param {mat2} out the receiving matrix - * @param {number} m00 Component in column 0, row 0 position (index 0) - * @param {number} m01 Component in column 0, row 1 position (index 1) - * @param {number} m10 Component in column 1, row 0 position (index 2) - * @param {number} m11 Component in column 1, row 1 position (index 3) - * @returns {mat2} out - */ - public static set(out: mat2, m00: number, m01: number, m10: number, m11: number): mat2; - - /** - * Transpose the values of a mat2 - * - * @param out the receiving matrix - * @param a the source matrix - * @returns out - */ - public static transpose(out: mat2, a: mat2): mat2; - - /** - * Inverts a mat2 - * - * @param out the receiving matrix - * @param a the source matrix - * @returns out - */ - public static invert(out: mat2, a: mat2): mat2; - - /** - * Calculates the adjugate of a mat2 - * - * @param out the receiving matrix - * @param a the source matrix - * @returns out - */ - public static adjoint(out: mat2, a: mat2): mat2; - - /** - * Calculates the determinant of a mat2 - * - * @param a the source matrix - * @returns determinant of a - */ - public static determinant(a: mat2): number; - - /** - * Multiplies two mat2's - * - * @param out the receiving matrix - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static multiply(out: mat2, a: mat2, b: mat2): mat2; - - /** - * Multiplies two mat2's - * - * @param out the receiving matrix - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static mul(out: mat2, a: mat2, b: mat2): mat2; - - /** - * Rotates a mat2 by the given angle - * - * @param out the receiving matrix - * @param a the matrix to rotate - * @param rad the angle to rotate the matrix by - * @returns out - */ - public static rotate(out: mat2, a: mat2, rad: number): mat2; - - /** - * Scales the mat2 by the dimensions in the given vec2 - * - * @param out the receiving matrix - * @param a the matrix to rotate - * @param v the vec2 to scale the matrix by - * @returns out - **/ - public static scale(out: mat2, a: mat2, v: vec2 | number[]): mat2; - - /** - * Creates a matrix from a given angle - * This is equivalent to (but much faster than): - * - * mat2.identity(dest); - * mat2.rotate(dest, dest, rad); - * - * @param {mat2} out mat2 receiving operation result - * @param {number} rad the angle to rotate the matrix by - * @returns {mat2} out - */ - public static fromRotation(out: mat2, rad: number): mat2; - - /** - * Creates a matrix from a vector scaling - * This is equivalent to (but much faster than): - * - * mat2.identity(dest); - * mat2.scale(dest, dest, vec); - * - * @param {mat2} out mat2 receiving operation result - * @param {vec2} v Scaling vector - * @returns {mat2} out - */ - public static fromScaling(out: mat2, v: vec2 | number[]): mat2; - - /** - * Returns a string representation of a mat2 - * - * @param a matrix to represent as a string - * @returns string representation of the matrix - */ - public static str(a: mat2): string; - - /** - * Returns Frobenius norm of a mat2 - * - * @param a the matrix to calculate Frobenius norm of - * @returns Frobenius norm - */ - public static frob(a: mat2): number; - - /** - * Returns L, D and U matrices (Lower triangular, Diagonal and Upper triangular) by factorizing the input matrix - * @param L the lower triangular matrix - * @param D the diagonal matrix - * @param U the upper triangular matrix - * @param a the input matrix to factorize - */ - public static LDU(L: mat2, D: mat2, U: mat2, a: mat2): mat2; - - /** - * Adds two mat2's - * - * @param {mat2} out the receiving matrix - * @param {mat2} a the first operand - * @param {mat2} b the second operand - * @returns {mat2} out - */ - public static add(out: mat2, a: mat2, b: mat2): mat2; - - /** - * Subtracts matrix b from matrix a - * - * @param {mat2} out the receiving matrix - * @param {mat2} a the first operand - * @param {mat2} b the second operand - * @returns {mat2} out - */ - public static subtract (out: mat2, a: mat2, b: mat2): mat2; - - /** - * Subtracts matrix b from matrix a - * - * @param {mat2} out the receiving matrix - * @param {mat2} a the first operand - * @param {mat2} b the second operand - * @returns {mat2} out - */ - public static sub (out: mat2, a: mat2, b: mat2): mat2; - - /** - * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===) - * - * @param {mat2} a The first matrix. - * @param {mat2} b The second matrix. - * @returns {boolean} True if the matrices are equal, false otherwise. - */ - public static exactEquals (a: mat2, b: mat2): boolean; - - /** - * Returns whether or not the matrices have approximately the same elements in the same position. - * - * @param {mat2} a The first matrix. - * @param {mat2} b The second matrix. - * @returns {boolean} True if the matrices are equal, false otherwise. - */ - public static equals (a: mat2, b: mat2): boolean; - - /** - * Multiply each element of the matrix by a scalar. - * - * @param {mat2} out the receiving matrix - * @param {mat2} a the matrix to scale - * @param {number} b amount to scale the matrix's elements by - * @returns {mat2} out - */ - public static multiplyScalar (out: mat2, a: mat2, b: number): mat2 - - /** - * Adds two mat2's after multiplying each element of the second operand by a scalar value. - * - * @param {mat2} out the receiving vector - * @param {mat2} a the first operand - * @param {mat2} b the second operand - * @param {number} scale the amount to scale b's elements by before adding - * @returns {mat2} out - */ - public static multiplyScalarAndAdd (out: mat2, a: mat2, b: mat2, scale: number): mat2 - - - +declare module 'gl-matrix/src/gl-matrix/vec4' { + import { vec4 } from 'gl-matrix'; + export = vec4; } -// mat2d -export class mat2d extends Float32Array { - private typeMat2d: number; - - /** - * Creates a new identity mat2d - * - * @returns a new 2x3 matrix - */ - public static create(): mat2d; - - /** - * Creates a new mat2d initialized with values from an existing matrix - * - * @param a matrix to clone - * @returns a new 2x3 matrix - */ - public static clone(a: mat2d): mat2d; - - /** - * Copy the values from one mat2d to another - * - * @param out the receiving matrix - * @param a the source matrix - * @returns out - */ - public static copy(out: mat2d, a: mat2d): mat2d; - - /** - * Set a mat2d to the identity matrix - * - * @param out the receiving matrix - * @returns out - */ - public static identity(out: mat2d): mat2d; - - /** - * Create a new mat2d with the given values - * - * @param {number} a Component A (index 0) - * @param {number} b Component B (index 1) - * @param {number} c Component C (index 2) - * @param {number} d Component D (index 3) - * @param {number} tx Component TX (index 4) - * @param {number} ty Component TY (index 5) - * @returns {mat2d} A new mat2d - */ - public static fromValues (a: number, b: number, c: number, d: number, tx: number, ty: number): mat2d - - - /** - * Set the components of a mat2d to the given values - * - * @param {mat2d} out the receiving matrix - * @param {number} a Component A (index 0) - * @param {number} b Component B (index 1) - * @param {number} c Component C (index 2) - * @param {number} d Component D (index 3) - * @param {number} tx Component TX (index 4) - * @param {number} ty Component TY (index 5) - * @returns {mat2d} out - */ - public static set (out: mat2d, a: number, b: number, c: number, d: number, tx: number, ty: number): mat2d - - /** - * Inverts a mat2d - * - * @param out the receiving matrix - * @param a the source matrix - * @returns out - */ - public static invert(out: mat2d, a: mat2d): mat2d; - - /** - * Calculates the determinant of a mat2d - * - * @param a the source matrix - * @returns determinant of a - */ - public static determinant(a: mat2d): number; - - /** - * Multiplies two mat2d's - * - * @param out the receiving matrix - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static multiply(out: mat2d, a: mat2d, b: mat2d): mat2d; - - /** - * Multiplies two mat2d's - * - * @param out the receiving matrix - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static mul(out: mat2d, a: mat2d, b: mat2d): mat2d; - - /** - * Rotates a mat2d by the given angle - * - * @param out the receiving matrix - * @param a the matrix to rotate - * @param rad the angle to rotate the matrix by - * @returns out - */ - public static rotate(out: mat2d, a: mat2d, rad: number): mat2d; - - /** - * Scales the mat2d by the dimensions in the given vec2 - * - * @param out the receiving matrix - * @param a the matrix to translate - * @param v the vec2 to scale the matrix by - * @returns out - **/ - public static scale(out: mat2d, a: mat2d, v: vec2 | number[]): mat2d; - - /** - * Translates the mat2d by the dimensions in the given vec2 - * - * @param out the receiving matrix - * @param a the matrix to translate - * @param v the vec2 to translate the matrix by - * @returns out - **/ - public static translate(out: mat2d, a: mat2d, v: vec2 | number[]): mat2d; - - /** - * Creates a matrix from a given angle - * This is equivalent to (but much faster than): - * - * mat2d.identity(dest); - * mat2d.rotate(dest, dest, rad); - * - * @param {mat2d} out mat2d receiving operation result - * @param {number} rad the angle to rotate the matrix by - * @returns {mat2d} out - */ - public static fromRotation (out: mat2d, rad: number): mat2d; - - /** - * Creates a matrix from a vector scaling - * This is equivalent to (but much faster than): - * - * mat2d.identity(dest); - * mat2d.scale(dest, dest, vec); - * - * @param {mat2d} out mat2d receiving operation result - * @param {vec2} v Scaling vector - * @returns {mat2d} out - */ - public static fromScaling (out: mat2d, v: vec2 | number[]): mat2d; - - /** - * Creates a matrix from a vector translation - * This is equivalent to (but much faster than): - * - * mat2d.identity(dest); - * mat2d.translate(dest, dest, vec); - * - * @param {mat2d} out mat2d receiving operation result - * @param {vec2} v Translation vector - * @returns {mat2d} out - */ - public static fromTranslation (out: mat2d, v: vec2 | number[]): mat2d - - /** - * Returns a string representation of a mat2d - * - * @param a matrix to represent as a string - * @returns string representation of the matrix - */ - public static str(a: mat2d): string; - - /** - * Returns Frobenius norm of a mat2d - * - * @param a the matrix to calculate Frobenius norm of - * @returns Frobenius norm - */ - public static frob(a: mat2d): number; - - /** - * Adds two mat2d's - * - * @param {mat2d} out the receiving matrix - * @param {mat2d} a the first operand - * @param {mat2d} b the second operand - * @returns {mat2d} out - */ - public static add (out: mat2d, a: mat2d, b: mat2d): mat2d - - /** - * Subtracts matrix b from matrix a - * - * @param {mat2d} out the receiving matrix - * @param {mat2d} a the first operand - * @param {mat2d} b the second operand - * @returns {mat2d} out - */ - public static subtract(out: mat2d, a: mat2d, b: mat2d): mat2d - - /** - * Subtracts matrix b from matrix a - * - * @param {mat2d} out the receiving matrix - * @param {mat2d} a the first operand - * @param {mat2d} b the second operand - * @returns {mat2d} out - */ - public static sub(out: mat2d, a: mat2d, b: mat2d): mat2d - - /** - * Multiply each element of the matrix by a scalar. - * - * @param {mat2d} out the receiving matrix - * @param {mat2d} a the matrix to scale - * @param {number} b amount to scale the matrix's elements by - * @returns {mat2d} out - */ - public static multiplyScalar (out: mat2d, a: mat2d, b: number): mat2d; - - /** - * Adds two mat2d's after multiplying each element of the second operand by a scalar value. - * - * @param {mat2d} out the receiving vector - * @param {mat2d} a the first operand - * @param {mat2d} b the second operand - * @param {number} scale the amount to scale b's elements by before adding - * @returns {mat2d} out - */ - public static multiplyScalarAndAdd (out: mat2d, a: mat2d, b: mat2d, scale: number): mat2d - - /** - * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===) - * - * @param {mat2d} a The first matrix. - * @param {mat2d} b The second matrix. - * @returns {boolean} True if the matrices are equal, false otherwise. - */ - public static exactEquals (a: mat2d, b: mat2d): boolean; - - /** - * Returns whether or not the matrices have approximately the same elements in the same position. - * - * @param {mat2d} a The first matrix. - * @param {mat2d} b The second matrix. - * @returns {boolean} True if the matrices are equal, false otherwise. - */ - public static equals (a: mat2d, b: mat2d): boolean +declare module 'gl-matrix/src/gl-matrix/mat2' { + import { mat2 } from 'gl-matrix'; + export = mat2; } -// mat3 -export class mat3 extends Float32Array { - private typeMat3: number; - - /** - * Creates a new identity mat3 - * - * @returns a new 3x3 matrix - */ - public static create(): mat3; - - /** - * Copies the upper-left 3x3 values into the given mat3. - * - * @param {mat3} out the receiving 3x3 matrix - * @param {mat4} a the source 4x4 matrix - * @returns {mat3} out - */ - public static fromMat4(out: mat3, a: mat4): mat3 - - /** - * Creates a new mat3 initialized with values from an existing matrix - * - * @param a matrix to clone - * @returns a new 3x3 matrix - */ - public static clone(a: mat3): mat3; - - /** - * Copy the values from one mat3 to another - * - * @param out the receiving matrix - * @param a the source matrix - * @returns out - */ - public static copy(out: mat3, a: mat3): mat3; - - /** - * Create a new mat3 with the given values - * - * @param {number} m00 Component in column 0, row 0 position (index 0) - * @param {number} m01 Component in column 0, row 1 position (index 1) - * @param {number} m02 Component in column 0, row 2 position (index 2) - * @param {number} m10 Component in column 1, row 0 position (index 3) - * @param {number} m11 Component in column 1, row 1 position (index 4) - * @param {number} m12 Component in column 1, row 2 position (index 5) - * @param {number} m20 Component in column 2, row 0 position (index 6) - * @param {number} m21 Component in column 2, row 1 position (index 7) - * @param {number} m22 Component in column 2, row 2 position (index 8) - * @returns {mat3} A new mat3 - */ - public static fromValues(m00: number, m01: number, m02: number, m10: number, m11: number, m12: number, m20: number, m21: number, m22: number): mat3; - - - /** - * Set the components of a mat3 to the given values - * - * @param {mat3} out the receiving matrix - * @param {number} m00 Component in column 0, row 0 position (index 0) - * @param {number} m01 Component in column 0, row 1 position (index 1) - * @param {number} m02 Component in column 0, row 2 position (index 2) - * @param {number} m10 Component in column 1, row 0 position (index 3) - * @param {number} m11 Component in column 1, row 1 position (index 4) - * @param {number} m12 Component in column 1, row 2 position (index 5) - * @param {number} m20 Component in column 2, row 0 position (index 6) - * @param {number} m21 Component in column 2, row 1 position (index 7) - * @param {number} m22 Component in column 2, row 2 position (index 8) - * @returns {mat3} out - */ - public static set(out: mat3, m00: number, m01: number, m02: number, m10: number, m11: number, m12: number, m20: number, m21: number, m22: number): mat3 - - /** - * Set a mat3 to the identity matrix - * - * @param out the receiving matrix - * @returns out - */ - public static identity(out: mat3): mat3; - - /** - * Transpose the values of a mat3 - * - * @param out the receiving matrix - * @param a the source matrix - * @returns out - */ - public static transpose(out: mat3, a: mat3): mat3; - - /** - * Inverts a mat3 - * - * @param out the receiving matrix - * @param a the source matrix - * @returns out - */ - public static invert(out: mat3, a: mat3): mat3; - - /** - * Calculates the adjugate of a mat3 - * - * @param out the receiving matrix - * @param a the source matrix - * @returns out - */ - public static adjoint(out: mat3, a: mat3): mat3; - - /** - * Calculates the determinant of a mat3 - * - * @param a the source matrix - * @returns determinant of a - */ - public static determinant(a: mat3): number; - - /** - * Multiplies two mat3's - * - * @param out the receiving matrix - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static multiply(out: mat3, a: mat3, b: mat3): mat3; - - /** - * Multiplies two mat3's - * - * @param out the receiving matrix - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static mul(out: mat3, a: mat3, b: mat3): mat3; - - - /** - * Translate a mat3 by the given vector - * - * @param out the receiving matrix - * @param a the matrix to translate - * @param v vector to translate by - * @returns out - */ - public static translate(out: mat3, a: mat3, v: vec3 | number[]): mat3; - - /** - * Rotates a mat3 by the given angle - * - * @param out the receiving matrix - * @param a the matrix to rotate - * @param rad the angle to rotate the matrix by - * @returns out - */ - public static rotate(out: mat3, a: mat3, rad: number): mat3; - - /** - * Scales the mat3 by the dimensions in the given vec2 - * - * @param out the receiving matrix - * @param a the matrix to rotate - * @param v the vec2 to scale the matrix by - * @returns out - **/ - public static scale(out: mat3, a: mat3, v: vec2 | number[]): mat3; - - /** - * Creates a matrix from a vector translation - * This is equivalent to (but much faster than): - * - * mat3.identity(dest); - * mat3.translate(dest, dest, vec); - * - * @param {mat3} out mat3 receiving operation result - * @param {vec2} v Translation vector - * @returns {mat3} out - */ - public static fromTranslation(out: mat3, v: vec2 | number[]): mat3 - - /** - * Creates a matrix from a given angle - * This is equivalent to (but much faster than): - * - * mat3.identity(dest); - * mat3.rotate(dest, dest, rad); - * - * @param {mat3} out mat3 receiving operation result - * @param {number} rad the angle to rotate the matrix by - * @returns {mat3} out - */ - public static fromRotation(out: mat3, rad: number): mat3 - - /** - * Creates a matrix from a vector scaling - * This is equivalent to (but much faster than): - * - * mat3.identity(dest); - * mat3.scale(dest, dest, vec); - * - * @param {mat3} out mat3 receiving operation result - * @param {vec2} v Scaling vector - * @returns {mat3} out - */ - public static fromScaling(out: mat3, v: vec2 | number[]): mat3 - - /** - * Copies the values from a mat2d into a mat3 - * - * @param out the receiving matrix - * @param {mat2d} a the matrix to copy - * @returns out - **/ - public static fromMat2d(out: mat3, a: mat2d): mat3; - - /** - * Calculates a 3x3 matrix from the given quaternion - * - * @param out mat3 receiving operation result - * @param q Quaternion to create matrix from - * - * @returns out - */ - public static fromQuat(out: mat3, q: quat): mat3; - - /** - * Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix - * - * @param out mat3 receiving operation result - * @param a Mat4 to derive the normal matrix from - * - * @returns out - */ - public static normalFromMat4(out: mat3, a: mat4): mat3; - - /** - * Returns a string representation of a mat3 - * - * @param mat matrix to represent as a string - * @returns string representation of the matrix - */ - public static str(mat: mat3): string; - - /** - * Returns Frobenius norm of a mat3 - * - * @param a the matrix to calculate Frobenius norm of - * @returns Frobenius norm - */ - public static frob(a: mat3): number; - - /** - * Adds two mat3's - * - * @param {mat3} out the receiving matrix - * @param {mat3} a the first operand - * @param {mat3} b the second operand - * @returns {mat3} out - */ - public static add(out: mat3, a: mat3, b: mat3): mat3 - - /** - * Subtracts matrix b from matrix a - * - * @param {mat3} out the receiving matrix - * @param {mat3} a the first operand - * @param {mat3} b the second operand - * @returns {mat3} out - */ - public static subtract(out: mat3, a: mat3, b: mat3): mat3 - - /** - * Subtracts matrix b from matrix a - * - * @param {mat3} out the receiving matrix - * @param {mat3} a the first operand - * @param {mat3} b the second operand - * @returns {mat3} out - */ - public static sub(out: mat3, a: mat3, b: mat3): mat3 - - /** - * Multiply each element of the matrix by a scalar. - * - * @param {mat3} out the receiving matrix - * @param {mat3} a the matrix to scale - * @param {number} b amount to scale the matrix's elements by - * @returns {mat3} out - */ - public static multiplyScalar(out: mat3, a: mat3, b: number): mat3 - - /** - * Adds two mat3's after multiplying each element of the second operand by a scalar value. - * - * @param {mat3} out the receiving vector - * @param {mat3} a the first operand - * @param {mat3} b the second operand - * @param {number} scale the amount to scale b's elements by before adding - * @returns {mat3} out - */ - public static multiplyScalarAndAdd(out: mat3, a: mat3, b: mat3, scale: number): mat3 - - /** - * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===) - * - * @param {mat3} a The first matrix. - * @param {mat3} b The second matrix. - * @returns {boolean} True if the matrices are equal, false otherwise. - */ - public static exactEquals(a: mat3, b: mat3): boolean; - - /** - * Returns whether or not the matrices have approximately the same elements in the same position. - * - * @param {mat3} a The first matrix. - * @param {mat3} b The second matrix. - * @returns {boolean} True if the matrices are equal, false otherwise. - */ - public static equals(a: mat3, b: mat3): boolean +declare module 'gl-matrix/src/gl-matrix/mat2d' { + import { mat2d } from 'gl-matrix'; + export = mat2d; } -// mat4 -export class mat4 extends Float32Array { - private typeMat4: number; - - /** - * Creates a new identity mat4 - * - * @returns a new 4x4 matrix - */ - public static create(): mat4; - - /** - * Creates a new mat4 initialized with values from an existing matrix - * - * @param a matrix to clone - * @returns a new 4x4 matrix - */ - public static clone(a: mat4): mat4; - - /** - * Copy the values from one mat4 to another - * - * @param out the receiving matrix - * @param a the source matrix - * @returns out - */ - public static copy(out: mat4, a: mat4): mat4; - - - /** - * Create a new mat4 with the given values - * - * @param {number} m00 Component in column 0, row 0 position (index 0) - * @param {number} m01 Component in column 0, row 1 position (index 1) - * @param {number} m02 Component in column 0, row 2 position (index 2) - * @param {number} m03 Component in column 0, row 3 position (index 3) - * @param {number} m10 Component in column 1, row 0 position (index 4) - * @param {number} m11 Component in column 1, row 1 position (index 5) - * @param {number} m12 Component in column 1, row 2 position (index 6) - * @param {number} m13 Component in column 1, row 3 position (index 7) - * @param {number} m20 Component in column 2, row 0 position (index 8) - * @param {number} m21 Component in column 2, row 1 position (index 9) - * @param {number} m22 Component in column 2, row 2 position (index 10) - * @param {number} m23 Component in column 2, row 3 position (index 11) - * @param {number} m30 Component in column 3, row 0 position (index 12) - * @param {number} m31 Component in column 3, row 1 position (index 13) - * @param {number} m32 Component in column 3, row 2 position (index 14) - * @param {number} m33 Component in column 3, row 3 position (index 15) - * @returns {mat4} A new mat4 - */ - public static fromValues(m00: number, m01: number, m02: number, m03: number, m10: number, m11: number, m12: number, m13: number, m20: number, m21: number, m22: number, m23: number, m30: number, m31: number, m32: number, m33: number): mat4; - - /** - * Set the components of a mat4 to the given values - * - * @param {mat4} out the receiving matrix - * @param {number} m00 Component in column 0, row 0 position (index 0) - * @param {number} m01 Component in column 0, row 1 position (index 1) - * @param {number} m02 Component in column 0, row 2 position (index 2) - * @param {number} m03 Component in column 0, row 3 position (index 3) - * @param {number} m10 Component in column 1, row 0 position (index 4) - * @param {number} m11 Component in column 1, row 1 position (index 5) - * @param {number} m12 Component in column 1, row 2 position (index 6) - * @param {number} m13 Component in column 1, row 3 position (index 7) - * @param {number} m20 Component in column 2, row 0 position (index 8) - * @param {number} m21 Component in column 2, row 1 position (index 9) - * @param {number} m22 Component in column 2, row 2 position (index 10) - * @param {number} m23 Component in column 2, row 3 position (index 11) - * @param {number} m30 Component in column 3, row 0 position (index 12) - * @param {number} m31 Component in column 3, row 1 position (index 13) - * @param {number} m32 Component in column 3, row 2 position (index 14) - * @param {number} m33 Component in column 3, row 3 position (index 15) - * @returns {mat4} out - */ - public static set(out: mat4, m00: number, m01: number, m02: number, m03: number, m10: number, m11: number, m12: number, m13: number, m20: number, m21: number, m22: number, m23: number, m30: number, m31: number, m32: number, m33: number): mat4; - - /** - * Set a mat4 to the identity matrix - * - * @param out the receiving matrix - * @returns out - */ - public static identity(out: mat4): mat4; - - /** - * Transpose the values of a mat4 - * - * @param out the receiving matrix - * @param a the source matrix - * @returns out - */ - public static transpose(out: mat4, a: mat4): mat4; - - /** - * Inverts a mat4 - * - * @param out the receiving matrix - * @param a the source matrix - * @returns out - */ - public static invert(out: mat4, a: mat4): mat4; - - /** - * Calculates the adjugate of a mat4 - * - * @param out the receiving matrix - * @param a the source matrix - * @returns out - */ - public static adjoint(out: mat4, a: mat4): mat4; - - /** - * Calculates the determinant of a mat4 - * - * @param a the source matrix - * @returns determinant of a - */ - public static determinant(a: mat4): number; - - /** - * Multiplies two mat4's - * - * @param out the receiving matrix - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static multiply(out: mat4, a: mat4, b: mat4): mat4; - - /** - * Multiplies two mat4's - * - * @param out the receiving matrix - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static mul(out: mat4, a: mat4, b: mat4): mat4; - - /** - * Translate a mat4 by the given vector - * - * @param out the receiving matrix - * @param a the matrix to translate - * @param v vector to translate by - * @returns out - */ - public static translate(out: mat4, a: mat4, v: vec3 | number[]): mat4; - - /** - * Scales the mat4 by the dimensions in the given vec3 - * - * @param out the receiving matrix - * @param a the matrix to scale - * @param v the vec3 to scale the matrix by - * @returns out - **/ - public static scale(out: mat4, a: mat4, v: vec3 | number[]): mat4; - - /** - * Rotates a mat4 by the given angle - * - * @param out the receiving matrix - * @param a the matrix to rotate - * @param rad the angle to rotate the matrix by - * @param axis the axis to rotate around - * @returns out - */ - public static rotate(out: mat4, a: mat4, rad: number, axis: vec3 | number[]): mat4; - - /** - * Rotates a matrix by the given angle around the X axis - * - * @param out the receiving matrix - * @param a the matrix to rotate - * @param rad the angle to rotate the matrix by - * @returns out - */ - public static rotateX(out: mat4, a: mat4, rad: number): mat4; - - /** - * Rotates a matrix by the given angle around the Y axis - * - * @param out the receiving matrix - * @param a the matrix to rotate - * @param rad the angle to rotate the matrix by - * @returns out - */ - public static rotateY(out: mat4, a: mat4, rad: number): mat4; - - /** - * Rotates a matrix by the given angle around the Z axis - * - * @param out the receiving matrix - * @param a the matrix to rotate - * @param rad the angle to rotate the matrix by - * @returns out - */ - public static rotateZ(out: mat4, a: mat4, rad: number): mat4; - - /** - * Creates a matrix from a vector translation - * This is equivalent to (but much faster than): - * - * mat4.identity(dest); - * mat4.translate(dest, dest, vec); - * - * @param {mat4} out mat4 receiving operation result - * @param {vec3} v Translation vector - * @returns {mat4} out - */ - public static fromTranslation(out: mat4, v: vec3 | number[]): mat4 - - /** - * Creates a matrix from a vector scaling - * This is equivalent to (but much faster than): - * - * mat4.identity(dest); - * mat4.scale(dest, dest, vec); - * - * @param {mat4} out mat4 receiving operation result - * @param {vec3} v Scaling vector - * @returns {mat4} out - */ - public static fromScaling(out: mat4, v: vec3 | number[]): mat4 - - /** - * Creates a matrix from a given angle around a given axis - * This is equivalent to (but much faster than): - * - * mat4.identity(dest); - * mat4.rotate(dest, dest, rad, axis); - * - * @param {mat4} out mat4 receiving operation result - * @param {number} rad the angle to rotate the matrix by - * @param {vec3} axis the axis to rotate around - * @returns {mat4} out - */ - public static fromRotation(out: mat4, rad: number, axis: vec3 | number[]): mat4 - - /** - * Creates a matrix from the given angle around the X axis - * This is equivalent to (but much faster than): - * - * mat4.identity(dest); - * mat4.rotateX(dest, dest, rad); - * - * @param {mat4} out mat4 receiving operation result - * @param {number} rad the angle to rotate the matrix by - * @returns {mat4} out - */ - public static fromXRotation(out: mat4, rad: number): mat4 - - /** - * Creates a matrix from the given angle around the Y axis - * This is equivalent to (but much faster than): - * - * mat4.identity(dest); - * mat4.rotateY(dest, dest, rad); - * - * @param {mat4} out mat4 receiving operation result - * @param {number} rad the angle to rotate the matrix by - * @returns {mat4} out - */ - public static fromYRotation(out: mat4, rad: number): mat4 - - - /** - * Creates a matrix from the given angle around the Z axis - * This is equivalent to (but much faster than): - * - * mat4.identity(dest); - * mat4.rotateZ(dest, dest, rad); - * - * @param {mat4} out mat4 receiving operation result - * @param {number} rad the angle to rotate the matrix by - * @returns {mat4} out - */ - public static fromZRotation(out: mat4, rad: number): mat4 - - /** - * Creates a matrix from a quaternion rotation and vector translation - * This is equivalent to (but much faster than): - * - * mat4.identity(dest); - * mat4.translate(dest, vec); - * var quatMat = mat4.create(); - * quat4.toMat4(quat, quatMat); - * mat4.multiply(dest, quatMat); - * - * @param out mat4 receiving operation result - * @param q Rotation quaternion - * @param v Translation vector - * @returns out - */ - public static fromRotationTranslation(out: mat4, q: quat, v: vec3 | number[]): mat4; - - /** - * Returns the translation vector component of a transformation - * matrix. If a matrix is built with fromRotationTranslation, - * the returned vector will be the same as the translation vector - * originally supplied. - * @param {vec3} out Vector to receive translation component - * @param {mat4} mat Matrix to be decomposed (input) - * @return {vec3} out - */ - public static getTranslation(out: vec3, mat: mat4): vec3; - - /** - * Returns a quaternion representing the rotational component - * of a transformation matrix. If a matrix is built with - * fromRotationTranslation, the returned quaternion will be the - * same as the quaternion originally supplied. - * @param {quat} out Quaternion to receive the rotation component - * @param {mat4} mat Matrix to be decomposed (input) - * @return {quat} out - */ - public static getRotation(out: quat, mat: mat4): quat; - - /** - * Creates a matrix from a quaternion rotation, vector translation and vector scale - * This is equivalent to (but much faster than): - * - * mat4.identity(dest); - * mat4.translate(dest, vec); - * var quatMat = mat4.create(); - * quat4.toMat4(quat, quatMat); - * mat4.multiply(dest, quatMat); - * mat4.scale(dest, scale) - * - * @param out mat4 receiving operation result - * @param q Rotation quaternion - * @param v Translation vector - * @param s Scaling vector - * @returns out - */ - public static fromRotationTranslationScale(out: mat4, q: quat, v: vec3 | number[], s: vec3 | number[]): mat4; - - /** - * Creates a matrix from a quaternion rotation, vector translation and vector scale, rotating and scaling around the given origin - * This is equivalent to (but much faster than): - * - * mat4.identity(dest); - * mat4.translate(dest, vec); - * mat4.translate(dest, origin); - * var quatMat = mat4.create(); - * quat4.toMat4(quat, quatMat); - * mat4.multiply(dest, quatMat); - * mat4.scale(dest, scale) - * mat4.translate(dest, negativeOrigin); - * - * @param {mat4} out mat4 receiving operation result - * @param {quat} q Rotation quaternion - * @param {vec3} v Translation vector - * @param {vec3} s Scaling vector - * @param {vec3} o The origin vector around which to scale and rotate - * @returns {mat4} out - */ - public static fromRotationTranslationScaleOrigin(out: mat4, q: quat, v: vec3 | number[], s: vec3 | number[], o: vec3 | number[]): mat4 - - /** - * Calculates a 4x4 matrix from the given quaternion - * - * @param {mat4} out mat4 receiving operation result - * @param {quat} q Quaternion to create matrix from - * - * @returns {mat4} out - */ - public static fromQuat(out: mat4, q: quat): mat4 - - /** - * Generates a frustum matrix with the given bounds - * - * @param out mat4 frustum matrix will be written into - * @param left Left bound of the frustum - * @param right Right bound of the frustum - * @param bottom Bottom bound of the frustum - * @param top Top bound of the frustum - * @param near Near bound of the frustum - * @param far Far bound of the frustum - * @returns out - */ - public static frustum(out: mat4, left: number, right: number, - bottom: number, top: number, near: number, far: number): mat4; - - /** - * Generates a perspective projection matrix with the given bounds - * - * @param out mat4 frustum matrix will be written into - * @param fovy Vertical field of view in radians - * @param aspect Aspect ratio. typically viewport width/height - * @param near Near bound of the frustum - * @param far Far bound of the frustum - * @returns out - */ - public static perspective(out: mat4, fovy: number, aspect: number, - near: number, far: number): mat4; - - /** - * Generates a perspective projection matrix with the given field of view. - * This is primarily useful for generating projection matrices to be used - * with the still experimental WebVR API. - * - * @param {mat4} out mat4 frustum matrix will be written into - * @param {Object} fov Object containing the following values: upDegrees, downDegrees, leftDegrees, rightDegrees - * @param {number} near Near bound of the frustum - * @param {number} far Far bound of the frustum - * @returns {mat4} out - */ - public static perspectiveFromFieldOfView(out: mat4, - fov:{upDegrees: number, downDegrees: number, leftDegrees: number, rightDegrees: number}, - near: number, far: number): mat4 - - /** - * Generates a orthogonal projection matrix with the given bounds - * - * @param out mat4 frustum matrix will be written into - * @param left Left bound of the frustum - * @param right Right bound of the frustum - * @param bottom Bottom bound of the frustum - * @param top Top bound of the frustum - * @param near Near bound of the frustum - * @param far Far bound of the frustum - * @returns out - */ - public static ortho(out: mat4, left: number, right: number, - bottom: number, top: number, near: number, far: number): mat4; - - /** - * Generates a look-at matrix with the given eye position, focal point, and up axis - * - * @param out mat4 frustum matrix will be written into - * @param eye Position of the viewer - * @param center Point the viewer is looking at - * @param up vec3 pointing up - * @returns out - */ - public static lookAt(out: mat4, eye: vec3 | number[], center: vec3 | number[], up: vec3 | number[]): mat4; - - /** - * Returns a string representation of a mat4 - * - * @param mat matrix to represent as a string - * @returns string representation of the matrix - */ - public static str(mat: mat4): string; - - /** - * Returns Frobenius norm of a mat4 - * - * @param a the matrix to calculate Frobenius norm of - * @returns Frobenius norm - */ - public static frob(a: mat4): number; - - /** - * Adds two mat4's - * - * @param {mat4} out the receiving matrix - * @param {mat4} a the first operand - * @param {mat4} b the second operand - * @returns {mat4} out - */ - public static add(out: mat4, a: mat4, b: mat4): mat4 - - /** - * Subtracts matrix b from matrix a - * - * @param {mat4} out the receiving matrix - * @param {mat4} a the first operand - * @param {mat4} b the second operand - * @returns {mat4} out - */ - public static subtract(out: mat4, a: mat4, b: mat4): mat4 - - /** - * Subtracts matrix b from matrix a - * - * @param {mat4} out the receiving matrix - * @param {mat4} a the first operand - * @param {mat4} b the second operand - * @returns {mat4} out - */ - public static sub(out: mat4, a: mat4, b: mat4): mat4 - - /** - * Multiply each element of the matrix by a scalar. - * - * @param {mat4} out the receiving matrix - * @param {mat4} a the matrix to scale - * @param {number} b amount to scale the matrix's elements by - * @returns {mat4} out - */ - public static multiplyScalar(out: mat4, a: mat4, b: number): mat4 - - /** - * Adds two mat4's after multiplying each element of the second operand by a scalar value. - * - * @param {mat4} out the receiving vector - * @param {mat4} a the first operand - * @param {mat4} b the second operand - * @param {number} scale the amount to scale b's elements by before adding - * @returns {mat4} out - */ - public static multiplyScalarAndAdd (out: mat4, a: mat4, b: mat4, scale: number): mat4 - - /** - * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===) - * - * @param {mat4} a The first matrix. - * @param {mat4} b The second matrix. - * @returns {boolean} True if the matrices are equal, false otherwise. - */ - public static exactEquals (a: mat4, b: mat4): boolean - - /** - * Returns whether or not the matrices have approximately the same elements in the same position. - * - * @param {mat4} a The first matrix. - * @param {mat4} b The second matrix. - * @returns {boolean} True if the matrices are equal, false otherwise. - */ - public static equals (a: mat4, b: mat4): boolean - +declare module 'gl-matrix/src/gl-matrix/mat3' { + import { mat3 } from 'gl-matrix'; + export = mat3; } -// quat -export class quat extends Float32Array { - private typeQuat: number; - - /** - * Creates a new identity quat - * - * @returns a new quaternion - */ - public static create(): quat; - - /** - * Creates a new quat initialized with values from an existing quaternion - * - * @param a quaternion to clone - * @returns a new quaternion - * @function - */ - public static clone(a: quat): quat; - - /** - * Creates a new quat initialized with the given values - * - * @param x X component - * @param y Y component - * @param z Z component - * @param w W component - * @returns a new quaternion - * @function - */ - public static fromValues(x: number, y: number, z: number, w: number): quat; - - /** - * Copy the values from one quat to another - * - * @param out the receiving quaternion - * @param a the source quaternion - * @returns out - * @function - */ - public static copy(out: quat, a: quat): quat; - - /** - * Set the components of a quat to the given values - * - * @param out the receiving quaternion - * @param x X component - * @param y Y component - * @param z Z component - * @param w W component - * @returns out - * @function - */ - public static set(out: quat, x: number, y: number, z: number, w: number): quat; - - /** - * Set a quat to the identity quaternion - * - * @param out the receiving quaternion - * @returns out - */ - public static identity(out: quat): quat; - - /** - * Sets a quaternion to represent the shortest rotation from one - * vector to another. - * - * Both vectors are assumed to be unit length. - * - * @param {quat} out the receiving quaternion. - * @param {vec3} a the initial vector - * @param {vec3} b the destination vector - * @returns {quat} out - */ - public static rotationTo (out: quat, a: vec3 | number[], b: vec3 | number[]): quat; - - /** - * Sets the specified quaternion with values corresponding to the given - * axes. Each axis is a vec3 and is expected to be unit length and - * perpendicular to all other specified axes. - * - * @param {vec3} view the vector representing the viewing direction - * @param {vec3} right the vector representing the local "right" direction - * @param {vec3} up the vector representing the local "up" direction - * @returns {quat} out - */ - public static setAxes (out: quat, view: vec3 | number[], right: vec3 | number[], up: vec3 | number[]): quat - - - - /** - * Sets a quat from the given angle and rotation axis, - * then returns it. - * - * @param out the receiving quaternion - * @param axis the axis around which to rotate - * @param rad the angle in radians - * @returns out - **/ - public static setAxisAngle(out: quat, axis: vec3 | number[], rad: number): quat; - - /** - * Gets the rotation axis and angle for a given - * quaternion. If a quaternion is created with - * setAxisAngle, this method will return the same - * values as providied in the original parameter list - * OR functionally equivalent values. - * Example: The quaternion formed by axis [0, 0, 1] and - * angle -90 is the same as the quaternion formed by - * [0, 0, 1] and 270. This method favors the latter. - * @param {vec3} out_axis Vector receiving the axis of rotation - * @param {quat} q Quaternion to be decomposed - * @return {number} Angle, in radians, of the rotation - */ - public static getAxisAngle (out_axis: vec3 | number[], q: quat): number - - /** - * Adds two quat's - * - * @param out the receiving quaternion - * @param a the first operand - * @param b the second operand - * @returns out - * @function - */ - public static add(out: quat, a: quat, b: quat): quat; - - /** - * Multiplies two quat's - * - * @param out the receiving quaternion - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static multiply(out: quat, a: quat, b: quat): quat; - - /** - * Multiplies two quat's - * - * @param out the receiving quaternion - * @param a the first operand - * @param b the second operand - * @returns out - */ - public static mul(out: quat, a: quat, b: quat): quat; - - /** - * Scales a quat by a scalar number - * - * @param out the receiving vector - * @param a the vector to scale - * @param b amount to scale the vector by - * @returns out - * @function - */ - public static scale(out: quat, a: quat, b: number): quat; - - /** - * Calculates the length of a quat - * - * @param a vector to calculate length of - * @returns length of a - * @function - */ - public static length(a: quat): number; - - /** - * Calculates the length of a quat - * - * @param a vector to calculate length of - * @returns length of a - * @function - */ - public static len(a: quat): number; - - /** - * Calculates the squared length of a quat - * - * @param a vector to calculate squared length of - * @returns squared length of a - * @function - */ - public static squaredLength(a: quat): number; - - /** - * Calculates the squared length of a quat - * - * @param a vector to calculate squared length of - * @returns squared length of a - * @function - */ - public static sqrLen(a: quat): number; - - /** - * Normalize a quat - * - * @param out the receiving quaternion - * @param a quaternion to normalize - * @returns out - * @function - */ - public static normalize(out: quat, a: quat): quat; - - /** - * Calculates the dot product of two quat's - * - * @param a the first operand - * @param b the second operand - * @returns dot product of a and b - * @function - */ - public static dot(a: quat, b: quat): number; - - /** - * Performs a linear interpolation between two quat's - * - * @param out the receiving quaternion - * @param a the first operand - * @param b the second operand - * @param t interpolation amount between the two inputs - * @returns out - * @function - */ - public static lerp(out: quat, a: quat, b: quat, t: number): quat; - - /** - * Performs a spherical linear interpolation between two quat - * - * @param out the receiving quaternion - * @param a the first operand - * @param b the second operand - * @param t interpolation amount between the two inputs - * @returns out - */ - public static slerp(out: quat, a: quat, b: quat, t: number): quat; - - /** - * Performs a spherical linear interpolation with two control points - * - * @param {quat} out the receiving quaternion - * @param {quat} a the first operand - * @param {quat} b the second operand - * @param {quat} c the third operand - * @param {quat} d the fourth operand - * @param {number} t interpolation amount - * @returns {quat} out - */ - public static sqlerp(out: quat, a: quat, b: quat, c: quat, d: quat, t: number): quat; - - /** - * Calculates the inverse of a quat - * - * @param out the receiving quaternion - * @param a quat to calculate inverse of - * @returns out - */ - public static invert(out: quat, a: quat): quat; - - /** - * Calculates the conjugate of a quat - * If the quaternion is normalized, this function is faster than quat.inverse and produces the same result. - * - * @param out the receiving quaternion - * @param a quat to calculate conjugate of - * @returns out - */ - public static conjugate(out: quat, a: quat): quat; - - /** - * Returns a string representation of a quaternion - * - * @param a quat to represent as a string - * @returns string representation of the quat - */ - public static str(a: quat): string; - - /** - * Rotates a quaternion by the given angle about the X axis - * - * @param out quat receiving operation result - * @param a quat to rotate - * @param rad angle (in radians) to rotate - * @returns out - */ - public static rotateX(out: quat, a: quat, rad: number): quat; - - /** - * Rotates a quaternion by the given angle about the Y axis - * - * @param out quat receiving operation result - * @param a quat to rotate - * @param rad angle (in radians) to rotate - * @returns out - */ - public static rotateY(out: quat, a: quat, rad: number): quat; - - /** - * Rotates a quaternion by the given angle about the Z axis - * - * @param out quat receiving operation result - * @param a quat to rotate - * @param rad angle (in radians) to rotate - * @returns out - */ - public static rotateZ(out: quat, a: quat, rad: number): quat; - - /** - * Creates a quaternion from the given 3x3 rotation matrix. - * - * NOTE: The resultant quaternion is not normalized, so you should be sure - * to renormalize the quaternion yourself where necessary. - * - * @param out the receiving quaternion - * @param m rotation matrix - * @returns out - * @function - */ - public static fromMat3(out: quat, m: mat3): quat; - - /** - * Sets the specified quaternion with values corresponding to the given - * axes. Each axis is a vec3 and is expected to be unit length and - * perpendicular to all other specified axes. - * - * @param out the receiving quat - * @param view the vector representing the viewing direction - * @param right the vector representing the local "right" direction - * @param up the vector representing the local "up" direction - * @returns out - */ - public static setAxes(out: quat, view: vec3 | number[], right: vec3 | number[], up: vec3 | number[]): quat; - - /** - * Sets a quaternion to represent the shortest rotation from one - * vector to another. - * - * Both vectors are assumed to be unit length. - * - * @param out the receiving quaternion. - * @param a the initial vector - * @param b the destination vector - * @returns out - */ - public static rotationTo(out: quat, a: vec3 | number[], b: vec3 | number[]): quat; - - /** - * Calculates the W component of a quat from the X, Y, and Z components. - * Assumes that quaternion is 1 unit in length. - * Any existing W component will be ignored. - * - * @param out the receiving quaternion - * @param a quat to calculate W component of - * @returns out - */ - public static calculateW(out: quat, a: quat): quat; - - /** - * Returns whether or not the quaternions have exactly the same elements in the same position (when compared with ===) - * - * @param {quat} a The first vector. - * @param {quat} b The second vector. - * @returns {boolean} True if the quaternions are equal, false otherwise. - */ - public static exactEquals (a: quat, b: quat): boolean; - - /** - * Returns whether or not the quaternions have approximately the same elements in the same position. - * - * @param {quat} a The first vector. - * @param {quat} b The second vector. - * @returns {boolean} True if the quaternions are equal, false otherwise. - */ - public static equals (a: quat, b: quat): boolean; +declare module 'gl-matrix/src/gl-matrix/mat4' { + import { mat4 } from 'gl-matrix'; + export = mat4; +} + +declare module 'gl-matrix/src/gl-matrix/quat' { + import { quat } from 'gl-matrix'; + export = quat; } diff --git a/google-libphonenumber/index.d.ts b/google-libphonenumber/index.d.ts index 937a0d9623..4a0f865373 100644 --- a/google-libphonenumber/index.d.ts +++ b/google-libphonenumber/index.d.ts @@ -20,10 +20,11 @@ declare namespace libphonenumber { parse(number: string, region: string): PhoneNumber; isValidNumber(phoneNumber: PhoneNumber): boolean; isPossibleNumber(phoneNumber: PhoneNumber): boolean; - isValidNumberForRegion(phoneNumber: PhoneNumber): boolean; + isValidNumberForRegion(phoneNumber: PhoneNumber, region: string): boolean; getRegionCodeForNumber(phoneNumber: PhoneNumber): string; isNANPACountry(regionCode: string): boolean; format(phoneNumber: PhoneNumber, format: PhoneNumberFormat): string; + parseAndKeepRawInput(number: string, regionCode: string): PhoneNumber; } export class AsYouTypeFormatter { diff --git a/google.visualization/google.visualization-tests.ts b/google.visualization/google.visualization-tests.ts index 2cbd8220f2..a51657a592 100644 --- a/google.visualization/google.visualization-tests.ts +++ b/google.visualization/google.visualization-tests.ts @@ -156,10 +156,17 @@ function test_areaChart() { ['2016', 1030, 540] ]); - var options = { + var options:google.visualization.AreaChartOptions = { title: 'Company Performance', hAxis: {title: 'Year', titleTextStyle: {color: '#333'}}, - vAxis: {minValue: 0} + vAxis: {minValue: 0}, + annotations: { + textStyle: { + bold: true, + italic: true, + color: "black" + } + } }; var chart = new google.visualization.AreaChart(document.getElementById('chart_div')); @@ -510,3 +517,107 @@ function test_ChartsLoad() { google.charts.setOnLoadCallback(drawChart); } + + +function test_ChartAnnotations() { + var annotations:google.visualization.ChartAnnotations = { + boxStyle: { + // Color of the box outline. + stroke: '#888', + // Thickness of the box outline. + strokeWidth: 1, + // x-radius of the corner curvature. + rx: 10, + // y-radius of the corner curvature. + ry: 10, + // Attributes for linear gradient fill. + gradient: { + // Start color for gradient. + color1: '#fbf6a7', + // Finish color for gradient. + color2: '#33b679', + // Where on the boundary to start and + // end the color1/color2 gradient, + // relative to the upper left corner + // of the boundary. + x1: '0%', y1: '0%', + x2: '100%', y2: '100%', + // If true, the boundary for x1, + // y1, x2, and y2 is the box. If + // false, it's the entire chart. + useObjectBoundingBoxUnits: true + } + }, + datum: { + stem: { + color: 'black', + length: 12 + }, + style: 'point' + }, + domain: { + stem: { + color: 'black', + length: 5 + }, + style: 'point' + }, + highContrast: true, + stem: { + color: 'black', + length: 5 + }, + style: 'line', + textStyle: { + fontName: 'Times-Roman', + fontSize: 18, + bold: true, + italic: true, + // The color of the text. + color: '#871b47', + // The color of the text outline. + auraColor: '#d799ae', + // The transparency of the text. + opacity: 0.8 + } + }; + + var barAnnotations:google.visualization.ChartBarColumnAnnotations = { + alwaysOutside: true, + textStyle: { + fontName: 'Times-Roman', + fontSize: 18, + bold: true + } + }; +} + + +function test_OrgChart() { + var data = new google.visualization.DataTable(); + data.addColumn('string', 'Name'); + data.addColumn('string', 'Manager'); + data.addColumn('string', 'ToolTip'); + + // For each orgchart box, provide the name, manager, and tooltip to show. + data.addRows([ + [{v:'Mike', f:'Mike
President
'}, '', 'The President'], + [{v:'Jim', f:'Jim
Vice President
'}, 'Mike', 'VP'], + ['Alice', 'Mike', ''], + ['Bob', 'Jim', 'Bob Sponge'], + ['Carol', 'Bob', ''] + ]); + + var chart = new google.visualization.OrgChart(document.getElementById('chart_div')); + chart.draw(data, { + allowCollapse: true, + allowHtml: true, + nodeClass: 'node', + selectedNodeClass: 'selected', + size: 'small' + }); + chart.collapse(1, true); + var children = chart.getChildrenIndexes(0); + var collapsed = chart.getCollapsedNodes(); + +} diff --git a/google.visualization/index.d.ts b/google.visualization/index.d.ts index a4dc1b7b1a..83b08296f8 100644 --- a/google.visualization/index.d.ts +++ b/google.visualization/index.d.ts @@ -1,6 +1,6 @@ // Type definitions for Google Visualisation Apis // Project: https://developers.google.com/chart/ -// Definitions by: Dan Ludwig , Gregory Moore +// Definitions by: Dan Ludwig , Gregory Moore , Dan Manastireanu // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped declare namespace google { @@ -331,6 +331,25 @@ declare namespace google { export interface ChartAnnotations { boxStyle?: ChartBoxStyle; textStyle?: ChartTextStyle; + datum?: ChartStemAndStyle; + domain?: ChartStemAndStyle; + highContrast?: boolean; + stem?: ChartStem; + style?: string; // 'line' or 'point' + } + + export interface ChartBarColumnAnnotations extends ChartAnnotations { + alwaysOutside?: boolean; + } + + export interface ChartStemAndStyle { + stem?: ChartStem; + style?: string; + } + + export interface ChartStem { + color?: string; + length?: number; } export interface ChartBoxStyle { @@ -565,7 +584,7 @@ declare namespace google { export interface ColumnChartOptions { aggregationTarget?: string; animation?: TransitionAnimation; - annotations?: ChartAnnotations; + annotations?: ChartBarColumnAnnotations; axisTitlesPosition?: string; // in, out, none backgroundColor?: any; bar?: GroupWidth; @@ -645,7 +664,7 @@ declare namespace google { export interface BarChartOptions { aggregationTarget?: string; animation?: TransitionAnimation; - annotations?: ChartAnnotations; + annotations?: ChartBarColumnAnnotations; axisTitlesPosition?: string; // in, out, none backgroundColor?: any; bar?: GroupWidth; @@ -739,6 +758,7 @@ declare namespace google { export interface AreaChartOptions { aggregationTarget?: string; animation?: TransitionAnimation; + annotations?: ChartAnnotations; areaOpacity?: number; axisTitlesPosition?: string; backgroundColor?: any; @@ -1357,6 +1377,34 @@ declare namespace google { format(dataTable: DataTable, srcColumnIndices: number[], opt_dstColumnIndex?: number): void; } + //#endregion + //#region OrgChart + + // https://google-developers.appspot.com/chart/interactive/docs/gallery/orgchart + export class OrgChart extends CoreChartBase { + draw(data: DataTable, options: OrgChartOptions): void; + draw(data: DataView, options: OrgChartOptions): void; + collapse(row: number, collapsed: boolean): void; + getChildrenIndexes(row: number): number[]; + getCollapsedNodes(): number[]; + } + + // https://google-developers.appspot.com/chart/interactive/docs/gallery/orgchart#Configuration_Options + export interface OrgChartOptions { + allowCollapse?: boolean; + allowHtml?: boolean; + color?: string; + nodeClass?: string; + selectedNodeClass?: string; + selectionColor?: string; + /** + * Chart size + * @type {('small'|'medium'|'large')} + * @default 'medium' + */ + size?: string; + } + //#endregion } } diff --git a/graphql/index.d.ts b/graphql/index.d.ts index b441fbc204..c7310ab3cc 100644 --- a/graphql/index.d.ts +++ b/graphql/index.d.ts @@ -1,6 +1,6 @@ // Type definitions for graphql v0.7.0 // Project: https://www.npmjs.com/package/graphql -// Definitions by: TonyYang +// Definitions by: TonyYang , Caleb Meredith // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /************************************* @@ -19,92 +19,11 @@ declare module "graphql" { // Create and operate on GraphQL type definitions and schema. - export { - GraphQLSchema, - - // Definitions - GraphQLScalarType, - GraphQLObjectType, - GraphQLInterfaceType, - GraphQLUnionType, - GraphQLEnumType, - GraphQLInputObjectType, - GraphQLList, - GraphQLNonNull, - GraphQLDirective, - - // "Enum" of Type Kinds - TypeKind, - - // "Enum" of Directive Locations - DirectiveLocation, - - // Scalars - GraphQLInt, - GraphQLFloat, - GraphQLString, - GraphQLBoolean, - GraphQLID, - - // Built-in Directives defined by the Spec - specifiedDirectives, - GraphQLIncludeDirective, - GraphQLSkipDirective, - GraphQLDeprecatedDirective, - - // Constant Deprecation Reason - DEFAULT_DEPRECATION_REASON, - - // Meta-field definitions. - SchemaMetaFieldDef, - TypeMetaFieldDef, - TypeNameMetaFieldDef, - - // GraphQL Types for introspection. - __Schema, - __Directive, - __DirectiveLocation, - __Type, - __Field, - __InputValue, - __EnumValue, - __TypeKind, - - // Predicates - isType, - isInputType, - isOutputType, - isLeafType, - isCompositeType, - isAbstractType, - - // Un-modifiers - getNullableType, - getNamedType, - } from 'graphql/type'; + export * from 'graphql/type'; // Parse and operate on GraphQL language source files. - export { - Source, - getLocation, - - // Parse - parse, - parseValue, - parseType, - - // Print - print, - - // Visit - visit, - visitInParallel, - visitWithTypeInfo, - Kind, - TokenKind, - BREAK, - } from 'graphql/language'; + export * from 'graphql/language'; // Execute GraphQL queries. @@ -128,7 +47,6 @@ declare module "graphql" { // Utilities for operating on GraphQL type schema and parsed sources. - /* export { // The GraphQL query recommended for a full schema introspection. introspectionQuery, @@ -185,7 +103,6 @@ declare module "graphql" { // Asserts a string is a valid GraphQL name. assertValidName, } from 'graphql/utilities'; - */ } declare module "graphql/graphql" { @@ -256,6 +173,7 @@ declare module "graphql/language" { } declare module "graphql/language/index" { + export * from 'graphql/language/ast'; export { getLocation } from 'graphql/language/location'; import * as Kind from 'graphql/language/kinds'; export { Kind }; @@ -273,7 +191,7 @@ declare module "graphql/language/ast" { * Contains a range of UTF-8 character offsets and token references that * identify the region of the source from which the AST derived. */ - type Location = { + export type Location = { /** * The character offset at which this Node begins. @@ -305,7 +223,7 @@ declare module "graphql/language/ast" { * Represents a range of characters represented by a lexical token * within a Source. */ - type Token = { + export type Token = { /** * The kind of Token. @@ -368,7 +286,7 @@ declare module "graphql/language/ast" { /** * The list of all possible AST node types. */ - type Node = Name + export type Node = Name | Document | OperationDefinition | VariableDefinition @@ -407,7 +325,7 @@ declare module "graphql/language/ast" { // Name - type Name = { + export type Name = { kind: 'Name'; loc?: Location; value: string; @@ -415,17 +333,17 @@ declare module "graphql/language/ast" { // Document - type Document = { + export type Document = { kind: 'Document'; loc?: Location; definitions: Array; } - type Definition = OperationDefinition + export type Definition = OperationDefinition | FragmentDefinition | TypeSystemDefinition // experimental non-spec addition. - type OperationDefinition = { + export type OperationDefinition = { kind: 'OperationDefinition'; loc?: Location; operation: OperationType; @@ -436,9 +354,9 @@ declare module "graphql/language/ast" { } // Note: subscription is an experimental non-spec addition. - type OperationType = 'query' | 'mutation' | 'subscription'; + export type OperationType = 'query' | 'mutation' | 'subscription'; - type VariableDefinition = { + export type VariableDefinition = { kind: 'VariableDefinition'; loc?: Location; variable: Variable; @@ -446,23 +364,23 @@ declare module "graphql/language/ast" { defaultValue?: Value; } - type Variable = { + export type Variable = { kind: 'Variable'; loc?: Location; name: Name; } - type SelectionSet = { + export type SelectionSet = { kind: 'SelectionSet'; loc?: Location; selections: Array; } - type Selection = Field + export type Selection = Field | FragmentSpread | InlineFragment - type Field = { + export type Field = { kind: 'Field'; loc?: Location; alias?: Name; @@ -472,7 +390,7 @@ declare module "graphql/language/ast" { selectionSet?: SelectionSet; } - type Argument = { + export type Argument = { kind: 'Argument'; loc?: Location; name: Name; @@ -482,14 +400,14 @@ declare module "graphql/language/ast" { // Fragments - type FragmentSpread = { + export type FragmentSpread = { kind: 'FragmentSpread'; loc?: Location; name: Name; directives?: Array; } - type InlineFragment = { + export type InlineFragment = { kind: 'InlineFragment'; loc?: Location; typeCondition?: NamedType; @@ -497,7 +415,7 @@ declare module "graphql/language/ast" { selectionSet: SelectionSet; } - type FragmentDefinition = { + export type FragmentDefinition = { kind: 'FragmentDefinition'; loc?: Location; name: Name; @@ -509,7 +427,7 @@ declare module "graphql/language/ast" { // Values - type Value = Variable + export type Value = Variable | IntValue | FloatValue | StringValue @@ -518,49 +436,49 @@ declare module "graphql/language/ast" { | ListValue | ObjectValue - type IntValue = { + export type IntValue = { kind: 'IntValue'; loc?: Location; value: string; } - type FloatValue = { + export type FloatValue = { kind: 'FloatValue'; loc?: Location; value: string; } - type StringValue = { + export type StringValue = { kind: 'StringValue'; loc?: Location; value: string; } - type BooleanValue = { + export type BooleanValue = { kind: 'BooleanValue'; loc?: Location; value: boolean; } - type EnumValue = { + export type EnumValue = { kind: 'EnumValue'; loc?: Location; value: string; } - type ListValue = { + export type ListValue = { kind: 'ListValue'; loc?: Location; values: Array; } - type ObjectValue = { + export type ObjectValue = { kind: 'ObjectValue'; loc?: Location; fields: Array; } - type ObjectField = { + export type ObjectField = { kind: 'ObjectField'; loc?: Location; name: Name; @@ -570,7 +488,7 @@ declare module "graphql/language/ast" { // Directives - type Directive = { + export type Directive = { kind: 'Directive'; loc?: Location; name: Name; @@ -580,23 +498,23 @@ declare module "graphql/language/ast" { // Type Reference - type Type = NamedType + export type Type = NamedType | ListType | NonNullType - type NamedType = { + export type NamedType = { kind: 'NamedType'; loc?: Location; name: Name; }; - type ListType = { + export type ListType = { kind: 'ListType'; loc?: Location; type: Type; } - type NonNullType = { + export type NonNullType = { kind: 'NonNullType'; loc?: Location; type: NamedType | ListType; @@ -604,40 +522,40 @@ declare module "graphql/language/ast" { // Type System Definition - type TypeSystemDefinition = SchemaDefinition + export type TypeSystemDefinition = SchemaDefinition | TypeDefinition | TypeExtensionDefinition | DirectiveDefinition - type SchemaDefinition = { + export type SchemaDefinition = { kind: 'SchemaDefinition'; loc?: Location; directives: Array; operationTypes: Array; } - type OperationTypeDefinition = { + export type OperationTypeDefinition = { kind: 'OperationTypeDefinition'; loc?: Location; operation: OperationType; type: NamedType; } - type TypeDefinition = ScalarTypeDefinition + export type TypeDefinition = ScalarTypeDefinition | ObjectTypeDefinition | InterfaceTypeDefinition | UnionTypeDefinition | EnumTypeDefinition | InputObjectTypeDefinition - type ScalarTypeDefinition = { + export type ScalarTypeDefinition = { kind: 'ScalarTypeDefinition'; loc?: Location; name: Name; directives?: Array; } - type ObjectTypeDefinition = { + export type ObjectTypeDefinition = { kind: 'ObjectTypeDefinition'; loc?: Location; name: Name; @@ -646,7 +564,7 @@ declare module "graphql/language/ast" { fields: Array; } - type FieldDefinition = { + export type FieldDefinition = { kind: 'FieldDefinition'; loc?: Location; name: Name; @@ -655,7 +573,7 @@ declare module "graphql/language/ast" { directives?: Array; } - type InputValueDefinition = { + export type InputValueDefinition = { kind: 'InputValueDefinition'; loc?: Location; name: Name; @@ -664,7 +582,7 @@ declare module "graphql/language/ast" { directives?: Array; } - type InterfaceTypeDefinition = { + export type InterfaceTypeDefinition = { kind: 'InterfaceTypeDefinition'; loc?: Location; name: Name; @@ -672,7 +590,7 @@ declare module "graphql/language/ast" { fields: Array; } - type UnionTypeDefinition = { + export type UnionTypeDefinition = { kind: 'UnionTypeDefinition'; loc?: Location; name: Name; @@ -680,7 +598,7 @@ declare module "graphql/language/ast" { types: Array; } - type EnumTypeDefinition = { + export type EnumTypeDefinition = { kind: 'EnumTypeDefinition'; loc?: Location; name: Name; @@ -688,14 +606,14 @@ declare module "graphql/language/ast" { values: Array; } - type EnumValueDefinition = { + export type EnumValueDefinition = { kind: 'EnumValueDefinition'; loc?: Location; name: Name; directives?: Array; } - type InputObjectTypeDefinition = { + export type InputObjectTypeDefinition = { kind: 'InputObjectTypeDefinition'; loc?: Location; name: Name; @@ -703,13 +621,13 @@ declare module "graphql/language/ast" { fields: Array; } - type TypeExtensionDefinition = { + export type TypeExtensionDefinition = { kind: 'TypeExtensionDefinition'; loc?: Location; definition: ObjectTypeDefinition; } - type DirectiveDefinition = { + export type DirectiveDefinition = { kind: 'DirectiveDefinition'; loc?: Location; name: Name; @@ -1014,29 +932,7 @@ declare module "graphql/type/index" { // GraphQL Schema definition export { GraphQLSchema } from 'graphql/type/schema'; - export { - // Predicates - isType, - isInputType, - isOutputType, - isLeafType, - isCompositeType, - isAbstractType, - - // Un-modifiers - getNullableType, - getNamedType, - - // Definitions - GraphQLScalarType, - GraphQLObjectType, - GraphQLInterfaceType, - GraphQLUnionType, - GraphQLEnumType, - GraphQLInputObjectType, - GraphQLList, - GraphQLNonNull, - } from 'graphql/type/definition'; + export * from 'graphql/type/definition'; export { // "Enum" of Directive Locations @@ -1098,7 +994,7 @@ declare module "graphql/type/definition" { /** * These are all of the possible kinds of types. */ - type GraphQLType = + export type GraphQLType = GraphQLScalarType | GraphQLObjectType | GraphQLInterfaceType | @@ -1108,12 +1004,12 @@ declare module "graphql/type/definition" { GraphQLList | GraphQLNonNull; - function isType(type: any): boolean; + export function isType(type: any): type is GraphQLType; /** * These types may be used as input types for arguments and directives. */ - type GraphQLInputType = + export type GraphQLInputType = GraphQLScalarType | GraphQLEnumType | GraphQLInputObjectType | @@ -1125,12 +1021,12 @@ declare module "graphql/type/definition" { GraphQLList >; - function isInputType(type: GraphQLType): boolean; + export function isInputType(type: GraphQLType): type is GraphQLInputType; /** * These types may be used as output types as the result of fields. */ - type GraphQLOutputType = + export type GraphQLOutputType = GraphQLScalarType | GraphQLObjectType | GraphQLInterfaceType | @@ -1146,40 +1042,40 @@ declare module "graphql/type/definition" { GraphQLList >; - function isOutputType(type: GraphQLType): boolean; + export function isOutputType(type: GraphQLType): type is GraphQLOutputType; /** * These types may describe types which may be leaf values. */ - type GraphQLLeafType = + export type GraphQLLeafType = GraphQLScalarType | GraphQLEnumType; - function isLeafType(type: GraphQLType): boolean; + export function isLeafType(type: GraphQLType): type is GraphQLLeafType; /** * These types may describe the parent context of a selection set. */ - type GraphQLCompositeType = + export type GraphQLCompositeType = GraphQLObjectType | GraphQLInterfaceType | GraphQLUnionType; - function isCompositeType(type: GraphQLType): boolean; + export function isCompositeType(type: GraphQLType): type is GraphQLCompositeType; /** * These types may describe the parent context of a selection set. */ - type GraphQLAbstractType = + export type GraphQLAbstractType = GraphQLInterfaceType | GraphQLUnionType; - function isAbstractType(type: GraphQLType): boolean; + export function isAbstractType(type: GraphQLType): type is GraphQLAbstractType; /** * These types can all accept null as a value. */ - type GraphQLNullableType = + export type GraphQLNullableType = GraphQLScalarType | GraphQLObjectType | GraphQLInterfaceType | @@ -1188,14 +1084,14 @@ declare module "graphql/type/definition" { GraphQLInputObjectType | GraphQLList; - function getNullableType( + export function getNullableType( type: T ): (T & GraphQLNullableType); /** * These named types do not include modifiers like List or NonNull. */ - type GraphQLNamedType = + export type GraphQLNamedType = GraphQLScalarType | GraphQLObjectType | GraphQLInterfaceType | @@ -1203,7 +1099,7 @@ declare module "graphql/type/definition" { GraphQLEnumType | GraphQLInputObjectType; - function getNamedType(type: GraphQLType): GraphQLNamedType + export function getNamedType(type: GraphQLType): GraphQLNamedType /** * Used while defining GraphQL types to allow for circular references in @@ -1245,7 +1141,7 @@ declare module "graphql/type/definition" { toString(): string; } - interface GraphQLScalarTypeConfig { + export interface GraphQLScalarTypeConfig { name: string; description?: string; serialize: (value: any) => TInternal; @@ -1303,7 +1199,7 @@ declare module "graphql/type/definition" { // - interface GraphQLObjectTypeConfig { + export interface GraphQLObjectTypeConfig { name: string; interfaces?: Thunk>; fields: Thunk>; @@ -1311,26 +1207,26 @@ declare module "graphql/type/definition" { description?: string } - type GraphQLTypeResolveFn = ( + export type GraphQLTypeResolveFn = ( value: any, context: any, info: GraphQLResolveInfo ) => GraphQLObjectType; - type GraphQLIsTypeOfFn = ( + export type GraphQLIsTypeOfFn = ( source: any, context: any, info: GraphQLResolveInfo ) => boolean; - type GraphQLFieldResolveFn = ( + export type GraphQLFieldResolveFn = ( source: TSource, args: { [argName: string]: any }, context: any, info: GraphQLResolveInfo ) => any; - interface GraphQLResolveInfo { + export interface GraphQLResolveInfo { fieldName: string; fieldASTs: Array; returnType: GraphQLOutputType; @@ -1343,7 +1239,7 @@ declare module "graphql/type/definition" { variableValues: { [variableName: string]: any }; } - interface GraphQLFieldConfig { + export interface GraphQLFieldConfig { type: GraphQLOutputType; args?: GraphQLFieldConfigArgumentMap; resolve?: GraphQLFieldResolveFn; @@ -1351,21 +1247,21 @@ declare module "graphql/type/definition" { description?: string; } - interface GraphQLFieldConfigArgumentMap { + export interface GraphQLFieldConfigArgumentMap { [argName: string]: GraphQLArgumentConfig; } - interface GraphQLArgumentConfig { + export interface GraphQLArgumentConfig { type: GraphQLInputType; defaultValue?: any; description?: string; } - interface GraphQLFieldConfigMap { + export interface GraphQLFieldConfigMap { [fieldName: string]: GraphQLFieldConfig; } - interface GraphQLFieldDefinition { + export interface GraphQLFieldDefinition { name: string; description: string; type: GraphQLOutputType; @@ -1375,14 +1271,14 @@ declare module "graphql/type/definition" { deprecationReason: string; } - interface GraphQLArgument { + export interface GraphQLArgument { name: string; type: GraphQLInputType; defaultValue?: any; description?: string; } - interface GraphQLFieldDefinitionMap { + export interface GraphQLFieldDefinitionMap { [fieldName: string]: GraphQLFieldDefinition; } @@ -1416,7 +1312,7 @@ declare module "graphql/type/definition" { toString(): string; } - interface GraphQLInterfaceTypeConfig { + export interface GraphQLInterfaceTypeConfig { name: string, fields: Thunk>, /** @@ -1463,7 +1359,7 @@ declare module "graphql/type/definition" { toString(): string; } - interface GraphQLUnionTypeConfig { + export interface GraphQLUnionTypeConfig { name: string, types: Thunk>, /** @@ -1508,23 +1404,23 @@ declare module "graphql/type/definition" { toString(): string; } - interface GraphQLEnumTypeConfig { + export interface GraphQLEnumTypeConfig { name: string; values: GraphQLEnumValueConfigMap; description?: string; } - interface GraphQLEnumValueConfigMap { + export interface GraphQLEnumValueConfigMap { [valueName: string]: GraphQLEnumValueConfig; } - interface GraphQLEnumValueConfig { + export interface GraphQLEnumValueConfig { value?: any; deprecationReason?: string; description?: string; } - interface GraphQLEnumValueDefinition { + export interface GraphQLEnumValueDefinition { name: string; description: string; deprecationReason: string; @@ -1554,36 +1450,36 @@ declare module "graphql/type/definition" { class GraphQLInputObjectType { name: string; description: string; - constructor(config: InputObjectConfig); - getFields(): InputObjectFieldMap; + constructor(config: GraphQLInputObjectTypeConfig); + getFields(): GraphQLInputFieldDefinitionMap; toString(): string; } - interface InputObjectConfig { + export interface GraphQLInputObjectTypeConfig { name: string; - fields: Thunk; + fields: Thunk; description?: string; } - interface InputObjectFieldConfig { + export interface GraphQLInputFieldConfig { type: GraphQLInputType; defaultValue?: any; description?: string; } - interface InputObjectConfigFieldMap { - [fieldName: string]: InputObjectFieldConfig; + export interface GraphQLInputFieldConfigMap { + [fieldName: string]: GraphQLInputFieldConfig; } - interface InputObjectField { + export interface GraphQLInputFieldDefinition { name: string; type: GraphQLInputType; defaultValue?: any; description?: string; } - interface InputObjectFieldMap { - [fieldName: string]: InputObjectField; + export interface GraphQLInputFieldDefinitionMap { + [fieldName: string]: GraphQLInputFieldDefinition; } /** @@ -2197,194 +2093,543 @@ declare module "graphql/error/syntaxError" { /////////////////////////// // graphql/utilities // /////////////////////////// -// declare module "graphql/utilities/index" { -// // The GraphQL query recommended for a full schema introspection. -// export { introspectionQuery } from 'graphql/utilities/introspectionQuery'; +declare module "graphql/utilities" { + export * from "graphql/utilities/index"; +} -// // Gets the target Operation from a Document -// export { getOperationAST } from 'graphql/utilities/getOperationAST'; +declare module "graphql/utilities/index" { + // The GraphQL query recommended for a full schema introspection. + export { introspectionQuery } from 'graphql/utilities/introspectionQuery'; -// // Build a GraphQLSchema from an introspection result. -// export { buildClientSchema } from 'graphql/utilities/buildClientSchema'; + // Gets the target Operation from a Document + export { getOperationAST } from 'graphql/utilities/getOperationAST'; -// // Build a GraphQLSchema from GraphQL Schema language. -// export { buildASTSchema, buildSchema } from 'graphql/utilities/buildASTSchema'; + // Build a GraphQLSchema from an introspection result. + export { buildClientSchema } from 'graphql/utilities/buildClientSchema'; -// // Extends an existing GraphQLSchema from a parsed GraphQL Schema language AST. -// export { extendSchema } from 'graphql/utilities/extendSchema'; + // Build a GraphQLSchema from GraphQL Schema language. + export { buildASTSchema, buildSchema } from 'graphql/utilities/buildASTSchema'; -// // Print a GraphQLSchema to GraphQL Schema language. -// export { printSchema, printIntrospectionSchema } from 'graphql/utilities/schemaPrinter'; + // Extends an existing GraphQLSchema from a parsed GraphQL Schema language AST. + export { extendSchema } from 'graphql/utilities/extendSchema'; -// // Create a GraphQLType from a GraphQL language AST. -// export { typeFromAST } from 'graphql/utilities/typeFromAST'; + // Print a GraphQLSchema to GraphQL Schema language. + export { printSchema, printIntrospectionSchema } from 'graphql/utilities/schemaPrinter'; -// // Create a JavaScript value from a GraphQL language AST. -// export { valueFromAST } from 'graphql/utilities/valueFromAST'; + // Create a GraphQLType from a GraphQL language AST. + export { typeFromAST } from 'graphql/utilities/typeFromAST'; -// // Create a GraphQL language AST from a JavaScript value. -// export { astFromValue } from 'graphql/utilities/astFromValue'; + // Create a JavaScript value from a GraphQL language AST. + export { valueFromAST } from 'graphql/utilities/valueFromAST'; -// // A helper to use within recursive-descent visitors which need to be aware of -// // the GraphQL type system. -// export { TypeInfo } from 'graphql/utilities/TypeInfo'; + // Create a GraphQL language AST from a JavaScript value. + export { astFromValue } from 'graphql/utilities/astFromValue'; -// // Determine if JavaScript values adhere to a GraphQL type. -// export { isValidJSValue } from 'graphql/utilities/isValidJSValue'; + // A helper to use within recursive-descent visitors which need to be aware of + // the GraphQL type system. + export { TypeInfo } from 'graphql/utilities/TypeInfo'; -// // Determine if AST values adhere to a GraphQL type. -// export { isValidLiteralValue } from 'graphql/utilities/isValidLiteralValue'; + // Determine if JavaScript values adhere to a GraphQL type. + export { isValidJSValue } from 'graphql/utilities/isValidJSValue'; -// // Concatenates multiple AST together. -// export { concatAST } from 'graphql/utilities/concatAST'; + // Determine if AST values adhere to a GraphQL type. + export { isValidLiteralValue } from 'graphql/utilities/isValidLiteralValue'; -// // Separates an AST into an AST per Operation. -// export { separateOperations } from 'graphql/utilities/separateOperations'; + // Concatenates multiple AST together. + export { concatAST } from 'graphql/utilities/concatAST'; -// // Comparators for types -// export { -// isEqualType, -// isTypeSubTypeOf, -// doTypesOverlap -// } from 'graphql/utilities/typeComparators'; + // Separates an AST into an AST per Operation. + export { separateOperations } from 'graphql/utilities/separateOperations'; -// // Asserts that a string is a valid GraphQL name -// export { assertValidName } from 'graphql/utilities/assertValidName'; -// } + // Comparators for types + export { + isEqualType, + isTypeSubTypeOf, + doTypesOverlap + } from 'graphql/utilities/typeComparators'; -// declare module "graphql/utilities/assertValidName" { -// // Helper to assert that provided names are valid. -// function assertValidName(name: string): void; -// } + // Asserts that a string is a valid GraphQL name + export { assertValidName } from 'graphql/utilities/assertValidName'; +} -// declare module "graphql/utilities/astFromValue" { -// import { -// Value, -// //IntValue, -// //FloatValue, -// //StringValue, -// //BooleanValue, -// //EnumValue, -// //ListValue, -// //ObjectValue, -// } from 'graphql/language/ast'; -// import { GraphQLInputType } from 'graphql/type/definition'; +declare module "graphql/utilities/assertValidName" { + // Helper to assert that provided names are valid. + function assertValidName(name: string): void; +} -// /** -// * Produces a GraphQL Value AST given a JavaScript value. -// * -// * A GraphQL type must be provided, which will be used to interpret different -// * JavaScript values. -// * -// * | JSON Value | GraphQL Value | -// * | ------------- | -------------------- | -// * | Object | Input Object | -// * | Array | List | -// * | Boolean | Boolean | -// * | String | String / Enum Value | -// * | Number | Int / Float | -// * | Mixed | Enum Value | -// * -// */ -// // TODO: this should set overloads according to above the table -// export function astFromValue( -// value: any, -// type: GraphQLInputType -// ): Value // Warning: there is a code in bottom: throw new TypeError +declare module "graphql/utilities/astFromValue" { + import { + Value, + //IntValue, + //FloatValue, + //StringValue, + //BooleanValue, + //EnumValue, + //ListValue, + //ObjectValue, + } from 'graphql/language/ast'; + import { GraphQLInputType } from 'graphql/type/definition'; -// } + /** + * Produces a GraphQL Value AST given a JavaScript value. + * + * A GraphQL type must be provided, which will be used to interpret different + * JavaScript values. + * + * | JSON Value | GraphQL Value | + * | ------------- | -------------------- | + * | Object | Input Object | + * | Array | List | + * | Boolean | Boolean | + * | String | String / Enum Value | + * | Number | Int / Float | + * | Mixed | Enum Value | + * + */ + // TODO: this should set overloads according to above the table + export function astFromValue( + value: any, + type: GraphQLInputType + ): Value // Warning: there is a code in bottom: throw new TypeError +} -// declare module "graphql/utilities/buildASTSchema" { -// import { Document } from 'graphql/language/ast'; -// import { Source } from 'graphql/language/source'; -// import { GraphQLSchema } from 'graphql/type/schema'; +declare module "graphql/utilities/buildASTSchema" { + import { Document } from 'graphql/language/ast'; + import { Source } from 'graphql/language/source'; + import { GraphQLSchema } from 'graphql/type/schema'; -// /** -// * This takes the ast of a schema document produced by the parse function in -// * src/language/parser.js. -// * -// * If no schema definition is provided, then it will look for types named Query -// * and Mutation. -// * -// * Given that AST it constructs a GraphQLSchema. The resulting schema -// * has no resolve methods, so execution will use default resolvers. -// */ -// function buildASTSchema(ast: Document): GraphQLSchema; + /** + * This takes the ast of a schema document produced by the parse function in + * src/language/parser.js. + * + * If no schema definition is provided, then it will look for types named Query + * and Mutation. + * + * Given that AST it constructs a GraphQLSchema. The resulting schema + * has no resolve methods, so execution will use default resolvers. + */ + function buildASTSchema(ast: Document): GraphQLSchema; -// /** -// * Given an ast node, returns its string description based on a contiguous -// * block full-line of comments preceding it. -// */ -// function getDescription(node: { loc?: Location }): string; + /** + * Given an ast node, returns its string description based on a contiguous + * block full-line of comments preceding it. + */ + function getDescription(node: { loc?: Location }): string; -// /** -// * A helper function to build a GraphQLSchema directly from a source -// * document. -// */ -// function buildSchema(source: string | Source): GraphQLSchema; -// } + /** + * A helper function to build a GraphQLSchema directly from a source + * document. + */ + function buildSchema(source: string | Source): GraphQLSchema; -// declare module "graphql/utilities/buildClientSchema" { -// import { IntrospectionQuery } from 'graphql/utilities/introspectionQuery'; -// import { GraphQLSchema } from 'graphql/type/schema'; -// /** -// * Build a GraphQLSchema for use by client tools. -// * -// * Given the result of a client running the introspection query, creates and -// * returns a GraphQLSchema instance which can be then used with all graphql-js -// * tools, but cannot be used to execute a query, as introspection does not -// * represent the "resolver", "parse" or "serialize" functions or any other -// * server-internal mechanisms. -// */ -// export function buildClientSchema( -// introspection: IntrospectionQuery -// ): GraphQLSchema; -// } + /** + * Given an ast node, returns its string description based on a contiguous + * block full-line of comments preceding it. + */ + function getDescription(node: { loc?: Location }): string; -// declare module "graphql/utilities/concatAST" { + /** + * A helper function to build a GraphQLSchema directly from a source + * document. + */ + function buildSchema(source: string | Source): GraphQLSchema; +} -// } +declare module "graphql/utilities/buildClientSchema" { + import { IntrospectionQuery } from 'graphql/utilities/introspectionQuery'; + import { GraphQLSchema } from 'graphql/type/schema'; + /** + * Build a GraphQLSchema for use by client tools. + * + * Given the result of a client running the introspection query, creates and + * returns a GraphQLSchema instance which can be then used with all graphql-js + * tools, but cannot be used to execute a query, as introspection does not + * represent the "resolver", "parse" or "serialize" functions or any other + * server-internal mechanisms. + */ + function buildClientSchema( + introspection: IntrospectionQuery + ): GraphQLSchema; +} -// declare module "graphql/utilities/extendSchema" { +declare module "graphql/utilities/concatAST" { + import { Document } from 'graphql/language/ast'; + /** + * Provided a collection of ASTs, presumably each from different files, + * concatenate the ASTs together into batched AST, useful for validating many + * GraphQL source files which together represent one conceptual application. + */ + function concatAST(asts: Array): Document; +} -// } +declare module "graphql/utilities/extendSchema" { + import { GraphQLSchema } from 'graphql/type/schema'; -// declare module "graphql/utilities/getOperationAST" { + /** + * Produces a new schema given an existing schema and a document which may + * contain GraphQL type extensions and definitions. The original schema will + * remain unaltered. + * + * Because a schema represents a graph of references, a schema cannot be + * extended without effectively making an entire copy. We do not know until it's + * too late if subgraphs remain unchanged. + * + * This algorithm copies the provided schema, applying extensions while + * producing the copy. The original schema remains unaltered. + */ + function extendSchema( + schema: GraphQLSchema, + documentAST: Document + ): GraphQLSchema; +} -// } +declare module "graphql/utilities/getOperationAST" { + import { Document, OperationDefinition } from 'graphql/language/ast'; -// declare module "graphql/utilities/introspectionQuery" { + /** + * Returns an operation AST given a document AST and optionally an operation + * name. If a name is not provided, an operation is only returned if only one is + * provided in the document. + */ + export function getOperationAST( + documentAST: Document, + operationName: string + ): OperationDefinition; +} -// } +declare module "graphql/utilities/introspectionQuery" { + import { DirectiveLocationEnum } from 'graphql/type/directives'; -// declare module "graphql/utilities/isValidJSValue" { + /* + query IntrospectionQuery { + __schema { + queryType { name } + mutationType { name } + subscriptionType { name } + types { + ...FullType + } + directives { + name + description + locations + args { + ...InputValue + } + } + } + } -// } + fragment FullType on __Type { + kind + name + description + fields(includeDeprecated: true) { + name + description + args { + ...InputValue + } + type { + ...TypeRef + } + isDeprecated + deprecationReason + } + inputFields { + ...InputValue + } + interfaces { + ...TypeRef + } + enumValues(includeDeprecated: true) { + name + description + isDeprecated + deprecationReason + } + possibleTypes { + ...TypeRef + } + } -// declare module "graphql/utilities/isValidLiteralValue" { + fragment InputValue on __InputValue { + name + description + type { ...TypeRef } + defaultValue + } -// } + fragment TypeRef on __Type { + kind + name + ofType { + kind + name + ofType { + kind + name + ofType { + kind + name + ofType { + kind + name + ofType { + kind + name + ofType { + kind + name + ofType { + kind + name + } + } + } + } + } + } + } + } + */ + const introspectionQuery: string; -// declare module "graphql/utilities/schemaPrinter" { -// } + interface IntrospectionQuery { + __schema: IntrospectionSchema + } -// declare module "graphql/utilities/separateOperations" { + interface IntrospectionSchema { + queryType: IntrospectionNamedTypeRef; + mutationType?: IntrospectionNamedTypeRef; + subscriptionType?: IntrospectionNamedTypeRef; + types: Array; + directives: Array; + } -// } + type IntrospectionType = + IntrospectionScalarType | + IntrospectionObjectType | + IntrospectionInterfaceType | + IntrospectionUnionType | + IntrospectionEnumType | + IntrospectionInputObjectType; -// declare module "graphql/utilities/typeComparators" { + interface IntrospectionScalarType { + kind: 'SCALAR'; + name: string; + description?: string; + } -// } + interface IntrospectionObjectType { + kind: 'OBJECT'; + name: string; + description?: string; + fields: Array; + interfaces: Array; + } -// declare module "graphql/utilities/typeFromAST" { + interface IntrospectionInterfaceType { + kind: 'INTERFACE'; + name: string; + description?: string; + fields: Array; + possibleTypes: Array; + } -// } + interface IntrospectionUnionType { + kind: 'UNION'; + name: string; + description?: string; + possibleTypes: Array; + } + + interface IntrospectionEnumType { + kind: 'ENUM'; + name: string; + description?: string; + enumValues: Array; + } + + interface IntrospectionInputObjectType { + kind: 'INPUT_OBJECT'; + name: string; + description?: string; + inputFields: Array; + } + + type IntrospectionTypeRef = + IntrospectionNamedTypeRef | + IntrospectionListTypeRef | + IntrospectionNonNullTypeRef + + interface IntrospectionNamedTypeRef { + kind: string; + name: string; + } + + interface IntrospectionListTypeRef { + kind: 'LIST'; + ofType?: IntrospectionTypeRef; + } + + interface IntrospectionNonNullTypeRef { + kind: 'NON_NULL'; + ofType?: IntrospectionTypeRef; + } + + interface IntrospectionField { + name: string; + description?: string; + args: Array; + type: IntrospectionTypeRef; + isDeprecated: boolean; + deprecationReason?: string; + } + + interface IntrospectionInputValue { + name: string; + description?: string; + type: IntrospectionTypeRef; + defaultValue?: string; + } + + interface IntrospectionEnumValue { + name: string; + description?: string; + isDeprecated: boolean; + deprecationReason?: string; + } + + interface IntrospectionDirective { + name: string; + description?: string; + locations: Array; + args: Array; + } +} + +declare module "graphql/utilities/isValidJSValue" { + import { GraphQLInputType } from 'graphql/type/definition'; + + /** + * Given a JavaScript value and a GraphQL type, determine if the value will be + * accepted for that type. This is primarily useful for validating the + * runtime values of query variables. + */ + function isValidJSValue( + value: any, + type: GraphQLInputType + ): Array +} + +declare module "graphql/utilities/isValidLiteralValue" { + import { Value } from 'graphql/language/ast'; + import { GraphQLInputType } from 'graphql/type/definition'; + + /** + * Utility for validators which determines if a value literal AST is valid given + * an input type. + * + * Note that this only validates literal values, variables are assumed to + * provide values of the correct type. + */ + function isValidLiteralValue( + type: GraphQLInputType, + valueAST: Value + ): Array +} + +declare module "graphql/utilities/schemaPrinter" { + import { GraphQLSchema } from 'graphql/type/schema'; + + function printSchema(schema: GraphQLSchema): string; + + function printIntrospectionSchema(schema: GraphQLSchema): string; +} + +declare module "graphql/utilities/separateOperations" { + import { + Document, + OperationDefinition, + } from 'graphql/language/ast'; + + function separateOperations( + documentAST: Document + ): { [operationName: string]: Document } +} + +declare module "graphql/utilities/typeComparators" { + import { + GraphQLType, + GraphQLCompositeType, + GraphQLAbstractType + } from 'graphql/type/definition'; + import { + GraphQLSchema + } from 'graphql/type/schema'; + + /** + * Provided two types, return true if the types are equal (invariant). + */ + function isEqualType(typeA: GraphQLType, typeB: GraphQLType): boolean; + + /** + * Provided a type and a super type, return true if the first type is either + * equal or a subset of the second super type (covariant). + */ + function isTypeSubTypeOf( + schema: GraphQLSchema, + maybeSubType: GraphQLType, + superType: GraphQLType + ): boolean; + + /** + * Provided two composite types, determine if they "overlap". Two composite + * types overlap when the Sets of possible concrete types for each intersect. + * + * This is often used to determine if a fragment of a given type could possibly + * be visited in a context of another type. + * + * This function is commutative. + */ + function doTypesOverlap( + schema: GraphQLSchema, + typeA: GraphQLCompositeType, + typeB: GraphQLCompositeType + ): boolean; +} + +declare module "graphql/utilities/typeFromAST" { + import { Type } from 'graphql/language/ast'; + import { GraphQLType, GraphQLNullableType } from 'graphql/type/definition'; + import { GraphQLSchema } from 'graphql/type/schema'; + + function typeFromAST( + schema: GraphQLSchema, + inputTypeAST: Type + ): GraphQLType +} declare module "graphql/utilities/TypeInfo" { class TypeInfo { } } -// declare module "graphql/utilities/valueFromAST" { +declare module "graphql/utilities/valueFromAST" { + import { GraphQLInputType } from 'graphql/type/definition'; + import { + Value, + Variable, + ListValue, + ObjectValue + } from 'graphql/language/ast'; -// } + function valueFromAST( + valueAST: Value, + type: GraphQLInputType, + variables?: { + [key: string]: any + } + ): any; +} diff --git a/gulp-cache/gulp-cache-tests.ts b/gulp-cache/gulp-cache-tests.ts index 2efa3975fc..31df7b0259 100644 --- a/gulp-cache/gulp-cache-tests.ts +++ b/gulp-cache/gulp-cache-tests.ts @@ -1,6 +1,3 @@ -/// -/// - import * as fs from "fs"; import * as gulp from "gulp"; import * as cache from "gulp-cache"; @@ -29,7 +26,7 @@ var jsHintVersion = '2.4.1', jshintOptions = fs.readFileSync('.jshintrc'); function makeHashKey(file: File) { - return [file.contents.toString('utf8'), jsHintVersion, jshintOptions].join(''); + return [(file.contents as Buffer).toString('utf8'), jsHintVersion, jshintOptions].join(''); } gulp.task('clear', function (done: any) { diff --git a/gulp-cache/gulp-cache.d.ts b/gulp-cache/gulp-cache.d.ts deleted file mode 100644 index cfb1cb2514..0000000000 --- a/gulp-cache/gulp-cache.d.ts +++ /dev/null @@ -1,94 +0,0 @@ -// Type definitions for gulp-cache v0.4.5 -// Project: https://github.com/jgable/gulp-cache -// Definitions by: Arun Aravind -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -/// -/// -/// - -declare module "gulp-cache" { - import File = require("vinyl"); - import { Transform } from "stream"; - import { PluginError } from "gulp-util"; - - namespace gc { - type Predicate = (arg: T) => boolean; - - interface IGulpCacheOptions { - /** - * The cache instance to use for caching. - */ - fileCache?: IGulpCache; - - /** - * The name of the bucket which stores the cached objects. - * Default value = 'default' - */ - name?: string, - - /** - * The hash generator to use. - */ - key?: (file: File, callback?: (err: any, result: string) => void) => string | Promise; - - /** - * Value representing the success of a task. - */ - success?: boolean | Predicate; - - /** - * Content that is to be cached. - */ - value?: (result: any) => Object | Promise | string; - } - - interface ICacheOptions { - /** - * Specifies the name of the directory where the cache - * is to be stored. - */ - cacheDirName: string; - } - - interface IGulpCacheStatic { - /** - * Caches the result of a task. - * @param task The task whose result is to be cached. - */ - (task: NodeJS.ReadWriteStream): Transform; - - /** - * Caches the result of a task. - * @param task Task whose result is to be cached. - * @param options Override values for available settings. - */ - (task: NodeJS.ReadWriteStream, options: IGulpCacheOptions): Transform; - - clear(options: IGulpCacheOptions): Transform; - - /** - * Represents a cache store. - */ - Cache: IGulpCache; - - /** - * Purges the cache. - * @param err PluginError instance in case of a plugin error. - * If callback is not specified an exception of type - * 'PluginError' is thrown. - */ - clearAll(callback?: (err: PluginError) => void): void; - } - - /** - * Represents a cach store. - */ - interface IGulpCache { - new (options: ICacheOptions): any; - } - } - - const _: gc.IGulpCacheStatic; - export = _; -} diff --git a/gulp-cache/index.d.ts b/gulp-cache/index.d.ts new file mode 100644 index 0000000000..d576427f3d --- /dev/null +++ b/gulp-cache/index.d.ts @@ -0,0 +1,90 @@ +// Type definitions for gulp-cache v0.4.5 +// Project: https://github.com/jgable/gulp-cache +// Definitions by: Arun Aravind +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +import File = require("vinyl"); +import { Transform } from "stream"; +import { PluginError } from "gulp-util"; + +declare namespace gc { + type Predicate = (arg: T) => boolean; + + interface IGulpCacheOptions { + /** + * The cache instance to use for caching. + */ + fileCache?: IGulpCache; + + /** + * The name of the bucket which stores the cached objects. + * Default value = 'default' + */ + name?: string, + + /** + * The hash generator to use. + */ + key?: (file: File, callback?: (err: any, result: string) => void) => string | Promise; + + /** + * Value representing the success of a task. + */ + success?: boolean | Predicate; + + /** + * Content that is to be cached. + */ + value?: (result: any) => Object | Promise | string; + } + + interface ICacheOptions { + /** + * Specifies the name of the directory where the cache + * is to be stored. + */ + cacheDirName: string; + } + + interface IGulpCacheStatic { + /** + * Caches the result of a task. + * @param task The task whose result is to be cached. + */ + (task: NodeJS.ReadWriteStream): Transform; + + /** + * Caches the result of a task. + * @param task Task whose result is to be cached. + * @param options Override values for available settings. + */ + (task: NodeJS.ReadWriteStream, options: IGulpCacheOptions): Transform; + + clear(options: IGulpCacheOptions): Transform; + + /** + * Represents a cache store. + */ + Cache: IGulpCache; + + /** + * Purges the cache. + * @param err PluginError instance in case of a plugin error. + * If callback is not specified an exception of type + * 'PluginError' is thrown. + */ + clearAll(callback?: (err: PluginError) => void): void; + } + + /** + * Represents a cach store. + */ + interface IGulpCache { + new (options: ICacheOptions): any; + } +} + +declare const _: gc.IGulpCacheStatic; +export = _; diff --git a/gulp-cache/tsconfig.json b/gulp-cache/tsconfig.json new file mode 100644 index 0000000000..fb841a90ec --- /dev/null +++ b/gulp-cache/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "gulp-cache-tests.ts" + ] +} \ No newline at end of file diff --git a/gulp-copy/gulp-copy-tests.ts b/gulp-copy/gulp-copy-tests.ts index acb225bbe5..f4bc3ac023 100644 --- a/gulp-copy/gulp-copy-tests.ts +++ b/gulp-copy/gulp-copy-tests.ts @@ -1,6 +1,3 @@ -/// -/// - import * as gulp from "gulp"; import * as gulpCopy from "gulp-copy"; diff --git a/gulp-copy/gulp-copy.d.ts b/gulp-copy/gulp-copy.d.ts deleted file mode 100644 index 68f652ed9a..0000000000 --- a/gulp-copy/gulp-copy.d.ts +++ /dev/null @@ -1,39 +0,0 @@ -// Type definitions for gulp-copy v0.0.2 -// Project: https://github.com/klaascuvelier/gulp-copy -// Definitions by: Arun Aravind -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -/// - -declare module "gulp-copy" { - import through = require("through"); - - /** - * Copy files to destination and expose those files as source streams for the gulp pipeline. - * - * @param outDirectory The name of the destination directory. If this directory - * does not exist, it will be created atomatically. - */ - function gulpCopy(outDirectory: string): through.ThroughStream; - - /** - * Copy files to destination and expose those files as source streams for the gulp pipeline. - * - * @param outDirectory The name of the destination directory. If this directory - * does not exist, it will be created atomatically. - * @param options Override values for available settings. - */ - function gulpCopy(outDirectory: string, options: gulpCopy.GulpCopyOptions): through.ThroughStream; - - namespace gulpCopy { - - export interface GulpCopyOptions { - /** - * Specifies the number of parts of the path to be ignored as path prefixes. - */ - prefix: number; - } - } - - export = gulpCopy; -} diff --git a/gulp-copy/index.d.ts b/gulp-copy/index.d.ts new file mode 100644 index 0000000000..18a85d1292 --- /dev/null +++ b/gulp-copy/index.d.ts @@ -0,0 +1,34 @@ +// Type definitions for gulp-copy v0.0.2 +// Project: https://github.com/klaascuvelier/gulp-copy +// Definitions by: Arun Aravind +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +import through = require("through"); + +/** + * Copy files to destination and expose those files as source streams for the gulp pipeline. + * + * @param outDirectory The name of the destination directory. If this directory + * does not exist, it will be created atomatically. + */ +declare function gulpCopy(outDirectory: string): through.ThroughStream; + +/** + * Copy files to destination and expose those files as source streams for the gulp pipeline. + * + * @param outDirectory The name of the destination directory. If this directory + * does not exist, it will be created atomatically. + * @param options Override values for available settings. + */ +declare function gulpCopy(outDirectory: string, options: gulpCopy.GulpCopyOptions): through.ThroughStream; + +declare namespace gulpCopy { + export interface GulpCopyOptions { + /** + * Specifies the number of parts of the path to be ignored as path prefixes. + */ + prefix: number; + } +} + +export = gulpCopy; diff --git a/gulp-copy/tsconfig.json b/gulp-copy/tsconfig.json new file mode 100644 index 0000000000..052c9b42f7 --- /dev/null +++ b/gulp-copy/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "gulp-copy-tests.ts" + ] +} \ No newline at end of file diff --git a/headroom/tsconfig.json b/headroom/tsconfig.json index 6b6f41a4b8..3dd7aec967 100644 --- a/headroom/tsconfig.json +++ b/headroom/tsconfig.json @@ -14,6 +14,6 @@ }, "files": [ "index.d.ts", - "Headroom-tests.ts" + "headroom-tests.ts" ] } \ No newline at end of file diff --git a/highcharts-ng/index.d.ts b/highcharts-ng/index.d.ts index eed6dde0db..123799e76c 100644 --- a/highcharts-ng/index.d.ts +++ b/highcharts-ng/index.d.ts @@ -3,41 +3,43 @@ // Definitions by: Scott Hatcher // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -/// +import { ChartObject, IndividualSeriesOptions, Options } from "highcharts"; -interface HighChartsNGConfig { - options: __Highcharts.Options; - //The below properties are watched separately for changes. +declare global { + interface HighChartsNGConfig { + options: Options; + //The below properties are watched separately for changes. - //Series object (optional) - a list of series using normal highcharts series options. - series?: __Highcharts.IndividualSeriesOptions[]; - //Title configuration (optional) - title?: { - text?: string; - }; - //Boolean to control showng loading status on chart (optional) - //Could be a string if you want to show specific loading text. - loading?: boolean | string; - //Configuration for the xAxis (optional). Currently only one x axis can be dynamically controlled. - //properties currentMin and currentMax provied 2-way binding to the chart's maximimum and minimum - xAxis?: { - currentMin?: number; - currentMax?: number; - title?: { text?: string } - }; - //Whether to use HighStocks instead of HighCharts (optional). Defaults to false. - useHighStocks?: boolean; - //size (optional) if left out the chart will default to size of the div or something sensible. - size?: { - width?: number; - height?: number; - }; - //function (optional) - setup some logic for the chart - func?: (chart: __Highcharts.ChartObject) => void; -} + //Series object (optional) - a list of series using normal highcharts series options. + series?: IndividualSeriesOptions[]; + //Title configuration (optional) + title?: { + text?: string; + }; + //Boolean to control showng loading status on chart (optional) + //Could be a string if you want to show specific loading text. + loading?: boolean | string; + //Configuration for the xAxis (optional). Currently only one x axis can be dynamically controlled. + //properties currentMin and currentMax provied 2-way binding to the chart's maximimum and minimum + xAxis?: { + currentMin?: number; + currentMax?: number; + title?: { text?: string } + }; + //Whether to use HighStocks instead of HighCharts (optional). Defaults to false. + useHighStocks?: boolean; + //size (optional) if left out the chart will default to size of the div or something sensible. + size?: { + width?: number; + height?: number; + }; + //function (optional) - setup some logic for the chart + func?: (chart: ChartObject) => void; + } -//Instantiated Chart -interface HighChartsNGChart extends HighChartsNGConfig { - //This is a simple way to access all the Highcharts API that is not currently managed by this directive. - getHighcharts(): __Highcharts.ChartObject; + //Instantiated Chart + interface HighChartsNGChart extends HighChartsNGConfig { + //This is a simple way to access all the Highcharts API that is not currently managed by this directive. + getHighcharts(): ChartObject; + } } diff --git a/highcharts/highcharts-more-tests.ts b/highcharts/highcharts-more-tests.ts new file mode 100644 index 0000000000..e6e5e9af5c --- /dev/null +++ b/highcharts/highcharts-more-tests.ts @@ -0,0 +1 @@ +HighchartsMore(Highcharts); diff --git a/highcharts/highcharts-more.d.ts b/highcharts/highcharts-more.d.ts index b80ce30f4a..dd5950fe35 100644 --- a/highcharts/highcharts-more.d.ts +++ b/highcharts/highcharts-more.d.ts @@ -3,10 +3,6 @@ // Definitions by: Maciej Suchecki // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -/// - -declare var HighchartsMore: (H: __Highcharts.Static) => __Highcharts.Static; - -declare module "highcharts/highcharts-more" { - export = HighchartsMore; -} +declare var HighchartsMore: (H: Highcharts.Static) => Highcharts.Static; +export = HighchartsMore; +export as namespace HighchartsMore; diff --git a/highcharts/highcharts-tests.ts b/highcharts/highcharts-tests.ts index 31db25f482..459d812bcc 100644 --- a/highcharts/highcharts-tests.ts +++ b/highcharts/highcharts-tests.ts @@ -1,5 +1,5 @@ - /// +import * as Highcharts from "highcharts"; // May also use /// function originalTests() { Highcharts.setOptions({ @@ -16,13 +16,13 @@ function originalTests() { }); - var animate: __Highcharts.Animation = { + var animate: Highcharts.Animation = { duration: 200, easing: "linear" }; - var gradient: __Highcharts.Gradient = { + var gradient: Highcharts.Gradient = { linearGradient: { x1: 0, y1: 0, @@ -42,19 +42,19 @@ function originalTests() { renderTo: "container" }, xAxis: {}, - series: [<__Highcharts.LineChartSeriesOptions>{ + series: [{ data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4], type: "line", allowPointSelect: true }] }); - chart1.addSeries<__Highcharts.BarChartSeriesOptions>({ + chart1.addSeries({ enableMouseTracking: true, data: [1, 2, 3, 4, 5] }); - console.log((<__Highcharts.LineChartSeriesOptions>chart1.series[0].options).dashStyle); + console.log((chart1.series[0].options).dashStyle); var chart2 = new Highcharts.Chart({ chart: { @@ -85,7 +85,7 @@ function originalTests() { legend: { enabled: false }, - series: [<__Highcharts.ScatterChartSeriesOptions>{ + series: [{ data: [ [550, 870], [738, 362], [719, 711], [547, 665], [595, 197], [332, 144], [581, 555], [196, 862], [6, 837], [400, 924], [888, 148], [785, 730], @@ -113,14 +113,14 @@ function originalTests() { var r = new Highcharts.Renderer(div, 20, 30); var box = r.text("Hello", 10, 10).getBBox(); - var highChartSettings: __Highcharts.Options = { + var highChartSettings: Highcharts.Options = { chart: { width: 400, height: 400 }, xAxis: [{ }], - series: [<__Highcharts.PieChartSeriesOptions>{ + series: [{ data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4] }] }; @@ -129,16 +129,16 @@ function originalTests() { chart.series[0].setVisible(true, true); }); - var singleYAxisOptions: __Highcharts.Options = { + var singleYAxisOptions: Highcharts.Options = { yAxis: {} }; - var multipleYAxisOptions: __Highcharts.Options = { + var multipleYAxisOptions: Highcharts.Options = { yAxis: [{}, {}] }; var renderToIdChart = new Highcharts.Chart("container", { xAxis: {}, - series: [<__Highcharts.LineChartSeriesOptions>{ + series: [{ data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4], type: "line", allowPointSelect: true @@ -147,7 +147,7 @@ function originalTests() { var renderToElementChart = new Highcharts.Chart(div, { xAxis: {}, - series: [<__Highcharts.LineChartSeriesOptions>{ + series: [{ data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4], type: "line", allowPointSelect: true @@ -156,7 +156,7 @@ function originalTests() { var createWithFunction = Highcharts.chart({ xAxis: {}, - series: [<__Highcharts.LineChartSeriesOptions>{ + series: [{ data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4], type: "line", allowPointSelect: true @@ -165,7 +165,7 @@ function originalTests() { var createWithFunctionRenderToId = Highcharts.chart("container", { xAxis: {}, - series: [<__Highcharts.LineChartSeriesOptions>{ + series: [{ data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4], type: "line", allowPointSelect: true @@ -174,7 +174,7 @@ function originalTests() { var createWithFunctionRenderToElement = Highcharts.chart(div, { xAxis: {}, - series: [<__Highcharts.LineChartSeriesOptions>{ + series: [{ data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4], type: "line", allowPointSelect: true @@ -183,7 +183,7 @@ function originalTests() { } function test_alldefaults() { - var options: __Highcharts.Options = { + var options: Highcharts.Options = { chart: {}, credits: {}, data: {}, @@ -207,19 +207,19 @@ function test_alldefaults() { } function test_ChartOptions() { - var emptyChartOptions: __Highcharts.ChartOptions = { + var emptyChartOptions: Highcharts.ChartOptions = { events: {}, options3d: {}, resetZoomButton: {} }; - var allValuesSet: __Highcharts.ChartOptions = { + var allValuesSet: Highcharts.ChartOptions = { alignTicks: false, animation: { duration: 500, easing: "linear" }, - backgroundColor: <__Highcharts.Gradient> { + backgroundColor: { linearGradient: { x1: 0, y1: 0, @@ -233,7 +233,7 @@ function test_ChartOptions() { borderWidth: 5, className: "class", defaultSeriesType: "deprecated", - events: <__Highcharts.ChartEvents> { + events: { addSeries: () => {}, afterPrint: () => {}, beforePrint: () => {}, @@ -252,21 +252,21 @@ function test_ChartOptions() { marginLeft: 10, marginRight: 10, marginTop: 10, - options3d: <__Highcharts.ChartOptions3d> { + options3d: { alpha: 20, beta: 20, depth: 50, enabled: true, frame: { - back: <__Highcharts.ChartOptions3dFrame> { + back: { color: "black", size: 2 }, - bottom: <__Highcharts.ChartOptions3dFrame> { + bottom: { color: "black", size: 2 }, - side: <__Highcharts.ChartOptions3dFrame> { + side: { color: "black", size: 2 } @@ -280,7 +280,7 @@ function test_ChartOptions() { plotBackgroundImage: "http://image.url/image.jpg", plotBorderColor: "grey", plotBorderWidth: 5, - plotShadow: <__Highcharts.Shadow> { + plotShadow: { color: "magenta", offsetX: 10, offsetY: 10, @@ -290,15 +290,15 @@ function test_ChartOptions() { polar: true, reflow: false, renderTo: "elementId", - resetZoomButton: <__Highcharts.ChartResetZoomButton> { - position: <__Highcharts.Position> { + resetZoomButton: { + position: { align: "left", verticalAlign: "top", x: 5, y: 5 }, relativeTo: "chart", - theme: <__Highcharts.ButtonTheme> { + theme: { display: "hidden", fill: "black", stroke: "white", @@ -364,7 +364,7 @@ function test_ChartOptions() { }); // animation example - $('#container').highcharts(<__Highcharts.Options> { + $('#container').highcharts( { chart: { animation: { duration: 1500, @@ -449,7 +449,7 @@ function test_ChartOptions() { chart: { events: { addSeries: function () { - var label = (<__Highcharts.ChartObject>this).renderer.label('A series was added, about to redraw chart', 100, 120) + var label = (this).renderer.label('A series was added, about to redraw chart', 100, 120) .attr({ fill: Highcharts.getOptions().colors[0], padding: 10, @@ -578,7 +578,7 @@ function test_ChartOptions() { } function test_CreditsOptions() { - var allDefaults: __Highcharts.CreditsOptions = {}; + var allDefaults: Highcharts.CreditsOptions = {}; // custom url and text example $('#container').highcharts({ @@ -597,7 +597,7 @@ function test_CreditsOptions() { function test_Data() { // all defaults - var data: __Highcharts.DataOptions = {}; + var data: Highcharts.DataOptions = {}; // data from table example $('#container').highcharts({ @@ -631,10 +631,10 @@ function test_Data() { } }, series: [ - <__Highcharts.LineChartSeriesOptions> { + { lineWidth: 1 }, - <__Highcharts.AreaSplineChartSeriesOptions> { + { type: 'areaspline', color: '#c4392d', negativeColor: '#5679c4', @@ -645,7 +645,7 @@ function test_Data() { // limited data example $('#container').highcharts({ - data: <__Highcharts.DataOptions> { + data: { csv: document.getElementById('csv').innerHTML, startRow: 114, endRow: 134, @@ -655,7 +655,7 @@ function test_Data() { xAxis: { allowDecimals: false }, - series: [<__Highcharts.LineChartSeriesOptions> { + series: [ { name: 'Annual mean' }] }); @@ -675,7 +675,7 @@ function test_Data() { } function test_Drilldown() { - var allDefaults: __Highcharts.DrilldownOptions = {}; + var allDefaults: Highcharts.DrilldownOptions = {}; // multiseries drilldown example $('#container').highcharts({ @@ -686,14 +686,14 @@ function test_Drilldown() { type: 'category' }, plotOptions: { - series: <__Highcharts.ColumnChart> { + series: { borderWidth: 0, dataLabels: { enabled: true } } }, - series: [<__Highcharts.ColumnChartSeriesOptions>{ + series: [{ name: '2010', data: [{ name: 'Republican', @@ -708,7 +708,7 @@ function test_Drilldown() { y: 4, drilldown: 'other-2010' }] - }, <__Highcharts.ColumnChartSeriesOptions>{ + }, { name: '2014', data: [{ name: 'Republican', @@ -725,7 +725,7 @@ function test_Drilldown() { }] }], drilldown: { - series: [<__Highcharts.ColumnChartSeriesOptions>{ + series: [{ id: 'republican-2010', data: [ ['East', 4], @@ -733,7 +733,7 @@ function test_Drilldown() { ['North', 1], ['South', 4] ] - }, <__Highcharts.ColumnChartSeriesOptions>{ + }, { id: 'democrats-2010', data: [ ['East', 6], @@ -741,7 +741,7 @@ function test_Drilldown() { ['North', 2], ['South', 4] ] - }, <__Highcharts.ColumnChartSeriesOptions>{ + }, { id: 'other-2010', data: [ ['East', 2], @@ -749,7 +749,7 @@ function test_Drilldown() { ['North', 3], ['South', 2] ] - }, <__Highcharts.ColumnChartSeriesOptions>{ + }, { id: 'republican-2014', data: [ ['East', 2], @@ -757,7 +757,7 @@ function test_Drilldown() { ['North', 1], ['South', 7] ] - }, <__Highcharts.ColumnChartSeriesOptions>{ + }, { id: 'democrats-2014', data: [ ['East', 4], @@ -765,7 +765,7 @@ function test_Drilldown() { ['North', 5], ['South', 3] ] - }, <__Highcharts.ColumnChartSeriesOptions>{ + }, { id: 'other-2014', data: [ ['East', 7], @@ -783,14 +783,14 @@ function test_Drilldown() { type: 'column' }, plotOptions: { - series: <__Highcharts.ColumnChart> { + series: { borderWidth: 0, dataLabels: { enabled: true } } }, - series: [<__Highcharts.ColumnChartSeriesOptions>{ + series: [{ name: 'Things', colorByPoint: true, data: [{ @@ -858,7 +858,7 @@ function test_Drilldown() { } function test_Exporting() { - var allDefaults: __Highcharts.ExportingOptions = {}; + var allDefaults: Highcharts.ExportingOptions = {}; // source size example $('#container').highcharts({ @@ -890,13 +890,13 @@ function test_Exporting() { } function test_Loading() { - var allDefaults: __Highcharts.LoadingOptions = {}; + var allDefaults: Highcharts.LoadingOptions = {}; // examples // the button handler var isLoading = false, $button = $('#button'), - chart: __Highcharts.ChartObject; + chart: Highcharts.ChartObject; $button.click(function () { if (!isLoading) { @@ -932,7 +932,7 @@ function test_Loading() { } function test_Navigation() { - var allDefaults: __Highcharts.NavigationOptions = {}; + var allDefaults: Highcharts.NavigationOptions = {}; // examples $('#container').highcharts({ @@ -974,7 +974,7 @@ function test_Navigation() { } function test_NoData() { - var allDefaults: __Highcharts.NoDataOptions = {}; + var allDefaults: Highcharts.NoDataOptions = {}; // example $('#container').highcharts({ @@ -1000,7 +1000,7 @@ function test_NoData() { } function test_AreaOptions() { - var allDefaults: __Highcharts.AreaChartSeriesOptions = {}; + var allDefaults: Highcharts.AreaChartSeriesOptions = {}; // examples $('#container').highcharts({ @@ -1011,12 +1011,12 @@ function test_AreaOptions() { categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] }, plotOptions: { - series: <__Highcharts.AreaChartSeriesOptions> { + series: { fillColor: { linearGradient: [0, 0, 0, 300], stops: [ [0, Highcharts.getOptions().colors[0]], - [1, (<__Highcharts.Gradient>Highcharts.Color(Highcharts.getOptions().colors[0])).setOpacity(0).get('rgba')] + [1, (Highcharts.Color(Highcharts.getOptions().colors[0])).setOpacity(0).get('rgba')] ] }, fillOpacity: 0.1, @@ -1036,7 +1036,7 @@ function test_AreaOptions() { } function test_AreaRange() { - var allDefaults: __Highcharts.AreaRangeChartSeriesOptions = {}; + var allDefaults: Highcharts.AreaRangeChartSeriesOptions = {}; // example $('#container').highcharts({ @@ -1044,7 +1044,7 @@ function test_AreaRange() { type: "arearange", zoomType: 'x' }, - series: [<__Highcharts.AreaRangeChartSeriesOptions>{ + series: [{ data: (function (arr: number[], len: number) { var i: number; for (i = 0; i < len; i = i + 1) { @@ -1090,7 +1090,7 @@ function test_AreaRange() { legend: { enabled: false }, - series: [<__Highcharts.AreaRangeChartSeriesOptions> { + series: [ { name: 'Temperatures', data: data, dataLabels: { @@ -1105,7 +1105,7 @@ function test_AreaRange() { } function test_Bar() { - var allDefaults: __Highcharts.BarChartSeriesOptions = {}; + var allDefaults: Highcharts.BarChartSeriesOptions = {}; $('#container').highcharts({ chart: { @@ -1115,7 +1115,7 @@ function test_Bar() { categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] }, plotOptions: { - series: <__Highcharts.BarChartSeriesOptions> { + series: { borderColor: '#303030', borderRadius: 5, borderWidth: 2, @@ -1174,7 +1174,7 @@ function test_Bar() { // grouping example Highcharts.getOptions().colors = Highcharts.map(Highcharts.getOptions().colors, function (color: string) { - return (<__Highcharts.Gradient>Highcharts.Color(color)) + return (Highcharts.Color(color)) .setOpacity(0.5) .get('rgba'); }); @@ -1209,19 +1209,19 @@ function test_Bar() { shadow: false } }, - series: [<__Highcharts.BarChartSeriesOptions> { + series: [ { name: 'Tokyo', data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4], pointPadding: 0 - }, <__Highcharts.BarChartSeriesOptions> { + }, { name: 'New York', data: [83.6, 78.8, 98.5, 93.4, 106.0, 84.5, 105.0, 104.3, 91.2, 83.5, 106.6, 92.3], pointPadding: 0.1 - }, <__Highcharts.BarChartSeriesOptions> { + }, { name: 'London', data: [48.9, 38.8, 39.3, 41.4, 47.0, 48.3, 59.0, 59.6, 52.4, 65.2, 59.3, 51.2], pointPadding: 0.2 - }, <__Highcharts.BarChartSeriesOptions> { + }, { name: 'Berlin', data: [42.4, 33.2, 34.5, 39.7, 52.6, 75.5, 57.4, 60.4, 47.6, 39.1, 46.8, 51.1], pointPadding: 0.3 @@ -1230,7 +1230,7 @@ function test_Bar() { } function test_BoxPlot() { - var allDefaults: __Highcharts.BoxPlotChartSeriesOptions = {}; + var allDefaults: Highcharts.BoxPlotChartSeriesOptions = {}; // boxplot example $('#container').highcharts({ @@ -1282,7 +1282,7 @@ function test_BoxPlot() { } function test_Bubble() { - var allDefaults: __Highcharts.BubbleChartSeriesOptions = {}; + var allDefaults: Highcharts.BubbleChartSeriesOptions = {}; // bubble example $('#container').highcharts({ @@ -1307,7 +1307,7 @@ function test_Bubble() { maxSize: 50 } }, - series: [<__Highcharts.BubbleChartSeriesOptions> { + series: [ { data: [ [9, 81, 13], [98, 5, 39], @@ -1344,7 +1344,7 @@ function test_Bubble() { subtitle: { text: 'Size is computed by absolute value on negative bubbles' }, - series: [<__Highcharts.BubbleChartSeriesOptions>{ + series: [{ data: [ [-5, 0, -5], [-4, 0, -4], @@ -1365,19 +1365,19 @@ function test_Bubble() { } function test_Column() { - var allDefaults: __Highcharts.ColumnChartSeriesOptions = {}; + var allDefaults: Highcharts.ColumnChartSeriesOptions = {}; // same options as bar chart } function test_ColumnRange() { - var allDefaults: __Highcharts.ColumnRangeChartSeriesOptions = {}; + var allDefaults: Highcharts.ColumnRangeChartSeriesOptions = {}; // same options as bar chart and datalabels from arearange } function test_ErrorBar() { - var allDefaults: __Highcharts.ErrorBarChartSeriesOptions = {}; + var allDefaults: Highcharts.ErrorBarChartSeriesOptions = {}; // error bar styling example $('#container').highcharts({ @@ -1401,7 +1401,7 @@ function test_ErrorBar() { tooltip: { shared: true }, - series: [<__Highcharts.SplineChartSeriesOptions>{ + series: [{ name: 'Temperature', type: 'spline', data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6], @@ -1411,7 +1411,7 @@ function test_ErrorBar() { tooltip: { pointFormat: '{series.name}: {point.y:.1f}°C
' } - }, <__Highcharts.ErrorBarChartSeriesOptions> { + }, { color: '#FF0000', name: 'Temperature error', type: 'errorbar', @@ -1428,7 +1428,7 @@ function test_ErrorBar() { } function test_Funnel() { - var allDefaults: __Highcharts.FunnelChartSeriesOptions = {}; + var allDefaults: Highcharts.FunnelChartSeriesOptions = {}; // funnel demo $('#container').highcharts({ @@ -1441,7 +1441,7 @@ function test_Funnel() { x: -50 }, plotOptions: { - series: <__Highcharts.FunnelChartSeriesOptions> { + series: { dataLabels: { enabled: true, format: '{point.name} ({point.y:,.0f})', @@ -1472,7 +1472,7 @@ function test_Funnel() { } function test_Gauge() { - var allDefaults: __Highcharts.GaugeChartSeriesOptions = {}; + var allDefaults: Highcharts.GaugeChartSeriesOptions = {}; // example $('#container').highcharts({ @@ -1518,7 +1518,7 @@ function test_Gauge() { } } }, - series: [<__Highcharts.GaugeChartSeriesOptions> { + series: [ { data: [80], overshoot: 5 }] @@ -1526,7 +1526,7 @@ function test_Gauge() { } function test_HeatMap() { - var allDefaults: __Highcharts.HeatMapSeriesOptions = {}; + var allDefaults: Highcharts.HeatMapSeriesOptions = {}; // heatmap demo $('#container').highcharts({ @@ -1574,7 +1574,7 @@ function test_HeatMap() { ], min: -5 }, - series: [<__Highcharts.HeatMapSeriesOptions> { + series: [ { borderWidth: 0, colsize: 24 * 36e5, // one day tooltip: { @@ -1586,7 +1586,7 @@ function test_HeatMap() { } function test_Line() { - var allDefaults: __Highcharts.LineChartSeriesOptions = {}; + var allDefaults: Highcharts.LineChartSeriesOptions = {}; // step example $('#container').highcharts({ @@ -1596,17 +1596,17 @@ function test_Line() { xAxis: { categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] }, - series: [<__Highcharts.LineChartSeriesOptions>{ + series: [{ data: [1, 2, 3, 4, null, 6, 7, null, 9], step: 'right', name: 'Right', linecap: 'round' - }, <__Highcharts.LineChartSeriesOptions>{ + }, { data: [5, 6, 7, 8, null, 10, 11, null, 13], step: 'center', name: 'Center', linecap: 'round' - }, <__Highcharts.LineChartSeriesOptions>{ + }, { data: [9, 10, 11, 12, null, 14, 15, null, 17], step: 'left', name: 'Left', @@ -1616,7 +1616,7 @@ function test_Line() { } function test_Pie() { - var allDefaults: __Highcharts.PieChartSeriesOptions = {}; + var allDefaults: Highcharts.PieChartSeriesOptions = {}; // pie demo $('#container').highcharts({ @@ -1646,7 +1646,7 @@ function test_Pie() { } } }, - series: [<__Highcharts.PieChartSeriesOptions>{ + series: [{ name: "Brands", colorByPoint: true, data: [{ @@ -1705,7 +1705,7 @@ function test_Pie() { center: ['50%', '75%'] } }, - series: [<__Highcharts.PieChartSeriesOptions>{ + series: [{ type: 'pie', name: 'Browser share', innerSize: '50%', @@ -1757,7 +1757,7 @@ function test_Pie() { } function test_Polygon() { - var allDefaults: __Highcharts.PolygonChartSeriesOptions = {}; + var allDefaults: Highcharts.PolygonChartSeriesOptions = {}; $('#container').highcharts({ chart: { @@ -1786,7 +1786,7 @@ function test_Polygon() { } function test_Pyramid() { - var allDefaults: __Highcharts.PyramidChartSeriesOptions = {}; + var allDefaults: Highcharts.PyramidChartSeriesOptions = {}; // pyramid demo $('#container').highcharts({ @@ -1825,10 +1825,10 @@ function test_Pyramid() { } function test_SolidGauge() { - var allDefaults: __Highcharts.SolidGaugeChartSeriesOptions = {}; + var allDefaults: Highcharts.SolidGaugeChartSeriesOptions = {}; // partial solid gauge demo - var gaugeOptions: __Highcharts.Options = { + var gaugeOptions: Highcharts.Options = { chart: { type: 'solidgauge' }, @@ -1880,10 +1880,10 @@ function test_SolidGauge() { } function test_TreeMap() { - var allDefaults: __Highcharts.TreeMapChartSeriesOptions = {}; + var allDefaults: Highcharts.TreeMapChartSeriesOptions = {}; // allowDrillToNode - var treeMap: __Highcharts.TreeMapChartSeriesOptions = { + var treeMap: Highcharts.TreeMapChartSeriesOptions = { type: "treemap", layoutAlgorithm: 'squarified', allowDrillToNode: true, @@ -1932,10 +1932,10 @@ function test_TreeMap() { } function test_Waterfall() { - var allDefaults: __Highcharts.WaterFallChartSeriesOptions = {}; + var allDefaults: Highcharts.WaterFallChartSeriesOptions = {}; // partial waterfall demo - var series: __Highcharts.WaterFallChartSeriesOptions = { + var series: Highcharts.WaterFallChartSeriesOptions = { upColor: Highcharts.getOptions().colors[2], color: Highcharts.getOptions().colors[3], data: [{ @@ -1978,9 +1978,9 @@ function test_Waterfall() { } function test_AxisOptions() { - var allDefaults: __Highcharts.AxisOptions = {}; + var allDefaults: Highcharts.AxisOptions = {}; - var axis: __Highcharts.AxisOptions = { + var axis: Highcharts.AxisOptions = { allowDecimals: false, alternateGridColor: '#000000', breaks: [{ @@ -2168,31 +2168,31 @@ function test_AxisObject() { axis.toPixels(10, true); axis.toValue(10); axis.toValue(10, true); - axis.update(<__Highcharts.AxisOptions>{}); - axis.update(<__Highcharts.AxisOptions>{}, true); + axis.update({}); + axis.update({}, true); } function test_ChartObject() { var chart = $("#container").highcharts(); - chart.addAxis(<__Highcharts.AxisOptions>{}); - chart.addAxis(<__Highcharts.AxisOptions>{}, true); - chart.addAxis(<__Highcharts.AxisOptions>{}, true, false); - chart.addAxis(<__Highcharts.AxisOptions>{}, true, true, false); - chart.addAxis(<__Highcharts.AxisOptions>{}, true, true, {duration: 50}); - chart.addSeries(<__Highcharts.IndividualSeriesOptions>{}); - chart.addSeries(<__Highcharts.IndividualSeriesOptions>{}, false); - chart.addSeries(<__Highcharts.IndividualSeriesOptions>{}, false, false); - chart.addSeries(<__Highcharts.IndividualSeriesOptions>{}, false, {duration: 50}); - chart.addSeriesAsDrilldown(<__Highcharts.PointObject>{}, <__Highcharts.IndividualSeriesOptions>{}); + chart.addAxis({}); + chart.addAxis({}, true); + chart.addAxis({}, true, false); + chart.addAxis({}, true, true, false); + chart.addAxis({}, true, true, {duration: 50}); + chart.addSeries({}); + chart.addSeries({}, false); + chart.addSeries({}, false, false); + chart.addSeries({}, false, {duration: 50}); + chart.addSeriesAsDrilldown({}, {}); var container = chart.container; console.log(container.id); chart.destroy(); chart.drillUp(); - chart.exportChart(<__Highcharts.ExportingOptions>{}, <__Highcharts.Options>{}); - chart.exportChartLocal(<__Highcharts.ExportingOptions>{}, <__Highcharts.Options>{}); + chart.exportChart({}, {}); + chart.exportChartLocal({}, {}); var object = chart.get('axisIdOrSeriesIdOrPointId'); var svg1 = chart.getSVG(); - var svg2 = chart.getSVG(<__Highcharts.Options>{}); + var svg2 = chart.getSVG({}); var selectedPoints = chart.getSelectedPoints(); var selectedSeries = chart.getSelectedSeries(); chart.hideLoading(); @@ -2257,7 +2257,7 @@ function test_ElementObject() { } function test_PointObject() { - var point = <__Highcharts.PointObject>$('#container').highcharts().get('point1'); + var point = $('#container').highcharts().get('point1'); var category = point.category; var percentage = point.percentage; point.index; @@ -2298,7 +2298,7 @@ function test_RendererObject() { } function test_SeriesObject() { - var series = <__Highcharts.SeriesObject>$('#container').highcharts().get('series1'); + var series = $('#container').highcharts().get('series1'); series.addPoint(0); series.addPoint([0, 0]); series.addPoint({}); diff --git a/highcharts/highstock-tests.ts b/highcharts/highstock-tests.ts index fda21c1616..ac7cb883f2 100644 --- a/highcharts/highstock-tests.ts +++ b/highcharts/highstock-tests.ts @@ -1,5 +1,5 @@ - /// +import * as Highcharts from "highcharts"; var someData = [1, 2, 3, 4, 5, 6, 7, 8, 9]; @@ -55,7 +55,7 @@ $(function () { } }, - series: [<__Highcharts.AreaRangeChartSeriesOptions>{ + series: [{ name: 'USD to EUR', data: someData, lineColor: "blue" diff --git a/highcharts/highstock.d.ts b/highcharts/highstock.d.ts index bf57b32429..f312286745 100644 --- a/highcharts/highstock.d.ts +++ b/highcharts/highstock.d.ts @@ -4,7 +4,7 @@ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped declare namespace __Highstock { - interface ChartObject extends __Highcharts.ChartObject { + interface ChartObject extends Highcharts.ChartObject { options: Options; } @@ -22,9 +22,9 @@ declare namespace __Highstock { maskInside?: boolean; outlineColor?: string; outlineWidth?: number; - series?: __Highcharts.IndividualSeriesOptions; - xAxis?: __Highcharts.AxisOptions; - yAxis?: __Highcharts.AxisOptions; + series?: Highcharts.IndividualSeriesOptions; + xAxis?: Highcharts.AxisOptions; + yAxis?: Highcharts.AxisOptions; } interface RangeSelectorButton { @@ -53,8 +53,8 @@ declare namespace __Highstock { x?: number; y?: number; }; - inputStyle?: __Highcharts.CSSObject; - labelStyle?: __Highcharts.CSSObject; + inputStyle?: Highcharts.CSSObject; + labelStyle?: Highcharts.CSSObject; selected?: number; } @@ -79,7 +79,7 @@ declare namespace __Highstock { trackBorderWidth?: number; } - interface Options extends __Highcharts.Options { + interface Options extends Highcharts.Options { navigator?: NavigatorOptions; rangeSelector?: RangeSelectorOptions; scrollbar?: ScrollbarOptions; @@ -90,7 +90,7 @@ declare namespace __Highstock { new (options: Options, callback: (chart: ChartObject) => void): ChartObject; } - interface Static extends __Highcharts.Static { + interface Static extends Highcharts.Static { StockChart: Chart; } } @@ -101,21 +101,21 @@ interface JQuery { /** * Creates a new Highcharts.Chart for the current JQuery selector; usually * a div selected by $('#container') - * @param {__Highcharts.Options} options Options for this chart + * @param {Highcharts.Options} options Options for this chart * @return current {JQuery} selector the current JQuery selector **/ highcharts(type: "StockChart", options: __Highstock.Options): JQuery; /** * Creates a new Highcharts.Chart for the current JQuery selector; usually * a div selected by $('#container') - * @param {__Highcharts.Options} options Options for this chart + * @param {Highcharts.Options} options Options for this chart * @param callback Callback function used to manipulate the constructed chart instance * @return current {JQuery} selector the current JQuery selector **/ highcharts(type: "StockChart", options: __Highstock.Options, callback: (chart: __Highstock.ChartObject) => void): JQuery; - highcharts(type: string): __Highcharts.ChartObject; - highcharts(type: string, options: __Highcharts.Options): JQuery; - highcharts(type: string, options: __Highcharts.Options, callback: (chart: __Highcharts.ChartObject) => void): JQuery; + highcharts(type: string): Highcharts.ChartObject; + highcharts(type: string, options: Highcharts.Options): JQuery; + highcharts(type: string, options: Highcharts.Options, callback: (chart: Highcharts.ChartObject) => void): JQuery; } diff --git a/highcharts/index.d.ts b/highcharts/index.d.ts index 7f2d28e99b..4c71b46e73 100644 --- a/highcharts/index.d.ts +++ b/highcharts/index.d.ts @@ -3,7 +3,7 @@ // Definitions by: Damiano Gambarotto , Dan Lewi Harkestad // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -declare namespace __Highcharts { +declare namespace Highcharts { interface Position { align?: string; verticalAlign?: string; @@ -2244,7 +2244,7 @@ declare namespace __Highcharts { formAttributes?: any; /** * Path where Highcharts will look for export module dependencies to load on demand if they don't already exist on - * window. Should currently point to location of CanVG library (https://github.com/canvg/canvg) and RGBColor.js, + * window. Should currently point to location of CanVG library (https://github.com/canvg/canvg) and RGBColor.js, * required for client side export in certain browsers. * @default 'http://code.highcharts.com/{version}/lib' * @since 5.0.0 @@ -2989,7 +2989,7 @@ declare namespace __Highcharts { */ padding?: number; /** - * Whether to reserve space for the labels. This can be turned off when for example the labels are rendered inside + * Whether to reserve space for the labels. This can be turned off when for example the labels are rendered inside * the plot area instead of outside. * @default true * @since 4.1.10 @@ -4952,8 +4952,8 @@ declare namespace __Highcharts { } /* You will rarely, if ever, want to use this interface directly. Instead it is much more useful to use one of the derived - * interfaces (AreaChartSeriesOptions, LineChartSeriesOptions, etc.) - */ + * interfaces (AreaChartSeriesOptions, LineChartSeriesOptions, etc.) + */ interface IndividualSeriesOptions { type?: string; /** @@ -6445,33 +6445,27 @@ declare namespace __Highcharts { } } -interface JQuery { - highcharts(): __Highcharts.ChartObject; - /** - * Creates a new Highcharts.Chart for the current JQuery selector; usually - * a div selected by $('#container') - * @param {Options} options Options for this chart - * @return current {JQuery} selector the current JQuery selector - **/ - highcharts(options: __Highcharts.Options): JQuery; - /** - * Creates a new Highcharts.Chart for the current JQuery selector; usually - * a div selected by $('#container') - * @param {Options} options Options for this chart - * @param callback Callback function used to manipulate the constructed chart instance - * @return current {JQuery} selector the current JQuery selector - **/ - highcharts(options: __Highcharts.Options, callback: (chart: __Highcharts.ChartObject) => void): JQuery; +declare global { + interface JQuery { + highcharts(): Highcharts.ChartObject; + /** + * Creates a new Highcharts.Chart for the current JQuery selector; usually + * a div selected by $('#container') + * @param {Options} options Options for this chart + * @return current {JQuery} selector the current JQuery selector + **/ + highcharts(options: Highcharts.Options): JQuery; + /** + * Creates a new Highcharts.Chart for the current JQuery selector; usually + * a div selected by $('#container') + * @param {Options} options Options for this chart + * @param callback Callback function used to manipulate the constructed chart instance + * @return current {JQuery} selector the current JQuery selector + **/ + highcharts(options: Highcharts.Options, callback: (chart: Highcharts.ChartObject) => void): JQuery; + } } -/** - * Enabling the usage of ES6 module loading. - */ -declare var Highcharts: __Highcharts.Static; - -/** - * Declaration for ES6 module loading. - */ -declare module "highcharts" { - export = __Highcharts; -} +declare var Highcharts: Highcharts.Static; +export = Highcharts; +export as namespace Highcharts; diff --git a/highcharts/modules/boost-tests.ts b/highcharts/modules/boost-tests.ts new file mode 100644 index 0000000000..98202a2129 --- /dev/null +++ b/highcharts/modules/boost-tests.ts @@ -0,0 +1 @@ +HighchartsBoost(Highcharts); diff --git a/highcharts/highcharts-modules-boost.d.ts b/highcharts/modules/boost.d.ts similarity index 53% rename from highcharts/highcharts-modules-boost.d.ts rename to highcharts/modules/boost.d.ts index 0991884558..9b62dab1c7 100644 --- a/highcharts/highcharts-modules-boost.d.ts +++ b/highcharts/modules/boost.d.ts @@ -3,10 +3,8 @@ // Definitions by: Daniel Martin // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -/// +import { Static } from "highcharts"; -declare var HighchartsBoost: (H: __Highcharts.Static) => __Highcharts.Static; - -declare module "highcharts/modules/boost" { - export = HighchartsBoost; -} +declare var HighchartsBoost: (H: Static) => Static; +export = HighchartsBoost; +export as namespace HighchartsBoost; diff --git a/highcharts/modules/exporting-tests.ts b/highcharts/modules/exporting-tests.ts new file mode 100644 index 0000000000..22bced1b24 --- /dev/null +++ b/highcharts/modules/exporting-tests.ts @@ -0,0 +1 @@ +HighchartsExporting(Highcharts); diff --git a/highcharts/highcharts-modules-exporting.d.ts b/highcharts/modules/exporting.d.ts similarity index 53% rename from highcharts/highcharts-modules-exporting.d.ts rename to highcharts/modules/exporting.d.ts index b6a0e49f30..877ef3d0c1 100644 --- a/highcharts/highcharts-modules-exporting.d.ts +++ b/highcharts/modules/exporting.d.ts @@ -3,10 +3,8 @@ // Definitions by: Maciej Suchecki // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -/// +import { Static } from "highcharts"; -declare var HighchartsExporting: (H: __Highcharts.Static) => __Highcharts.Static; - -declare module "highcharts/modules/exporting" { - export = HighchartsExporting; -} +declare var HighchartsExporting: (H: Static) => Static; +export = HighchartsExporting; +export as namespace HighchartsExporting; diff --git a/highcharts/highcharts-modules-no-data-to-display-tests.ts b/highcharts/modules/no-data-to-display-tests.ts similarity index 57% rename from highcharts/highcharts-modules-no-data-to-display-tests.ts rename to highcharts/modules/no-data-to-display-tests.ts index 6c7b12e105..84392c3bf4 100644 --- a/highcharts/highcharts-modules-no-data-to-display-tests.ts +++ b/highcharts/modules/no-data-to-display-tests.ts @@ -1,7 +1,3 @@ -/// -/// -/// - function test_NoDataToDisplay() { var chart = $("#container").highcharts(); var chartHasData = chart.hasData(); diff --git a/highcharts/highcharts-modules-no-data-to-display.d.ts b/highcharts/modules/no-data-to-display.d.ts similarity index 91% rename from highcharts/highcharts-modules-no-data-to-display.d.ts rename to highcharts/modules/no-data-to-display.d.ts index db799236b4..0da068c413 100644 --- a/highcharts/highcharts-modules-no-data-to-display.d.ts +++ b/highcharts/modules/no-data-to-display.d.ts @@ -2,8 +2,10 @@ // Project: http://www.highcharts.com/ // Definitions by: Andrey Zolotin // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -/// -declare namespace __Highcharts { + +import * as Hc from "highcharts"; + +declare module "highcharts" { interface ChartObject { /** * Returns true if there are data points within the plot area now diff --git a/highcharts/modules/offline-exporting-tests.ts b/highcharts/modules/offline-exporting-tests.ts new file mode 100644 index 0000000000..22bced1b24 --- /dev/null +++ b/highcharts/modules/offline-exporting-tests.ts @@ -0,0 +1 @@ +HighchartsExporting(Highcharts); diff --git a/highcharts/highcharts-modules-offline-exporting.d.ts b/highcharts/modules/offline-exporting.d.ts similarity index 50% rename from highcharts/highcharts-modules-offline-exporting.d.ts rename to highcharts/modules/offline-exporting.d.ts index d0721c2d46..94ecf53485 100644 --- a/highcharts/highcharts-modules-offline-exporting.d.ts +++ b/highcharts/modules/offline-exporting.d.ts @@ -3,10 +3,8 @@ // Definitions by: Daniel Martin // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -/// +import { Static } from "highcharts"; -declare var HighchartsOfflineExporting: (H: __Highcharts.Static) => __Highcharts.Static; - -declare module "highcharts/modules/offline-exporting" { - export = HighchartsOfflineExporting; -} +declare var HighchartsOfflineExporting: (H: Static) => Static; +export = HighchartsOfflineExporting; +export as namespace HighchartsOfflineExporting; diff --git a/highcharts/tsconfig.json b/highcharts/tsconfig.json index 735490820e..8082640c3b 100644 --- a/highcharts/tsconfig.json +++ b/highcharts/tsconfig.json @@ -14,8 +14,18 @@ }, "files": [ "index.d.ts", - "highstock.d.ts", "highcharts-tests.ts", + "modules/boost.d.ts", + "modules/boost-tests.ts", + "modules/exporting.d.ts", + "modules/exporting-tests.ts", + "modules/no-data-to-display.d.ts", + "modules/no-data-to-display-tests.ts", + "modules/offline-exporting.d.ts", + "modules/offline-exporting-tests.ts", + "highcharts-more.d.ts", + "highcharts-more-tests.ts", + "highstock.d.ts", "highstock-tests.ts" ] } \ No newline at end of file diff --git a/ids/tsconfig.json b/ids/tsconfig.json index 822ef6cd32..85fbd7f361 100644 --- a/ids/tsconfig.json +++ b/ids/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { "module": "commonjs", - "target": "es5", + "target": "es6", "noImplicitAny": true, "strictNullChecks": false, "baseUrl": "../", diff --git a/joi/index.d.ts b/joi/index.d.ts index ece6bb6d62..c192f49dd1 100644 --- a/joi/index.d.ts +++ b/joi/index.d.ts @@ -121,10 +121,10 @@ export interface IPOptions { } export interface ValidationError extends Error { - message: string; + isJoi: boolean; details: ValidationErrorItem[]; - simple(): string; - annotated(): string; + annotate(): string; + _object: any; } export interface ValidationErrorItem { @@ -132,6 +132,7 @@ export interface ValidationErrorItem { type: string; path: string; options?: ValidationOptions; + context?: any; } export interface ValidationResult { diff --git a/joi/joi-tests.ts b/joi/joi-tests.ts index eb0f147f78..759be529ad 100644 --- a/joi/joi-tests.ts +++ b/joi/joi-tests.ts @@ -125,7 +125,8 @@ validErrItem = { message: str, type: str, path: str, - options: validOpts + options: validOpts, + context: obj }; // --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- diff --git a/jquery.ajaxfile/jquery.ajaxFile-tests.ts b/jquery.ajaxfile/jquery.ajaxfile-tests.ts similarity index 100% rename from jquery.ajaxfile/jquery.ajaxFile-tests.ts rename to jquery.ajaxfile/jquery.ajaxfile-tests.ts diff --git a/jquery.slimscroll/jquery.SlimScroll-tests.ts b/jquery.slimscroll/jquery.slimscroll-tests.ts similarity index 100% rename from jquery.slimscroll/jquery.SlimScroll-tests.ts rename to jquery.slimscroll/jquery.slimscroll-tests.ts diff --git a/jquery.slimscroll/tsconfig.json b/jquery.slimscroll/tsconfig.json index 910f07039e..524b9a8740 100644 --- a/jquery.slimscroll/tsconfig.json +++ b/jquery.slimscroll/tsconfig.json @@ -14,6 +14,6 @@ }, "files": [ "index.d.ts", - "jquery.slimScroll-tests.ts" + "jquery.slimscroll-tests.ts" ] } \ No newline at end of file diff --git a/jquery/index.d.ts b/jquery/index.d.ts index f8af62caba..fa22a1599b 100644 --- a/jquery/index.d.ts +++ b/jquery/index.d.ts @@ -180,7 +180,7 @@ interface JQueryXHR extends XMLHttpRequest, JQueryPromise { /** * Incorporates the functionality of the .done() and .fail() methods, allowing (as of jQuery 1.8) the underlying Promise to be manipulated. Refer to deferred.then() for implementation details. */ - then(doneCallback: (data: any, textStatus: string, jqXHR: JQueryXHR) => R, failCallback?: (jqXHR: JQueryXHR, textStatus: string, errorThrown: any) => void): JQueryPromise; + then(doneCallback: (data: any, textStatus: string, jqXHR: JQueryXHR) => R|JQueryPromise, failCallback?: (jqXHR: JQueryXHR, textStatus: string, errorThrown: any) => void): JQueryPromise; /** * Property containing the parsed response if the response Content-Type is json */ diff --git a/jquery/jquery-tests.ts b/jquery/jquery-tests.ts index 479081c477..b64fdc43cf 100644 --- a/jquery/jquery-tests.ts +++ b/jquery/jquery-tests.ts @@ -169,6 +169,12 @@ function test_ajax() { console.log(data, textStatus, jqXHR); }); + // then method can change promise type through promise chaining + var chainedValuePromise : JQueryPromise; + chainedValuePromise = $.ajax({ + url: "test.js" + }).then(() => $.when(1)); + // fail method $.ajax({ url: "test.js" @@ -209,9 +215,9 @@ function test_ajax() { url: "test.js" }); jqXHR.abort('aborting because I can'); - + //Test the promise exposed by the jqXHR object - + // done method $.ajax({ url: "test.js" @@ -239,7 +245,7 @@ function test_ajax() { }).promise().always((jqXHR, textStatus, errorThrown) => { console.log(jqXHR, textStatus, errorThrown); }); - + // then method (as of 1.8) $.ajax({ url: "test.js" @@ -252,7 +258,7 @@ function test_ajax() { // generic then method var p: JQueryPromise = $.ajax({ url: "test.js" }).promise() .then(() => "Hello") - .then((x) => x.length); + .then((x) => x.length); } function test_ajaxComplete() { diff --git a/jsonminify/index.d.ts b/jsonminify/index.d.ts new file mode 100644 index 0000000000..613ac9a9ab --- /dev/null +++ b/jsonminify/index.d.ts @@ -0,0 +1,8 @@ +// Type definitions for jsonminify 0.4.1 +// Project: https://github.com/fkei/JSON.minify +// Definitions by: Dan Homola +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +declare function minify(json: string): string; + +export = minify; diff --git a/jsonminify/jsonminify-tests.ts b/jsonminify/jsonminify-tests.ts new file mode 100644 index 0000000000..fdb6150768 --- /dev/null +++ b/jsonminify/jsonminify-tests.ts @@ -0,0 +1,3 @@ +import jsonminify = require("jsonminify"); + +const minified: string = jsonminify('{ "foo": "bar" }'); diff --git a/jsonminify/tsconfig.json b/jsonminify/tsconfig.json new file mode 100644 index 0000000000..3fe847d334 --- /dev/null +++ b/jsonminify/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "jsonminify-tests.ts" + ] +} diff --git a/jstimezonedetect/jstimezonedetect.d.ts b/jstimezonedetect/index.d.ts similarity index 100% rename from jstimezonedetect/jstimezonedetect.d.ts rename to jstimezonedetect/index.d.ts diff --git a/jstimezonedetect/jstimezonedetect-tests.ts b/jstimezonedetect/jstimezonedetect-tests.ts index c4907aa6b0..9baf0f4aa5 100644 --- a/jstimezonedetect/jstimezonedetect-tests.ts +++ b/jstimezonedetect/jstimezonedetect-tests.ts @@ -1,5 +1,3 @@ -/// - import * as jstz from 'jstimezonedetect'; jstz.determine().name() === 'America/Montreal'; diff --git a/jstimezonedetect/tsconfig.json b/jstimezonedetect/tsconfig.json new file mode 100644 index 0000000000..d036a843d1 --- /dev/null +++ b/jstimezonedetect/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "jstimezonedetect-tests.ts" + ] +} \ No newline at end of file diff --git a/koa-passport/index.d.ts b/koa-passport/index.d.ts new file mode 100644 index 0000000000..f17bf87f39 --- /dev/null +++ b/koa-passport/index.d.ts @@ -0,0 +1,63 @@ +// Type definitions for koa-passport 2.x +// Project: https://github.com/rkusa/koa-passport +// Definitions by: horiuchi +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/* =================== USAGE =================== + + import * as passport from 'koa-passport'; + app.use(passport.initialize()); + app.use(passport.session()); + + =============================================== */ + +import * as Koa from "koa"; +declare module "koa" { + interface Request { + authInfo?: any; + user?: any; + + login(user: any): Promise; + login(user: any, options: Object): Promise; + logIn(user: any): Promise; + logIn(user: any, options: Object): Promise; + + logout(): void; + logOut(): void; + + isAuthenticated(): boolean; + isUnauthenticated(): boolean; + } +} + +import * as passport from "passport"; + +interface Middleware { (ctx: Koa.Context, next: () => Promise): any; } +interface KoaPassport { + use(strategy: passport.Strategy): this; + use(name: string, strategy: passport.Strategy): this; + unuse(name: string): this; + framework(fw: passport.Framework): this; + initialize(options?: { userProperty: string; }): Middleware; + session(options?: { pauseStream: boolean; }): Middleware; + + authenticate(strategy: string, callback?: Function): Middleware; + authenticate(strategy: string, options: Object, callback?: Function): Middleware; + authenticate(strategies: string[], callback?: Function): Middleware; + authenticate(strategies: string[], options: Object, callback?: Function): Middleware; + authorize(strategy: string, callback?: Function): Middleware; + authorize(strategy: string, options: Object, callback?: Function): Middleware; + authorize(strategies: string[], callback?: Function): Middleware; + authorize(strategies: string[], options: Object, callback?: Function): Middleware; + serializeUser(fn: (user: any, done: (err: any, id: any) => void) => void): void; + deserializeUser(fn: (id: any, done: (err: any, user: any) => void) => void): void; + transformAuthInfo(fn: (info: any, done: (err: any, info: any) => void) => void): void; +} +declare const koaPassport: KoaPassport; + +declare namespace KoaPassport { + interface Profile extends passport.Profile { } + interface Framework extends passport.Framework { } +} + +export = koaPassport; diff --git a/koa-passport/koa-passport-tests.ts b/koa-passport/koa-passport-tests.ts index cdfe4938f4..eebb67a3b1 100644 --- a/koa-passport/koa-passport-tests.ts +++ b/koa-passport/koa-passport-tests.ts @@ -1,6 +1,3 @@ -/// -/// - import * as Koa from 'koa'; import * as passport from 'koa-passport'; diff --git a/koa-passport/koa-passport.d.ts b/koa-passport/koa-passport.d.ts deleted file mode 100644 index f89d534ee2..0000000000 --- a/koa-passport/koa-passport.d.ts +++ /dev/null @@ -1,68 +0,0 @@ -// Type definitions for koa-passport 2.x -// Project: https://github.com/rkusa/koa-passport -// Definitions by: horiuchi -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -/* =================== USAGE =================== - - import * as passport from 'koa-passport'; - app.use(passport.initialize()); - app.use(passport.session()); - - =============================================== */ -/// -/// - -declare module "koa-passport" { - - import * as Koa from "koa"; - module "koa" { - interface Request { - authInfo?: any; - user?: any; - - login(user: any): Promise; - login(user: any, options: Object): Promise; - logIn(user: any): Promise; - logIn(user: any, options: Object): Promise; - - logout(): void; - logOut(): void; - - isAuthenticated(): boolean; - isUnauthenticated(): boolean; - } - } - - import * as passport from "passport"; - - interface Middleware { (ctx: Koa.Context, next: () => Promise): any; } - interface KoaPassport { - use(strategy: passport.Strategy): this; - use(name: string, strategy: passport.Strategy): this; - unuse(name: string): this; - framework(fw: passport.Framework): this; - initialize(options?: { userProperty: string; }): Middleware; - session(options?: { pauseStream: boolean; }): Middleware; - - authenticate(strategy: string, callback?: Function): Middleware; - authenticate(strategy: string, options: Object, callback?: Function): Middleware; - authenticate(strategies: string[], callback?: Function): Middleware; - authenticate(strategies: string[], options: Object, callback?: Function): Middleware; - authorize(strategy: string, callback?: Function): Middleware; - authorize(strategy: string, options: Object, callback?: Function): Middleware; - authorize(strategies: string[], callback?: Function): Middleware; - authorize(strategies: string[], options: Object, callback?: Function): Middleware; - serializeUser(fn: (user: any, done: (err: any, id: any) => void) => void): void; - deserializeUser(fn: (id: any, done: (err: any, user: any) => void) => void): void; - transformAuthInfo(fn: (info: any, done: (err: any, info: any) => void) => void): void; - } - const koaPassport: KoaPassport; - - namespace KoaPassport { - interface Profile extends passport.Profile { } - interface Framework extends passport.Framework { } - } - - export = koaPassport; -} diff --git a/koa-passport/tsconfig.json b/koa-passport/tsconfig.json new file mode 100644 index 0000000000..8e0b10ae18 --- /dev/null +++ b/koa-passport/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "koa-passport-tests.ts" + ] +} \ No newline at end of file diff --git a/koa-session-minimal/index.d.ts b/koa-session-minimal/index.d.ts new file mode 100644 index 0000000000..1c55660dc9 --- /dev/null +++ b/koa-session-minimal/index.d.ts @@ -0,0 +1,44 @@ +// Type definitions for koa-session-minimal v3.x +// Project: https://github.com/longztian/koa-session-minimal +// Definitions by: Longzhang Tian +// Definitions: https://github.com/hellopao/DefinitelyTyped + +/* =================== USAGE =================== + + import * as Koa from "koa"; + import session = require("koa-session-minimal"); + + const app = new Koa(); + app.use(session()); + + =============================================== */ + +import * as Koa from "koa"; +import * as cookies from "cookies"; + +declare module "koa" { + interface Request { + session: any; + sessionHandler: { regenerateId: () => void }; + } +} + +declare function session(opts?: { + /** + * session cookie name and store key prefix. Default is 'koa:sess' + */ + key?: string; + + /** + * cookie options + */ + cookie?: cookies.IOptions | { (ctx?: Koa.Context): cookies.IOptions }; + + /** + * session store + */ + store?: any; +}): { (ctx: Koa.Context, next?: () => any): any }; + +declare namespace session {} +export = session; diff --git a/koa-session-minimal/koa-session-minimal-tests.ts b/koa-session-minimal/koa-session-minimal-tests.ts index 7ee723d3aa..b58f441d8e 100644 --- a/koa-session-minimal/koa-session-minimal-tests.ts +++ b/koa-session-minimal/koa-session-minimal-tests.ts @@ -1,6 +1,3 @@ -/// -/// - import * as Koa from "koa"; import * as session from "koa-session-minimal"; diff --git a/koa-session-minimal/koa-session-minimal.d.ts b/koa-session-minimal/koa-session-minimal.d.ts deleted file mode 100644 index e0369fcc1b..0000000000 --- a/koa-session-minimal/koa-session-minimal.d.ts +++ /dev/null @@ -1,50 +0,0 @@ -// Type definitions for koa-session-minimal v3.x -// Project: https://github.com/longztian/koa-session-minimal -// Definitions by: Longzhang Tian -// Definitions: https://github.com/hellopao/DefinitelyTyped - -/* =================== USAGE =================== - - import * as Koa from "koa"; - import session = require("koa-session-minimal"); - - const app = new Koa(); - app.use(session()); - - =============================================== */ - -/// -/// - -declare module "koa-session-minimal" { - - import * as Koa from "koa"; - import * as cookies from "cookies"; - - module "koa" { - interface Request { - session: any; - sessionHandler: { regenerateId: () => void }; - } - } - - function session(opts?: { - /** - * session cookie name and store key prefix. Default is 'koa:sess' - */ - key?: string; - - /** - * cookie options - */ - cookie?: cookies.IOptions | { (ctx?: Koa.Context): cookies.IOptions }; - - /** - * session store - */ - store?: any; - }): { (ctx: Koa.Context, next?: () => any): any }; - - namespace session {} - export = session; -} diff --git a/koa-session-minimal/tsconfig.json b/koa-session-minimal/tsconfig.json new file mode 100644 index 0000000000..d269751272 --- /dev/null +++ b/koa-session-minimal/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "koa-session-minimal-tests.ts" + ] +} \ No newline at end of file diff --git a/lab/index.d.ts b/lab/index.d.ts new file mode 100644 index 0000000000..2b4c036bde --- /dev/null +++ b/lab/index.d.ts @@ -0,0 +1,187 @@ +// Type definitions for lab 11.1.0 +// Project: https://github.com/hapijs/lab +// Definitions by: Prashant Tiwari +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/** The test script. */ +export function script(options?: ScriptOptions): Lab & ExperimentAlt & TestAlt; +/** Access the configured assertion library. */ +export const assertions: any; + +interface Lab { + /** Organise tests into an experiment */ + experiment(desc: string, cb: EmptyCallback): void; + + /** Organise tests into an experiment with options */ + experiment(desc: string, options: ExperimentOptions, cb: EmptyCallback): void; + + /** Create a test suite */ + describe(desc: string, cb: EmptyCallback): void; + + /** Create a test suite with options */ + describe(desc: string, options: ExperimentOptions, cb: EmptyCallback): void; + + /** Create a test suite */ + suite(desc: string, cb: EmptyCallback): void; + + /** Create a test suite with options */ + suite(desc: string, options: ExperimentOptions, cb: EmptyCallback): void; + + /** The test spec */ + test(desc: string, cb: TestCallback): void; + + /** The test spec using a promise */ + test(desc: string, promise: TestPromise): void; + + /** The test spec with options */ + test(desc: string, options: TestOptions, cb: TestCallback): void; + + /** The test spec using a promise with options */ + test(desc: string, options: TestOptions, promise: TestPromise): void; + + /** The test spec */ + it(desc: string, cb: TestCallback): void; + + /** The test spec using a promise */ + it(desc: string, promise: TestPromise): void; + + /** The test spec with options */ + it(desc: string, options: TestOptions, cb: TestCallback): void; + + /** The test spec using a promise with options */ + it(desc: string, options: TestOptions, promise: TestPromise): void; + + /** Perform async actions before the test suite */ + before(cb: AsyncCallback): void; + + /** Perform async actions before the test suite using a promise */ + before(promise: AsyncPromise): void; + + /** Perform async actions before the test suite with options */ + before(options: AsyncOptions, cb: AsyncCallback): void; + + /** Perform async actions before the test suite with otions, using a promise */ + before(options: AsyncOptions, promise: AsyncPromise): void; + + /** Perform async actions before each test */ + beforeEach(cb: AsyncCallback): void; + + /** Perform async actions before each test using a promise */ + beforeEach(promise: AsyncPromise): void; + + /** Perform async actions before each test with options */ + beforeEach(options: AsyncOptions, cb: AsyncCallback): void; + + /** Perform async actions before each test with options, using a promise */ + beforeEach(options: AsyncOptions, promise: AsyncPromise): void; + + /** Perform async actions after the test suite */ + after(cb: AsyncCallback): void; + + /** Perform async actions after the test suite using a promise */ + after(promise: AsyncPromise): void; + + /** Perform async actions after the test suite with options */ + after(options: AsyncOptions, cb: AsyncCallback): void; + + /** Perform async actions after the test suite with options, using a promise */ + after(options: AsyncOptions, promise: AsyncPromise): void; + + /** Perform async actions after each test */ + afterEach(cb: AsyncCallback): void; + + /** Perform async actions after each test using a promise */ + afterEach(promise: AsyncPromise): void; + + /** Perform async actions after each test with options */ + afterEach(options: AsyncOptions, cb: AsyncCallback): void; + + /** Perform async actions after each test with options, using a promise */ + afterEach(options: AsyncOptions, promise: AsyncPromise): void; +} + +interface ExperimentAlt { + experiment: SkipOnlyExperiment; + suite: SkipOnlyExperiment; + describe: SkipOnlyExperiment; +} + +interface TestAlt { + test: SkipOnlyTest; + it: SkipOnlyTest; +} + +interface SkipOnlyExperiment { + /** Skip this test suite */ + skip: ExperimentArgs & ExperimentWithOptionsArgs; + + /** Only execute this test suite */ + only: ExperimentArgs & ExperimentWithOptionsArgs; +} + +interface SkipOnlyTest { + /** Skip this test */ + skip: TestArgs & TestWithOptionsArgs; + + /** Only execute this test */ + only: TestArgs & TestWithOptionsArgs; +} + +interface ScriptOptions { + /** Enable auto-execution of the script? (true) */ + schedule?: boolean; + + /** Pass Lab CLI options */ + cli?: any; +} + +interface ExperimentOptions { + /** Set a specific timeout in milliseconds (2000) */ + timeout?: number; + + /** Execute tests in parallel? (false) */ + parallel?: boolean; + + /** Skip execution? (false) */ + skip?: boolean; + + /** Execute only this test/experiment? (false) */ + only?: boolean; +} + +interface TestOptions extends ExperimentOptions { + /** The expected number of assertions to execute */ + plan?: number; +} + +interface AsyncOptions { + /** Set a specific timeout in milliseconds (disabled) */ + timeout?: number; +} + +interface DoneNote { + /** Attach a note to the test case */ + note: (text: string) => void; +} + +type EmptyCallback = () => void; + +type DoneFunction = (err?: Error) => void; + +type CleanupFunction = (func: (next: Function) => void) => void; + +type TestCallback = (done: DoneFunction & DoneNote, onCleanup?: CleanupFunction) => void; + +type TestPromise = () => Promise; + +type AsyncCallback = (done: DoneFunction) => void; + +type AsyncPromise = () => Promise; + +type ExperimentArgs = (desc: string, cb: EmptyCallback) => {}; + +type ExperimentWithOptionsArgs = (desc: string, options: ExperimentOptions, cb: EmptyCallback) => {}; + +type TestArgs = (desc: string, cb: TestCallback) => {}; + +type TestWithOptionsArgs = (desc: string, options: TestOptions, cb: TestCallback) => {} diff --git a/lab/lab-tests.ts b/lab/lab-tests.ts new file mode 100644 index 0000000000..ae77ab242f --- /dev/null +++ b/lab/lab-tests.ts @@ -0,0 +1,169 @@ +import { script, assertions } from "lab"; + +const { experiment, describe, suite, test, it, before, beforeEach, after, afterEach } = script(); +const expect = assertions.expect; +const fail = assertions.fail; + +experiment('math', () => { + + before((done) => { + + setTimeout(() => { + + done(); + }, 1000); + }); + + beforeEach((done) => { + + done(); + }); + + test('returns true when 1 + 1 equals 2', (done) => { + + expect(1 + 1).to.equal(2); + done(); + }); +}); + +experiment('math', () => { + + before(() => { + + return Promise.resolve(); + }); + + test('returns true when 1 + 1 equals 2', () => { + + return Promise.resolve() + .then((aValue) => { + + const expectedValue = aValue; + expect(aValue).to.equal(expectedValue); + }); + }); +}); + +experiment.only('with only experiment', () => { + + test('this test will run', (done) => { + + expect(1 + 1).to.equal(2); + done(); + }); + + test('another test that will run', (done) => { + + expect(true).to.equal(true); + done(); + }); +}); + +experiment('with only test', () => { + + test.only('only this test will run', (done) => { + + expect(1 + 1).to.equal(2); + done(); + }); + + test('another test that will not be executed', (done) => { + + done(); + }); +}); + +test('attaches notes', (done) => { + + expect(1 + 1).to.equal(2); + done.note(`The current time is ${Date.now()}`); + done(); +}); + +test('cleanups after test', (done, onCleanup) => { + + if (onCleanup) { + + onCleanup((next) => { + + return next(); + }); + } + + expect(1 + 1).to.equal(2); + done(); +}); + +experiment('my plan', () => { + + test('only a single assertion executes', { plan: 1 }, (done) => { + + expect(1 + 1).to.equal(2); + done(); + }); +}); + +experiment('math', { timeout: 1000 }, () => { + + before({ timeout: 500 }, (done) => { + + done(); + }); + + test('returns true when 1 + 1 equals 2', { parallel: true }, (done) => { + + expect(1 + 1).to.equal(2); + done(); + }); +}); + +describe('math', () => { + + before((done) => { + + done(); + }); + + after((done) => { + + done(); + }); + + afterEach((done) => { + + done(); + }); + + it('returns true when 1 + 1 equals 2', (done) => { + + expect(1 + 1).to.equal(2); + done(); + }); +}); + +suite('math', () => { + + test('returns true when 1 + 1 equals 2', (done) => { + + expect(1 + 1).to.equal(2); + done(); + }); +}); + +describe('expectation', () => { + + it('should be able to expect', (done) => { + + expect(true).to.be.true(); + + done(); + }); + + it('should be able to fail (This test should fail)', (done) => { + + fail('Should fail'); + + done(); + }); + +}); diff --git a/lab/tsconfig.json b/lab/tsconfig.json new file mode 100644 index 0000000000..5562163523 --- /dev/null +++ b/lab/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "lab-tests.ts" + ] +} \ No newline at end of file diff --git a/ldclient-js/ldclient-js.d.ts b/ldclient-js/index.d.ts similarity index 100% rename from ldclient-js/ldclient-js.d.ts rename to ldclient-js/index.d.ts diff --git a/ldclient-js/ldclient-js-tests.ts b/ldclient-js/ldclient-js-tests.ts index cf4ec2b2b6..3b7ea30125 100644 --- a/ldclient-js/ldclient-js-tests.ts +++ b/ldclient-js/ldclient-js-tests.ts @@ -1,5 +1,3 @@ -/// - // Implicitly calls LDClient#identify const ldClient = LDClient.initialize( 'ENV KEY', @@ -27,6 +25,6 @@ function changeCallback(changes: LaunchDarkly.LDFlagChangeset) { ldClient.on('change', changeCallback); -document.getElementById('disable-change-tracking').addEventListener('click', () => { +document.getElementById('disable-change-tracking')!.addEventListener('click', () => { ldClient.off('change', changeCallback); }); diff --git a/ldclient-js/tsconfig.json b/ldclient-js/tsconfig.json new file mode 100644 index 0000000000..37c3af1f5a --- /dev/null +++ b/ldclient-js/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "ldclient-js-tests.ts" + ] +} \ No newline at end of file diff --git a/leadfoot/index.d.ts b/leadfoot/index.d.ts new file mode 100644 index 0000000000..eb93321c28 --- /dev/null +++ b/leadfoot/index.d.ts @@ -0,0 +1,3275 @@ +// Type definitions for leadfoot +// Project: https://github.com/theintern/leadfoot +// Definitions by: theintern +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// +/// + +declare module leadfoot { + + /** + * An error from the remote WebDriver server. + */ + interface WebDriverError extends Error { + /** + * The human-readable error type returned by the WebDriver server. See {@link module:leadfoot/lib/statusCodes} for a + * list of error types. + */ + name: string; + + /** + * A human-readable message describing the error. + */ + message: string; + + /** + * The raw error status code returned by the WebDriver server. + */ + status: number; + + /** + * The raw detail of the error returned by the WebDriver server. + */ + detail: any; + + /** + * The parameters for the request. + */ + request: { + url: string; + method: string; + requestData: {}; + }; + + /** + * The response object for the request. + */ +// response: request.IResponse; + response: any; + + /** + * The stack trace for the request. + */ + stack: string; + } + + /** + * An object that describes an HTTP cookie. + */ + interface WebDriverCookie { + /** + * The name of the cookie. + */ + name: string; + + /** + * The value of the cookie. + */ + value: string; + + /** + * The registered path for the cookie. + */ + path: string; + + /** + * The registered domain for the cookie. + */ + domain: string; + + /** + * True if the cookie should only be transmitted over HTTPS. + */ + secure: boolean; + + /** + * True if the cookie should be inaccessible to client-side scripting. + */ + httpOnly: boolean; + + /** + * The expiration date of the cookie. + */ + expiry: Date; + } + + /** + * An object that describes a geographical location. + */ + interface Geolocation { + /** + * Latitude in WGS84 decimal coordinate system. + */ + latitude: number; + + /** + * Longitude in WGS84 decimal coordinate system. + */ + longitude: number; + + /** + * Altitude in meters above the WGS84 ellipsoid. + */ + altitude: number; + } + + /** + * A remote log entry. + */ + interface LogEntry { + /** + * The timestamp of the entry in seconds since unix epoch. + */ + timestamp: number; + + /** + * The severity level of the entry. This level is not currently normalised. + */ + level: string; + + /** + * The log entry message. + */ + message: string; + } + + /** + * A list of possible capabilities for a remote WebDriver environment. + */ + interface Capabilities { + /** + * Environments with this capability expose the state of the browser’s offline application cache via the WebDriver API. + */ + applicationCacheEnabled?: boolean; + + /** + * Environments with this capability are incapable of clearing or deleting cookies. This issue cannot be worked around. + */ + brokenCookies?: boolean; + + /** + * Environments with this capability do not correctly retrieve the size of a CSS transformed element. This issue is + * automatically corrected. + */ + brokenCssTransformedSize?: boolean; + + /** + * Environments with this capability do not correctly delete cookies. This issue is automatically corrected for cookies + * that are accessible via JavaScript. + */ + brokenDeleteCookie?: boolean; + + /** + * Environments with this capability do not follow the correct event order when double-clicking. This issue is + * automatically corrected. + */ + brokenDoubleClick?: boolean; + + /** + * Environments with this capability return invalid element handles from execute functions. This issue cannot be worked + * around. + */ + brokenExecuteElementReturn?: boolean; + + /** + * Environments with this capability claim fully transparent elements are non-hidden. This issue is automatically + * corrected. + */ + brokenElementDisplayedOpacity?: boolean; + + /** + * Environments with this capability claim elements positioned offscreen to the top/left of the page are non-hidden. + * This issue is automatically corrected. + */ + brokenElementDisplayedOffscreen?: boolean; + + /** + * Environments with this capability do not correctly retrieve the position of a CSS transformed element. This issue is + * automatically corrected. + */ + brokenElementPosition?: boolean; + + /** + * Environments with this capability do not operate correctly when the `flickFinger` method is called. This issue cannot + * be corrected. + */ + brokenFlickFinger?: boolean; + + /** + * Environments with this capability return HTML tag names with the incorrect case. This issue is automatically + * corrected. + */ + brokenHtmlTagName?: boolean; + + /** + * Environments with this capability fail to perform long tap gestures. This issue is not currently corrected. + */ + brokenLongTap?: boolean; + + /** + * Environments with this capability have broken mouse event APIs. This issue is automatically corrected as much as + * possible through JavaScript-based event emulation. + */ + brokenMouseEvents?: boolean; + + /** + * Environments with this capability do not support dragging fingers across the page. This issue is not currently + * corrected. + */ + brokenMoveFinger?: boolean; + + /** + * Environments with this capability do not support browser navigation functions (back, forward, refresh). This issue + * cannot be corrected. + */ + brokenNavigation?: boolean; + + /** + * Environments with this capability incorrectly return an empty string instead of `null` for attributes that do not + * exist when using the `getSpecAttribute` retrieval method. This issue is automatically corrected. + */ + brokenNullGetSpecAttribute?: boolean; + + /** + * Environments with this capability fail to complete calls to refresh a page through the standard WebDriver API. This + * issue is automatically corrected. + */ + brokenRefresh?: boolean; + + /** + * Environments with this capability have broken keyboard event APIs. This issue is automatically corrected as much as + * possible through JavaScript-based event emulation. + */ + brokenSendKeys?: boolean; + + /** + * Environments with this capability incorrectly omit the key/value of the button being submitted. This issue is + * automatically corrected. + */ + brokenSubmitElement?: boolean; + + /** + * Environments with this capability do not operate correctly when the `touchScroll` method is called. This issue is + * automatically corrected. + */ + brokenTouchScroll?: boolean; + + /** + * Environments with this capability cannot switch between windows. This issue cannot be corrected. + */ + brokenWindowSwitch?: boolean; + + /** + * Environments with this capability break when `setWindowPosition` is called. This issue cannot be corrected. + */ + brokenWindowPosition?: boolean; + + /** + * The name of the current environment. + */ + browserName: string; + + /** + * Environments with this capability can use CSS selectors to find elements. + */ + cssSelectorsEnabled?: boolean; + + /** + * Environments with this capability have viewports that can be resized. + */ + dynamicViewport?: boolean; + + /** + * Environments with this capability break when the `getLogTypes` method is called. The list of log types provided here + * are used in lieu of the values provided by the server when calling `getLogTypes`. + */ + fixedLogTypes?: boolean | string[]; + + /** + * Environments with this capability have JavaScript enabled. Leadfoot does not operate in environments without + * JavaScript. + */ + javascriptEnabled?: boolean; + + /** + * Environments with this capability allow the geographic location of the browser to be set and retrieved using the + * WebDriver API. + */ + locationContextEnabled?: boolean; + + /** + * Environments with this capability support interaction via mouse commands. + */ + mouseEnabled?: boolean; + + /** + * Environments with this capability use platform native events instead of emulated events. + */ + nativeEvents?: boolean; + + /** + * The name of the platform on which the current environment is running. + */ + platform: string; + + /** + * Environments with this capability allow files to be uploaded from a remote client. + */ + remoteFiles?: boolean; + + /** + * Environments with this capability allow the rotation of the device to be set and retrieved using the WebDriver API. + */ + rotatable?: boolean; + + /** + * The special key that is used by default on the given platform to perform keyboard shortcuts. + */ + shortcutKey?: string; + + /** + * Environments with this capability support CSS transforms. + */ + supportsCssTransforms?: boolean; + + /** + * Environments with this capability support asynchronous JavaScript execution. + */ + supportsExecuteAsync?: boolean; + + /** + * Environments with this capability support navigation to `data:` URIs. + */ + supportsNavigationDataUris?: boolean; + + /** {boolean} takesScreenshot + * Environments with this capability allow screenshots of the current screen to be taken. + */ + takesScreenshot?: boolean; + + /** + * Environments with this capability support interaction via touch commands. + */ + touchEnabled?: boolean; + + /** + * The version number of the current environment. + */ + version: string; + + /** + * Environments with this capability allow local storage and session storage to be set and retrieved using the + * WebDriver API. + */ + webStorageEnabled?: boolean; + } +} + +declare module 'leadfoot/helpers/pollUntil' { + import Promise = require('dojo/promise/Promise'); + + namespace pollUntil { } + + /** + * A {@link module:leadfoot/Command} helper that polls for a value within the client environment until the value exists + * or a timeout is reached. + * + * @param poller + * The poller function to execute on an interval. The function should return `null` or `undefined` if there is not a + * result. If the poller function throws, polling will halt. + * + * @param args + * An array of arguments to pass to the poller function when it is invoked. Only values that can be serialised to JSON, + * plus {@link module:leadfoot/Element} objects, can be specified as arguments. + * + * @param timeout + * The maximum amount of time to wait for a successful result, in milliseconds. If not specified, the current + * `executeAsync` maximum timeout for the session will be used. + * + * @param pollInterval + * The amount of time to wait between calls to the poller function, in milliseconds. If not specified, defaults to 67ms. + * + * @returns + * A {@link module:leadfoot/Command#then} callback function that, when called, returns a promise that resolves to the + * value returned by the poller function on success and rejects on failure. + * + * @example + * var Command = require('leadfoot/Command'); + * var pollUntil = require('leadfoot/helpers/pollUntil'); + * + * new Command(session) + * .get('http://example.com') + * .then(pollUntil('return document.getElementById("a");', 1000)) + * .then(function (elementA) { + * // element was found + * }, function (error) { + * // element was not found + * }); + * + * @example + * var Command = require('leadfoot/Command'); + * var pollUntil = require('leadfoot/helpers/pollUntil'); + * + * new Command(session) + * .get('http://example.com') + * .then(pollUntil(function (value) { + * var element = document.getElementById('a'); + * return element && element.value === value ? true : null; + * }, [ 'foo' ], 1000)) + * .then(function () { + * // value was set to 'foo' + * }, function (error) { + * // value was never set + * }); + */ + function pollUntil(poller: Function | string, args?: any[], timeout?: number, pollInterval?: number): (value: any) => Promise; + function pollUntil(poller: Function | string, timeout?: number, pollInterval?: number): (value: any) => Promise; + + export = pollUntil; +} + +declare module 'leadfoot/Command' { + import Element = require('leadfoot/Element'); + import Promise = require('dojo/promise/Promise'); + import Thenable = require('dojo/promise/Thenable'); + import Session = require('leadfoot/Session'); + + /** + * The Command class is a chainable, subclassable object type that can be used to execute commands serially against a + * remote WebDriver environment. The standard Command class includes methods from the {@link module:leadfoot/Session} + * and {@link module:leadfoot/Element} classes, so you can perform all standard session and element operations that + * come with Leadfoot without being forced to author long promise chains. + * + * In order to use the Command class, you first need to pass it a {@link module:leadfoot/Session} instance for it to + * use: + * + * ```js + * var command = new Command(session); + * ``` + * + * Once you have created the Command, you can then start chaining methods, and they will execute in order one after + * another: + * + * ```js + * command.get('http://example.com') + * .findByTagName('h1') + * .getVisibleText() + * .then(function (text) { + * assert.strictEqual(text, 'Example Domain'); + * }); + * ``` + * + * Because these operations are asynchronous, you need to use a `then` callback in order to retrieve the value from the + * last method. Command objects are Thenables, which means that they can be used with any Promises/A+ or ES6-confirmant + * Promises implementation, though there are some specific differences in the arguments and context that are provided + * to callbacks; see {@link module:leadfoot/Command#then} for more details. + * + * --- + * + * Each call on a Command generates a new Command object, which means that certain operations can be parallelised: + * + * ```js + * command = command.get('http://example.com'); + * Promise.all([ + * command.getPageTitle(), + * command.findByTagName('h1').getVisibleText() + * ]).then(function (results) { + * assert.strictEqual(results[0], results[1]); + * }); + * ``` + * + * In this example, the commands on line 3 and 4 both depend upon the `get` call completing successfully but are + * otherwise independent of each other and so execute here in parallel. This is different from commands in Intern 1 + * which were always chained onto the last called method within a given test. + * + * --- + * + * Command objects actually encapsulate two different types of interaction: *session* interactions, which operate + * against the entire browser session, and *element* interactions, which operate against specific elements taken from + * the currently loaded page. Things like navigating the browser, moving the mouse cursor, and executing scripts are + * session interactions; things like getting text displayed on the page, typing into form fields, and getting element + * attributes are element interactions. + * + * Session interactions can be performed at any time, from any Command. On the other hand, to perform element + * interactions, you first need to retrieve one or more elements to interact with. This can be done using any of the + * `find` or `findAll` methods, by the `getActiveElement` method, or by returning elements from `execute` or + * `executeAsync` calls. The retrieved elements are stored internally as the *element context* of all chained + * Commands. When an element method is called on a chained Command with a single element context, the result will be + * returned as-is: + * + * ```js + * command = command.get('http://example.com') + * // finds one element -> single element context + * .findByTagName('h1') + * .getVisibleText() + * .then(function (text) { + * // `text` is the text from the element context + * assert.strictEqual(text, 'Example Domain'); + * }); + * ``` + * + * When an element method is called on a chained Command with a multiple element context, the result will be returned + * as an array: + * + * ```js + * command = command.get('http://example.com') + * // finds multiple elements -> multiple element context + * .findAllByTagName('p') + * .getVisibleText() + * .then(function (texts) { + * // `texts` is an array of text from each of the `p` elements + * assert.deepEqual(texts, [ + * 'This domain is established to be used for […]', + * 'More information...' + * ]); + * }); + * ``` + * + * The `find` and `findAll` methods are special and change their behaviour based on the current element filtering state + * of a given command. If a command has been filtered by element, the `find` and `findAll` commands will only find + * elements *within* the currently filtered set of elements. Otherwise, they will find elements throughout the page. + * + * Some method names, like `click`, are identical for both Session and Element APIs; in this case, the element APIs + * are suffixed with the word `Element` in order to identify them uniquely. + * + * --- + * + * Commands can be subclassed in order to add additional functionality without making direct modifications to the + * default Command prototype that might break other parts of the system: + * + * ```js + * function CustomCommand() { + * Command.apply(this, arguments); + * } + * CustomCommand.prototype = Object.create(Command.prototype); + * CustomCommand.prototype.constructor = CustomCommand; + * CustomCommand.prototype.login = function (username, password) { + * return new this.constructor(this, function () { + * return this.parent + * .findById('username') + * .click() + * .type(username) + * .end() + * .findById('password') + * .click() + * .type(password) + * .end() + * .findById('login') + * .click() + * .end(); + * }); + * }; + * ``` + * + * Note that returning `this`, or a command chain starting from `this`, from a callback or command initialiser will + * deadlock the Command, as it waits for itself to settle before settling. + */ + class Command implements Thenable { + /** + * @constructor module:leadfoot/Command + * @param {module:leadfoot/Command|module:leadfoot/Session} parent + * The parent command that this command is chained to, or a {@link module:leadfoot/Session} object if this is the + * first command in a command chain. + * + * @param {function(setContext:Function, value:any): (any|Promise)} initialiser + * A function that will be executed when all parent commands have completed execution. This function can create a + * new context for this command by calling the passed `setContext` function any time prior to resolving the Promise + * that it returns. If no context is explicitly provided, the context from the parent command will be used. + * + * @param {(function(setContext:Function, error:Error): (any|Promise))=} errback + * A function that will be executed if any parent commands failed to complete successfully. This function can create + * a new context for the current command by calling the passed `setContext` function any time prior to resolving the + * Promise that it returns. If no context is explicitly provided, the context from the parent command will be used. + */ + constructor( + parent: Command | Session, + initialiser?: (setContext: Command.ContextSetter, value: any) => Thenable | T, + errback?: (setContext: Command.ContextSetter, error: Error) => Thenable | T + ); + + /** + * The parent Command of the Command, if one exists. + * + * @readonly + */ + parent: Command; + + /** + * The parent Session of the Command. + * + * @readonly + */ + session: Session; + + /** + * The filtered elements that will be used if an element-specific method is invoked. Note that this property is not + * valid until the parent Command has been settled. The context array also has two additional properties: + * + * - isSingle (boolean): If true, the context will always contain a single element. This is used to differentiate + * between methods that should still return scalar values (`find`) and methods that should return arrays of + * values even if there is only one element in the context (`findAll`). + * - depth (number): The depth of the context within the command chain. This is used to prevent traversal into + * higher filtering levels by {@link module:leadfoot/Command#end}. + * + * @readonly + */ + context: Command.Context; + + /** + * The underlying Promise for the Command. + * + * @readonly + */ + promise: Promise; + + /** + * Pauses execution of the next command in the chain for `ms` milliseconds. + * + * @param {number} ms Time to delay, in milliseconds. + * @returns {module:leadfoot/Command.} + */ + sleep(ms: number): Command; + + /** + * Ends the most recent filtering operation in the current Command chain and returns the set of matched elements + * to the previous state. This is equivalent to the `jQuery#end` method. + * + * @example + * command + * .findById('parent') // sets filter to #parent + * .findByClassName('child') // sets filter to all .child inside #parent + * .getVisibleText() + * .then(function (visibleTexts) { + * // all the visible texts from the children + * }) + * .end() // resets filter to #parent + * .end(); // resets filter to nothing (the whole document) + * + * @param numCommandsToPop The number of element contexts to pop. Defaults to 1. + */ + end(numCommandsToPop?: number): Command; + + /** + * Adds a callback to be invoked once the previously chained operation has completed. + * + * This method is compatible with the `Promise#then` API, with two important differences: + * + * 1. The context (`this`) of the callback is set to the Command object, rather than being `undefined`. This allows + * promise helpers to be created that can retrieve the appropriate session and element contexts for execution. + * 2. A second non-standard `setContext` argument is passed to the callback. This `setContext` function can be + * called at any time before the callback fulfills its return value and expects either a single + * {@link module:leadfoot/Element} or an array of Elements to be provided as its only argument. The provided + * element(s) will be used as the context for subsequent element method invocations (`click`, etc.). If + * the `setContext` method is not called, the element context from the parent will be passed through unmodified. + * + * @param {Function=} callback + * @param {Function=} errback + * @returns {module:leadfoot/Command.} + */ + then( + callback: (value: T, setContext?: Command.ContextSetter) => Thenable | U, + errback?: (error: Error, setContext?: Command.ContextSetter) => Thenable | U + ): Command; + + /** + * Adds a callback to be invoked when any of the previously chained operations have failed. + */ + catch(errback: (error: Error, setContext?: Command.ContextSetter) => Thenable | U): Command; + + /** + * Adds a callback to be invoked once the previously chained operations have resolved. + */ + finally(callback: (valueOrError: T | Error, setContext?: Command.ContextSetter) => Thenable | U): Command; + + /** + * Cancels all outstanding chained operations of the Command. Calling this method will cause this command and all + * subsequent chained commands to fail with a CancelError. + */ + cancel(): Command; + + /** + * Gets the current value of a timeout for the session. + * + * @param type The type of timeout to retrieve. One of 'script', 'implicit', or 'page load'. + * @returns The timeout, in milliseconds. + */ + getTimeout(type: string): Command; + + /** + * Sets the value of a timeout for the session. + * + * @param type + * The type of timeout to set. One of 'script', 'implicit', or 'page load'. + * + * @param ms + * The length of time to use for the timeout, in milliseconds. A value of 0 will cause operations to time out + * immediately. + */ + setTimeout(type: string, ms: number): Command; + + /** + * Gets the identifier for the window that is currently focused. + * + * @returns A window handle identifier that can be used with other window handling functions. + */ + getCurrentWindowHandle(): Command; + + /** + * Gets a list of identifiers for all currently open windows. + */ + getAllWindowHandles(): Command; + + /** + * Gets the URL that is loaded in the focused window/frame. + */ + getCurrentUrl(): Command; + + /** + * Navigates the focused window/frame to a new URL. + */ + get(url: string): Command; + + /** + * Navigates the focused window/frame forward one page using the browser’s navigation history. + */ + goForward(): Command; + + /** + * Navigates the focused window/frame back one page using the browser’s navigation history. + */ + goBack(): Command; + + /** + * Reloads the current browser window/frame. + */ + refresh(): Command; + + /** + * Executes JavaScript code within the focused window/frame. The code should return a value synchronously. + * + * @see {@link module:leadfoot/Session#executeAsync} to execute code that returns values asynchronously. + * + * @param script + * The code to execute. If a string value is passed, it will be converted to a function on the remote end. + * + * @param args + * An array of arguments that will be passed to the executed code. Only values that can be serialised to JSON, plus + * {@link module:leadfoot/Element} objects, can be specified as arguments. + * + * @returns + * The value returned by the remote code. Only values that can be serialised to JSON, plus DOM elements, can be + * returned. + */ + execute(script: Function | string, args: any[]): Command; + + /** + * Executes JavaScript code within the focused window/frame. The code must invoke the provided callback in + * order to signal that it has completed execution. + * + * @see {@link module:leadfoot/Session#execute} to execute code that returns values synchronously. + * @see {@link module:leadfoot/Session#setExecuteAsyncTimeout} to set the time until an asynchronous script is + * considered timed out. + * + * @param script + * The code to execute. If a string value is passed, it will be converted to a function on the remote end. + * + * @param args + * An array of arguments that will be passed to the executed code. Only values that can be serialised to JSON, plus + * {@link module:leadfoot/Element} objects, can be specified as arguments. In addition to these arguments, a + * callback function will always be passed as the final argument to the script. This callback function must be + * invoked in order to signal that execution has completed. The return value of the script, if any, should be passed + * to this callback function. + * + * @returns + * The value returned by the remote code. Only values that can be serialised to JSON, plus DOM elements, can be + * returned. + */ + executeAsync(script: Function | string, args: any[]): Command; + + /** + * Gets a screenshot of the focused window and returns it in PNG format. + * + * @returns A buffer containing a PNG image. + */ + takeScreenshot(): Command; + + /** + * Gets a list of input method editor engines available to the remote environment. + * As of April 2014, no known remote environments support IME functions. + */ + getAvailableImeEngines(): Command; + + /** + * Gets the currently active input method editor for the remote environment. + * As of April 2014, no known remote environments support IME functions. + */ + getActiveImeEngine(): Command; + + /** + * Returns whether or not an input method editor is currently active in the remote environment. + * As of April 2014, no known remote environments support IME functions. + */ + isImeActivated(): Command; + + /** + * Deactivates any active input method editor in the remote environment. + * As of April 2014, no known remote environments support IME functions. + */ + deactivateIme(): Command; + + /** + * Activates an input method editor in the remote environment. + * As of April 2014, no known remote environments support IME functions. + * + * @param engine The type of IME to activate. + */ + activateIme(engine: string): Command; + + /** + * Switches the currently focused frame to a new frame. + * + * @param id + * The frame to switch to. In most environments, a number or string value corresponds to a key in the + * `window.frames` object of the currently active frame. If `null`, the topmost (default) frame will be used. + * If an Element is provided, it must correspond to a `` or `